mirror of
https://github.com/Fledge68/WiiFlow_Lite.git
synced 2025-01-23 01:01:12 +01:00
- Game Settings menu changes.
- For GC games, pages 2 - 4 only show settings based on the gc loader selected on page 1. - combined game language and video on page 1 to be used for all (wii, channels, and gc). no more seperate labels and buttons for GC. - Seperated NMM and Nintendont emu memcard because nmm doesn't allow multisave. But they still use the same label and buttons. - Note themes may have to be edited. gcloader up to line 2, native controls down to line 3, devo memcard up to line 1, and no dvd down to line 4.
This commit is contained in:
parent
b99363223c
commit
0880168ea6
@ -448,37 +448,35 @@ private:
|
||||
s16 m_gameSettingsBtnPageP;
|
||||
s16 m_gameSettingsBtnBack;
|
||||
s16 m_gameSettingsLblTitle;
|
||||
|
||||
s16 m_gameSettingsLblGameLanguage;
|
||||
s16 m_gameSettingsLblLanguage;
|
||||
s16 m_gameSettingsBtnLanguageP;
|
||||
s16 m_gameSettingsBtnLanguageM;
|
||||
|
||||
s16 m_gameSettingsLblGameVideo;
|
||||
s16 m_gameSettingsLblVideo;
|
||||
s16 m_gameSettingsBtnVideoP;
|
||||
s16 m_gameSettingsBtnVideoM;
|
||||
|
||||
s16 m_gameSettingsLblDMLGameVideo;
|
||||
s16 m_gameSettingsLblDMLVideo;
|
||||
s16 m_gameSettingsBtnDMLVideoP;
|
||||
s16 m_gameSettingsBtnDMLVideoM;
|
||||
s16 m_gameSettingsLblApploader;
|
||||
s16 m_gameSettingsBtnApploader;
|
||||
|
||||
s16 m_gameSettingsLblGClanguageVal;
|
||||
s16 m_gameSettingsLblGClanguage;
|
||||
s16 m_gameSettingsBtnGClanguageP;
|
||||
s16 m_gameSettingsBtnGClanguageM;
|
||||
|
||||
s16 m_gameSettingsLblIOSreloadBlock;
|
||||
s16 m_gameSettingsBtnIOSreloadBlock;
|
||||
s16 m_gameSettingsLblLED;
|
||||
s16 m_gameSettingsBtnLED;
|
||||
|
||||
s16 m_gameSettingsLblScreenshot;
|
||||
s16 m_gameSettingsBtnScreenshot;
|
||||
|
||||
s16 m_gameSettingsLblAspectRatio;
|
||||
s16 m_gameSettingsLblAspectRatioVal;
|
||||
s16 m_gameSettingsBtnAspectRatioP;
|
||||
s16 m_gameSettingsBtnAspectRatioM;
|
||||
|
||||
s16 m_gameSettingsLblNMM;
|
||||
s16 m_gameSettingsLblNMM_Val;
|
||||
s16 m_gameSettingsBtnNMM_P;
|
||||
s16 m_gameSettingsBtnNMM_M;
|
||||
s16 m_gameSettingsLblEmuMemCard;
|
||||
s16 m_gameSettingsLblEmuMemCard_Val;
|
||||
s16 m_gameSettingsBtnEmuMemCard_P;
|
||||
s16 m_gameSettingsBtnEmuMemCard_M;
|
||||
|
||||
s16 m_gameSettingsLblNoDVD;
|
||||
s16 m_gameSettingsLblNoDVD_Val;
|
||||
@ -488,8 +486,8 @@ private:
|
||||
s16 m_gameSettingsLblDevoMemcardEmu;
|
||||
s16 m_gameSettingsBtnDevoMemcardEmu;
|
||||
|
||||
s16 m_gameSettingsLblDM_Widescreen;
|
||||
s16 m_gameSettingsBtnDM_Widescreen;
|
||||
s16 m_gameSettingsLblWidescreen;
|
||||
s16 m_gameSettingsBtnWidescreen;
|
||||
|
||||
s16 m_gameSettingsLblUSB_HID;
|
||||
s16 m_gameSettingsBtnUSB_HID;
|
||||
@ -507,46 +505,61 @@ private:
|
||||
|
||||
s16 m_gameSettingsLblCustom;
|
||||
s16 m_gameSettingsBtnCustom;
|
||||
|
||||
s16 m_gameSettingsLblLaunchNK;
|
||||
s16 m_gameSettingsBtnLaunchNK;
|
||||
|
||||
s16 m_gameSettingsLblOcarina;
|
||||
s16 m_gameSettingsBtnOcarina;
|
||||
|
||||
s16 m_gameSettingsLblVipatch;
|
||||
s16 m_gameSettingsBtnVipatch;
|
||||
|
||||
s16 m_gameSettingsLblCountryPatch;
|
||||
s16 m_gameSettingsBtnCountryPatch;
|
||||
|
||||
s16 m_gameSettingsLblPrivateServer;
|
||||
s16 m_gameSettingsBtnPrivateServer;
|
||||
|
||||
s16 m_gameSettingsLblManage;
|
||||
s16 m_gameSettingsBtnManage;
|
||||
|
||||
s16 m_gameSettingsLblPatchVidModes;
|
||||
s16 m_gameSettingsLblPatchVidModesVal;
|
||||
s16 m_gameSettingsBtnPatchVidModesM;
|
||||
s16 m_gameSettingsBtnPatchVidModesP;
|
||||
|
||||
s16 m_gameSettingsLblUser[3 * 2];
|
||||
|
||||
s16 m_gameSettingsLblHooktype;
|
||||
s16 m_gameSettingsLblHooktypeVal;
|
||||
s16 m_gameSettingsBtnHooktypeM;
|
||||
s16 m_gameSettingsBtnHooktypeP;
|
||||
|
||||
s16 m_gameSettingsLblEmulationVal;
|
||||
s16 m_gameSettingsBtnEmulationP;
|
||||
s16 m_gameSettingsBtnEmulationM;
|
||||
s16 m_gameSettingsLblEmulation;
|
||||
|
||||
s16 m_gameSettingsLblDebugger;
|
||||
s16 m_gameSettingsLblDebuggerV;
|
||||
s16 m_gameSettingsBtnDebuggerP;
|
||||
s16 m_gameSettingsBtnDebuggerM;
|
||||
|
||||
s16 m_gameSettingsLblCheat;
|
||||
s16 m_gameSettingsBtnCheat;
|
||||
|
||||
s16 m_gameSettingsLblCategoryMain;
|
||||
s16 m_gameSettingsBtnCategoryMain;
|
||||
|
||||
s16 m_gameSettingsLblGameIOS;
|
||||
s16 m_gameSettingsLblIOS;
|
||||
s16 m_gameSettingsBtnIOSP;
|
||||
s16 m_gameSettingsBtnIOSM;
|
||||
|
||||
s16 m_gameSettingsLblExtractSave;
|
||||
s16 m_gameSettingsBtnExtractSave;
|
||||
|
||||
s16 m_gameSettingsLblFlashSave;
|
||||
s16 m_gameSettingsBtnFlashSave;
|
||||
// System Menu
|
||||
@ -947,6 +960,7 @@ private:
|
||||
void _hideWBFS(bool instant = false);
|
||||
void _hideCFTheme(bool instant = false);
|
||||
void _hideGameSettings(bool instant = false);
|
||||
void _hideGameSettingsPg();
|
||||
void _hideSource(bool instant = false);
|
||||
void _hidePluginSettings(bool instant = false);
|
||||
void _hideCategorySettings(bool instant = false);
|
||||
@ -1191,16 +1205,17 @@ private:
|
||||
static const SOption _GlobalVideoModes[6];
|
||||
static const SOption _VideoModes[7];
|
||||
|
||||
static const SOption _GlobalDMLvideoModes[8];
|
||||
static const SOption _GlobalGCvideoModes[8];
|
||||
static const SOption _GlobalGClanguages[7];
|
||||
static const SOption _DMLvideoModes[9];
|
||||
static const SOption _GCvideoModes[9];
|
||||
static const SOption _GClanguages[8];
|
||||
|
||||
static const SOption _NandEmu[2];
|
||||
static const SOption _SaveEmu[5];
|
||||
static const SOption _GlobalSaveEmu[4];
|
||||
static const SOption _AspectRatio[3];
|
||||
static const SOption _NMM[5];
|
||||
static const SOption _NMM[4];
|
||||
static const SOption _NinEmuCard[5];
|
||||
static const SOption _NoDVD[3];
|
||||
static const SOption _GlobalGCLoaders[3];
|
||||
static const SOption _GCLoader[4];
|
||||
|
@ -94,8 +94,8 @@ void CMenu::_showConfig3(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
i = min(max(0, m_cfg.getInt(GC_DOMAIN, "video_mode", 0)), (int)ARRAY_SIZE(CMenu::_GlobalDMLvideoModes) - 1);
|
||||
m_btnMgr.setText(m_config3LblDMLVideo, _t(CMenu::_GlobalDMLvideoModes[i].id, CMenu::_GlobalDMLvideoModes[i].text));
|
||||
i = min(max(0, m_cfg.getInt(GC_DOMAIN, "video_mode", 0)), (int)ARRAY_SIZE(CMenu::_GlobalGCvideoModes) - 1);
|
||||
m_btnMgr.setText(m_config3LblDMLVideo, _t(CMenu::_GlobalGCvideoModes[i].id, CMenu::_GlobalGCvideoModes[i].text));
|
||||
|
||||
i = min(max(0, m_cfg.getInt(GC_DOMAIN, "game_language", 0)), (int)ARRAY_SIZE(CMenu::_GlobalGClanguages) - 1);
|
||||
m_btnMgr.setText(m_config3LblDMLLanguage, _t(CMenu::_GlobalGClanguages[i].id, CMenu::_GlobalGClanguages[i].text));
|
||||
@ -139,7 +139,7 @@ int CMenu::_config3(void)
|
||||
else if (m_btnMgr.selected(m_config3BtnDMLVideoP) || m_btnMgr.selected(m_config3BtnDMLVideoM))
|
||||
{
|
||||
s8 direction = m_btnMgr.selected(m_config3BtnDMLVideoP) ? 1 : -1;
|
||||
m_cfg.setInt(GC_DOMAIN, "video_mode", (int)loopNum((u32)m_cfg.getInt(GC_DOMAIN, "video_mode", 0) + direction, ARRAY_SIZE(CMenu::_GlobalDMLvideoModes)));
|
||||
m_cfg.setInt(GC_DOMAIN, "video_mode", (int)loopNum((u32)m_cfg.getInt(GC_DOMAIN, "video_mode", 0) + direction, ARRAY_SIZE(CMenu::_GlobalGCvideoModes)));
|
||||
_showConfig3();
|
||||
}
|
||||
else if (m_btnMgr.selected(m_config3BtnDMLLoaderP) || m_btnMgr.selected(m_config3BtnDMLLoaderM))
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -79,7 +79,7 @@ const CMenu::SOption CMenu::_VideoModes[7] = {
|
||||
{ "vidprog", L"Progressive" },
|
||||
};
|
||||
|
||||
const CMenu::SOption CMenu::_GlobalDMLvideoModes[8] = {
|
||||
const CMenu::SOption CMenu::_GlobalGCvideoModes[8] = {
|
||||
{ "DMLdefG", L"Game" },
|
||||
{ "DMLpal", L"PAL 576i" },
|
||||
{ "DMLntsc", L"NTSC 480i" },
|
||||
@ -90,7 +90,7 @@ const CMenu::SOption CMenu::_GlobalDMLvideoModes[8] = {
|
||||
{ "DMLmpalP", L"MPAL-P" }
|
||||
};
|
||||
|
||||
const CMenu::SOption CMenu::_DMLvideoModes[9] = {
|
||||
const CMenu::SOption CMenu::_GCvideoModes[9] = {
|
||||
{ "DMLdef", L"Default" },
|
||||
{ "DMLdefG", L"Game" },
|
||||
{ "DMLpal", L"PAL 576i" },
|
||||
@ -149,7 +149,14 @@ const CMenu::SOption CMenu::_AspectRatio[3] = {
|
||||
{ "aspect169", L"Force 16:9" },
|
||||
};
|
||||
|
||||
const CMenu::SOption CMenu::_NMM[5] = {
|
||||
const CMenu::SOption CMenu::_NMM[4] = {
|
||||
{ "NMMDef", L"Default" },
|
||||
{ "NMMOff", L"Disabled" },
|
||||
{ "NMMon", L"Enabled" },
|
||||
{ "NMMdebug", L"Debug" },
|
||||
};
|
||||
|
||||
const CMenu::SOption CMenu::_NinEmuCard[5] = {
|
||||
{ "NMMDef", L"Default" },
|
||||
{ "NMMOff", L"Disabled" },
|
||||
{ "NMMon", L"Enabled" },
|
||||
@ -608,7 +615,7 @@ void CMenu::_game(bool launch)
|
||||
char PluginMagicWord[9];
|
||||
memset(PluginMagicWord, 0, sizeof(PluginMagicWord));
|
||||
strncpy(PluginMagicWord, fmt("%08x", hdr->settings[0]), 8);
|
||||
currentPartition = m_cfg.getInt("PLUGINS/PARTITION", PluginMagicWord, 1);
|
||||
currentPartition = m_cfg.getInt("PLUGINS_PARTITION", PluginMagicWord, 1);
|
||||
m_cfg.setInt(PLUGIN_DOMAIN, "partition", currentPartition);
|
||||
}
|
||||
currentPartition = m_cfg.getInt(PLUGIN_DOMAIN, "partition", 1);
|
||||
@ -797,34 +804,41 @@ void CMenu::_launch(const dir_discHdr *hdr)
|
||||
_launchChannel(&launchHdr);
|
||||
else if(launchHdr.type == TYPE_PLUGIN)
|
||||
{
|
||||
//get dol name and length
|
||||
const char *plugin_dol_name = m_plugin.GetDolName(launchHdr.settings[0]);
|
||||
u8 plugin_dol_len = strlen(plugin_dol_name);
|
||||
//get title and path from hdr
|
||||
char title[101];
|
||||
memset(&title, 0, sizeof(title));
|
||||
u32 title_len_no_ext = 0;
|
||||
const char *path = NULL;
|
||||
if(strchr(launchHdr.path, ':') != NULL)
|
||||
//example rom path - sd:/roms/super mario bros.zip
|
||||
//example scummvm path - games/monkey island.exe
|
||||
if(strchr(launchHdr.path, ':') != NULL)//it's a rom path
|
||||
{
|
||||
//check if music player plugin, if so launch wiiflow's music player
|
||||
if(plugin_dol_len == strlen(MUSIC_DOMAIN) && strcmp(plugin_dol_name, MUSIC_DOMAIN) == 0)
|
||||
{
|
||||
MusicPlayer.LoadFile(launchHdr.path, false);
|
||||
m_exit = false;
|
||||
return;
|
||||
}
|
||||
//get rom title after last '/'
|
||||
strncpy(title, strrchr(launchHdr.path, '/') + 1, 100);
|
||||
if(strchr(launchHdr.path, '.') != NULL)
|
||||
if(strchr(launchHdr.path, '.') != NULL) // if there's extension get length of title without extension
|
||||
title_len_no_ext = strlen(title) - strlen(strrchr(title, '.'));
|
||||
*strrchr(launchHdr.path, '/') = '\0';
|
||||
path = strchr(launchHdr.path, '/') + 1;
|
||||
//get path
|
||||
*strrchr(launchHdr.path, '/') = '\0'; //cut title off end of path
|
||||
path = strchr(launchHdr.path, '/') + 1; //cut sd:/ off of path
|
||||
}
|
||||
else
|
||||
else //it's a scummvm game
|
||||
{
|
||||
path = launchHdr.path;
|
||||
wcstombs(title, launchHdr.title, 63);
|
||||
}
|
||||
m_cfg.setString(PLUGIN_DOMAIN, "current_item", title);
|
||||
// check if quadforce plugin if so then set proper quadforce mios
|
||||
const char *mios_wad = NULL;
|
||||
//if(m_cfg.getBool("PLUGIN_STATE", "444d4c62", false))
|
||||
u32 magic = strtoul("444d4c62", NULL, 16);
|
||||
if(m_plugin.GetEnableStatus(m_cfg, magic))
|
||||
{
|
||||
@ -836,6 +850,10 @@ void CMenu::_launch(const dir_discHdr *hdr)
|
||||
_Wad(mios_wad, true);//install mios
|
||||
}
|
||||
const char *device = (currentPartition == 0 ? "sd" : (DeviceHandle.GetFSType(currentPartition) == PART_FS_NTFS ? "ntfs" : "usb"));
|
||||
/* this is weird - he sets the return to loader to be dev:/wiiflow/plugins/WiiFlowLoader.dol
|
||||
but there is no such dol in the plugins directory and WiiFlowLoader.dol is really a hidden channel
|
||||
on the system menu. This is set because some plugins require a arg for loader dol and even though
|
||||
this isn't real it fills the argument needed. */
|
||||
const char *loader = fmt("%s:/%s/WiiFlowLoader.dol", device, strchr(m_pluginsDir.c_str(), '/') + 1);
|
||||
|
||||
vector<string> arguments = m_plugin.CreateArgs(device, path, title, loader, title_len_no_ext, launchHdr.settings[0]);
|
||||
@ -864,11 +882,14 @@ void CMenu::_launch(const dir_discHdr *hdr)
|
||||
{
|
||||
m_cfg.setString(HOMEBREW_DOMAIN, "current_item", strrchr(launchHdr.path, '/') + 1);
|
||||
_launchHomebrew(gamepath, m_homebrewArgs);
|
||||
/*m_homebrewArgs is basically an empty vector string not needed for homebrew
|
||||
but used by plugins when _launchHomebrew is called */
|
||||
}
|
||||
}
|
||||
ShutdownBeforeExit();
|
||||
Sys_Exit();
|
||||
}
|
||||
|
||||
// taken from Postloader by Stfour
|
||||
#define QFIDN 9
|
||||
static const char qfid[QFIDN][7] = {
|
||||
@ -914,8 +935,8 @@ void CMenu::_launchGC(dir_discHdr *hdr, bool disc)
|
||||
GClanguage = (GClanguage == 0) ? min((u32)m_cfg.getInt(GC_DOMAIN, "game_language", 0), ARRAY_SIZE(CMenu::_GlobalGClanguages) - 1u) : GClanguage-1;
|
||||
if(id[3] == 'E' || id[3] == 'J')
|
||||
GClanguage = 1; //=english
|
||||
u8 videoMode = min((u32)m_gcfg2.getInt(id, "dml_video_mode", 0), ARRAY_SIZE(CMenu::_DMLvideoModes) - 1u);
|
||||
videoMode = (videoMode == 0) ? min((u32)m_cfg.getInt(GC_DOMAIN, "video_mode", 0), ARRAY_SIZE(CMenu::_GlobalDMLvideoModes) - 1u) : videoMode-1;
|
||||
u8 videoMode = min((u32)m_gcfg2.getInt(id, "dml_video_mode", 0), ARRAY_SIZE(CMenu::_GCvideoModes) - 1u);
|
||||
videoMode = (videoMode == 0) ? min((u32)m_cfg.getInt(GC_DOMAIN, "video_mode", 0), ARRAY_SIZE(CMenu::_GlobalGCvideoModes) - 1u) : videoMode-1;
|
||||
if(disc || videoMode == 0)
|
||||
{
|
||||
if(id[3] == 'E' || id[3] == 'J')
|
||||
|
@ -6,6 +6,12 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
enum {
|
||||
AUTOMIOS = 0,
|
||||
DEVOLUTION,
|
||||
NINTENDONT
|
||||
};
|
||||
|
||||
enum {
|
||||
COVERFLOW_WII = 0,
|
||||
COVERFLOW_GAMECUBE,
|
||||
@ -19,7 +25,7 @@ enum
|
||||
{
|
||||
TYPE_WII_DISC = 0,
|
||||
TYPE_WII_WBFS,
|
||||
TYPE_WII_WBFS_EXT,
|
||||
TYPE_WII_WBFS_EXT
|
||||
};
|
||||
|
||||
enum
|
||||
|
Loading…
x
Reference in New Issue
Block a user