- updated version to v4.4.0 r1130 final.

- added HBC 1.1.3 new ID OHBC. this allows wiiflow to use exit to HBC if you have the new one.
- switched HBC_JODI and HBC_HAXX to the correct DEFINE. they were switched wrong but it didn't seem to really have any affect.
- re added the Aspect Ratio option for Emu NAND games. seems it was set to only show for a wii game but now it will show for both wii and nand game. default is your consoles default. so for example if your console is 16:9 and your game doesn't look right try force 4:3.
- re organized the game settings menu to get all game setting options to show. this will make themes not display properly. themes will need to be edited.
- added gc default settings menu accessed via main settings pg3. pg3 no longer requires you to be in gc view to see them now. wish i had more time to add more default settings.
- addded partition settings menu in place of the single partiton selection on pg1. this means you don't have to select the source view first.
- fixed switching from full covers to smallbox covers in sourceflow and brewflow.
- updated the Help Guide to any new button controls (English only).
- updated the xml file.
- other minor theme and code cleanup
This commit is contained in:
fledge68 2016-12-14 18:47:13 +00:00
parent f51510762e
commit b782337d27
33 changed files with 749 additions and 552 deletions

View File

@ -1,59 +1,59 @@
Controls:
- Main menu (coverflow) :
-- Up / Down = Previous / next game (vertical)
-- Left / Right = Previous / next game (horizontal)
-- Minus / Plus = Fast skip through games
-- A = Select game
-- B+A = Launch game immediately
-- Home = Open Home Menu / Exit WiiFlow
-- 1 / 2 = Previous / next coverflow mode
-- Home (sourceflow/menu) = Open source menu config
-- Home (homebrew flow) = Open homebrew flow config
-- 1 / 2 = Previous / next coverflow layout
-- A = Select game
-- B = Open Source Menu (if installed)
-- B+A = Launch game immediately
-- B+Left / B+Right = Change Song
-- B+UP / B+DOWN = previous / next game in sorted list (alpha default)
-- B+Onscreen Arrows = previous / next game in sorted list (alpha default)
-- B+Minus = Switch Partition
-- B+Plus = Select Sort Type (alpha, wifi, players, playcount, etc...)
-- B+UP / B+DOWN = Previous / next game in sorted list (alpha default)
-- B+Minus = Boot a random game of the current coverflow
-- B+Plus = Select sort type (alpha, wifi, players, playcount, etc...)
-- Z / ZR = Take Screenshot
-- A on Onscreen Arrows = Fast skip through games
-- B on Onscreen Arrows = previous / next game in sorted list (alpha default)
-- A on Star Icon = Favorites
-- B on Star Icon = Categories
-- A on Gear Icon = WiiFlow settings
-- A on USB(Wii), GC, Channels, Plugin, or Homebrew Icon = Switch to that view
-- B on USB(Wii), GC, Channels, Plugin, or Homebrew Icon = Open Source Menu
-- B only = Open Source Menu (if enabled)
-- 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 Disc Icon (Game Disc in Drive) = Launch game disc
-- A on Question Mark Icon = View help file
-- B on Question Mark Icon = Boot a random game of the current coverflow
- Game:
-- A on box = Show the backside
-- A on box = Flip Cover
-- A out of screen = Launch game
-- B = Back to coverflow
-- Up / Down = Previous / next game (vertical)
-- Left / Right = Previous / next game (horizontal)
-- Plus = Game Info
---Right (in Game Info) = Game Description
---Left (in Game Desc) = Game Info
-- A on Star Icon = Toggle Favorite (Yellow = Favorite)
-- B on Star Icon = Set Categories for game
-- A on Hand Icon = Parental Lock (Red = locked)
-- A on Gear Icon = Game Settings
-- A on X Icon = Delete Game
-- B = Back to coverflow
-- Up / Down = Previous / next game (vertical)
-- Left / Right = Previous / next game (horizontal)
-- Minus = Play game video if available
-- Plus = Game Info
---Right (in Game Info) = Game Description
---Left (in Game Desc) = Game Info
- Flipped Cover:
-- B = Reset cover
-- Up / Down / Left / Right = Move cover
-- Plus = Zoom in
-- Minus = Zoom out
- Settings menus:
-- Minus / Plus = Previous / next page
-- Left / Right = Previous / next page
-- Up / Down = Previous / next button
- Coverflow Adjust settings:
-- B+Minus / B+Plus = Previous / next page
-- B = Faster adjustment (B+A instead of just A to click a button)
-- B+1 = Copy whole coverflow
-- B+2 = Paste coverflow
TIPS for running games that crash:
If the game just locks up with a black screen at launch then check to see if it is a PAL game.
(Press the Plus button on the game screen.) If it is PAL, then set the game's video mode to "PAL 50Hz" in the game's setting screen.
You can also use a Component Cable and set your Wii to 480p to fix that problem.
If a game crashes, then try running the game again. If it continually crashes, then turn the USB Emulation to \"Off\" in the game's setting screen.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 MiB

After

Width:  |  Height:  |  Size: 3.1 MiB

View File

@ -7,7 +7,7 @@
#include "defines.h"
#include "svnrev.h"
static const string &VERSION_STRING = sfmt("%s (%s-r%s)", APP_NAME, APP_VERSION, SVN_REV);
static const string &VERSION_STRING = sfmt("%s %s (r%s)", APP_NAME, APP_VERSION, SVN_REV);
static const wstringEx SVN_REV_W(SVN_REV);
static const wstringEx PLAYER_BATTERY_LABEL("P1 %003.f%% | P2 %003.f%% | P3 %003.f%% | P4 %003.f%%");
#endif

View File

@ -1,5 +1,5 @@
#define APP_NAME "WiiFlow Lite"
#define APP_VERSION "Beta 4.3.0"
#define APP_VERSION "4.4.0"
#define APP_DATA_DIR "wiiflow"
#define APPS_DIR "apps/wiiflow_lite"

View File

@ -206,6 +206,7 @@ CCoverFlow::CCoverFlow(void)
m_deletePicsAfterCaching = false;
m_pluginCacheFolders = false;
m_box = true;
m_smallBox = false;
m_useHQcover = false;
m_rows = 1;
m_columns = 11;
@ -295,6 +296,11 @@ void CCoverFlow::setBoxMode(bool box)
m_box = box;
}
void CCoverFlow::setSmallBoxMode(bool smallBox)
{
m_smallBox = smallBox;
}
void CCoverFlow::setHQcover(bool HQ)
{
m_useHQcover = HQ;
@ -2771,7 +2777,7 @@ const char *CCoverFlow::getPathId(const dir_discHdr *curHdr, bool extension)
{
if(curHdr->type == TYPE_HOMEBREW || extension)
NameOrID = strrchr(curHdr->path, '/') + 1;//returns title.ext or folder name for app
else
else // plugin and sourceflow
NameOrID = fmt("%ls", curHdr->title);// title without extension in lowercase
}
else
@ -2787,6 +2793,9 @@ CCoverFlow::CLRet CCoverFlow::_loadCoverTex(u32 i, bool box, bool hq, bool blank
if(!m_loadingCovers)
return CL_ERROR;
if(box && m_smallBox)//prevent smallbox from loading full box cover
return CL_ERROR;
bool allocFailed = false;
// Try to find the texture in the cache

View File

@ -89,6 +89,7 @@ public:
void setFont(const SFont &font, const CColor &color);
void setRange(u32 rows, u32 columns);
void setBoxMode(bool box);
void setSmallBoxMode(bool smallBox);
void setHQcover(bool HQ);
void setTextureQuality(float lodBias, int aniso, bool edgeLOD);
void setCameraPos(bool selected, const Vector3D &pos, const Vector3D &aim);
@ -271,6 +272,7 @@ private:
SFont m_font;
CColor m_fontColor;
bool m_box;
bool m_smallBox;
bool m_useHQcover;
bool m_dvdskin_loaded;
bool m_defcovers_loaded;

View File

@ -117,6 +117,7 @@ void Sys_Exit(void)
IOS_ReloadIOS(0xfe);
else if(ExitOption == EXIT_TO_HBC)
{
WII_LaunchTitle(HBC_OHBC);
WII_LaunchTitle(HBC_LULZ);
WII_LaunchTitle(HBC_108);
WII_LaunchTitle(HBC_JODI);

View File

@ -8,10 +8,11 @@
extern "C" {
#endif /* __cplusplus */
#define HBC_LULZ 0x000100014c554c5aULL
#define HBC_OHBC 0x000100014f484243ULL//1.1.3
#define HBC_LULZ 0x000100014c554c5aULL//1.1.1
#define HBC_108 0x00010001af1bf516ULL
#define HBC_JODI 0x0001000148415858ULL
#define HBC_HAXX 0x000100014a4f4449ULL
#define HBC_JODI 0x000100014a4f4449ULL
#define HBC_HAXX 0x0001000148415858ULL
#define RETURN_CHANNEL 0x0001000857494948ULL
#define SYSTEM_MENU 0x0000000100000002ULL

View File

@ -1264,6 +1264,8 @@ void CMenu::_buildMenus(void)
_initConfigScreenMenu();
_initConfig3Menu();
_initConfigMenu();
_initConfigGCMenu();
_initPartitionsCfgMenu();
_initGameMenu();
_initDownloadMenu();
_initCodeMenu();
@ -1920,6 +1922,8 @@ void CMenu::_updateText(void)
_textConfig4();
_textConfigAdv();
_textConfigSnd();
_textConfigGC();
_textPartitionsCfg();
_textCfgHB();
_textGame();
_textDownload();
@ -2132,11 +2136,20 @@ void CMenu::_initCF(void)
CoverFlow.setSorting(m_source_cnt > 1 ? (Sorting)0 : (Sorting)m_cfg.getInt(_domainFromView(), "sort", 0));
if(m_current_view == COVERFLOW_HOMEBREW)
{
CoverFlow.setBoxMode(m_cfg.getBool(HOMEBREW_DOMAIN, "box_mode", true));
CoverFlow.setSmallBoxMode(m_cfg.getBool(HOMEBREW_DOMAIN, "smallbox", false));
}
else if(m_sourceflow)
{
CoverFlow.setBoxMode(m_cfg.getBool(SOURCEFLOW_DOMAIN, "box_mode", true));
CoverFlow.setSmallBoxMode(m_cfg.getBool(SOURCEFLOW_DOMAIN, "smallbox", false));
}
else
{
CoverFlow.setBoxMode(m_cfg.getBool("GENERAL", "box_mode", true));
CoverFlow.setSmallBoxMode(false);
}
CoverFlow.setCompression(m_cfg.getBool("GENERAL", "allow_texture_compression", true));
CoverFlow.setBufferSize(m_cfg.getInt("GENERAL", "cover_buffer", 20));
CoverFlow.setHQcover(m_cfg.getBool("GENERAL", "cover_use_hq", true));
@ -2606,11 +2619,10 @@ const char *CMenu::getBoxPath(const dir_discHdr *element)
return fmt("%s/%s.png", m_boxPicDir.c_str(), strrchr(element->path, '/') + 1);
else if(element->type == TYPE_SOURCE)//sourceflow
{
const char *m_sflowDir = m_cfg.getString("GENERAL", "dir_Source", fmt("%s/source_menu", m_dataDir.c_str())).c_str();
const char *coverImg = strrchr(element->path, '/') + 1;
if(coverImg == NULL || m_cfg.getBool(SOURCEFLOW_DOMAIN, "smallbox"))
if(coverImg == NULL)
return NULL;
return fmt("%s/full_covers/%s", m_sflowDir, coverImg);
return fmt("%s/full_covers/%s", m_sourceDir.c_str(), coverImg);
}
return fmt("%s/%s.png", m_boxPicDir.c_str(), element->id);
}
@ -2632,14 +2644,13 @@ const char *CMenu::getFrontPath(const dir_discHdr *element)
return fmt("%s/icon.png", element->path);
else if(element->type == TYPE_SOURCE)//sourceflow
{
const char *m_sflowDir = m_cfg.getString("GENERAL", "dir_Source", fmt("%s/source_menu", m_dataDir.c_str())).c_str();
const char *coverImg = strrchr(element->path, '/') + 1;
if(coverImg == NULL)
return NULL;
const char *coverPath = fmt("%s/front_covers/%s", m_sflowDir, coverImg);
const char *coverPath = fmt("%s/front_covers/%s", m_sourceDir.c_str(), coverImg);
if(m_cfg.getBool(SOURCEFLOW_DOMAIN, "smallbox") || !fsop_FileExist(coverPath))
{
coverPath = fmt("%s/small_covers/%s", m_sflowDir, coverImg);
coverPath = fmt("%s/small_covers/%s", m_sourceDir.c_str(), coverImg);
if(!fsop_FileExist(coverPath))
return element->path;
}

View File

@ -53,6 +53,7 @@ private:
u8 m_source_cnt;
u8 enabledPluginsCount;
u8 m_catStartPage;
u8 m_max_categories;
bool m_clearCats;
bool show_mem;
vector<dir_discHdr> m_gameList;
@ -222,10 +223,8 @@ private:
s16 m_configLblParental;
s16 m_configBtnUnlock;
s16 m_configBtnSetCode;
s16 m_configLblPartitionName;
s16 m_configLblPartition;
s16 m_configBtnPartitionP;
s16 m_configBtnPartitionM;
s16 m_configBtnPartition;
s16 m_configLblCfg4;
s16 m_configBtnCfg4;
s16 m_configLblUser[4];
@ -252,18 +251,8 @@ private:
s16 m_config3LblVideo;
s16 m_config3BtnVideoP;
s16 m_config3BtnVideoM;
s16 m_config3LblGCGameLanguage;
s16 m_config3LblGCLanguage;
s16 m_config3BtnGCLanguageP;
s16 m_config3BtnGCLanguageM;
s16 m_config3LblGCGameVideo;
s16 m_config3LblGCVideo;
s16 m_config3BtnGCVideoP;
s16 m_config3BtnGCVideoM;
s16 m_config3LblGCGameLoader;
s16 m_config3LblGCLoader;
s16 m_config3BtnGCLoaderP;
s16 m_config3BtnGCLoaderM;
s16 m_config3LblGCDefaults;
s16 m_config3BtnGCDefaults;
s16 m_config3LblChannelsType;
s16 m_config3LblChannelsTypeVal;
s16 m_config3BtnChannelsTypeP;
@ -728,7 +717,6 @@ private:
lwp_t m_gameSoundThread;
bool m_gamesound_changed;
u8 m_bnrSndVol;
u8 m_max_categories;
bool m_video_playing;
private:
@ -875,6 +863,8 @@ private:
void _initConfig4Menu();
void _initConfigSndMenu();
void _initConfigScreenMenu();
void _initConfigGCMenu();
void _initPartitionsCfgMenu();
void _initGameMenu();
void _initDownloadMenu();
void _initCodeMenu();
@ -911,6 +901,8 @@ private:
void _textConfig4(void);
void _textConfigAdv(void);
void _textConfigSnd(void);
void _textConfigGC(void);
void _textPartitionsCfg(void);
void _textGame(void);
void _textDownload(void);
void _textCode(void);
@ -937,6 +929,8 @@ private:
void _hideConfig4(bool instant = false);
void _hideConfigAdv(bool instant = false);
void _hideConfigSnd(bool instant = false);
void _hideConfigGC(bool instant = false);
void _hidePartitionsCfg(bool instant = false);
void _hideGame(bool instant = false);
void _hideDownload(bool instant = false);
void _hideSettings(bool instant = false);
@ -946,7 +940,7 @@ private:
void _hideWBFS(bool instant = false);
void _hideCFTheme(bool instant = false);
void _hideGameSettings(bool instant = false);
void _hideGameSettingsPg();
void _hideGameSettingsPg(bool instant = false);
void _hideSource(bool instant = false);
void _hidePluginSettings(bool instant = false);
void _hideCategorySettings(bool instant = false);
@ -971,6 +965,8 @@ private:
void _showConfig4(void);
void _showConfigAdv(void);
void _showConfigSnd(void);
void _showConfigGC(void);
void _showPartitionsCfg(void);
void _showNandEmu(void);
void _showGame(void);
void _showDownload(void);
@ -1022,6 +1018,8 @@ private:
int _config4(void);
int _configAdv(void);
int _configSnd(void);
void _configGC(void);
void _partitionsCfg(void);
int _NandEmuCfg(void);
int _AutoExtractSave(string gameId);
int _FlashSave(string gameId);

View File

@ -19,29 +19,21 @@ void CMenu::_about(bool help)
int pixels_to_skip = 10;
int amount_of_skips = 0;
int xtra_skips = 0;
bool first = true;
_textAbout();
m_btnMgr.reset(m_aboutLblInfo, true);
SetupInput();
_showAbout();
int thanks_h = m_theme.getInt("ABOUT/INFO", "height", 300);
int thanks_th = 0;
SetupInput();
_textAbout();
m_btnMgr.reset(m_aboutLblInfo, true);
_showAbout();
m_btnMgr.getTotalHeight(m_aboutLblInfo, thanks_th);
m_btnMgr.moveBy(m_aboutLblInfo, 0, -1);
while(!m_exit)
{
_mainLoopCommon();
if(first)
{
m_btnMgr.getTotalHeight(m_aboutLblInfo, thanks_th);
m_btnMgr.moveBy(m_aboutLblInfo, 0, -1);
m_btnMgr.moveBy(m_aboutLblInfo, 0, -pixels_to_skip);
first = false;
}
if((BTN_DOWN_PRESSED || BTN_DOWN_HELD) && thanks_th >thanks_h)
if((BTN_DOWN_PRESSED || BTN_DOWN_HELD) && thanks_th > thanks_h)
{
if((thanks_th - amount_of_skips * pixels_to_skip) >= thanks_h)
{
@ -156,7 +148,7 @@ void CMenu::_textAbout(void)
// show credits and current cIOS
m_btnMgr.setText(m_aboutLblTitle, VERSION_STRING);
wstringEx developers(wfmt(_fmt("about6", L"\nCurrent Developers:\n%s"), DEVELOPERS));
wstringEx developers(wfmt(_fmt("about6", L"Current Developers:\n%s"), DEVELOPERS));
wstringEx pDevelopers(wfmt(_fmt("about7", L"Past Developers:\n%s"), PAST_DEVELOPERS));
wstringEx origLoader(wfmt(_fmt("about1", L"Original Loader By:\n%s"), LOADER_AUTHOR));

View File

@ -19,10 +19,8 @@ void CMenu::_hideConfig(bool instant)
{
_hideConfigCommon(instant);
m_btnMgr.hide(m_configLblPartitionName, instant);
m_btnMgr.hide(m_configLblPartition, instant);
m_btnMgr.hide(m_configBtnPartitionP, instant);
m_btnMgr.hide(m_configBtnPartitionM, instant);
m_btnMgr.hide(m_configBtnPartition, instant);
m_btnMgr.hide(m_configLblDownload, instant);
m_btnMgr.hide(m_configBtnDownload, instant);
m_btnMgr.hide(m_configLblParental, instant);
@ -55,16 +53,8 @@ void CMenu::_showConfig(void)
m_btnMgr.show(m_configLblDownload);
m_btnMgr.show(m_configBtnDownload);
if(m_source_cnt > 1)
currentPartition = 0;
else
currentPartition = m_cfg.getInt(_domainFromView(), "partition", 0);
const char *partitionname = DeviceName[currentPartition];
m_btnMgr.setText(m_configLblPartition, upperCase(partitionname));
m_btnMgr.show(m_configLblPartitionName);
m_btnMgr.show(m_configLblPartition);
m_btnMgr.show(m_configBtnPartitionP);
m_btnMgr.show(m_configBtnPartitionM);
m_btnMgr.show(m_configBtnPartition);
m_btnMgr.show(m_configLblCfg4);
m_btnMgr.show(m_configBtnCfg4);
@ -145,7 +135,6 @@ int CMenu::_config1(void)
SetupInput();
_showConfig();
s32 bCurrentPartition = currentPartition;
while(!m_exit)
{
@ -188,10 +177,10 @@ int CMenu::_config1(void)
}
_showConfig();
}
else if ((m_btnMgr.selected(m_configBtnPartitionP) || m_btnMgr.selected(m_configBtnPartitionM)) && m_source_cnt == 1)
else if (m_btnMgr.selected(m_configBtnPartition))
{
s8 direction = m_btnMgr.selected(m_configBtnPartitionP) ? 1 : -1;
_setPartition(direction);
_hideConfig();
_partitionsCfg();
_showConfig();
}
else if (m_btnMgr.selected(m_configBtnCfg4))
@ -202,8 +191,6 @@ int CMenu::_config1(void)
}
}
}
if(currentPartition != bCurrentPartition)
m_refreshGameList = true;
_hideConfig();
return change;
}
@ -218,10 +205,8 @@ void CMenu::_initConfigMenu()
m_configLblParental = _addLabel("CONFIG/PARENTAL", theme.lblFont, L"", 20, 185, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_configBtnUnlock = _addButton("CONFIG/UNLOCK_BTN", theme.btnFont, L"", 420, 190, 200, 48, theme.btnFontColor);
m_configBtnSetCode = _addButton("CONFIG/SETCODE_BTN", theme.btnFont, L"", 420, 190, 200, 48, theme.btnFontColor);
m_configLblPartitionName = _addLabel("CONFIG/PARTITION", theme.lblFont, L"", 20, 245, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_configLblPartition = _addLabel("CONFIG/PARTITION_BTN", theme.btnFont, L"", 468, 250, 104, 48, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC);
m_configBtnPartitionM = _addPicButton("CONFIG/PARTITION_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 420, 250, 48, 48);
m_configBtnPartitionP = _addPicButton("CONFIG/PARTITION_PLUS", theme.btnTexPlus, theme.btnTexPlusS, 572, 250, 48, 48);
m_configLblPartition = _addLabel("CONFIG/PARTITION", theme.lblFont, L"", 20, 245, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_configBtnPartition = _addButton("CONFIG/PARTITION_BTN", theme.btnFont, L"", 420, 250, 200, 48, theme.btnFontColor);
m_configLblCfg4 = _addLabel("CONFIG/CFG4", theme.lblFont, L"", 20, 305, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_configBtnCfg4 = _addButton("CONFIG/CFG4_BTN", theme.btnFont, L"", 420, 310, 200, 48, theme.btnFontColor);
m_configLblPage = _addLabel("CONFIG/PAGE_BTN", theme.btnFont, L"", 68, 400, 104, 48, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC);
@ -236,10 +221,8 @@ void CMenu::_initConfigMenu()
_setHideAnim(m_configLblParental, "CONFIG/PARENTAL", 50, 0, -2.f, 0.f);
_setHideAnim(m_configBtnUnlock, "CONFIG/UNLOCK_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_configBtnSetCode, "CONFIG/SETCODE_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_configLblPartitionName, "CONFIG/PARTITION", 50, 0, -2.f, 0.f);
_setHideAnim(m_configLblPartition, "CONFIG/PARTITION_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_configBtnPartitionM, "CONFIG/PARTITION_MINUS", -50, 0, 1.f, 0.f);
_setHideAnim(m_configBtnPartitionP, "CONFIG/PARTITION_PLUS", -50, 0, 1.f, 0.f);
_setHideAnim(m_configLblPartition, "CONFIG/PARTITION", 50, 0, -2.f, 0.f);
_setHideAnim(m_configBtnPartition, "CONFIG/PARTITION_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_configLblCfg4, "CONFIG/CFG4", 50, 0, -2.f, 0.f);
_setHideAnim(m_configBtnCfg4, "CONFIG/CFG4_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_configBtnBack, "CONFIG/BACK_BTN", 0, 0, 1.f, -1.f);
@ -258,8 +241,9 @@ void CMenu::_textConfig(void)
m_btnMgr.setText(m_configLblParental, _t("cfg5", L"Parental control"));
m_btnMgr.setText(m_configBtnUnlock, _t("cfg6", L"Unlock"));
m_btnMgr.setText(m_configBtnSetCode, _t("cfg7", L"Set code"));
m_btnMgr.setText(m_configLblPartitionName, _t("cfgp1", L"Game Partition"));
m_btnMgr.setText(m_configBtnBack, _t("cfg10", L"Back"));
m_btnMgr.setText(m_configLblPartition, _t("cfg17", L"Game Partitions"));
m_btnMgr.setText(m_configBtnPartition, _t("cfg14", L"Set"));
m_btnMgr.setText(m_configLblCfg4, _t("cfg13", L"NAND Emulation Settings"));
m_btnMgr.setText(m_configBtnCfg4, _t("cfg14", L"Set"));
m_btnMgr.setText(m_configBtnBack, _t("cfg10", L"Back"));
}

View File

@ -12,32 +12,18 @@ void CMenu::_hideConfig3(bool instant)
{
_hideConfigCommon(instant);
if(m_current_view != COVERFLOW_GAMECUBE)
{
m_btnMgr.hide(m_config3LblGameLanguage, instant);
m_btnMgr.hide(m_config3LblLanguage, instant);
m_btnMgr.hide(m_config3BtnLanguageP, instant);
m_btnMgr.hide(m_config3BtnLanguageM, instant);
m_btnMgr.hide(m_config3LblGameVideo, instant);
m_btnMgr.hide(m_config3LblVideo, instant);
m_btnMgr.hide(m_config3BtnVideoP, instant);
m_btnMgr.hide(m_config3BtnVideoM, instant);
}
else
{
m_btnMgr.hide(m_config3LblGCGameLanguage, instant);
m_btnMgr.hide(m_config3LblGCLanguage, instant);
m_btnMgr.hide(m_config3BtnGCLanguageP, instant);
m_btnMgr.hide(m_config3BtnGCLanguageM, instant);
m_btnMgr.hide(m_config3LblGCGameVideo, instant);
m_btnMgr.hide(m_config3LblGCVideo, instant);
m_btnMgr.hide(m_config3BtnGCVideoP, instant);
m_btnMgr.hide(m_config3BtnGCVideoM, instant);
}
m_btnMgr.hide(m_config3LblGCGameLoader, instant);
m_btnMgr.hide(m_config3LblGCLoader, instant);
m_btnMgr.hide(m_config3BtnGCLoaderP, instant);
m_btnMgr.hide(m_config3BtnGCLoaderM, instant);
m_btnMgr.hide(m_config3LblGameLanguage, instant);
m_btnMgr.hide(m_config3LblLanguage, instant);
m_btnMgr.hide(m_config3BtnLanguageP, instant);
m_btnMgr.hide(m_config3BtnLanguageM, instant);
m_btnMgr.hide(m_config3LblGameVideo, instant);
m_btnMgr.hide(m_config3LblVideo, instant);
m_btnMgr.hide(m_config3BtnVideoP, instant);
m_btnMgr.hide(m_config3BtnVideoM, instant);
m_btnMgr.hide(m_config3LblGCDefaults, instant);
m_btnMgr.hide(m_config3BtnGCDefaults, instant);
m_btnMgr.hide(m_config3LblChannelsType, instant);
m_btnMgr.hide(m_config3LblChannelsTypeVal, instant);
@ -53,32 +39,18 @@ void CMenu::_showConfig3(void)
{
_showConfigCommon(m_config3Bg, g_curPage);
if(m_current_view != COVERFLOW_GAMECUBE)
{
m_btnMgr.show(m_config3LblGameLanguage);
m_btnMgr.show(m_config3LblLanguage);
m_btnMgr.show(m_config3BtnLanguageP);
m_btnMgr.show(m_config3BtnLanguageM);
m_btnMgr.show(m_config3LblGameVideo);
m_btnMgr.show(m_config3LblVideo);
m_btnMgr.show(m_config3BtnVideoP);
m_btnMgr.show(m_config3BtnVideoM);
}
else
{
m_btnMgr.show(m_config3LblGCGameLanguage);
m_btnMgr.show(m_config3LblGCLanguage);
m_btnMgr.show(m_config3BtnGCLanguageP);
m_btnMgr.show(m_config3BtnGCLanguageM);
m_btnMgr.show(m_config3LblGCGameVideo);
m_btnMgr.show(m_config3LblGCVideo);
m_btnMgr.show(m_config3BtnGCVideoP);
m_btnMgr.show(m_config3BtnGCVideoM);
}
m_btnMgr.show(m_config3LblGCGameLoader);
m_btnMgr.show(m_config3LblGCLoader);
m_btnMgr.show(m_config3BtnGCLoaderP);
m_btnMgr.show(m_config3BtnGCLoaderM);
m_btnMgr.show(m_config3LblGameLanguage);
m_btnMgr.show(m_config3LblLanguage);
m_btnMgr.show(m_config3BtnLanguageP);
m_btnMgr.show(m_config3BtnLanguageM);
m_btnMgr.show(m_config3LblGameVideo);
m_btnMgr.show(m_config3LblVideo);
m_btnMgr.show(m_config3BtnVideoP);
m_btnMgr.show(m_config3BtnVideoM);
m_btnMgr.show(m_config3LblGCDefaults);
m_btnMgr.show(m_config3BtnGCDefaults);
m_btnMgr.show(m_config3LblChannelsType);
m_btnMgr.show(m_config3LblChannelsTypeVal);
@ -89,26 +61,11 @@ void CMenu::_showConfig3(void)
if(m_config3LblUser[i] != -1)
m_btnMgr.show(m_config3LblUser[i]);
int i;
int i = min(max(0, m_cfg.getInt("GENERAL", "video_mode", 0)), (int)ARRAY_SIZE(CMenu::_GlobalVideoModes) - 1);
m_btnMgr.setText(m_config3LblVideo, _t(CMenu::_GlobalVideoModes[i].id, CMenu::_GlobalVideoModes[i].text));
if(m_current_view != COVERFLOW_GAMECUBE)
{
i = min(max(0, m_cfg.getInt("GENERAL", "video_mode", 0)), (int)ARRAY_SIZE(CMenu::_GlobalVideoModes) - 1);
m_btnMgr.setText(m_config3LblVideo, _t(CMenu::_GlobalVideoModes[i].id, CMenu::_GlobalVideoModes[i].text));
i = min(max(0, m_cfg.getInt("GENERAL", "game_language", 0)), (int)ARRAY_SIZE(CMenu::_languages) - 1);
m_btnMgr.setText(m_config3LblLanguage, _t(CMenu::_languages[i].id, CMenu::_languages[i].text));
}
else
{
i = min(max(0, m_cfg.getInt(GC_DOMAIN, "video_mode", 0)), (int)ARRAY_SIZE(CMenu::_GlobalGCvideoModes) - 1);
m_btnMgr.setText(m_config3LblGCVideo, _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_config3LblGCLanguage, _t(CMenu::_GlobalGClanguages[i].id, CMenu::_GlobalGClanguages[i].text));
}
i = min(max(0, m_cfg.getInt(GC_DOMAIN, "default_loader", 2)), (int)ARRAY_SIZE(CMenu::_GlobalGCLoaders) - 1);
m_btnMgr.setText(m_config3LblGCLoader, _t(CMenu::_GlobalGCLoaders[i].id, CMenu::_GlobalGCLoaders[i].text));
i = min(max(0, m_cfg.getInt("GENERAL", "game_language", 0)), (int)ARRAY_SIZE(CMenu::_languages) - 1);
m_btnMgr.setText(m_config3LblLanguage, _t(CMenu::_languages[i].id, CMenu::_languages[i].text));
i = m_cfg.getInt(CHANNEL_DOMAIN, "channels_type") - 1;
m_btnMgr.setText(m_config3LblChannelsTypeVal, _t(CMenu::_ChannelsType[i].id, CMenu::_ChannelsType[i].text));
@ -138,22 +95,10 @@ int CMenu::_config3(void)
m_cfg.setInt("GENERAL", "video_mode", (int)loopNum((u32)m_cfg.getInt("GENERAL", "video_mode", 0) + direction, ARRAY_SIZE(CMenu::_GlobalVideoModes)));
_showConfig3();
}
else if (m_btnMgr.selected(m_config3BtnGCLanguageP) || m_btnMgr.selected(m_config3BtnGCLanguageM))
else if (m_btnMgr.selected(m_config3BtnGCDefaults))
{
s8 direction = m_btnMgr.selected(m_config3BtnGCLanguageP) ? 1 : -1;
m_cfg.setInt(GC_DOMAIN, "game_language", (int)loopNum((u32)m_cfg.getInt(GC_DOMAIN, "game_language", 0) + direction, ARRAY_SIZE(CMenu::_GlobalGClanguages)));
_showConfig3();
}
else if (m_btnMgr.selected(m_config3BtnGCVideoP) || m_btnMgr.selected(m_config3BtnGCVideoM))
{
s8 direction = m_btnMgr.selected(m_config3BtnGCVideoP) ? 1 : -1;
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_config3BtnGCLoaderP) || m_btnMgr.selected(m_config3BtnGCLoaderM))
{
s8 direction = m_btnMgr.selected(m_config3BtnGCLoaderP) ? 1 : -1;
m_cfg.setInt(GC_DOMAIN, "default_loader", (int)loopNum((u32)m_cfg.getInt(GC_DOMAIN, "default_loader", 1) + direction, ARRAY_SIZE(CMenu::_GlobalGCLoaders)));
_hideConfig3();
_configGC();
_showConfig3();
}
else if (m_btnMgr.selected(m_config3BtnChannelsTypeP) || m_btnMgr.selected(m_config3BtnChannelsTypeM))
@ -161,7 +106,13 @@ int CMenu::_config3(void)
s8 direction = m_btnMgr.selected(m_config3BtnChannelsTypeP) ? 1 : -1;
m_cfg.setInt(CHANNEL_DOMAIN, "channels_type", 1 + (int)loopNum((u32)m_cfg.getInt(CHANNEL_DOMAIN, "channels_type", 1) - 1 + direction, ARRAY_SIZE(CMenu::_ChannelsType)));
_showConfig3();
if(m_current_view & COVERFLOW_CHANNEL)
m_cfg.setBool(PLUGIN_ENABLED, "4e414e44", false);
m_cfg.setBool(PLUGIN_ENABLED, "454e414e", false);
if(m_cfg.getInt(CHANNEL_DOMAIN, "channels_type") & CHANNELS_REAL)
m_cfg.setBool(PLUGIN_ENABLED, "4e414e44", true);
if(m_cfg.getInt(CHANNEL_DOMAIN, "channels_type") & CHANNELS_EMU)
m_cfg.setBool(PLUGIN_ENABLED, "454e414e", true);
if(m_current_view & COVERFLOW_CHANNEL || m_current_view & COVERFLOW_PLUGIN)
m_refreshGameList = true;
}
}
@ -174,27 +125,19 @@ void CMenu::_initConfig3Menu()
{
_addUserLabels(m_config3LblUser, ARRAY_SIZE(m_config3LblUser), "CONFIG3");
m_config3Bg = _texture("CONFIG3/BG", "texture", theme.bg, false);
m_config3LblGameVideo = _addLabel("CONFIG3/VIDEO", theme.lblFont, L"", 20, 125, 290, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_config3LblVideo = _addLabel("CONFIG3/VIDEO_BTN", theme.btnFont, L"", 468, 130, 104, 48, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC);
m_config3BtnVideoM = _addPicButton("CONFIG3/VIDEO_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 420, 130, 48, 48);
m_config3BtnVideoP = _addPicButton("CONFIG3/VIDEO_PLUS", theme.btnTexPlus, theme.btnTexPlusS, 572, 130, 48, 48);
m_config3LblGameLanguage = _addLabel("CONFIG3/GAME_LANG", theme.lblFont, L"", 20, 185, 290, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_config3LblLanguage = _addLabel("CONFIG3/GAME_LANG_BTN", theme.btnFont, L"", 468, 190, 104, 48, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC);
m_config3BtnLanguageM = _addPicButton("CONFIG3/GAME_LANG_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 420, 190, 48, 48);
m_config3BtnLanguageP = _addPicButton("CONFIG3/GAME_LANG_PLUS", theme.btnTexPlus, theme.btnTexPlusS, 572, 190, 48, 48);
m_config3LblGCGameVideo = _addLabel("CONFIG3/DML_VIDEO", theme.lblFont, L"", 20, 125, 290, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_config3LblGCVideo = _addLabel("CONFIG3/DML_VIDEO_BTN", theme.btnFont, L"", 468, 130, 104, 48, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC);
m_config3BtnGCVideoM = _addPicButton("CONFIG3/DML_VIDEO_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 420, 130, 48, 48);
m_config3BtnGCVideoP = _addPicButton("CONFIG3/DML_VIDEO_PLUS", theme.btnTexPlus, theme.btnTexPlusS, 572, 130, 48, 48);
m_config3LblGCGameLanguage = _addLabel("CONFIG3/DML_LANG", theme.lblFont, L"", 20, 185, 290, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_config3LblGCLanguage = _addLabel("CONFIG3/DML_LANG_BTN", theme.btnFont, L"", 468, 190, 104, 48, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC);
m_config3BtnGCLanguageM = _addPicButton("CONFIG3/DML_LANG_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 420, 190, 48, 48);
m_config3BtnGCLanguageP = _addPicButton("CONFIG3/DML_LANG_PLUS", theme.btnTexPlus, theme.btnTexPlusS, 572, 190, 48, 48);
m_config3LblGCGameLoader = _addLabel("CONFIG3/GC_LOADER", theme.lblFont, L"", 20, 245, 290, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_config3LblGCLoader = _addLabel("CONFIG3/GC_LOADER_BTN", theme.btnFont, L"", 468, 250, 104, 48, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC);
m_config3BtnGCLoaderM = _addPicButton("CONFIG3/GC_LOADER_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 420, 250, 48, 48);
m_config3BtnGCLoaderP = _addPicButton("CONFIG3/GC_LOADER_PLUS", theme.btnTexPlus, theme.btnTexPlusS, 572, 250, 48, 48);
m_config3LblGCDefaults = _addLabel("CONFIG3/GC_DEFAULTS", theme.lblFont, L"", 20, 245, 290, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_config3BtnGCDefaults = _addButton("CONFIG3/GC_DEFAULTS_BTN", theme.btnFont, L"", 420, 250, 200, 48, theme.btnFontColor);
m_config3LblChannelsType = _addLabel("CONFIG3/CHANNELS_TYPE", theme.lblFont, L"", 20, 305, 290, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_config3LblChannelsTypeVal = _addLabel("CONFIG3/CHANNELS_TYPE_BTN", theme.btnFont, L"", 468, 310, 104, 48, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC);
@ -210,18 +153,8 @@ void CMenu::_initConfig3Menu()
_setHideAnim(m_config3BtnLanguageM, "CONFIG3/GAME_LANG_MINUS", -50, 0, 1.f, 0.f);
_setHideAnim(m_config3BtnLanguageP, "CONFIG3/GAME_LANG_PLUS", -50, 0, 1.f, 0.f);
_setHideAnim(m_config3LblGCGameVideo, "CONFIG3/DML_VIDEO", 50, 0, -2.f, 0.f);
_setHideAnim(m_config3LblGCVideo, "CONFIG3/DML_VIDEO_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_config3BtnGCVideoM, "CONFIG3/DML_VIDEO_MINUS", -50, 0, 1.f, 0.f);
_setHideAnim(m_config3BtnGCVideoP, "CONFIG3/DML_VIDEO_PLUS", -50, 0, 1.f, 0.f);
_setHideAnim(m_config3LblGCGameLanguage, "CONFIG3/DML_LANG", 50, 0, -2.f, 0.f);
_setHideAnim(m_config3LblGCLanguage, "CONFIG3/DML_LANG_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_config3BtnGCLanguageM, "CONFIG3/DML_LANG_MINUS", -50, 0, 1.f, 0.f);
_setHideAnim(m_config3BtnGCLanguageP, "CONFIG3/DML_LANG_PLUS", -50, 0, 1.f, 0.f);
_setHideAnim(m_config3LblGCGameLoader, "CONFIG3/GC_LOADER", 50, 0, -2.f, 0.f);
_setHideAnim(m_config3LblGCLoader, "CONFIG3/GC_LOADER_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_config3BtnGCLoaderM, "CONFIG3/GC_LOADER_MINUS", -50, 0, 1.f, 0.f);
_setHideAnim(m_config3BtnGCLoaderP, "CONFIG3/GC_LOADER_PLUS", -50, 0, 1.f, 0.f);
_setHideAnim(m_config3LblGCDefaults, "CONFIG3/GC_DEFAULTS", 50, 0, -2.f, 0.f);
_setHideAnim(m_config3BtnGCDefaults, "CONFIG3/GC_DEFAULTS_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_config3LblChannelsType, "CONFIG3/CHANNELS_TYPE", 50, 0, -2.f, 0.f);
_setHideAnim(m_config3LblChannelsTypeVal, "CONFIG3/CHANNELS_TYPE_BTN", -50, 0, 1.f, 0.f);
@ -235,9 +168,8 @@ void CMenu::_textConfig3(void)
{
m_btnMgr.setText(m_config3LblGameVideo, _t("cfgb3", L"Default video mode"));
m_btnMgr.setText(m_config3LblGameLanguage, _t("cfgb4", L"Default game language"));
m_btnMgr.setText(m_config3LblGCGameVideo, _t("cfgb5", L"Default GC video mode"));
m_btnMgr.setText(m_config3LblGCGameLanguage, _t("cfgb6", L"Default GC game language"));
m_btnMgr.setText(m_config3LblGCGameLoader, _t("cfgb2", L"Default GC game loader"));
m_btnMgr.setText(m_config3LblGCDefaults, _t("cfgb9", L"GameCube default settings"));
m_btnMgr.setText(m_config3BtnGCDefaults, _t("dl16", L"Set"));
m_btnMgr.setText(m_config3LblChannelsType, _t("cfgb7", L"Channels Type"));
}

View File

@ -35,11 +35,16 @@ void CMenu::_hideGameSettings(bool instant)
m_btnMgr.hide(m_gameSettingsBtnPageP, instant);
m_btnMgr.hide(m_gameSettingsBtnBack, instant);
m_btnMgr.hide(m_gameSettingsLblTitle, instant);
for(u8 i = 0; i < ARRAY_SIZE(m_gameSettingsLblUser); ++i)
if(m_gameSettingsLblUser[i] != -1)
m_btnMgr.hide(m_gameSettingsLblUser[i], instant);
_hideGameSettingsPg(instant);
}
void CMenu::_hideGameSettingsPg(bool instant)
{
//Does not hide title, page, back, or user labels
//Wii & Channels
m_btnMgr.hide(m_gameSettingsLblManage, instant);
m_btnMgr.hide(m_gameSettingsBtnManage, instant);
m_btnMgr.hide(m_gameSettingsBtnCategoryMain, instant);
m_btnMgr.hide(m_gameSettingsLblCategoryMain, instant);
m_btnMgr.hide(m_gameSettingsLblHooktype, instant);
m_btnMgr.hide(m_gameSettingsLblHooktypeVal, instant);
m_btnMgr.hide(m_gameSettingsBtnHooktypeM, instant);
@ -60,7 +65,7 @@ void CMenu::_hideGameSettings(bool instant)
m_btnMgr.hide(m_gameSettingsLblIOS, instant);
m_btnMgr.hide(m_gameSettingsBtnIOSP, instant);
m_btnMgr.hide(m_gameSettingsBtnIOSM, instant);
//
//wii only
m_btnMgr.hide(m_gameSettingsLblEmulation, instant);
m_btnMgr.hide(m_gameSettingsLblEmulationVal, instant);
m_btnMgr.hide(m_gameSettingsBtnEmulationP, instant);
@ -71,7 +76,11 @@ void CMenu::_hideGameSettings(bool instant)
m_btnMgr.hide(m_gameSettingsBtnFlashSave, instant);
m_btnMgr.hide(m_gameSettingsLblPrivateServer, instant);
m_btnMgr.hide(m_gameSettingsBtnPrivateServer, instant);
//GC, Wii, and Channels
//All
m_btnMgr.hide(m_gameSettingsLblManage, instant);
m_btnMgr.hide(m_gameSettingsBtnManage, instant);
m_btnMgr.hide(m_gameSettingsBtnCategoryMain, instant);
m_btnMgr.hide(m_gameSettingsLblCategoryMain, instant);
m_btnMgr.hide(m_gameSettingsLblGameLanguage, instant);
m_btnMgr.hide(m_gameSettingsLblLanguage, instant);
m_btnMgr.hide(m_gameSettingsBtnLanguageP, instant);
@ -118,138 +127,6 @@ void CMenu::_hideGameSettings(bool instant)
m_btnMgr.hide(m_gameSettingsBtnCustom, instant);
m_btnMgr.hide(m_gameSettingsLblLaunchNK, instant);
m_btnMgr.hide(m_gameSettingsBtnLaunchNK, instant);
for(u8 i = 0; i < ARRAY_SIZE(m_gameSettingsLblUser); ++i)
if(m_gameSettingsLblUser[i] != -1)
m_btnMgr.hide(m_gameSettingsLblUser[i], instant);
}
void CMenu::_hideGameSettingsPg(void)
{
//Does not hide title, page, back, or user labels
if(m_gameSettingsPage == 1)
{
m_btnMgr.hide(m_gameSettingsLblManage);
m_btnMgr.hide(m_gameSettingsBtnManage);
m_btnMgr.hide(m_gameSettingsLblGCLoader);
m_btnMgr.hide(m_gameSettingsLblGCLoader_Val);
m_btnMgr.hide(m_gameSettingsBtnGCLoader_P);
m_btnMgr.hide(m_gameSettingsBtnGCLoader_M);
m_btnMgr.hide(m_gameSettingsBtnCategoryMain);
m_btnMgr.hide(m_gameSettingsLblCategoryMain);
m_btnMgr.hide(m_gameSettingsLblGameLanguage);
m_btnMgr.hide(m_gameSettingsLblLanguage);
m_btnMgr.hide(m_gameSettingsBtnLanguageP);
m_btnMgr.hide(m_gameSettingsBtnLanguageM);
m_btnMgr.hide(m_gameSettingsLblGameVideo);
m_btnMgr.hide(m_gameSettingsLblVideo);
m_btnMgr.hide(m_gameSettingsBtnVideoP);
m_btnMgr.hide(m_gameSettingsBtnVideoM);
}
if(m_gameSettingsPage == 2)
{
m_btnMgr.hide(m_gameSettingsLblDebugger);
m_btnMgr.hide(m_gameSettingsLblDebuggerV);
m_btnMgr.hide(m_gameSettingsBtnDebuggerP);
m_btnMgr.hide(m_gameSettingsBtnDebuggerM);
m_btnMgr.hide(m_gameSettingsLblHooktype);
m_btnMgr.hide(m_gameSettingsLblHooktypeVal);
m_btnMgr.hide(m_gameSettingsBtnHooktypeM);
m_btnMgr.hide(m_gameSettingsBtnHooktypeP);
m_btnMgr.hide(m_gameSettingsLblDeflicker);
m_btnMgr.hide(m_gameSettingsBtnDeflicker);
m_btnMgr.hide(m_gameSettingsLblOcarina);
m_btnMgr.hide(m_gameSettingsBtnOcarina);
m_btnMgr.hide(m_gameSettingsLblCheat);
m_btnMgr.hide(m_gameSettingsBtnCheat);
m_btnMgr.hide(m_gameSettingsLblDevoMemcardEmu);
m_btnMgr.hide(m_gameSettingsBtnDevoMemcardEmu);
m_btnMgr.hide(m_gameSettingsLblWidescreen);
m_btnMgr.hide(m_gameSettingsBtnWidescreen);
m_btnMgr.hide(m_gameSettingsLblLED);
m_btnMgr.hide(m_gameSettingsBtnLED);
}
if(m_gameSettingsPage == 3)
{
m_btnMgr.hide(m_gameSettingsLblPatchVidModes);
m_btnMgr.hide(m_gameSettingsLblPatchVidModesVal);
m_btnMgr.hide(m_gameSettingsBtnPatchVidModesM);
m_btnMgr.hide(m_gameSettingsBtnPatchVidModesP);
m_btnMgr.hide(m_gameSettingsLblVipatch);
m_btnMgr.hide(m_gameSettingsBtnVipatch);
m_btnMgr.hide(m_gameSettingsLblCountryPatch);
m_btnMgr.hide(m_gameSettingsBtnCountryPatch);
m_btnMgr.hide(m_gameSettingsLblAspectRatio);
m_btnMgr.hide(m_gameSettingsLblAspectRatioVal);
m_btnMgr.hide(m_gameSettingsBtnAspectRatioP);
m_btnMgr.hide(m_gameSettingsBtnAspectRatioM);
m_btnMgr.hide(m_gameSettingsLblApploader);
m_btnMgr.hide(m_gameSettingsBtnApploader);
m_btnMgr.hide(m_gameSettingsLblEmuMemCard);
m_btnMgr.hide(m_gameSettingsLblEmuMemCard_Val);
m_btnMgr.hide(m_gameSettingsBtnEmuMemCard_P);
m_btnMgr.hide(m_gameSettingsBtnEmuMemCard_M);
m_btnMgr.hide(m_gameSettingsLblWidescreen);
m_btnMgr.hide(m_gameSettingsBtnWidescreen);
m_btnMgr.hide(m_gameSettingsLblUSB_HID);
m_btnMgr.hide(m_gameSettingsBtnUSB_HID);
m_btnMgr.hide(m_gameSettingsLblNATIVE_CTL);
m_btnMgr.hide(m_gameSettingsBtnNATIVE_CTL);
}
if(m_gameSettingsPage == 4)
{
m_btnMgr.hide(m_gameSettingsLblArcade);
m_btnMgr.hide(m_gameSettingsBtnArcade);
m_btnMgr.hide(m_gameSettingsLblCustom);
m_btnMgr.hide(m_gameSettingsBtnCustom);
m_btnMgr.hide(m_gameSettingsLblLaunchNK);
m_btnMgr.hide(m_gameSettingsBtnLaunchNK);
m_btnMgr.hide(m_gameSettingsLblEmulationVal);
m_btnMgr.hide(m_gameSettingsLblEmulation);
m_btnMgr.hide(m_gameSettingsBtnEmulationP);
m_btnMgr.hide(m_gameSettingsBtnEmulationM);
m_btnMgr.hide(m_gameSettingsLblExtractSave);
m_btnMgr.hide(m_gameSettingsBtnExtractSave);
m_btnMgr.hide(m_gameSettingsLblGameIOS);
m_btnMgr.hide(m_gameSettingsLblIOS);
m_btnMgr.hide(m_gameSettingsBtnIOSP);
m_btnMgr.hide(m_gameSettingsBtnIOSM);
m_btnMgr.hide(m_gameSettingsLblLED);
m_btnMgr.hide(m_gameSettingsBtnLED);
}
if(m_gameSettingsPage == 5)
{
m_btnMgr.hide(m_gameSettingsLblFlashSave);
m_btnMgr.hide(m_gameSettingsBtnFlashSave);
m_btnMgr.hide(m_gameSettingsLblPrivateServer);
m_btnMgr.hide(m_gameSettingsBtnPrivateServer);
}
}
void CMenu::_showGameSettings(void)
@ -257,33 +134,47 @@ void CMenu::_showGameSettings(void)
const char *id = CoverFlow.getId();
const dir_discHdr *GameHdr = CoverFlow.getHdr();
_setBg(m_gameSettingsBg, m_gameSettingsBg);
m_btnMgr.show(m_gameSettingsLblPage);
m_btnMgr.show(m_gameSettingsBtnPageM);
m_btnMgr.show(m_gameSettingsBtnPageP);
m_btnMgr.show(m_gameSettingsBtnBack);
wstringEx title(_t("cfgg1", L"Settings"));
title.append(wfmt(L" [%.6s]", id));
m_btnMgr.setText(m_gameSettingsLblTitle, title);
m_btnMgr.show(m_gameSettingsLblTitle);
if(GameHdr->type == TYPE_GC_GAME)
{
GCLoader = min((u32)m_gcfg2.getInt(id, "gc_loader", 0), ARRAY_SIZE(CMenu::_GCLoader) - 1u);
GCLoader = (GCLoader == 0) ? min((u32)m_cfg.getInt(GC_DOMAIN, "default_loader", 1), ARRAY_SIZE(CMenu::_GlobalGCLoaders) - 1u) : GCLoader-1;
}
m_gameSettingsMaxPgs = 4;
if(GameHdr->type == TYPE_WII_GAME)
m_gameSettingsMaxPgs = 5;
m_gameSettingsMaxPgs = 5;
if(GameHdr->type == TYPE_GC_GAME && GCLoader == NINTENDONT)
m_gameSettingsMaxPgs = 4;
else if(GameHdr->type == TYPE_GC_GAME && GCLoader == DEVOLUTION)
m_gameSettingsMaxPgs = 2;
_setBg(m_gameSettingsBg, m_gameSettingsBg);
u32 i = 0;
for(i = 0; i < ARRAY_SIZE(m_gameSettingsLblUser); ++i)
if(m_gameSettingsLblUser[i] != -1)
m_btnMgr.show(m_gameSettingsLblUser[i]);
wstringEx title(_t("cfgg1", L"Settings"));
title.append(wfmt(L" [%.6s]", id));
m_btnMgr.setText(m_gameSettingsLblTitle, title);
m_btnMgr.show(m_gameSettingsLblTitle);
m_btnMgr.show(m_gameSettingsBtnBack);
if(GameHdr->type == TYPE_PLUGIN)
{
m_btnMgr.show(m_gameSettingsBtnCategoryMain);
m_btnMgr.show(m_gameSettingsLblCategoryMain);
return;
}
m_btnMgr.setText(m_gameSettingsLblPage, wfmt(L"%i / %i", m_gameSettingsPage, m_gameSettingsMaxPgs));
m_btnMgr.show(m_gameSettingsLblPage);
m_btnMgr.show(m_gameSettingsBtnPageM);
m_btnMgr.show(m_gameSettingsBtnPageP);
if(m_gameSettingsPage == 1)
{
m_btnMgr.show(m_gameSettingsLblManage);
m_btnMgr.show(m_gameSettingsBtnManage);
m_btnMgr.show(m_gameSettingsBtnCategoryMain);
m_btnMgr.show(m_gameSettingsLblCategoryMain);
if(GameHdr->type == TYPE_GC_GAME)
{
@ -294,8 +185,10 @@ void CMenu::_showGameSettings(void)
}
else
{
m_btnMgr.show(m_gameSettingsBtnCategoryMain);
m_btnMgr.show(m_gameSettingsLblCategoryMain);
m_btnMgr.show(m_gameSettingsLblGameIOS);
m_btnMgr.show(m_gameSettingsLblIOS);
m_btnMgr.show(m_gameSettingsBtnIOSP);
m_btnMgr.show(m_gameSettingsBtnIOSM);
}
m_btnMgr.show(m_gameSettingsLblGameLanguage);
@ -312,14 +205,17 @@ void CMenu::_showGameSettings(void)
{
if(GameHdr->type == TYPE_GC_GAME && GCLoader == DEVOLUTION)
{
m_btnMgr.show(m_gameSettingsLblLED);
m_btnMgr.show(m_gameSettingsBtnLED);
m_btnMgr.show(m_gameSettingsLblDevoMemcardEmu);
m_btnMgr.show(m_gameSettingsBtnDevoMemcardEmu);
m_btnMgr.show(m_gameSettingsLblWidescreen);
m_btnMgr.show(m_gameSettingsBtnWidescreen);
m_btnMgr.show(m_gameSettingsLblLED);
m_btnMgr.show(m_gameSettingsBtnLED);
m_btnMgr.show(m_gameSettingsLblManage);
m_btnMgr.show(m_gameSettingsBtnManage);
}
else
{
@ -363,21 +259,16 @@ void CMenu::_showGameSettings(void)
m_btnMgr.show(m_gameSettingsLblCountryPatch);
m_btnMgr.show(m_gameSettingsBtnCountryPatch);
if(GameHdr->type == TYPE_WII_GAME)
{
m_btnMgr.show(m_gameSettingsLblAspectRatio);
m_btnMgr.show(m_gameSettingsLblAspectRatioVal);
m_btnMgr.show(m_gameSettingsBtnAspectRatioP);
m_btnMgr.show(m_gameSettingsBtnAspectRatioM);
}
else if(GameHdr->type == TYPE_CHANNEL || GameHdr->type == TYPE_EMUCHANNEL)
{
m_btnMgr.show(m_gameSettingsLblApploader);
m_btnMgr.show(m_gameSettingsBtnApploader);
}
m_btnMgr.show(m_gameSettingsLblAspectRatio);
m_btnMgr.show(m_gameSettingsLblAspectRatioVal);
m_btnMgr.show(m_gameSettingsBtnAspectRatioP);
m_btnMgr.show(m_gameSettingsBtnAspectRatioM);
}
else if(GCLoader == NINTENDONT)
else
{
m_btnMgr.show(m_gameSettingsLblLED);
m_btnMgr.show(m_gameSettingsBtnLED);
m_btnMgr.show(m_gameSettingsLblEmuMemCard);
m_btnMgr.show(m_gameSettingsLblEmuMemCard_Val);
m_btnMgr.show(m_gameSettingsBtnEmuMemCard_P);
@ -386,28 +277,36 @@ void CMenu::_showGameSettings(void)
m_btnMgr.show(m_gameSettingsLblWidescreen);
m_btnMgr.show(m_gameSettingsBtnWidescreen);
m_btnMgr.show(m_gameSettingsLblUSB_HID);
m_btnMgr.show(m_gameSettingsBtnUSB_HID);
m_btnMgr.show(m_gameSettingsLblNATIVE_CTL);
m_btnMgr.show(m_gameSettingsBtnNATIVE_CTL);
m_btnMgr.show(m_gameSettingsLblManage);
m_btnMgr.show(m_gameSettingsBtnManage);
}
}
if(m_gameSettingsPage == 4)
{
if(GameHdr->type == TYPE_GC_GAME)
{
m_btnMgr.show(m_gameSettingsLblUSB_HID);
m_btnMgr.show(m_gameSettingsBtnUSB_HID);
m_btnMgr.show(m_gameSettingsLblNATIVE_CTL);
m_btnMgr.show(m_gameSettingsBtnNATIVE_CTL);
m_btnMgr.show(m_gameSettingsBtnArcade);
m_btnMgr.show(m_gameSettingsLblArcade);
}
else
{
m_btnMgr.show(m_gameSettingsLblManage);
m_btnMgr.show(m_gameSettingsBtnManage);
if(GameHdr->type == TYPE_CHANNEL || GameHdr->type == TYPE_EMUCHANNEL)
{
m_btnMgr.show(m_gameSettingsLblCustom);
m_btnMgr.show(m_gameSettingsBtnCustom);
m_btnMgr.show(m_gameSettingsLblApploader);
m_btnMgr.show(m_gameSettingsBtnApploader);
m_btnMgr.show(m_gameSettingsLblLaunchNK);
m_btnMgr.show(m_gameSettingsBtnLaunchNK);
}
@ -420,36 +319,24 @@ void CMenu::_showGameSettings(void)
m_btnMgr.show(m_gameSettingsLblExtractSave);
m_btnMgr.show(m_gameSettingsBtnExtractSave);
m_btnMgr.show(m_gameSettingsLblFlashSave);
m_btnMgr.show(m_gameSettingsBtnFlashSave);
}
m_btnMgr.show(m_gameSettingsLblGameIOS);
m_btnMgr.show(m_gameSettingsLblIOS);
m_btnMgr.show(m_gameSettingsBtnIOSP);
m_btnMgr.show(m_gameSettingsBtnIOSM);
m_btnMgr.show(m_gameSettingsLblLED);
m_btnMgr.show(m_gameSettingsBtnLED);
}
}
if(m_gameSettingsPage == 5)
{
m_btnMgr.show(m_gameSettingsLblFlashSave);
m_btnMgr.show(m_gameSettingsBtnFlashSave);
m_btnMgr.show(m_gameSettingsLblLED);
m_btnMgr.show(m_gameSettingsBtnLED);
//maybe only show this if mariokart wii
m_btnMgr.show(m_gameSettingsLblPrivateServer);
m_btnMgr.show(m_gameSettingsBtnPrivateServer);
if(GameHdr->type == TYPE_WII_GAME)
{
m_btnMgr.show(m_gameSettingsLblPrivateServer);
m_btnMgr.show(m_gameSettingsBtnPrivateServer);
}
}
u32 i = 0;
for(i = 0; i < ARRAY_SIZE(m_gameSettingsLblUser); ++i)
if(m_gameSettingsLblUser[i] != -1)
m_btnMgr.show(m_gameSettingsLblUser[i]);
int page = m_gameSettingsPage;
u32 maxpage = m_gameSettingsMaxPgs;
m_btnMgr.setText(m_gameSettingsLblPage, wfmt(L"%i / %i", page, maxpage));
m_btnMgr.setText(m_gameSettingsBtnOcarina, _optBoolToString(m_gcfg2.getOptBool(id, "cheat", 0)));
m_btnMgr.setText(m_gameSettingsBtnLED, _optBoolToString(m_gcfg2.getOptBool(id, "led", 0)));
@ -782,11 +669,13 @@ void CMenu::_initGameSettingsMenu()
m_gameSettingsLblTitle = _addTitle("GAME_SETTINGS/TITLE", theme.titleFont, L"", 0, 10, 640, 60, theme.titleFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE);
// Page 1
m_gameSettingsLblManage = _addLabel("GAME_SETTINGS/MANAGE", theme.lblFont, L"", 20, 125, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsBtnManage = _addButton("GAME_SETTINGS/MANAGE_BTN", theme.btnFont, L"", 420, 130, 200, 48, theme.btnFontColor);
m_gameSettingsLblCategoryMain = _addLabel("GAME_SETTINGS/CAT_MAIN", 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_gameSettingsLblCategoryMain = _addLabel("GAME_SETTINGS/CAT_MAIN", theme.lblFont, L"", 20, 185, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsBtnCategoryMain = _addButton("GAME_SETTINGS/CAT_MAIN_BTN", theme.btnFont, L"", 420, 190, 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_gameSettingsLblIOS = _addLabel("GAME_SETTINGS/IOS_BTN", theme.btnFont, L"", 468, 190, 104, 48, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC);
m_gameSettingsBtnIOSM = _addPicButton("GAME_SETTINGS/IOS_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 420, 190, 48, 48);
m_gameSettingsBtnIOSP = _addPicButton("GAME_SETTINGS/IOS_PLUS", theme.btnTexPlus, theme.btnTexPlusS, 572, 190, 48, 48);
m_gameSettingsLblGameLanguage = _addLabel("GAME_SETTINGS/GAME_LANG", theme.lblFont, L"", 20, 245, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsLblLanguage = _addLabel("GAME_SETTINGS/GAME_LANG_BTN", theme.btnFont, L"", 468, 250, 104, 48, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC);
@ -823,16 +712,13 @@ void CMenu::_initGameSettingsMenu()
//GC Page 2
//nintendont = debugger, deflicker, ocarina, cheats
//devolution = emucard, widescreen, led_activity(pg4), (blank)
m_gameSettingsLblDevoMemcardEmu = _addLabel("GAME_SETTINGS/DEVO_MEMCARD_EMU", theme.lblFont, L"", 20, 125, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsBtnDevoMemcardEmu = _addButton("GAME_SETTINGS/DEVO_MEMCARD_EMU_BTN", theme.btnFont, L"", 420, 130, 200, 48, theme.btnFontColor);
//devolution = led_activity(pg5), emu_memcard, widescreen(pg3), mng_cvr_bnr (pg4)
m_gameSettingsLblDeflicker = _addLabel("GAME_SETTINGS/DEFLICKER", theme.lblFont, L"", 20, 185, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsBtnDeflicker = _addButton("GAME_SETTINGS/DEFLICKER_BTN", theme.btnFont, L"", 420, 190, 200, 48, theme.btnFontColor);
m_gameSettingsLblWidescreen = _addLabel("GAME_SETTINGS/WIDESCREEN", theme.lblFont, L"", 20, 185, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsBtnWidescreen = _addButton("GAME_SETTINGS/WIDESCREEN_BTN", theme.btnFont, L"", 420, 190, 200, 48, theme.btnFontColor);
m_gameSettingsLblDevoMemcardEmu = _addLabel("GAME_SETTINGS/DEVO_MEMCARD_EMU", theme.lblFont, L"", 20, 185, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsBtnDevoMemcardEmu = _addButton("GAME_SETTINGS/DEVO_MEMCARD_EMU_BTN", theme.btnFont, L"", 420, 190, 200, 48, theme.btnFontColor);
//Page 3
m_gameSettingsLblCountryPatch = _addLabel("GAME_SETTINGS/COUNTRY_PATCH", theme.lblFont, L"", 20, 125, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
@ -851,24 +737,15 @@ void CMenu::_initGameSettingsMenu()
m_gameSettingsBtnAspectRatioM = _addPicButton("GAME_SETTINGS/ASPECT_RATIO_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 420, 310, 48, 48);
m_gameSettingsBtnAspectRatioP = _addPicButton("GAME_SETTINGS/ASPECT_RATIO_PLUS", theme.btnTexPlus, theme.btnTexPlusS, 572, 310, 48, 48);
//Channels Page 3 line 4
m_gameSettingsLblApploader = _addLabel("GAME_SETTINGS/APPLDR", theme.lblFont, L"", 20, 305, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsBtnApploader = _addButton("GAME_SETTINGS/APPLDR_BTN", theme.btnFont, L"", 420, 310, 200, 48, theme.btnFontColor);
//GC Nintendont Page 3
//nintendont = led_activity(pg5), emu_memcard, widescreen/wiiu widescreen, mng_cvr_bnr (pg4)
m_gameSettingsLblEmuMemCard = _addLabel("GAME_SETTINGS/DML_NMM", theme.lblFont, L"", 20, 185, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsLblEmuMemCard_Val = _addLabel("GAME_SETTINGS/DML_NMM_BTN", theme.btnFont, L"", 468, 190, 104, 48, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC);
m_gameSettingsBtnEmuMemCard_M = _addPicButton("GAME_SETTINGS/DML_NMM_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 420, 190, 48, 48);
m_gameSettingsBtnEmuMemCard_P = _addPicButton("GAME_SETTINGS/DML_NMM_PLUS", theme.btnTexPlus, theme.btnTexPlusS, 572, 190, 48, 48);
//GC Page 3
//nintendont=emucard, widescreen(pg2)/wiiu widescreen, usb_hid, native_ctl
//devo=nothing
m_gameSettingsLblEmuMemCard = _addLabel("GAME_SETTINGS/DML_NMM", theme.lblFont, L"", 20, 125, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsLblEmuMemCard_Val = _addLabel("GAME_SETTINGS/DML_NMM_BTN", theme.btnFont, L"", 468, 130, 104, 48, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC);
m_gameSettingsBtnEmuMemCard_M = _addPicButton("GAME_SETTINGS/DML_NMM_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 420, 130, 48, 48);
m_gameSettingsBtnEmuMemCard_P = _addPicButton("GAME_SETTINGS/DML_NMM_PLUS", theme.btnTexPlus, theme.btnTexPlusS, 572, 130, 48, 48);
m_gameSettingsLblUSB_HID = _addLabel("GAME_SETTINGS/USB_HID", theme.lblFont, L"", 20, 245, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsBtnUSB_HID = _addButton("GAME_SETTINGS/USB_HID_BTN", theme.btnFont, L"", 420, 250, 200, 48, theme.btnFontColor);
m_gameSettingsLblNATIVE_CTL = _addLabel("GAME_SETTINGS/NATIVE_CTL", theme.lblFont, L"", 20, 305, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsBtnNATIVE_CTL = _addButton("GAME_SETTINGS/NATIVE_CTL_BTN", theme.btnFont, L"", 420, 310, 200, 48, theme.btnFontColor);
m_gameSettingsLblWidescreen = _addLabel("GAME_SETTINGS/WIDESCREEN", theme.lblFont, L"", 20, 245, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsBtnWidescreen = _addButton("GAME_SETTINGS/WIDESCREEN_BTN", theme.btnFont, L"", 420, 250, 200, 48, theme.btnFontColor);
//Page 4
m_gameSettingsLblEmulation = _addLabel("GAME_SETTINGS/EMU_SAVE", theme.lblFont, L"", 20, 125, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
@ -876,31 +753,38 @@ void CMenu::_initGameSettingsMenu()
m_gameSettingsBtnEmulationM = _addPicButton("GAME_SETTINGS/EMU_SAVE_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 420, 130, 48, 48);
m_gameSettingsBtnEmulationP = _addPicButton("GAME_SETTINGS/EMU_SAVE_PLUS", theme.btnTexPlus, theme.btnTexPlusS, 572, 130, 48, 48);
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_gameSettingsBtnIOSM = _addPicButton("GAME_SETTINGS/IOS_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 420, 190, 48, 48);
m_gameSettingsBtnIOSP = _addPicButton("GAME_SETTINGS/IOS_PLUS", theme.btnTexPlus, theme.btnTexPlusS, 572, 190, 48, 48);
m_gameSettingsLblExtractSave = _addLabel("GAME_SETTINGS/EXTRACT_SAVE", theme.lblFont, L"", 20, 185, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsBtnExtractSave = _addButton("GAME_SETTINGS/EXTRACT_SAVE_BTN", theme.btnFont, L"", 420, 190, 200, 48, theme.btnFontColor);
m_gameSettingsLblLED = _addLabel("GAME_SETTINGS/LED", theme.lblFont, L"", 20, 245, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsBtnLED = _addButton("GAME_SETTINGS/LED_BTN", theme.btnFont, L"", 420, 250, 200, 48, theme.btnFontColor);
m_gameSettingsLblFlashSave = _addLabel("GAME_SETTINGS/FLASH_SAVE", theme.lblFont, L"", 20, 245, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsBtnFlashSave = _addButton("GAME_SETTINGS/FLASH_SAVE_BTN", theme.btnFont, L"", 420, 250, 200, 48, theme.btnFontColor);
m_gameSettingsLblExtractSave = _addLabel("GAME_SETTINGS/EXTRACT_SAVE", theme.lblFont, L"", 20, 305, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsBtnExtractSave = _addButton("GAME_SETTINGS/EXTRACT_SAVE_BTN", theme.btnFont, L"", 420, 310, 200, 48, theme.btnFontColor);
m_gameSettingsLblManage = _addLabel("GAME_SETTINGS/MANAGE", theme.lblFont, L"", 20, 305, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsBtnManage = _addButton("GAME_SETTINGS/MANAGE_BTN", theme.btnFont, L"", 420, 310, 200, 48, theme.btnFontColor);
//GC Nintendont Page 4 line 1
m_gameSettingsLblArcade = _addLabel("GAME_SETTINGS/ARCADE", theme.lblFont, L"", 20, 125, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsBtnArcade = _addButton("GAME_SETTINGS/ARCADE_BTN", theme.btnFont, L"", 420, 130, 200, 48, theme.btnFontColor);
//Channels Page 4 line 1 and line 4 but only if emu NAND on USB1
//Channels Page 4
m_gameSettingsLblCustom = _addLabel("GAME_SETTINGS/CUSTOM", theme.lblFont, L"", 20, 125, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsBtnCustom = _addButton("GAME_SETTINGS/CUSTOM_BTN", theme.btnFont, L"", 420, 130, 200, 48, theme.btnFontColor);
m_gameSettingsLblLaunchNK = _addLabel("GAME_SETTINGS/LAUNCHNEEK", theme.lblFont, L"", 20, 305, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsBtnLaunchNK = _addButton("GAME_SETTINGS/LAUNCHNEEK_BTN", theme.btnFont, L"", 420, 310, 200, 48, theme.btnFontColor);
m_gameSettingsLblApploader = _addLabel("GAME_SETTINGS/APPLDR", theme.lblFont, L"", 20, 185, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsBtnApploader = _addButton("GAME_SETTINGS/APPLDR_BTN", theme.btnFont, L"", 420, 190, 200, 48, theme.btnFontColor);
m_gameSettingsLblLaunchNK = _addLabel("GAME_SETTINGS/LAUNCHNEEK", theme.lblFont, L"", 20, 245, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsBtnLaunchNK = _addButton("GAME_SETTINGS/LAUNCHNEEK_BTN", theme.btnFont, L"", 420, 250, 200, 48, theme.btnFontColor);
//GC Nintendont Page 4
m_gameSettingsLblUSB_HID = _addLabel("GAME_SETTINGS/USB_HID", theme.lblFont, L"", 20, 125, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsBtnUSB_HID = _addButton("GAME_SETTINGS/USB_HID_BTN", theme.btnFont, L"", 420, 130, 200, 48, theme.btnFontColor);
m_gameSettingsLblNATIVE_CTL = _addLabel("GAME_SETTINGS/NATIVE_CTL", theme.lblFont, L"", 20, 185, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsBtnNATIVE_CTL = _addButton("GAME_SETTINGS/NATIVE_CTL_BTN", theme.btnFont, L"", 420, 190, 200, 48, theme.btnFontColor);
m_gameSettingsLblArcade = _addLabel("GAME_SETTINGS/ARCADE", theme.lblFont, L"", 20, 245, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsBtnArcade = _addButton("GAME_SETTINGS/ARCADE_BTN", theme.btnFont, L"", 420, 250, 200, 48, theme.btnFontColor);
//Page 5
m_gameSettingsLblFlashSave = _addLabel("GAME_SETTINGS/FLASH_SAVE", theme.lblFont, L"", 20, 125, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsBtnFlashSave = _addButton("GAME_SETTINGS/FLASH_SAVE_BTN", theme.btnFont, L"", 420, 130, 200, 48, theme.btnFontColor);
m_gameSettingsLblLED = _addLabel("GAME_SETTINGS/LED", theme.lblFont, L"", 20, 125, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsBtnLED = _addButton("GAME_SETTINGS/LED_BTN", theme.btnFont, L"", 420, 130, 200, 48, theme.btnFontColor);
m_gameSettingsLblPrivateServer = _addLabel("GAME_SETTINGS/PRIVATE_SERVER", theme.lblFont, L"", 20, 185, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsBtnPrivateServer = _addButton("GAME_SETTINGS/PRIVATE_SERVER_BTN", theme.btnFont, L"", 420, 190, 200, 48, theme.btnFontColor);

View File

@ -0,0 +1,177 @@
#include "menu.hpp"
s16 m_configGCLblTitle;
s16 m_configGCBtnBack;
s16 m_configGCLblUser[4];
s16 m_configGCLblGCGameLanguage;
s16 m_configGCLblGCLanguage;
s16 m_configGCBtnGCLanguageP;
s16 m_configGCBtnGCLanguageM;
s16 m_configGCLblGCGameVideo;
s16 m_configGCLblGCVideo;
s16 m_configGCBtnGCVideoP;
s16 m_configGCBtnGCVideoM;
s16 m_configGCLblGCGameLoader;
s16 m_configGCLblGCLoader;
s16 m_configGCBtnGCLoaderP;
s16 m_configGCBtnGCLoaderM;
TexData m_configGCBg;
template <class T> static inline T loopNum(T i, T s)
{
return (i + s) % s;
}
void CMenu::_hideConfigGC(bool instant)
{
m_btnMgr.hide(m_configGCLblTitle, instant);
m_btnMgr.hide(m_configGCBtnBack, instant);
for(u8 i = 0; i < ARRAY_SIZE(m_configGCLblUser); ++i)
if(m_configGCLblUser[i] != -1)
m_btnMgr.hide(m_configGCLblUser[i], instant);
m_btnMgr.hide(m_configGCLblGCGameLanguage, instant);
m_btnMgr.hide(m_configGCLblGCLanguage, instant);
m_btnMgr.hide(m_configGCBtnGCLanguageP, instant);
m_btnMgr.hide(m_configGCBtnGCLanguageM, instant);
m_btnMgr.hide(m_configGCLblGCGameVideo, instant);
m_btnMgr.hide(m_configGCLblGCVideo, instant);
m_btnMgr.hide(m_configGCBtnGCVideoP, instant);
m_btnMgr.hide(m_configGCBtnGCVideoM, instant);
m_btnMgr.hide(m_configGCLblGCGameLoader, instant);
m_btnMgr.hide(m_configGCLblGCLoader, instant);
m_btnMgr.hide(m_configGCBtnGCLoaderP, instant);
m_btnMgr.hide(m_configGCBtnGCLoaderM, instant);
}
void CMenu::_showConfigGC(void)
{
m_btnMgr.show(m_configGCLblTitle);
m_btnMgr.show(m_configGCBtnBack);
for(u8 i = 0; i < ARRAY_SIZE(m_configGCLblUser); ++i)
if(m_configGCLblUser[i] != -1)
m_btnMgr.show(m_configGCLblUser[i]);
m_btnMgr.show(m_configGCLblGCGameLanguage);
m_btnMgr.show(m_configGCLblGCLanguage);
m_btnMgr.show(m_configGCBtnGCLanguageP);
m_btnMgr.show(m_configGCBtnGCLanguageM);
m_btnMgr.show(m_configGCLblGCGameVideo);
m_btnMgr.show(m_configGCLblGCVideo);
m_btnMgr.show(m_configGCBtnGCVideoP);
m_btnMgr.show(m_configGCBtnGCVideoM);
m_btnMgr.show(m_configGCLblGCGameLoader);
m_btnMgr.show(m_configGCLblGCLoader);
m_btnMgr.show(m_configGCBtnGCLoaderP);
m_btnMgr.show(m_configGCBtnGCLoaderM);
int i = min(max(0, m_cfg.getInt(GC_DOMAIN, "video_mode", 0)), (int)ARRAY_SIZE(CMenu::_GlobalGCvideoModes) - 1);
m_btnMgr.setText(m_configGCLblGCVideo, _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_configGCLblGCLanguage, _t(CMenu::_GlobalGClanguages[i].id, CMenu::_GlobalGClanguages[i].text));
i = min(max(0, m_cfg.getInt(GC_DOMAIN, "default_loader", 2)), (int)ARRAY_SIZE(CMenu::_GlobalGCLoaders) - 1);
m_btnMgr.setText(m_configGCLblGCLoader, _t(CMenu::_GlobalGCLoaders[i].id, CMenu::_GlobalGCLoaders[i].text));
}
void CMenu::_configGC(void)
{
SetupInput();
_setBg(m_configGCBg, m_configGCBg);
_showConfigGC();
while(!m_exit)
{
_mainLoopCommon();
if(BTN_HOME_PRESSED || BTN_B_PRESSED)
break;
else if(BTN_UP_PRESSED)
m_btnMgr.up();
else if(BTN_DOWN_PRESSED)
m_btnMgr.down();
else if(BTN_A_PRESSED)
{
if(m_btnMgr.selected(m_configGCBtnBack))
break;
else if(m_btnMgr.selected(m_configGCBtnGCLanguageP) || m_btnMgr.selected(m_configGCBtnGCLanguageM))
{
s8 direction = m_btnMgr.selected(m_configGCBtnGCLanguageP) ? 1 : -1;
m_cfg.setInt(GC_DOMAIN, "game_language", (int)loopNum((u32)m_cfg.getInt(GC_DOMAIN, "game_language", 0) + direction, ARRAY_SIZE(CMenu::_GlobalGClanguages)));
_showConfigGC();
}
else if(m_btnMgr.selected(m_configGCBtnGCVideoP) || m_btnMgr.selected(m_configGCBtnGCVideoM))
{
s8 direction = m_btnMgr.selected(m_configGCBtnGCVideoP) ? 1 : -1;
m_cfg.setInt(GC_DOMAIN, "video_mode", (int)loopNum((u32)m_cfg.getInt(GC_DOMAIN, "video_mode", 0) + direction, ARRAY_SIZE(CMenu::_GlobalGCvideoModes)));
_showConfigGC();
}
else if(m_btnMgr.selected(m_configGCBtnGCLoaderP) || m_btnMgr.selected(m_configGCBtnGCLoaderM))
{
s8 direction = m_btnMgr.selected(m_configGCBtnGCLoaderP) ? 1 : -1;
m_cfg.setInt(GC_DOMAIN, "default_loader", (int)loopNum((u32)m_cfg.getInt(GC_DOMAIN, "default_loader", 1) + direction, ARRAY_SIZE(CMenu::_GlobalGCLoaders)));
_showConfigGC();
}
}
}
_hideConfigGC();
}
void CMenu::_initConfigGCMenu(void)
{
m_configGCBg = _texture("CONFIGGC/BG", "texture", theme.bg, false);
_addUserLabels(m_configGCLblUser, ARRAY_SIZE(m_configGCLblUser), "CONFIGGC");
m_configGCLblTitle = _addTitle("CONFIGGC/TITLE", theme.titleFont, L"", 0, 10, 640, 60, theme.titleFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE);
m_configGCBtnBack = _addButton("CONFIGGC/BACK_BTN", theme.btnFont, L"", 420, 400, 200, 48, theme.btnFontColor);
m_configGCLblGCGameVideo = _addLabel("CONFIGGC/GC_VIDEO", theme.lblFont, L"", 20, 125, 290, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_configGCLblGCVideo = _addLabel("CONFIGGC/GC_VIDEO_BTN", theme.btnFont, L"", 468, 130, 104, 48, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC);
m_configGCBtnGCVideoM = _addPicButton("CONFIGGC/GC_VIDEO_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 420, 130, 48, 48);
m_configGCBtnGCVideoP = _addPicButton("CONFIGGC/GC_VIDEO_PLUS", theme.btnTexPlus, theme.btnTexPlusS, 572, 130, 48, 48);
m_configGCLblGCGameLanguage = _addLabel("CONFIGGC/GC_LANG", theme.lblFont, L"", 20, 185, 290, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_configGCLblGCLanguage = _addLabel("CONFIGGC/GC_LANG_BTN", theme.btnFont, L"", 468, 190, 104, 48, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC);
m_configGCBtnGCLanguageM = _addPicButton("CONFIGGC/GC_LANG_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 420, 190, 48, 48);
m_configGCBtnGCLanguageP = _addPicButton("CONFIGGC/GC_LANG_PLUS", theme.btnTexPlus, theme.btnTexPlusS, 572, 190, 48, 48);
m_configGCLblGCGameLoader = _addLabel("CONFIGGC/GC_LOADER", theme.lblFont, L"", 20, 245, 290, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_configGCLblGCLoader = _addLabel("CONFIGGC/GC_LOADER_BTN", theme.btnFont, L"", 468, 250, 104, 48, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC);
m_configGCBtnGCLoaderM = _addPicButton("CONFIGGC/GC_LOADER_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 420, 250, 48, 48);
m_configGCBtnGCLoaderP = _addPicButton("CONFIGGC/GC_LOADER_PLUS", theme.btnTexPlus, theme.btnTexPlusS, 572, 250, 48, 48);
_setHideAnim(m_configGCLblTitle, "CONFIGGC/TITLE", 0, 0, -2.f, 0.f);
_setHideAnim(m_configGCBtnBack, "CONFIGGC/BACK_BTN", 0, 0, 1.f, -1.f);
_setHideAnim(m_configGCLblGCGameVideo, "CONFIGGC/GC_VIDEO", 50, 0, -2.f, 0.f);
_setHideAnim(m_configGCLblGCVideo, "CONFIGGC/GC_VIDEO_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_configGCBtnGCVideoM, "CONFIGGC/GC_VIDEO_MINUS", -50, 0, 1.f, 0.f);
_setHideAnim(m_configGCBtnGCVideoP, "CONFIGGC/GC_VIDEO_PLUS", -50, 0, 1.f, 0.f);
_setHideAnim(m_configGCLblGCGameLanguage, "CONFIGGC/GC_LANG", 50, 0, -2.f, 0.f);
_setHideAnim(m_configGCLblGCLanguage, "CONFIGGC/GC_LANG_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_configGCBtnGCLanguageM, "CONFIGGC/GC_LANG_MINUS", -50, 0, 1.f, 0.f);
_setHideAnim(m_configGCBtnGCLanguageP, "CONFIGGC/GC_LANG_PLUS", -50, 0, 1.f, 0.f);
_setHideAnim(m_configGCLblGCGameLoader, "CONFIGGC/GC_LOADER", 50, 0, -2.f, 0.f);
_setHideAnim(m_configGCLblGCLoader, "CONFIGGC/GC_LOADER_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_configGCBtnGCLoaderM, "CONFIGGC/GC_LOADER_MINUS", -50, 0, 1.f, 0.f);
_setHideAnim(m_configGCBtnGCLoaderP, "CONFIGGC/GC_LOADER_PLUS", -50, 0, 1.f, 0.f);
_hideConfigGC(true);
_textConfigGC();
}
void CMenu::_textConfigGC(void)
{
m_btnMgr.setText(m_configGCLblTitle, _t("cfgb8", L"GameCube Settings"));
m_btnMgr.setText(m_configGCLblGCGameVideo, _t("cfgb5", L"Default GC video mode"));
m_btnMgr.setText(m_configGCLblGCGameLanguage, _t("cfgb6", L"Default GC game language"));
m_btnMgr.setText(m_configGCLblGCGameLoader, _t("cfgb2", L"Default GC game loader"));
m_btnMgr.setText(m_configGCBtnBack, _t("cfg10", L"Back"));
}

View File

@ -126,18 +126,6 @@ void CMenu::_CfgHB(void)
_hideCfgHB(true);
}
void CMenu::_textCfgHB(void)
{
m_btnMgr.setText(m_cfghbLblTitle, _t("cfghb1", L"Homebrew Settings"));
m_btnMgr.setText(m_cfghbLblAdjustCF, _t("cfgc4", L"Adjust Coverflow"));
m_btnMgr.setText(m_cfghbBtnAdjustCF, _t("cfgc5", L"Go"));
m_btnMgr.setText(m_cfghbLblSmallbox, _t("cfghb2", L"Coverflow Smallbox"));
m_btnMgr.setText(m_cfghbLblBoxMode, _t("cfghb6", L"Box Mode"));
m_btnMgr.setText(m_cfghbLblPartition, _t("cfghb3", L"Homebrew Partition"));
m_btnMgr.setText(m_cfghbBtnBack, _t("cfg10", L"Back"));
}
void CMenu::_initCfgHB(void)
{
m_cfghbBg = _texture("CFG_HB/BG", "texture", theme.bg, false);
@ -180,3 +168,14 @@ void CMenu::_initCfgHB(void)
_hideCfgHB(true);
_textCfgHB();
}
void CMenu::_textCfgHB(void)
{
m_btnMgr.setText(m_cfghbLblTitle, _t("cfghb1", L"Homebrew Settings"));
m_btnMgr.setText(m_cfghbLblAdjustCF, _t("cfgc4", L"Adjust Coverflow"));
m_btnMgr.setText(m_cfghbBtnAdjustCF, _t("cfgc5", L"Go"));
m_btnMgr.setText(m_cfghbLblSmallbox, _t("cfghb2", L"Coverflow Smallbox"));
m_btnMgr.setText(m_cfghbLblBoxMode, _t("cfghb4", L"Box Mode"));
m_btnMgr.setText(m_cfghbLblPartition, _t("cfghb3", L"Homebrew Partition"));
m_btnMgr.setText(m_cfghbBtnBack, _t("cfg10", L"Back"));
}

View File

@ -199,7 +199,7 @@ void CMenu::_textCfgSrc(void)
m_btnMgr.setText(m_cfgsrcLblTitle, _t("cfgsm1", L"Source Menu Settings"));
m_btnMgr.setText(m_cfgsrcLblEnableSF, _t("cfgsm3", L"Enable Sourceflow"));
m_btnMgr.setText(m_cfgsrcLblSmallbox, _t("cfgsm4", L"Sourceflow Smallbox"));
m_btnMgr.setText(m_cfgsrcLblBoxMode, _t("cfghb6", L"Box Mode"));
m_btnMgr.setText(m_cfgsrcLblBoxMode, _t("cfghb4", L"Box Mode"));
m_btnMgr.setText(m_cfgsrcLblAdjustCF, _t("cfgc4", L"Adjust Coverflow"));
m_btnMgr.setText(m_cfgsrcBtnAdjustCF, _t("cfgc5", L"Go"));
m_btnMgr.setText(m_cfgsrcLblMultisource, _t("cfgbt6", L"Enable Multisource Features"));

View File

@ -607,12 +607,12 @@ void CMenu::_game(bool launch)
error(_t("errgame15", L"WiiFlow locked! Unlock WiiFlow to use this feature."));
m_banner.SetShowBanner(true);
}
else if(hdr->type == TYPE_PLUGIN)
/*else if(hdr->type == TYPE_PLUGIN)
{
m_banner.SetShowBanner(false);
error(_t("errgame16", L"Not available for plugin games!"));
m_banner.SetShowBanner(true);
}
}*/
else
{
m_banner.ToggleGameSettings();
@ -1261,14 +1261,14 @@ void CMenu::_launchChannel(dir_discHdr *hdr)
bool cheat = m_gcfg2.getBool(id, "cheat", false);
bool countryPatch = m_gcfg2.getBool(id, "country_patch", false);
u8 videoMode = (u8)min((u32)m_gcfg2.getInt(id, "video_mode", 0), ARRAY_SIZE(CMenu::_VideoModes) - 1u);
videoMode = (videoMode == 0) ? (u8)min((u32)m_cfg.getInt("GENERAL", "video_mode", 0), ARRAY_SIZE(CMenu::_GlobalVideoModes) - 1) : videoMode-1;
u8 videoMode = (u8)min((u32)m_gcfg2.getInt(id, "video_mode", 0), ARRAY_SIZE(CMenu::_VideoModes) - 1);
videoMode = (videoMode == 0) ? (u8)min((u32)m_cfg.getInt("GENERAL", "video_mode", 0), ARRAY_SIZE(CMenu::_GlobalVideoModes) - 1) : videoMode - 1;
int language = min((u32)m_gcfg2.getInt(id, "language", 0), ARRAY_SIZE(CMenu::_languages) - 1u);
int language = min((u32)m_gcfg2.getInt(id, "language", 0), ARRAY_SIZE(CMenu::_languages) - 1);
language = (language == 0) ? min((u32)m_cfg.getInt("GENERAL", "game_language", 0), ARRAY_SIZE(CMenu::_languages) - 1) : language;
u8 patchVidMode = min((u32)m_gcfg2.getInt(id, "patch_video_modes", 0), ARRAY_SIZE(CMenu::_vidModePatch) - 1u);
int aspectRatio = min((u32)m_gcfg2.getInt(id, "aspect_ratio", 0), ARRAY_SIZE(CMenu::_AspectRatio) - 1u)-1;
u8 patchVidMode = min((u32)m_gcfg2.getInt(id, "patch_video_modes", 0), ARRAY_SIZE(CMenu::_vidModePatch) - 1);
int aspectRatio = min((u32)m_gcfg2.getInt(id, "aspect_ratio", 0), ARRAY_SIZE(CMenu::_AspectRatio) - 1) - 1;// -1,0,1
const char *rtrn = m_gcfg2.getBool(id, "returnto", true) ? m_cfg.getString("GENERAL", "returnto").c_str() : NULL;
u32 returnTo = rtrn[0] << 24 | rtrn[1] << 16 | rtrn[2] << 8 | rtrn[3];

View File

@ -5,7 +5,7 @@
wstringEx gameinfo_Synopsis_w;
wstringEx gameinfo_Title_w;
bool titlecheck = false;
bool tdb_found = false;
u8 cnt_controlsreq = 0, cnt_controls = 0;
void CMenu::_gameinfo(void)
@ -150,7 +150,7 @@ void CMenu::_showGameInfo(void)
_textGameInfo();
if(titlecheck)
if(tdb_found)
{
m_btnMgr.show(m_gameinfoLblID);
m_btnMgr.show(m_gameinfoLblTitle);
@ -235,8 +235,8 @@ void CMenu::_textGameInfo(void)
gametdb.OpenFile(fmt("%s/wiitdb.xml", m_settingsDir.c_str()));
gametdb.SetLanguageCode(m_loc.getString(m_curLanguage, "gametdb_code", "EN").c_str());
const char *TMP_Char = NULL;
titlecheck = gametdb.IsLoaded();
if(titlecheck)
tdb_found = gametdb.IsLoaded();
if(tdb_found)
{
char GameID[7];
GameID[6] = '\0';

View File

@ -57,7 +57,11 @@ bool CMenu::_Home(void)
/* and it always changes so... */
m_btnMgr.setText(m_homeLblBattery, wfmt(PLAYER_BATTERY_LABEL, min((float)wd[0]->battery_level, 100.f),
min((float)wd[1]->battery_level, 100.f), min((float)wd[2]->battery_level, 100.f), min((float)wd[3]->battery_level, 100.f)));
if(BTN_A_PRESSED)
if(BTN_UP_PRESSED)
m_btnMgr.up();
else if(BTN_DOWN_PRESSED)
m_btnMgr.down();
else if(BTN_A_PRESSED)
{
if(m_btnMgr.selected(m_homeBtnSettings))//actually help guide btn
{
@ -149,7 +153,11 @@ bool CMenu::_ExitTo(void)
while(!m_exit)
{
_mainLoopCommon();
if(BTN_A_PRESSED)
if(BTN_UP_PRESSED)
m_btnMgr.up();
else if(BTN_DOWN_PRESSED)
m_btnMgr.down();
else if(BTN_A_PRESSED)
{
if(m_btnMgr.selected(m_homeBtnExitToHBC))
{

View File

@ -311,7 +311,10 @@ int CMenu::main(void)
{
_CfgSrc();
if(BTN_B_HELD)
{
bheld = true;
bUsed = true;
}
if(!m_cfg.getBool(SOURCEFLOW_DOMAIN, "enabled"))
{
m_sourceflow = false;
@ -325,7 +328,10 @@ int CMenu::main(void)
{
_CfgHB();
if(BTN_B_HELD)
{
bheld = true;
bUsed = true;
}
_showMain();
}
else

View File

@ -721,7 +721,11 @@ int CMenu::_AutoExtractSave(string gameId)// called from wii game config menu or
while(!m_exit)
{
_mainLoopCommon();
if((BTN_A_PRESSED && m_btnMgr.selected(m_nandemuBtnExtract)) || m_forceext)
if(BTN_UP_PRESSED)
m_btnMgr.up();
else if(BTN_DOWN_PRESSED)
m_btnMgr.down();
else if((BTN_A_PRESSED && m_btnMgr.selected(m_nandemuBtnExtract)) || m_forceext)
{
m_forceext = false;
m_fulldump = false;

View File

@ -0,0 +1,213 @@
#include "menu.hpp"
s16 m_partitionsLblTitle;
s16 m_partitionsBtnBack;
s16 m_partitionsLblUser[4];
s16 m_partitionsLblWii;
s16 m_partitionsLblWiiVal;
s16 m_partitionsBtnWiiP;
s16 m_partitionsBtnWiiM;
s16 m_partitionsLblGC;
s16 m_partitionsLblGCVal;
s16 m_partitionsBtnGCP;
s16 m_partitionsBtnGCM;
s16 m_partitionsLblChannels;
s16 m_partitionsLblChannelsVal;
s16 m_partitionsBtnChannelsP;
s16 m_partitionsBtnChannelsM;
s16 m_partitionsLblPlugin;
s16 m_partitionsLblPluginVal;
s16 m_partitionsBtnPluginP;
s16 m_partitionsBtnPluginM;
TexData m_partitionsBg;
void CMenu::_hidePartitionsCfg(bool instant)
{
m_btnMgr.hide(m_partitionsLblTitle, instant);
m_btnMgr.hide(m_partitionsBtnBack, instant);
for(u8 i = 0; i < ARRAY_SIZE(m_partitionsLblUser); ++i)
if(m_partitionsLblUser[i] != -1)
m_btnMgr.hide(m_partitionsLblUser[i], instant);
m_btnMgr.hide(m_partitionsLblWii, instant);
m_btnMgr.hide(m_partitionsLblWiiVal, instant);
m_btnMgr.hide(m_partitionsBtnWiiP, instant);
m_btnMgr.hide(m_partitionsBtnWiiM, instant);
m_btnMgr.hide(m_partitionsLblGC, instant);
m_btnMgr.hide(m_partitionsLblGCVal, instant);
m_btnMgr.hide(m_partitionsBtnGCP, instant);
m_btnMgr.hide(m_partitionsBtnGCM, instant);
m_btnMgr.hide(m_partitionsLblChannels, instant);
m_btnMgr.hide(m_partitionsLblChannelsVal, instant);
m_btnMgr.hide(m_partitionsBtnChannelsP, instant);
m_btnMgr.hide(m_partitionsBtnChannelsM, instant);
m_btnMgr.hide(m_partitionsLblPlugin, instant);
m_btnMgr.hide(m_partitionsLblPluginVal, instant);
m_btnMgr.hide(m_partitionsBtnPluginP, instant);
m_btnMgr.hide(m_partitionsBtnPluginM, instant);
}
void CMenu::_showPartitionsCfg(void)
{
m_btnMgr.show(m_partitionsLblTitle);
m_btnMgr.show(m_partitionsBtnBack);
for(u8 i = 0; i < ARRAY_SIZE(m_partitionsLblUser); ++i)
if(m_partitionsLblUser[i] != -1)
m_btnMgr.show(m_partitionsLblUser[i]);
m_btnMgr.show(m_partitionsLblWii);
m_btnMgr.show(m_partitionsLblWiiVal);
m_btnMgr.show(m_partitionsBtnWiiP);
m_btnMgr.show(m_partitionsBtnWiiM);
m_btnMgr.show(m_partitionsLblGC);
m_btnMgr.show(m_partitionsLblGCVal);
m_btnMgr.show(m_partitionsBtnGCP);
m_btnMgr.show(m_partitionsBtnGCM);
m_btnMgr.show(m_partitionsLblChannels);
m_btnMgr.show(m_partitionsLblChannelsVal);
m_btnMgr.show(m_partitionsBtnChannelsP);
m_btnMgr.show(m_partitionsBtnChannelsM);
m_btnMgr.show(m_partitionsLblPlugin);
m_btnMgr.show(m_partitionsLblPluginVal);
m_btnMgr.show(m_partitionsBtnPluginP);
m_btnMgr.show(m_partitionsBtnPluginM);
const char *partitionname = DeviceName[m_cfg.getInt(WII_DOMAIN, "partition", 0)];
m_btnMgr.setText(m_partitionsLblWiiVal, upperCase(partitionname));
partitionname = DeviceName[m_cfg.getInt(GC_DOMAIN, "partition", 0)];
m_btnMgr.setText(m_partitionsLblGCVal, upperCase(partitionname));
partitionname = DeviceName[m_cfg.getInt(CHANNEL_DOMAIN, "partition", 0)];
m_btnMgr.setText(m_partitionsLblChannelsVal, upperCase(partitionname));
partitionname = DeviceName[m_cfg.getInt(PLUGIN_DOMAIN, "partition", 0)];
m_btnMgr.setText(m_partitionsLblPluginVal, upperCase(partitionname));
}
void CMenu::_partitionsCfg(void)
{
m_prev_view = m_current_view;
int prevPartition = currentPartition;
SetupInput();
_setBg(m_partitionsBg, m_partitionsBg);
_showPartitionsCfg();
while(!m_exit)
{
_mainLoopCommon();
if(BTN_HOME_PRESSED || BTN_B_PRESSED)
break;
else if(BTN_UP_PRESSED)
m_btnMgr.up();
else if(BTN_DOWN_PRESSED)
m_btnMgr.down();
else if(BTN_A_PRESSED)
{
if(m_btnMgr.selected(m_partitionsBtnBack))
break;
else if(m_btnMgr.selected(m_partitionsBtnWiiP) || m_btnMgr.selected(m_partitionsBtnWiiM))
{
s8 direction = m_btnMgr.selected(m_partitionsBtnWiiP) ? 1 : -1;
currentPartition = m_cfg.getInt(WII_DOMAIN, "partition");
m_current_view = COVERFLOW_WII;
_setPartition(direction);
_showPartitionsCfg();
if(m_prev_view & COVERFLOW_WII)
m_refreshGameList = true;
}
else if(m_btnMgr.selected(m_partitionsBtnGCP) || m_btnMgr.selected(m_partitionsBtnGCM))
{
s8 direction = m_btnMgr.selected(m_partitionsBtnGCP) ? 1 : -1;
currentPartition = m_cfg.getInt(GC_DOMAIN, "partition");
m_current_view = COVERFLOW_GAMECUBE;
_setPartition(direction);
_showPartitionsCfg();
if(m_prev_view & COVERFLOW_GAMECUBE)
m_refreshGameList = true;
}
else if(m_btnMgr.selected(m_partitionsBtnChannelsP) || m_btnMgr.selected(m_partitionsBtnChannelsM))
{
s8 direction = m_btnMgr.selected(m_partitionsBtnChannelsP) ? 1 : -1;
currentPartition = m_cfg.getInt(CHANNEL_DOMAIN, "partition");
m_current_view = COVERFLOW_CHANNEL;
_setPartition(direction);
_showPartitionsCfg();
if(m_prev_view & COVERFLOW_CHANNEL)
m_refreshGameList = true;
}
else if(m_btnMgr.selected(m_partitionsBtnPluginP) || m_btnMgr.selected(m_partitionsBtnPluginM))
{
s8 direction = m_btnMgr.selected(m_partitionsBtnPluginP) ? 1 : -1;
currentPartition = m_cfg.getInt(PLUGIN_DOMAIN, "partition");
m_current_view = COVERFLOW_PLUGIN;
_setPartition(direction);
_showPartitionsCfg();
if(m_prev_view & COVERFLOW_PLUGIN)
m_refreshGameList = true;
}
}
}
m_current_view = m_prev_view;
currentPartition = prevPartition;
_hidePartitionsCfg();
}
void CMenu::_initPartitionsCfgMenu()
{
m_partitionsBg = _texture("PARTCFG/BG", "texture", theme.bg, false);
_addUserLabels(m_partitionsLblUser, ARRAY_SIZE(m_partitionsLblUser), "PARTCFG");
m_partitionsLblTitle = _addTitle("PARTCFG/TITLE", theme.titleFont, L"", 0, 10, 640, 60, theme.titleFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE);
m_partitionsBtnBack = _addButton("PARTCFG/BACK_BTN", theme.btnFont, L"", 420, 400, 200, 48, theme.btnFontColor);
m_partitionsLblWii = _addLabel("PARTCFG/WII", theme.lblFont, L"", 20, 125, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_partitionsLblWiiVal = _addLabel("PARTCFG/WII_BTN", theme.btnFont, L"", 468, 130, 104, 48, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC);
m_partitionsBtnWiiM = _addPicButton("PARTCFG/WII_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 420, 130, 48, 48);
m_partitionsBtnWiiP = _addPicButton("PARTCFG/WII_PLUS", theme.btnTexPlus, theme.btnTexPlusS, 572, 130, 48, 48);
m_partitionsLblGC = _addLabel("PARTCFG/GC", theme.lblFont, L"", 20, 185, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_partitionsLblGCVal = _addLabel("PARTCFG/GC_BTN", theme.btnFont, L"", 468, 190, 104, 48, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC);
m_partitionsBtnGCM = _addPicButton("PARTCFG/GC_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 420, 190, 48, 48);
m_partitionsBtnGCP = _addPicButton("PARTCFG/GC_PLUS", theme.btnTexPlus, theme.btnTexPlusS, 572, 190, 48, 48);
m_partitionsLblChannels = _addLabel("PARTCFG/CHANNELS", theme.lblFont, L"", 20, 245, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_partitionsLblChannelsVal = _addLabel("PARTCFG/CHANNELS_BTN", theme.btnFont, L"", 468, 250, 104, 48, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC);
m_partitionsBtnChannelsM = _addPicButton("PARTCFG/CHANNELS_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 420, 250, 48, 48);
m_partitionsBtnChannelsP = _addPicButton("PARTCFG/CHANNELS_PLUS", theme.btnTexPlus, theme.btnTexPlusS, 572, 250, 48, 48);
m_partitionsLblPlugin = _addLabel("PARTCFG/PLUGIN", theme.lblFont, L"", 20, 305, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_partitionsLblPluginVal = _addLabel("PARTCFG/PLUGIN_BTN", theme.btnFont, L"", 468, 310, 104, 48, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC);
m_partitionsBtnPluginM = _addPicButton("PARTCFG/PLUGIN_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 420, 310, 48, 48);
m_partitionsBtnPluginP = _addPicButton("PARTCFG/PLUGIN_PLUS", theme.btnTexPlus, theme.btnTexPlusS, 572, 310, 48, 48);
_setHideAnim(m_partitionsLblTitle, "PARTCFG/TITLE", 0, 0, -2.f, 0.f);
_setHideAnim(m_partitionsBtnBack, "PARTCFG/BACK_BTN", 0, 0, 1.f, -1.f);
_setHideAnim(m_partitionsLblWii, "PARTCFG/WII", 50, 0, -2.f, 0.f);
_setHideAnim(m_partitionsLblWiiVal, "PARTCFG/WII_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_partitionsBtnWiiM, "PARTCFG/WII_MINUS", -50, 0, 1.f, 0.f);
_setHideAnim(m_partitionsBtnWiiP, "PARTCFG/WII_PLUS", -50, 0, 1.f, 0.f);
_setHideAnim(m_partitionsLblGC, "PARTCFG/GC", 50, 0, -2.f, 0.f);
_setHideAnim(m_partitionsLblGCVal, "PARTCFG/GC_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_partitionsBtnGCM, "PARTCFG/GC_MINUS", -50, 0, 1.f, 0.f);
_setHideAnim(m_partitionsBtnGCP, "PARTCFG/GC_PLUS", -50, 0, 1.f, 0.f);
_setHideAnim(m_partitionsLblChannels, "PARTCFG/CHANNELS", 50, 0, -2.f, 0.f);
_setHideAnim(m_partitionsLblChannelsVal, "PARTCFG/CHANNELS_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_partitionsBtnChannelsM, "PARTCFG/CHANNELS_MINUS", -50, 0, 1.f, 0.f);
_setHideAnim(m_partitionsBtnChannelsP, "PARTCFG/CHANNELS_PLUS", -50, 0, 1.f, 0.f);
_setHideAnim(m_partitionsLblPlugin, "PARTCFG/PLUGIN", 50, 0, -2.f, 0.f);
_setHideAnim(m_partitionsLblPluginVal, "PARTCFG/PLUGIN_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_partitionsBtnPluginM, "PARTCFG/PLUGIN_MINUS", -50, 0, 1.f, 0.f);
_setHideAnim(m_partitionsBtnPluginP, "PARTCFG/PLUGIN_PLUS", -50, 0, 1.f, 0.f);
_hidePartitionsCfg(true);
_textPartitionsCfg();
}
void CMenu::_textPartitionsCfg(void)
{
m_btnMgr.setText(m_partitionsLblTitle, _t("part5", L"Partition Settings"));
m_btnMgr.setText(m_partitionsLblWii, _t("part1", L"Wii Partition"));
m_btnMgr.setText(m_partitionsLblGC, _t("part2", L"GameCube Partition"));
m_btnMgr.setText(m_partitionsLblChannels, _t("part3", L"Emu NANDS Partition"));
m_btnMgr.setText(m_partitionsLblPlugin, _t("part4", L"Plugins Default Partition"));
m_btnMgr.setText(m_partitionsBtnBack, _t("cfg10", L"Back"));
}

View File

@ -458,6 +458,10 @@ void CMenu::_Wad(const char *wad_path)
_mainLoopCommon();
if(BTN_HOME_PRESSED || BTN_B_PRESSED)
break;
else if(BTN_UP_PRESSED)
m_btnMgr.up();
else if(BTN_DOWN_PRESSED)
m_btnMgr.down();
else if(BTN_A_PRESSED)
{
if(m_btnMgr.selected(m_wadBtnInstall))

View File

@ -296,7 +296,7 @@ bool CMenu::_wbfsOp(CMenu::WBFS_OP op)
m_btnMgr.up();
else if(BTN_DOWN_PRESSED)
m_btnMgr.down();
if(BTN_A_PRESSED && !m_thrdWorking)
else if(BTN_A_PRESSED && !m_thrdWorking)
{
if(m_btnMgr.selected(m_wbfsBtnGo))
{

View File

@ -2,51 +2,19 @@
<app version="1">
<name> WiiFlow Lite</name>
<coder>Fledge68</coder>
<version>4.2.2 r1123</version>
<release_date>20162006000000</release_date>
<short_description>USB Loader / Nand Emulator</short_description>
<version>4.4.0 r1130</version>
<release_date>20161412000000</release_date>
<short_description>USB Loader app</short_description>
<long_description>
WiiFlow Lite is a Wii Game, Channel, Wiiware, Virtual Console, and Savegame Emulator intended for use with legal backups.
Controls:
- Main menu (coverflow):
-- Up / Down Previous / next game (vertical)
-- Left / Right Previous / next game (horizontal)
-- A Select game
-- B+A Launch game immediately
-- B+Home Reload Wiiflow
-- Home Exit
-- 1 / 2 Previous / next coverflow mode
-- B+Left / B+Right Change Song
-- B+UP / B+DOWN Alphabetic search
-- B+Minus Switch Partition
-- B+Plus Sort Games
-- Minus+Home Exit to Homebrew Channel
-- Plus+Home Exit to System Menu
-- 1+Home Exit to Priiloader
-- 2+Home Exit to BootMii
WiiFlow Lite is a app for loading games from a USB Device, SD card, or an actual Disc.
It dispays your games in a coverflow with 3D full box covers.
-- Minus+A on Exit Icon Exit to Homebrew Channel
-- Plus+A on Exit Icon Exit to System Menu
-- 1+A on Exit Icon Exit to Priiloader
-- 2+A on Exit Icon Exit to BootMii
-- B on View Icon Enable/Disable Nand emulator
- Game :
-- A on box Show the backside
-- A out of screen Launch game
-- B Back to coverflow
-- Minus / Plus Previous / next game (vertical)
-- Left / Right Previous / next game (horizontal)
- Settings menus :
-- Minus / Plus Previous / next page
-- Left / Right Previous / next page
- Coverflow settings :
-- B+Minus / B+Plus Previous / next page
-- B Faster adjustement (B+A instead of just A to click a button)
-- B+1 Copy whole coverflow
-- B+2 Paste coverflow
Key features:
* Emulated NAND support
* Plugin system for emu apps
* Devolution support
* Nintendont support
* Neek2o support
</long_description>
<no_ios_reload/>
</app>

View File

@ -34,6 +34,7 @@ cfg13=NAND Emulation Settings
cfg14=Set
cfg15=Plugins
cfg16=Select
cfg17=Game Partitions
cfg3=Download covers & titles
cfg4=Download
cfg5=Parental control
@ -50,6 +51,8 @@ cfgb4=Default game language
cfgb5=Default GC video mode
cfgb6=Default GC game language
cfgb7=Channels Type
cfgb8=GameCube Settings
cfgb9=GameCube default settings
cfgbnr1=Download Cover
cfgbnr2=Delete Cover
cfgbnr3=Download Custom Banner
@ -189,6 +192,8 @@ cfgsm5=Clear Sourceflow Cache
cfghb1=Homebrew Settings
cfghb2=Coverflow Smallbox
cfghb3=Homebrew Partition
cfghb4=Box Mode
cfghb5=Download Covers
ChanReal=Real NAND
ChanEmu=Emu NAND
ChanBoth=Both
@ -357,6 +362,11 @@ NoDVDOff=Disabled
NoDVDon=Enabled
off=Off
on=On
part1=Wii Partition
part2=GameCube Partition
part3=Emu NANDS Partition
part4=Plugins Default Partition
part5=Partitions Settings
players= Players
prii=Priiloader
real=Real Nand

View File

@ -1,5 +1,4 @@

Styring:
Styring:
- Hoved menu (coverflow):
-- Op / Ned = Forrige / næste spil (Lodret)
-- Venstre / Højre = Forrige / næste spil (Vandret)

View File

@ -1,5 +1,4 @@

Bediening:
Bediening:
- Hoofd menu (coverflow) :
-- Op / Neer = Vorig / volgend spel (verticaal)
-- Links / Rechts = Vorig / volgend spel (horizontaal)

View File

@ -1,5 +1,4 @@

Commandes :
Commandes :
- Page principale (Coverflow) :
-- Haut/Bas = Jeu précédent/suivant (vertical)
-- Gauche/Droite = Jeu précédent/suivant (horizontal)

View File

@ -1,5 +1,4 @@

Bedienung:
Bedienung:
- Hauptmenü (Coverflow):
-- Hoch / Runter = vorheriges / nächstes Spiel (Vertikal)
-- Links / Rechts = vorheriges / nächstes Spiel (Horizontal)

View File

@ -1,5 +1,4 @@

Comandi:
Comandi:
- Menu principale (coverflow):
-- Su / giù = Precedente / prossimo gioco (verticale)
-- Sinistra / destra = Precedente / prossimo gioco (orizzontale)

View File

@ -1,5 +1,4 @@

Controles:
Controles:
- Menú Principal (coverflow) :
-- Arriba / Abajo = Previo / próximo juego (vertical)
-- Izquierda / Derecha = Previo / próximo Juego (horizontal)