-Made a BOLD move and removed all DML and NMM stuff. To play GameCube games you must use Devolution or Nintendont. To play GameCube Disc you must use Nintendont. The only advantage to DML was the screenshot feature and cheats work better. If you really want to use DML then use Dios Mios Booter or USBLoader GX like I will.

-Readded the code to paths to be able to change the path where Wii and GC games are kept. But they really should just be kept in dev:/wbfs and dev:/games.
-wiiflow_lite.ini changes under [GAMECUBE] are:
removed video_setting= - was used to tell wiiflow when using DML or Nintendont to set cfg args for video mode. not needed anymore.
dir_usb_games= - is now - gc_games_dir= with default of %s:/games similar to wii_games_dir
dm_widescreen= - is now - widescreen=
screenshot= is removed. was used for DML
wiiu_widescreen= is added. but only used if on a Wii U
-gameconfig2.ini changes as well.
-NMM and DML is still used in theme ini files. may change in a commit soon but that means all themes have to be modified, a big pain in the butt.
-language and help files will need to be updated to remove all DML and NMM crap.
-and default names of images for some icons and btns need to be changed but for now left them as they are.
-other minor changes. Most of it untested so I hope it all works, if not then repair commits will follow.
This commit is contained in:
fledge68 2016-04-03 00:31:02 +00:00
parent 9dc3eaaad1
commit 45b39c2be0
22 changed files with 1465 additions and 1998 deletions

View File

@ -7,7 +7,7 @@
#define STDEMU_DIR "/wiiflow/nandemu"
#define GAMES_DIR "%s:/wbfs"
#define HOMEBREW_DIR "%s:/apps"
#define GC_GAMES_DIR "%s:/games"
#define DF_GC_GAMES_DIR "%s:/games"
#define CFG_FILENAME "wiiflow_lite.ini"
#define LANG_FILENAME "languages.ini"
#define CAT_FILENAME "categories_lite.ini"

View File

@ -38,122 +38,13 @@
#include "memory/memory.h"
#include "memory/mem2.hpp"
// DIOS-MIOS
DML_CFG DMLCfg;
void DML_New_SetOptions(const char *GamePath, char *CheatPath, const char *NewCheatPath,
const char *partition, bool cheats, bool debugger, u8 NMM, u8 nodisc, u8 DMLvideoMode,
u8 videoSetting, bool widescreen, bool new_dm_cfg, bool activity_led, bool screenshot)
{
gprintf("DIOS-MIOS: Launch game '%s' through memory (new method)\n", GamePath);
memset(&DMLCfg, 0, sizeof(DML_CFG));
DMLCfg.Magicbytes = 0xD1050CF6;
if(new_dm_cfg)
DMLCfg.CfgVersion = 0x00000002;
else
DMLCfg.CfgVersion = 0x00000001;
if(videoSetting == 0)
DMLCfg.VideoMode |= DML_VID_NONE;
else if(videoSetting == 1)
DMLCfg.VideoMode |= DML_VID_DML_AUTO;
else
DMLCfg.VideoMode |= DML_VID_FORCE;
DMLCfg.Config |= DML_CFG_PADHOOK; //Makes life easier, l+z+b+digital down...
if(GamePath != NULL)
{
strncpy(DMLCfg.GamePath, GamePath, sizeof(DMLCfg.GamePath));
DMLCfg.Config |= DML_CFG_GAME_PATH;
}
if(CheatPath != NULL && NewCheatPath != NULL && cheats)
{
const char *ptr = NULL;
if(strncasecmp(CheatPath, partition, strlen(partition)) != 0)
{
fsop_CopyFile(CheatPath, NewCheatPath, NULL, NULL);
ptr = strchr(NewCheatPath, '/');
}
else
ptr = strchr(CheatPath, '/');
strncpy(DMLCfg.CheatPath, ptr, sizeof(DMLCfg.CheatPath));
gprintf("DIOS-MIOS: Cheat Path %s\n", ptr);
DMLCfg.Config |= DML_CFG_CHEAT_PATH;
}
if(screenshot)
DMLCfg.Config |= DML_CFG_SCREENSHOT;
if(activity_led)
DMLCfg.Config |= DML_CFG_ACTIVITY_LED;
if(cheats)
DMLCfg.Config |= DML_CFG_CHEATS;
if(debugger)
DMLCfg.Config |= DML_CFG_DEBUGGER;
if(NMM)
DMLCfg.Config |= DML_CFG_NMM;
if(NMM > 1)
DMLCfg.Config |= DML_CFG_NMM_DEBUG;
if(nodisc)
{
if(new_dm_cfg)
DMLCfg.Config |= DML_CFG_NODISC_CFG2;
else
DMLCfg.Config |= DML_CFG_NODISC_CFG1;
}
if(widescreen && new_dm_cfg)
DMLCfg.Config |= DML_CFG_FORCE_WIDE;
if(DMLvideoMode > 3)
DMLCfg.VideoMode |= DML_VID_PROG_PATCH;
}
void DML_Old_SetOptions(const char *GamePath)
{
gprintf("DIOS-MIOS: Launch game '%s' through boot.bin (old method)\n", GamePath);
fsop_WriteFile(DML_BOOT_PATH, GamePath, strlen(GamePath)+1);
//Tell DML to boot the game from sd card
*(vu32*)0x80001800 = 0xB002D105;
DCFlushRange((void *)(0x80001800), 4);
ICInvalidateRange((void *)(0x80001800), 4);
*(vu32*)0xCC003024 |= 7;
}
void DML_New_SetBootDiscOption(bool new_dm_cfg)
{
memset(&DMLCfg, 0, sizeof(DML_CFG));
DMLCfg.Magicbytes = 0xD1050CF6;
if(new_dm_cfg)
DMLCfg.CfgVersion = 0x00000002;
else
DMLCfg.CfgVersion = 0x00000001;
DMLCfg.VideoMode |= DML_VID_DML_AUTO;
DMLCfg.Config |= DML_CFG_BOOT_DISC;
}
void DML_New_WriteOptions()
{
//Write options into memory
memcpy((void *)0x80001700, &DMLCfg, sizeof(DML_CFG));
DCFlushRange((void *)(0x80001700), sizeof(DML_CFG));
//DML v1.2+
memcpy((void *)0x81200000, &DMLCfg, sizeof(DML_CFG));
DCFlushRange((void *)(0x81200000), sizeof(DML_CFG));
}
// Nintendont
NIN_CFG NinCfg;
u8 NinDevice = 0;
bool NinArgsboot = false;
void Nintendont_SetOptions(const char *game, const char *gameID, char *CheatPath,char *NewCheatPath, const char *partition,
bool cheats, u8 NMM, u8 videomode, u8 videoSetting, bool widescreen, bool usb_hid, bool native_ctl, bool deflicker, bool screenshot, bool NIN_Debugger)
bool cheats, u8 emuMC, u8 videomode, bool widescreen, bool usb_hid, bool native_ctl, bool deflicker, bool wiiu_widescreen, bool NIN_Debugger)
{
NinDevice = DeviceHandle.PathToDriveType(game);
memset(&NinCfg, 0, sizeof(NIN_CFG));
@ -224,9 +115,7 @@ void Nintendont_SetOptions(const char *game, const char *gameID, char *CheatPath
if(IsOnWiiU() == true)
NinCfg.Config |= NIN_CFG_MEMCARDEMU;
videoSetting = 2;
if(videoSetting == 2)
NinCfg.VideoMode |= NIN_VID_FORCE;
NinCfg.VideoMode |= NIN_VID_FORCE;
if((videomode > 3) && (videomode != 6))
NinCfg.Config |= NIN_CFG_FORCE_PROG;
@ -243,16 +132,16 @@ void Nintendont_SetOptions(const char *game, const char *gameID, char *CheatPath
if(deflicker)
NinCfg.VideoMode |= NIN_VID_FORCE_DF;
if(screenshot)
if(wiiu_widescreen)
NinCfg.Config |= NIN_CFG_WIIU_WIDE;
if(widescreen)
NinCfg.Config |= NIN_CFG_FORCE_WIDE;
if(NMM > 0)
if(emuMC > 0)
NinCfg.Config |= NIN_CFG_MEMCARDEMU;
if(NMM > 1)
if(emuMC > 1)
{
NinCfg.Config |= NIN_CFG_MC_MULTI;
NinCfg.MemCardBlocks = 0x4;//1019 blocks (8MB)
@ -283,7 +172,7 @@ void Nintendont_SetOptions(const char *game, const char *gameID, char *CheatPath
gprintf("Nintendont Game Path: %s, ID: %08x\n", NinCfg.GamePath, NinCfg.GameID);
}
void Nintendont_BootDisc(u8 NMM, bool widescreen, bool usb_hid, bool native_ctl, bool deflicker)
void Nintendont_BootDisc(u8 emuMC, bool widescreen, bool usb_hid, bool native_ctl, bool deflicker)
{
memset(&NinCfg, 0, sizeof(NIN_CFG));
NinCfg.Magicbytes = 0x01070CF6;
@ -300,12 +189,12 @@ void Nintendont_BootDisc(u8 NMM, bool widescreen, bool usb_hid, bool native_ctl,
if(usb_hid)
NinCfg.Config |= NIN_CFG_HID;
if(NMM == 1)
if(emuMC == 1)
{
NinCfg.Config |= NIN_CFG_MEMCARDEMU;
NinCfg.MemCardBlocks = 0x2;//251 blocks (2MB)
}
else if(NMM == 2)
else if(emuMC == 2)
{
NinCfg.Config |= NIN_CFG_MEMCARDEMU;
NinCfg.Config |= NIN_CFG_MC_MULTI;
@ -556,16 +445,13 @@ u32 __SYS_UnlockSram(u32 write);
u32 __SYS_SyncSram(void);
}
void GC_SetVideoMode(u8 videomode, u8 videoSetting, u8 loader)
void GC_SetVideoMode(u8 videomode, u8 loader)
{
syssram *sram;
sram = __SYS_LockSram();
GXRModeObj *vmode = VIDEO_GetPreferredMode(0);
int vmode_reg = 0;
if(loader == 2)
videoSetting = 2;
if((VIDEO_HaveComponentCable() && (CONF_GetProgressiveScan() > 0)) || ((videomode > 3) && (videomode != 6)))
sram->flags |= 0x80; //set progressive flag
else
@ -585,82 +471,47 @@ void GC_SetVideoMode(u8 videomode, u8 videoSetting, u8 loader)
if(videomode == 1)
{
if(videoSetting == 2)
{
if(loader == 0)
DMLCfg.VideoMode |= DML_VID_FORCE_PAL50;
else if(loader == 2)
NinCfg.VideoMode |= NIN_VID_FORCE_PAL50;
}
if(loader == 1)
NinCfg.VideoMode |= NIN_VID_FORCE_PAL50;
vmode = &TVPal528IntDf;
}
else if(videomode == 2)
{
if(videoSetting == 2)
{
if(loader == 0)
DMLCfg.VideoMode |= DML_VID_FORCE_NTSC;
else if(loader == 2)
NinCfg.VideoMode |= NIN_VID_FORCE_NTSC;
}
if(loader == 1)
NinCfg.VideoMode |= NIN_VID_FORCE_NTSC;
vmode = &TVNtsc480IntDf;
}
else if(videomode == 3)
{
if(videoSetting == 2)
{
if(loader == 0)
DMLCfg.VideoMode |= DML_VID_FORCE_PAL60;
else if(loader == 2)
NinCfg.VideoMode |= NIN_VID_FORCE_PAL60;
}
if(loader == 1)
NinCfg.VideoMode |= NIN_VID_FORCE_PAL60;
vmode = &TVEurgb60Hz480IntDf;
vmode_reg = 5;
}
else if(videomode == 4)
{
if(videoSetting == 2)
{
if(loader == 0)
DMLCfg.VideoMode |= DML_VID_FORCE_PROG;
else if(loader == 2)
NinCfg.VideoMode |= NIN_VID_FORCE_NTSC;
}
if(loader == 1)
NinCfg.VideoMode |= NIN_VID_FORCE_NTSC;
vmode = &TVNtsc480IntDf;// shouldn't this be vmode = &TVNtsc480Prog
}
else if(videomode == 5)
{
if(videoSetting == 2)
{
if(loader == 0)
DMLCfg.VideoMode |= DML_VID_FORCE_PROG;
else if(loader == 2)
NinCfg.VideoMode |= NIN_VID_FORCE_PAL60;
}
if(loader == 1)
NinCfg.VideoMode |= NIN_VID_FORCE_PAL60;
vmode = &TVEurgb60Hz480IntDf;
vmode_reg = 5;
}
else if(videomode == 6)
{
if(videoSetting == 2)
{
if(loader == 0)
DMLCfg.VideoMode |= DML_VID_FORCE_PAL60;
else if(loader == 2)
NinCfg.VideoMode |= NIN_VID_FORCE_MPAL;
}
if(loader == 1)
NinCfg.VideoMode |= NIN_VID_FORCE_MPAL;
vmode = &TVEurgb60Hz480IntDf;
vmode_reg = 5;
vmode_reg = 5;// not sure about this
}
else if(videomode == 7)
{
if(videoSetting == 2)
{
if(loader == 0)
DMLCfg.VideoMode |= DML_VID_FORCE_PROG;
else if(loader == 2)
NinCfg.VideoMode |= NIN_VID_FORCE_MPAL;
}
if(loader == 1)
NinCfg.VideoMode |= NIN_VID_FORCE_MPAL;
vmode = &TVEurgb60Hz480IntDf;
vmode_reg = 5;
}
@ -728,7 +579,7 @@ void GC_SetLanguage(u8 lang, u8 loader)
while(!__SYS_SyncSram());
/* write language for nintendont */
if(loader == 2)
if(loader == 1)
{
switch(lang)
{

View File

@ -19,60 +19,6 @@
#include <gccore.h>
// DIOS-MIOS
#define DML_BOOT_PATH "sd:/games/boot.bin"
typedef struct DML_CFG
{
u32 Magicbytes; //0xD1050CF6
u32 CfgVersion; //0x00000001
u32 VideoMode;
u32 Config;
char GamePath[255];
char CheatPath[255];
} DML_CFG;
enum dmlconfig
{
DML_CFG_CHEATS = (1<<0),
DML_CFG_DEBUGGER = (1<<1),
DML_CFG_DEBUGWAIT = (1<<2),
DML_CFG_NMM = (1<<3),
DML_CFG_NMM_DEBUG = (1<<4),
DML_CFG_GAME_PATH = (1<<5),
DML_CFG_CHEAT_PATH = (1<<6),
DML_CFG_ACTIVITY_LED= (1<<7),
DML_CFG_PADHOOK = (1<<8),
DML_CFG_NODISC_CFG1 = (1<<9),
DML_CFG_FORCE_WIDE = (1<<9), //v2
DML_CFG_BOOT_DISC = (1<<10),
DML_CFG_BOOT_DOL = (1<<11), //v1
DML_CFG_BOOT_DISC2 = (1<<11), //v2
DML_CFG_NODISC_CFG2 = (1<<12),
DML_CFG_SCREENSHOT = (1<<13),
};
enum dmlvideomode
{
DML_VID_DML_AUTO = (0<<16),
DML_VID_FORCE = (1<<16),
DML_VID_NONE = (2<<16),
DML_VID_FORCE_PAL50 = (1<<0),
DML_VID_FORCE_PAL60 = (1<<1),
DML_VID_FORCE_NTSC = (1<<2),
DML_VID_FORCE_PROG = (1<<3),
DML_VID_PROG_PATCH = (1<<4),
};
void DML_New_SetOptions(const char *GamePath, char *CheatPath, const char *NewCheatPath,
const char *partition, bool cheats, bool debugger, u8 NMM, u8 nodisc, u8 DMLvideoMode,
u8 videoSetting, bool widescreen, bool new_dm_cfg, bool activity_led, bool screenshot);
void DML_Old_SetOptions(const char *GamePath);
void DML_New_SetBootDiscOption(bool new_dm_cfg);
void DML_New_WriteOptions();
// Nintendont
#include "nin_cfg.h"
#define NIN_CFG_PATH "nincfg.bin"
@ -81,9 +27,9 @@ void DML_New_WriteOptions();
bool Nintendont_Installed();
bool Nintendont_GetLoader();
void Nintendont_BootDisc(u8 NMM, bool widescreen, bool usb_hid, bool native_ctl, bool deflicker);
void Nintendont_BootDisc(u8 emuMC, bool widescreen, bool usb_hid, bool native_ctl, bool deflicker);
void Nintendont_SetOptions(const char *game, const char *gameID, char *CheatPath, char *NewCheatPath, const char *partition,
bool cheats, u8 NMM, u8 videomode, u8 videoSetting, bool widescreen, bool usb_hid, bool native_ctl, bool deflicker, bool screenshot, bool NIN_Debugger);
bool cheats, u8 emuMC, u8 videomode, bool widescreen, bool usb_hid, bool native_ctl, bool deflicker, bool wiiu_widescreen, bool NIN_Debugger);
void Nintendont_WriteOptions();
// Devolution
@ -117,7 +63,7 @@ void DEVO_Boot();
// General
void GC_SetVideoMode(u8 videomode, u8 videoSetting, u8 loader);
void GC_SetVideoMode(u8 videomode, u8 loader);
void GC_SetLanguage(u8 lang, u8 loader);
#endif //_GC_HPP_

View File

@ -268,9 +268,9 @@ void ListGenerator::CreateList(u32 Flow, u32 Device, const string& Path, const v
else if(DeviceHandle.GetFSType(Device) != PART_FS_WBFS)
{
if(Flow == COVERFLOW_GAMECUBE)
GetFiles(Path.c_str(), FileTypes, Create_GC_List, true);
GetFiles(Path.c_str(), FileTypes, Create_GC_List, true);//the only one that looks for a folder (/root)
else if(Flow == COVERFLOW_PLUGIN)
GetFiles(Path.c_str(), FileTypes, Create_Plugin_List, false, 30);
GetFiles(Path.c_str(), FileTypes, Create_Plugin_List, false, 30);//wow 30 subfolders! really?
else if(Flow == COVERFLOW_HOMEBREW)
GetFiles(Path.c_str(), FileTypes, Create_Homebrew_List, false);
}
@ -308,7 +308,7 @@ void GetFiles(const char *Path, const vector<string>& FileTypes,
FullPathChar = fmt("%s/%s", Path, pent->d_name);
if(pent->d_type == DT_DIR)
{
if(CompareFolders && IsFileSupported(pent->d_name, FileTypes))
if(CompareFolders && IsFileSupported(pent->d_name, FileTypes))//if root folder for extracted gc games
{
AddFile(FullPathChar);
continue;
@ -318,7 +318,7 @@ void GetFiles(const char *Path, const vector<string>& FileTypes,
}
else if(pent->d_type == DT_REG)
{
NewFileName = strrchr(pent->d_name, '.');
NewFileName = strrchr(pent->d_name, '.');//the extension
if(NewFileName == NULL) NewFileName = pent->d_name;
if(IsFileSupported(NewFileName, FileTypes))
{

View File

@ -296,7 +296,7 @@ s32 GCDump::DumpGame()
memset(gamepath, 0, MAX_FAT_PATH);
char basedir[MAX_FAT_PATH];
memset(basedir, 0, MAX_FAT_PATH);
strncpy(basedir, fmt(GC_GAMES_DIR, gamepartition), MAX_FAT_PATH);
strncpy(basedir, fmt(gc_gamesDir, gamepartition), MAX_FAT_PATH);
while(!gamedone)
{

View File

@ -69,7 +69,7 @@ struct FST
class GCDump
{
public:
void Init(bool skip, bool comp, bool wexf, bool align, u32 nretry, u32 rsize, const char* partition)
void Init(bool skip, bool comp, bool wexf, bool align, u32 nretry, u32 rsize, const char* partition, const char* m_GCgamesDir)
{
skiponerror = skip;
compressed = comp;
@ -78,7 +78,7 @@ public:
gc_nbrretry = nretry;
gc_readsize = rsize;
gamepartition = partition;
//gc_games_dir = m_gc_gamesDir;
gc_gamesDir = m_GCgamesDir;
gc_skipped = 0;
waitonerror = true;
}
@ -95,7 +95,7 @@ private:
bool gamedone;
bool multigamedisc;
const char *gamepartition;
//const char *gc_games_dir;
const char *gc_gamesDir;
char minfo[74];
u8 Disc;
u8 Disc2;

View File

@ -25,6 +25,7 @@ bool shutdown = false;
volatile u8 ExitOption = 0;
const char *NeekPath = NULL;
char wii_games_dir[64];
char gc_games_dir[64];
void __Wpad_PowerCallback()
{
@ -71,6 +72,7 @@ int Sys_GetExitTo(void)
{
return ExitOption;
}
void Sys_ExitTo(int option)
{
ExitOption = option;

View File

@ -1,62 +1,63 @@
#ifndef _SYS_H_
#define _SYS_H_
#include "utils.h"
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#define HBC_LULZ 0x000100014c554c5aULL
#define HBC_108 0x00010001af1bf516ULL
#define HBC_JODI 0x0001000148415858ULL
#define HBC_HAXX 0x000100014a4f4449ULL
#define RETURN_CHANNEL 0x0001000857494948ULL
#define SYSTEM_MENU 0x0000000100000002ULL
enum
{
PRIILOADER_DEF = 0,
EXIT_TO_MENU,
EXIT_TO_HBC,
EXIT_TO_PRIILOADER,
EXIT_TO_DISABLE,
EXIT_TO_BOOTMII,
EXIT_TO_WFNK2O,
EXIT_TO_SMNK2O,
BUTTON_CALLBACK,
WIIFLOW_DEF,
};
/* Prototypes */
void Sys_Init(void);
bool Sys_DolphinMode(void);
bool Sys_HW_Access(void);
bool Sys_Exiting(void);
void Sys_Exit(void);
void Sys_ExitTo(int);
int Sys_GetExitTo(void);
void Sys_SetNeekPath(const char*);
void Open_Inputs(void);
void Close_Inputs(void);
bool AHBRPOT_Patched(void);
bool IsOnWiiU(void);
/* All our extern C stuff */
extern void __exception_setreload(int t);
extern int mainIOS;
extern bool useMainIOS;
extern volatile bool NANDemuView;
extern volatile bool networkInit;
extern u8 currentPartition;
extern u8 currentPort;
extern char wii_games_dir[];
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif
#ifndef _SYS_H_
#define _SYS_H_
#include "utils.h"
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#define HBC_LULZ 0x000100014c554c5aULL
#define HBC_108 0x00010001af1bf516ULL
#define HBC_JODI 0x0001000148415858ULL
#define HBC_HAXX 0x000100014a4f4449ULL
#define RETURN_CHANNEL 0x0001000857494948ULL
#define SYSTEM_MENU 0x0000000100000002ULL
enum
{
PRIILOADER_DEF = 0,
EXIT_TO_MENU,
EXIT_TO_HBC,
EXIT_TO_PRIILOADER,
EXIT_TO_DISABLE,
EXIT_TO_BOOTMII,
EXIT_TO_WFNK2O,
EXIT_TO_SMNK2O,
BUTTON_CALLBACK,
WIIFLOW_DEF,
};
/* Prototypes */
void Sys_Init(void);
bool Sys_DolphinMode(void);
bool Sys_HW_Access(void);
bool Sys_Exiting(void);
void Sys_Exit(void);
void Sys_ExitTo(int);
int Sys_GetExitTo(void);
void Sys_SetNeekPath(const char*);
void Open_Inputs(void);
void Close_Inputs(void);
bool AHBRPOT_Patched(void);
bool IsOnWiiU(void);
/* All our extern C stuff */
extern void __exception_setreload(int t);
extern int mainIOS;
extern bool useMainIOS;
extern volatile bool NANDemuView;
extern volatile bool networkInit;
extern u8 currentPartition;
extern u8 currentPort;
extern char wii_games_dir[];
extern char gc_games_dir[];
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif

View File

@ -99,11 +99,6 @@ CMenu::CMenu()
m_thrdDone = false;
m_thrdWritten = 0;
m_thrdTotal = 0;
/* mios stuff */
m_mios_ver = 0;
m_sd_dm = false;
m_new_dml = false;
m_new_dm_cfg = false;
/* ftp stuff */
m_ftp_inited = false;
m_init_ftp = false;
@ -245,15 +240,15 @@ void CMenu::init()
}
m_allow_random = m_cfg.getBool("GENERAL", "allow_b_on_questionmark", true);
m_multisource = m_cfg.getBool("GENERAL", "multisource", false);
/* DIOS_MIOS stuff */
if(m_cfg.getBool(GC_DOMAIN, "always_show_button", true))
{
gprintf("Force enabling DML view\n");
m_show_dml = true;
}
MIOSisDML();
if(m_show_dml == false)
m_show_dml = (m_mios_ver > 0);
/* GameCube stuff */
m_devo_installed = DEVO_Installed(m_dataDir.c_str());
m_nintendont_installed = Nintendont_Installed();
m_show_gc = m_cfg.getBool(GC_DOMAIN, "always_show_button", false);
memset(gc_games_dir, 0, 64);
strncpy(gc_games_dir, m_cfg.getString(GC_DOMAIN, "gc_games_dir", DF_GC_GAMES_DIR).c_str(), 64);
if(strncmp(gc_games_dir, "%s:/", 4) != 0)
strcpy(gc_games_dir, DF_GC_GAMES_DIR);
gprintf("GameCube Games Directory: %s\n", gc_games_dir);
/* Emu NAND */
m_cfg.getString(CHANNEL_DOMAIN, "path", "");
m_cfg.getInt(CHANNEL_DOMAIN, "partition", 1);
@ -369,8 +364,6 @@ void CMenu::init()
m_theme.load(fmt("%s.ini", m_themeDataDir.c_str()));
m_plugin.init(m_pluginsDir);
m_devo_installed = DEVO_Installed(m_dataDir.c_str());
m_nintendont_installed = Nintendont_Installed();
const char *defLang = "Default";
switch (CONF_GetLanguage())
{
@ -2190,7 +2183,7 @@ bool CMenu::_loadList(void)
m_cfg.getBool(GC_DOMAIN, "source"))
{
m_current_view = COVERFLOW_GAMECUBE;
_loadDmlList();
_loadGCList();
if(m_combined_view)
for(vector<dir_discHdr>::iterator tmp_itr = m_gameList.begin(); tmp_itr != m_gameList.end(); tmp_itr++)
combinedList.push_back(*tmp_itr);
@ -2249,14 +2242,14 @@ bool CMenu::_loadHomebrewList()
return true;
}
bool CMenu::_loadDmlList()
bool CMenu::_loadGCList()
{
currentPartition = m_cfg.getInt(GC_DOMAIN, "partition", USB1);
if(!DeviceHandle.IsInserted(currentPartition))
return false;
m_gameList.clear();
string gameDir(fmt(GC_GAMES_DIR, DeviceName[currentPartition]));
string gameDir(fmt(gc_games_dir, DeviceName[currentPartition]));
string cacheDir(fmt("%s/%s_gamecube.db", m_listCacheDir.c_str(), DeviceName[currentPartition]));
bool updateCache = m_cfg.getBool(GC_DOMAIN, "update_cache");
m_gameList.CreateList(COVERFLOW_GAMECUBE, currentPartition, gameDir,
@ -2567,69 +2560,6 @@ void CMenu::UpdateCache(u32 view)
}
}
void CMenu::MIOSisDML()
{
/*
0=mios
1=dm
2=qf
*/
m_mios_ver = 0;
m_sd_dm = false;
m_new_dml = false;
m_new_dm_cfg = false;
u32 size = 0;
char ISFS_Filename[ISFS_MAXPATH] ATTRIBUTE_ALIGN(32);
strcpy(ISFS_Filename, "/title/00000001/00000101/content/0000000c.app");
u8 *appfile = ISFS_GetFile(ISFS_Filename, &size, -1);
if(appfile)
{
for(u32 i = 0; i < size; ++i)
{
/* check for some odd looking elf signs */
if(m_mios_ver == 0 && *(vu32*)(appfile+i) == 0x7F454C46 && *(vu32*)(appfile+i+4) != 0x01020161)
{
m_mios_ver = 1;
m_new_dml = true; /* assume cfg dm */
}
/* seaching for an old debug print in boot.bin only dml revs */
if(*(vu32*)(appfile+i) == 0x5573696E && *(vu32*)(appfile+i+4) == 0x6720656E)
{
m_mios_ver = 1;
m_new_dml = false; /* boot.bin dm */
}
/* pic checks */
if(*(vu32*)(appfile+i) == 0xF282F280 && *(vu32*)(appfile+i+4) == 0xF281F27F) /* pic at 0x35000 */
{
m_mios_ver = 1;
m_new_dm_cfg = true; /* newer dm cfg */
}
if(*(vu32*)(appfile+i) == 0x5A9B5A77 && *(vu32*)(appfile+i+4) == 0x5C9A5B78) /* pic at 0x35000 */
{
m_mios_ver = 1;
m_new_dm_cfg = true; /* current dm cfg */
}
if(*(vu32*)(appfile+i) == 0x68846791 && *(vu32*)(appfile+i+4) == 0x63836390) /* pic at 0x6b000 */
{
m_mios_ver = 1;
m_new_dm_cfg = false; /* older dm cfg */
}
if(*(vu32*)(appfile+i) == 0x1D981F78 && *(vu32*)(appfile+i+4) == 0x1E991E79) /* pic at 0x95000 */
{
m_mios_ver = 2;
m_new_dm_cfg = true; /* qf */
}
/* Lite or Quad string for SD versions */
if(*(vu32*)(appfile+i) == 0x4C697465 || *(vu32*)(appfile+i) == 0x51756164)
m_sd_dm = true;
}
free(appfile);
}
gprintf("m_mios_ver = %u; m_sd_dm = %d; m_new_dml = %d; m_new_dm_cfg = %d\n",
m_mios_ver, m_sd_dm, m_new_dml, m_new_dm_cfg);
}
void CMenu::RemoveCover(const char *id)
{
const char *CoverPath = NULL;

View File

@ -187,22 +187,18 @@ private:
s16 m_mainBtnPrev;
s16 m_mainBtnQuit;
s16 m_mainBtnDVD;
s16 m_mainBtnDML;
s16 m_mainBtnEmu;
s16 m_mainBtnUsb;
s16 m_mainBtnGamecube;
s16 m_mainBtnPlugin;
s16 m_mainBtnWii;
s16 m_mainBtnChannel;
s16 m_mainBtnHomebrew;
s16 m_mainBtnInit;
s16 m_mainBtnInit2;
s16 m_mainLblInit;
s16 m_mainLblUser[6];
u8 m_mios_ver;
bool m_show_dml;
bool m_sd_dm;
bool m_show_gc;
bool m_devo_installed;
bool m_nintendont_installed;
bool m_new_dml;
bool m_new_dm_cfg;
bool m_GameTDBLoaded;
//Main Config menus
s16 m_configLblPage;
@ -242,18 +238,18 @@ private:
s16 m_config3BtnVideoP;
s16 m_config3BtnVideoM;
s16 m_config3LblDMLGameLanguage;
s16 m_config3LblDMLLanguage;
s16 m_config3BtnDMLLanguageP;
s16 m_config3BtnDMLLanguageM;
s16 m_config3LblDMLGameVideo;
s16 m_config3LblDMLVideo;
s16 m_config3BtnDMLVideoP;
s16 m_config3BtnDMLVideoM;
s16 m_config3LblDMLGameLoader;
s16 m_config3LblDMLLoader;
s16 m_config3BtnDMLLoaderP;
s16 m_config3BtnDMLLoaderM;
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_config3LblOcarina;
s16 m_config3BtnOcarina;
@ -464,9 +460,6 @@ private:
s16 m_gameSettingsLblLED;
s16 m_gameSettingsBtnLED;
s16 m_gameSettingsLblScreenshot;
s16 m_gameSettingsBtnScreenshot;
s16 m_gameSettingsLblAspectRatio;
s16 m_gameSettingsLblAspectRatioVal;
s16 m_gameSettingsBtnAspectRatioP;
@ -477,11 +470,6 @@ private:
s16 m_gameSettingsBtnEmuMemCard_P;
s16 m_gameSettingsBtnEmuMemCard_M;
s16 m_gameSettingsLblNoDVD;
s16 m_gameSettingsLblNoDVD_Val;
s16 m_gameSettingsBtnNoDVD_P;
s16 m_gameSettingsBtnNoDVD_M;
s16 m_gameSettingsLblDevoMemcardEmu;
s16 m_gameSettingsBtnDevoMemcardEmu;
@ -864,7 +852,7 @@ private:
//
bool _loadList(void);
bool _loadGameList(void);
bool _loadDmlList(void);
bool _loadGCList(void);
bool _loadChannelList(void);
bool _loadEmuList(void);
bool _loadHomebrewList(void);
@ -1059,7 +1047,7 @@ private:
void _CoverBanner(void);
void _Explorer(void);
const char *_FolderExplorer(const char *startPath);
void _Wad(const char *wad_path = NULL, bool autoInstall = false);
void _Wad(const char *wad_path = NULL);
void _CheatSettings();
bool _Source();
void _CfgSrc();
@ -1108,7 +1096,6 @@ private:
const char *_domainFromView(void);
const char *_cfDomain(bool selected = false);
void UpdateCache(u32 view = COVERFLOW_MAX);
void MIOSisDML();
void RemoveCover(const char *id);
SFont _font(const char *domain, const char *key, u32 fontSize, u32 lineSpacing, u32 weight, u32 index, const char *genKey);
TexData _texture(const char *domain, const char *key, TexData &def, bool freeDef = true);
@ -1213,11 +1200,9 @@ private:
static const SOption _SaveEmu[5];
static const SOption _GlobalSaveEmu[4];
static const SOption _AspectRatio[3];
static const SOption _NMM[4];
static const SOption _NinEmuCard[5];
static const SOption _NoDVD[3];
static const SOption _GlobalGCLoaders[3];
static const SOption _GCLoader[4];
static const SOption _GlobalGCLoaders[2];
static const SOption _GCLoader[3];
static const SOption _vidModePatch[4];
static const SOption _debugger[3];
static const SOption _hooktype[8];

View File

@ -25,19 +25,19 @@ void CMenu::_hideConfig3(bool instant)
}
else
{
m_btnMgr.hide(m_config3LblDMLGameLanguage, instant);
m_btnMgr.hide(m_config3LblDMLLanguage, instant);
m_btnMgr.hide(m_config3BtnDMLLanguageP, instant);
m_btnMgr.hide(m_config3BtnDMLLanguageM, instant);
m_btnMgr.hide(m_config3LblDMLGameVideo, instant);
m_btnMgr.hide(m_config3LblDMLVideo, instant);
m_btnMgr.hide(m_config3BtnDMLVideoP, instant);
m_btnMgr.hide(m_config3BtnDMLVideoM, instant);
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_config3LblDMLGameLoader, instant);
m_btnMgr.hide(m_config3LblDMLLoader, instant);
m_btnMgr.hide(m_config3BtnDMLLoaderP, instant);
m_btnMgr.hide(m_config3BtnDMLLoaderM, 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_config3LblOcarina, instant);
m_btnMgr.hide(m_config3BtnOcarina, instant);
for(u8 i = 0; i < ARRAY_SIZE(m_config3LblUser); ++i)
@ -62,19 +62,19 @@ void CMenu::_showConfig3(void)
}
else
{
m_btnMgr.show(m_config3LblDMLGameLanguage);
m_btnMgr.show(m_config3LblDMLLanguage);
m_btnMgr.show(m_config3BtnDMLLanguageP);
m_btnMgr.show(m_config3BtnDMLLanguageM);
m_btnMgr.show(m_config3LblDMLGameVideo);
m_btnMgr.show(m_config3LblDMLVideo);
m_btnMgr.show(m_config3BtnDMLVideoP);
m_btnMgr.show(m_config3BtnDMLVideoM);
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_config3LblDMLGameLoader);
m_btnMgr.show(m_config3LblDMLLoader);
m_btnMgr.show(m_config3BtnDMLLoaderP);
m_btnMgr.show(m_config3BtnDMLLoaderM);
m_btnMgr.show(m_config3LblGCGameLoader);
m_btnMgr.show(m_config3LblGCLoader);
m_btnMgr.show(m_config3BtnGCLoaderP);
m_btnMgr.show(m_config3BtnGCLoaderM);
m_btnMgr.show(m_config3LblOcarina);
m_btnMgr.show(m_config3BtnOcarina);
@ -95,13 +95,13 @@ void CMenu::_showConfig3(void)
else
{
i = min(max(0, m_cfg.getInt(GC_DOMAIN, "video_mode", 0)), (int)ARRAY_SIZE(CMenu::_GlobalGCvideoModes) - 1);
m_btnMgr.setText(m_config3LblDMLVideo, _t(CMenu::_GlobalGCvideoModes[i].id, CMenu::_GlobalGCvideoModes[i].text));
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_config3LblDMLLanguage, _t(CMenu::_GlobalGClanguages[i].id, CMenu::_GlobalGClanguages[i].text));
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_config3LblDMLLoader, _t(CMenu::_GlobalGCLoaders[i].id, CMenu::_GlobalGCLoaders[i].text));
m_btnMgr.setText(m_config3LblGCLoader, _t(CMenu::_GlobalGCLoaders[i].id, CMenu::_GlobalGCLoaders[i].text));
m_btnMgr.setText(m_config3BtnOcarina, m_cfg.getBool(_domainFromView(), "cheat", false) ? _t("on", L"On") : _t("off", L"Off"));
}
@ -130,22 +130,22 @@ 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_config3BtnDMLLanguageP) || m_btnMgr.selected(m_config3BtnDMLLanguageM))
else if (m_btnMgr.selected(m_config3BtnGCLanguageP) || m_btnMgr.selected(m_config3BtnGCLanguageM))
{
s8 direction = m_btnMgr.selected(m_config3BtnDMLLanguageP) ? 1 : -1;
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_config3BtnDMLVideoP) || m_btnMgr.selected(m_config3BtnDMLVideoM))
else if (m_btnMgr.selected(m_config3BtnGCVideoP) || m_btnMgr.selected(m_config3BtnGCVideoM))
{
s8 direction = m_btnMgr.selected(m_config3BtnDMLVideoP) ? 1 : -1;
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_config3BtnDMLLoaderP) || m_btnMgr.selected(m_config3BtnDMLLoaderM))
else if (m_btnMgr.selected(m_config3BtnGCLoaderP) || m_btnMgr.selected(m_config3BtnGCLoaderM))
{
s8 direction = m_btnMgr.selected(m_config3BtnDMLLoaderP) ? 1 : -1;
m_cfg.setInt(GC_DOMAIN, "default_loader", (int)loopNum((u32)m_cfg.getInt(GC_DOMAIN, "default_loader", 2) + direction, ARRAY_SIZE(CMenu::_GlobalGCLoaders)));
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)));
_showConfig3();
}
else if (m_btnMgr.selected(m_config3BtnOcarina))
@ -172,18 +172,18 @@ void CMenu::_initConfig3Menu()
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_config3LblDMLGameVideo = _addLabel("CONFIG3/DML_VIDEO", theme.lblFont, L"", 20, 125, 290, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_config3LblDMLVideo = _addLabel("CONFIG3/DML_VIDEO_BTN", theme.btnFont, L"", 468, 130, 104, 48, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC);
m_config3BtnDMLVideoM = _addPicButton("CONFIG3/DML_VIDEO_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 420, 130, 48, 48);
m_config3BtnDMLVideoP = _addPicButton("CONFIG3/DML_VIDEO_PLUS", theme.btnTexPlus, theme.btnTexPlusS, 572, 130, 48, 48);
m_config3LblDMLGameLanguage = _addLabel("CONFIG3/DML_LANG", theme.lblFont, L"", 20, 185, 290, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_config3LblDMLLanguage = _addLabel("CONFIG3/DML_LANG_BTN", theme.btnFont, L"", 468, 190, 104, 48, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC);
m_config3BtnDMLLanguageM = _addPicButton("CONFIG3/DML_LANG_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 420, 190, 48, 48);
m_config3BtnDMLLanguageP = _addPicButton("CONFIG3/DML_LANG_PLUS", theme.btnTexPlus, theme.btnTexPlusS, 572, 190, 48, 48);
m_config3LblDMLGameLoader = _addLabel("CONFIG3/GC_LOADER", theme.lblFont, L"", 20, 245, 290, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_config3LblDMLLoader = _addLabel("CONFIG3/GC_LOADER_BTN", theme.btnFont, L"", 468, 250, 104, 48, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC);
m_config3BtnDMLLoaderM = _addPicButton("CONFIG3/GC_LOADER_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 420, 250, 48, 48);
m_config3BtnDMLLoaderP = _addPicButton("CONFIG3/GC_LOADER_PLUS", theme.btnTexPlus, theme.btnTexPlusS, 572, 250, 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_config3LblOcarina = _addLabel("CONFIG3/OCARINA", theme.lblFont, L"", 20, 305, 290, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_config3BtnOcarina = _addButton("CONFIG3/OCARINA_BTN", theme.btnFont, L"", 420, 310, 200, 48, theme.btnFontColor);
@ -197,18 +197,18 @@ 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_config3LblDMLGameVideo, "CONFIG3/DML_VIDEO", 50, 0, -2.f, 0.f);
_setHideAnim(m_config3LblDMLVideo, "CONFIG3/DML_VIDEO_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_config3BtnDMLVideoM, "CONFIG3/DML_VIDEO_MINUS", -50, 0, 1.f, 0.f);
_setHideAnim(m_config3BtnDMLVideoP, "CONFIG3/DML_VIDEO_PLUS", -50, 0, 1.f, 0.f);
_setHideAnim(m_config3LblDMLGameLanguage, "CONFIG3/DML_LANG", 50, 0, -2.f, 0.f);
_setHideAnim(m_config3LblDMLLanguage, "CONFIG3/DML_LANG_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_config3BtnDMLLanguageM, "CONFIG3/DML_LANG_MINUS", -50, 0, 1.f, 0.f);
_setHideAnim(m_config3BtnDMLLanguageP, "CONFIG3/DML_LANG_PLUS", -50, 0, 1.f, 0.f);
_setHideAnim(m_config3LblDMLGameLoader, "CONFIG3/GC_LOADER", 50, 0, -2.f, 0.f);
_setHideAnim(m_config3LblDMLLoader, "CONFIG3/GC_LOADER_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_config3BtnDMLLoaderM, "CONFIG3/GC_LOADER_MINUS", -50, 0, 1.f, 0.f);
_setHideAnim(m_config3BtnDMLLoaderP, "CONFIG3/GC_LOADER_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_config3LblOcarina, "CONFIG3/OCARINA", 50, 0, -2.f, 0.f);
_setHideAnim(m_config3BtnOcarina, "CONFIG3/OCARINA_BTN", -50, 0, 1.f, 0.f);
@ -220,9 +220,9 @@ 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_config3LblDMLGameVideo, _t("cfgb5", L"Default GC video mode"));
m_btnMgr.setText(m_config3LblDMLGameLanguage, _t("cfgb6", L"Default GC game language"));
m_btnMgr.setText(m_config3LblDMLGameLoader, _t("cfgb2", L"Default GC game loader"));
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_config3LblOcarina, _t("cfgb1", L"Ocarina"));
}

View File

@ -84,10 +84,6 @@ void CMenu::_hideGameSettings(bool instant)
m_btnMgr.hide(m_gameSettingsBtnEmuMemCard_M, instant);
m_btnMgr.hide(m_gameSettingsLblDevoMemcardEmu, instant);
m_btnMgr.hide(m_gameSettingsBtnDevoMemcardEmu, instant);
m_btnMgr.hide(m_gameSettingsLblNoDVD, instant);
m_btnMgr.hide(m_gameSettingsLblNoDVD_Val, instant);
m_btnMgr.hide(m_gameSettingsBtnNoDVD_P, instant);
m_btnMgr.hide(m_gameSettingsBtnNoDVD_M, instant);
m_btnMgr.hide(m_gameSettingsLblWidescreen, instant);
m_btnMgr.hide(m_gameSettingsBtnWidescreen, instant);
m_btnMgr.hide(m_gameSettingsLblGCLoader, instant);
@ -100,8 +96,6 @@ void CMenu::_hideGameSettings(bool instant)
m_btnMgr.hide(m_gameSettingsBtnNATIVE_CTL, instant);
m_btnMgr.hide(m_gameSettingsLblDeflicker, instant);
m_btnMgr.hide(m_gameSettingsBtnDeflicker, instant);
m_btnMgr.hide(m_gameSettingsLblScreenshot, instant);
m_btnMgr.hide(m_gameSettingsBtnScreenshot, instant);
m_btnMgr.hide(m_gameSettingsLblCustom, instant);
m_btnMgr.hide(m_gameSettingsBtnCustom, instant);
m_btnMgr.hide(m_gameSettingsLblLaunchNK, instant);
@ -166,9 +160,6 @@ void CMenu::_hideGameSettingsPg(void)
m_btnMgr.hide(m_gameSettingsLblDeflicker);
m_btnMgr.hide(m_gameSettingsBtnDeflicker);
m_btnMgr.hide(m_gameSettingsLblScreenshot);
m_btnMgr.hide(m_gameSettingsBtnScreenshot);
m_btnMgr.hide(m_gameSettingsLblOcarina);
m_btnMgr.hide(m_gameSettingsBtnOcarina);
@ -213,14 +204,6 @@ void CMenu::_hideGameSettingsPg(void)
m_btnMgr.hide(m_gameSettingsLblWidescreen);
m_btnMgr.hide(m_gameSettingsBtnWidescreen);
m_btnMgr.hide(m_gameSettingsLblLED);
m_btnMgr.hide(m_gameSettingsBtnLED);
m_btnMgr.hide(m_gameSettingsLblNoDVD);
m_btnMgr.hide(m_gameSettingsLblNoDVD_Val);
m_btnMgr.hide(m_gameSettingsBtnNoDVD_P);
m_btnMgr.hide(m_gameSettingsBtnNoDVD_M);
m_btnMgr.hide(m_gameSettingsLblUSB_HID);
m_btnMgr.hide(m_gameSettingsBtnUSB_HID);
@ -280,7 +263,7 @@ void CMenu::_showGameSettings(void)
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", 2), ARRAY_SIZE(CMenu::_GlobalGCLoaders) - 1u) : GCLoader-1;
GCLoader = (GCLoader == 0) ? min((u32)m_cfg.getInt(GC_DOMAIN, "default_loader", 1), ARRAY_SIZE(CMenu::_GlobalGCLoaders) - 1u) : GCLoader-1;
}
m_gameSettingsMaxPgs = 4;
@ -338,16 +321,8 @@ void CMenu::_showGameSettings(void)
}
else
{
if(GCLoader == NINTENDONT)
{
m_btnMgr.show(m_gameSettingsLblDeflicker);
m_btnMgr.show(m_gameSettingsBtnDeflicker);
}
else //dml
{
m_btnMgr.show(m_gameSettingsLblScreenshot);
m_btnMgr.show(m_gameSettingsBtnScreenshot);
}
m_btnMgr.show(m_gameSettingsLblDeflicker);
m_btnMgr.show(m_gameSettingsBtnDeflicker);
}
m_btnMgr.show(m_gameSettingsLblOcarina);
@ -396,24 +371,6 @@ void CMenu::_showGameSettings(void)
m_btnMgr.show(m_gameSettingsBtnApploader);
}
}
else if(GCLoader == AUTOMIOS)// DIOS MIOS
{
m_btnMgr.show(m_gameSettingsLblEmuMemCard);
m_btnMgr.show(m_gameSettingsLblEmuMemCard_Val);
m_btnMgr.show(m_gameSettingsBtnEmuMemCard_P);
m_btnMgr.show(m_gameSettingsBtnEmuMemCard_M);
m_btnMgr.show(m_gameSettingsLblWidescreen);
m_btnMgr.show(m_gameSettingsBtnWidescreen);
m_btnMgr.show(m_gameSettingsLblLED);
m_btnMgr.show(m_gameSettingsBtnLED);
m_btnMgr.show(m_gameSettingsLblNoDVD);
m_btnMgr.show(m_gameSettingsLblNoDVD_Val);
m_btnMgr.show(m_gameSettingsBtnNoDVD_P);
m_btnMgr.show(m_gameSettingsBtnNoDVD_M);
}
else if(GCLoader == NINTENDONT)
{
m_btnMgr.show(m_gameSettingsLblEmuMemCard);
@ -495,7 +452,6 @@ void CMenu::_showGameSettings(void)
//widescreen is shared by all, in the future might seperate them
m_btnMgr.setText(m_gameSettingsBtnWidescreen, _optBoolToString(m_gcfg2.getOptBool(id, "widescreen", m_cfg.getBool(GC_DOMAIN, "dm_widescreen", 0))));
m_btnMgr.setText(m_gameSettingsBtnDevoMemcardEmu, _optBoolToString(m_gcfg2.getOptBool(id, "devo_memcard_emu", 0)));
m_btnMgr.setText(m_gameSettingsBtnScreenshot, _optBoolToString(m_gcfg2.getOptBool(id, "screenshot", m_cfg.getBool(GC_DOMAIN, "screenshot", 0))));
m_btnMgr.setText(m_gameSettingsBtnUSB_HID, _optBoolToString(m_gcfg2.getOptBool(id, "USB_HID", m_cfg.getBool(GC_DOMAIN, "USB_HID", 0))));
m_btnMgr.setText(m_gameSettingsBtnNATIVE_CTL, _optBoolToString(m_gcfg2.getOptBool(id, "NATIVE_CTL", m_cfg.getBool(GC_DOMAIN, "NATIVE_CTL", 0))));
m_btnMgr.setText(m_gameSettingsBtnDeflicker, _optBoolToString(m_gcfg2.getOptBool(id, "Deflicker", m_cfg.getBool(GC_DOMAIN, "Deflicker", 0))));
@ -517,15 +473,6 @@ void CMenu::_showGameSettings(void)
i = min((u32)m_gcfg2.getInt(id, "nin_memcard", 0), ARRAY_SIZE(CMenu::_NinEmuCard) - 1u);
m_btnMgr.setText(m_gameSettingsLblEmuMemCard_Val, _t(CMenu::_NinEmuCard[i].id, CMenu::_NinEmuCard[i].text));
}
else if(GCLoader == AUTOMIOS)
{
m_btnMgr.setText(m_gameSettingsLblEmuMemCard, _t("cfgg28", L"NMM"));
i = min((u32)m_gcfg2.getInt(id, "dml_nmm", 0), ARRAY_SIZE(CMenu::_NMM) - 1u);
m_btnMgr.setText(m_gameSettingsLblEmuMemCard_Val, _t(CMenu::_NMM[i].id, CMenu::_NMM[i].text));
}
i = min((u32)m_gcfg2.getInt(id, "no_disc_patch", 0), ARRAY_SIZE(CMenu::_NoDVD) - 1u);
m_btnMgr.setText(m_gameSettingsLblNoDVD_Val, _t(CMenu::_NoDVD[i].id, CMenu::_NoDVD[i].text));
i = min((u32)m_gcfg2.getInt(id, "gc_loader", 0), ARRAY_SIZE(CMenu::_GCLoader) - 1u);
m_btnMgr.setText(m_gameSettingsLblGCLoader_Val, _t(CMenu::_GCLoader[i].id, CMenu::_GCLoader[i].text));
@ -535,7 +482,6 @@ void CMenu::_showGameSettings(void)
m_btnMgr.setText(m_gameSettingsBtnVipatch, _optBoolToString(m_gcfg2.getOptBool(id, "vipatch", 0)));
m_btnMgr.setText(m_gameSettingsBtnCountryPatch, _optBoolToString(m_gcfg2.getOptBool(id, "country_patch", 0)));
m_btnMgr.setText(m_gameSettingsBtnPrivateServer, _optBoolToString(m_gcfg2.getOptBool(id, "private_server", m_cfg.getBool(WII_DOMAIN, "private_server", 0))));
//m_btnMgr.setText(m_gameSettingsBtnIOSreloadBlock, _optBoolToString(m_gcfg2.getOptBool(id, "reload_block", 0)));
m_btnMgr.setText(m_gameSettingsBtnCustom, _optBoolToString(m_gcfg2.getOptBool(id, "custom", 0)));
m_btnMgr.setText(m_gameSettingsBtnLaunchNK, _optBoolToString(m_gcfg2.getOptBool(id, "useneek", m_cfg.getBool(CHANNEL_DOMAIN, "useneek", 0))));
m_btnMgr.setText(m_gameSettingsBtnApploader, _optBoolToString(m_gcfg2.getOptBool(id, "apploader", 0)));
@ -633,11 +579,6 @@ void CMenu::_gameSettings(void)
m_gcfg2.setBool(id, "country_patch", !m_gcfg2.getBool(id, "country_patch", 0));
_showGameSettings();
}
/*else if(m_btnMgr.selected(m_gameSettingsBtnIOSreloadBlock))
{
m_gcfg2.setBool(id, "reload_block", !m_gcfg2.getBool(id, "reload_block", 1));
_showGameSettings();
}*/
else if(m_btnMgr.selected(m_gameSettingsBtnCustom))
{
m_gcfg2.setBool(id, "custom", !m_gcfg2.getBool(id, "custom", 0));
@ -656,7 +597,7 @@ void CMenu::_gameSettings(void)
else if(m_btnMgr.selected(m_gameSettingsBtnWidescreen))
{
if(IsOnWiiU() and GCLoader == NINTENDONT)
m_gcfg2.setBool(id, "screenshot", !m_gcfg2.getBool(id, "screenshot", 0));
m_gcfg2.setBool(id, "wiiu_widescreen", !m_gcfg2.getBool(id, "wiiu_widescreen", 0));
else
m_gcfg2.setBool(id, "widescreen", !m_gcfg2.getBool(id, "widescreen", 0));
_showGameSettings();
@ -688,16 +629,7 @@ void CMenu::_gameSettings(void)
else if(m_btnMgr.selected(m_gameSettingsBtnEmuMemCard_P) || m_btnMgr.selected(m_gameSettingsBtnEmuMemCard_M))
{
s8 direction = m_btnMgr.selected(m_gameSettingsBtnEmuMemCard_P) ? 1 : -1;
if(GCLoader == NINTENDONT)
m_gcfg2.setInt(id, "nin_memcard", (int)loopNum((u32)m_gcfg2.getInt(id, "nin_memcard", 2) + direction, ARRAY_SIZE(CMenu::_NinEmuCard)));
else
m_gcfg2.setInt(id, "dml_nmm", (int)loopNum((u32)m_gcfg2.getInt(id, "dml_nmm", 2) + direction, ARRAY_SIZE(CMenu::_NMM)));
_showGameSettings();
}
else if(m_btnMgr.selected(m_gameSettingsBtnNoDVD_P) || m_btnMgr.selected(m_gameSettingsBtnNoDVD_M))
{
s8 direction = m_btnMgr.selected(m_gameSettingsBtnNoDVD_P) ? 1 : -1;
m_gcfg2.setInt(id, "no_disc_patch", (int)loopNum((u32)m_gcfg2.getInt(id, "no_disc_patch", 0) + direction, ARRAY_SIZE(CMenu::_NoDVD)));
m_gcfg2.setInt(id, "nin_memcard", (int)loopNum((u32)m_gcfg2.getInt(id, "nin_memcard", 2) + direction, ARRAY_SIZE(CMenu::_NinEmuCard)));
_showGameSettings();
}
else if(m_btnMgr.selected(m_gameSettingsBtnGCLoader_P) || m_btnMgr.selected(m_gameSettingsBtnGCLoader_M))
@ -787,11 +719,6 @@ void CMenu::_gameSettings(void)
m_gcfg2.setBool(id, "Deflicker", !m_gcfg2.getBool(id, "Deflicker", 0));
_showGameSettings();
}
else if(m_btnMgr.selected(m_gameSettingsBtnScreenshot))
{
m_gcfg2.setBool(id, "screenshot", !m_gcfg2.getBool(id, "screenshot", 0));
_showGameSettings();
}
else if(m_btnMgr.selected(m_gameSettingsBtnUSB_HID))
{
m_gcfg2.setBool(id, "USB_HID", !m_gcfg2.getBool(id, "USB_HID", 0));
@ -875,8 +802,7 @@ void CMenu::_initGameSettingsMenu()
m_gameSettingsBtnCheat = _addButton("GAME_SETTINGS/CHEAT_BTN", theme.btnFont, L"", 420, 310, 200, 48, theme.btnFontColor);
//GC Page 2
//nintendot = debugger, deflicker, ocarina, cheats
//dml = debugger, screenshot, ocarina, cheats
//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);
@ -910,8 +836,7 @@ void CMenu::_initGameSettingsMenu()
m_gameSettingsBtnApploader = _addButton("GAME_SETTINGS/APPLDR_BTN", theme.btnFont, L"", 420, 310, 200, 48, theme.btnFontColor);
//GC Page 3
//dml=nmm, widescreen, led_activity (pg4), no dvd
//nintendont=emucard, widescreen(pg2)/wiiu widescreen(screenshot), usb_hid, native_ctl
//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);
@ -919,20 +844,12 @@ void CMenu::_initGameSettingsMenu()
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_gameSettingsLblScreenshot = _addLabel("GAME_SETTINGS/SCREENSHOT", theme.lblFont, L"", 20, 185, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsBtnScreenshot = _addButton("GAME_SETTINGS/SCREENSHOT_BTN", theme.btnFont, L"", 420, 190, 200, 48, theme.btnFontColor);
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_gameSettingsLblNoDVD = _addLabel("GAME_SETTINGS/NO_DVD_PATCH", theme.lblFont, L"", 20, 305, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsLblNoDVD_Val = _addLabel("GAME_SETTINGS/NO_DVD_PATCH_BTN", theme.btnFont, L"", 468, 310, 104, 48, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC);
m_gameSettingsBtnNoDVD_M = _addPicButton("GAME_SETTINGS/NO_DVD_PATCH_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 420, 310, 48, 48);
m_gameSettingsBtnNoDVD_P = _addPicButton("GAME_SETTINGS/NO_DVD_PATCH_PLUS", theme.btnTexPlus, theme.btnTexPlusS, 572, 310, 48, 48);
//Page 4
m_gameSettingsLblEmulation = _addLabel("GAME_SETTINGS/EMU_SAVE", theme.lblFont, L"", 20, 125, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_gameSettingsLblEmulationVal = _addLabel("GAME_SETTINGS/EMU_SAVE_BTN", theme.btnFont, L"", 468, 130, 104, 48, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC);
@ -1038,19 +955,11 @@ void CMenu::_initGameSettingsMenu()
_setHideAnim(m_gameSettingsLblDeflicker, "GAME_SETTINGS/DEFLICKER", 50, 0, -2.f, 0.f);
_setHideAnim(m_gameSettingsBtnDeflicker, "GAME_SETTINGS/DEFLICKER_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_gameSettingsLblScreenshot, "GAME_SETTINGS/SCREENSHOT", 50, 0, -2.f, 0.f);
_setHideAnim(m_gameSettingsBtnScreenshot, "GAME_SETTINGS/SCREENSHOT_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_gameSettingsLblEmuMemCard, "GAME_SETTINGS/DML_NMM", 50, 0, -2.f, 0.f);
_setHideAnim(m_gameSettingsLblEmuMemCard_Val, "GAME_SETTINGS/DML_NMM_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_gameSettingsBtnEmuMemCard_P, "GAME_SETTINGS/DML_NMM_PLUS", -50, 0, 1.f, 0.f);
_setHideAnim(m_gameSettingsBtnEmuMemCard_M, "GAME_SETTINGS/DML_NMM_MINUS", -50, 0, 1.f, 0.f);
_setHideAnim(m_gameSettingsLblNoDVD, "GAME_SETTINGS/NO_DVD_PATCH", 50, 0, -2.f, 0.f);
_setHideAnim(m_gameSettingsLblNoDVD_Val, "GAME_SETTINGS/NO_DVD_PATCH_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_gameSettingsBtnNoDVD_P, "GAME_SETTINGS/NO_DVD_PATCH_PLUS", -50, 0, 1.f, 0.f);
_setHideAnim(m_gameSettingsBtnNoDVD_M, "GAME_SETTINGS/NO_DVD_PATCH_MINUS", -50, 0, 1.f, 0.f);
_setHideAnim(m_gameSettingsLblDevoMemcardEmu, "GAME_SETTINGS/DEVO_MEMCARD_EMU", 50, 0, -2.f, 0.f);
_setHideAnim(m_gameSettingsBtnDevoMemcardEmu, "GAME_SETTINGS/DEVO_MEMCARD_EMU_BTN", -50, 0, 1.f, 0.f);
@ -1098,41 +1007,43 @@ void CMenu::_initGameSettingsMenu()
void CMenu::_textGameSettings(void)
{
m_btnMgr.setText(m_gameSettingsLblTitle, _t("cfgg1", L"Settings"));
m_btnMgr.setText(m_gameSettingsLblGameVideo, _t("cfgg2", L"Video mode"));
m_btnMgr.setText(m_gameSettingsLblGameLanguage, _t("cfgg3", L"Language"));
m_btnMgr.setText(m_gameSettingsLblCountryPatch, _t("cfgg4", L"Patch country strings"));
m_btnMgr.setText(m_gameSettingsLblOcarina, _t("cfgg5", L"Ocarina"));
m_btnMgr.setText(m_gameSettingsLblVipatch, _t("cfgg7", L"Vipatch"));
m_btnMgr.setText(m_gameSettingsBtnBack, _t("cfgg8", L"Back"));
m_btnMgr.setText(m_gameSettingsLblGameIOS, _t("cfgg10", L"IOS"));
m_btnMgr.setText(m_gameSettingsLblPatchVidModes, _t("cfgg14", L"Patch video modes"));
m_btnMgr.setText(m_gameSettingsLblCheat, _t("cfgg15", L"Cheat Codes"));
m_btnMgr.setText(m_gameSettingsBtnCheat, _t("cfgg16", L"Select"));
m_btnMgr.setText(m_gameSettingsLblCategoryMain, _t("cfgg17", L"Categories"));
m_btnMgr.setText(m_gameSettingsBtnCategoryMain, _t("cfgg16", L"Select"));
m_btnMgr.setText(m_gameSettingsLblHooktype, _t("cfgg18", L"Hook Type"));
m_btnMgr.setText(m_gameSettingsLblDebugger, _t("cfgg22", L"Debugger"));
m_btnMgr.setText(m_gameSettingsLblEmulation, _t("cfgg24", L"NAND Emulation"));
m_btnMgr.setText(m_gameSettingsLblAspectRatio, _t("cfgg27", L"Aspect Ratio"));
m_btnMgr.setText(m_gameSettingsLblEmuMemCard, _t("cfgg28", L"NMM"));
m_btnMgr.setText(m_gameSettingsLblNoDVD, _t("cfgg29", L"No DVD Patch"));
m_btnMgr.setText(m_gameSettingsLblCustom, _t("custom", L"Custom"));
m_btnMgr.setText(m_gameSettingsLblLaunchNK, _t("neek1", L"Launch Title with neek2o"));
m_btnMgr.setText(m_gameSettingsLblExtractSave, _t("cfgg30", L"Extract Save from NAND"));
m_btnMgr.setText(m_gameSettingsBtnExtractSave, _t("cfgg31", L"Extract"));
m_btnMgr.setText(m_gameSettingsLblFlashSave, _t("cfgg32", L"Flash Save to NAND"));
m_btnMgr.setText(m_gameSettingsBtnFlashSave, _t("cfgg33", L"Flash"));
m_btnMgr.setText(m_gameSettingsLblDevoMemcardEmu, _t("cfgg47", L"Emulated MemCard"));
//m_btnMgr.setText(m_gameSettingsLblDevoMemcardEmu, _t("cfgg34", L"Devolution Memcard Emulator"));
m_btnMgr.setText(m_gameSettingsLblGCLoader, _t("cfgg35", L"GameCube Loader"));
m_btnMgr.setText(m_gameSettingsLblWidescreen, _t("cfgg36", L"Widescreen Patch"));
m_btnMgr.setText(m_gameSettingsLblApploader, _t("cfgg37", L"Boot Apploader"));
m_btnMgr.setText(m_gameSettingsLblLED, _t("cfgg38", L"Activity LED"));
m_btnMgr.setText(m_gameSettingsLblScreenshot, _t("cfgg39", L"DiosMios ScreenShot"));
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_gameSettingsLblCategoryMain, _t("cfgg17", L"Categories"));
m_btnMgr.setText(m_gameSettingsBtnCategoryMain, _t("cfgg16", L"Select"));
m_btnMgr.setText(m_gameSettingsLblGCLoader, _t("cfgg35", L"GameCube Loader"));
m_btnMgr.setText(m_gameSettingsLblGameVideo, _t("cfgg2", L"Video mode"));
m_btnMgr.setText(m_gameSettingsLblGameLanguage, _t("cfgg3", L"Language"));
m_btnMgr.setText(m_gameSettingsLblHooktype, _t("cfgg18", L"Hook Type"));
m_btnMgr.setText(m_gameSettingsLblDebugger, _t("cfgg22", L"Debugger"));
m_btnMgr.setText(m_gameSettingsLblOcarina, _t("cfgg5", L"Ocarina"));
m_btnMgr.setText(m_gameSettingsLblCheat, _t("cfgg15", L"Cheat Codes"));
m_btnMgr.setText(m_gameSettingsBtnCheat, _t("cfgg16", L"Select"));
m_btnMgr.setText(m_gameSettingsLblDeflicker, _t("cfgg44", L"Video Deflicker"));
m_btnMgr.setText(m_gameSettingsLblDevoMemcardEmu, _t("cfgg47", L"Emulated MemCard"));
m_btnMgr.setText(m_gameSettingsLblWidescreen, _t("cfgg36", L"Widescreen Patch"));
m_btnMgr.setText(m_gameSettingsLblCountryPatch, _t("cfgg4", L"Patch country strings"));
m_btnMgr.setText(m_gameSettingsLblVipatch, _t("cfgg7", L"Vipatch"));
m_btnMgr.setText(m_gameSettingsLblPatchVidModes, _t("cfgg14", L"Patch video modes"));
m_btnMgr.setText(m_gameSettingsLblAspectRatio, _t("cfgg27", L"Aspect Ratio"));
m_btnMgr.setText(m_gameSettingsLblApploader, _t("cfgg37", L"Boot Apploader"));
m_btnMgr.setText(m_gameSettingsLblEmuMemCard, _t("cfgg47", L"Emulated MemCard"));
m_btnMgr.setText(m_gameSettingsLblUSB_HID, _t("cfgg42", L"USB-HID Controller"));
m_btnMgr.setText(m_gameSettingsLblNATIVE_CTL, _t("cfgg43", L"Native Control"));
m_btnMgr.setText(m_gameSettingsLblDeflicker, _t("cfgg44", L"Video Deflicker"));
m_btnMgr.setText(m_gameSettingsLblEmulation, _t("cfgg24", L"NAND Emulation"));
m_btnMgr.setText(m_gameSettingsLblGameIOS, _t("cfgg10", L"IOS"));
m_btnMgr.setText(m_gameSettingsLblLED, _t("cfgg38", L"Activity LED"));
m_btnMgr.setText(m_gameSettingsLblExtractSave, _t("cfgg30", L"Extract Save from NAND"));
m_btnMgr.setText(m_gameSettingsBtnExtractSave, _t("cfgg31", L"Extract"));
m_btnMgr.setText(m_gameSettingsLblCustom, _t("custom", L"Custom"));
m_btnMgr.setText(m_gameSettingsLblLaunchNK, _t("neek1", L"Launch Title with neek2o"));
m_btnMgr.setText(m_gameSettingsLblFlashSave, _t("cfgg32", L"Flash Save to NAND"));
m_btnMgr.setText(m_gameSettingsBtnFlashSave, _t("cfgg33", L"Flash"));
m_btnMgr.setText(m_gameSettingsLblPrivateServer, _t("cfgg45", L"Private Server"));
}

View File

@ -24,7 +24,7 @@
#include "homebrew/homebrew.h"
#include "loader/alt_ios.h"
#include "loader/wdvd.h"
#include "loader/alt_ios.h"
//#include "loader/alt_ios.h"
#include "loader/playlog.h"
#include "loader/wbfs.h"
#include "loader/wip.h"
@ -149,13 +149,7 @@ const CMenu::SOption CMenu::_AspectRatio[3] = {
{ "aspect169", L"Force 16:9" },
};
const CMenu::SOption CMenu::_NMM[4] = {
{ "NMMDef", L"Default" },
{ "NMMOff", L"Disabled" },
{ "NMMon", L"Enabled" },
{ "NMMdebug", L"Debug" },
};
//still need to change the NMM's
const CMenu::SOption CMenu::_NinEmuCard[5] = {
{ "NMMDef", L"Default" },
{ "NMMOff", L"Disabled" },
@ -164,21 +158,13 @@ const CMenu::SOption CMenu::_NinEmuCard[5] = {
{ "NMMdebug", L"Debug" },
};
const CMenu::SOption CMenu::_NoDVD[3] = {
{ "NoDVDDef", L"Default" },
{ "NoDVDOff", L"Disabled" },
{ "NoDVDon", L"Enabled" },
};
const CMenu::SOption CMenu::_GlobalGCLoaders[3] = {
{ "GC_Auto", L"Auto MIOS" },
const CMenu::SOption CMenu::_GlobalGCLoaders[2] = {
{ "GC_Devo", L"Devolution" },
{ "GC_Nindnt", L"Nintendont" },
};
const CMenu::SOption CMenu::_GCLoader[4] = {
const CMenu::SOption CMenu::_GCLoader[3] = {
{ "GC_Def", L"Default" },
{ "GC_Auto", L"Auto MIOS" },
{ "GC_Devo", L"Devolution" },
{ "GC_Nindnt", L"Nintendont" },
};
@ -306,7 +292,6 @@ void CMenu::_hideGame(bool instant)
m_btnMgr.hide(m_gameBtnSettings, instant);
m_btnMgr.hide(m_gameBtnToggle, instant);
m_btnMgr.hide(m_gameBtnToggleFull, instant);
m_btnMgr.hide(m_gameBtnFavoriteOn, instant);
m_btnMgr.hide(m_gameBtnFavoriteOff, instant);
m_btnMgr.hide(m_gameBtnAdultOn, instant);
@ -791,6 +776,7 @@ void CMenu::_launchShutdown()
exitHandler(PRIILOADER_DEF); //Making wiiflow ready to boot something
}
bool gcLaunchFail = false;
void CMenu::_launch(const dir_discHdr *hdr)
{
dir_discHdr launchHdr;
@ -799,7 +785,11 @@ void CMenu::_launch(const dir_discHdr *hdr)
if(launchHdr.type == TYPE_WII_GAME)
_launchGame(&launchHdr, false);
else if(launchHdr.type == TYPE_GC_GAME)
{
gcLaunchFail = false;
_launchGC(&launchHdr, false);
if(gcLaunchFail) return;
}
else if(launchHdr.type == TYPE_CHANNEL)
_launchChannel(&launchHdr);
else if(launchHdr.type == TYPE_PLUGIN)
@ -837,18 +827,7 @@ void CMenu::_launch(const dir_discHdr *hdr)
wcstombs(title, launchHdr.title, 63);
}
m_cfg.setString(PLUGIN_DOMAIN, "current_item", title);
// check if quadforce plugin if so then set proper quadforce mios
const char *mios_wad = NULL;
u32 magic = strtoul("444d4c62", NULL, 16);
if(m_plugin.GetEnableStatus(m_cfg, magic))
{
if(currentPartition == SD && (m_mios_ver != 2 || m_sd_dm == false))
mios_wad = fmt("%s/qfsd.wad", m_miosDir.c_str());
else if(currentPartition != SD && (m_mios_ver != 2 || m_sd_dm == true))
mios_wad = fmt("%s/qfusb.wad", m_miosDir.c_str());
if(mios_wad != NULL && fsop_FileExist(mios_wad))
_Wad(mios_wad, true);//install mios
}
const char *device = (currentPartition == 0 ? "sd" : (DeviceHandle.GetFSType(currentPartition) == PART_FS_NTFS ? "ntfs" : "usb"));
/* this is weird - he sets the return to loader to be dev:/wiiflow/plugins/WiiFlowLoader.dol
but there is no such dol in the plugins directory and WiiFlowLoader.dol is really a hidden channel
@ -890,32 +869,6 @@ void CMenu::_launch(const dir_discHdr *hdr)
Sys_Exit();
}
// taken from Postloader by Stfour
#define QFIDN 9
static const char qfid[QFIDN][7] = {
"RELSAB", //Sample Header?
"GGPE01", //Mario Kart Arcade GP
"MKAGP1", //Mario Kart Arcade GP (Alt ID)
"GGPE02", //Mario Kart Arcade GP 2
"MKAGP2", //Mario Kart Arcade GP 2 (Alt ID)
"GFZJ8P", //F-Zero AX
"GVSJ8P", // Virtua Striker 4 Ver.2006 (PAL)
"GVS46E", // Virtua Striker 4 Ver.2006 (NTSC)
"GVS46J", // Virtua Striker 4 Ver.2006 (JAP)
};
bool CMenu::_QF_Game(const char *game_id)
{
if(game_id == NULL)
return false;
for(u8 i = 0; i < QFIDN; i++)
{
if(memcmp(game_id, qfid[i], 7) == 0)
return true;
}
return false;
}
void CMenu::_launchGC(dir_discHdr *hdr, bool disc)
{
const char *id = hdr->id;
@ -923,19 +876,33 @@ void CMenu::_launchGC(dir_discHdr *hdr, bool disc)
DCFlushRange((u8*)Disc_ID, 32);
const char *path = hdr->path;
u8 loader = min((u32)m_gcfg2.getInt(id, "gc_loader", 0), ARRAY_SIZE(CMenu::_GCLoader) - 1u);
loader = (loader == 0) ? min((u32)m_cfg.getInt(GC_DOMAIN, "default_loader", 1), ARRAY_SIZE(CMenu::_GlobalGCLoaders) - 1u) : loader-1;
if(disc)
loader = 1;
if((loader == 1 && !m_nintendont_installed) || (loader == 0 && !m_devo_installed))
{
error(_t("errgame11", L"GameCube Loader not found! Can't launch game."));
gcLaunchFail = true;
return;
}
_launchShutdown();
m_gcfg1.setInt("PLAYCOUNT", id, m_gcfg1.getInt("PLAYCOUNT", id, 0) + 1);
m_gcfg1.setUInt("LASTPLAYED", id, time(NULL));
m_cfg.setString(GC_DOMAIN, "current_item", id);
if(has_enabled_providers() && _initNetwork() == 0)
add_game_to_card(id);
u8 videoSetting = min(m_cfg.getInt(GC_DOMAIN, "video_setting", 1), 2);
u8 GClanguage = min((u32)m_gcfg2.getInt(id, "gc_language", 0), ARRAY_SIZE(CMenu::_GClanguages) - 1u);
GClanguage = (GClanguage == 0) ? min((u32)m_cfg.getInt(GC_DOMAIN, "game_language", 0), ARRAY_SIZE(CMenu::_GlobalGClanguages) - 1u) : GClanguage-1;
if(id[3] == 'E' || id[3] == 'J')
GClanguage = 1; //=english
u8 videoMode = min((u32)m_gcfg2.getInt(id, "dml_video_mode", 0), ARRAY_SIZE(CMenu::_GCvideoModes) - 1u);
u8 videoMode = min((u32)m_gcfg2.getInt(id, "gc_video_mode", 0), ARRAY_SIZE(CMenu::_GCvideoModes) - 1u);
videoMode = (videoMode == 0) ? min((u32)m_cfg.getInt(GC_DOMAIN, "video_mode", 0), ARRAY_SIZE(CMenu::_GlobalGCvideoModes) - 1u) : videoMode-1;
if(disc || videoMode == 0)
{
@ -945,167 +912,51 @@ void CMenu::_launchGC(dir_discHdr *hdr, bool disc)
videoMode = 1; //PAL 576i
}
u8 loader = min((u32)m_gcfg2.getInt(id, "gc_loader", 0), ARRAY_SIZE(CMenu::_GCLoader) - 1u);
loader = (loader == 0) ? min((u32)m_cfg.getInt(GC_DOMAIN, "default_loader", 2), ARRAY_SIZE(CMenu::_GlobalGCLoaders) - 1u) : loader-1;
bool memcard_emu = m_gcfg2.getBool(id, "devo_memcard_emu", false);
bool widescreen = m_gcfg2.getBool(id, "dm_widescreen", false);
bool activity_led = m_gcfg2.getBool(id, "led", false);
bool usb_hid = m_gcfg2.getBool(id, "USB_HID", m_cfg.getBool(GC_DOMAIN, "USB_HID", false));
bool native_ctl = m_gcfg2.getBool(id, "NATIVE_CTL", m_cfg.getBool(GC_DOMAIN, "NATIVE_CTL", false));
bool deflicker = m_gcfg2.getBool(id, "Deflicker", m_cfg.getBool(GC_DOMAIN, "Deflicker", false));
bool widescreen = m_gcfg2.getBool(id, "widescreen", false);
if(loader == 2 && m_nintendont_installed == false)
loader = 0;
//always enable for nintendont
u8 NMM = min((u32)m_gcfg2.getInt(id, "dml_nmm", m_cfg.getInt(GC_DOMAIN, "dml_nmm", 1)), ARRAY_SIZE(CMenu::_NMM) - 1u);
NMM = (NMM == 0) ? m_cfg.getInt(GC_DOMAIN, "dml_nmm", 1) : NMM-1;
m_cfg.setString(GC_DOMAIN, "current_item", id);
if(loader == 0) //auto selected
if(loader == 0)
{
if(IsOnWiiU())
{
if(m_nintendont_installed)
loader = 2;
else if(m_devo_installed)
loader = 1;
}
else
{
gprintf("Auto installing MIOS\n");
const char *mios_wad = NULL;
_showWaitMessage();
if(_QF_Game(id) == true)
{
if(currentPartition == SD && (m_mios_ver != 2 || m_sd_dm == false))
mios_wad = fmt("%s/qfsd.wad", m_miosDir.c_str());
else if(currentPartition != SD && (m_mios_ver != 2 || m_sd_dm == true))
mios_wad = fmt("%s/qfusb.wad", m_miosDir.c_str());
}
else if(disc == false)
{
if(currentPartition == SD && (m_mios_ver != 1 || m_sd_dm == false))
mios_wad = fmt("%s/dml.wad", m_miosDir.c_str());
else if(currentPartition != SD && (m_mios_ver != 1 || m_sd_dm == true))
mios_wad = fmt("%s/dm.wad", m_miosDir.c_str());
}
else if(m_mios_ver != 0)
mios_wad = fmt("%s/mios.wad", m_miosDir.c_str());
if(mios_wad != NULL && fsop_FileExist(mios_wad))
_Wad(mios_wad, true);//install mios
}
}
//copy DML game from USB to SD if needed for DML
if(disc == false && loader == 0 && currentPartition != SD && m_sd_dm == true && strcasestr(hdr->path, ".iso") == NULL)
{
bool foundOnSD = false;
ListGenerator SD_List;
string gameDir(fmt(GC_GAMES_DIR, DeviceName[SD]));
string cacheDir(fmt("%s/%s_gamecube.db", m_listCacheDir.c_str(), DeviceName[SD]));
SD_List.CreateList(COVERFLOW_GAMECUBE, SD, gameDir,
stringToVector(".iso|root", '|'), cacheDir, false);
for(vector<dir_discHdr>::iterator List = SD_List.begin(); List != SD_List.end(); List++)
{
if(strncasecmp(hdr->id, List->id, 6) == 0)
{
foundOnSD = true;
memset(hdr->path, 0, sizeof(hdr->path));
strncpy(hdr->path, List->path, sizeof(hdr->path));
break;
}
}
SD_List.clear();
if(!foundOnSD)
{
if(_wbfsOp(CMenu::WO_COPY_GAME))
{
char folder[50];
string GC_Path(hdr->path);
if(strcasestr(GC_Path.c_str(), "boot.bin") != NULL)
GC_Path.erase(GC_Path.end() - 13, GC_Path.end());
else
GC_Path.erase(GC_Path.end() - 9, GC_Path.end());
u32 Place = GC_Path.find_last_of("/");
GC_Path = hdr->path;
memset(hdr->path, 0, sizeof(hdr->path));
snprintf(folder, sizeof(folder), GC_GAMES_DIR, DeviceName[SD]);
snprintf(hdr->path, sizeof(hdr->path), "%s/%s", folder, &GC_Path[Place]+1);
}
else
return;
}
currentPartition = SD;
}
_launchShutdown();
if(disc == true)
{
if(loader == 0)
DML_New_SetBootDiscOption(m_new_dm_cfg);
else if(loader == 2)
{
NMM = m_cfg.getInt(GC_DOMAIN, "dml_nmm", 1);
Nintendont_BootDisc(NMM, widescreen, usb_hid, native_ctl, deflicker);
}
}
else if(loader == 0)
{
char CheatPath[256];
u8 nodisc = min((u32)m_gcfg2.getInt(id, "no_disc_patch", 0), ARRAY_SIZE(CMenu::_NoDVD) - 1u);
nodisc = (nodisc == 0) ? m_cfg.getInt(GC_DOMAIN, "no_disc_patch", 0) : nodisc-1;
bool cheats = m_gcfg2.testOptBool(id, "cheat", m_cfg.getBool(GC_DOMAIN, "cheat", false));
bool DML_debug = (m_gcfg2.getInt(id, "debugger", 0) == 1);
bool screenshot = m_gcfg2.getBool(id, "screenshot", false);
/* Generate gct path */
char GC_Path[1024];
GC_Path[1023] = '\0';
strncpy(GC_Path, path, 1023);
if(strcasestr(path, "boot.bin") != NULL)
{
*strrchr(GC_Path, '/') = '\0'; //boot.bin
*(strrchr(GC_Path, '/')+1) = '\0'; //sys
}
else
*(strrchr(GC_Path, '/')+1) = '\0'; //iso path
const char *NewCheatPath = fmt("%s%s.gct", GC_Path, id);
if(cheats)
snprintf(CheatPath, sizeof(CheatPath), "%s/%s", m_cheatDir.c_str(), fmt("%s.gct", id));
const char *newPath = strcasestr(path, "boot.bin") == NULL ? strchr(path, '/') : strchr(GC_Path, '/');
if(m_new_dml)
DML_New_SetOptions(newPath, CheatPath, NewCheatPath, DeviceName[currentPartition],
cheats, DML_debug, NMM, nodisc, videoMode, videoSetting, widescreen, m_new_dm_cfg, activity_led, screenshot);
else
DML_Old_SetOptions(newPath);
if(!nodisc || !m_new_dml)
WDVD_StopMotor();
bool memcard_emu = m_gcfg2.getBool(id, "devo_memcard_emu", false);
bool activity_led = m_gcfg2.getBool(id, "led", false);
DEVO_GetLoader(m_dataDir.c_str());
DEVO_SetOptions(path, id, memcard_emu, widescreen, activity_led, m_use_wifi_gecko);
}
else if(loader == 1)
DEVO_GetLoader(m_dataDir.c_str());
else if(loader == 2)
{
bool NIN_Debugger = (m_gcfg2.getInt(id, "debugger", 0) == 2);
bool screenshot = m_gcfg2.getBool(id, "screenshot", false);
bool cheats = m_gcfg2.testOptBool(id, "cheat", m_cfg.getBool(GC_DOMAIN, "cheat", false));
/* Generate gct path */
char GC_Path[256];
GC_Path[255] = '\0';
strncpy(GC_Path, path, 255);
if(strcasestr(path, "boot.bin") != NULL)
u8 emuMC = min((u32)m_gcfg2.getInt(id, "emu_memcard", m_cfg.getInt(GC_DOMAIN, "emu_memcard", 1)), ARRAY_SIZE(CMenu::_NinEmuCard) - 1u);
emuMC = (emuMC == 0) ? m_cfg.getInt(GC_DOMAIN, "emu_memcard", 1) : emuMC-1;
bool usb_hid = m_gcfg2.getBool(id, "USB_HID", m_cfg.getBool(GC_DOMAIN, "USB_HID", false));
bool native_ctl = m_gcfg2.getBool(id, "NATIVE_CTL", m_cfg.getBool(GC_DOMAIN, "NATIVE_CTL", false));
bool deflicker = m_gcfg2.getBool(id, "Deflicker", m_cfg.getBool(GC_DOMAIN, "Deflicker", false));
if(disc == true)
{
*strrchr(GC_Path, '/') = '\0'; //boot.bin
*(strrchr(GC_Path, '/')+1) = '\0'; //sys
emuMC = m_cfg.getInt(GC_DOMAIN, "emu_memcard", 1);
Nintendont_BootDisc(emuMC, widescreen, usb_hid, native_ctl, deflicker);
}
else
*(strrchr(GC_Path, '/')+1) = '\0'; //iso path
//const char *NewPath = fmt("%s%s.gct", GC_Path, id);
char CheatPath[256];
char NewCheatPath[256];
snprintf(CheatPath, sizeof(CheatPath), "%s/%s", m_cheatDir.c_str(), fmt("%s.gct", id));
snprintf(NewCheatPath, sizeof(NewCheatPath), "%s%s.gct",GC_Path,id);
Nintendont_SetOptions(path, id, CheatPath,NewCheatPath,DeviceName[currentPartition],
cheats, NMM, videoMode,videoSetting, widescreen,usb_hid,native_ctl,deflicker,screenshot,NIN_Debugger);
{
bool NIN_Debugger = (m_gcfg2.getInt(id, "debugger", 0) == 2);
bool wiiu_widescreen = m_gcfg2.getBool(id, "wiiu_widescreen", false);
bool cheats = m_gcfg2.testOptBool(id, "cheat", m_cfg.getBool(GC_DOMAIN, "cheat", false));
/* Generate gct path */
char GC_Path[256];
GC_Path[255] = '\0';
strncpy(GC_Path, path, 255);
if(strcasestr(path, "boot.bin") != NULL)//games/title [id]/sys/boot.bin
{
*strrchr(GC_Path, '/') = '\0'; //erase /boot.bin
*(strrchr(GC_Path, '/')+1) = '\0'; //erase sys folder
}
else //games/title [id]/game.iso
*(strrchr(GC_Path, '/')+1) = '\0'; //erase game.iso
char CheatPath[256];// wiiflow cheats path - sd:/wiiflow/cheats/id.gct
char NewCheatPath[256];// nintendont cheat path - games/title [id]/id.gct
snprintf(CheatPath, sizeof(CheatPath), "%s/%s", m_cheatDir.c_str(), fmt("%s.gct", id));
snprintf(NewCheatPath, sizeof(NewCheatPath), "%s%s.gct",GC_Path,id);
Nintendont_SetOptions(path, id, CheatPath, NewCheatPath, DeviceName[currentPartition],
cheats, emuMC, videoMode, widescreen, usb_hid, native_ctl, deflicker, wiiu_widescreen, NIN_Debugger);
}
}
m_gcfg1.save(true);
m_gcfg2.save(true);
@ -1113,28 +964,19 @@ void CMenu::_launchGC(dir_discHdr *hdr, bool disc)
m_cfg.save(true);
cleanup();
GC_SetVideoMode(videoMode, (disc ? 1 : videoSetting), loader);
GC_SetVideoMode(videoMode, loader);
GC_SetLanguage(GClanguage, loader);
/* NTSC-J Patch by FIX94 */
if(id[3] == 'J')
*HW_PPCSPEED = 0x0002A9E0;
if(loader == 0)
{
DML_New_WriteOptions();
ShutdownBeforeExit();
WII_Initialize();
WII_LaunchTitle(0x100000100LL);
}
else if(loader == 1)
{
if(AHBRPOT_Patched())
loadIOS(58, false);
else //use cIOS instead to make sure Devolution works anyways
loadIOS(mainIOS, false);
ShutdownBeforeExit();
DEVO_SetOptions(path, id, memcard_emu,
widescreen, activity_led, m_use_wifi_gecko);
DEVO_Boot();
}
else
@ -1425,7 +1267,7 @@ void CMenu::_launchGame(dir_discHdr *hdr, bool dvd)
/* Check disc */
if(Disc_IsWii() < 0)
{
if (Disc_IsGC() < 0)
if(Disc_IsGC() < 0)
{
error(_t("errgame9", L"This is not a Wii or GC disc"));
Sys_Exit();
@ -1435,8 +1277,12 @@ void CMenu::_launchGame(dir_discHdr *hdr, bool dvd)
/* Read GC disc header */
Disc_ReadGCHeader(&gc_hdr);
memcpy(hdr->id, gc_hdr.id, 6);
/* Launching GC Game */
_launchGC(hdr, true);
if(m_nintendont_installed)
_launchGC(hdr, true);
else
error(_t("errgame12", L"Nintendont not found! Can't launch GC Disc."));
return;
}
}
@ -1764,14 +1610,12 @@ void CMenu::_gameSoundThread(CMenu *m)
}
if(custom_bnr_file == NULL && GameHdr->type == TYPE_GC_GAME)
{
if(m->_QF_Game(GameHdr->id) == false)
{
GC_Disc_Reader.init(GameHdr->path);
u8 *opening_bnr = GC_Disc_Reader.GetGameCubeBanner();
if(opening_bnr != NULL)
m_banner.CreateGCBanner(opening_bnr, m->m_wbf1_font, m->m_wbf2_font, GameHdr->title);
GC_Disc_Reader.clear();
}
GC_Disc_Reader.init(GameHdr->path);
u8 *opening_bnr = GC_Disc_Reader.GetGameCubeBanner();
if(opening_bnr != NULL)
m_banner.CreateGCBanner(opening_bnr, m->m_wbf1_font, m->m_wbf2_font, GameHdr->title);
GC_Disc_Reader.clear();
m->m_gameSound.Load(gc_ogg, gc_ogg_size, false);
if(m->m_gameSound.IsLoaded())
m->m_gamesound_changed = true;

View File

@ -29,9 +29,9 @@ void CMenu::_hideMain(bool instant)
m_btnMgr.hide(m_mainBtnQuit, instant);
m_btnMgr.hide(m_mainBtnHomebrew, instant);
m_btnMgr.hide(m_mainBtnChannel, instant);
m_btnMgr.hide(m_mainBtnUsb, instant);
m_btnMgr.hide(m_mainBtnDML, instant);
m_btnMgr.hide(m_mainBtnEmu, instant);
m_btnMgr.hide(m_mainBtnWii, instant);
m_btnMgr.hide(m_mainBtnGamecube, instant);
m_btnMgr.hide(m_mainBtnPlugin, instant);
m_btnMgr.hide(m_mainBtnDVD, instant);
m_btnMgr.hide(m_mainBtnInit, instant);
m_btnMgr.hide(m_mainBtnInit2, instant);
@ -72,41 +72,41 @@ start_main:
if(show_channel)
m_btnMgr.show(m_mainBtnChannel);
else if(show_emu)
m_btnMgr.show(m_mainBtnEmu);
m_btnMgr.show(m_mainBtnPlugin);
else if(show_homebrew)
m_btnMgr.show(m_mainBtnHomebrew);
else
m_btnMgr.show(m_mainBtnUsb);
m_btnMgr.show(m_mainBtnWii);
break;
case COVERFLOW_CHANNEL:
if(show_emu)
m_btnMgr.show(m_mainBtnEmu);
m_btnMgr.show(m_mainBtnPlugin);
else if(show_homebrew)
m_btnMgr.show(m_mainBtnHomebrew);
else
m_btnMgr.show(m_mainBtnUsb);
m_btnMgr.show(m_mainBtnWii);
break;
case COVERFLOW_MAX:
case COVERFLOW_HOMEBREW:
m_btnMgr.show(m_mainBtnUsb);
m_btnMgr.show(m_mainBtnWii);
break;
case COVERFLOW_PLUGIN:
if(show_homebrew)
m_btnMgr.show(m_mainBtnHomebrew);
else
m_btnMgr.show(m_mainBtnUsb);
m_btnMgr.show(m_mainBtnWii);
break;
default:
if(show_gamecube)
m_btnMgr.show(m_mainBtnDML);
m_btnMgr.show(m_mainBtnGamecube);
else if(show_channel)
m_btnMgr.show(m_mainBtnChannel);
else if(show_emu)
m_btnMgr.show(m_mainBtnEmu);
m_btnMgr.show(m_mainBtnPlugin);
else if(show_homebrew)
m_btnMgr.show(m_mainBtnHomebrew);
else
m_btnMgr.show(m_mainBtnUsb);
m_btnMgr.show(m_mainBtnWii);
break;
}
@ -120,7 +120,7 @@ start_main:
{
case COVERFLOW_WII:
case COVERFLOW_GAMECUBE:
// m_btnMgr.setText(m_mainLblInit, _t("main2", L"Sorry, could not find any games. Please click Install to install games or Select partition to change the device/partition where your games are."));
// m_btnMgr.setText(m_mainLblInit, _t("main2", L"No games found! Please select partition to change the device/partition or click Install to install a game."));
m_btnMgr.setText(m_mainLblInit, _t("main2", L"Welcome to WiiFlow. I have not found any games. Click Install to install games, or Select partition to select your partition type."));
m_btnMgr.show(m_mainBtnInit);
m_btnMgr.show(m_mainBtnInit2);
@ -129,7 +129,6 @@ start_main:
case COVERFLOW_CHANNEL:
if(NANDemuView)
{
//"sorry, could not find your emu NAND. Would you like me to create one for you?
_hideMain();
if(!_AutoCreateNand())
{
@ -141,13 +140,13 @@ start_main:
}
break;
case COVERFLOW_HOMEBREW:
// m_btnMgr.setText(m_mainLblInit, _t("main4", L"Sorry, could not find any homebrew apps. Try changing the partition to select your device/partition where they are."));
// m_btnMgr.setText(m_mainLblInit, _t("main4", L"No homebrew apps found! Try changing the partition to select the correct device/partition."));
m_btnMgr.setText(m_mainLblInit, _t("main4", L"Welcome to WiiFlow. I have not found any homebrew apps. Select partition to select your partition type."));
m_btnMgr.show(m_mainBtnInit2);
m_btnMgr.show(m_mainLblInit);
break;
case COVERFLOW_PLUGIN:
// m_btnMgr.setText(m_mainLblInit, _t("main5", L"Sorry, could not find any roms or items for your plugin. Try changing the partition to select your device/partition where they are."));
// m_btnMgr.setText(m_mainLblInit, _t("main5", L"No roms/items for your plugin found! Try changing the partition to select the correct device/partition."));
m_btnMgr.setText(m_mainLblInit, _t("main5", L"Welcome to WiiFlow. I have not found any plugins. Select partition to select your partition type."));
m_btnMgr.show(m_mainBtnInit2);
m_btnMgr.show(m_mainLblInit);
@ -250,7 +249,7 @@ int CMenu::main(void)
show_homebrew = (!m_cfg.getBool(HOMEBREW_DOMAIN, "disable", false) && (parental_homebrew || !m_locked));
show_channel = !m_cfg.getBool("GENERAL", "hidechannel", false);
show_emu = !m_cfg.getBool(PLUGIN_DOMAIN, "disable", false);
show_gamecube = (m_show_dml || m_devo_installed || m_nintendont_installed);
show_gamecube = m_show_gc;
m_use_source = m_cfg.getBool("GENERAL", "use_source", true);
bool bheld = false;
bool bUsed = false;
@ -295,6 +294,7 @@ int CMenu::main(void)
WDVD_GetCoverStatus(&disc_check);
/* Main Loop */
_mainLoopCommon(true);
//this will make the source menu/flow display. what happens when a sourceflow cover is selected is taken care of later.
if(bheld && !BTN_B_HELD)//if button b was held and now released
{
bheld = false;
@ -370,7 +370,7 @@ int CMenu::main(void)
if(BTN_B_HELD)
bUsed = true;
}
else if(m_btnMgr.selected(m_mainBtnChannel) || m_btnMgr.selected(m_mainBtnUsb) || m_btnMgr.selected(m_mainBtnDML) || m_btnMgr.selected(m_mainBtnHomebrew) || m_btnMgr.selected(m_mainBtnEmu))
else if(m_btnMgr.selected(m_mainBtnChannel) || m_btnMgr.selected(m_mainBtnWii) || m_btnMgr.selected(m_mainBtnGamecube) || m_btnMgr.selected(m_mainBtnHomebrew) || m_btnMgr.selected(m_mainBtnPlugin))
{
if(m_current_view == COVERFLOW_WII)
m_current_view = show_gamecube ? COVERFLOW_GAMECUBE : (show_channel ? COVERFLOW_CHANNEL : (show_emu ? COVERFLOW_PLUGIN : (show_homebrew ? COVERFLOW_HOMEBREW : COVERFLOW_WII)));
@ -453,7 +453,7 @@ int CMenu::main(void)
/* Create Fake Header */
dir_discHdr hdr;
memset(&hdr, 0, sizeof(dir_discHdr));
memcpy(&hdr.id, "dvddvd", 6);
memcpy(&hdr.id, "dvddvd", 6);//only the id is used for a disc and this is changed in _launchGame.
/* Boot the Disc */
_launchGame(&hdr, true);
_showMain();
@ -501,7 +501,7 @@ int CMenu::main(void)
_initCF();
}
//Events to show source menu or sourceflow if B on mode icon
else if(m_btnMgr.selected(m_mainBtnChannel) || m_btnMgr.selected(m_mainBtnUsb) || m_btnMgr.selected(m_mainBtnDML)|| m_btnMgr.selected(m_mainBtnEmu) || m_btnMgr.selected(m_mainBtnHomebrew))
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))
{
if(!m_use_source)//only use if B to source menu not enabled
{
@ -747,41 +747,41 @@ int CMenu::main(void)
if(show_channel)
m_btnMgr.show(m_mainBtnChannel);
else if(show_emu)
m_btnMgr.show(m_mainBtnEmu);
m_btnMgr.show(m_mainBtnPlugin);
else if(show_homebrew)
m_btnMgr.show(m_mainBtnHomebrew);
else
m_btnMgr.show(m_mainBtnUsb);
m_btnMgr.show(m_mainBtnWii);
break;
case COVERFLOW_CHANNEL:
if(show_emu)
m_btnMgr.show(m_mainBtnEmu);
m_btnMgr.show(m_mainBtnPlugin);
else if(show_homebrew)
m_btnMgr.show(m_mainBtnHomebrew);
else
m_btnMgr.show(m_mainBtnUsb);
m_btnMgr.show(m_mainBtnWii);
break;
case COVERFLOW_PLUGIN:
if(show_homebrew)
m_btnMgr.show(m_mainBtnHomebrew);
else
m_btnMgr.show(m_mainBtnUsb);
m_btnMgr.show(m_mainBtnWii);
break;
case COVERFLOW_HOMEBREW:
case COVERFLOW_MAX:
m_btnMgr.show(m_mainBtnUsb);
m_btnMgr.show(m_mainBtnWii);
break;
default:
if(show_gamecube)
m_btnMgr.show(m_mainBtnDML);
m_btnMgr.show(m_mainBtnGamecube);
else if(show_channel)
m_btnMgr.show(m_mainBtnChannel);
else if(show_emu)
m_btnMgr.show(m_mainBtnEmu);
m_btnMgr.show(m_mainBtnPlugin);
else if(show_homebrew)
m_btnMgr.show(m_mainBtnHomebrew);
else
m_btnMgr.show(m_mainBtnUsb);
m_btnMgr.show(m_mainBtnWii);
}
m_btnMgr.show(m_mainLblUser[2]);
m_btnMgr.show(m_mainLblUser[3]);
@ -790,9 +790,9 @@ int CMenu::main(void)
{
m_btnMgr.hide(m_mainBtnHomebrew);
m_btnMgr.hide(m_mainBtnChannel);
m_btnMgr.hide(m_mainBtnUsb);
m_btnMgr.hide(m_mainBtnDML);
m_btnMgr.hide(m_mainBtnEmu);
m_btnMgr.hide(m_mainBtnWii);
m_btnMgr.hide(m_mainBtnGamecube);
m_btnMgr.hide(m_mainBtnPlugin);
m_btnMgr.hide(m_mainLblUser[2]);
m_btnMgr.hide(m_mainLblUser[3]);
}
@ -852,14 +852,14 @@ void CMenu::_initMainMenu()
TexData texInfoS;
TexData texConfig;
TexData texConfigS;
TexData texDML;
TexData texDMLs;
TexData texEmu;
TexData texEmus;
TexData texGamecube;
TexData texGamecubes;
TexData texPlugin;
TexData texPlugins;
TexData texDVD;
TexData texDVDs;
TexData texUsb;
TexData texUsbs;
TexData texWii;
TexData texWiis;
TexData texChannel;
TexData texChannels;
TexData texHomebrew;
@ -887,12 +887,12 @@ void CMenu::_initMainMenu()
TexHandle.fromImageFile(texConfigS, fmt("%s/btnconfigs.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texDVD, fmt("%s/btndvd.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texDVDs, fmt("%s/btndvds.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texUsb, fmt("%s/btnusb.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texUsbs, fmt("%s/btnusbs.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texDML, fmt("%s/btndml.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texDMLs, fmt("%s/btndmls.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texEmu, fmt("%s/btnemu.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texEmus, fmt("%s/btnemus.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texWii, fmt("%s/btnusb.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texWiis, fmt("%s/btnusbs.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texGamecube, fmt("%s/btndml.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texGamecubes, fmt("%s/btndmls.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texPlugin, fmt("%s/btnemu.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texPlugins, fmt("%s/btnemus.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texChannel, fmt("%s/btnchannel.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texChannels, fmt("%s/btnchannels.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texHomebrew, fmt("%s/btnhomebrew.png", m_imgsDir.c_str()));
@ -913,9 +913,9 @@ void CMenu::_initMainMenu()
m_mainBtnQuit = _addPicButton("MAIN/QUIT_BTN", texQuit, texQuitS, 570, 400, 48, 48);
m_mainBtnChannel = _addPicButton("MAIN/CHANNEL_BTN", texChannel, texChannels, 520, 400, 48, 48);
m_mainBtnHomebrew = _addPicButton("MAIN/HOMEBREW_BTN", texHomebrew, texHomebrews, 520, 400, 48, 48);
m_mainBtnUsb = _addPicButton("MAIN/USB_BTN", texUsb, texUsbs, 520, 400, 48, 48);
m_mainBtnDML = _addPicButton("MAIN/DML_BTN", texDML, texDMLs, 520, 400, 48, 48);
m_mainBtnEmu = _addPicButton("MAIN/EMU_BTN", texEmu, texEmus, 520, 400, 48, 48);
m_mainBtnWii = _addPicButton("MAIN/USB_BTN", texWii, texWiis, 520, 400, 48, 48);
m_mainBtnGamecube = _addPicButton("MAIN/DML_BTN", texGamecube, texGamecubes, 520, 400, 48, 48);
m_mainBtnPlugin = _addPicButton("MAIN/EMU_BTN", texPlugin, texPlugins, 520, 400, 48, 48);
m_mainBtnDVD = _addPicButton("MAIN/DVD_BTN", texDVD, texDVDs, 470, 400, 48, 48);
m_mainBtnNext = _addPicButton("MAIN/NEXT_BTN", texNext, texNextS, 540, 146, 80, 80);
m_mainBtnPrev = _addPicButton("MAIN/PREV_BTN", texPrev, texPrevS, 20, 146, 80, 80);
@ -969,9 +969,9 @@ void CMenu::_initMainMenu()
_setHideAnim(m_mainBtnQuit, "MAIN/QUIT_BTN", 0, 40, 0.f, 0.f);
_setHideAnim(m_mainBtnChannel, "MAIN/CHANNEL_BTN", 0, 40, 0.f, 0.f);
_setHideAnim(m_mainBtnHomebrew, "MAIN/HOMEBREW_BTN", 0, 40, 0.f, 0.f);
_setHideAnim(m_mainBtnUsb, "MAIN/USB_BTN", 0, 40, 0.f, 0.f);
_setHideAnim(m_mainBtnDML, "MAIN/DML_BTN", 0, 40, 0.f, 0.f);
_setHideAnim(m_mainBtnEmu, "MAIN/EMU_BTN", 0, 40, 0.f, 0.f);
_setHideAnim(m_mainBtnWii, "MAIN/USB_BTN", 0, 40, 0.f, 0.f);
_setHideAnim(m_mainBtnGamecube, "MAIN/DML_BTN", 0, 40, 0.f, 0.f);
_setHideAnim(m_mainBtnPlugin, "MAIN/EMU_BTN", 0, 40, 0.f, 0.f);
_setHideAnim(m_mainBtnDVD, "MAIN/DVD_BTN", 0, 40, 0.f, 0.f);
_setHideAnim(m_mainBtnFavoritesOn, "MAIN/FAVORITES_ON", 0, 40, 0.f, 0.f);
_setHideAnim(m_mainBtnFavoritesOff, "MAIN/FAVORITES_OFF", 0, 40, 0.f, 0.f);

View File

@ -171,7 +171,7 @@ void CMenu::_Paths(void)
}
else if (BTN_A_PRESSED && paths_curPage == 2)
{
/*if (m_btnMgr.selected(m_pathsBtn1))
if (m_btnMgr.selected(m_pathsBtn1))
{
_hidePaths();
currentPartition = m_cfg.getInt(WII_DOMAIN, "partition", USB1);
@ -202,29 +202,30 @@ void CMenu::_Paths(void)
{
_hidePaths();
currentPartition = m_cfg.getInt(GC_DOMAIN, "partition", USB1);
string gameDir(fmt(m_usb_gc_gamesDir.c_str(), DeviceName[currentPartition]));
string gameDir(fmt(gc_games_dir, DeviceName[currentPartition]));
path = _FolderExplorer(gameDir.c_str());
//can only change usb1 folder name.
if(strlen(path) > 0 && (strncmp(path, "usb1:/", 6) == 0))
if(strlen(path) > 0)
{
if(strncmp(path, "sd:/", 4) == 0)
m_cfg.setInt(GC_DOMAIN, "partition", 0);
else
{
//might add error check to make sure its first partition and FAT only
const char *partval = &path[3];
m_cfg.setInt(GC_DOMAIN, "partition", atoi(partval));
}
char tmpPath[MAX_FAT_PATH];
strncpy(tmpPath, strchr(path, '/')+1, MAX_FAT_PATH-1);
m_cfg.setString(GC_DOMAIN, "dir_usb_games", tmpPath);
m_usb_gc_gamesDir = fmt("%%s:/%s", tmpPath);
//m_usb_gc_gamesDir = fmt("%%s:/%s", m_cfg.getString(GC_DOMAIN, "dir_usb_games", "games").c_str());
strcpy(tmpPath, "%s");
strcat(tmpPath, strchr(path, ':'));
m_cfg.setString(GC_DOMAIN, "gc_games_dir", tmpPath);
memset(gc_games_dir, 0, 64);
strncpy(gc_games_dir, tmpPath, 64);
m_cfg.setBool(GC_DOMAIN, "update_cache", true);
if(m_cfg.getBool(GC_DOMAIN, "source"))
m_load_view = true;
}
_showPaths();
}*/
}
if (m_btnMgr.selected(m_pathsBtn3))
{
_hidePaths();

View File

@ -13,9 +13,9 @@ s16 m_sourceBtnBack;
s16 m_sourceLblTitle;
s16 m_sourceBtnSource[12];
s16 m_sourceLblUser[4];
s16 m_sourceBtnDML;
s16 m_sourceBtnEmu;
s16 m_sourceBtnUsb;
s16 m_sourceBtnGamecube;
s16 m_sourceBtnPlugin;
s16 m_sourceBtnWii;
s16 m_sourceBtnChannel;
s16 m_sourceBtnHomebrew;
@ -40,9 +40,9 @@ void CMenu::_hideSource(bool instant)
m_btnMgr.hide(m_sourceBtnBack, instant);
m_btnMgr.hide(m_sourceBtnHomebrew, instant);
m_btnMgr.hide(m_sourceBtnChannel, instant);
m_btnMgr.hide(m_sourceBtnUsb, instant);
m_btnMgr.hide(m_sourceBtnDML, instant);
m_btnMgr.hide(m_sourceBtnEmu, instant);
m_btnMgr.hide(m_sourceBtnWii, instant);
m_btnMgr.hide(m_sourceBtnGamecube, instant);
m_btnMgr.hide(m_sourceBtnPlugin, instant);
u8 i;
for(i = 0; i < ARRAY_SIZE(m_sourceLblUser); ++i)
@ -195,7 +195,7 @@ void CMenu::_createSFList()
string source = m_source.getString(btn_selected, "source","");
if(source == "")
continue;
if(source == "dml" && !m_show_dml && !m_devo_installed && !m_nintendont_installed)
if(source == "dml" && !m_show_gc)
continue;
else if(source == "emunand" && !show_channel)
continue;
@ -254,7 +254,16 @@ void CMenu::_sourceFlow()
memset(btn_selected, 0, 256);
strncpy(btn_selected, fmt("BUTTON_%i", hdr->settings[0]), 255);
string source = m_source.getString(btn_selected, "source", "");
_clearSources();
_clearSources();// may have to move this
/*if(source == "wii")
{
m_cfg.setBool(WII_DOMAIN, "source", true);
if(sf_mode == 0)
{
m_current_view = COVERFLOW_WII;
m_catStartPage = m_source.getInt(btn_selected, "cat_page", 1);
}
}*/
if(source == "wii")
{
m_current_view = COVERFLOW_WII;
@ -333,7 +342,8 @@ void CMenu::_sourceFlow()
m_clearCats = false;
}
}
m_sourceflow = false;
m_sourceflow = false;// do something with this when in muilti
//no autoboot if multi mode. may have to make sure autoboot plugins are hidden from flow when multi is on.
/* autoboot */
const char *autoboot = m_source.getString(btn_selected, "autoboot", "").c_str();
if(autoboot != NULL && autoboot[0] != '\0')
@ -393,9 +403,9 @@ bool CMenu::_Source()
{
m_btnMgr.show(m_sourceBtnHomebrew);
m_btnMgr.show(m_sourceBtnChannel);
m_btnMgr.show(m_sourceBtnUsb);
m_btnMgr.show(m_sourceBtnDML);
m_btnMgr.show(m_sourceBtnEmu);
m_btnMgr.show(m_sourceBtnWii);
m_btnMgr.show(m_sourceBtnGamecube);
m_btnMgr.show(m_sourceBtnPlugin);
}
else
{
@ -522,15 +532,15 @@ bool CMenu::_Source()
else if(BTN_A_PRESSED && !sourceIniLoaded)
{
// check default source buttons when no source_menu.ini
if(m_btnMgr.selected(m_sourceBtnUsb))
if(m_btnMgr.selected(m_sourceBtnWii))
{
_clearSources();
m_cfg.setBool(WII_DOMAIN, "source", true);
exitSource = true;
}
if(m_btnMgr.selected(m_sourceBtnDML))
if(m_btnMgr.selected(m_sourceBtnGamecube))
{
if(!m_show_dml && !m_devo_installed && !m_nintendont_installed)
if(!m_show_gc)
_showSourceNotice();
else
{
@ -561,7 +571,7 @@ bool CMenu::_Source()
exitSource = true;
}
}
if(m_btnMgr.selected(m_sourceBtnEmu))
if(m_btnMgr.selected(m_sourceBtnPlugin))
{
if(!show_emu)
_showSourceNotice();
@ -596,7 +606,7 @@ bool CMenu::_Source()
}
else if(source == "dml")
{
if(!m_show_dml && !m_devo_installed && !m_nintendont_installed)
if(!m_show_gc)
_showSourceNotice();
else
{
@ -737,7 +747,7 @@ bool CMenu::_Source()
}
else if(source == "dml")
{
if(m_show_dml || m_devo_installed || m_nintendont_installed)
if(m_show_gc)
m_cfg.setBool(GC_DOMAIN, "source", !m_cfg.getBool(GC_DOMAIN, "source"));
}
else if(source == "emunand")
@ -832,23 +842,23 @@ void CMenu::_clearSources(void)
void CMenu::_initSourceMenu()
{
TexData texDML;
TexData texDMLs;
TexData texEmu;
TexData texEmus;
TexData texUsb;
TexData texUsbs;
TexData texGamecube;
TexData texGamecubes;
TexData texPlugin;
TexData texPlugins;
TexData texWii;
TexData texWiis;
TexData texChannel;
TexData texChannels;
TexData texHomebrew;
TexData texHomebrews;
TexHandle.fromImageFile(texUsb, fmt("%s/btnusb.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texUsbs, fmt("%s/btnusbs.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texDML, fmt("%s/btndml.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texDMLs, fmt("%s/btndmls.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texEmu, fmt("%s/btnemu.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texEmus, fmt("%s/btnemus.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texWii, fmt("%s/btnusb.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texWiis, fmt("%s/btnusbs.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texGamecube, fmt("%s/btndml.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texGamecubes, fmt("%s/btndmls.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texPlugin, fmt("%s/btnemu.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texPlugins, fmt("%s/btnemus.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texChannel, fmt("%s/btnchannel.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texChannels, fmt("%s/btnchannels.png", m_imgsDir.c_str()));
TexHandle.fromImageFile(texHomebrew, fmt("%s/btnhomebrew.png", m_imgsDir.c_str()));
@ -865,9 +875,9 @@ void CMenu::_initSourceMenu()
m_sourceBtnChannel = _addPicButton("SOURCE/CHANNEL_BTN", texChannel, texChannels, 265, 260, 48, 48);
m_sourceBtnHomebrew = _addPicButton("SOURCE/HOMEBREW_BTN", texHomebrew, texHomebrews, 325, 260, 48, 48);
m_sourceBtnUsb = _addPicButton("SOURCE/USB_BTN", texUsb, texUsbs, 235, 200, 48, 48);
m_sourceBtnDML = _addPicButton("SOURCE/DML_BTN", texDML, texDMLs, 295, 200, 48, 48);
m_sourceBtnEmu = _addPicButton("SOURCE/EMU_BTN", texEmu, texEmus, 355, 200, 48, 48);
m_sourceBtnWii = _addPicButton("SOURCE/USB_BTN", texWii, texWiis, 235, 200, 48, 48);
m_sourceBtnGamecube = _addPicButton("SOURCE/DML_BTN", texGamecube, texGamecubes, 295, 200, 48, 48);
m_sourceBtnPlugin = _addPicButton("SOURCE/EMU_BTN", texPlugin, texPlugins, 355, 200, 48, 48);
themeName = m_cfg.getString("GENERAL", "theme", "default");
if(!m_source.load(fmt("%s/%s/%s", m_sourceDir.c_str(), themeName.c_str(), SOURCE_FILENAME)))
@ -903,9 +913,9 @@ void CMenu::_initSourceMenu()
}
_setHideAnim(m_sourceBtnChannel, "SOURCE/CHANNEL_BTN", 0, 40, 0.f, 0.f);
_setHideAnim(m_sourceBtnHomebrew, "SOURCE/HOMEBREW_BTN", 0, 40, 0.f, 0.f);
_setHideAnim(m_sourceBtnUsb, "SOURCE/USB_BTN", 0, 40, 0.f, 0.f);
_setHideAnim(m_sourceBtnDML, "SOURCE/DML_BTN", 0, 40, 0.f, 0.f);
_setHideAnim(m_sourceBtnEmu, "SOURCE/EMU_BTN", 0, 40, 0.f, 0.f);
_setHideAnim(m_sourceBtnWii, "SOURCE/USB_BTN", 0, 40, 0.f, 0.f);
_setHideAnim(m_sourceBtnGamecube, "SOURCE/DML_BTN", 0, 40, 0.f, 0.f);
_setHideAnim(m_sourceBtnPlugin, "SOURCE/EMU_BTN", 0, 40, 0.f, 0.f);
_setHideAnim(m_sourceLblTitle, "SOURCE/TITLE", 0, 0, -2.f, 0.f);
_setHideAnim(m_sourceLblNotice, "SOURCE/NOTICE", 0, 0, 1.f, 0.f);
_setHideAnim(m_sourceLblPage, "SOURCE/PAGE_BTN", 0, 0, 1.f, -1.f);

File diff suppressed because it is too large Load Diff

View File

@ -170,7 +170,7 @@ int CMenu::_GCgameInstaller()
if(skip)
rsize = 8192; // Use small chunks when skip on error is enabled
m_gcdump.Init(skip, comp, wexf, alig, nretry, rsize, DeviceName[currentPartition]);
m_gcdump.Init(skip, comp, wexf, alig, nretry, rsize, DeviceName[currentPartition], gc_games_dir);
int ret;
m_progress = 0.f;
@ -235,7 +235,7 @@ int CMenu::_GCcopyGame(void *obj)
source[299] = '\0';
char folder[50];
strncpy(folder, fmt(GC_GAMES_DIR, DeviceName[SD]), sizeof(folder));
strncpy(folder, fmt(gc_games_dir, DeviceName[SD]), sizeof(folder));
folder[49] = '\0';
char target[300];
@ -265,9 +265,9 @@ bool CMenu::_wbfsOp(CMenu::WBFS_OP op)
GameID[6] = '\0';
bool done = false;
bool upd_usb = false;
bool upd_dml = false;
bool upd_emu = false;
bool upd_wii = false;
bool upd_gc = false;
bool upd_plgin = false;
bool upd_chan = false;
bool out = false;
const dir_discHdr *CF_Hdr = CoverFlow.getHdr();
@ -346,7 +346,7 @@ bool CMenu::_wbfsOp(CMenu::WBFS_OP op)
strncpy(cfPos, GameID, 6);
m_btnMgr.setText(m_wbfsLblDialog, wfmt(_fmt("wbfsop6", L"Installing [%s] %s..."), GameID, wii_hdr.title));
done = true;
upd_usb = true;
upd_wii = true;
m_thrdWorking = true;
m_thrdProgress = 0.f;
m_thrdMessageAdded = false;
@ -364,7 +364,7 @@ bool CMenu::_wbfsOp(CMenu::WBFS_OP op)
}
strncpy(cfPos, GameID, 6);
done = true;
upd_dml = true;
upd_gc = true;
m_thrdWorking = true;
m_thrdProgress = 0.f;
//LWP_CreateThread(&thread, (void *(*)(void *))_GCgameInstaller, (void *)this, 0, 8 * 1024, 64);
@ -396,25 +396,25 @@ bool CMenu::_wbfsOp(CMenu::WBFS_OP op)
{
strncpy(GC_Path, CF_Hdr->path, 1023);
*strrchr(GC_Path, '/') = '\0'; //iso path
const char *cmp = fmt(GC_GAMES_DIR, DeviceName[currentPartition]);
const char *cmp = fmt(gc_games_dir, DeviceName[currentPartition]);
if(strcasecmp(GC_Path, cmp) == 0)
fsop_deleteFile(CF_Hdr->path);
else
fsop_deleteFolder(GC_Path);
}
upd_dml = true;
upd_gc = true;
}
else if(CF_Hdr->type == TYPE_PLUGIN)
{
fsop_deleteFile(CF_Hdr->path);
upd_emu = true;
upd_plgin = true;
}
else if(CF_Hdr->type == TYPE_WII_GAME)
{
DeviceHandle.OpenWBFS(currentPartition);
WBFS_RemoveGame((u8*)&CF_Hdr->id, (char*)&CF_Hdr->path);
WBFS_Close();
upd_usb = true;
upd_wii = true;
}
else if(CF_Hdr->type == TYPE_CHANNEL && !m_cfg.getBool(CHANNEL_DOMAIN, "disable", true))
{
@ -469,7 +469,7 @@ bool CMenu::_wbfsOp(CMenu::WBFS_OP op)
strncpy(cfPos, CF_Hdr->id, 6);
m_btnMgr.setText(m_wbfsLblDialog, wfmt(_fmt("wbfsop10", L"Copying [%s] %s..."), CF_Hdr->id, CoverFlow.getTitle().toUTF8().c_str()));
done = true;
upd_dml = true;
upd_gc = true;
m_thrdWorking = true;
m_thrdProgress = 0.f;
m_thrdMessageAdded = false;
@ -510,11 +510,11 @@ bool CMenu::_wbfsOp(CMenu::WBFS_OP op)
{
//m_gameList.SetLanguage(m_loc.getString(m_curLanguage, "gametdb_code", "EN").c_str());
_showWaitMessage();
if(upd_dml)
if(upd_gc)
UpdateCache(COVERFLOW_GAMECUBE);
if(upd_usb)
if(upd_wii)
UpdateCache(COVERFLOW_WII);
if(upd_emu)
if(upd_plgin)
UpdateCache(COVERFLOW_PLUGIN);
if(upd_chan)
UpdateCache(COVERFLOW_CHANNEL);

View File

@ -7,8 +7,7 @@ extern "C" {
#endif
enum {
AUTOMIOS = 0,
DEVOLUTION,
DEVOLUTION = 0,
NINTENDONT
};

View File

@ -1,408 +1,410 @@

[ENGLISH]
about1=Original Loader By:\n%s
about2=Original GUI By:\n%s
about4=Thanks To:\n%s
about6=Current Developers:\n%s
about7=Past Developers:\n%s
about8=Bits of Code Obtained From:\n%s
about9=Supporting Websites:\n%s
about10=Help Guide
alphabetically=alphabetically
appname=%s v%s
aspect169=Force 16:9
aspect43=Force 4:3
aspectDef=Default
bootmii=BootMii
bycontrollers=By Controllers
byesrb=By ESRB
bygameid=By Game ID
bylastplayed=By Last Played
byplaycount=By Play Count
byplayers=By Players
bywifiplayers=By Wifi Players
cat1=Select Categories
cat2=Clear
cd1=Back
cd2=Erase
cd3=Age Lock
cfg1=Settings
cfg10=Back
cfg11=USB Saves Emulation
cfg12=NAND Emulation
cfg13=NAND Emulation Settings
cfg14=Set
cfg15=Plugins
cfg16=Select
cfg3=Download covers & titles
cfg4=Download
cfg5=Parental control
cfg6=Unlock
cfg7=Set code
cfga2=Install game
cfga3=Install
cfga6=Language
cfga7=Theme
cfgb1=Ocarina
cfgb2=Default GC game loader
cfgb3=Default video mode
cfgb4=Default game language
cfgb5=Default DML video mode
cfgb6=Default DML game language
cfgbnr1=Download Cover
cfgbnr2=Delete Cover
cfgbnr3=Download Custom Banner
cfgbnr4=Delete Banner
cfgbnr5=Download
cfgbnr6=Delete
cfgbt1=Startup Settings
cfgbt2=Force Load cIOS
cfgbt3=Force cIOS Revision
cfgbt4=USB Port
cfgbt5=Show source menu on boot
cfgbt6=Enable Multisource Features
cfgbt7=Start FTP Server on boot
cfgc1=Exit To
cfgc2=Adjust TV width
cfgc3=Adjust TV height
cfgc4=Adjust Coverflow
cfgc5=Go
cfgc6=Horizontal offset
cfgc7=Vertical offset
cfgc8=Startup Settings
cfgc9=Manage Languages
cfgd4=Path Manager
cfgd5=Save favorite mode state
cfgd7=Show categories on boot
cfgg1=Settings
cfgg10=IOS
cfgg12=Download cover
cfgg13=Download
cfgg14=Patch video modes
cfgg15=Cheat Codes
cfgg16=Select
cfgg17=Categories
cfgg18=Hook Type
cfgg2=Video mode
cfgg21=Return To Channel
cfgg22=Debugger
cfgg23=Downloading cheat file....
cfgg24=NAND Emulation
cfgg25=Password incorrect
cfgg26=Disable IOS Reload block
cfgg27=Aspect Ratio
cfgg28=NMM
cfgg29=No DVD Patch
cfgg3=Language
cfgg30=Extract Save from NAND
cfgg31=Extract
cfgg32=Flash Save to NAND
cfgg33=Flash
cfgg34=Devolution Memcard Emulator
cfgg35=GameCube Loader
cfgg36=Widescreen Patch
cfgg37=Boot Apploader
cfgg38=Activity LED
cfgg39=DM Screenshot Feature
cfgg40=Manage Cover and Banner
cfgg41=Manage
cfgg4=Patch country strings
cfgg5=Ocarina
cfgg7=Vipatch
cfgg8=Back
cfglng1=Manage Languages
cfglng2=Get Languages
cfglng3=Select File
cfglng4=Download selected File
cfgne1=NAND Emulation
cfgne2=Extract Game Saves
cfgne3=All
cfgne4=Missing
cfgne5=Extract NAND
cfgne6=Start
cfgne7=Back
cfgne8=No valid FAT partition found for NAND Emulation!
cfgne9=Current file: %s
cfgne10=NAND Emulation Settings
cfgne11=Overall Progress:
cfgne12=NAND Extractor
cfgne13=Game Save Extractor
cfgne14=Extracted: %d saves / %d files / %d folders
cfgne15=Extracted: %d files / %d folders
cfgne16=Total size: %uMB (%d blocks)
cfgne17=Total size: %uKB (%d blocks)
cfgne18=Listing game saves to extract...
cfgne19=Extraction finished!
cfgne20=Extraction failed!
cfgne22=Disable NAND Emulation
cfgne23=Welcome to WiiFlow. I have not found a valid NAND for NAND Emulation. Click Extract to extract your NAND, or click disable to disable NAND Emulation.
cfgne24=Extract save
cfgne25=Create new save
cfgne26=A save file for this game was created on real NAND. Extract existing save file from real NAND or create new file for NAND Emulation?
cfgne27=Calculating space needed for extraction...
cfgne28=Game Save Flasher
cfgne29=Flashed: %d saves / %d files / %d folders
cfgne30=Flashing save files finished!
cfgne31=Select Partition
cfgne32=Change Nand
cfgne33=Change Saves Nand
cfgne34=Set
cfgne35=Back
cfgne36=Path =
cfgne37=Select Preset Nand
cfgne38=Empty
cfgp1=Game Partition
cfgp2=Flat Covers
cfgp3=Init network on boot
cfgp4=Banners Cache
cfgp5=Wii Games
cfgp6=GC Games
cfgp7=Music
cfgp8=Box Covers
cfgp9=Custom Banners
cfgpl1=Select Plugins
cfgs1=Music volume
cfgs2=GUI sound volume
cfgs3=Coverflow sound volume
cfgs4=Game sound volume
cfgsm1=Source Menu Settings
cfgsm2=Enable B To Source Menu
cfgsm3=Enable Sourceflow
cfgsm4=Sourceflow Smallbox
cfgsm5=Clear Sourceflow Cache
cfgsm6=B On Mode To Source
cfgsm7=Manage Source Menu
cheat1=Back
cheat2=Apply
cheat3=Cheat file for game not found.
cheat4=Download not found.
commodore=Commodore 64
custom=Custom
def=Default
disabled=Disabled
dl1=Cancel
dl10=Please donate\nto GameTDB.com
dl12=GameTDB
dl13=Download order
dl14=Select regions to check for covers:
dl15=Cover download settings
dl16=Set
dl17=Cover download settings
dl18=Back
dl19=Original only
dl2=Back
dl20=Original/Original
dl21=Original/Custom
dl22=Custom/Original
dl23=Custom/Custom
dl24=Custom only
dl25=All
dl3=All
dl4=Missing
dl5=Download
dl6=Download
dl8=Covers
dlmsg1=Initializing network...
dlmsg10=Making %s
dlmsg11=Downloading...
dlmsg12=Download failed
dlmsg13=Saving...
dlmsg14=Done.
dlmsg15=Saving failed!
dlmsg16=Couldn't read file
dlmsg17=No new updates found.
dlmsg18=boot.dol not found at default path
dlmsg19=New Update available!
dlmsg2=Network initialization failed
dlmsg20=No version information found.
dlmsg21=WiiFlow will now exit to allow the update to take effect.
dlmsg22=Updating application directory...
dlmsg23=Updating data directory...
dlmsg24=Extracting...
dlmsg25=Extraction must have failed! Renaming the backup to boot.dol
dlmsg26=Updating cache...
dlmsg27=Not enough memory!
dlmsg28=Running FTP Server on %s:%u
dlmsg29=FTP Server is currently stopped.
dlmsg3=Downloading from %s
dlmsg4=Saving %s
dlmsg5=%i/%i files downloaded
dlmsg6=Canceling...
dlmsg7=Listing covers to download...
dlmsg8=Full cover not found. Downloading from %s
dlmsg9=%i/%i files downloaded. %i are front covers only.
DMLdef=Default
DMLdefG=Game
DMLntsc=NTSC 480i
DMLpal=PAL 576i
DMLpal60=PAL 480i
DMLprog=NTSC 480p
DMLprogP=PAL 480p
errboot1=No cIOS found!\ncIOS d2x 249 base 56 and 250 base 57 are enough for all your games.
errboot2=Could not find a device to save configuration files on!
errboot3=Could not initialize the DIP module!
errboot4=No available partitions found!
errboot5=data_on_usb=yes and No available usb partitions for data!\nUsing SD.
errboot6=No available usb partitions for data and no SD inserted!\nExiting.
errgame1=Cannot find the game with ID: %s
errgame2=No cIOS found!
errgame4=Couldn't load IOS %i
errgame5=Enabling emu failed!
errgame6=Enabling emu after reload failed!
errgame7=WDVDGetCoverStatus Failed!
errgame8=Please insert a game disc.
errgame9=This is not a Wii or GC disc
errgame10=Set USB failed: %d
errneek1=Cannot launch neek2o. Verify your neek2o setup
exit_to=Exit To
ftp1=Start
ftp2=Stop
gameinfo1=Developer: %s
gameinfo2=Publisher: %s
gameinfo3=Region: %s
gameinfo4=Release Date: %i.%i.%i
gameinfo5=Genre: %s
gameinfo6=No Gameinfo
gametdb_code=EN
GC_Def=Default
GC_DM=DIOS-MIOS
GC_Devo=Devolution
GC_Auto=Auto
genesis=Sega Genesis
gm1=Play
gm2=Back
hbc=HBC
homebrew=Homebrew
home1=Settings
home2=Reload Cache
home3=Update
home4=Credits
home5=Exit To
home6=Help
home7=Install Game
home8=File Explorer
home9=Source Menu
home10=FTP Server
hooktype1=VBI
hooktype2=KPAD Read
hooktype3=Joypad
hooktype4=GXDraw
hooktype5=GXFlush
hooktype6=OSSleepThread
hooktype7=AXNextFrame
ios=IOS%i base %s
lngdef=Default
lngdut=Dutch
lngeng=English
lngfre=French
lngger=German
lngita=Italian
lngjap=Japanese
lngkor=Korean
lngsch=S. Chinese
lngspa=Spanish
lngsys=System
lngtch=T. Chinese
main1=Install Game
main2=Welcome to WiiFlow. I have not found any games. Click Install to install games, or Select partition to select your partition type.
main3=Select Partition
main4=Welcome to WiiFlow. I have not found any homebrew apps. Select partition to select your partition type.
main5=Welcome to WiiFlow. I have not found any plugins. Select partition to select your partition type.
mastersystem=Sega Master System
menu=System Menu
NANDfull=Full
NANDoff=Off
NANDpart=Partial
neek1=Launch Title with neek2o
neek2o=neek2o
neogeo=Neo-Geo
nes=Nintendo
nintendo64=Nintendo64
NMMdebug=Debug
NMMDef=Default
NMMOff=Disabled
NMMon=Enabled
NoDVDDef=Default
NoDVDOff=Disabled
NoDVDon=Enabled
off=Off
on=On
players= Players
prii=Priiloader
real=Real Nand
SaveDef=Default
SaveFull=Full
SaveFullG=Full
SaveOff=Off
SaveOffG=Off
SavePart=Game save
SavePartG=Game save
SaveReg=Regionswitch
SaveRegG=Regionswitch
snes=Super Nintendo
stup1=Select Source
stup2=** DISABLED **
sys1=Update WiiFlow
sys2=WiiFlow Version:
sys3=Cancel
sys4=Upgrade
sys7=Installed Version.
translation_author=
turbografx16=TurboGrafx-16
turbografxcd=TurboGrafx-CD
unknown=Unknown
viddef=Default
vidgame=Game
vidntsc=NTSC
vidp50=PAL 50Hz
vidp60=PAL 60Hz
vidprog=Progressive
vidsys=System
vmpall=All
vmpmore=More
vmpnone=None
vmpnormal=Normal
wad1=Install WAD
wad2=Go
wad3=Selected %s, after the installation you return to the explorer.
wad4=Installing WAD, please wait...
wad5=Installation error %i!
wad6=Installation finished with %i hash fails.
wbfsadddlg=Please insert the disc you want to copy, then click on Go.
wbfscpydlg=If you are sure you want to copy this game to SD, click on Go.
wbfsop1=Install Game
wbfsop10=Copying [%s] %s...
wbfsop11=Copy Game
wbfsop12=DVDError(%d)
wbfsop13=Game installed, but disc contains errors (%d)
wbfsop14=Game copied, press Back to boot the game.
wbfsop15=Calculating space needed for %s
wbfsop16=Installing %s
wbfsop17=Installing %s disc %d/2
wbfsop18=This is a Wii disc!
wbfsop19=This is not a Gamecube disc!
wbfsop2=Delete Game
wbfsop20=You inserted disc %d again!!
wbfsop21=This is a disc of another game!!
wbfsop22=Installing %s...\n Please insert disc 2 to continue
wbfsop23=Calculating space needed for %s...\n Please insert disc %d to continue
wbfsop24=Not enough space: %d blocks needed, %d available
wbfsop25=Disc read error!! Please clean the disc
wbfsop26=Disc ejected!! Please insert disc again
wbfsop4=Back
wbfsop5=Go
wbfsop6=Installing [%s] %s...
wbfsop7=Game deleted
wbfsop8=Game installed, press B to exit.
wbfsop9=An error has occurred
wbfsoperr1=Disc_Wait failed
wbfsoperr2=Disc_Open failed
wbfsoperr3=This is not a Wii disc!
wbfsoperr4=Game already installed
wbfsoperr5=Deleting this Channel is not allowed!
wbfsprogress=%i%%
wbfsremdlg=To permanently remove the game : %s, click on Go.
wifiplayers= Wifi Players
wii=Wii
wiichannels=Offical Wii Channels
wiiware=WiiWare

[ENGLISH]
about1=Original Loader By:\n%s
about2=Original GUI By:\n%s
about4=Thanks To:\n%s
about6=Current Developers:\n%s
about7=Past Developers:\n%s
about8=Bits of Code Obtained From:\n%s
about9=Supporting Websites:\n%s
about10=Help Guide
alphabetically=alphabetically
appname=%s v%s
aspect169=Force 16:9
aspect43=Force 4:3
aspectDef=Default
bootmii=BootMii
bycontrollers=By Controllers
byesrb=By ESRB
bygameid=By Game ID
bylastplayed=By Last Played
byplaycount=By Play Count
byplayers=By Players
bywifiplayers=By Wifi Players
cat1=Select Categories
cat2=Clear
cd1=Back
cd2=Erase
cd3=Age Lock
cfg1=Settings
cfg10=Back
cfg11=USB Saves Emulation
cfg12=NAND Emulation
cfg13=NAND Emulation Settings
cfg14=Set
cfg15=Plugins
cfg16=Select
cfg3=Download covers & titles
cfg4=Download
cfg5=Parental control
cfg6=Unlock
cfg7=Set code
cfga2=Install game
cfga3=Install
cfga6=Language
cfga7=Theme
cfgb1=Ocarina
cfgb2=Default GC game loader
cfgb3=Default video mode
cfgb4=Default game language
cfgb5=Default DML video mode
cfgb6=Default DML game language
cfgbnr1=Download Cover
cfgbnr2=Delete Cover
cfgbnr3=Download Custom Banner
cfgbnr4=Delete Banner
cfgbnr5=Download
cfgbnr6=Delete
cfgbt1=Startup Settings
cfgbt2=Force Load cIOS
cfgbt3=Force cIOS Revision
cfgbt4=USB Port
cfgbt5=Show source menu on boot
cfgbt6=Enable Multisource Features
cfgbt7=Start FTP Server on boot
cfgc1=Exit To
cfgc2=Adjust TV width
cfgc3=Adjust TV height
cfgc4=Adjust Coverflow
cfgc5=Go
cfgc6=Horizontal offset
cfgc7=Vertical offset
cfgc8=Startup Settings
cfgc9=Manage Languages
cfgd4=Path Manager
cfgd5=Save favorite mode state
cfgd7=Show categories on boot
cfgg1=Settings
cfgg10=IOS
cfgg12=Download cover
cfgg13=Download
cfgg14=Patch video modes
cfgg15=Cheat Codes
cfgg16=Select
cfgg17=Categories
cfgg18=Hook Type
cfgg2=Video mode
cfgg21=Return To Channel
cfgg22=Debugger
cfgg23=Downloading cheat file....
cfgg24=NAND Emulation
cfgg25=Password incorrect
cfgg26=Disable IOS Reload block
cfgg27=Aspect Ratio
cfgg28=NMM
cfgg29=No DVD Patch
cfgg3=Language
cfgg30=Extract Save from NAND
cfgg31=Extract
cfgg32=Flash Save to NAND
cfgg33=Flash
cfgg34=Devolution Memcard Emulator
cfgg35=GameCube Loader
cfgg36=Widescreen Patch
cfgg37=Boot Apploader
cfgg38=Activity LED
cfgg39=DM Screenshot Feature
cfgg40=Manage Cover and Banner
cfgg41=Manage
cfgg4=Patch country strings
cfgg5=Ocarina
cfgg7=Vipatch
cfgg8=Back
cfglng1=Manage Languages
cfglng2=Get Languages
cfglng3=Select File
cfglng4=Download selected File
cfgne1=NAND Emulation
cfgne2=Extract Game Saves
cfgne3=All
cfgne4=Missing
cfgne5=Extract NAND
cfgne6=Start
cfgne7=Back
cfgne8=No valid FAT partition found for NAND Emulation!
cfgne9=Current file: %s
cfgne10=NAND Emulation Settings
cfgne11=Overall Progress:
cfgne12=NAND Extractor
cfgne13=Game Save Extractor
cfgne14=Extracted: %d saves / %d files / %d folders
cfgne15=Extracted: %d files / %d folders
cfgne16=Total size: %uMB (%d blocks)
cfgne17=Total size: %uKB (%d blocks)
cfgne18=Listing game saves to extract...
cfgne19=Extraction finished!
cfgne20=Extraction failed!
cfgne22=Disable NAND Emulation
cfgne23=Welcome to WiiFlow. I have not found a valid NAND for NAND Emulation. Click Extract to extract your NAND, or click disable to disable NAND Emulation.
cfgne24=Extract save
cfgne25=Create new save
cfgne26=A save file for this game was created on real NAND. Extract existing save file from real NAND or create new file for NAND Emulation?
cfgne27=Calculating space needed for extraction...
cfgne28=Game Save Flasher
cfgne29=Flashed: %d saves / %d files / %d folders
cfgne30=Flashing save files finished!
cfgne31=Select Partition
cfgne32=Change Nand
cfgne33=Change Saves Nand
cfgne34=Set
cfgne35=Back
cfgne36=Path =
cfgne37=Select Preset Nand
cfgne38=Empty
cfgp1=Game Partition
cfgp2=Flat Covers
cfgp3=Init network on boot
cfgp4=Banners Cache
cfgp5=Wii Games
cfgp6=GC Games
cfgp7=Music
cfgp8=Box Covers
cfgp9=Custom Banners
cfgpl1=Select Plugins
cfgs1=Music volume
cfgs2=GUI sound volume
cfgs3=Coverflow sound volume
cfgs4=Game sound volume
cfgsm1=Source Menu Settings
cfgsm2=Enable B To Source Menu
cfgsm3=Enable Sourceflow
cfgsm4=Sourceflow Smallbox
cfgsm5=Clear Sourceflow Cache
cfgsm6=B On Mode To Source
cfgsm7=Manage Source Menu
cheat1=Back
cheat2=Apply
cheat3=Cheat file for game not found.
cheat4=Download not found.
commodore=Commodore 64
custom=Custom
def=Default
disabled=Disabled
dl1=Cancel
dl10=Please donate\nto GameTDB.com
dl12=GameTDB
dl13=Download order
dl14=Select regions to check for covers:
dl15=Cover download settings
dl16=Set
dl17=Cover download settings
dl18=Back
dl19=Original only
dl2=Back
dl20=Original/Original
dl21=Original/Custom
dl22=Custom/Original
dl23=Custom/Custom
dl24=Custom only
dl25=All
dl3=All
dl4=Missing
dl5=Download
dl6=Download
dl8=Covers
dlmsg1=Initializing network...
dlmsg10=Making %s
dlmsg11=Downloading...
dlmsg12=Download failed
dlmsg13=Saving...
dlmsg14=Done.
dlmsg15=Saving failed!
dlmsg16=Couldn't read file
dlmsg17=No new updates found.
dlmsg18=boot.dol not found at default path
dlmsg19=New Update available!
dlmsg2=Network initialization failed
dlmsg20=No version information found.
dlmsg21=WiiFlow will now exit to allow the update to take effect.
dlmsg22=Updating application directory...
dlmsg23=Updating data directory...
dlmsg24=Extracting...
dlmsg25=Extraction must have failed! Renaming the backup to boot.dol
dlmsg26=Updating cache...
dlmsg27=Not enough memory!
dlmsg28=Running FTP Server on %s:%u
dlmsg29=FTP Server is currently stopped.
dlmsg3=Downloading from %s
dlmsg4=Saving %s
dlmsg5=%i/%i files downloaded
dlmsg6=Canceling...
dlmsg7=Listing covers to download...
dlmsg8=Full cover not found. Downloading from %s
dlmsg9=%i/%i files downloaded. %i are front covers only.
DMLdef=Default
DMLdefG=Game
DMLntsc=NTSC 480i
DMLpal=PAL 576i
DMLpal60=PAL 480i
DMLprog=NTSC 480p
DMLprogP=PAL 480p
errboot1=No cIOS found!\ncIOS d2x 249 base 56 and 250 base 57 are enough for all your games.
errboot2=Could not find a device to save configuration files on!
errboot3=Could not initialize the DIP module!
errboot4=No available partitions found!
errboot5=data_on_usb=yes and no available usb partitions for data!\nUsing SD.
errboot6=No available usb partitions for data and no SD inserted!\nExiting.
errgame1=Cannot find the game with ID: %s
errgame2=No cIOS found!
errgame4=Couldn't load IOS %i
errgame5=Enabling emu failed!
errgame6=Enabling emu after reload failed!
errgame7=WDVDGetCoverStatus Failed!
errgame8=Please insert a game disc.
errgame9=This is not a Wii or GC disc
errgame10=Set USB failed: %d
errgame11=GameCube Loader not found! Can't launch game.
errgame12=Nintendont not found! Can't launch GC Disc.
errneek1=Cannot launch neek2o. Verify your neek2o setup
exit_to=Exit To
ftp1=Start
ftp2=Stop
gameinfo1=Developer: %s
gameinfo2=Publisher: %s
gameinfo3=Region: %s
gameinfo4=Release Date: %i.%i.%i
gameinfo5=Genre: %s
gameinfo6=No Gameinfo
gametdb_code=EN
GC_Def=Default
GC_DM=DIOS-MIOS
GC_Devo=Devolution
GC_Auto=Auto
genesis=Sega Genesis
gm1=Play
gm2=Back
hbc=HBC
homebrew=Homebrew
home1=Settings
home2=Reload Cache
home3=Update
home4=Credits
home5=Exit To
home6=Help
home7=Install Game
home8=File Explorer
home9=Source Menu
home10=FTP Server
hooktype1=VBI
hooktype2=KPAD Read
hooktype3=Joypad
hooktype4=GXDraw
hooktype5=GXFlush
hooktype6=OSSleepThread
hooktype7=AXNextFrame
ios=IOS%i base %s
lngdef=Default
lngdut=Dutch
lngeng=English
lngfre=French
lngger=German
lngita=Italian
lngjap=Japanese
lngkor=Korean
lngsch=S. Chinese
lngspa=Spanish
lngsys=System
lngtch=T. Chinese
main1=Install Game
main2=Welcome to WiiFlow. I have not found any games. Click Install to install games, or Select partition to select your partition type.
main3=Select Partition
main4=Welcome to WiiFlow. I have not found any homebrew apps. Select partition to select your partition type.
main5=Welcome to WiiFlow. I have not found any plugins. Select partition to select your partition type.
mastersystem=Sega Master System
menu=System Menu
NANDfull=Full
NANDoff=Off
NANDpart=Partial
neek1=Launch Title with neek2o
neek2o=neek2o
neogeo=Neo-Geo
nes=Nintendo
nintendo64=Nintendo64
NMMdebug=Debug
NMMDef=Default
NMMOff=Disabled
NMMon=Enabled
NoDVDDef=Default
NoDVDOff=Disabled
NoDVDon=Enabled
off=Off
on=On
players= Players
prii=Priiloader
real=Real Nand
SaveDef=Default
SaveFull=Full
SaveFullG=Full
SaveOff=Off
SaveOffG=Off
SavePart=Game save
SavePartG=Game save
SaveReg=Regionswitch
SaveRegG=Regionswitch
snes=Super Nintendo
stup1=Select Source
stup2=** DISABLED **
sys1=Update WiiFlow
sys2=WiiFlow Version:
sys3=Cancel
sys4=Upgrade
sys7=Installed Version.
translation_author=
turbografx16=TurboGrafx-16
turbografxcd=TurboGrafx-CD
unknown=Unknown
viddef=Default
vidgame=Game
vidntsc=NTSC
vidp50=PAL 50Hz
vidp60=PAL 60Hz
vidprog=Progressive
vidsys=System
vmpall=All
vmpmore=More
vmpnone=None
vmpnormal=Normal
wad1=Install WAD
wad2=Go
wad3=Selected %s, after the installation you return to the explorer.
wad4=Installing WAD, please wait...
wad5=Installation error %i!
wad6=Installation finished with %i hash fails.
wbfsadddlg=Please insert the disc you want to copy, then click on Go.
wbfscpydlg=If you are sure you want to copy this game to SD, click on Go.
wbfsop1=Install Game
wbfsop10=Copying [%s] %s...
wbfsop11=Copy Game
wbfsop12=DVDError(%d)
wbfsop13=Game installed, but disc contains errors (%d)
wbfsop14=Game copied, press Back to boot the game.
wbfsop15=Calculating space needed for %s
wbfsop16=Installing %s
wbfsop17=Installing %s disc %d/2
wbfsop18=This is a Wii disc!
wbfsop19=This is not a Gamecube disc!
wbfsop2=Delete Game
wbfsop20=You inserted disc %d again!!
wbfsop21=This is a disc of another game!!
wbfsop22=Installing %s...\n Please insert disc 2 to continue
wbfsop23=Calculating space needed for %s...\n Please insert disc %d to continue
wbfsop24=Not enough space: %d blocks needed, %d available
wbfsop25=Disc read error!! Please clean the disc
wbfsop26=Disc ejected!! Please insert disc again
wbfsop4=Back
wbfsop5=Go
wbfsop6=Installing [%s] %s...
wbfsop7=Game deleted
wbfsop8=Game installed, press B to exit.
wbfsop9=An error has occurred
wbfsoperr1=Disc_Wait failed
wbfsoperr2=Disc_Open failed
wbfsoperr3=This is not a Wii disc!
wbfsoperr4=Game already installed
wbfsoperr5=Deleting this Channel is not allowed!
wbfsprogress=%i%%
wbfsremdlg=To permanently remove the game : %s, click on Go.
wifiplayers= Wifi Players
wii=Wii
wiichannels=Offical Wii Channels
wiiware=WiiWare

View File

@ -1,58 +1,58 @@

Bedienung:
- Hauptmenü (Coverflow):
-- Hoch / Runter = vorheriges / nächstes Spiel (Vertikal)
-- Links / Rechts = vorheriges / nächstes Spiel (Horizontal)
-- Minus / Plus = Spiele schnell durchsuchen
-- A = Spiel auswählen
-- B+A = Spiel sofort Starten
-- B+Home = WiiFlow neu laden
-- Home = Home Menü öffnen / WiiFlow beenden
-- 1 / 2 = vorheriger / nächster Coverflow Modus
-- B+Left / B+Right = Song wählen
-- B+UP / B+DOWN = Alphabetische Suche
-- B+Bildschirmpfeile = Alphabetische Suche
-- B+Minus = Partition wechseln
-- B+Plus = Spiele sortieren
-- A auf Stern Icon = Favoriten
-- B auf Stern Icon = Kategorien
-- A auf Zahnrad Icon = WiiFlow Einstellungen
-- A auf USB, DML, Kanäle, Emu, oder Homebrew Icon = Ansicht wechseln
-- B auf USB, DML, Kanäle, Emu, oder Homebrew Icon = Emu-NAND ein/ausschalten und zur Kanäle Ansicht wechseln
-- A auf Haus Icon = Home Menü öffnen / WiiFlow beenden
-- B für 3 Sekunden halten / B auf Haus Icon (wenn wiimote_gestures ein) = Quellen Menü öffnen
-- A auf Disk Icon (Spiel in DVD Laufwerk) = Spiel im Laufwerk starten
-- A auf Fragezeichen Icon = Credits und diese Hilfe anzeigen
- Spiel:
-- A auf Box = Rückseite anzeigen
-- A außerhalb des Bildschirms = Spiel starten
-- B = zurück zum Coverflow
-- Hoch / Runter = vorheriges / nächstes Spiel (Vertikal)
-- Links / Rechts = vorheriges / nächstes Spiel (Horizontal)
-- Plus = Spielinformation
---Rechts (in Spielinformation) = Spielbeschreibung
---Links (in Spielinformation) = Spielinformation
-- A auf Stern Icon = Zum Favoriten setzen (Gelb = Favorit)
-- B auf Stern Icon = Kategorien für Spiel setzen
-- A auf Hand Icon = Kindersicherung (Rot = gesperrt)
-- A auf Gear Icon = Spieleinstellungen
-- A auf X Icon = Spiel löschen
- Einstellungen:
-- Minus / Plus = vorherige / nächste Seite
-- Links / Rechts = vorherige / nächste Seite
- Coverflow Einstellungen:
-- B+Minus / B+Plus = vorherige / nächste Seite
-- B = Schneller einstellen (B+A anstelle von A auf Button)
-- B+1 = Coverflow kopieren
-- B+2 = Coverflow einfügen
TIPPS um Spiele die nicht funktionieren zu starten:
Falls ein Spiel einfach einfriert und einen schwarzen Bildschirm verursacht stelle sicher ob das Spiel aus deiner Region kommt.
(gehe in die Spieleinstellungen.) Falls es nicht aus deiner Region kommt, stelle den Videomodus auf die Region des Spiels.
Du kannst auch ein Komponentenkabel benutzen und deine Wii auf 480p stellen.
Falls ein Spiel abstürzt versuche es einfach erneuert. Falls das nicht helfen sollte, stelle sicher das die Speicherstandemulation auf \"Aus\" in den Spieleinstellugnen gestellt ist.

Bedienung:
- Hauptmenü (Coverflow):
-- Hoch / Runter = vorheriges / nächstes Spiel (Vertikal)
-- Links / Rechts = vorheriges / nächstes Spiel (Horizontal)
-- Minus / Plus = Spiele schnell durchsuchen
-- A = Spiel auswählen
-- B+A = Spiel sofort Starten
-- B+Home = WiiFlow neu laden
-- Home = Home Menü öffnen / WiiFlow beenden
-- 1 / 2 = vorheriger / nächster Coverflow Modus
-- B+Left / B+Right = Song wählen
-- B+UP / B+DOWN = Alphabetische Suche
-- B+Bildschirmpfeile = Alphabetische Suche
-- B+Minus = Partition wechseln
-- B+Plus = Spiele sortieren
-- A auf Stern Icon = Favoriten
-- B auf Stern Icon = Kategorien
-- A auf Zahnrad Icon = WiiFlow Einstellungen
-- A auf Wii, GC, Kanäle, Einstecken, oder Homebrew Icon = Ansicht wechseln
-- B auf Wii, GC, Kanäle, Einstecken, oder Homebrew Icon = Emu-NAND ein/ausschalten und zur Kanäle Ansicht wechseln
-- A auf Haus Icon = Home Menü öffnen / WiiFlow beenden
-- B für 3 Sekunden halten / B auf Haus Icon (wenn wiimote_gestures ein) = Quellen Menü öffnen
-- A auf Disk Icon (Spiel in DVD Laufwerk) = Spiel im Laufwerk starten
-- A auf Fragezeichen Icon = Credits und diese Hilfe anzeigen
- Spiel:
-- A auf Box = Rückseite anzeigen
-- A außerhalb des Bildschirms = Spiel starten
-- B = zurück zum Coverflow
-- Hoch / Runter = vorheriges / nächstes Spiel (Vertikal)
-- Links / Rechts = vorheriges / nächstes Spiel (Horizontal)
-- Plus = Spielinformation
---Rechts (in Spielinformation) = Spielbeschreibung
---Links (in Spielinformation) = Spielinformation
-- A auf Stern Icon = Zum Favoriten setzen (Gelb = Favorit)
-- B auf Stern Icon = Kategorien für Spiel setzen
-- A auf Hand Icon = Kindersicherung (Rot = gesperrt)
-- A auf Gear Icon = Spieleinstellungen
-- A auf X Icon = Spiel löschen
- Einstellungen:
-- Minus / Plus = vorherige / nächste Seite
-- Links / Rechts = vorherige / nächste Seite
- Coverflow Einstellungen:
-- B+Minus / B+Plus = vorherige / nächste Seite
-- B = Schneller einstellen (B+A anstelle von A auf Button)
-- B+1 = Coverflow kopieren
-- B+2 = Coverflow einfügen
TIPPS um Spiele die nicht funktionieren zu starten:
Falls ein Spiel einfach einfriert und einen schwarzen Bildschirm verursacht stelle sicher ob das Spiel aus deiner Region kommt.
(gehe in die Spieleinstellungen.) Falls es nicht aus deiner Region kommt, stelle den Videomodus auf die Region des Spiels.
Du kannst auch ein Komponentenkabel benutzen und deine Wii auf 480p stellen.
Falls ein Spiel abstürzt versuche es einfach erneuert. Falls das nicht helfen sollte, stelle sicher das die Speicherstandemulation auf \"Aus\" in den Spieleinstellugnen gestellt ist.

View File

@ -1,59 +1,59 @@

Controles:
- Menú Principal (coverflow) :
-- Arriba / Abajo = Previo / próximo juego (vertical)
-- Izquierda / Derecha = Previo / próximo Juego (horizontal)
-- Menos / Mas = Paso Rápido de los Juegos
-- A = Seleccionar Juego
-- B+A = Lanzar juego inmediatamente
-- B+Home = Recarga WiiFlow
-- Home = Abre Menú Home / Salir WiiFlow
-- 1 / 2 = Previo / próximo modo coverflow
-- B+Izquierda / B+Derecha = Cambia canción
-- B+Arriba / B+Abajo = Búsqueda Alfabética
-- B+Flechas en pantalla = Búsqueda Alfabética
-- B+Menos = Cambia Partición
-- B+Más = Ordena Juegos
-- A en Icono Inicio = Favoritos
-- B en Icono Inicio = Categorías
-- A en Icono de engranaje = WiiFlow Ajustes
-- B en Icono de engranaje = Refrescar cache
-- A en USB, DML, Canales, Emu, o Icono Homebrew = Cambia a esa Vista
-- B en USB, DML, Canales, Emu, o Icono Homebrew = Activa/Desactiva Emu-NAND y cambia a vista de canales
-- A en Icono Home = Salir a Menú Wii
-- Presionar B durante 3 segundos / B en Icono Home (wiimote_gestos Activado) = Muestra el menú Source
-- A en Icono Disco (Disco Juego en Unidad) = Lanzar disco de juego
-- A en Icono Interrogación = Muestra créditos y este archivo ayuda, y actualiza WiiFlow
- Juego :
-- A en Caja = Muestra la parte trasera
-- A fuera de pantalla = Lanza el juego
-- B = Regresa a coverflow
-- Arriba / Abajo = Previo / Próximo Juego (vertical)
-- Izquierda / Derecha = Previo / Próximo Juego (horizontal)
-- Más = Info del Juego
---Derecha (en Info del Juego) = Descripción del juego
---Izquierda (en Descripción del Juego) = Info del juego
-- A en Icono Inicio = Activar favorito (Amarillo = Favorito)
-- B en Icono Inicio = Establecer categorías de juego
-- A en Icono Mano = Bloqueo Parental (Rejo = Bloqueado)
-- A en Icono de engranaje = Ajustes de juego
-- A en Icono X = Borra Juego
- Menús Ajustes :
-- Menos / Mas = Previo / Próxima pagina
-- Izquierda / Derecha = Previo / Próxima pagina
- Coverflow Ajuste Configuración :
-- B+Menos / B+Más = Previo / Próxima pagina
-- B = Ajuste más rápido (B+A en lugar de 'A' para hacer clic en un botón)
-- B+1 = Copia todo coverflow
-- B+2 = Pasa coverflow
CONSEJOS para juegos que se bloquean:
Si el juego solo se bloquea con una pantalla en negro en el lanzamiento, comprobar si es un juego PAL.
(Pulse el botón Más en la pantalla del juego.) Si se trata de PAL, establecer el modo de juego de vídeo a "PAL 50 Hz" en la configuración del juego.
Usted tendrá que utilizar una conexión de componentes a la TV y tener tu Wii en modo de vídeo 480p.
Si un juego se bloquea, a continuación, intente ejecutar el juego de nuevo. Si se bloquea continuamente, cambie la emulación de USB a "No" en la configuración del juego.

Controles:
- Menú Principal (coverflow) :
-- Arriba / Abajo = Previo / próximo juego (vertical)
-- Izquierda / Derecha = Previo / próximo Juego (horizontal)
-- Menos / Mas = Paso Rápido de los Juegos
-- A = Seleccionar Juego
-- B+A = Lanzar juego inmediatamente
-- B+Home = Recarga WiiFlow
-- Home = Abre Menú Home / Salir WiiFlow
-- 1 / 2 = Previo / próximo modo coverflow
-- B+Izquierda / B+Derecha = Cambia canción
-- B+Arriba / B+Abajo = Búsqueda Alfabética
-- B+Flechas en pantalla = Búsqueda Alfabética
-- B+Menos = Cambia Partición
-- B+Más = Ordena Juegos
-- A en Icono Inicio = Favoritos
-- B en Icono Inicio = Categorías
-- A en Icono de engranaje = WiiFlow Ajustes
-- B en Icono de engranaje = Refrescar cache
-- A en Wii, GC, Canales, Enchufar, o Icono Homebrew = Cambia a esa Vista
-- B en Wii, GC, Canales, Enchufar, o Icono Homebrew = Activa/Desactiva Emu-NAND y cambia a vista de canales
-- A en Icono Home = Salir a Menú Wii
-- Presionar B durante 3 segundos / B en Icono Home (wiimote_gestos Activado) = Muestra el menú Source
-- A en Icono Disco (Disco Juego en Unidad) = Lanzar disco de juego
-- A en Icono Interrogación = Muestra créditos y este archivo ayuda, y actualiza WiiFlow
- Juego :
-- A en Caja = Muestra la parte trasera
-- A fuera de pantalla = Lanza el juego
-- B = Regresa a coverflow
-- Arriba / Abajo = Previo / Próximo Juego (vertical)
-- Izquierda / Derecha = Previo / Próximo Juego (horizontal)
-- Más = Info del Juego
---Derecha (en Info del Juego) = Descripción del juego
---Izquierda (en Descripción del Juego) = Info del juego
-- A en Icono Inicio = Activar favorito (Amarillo = Favorito)
-- B en Icono Inicio = Establecer categorías de juego
-- A en Icono Mano = Bloqueo Parental (Rejo = Bloqueado)
-- A en Icono de engranaje = Ajustes de juego
-- A en Icono X = Borra Juego
- Menús Ajustes :
-- Menos / Mas = Previo / Próxima pagina
-- Izquierda / Derecha = Previo / Próxima pagina
- Coverflow Ajuste Configuración :
-- B+Menos / B+Más = Previo / Próxima pagina
-- B = Ajuste más rápido (B+A en lugar de 'A' para hacer clic en un botón)
-- B+1 = Copia todo coverflow
-- B+2 = Pasa coverflow
CONSEJOS para juegos que se bloquean:
Si el juego solo se bloquea con una pantalla en negro en el lanzamiento, comprobar si es un juego PAL.
(Pulse el botón Más en la pantalla del juego.) Si se trata de PAL, establecer el modo de juego de vídeo a "PAL 50 Hz" en la configuración del juego.
Usted tendrá que utilizar una conexión de componentes a la TV y tener tu Wii en modo de vídeo 480p.
Si un juego se bloquea, a continuación, intente ejecutar el juego de nuevo. Si se bloquea continuamente, cambie la emulación de USB a "No" en la configuración del juego.