-added per game option to choose if you want to boot a gamecube

game via DIOS-MIOS or Devolution, if you set it to Default it
will boot ISOs via Devolution and FST extracted via DIOS-MIOS
-updated english.ini
-updated german.ini
This commit is contained in:
fix94.1 2012-07-14 22:44:57 +00:00
parent 741be2dcc2
commit d0ed0821f3
5 changed files with 73 additions and 14 deletions

View File

@ -466,6 +466,11 @@ private:
u16 m_gameSettingsLblDevoMemcardEmu; u16 m_gameSettingsLblDevoMemcardEmu;
u16 m_gameSettingsBtnDevoMemcardEmu; u16 m_gameSettingsBtnDevoMemcardEmu;
u16 m_gameSettingsLblGCLoader;
u16 m_gameSettingsLblGCLoader_Val;
u16 m_gameSettingsBtnGCLoader_P;
u16 m_gameSettingsBtnGCLoader_M;
u16 m_gameSettingsLblCustom; u16 m_gameSettingsLblCustom;
u16 m_gameSettingsBtnCustom; u16 m_gameSettingsBtnCustom;
@ -1097,6 +1102,7 @@ private:
static const SOption _AspectRatio[3]; static const SOption _AspectRatio[3];
static const SOption _NMM[4]; static const SOption _NMM[4];
static const SOption _NoDVD[3]; static const SOption _NoDVD[3];
static const SOption _GCLoader[3];
static const SOption _vidModePatch[4]; static const SOption _vidModePatch[4];
static const SOption _hooktype[8]; static const SOption _hooktype[8];
static const SOption _exitTo[6]; static const SOption _exitTo[6];

View File

@ -52,6 +52,10 @@ void CMenu::_hideGameSettings(bool instant)
m_btnMgr.hide(m_gameSettingsBtnNoDVD_M, instant); m_btnMgr.hide(m_gameSettingsBtnNoDVD_M, instant);
m_btnMgr.hide(m_gameSettingsLblDevoMemcardEmu, instant); m_btnMgr.hide(m_gameSettingsLblDevoMemcardEmu, instant);
m_btnMgr.hide(m_gameSettingsBtnDevoMemcardEmu, instant); m_btnMgr.hide(m_gameSettingsBtnDevoMemcardEmu, instant);
m_btnMgr.hide(m_gameSettingsLblGCLoader, instant);
m_btnMgr.hide(m_gameSettingsLblGCLoader_Val, instant);
m_btnMgr.hide(m_gameSettingsBtnGCLoader_P, instant);
m_btnMgr.hide(m_gameSettingsBtnGCLoader_M, instant);
m_btnMgr.hide(m_gameSettingsLblCustom, instant); m_btnMgr.hide(m_gameSettingsLblCustom, instant);
m_btnMgr.hide(m_gameSettingsBtnCustom, instant); m_btnMgr.hide(m_gameSettingsBtnCustom, instant);
m_btnMgr.hide(m_gameSettingsLblOcarina, instant); m_btnMgr.hide(m_gameSettingsLblOcarina, instant);
@ -279,6 +283,11 @@ void CMenu::_showGameSettings(void)
m_btnMgr.show(m_gameSettingsLblDevoMemcardEmu); m_btnMgr.show(m_gameSettingsLblDevoMemcardEmu);
m_btnMgr.show(m_gameSettingsBtnDevoMemcardEmu); m_btnMgr.show(m_gameSettingsBtnDevoMemcardEmu);
m_btnMgr.show(m_gameSettingsLblGCLoader);
m_btnMgr.show(m_gameSettingsLblGCLoader_Val);
m_btnMgr.show(m_gameSettingsBtnGCLoader_P);
m_btnMgr.show(m_gameSettingsBtnGCLoader_M);
} }
} }
else else
@ -315,6 +324,11 @@ void CMenu::_showGameSettings(void)
m_btnMgr.hide(m_gameSettingsLblDevoMemcardEmu); m_btnMgr.hide(m_gameSettingsLblDevoMemcardEmu);
m_btnMgr.hide(m_gameSettingsBtnDevoMemcardEmu); m_btnMgr.hide(m_gameSettingsBtnDevoMemcardEmu);
m_btnMgr.hide(m_gameSettingsLblGCLoader);
m_btnMgr.hide(m_gameSettingsLblGCLoader_Val);
m_btnMgr.hide(m_gameSettingsBtnGCLoader_P);
m_btnMgr.hide(m_gameSettingsBtnGCLoader_M);
} }
} }
if (m_gameSettingsPage == 4) if (m_gameSettingsPage == 4)
@ -392,6 +406,8 @@ void CMenu::_showGameSettings(void)
m_btnMgr.setText(m_gameSettingsLblNMM_Val, _t(CMenu::_NMM[i].id, CMenu::_NMM[i].text)); m_btnMgr.setText(m_gameSettingsLblNMM_Val, _t(CMenu::_NMM[i].id, CMenu::_NMM[i].text));
i = min((u32)m_gcfg2.getInt(id, "no_disc_patch", 0), ARRAY_SIZE(CMenu::_NoDVD) - 1u); i = min((u32)m_gcfg2.getInt(id, "no_disc_patch", 0), ARRAY_SIZE(CMenu::_NoDVD) - 1u);
m_btnMgr.setText(m_gameSettingsLblNoDVD_Val, _t(CMenu::_NoDVD[i].id, CMenu::_NoDVD[i].text)); m_btnMgr.setText(m_gameSettingsLblNoDVD_Val, _t(CMenu::_NoDVD[i].id, CMenu::_NoDVD[i].text));
i = min((u32)m_gcfg2.getInt(id, "gc_loader", 0), ARRAY_SIZE(CMenu::_GCLoader) - 1u);
m_btnMgr.setText(m_gameSettingsLblGCLoader_Val, _t(CMenu::_GCLoader[i].id, CMenu::_GCLoader[i].text));
} }
else else
{ {
@ -568,6 +584,12 @@ void CMenu::_gameSettings(void)
m_gcfg2.setInt(id, "no_disc_patch", (int)loopNum((u32)m_gcfg2.getInt(id, "no_disc_patch", 0) + direction, ARRAY_SIZE(CMenu::_NoDVD))); m_gcfg2.setInt(id, "no_disc_patch", (int)loopNum((u32)m_gcfg2.getInt(id, "no_disc_patch", 0) + direction, ARRAY_SIZE(CMenu::_NoDVD)));
_showGameSettings(); _showGameSettings();
} }
else if(m_btnMgr.selected(m_gameSettingsBtnGCLoader_P) || m_btnMgr.selected(m_gameSettingsBtnGCLoader_M))
{
s8 direction = m_btnMgr.selected(m_gameSettingsBtnGCLoader_P) ? 1 : -1;
m_gcfg2.setInt(id, "gc_loader", (int)loopNum((u32)m_gcfg2.getInt(id, "gc_loader", 0) + direction, ARRAY_SIZE(CMenu::_GCLoader)));
_showGameSettings();
}
else if (m_btnMgr.selected(m_gameSettingsBtnIOSM) || m_btnMgr.selected(m_gameSettingsBtnIOSP)) else if (m_btnMgr.selected(m_gameSettingsBtnIOSM) || m_btnMgr.selected(m_gameSettingsBtnIOSP))
{ {
if( _installed_cios.size() > 0) if( _installed_cios.size() > 0)
@ -754,6 +776,11 @@ void CMenu::_initGameSettingsMenu(CMenu::SThemeData &theme)
m_gameSettingsLblDevoMemcardEmu = _addLabel(theme, "GAME_SETTINGS/DEVO_MEMCARD_EMU", theme.lblFont, L"", 40, 250, 290, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE); m_gameSettingsLblDevoMemcardEmu = _addLabel(theme, "GAME_SETTINGS/DEVO_MEMCARD_EMU", theme.lblFont, L"", 40, 250, 290, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsBtnDevoMemcardEmu = _addButton(theme, "GAME_SETTINGS/DEVO_MEMCARD_EMU_BTN", theme.btnFont, L"", 330, 250, 270, 56, theme.btnFontColor); m_gameSettingsBtnDevoMemcardEmu = _addButton(theme, "GAME_SETTINGS/DEVO_MEMCARD_EMU_BTN", theme.btnFont, L"", 330, 250, 270, 56, theme.btnFontColor);
m_gameSettingsLblGCLoader = _addLabel(theme, "GAME_SETTINGS/GC_LOADER", theme.lblFont, L"", 40, 310, 290, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsLblGCLoader_Val = _addLabel(theme, "GAME_SETTINGS/GC_LOADER_BTN", theme.btnFont, L"", 386, 310, 158, 56, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC);
m_gameSettingsBtnGCLoader_M = _addPicButton(theme, "GAME_SETTINGS/GC_LOADER_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 330, 310, 56, 56);
m_gameSettingsBtnGCLoader_P = _addPicButton(theme, "GAME_SETTINGS/GC_LOADER_PLUS", theme.btnTexPlus, theme.btnTexPlusS, 544, 310, 56, 56);
//Page 4 //Page 4
m_gameSettingsLblCustom = _addLabel(theme, "GAME_SETTINGS/CUSTOM", theme.lblFont, L"", 40, 130, 340, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE); m_gameSettingsLblCustom = _addLabel(theme, "GAME_SETTINGS/CUSTOM", theme.lblFont, L"", 40, 130, 340, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsBtnCustom = _addButton(theme, "GAME_SETTINGS/CUSTOM_BTN", theme.btnFont, L"", 330, 130, 240, 56, theme.btnFontColor); m_gameSettingsBtnCustom = _addButton(theme, "GAME_SETTINGS/CUSTOM_BTN", theme.btnFont, L"", 330, 130, 240, 56, theme.btnFontColor);
@ -836,6 +863,10 @@ void CMenu::_initGameSettingsMenu(CMenu::SThemeData &theme)
_setHideAnim(m_gameSettingsBtnNoDVD_M, "GAME_SETTINGS/NO_DVD_PATCH_MINUS", 200, 0, 1.f, 0.f); _setHideAnim(m_gameSettingsBtnNoDVD_M, "GAME_SETTINGS/NO_DVD_PATCH_MINUS", 200, 0, 1.f, 0.f);
_setHideAnim(m_gameSettingsLblDevoMemcardEmu, "GAME_SETTINGS/DEVO_MEMCARD_EMU", -200, 0, 1.f, 0.f); _setHideAnim(m_gameSettingsLblDevoMemcardEmu, "GAME_SETTINGS/DEVO_MEMCARD_EMU", -200, 0, 1.f, 0.f);
_setHideAnim(m_gameSettingsBtnDevoMemcardEmu, "GAME_SETTINGS/DEVO_MEMCARD_EMU_BTN", 200, 0, 1.f, 0.f); _setHideAnim(m_gameSettingsBtnDevoMemcardEmu, "GAME_SETTINGS/DEVO_MEMCARD_EMU_BTN", 200, 0, 1.f, 0.f);
_setHideAnim(m_gameSettingsLblGCLoader, "GAME_SETTINGS/GC_LOADER", -200, 0, 1.f, 0.f);
_setHideAnim(m_gameSettingsLblGCLoader_Val, "GAME_SETTINGS/GC_LOADER_BTN", 200, 0, 1.f, 0.f);
_setHideAnim(m_gameSettingsBtnGCLoader_P, "GAME_SETTINGS/GC_LOADER_PLUS", 200, 0, 1.f, 0.f);
_setHideAnim(m_gameSettingsBtnGCLoader_M, "GAME_SETTINGS/GC_LOADER_MINUS", 200, 0, 1.f, 0.f);
_setHideAnim(m_gameSettingsLblHooktype, "GAME_SETTINGS/HOOKTYPE", -200, 0, 1.f, 0.f); _setHideAnim(m_gameSettingsLblHooktype, "GAME_SETTINGS/HOOKTYPE", -200, 0, 1.f, 0.f);
_setHideAnim(m_gameSettingsLblHooktypeVal, "GAME_SETTINGS/HOOKTYPE_BTN", 200, 0, 1.f, 0.f); _setHideAnim(m_gameSettingsLblHooktypeVal, "GAME_SETTINGS/HOOKTYPE_BTN", 200, 0, 1.f, 0.f);
_setHideAnim(m_gameSettingsBtnHooktypeM, "GAME_SETTINGS/HOOKTYPE_MINUS", 200, 0, 1.f, 0.f); _setHideAnim(m_gameSettingsBtnHooktypeM, "GAME_SETTINGS/HOOKTYPE_MINUS", 200, 0, 1.f, 0.f);
@ -891,4 +922,5 @@ void CMenu::_textGameSettings(void)
m_btnMgr.setText(m_gameSettingsLblFlashSave, _t("cfgg32", L"Flash Save to NAND")); m_btnMgr.setText(m_gameSettingsLblFlashSave, _t("cfgg32", L"Flash Save to NAND"));
m_btnMgr.setText(m_gameSettingsBtnFlashSave, _t("cfgg33", L"Flash")); m_btnMgr.setText(m_gameSettingsBtnFlashSave, _t("cfgg33", L"Flash"));
m_btnMgr.setText(m_gameSettingsLblDevoMemcardEmu, _t("cfgg34", L"Devolution Memcard Emulator")); m_btnMgr.setText(m_gameSettingsLblDevoMemcardEmu, _t("cfgg34", L"Devolution Memcard Emulator"));
m_btnMgr.setText(m_gameSettingsLblGCLoader, _t("cfgg35", L"GameCube Loader"));
} }

View File

@ -210,6 +210,12 @@ const CMenu::SOption CMenu::_NoDVD[3] = {
{ "NoDVDon", L"Enabled" }, { "NoDVDon", L"Enabled" },
}; };
const CMenu::SOption CMenu::_GCLoader[3] = {
{ "GC_Def", L"Default" },
{ "GC_DM", L"DIOS-MIOS" },
{ "GC_Devo", L"Devolution" },
};
const CMenu::SOption CMenu::_vidModePatch[4] = { const CMenu::SOption CMenu::_vidModePatch[4] = {
{ "vmpnone", L"None" }, { "vmpnone", L"None" },
{ "vmpnormal", L"Normal" }, { "vmpnormal", L"Normal" },
@ -217,7 +223,6 @@ const CMenu::SOption CMenu::_vidModePatch[4] = {
{ "vmpall", L"All" } { "vmpall", L"All" }
}; };
const CMenu::SOption CMenu::_hooktype[8] = { const CMenu::SOption CMenu::_hooktype[8] = {
{ "disabled", L"Disabled" }, { "disabled", L"Disabled" },
{ "hooktype1", L"VBI" }, { "hooktype1", L"VBI" },
@ -805,17 +810,17 @@ void CMenu::_launchGC(dir_discHdr *hdr, bool disc)
else if((id[3] != 'P') && (DMLvideoMode == 0)) else if((id[3] != 'P') && (DMLvideoMode == 0))
DMLvideoMode = 2; DMLvideoMode = 2;
if(disc) u8 loader = min((u32)m_gcfg2.getInt(id, "gc_loader", 0), ARRAY_SIZE(CMenu::_GCLoader) - 1u);
DML_New_SetBootDiscOption();
else if(m_devo_installed && strcasestr(path.c_str(), "boot.bin") == NULL)
{
bool memcard_emu = m_gcfg2.getBool(id, "devo_memcard_emu", false);
DEVO_SetOptions(path.c_str(), DeviceName[currentPartition], m_dataDir.c_str(), memcard_emu);
}
else
{
m_cfg.setString("DML", "current_item", id);
if(disc)
{
loader = 0;
DML_New_SetBootDiscOption();
}
else if(loader == 1 || (loader == 0 && (strcasestr(path.c_str(), "boot.bin") != NULL || !m_devo_installed)))
{
loader = 1;
m_cfg.setString("DML", "current_item", id);
char CheatPath[256]; char CheatPath[256];
char NewCheatPath[255]; char NewCheatPath[255];
u8 NMM = min((u32)m_gcfg2.getInt(id, "dml_nmm", 0), ARRAY_SIZE(CMenu::_NMM) - 1u); u8 NMM = min((u32)m_gcfg2.getInt(id, "dml_nmm", 0), ARRAY_SIZE(CMenu::_NMM) - 1u);
@ -849,6 +854,12 @@ void CMenu::_launchGC(dir_discHdr *hdr, bool disc)
WDVD_Close(); WDVD_Close();
} }
} }
else if(loader == 2 || (loader == 0 && m_devo_installed && strcasestr(path.c_str(), "boot.bin") == NULL))
{
loader = 2;
bool memcard_emu = m_gcfg2.getBool(id, "devo_memcard_emu", false);
DEVO_SetOptions(path.c_str(), DeviceName[currentPartition], m_dataDir.c_str(), memcard_emu);
}
m_gcfg1.save(true); m_gcfg1.save(true);
m_gcfg2.save(true); m_gcfg2.save(true);
@ -862,7 +873,7 @@ void CMenu::_launchGC(dir_discHdr *hdr, bool disc)
#endif #endif
GC_SetVideoMode(DMLvideoMode, videoSetting); GC_SetVideoMode(DMLvideoMode, videoSetting);
GC_SetLanguage(GClanguage); GC_SetLanguage(GClanguage);
if(!disc && m_devo_installed && strcasestr(path.c_str(), "boot.bin") == NULL) if(loader == 2)
DEVO_Boot(); DEVO_Boot();
DML_New_WriteOptions(); DML_New_WriteOptions();

View File

@ -78,6 +78,8 @@ cfgg30=Extract Save from NAND
cfgg31=Extract cfgg31=Extract
cfgg32=Flash Save to NAND cfgg32=Flash Save to NAND
cfgg33=Flash cfgg33=Flash
cfgg34=Devolution Memcard Emulator
cfgg35=GameCube Loader
cfgg4=Patch country strings cfgg4=Patch country strings
cfgg5=Ocarina cfgg5=Ocarina
cfgg7=Vipatch cfgg7=Vipatch
@ -202,6 +204,9 @@ gameinfo3=Region: %s
gameinfo4=Release Date: %i.%i.%i gameinfo4=Release Date: %i.%i.%i
gameinfo5=Genre: %s gameinfo5=Genre: %s
gametdb_code=EN gametdb_code=EN
GC_Def=Default
GC_DM=DIOS-MIOS
GC_Devo=Devolution
genesis=Sega Genesis genesis=Sega Genesis
gm1=Play gm1=Play
gm2=Back gm2=Back

View File

@ -77,6 +77,8 @@ cfgg30=Entpacke Speicherstand
cfgg31=Entpacken cfgg31=Entpacken
cfgg32=Installiere Speicherstand cfgg32=Installiere Speicherstand
cfgg33=Installieren cfgg33=Installieren
cfgg34=Devolution Memcard Emulator
cfgg35=GameCube Loader
cfgg3=Sprache cfgg3=Sprache
cfgg4=Länder-Strings patchen cfgg4=Länder-Strings patchen
cfgg5=Ocarina cfgg5=Ocarina
@ -189,6 +191,9 @@ gameinfo3=Region: %s
gameinfo4=Erscheinungstermin: %i.%i.%i gameinfo4=Erscheinungstermin: %i.%i.%i
gameinfo5=Genre: %s gameinfo5=Genre: %s
gametdb_code=DE gametdb_code=DE
GC_Def=Standard
GC_DM=DIOS-MIOS
GC_Devo=Devolution
genesis=Sega Genesis genesis=Sega Genesis
gm1=Spielen gm1=Spielen
gm2=Zurück gm2=Zurück