- fix for being able to select more than 10 categories.

- added prefer_usb option for Wii and GameCube games. when set to yes their partition will be set to USB if USB is connected otherwise set to SD.
- possible fix for homebrew and plugin dol launching by moving ShutdownBeforeExit after loading IOS 58.
This commit is contained in:
Fledge68 2019-10-26 18:45:55 -05:00
parent 43cbf1c6be
commit 8ba563cfd6
7 changed files with 37 additions and 28 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 MiB

After

Width:  |  Height:  |  Size: 3.6 MiB

View File

@ -182,7 +182,7 @@ int main(int argc, char **argv)
/* mount USB if needed */
DeviceHandle.SetMountUSB(isUsingUSB());
DeviceHandle.MountAllUSB();// only mounts any USB if isUsingUSB()
bool usb_mounted = DeviceHandle.MountAllUSB();// only mounts any USB if isUsingUSB()
/* init wait images and show wait animation */
m_vid.setCustomWaitImgs(wait_dir, wait_loop);
@ -192,7 +192,7 @@ int main(int argc, char **argv)
Open_Inputs();// WPAD_SetVRes() is called later in mainMenu.init() during cursor init which gets the theme pointer images
/* init configs, folders, coverflow, gui and more */
if(mainMenu.init())
if(mainMenu.init(usb_mounted))
{
if(CurrentIOS.Version != mainIOS)
{

View File

@ -109,7 +109,7 @@ static void GrabINIFiles(char *FullPath)
INI_List.push_back(FullPath);
}
bool CMenu::init()
bool CMenu::init(bool usb_mounted)
{
SoundHandle.Init();
m_gameSound.SetVoice(1);
@ -182,6 +182,13 @@ bool CMenu::init()
if(strncmp(wii_games_dir, "%s:/", 4) != 0)
strcpy(wii_games_dir, GAMES_DIR);
gprintf("Wii Games Directory: %s\n", wii_games_dir);
if(m_cfg.getBool(WII_DOMAIN, "prefer_usb", false))
{
if(usb_mounted)
m_cfg.setInt(WII_DOMAIN, "partition", USB1);
else
m_cfg.setInt(WII_DOMAIN, "partition", SD);
}
/* GameCube stuff */
m_devo_installed = DEVO_Installed(m_dataDir.c_str());
@ -193,6 +200,13 @@ bool CMenu::init()
gprintf("GameCube Games Directory: %s\n", gc_games_dir);
m_gc_play_banner_sound = m_cfg.getBool(GC_DOMAIN, "play_banner_sound", true);
m_gc_play_default_sound = m_cfg.getBool(GC_DOMAIN, "play_default_sound", true);
if(m_cfg.getBool(GC_DOMAIN, "prefer_usb", false))
{
if(usb_mounted)
m_cfg.setInt(GC_DOMAIN, "partition", USB1);
else
m_cfg.setInt(GC_DOMAIN, "partition", SD);
}
/* Load cIOS Map */
_installed_cios.clear();
@ -1977,15 +1991,13 @@ void CMenu::_initCF(void)
CoverFlow.clear();
CoverFlow.reserve(m_gameList.size());
char requiredCats[10];
char selectedCats[10];
char hiddenCats[10];
strcpy(requiredCats, m_cat.getString("GENERAL", "required_categories").c_str());
strcpy(selectedCats, m_cat.getString("GENERAL", "selected_categories").c_str());
strcpy(hiddenCats, m_cat.getString("GENERAL", "hidden_categories").c_str());
u8 numReqCats = strlen(requiredCats);
u8 numSelCats = strlen(selectedCats);
u8 numHidCats = strlen(hiddenCats);
string requiredCats = m_cat.getString("GENERAL", "required_categories", "");
string selectedCats = m_cat.getString("GENERAL", "selected_categories", "");
string hiddenCats = m_cat.getString("GENERAL", "hidden_categories", "");
u8 numReqCats = requiredCats.length();
u8 numSelCats = selectedCats.length();
u8 numHidCats = hiddenCats.length();
char id[74];
char catID[64];
@ -2050,9 +2062,8 @@ void CMenu::_initCF(void)
if(numReqCats != 0 || numSelCats != 0 || numHidCats != 0) // if all 0 skip checking cats and show all games
{
char idCats[10];
strcpy(idCats, m_cat.getString(catDomain, catID).c_str());
u8 numIdCats = strlen(idCats);
string idCats= m_cat.getString(catDomain, catID, "");
u8 numIdCats = idCats.length();
if(numIdCats == 0)
m_cat.remove(catDomain, catID);
bool inaCat = false;

View File

@ -38,7 +38,7 @@ class CMenu
{
public:
CMenu();
bool init();
bool init(bool usb_mounted);
void error(const wstringEx &msg);
void terror(const char *key, const wchar_t *msg) { error(_fmt(key, msg)); }
int main(void);

View File

@ -189,15 +189,12 @@ void CMenu::_CategorySettings(bool fromGameSet)
}
else
{
char requiredCats[10];
char selectedCats[10];
char hiddenCats[10];
strcpy(requiredCats, m_cat.getString("GENERAL", "required_categories").c_str());
strcpy(selectedCats, m_cat.getString("GENERAL", "selected_categories").c_str());
strcpy(hiddenCats, m_cat.getString("GENERAL", "hidden_categories").c_str());
u8 numReqCats = strlen(requiredCats);
u8 numSelCats = strlen(selectedCats);
u8 numHidCats = strlen(hiddenCats);
string requiredCats = m_cat.getString("GENERAL", "required_categories", "");
string selectedCats = m_cat.getString("GENERAL", "selected_categories", "");
string hiddenCats = m_cat.getString("GENERAL", "hidden_categories", "");
u8 numReqCats = requiredCats.length();
u8 numSelCats = selectedCats.length();
u8 numHidCats = hiddenCats.length();
if(numReqCats != 0)
{

View File

@ -212,8 +212,8 @@ void CMenu::_launchHomebrew(const char *filepath, vector<string> arguments)
AddBootArgument(arguments[i].c_str());
}
ShutdownBeforeExit();// wifi and sd gecko doesnt work anymore after
loadIOS(58, false);
ShutdownBeforeExit();// wifi and sd gecko doesnt work anymore after
BootHomebrew();
Sys_Exit();
}
@ -519,9 +519,10 @@ void CMenu::_launchGC(dir_discHdr *hdr, bool disc)
}
Nintendont_SetOptions(path, id, CheatPath, GClanguage, n_config, n_videomode, vidscale, vidoffset);
ShutdownBeforeExit();
loadIOS(58, false); //nintendont NEEDS ios58 and AHBPROT disabled
/* should be a check for error loading IOS58 and AHBPROT disabled */
ShutdownBeforeExit();
BootHomebrew(); //regular dol
}
else // loader == DEVOLUTION

View File

@ -1 +1 @@
<pd><ViewState><e p="Wiiflow\portlibs" x="false"></e><e p="Wiiflow\source\cheats" x="false"></e><e p="Wiiflow\docs" x="false"></e><e p="Wiiflow\source\fileOps" x="false"></e><e p="Wiiflow\source\gecko" x="false"></e><e p="Wiiflow\source\homebrew" x="false"></e><e p="Wiiflow\source\loader" x="false"></e><e p="Wiiflow\source\libwolfssl" x="false"></e><e p="Wiiflow\source\wstringEx" x="false"></e><e p="Wiiflow\source\gc" x="false"></e><e p="Wiiflow\source\list" x="true"></e><e p="Wiiflow\source\music" x="false"></e><e p="Wiiflow\source\banner" x="false"></e><e p="Wiiflow\source\config" x="true"></e><e p="Wiiflow\source\libwbfs" x="false"></e><e p="Wiiflow\source\memory" x="false"></e><e p="Wiiflow\source\sicksaxis-wrapper" x="false"></e><e p="Wiiflow\source" x="true"></e><e p="Wiiflow\source\channel" x="false"></e><e p="Wiiflow\source\hw" x="false"></e><e p="Wiiflow\source\menu" x="true"></e><e p="Wiiflow\source\network" x="false"></e><e p="Wiiflow\source\plugin" x="true"></e><e p="Wiiflow\source\unzip" x="false"></e><e p="Wiiflow\wii" x="false"></e><e p="Wiiflow\data" x="false"></e><e p="Wiiflow\resources" x="false"></e><e p="Wiiflow\scripts" x="false"></e><e p="Wiiflow\source\booter" x="false"></e><e p="Wiiflow\source\devicemounter" x="false"></e><e p="Wiiflow\source\gui" x="false"></e><e p="Wiiflow" x="true"></e></ViewState></pd>
<pd><ViewState><e p="Wiiflow\portlibs" x="false"></e><e p="Wiiflow\source\cheats" x="false"></e><e p="Wiiflow\docs" x="false"></e><e p="Wiiflow\source\fileOps" x="false"></e><e p="Wiiflow\source\gecko" x="false"></e><e p="Wiiflow\source\homebrew" x="false"></e><e p="Wiiflow\source\loader" x="false"></e><e p="Wiiflow\source\libwolfssl" x="false"></e><e p="Wiiflow\source\wstringEx" x="false"></e><e p="Wiiflow\source\gc" x="false"></e><e p="Wiiflow\source\list" x="false"></e><e p="Wiiflow\source\music" x="false"></e><e p="Wiiflow\source\banner" x="false"></e><e p="Wiiflow\source\config" x="false"></e><e p="Wiiflow\source\libwbfs" x="false"></e><e p="Wiiflow\source\memory" x="false"></e><e p="Wiiflow\source\sicksaxis-wrapper" x="false"></e><e p="Wiiflow\source" x="true"></e><e p="Wiiflow\source\channel" x="false"></e><e p="Wiiflow\source\hw" x="false"></e><e p="Wiiflow\source\menu" x="true"></e><e p="Wiiflow\source\network" x="false"></e><e p="Wiiflow\source\plugin" x="false"></e><e p="Wiiflow\source\unzip" x="false"></e><e p="Wiiflow\wii" x="false"></e><e p="Wiiflow\data" x="false"></e><e p="Wiiflow\resources" x="false"></e><e p="Wiiflow\scripts" x="false"></e><e p="Wiiflow\source\booter" x="false"></e><e p="Wiiflow\source\devicemounter" x="false"></e><e p="Wiiflow\source\gui" x="false"></e><e p="Wiiflow" x="true"></e></ViewState></pd>