- fixed launching GC game with devolution.

This commit is contained in:
Fledge68 2020-04-15 12:25:31 -05:00
parent 601212e2f6
commit 729bc21a8f
3 changed files with 16 additions and 19 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 MiB

After

Width:  |  Height:  |  Size: 4.1 MiB

View File

@ -406,7 +406,7 @@ void DEVO_SetOptions(const char *isopath, const char *gameID, u8 videomode, u8 l
DCFlushRange((void*)Video_Mode, 4); DCFlushRange((void*)Video_Mode, 4);
/* Set video mode */ /* Set video mode */
if(rmode != 0) if(rmode != NULL)
VIDEO_Configure(rmode); VIDEO_Configure(rmode);
/* Setup video */ /* Setup video */
@ -429,7 +429,8 @@ void DEVO_SetOptions(const char *isopath, const char *gameID, u8 videomode, u8 l
sram = __SYS_LockSram(); sram = __SYS_LockSram();
sram->lang = lang; sram->lang = lang;
__SYS_UnlockSram(1); // 1 -> write changes __SYS_UnlockSram(1); // 1 -> write changes
while(!__SYS_SyncSram()); while(!__SYS_SyncSram())
usleep(100);
} }
void DEVO_Boot() void DEVO_Boot()

View File

@ -211,8 +211,9 @@ void CMenu::_launchHomebrew(const char *filepath, vector<string> arguments)
AddBootArgument(arguments[i].c_str()); AddBootArgument(arguments[i].c_str());
} }
loadIOS(58, false);
ShutdownBeforeExit();// wifi and sd gecko doesnt work anymore after ShutdownBeforeExit();// wifi and sd gecko doesnt work anymore after
NandHandle.Patch_AHB();
IOS_ReloadIOS(58);
BootHomebrew(); BootHomebrew();
Sys_Exit(); Sys_Exit();
} }
@ -577,26 +578,24 @@ void CMenu::_launchGC(dir_discHdr *hdr, bool disc)
} }
Nintendont_SetOptions(path, id, CheatPath, GClanguage, n_config, n_videomode, vidscale, vidoffset, netprofile); Nintendont_SetOptions(path, id, CheatPath, GClanguage, n_config, n_videomode, vidscale, vidoffset, netprofile);
loadIOS(58, false); //nintendont NEEDS ios58 and AHBPROT disabled
/* should be a check for error loading IOS58 and AHBPROT disabled */
ShutdownBeforeExit(); ShutdownBeforeExit();
NandHandle.Patch_AHB();
IOS_ReloadIOS(58);
BootHomebrew(); //regular dol BootHomebrew(); //regular dol
} }
else // loader == DEVOLUTION else // loader == DEVOLUTION
{ {
// devolution does not allow force video and progressive mode // devolution does not allow force video
// ignore video setting choice and use game region always // ignore video setting choice and use game region always
if(id[3] =='E' || id[3] =='J') if(id[3] =='E' || id[3] =='J')// if game is NTSC then video is based on console video
{ {
// if game is NTSC then video is based on console video if(CONF_GetVideo() == CONF_VIDEO_PAL)// get console video
if(CONF_GetVideo() == CONF_VIDEO_PAL) videoMode = 2; //PAL 480i 60hz
videoMode = 2; //PAL 480i
else else
videoMode = 3; //NTSC 480i videoMode = 3; //NTSC 480i 60hz
} }
else else
videoMode = 1; //PAL 576i 50hz videoMode = 1; //PAL 528i 50hz
bool memcard_emu = m_gcfg2.testOptBool(id, "devo_memcard_emu", m_cfg.getBool(GC_DOMAIN, "devo_memcard_emu", false)); bool memcard_emu = m_gcfg2.testOptBool(id, "devo_memcard_emu", m_cfg.getBool(GC_DOMAIN, "devo_memcard_emu", false));
@ -611,12 +610,9 @@ void CMenu::_launchGC(dir_discHdr *hdr, bool disc)
DEVO_GetLoader(m_dataDir.c_str()); DEVO_GetLoader(m_dataDir.c_str());
DEVO_SetOptions(path, id, videoMode, GClanguage, memcard_emu, widescreen, activity_led, m_use_wifi_gecko); DEVO_SetOptions(path, id, videoMode, GClanguage, memcard_emu, widescreen, activity_led, m_use_wifi_gecko);
if(AHBPROT_Patched())
loadIOS(58, false);
else //use cIOS instead to make sure Devolution works anyways
loadIOS(mainIOS, false);
ShutdownBeforeExit(); ShutdownBeforeExit();
NandHandle.Patch_AHB();
IOS_ReloadIOS(58);
DEVO_Boot(); DEVO_Boot();
} }
Sys_Exit(); Sys_Exit();