-added new option in DML section in wiiflow.ini, dm_r2.1+,

enabled by default, with the option enabled it will use cfg version
2 for dm 2.1 or higher, if disabled it uses cfg version 1. It will
be ignored if dml_r52+ is set to no since that uses the old boot.bin
method then
This commit is contained in:
fix94.1 2012-07-19 20:47:49 +00:00
parent 3ade778445
commit 321a398151
5 changed files with 17 additions and 8 deletions

View File

@ -19,7 +19,7 @@
// DIOS-MIOS // DIOS-MIOS
DML_CFG *DMLCfg = NULL; DML_CFG *DMLCfg = NULL;
void DML_New_SetOptions(const char *GamePath, char *CheatPath, char *NewCheatPath, bool cheats, bool debugger, u8 NMM, u8 nodisc, u8 DMLvideoMode, u8 videoSetting) void DML_New_SetOptions(const char *GamePath, char *CheatPath, char *NewCheatPath, bool cheats, bool debugger, u8 NMM, u8 nodisc, u8 DMLvideoMode, u8 videoSetting, bool new_dm_cfg)
{ {
gprintf("Wiiflow GC: Launch game '%s' through memory (new method)\n", GamePath); gprintf("Wiiflow GC: Launch game '%s' through memory (new method)\n", GamePath);
@ -29,7 +29,11 @@ void DML_New_SetOptions(const char *GamePath, char *CheatPath, char *NewCheatPat
memset(DMLCfg, 0, sizeof(DML_CFG)); memset(DMLCfg, 0, sizeof(DML_CFG));
DMLCfg->Magicbytes = 0xD1050CF6; DMLCfg->Magicbytes = 0xD1050CF6;
DMLCfg->CfgVersion = 0x00000001; if(new_dm_cfg)
DMLCfg->CfgVersion = 0x00000002;
else
DMLCfg->CfgVersion = 0x00000001;
if(videoSetting == 0) if(videoSetting == 0)
DMLCfg->VideoMode |= DML_VID_NONE; DMLCfg->VideoMode |= DML_VID_NONE;
else if(videoSetting == 1) else if(videoSetting == 1)
@ -94,7 +98,7 @@ void DML_Old_SetOptions(char *GamePath, char *CheatPath, char *NewCheatPath, boo
*(vu32*)0xCC003024 |= 7; *(vu32*)0xCC003024 |= 7;
} }
void DML_New_SetBootDiscOption() void DML_New_SetBootDiscOption(bool new_dm_cfg)
{ {
gprintf("Booting GC game\n"); gprintf("Booting GC game\n");
@ -104,7 +108,10 @@ void DML_New_SetBootDiscOption()
memset(DMLCfg, 0, sizeof(DML_CFG)); memset(DMLCfg, 0, sizeof(DML_CFG));
DMLCfg->Magicbytes = 0xD1050CF6; DMLCfg->Magicbytes = 0xD1050CF6;
DMLCfg->CfgVersion = 0x00000001; if(new_dm_cfg)
DMLCfg->CfgVersion = 0x00000002;
else
DMLCfg->CfgVersion = 0x00000001;
DMLCfg->VideoMode |= DML_VID_DML_AUTO; DMLCfg->VideoMode |= DML_VID_DML_AUTO;
DMLCfg->Config |= DML_CFG_BOOT_DISC; DMLCfg->Config |= DML_CFG_BOOT_DISC;

View File

@ -46,9 +46,9 @@ enum dmlvideomode
DML_VID_PROG_PATCH = (1<<4), DML_VID_PROG_PATCH = (1<<4),
}; };
void DML_New_SetOptions(const char *GamePath, char *CheatPath, char *NewCheatPath, bool cheats, bool debugger, u8 NMM, u8 nodisc, u8 DMLvideoMode, u8 videoSetting); void DML_New_SetOptions(const char *GamePath, char *CheatPath, char *NewCheatPath, bool cheats, bool debugger, u8 NMM, u8 nodisc, u8 DMLvideoMode, u8 videoSetting, bool new_dm_cfg);
void DML_Old_SetOptions(char *GamePath, char *CheatPath, char *NewCheatPath, bool cheats); void DML_Old_SetOptions(char *GamePath, char *CheatPath, char *NewCheatPath, bool cheats);
void DML_New_SetBootDiscOption(); void DML_New_SetBootDiscOption(bool new_dm_cfg);
void DML_New_WriteOptions(); void DML_New_WriteOptions();

View File

@ -270,6 +270,7 @@ void CMenu::init(void)
m_show_dml = MIOSisDML(); m_show_dml = MIOSisDML();
m_new_dml = m_cfg.getBool("DML", "dml_r52+", true); m_new_dml = m_cfg.getBool("DML", "dml_r52+", true);
m_new_dm_cfg = m_cfg.getBool("DML", "dm_r2.1+", true);
m_DMLgameDir = sfmt("%%s:/%s", m_cfg.getString("DML", "dir_usb_games", "games").c_str()); m_DMLgameDir = sfmt("%%s:/%s", m_cfg.getString("DML", "dir_usb_games", "games").c_str());
m_cfg.getString("NAND", "path", ""); m_cfg.getString("NAND", "path", "");

View File

@ -179,6 +179,7 @@ private:
u8 m_show_dml; u8 m_show_dml;
bool m_devo_installed; bool m_devo_installed;
bool m_new_dml; bool m_new_dml;
bool m_new_dm_cfg;
bool m_GameTDBLoaded; bool m_GameTDBLoaded;
//Main Config menus //Main Config menus
u16 m_configLblPage; u16 m_configLblPage;

View File

@ -817,7 +817,7 @@ void CMenu::_launchGC(dir_discHdr *hdr, bool disc)
if(disc) if(disc)
{ {
loader = 0; loader = 0;
DML_New_SetBootDiscOption(); DML_New_SetBootDiscOption(m_new_dm_cfg);
} }
else if(loader == 1 || (loader == 0 && (strcasestr(path.c_str(), "boot.bin") != NULL || !m_devo_installed))) else if(loader == 1 || (loader == 0 && (strcasestr(path.c_str(), "boot.bin") != NULL || !m_devo_installed)))
{ {
@ -845,7 +845,7 @@ void CMenu::_launchGC(dir_discHdr *hdr, bool disc)
else else
newPath = &path[path.find_first_of(":/")+1]; newPath = &path[path.find_first_of(":/")+1];
if(m_new_dml) if(m_new_dml)
DML_New_SetOptions(newPath.c_str(), CheatPath, NewCheatPath, cheats, DML_debug, NMM, nodisc, videoMode, videoSetting); DML_New_SetOptions(newPath.c_str(), CheatPath, NewCheatPath, cheats, DML_debug, NMM, nodisc, videoMode, videoSetting, m_new_dm_cfg);
else else
DML_Old_SetOptions((char*)path.c_str(), CheatPath, NewCheatPath, cheats); DML_Old_SetOptions((char*)path.c_str(), CheatPath, NewCheatPath, cheats);