2011-01-09 11:45:29 +01:00
/****************************************************************************
2013-03-17 14:48:15 +01:00
* Copyright ( C ) 2012 - 2013 by Cyan
* Copyright ( C ) 2010 by Dimok
2011-01-09 11:45:29 +01:00
*
* This software is provided ' as - is ' , without any express or implied
* warranty . In no event will the authors be held liable for any
* damages arising from the use of this software .
*
* Permission is granted to anyone to use this software for any
* purpose , including commercial applications , and to alter it and
* redistribute it freely , subject to the following restrictions :
*
* 1. The origin of this software must not be misrepresented ; you
* must not claim that you wrote the original software . If you use
* this software in a product , an acknowledgment in the product
* documentation would be appreciated but is not required .
*
* 2. Altered source versions must be plainly marked as such , and
* must not be misrepresented as being the original software .
*
* 3. This notice may not be removed or altered from any source
* distribution .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
# include <unistd.h>
# include "LoaderSettings.hpp"
2011-02-05 22:06:52 +01:00
# include "usbloader/usbstorage2.h"
2011-01-09 11:45:29 +01:00
# include "settings/CSettings.h"
2011-11-12 19:14:09 +01:00
# include "settings/GameTitles.h"
2011-01-09 11:45:29 +01:00
# include "prompts/PromptWindows.h"
# include "language/gettext.h"
# include "wad/nandtitle.h"
# include "prompts/TitleBrowser.h"
2011-07-24 18:32:09 +02:00
# include "system/IosLoader.h"
2011-12-22 23:44:48 +01:00
# include "usbloader/wbfs.h"
# include "usbloader/GameList.h"
2012-05-06 12:59:58 +02:00
# include "utils/tools.h"
2011-01-09 11:45:29 +01:00
# include "menu.h"
2013-03-17 14:48:15 +01:00
# include "GameCube/GCGames.h"
2011-01-09 11:45:29 +01:00
2011-06-10 14:22:19 +02:00
static const char * OnOffText [ ] =
2011-01-09 11:45:29 +01:00
{
2011-07-26 00:28:22 +02:00
trNOOP ( " OFF " ) ,
trNOOP ( " ON " ) ,
trNOOP ( " Auto " )
2011-01-09 11:45:29 +01:00
} ;
2011-12-23 16:48:20 +01:00
static const char * AspectText [ ] =
{
trNOOP ( " Force 4:3 " ) ,
trNOOP ( " Force 16:9 " ) ,
trNOOP ( " System Default " )
} ;
2011-12-22 23:44:48 +01:00
static const char * VideoModeText [ ] =
2011-01-09 11:45:29 +01:00
{
2011-07-26 00:28:22 +02:00
trNOOP ( " System Default " ) ,
trNOOP ( " Disc Default " ) ,
trNOOP ( " Force PAL50 " ) ,
trNOOP ( " Force PAL60 " ) ,
trNOOP ( " Force NTSC " ) ,
trNOOP ( " Region Patch " ) ,
trNOOP ( " Force PAL480p " ) ,
trNOOP ( " Force NTSC480p " ) ,
2011-01-09 11:45:29 +01:00
} ;
2011-12-22 23:44:48 +01:00
static const char * LanguageText [ ] =
2011-01-09 11:45:29 +01:00
{
2011-07-26 00:28:22 +02:00
trNOOP ( " Japanese " ) ,
trNOOP ( " English " ) ,
trNOOP ( " German " ) ,
trNOOP ( " French " ) ,
trNOOP ( " Spanish " ) ,
trNOOP ( " Italian " ) ,
trNOOP ( " Dutch " ) ,
trNOOP ( " SChinese " ) ,
trNOOP ( " TChinese " ) ,
trNOOP ( " Korean " ) ,
trNOOP ( " Console Default " )
2011-01-09 11:45:29 +01:00
} ;
2011-05-28 21:52:00 +02:00
static const char * Error002Text [ ] =
2011-01-09 11:45:29 +01:00
{
2011-07-26 00:28:22 +02:00
trNOOP ( " No " ) ,
trNOOP ( " Yes " ) ,
trNOOP ( " Anti " )
2011-01-09 11:45:29 +01:00
} ;
2011-07-24 18:32:09 +02:00
static const char * NandEmuText [ ] =
{
2011-07-26 00:28:22 +02:00
trNOOP ( " OFF " ) ,
trNOOP ( " Partial " ) ,
trNOOP ( " Full " )
2011-07-24 18:32:09 +02:00
} ;
2011-07-29 22:59:31 +02:00
static const char * HooktypeText [ ] =
{
trNOOP ( " None " ) ,
trNOOP ( " VBI (Default) " ) ,
trNOOP ( " KPAD Read " ) ,
trNOOP ( " Joypad " ) ,
trNOOP ( " GXDraw " ) ,
trNOOP ( " GXFlush " ) ,
trNOOP ( " OSSleepThread " ) ,
trNOOP ( " AXNextFrame " ) ,
} ;
2012-01-08 19:24:46 +01:00
static const char * ChannelLaunchText [ ] =
{
trNOOP ( " Main DOL " ) ,
trNOOP ( " Boot Content " ) ,
} ;
2012-07-16 18:07:24 +02:00
static const char * GCMode [ ] =
{
trNOOP ( " MIOS (Default & Customs) " ) ,
trNOOP ( " Devolution " ) ,
} ;
2012-12-09 22:36:32 +01:00
static const char * GCSourceText [ ] =
{
trNOOP ( " Main Path " ) ,
trNOOP ( " SD Path " ) ,
trNOOP ( " Auto " ) ,
trNOOP ( " Both " ) ,
} ;
2012-07-22 22:30:59 +02:00
static const char * DMLVideoText [ ] =
{
trNOOP ( " DML Auto " ) ,
trNOOP ( " Use Game Settings " ) ,
trNOOP ( " DML None " ) ,
} ;
2012-05-06 12:59:58 +02:00
static const char * DMLNMMMode [ ] =
{
trNOOP ( " OFF " ) ,
trNOOP ( " ON " ) ,
trNOOP ( " Debug " ) ,
} ;
static const char * DMLDebug [ ] =
{
trNOOP ( " OFF " ) ,
trNOOP ( " ON " ) ,
trNOOP ( " Debug Wait " ) ,
} ;
2012-07-16 18:07:24 +02:00
static const char * DEVOMCText [ ] =
{
trNOOP ( " OFF " ) ,
trNOOP ( " ON " ) ,
trNOOP ( " Individual " ) ,
} ;
2011-01-09 11:45:29 +01:00
LoaderSettings : : LoaderSettings ( )
2011-07-26 00:28:22 +02:00
: SettingsMenu ( tr ( " Loader Settings " ) , & GuiOptions , MENU_NONE )
2011-01-09 11:45:29 +01:00
{
2011-07-26 00:28:22 +02:00
int Idx = 0 ;
Options - > SetName ( Idx + + , " %s " , tr ( " Video Mode " ) ) ;
Options - > SetName ( Idx + + , " %s " , tr ( " VIDTV Patch " ) ) ;
Options - > SetName ( Idx + + , " %s " , tr ( " Sneek Video Patch " ) ) ;
2011-12-23 16:48:20 +01:00
Options - > SetName ( Idx + + , " %s " , tr ( " Aspect Ratio " ) ) ;
2011-07-26 00:28:22 +02:00
Options - > SetName ( Idx + + , " %s " , tr ( " Game Language " ) ) ;
Options - > SetName ( Idx + + , " %s " , tr ( " Patch Country Strings " ) ) ;
Options - > SetName ( Idx + + , " %s " , tr ( " Ocarina " ) ) ;
Options - > SetName ( Idx + + , " %s " , tr ( " Boot/Standard " ) ) ;
Options - > SetName ( Idx + + , " %s " , tr ( " Quick Boot " ) ) ;
Options - > SetName ( Idx + + , " %s " , tr ( " Error 002 fix " ) ) ;
Options - > SetName ( Idx + + , " %s " , tr ( " Block IOS Reload " ) ) ;
Options - > SetName ( Idx + + , " %s " , tr ( " Return To " ) ) ;
2011-11-12 19:14:09 +01:00
Options - > SetName ( Idx + + , " %s " , tr ( " Nand Saves Emulation " ) ) ;
2012-01-08 19:24:46 +01:00
Options - > SetName ( Idx + + , " %s " , tr ( " Nand Chan. Emulation " ) ) ;
2011-07-29 22:59:31 +02:00
Options - > SetName ( Idx + + , " %s " , tr ( " Hooktype " ) ) ;
Options - > SetName ( Idx + + , " %s " , tr ( " Wiird Debugger " ) ) ;
Options - > SetName ( Idx + + , " %s " , tr ( " Debugger Paused Start " ) ) ;
2012-01-08 19:24:46 +01:00
Options - > SetName ( Idx + + , " %s " , tr ( " Channel Launcher " ) ) ;
2012-07-16 18:07:24 +02:00
Options - > SetName ( Idx + + , " %s " , tr ( " GameCube Mode " ) ) ;
2012-12-09 22:36:32 +01:00
Options - > SetName ( Idx + + , " %s " , tr ( " GameCube Source " ) ) ;
2012-07-22 22:30:59 +02:00
Options - > SetName ( Idx + + , " %s " , tr ( " DML Video Mode " ) ) ;
2012-07-16 18:07:24 +02:00
Options - > SetName ( Idx + + , " %s " , tr ( " DML Progressive Patch " ) ) ;
2012-05-06 12:59:58 +02:00
Options - > SetName ( Idx + + , " %s " , tr ( " DML NMM Mode " ) ) ;
Options - > SetName ( Idx + + , " %s " , tr ( " DML LED Activity " ) ) ;
Options - > SetName ( Idx + + , " %s " , tr ( " DML PAD Hook " ) ) ;
2012-07-22 19:08:54 +02:00
Options - > SetName ( Idx + + , " %s " , tr ( " DML No Disc+ " ) ) ;
2012-07-19 22:13:39 +02:00
Options - > SetName ( Idx + + , " %s " , tr ( " DML Force Widescreen " ) ) ;
2012-11-11 14:47:02 +01:00
Options - > SetName ( Idx + + , " %s " , tr ( " DML Screenshot " ) ) ;
2012-08-24 18:55:49 +02:00
Options - > SetName ( Idx + + , " %s " , tr ( " DML Japanese Patch " ) ) ;
2012-05-06 12:59:58 +02:00
Options - > SetName ( Idx + + , " %s " , tr ( " DML Debug " ) ) ;
2012-07-16 18:07:24 +02:00
Options - > SetName ( Idx + + , " %s " , tr ( " DEVO MemCard Emulation " ) ) ;
2013-03-17 14:48:15 +01:00
Options - > SetName ( Idx + + , " %s " , tr ( " DEVO Force Widescreen " ) ) ;
2012-10-14 18:27:01 +02:00
Options - > SetName ( Idx + + , " %s " , tr ( " DEVO LED Activity " ) ) ;
2013-04-14 23:02:09 +02:00
Options - > SetName ( Idx + + , " %s " , tr ( " DEVO F-Zero AX " ) ) ;
Options - > SetName ( Idx + + , " %s " , tr ( " DEVO Timer Fix " ) ) ;
2011-07-26 00:28:22 +02:00
SetOptionValues ( ) ;
2011-11-12 19:14:09 +01:00
oldLoaderMode = Settings . LoaderMode ;
2012-12-09 22:36:32 +01:00
oldGameCubeSource = Settings . GameCubeSource ;
2011-11-12 19:14:09 +01:00
}
LoaderSettings : : ~ LoaderSettings ( )
{
if ( oldLoaderMode ! = Settings . LoaderMode )
2011-12-22 23:44:48 +01:00
{
if ( Settings . LoaderMode & MODE_WIIGAMES & & ( gameList . GameCount ( ) = = 0 ) )
{
WBFS_ReInit ( WBFS_DEVICE_USB ) ;
gameList . ReadGameList ( ) ;
}
gameList . LoadUnfiltered ( ) ;
2012-01-08 19:24:46 +01:00
GameTitles . LoadTitlesFromGameTDB ( Settings . titlestxt_path , false ) ;
2011-12-22 23:44:48 +01:00
}
2012-12-09 22:36:32 +01:00
if ( oldGameCubeSource ! = Settings . GameCubeSource )
{
GCGames : : Instance ( ) - > LoadAllGames ( ) ;
}
2011-01-09 11:45:29 +01:00
}
void LoaderSettings : : SetOptionValues ( )
{
2011-07-26 00:28:22 +02:00
int Idx = 0 ;
2011-01-09 11:45:29 +01:00
2011-07-26 00:28:22 +02:00
//! Settings: Video Mode
Options - > SetValue ( Idx + + , " %s " , tr ( VideoModeText [ Settings . videomode ] ) ) ;
2011-01-09 11:45:29 +01:00
2011-07-26 00:28:22 +02:00
//! Settings: VIDTV Patch
Options - > SetValue ( Idx + + , " %s " , tr ( OnOffText [ Settings . videopatch ] ) ) ;
2011-01-09 11:45:29 +01:00
2011-07-26 00:28:22 +02:00
//! Settings: Sneek Video Patch
Options - > SetValue ( Idx + + , " %s " , tr ( OnOffText [ Settings . sneekVideoPatch ] ) ) ;
2011-06-25 21:50:57 +02:00
2011-12-23 16:48:20 +01:00
//! Settings: Aspect Ratio
Options - > SetValue ( Idx + + , " %s " , tr ( AspectText [ Settings . GameAspectRatio ] ) ) ;
2011-07-26 00:28:22 +02:00
//! Settings: Game Language
Options - > SetValue ( Idx + + , " %s " , tr ( LanguageText [ Settings . language ] ) ) ;
2011-01-09 11:45:29 +01:00
2011-07-26 00:28:22 +02:00
//! Settings: Patch Country Strings
Options - > SetValue ( Idx + + , " %s " , tr ( OnOffText [ Settings . patchcountrystrings ] ) ) ;
2011-01-09 11:45:29 +01:00
2011-07-26 00:28:22 +02:00
//! Settings: Ocarina
Options - > SetValue ( Idx + + , " %s " , tr ( OnOffText [ Settings . ocarina ] ) ) ;
2011-01-09 11:45:29 +01:00
2011-07-26 00:28:22 +02:00
//! Settings: Boot/Standard
if ( Settings . godmode )
Options - > SetValue ( Idx + + , " IOS %i " , Settings . cios ) ;
else
Options - > SetValue ( Idx + + , " ******** " ) ;
2011-01-09 11:45:29 +01:00
2011-07-26 00:28:22 +02:00
//! Settings: Quick Boot
Options - > SetValue ( Idx + + , " %s " , tr ( OnOffText [ Settings . quickboot ] ) ) ;
2011-01-09 11:45:29 +01:00
2011-07-26 00:28:22 +02:00
//! Settings: Error 002 fix
Options - > SetValue ( Idx + + , " %s " , tr ( Error002Text [ Settings . error002 ] ) ) ;
2011-01-09 11:45:29 +01:00
2011-07-26 00:28:22 +02:00
//! Settings: Block IOS Reload
Options - > SetValue ( Idx + + , " %s " , tr ( OnOffText [ Settings . BlockIOSReload ] ) ) ;
2011-06-10 14:22:19 +02:00
2011-07-26 00:28:22 +02:00
//! Settings: Return To
const char * TitleName = NULL ;
u64 tid = NandTitles . FindU32 ( Settings . returnTo ) ;
if ( tid > 0 )
TitleName = NandTitles . NameOf ( tid ) ;
TitleName = TitleName ? TitleName : strlen ( Settings . returnTo ) > 0 ? Settings . returnTo : tr ( OnOffText [ 0 ] ) ;
Options - > SetValue ( Idx + + , " %s " , TitleName ) ;
2011-07-24 18:32:09 +02:00
2011-07-26 00:28:22 +02:00
//! Settings: Nand Emulation
Options - > SetValue ( Idx + + , " %s " , tr ( NandEmuText [ Settings . NandEmuMode ] ) ) ;
2011-07-29 22:59:31 +02:00
2012-01-08 19:24:46 +01:00
//! Settings: Nand Chan. Emulation
Options - > SetValue ( Idx + + , " %s " , tr ( NandEmuText [ Settings . NandEmuChanMode ] ) ) ;
2011-07-29 22:59:31 +02:00
//! Settings: Hooktype
Options - > SetValue ( Idx + + , " %s " , tr ( HooktypeText [ Settings . Hooktype ] ) ) ;
//! Settings: Wiird Debugger
Options - > SetValue ( Idx + + , " %s " , tr ( OnOffText [ Settings . WiirdDebugger ] ) ) ;
//! Settings: Wiird Debugger Pause on Start
Options - > SetValue ( Idx + + , " %s " , tr ( OnOffText [ Settings . WiirdDebuggerPause ] ) ) ;
2012-01-08 19:24:46 +01:00
//! Settings: Channel Launcher
Options - > SetValue ( Idx + + , " %s " , tr ( ChannelLaunchText [ Settings . UseChanLauncher ] ) ) ;
2012-05-06 12:59:58 +02:00
2012-07-16 18:07:24 +02:00
//! Settings: GameCube Mode
Options - > SetValue ( Idx + + , " %s " , tr ( GCMode [ Settings . GameCubeMode ] ) ) ;
2012-12-09 22:36:32 +01:00
//! Settings: GameCube Source
Options - > SetValue ( Idx + + , " %s " , tr ( GCSourceText [ Settings . GameCubeSource ] ) ) ;
2012-07-22 22:30:59 +02:00
//! Settings: DML Video Mode
Options - > SetValue ( Idx + + , " %s " , tr ( DMLVideoText [ Settings . DMLVideo ] ) ) ;
2012-07-16 18:07:24 +02:00
//! Settings: DML Progressive Patch
Options - > SetValue ( Idx + + , " %s " , tr ( OnOffText [ Settings . DMLProgPatch ] ) ) ;
2012-05-06 12:59:58 +02:00
//! Settings: DML NMM Mode
Options - > SetValue ( Idx + + , " %s " , tr ( DMLNMMMode [ Settings . DMLNMM ] ) ) ;
//! Settings: DML LED Activity
Options - > SetValue ( Idx + + , " %s " , tr ( OnOffText [ Settings . DMLActivityLED ] ) ) ;
//! Settings: DML PAD Hook
Options - > SetValue ( Idx + + , " %s " , tr ( OnOffText [ Settings . DMLPADHOOK ] ) ) ;
2012-07-22 19:08:54 +02:00
//! Settings: DML Extended No Disc
Options - > SetValue ( Idx + + , " %s " , tr ( OnOffText [ Settings . DMLNoDisc2 ] ) ) ;
2012-07-19 22:13:39 +02:00
//! Settings: DML Force Widescreen
Options - > SetValue ( Idx + + , " %s " , tr ( OnOffText [ Settings . DMLWidescreen ] ) ) ;
2012-11-11 14:47:02 +01:00
//! Settings: DML Screenshot
Options - > SetValue ( Idx + + , " %s " , tr ( OnOffText [ Settings . DMLScreenshot ] ) ) ;
2012-08-24 18:55:49 +02:00
//! Settings: DML Japanese Patch
Options - > SetValue ( Idx + + , " %s " , tr ( OnOffText [ Settings . DMLJPNPatch ] ) ) ;
2012-05-06 12:59:58 +02:00
//! Settings: DML Debug
Options - > SetValue ( Idx + + , " %s " , tr ( DMLDebug [ Settings . DMLDebug ] ) ) ;
2012-07-16 18:07:24 +02:00
//! Settings: DEVO Memory Card Emulation
Options - > SetValue ( Idx + + , " %s " , tr ( DEVOMCText [ Settings . DEVOMCEmulation ] ) ) ;
2013-04-14 23:02:09 +02:00
2012-10-14 18:27:01 +02:00
//! Settings: DEVO Widescreen Patch
2013-03-17 14:48:15 +01:00
Options - > SetValue ( Idx + + , " %s " , tr ( OnOffText [ Settings . DEVOWidescreen ] ) ) ;
2013-04-14 23:02:09 +02:00
2012-10-14 18:27:01 +02:00
//! Settings: DEVO Activity LED
Options - > SetValue ( Idx + + , " %s " , tr ( OnOffText [ Settings . DEVOActivityLED ] ) ) ;
2013-04-14 23:02:09 +02:00
//! Settings: DEVO F-Zero AX unlock patch
Options - > SetValue ( Idx + + , " %s " , tr ( OnOffText [ Settings . DEVOFZeroAX ] ) ) ;
//! Settings: DEVO Timer Fix
Options - > SetValue ( Idx + + , " %s " , tr ( OnOffText [ Settings . DEVOTimerFix ] ) ) ;
2011-01-09 11:45:29 +01:00
}
int LoaderSettings : : GetMenuInternal ( )
{
2011-07-26 00:28:22 +02:00
int ret = optionBrowser - > GetClickedOption ( ) ;
if ( ret < 0 )
return MENU_NONE ;
int Idx = - 1 ;
//! Settings: Video Mode
2012-05-09 21:27:54 +02:00
if ( ret = = + + Idx )
2011-07-26 00:28:22 +02:00
{
if ( + + Settings . videomode > = VIDEO_MODE_MAX ) Settings . videomode = 0 ;
}
//! Settings: VIDTV Patch
else if ( ret = = + + Idx )
{
if ( + + Settings . videopatch > = MAX_ON_OFF ) Settings . videopatch = 0 ;
}
//! Settings: Sneek Video Patch
else if ( ret = = + + Idx )
{
if ( + + Settings . sneekVideoPatch > = MAX_ON_OFF ) Settings . sneekVideoPatch = 0 ;
}
2011-12-23 16:48:20 +01:00
//! Settings: Aspect Ratio
else if ( ret = = + + Idx )
{
if ( + + Settings . GameAspectRatio > = ASPECT_MAX ) Settings . GameAspectRatio = 0 ;
}
2011-07-26 00:28:22 +02:00
//! Settings: Game Language
else if ( ret = = + + Idx )
{
if ( + + Settings . language > = MAX_LANGUAGE ) Settings . language = 0 ;
}
//! Settings: Patch Country Strings
else if ( ret = = + + Idx )
{
if ( + + Settings . patchcountrystrings > = MAX_ON_OFF ) Settings . patchcountrystrings = 0 ;
}
//! Settings: Ocarina
else if ( ret = = + + Idx )
{
if ( + + Settings . ocarina > = MAX_ON_OFF ) Settings . ocarina = 0 ;
}
//! Settings: Boot/Standard
else if ( ret = = + + Idx )
{
if ( ! Settings . godmode )
return MENU_NONE ;
char entered [ 4 ] ;
snprintf ( entered , sizeof ( entered ) , " %i " , Settings . cios ) ;
2012-05-06 12:59:58 +02:00
if ( OnScreenNumpad ( entered , sizeof ( entered ) ) )
2011-07-26 00:28:22 +02:00
{
2012-05-06 12:59:58 +02:00
Settings . cios = LIMIT ( atoi ( entered ) , 200 , 255 ) ;
2011-07-26 00:28:22 +02:00
if ( NandTitles . IndexOf ( TITLE_ID ( 1 , Settings . cios ) ) < 0 )
{
WindowPrompt ( tr ( " Warning: " ) , tr ( " This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning. " ) , tr ( " OK " ) ) ;
}
else if ( Settings . cios = = 254 )
{
WindowPrompt ( tr ( " Warning: " ) , tr ( " This IOS is the BootMii ios. If you are sure it is not BootMii and you have something else installed there than ignore this warning. " ) , tr ( " OK " ) ) ;
}
}
}
//! Settings: Quick Boot
else if ( ret = = + + Idx )
{
if ( + + Settings . quickboot > = MAX_ON_OFF ) Settings . quickboot = 0 ;
}
//! Settings: Error 002 fix
else if ( ret = = + + Idx )
{
if ( + + Settings . error002 > = 3 ) Settings . error002 = 0 ;
}
//! Settings: Block IOS Reload
else if ( ret = = + + Idx )
{
if ( + + Settings . BlockIOSReload > = 3 ) Settings . BlockIOSReload = 0 ;
}
//! Settings: Return To
else if ( ret = = + + Idx )
{
char tidChar [ 10 ] ;
bool getChannel = TitleSelector ( tidChar ) ;
if ( getChannel )
snprintf ( Settings . returnTo , sizeof ( Settings . returnTo ) , " %s " , tidChar ) ;
}
//! Settings: Nand Emulation
else if ( ret = = + + Idx )
{
if ( ! IosLoader : : IsD2X ( ) )
WindowPrompt ( tr ( " Error: " ) , tr ( " Nand Emulation is only available on D2X cIOS! " ) , tr ( " OK " ) ) ;
else if ( + + Settings . NandEmuMode > = 3 ) Settings . NandEmuMode = 0 ;
}
2012-01-08 19:24:46 +01:00
//! Settings: Nand Chan. Emulation
else if ( ret = = + + Idx )
{
2013-01-06 14:41:22 +01:00
// If NandEmuPath is on root of the first FAT32 partition, allow rev17-21 cIOS for EmuNAND Channels
bool NandEmu_compatible = false ;
NandEmu_compatible = IosLoader : : is_NandEmu_compatible ( Settings . NandEmuChanPath ) ;
if ( ! IosLoader : : IsD2X ( ) & & ! NandEmu_compatible )
2012-01-08 19:24:46 +01:00
WindowPrompt ( tr ( " Error: " ) , tr ( " Nand Emulation is only available on D2X cIOS! " ) , tr ( " OK " ) ) ;
else if ( + + Settings . NandEmuChanMode > = 3 ) Settings . NandEmuChanMode = 1 ;
}
2011-07-29 22:59:31 +02:00
//! Settings: Hooktype
else if ( ret = = + + Idx )
{
if ( + + Settings . Hooktype > = 8 ) Settings . Hooktype = 0 ;
}
//! Settings: Wiird Debugger
else if ( ret = = + + Idx )
{
if ( + + Settings . WiirdDebugger > = MAX_ON_OFF ) Settings . WiirdDebugger = 0 ;
}
//! Settings: Wiird Debugger Pause on Start
else if ( ret = = + + Idx )
{
if ( + + Settings . WiirdDebuggerPause > = MAX_ON_OFF ) Settings . WiirdDebuggerPause = 0 ;
}
2012-01-08 19:24:46 +01:00
//! Settings: Channel Launcher
else if ( ret = = + + Idx )
{
if ( + + Settings . UseChanLauncher > = MAX_ON_OFF ) Settings . UseChanLauncher = 0 ;
}
2012-07-16 18:07:24 +02:00
//! Settings: GameCube Mode
else if ( ret = = + + Idx )
{
if ( + + Settings . GameCubeMode > = CG_MODE_MAX_CHOICE ) Settings . GameCubeMode = 0 ;
}
2012-12-09 22:36:32 +01:00
//! Settings: GameCube Source
else if ( ret = = + + Idx )
{
if ( + + Settings . GameCubeSource > = CG_SOURCE_MAX_CHOICE ) Settings . GameCubeSource = 0 ;
}
2012-07-22 22:30:59 +02:00
//! Settings: DML Video Mode
else if ( ret = = + + Idx )
{
if ( + + Settings . DMLVideo > = DML_VIDEO_MAX_CHOICE ) Settings . DMLVideo = 0 ;
}
2012-07-16 18:07:24 +02:00
//! Settings: DML Progressive Patch
2012-05-06 12:59:58 +02:00
else if ( ret = = + + Idx )
{
2012-07-16 18:07:24 +02:00
if ( + + Settings . DMLProgPatch > = MAX_ON_OFF ) Settings . DMLProgPatch = 0 ;
2012-05-06 12:59:58 +02:00
}
//! Settings: DML NMM Mode
else if ( ret = = + + Idx )
{
if ( + + Settings . DMLNMM > = 3 ) Settings . DMLNMM = 0 ;
}
//! Settings: DML LED Activity
else if ( ret = = + + Idx )
{
if ( + + Settings . DMLActivityLED > = MAX_ON_OFF ) Settings . DMLActivityLED = 0 ;
}
//! Settings: DML PAD Hook
else if ( ret = = + + Idx )
{
if ( + + Settings . DMLPADHOOK > = MAX_ON_OFF ) Settings . DMLPADHOOK = 0 ;
}
2012-07-22 19:08:54 +02:00
//! Settings: DML Extended No Disc
else if ( ret = = + + Idx )
{
if ( + + Settings . DMLNoDisc2 > = MAX_ON_OFF ) Settings . DMLNoDisc2 = 0 ;
}
2012-07-19 22:13:39 +02:00
//! Settings: DML Force Widescreen
else if ( ret = = + + Idx )
{
if ( + + Settings . DMLWidescreen > = MAX_ON_OFF ) Settings . DMLWidescreen = 0 ;
}
2012-11-11 14:47:02 +01:00
//! Settings: DML Screenshot
else if ( ret = = + + Idx )
{
if ( + + Settings . DMLScreenshot > = MAX_ON_OFF ) Settings . DMLScreenshot = 0 ;
}
2012-08-24 18:55:49 +02:00
//! Settings: DML Japanese Patch
else if ( ret = = + + Idx )
{
if ( + + Settings . DMLJPNPatch > = MAX_ON_OFF ) Settings . DMLJPNPatch = 0 ;
}
2012-05-06 12:59:58 +02:00
//! Settings: DML Debug
else if ( ret = = + + Idx )
{
if ( + + Settings . DMLDebug > = 3 ) Settings . DMLDebug = 0 ;
}
2012-07-16 18:07:24 +02:00
//! Settings: DEVO Memory Card Emulation
else if ( ret = = + + Idx )
{
if ( + + Settings . DEVOMCEmulation > = DEVO_MC_MAX_CHOICE ) Settings . DEVOMCEmulation = 0 ;
}
2012-10-14 18:27:01 +02:00
//! Settings: DEVO Widescreen Patch
2013-03-17 14:48:15 +01:00
else if ( ret = = + + Idx )
{
if ( + + Settings . DEVOWidescreen > = MAX_ON_OFF ) Settings . DEVOWidescreen = 0 ;
}
2012-10-14 18:27:01 +02:00
//! Settings: DEVO Activity LED
else if ( ret = = + + Idx )
{
if ( + + Settings . DEVOActivityLED > = MAX_ON_OFF ) Settings . DEVOActivityLED = 0 ;
}
2013-04-14 23:02:09 +02:00
//! Settings: DEVO F-Zero AX unlock patch
else if ( ret = = + + Idx )
{
if ( + + Settings . DEVOFZeroAX > = MAX_ON_OFF ) Settings . DEVOFZeroAX = 0 ;
}
//! Settings: DEVO Activity LED
else if ( ret = = + + Idx )
{
if ( + + Settings . DEVOTimerFix > = MAX_ON_OFF ) Settings . DEVOTimerFix = 0 ;
}
2011-07-26 00:28:22 +02:00
SetOptionValues ( ) ;
return MENU_NONE ;
2011-01-09 11:45:29 +01:00
}