diff --git a/Languages/czech.lang b/Languages/czech.lang index 9d14327d..89858e56 100644 --- a/Languages/czech.lang +++ b/Languages/czech.lang @@ -1950,6 +1950,12 @@ msgstr "" msgid "Skip IPL" msgstr "" +msgid "BBA Emulation" +msgstr "" + +msgid "BBA Net Profile" +msgstr "" + msgid "Sneek Video Patch" msgstr "" diff --git a/Languages/danish.lang b/Languages/danish.lang index 805be474..e1162f96 100644 --- a/Languages/danish.lang +++ b/Languages/danish.lang @@ -1950,6 +1950,12 @@ msgstr "" msgid "Skip IPL" msgstr "" +msgid "BBA Emulation" +msgstr "" + +msgid "BBA Net Profile" +msgstr "" + msgid "Sneek Video Patch" msgstr "" diff --git a/Languages/dutch.lang b/Languages/dutch.lang index 8ed4894b..40e87edf 100644 --- a/Languages/dutch.lang +++ b/Languages/dutch.lang @@ -1950,6 +1950,12 @@ msgstr "Fouten overslaan" msgid "Skip IPL" msgstr "" +msgid "BBA Emulation" +msgstr "" + +msgid "BBA Net Profile" +msgstr "" + msgid "Sneek Video Patch" msgstr "" diff --git a/Languages/english.lang b/Languages/english.lang index 6c8e1acd..0368cb93 100644 --- a/Languages/english.lang +++ b/Languages/english.lang @@ -1950,6 +1950,12 @@ msgstr "" msgid "Skip IPL" msgstr "" +msgid "BBA Emulation" +msgstr "" + +msgid "BBA Net Profile" +msgstr "" + msgid "Sneek Video Patch" msgstr "" diff --git a/Languages/finnish.lang b/Languages/finnish.lang index 19afce89..aae54bbd 100644 --- a/Languages/finnish.lang +++ b/Languages/finnish.lang @@ -1950,6 +1950,12 @@ msgstr "" msgid "Skip IPL" msgstr "" +msgid "BBA Emulation" +msgstr "" + +msgid "BBA Net Profile" +msgstr "" + msgid "Sneek Video Patch" msgstr "" diff --git a/Languages/french.lang b/Languages/french.lang index ab0f09bd..eb68d2a9 100644 --- a/Languages/french.lang +++ b/Languages/french.lang @@ -1950,6 +1950,12 @@ msgstr "Omettre les erreurs" msgid "Skip IPL" msgstr "Omettre le BIOS" +msgid "BBA Emulation" +msgstr "" + +msgid "BBA Net Profile" +msgstr "" + msgid "Sneek Video Patch" msgstr "Patch vidéo Sneek" diff --git a/Languages/german.lang b/Languages/german.lang index 76997091..52c622e2 100644 --- a/Languages/german.lang +++ b/Languages/german.lang @@ -1950,6 +1950,12 @@ msgstr "Fehler überspringen" msgid "Skip IPL" msgstr "" +msgid "BBA Emulation" +msgstr "" + +msgid "BBA Net Profile" +msgstr "" + msgid "Sneek Video Patch" msgstr "Sneek Video Patch" diff --git a/Languages/greek.lang b/Languages/greek.lang index ae0dd470..091c07f4 100644 --- a/Languages/greek.lang +++ b/Languages/greek.lang @@ -1949,6 +1949,12 @@ msgstr "Áãíüçóç óöáëìÜôùí" msgid "Skip IPL" msgstr "" +msgid "BBA Emulation" +msgstr "" + +msgid "BBA Net Profile" +msgstr "" + msgid "Sneek Video Patch" msgstr "Patch åéêüíáò ãéá sneek" diff --git a/Languages/hungarian.lang b/Languages/hungarian.lang index 11ded18f..8d34001c 100644 --- a/Languages/hungarian.lang +++ b/Languages/hungarian.lang @@ -1950,6 +1950,12 @@ msgstr "" msgid "Skip IPL" msgstr "" +msgid "BBA Emulation" +msgstr "" + +msgid "BBA Net Profile" +msgstr "" + msgid "Sneek Video Patch" msgstr "" diff --git a/Languages/italian.lang b/Languages/italian.lang index 9a92f4af..7e702d8b 100644 --- a/Languages/italian.lang +++ b/Languages/italian.lang @@ -1950,6 +1950,12 @@ msgstr "Salta errori" msgid "Skip IPL" msgstr "Salta IPL" +msgid "BBA Emulation" +msgstr "" + +msgid "BBA Net Profile" +msgstr "" + msgid "Sneek Video Patch" msgstr "Patch video sneek" diff --git a/Languages/japanese.lang b/Languages/japanese.lang index bdeaffde..5bfae454 100644 --- a/Languages/japanese.lang +++ b/Languages/japanese.lang @@ -1950,6 +1950,12 @@ msgstr "エラーをスキップ" msgid "Skip IPL" msgstr "" +msgid "BBA Emulation" +msgstr "" + +msgid "BBA Net Profile" +msgstr "" + msgid "Sneek Video Patch" msgstr "SNEEK映像パッチ" diff --git a/Languages/korean.lang b/Languages/korean.lang index df8267b4..f8e426c0 100644 --- a/Languages/korean.lang +++ b/Languages/korean.lang @@ -1947,6 +1947,12 @@ msgstr "오류 건너뛰기" msgid "Skip IPL" msgstr "IPL 건너뛰기" +msgid "BBA Emulation" +msgstr "BBA 에뮬레이션" + +msgid "BBA Net Profile" +msgstr "BBA 넷 프로파일" + msgid "Sneek Video Patch" msgstr "Sneek 비디오 경로" diff --git a/Languages/norwegian.lang b/Languages/norwegian.lang index 9b21dfde..be99392a 100644 --- a/Languages/norwegian.lang +++ b/Languages/norwegian.lang @@ -1950,6 +1950,12 @@ msgstr "" msgid "Skip IPL" msgstr "" +msgid "BBA Emulation" +msgstr "" + +msgid "BBA Net Profile" +msgstr "" + msgid "Sneek Video Patch" msgstr "" diff --git a/Languages/polish.lang b/Languages/polish.lang index a5123cbd..88a27dfe 100644 --- a/Languages/polish.lang +++ b/Languages/polish.lang @@ -1950,6 +1950,12 @@ msgstr "" msgid "Skip IPL" msgstr "" +msgid "BBA Emulation" +msgstr "" + +msgid "BBA Net Profile" +msgstr "" + msgid "Sneek Video Patch" msgstr "" diff --git a/Languages/portuguese_br.lang b/Languages/portuguese_br.lang index 4a63654c..c4b503bb 100644 --- a/Languages/portuguese_br.lang +++ b/Languages/portuguese_br.lang @@ -1950,6 +1950,12 @@ msgstr "Pular Erros" msgid "Skip IPL" msgstr "" +msgid "BBA Emulation" +msgstr "" + +msgid "BBA Net Profile" +msgstr "" + msgid "Sneek Video Patch" msgstr "Patch Vídeo Sneek" diff --git a/Languages/portuguese_pt.lang b/Languages/portuguese_pt.lang index aa94deed..f1caccae 100644 --- a/Languages/portuguese_pt.lang +++ b/Languages/portuguese_pt.lang @@ -1950,6 +1950,12 @@ msgstr "Saltar Erros" msgid "Skip IPL" msgstr "" +msgid "BBA Emulation" +msgstr "" + +msgid "BBA Net Profile" +msgstr "" + msgid "Sneek Video Patch" msgstr "Patch Vídeo Sneek" diff --git a/Languages/russian.lang b/Languages/russian.lang index 210854a1..b400f61d 100644 --- a/Languages/russian.lang +++ b/Languages/russian.lang @@ -1950,6 +1950,12 @@ msgstr "" msgid "Skip IPL" msgstr "" +msgid "BBA Emulation" +msgstr "" + +msgid "BBA Net Profile" +msgstr "" + msgid "Sneek Video Patch" msgstr "" diff --git a/Languages/schinese.lang b/Languages/schinese.lang index 206d0b37..de5b402b 100644 --- a/Languages/schinese.lang +++ b/Languages/schinese.lang @@ -1950,6 +1950,12 @@ msgstr "跳过错误" msgid "Skip IPL" msgstr "" +msgid "BBA Emulation" +msgstr "" + +msgid "BBA Net Profile" +msgstr "" + msgid "Sneek Video Patch" msgstr "Sneek 视频补丁" diff --git a/Languages/spanish.lang b/Languages/spanish.lang index ec6f2031..feeb94df 100644 --- a/Languages/spanish.lang +++ b/Languages/spanish.lang @@ -1950,6 +1950,12 @@ msgstr "Saltar errores" msgid "Skip IPL" msgstr "" +msgid "BBA Emulation" +msgstr "" + +msgid "BBA Net Profile" +msgstr "" + msgid "Sneek Video Patch" msgstr "Parche vídeo Sneek" diff --git a/Languages/swedish.lang b/Languages/swedish.lang index f91ada91..1deb2efc 100644 --- a/Languages/swedish.lang +++ b/Languages/swedish.lang @@ -1950,6 +1950,12 @@ msgstr "" msgid "Skip IPL" msgstr "" +msgid "BBA Emulation" +msgstr "" + +msgid "BBA Net Profile" +msgstr "" + msgid "Sneek Video Patch" msgstr "" diff --git a/Languages/tchinese.lang b/Languages/tchinese.lang index 4645b9a3..22b7dd96 100644 --- a/Languages/tchinese.lang +++ b/Languages/tchinese.lang @@ -1950,6 +1950,12 @@ msgstr "略過錯誤" msgid "Skip IPL" msgstr "" +msgid "BBA Emulation" +msgstr "" + +msgid "BBA Net Profile" +msgstr "" + msgid "Sneek Video Patch" msgstr "Sneek視訊修正" diff --git a/Languages/thai.lang b/Languages/thai.lang index f06a9c31..95e3d2ab 100644 --- a/Languages/thai.lang +++ b/Languages/thai.lang @@ -1950,6 +1950,12 @@ msgstr "" msgid "Skip IPL" msgstr "" +msgid "BBA Emulation" +msgstr "" + +msgid "BBA Net Profile" +msgstr "" + msgid "Sneek Video Patch" msgstr "" diff --git a/Languages/turkish.lang b/Languages/turkish.lang index fb823626..c801d58f 100644 --- a/Languages/turkish.lang +++ b/Languages/turkish.lang @@ -1950,6 +1950,12 @@ msgstr "" msgid "Skip IPL" msgstr "" +msgid "BBA Emulation" +msgstr "" + +msgid "BBA Net Profile" +msgstr "" + msgid "Sneek Video Patch" msgstr "" diff --git a/source/GameCube/NIN_Config.h b/source/GameCube/NIN_Config.h index 7ed68809..04d3c19b 100644 --- a/source/GameCube/NIN_Config.h +++ b/source/GameCube/NIN_Config.h @@ -20,12 +20,12 @@ #include #define NIN_MAGIC 0x01070CF6 -#define NIN_CFG_VERSION 0x00000008 +#define NIN_CFG_VERSION 0x00000009 typedef struct NIN_CFG { u32 Magicbytes; // 0x01070CF6 - u32 Version; // v4 since v3.354, v5 since v3.358, v6 since v3.368, v7 since 4.424, v8 since 4.431 + u32 Version; // v4 since v3.354, v5 since v3.358, v6 since v3.368, v7 since v4.424, v8 since v4.431, v9 since v6.487 u32 Config; u32 VideoMode; u32 Language; @@ -41,7 +41,7 @@ typedef struct NIN_CFG char MemCardBlocksV4;// replaced in v3.354 - cfg version 4 - from u32 in v3 to Char in v4 char VideoScale; // added in v3.354 - cfg version 4 char VideoOffset; // added in v3.354 - cfg version 4 - char Unused; // added in v3.354 - cfg version 4 + char NetworkProfile; // added in v6.487 - cfg version 9 }; }; } NIN_CFG; @@ -68,6 +68,7 @@ enum ninconfig NIN_CFG_ARCADE_MODE = (1<<16), // v4.424 NIN_CFG_CC_RUMBLE = (1 << 17),// v4.431 cfg version 8 NIN_CFG_SKIP_IPL = (1 << 18),// v4.435 + NIN_CFG_BBA_EMU = (1 << 19),// v6.487 cfg version 9 }; enum ninvideomode diff --git a/source/settings/CGameSettings.cpp b/source/settings/CGameSettings.cpp index 6859747b..6d94b89a 100644 --- a/source/settings/CGameSettings.cpp +++ b/source/settings/CGameSettings.cpp @@ -226,6 +226,8 @@ bool CGameSettings::Save() fprintf(f, "NINArcadeMode:%d; ", GameList[i].NINArcadeMode); fprintf(f, "NINCCRumble:%d; ", GameList[i].NINCCRumble); fprintf(f, "NINSkipIPL:%d; ", GameList[i].NINSkipIPL); + fprintf(f, "NINBBA:%d; ", GameList[i].NINBBA); + fprintf(f, "NINBBAProfile:%d; ", GameList[i].NINBBAProfile); fprintf(f, "NINMCEmulation:%d; ", GameList[i].NINMCEmulation); fprintf(f, "NINMCSize:%d; ", GameList[i].NINMCSize); fprintf(f, "NINUSBHID:%d; ", GameList[i].NINUSBHID); @@ -459,6 +461,16 @@ bool CGameSettings::SetSetting(GameCFG & game, const char *name, const char *val game.NINSkipIPL = atoi(value); return true; } + else if (strcmp(name, "NINBBA") == 0) + { + game.NINBBA = atoi(value); + return true; + } + else if (strcmp(name, "NINBBAProfile") == 0) + { + game.NINBBAProfile = atoi(value); + return true; + } else if(strcmp(name, "NINMCEmulation") == 0) { game.NINMCEmulation = atoi(value); @@ -690,6 +702,8 @@ void CGameSettings::SetDefault(GameCFG &game) game.NINArcadeMode = INHERIT; game.NINCCRumble = INHERIT; game.NINSkipIPL = INHERIT; + game.NINBBA = INHERIT; + game.NINBBAProfile = INHERIT; game.NINMCEmulation = INHERIT; game.NINMCSize = INHERIT; game.NINUSBHID = INHERIT; diff --git a/source/settings/CGameSettings.h b/source/settings/CGameSettings.h index 517c6380..772cd944 100644 --- a/source/settings/CGameSettings.h +++ b/source/settings/CGameSettings.h @@ -50,6 +50,8 @@ typedef struct _GameCFG short NINArcadeMode; short NINCCRumble; short NINSkipIPL; + short NINBBA; + short NINBBAProfile; short NINMCEmulation; short NINMCSize; short NINUSBHID; @@ -113,6 +115,8 @@ typedef struct _GameCFG this->NINArcadeMode = game.NINArcadeMode; this->NINCCRumble = game.NINCCRumble; this->NINSkipIPL = game.NINSkipIPL; + this->NINBBA = game.NINBBA; + this->NINBBAProfile = game.NINBBAProfile; this->NINMCEmulation = game.NINMCEmulation; this->NINMCSize = game.NINMCSize; this->NINUSBHID = game.NINUSBHID; diff --git a/source/settings/CSettings.cpp b/source/settings/CSettings.cpp index 2353f024..99fbb418 100644 --- a/source/settings/CSettings.cpp +++ b/source/settings/CSettings.cpp @@ -194,6 +194,8 @@ void CSettings::SetDefault() NINArcadeMode = OFF; NINCCRumble = OFF; NINSkipIPL = OFF; + NINBBA = OFF; + NINBBAProfile = 0; NINMCEmulation = ON; NINMCSize = 2; NINAutoboot = ON; @@ -454,6 +456,8 @@ bool CSettings::Save() fprintf(file, "NINArcadeMode = %d\n", NINArcadeMode); fprintf(file, "NINCCRumble = %d\n", NINCCRumble); fprintf(file, "NINSkipIPL = %d\n", NINSkipIPL); + fprintf(file, "NINBBA = %d\n", NINBBA); + fprintf(file, "NINBBAProfile = %d\n", NINBBAProfile); fprintf(file, "NINMCEmulation = %d\n", NINMCEmulation); fprintf(file, "NINMCSize = %d\n", NINMCSize); fprintf(file, "NINAutoboot = %d\n", NINAutoboot); @@ -993,6 +997,16 @@ bool CSettings::SetSetting(char *name, char *value) NINSkipIPL = atoi(value); return true; } + else if (strcmp(name, "NINBBA") == 0) + { + NINBBA = atoi(value); + return true; + } + else if (strcmp(name, "NINBBAProfile") == 0) + { + NINBBAProfile = atoi(value); + return true; + } else if (strcmp(name, "NINMCEmulation") == 0) { NINMCEmulation = atoi(value); diff --git a/source/settings/CSettings.h b/source/settings/CSettings.h index b483a00b..a1d0b71d 100644 --- a/source/settings/CSettings.h +++ b/source/settings/CSettings.h @@ -198,6 +198,8 @@ class CSettings short NINArcadeMode; short NINCCRumble; short NINSkipIPL; + short NINBBA; + short NINBBAProfile; s8 NINMCEmulation; short NINMCSize; short NINAutoboot; diff --git a/source/settings/SettingsEnums.h b/source/settings/SettingsEnums.h index 83f51f34..e17f2281 100644 --- a/source/settings/SettingsEnums.h +++ b/source/settings/SettingsEnums.h @@ -340,6 +340,16 @@ enum }; +enum +{ + NIN_BBA_AUTO, + NIN_BBA_1, + NIN_BBA_2, + NIN_BBA_3, + NIN_BBA_MAX_CHOICE + +}; + enum { DML_VIDEO_AUTO, diff --git a/source/settings/menus/GCGameLoadSM.cpp b/source/settings/menus/GCGameLoadSM.cpp index 40866924..e1df1ab8 100644 --- a/source/settings/menus/GCGameLoadSM.cpp +++ b/source/settings/menus/GCGameLoadSM.cpp @@ -202,6 +202,8 @@ void GCGameLoadSM::SetOptionNames() Options->SetName(Idx++, "%s", tr( "Triforce Arcade Mode" )); Options->SetName(Idx++, "%s", tr("CC Rumble")); Options->SetName(Idx++, "%s", tr("Skip IPL")); + Options->SetName(Idx++, "%s", tr( "BBA Emulation" )); + Options->SetName(Idx++, "%s", tr( "BBA Net Profile" )); Options->SetName(Idx++, "%s", tr( "Memory Card Emulation" )); Options->SetName(Idx++, "%s", tr( "Memory Card Blocks Size" )); Options->SetName(Idx++, "%s", tr( "USB-HID Controller" )); @@ -423,6 +425,20 @@ void GCGameLoadSM::SetOptionValues() else Options->SetValue(Idx++, "%s", tr(OnOffText[GameConfig.NINSkipIPL])); + //! Settings: NIN BBA Emulation + if (GameConfig.NINBBA == INHERIT) + Options->SetValue(Idx++, tr("Use global")); + else + Options->SetValue(Idx++, "%s", tr(OnOffText[GameConfig.NINBBA])); + + //! Settings: NIN BBA Net Profile + if(GameConfig.NINBBAProfile == INHERIT) + Options->SetValue(Idx++, tr("Use global")); + else if(GameConfig.NINBBAProfile == 0) + Options->SetValue(Idx++, tr("Auto")); + else + Options->SetValue(Idx++, "%i", GameConfig.NINBBAProfile); + //! Settings: NIN Memory Card Emulation if(GameConfig.NINMCEmulation == INHERIT) Options->SetValue(Idx++, tr("Use global")); @@ -783,6 +799,18 @@ int GCGameLoadSM::GetMenuInternal() if (++GameConfig.NINSkipIPL >= MAX_ON_OFF) GameConfig.NINSkipIPL = INHERIT; } + //! Settings: NIN BBA Emulation + else if (currentGCmode == GC_MODE_NINTENDONT && ret == ++Idx) + { + if (++GameConfig.NINBBA >= MAX_ON_OFF) GameConfig.NINBBA = INHERIT; + } + + //! Settings: NIN BBA Net Profile + else if (currentGCmode == GC_MODE_NINTENDONT && ret == ++Idx) + { + if (++GameConfig.NINBBAProfile >= NIN_BBA_MAX_CHOICE) GameConfig.NINBBAProfile = INHERIT; + } + //! Settings: NIN Memory Card Emulation else if (currentGCmode == GC_MODE_NINTENDONT && ret == ++Idx) { diff --git a/source/settings/menus/LoaderSettings.cpp b/source/settings/menus/LoaderSettings.cpp index eece2a4d..0299b514 100644 --- a/source/settings/menus/LoaderSettings.cpp +++ b/source/settings/menus/LoaderSettings.cpp @@ -280,6 +280,8 @@ void LoaderSettings::SetOptionNames() Options->SetName(Idx++, "%s", tr( "Triforce Arcade Mode" )); Options->SetName(Idx++, "%s", tr("CC Rumble")); Options->SetName(Idx++, "%s", tr("Skip IPL")); + Options->SetName(Idx++, "%s", tr( "BBA Emulation" )); + Options->SetName(Idx++, "%s", tr( "BBA Net Profile" )); Options->SetName(Idx++, "%s", tr( "Memory Card Emulation" )); Options->SetName(Idx++, "%s", tr( "Memory Card Blocks Size" )); Options->SetName(Idx++, "%s", tr( "USB-HID Controller" )); @@ -452,7 +454,6 @@ void LoaderSettings::SetOptionValues() { Options->SetValue(Idx++, "%s", tr("Manual (40~120)")); Options->SetValue(Idx++, "%d", Settings.NINVideoScale); - } //! Settings: NIN VideoOffset @@ -470,6 +471,15 @@ void LoaderSettings::SetOptionValues() //! Settings: NIN Skip IPL Options->SetValue(Idx++, "%s", tr(OnOffText[Settings.NINSkipIPL])); + //! Settings: NIN BBA Emulation + Options->SetValue(Idx++, "%s", tr(OnOffText[Settings.NINBBA])); + + //! Settings: NIN BBA Net Profile + if(Settings.NINBBAProfile == 0) + Options->SetValue(Idx++, "%s", tr("Auto")); + else + Options->SetValue(Idx++, "%i", Settings.NINBBAProfile); + //! Settings: NIN Memory Card Emulation Options->SetValue(Idx++, "%s", tr(NINMCText[Settings.NINMCEmulation])); @@ -889,6 +899,18 @@ int LoaderSettings::GetMenuInternal() if (++Settings.NINSkipIPL >= MAX_ON_OFF) Settings.NINSkipIPL = 0; } + //! Settings: NIN BBA Emulation + else if (ret == ++Idx) + { + if (++Settings.NINBBA >= MAX_ON_OFF) Settings.NINBBA = 0; + } + + //! Settings: NIN BBA Net Profile + else if (ret == ++Idx) + { + if (++Settings.NINBBAProfile >= NIN_BBA_MAX_CHOICE) Settings.NINBBAProfile = 0; + } + //! Settings: NIN Memory Card Emulation else if (ret == ++Idx) { diff --git a/source/usbloader/GameBooter.cpp b/source/usbloader/GameBooter.cpp index d643c8d5..10066a1c 100644 --- a/source/usbloader/GameBooter.cpp +++ b/source/usbloader/GameBooter.cpp @@ -1023,6 +1023,8 @@ int GameBooter::BootNintendont(struct discHdr *gameHdr) u8 ninArcadeModeChoice = game_cfg->NINArcadeMode == INHERIT ? Settings.NINArcadeMode : game_cfg->NINArcadeMode; u8 ninCCRumbleChoice = game_cfg->NINCCRumble == INHERIT ? Settings.NINCCRumble : game_cfg->NINCCRumble; u8 ninSkipIPLChoice = game_cfg->NINSkipIPL == INHERIT ? Settings.NINSkipIPL : game_cfg->NINSkipIPL; + u8 ninBBAChoice = game_cfg->NINBBA == INHERIT ? Settings.NINBBA : game_cfg->NINBBA; + u8 ninBBAProfileChoice = game_cfg->NINBBAProfile == INHERIT ? Settings.NINBBAProfile : game_cfg->NINBBAProfile; const char *ninLoaderPath = game_cfg->NINLoaderPath.size() == 0 ? Settings.NINLoaderPath : game_cfg->NINLoaderPath.c_str(); @@ -1499,6 +1501,14 @@ int GameBooter::BootNintendont(struct discHdr *gameHdr) if(NIN_cfg_version >= 5 && ninRemlimitChoice) nin_config->Config |= NIN_CFG_REMLIMIT; + // BBA emulation + if (NIN_cfg_version >= 9 && ninBBAChoice) + nin_config->Config |= NIN_CFG_BBA_EMU; // v6.487+ + + // BBA network profile + if(NIN_cfg_version >= 9 && ninBBAChoice && !isWiiU()) + nin_config->NetworkProfile = ninBBAProfileChoice; // v6.487+ + // Setup Video Mode if(ninVideoChoice == DML_VIDEO_NONE) // No video mode changes {