diff --git a/romsel_dsimenutheme/arm9/source/perGameSettings.cpp b/romsel_dsimenutheme/arm9/source/perGameSettings.cpp index 7b56494564..401c7182a1 100644 --- a/romsel_dsimenutheme/arm9/source/perGameSettings.cpp +++ b/romsel_dsimenutheme/arm9/source/perGameSettings.cpp @@ -882,7 +882,7 @@ void perGameSettings (std::string filename) { break; case 5: printSmall(false, perGameOpStartXpos, perGameOpYpos, STR_CARD_READ_DMA + ":", startAlign, FontPalette::dialog); - if (perGameSettings_dsiMode==-1 ? (DEFAULT_DSI_MODE && unitCode[CURPOS] > 0) : perGameSettings_dsiMode > 0) { + if (unitCode[CURPOS] > 0 && (perGameSettings_dsiMode==-1 ? DEFAULT_DSI_MODE : perGameSettings_dsiMode > 0)) { printSmall(false, perGameOpEndXpos, perGameOpYpos, STR_OFF, endAlign, FontPalette::dialog); } else if (perGameSettings_cardReadDMA == -1) { printSmall(false, perGameOpEndXpos, perGameOpYpos, STR_DEFAULT, endAlign, FontPalette::dialog); @@ -1078,8 +1078,10 @@ void perGameSettings (std::string filename) { } break; case 5: - perGameSettings_cardReadDMA--; - if (perGameSettings_cardReadDMA < -1) perGameSettings_cardReadDMA = 1; + if (unitCode[CURPOS] == 0 || (perGameSettings_dsiMode==-1 ? (DEFAULT_DSI_MODE == TWLSettings::EDSMode) : perGameSettings_dsiMode < 1)) { + perGameSettings_cardReadDMA--; + if (perGameSettings_cardReadDMA < -1) perGameSettings_cardReadDMA = 1; + } break; case 6: perGameSettings_directBoot = !perGameSettings_directBoot; @@ -1154,8 +1156,10 @@ void perGameSettings (std::string filename) { } break; case 5: - perGameSettings_cardReadDMA++; - if (perGameSettings_cardReadDMA > 1) perGameSettings_cardReadDMA = -1; + if (unitCode[CURPOS] == 0 || (perGameSettings_dsiMode==-1 ? (DEFAULT_DSI_MODE == TWLSettings::EDSMode) : perGameSettings_dsiMode < 1)) { + perGameSettings_cardReadDMA++; + if (perGameSettings_cardReadDMA > 1) perGameSettings_cardReadDMA = -1; + } break; case 6: perGameSettings_directBoot = !perGameSettings_directBoot; diff --git a/romsel_r4theme/arm9/source/perGameSettings.cpp b/romsel_r4theme/arm9/source/perGameSettings.cpp index 762932fca8..b558ec98d0 100644 --- a/romsel_r4theme/arm9/source/perGameSettings.cpp +++ b/romsel_r4theme/arm9/source/perGameSettings.cpp @@ -796,7 +796,7 @@ void perGameSettings (std::string filename) { break; case 5: printSmall(false, 32, perGameOpYpos, "Card Read DMA:"); - if (perGameSettings_dsiMode==-1 ? (DEFAULT_DSI_MODE && romUnitCode > 0) : perGameSettings_dsiMode > 0) { + if (romUnitCode > 0 && (perGameSettings_dsiMode==-1 ? DEFAULT_DSI_MODE : perGameSettings_dsiMode > 0)) { printSmallRightAlign(false, 256-24, perGameOpYpos, "Off"); } else if (perGameSettings_cardReadDMA == -1) { printSmallRightAlign(false, 256-24, perGameOpYpos, "Default"); @@ -981,8 +981,10 @@ void perGameSettings (std::string filename) { } break; case 5: - perGameSettings_cardReadDMA--; - if (perGameSettings_cardReadDMA < -1) perGameSettings_cardReadDMA = 1; + if (romUnitCode == 0 || (perGameSettings_dsiMode==-1 ? (DEFAULT_DSI_MODE == TWLSettings::EDSMode) : perGameSettings_dsiMode < 1)) { + perGameSettings_cardReadDMA--; + if (perGameSettings_cardReadDMA < -1) perGameSettings_cardReadDMA = 1; + } break; case 6: perGameSettings_directBoot = !perGameSettings_directBoot; @@ -1056,8 +1058,10 @@ void perGameSettings (std::string filename) { } break; case 5: - perGameSettings_cardReadDMA++; - if (perGameSettings_cardReadDMA > 1) perGameSettings_cardReadDMA = -1; + if (romUnitCode == 0 || (perGameSettings_dsiMode==-1 ? (DEFAULT_DSI_MODE == TWLSettings::EDSMode) : perGameSettings_dsiMode < 1)) { + perGameSettings_cardReadDMA++; + if (perGameSettings_cardReadDMA > 1) perGameSettings_cardReadDMA = -1; + } break; case 6: perGameSettings_directBoot = !perGameSettings_directBoot;