diff --git a/arm9/source/godmode.c b/arm9/source/godmode.c index c48dd3d..1c117c8 100644 --- a/arm9/source/godmode.c +++ b/arm9/source/godmode.c @@ -15,6 +15,7 @@ #include "rtc.h" #include "power.h" #include "vram0.h" +#include "i2c.h" #define N_PANES 2 @@ -1782,6 +1783,7 @@ u32 GodMode(int entrypoint) { return exit_mode; } + I2C_init(); InitSDCardFS(); AutoEmuNandBase(true); InitNandCrypto(entrypoint != ENTRY_B9S); @@ -2291,6 +2293,7 @@ u32 ScriptRunner(int entrypoint) { SplashInit("scriptrunner mode"); u64 timer = timer_start(); + I2C_init(); InitSDCardFS(); AutoEmuNandBase(true); InitNandCrypto(entrypoint != ENTRY_B9S); diff --git a/arm9/source/system/i2c.c b/arm9/source/system/i2c.c index 0c027d8..43969d9 100644 --- a/arm9/source/system/i2c.c +++ b/arm9/source/system/i2c.c @@ -136,15 +136,15 @@ static bool i2cStartTransfer(I2cDevice devId, u8 regAddr, bool read, vu8 *regsBa void I2C_init(void) { - i2cWaitBusy(i2cGetBusRegsBase(0)); + i2cWaitBusy(i2cGetBusRegsBase(0) + 1); REG_I2C1_CNTEX = 2; // ? REG_I2C1_SCL = 1280; // ? - i2cWaitBusy(i2cGetBusRegsBase(1)); + i2cWaitBusy(i2cGetBusRegsBase(1) + 1); REG_I2C2_CNTEX = 2; // ? REG_I2C2_SCL = 1280; // ? - i2cWaitBusy(i2cGetBusRegsBase(2)); + i2cWaitBusy(i2cGetBusRegsBase(2) + 1); REG_I2C3_CNTEX = 2; // ? REG_I2C3_SCL = 1280; // ? }