Bug fix: Do not run GBA-related code in DSi mode

This commit is contained in:
RocketRobz 2018-10-07 15:32:24 -06:00
parent 634dc5d963
commit 8a9af49882
2 changed files with 21 additions and 8 deletions

View File

@ -133,7 +133,9 @@ void driveMenu (void) {
flashcardMountRan = false; flashcardMountRan = false;
} }
gbaFixedValue = *(u8*)(0x080000B2); if (!isDSiMode() && isRegularDS) {
gbaFixedValue = *(u8*)(0x080000B2);
}
if (!dmTextPrinted) { if (!dmTextPrinted) {
consoleInit(NULL, 1, BgType_Text4bpp, BgSize_T_256x256, 15, 0, false, true); consoleInit(NULL, 1, BgType_Text4bpp, BgSize_T_256x256, 15, 0, false, true);
@ -216,11 +218,17 @@ void driveMenu (void) {
pressed = keysDownRepeat(); pressed = keysDownRepeat();
held = keysHeld(); held = keysHeld();
swiWaitForVBlank(); swiWaitForVBlank();
if ((REG_SCFG_MC != stored_SCFG_MC) if (!isDSiMode() && isRegularDS) {
|| (*(u8*)(0x080000B2) != gbaFixedValue)) { if (*(u8*)(0x080000B2) != gbaFixedValue) {
dmTextPrinted = false; dmTextPrinted = false;
break; break;
}
} else if (isDSiMode()) {
if (REG_SCFG_MC != stored_SCFG_MC) {
dmTextPrinted = false;
break;
}
} }
} while (!(pressed & KEY_UP) && !(pressed & KEY_DOWN) && !(pressed & KEY_A) && !(held & KEY_R)); } while (!(pressed & KEY_UP) && !(pressed & KEY_DOWN) && !(pressed & KEY_A) && !(held & KEY_R));

View File

@ -70,6 +70,8 @@ int main(int argc, char **argv) {
int pathLen; int pathLen;
std::string filename; std::string filename;
bool yHeld = false;
snprintf(titleName, sizeof(titleName), "GodMode9i v%i.%i.%i", 1, 1, 0); snprintf(titleName, sizeof(titleName), "GodMode9i v%i.%i.%i", 1, 1, 0);
@ -125,10 +127,13 @@ int main(int argc, char **argv) {
sysSetCartOwner (BUS_OWNER_ARM9); // Allow arm9 to access GBA ROM sysSetCartOwner (BUS_OWNER_ARM9); // Allow arm9 to access GBA ROM
if (isDSiMode()) { if (isDSiMode()) {
scanKeys();
if (keysHeld() & KEY_Y) {
yHeld = true;
}
sdMounted = sdMount(); sdMounted = sdMount();
} }
scanKeys(); if (!isDSiMode() || !yHeld) {
if (!isDSiMode() || !(keysHeld() & KEY_Y)) {
flashcardMounted = flashcardMount(); flashcardMounted = flashcardMount();
flashcardMountSkipped = false; flashcardMountSkipped = false;
} }