- replaced homebrew button on main screen with categories button. new images thanks to Hakaisha. no more 'B' on favorites star.

- replaced adult only button on game selected screen with categories button.
- homebrew button is now restored as one of the quick launch buttons or accessible via source menu or plugin select menu.cpp
- adult only option now replaces the categories option of the game settings menu page 1 line 1.
- locking wiiflow no longer blocks homebrew access. you must use the adult only option for each homebrew app to block kids from accessing it.
- other minor code changes and fixes.
This commit is contained in:
Fledge68 2019-03-04 14:29:46 -06:00
parent 6cb6c64f77
commit 5dc8212037
16 changed files with 341 additions and 321 deletions

View File

@ -12,15 +12,15 @@ Controls:
-- B+A = Launch game immediately -- B+A = Launch game immediately
-- B+Left / B+Right = Change Song -- B+Left / B+Right = Change Song
-- B+UP / B+DOWN = Previous / next game in sorted list (alpha default) -- B+UP / B+DOWN = Previous / next game in sorted list (alpha default)
-- B+Minus = Boot a random game of the current coverflow -- B+Minus = Boot or select a random game of the current coverflow
-- B+Plus = Select sort type (alpha, wifi, players, playcount, etc...) -- B+Plus = Select sort type (alpha, wifi, players, playcount, etc...)
-- Z / ZR = Take Screenshot -- Z / ZR = Take Screenshot
-- A on Onscreen Arrows = Fast skip through games -- A on Onscreen Arrows = Fast skip through games
-- B on Onscreen Arrows = previous / next game in sorted list (alpha default) -- B on Onscreen Arrows = previous / next game in sorted list (alpha default)
-- A on Star Icon = Favorites -- A on Star Icon = Favorites
-- B on Star Icon = Categories -- A on Categories Icon = Select categories to use
-- A on Gear Icon = WiiFlow settings -- A on Gear Icon = Main settings menu
-- A on USB(Wii), GC, Channels, Plugin, or Homebrew Icon = Switch to that source -- A on USB(Wii), GC, Channels, Plugin, or Homebrew Icon = Switch to that source
-- A on Home Icon = Open Home Menu / Exit WiiFlow -- A on Home Icon = Open Home Menu / Exit WiiFlow
-- A on Disc Icon (Game Disc in Drive) = Launch game disc -- A on Disc Icon (Game Disc in Drive) = Launch game disc
@ -29,7 +29,7 @@ Controls:
-- A on box = Flip Cover -- A on box = Flip Cover
-- A out of screen = Launch game -- A out of screen = Launch game
-- A on Star Icon = Toggle Favorite (Yellow = Favorite) -- A on Star Icon = Toggle Favorite (Yellow = Favorite)
-- B on Star Icon = Set Categories for game -- A on Categories Icon = Set Categories for current game
-- A on Hand Icon = Parental Lock (Red = locked) -- A on Hand Icon = Parental Lock (Red = locked)
-- A on Gear Icon = Game Settings -- A on Gear Icon = Game Settings
-- A on X Icon = Delete Game -- A on X Icon = Delete Game
@ -47,7 +47,7 @@ Controls:
-- Plus = Zoom in -- Plus = Zoom in
-- Minus = Zoom out -- Minus = Zoom out
- Settings menus: - All Settings menus:
-- Minus / Plus = Previous / next page -- Minus / Plus = Previous / next page
-- Left / Right = Previous / next page -- Left / Right = Previous / next page
-- Up / Down = Previous / next button -- Up / Down = Previous / next button

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 MiB

After

Width:  |  Height:  |  Size: 3.3 MiB

BIN
out/imgs/btncat.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
out/imgs/btncats.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

@ -1637,7 +1637,7 @@ bool CCoverFlow::_setCurPosToID(const char *id, bool instant, bool path)
{ {
//homebrew folder or rom title.ext //homebrew folder or rom title.ext
const char *name = strrchr(m_items[i].hdr->path, '/'); const char *name = strrchr(m_items[i].hdr->path, '/');
if(name != NULL && strcmp(name + 1, id) == 0) if(name != NULL && strcasecmp(name + 1, id) == 0)
break; break;
else if(strcmp(m_items[i].hdr->path, id) == 0)// scummvm else if(strcmp(m_items[i].hdr->path, id) == 0)// scummvm
break; break;
@ -2659,6 +2659,9 @@ bool CCoverFlow::_loadCoverTexPNG(u32 i, bool box, bool hq, bool blankBoxCover)
if(!m_loadingCovers) if(!m_loadingCovers)
return false; return false;
if(box && m_smallBox)// prevent full cover for smallbox mode
return false;
/* get path to cover png or jpg */ /* get path to cover png or jpg */
const char *path = box ? (blankBoxCover ? mainMenu.getBlankCoverPath(m_items[i].hdr) : const char *path = box ? (blankBoxCover ? mainMenu.getBlankCoverPath(m_items[i].hdr) :
mainMenu.getBoxPath(m_items[i].hdr)) : mainMenu.getFrontPath(m_items[i].hdr); mainMenu.getBoxPath(m_items[i].hdr)) : mainMenu.getFrontPath(m_items[i].hdr);
@ -2733,10 +2736,18 @@ bool CCoverFlow::_loadCoverTexPNG(u32 i, bool box, bool hq, bool blankBoxCover)
if(wfcCoverDir != NULL) if(wfcCoverDir != NULL)
{ {
fsop_MakeFolder(fmt("%s/%s", m_cachePath.c_str(), wfcCoverDir));// will make subfolders if needed fsop_MakeFolder(fmt("%s/%s", m_cachePath.c_str(), wfcCoverDir));// will make subfolders if needed
strncpy(full_path, fmt("%s/%s/%s.wfc", m_cachePath.c_str(), wfcCoverDir, wfcTitle), MAX_FAT_PATH); if(m_smallBox)
strncpy(full_path, fmt("%s/%s/%s_small.wfc", m_cachePath.c_str(), wfcCoverDir, wfcTitle), MAX_FAT_PATH);
else
strncpy(full_path, fmt("%s/%s/%s.wfc", m_cachePath.c_str(), wfcCoverDir, wfcTitle), MAX_FAT_PATH);
} }
else else
strncpy(full_path, fmt("%s/%s.wfc", m_cachePath.c_str(), wfcTitle), MAX_FAT_PATH); {
if(m_smallBox)
strncpy(full_path, fmt("%s/%s_small.wfc", m_cachePath.c_str(), wfcTitle), MAX_FAT_PATH);
else
strncpy(full_path, fmt("%s/%s.wfc", m_cachePath.c_str(), wfcTitle), MAX_FAT_PATH);
}
DCFlushRange(full_path, MAX_FAT_PATH+1); DCFlushRange(full_path, MAX_FAT_PATH+1);
@ -2855,9 +2866,19 @@ CCoverFlow::CLRet CCoverFlow::_loadCoverTex(u32 i, bool box, bool hq, bool blank
/* set full path of wfc file */ /* set full path of wfc file */
if(wfcCoverDir != NULL) if(wfcCoverDir != NULL)
strncpy(full_path, fmt("%s/%s/%s.wfc", m_cachePath.c_str(), wfcCoverDir, wfcTitle), MAX_FAT_PATH); {
if(m_smallBox)
strncpy(full_path, fmt("%s/%s/%s_small.wfc", m_cachePath.c_str(), wfcCoverDir, wfcTitle), MAX_FAT_PATH);
else
strncpy(full_path, fmt("%s/%s/%s.wfc", m_cachePath.c_str(), wfcCoverDir, wfcTitle), MAX_FAT_PATH);
}
else else
strncpy(full_path, fmt("%s/%s.wfc", m_cachePath.c_str(), wfcTitle), MAX_FAT_PATH); {
if(m_smallBox)
strncpy(full_path, fmt("%s/%s_small.wfc", m_cachePath.c_str(), wfcTitle), MAX_FAT_PATH);
else
strncpy(full_path, fmt("%s/%s.wfc", m_cachePath.c_str(), wfcTitle), MAX_FAT_PATH);
}
DCFlushRange(full_path, MAX_FAT_PATH+1); DCFlushRange(full_path, MAX_FAT_PATH+1);

View File

@ -1990,11 +1990,6 @@ void CMenu::_initCF(void)
strcat(tmp1, tmp2); strcat(tmp1, tmp2);
id = tmp1;*/ id = tmp1;*/
} }
else if(m_current_view == COVERFLOW_HOMEBREW)
{
CoverFlow.addItem(&(*hdr), 0, 0);
continue;
}
else if(hdr->type == TYPE_HOMEBREW) else if(hdr->type == TYPE_HOMEBREW)
{ {
wcstombs(id, hdr->title, 63); wcstombs(id, hdr->title, 63);
@ -2012,7 +2007,7 @@ void CMenu::_initCF(void)
favDomain = "FAVORITES_PLUGINS"; favDomain = "FAVORITES_PLUGINS";
adultDomain = "ADULTONLY_PLUGINS"; adultDomain = "ADULTONLY_PLUGINS";
} }
else else // wii, gc, channels
{ {
strcpy(id, hdr->id); strcpy(id, hdr->id);
if(hdr->type == TYPE_GC_GAME && hdr->settings[0] == 1) /* disc 2 */ if(hdr->type == TYPE_GC_GAME && hdr->settings[0] == 1) /* disc 2 */
@ -2138,9 +2133,9 @@ void CMenu::_initCF(void)
} }
/* remove them if false to keep file short */ /* remove them if false to keep file short */
if(!m_gcfg1.getBool(favDomain, id)) if(!m_gcfg1.getBool(favDomain, id))
m_cfg.remove(favDomain, id); m_gcfg1.remove(favDomain, id);
if(!m_gcfg1.getBool(adultDomain, id)) if(!m_gcfg1.getBool(adultDomain, id))
m_cfg.remove(adultDomain, id); m_gcfg1.remove(adultDomain, id);
} }
if(dumpGameLst) if(dumpGameLst)
@ -2150,42 +2145,47 @@ void CMenu::_initCF(void)
} }
CoverFlow.setSorting(m_source_cnt > 1 ? (Sorting)0 : (Sorting)m_cfg.getInt(_domainFromView(), "sort", 0)); CoverFlow.setSorting(m_source_cnt > 1 ? (Sorting)0 : (Sorting)m_cfg.getInt(_domainFromView(), "sort", 0));
if(m_current_view == COVERFLOW_HOMEBREW)
if(!m_sourceflow)
{ {
CoverFlow.setBoxMode(m_cfg.getBool(HOMEBREW_DOMAIN, "box_mode", true)); if(m_current_view == COVERFLOW_HOMEBREW)
CoverFlow.setSmallBoxMode(m_cfg.getBool(HOMEBREW_DOMAIN, "smallbox", false)); {
CoverFlow.setBoxMode(m_cfg.getBool(HOMEBREW_DOMAIN, "box_mode", true));
CoverFlow.setSmallBoxMode(m_cfg.getBool(HOMEBREW_DOMAIN, "smallbox", false));
}
else if(m_current_view == COVERFLOW_PLUGIN)
{
m_plugin.GetEnabledPlugins(m_cfg, &enabledPluginsCount);
if(enabledPluginsCount == 1 && m_cfg.getBool(PLUGIN_ENABLED, "48425257") && m_cfg.getBool(HOMEBREW_DOMAIN, "smallbox"))
CoverFlow.setSmallBoxMode(true);
else
CoverFlow.setSmallBoxMode(false);
int boxmode_cnt = 0;
for(u8 i = 0; m_plugin.PluginExist(i); ++i)
{
if(m_plugin.GetEnableStatus(m_cfg, m_plugin.getPluginMagic(i)))
{
if(m_plugin.GetBoxMode(i))
boxmode_cnt++;
}
}
if(boxmode_cnt == 0)
CoverFlow.setBoxMode(false);
else
CoverFlow.setBoxMode(true);
}
else
{
CoverFlow.setBoxMode(m_cfg.getBool("GENERAL", "box_mode", true));
CoverFlow.setSmallBoxMode(false);
}
} }
else if(m_sourceflow) else // sourceflow
{ {
CoverFlow.setBoxMode(m_cfg.getBool(SOURCEFLOW_DOMAIN, "box_mode", true)); CoverFlow.setBoxMode(m_cfg.getBool(SOURCEFLOW_DOMAIN, "box_mode", true));
CoverFlow.setSmallBoxMode(m_cfg.getBool(SOURCEFLOW_DOMAIN, "smallbox", false)); CoverFlow.setSmallBoxMode(m_cfg.getBool(SOURCEFLOW_DOMAIN, "smallbox", false));
} }
else if(m_current_view != COVERFLOW_PLUGIN)
{
CoverFlow.setBoxMode(m_cfg.getBool("GENERAL", "box_mode", true));
CoverFlow.setSmallBoxMode(false);
}
else
{
m_plugin.GetEnabledPlugins(m_cfg, &enabledPluginsCount);
if(enabledPluginsCount == 1 && m_cfg.getBool(PLUGIN_ENABLED, "48425257") && m_cfg.getBool(HOMEBREW_DOMAIN, "smallbox"))
CoverFlow.setSmallBoxMode(true);
else
CoverFlow.setSmallBoxMode(false);
int boxmode_cnt = 0;
for(u8 i = 0; m_plugin.PluginExist(i); ++i)
{
if(m_plugin.GetEnableStatus(m_cfg, m_plugin.getPluginMagic(i)))
{
if(m_plugin.GetBoxMode(i))
boxmode_cnt++;
}
}
if(boxmode_cnt == 0)
CoverFlow.setBoxMode(false);
else
CoverFlow.setBoxMode(true);
}
CoverFlow.setBufferSize(m_cfg.getInt("GENERAL", "cover_buffer", 20)); CoverFlow.setBufferSize(m_cfg.getInt("GENERAL", "cover_buffer", 20));
CoverFlow.setHQcover(m_cfg.getBool("GENERAL", "cover_use_hq", true)); CoverFlow.setHQcover(m_cfg.getBool("GENERAL", "cover_use_hq", true));
CoverFlow.start(m_imgsDir); CoverFlow.start(m_imgsDir);
@ -2195,7 +2195,7 @@ void CMenu::_initCF(void)
bool path = false; bool path = false;
char cur_item[64]; char cur_item[64];
cur_item[63] = '\0'; cur_item[63] = '\0';
if(m_current_view == COVERFLOW_PLUGIN) if(m_current_view == COVERFLOW_PLUGIN && !m_sourceflow)
{ {
strncpy(m_plugin.PluginMagicWord, m_cfg.getString(PLUGIN_DOMAIN, "cur_magic").c_str(), 8); strncpy(m_plugin.PluginMagicWord, m_cfg.getString(PLUGIN_DOMAIN, "cur_magic").c_str(), 8);
if(!m_cfg.getBool("PLUGINS_ENABLED", m_plugin.PluginMagicWord, false)) if(!m_cfg.getBool("PLUGINS_ENABLED", m_plugin.PluginMagicWord, false))
@ -2247,13 +2247,6 @@ bool CMenu::_loadList(void)
m_cacheList.Clear(); m_cacheList.Clear();
return true; return true;
} }
if(m_current_view == COVERFLOW_HOMEBREW)
{
_loadHomebrewList(HOMEBREW_DIR);
gprintf("Apps found: %i\n", m_gameList.size());
m_cacheList.Clear();
return m_gameList.size() > 0 ? true : false;
}
gprintf("Creating Gamelist\n"); gprintf("Creating Gamelist\n");
if(m_current_view & COVERFLOW_PLUGIN) if(m_current_view & COVERFLOW_PLUGIN)
_loadPluginList(); _loadPluginList();
@ -2267,6 +2260,9 @@ bool CMenu::_loadList(void)
if(m_current_view & COVERFLOW_GAMECUBE) if(m_current_view & COVERFLOW_GAMECUBE)
_loadGamecubeList(); _loadGamecubeList();
if(m_current_view & COVERFLOW_HOMEBREW)
_loadHomebrewList(HOMEBREW_DIR);
m_cacheList.Clear(); m_cacheList.Clear();
gprintf("Games found: %i\n", m_gameList.size()); gprintf("Games found: %i\n", m_gameList.size());

View File

@ -192,6 +192,7 @@ private:
TexData m_mainBgLQ; TexData m_mainBgLQ;
//Main Coverflow //Main Coverflow
s16 m_mainBtnCategories;
s16 m_mainBtnConfig; s16 m_mainBtnConfig;
s16 m_mainBtnHome; s16 m_mainBtnHome;
s16 m_mainBtnFavoritesOn; s16 m_mainBtnFavoritesOn;
@ -413,8 +414,7 @@ private:
}; };
s16 m_gameBtnFavoriteOn; s16 m_gameBtnFavoriteOn;
s16 m_gameBtnFavoriteOff; s16 m_gameBtnFavoriteOff;
s16 m_gameBtnAdultOn; s16 m_gameBtnCategories;
s16 m_gameBtnAdultOff;
s16 m_gameBtnDelete; s16 m_gameBtnDelete;
s16 m_gameBtnSettings; s16 m_gameBtnSettings;
s16 m_gameBtnPlay; s16 m_gameBtnPlay;
@ -569,8 +569,8 @@ private:
s16 m_gameSettingsLblCheat; s16 m_gameSettingsLblCheat;
s16 m_gameSettingsBtnCheat; s16 m_gameSettingsBtnCheat;
s16 m_gameSettingsLblCategoryMain; s16 m_gameSettingsLblAdultOnly;
s16 m_gameSettingsBtnCategoryMain; s16 m_gameSettingsBtnAdultOnly;
s16 m_gameSettingsLblGameIOS; s16 m_gameSettingsLblGameIOS;
s16 m_gameSettingsLblIOS; s16 m_gameSettingsLblIOS;

View File

@ -3,7 +3,7 @@
#include "channel/nand.hpp" #include "channel/nand.hpp"
#include "loader/nk.h" #include "loader/nk.h"
const int CMenu::_nbCfgPages = 11; const int CMenu::_nbCfgPages = 12;
void CMenu::_hideConfigCommon(bool instant) void CMenu::_hideConfigCommon(bool instant)
{ {
@ -91,19 +91,7 @@ void CMenu::_config(int page)
case 6: case 6:
change = _configScreen(); change = _configScreen();
break; break;
case 7: default:
change = _config7(page);
break;
case 8:
change = _config7(page);
break;
case 9:
change = _config7(page);
break;
case 10:
change = _config7(page);
break;
case 11:
change = _config7(page); change = _config7(page);
break; break;
} }
@ -115,7 +103,7 @@ void CMenu::_config(int page)
page += change; page += change;
if (page > _nbCfgPages) if (page > _nbCfgPages)
page = 1; page = 1;
else if (page < 0) else if (page <= 0)
page = _nbCfgPages; page = _nbCfgPages;
} }
} }

View File

@ -66,21 +66,31 @@ void CMenu::_showConfig7(int curPage)
if(m_config7LblUser[i] != -1) if(m_config7LblUser[i] != -1)
m_btnMgr.show(m_config7LblUser[i]); m_btnMgr.show(m_config7LblUser[i]);
m_btnMgr.show(m_config7Lbl1); if(curPage == 12)
m_btnMgr.show(m_config7Btn1); {
m_btnMgr.show(m_config7Lbl2); m_btnMgr.show(m_config7Lbl1);
m_btnMgr.show(m_config7Btn2); m_btnMgr.show(m_config7Btn1);
m_btnMgr.show(m_config7Lbl3); //m_btnMgr.show(m_config7Lbl2);
m_btnMgr.show(m_config7Btn3); //m_btnMgr.show(m_config7Btn2);
m_btnMgr.show(m_config7Lbl4); }
if(curPage == 7 || curPage == 11)
m_btnMgr.show(m_config7Btn4);
else else
{ {
m_btnMgr.show(m_config7Lbl4Val); m_btnMgr.show(m_config7Lbl1);
m_btnMgr.show(m_config7Btn4M); m_btnMgr.show(m_config7Btn1);
m_btnMgr.show(m_config7Btn4P); m_btnMgr.show(m_config7Lbl2);
m_btnMgr.show(m_config7Btn2);
m_btnMgr.show(m_config7Lbl3);
m_btnMgr.show(m_config7Btn3);
m_btnMgr.show(m_config7Lbl4);
if(curPage == 7 || curPage == 11)
m_btnMgr.show(m_config7Btn4);
else
{
m_btnMgr.show(m_config7Lbl4Val);
m_btnMgr.show(m_config7Btn4M);
m_btnMgr.show(m_config7Btn4P);
}
} }
if(curPage == 7) if(curPage == 7)
@ -127,7 +137,7 @@ void CMenu::_showConfig7(int curPage)
m_btnMgr.setText(m_config7Lbl4, _t("cfg716", L"Music fade rate")); m_btnMgr.setText(m_config7Lbl4, _t("cfg716", L"Music fade rate"));
m_btnMgr.setText(m_config7Lbl4Val, wfmt(L"%i", m_cfg.getInt("GENERAL", "music_fade_rate", 8))); m_btnMgr.setText(m_config7Lbl4Val, wfmt(L"%i", m_cfg.getInt("GENERAL", "music_fade_rate", 8)));
} }
else // page 11 else if(curPage == 11)
{ {
m_btnMgr.setText(m_config7Lbl1, _t("cfg717", L"Random game boot or select")); m_btnMgr.setText(m_config7Lbl1, _t("cfg717", L"Random game boot or select"));
m_btnMgr.setText(m_config7Btn1, m_cfg.getBool("GENERAL", "random_select") ? _t("select", L"Select") : _t("boot", L"Boot")); m_btnMgr.setText(m_config7Btn1, m_cfg.getBool("GENERAL", "random_select") ? _t("select", L"Select") : _t("boot", L"Boot"));
@ -138,6 +148,13 @@ void CMenu::_showConfig7(int curPage)
m_btnMgr.setText(m_config7Lbl4, _t("cfg721", L"Play GC default sound")); m_btnMgr.setText(m_config7Lbl4, _t("cfg721", L"Play GC default sound"));
m_btnMgr.setText(m_config7Btn4, m_cfg.getBool(GC_DOMAIN, "play_default_sound") ? _t("yes", L"Yes") : _t("no", L"No")); m_btnMgr.setText(m_config7Btn4, m_cfg.getBool(GC_DOMAIN, "play_default_sound") ? _t("yes", L"Yes") : _t("no", L"No"));
} }
else // page 12
{
m_btnMgr.setText(m_config7Lbl1, _t("cfg722", L"Homebrew settings"));
m_btnMgr.setText(m_config7Btn1, _t("cfg14", L"Set"));
//m_btnMgr.setText(m_config7Lbl2, _t("cfg723", L"Source menu settings"));
//m_btnMgr.setText(m_config7Btn2, _t("cfg14", L"Set"));
}
} }
int CMenu::_config7(int curPage) int CMenu::_config7(int curPage)
@ -285,6 +302,21 @@ int CMenu::_config7(int curPage)
m_gc_play_default_sound = m_cfg.getBool(GC_DOMAIN, "play_default_sound", true); m_gc_play_default_sound = m_cfg.getBool(GC_DOMAIN, "play_default_sound", true);
} }
} }
if(curPage == 12)
{
if(m_btnMgr.selected(m_config7Btn1))
{
_hideConfig7();
_CfgHB();
_showConfig7(12);
}
/*else if(m_btnMgr.selected(m_config7Btn2))
{
_hideConfig7();
_CfgSrc();
_showConfig7(12);
}*/
}
} }
} }
if(rand_music != m_cfg.getBool("GENERAL", "randomize_music")) if(rand_music != m_cfg.getBool("GENERAL", "randomize_music"))

View File

@ -81,8 +81,8 @@ void CMenu::_hideGameSettingsPg(bool instant)
//All //All
m_btnMgr.hide(m_gameSettingsLblManage, instant); m_btnMgr.hide(m_gameSettingsLblManage, instant);
m_btnMgr.hide(m_gameSettingsBtnManage, instant); m_btnMgr.hide(m_gameSettingsBtnManage, instant);
m_btnMgr.hide(m_gameSettingsBtnCategoryMain, instant); m_btnMgr.hide(m_gameSettingsBtnAdultOnly, instant);
m_btnMgr.hide(m_gameSettingsLblCategoryMain, instant); m_btnMgr.hide(m_gameSettingsLblAdultOnly, instant);
m_btnMgr.hide(m_gameSettingsLblGameLanguage, instant); m_btnMgr.hide(m_gameSettingsLblGameLanguage, instant);
m_btnMgr.hide(m_gameSettingsLblLanguage, instant); m_btnMgr.hide(m_gameSettingsLblLanguage, instant);
m_btnMgr.hide(m_gameSettingsBtnLanguageP, instant); m_btnMgr.hide(m_gameSettingsBtnLanguageP, instant);
@ -148,7 +148,29 @@ void CMenu::_hideGameSettingsPg(bool instant)
void CMenu::_showGameSettings() void CMenu::_showGameSettings()
{ {
u32 i; u32 i;
const char *id = GameHdr->id; char id[74];
char catID[64];
memset(id, 0, 74);
memset(catID, 0, 64);
if(GameHdr->type == TYPE_HOMEBREW)
wcstombs(id, GameHdr->title, 63);
else if(GameHdr->type == TYPE_PLUGIN)
{
strncpy(m_plugin.PluginMagicWord, fmt("%08x", GameHdr->settings[0]), 8);
if(strrchr(GameHdr->path, '/') != NULL)
wcstombs(catID, GameHdr->title, 63);
else
strncpy(catID, GameHdr->path, 63);// scummvm
strcpy(id, m_plugin.PluginMagicWord);
strcat(id, fmt("/%s", catID));
}
else
{
strcpy(id, GameHdr->id);
if(GameHdr->type == TYPE_GC_GAME && GameHdr->settings[0] == 1) /* disc 2 */
strcat(id, "_2");
}
_setBg(m_gameSettingsBg, m_gameSettingsBg); _setBg(m_gameSettingsBg, m_gameSettingsBg);
for(i = 0; i < ARRAY_SIZE(m_gameSettingsLblUser); ++i) for(i = 0; i < ARRAY_SIZE(m_gameSettingsLblUser); ++i)
@ -165,8 +187,12 @@ void CMenu::_showGameSettings()
if(GameHdr->type == TYPE_PLUGIN || GameHdr->type == TYPE_HOMEBREW) if(GameHdr->type == TYPE_PLUGIN || GameHdr->type == TYPE_HOMEBREW)
{ {
m_btnMgr.show(m_gameSettingsBtnCategoryMain); m_btnMgr.show(m_gameSettingsBtnAdultOnly);
m_btnMgr.show(m_gameSettingsLblCategoryMain); m_btnMgr.show(m_gameSettingsLblAdultOnly);
if(GameHdr->type == TYPE_PLUGIN)
m_btnMgr.setText(m_gameSettingsBtnAdultOnly, m_gcfg1.getBool("ADULTONLY_PLUGINS", id, false) ? _t("yes", L"Yes") : _t("no", L"No"));
else
m_btnMgr.setText(m_gameSettingsBtnAdultOnly, m_gcfg1.getBool("ADULTONLY", id, false) ? _t("yes", L"Yes") : _t("no", L"No"));
return; return;
} }
@ -187,8 +213,8 @@ void CMenu::_showGameSettings()
if(m_gameSettingsPage == 1) if(m_gameSettingsPage == 1)
{ {
m_btnMgr.show(m_gameSettingsBtnCategoryMain); m_btnMgr.show(m_gameSettingsBtnAdultOnly);
m_btnMgr.show(m_gameSettingsLblCategoryMain); m_btnMgr.show(m_gameSettingsLblAdultOnly);
if(GameHdr->type == TYPE_GC_GAME) if(GameHdr->type == TYPE_GC_GAME)
{ {
@ -376,6 +402,7 @@ void CMenu::_showGameSettings()
} }
} }
m_btnMgr.setText(m_gameSettingsBtnAdultOnly, m_gcfg1.getBool("ADULTONLY", id, false) ? _t("yes", L"Yes") : _t("no", L"No"));
m_btnMgr.setText(m_gameSettingsBtnOcarina, _optBoolToString(m_gcfg2.getOptBool(id, "cheat", 0))); m_btnMgr.setText(m_gameSettingsBtnOcarina, _optBoolToString(m_gcfg2.getOptBool(id, "cheat", 0)));
m_btnMgr.setText(m_gameSettingsBtnLED, _optBoolToString(m_gcfg2.getOptBool(id, "led", 0))); m_btnMgr.setText(m_gameSettingsBtnLED, _optBoolToString(m_gcfg2.getOptBool(id, "led", 0)));
@ -465,7 +492,30 @@ void CMenu::_gameSettings(const dir_discHdr *hdr, bool disc)
{ {
m_gcfg2.load(fmt("%s/" GAME_SETTINGS2_FILENAME, m_settingsDir.c_str())); m_gcfg2.load(fmt("%s/" GAME_SETTINGS2_FILENAME, m_settingsDir.c_str()));
GameHdr = hdr;// GameHdr = hdr;//
const char *id = GameHdr->id; char id[74];
char catID[64];
memset(id, 0, 74);
memset(catID, 0, 64);
if(GameHdr->type == TYPE_HOMEBREW)
wcstombs(id, GameHdr->title, 63);
else if(GameHdr->type == TYPE_PLUGIN)
{
strncpy(m_plugin.PluginMagicWord, fmt("%08x", GameHdr->settings[0]), 8);
if(strrchr(GameHdr->path, '/') != NULL)
wcstombs(catID, GameHdr->title, 63);
else
strncpy(catID, GameHdr->path, 63);// scummvm
strcpy(id, m_plugin.PluginMagicWord);
strcat(id, fmt("/%s", catID));
}
else
{
strcpy(id, GameHdr->id);
if(GameHdr->type == TYPE_GC_GAME && GameHdr->settings[0] == 1) /* disc 2 */
strcat(id, "_2");
}
if(GameHdr->type == TYPE_GC_GAME) if(GameHdr->type == TYPE_GC_GAME)
{ {
videoScale = m_gcfg2.getInt(id, "nin_width", 127); videoScale = m_gcfg2.getInt(id, "nin_width", 127);
@ -736,22 +786,16 @@ void CMenu::_gameSettings(const dir_discHdr *hdr, bool disc)
m_gcfg2.setBool(id, "private_server", !m_gcfg2.getBool(id, "private_server", 0)); m_gcfg2.setBool(id, "private_server", !m_gcfg2.getBool(id, "private_server", 0));
_showGameSettings(); _showGameSettings();
} }
else if(m_btnMgr.selected(m_gameSettingsBtnCategoryMain)) else if(m_btnMgr.selected(m_gameSettingsBtnAdultOnly))
{ {
if(disc) if(disc)
error(_t("cfgg57", L"Not allowed for disc!")); error(_t("cfgg57", L"Not allowed for disc!"));
else else
{ {
_hideGameSettings(); if(GameHdr->type == TYPE_PLUGIN)
_CategorySettings(true); m_gcfg1.setBool("ADULTONLY_PLUGINS", id, !m_gcfg1.getBool("ADULTONLY_PLUGINS", id, false));
// update these in case the user changed games while in cat menu else
id = CoverFlow.getId(); m_gcfg1.setBool("ADULTONLY", id, !m_gcfg1.getBool("ADULTONLY", id, false));
GameHdr = CoverFlow.getHdr();
if(GameHdr->type == TYPE_GC_GAME)
{
videoScale = m_gcfg2.getInt(id, "nin_width", 127);
videoOffset = m_gcfg2.getInt(id, "nin_pos", 127);
}
} }
_showGameSettings(); _showGameSettings();
} }
@ -785,8 +829,8 @@ void CMenu::_initGameSettingsMenu()
m_gameSettingsLblTitle = _addLabel("GAME_SETTINGS/TITLE", theme.titleFont, L"", 0, 10, 640, 60, theme.titleFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE); m_gameSettingsLblTitle = _addLabel("GAME_SETTINGS/TITLE", theme.titleFont, L"", 0, 10, 640, 60, theme.titleFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE);
// Page 1 // Page 1
m_gameSettingsLblCategoryMain = _addLabel("GAME_SETTINGS/CAT_MAIN", theme.lblFont, L"", 20, 125, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE); m_gameSettingsLblAdultOnly = _addLabel("GAME_SETTINGS/ADULT_ONLY", theme.lblFont, L"", 20, 125, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsBtnCategoryMain = _addButton("GAME_SETTINGS/CAT_MAIN_BTN", theme.btnFont, L"", 420, 130, 200, 48, theme.btnFontColor); m_gameSettingsBtnAdultOnly = _addButton("GAME_SETTINGS/ADULT_ONLY_BTN", theme.btnFont, L"", 420, 130, 200, 48, theme.btnFontColor);
m_gameSettingsLblGameIOS = _addLabel("GAME_SETTINGS/IOS", theme.lblFont, L"", 20, 185, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE); m_gameSettingsLblGameIOS = _addLabel("GAME_SETTINGS/IOS", theme.lblFont, L"", 20, 185, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsLblIOS = _addLabel("GAME_SETTINGS/IOS_BTN", theme.btnFont, L"", 468, 190, 104, 48, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC); m_gameSettingsLblIOS = _addLabel("GAME_SETTINGS/IOS_BTN", theme.btnFont, L"", 468, 190, 104, 48, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC);
@ -1056,8 +1100,8 @@ void CMenu::_initGameSettingsMenu()
_setHideAnim(m_gameSettingsLblFlashSave, "GAME_SETTINGS/FLASH_SAVE", 50, 0, -2.f, 0.f); _setHideAnim(m_gameSettingsLblFlashSave, "GAME_SETTINGS/FLASH_SAVE", 50, 0, -2.f, 0.f);
_setHideAnim(m_gameSettingsBtnFlashSave, "GAME_SETTINGS/FLASH_SAVE_BTN", -50, 0, 1.f, 0.f); _setHideAnim(m_gameSettingsBtnFlashSave, "GAME_SETTINGS/FLASH_SAVE_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_gameSettingsLblCategoryMain, "GAME_SETTINGS/CAT_MAIN", 50, 0, -2.f, 0.f); _setHideAnim(m_gameSettingsLblAdultOnly, "GAME_SETTINGS/ADULT_ONLY", 50, 0, -2.f, 0.f);
_setHideAnim(m_gameSettingsBtnCategoryMain, "GAME_SETTINGS/CAT_MAIN_BTN", -50, 0, 1.f, 0.f); _setHideAnim(m_gameSettingsBtnAdultOnly, "GAME_SETTINGS/ADULT_ONLY_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_gameSettingsLblPage, "GAME_SETTINGS/PAGE_BTN", 0, 0, 1.f, -1.f); _setHideAnim(m_gameSettingsLblPage, "GAME_SETTINGS/PAGE_BTN", 0, 0, 1.f, -1.f);
_setHideAnim(m_gameSettingsBtnPageM, "GAME_SETTINGS/PAGE_MINUS", 0, 0, 1.f, -1.f); _setHideAnim(m_gameSettingsBtnPageM, "GAME_SETTINGS/PAGE_MINUS", 0, 0, 1.f, -1.f);
@ -1075,8 +1119,7 @@ void CMenu::_textGameSettings(void)
m_btnMgr.setText(m_gameSettingsLblManage, _t("cfgg40", L"Manage Cover and Banner")); m_btnMgr.setText(m_gameSettingsLblManage, _t("cfgg40", L"Manage Cover and Banner"));
m_btnMgr.setText(m_gameSettingsBtnManage, _t("cfgg41", L"Manage")); m_btnMgr.setText(m_gameSettingsBtnManage, _t("cfgg41", L"Manage"));
m_btnMgr.setText(m_gameSettingsLblCategoryMain, _t("cfgg17", L"Categories")); m_btnMgr.setText(m_gameSettingsLblAdultOnly, _t("cfgg58", L"Adult only"));
m_btnMgr.setText(m_gameSettingsBtnCategoryMain, _t("cfgg16", L"Select"));
m_btnMgr.setText(m_gameSettingsLblGCLoader, _t("cfgg35", L"GameCube Loader")); m_btnMgr.setText(m_gameSettingsLblGCLoader, _t("cfgg35", L"GameCube Loader"));
m_btnMgr.setText(m_gameSettingsLblGameVideo, _t("cfgg2", L"Video mode")); m_btnMgr.setText(m_gameSettingsLblGameVideo, _t("cfgg2", L"Video mode"));
m_btnMgr.setText(m_gameSettingsLblGameLanguage, _t("cfgg3", L"Language")); m_btnMgr.setText(m_gameSettingsLblGameLanguage, _t("cfgg3", L"Language"));

View File

@ -5,8 +5,8 @@ s16 m_cfghbLblTitle;
s16 m_cfghbBtnBack; s16 m_cfghbBtnBack;
s16 m_cfghbLblUser[4]; s16 m_cfghbLblUser[4];
s16 m_cfghbLblAdjustCF; s16 m_cfghbLblHideHB;
s16 m_cfghbBtnAdjustCF; s16 m_cfghbBtnHideHB;
s16 m_cfghbLblSmallbox; s16 m_cfghbLblSmallbox;
s16 m_cfghbBtnSmallbox; s16 m_cfghbBtnSmallbox;
@ -29,8 +29,8 @@ static void _showCfgHB(void)
if(m_cfghbLblUser[i] != -1) if(m_cfghbLblUser[i] != -1)
m_btnMgr.show(m_cfghbLblUser[i]); m_btnMgr.show(m_cfghbLblUser[i]);
m_btnMgr.show(m_cfghbLblAdjustCF); m_btnMgr.show(m_cfghbLblHideHB);
m_btnMgr.show(m_cfghbBtnAdjustCF); m_btnMgr.show(m_cfghbBtnHideHB);
m_btnMgr.show(m_cfghbLblSmallbox); m_btnMgr.show(m_cfghbLblSmallbox);
m_btnMgr.show(m_cfghbBtnSmallbox); m_btnMgr.show(m_cfghbBtnSmallbox);
@ -53,8 +53,8 @@ static void _hideCfgHB(bool instant)
if(m_cfghbLblUser[i] != -1) if(m_cfghbLblUser[i] != -1)
m_btnMgr.hide(m_cfghbLblUser[i], instant); m_btnMgr.hide(m_cfghbLblUser[i], instant);
m_btnMgr.hide(m_cfghbLblAdjustCF, instant); m_btnMgr.hide(m_cfghbLblHideHB, instant);
m_btnMgr.hide(m_cfghbBtnAdjustCF, instant); m_btnMgr.hide(m_cfghbBtnHideHB, instant);
m_btnMgr.hide(m_cfghbLblSmallbox, instant); m_btnMgr.hide(m_cfghbLblSmallbox, instant);
m_btnMgr.hide(m_cfghbBtnSmallbox, instant); m_btnMgr.hide(m_cfghbBtnSmallbox, instant);
@ -70,6 +70,7 @@ static void _hideCfgHB(bool instant)
void CMenu::_CfgHB(void) void CMenu::_CfgHB(void)
{ {
m_btnMgr.setText(m_cfghbBtnHideHB, m_cfg.getBool(HOMEBREW_DOMAIN, "disable", false) ? _t("yes", L"Yes") : _t("no", L"No"));
m_btnMgr.setText(m_cfghbBtnSmallbox, m_cfg.getBool(HOMEBREW_DOMAIN, "smallbox") ? _t("on", L"On") : _t("off", L"Off")); m_btnMgr.setText(m_cfghbBtnSmallbox, m_cfg.getBool(HOMEBREW_DOMAIN, "smallbox") ? _t("on", L"On") : _t("off", L"Off"));
m_btnMgr.setText(m_cfghbBtnBoxMode, m_cfg.getBool(HOMEBREW_DOMAIN, "box_mode") ? _t("on", L"On") : _t("off", L"Off")); m_btnMgr.setText(m_cfghbBtnBoxMode, m_cfg.getBool(HOMEBREW_DOMAIN, "box_mode") ? _t("on", L"On") : _t("off", L"Off"));
@ -94,12 +95,10 @@ void CMenu::_CfgHB(void)
{ {
if(m_btnMgr.selected(m_cfghbBtnBack)) if(m_btnMgr.selected(m_cfghbBtnBack))
break; break;
else if (m_btnMgr.selected(m_cfghbBtnAdjustCF)) else if (m_btnMgr.selected(m_cfghbBtnHideHB))
{ {
m_refreshGameList = true; m_cfg.setBool(HOMEBREW_DOMAIN, "disable", !m_cfg.getBool(HOMEBREW_DOMAIN, "disable"));
_hideCfgHB(true); m_btnMgr.setText(m_cfghbBtnHideHB, m_cfg.getBool(HOMEBREW_DOMAIN, "disable") ? _t("yes", L"Yes") : _t("no", L"No"));
_cfTheme();
_showCfgHB();
} }
else if (m_btnMgr.selected(m_cfghbBtnSmallbox)) else if (m_btnMgr.selected(m_cfghbBtnSmallbox))
{ {
@ -134,8 +133,8 @@ void CMenu::_initCfgHB(void)
m_cfghbLblTitle = _addLabel("CFG_HB/TITLE", theme.titleFont, L"", 0, 10, 640, 60, theme.titleFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE); m_cfghbLblTitle = _addLabel("CFG_HB/TITLE", theme.titleFont, L"", 0, 10, 640, 60, theme.titleFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE);
m_cfghbBtnBack = _addButton("CFG_HB/BACK_BTN", theme.btnFont, L"", 420, 400, 200, 48, theme.btnFontColor); m_cfghbBtnBack = _addButton("CFG_HB/BACK_BTN", theme.btnFont, L"", 420, 400, 200, 48, theme.btnFontColor);
m_cfghbLblAdjustCF = _addLabel("CFG_HB/ADJUST_CF", theme.lblFont, L"", 20, 125, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE); m_cfghbLblHideHB = _addLabel("CFG_HB/HIDE_HB", theme.lblFont, L"", 20, 125, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_cfghbBtnAdjustCF = _addButton("CFG_HB/ADJUST_CF_BTN", theme.btnFont, L"", 420, 130, 200, 48, theme.btnFontColor); m_cfghbBtnHideHB = _addButton("CFG_HB/HIDE_HB_BTN", theme.btnFont, L"", 420, 130, 200, 48, theme.btnFontColor);
m_cfghbLblSmallbox = _addLabel("CFG_HB/HB_SMALLBOX", theme.lblFont, L"", 20, 185, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE); m_cfghbLblSmallbox = _addLabel("CFG_HB/HB_SMALLBOX", theme.lblFont, L"", 20, 185, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_cfghbBtnSmallbox = _addButton("CFG_HB/HB_SMALLBOX_BTN", theme.btnFont, L"", 420, 190, 200, 48, theme.btnFontColor); m_cfghbBtnSmallbox = _addButton("CFG_HB/HB_SMALLBOX_BTN", theme.btnFont, L"", 420, 190, 200, 48, theme.btnFontColor);
@ -151,8 +150,8 @@ void CMenu::_initCfgHB(void)
_setHideAnim(m_cfghbLblTitle, "CFG_HB/TITLE", 0, 0, -2.f, 0.f); _setHideAnim(m_cfghbLblTitle, "CFG_HB/TITLE", 0, 0, -2.f, 0.f);
_setHideAnim(m_cfghbBtnBack, "CFG_HB/BACK_BTN", 0, 0, 1.f, -1.f); _setHideAnim(m_cfghbBtnBack, "CFG_HB/BACK_BTN", 0, 0, 1.f, -1.f);
_setHideAnim(m_cfghbLblAdjustCF, "CFG_HB/ADJUST_CF", -50, 0, -2.f, 0.f); _setHideAnim(m_cfghbLblHideHB, "CFG_HB/HIDE_HB", -50, 0, -2.f, 0.f);
_setHideAnim(m_cfghbBtnAdjustCF, "CFG_HB/ADJUST_CF_BTN", -50, 0, 1.f, 0.f); _setHideAnim(m_cfghbBtnHideHB, "CFG_HB/HIDE_HB_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_cfghbLblSmallbox, "CFG_HB/HB_SMALLBOX", -50, 0, -2.f, 0.f); _setHideAnim(m_cfghbLblSmallbox, "CFG_HB/HB_SMALLBOX", -50, 0, -2.f, 0.f);
_setHideAnim(m_cfghbBtnSmallbox, "CFG_HB/HB_SMALLBOX_BTN", -50, 0, 1.f, 0.f); _setHideAnim(m_cfghbBtnSmallbox, "CFG_HB/HB_SMALLBOX_BTN", -50, 0, 1.f, 0.f);
@ -172,8 +171,7 @@ void CMenu::_initCfgHB(void)
void CMenu::_textCfgHB(void) void CMenu::_textCfgHB(void)
{ {
m_btnMgr.setText(m_cfghbLblTitle, _t("cfghb1", L"Homebrew Settings")); m_btnMgr.setText(m_cfghbLblTitle, _t("cfghb1", L"Homebrew Settings"));
m_btnMgr.setText(m_cfghbLblAdjustCF, _t("cfgc4", L"Adjust Coverflow")); m_btnMgr.setText(m_cfghbLblHideHB, _t("cfghb5", L"Hide homebrew button"));
m_btnMgr.setText(m_cfghbBtnAdjustCF, _t("cfgc5", L"Go"));
m_btnMgr.setText(m_cfghbLblSmallbox, _t("cfghb2", L"Coverflow Smallbox")); m_btnMgr.setText(m_cfghbLblSmallbox, _t("cfghb2", L"Coverflow Smallbox"));
m_btnMgr.setText(m_cfghbLblBoxMode, _t("cfghb4", L"Box Mode")); m_btnMgr.setText(m_cfghbLblBoxMode, _t("cfghb4", L"Box Mode"));
m_btnMgr.setText(m_cfghbLblPartition, _t("cfghb3", L"Homebrew Partition")); m_btnMgr.setText(m_cfghbLblPartition, _t("cfghb3", L"Homebrew Partition"));

View File

@ -120,14 +120,14 @@ void CMenu::_CfgSrc(void)
else if(m_btnMgr.selected(m_cfgsrcBtnSmallbox)) else if(m_btnMgr.selected(m_cfgsrcBtnSmallbox))
{ {
m_refreshGameList = true; m_refreshGameList = true;
fsop_deleteFolder(fmt("%s/sourceflow", m_cacheDir.c_str())); //fsop_deleteFolder(fmt("%s/sourceflow", m_cacheDir.c_str()));
m_cfg.setBool(SOURCEFLOW_DOMAIN, "smallbox", !m_cfg.getBool(SOURCEFLOW_DOMAIN, "smallbox", false)); m_cfg.setBool(SOURCEFLOW_DOMAIN, "smallbox", !m_cfg.getBool(SOURCEFLOW_DOMAIN, "smallbox", false));
m_btnMgr.setText(m_cfgsrcBtnSmallbox, m_cfg.getBool(SOURCEFLOW_DOMAIN, "smallbox") ? _t("on", L"On") : _t("off", L"Off")); m_btnMgr.setText(m_cfgsrcBtnSmallbox, m_cfg.getBool(SOURCEFLOW_DOMAIN, "smallbox") ? _t("on", L"On") : _t("off", L"Off"));
} }
else if(m_btnMgr.selected(m_cfgsrcBtnBoxMode)) else if(m_btnMgr.selected(m_cfgsrcBtnBoxMode))
{ {
m_refreshGameList = true; m_refreshGameList = true;
fsop_deleteFolder(fmt("%s/sourceflow", m_cacheDir.c_str())); //fsop_deleteFolder(fmt("%s/sourceflow", m_cacheDir.c_str()));
m_cfg.setBool(SOURCEFLOW_DOMAIN, "box_mode", !m_cfg.getBool(SOURCEFLOW_DOMAIN, "box_mode", false)); m_cfg.setBool(SOURCEFLOW_DOMAIN, "box_mode", !m_cfg.getBool(SOURCEFLOW_DOMAIN, "box_mode", false));
m_btnMgr.setText(m_cfgsrcBtnBoxMode, m_cfg.getBool(SOURCEFLOW_DOMAIN, "box_mode") ? _t("on", L"On") : _t("off", L"Off")); m_btnMgr.setText(m_cfgsrcBtnBoxMode, m_cfg.getBool(SOURCEFLOW_DOMAIN, "box_mode") ? _t("on", L"On") : _t("off", L"Off"));
} }

View File

@ -308,8 +308,7 @@ void CMenu::_hideGame(bool instant)
m_btnMgr.hide(m_gameBtnToggleFull, instant); m_btnMgr.hide(m_gameBtnToggleFull, instant);
m_btnMgr.hide(m_gameBtnFavoriteOn, instant); m_btnMgr.hide(m_gameBtnFavoriteOn, instant);
m_btnMgr.hide(m_gameBtnFavoriteOff, instant); m_btnMgr.hide(m_gameBtnFavoriteOff, instant);
m_btnMgr.hide(m_gameBtnAdultOn, instant); m_btnMgr.hide(m_gameBtnCategories, instant);
m_btnMgr.hide(m_gameBtnAdultOff, instant);
for(u8 i = 0; i < ARRAY_SIZE(m_gameLblUser); ++i) for(u8 i = 0; i < ARRAY_SIZE(m_gameLblUser); ++i)
if(m_gameLblUser[i] != -1) if(m_gameLblUser[i] != -1)
m_btnMgr.hide(m_gameLblUser[i], instant); m_btnMgr.hide(m_gameLblUser[i], instant);
@ -542,29 +541,6 @@ void CMenu::_game(bool launch)
coverFlipped = false; coverFlipped = false;
m_banner.SetShowBanner(true); m_banner.SetShowBanner(true);
} }
/* if B on favorites btn goto game categories */
else if(m_btnMgr.selected(m_gameBtnFavoriteOn) || m_btnMgr.selected(m_gameBtnFavoriteOff))
{
_hideGame();
if(m_locked)
{
m_banner.SetShowBanner(false);
error(_t("errgame15", L"WiiFlow locked! Unlock WiiFlow to use this feature."));
m_banner.SetShowBanner(true);
}
else
{
// the mainloop handles drawing banner while in settings
m_banner.ToggleZoom();//zoom to full
m_banner.ToggleGameSettings();// dim brightness
_CategorySettings(true);
m_banner.ToggleGameSettings();//reset brightness
m_banner.ToggleZoom();//de zoom to small
}
_showGame();
if(m_newGame)
startGameSound = -10;
}
/* exit game selected menu */ /* exit game selected menu */
else else
{ {
@ -661,8 +637,6 @@ void CMenu::_game(bool launch)
m_banner.ToggleZoom();//de zoom to small m_banner.ToggleZoom();//de zoom to small
} }
_showGame(); _showGame();
if(m_newGame)
startGameSound = -10;
} }
else if(m_btnMgr.selected(m_gameBtnFavoriteOn) || m_btnMgr.selected(m_gameBtnFavoriteOff)) else if(m_btnMgr.selected(m_gameBtnFavoriteOn) || m_btnMgr.selected(m_gameBtnFavoriteOff))
{ {
@ -673,24 +647,27 @@ void CMenu::_game(bool launch)
if(m_favorites) if(m_favorites)
m_refreshGameList = true; m_refreshGameList = true;
} }
else if(m_btnMgr.selected(m_gameBtnAdultOn) || m_btnMgr.selected(m_gameBtnAdultOff)) else if(m_btnMgr.selected(m_gameBtnCategories))
{ {
if(m_locked) if(m_locked)
{ {
m_banner.SetShowBanner(false); m_banner.SetShowBanner(false);
error(_t("errgame15", L"WiiFlow locked! Unlock WiiFlow to use this feature.")); error(_t("errgame15", L"WiiFlow locked! Unlock WiiFlow to use this feature."));
m_banner.SetShowBanner(true); m_banner.SetShowBanner(true);
_showGame();
} }
else else
{ {
if(hdr->type == TYPE_PLUGIN) _hideGame();
m_gcfg1.setBool("ADULTONLY_PLUGINS", id, !m_gcfg1.getBool("ADULTONLY_PLUGINS", id, false)); // the mainloop handles drawing banner while in settings
else m_banner.ToggleZoom();//zoom to full
m_gcfg1.setBool("ADULTONLY", id, !m_gcfg1.getBool("ADULTONLY", id, false)); m_banner.ToggleGameSettings();// dim brightness
if(m_locked) _CategorySettings(true);
m_refreshGameList = true; m_banner.ToggleGameSettings();//reset brightness
m_banner.ToggleZoom();//de zoom to small
} }
_showGame();
if(m_newGame)
startGameSound = -10;
} }
else if(m_btnMgr.selected(m_gameBtnBack) || m_btnMgr.selected(m_gameBtnBackFull)) else if(m_btnMgr.selected(m_gameBtnBack) || m_btnMgr.selected(m_gameBtnBackFull))
{ {
@ -879,6 +856,7 @@ void CMenu::_game(bool launch)
m_btnMgr.show(m_gameBtnBack); m_btnMgr.show(m_gameBtnBack);
m_btnMgr.show(m_gameBtnSettings); m_btnMgr.show(m_gameBtnSettings);
m_btnMgr.show(m_gameBtnDelete); m_btnMgr.show(m_gameBtnDelete);
m_btnMgr.show(m_gameBtnCategories);
bool b; bool b;
if(hdr->type == TYPE_PLUGIN) if(hdr->type == TYPE_PLUGIN)
b = m_gcfg1.getBool("FAVORITES_PLUGINS", id, false); b = m_gcfg1.getBool("FAVORITES_PLUGINS", id, false);
@ -886,12 +864,6 @@ void CMenu::_game(bool launch)
b = m_gcfg1.getBool("FAVORITES", id, false); b = m_gcfg1.getBool("FAVORITES", id, false);
m_btnMgr.show(b ? m_gameBtnFavoriteOn : m_gameBtnFavoriteOff); m_btnMgr.show(b ? m_gameBtnFavoriteOn : m_gameBtnFavoriteOff);
m_btnMgr.hide(b ? m_gameBtnFavoriteOff : m_gameBtnFavoriteOn); m_btnMgr.hide(b ? m_gameBtnFavoriteOff : m_gameBtnFavoriteOn);
if(hdr->type == TYPE_PLUGIN)
b = m_gcfg1.getBool("ADULTONLY_PLUGINS", id, false);
else
b = m_gcfg1.getBool("ADULTONLY", id, false);
m_btnMgr.show(b ? m_gameBtnAdultOn : m_gameBtnAdultOff);
m_btnMgr.hide(b ? m_gameBtnAdultOff : m_gameBtnAdultOn);
for(u8 i = 0; i < ARRAY_SIZE(m_gameLblUser) - 2; ++i)// #4 is used for banner frame for(u8 i = 0; i < ARRAY_SIZE(m_gameLblUser) - 2; ++i)// #4 is used for banner frame
if(m_gameLblUser[i] != -1) if(m_gameLblUser[i] != -1)
m_btnMgr.show(m_gameLblUser[i]); m_btnMgr.show(m_gameLblUser[i]);
@ -900,8 +872,7 @@ void CMenu::_game(bool launch)
{ {
m_btnMgr.hide(m_gameBtnFavoriteOn); m_btnMgr.hide(m_gameBtnFavoriteOn);
m_btnMgr.hide(m_gameBtnFavoriteOff); m_btnMgr.hide(m_gameBtnFavoriteOff);
m_btnMgr.hide(m_gameBtnAdultOn); m_btnMgr.hide(m_gameBtnCategories);
m_btnMgr.hide(m_gameBtnAdultOff);
m_btnMgr.hide(m_gameBtnSettings); m_btnMgr.hide(m_gameBtnSettings);
m_btnMgr.hide(m_gameBtnDelete); m_btnMgr.hide(m_gameBtnDelete);
m_btnMgr.hide(m_gameBtnPlay); m_btnMgr.hide(m_gameBtnPlay);
@ -936,8 +907,7 @@ void CMenu::_game(bool launch)
m_btnMgr.hide(m_gameBtnFavoriteOn); m_btnMgr.hide(m_gameBtnFavoriteOn);
m_btnMgr.hide(m_gameBtnFavoriteOff); m_btnMgr.hide(m_gameBtnFavoriteOff);
m_btnMgr.hide(m_gameBtnAdultOn); m_btnMgr.hide(m_gameBtnCategories);
m_btnMgr.hide(m_gameBtnAdultOff);
m_btnMgr.hide(m_gameBtnSettings); m_btnMgr.hide(m_gameBtnSettings);
m_btnMgr.hide(m_gameBtnDelete); m_btnMgr.hide(m_gameBtnDelete);
m_btnMgr.hide(m_gameBtnPlay); m_btnMgr.hide(m_gameBtnPlay);
@ -963,6 +933,7 @@ void CMenu::_game(bool launch)
m_btnMgr.show(m_gameBtnBack); m_btnMgr.show(m_gameBtnBack);
m_btnMgr.show(m_gameBtnSettings); m_btnMgr.show(m_gameBtnSettings);
m_btnMgr.show(m_gameBtnDelete); m_btnMgr.show(m_gameBtnDelete);
m_btnMgr.show(m_gameBtnCategories);
bool b; bool b;
if(hdr->type == TYPE_PLUGIN) if(hdr->type == TYPE_PLUGIN)
b = m_gcfg1.getBool("FAVORITES_PLUGINS", id, false); b = m_gcfg1.getBool("FAVORITES_PLUGINS", id, false);
@ -970,12 +941,6 @@ void CMenu::_game(bool launch)
b = m_gcfg1.getBool("FAVORITES", id, false); b = m_gcfg1.getBool("FAVORITES", id, false);
m_btnMgr.show(b ? m_gameBtnFavoriteOn : m_gameBtnFavoriteOff); m_btnMgr.show(b ? m_gameBtnFavoriteOn : m_gameBtnFavoriteOff);
m_btnMgr.hide(b ? m_gameBtnFavoriteOff : m_gameBtnFavoriteOn); m_btnMgr.hide(b ? m_gameBtnFavoriteOff : m_gameBtnFavoriteOn);
if(hdr->type == TYPE_PLUGIN)
b = m_gcfg1.getBool("ADULTONLY_PLUGINS", id, false);
else
b = m_gcfg1.getBool("ADULTONLY", id, false);
m_btnMgr.show(b ? m_gameBtnAdultOn : m_gameBtnAdultOff);
m_btnMgr.hide(b ? m_gameBtnAdultOff : m_gameBtnAdultOn);
for(u8 i = 0; i < ARRAY_SIZE(m_gameLblUser) - 2; ++i)// don't include small banner frame for(u8 i = 0; i < ARRAY_SIZE(m_gameLblUser) - 2; ++i)// don't include small banner frame
if(m_gameLblUser[i] != -1) if(m_gameLblUser[i] != -1)
m_btnMgr.show(m_gameLblUser[i]); m_btnMgr.show(m_gameLblUser[i]);
@ -984,8 +949,7 @@ void CMenu::_game(bool launch)
{ {
m_btnMgr.hide(m_gameBtnFavoriteOn); m_btnMgr.hide(m_gameBtnFavoriteOn);
m_btnMgr.hide(m_gameBtnFavoriteOff); m_btnMgr.hide(m_gameBtnFavoriteOff);
m_btnMgr.hide(m_gameBtnAdultOn); m_btnMgr.hide(m_gameBtnCategories);
m_btnMgr.hide(m_gameBtnAdultOff);
m_btnMgr.hide(m_gameBtnSettings); m_btnMgr.hide(m_gameBtnSettings);
m_btnMgr.hide(m_gameBtnDelete); m_btnMgr.hide(m_gameBtnDelete);
m_btnMgr.hide(m_gameBtnPlay); m_btnMgr.hide(m_gameBtnPlay);
@ -2035,10 +1999,8 @@ void CMenu::_initGameMenu()
TexData texGameFavOnSel; TexData texGameFavOnSel;
TexData texGameFavOff; TexData texGameFavOff;
TexData texGameFavOffSel; TexData texGameFavOffSel;
TexData texAdultOn; TexData texCategories;
TexData texAdultOnSel; TexData texCategoriesSel;
TexData texAdultOff;
TexData texAdultOffSel;
TexData texDelete; TexData texDelete;
TexData texDeleteSel; TexData texDeleteSel;
TexData texSettings; TexData texSettings;
@ -2050,14 +2012,12 @@ void CMenu::_initGameMenu()
TexHandle.fromImageFile(texGameFavOnSel, fmt("%s/gamefavons.png", m_imgsDir.c_str())); TexHandle.fromImageFile(texGameFavOnSel, fmt("%s/gamefavons.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texGameFavOff, fmt("%s/gamefavoff.png", m_imgsDir.c_str())); TexHandle.fromImageFile(texGameFavOff, fmt("%s/gamefavoff.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texGameFavOffSel, fmt("%s/gamefavoffs.png", m_imgsDir.c_str())); TexHandle.fromImageFile(texGameFavOffSel, fmt("%s/gamefavoffs.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texAdultOn, fmt("%s/stopkidon.png", m_imgsDir.c_str())); TexHandle.fromImageFile(texCategories, fmt("%s/btncat.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texAdultOnSel, fmt("%s/stopkidons.png", m_imgsDir.c_str())); TexHandle.fromImageFile(texCategoriesSel, fmt("%s/btncats.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texAdultOff, fmt("%s/stopkidoff.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texAdultOffSel, fmt("%s/stopkidoffs.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texDelete, fmt("%s/delete.png", m_imgsDir.c_str())); TexHandle.fromImageFile(texDelete, fmt("%s/delete.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texDeleteSel, fmt("%s/deletes.png", m_imgsDir.c_str())); TexHandle.fromImageFile(texDeleteSel, fmt("%s/deletes.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texSettings, fmt("%s/btngamecfg.png", m_imgsDir.c_str())); TexHandle.fromImageFile(texSettings, fmt("%s/btnconfig.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texSettingsSel, fmt("%s/btngamecfgs.png", m_imgsDir.c_str())); TexHandle.fromImageFile(texSettingsSel, fmt("%s/btnconfigs.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texToggleBanner, fmt("%s/blank.png", m_imgsDir.c_str())); TexHandle.fromImageFile(texToggleBanner, fmt("%s/blank.png", m_imgsDir.c_str()));
_addUserLabels(m_gameLblUser, ARRAY_SIZE(m_gameLblUser), "GAME"); _addUserLabels(m_gameLblUser, ARRAY_SIZE(m_gameLblUser), "GAME");
@ -2069,8 +2029,7 @@ void CMenu::_initGameMenu()
m_gameBtnBack = _addButton("GAME/BACK_BTN", theme.btnFont, L"", 420, 400, 200, 48, theme.btnFontColor); m_gameBtnBack = _addButton("GAME/BACK_BTN", theme.btnFont, L"", 420, 400, 200, 48, theme.btnFontColor);
m_gameBtnFavoriteOn = _addPicButton("GAME/FAVORITE_ON", texGameFavOn, texGameFavOnSel, 460, 200, 48, 48); m_gameBtnFavoriteOn = _addPicButton("GAME/FAVORITE_ON", texGameFavOn, texGameFavOnSel, 460, 200, 48, 48);
m_gameBtnFavoriteOff = _addPicButton("GAME/FAVORITE_OFF", texGameFavOff, texGameFavOffSel, 460, 200, 48, 48); m_gameBtnFavoriteOff = _addPicButton("GAME/FAVORITE_OFF", texGameFavOff, texGameFavOffSel, 460, 200, 48, 48);
m_gameBtnAdultOn = _addPicButton("GAME/ADULTONLY_ON", texAdultOn, texAdultOnSel, 532, 200, 48, 48); m_gameBtnCategories = _addPicButton("GAME/CATEGORIES_BTN", texCategories, texCategoriesSel, 532, 200, 48, 48);
m_gameBtnAdultOff = _addPicButton("GAME/ADULTONLY_OFF", texAdultOff, texAdultOffSel, 532, 200, 48, 48);
m_gameBtnSettings = _addPicButton("GAME/SETTINGS_BTN", texSettings, texSettingsSel, 460, 272, 48, 48); m_gameBtnSettings = _addPicButton("GAME/SETTINGS_BTN", texSettings, texSettingsSel, 460, 272, 48, 48);
m_gameBtnDelete = _addPicButton("GAME/DELETE_BTN", texDelete, texDeleteSel, 532, 272, 48, 48); m_gameBtnDelete = _addPicButton("GAME/DELETE_BTN", texDelete, texDeleteSel, 532, 272, 48, 48);
m_gameBtnBackFull = _addButton("GAME/BACK_FULL_BTN", theme.btnFont, L"", 100, 390, 200, 56, theme.btnFontColor); m_gameBtnBackFull = _addButton("GAME/BACK_FULL_BTN", theme.btnFont, L"", 100, 390, 200, 56, theme.btnFontColor);
@ -2088,8 +2047,7 @@ void CMenu::_initGameMenu()
_setHideAnim(m_gameBtnBack, "GAME/BACK_BTN", 0, 0, 1.f, -1.f); _setHideAnim(m_gameBtnBack, "GAME/BACK_BTN", 0, 0, 1.f, -1.f);
_setHideAnim(m_gameBtnFavoriteOn, "GAME/FAVORITE_ON", 0, 0, 1.f, -1.f); _setHideAnim(m_gameBtnFavoriteOn, "GAME/FAVORITE_ON", 0, 0, 1.f, -1.f);
_setHideAnim(m_gameBtnFavoriteOff, "GAME/FAVORITE_OFF", 0, 0, 1.f, -1.f); _setHideAnim(m_gameBtnFavoriteOff, "GAME/FAVORITE_OFF", 0, 0, 1.f, -1.f);
_setHideAnim(m_gameBtnAdultOn, "GAME/ADULTONLY_ON", 0, 0, 1.f, -1.f); _setHideAnim(m_gameBtnCategories, "GAME/CATEGORIES_BTN", 0, 0, 1.f, -1.f);
_setHideAnim(m_gameBtnAdultOff, "GAME/ADULTONLY_OFF", 0, 0, 1.f, -1.f);
_setHideAnim(m_gameBtnSettings, "GAME/SETTINGS_BTN", 0, 0, 1.f, -1.f); _setHideAnim(m_gameBtnSettings, "GAME/SETTINGS_BTN", 0, 0, 1.f, -1.f);
_setHideAnim(m_gameBtnDelete, "GAME/DELETE_BTN", 0, 0, 1.f, -1.f); _setHideAnim(m_gameBtnDelete, "GAME/DELETE_BTN", 0, 0, 1.f, -1.f);
_setHideAnim(m_gameBtnPlayFull, "GAME/PLAY_FULL_BTN", 0, 0, 1.f, 0.f); _setHideAnim(m_gameBtnPlayFull, "GAME/PLAY_FULL_BTN", 0, 0, 1.f, 0.f);

View File

@ -23,6 +23,7 @@ void CMenu::_hideMain(bool instant)
{ {
m_btnMgr.hide(m_mainBtnNext, instant); m_btnMgr.hide(m_mainBtnNext, instant);
m_btnMgr.hide(m_mainBtnPrev, instant); m_btnMgr.hide(m_mainBtnPrev, instant);
m_btnMgr.hide(m_mainBtnCategories, instant);
m_btnMgr.hide(m_mainBtnConfig, instant); m_btnMgr.hide(m_mainBtnConfig, instant);
m_btnMgr.hide(m_mainBtnHome, instant); m_btnMgr.hide(m_mainBtnHome, instant);
m_btnMgr.hide(m_mainBtnHomebrew, instant); m_btnMgr.hide(m_mainBtnHomebrew, instant);
@ -281,6 +282,7 @@ int CMenu::main(void)
bool show_channel = !m_cfg.getBool(CHANNEL_DOMAIN, "disable", false); bool show_channel = !m_cfg.getBool(CHANNEL_DOMAIN, "disable", false);
bool show_plugin = !m_cfg.getBool(PLUGIN_DOMAIN, "disable", false); bool show_plugin = !m_cfg.getBool(PLUGIN_DOMAIN, "disable", false);
bool show_gamecube = !m_cfg.getBool(GC_DOMAIN, "disable", false); bool show_gamecube = !m_cfg.getBool(GC_DOMAIN, "disable", false);
bool show_homebrew = !m_cfg.getBool(HOMEBREW_DOMAIN, "disable", false);
m_multisource = m_cfg.getBool("GENERAL", "multisource", false); m_multisource = m_cfg.getBool("GENERAL", "multisource", false);
bool m_source_on_start = m_cfg.getBool("GENERAL", "source_on_start", false); bool m_source_on_start = m_cfg.getBool("GENERAL", "source_on_start", false);
bool bheld = false;// bheld to indicate btn b was pressed or held bool bheld = false;// bheld to indicate btn b was pressed or held
@ -292,7 +294,7 @@ int CMenu::main(void)
m_prev_view = 0; m_prev_view = 0;
m_current_view = m_cfg.getUInt("GENERAL", "sources", COVERFLOW_WII); m_current_view = m_cfg.getUInt("GENERAL", "sources", COVERFLOW_WII);
m_source_cnt = 0; m_source_cnt = 0;
for(u8 i = 1; i < 16; i <<= 1)//not including coverflow_homebrew for(u8 i = 1; i < 32; i <<= 1)
if(m_current_view & i) if(m_current_view & i)
m_source_cnt++; m_source_cnt++;
@ -396,24 +398,16 @@ int CMenu::main(void)
} }
_showMain(); _showMain();
} }
/* homebrew flow config menu */
else if(m_current_view == COVERFLOW_HOMEBREW)
{
_CfgHB();
if(BTN_B_HELD)
{
bheld = true;
bUsed = true;
}
_showMain();
}
/* Home menu */ /* Home menu */
else else
{ {
if(_Home()) if(_Home())
break;// exit wiiflow break;// exit wiiflow
if(BTN_B_HELD) if(BTN_B_HELD)
{
bheld = true;
bUsed = true; bUsed = true;
}
_showMain(); _showMain();
} }
} }
@ -436,16 +430,20 @@ int CMenu::main(void)
} }
_showMain(); _showMain();
} }
else if(m_btnMgr.selected(m_mainBtnChannel) || m_btnMgr.selected(m_mainBtnWii) || m_btnMgr.selected(m_mainBtnGamecube) || m_btnMgr.selected(m_mainBtnPlugin)) else if(m_btnMgr.selected(m_mainBtnChannel) || m_btnMgr.selected(m_mainBtnWii) || m_btnMgr.selected(m_mainBtnGamecube)
|| m_btnMgr.selected(m_mainBtnPlugin) || m_btnMgr.selected(m_mainBtnHomebrew))
{ {
/* change source via view button on main menu */ /* change source via view button on main menu */
if(m_current_view == COVERFLOW_WII) if(m_current_view == COVERFLOW_WII)
m_current_view = show_gamecube ? COVERFLOW_GAMECUBE : (show_channel ? COVERFLOW_CHANNEL : (show_plugin ? COVERFLOW_PLUGIN : COVERFLOW_WII)); m_current_view = show_gamecube ? COVERFLOW_GAMECUBE : (show_channel ? COVERFLOW_CHANNEL :
(show_plugin ? COVERFLOW_PLUGIN : (show_homebrew ? COVERFLOW_HOMEBREW : COVERFLOW_WII)));
else if(m_current_view == COVERFLOW_GAMECUBE) else if(m_current_view == COVERFLOW_GAMECUBE)
m_current_view = show_channel ? COVERFLOW_CHANNEL : (show_plugin ? COVERFLOW_PLUGIN : COVERFLOW_WII); m_current_view = show_channel ? COVERFLOW_CHANNEL : (show_plugin ? COVERFLOW_PLUGIN : (show_homebrew ? COVERFLOW_HOMEBREW : COVERFLOW_WII));
else if(m_current_view == COVERFLOW_CHANNEL) else if(m_current_view == COVERFLOW_CHANNEL)
m_current_view = show_plugin ? COVERFLOW_PLUGIN : COVERFLOW_WII; m_current_view = show_plugin ? COVERFLOW_PLUGIN : (show_homebrew ? COVERFLOW_HOMEBREW : COVERFLOW_WII);
else if(m_current_view == COVERFLOW_PLUGIN || m_source_cnt > 1) else if(m_current_view == COVERFLOW_PLUGIN)
m_current_view = show_homebrew ? COVERFLOW_HOMEBREW : COVERFLOW_WII;
else if(m_current_view == COVERFLOW_HOMEBREW || m_source_cnt > 1)
m_current_view = COVERFLOW_WII; m_current_view = COVERFLOW_WII;
m_source_cnt = 1; m_source_cnt = 1;
m_cfg.setUInt("GENERAL", "sources", m_current_view); m_cfg.setUInt("GENERAL", "sources", m_current_view);
@ -476,12 +474,44 @@ int CMenu::main(void)
show_gamecube = !m_cfg.getBool(GC_DOMAIN, "disable", false); show_gamecube = !m_cfg.getBool(GC_DOMAIN, "disable", false);
_showMain(); _showMain();
} }
else if(m_btnMgr.selected(m_mainBtnHomebrew)) else if(m_btnMgr.selected(m_mainBtnCategories))
{ {
/* launch homebrew flow */ _hideMain();
if(m_locked && m_cfg.getBool(HOMEBREW_DOMAIN, "parental", false)) _CategorySettings();
if(BTN_B_HELD)// returned using the b btn
{ {
error(_t("errgame15", L"WiiFlow locked! Unlock WiiFlow to use this feature.")); bheld = true;
bUsed = true;
}
_setMainBg();
if(m_refreshGameList)
{
m_refreshGameList = false;
_initCF();
}
}
else if(m_btnMgr.selected(m_mainBtnDVD))
{
if(disc_check & 0x2)
{
/* Boot DVD in drive */
_hideMain(true);
/* Create Fake Header */
dir_discHdr hdr;
memset(&hdr, 0, sizeof(dir_discHdr));
memcpy(&hdr.id, "dvddvd", 6);//this must be set for neek2o
/* Boot the Disc */
_launchGame(&hdr, true, BTN_B_HELD);
if(BTN_B_HELD)
{
bheld = true;
bUsed = true;
}
_showCF(false);
}
else
{
error(_t("main8", L"No disc in drive!"));
if(BTN_B_HELD) if(BTN_B_HELD)
{ {
bheld = true; bheld = true;
@ -489,29 +519,6 @@ int CMenu::main(void)
} }
_showMain(); _showMain();
} }
else
{
m_prev_view = m_current_view;
m_current_view = COVERFLOW_HOMEBREW;
_showCF(true);
}
}
else if(m_btnMgr.selected(m_mainBtnDVD))
{
/* Boot DVD in drive */
_hideMain(true);
/* Create Fake Header */
dir_discHdr hdr;
memset(&hdr, 0, sizeof(dir_discHdr));
memcpy(&hdr.id, "dvddvd", 6);//this must be set for neek2o
/* Boot the Disc */
_launchGame(&hdr, true, BTN_B_HELD);
if(BTN_B_HELD)
{
bheld = true;
bUsed = true;
}
_showCF(false);
} }
else if(m_btnMgr.selected(m_mainBtnFavoritesOn) || m_btnMgr.selected(m_mainBtnFavoritesOff)) else if(m_btnMgr.selected(m_mainBtnFavoritesOn) || m_btnMgr.selected(m_mainBtnFavoritesOff))
{ {
@ -533,7 +540,7 @@ int CMenu::main(void)
} }
else else
{ {
_game(BTN_B_HELD || m_current_view == COVERFLOW_HOMEBREW); _game(BTN_B_HELD);
if(m_exit) if(m_exit)
break; break;
if(BTN_B_HELD) if(BTN_B_HELD)
@ -556,26 +563,7 @@ int CMenu::main(void)
else if(BTN_B_PRESSED) else if(BTN_B_PRESSED)
{ {
bheld = true; bheld = true;
/* Show Categories */ if(m_btnMgr.selected(m_mainBtnNext) || m_btnMgr.selected(m_mainBtnPrev))
if(m_btnMgr.selected(m_mainBtnFavoritesOn) || m_btnMgr.selected(m_mainBtnFavoritesOff))
{
_hideMain();
_CategorySettings();
if(BTN_B_HELD)// returned using the b btn
{
bheld = true;
bUsed = true;
}
else
bheld = false;
_setMainBg();
if(m_refreshGameList)
{
m_refreshGameList = false;
_initCF();
}
}
else if(m_btnMgr.selected(m_mainBtnNext) || m_btnMgr.selected(m_mainBtnPrev))
{ {
bUsed = true; bUsed = true;
const char *domain = _domainFromView(); const char *domain = _domainFromView();
@ -792,21 +780,21 @@ int CMenu::main(void)
} }
} }
/*zones, showing and hiding buttons */ /*zones, showing and hiding buttons */
if(!m_gameList.empty() && m_show_zone_prev && !m_sourceflow && m_current_view != COVERFLOW_HOMEBREW) if(!m_gameList.empty() && m_show_zone_prev && !m_sourceflow)
m_btnMgr.show(m_mainBtnPrev); m_btnMgr.show(m_mainBtnPrev);
else else
m_btnMgr.hide(m_mainBtnPrev); m_btnMgr.hide(m_mainBtnPrev);
if(!m_gameList.empty() && m_show_zone_next && !m_sourceflow && m_current_view != COVERFLOW_HOMEBREW) if(!m_gameList.empty() && m_show_zone_next && !m_sourceflow)
m_btnMgr.show(m_mainBtnNext); m_btnMgr.show(m_mainBtnNext);
else else
m_btnMgr.hide(m_mainBtnNext); m_btnMgr.hide(m_mainBtnNext);
if(m_show_zone_main && !m_sourceflow && m_current_view != COVERFLOW_HOMEBREW) if(m_show_zone_main && !m_sourceflow)
{ {
m_btnMgr.show(m_mainLblUser[0]); m_btnMgr.show(m_mainLblUser[0]);
m_btnMgr.show(m_mainLblUser[1]); m_btnMgr.show(m_mainLblUser[1]);
m_btnMgr.show(m_mainBtnHomebrew); m_btnMgr.show(m_mainBtnCategories);
m_btnMgr.show(m_mainBtnConfig); m_btnMgr.show(m_mainBtnConfig);
m_btnMgr.show(m_mainBtnHome); m_btnMgr.show(m_mainBtnHome);
static bool change = m_favorites; static bool change = m_favorites;
@ -819,12 +807,12 @@ int CMenu::main(void)
m_btnMgr.hide(m_mainLblUser[0]); m_btnMgr.hide(m_mainLblUser[0]);
m_btnMgr.hide(m_mainLblUser[1]); m_btnMgr.hide(m_mainLblUser[1]);
m_btnMgr.hide(m_mainBtnConfig); m_btnMgr.hide(m_mainBtnConfig);
m_btnMgr.hide(m_mainBtnHomebrew); m_btnMgr.hide(m_mainBtnCategories);
m_btnMgr.hide(m_mainBtnHome); m_btnMgr.hide(m_mainBtnHome);
m_btnMgr.hide(m_mainBtnFavoritesOn); m_btnMgr.hide(m_mainBtnFavoritesOn);
m_btnMgr.hide(m_mainBtnFavoritesOff); m_btnMgr.hide(m_mainBtnFavoritesOff);
} }
if(!m_cfg.getBool("GENERAL", "hideviews", false) && m_show_zone_main2 && !m_sourceflow && m_current_view != COVERFLOW_HOMEBREW) if(!m_cfg.getBool("GENERAL", "hideviews", false) && m_show_zone_main2 && !m_sourceflow)
{ {
switch(m_current_view) switch(m_current_view)
{ {
@ -835,6 +823,8 @@ int CMenu::main(void)
m_btnMgr.show(m_mainBtnChannel); m_btnMgr.show(m_mainBtnChannel);
else if(show_plugin) else if(show_plugin)
m_btnMgr.show(m_mainBtnPlugin); m_btnMgr.show(m_mainBtnPlugin);
else if(show_homebrew)
m_btnMgr.show(m_mainBtnHomebrew);
else else
m_btnMgr.show(m_mainBtnWii); m_btnMgr.show(m_mainBtnWii);
break; break;
@ -843,12 +833,22 @@ int CMenu::main(void)
m_btnMgr.show(m_mainBtnChannel); m_btnMgr.show(m_mainBtnChannel);
else if(show_plugin) else if(show_plugin)
m_btnMgr.show(m_mainBtnPlugin); m_btnMgr.show(m_mainBtnPlugin);
else if(show_homebrew)
m_btnMgr.show(m_mainBtnHomebrew);
else else
m_btnMgr.show(m_mainBtnWii); m_btnMgr.show(m_mainBtnWii);
break; break;
case COVERFLOW_CHANNEL: case COVERFLOW_CHANNEL:
if(show_plugin) if(show_plugin)
m_btnMgr.show(m_mainBtnPlugin); m_btnMgr.show(m_mainBtnPlugin);
else if(show_homebrew)
m_btnMgr.show(m_mainBtnHomebrew);
else
m_btnMgr.show(m_mainBtnWii);
break;
case COVERFLOW_PLUGIN:
if(show_homebrew)
m_btnMgr.show(m_mainBtnHomebrew);
else else
m_btnMgr.show(m_mainBtnWii); m_btnMgr.show(m_mainBtnWii);
break; break;
@ -865,10 +865,11 @@ int CMenu::main(void)
m_btnMgr.hide(m_mainBtnWii); m_btnMgr.hide(m_mainBtnWii);
m_btnMgr.hide(m_mainBtnGamecube); m_btnMgr.hide(m_mainBtnGamecube);
m_btnMgr.hide(m_mainBtnPlugin); m_btnMgr.hide(m_mainBtnPlugin);
m_btnMgr.hide(m_mainBtnHomebrew);
m_btnMgr.hide(m_mainLblUser[2]); m_btnMgr.hide(m_mainLblUser[2]);
m_btnMgr.hide(m_mainLblUser[3]); m_btnMgr.hide(m_mainLblUser[3]);
} }
if((disc_check & 0x2) && m_show_zone_main3 && !m_sourceflow && m_current_view != COVERFLOW_HOMEBREW) if(m_show_zone_main3 && !m_sourceflow)
{ {
m_btnMgr.show(m_mainBtnDVD); m_btnMgr.show(m_mainBtnDVD);
m_btnMgr.show(m_mainLblUser[4]); m_btnMgr.show(m_mainLblUser[4]);
@ -906,6 +907,8 @@ int CMenu::main(void)
void CMenu::_initMainMenu() void CMenu::_initMainMenu()
{ {
TexData texCategories;
TexData texCategoriesS;
TexData texHome; TexData texHome;
TexData texHomeS; TexData texHomeS;
TexData texConfig; TexData texConfig;
@ -937,7 +940,9 @@ void CMenu::_initMainMenu()
if(m_theme.loaded() && TexHandle.fromImageFile(bgLQ, fmt("%s/%s", m_themeDataDir.c_str(), m_theme.getString("MAIN/BG", "texture").c_str()), GX_TF_CMPR, 64, 64) == TE_OK) if(m_theme.loaded() && TexHandle.fromImageFile(bgLQ, fmt("%s/%s", m_themeDataDir.c_str(), m_theme.getString("MAIN/BG", "texture").c_str()), GX_TF_CMPR, 64, 64) == TE_OK)
m_mainBgLQ = bgLQ; m_mainBgLQ = bgLQ;
TexHandle.fromImageFile(texHome, fmt("%s/btnquit.png", m_imgsDir.c_str())); TexHandle.fromImageFile(texCategories, fmt("%s/btncat.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texCategoriesS, fmt("%s/btncats.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texHome, fmt("%s/btnquit.png", m_imgsDir.c_str()));// home button
TexHandle.fromImageFile(texHomeS, fmt("%s/btnquits.png", m_imgsDir.c_str())); TexHandle.fromImageFile(texHomeS, fmt("%s/btnquits.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texConfig, fmt("%s/btnconfig.png", m_imgsDir.c_str())); TexHandle.fromImageFile(texConfig, fmt("%s/btnconfig.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texConfigS, fmt("%s/btnconfigs.png", m_imgsDir.c_str())); TexHandle.fromImageFile(texConfigS, fmt("%s/btnconfigs.png", m_imgsDir.c_str()));
@ -957,29 +962,32 @@ void CMenu::_initMainMenu()
TexHandle.fromImageFile(texPrevS, fmt("%s/btnprevs.png", m_imgsDir.c_str())); TexHandle.fromImageFile(texPrevS, fmt("%s/btnprevs.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texNext, fmt("%s/btnnext.png", m_imgsDir.c_str())); TexHandle.fromImageFile(texNext, fmt("%s/btnnext.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texNextS, fmt("%s/btnnexts.png", m_imgsDir.c_str())); TexHandle.fromImageFile(texNextS, fmt("%s/btnnexts.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texFavOn, fmt("%s/favoriteson.png", m_imgsDir.c_str())); TexHandle.fromImageFile(texFavOn, fmt("%s/gamefavon.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texFavOnS, fmt("%s/favoritesons.png", m_imgsDir.c_str())); TexHandle.fromImageFile(texFavOnS, fmt("%s/gamefavons.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texFavOff, fmt("%s/favoritesoff.png", m_imgsDir.c_str())); TexHandle.fromImageFile(texFavOff, fmt("%s/gamefavoff.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texFavOffS, fmt("%s/favoritesoffs.png", m_imgsDir.c_str())); TexHandle.fromImageFile(texFavOffS, fmt("%s/gamefavoffs.png", m_imgsDir.c_str()));
_addUserLabels(m_mainLblUser, ARRAY_SIZE(m_mainLblUser), "MAIN"); _addUserLabels(m_mainLblUser, ARRAY_SIZE(m_mainLblUser), "MAIN");
m_mainBtnConfig = _addPicButton("MAIN/CONFIG_BTN", texConfig, texConfigS, 70, 400, 48, 48); m_mainBtnCategories = _addPicButton("MAIN/CATEGORIES_BTN", texCategories, texCategoriesS, 126, 400, 48, 48);
m_mainBtnHome = _addPicButton("MAIN/QUIT_BTN", texHome, texHomeS, 570, 400, 48, 48); m_mainBtnFavoritesOn = _addPicButton("MAIN/FAVORITES_ON", texFavOn, texFavOnS, 194, 400, 48, 48);
m_mainBtnChannel = _addPicButton("MAIN/CHANNEL_BTN", texChannel, texChannels, 520, 400, 48, 48); m_mainBtnFavoritesOff = _addPicButton("MAIN/FAVORITES_OFF", texFavOff, texFavOffS, 194, 400, 48, 48);
m_mainBtnHomebrew = _addPicButton("MAIN/HOMEBREW_BTN", texHomebrew, texHomebrews, 20, 400, 48, 48); m_mainBtnConfig = _addPicButton("MAIN/CONFIG_BTN", texConfig, texConfigS, 262, 400, 48, 48);
m_mainBtnWii = _addPicButton("MAIN/USB_BTN", texWii, texWiis, 520, 400, 48, 48); m_mainBtnHome = _addPicButton("MAIN/QUIT_BTN", texHome, texHomeS, 330, 400, 48, 48);
m_mainBtnGamecube = _addPicButton("MAIN/DML_BTN", texGamecube, texGamecubes, 520, 400, 48, 48); m_mainBtnChannel = _addPicButton("MAIN/CHANNEL_BTN", texChannel, texChannels,398, 400, 48, 48);
m_mainBtnPlugin = _addPicButton("MAIN/EMU_BTN", texPlugin, texPlugins, 520, 400, 48, 48); m_mainBtnHomebrew = _addPicButton("MAIN/HOMEBREW_BTN", texHomebrew, texHomebrews, 398, 400, 48, 48);
m_mainBtnDVD = _addPicButton("MAIN/DVD_BTN", texDVD, texDVDs, 470, 400, 48, 48); m_mainBtnWii = _addPicButton("MAIN/USB_BTN", texWii, texWiis, 398, 400, 48, 48);
m_mainBtnGamecube = _addPicButton("MAIN/DML_BTN", texGamecube, texGamecubes, 398, 400, 48, 48);
m_mainBtnPlugin = _addPicButton("MAIN/EMU_BTN", texPlugin, texPlugins, 398, 400, 48, 48);
m_mainBtnDVD = _addPicButton("MAIN/DVD_BTN", texDVD, texDVDs, 466, 400, 48, 48);
m_mainBtnNext = _addPicButton("MAIN/NEXT_BTN", texNext, texNextS, 540, 146, 80, 80); m_mainBtnNext = _addPicButton("MAIN/NEXT_BTN", texNext, texNextS, 540, 146, 80, 80);
m_mainBtnPrev = _addPicButton("MAIN/PREV_BTN", texPrev, texPrevS, 20, 146, 80, 80); m_mainBtnPrev = _addPicButton("MAIN/PREV_BTN", texPrev, texPrevS, 20, 146, 80, 80);
m_mainBtnFavoritesOn = _addPicButton("MAIN/FAVORITES_ON", texFavOn, texFavOnS, 288, 400, 64, 64);
m_mainBtnFavoritesOff = _addPicButton("MAIN/FAVORITES_OFF", texFavOff, texFavOffS, 288, 400, 64, 64);
m_mainLblMessage = _addLabel("MAIN/MESSAGE", theme.lblFont, L"", 40, 40, 560, 140, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE); m_mainLblMessage = _addLabel("MAIN/MESSAGE", theme.lblFont, L"", 40, 40, 560, 140, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_mainLblLetter = _addLabel("MAIN/LETTER", theme.titleFont, L"", 540, 40, 80, 80, theme.titleFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, emptyTex); m_mainLblLetter = _addLabel("MAIN/LETTER", theme.titleFont, L"", 540, 40, 80, 80, theme.titleFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, emptyTex);
m_mainLblNotice = _addLabel("MAIN/NOTICE", theme.txtFont, L"", 340, 40, 280, 80, theme.titleFontColor, FTGX_JUSTIFY_RIGHT | FTGX_ALIGN_MIDDLE); m_mainLblNotice = _addLabel("MAIN/NOTICE", theme.txtFont, L"", 340, 40, 280, 80, theme.titleFontColor, FTGX_JUSTIFY_RIGHT | FTGX_ALIGN_MIDDLE);
m_mainLblCurMusic = _addLabel("MAIN/MUSIC", theme.btnFont, L"", 0, 40, 640, 48, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC); m_mainLblCurMusic = _addLabel("MAIN/MUSIC", theme.txtFont, L"", 0, 10, 640, 32, theme.txtFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC);
//#ifdef SHOWMEM //#ifdef SHOWMEM
m_mem1FreeSize = _addLabel("MEM1", theme.btnFont, L"", 40, 300, 480, 56, theme.btnFontColor, FTGX_JUSTIFY_LEFT, emptyTex); m_mem1FreeSize = _addLabel("MEM1", theme.btnFont, L"", 40, 300, 480, 56, theme.btnFontColor, FTGX_JUSTIFY_LEFT, emptyTex);
m_mem2FreeSize = _addLabel("MEM2", theme.btnFont, L"", 40, 356, 480, 56, theme.btnFontColor, FTGX_JUSTIFY_LEFT, emptyTex); m_mem2FreeSize = _addLabel("MEM2", theme.btnFont, L"", 40, 356, 480, 56, theme.btnFontColor, FTGX_JUSTIFY_LEFT, emptyTex);
@ -1017,6 +1025,7 @@ void CMenu::_initMainMenu()
// //
_setHideAnim(m_mainBtnNext, "MAIN/NEXT_BTN", 0, 0, 0.f, 0.f); _setHideAnim(m_mainBtnNext, "MAIN/NEXT_BTN", 0, 0, 0.f, 0.f);
_setHideAnim(m_mainBtnPrev, "MAIN/PREV_BTN", 0, 0, 0.f, 0.f); _setHideAnim(m_mainBtnPrev, "MAIN/PREV_BTN", 0, 0, 0.f, 0.f);
_setHideAnim(m_mainBtnCategories, "MAIN/CATEGORIES_BTN", 0, 40, 0.f, 0.f);
_setHideAnim(m_mainBtnConfig, "MAIN/CONFIG_BTN", 0, 40, 0.f, 0.f); _setHideAnim(m_mainBtnConfig, "MAIN/CONFIG_BTN", 0, 40, 0.f, 0.f);
_setHideAnim(m_mainBtnHome, "MAIN/QUIT_BTN", 0, 40, 0.f, 0.f); _setHideAnim(m_mainBtnHome, "MAIN/QUIT_BTN", 0, 40, 0.f, 0.f);
_setHideAnim(m_mainBtnChannel, "MAIN/CHANNEL_BTN", 0, 40, 0.f, 0.f); _setHideAnim(m_mainBtnChannel, "MAIN/CHANNEL_BTN", 0, 40, 0.f, 0.f);

View File

@ -60,17 +60,7 @@ void CMenu::_sourceFlow()
m_current_view = COVERFLOW_CHANNEL; m_current_view = COVERFLOW_CHANNEL;
} }
else if(source == "homebrew") else if(source == "homebrew")
{ m_current_view = COVERFLOW_HOMEBREW;
if(m_locked && m_cfg.getBool(HOMEBREW_DOMAIN, "parental", false))
{
error(_t("errsource1", L"Homebrew locked!"));
m_current_view = COVERFLOW_WII;// or return
}
else
{
m_current_view = COVERFLOW_HOMEBREW;
}
}
else if(source == "allplugins") else if(source == "allplugins")
{ {
strncpy(single_sourcebtn, btn_selected, 16); strncpy(single_sourcebtn, btn_selected, 16);
@ -421,7 +411,7 @@ bool CMenu::_Source()
m_cfg.setUInt("GENERAL", "sources", m_current_view); m_cfg.setUInt("GENERAL", "sources", m_current_view);
m_source_cnt = 0; m_source_cnt = 0;
for(i = 1; i < 16; i <<= 1)//not including coverflow_homebrew for(i = 1; i < 32; i <<= 1)
if(m_current_view & i) if(m_current_view & i)
m_source_cnt++; m_source_cnt++;
break; break;
@ -499,19 +489,8 @@ bool CMenu::_Source()
} }
else if(source == "homebrew") else if(source == "homebrew")
{ {
if(m_locked && m_cfg.getBool(HOMEBREW_DOMAIN, "parental", false)) m_current_view = COVERFLOW_HOMEBREW;
{ _setSrcOptions();
_hideSource();
error(_t("errsource1", L"Homebrew locked!"));
exitSource = false;
_showSource();
_updateSourceBtns();
}
else
{
m_current_view = COVERFLOW_HOMEBREW;
_setSrcOptions();
}
} }
else if(source == "allplugins") else if(source == "allplugins")
{ {
@ -634,13 +613,7 @@ bool CMenu::_Source()
m_current_view |= COVERFLOW_CHANNEL; m_current_view |= COVERFLOW_CHANNEL;
} }
else if(source == "homebrew") else if(source == "homebrew")
{ m_current_view ^= COVERFLOW_HOMEBREW;
_hideSource();
error(_t("errsource2", L"Homebrew in multisource not allowed!"));
updateSource = false;
_showSource();
_updateSourceBtns();
}
else if(source == "allplugins") else if(source == "allplugins")
{ {
m_plugin.GetEnabledPlugins(m_cfg, &enabledPluginsCount); m_plugin.GetEnabledPlugins(m_cfg, &enabledPluginsCount);

View File

@ -154,6 +154,7 @@ cfgg54=Video Width
cfgg55=Video Position cfgg55=Video Position
cfgg56=Patch PAL50 cfgg56=Patch PAL50
cfgg57=Not allowed for disc! cfgg57=Not allowed for disc!
cfgg58=Adult only
cfgg4=Patch country strings cfgg4=Patch country strings
cfgg5=Ocarina cfgg5=Ocarina
cfgg6= cfgg6=
@ -226,7 +227,7 @@ cfghb1=Homebrew Settings
cfghb2=Coverflow Smallbox cfghb2=Coverflow Smallbox
cfghb3=Homebrew Partition cfghb3=Homebrew Partition
cfghb4=Box Mode cfghb4=Box Mode
cfghb5=Download Covers cfghb5=Hide homebrew button
ChanReal=Real NAND ChanReal=Real NAND
ChanEmu=Emu NAND ChanEmu=Emu NAND
ChanBoth=Both ChanBoth=Both
@ -393,6 +394,7 @@ main4=No apps found in
main5=No roms/items found. main5=No roms/items found.
main6=No plugins Selected. main6=No plugins Selected.
main7=Total Games: %u main7=Total Games: %u
main8=No disc in drive!
mastersystem=Sega Master System mastersystem=Sega Master System
menu=System Menu menu=System Menu
NANDfull=Full NANDfull=Full