diff --git a/hbc/icon.png b/hbc/icon.png
new file mode 100644
index 0000000..5248138
Binary files /dev/null and b/hbc/icon.png differ
diff --git a/hbc/meta.xml b/hbc/meta.xml
new file mode 100644
index 0000000..7a2ed29
--- /dev/null
+++ b/hbc/meta.xml
@@ -0,0 +1,9 @@
+
+
+ FCE Ultra GX
+ Tantric
+ 3.0.0
+ 20090413
+ Nintendo Emulator
+ A port of FCE Ultra 0.98.12 to the Wii.
+
diff --git a/readme.txt b/readme.txt
index ae30323..b4a0fd6 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,7 +1,7 @@
¸,ø¤°`°¤ø,¸¸,ø¤°`°¤ø,¸,ø¤°`°¤ø,¸¸,ø¤°`°¤ø,¸,ø¤°`°¤ø,¸¸,ø¤°`°¤ø,¸,ø¤°`°¤ø,¸¸,ø¤
- FCE Ultra GX -
- Version 2.0.9
+ Version 3.0.0
http://code.google.com/p/fceugc
(Under GPL License)
@@ -9,8 +9,7 @@
FCE Ultra GX is a modified port of the FCE Ultra 0.98.12 Nintendo Entertainment
system for x86 (Windows/Linux) PC's. With it you can play NES games on your
-Wii/GameCube. Version 2 is a complete rewrite based on code from the
-SNES9x GX project.
+Wii/GameCube.
-=[ Features ]=-
@@ -33,7 +32,22 @@ SNES9x GX project.
|0O×øo· UPDATE HISTORY ·oø×O0|
`¨•¨¨¨¨¨ ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ ¨¨¨¨¨¨¨¨¨¨¨¨¨'
-[What's New 2.0.9 - January 27, 2009]
+[3.0.0 - April 13, 2009]
+* New GX-based menu, with a completely redesigned layout. Has Wiimote IR
+ support, sounds, graphics, animation effects, and more
+* Thanks to the3seashells for designing some top-notch artwork, to
+ Peter de Man for composing the music, and a special thanks to shagkur for
+ fixing libogc bugs that would have otherwise prevented the release
+* Onscreen keyboard for changing save/load folders and network settings
+* Menu configuration options (configurable exit button, wiimote orientation,
+ volumes)
+* Configurable button mapping for zapper
+* New save manager, allowing multiple saves and save browsing. Shows
+ screenshots for Snapshot saves, and save dates/times
+* SMB reconnection feature
+* ISI issue fixed
+
+[2.0.9 - January 27, 2009]
* Fixed a major memory corruption bug in FCE Ultra 0.98.12
* Faster SD/USB - new read-ahead cache
* Removed trigger of back to menu for Classic Controller right joystick
@@ -44,7 +58,7 @@ SNES9x GX project.
* Fixed some memory leaks, buffer overflows, etc
* Code cleanup, other general bugfixes
-[What's New 2.0.8 - December 24, 2008]
+[2.0.8 - December 24, 2008]
* Fixed unstable SD card access
* Proper SD/USB hotswap (Wii only)
* Auto-update feature (Wii only)
@@ -55,7 +69,7 @@ SNES9x GX project.
* Rewritten RAM/state saving - old state saves are now invalid
* Minor bug fixes
-[What's New 2.0.7 - November 19, 2008]
+[2.0.7 - November 19, 2008]
* Special thanks to eke-eke & KruLLo for contributions, bugfixes, and tips
* Video code rewritten - now has original, unfiltered, filtered modes
* Zoom option
@@ -74,7 +88,7 @@ SNES9x GX project.
folder as the DOL (eg: apps/fceugx/settings.xml)
* GameCube - Added DVD motor off option
-[What's New 2.0.6 - October 21, 2008]
+[2.0.6 - October 21, 2008]
* Right audio channel corruption fixed (thanks cyberdog!)
* Low pass audio filter turned off (muffles audio)
* Changed to alternate audio filter
@@ -82,13 +96,13 @@ SNES9x GX project.
* Cheesy/2X video filters fixed
* Qoob Pro modchip support for GameCube (thanks emukidid!)
-[What's New 2.0.5 - October 19, 2008]
+[2.0.5 - October 19, 2008]
* Sound bug fixed - thanks eke-eke!
* High quality sound enabled, lowpass filter enabled
* Video threading enabled
* Fixed timing error (incorrect opcode)
-[What's New 2.0.4 - October 15, 2008]
+[2.0.4 - October 15, 2008]
* Wii DVD fixed
* FDS BIOS loading works now
* FDS disk switching now consistently works with one button press
@@ -99,21 +113,21 @@ SNES9x GX project.
* Changed GC controller mappings - Select - Z, Start - Start,
Home - Start+A, Special - L
-[What's New 2.0.3 - October 1, 2008]
+[2.0.3 - October 1, 2008]
* Complete rewrite of loading code - FDS / UNIF / NSF support added!
* VS games work (coin insert submitted by pakitovic)
* Mapping of 'Special' commands - VS coin insert, FDS switch disk (default A)
* 480p and DVD now available for GameCube
* Improved stability - less crashes!
-[What's New 2.0.2 - September 19, 2008]
+[2.0.2 - September 19, 2008]
* Fixed network freeze-up problem
* Zapper now mapped to A and B
* Fixed auto-save feature
* Performance slowdowns on Gamecube should be fixed
* Will now attempt to load old save states with CRC filename
-[What's New 2.0.1 - September 6, 2008]
+[2.0.1 - September 6, 2008]
* Zapper support! Turn this on in the Controller Settings - most games
require you to have the Zapper on Port 2. Thanks go to aksommerville whose
previous work on the Zapper helped, and michniewski's cursor code
@@ -123,7 +137,7 @@ SNES9x GX project.
* Start/Select reversed mapping fixed for Wii controllers
* Small bug fixes / improvements / tweaks
-[What's New 2.0.0 - September 1, 2008]
+[2.0.0 - September 1, 2008]
* Complete rewrite based on code from SNES9x GX and Genesis Plus GX
* Wiimote, Nunchuk, and Classic controller support
@@ -215,38 +229,44 @@ FCE Ultra 0.98.12 for Windows before asking for help.
Mappers are the way the Nintendo handles switching from ROM/VROM so the more
that are supported the more games will work.
-
+
000 . 112 . 113 . 114 . 117 . 15 . 151 . 16 . 17 . 18 . 180 . 182 . 184 . 187
189 . 193 . 200 . 201 . 202 . 203 . 208 . 21 . 22 . 225 . 226 . 227 . 228 . 229
23 . 230 . 231 . 232 . 234 . 235 . 240 . 241 . 242 . 244 . 246 . 248 . 24 . 26
25 . 255 . 32 . 33 . 40 . 41 . 42 . 43 . 46 . 50 . 51 . 57 . 58 . 59
6 . 60 . 61 . 62 . 65 . 67 . 68 . 69 . 71 . 72 . 73 . 75 . 76 . 77
79 . 8 . 80 . 82 . 83 . 85 . 86 . 88 . 89 . 91 . 92 . 95 . 97 . 99
-
+
-[ Emulator Options ]-
-
+
Screen Scaler - How to scale the screen: GX, Cheesy or 2x
-
+
Palette - The colors used while viewing the game:
Default . loopy . quor . chris . matt
pasofami . crashman . mess . zaphod-cv
zaphod-smb . vs-drmar . vs-cv . vs-smb
-
+
Timing - NTSC or PAL (Depends if you're running a PAL or NTSC game)
-
+
¸,ø¤°`°¤ø,¸¸,ø¤°`°¤ø,¸,ø¤°`°¤ø,¸¸,ø¤°`°¤ø,¸,ø¤°`°¤ø,¸¸,ø¤°`°¤ø,¸,ø¤°`°¤ø,¸¸,ø¤
-
+
-=[ Credits ]=-
-GameCube/Wii Port v2.x Tantric
-GameCube/Wii Port v1.0.9 askot & dsbomb
-GameCube Port v1.0.8 SoftDev
-FCE Ultra Xodnizel
-Original FCE BERO
-libogc Shagkur & wintermute
-Testing tehskeen users
+ Coding & menu design Tantric
+ Menu artwork the3seashells
+ Menu sound Peter de Man
+ Logo design mvit
-And many others who have contributed over the years!
+ ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
+ FCE Ultra GX GameCube SoftDev,
+ askot & dsbomb
+
+ FCE Ultra Xodnizel
+ Original FCE BERO
+ libogc/devkitPPC shagkur & wintermute
+ FreeTypeGX Armin Tamzarian
+
+ And many others who have contributed over the years!
¸,ø¤°`°¤ø,¸¸,ø¤°`°¤ø,¸,ø¤°`°¤ø,¸¸,ø¤°`°¤ø,¸,ø¤°`°¤ø,¸¸,ø¤°`°¤ø,¸,ø¤°`°¤ø,¸¸,ø¤
diff --git a/source/ngc/filelist.h b/source/ngc/filelist.h
index 42027cc..76a72b7 100644
--- a/source/ngc/filelist.h
+++ b/source/ngc/filelist.h
@@ -51,6 +51,8 @@ extern const u32 icon_settings_png_size;
extern const u8 icon_home_png[];
extern const u32 icon_home_png_size;
+extern const u8 icon_game_settings_png[];
+extern const u32 icon_game_settings_png_size;
extern const u8 icon_game_cheats_png[];
extern const u32 icon_game_cheats_png_size;
extern const u8 icon_game_controllers_png[];
diff --git a/source/ngc/images/icon_game_settings.png b/source/ngc/images/icon_game_settings.png
new file mode 100644
index 0000000..b47dabe
Binary files /dev/null and b/source/ngc/images/icon_game_settings.png differ
diff --git a/source/ngc/menu.cpp b/source/ngc/menu.cpp
index 362a813..1b10b9a 100644
--- a/source/ngc/menu.cpp
+++ b/source/ngc/menu.cpp
@@ -1113,8 +1113,7 @@ static int MenuGame()
GuiImageData btnCloseOutlineOver(button_small_over_png);
GuiImageData btnLargeOutline(button_large_png);
GuiImageData btnLargeOutlineOver(button_large_over_png);
- GuiImageData iconCheats(icon_game_cheats_png);
- GuiImageData iconController(icon_game_controllers_png);
+ GuiImageData iconGameSettings(icon_game_settings_png);
GuiImageData iconLoad(icon_game_load_png);
GuiImageData iconSave(icon_game_save_png);
GuiImageData iconReset(icon_game_reset_png);
@@ -1180,37 +1179,22 @@ static int MenuGame()
resetBtn.SetTrigger(&trigA);
resetBtn.SetEffectGrow();
- GuiText controllerBtnTxt("Controller", 24, (GXColor){0, 0, 0, 255});
- GuiImage controllerBtnImg(&btnLargeOutline);
- GuiImage controllerBtnImgOver(&btnLargeOutlineOver);
- GuiImage controllerBtnIcon(&iconController);
- GuiButton controllerBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight());
- controllerBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
- controllerBtn.SetPosition(-125, 250);
- controllerBtn.SetLabel(&controllerBtnTxt);
- controllerBtn.SetImage(&controllerBtnImg);
- controllerBtn.SetImageOver(&controllerBtnImgOver);
- controllerBtn.SetIcon(&controllerBtnIcon);
- controllerBtn.SetSoundOver(&btnSoundOver);
- controllerBtn.SetSoundClick(&btnSoundClick);
- controllerBtn.SetTrigger(&trigA);
- controllerBtn.SetEffectGrow();
-
- /*GuiText cheatsBtnTxt("Cheats", 24, (GXColor){0, 0, 0, 255});
- GuiImage cheatsBtnImg(&btnLargeOutline);
- GuiImage cheatsBtnImgOver(&btnLargeOutlineOver);
- GuiImage cheatsBtnIcon(&iconCheats);
- GuiButton cheatsBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight());
- cheatsBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
- cheatsBtn.SetPosition(125, 250);
- cheatsBtn.SetLabel(&cheatsBtnTxt);
- cheatsBtn.SetImage(&cheatsBtnImg);
- cheatsBtn.SetImageOver(&cheatsBtnImgOver);
- cheatsBtn.SetIcon(&cheatsBtnIcon);
- cheatsBtn.SetSoundOver(&btnSoundOver);
- cheatsBtn.SetSoundClick(&btnSoundClick);
- cheatsBtn.SetTrigger(&trigA);
- cheatsBtn.SetEffectGrow();*/
+ GuiText gameSettingsBtnTxt("Game Settings", 24, (GXColor){0, 0, 0, 255});
+ gameSettingsBtnTxt.SetMaxWidth(btnLargeOutline.GetWidth()-30);
+ GuiImage gameSettingsBtnImg(&btnLargeOutline);
+ GuiImage gameSettingsBtnImgOver(&btnLargeOutlineOver);
+ GuiImage gameSettingsBtnIcon(&iconGameSettings);
+ GuiButton gameSettingsBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight());
+ gameSettingsBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
+ gameSettingsBtn.SetPosition(-125, 250);
+ gameSettingsBtn.SetLabel(&gameSettingsBtnTxt);
+ gameSettingsBtn.SetImage(&gameSettingsBtnImg);
+ gameSettingsBtn.SetImageOver(&gameSettingsBtnImgOver);
+ gameSettingsBtn.SetIcon(&gameSettingsBtnIcon);
+ gameSettingsBtn.SetSoundOver(&btnSoundOver);
+ gameSettingsBtn.SetSoundClick(&btnSoundClick);
+ gameSettingsBtn.SetTrigger(&trigA);
+ gameSettingsBtn.SetEffectGrow();
GuiText mainmenuBtnTxt("Main Menu", 24, (GXColor){0, 0, 0, 255});
GuiImage mainmenuBtnImg(&btnOutline);
@@ -1287,8 +1271,7 @@ static int MenuGame()
w.Append(&saveBtn);
w.Append(&loadBtn);
w.Append(&resetBtn);
- w.Append(&controllerBtn);
- //w.Append(&cheatsBtn);
+ w.Append(&gameSettingsBtn);
#ifdef HW_RVL
w.Append(batteryBtn[0]);
@@ -1320,12 +1303,7 @@ static int MenuGame()
batteryBtn[3]->SetEffect(EFFECT_SLIDE_BOTTOM | EFFECT_SLIDE_IN, 35);
#endif
- saveBtn.SetEffect(EFFECT_FADE, 15);
- loadBtn.SetEffect(EFFECT_FADE, 15);
- resetBtn.SetEffect(EFFECT_FADE, 15);
- controllerBtn.SetEffect(EFFECT_FADE, 15);
- //cheatsBtn.SetEffect(EFFECT_FADE, 15);
-
+ w.SetEffect(EFFECT_FADE, 15);
AutoSave();
}
@@ -1374,18 +1352,10 @@ static int MenuGame()
PowerNES();
menu = MENU_EXIT;
}
- else if(controllerBtn.GetState() == STATE_CLICKED)
+ else if(gameSettingsBtn.GetState() == STATE_CLICKED)
{
- ControllerWindow();
+ menu = MENU_GAMESETTINGS;
}
- /*else if(cheatsBtn.GetState() == STATE_CLICKED)
- {
- cheatsBtn.ResetState();
- if(Cheat.num_cheats > 0)
- menu = MENU_GAME_CHEATS;
- else
- InfoPrompt("Cheats file not found!");
- }*/
else if(mainmenuBtn.GetState() == STATE_CLICKED)
{
if(gameScreenImg)
@@ -1423,11 +1393,7 @@ static int MenuGame()
batteryBtn[3]->SetEffect(EFFECT_SLIDE_BOTTOM | EFFECT_SLIDE_OUT, 35);
#endif
- saveBtn.SetEffect(EFFECT_FADE, -20);
- loadBtn.SetEffect(EFFECT_FADE, -20);
- resetBtn.SetEffect(EFFECT_FADE, -20);
- controllerBtn.SetEffect(EFFECT_FADE, -20);
- //cheatsBtn.SetEffect(EFFECT_FADE, -20);
+ w.SetEffect(EFFECT_FADE, -20);
usleep(200000); // wait for effects to finish
}
@@ -1732,6 +1698,201 @@ static int MenuGameSaves(int action)
return menu;
}
+
+/****************************************************************************
+ * MenuGameSettings
+ ***************************************************************************/
+static int MenuGameSettings()
+{
+ int menu = MENU_NONE;
+
+ GuiText titleTxt("Game Settings", 28, (GXColor){255, 255, 255, 255});
+ titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP);
+ titleTxt.SetPosition(50,50);
+
+ GuiSound btnSoundOver(button_over_pcm, button_over_pcm_size, SOUND_PCM);
+ GuiSound btnSoundClick(button_click_pcm, button_click_pcm_size, SOUND_PCM);
+ GuiImageData btnOutline(button_png);
+ GuiImageData btnOutlineOver(button_over_png);
+ GuiImageData btnLargeOutline(button_large_png);
+ GuiImageData btnLargeOutlineOver(button_large_over_png);
+ GuiImageData iconMappings(icon_settings_mappings_png);
+ GuiImageData iconVideo(icon_settings_video_png);
+ GuiImageData iconController(icon_game_controllers_png);
+ GuiImageData iconCheats(icon_game_cheats_png);
+ GuiImageData btnCloseOutline(button_small_png);
+ GuiImageData btnCloseOutlineOver(button_small_over_png);
+
+ GuiTrigger trigA;
+ if(GCSettings.WiimoteOrientation)
+ trigA.SetSimpleTrigger(-1, WPAD_BUTTON_2 | WPAD_CLASSIC_BUTTON_A, PAD_BUTTON_A);
+ else
+ trigA.SetSimpleTrigger(-1, WPAD_BUTTON_A | WPAD_CLASSIC_BUTTON_A, PAD_BUTTON_A);
+
+ GuiTrigger trigHome;
+ trigHome.SetButtonOnlyTrigger(-1, WPAD_BUTTON_HOME | WPAD_CLASSIC_BUTTON_HOME, 0);
+
+ GuiText mappingBtnTxt("Button Mappings", 24, (GXColor){0, 0, 0, 255});
+ mappingBtnTxt.SetMaxWidth(btnLargeOutline.GetWidth()-30);
+ GuiImage mappingBtnImg(&btnLargeOutline);
+ GuiImage mappingBtnImgOver(&btnLargeOutlineOver);
+ GuiImage mappingBtnIcon(&iconMappings);
+ GuiButton mappingBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight());
+ mappingBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
+ mappingBtn.SetPosition(-125, 120);
+ mappingBtn.SetLabel(&mappingBtnTxt);
+ mappingBtn.SetImage(&mappingBtnImg);
+ mappingBtn.SetImageOver(&mappingBtnImgOver);
+ mappingBtn.SetIcon(&mappingBtnIcon);
+ mappingBtn.SetSoundOver(&btnSoundOver);
+ mappingBtn.SetSoundClick(&btnSoundClick);
+ mappingBtn.SetTrigger(&trigA);
+ mappingBtn.SetEffectGrow();
+
+ GuiText videoBtnTxt("Video", 24, (GXColor){0, 0, 0, 255});
+ videoBtnTxt.SetMaxWidth(btnLargeOutline.GetWidth()-30);
+ GuiImage videoBtnImg(&btnLargeOutline);
+ GuiImage videoBtnImgOver(&btnLargeOutlineOver);
+ GuiImage videoBtnIcon(&iconVideo);
+ GuiButton videoBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight());
+ videoBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
+ videoBtn.SetPosition(125, 120);
+ videoBtn.SetLabel(&videoBtnTxt);
+ videoBtn.SetImage(&videoBtnImg);
+ videoBtn.SetImageOver(&videoBtnImgOver);
+ videoBtn.SetIcon(&videoBtnIcon);
+ videoBtn.SetSoundOver(&btnSoundOver);
+ videoBtn.SetSoundClick(&btnSoundClick);
+ videoBtn.SetTrigger(&trigA);
+ videoBtn.SetEffectGrow();
+
+ GuiText controllerBtnTxt("Controller", 24, (GXColor){0, 0, 0, 255});
+ GuiImage controllerBtnImg(&btnLargeOutline);
+ GuiImage controllerBtnImgOver(&btnLargeOutlineOver);
+ GuiImage controllerBtnIcon(&iconController);
+ GuiButton controllerBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight());
+ controllerBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
+ controllerBtn.SetPosition(0, 250);
+ controllerBtn.SetLabel(&controllerBtnTxt);
+ controllerBtn.SetImage(&controllerBtnImg);
+ controllerBtn.SetImageOver(&controllerBtnImgOver);
+ controllerBtn.SetIcon(&controllerBtnIcon);
+ controllerBtn.SetSoundOver(&btnSoundOver);
+ controllerBtn.SetSoundClick(&btnSoundClick);
+ controllerBtn.SetTrigger(&trigA);
+ controllerBtn.SetEffectGrow();
+
+ GuiText cheatsBtnTxt("Cheats", 24, (GXColor){0, 0, 0, 255});
+ GuiImage cheatsBtnImg(&btnLargeOutline);
+ GuiImage cheatsBtnImgOver(&btnLargeOutlineOver);
+ GuiImage cheatsBtnIcon(&iconCheats);
+ GuiButton cheatsBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight());
+ cheatsBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
+ cheatsBtn.SetPosition(125, 250);
+ cheatsBtn.SetLabel(&cheatsBtnTxt);
+ cheatsBtn.SetImage(&cheatsBtnImg);
+ cheatsBtn.SetImageOver(&cheatsBtnImgOver);
+ cheatsBtn.SetIcon(&cheatsBtnIcon);
+ cheatsBtn.SetSoundOver(&btnSoundOver);
+ cheatsBtn.SetSoundClick(&btnSoundClick);
+ cheatsBtn.SetTrigger(&trigA);
+ cheatsBtn.SetEffectGrow();
+
+ GuiText closeBtnTxt("Close", 22, (GXColor){0, 0, 0, 255});
+ GuiImage closeBtnImg(&btnCloseOutline);
+ GuiImage closeBtnImgOver(&btnCloseOutlineOver);
+ GuiButton closeBtn(btnCloseOutline.GetWidth(), btnCloseOutline.GetHeight());
+ closeBtn.SetAlignment(ALIGN_RIGHT, ALIGN_TOP);
+ closeBtn.SetPosition(-30, 35);
+ closeBtn.SetLabel(&closeBtnTxt);
+ closeBtn.SetImage(&closeBtnImg);
+ closeBtn.SetImageOver(&closeBtnImgOver);
+ closeBtn.SetSoundOver(&btnSoundOver);
+ closeBtn.SetSoundClick(&btnSoundClick);
+ closeBtn.SetTrigger(&trigA);
+ closeBtn.SetTrigger(&trigHome);
+ closeBtn.SetEffectGrow();
+
+ GuiText backBtnTxt("Go Back", 24, (GXColor){0, 0, 0, 255});
+ GuiImage backBtnImg(&btnOutline);
+ GuiImage backBtnImgOver(&btnOutlineOver);
+ GuiButton backBtn(btnOutline.GetWidth(), btnOutline.GetHeight());
+ backBtn.SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM);
+ backBtn.SetPosition(100, -35);
+ backBtn.SetLabel(&backBtnTxt);
+ backBtn.SetImage(&backBtnImg);
+ backBtn.SetImageOver(&backBtnImgOver);
+ backBtn.SetSoundOver(&btnSoundOver);
+ backBtn.SetSoundClick(&btnSoundClick);
+ backBtn.SetTrigger(&trigA);
+ backBtn.SetEffectGrow();
+
+ HaltGui();
+ GuiWindow w(screenwidth, screenheight);
+ w.Append(&titleTxt);
+ w.Append(&mappingBtn);
+ w.Append(&videoBtn);
+ w.Append(&controllerBtn);
+ //w.Append(&cheatsBtn);
+ w.Append(&closeBtn);
+ w.Append(&backBtn);
+
+ mainWindow->Append(&w);
+
+ ResumeGui();
+
+ while(menu == MENU_NONE)
+ {
+ VIDEO_WaitVSync();
+
+ if(mappingBtn.GetState() == STATE_CLICKED)
+ {
+ menu = MENU_GAMESETTINGS_MAPPINGS;
+ }
+ else if(videoBtn.GetState() == STATE_CLICKED)
+ {
+ menu = MENU_GAMESETTINGS_VIDEO;
+ }
+ else if(controllerBtn.GetState() == STATE_CLICKED)
+ {
+ ControllerWindow();
+ }
+ /*else if(cheatsBtn.GetState() == STATE_CLICKED)
+ {
+ cheatsBtn.ResetState();
+ if(Cheat.num_cheats > 0)
+ menu = MENU_GAMESETTINGS_CHEATS;
+ else
+ InfoPrompt("Cheats file not found!");
+ }*/
+ else if(closeBtn.GetState() == STATE_CLICKED)
+ {
+ menu = MENU_EXIT;
+
+ exitSound->Play();
+ bgTopImg->SetEffect(EFFECT_SLIDE_TOP | EFFECT_SLIDE_OUT, 35);
+ closeBtn.SetEffect(EFFECT_SLIDE_TOP | EFFECT_SLIDE_OUT, 35);
+ titleTxt.SetEffect(EFFECT_SLIDE_TOP | EFFECT_SLIDE_OUT, 35);
+ backBtn.SetEffect(EFFECT_SLIDE_BOTTOM | EFFECT_SLIDE_OUT, 35);
+ bgBottomImg->SetEffect(EFFECT_SLIDE_BOTTOM | EFFECT_SLIDE_OUT, 35);
+ btnLogo->SetEffect(EFFECT_SLIDE_BOTTOM | EFFECT_SLIDE_OUT, 35);
+
+ w.SetEffect(EFFECT_FADE, -20);
+
+ usleep(200000); // wait for effects to finish
+ }
+ else if(backBtn.GetState() == STATE_CLICKED)
+ {
+ menu = MENU_GAME;
+ }
+ }
+
+ HaltGui();
+
+ mainWindow->Remove(&w);
+ return menu;
+}
+
/****************************************************************************
* MenuGameCheats
*
@@ -1751,7 +1912,7 @@ static int MenuGameCheats()
options.length = i;
- GuiText titleTxt("Cheats", 28, (GXColor){255, 255, 255, 255});
+ GuiText titleTxt("Game Settings - Cheats", 28, (GXColor){255, 255, 255, 255});
titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP);
titleTxt.SetPosition(50,50);
@@ -1785,21 +1946,6 @@ static int MenuGameCheats()
backBtn.SetTrigger(&trigA);
backBtn.SetEffectGrow();
- GuiText closeBtnTxt("Close", 22, (GXColor){0, 0, 0, 255});
- GuiImage closeBtnImg(&btnCloseOutline);
- GuiImage closeBtnImgOver(&btnCloseOutlineOver);
- GuiButton closeBtn(btnCloseOutline.GetWidth(), btnCloseOutline.GetHeight());
- closeBtn.SetAlignment(ALIGN_RIGHT, ALIGN_TOP);
- closeBtn.SetPosition(-30, 35);
- closeBtn.SetLabel(&closeBtnTxt);
- closeBtn.SetImage(&closeBtnImg);
- closeBtn.SetImageOver(&closeBtnImgOver);
- closeBtn.SetSoundOver(&btnSoundOver);
- closeBtn.SetSoundClick(&btnSoundClick);
- closeBtn.SetTrigger(&trigA);
- closeBtn.SetTrigger(&trigHome);
- closeBtn.SetEffectGrow();
-
GuiOptionBrowser optionBrowser(552, 248, &options);
optionBrowser.SetPosition(0, 108);
optionBrowser.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
@@ -1807,7 +1953,6 @@ static int MenuGameCheats()
HaltGui();
GuiWindow w(screenwidth, screenheight);
w.Append(&backBtn);
- w.Append(&closeBtn);
mainWindow->Append(&optionBrowser);
mainWindow->Append(&w);
mainWindow->Append(&titleTxt);
@@ -1829,23 +1974,7 @@ static int MenuGameCheats()
if(backBtn.GetState() == STATE_CLICKED)
{
- menu = MENU_GAME;
- }
- else if(closeBtn.GetState() == STATE_CLICKED)
- {
- menu = MENU_EXIT;
-
- exitSound->Play();
- bgTopImg->SetEffect(EFFECT_SLIDE_TOP | EFFECT_SLIDE_OUT, 35);
- closeBtn.SetEffect(EFFECT_SLIDE_TOP | EFFECT_SLIDE_OUT, 35);
- titleTxt.SetEffect(EFFECT_SLIDE_TOP | EFFECT_SLIDE_OUT, 35);
- backBtn.SetEffect(EFFECT_SLIDE_BOTTOM | EFFECT_SLIDE_OUT, 35);
- bgBottomImg->SetEffect(EFFECT_SLIDE_BOTTOM | EFFECT_SLIDE_OUT, 35);
- btnLogo->SetEffect(EFFECT_SLIDE_BOTTOM | EFFECT_SLIDE_OUT, 35);
-
- w.SetEffect(EFFECT_FADE, -20);
-
- usleep(200000); // wait for effects to finish
+ menu = MENU_GAMESETTINGS;
}
}
HaltGui();
@@ -1855,222 +1984,6 @@ static int MenuGameCheats()
return menu;
}
*/
-/****************************************************************************
- * MenuSettings
- ***************************************************************************/
-static int MenuSettings()
-{
- int menu = MENU_NONE;
-
- GuiText titleTxt("Settings", 28, (GXColor){255, 255, 255, 255});
- titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP);
- titleTxt.SetPosition(50,50);
-
- GuiSound btnSoundOver(button_over_pcm, button_over_pcm_size, SOUND_PCM);
- GuiSound btnSoundClick(button_click_pcm, button_click_pcm_size, SOUND_PCM);
- GuiImageData btnOutline(button_png);
- GuiImageData btnOutlineOver(button_over_png);
- GuiImageData btnLargeOutline(button_large_png);
- GuiImageData btnLargeOutlineOver(button_large_over_png);
- GuiImageData iconFile(icon_settings_file_png);
- GuiImageData iconMappings(icon_settings_mappings_png);
- GuiImageData iconMenu(icon_settings_menu_png);
- GuiImageData iconNetwork(icon_settings_network_png);
- GuiImageData iconVideo(icon_settings_video_png);
-
- GuiTrigger trigA;
- if(GCSettings.WiimoteOrientation)
- trigA.SetSimpleTrigger(-1, WPAD_BUTTON_2 | WPAD_CLASSIC_BUTTON_A, PAD_BUTTON_A);
- else
- trigA.SetSimpleTrigger(-1, WPAD_BUTTON_A | WPAD_CLASSIC_BUTTON_A, PAD_BUTTON_A);
-
- GuiText mappingBtnTxt("Button Mappings", 24, (GXColor){0, 0, 0, 255});
- mappingBtnTxt.SetMaxWidth(btnLargeOutline.GetWidth()-30);
- GuiImage mappingBtnImg(&btnLargeOutline);
- GuiImage mappingBtnImgOver(&btnLargeOutlineOver);
- GuiImage mappingBtnIcon(&iconMappings);
- GuiButton mappingBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight());
- mappingBtn.SetAlignment(ALIGN_LEFT, ALIGN_TOP);
- mappingBtn.SetPosition(50, 120);
- mappingBtn.SetLabel(&mappingBtnTxt);
- mappingBtn.SetImage(&mappingBtnImg);
- mappingBtn.SetImageOver(&mappingBtnImgOver);
- mappingBtn.SetIcon(&mappingBtnIcon);
- mappingBtn.SetSoundOver(&btnSoundOver);
- mappingBtn.SetSoundClick(&btnSoundClick);
- mappingBtn.SetTrigger(&trigA);
- mappingBtn.SetEffectGrow();
-
- GuiText videoBtnTxt("Video", 24, (GXColor){0, 0, 0, 255});
- videoBtnTxt.SetMaxWidth(btnLargeOutline.GetWidth()-30);
- GuiImage videoBtnImg(&btnLargeOutline);
- GuiImage videoBtnImgOver(&btnLargeOutlineOver);
- GuiImage videoBtnIcon(&iconVideo);
- GuiButton videoBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight());
- videoBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
- videoBtn.SetPosition(0, 120);
- videoBtn.SetLabel(&videoBtnTxt);
- videoBtn.SetImage(&videoBtnImg);
- videoBtn.SetImageOver(&videoBtnImgOver);
- videoBtn.SetIcon(&videoBtnIcon);
- videoBtn.SetSoundOver(&btnSoundOver);
- videoBtn.SetSoundClick(&btnSoundClick);
- videoBtn.SetTrigger(&trigA);
- videoBtn.SetEffectGrow();
-
- GuiText savingBtnTxt1("Saving", 24, (GXColor){0, 0, 0, 255});
- GuiText savingBtnTxt2("&", 18, (GXColor){0, 0, 0, 255});
- GuiText savingBtnTxt3("Loading", 24, (GXColor){0, 0, 0, 255});
- savingBtnTxt1.SetPosition(0, -20);
- savingBtnTxt3.SetPosition(0, +20);
- GuiImage savingBtnImg(&btnLargeOutline);
- GuiImage savingBtnImgOver(&btnLargeOutlineOver);
- GuiImage fileBtnIcon(&iconFile);
- GuiButton savingBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight());
- savingBtn.SetAlignment(ALIGN_RIGHT, ALIGN_TOP);
- savingBtn.SetPosition(-50, 120);
- savingBtn.SetLabel(&savingBtnTxt1, 0);
- savingBtn.SetLabel(&savingBtnTxt2, 1);
- savingBtn.SetLabel(&savingBtnTxt3, 2);
- savingBtn.SetImage(&savingBtnImg);
- savingBtn.SetImageOver(&savingBtnImgOver);
- savingBtn.SetIcon(&fileBtnIcon);
- savingBtn.SetSoundOver(&btnSoundOver);
- savingBtn.SetSoundClick(&btnSoundClick);
- savingBtn.SetTrigger(&trigA);
- savingBtn.SetEffectGrow();
-
- GuiText menuBtnTxt("Menu", 24, (GXColor){0, 0, 0, 255});
- menuBtnTxt.SetMaxWidth(btnLargeOutline.GetWidth()-30);
- GuiImage menuBtnImg(&btnLargeOutline);
- GuiImage menuBtnImgOver(&btnLargeOutlineOver);
- GuiImage menuBtnIcon(&iconMenu);
- GuiButton menuBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight());
- menuBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
- menuBtn.SetPosition(-125, 250);
- menuBtn.SetLabel(&menuBtnTxt);
- menuBtn.SetImage(&menuBtnImg);
- menuBtn.SetImageOver(&menuBtnImgOver);
- menuBtn.SetIcon(&menuBtnIcon);
- menuBtn.SetSoundOver(&btnSoundOver);
- menuBtn.SetSoundClick(&btnSoundClick);
- menuBtn.SetTrigger(&trigA);
- menuBtn.SetEffectGrow();
-
- GuiText networkBtnTxt("Network", 24, (GXColor){0, 0, 0, 255});
- networkBtnTxt.SetMaxWidth(btnLargeOutline.GetWidth()-30);
- GuiImage networkBtnImg(&btnLargeOutline);
- GuiImage networkBtnImgOver(&btnLargeOutlineOver);
- GuiImage networkBtnIcon(&iconNetwork);
- GuiButton networkBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight());
- networkBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
- networkBtn.SetPosition(125, 250);
- networkBtn.SetLabel(&networkBtnTxt);
- networkBtn.SetImage(&networkBtnImg);
- networkBtn.SetImageOver(&networkBtnImgOver);
- networkBtn.SetIcon(&networkBtnIcon);
- networkBtn.SetSoundOver(&btnSoundOver);
- networkBtn.SetSoundClick(&btnSoundClick);
- networkBtn.SetTrigger(&trigA);
- networkBtn.SetEffectGrow();
-
- GuiText backBtnTxt("Go Back", 24, (GXColor){0, 0, 0, 255});
- GuiImage backBtnImg(&btnOutline);
- GuiImage backBtnImgOver(&btnOutlineOver);
- GuiButton backBtn(btnOutline.GetWidth(), btnOutline.GetHeight());
- backBtn.SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM);
- backBtn.SetPosition(100, -35);
- backBtn.SetLabel(&backBtnTxt);
- backBtn.SetImage(&backBtnImg);
- backBtn.SetImageOver(&backBtnImgOver);
- backBtn.SetSoundOver(&btnSoundOver);
- backBtn.SetSoundClick(&btnSoundClick);
- backBtn.SetTrigger(&trigA);
- backBtn.SetEffectGrow();
-
- GuiText resetBtnTxt("Reset Settings", 24, (GXColor){0, 0, 0, 255});
- GuiImage resetBtnImg(&btnOutline);
- GuiImage resetBtnImgOver(&btnOutlineOver);
- GuiButton resetBtn(btnOutline.GetWidth(), btnOutline.GetHeight());
- resetBtn.SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM);
- resetBtn.SetPosition(-100, -35);
- resetBtn.SetLabel(&resetBtnTxt);
- resetBtn.SetImage(&resetBtnImg);
- resetBtn.SetImageOver(&resetBtnImgOver);
- resetBtn.SetSoundOver(&btnSoundOver);
- resetBtn.SetSoundClick(&btnSoundClick);
- resetBtn.SetTrigger(&trigA);
- resetBtn.SetEffectGrow();
-
- HaltGui();
- GuiWindow w(screenwidth, screenheight);
- w.Append(&titleTxt);
- w.Append(&mappingBtn);
- w.Append(&videoBtn);
- w.Append(&savingBtn);
- w.Append(&menuBtn);
-
-#ifdef HW_RVL
- w.Append(&networkBtn);
-#endif
-
- w.Append(&backBtn);
- w.Append(&resetBtn);
-
- mainWindow->Append(&w);
-
- ResumeGui();
-
- while(menu == MENU_NONE)
- {
- VIDEO_WaitVSync ();
-
- if(mappingBtn.GetState() == STATE_CLICKED)
- {
- menu = MENU_SETTINGS_MAPPINGS;
- }
- else if(videoBtn.GetState() == STATE_CLICKED)
- {
- menu = MENU_SETTINGS_VIDEO;
- }
- else if(savingBtn.GetState() == STATE_CLICKED)
- {
- menu = MENU_SETTINGS_FILE;
- }
- else if(menuBtn.GetState() == STATE_CLICKED)
- {
- menu = MENU_SETTINGS_MENU;
- }
- else if(networkBtn.GetState() == STATE_CLICKED)
- {
- menu = MENU_SETTINGS_NETWORK;
- }
- else if(backBtn.GetState() == STATE_CLICKED)
- {
- menu = MENU_GAMESELECTION;
- }
- else if(resetBtn.GetState() == STATE_CLICKED)
- {
- resetBtn.ResetState();
-
- int choice = WindowPrompt(
- "Reset Settings",
- "Are you sure that you want to reset your settings?",
- "Yes",
- "No");
-
- if(choice == 1)
- DefaultSettings();
- }
- }
-
- if(menu == MENU_GAMESELECTION)
- SavePrefs(NOTSILENT);
-
- HaltGui();
- mainWindow->Remove(&w);
- return menu;
-}
/****************************************************************************
* MenuSettingsMappings
@@ -2079,7 +1992,7 @@ static int MenuSettingsMappings()
{
int menu = MENU_NONE;
- GuiText titleTxt("Settings - Button Mappings", 28, (GXColor){255, 255, 255, 255});
+ GuiText titleTxt("Game Settings - Button Mappings", 28, (GXColor){255, 255, 255, 255});
titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP);
titleTxt.SetPosition(50,50);
@@ -2164,17 +2077,17 @@ static int MenuSettingsMappings()
if(nesBtn.GetState() == STATE_CLICKED)
{
- menu = MENU_SETTINGS_MAPPINGS_CTRL;
+ menu = MENU_GAMESETTINGS_MAPPINGS_CTRL;
mapMenuCtrlNES = CTRL_PAD;
}
else if(zapperBtn.GetState() == STATE_CLICKED)
{
- menu = MENU_SETTINGS_MAPPINGS_CTRL;
+ menu = MENU_GAMESETTINGS_MAPPINGS_CTRL;
mapMenuCtrlNES = CTRL_ZAPPER;
}
else if(backBtn.GetState() == STATE_CLICKED)
{
- menu = MENU_SETTINGS;
+ menu = MENU_GAMESETTINGS;
}
}
HaltGui();
@@ -2188,7 +2101,7 @@ static int MenuSettingsMappingsController()
char menuTitle[100];
char menuSubtitle[100];
- sprintf(menuTitle, "Settings - Button Mappings");
+ sprintf(menuTitle, "Game Settings - Button Mappings");
GuiText titleTxt(menuTitle, 28, (GXColor){255, 255, 255, 255});
titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP);
titleTxt.SetPosition(50,30);
@@ -2328,27 +2241,27 @@ static int MenuSettingsMappingsController()
if(wiimoteBtn.GetState() == STATE_CLICKED)
{
- menu = MENU_SETTINGS_MAPPINGS_MAP;
+ menu = MENU_GAMESETTINGS_MAPPINGS_MAP;
mapMenuCtrl = CTRLR_WIIMOTE;
}
else if(nunchukBtn.GetState() == STATE_CLICKED)
{
- menu = MENU_SETTINGS_MAPPINGS_MAP;
+ menu = MENU_GAMESETTINGS_MAPPINGS_MAP;
mapMenuCtrl = CTRLR_NUNCHUK;
}
else if(classicBtn.GetState() == STATE_CLICKED)
{
- menu = MENU_SETTINGS_MAPPINGS_MAP;
+ menu = MENU_GAMESETTINGS_MAPPINGS_MAP;
mapMenuCtrl = CTRLR_CLASSIC;
}
else if(gamecubeBtn.GetState() == STATE_CLICKED)
{
- menu = MENU_SETTINGS_MAPPINGS_MAP;
+ menu = MENU_GAMESETTINGS_MAPPINGS_MAP;
mapMenuCtrl = CTRLR_GCPAD;
}
else if(backBtn.GetState() == STATE_CLICKED)
{
- menu = MENU_SETTINGS_MAPPINGS;
+ menu = MENU_GAMESETTINGS_MAPPINGS;
}
}
HaltGui();
@@ -2489,7 +2402,7 @@ static int MenuSettingsMappingsMap()
char menuTitle[100];
char menuSubtitle[100];
- sprintf(menuTitle, "Settings - Button Mappings");
+ sprintf(menuTitle, "Game Settings - Button Mappings");
GuiText titleTxt(menuTitle, 28, (GXColor){255, 255, 255, 255});
titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP);
@@ -2595,7 +2508,7 @@ static int MenuSettingsMappingsMap()
if(backBtn.GetState() == STATE_CLICKED)
{
- menu = MENU_SETTINGS_MAPPINGS_CTRL;
+ menu = MENU_GAMESETTINGS_MAPPINGS_CTRL;
}
}
HaltGui();
@@ -2828,7 +2741,7 @@ static int MenuSettingsVideo()
sprintf(options.name[i++], "Screen Position");
options.length = i;
- GuiText titleTxt("Settings - Video", 28, (GXColor){255, 255, 255, 255});
+ GuiText titleTxt("Game Settings - Video", 28, (GXColor){255, 255, 255, 255});
titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP);
titleTxt.SetPosition(50,50);
@@ -2945,7 +2858,7 @@ static int MenuSettingsVideo()
if(backBtn.GetState() == STATE_CLICKED)
{
- menu = MENU_SETTINGS;
+ menu = MENU_GAMESETTINGS;
}
}
HaltGui();
@@ -2955,6 +2868,177 @@ static int MenuSettingsVideo()
return menu;
}
+/****************************************************************************
+ * MenuSettings
+ ***************************************************************************/
+static int MenuSettings()
+{
+ int menu = MENU_NONE;
+
+ GuiText titleTxt("Settings", 28, (GXColor){255, 255, 255, 255});
+ titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP);
+ titleTxt.SetPosition(50,50);
+
+ GuiSound btnSoundOver(button_over_pcm, button_over_pcm_size, SOUND_PCM);
+ GuiSound btnSoundClick(button_click_pcm, button_click_pcm_size, SOUND_PCM);
+ GuiImageData btnOutline(button_png);
+ GuiImageData btnOutlineOver(button_over_png);
+ GuiImageData btnLargeOutline(button_large_png);
+ GuiImageData btnLargeOutlineOver(button_large_over_png);
+ GuiImageData iconFile(icon_settings_file_png);
+ GuiImageData iconMenu(icon_settings_menu_png);
+ GuiImageData iconNetwork(icon_settings_network_png);
+
+ GuiTrigger trigA;
+ if(GCSettings.WiimoteOrientation)
+ trigA.SetSimpleTrigger(-1, WPAD_BUTTON_2 | WPAD_CLASSIC_BUTTON_A, PAD_BUTTON_A);
+ else
+ trigA.SetSimpleTrigger(-1, WPAD_BUTTON_A | WPAD_CLASSIC_BUTTON_A, PAD_BUTTON_A);
+
+ GuiText savingBtnTxt1("Saving", 24, (GXColor){0, 0, 0, 255});
+ GuiText savingBtnTxt2("&", 18, (GXColor){0, 0, 0, 255});
+ GuiText savingBtnTxt3("Loading", 24, (GXColor){0, 0, 0, 255});
+ savingBtnTxt1.SetPosition(0, -20);
+ savingBtnTxt3.SetPosition(0, +20);
+ GuiImage savingBtnImg(&btnLargeOutline);
+ GuiImage savingBtnImgOver(&btnLargeOutlineOver);
+ GuiImage fileBtnIcon(&iconFile);
+ GuiButton savingBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight());
+ savingBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
+ savingBtn.SetPosition(-125, 120);
+ savingBtn.SetLabel(&savingBtnTxt1, 0);
+ savingBtn.SetLabel(&savingBtnTxt2, 1);
+ savingBtn.SetLabel(&savingBtnTxt3, 2);
+ savingBtn.SetImage(&savingBtnImg);
+ savingBtn.SetImageOver(&savingBtnImgOver);
+ savingBtn.SetIcon(&fileBtnIcon);
+ savingBtn.SetSoundOver(&btnSoundOver);
+ savingBtn.SetSoundClick(&btnSoundClick);
+ savingBtn.SetTrigger(&trigA);
+ savingBtn.SetEffectGrow();
+
+ GuiText menuBtnTxt("Menu", 24, (GXColor){0, 0, 0, 255});
+ menuBtnTxt.SetMaxWidth(btnLargeOutline.GetWidth()-30);
+ GuiImage menuBtnImg(&btnLargeOutline);
+ GuiImage menuBtnImgOver(&btnLargeOutlineOver);
+ GuiImage menuBtnIcon(&iconMenu);
+ GuiButton menuBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight());
+ menuBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
+ menuBtn.SetPosition(125, 120);
+ menuBtn.SetLabel(&menuBtnTxt);
+ menuBtn.SetImage(&menuBtnImg);
+ menuBtn.SetImageOver(&menuBtnImgOver);
+ menuBtn.SetIcon(&menuBtnIcon);
+ menuBtn.SetSoundOver(&btnSoundOver);
+ menuBtn.SetSoundClick(&btnSoundClick);
+ menuBtn.SetTrigger(&trigA);
+ menuBtn.SetEffectGrow();
+
+ GuiText networkBtnTxt("Network", 24, (GXColor){0, 0, 0, 255});
+ networkBtnTxt.SetMaxWidth(btnLargeOutline.GetWidth()-30);
+ GuiImage networkBtnImg(&btnLargeOutline);
+ GuiImage networkBtnImgOver(&btnLargeOutlineOver);
+ GuiImage networkBtnIcon(&iconNetwork);
+ GuiButton networkBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight());
+ networkBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
+ networkBtn.SetPosition(0, 250);
+ networkBtn.SetLabel(&networkBtnTxt);
+ networkBtn.SetImage(&networkBtnImg);
+ networkBtn.SetImageOver(&networkBtnImgOver);
+ networkBtn.SetIcon(&networkBtnIcon);
+ networkBtn.SetSoundOver(&btnSoundOver);
+ networkBtn.SetSoundClick(&btnSoundClick);
+ networkBtn.SetTrigger(&trigA);
+ networkBtn.SetEffectGrow();
+
+ GuiText backBtnTxt("Go Back", 24, (GXColor){0, 0, 0, 255});
+ GuiImage backBtnImg(&btnOutline);
+ GuiImage backBtnImgOver(&btnOutlineOver);
+ GuiButton backBtn(btnOutline.GetWidth(), btnOutline.GetHeight());
+ backBtn.SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM);
+ backBtn.SetPosition(100, -35);
+ backBtn.SetLabel(&backBtnTxt);
+ backBtn.SetImage(&backBtnImg);
+ backBtn.SetImageOver(&backBtnImgOver);
+ backBtn.SetSoundOver(&btnSoundOver);
+ backBtn.SetSoundClick(&btnSoundClick);
+ backBtn.SetTrigger(&trigA);
+ backBtn.SetEffectGrow();
+
+ GuiText resetBtnTxt("Reset Settings", 24, (GXColor){0, 0, 0, 255});
+ GuiImage resetBtnImg(&btnOutline);
+ GuiImage resetBtnImgOver(&btnOutlineOver);
+ GuiButton resetBtn(btnOutline.GetWidth(), btnOutline.GetHeight());
+ resetBtn.SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM);
+ resetBtn.SetPosition(-100, -35);
+ resetBtn.SetLabel(&resetBtnTxt);
+ resetBtn.SetImage(&resetBtnImg);
+ resetBtn.SetImageOver(&resetBtnImgOver);
+ resetBtn.SetSoundOver(&btnSoundOver);
+ resetBtn.SetSoundClick(&btnSoundClick);
+ resetBtn.SetTrigger(&trigA);
+ resetBtn.SetEffectGrow();
+
+ HaltGui();
+ GuiWindow w(screenwidth, screenheight);
+ w.Append(&titleTxt);
+ w.Append(&savingBtn);
+ w.Append(&menuBtn);
+
+#ifdef HW_RVL
+ w.Append(&networkBtn);
+#endif
+
+ w.Append(&backBtn);
+ w.Append(&resetBtn);
+
+ mainWindow->Append(&w);
+
+ ResumeGui();
+
+ while(menu == MENU_NONE)
+ {
+ VIDEO_WaitVSync ();
+
+ if(savingBtn.GetState() == STATE_CLICKED)
+ {
+ menu = MENU_SETTINGS_FILE;
+ }
+ else if(menuBtn.GetState() == STATE_CLICKED)
+ {
+ menu = MENU_SETTINGS_MENU;
+ }
+ else if(networkBtn.GetState() == STATE_CLICKED)
+ {
+ menu = MENU_SETTINGS_NETWORK;
+ }
+ else if(backBtn.GetState() == STATE_CLICKED)
+ {
+ menu = MENU_GAMESELECTION;
+ }
+ else if(resetBtn.GetState() == STATE_CLICKED)
+ {
+ resetBtn.ResetState();
+
+ int choice = WindowPrompt(
+ "Reset Settings",
+ "Are you sure that you want to reset your settings?",
+ "Yes",
+ "No");
+
+ if(choice == 1)
+ DefaultSettings();
+ }
+ }
+
+ if(menu == MENU_GAMESELECTION)
+ SavePrefs(NOTSILENT);
+
+ HaltGui();
+ mainWindow->Remove(&w);
+ return menu;
+}
+
/****************************************************************************
* MenuSettingsFile
***************************************************************************/
@@ -3476,24 +3560,27 @@ MainMenu (int menu)
case MENU_GAME_SAVE:
currentMenu = MenuGameSaves(1);
break;
- /*case MENU_GAME_CHEATS:
+ case MENU_GAMESETTINGS:
+ currentMenu = MenuGameSettings();
+ break;
+ case MENU_GAMESETTINGS_MAPPINGS:
+ currentMenu = MenuSettingsMappings();
+ break;
+ case MENU_GAMESETTINGS_MAPPINGS_CTRL:
+ currentMenu = MenuSettingsMappingsController();
+ break;
+ case MENU_GAMESETTINGS_MAPPINGS_MAP:
+ currentMenu = MenuSettingsMappingsMap();
+ break;
+ case MENU_GAMESETTINGS_VIDEO:
+ currentMenu = MenuSettingsVideo();
+ break;
+ /*case MENU_GAMESETTINGS_CHEATS:
currentMenu = MenuGameCheats();
break;*/
case MENU_SETTINGS:
currentMenu = MenuSettings();
break;
- case MENU_SETTINGS_MAPPINGS:
- currentMenu = MenuSettingsMappings();
- break;
- case MENU_SETTINGS_MAPPINGS_CTRL:
- currentMenu = MenuSettingsMappingsController();
- break;
- case MENU_SETTINGS_MAPPINGS_MAP:
- currentMenu = MenuSettingsMappingsMap();
- break;
- case MENU_SETTINGS_VIDEO:
- currentMenu = MenuSettingsVideo();
- break;
case MENU_SETTINGS_FILE:
currentMenu = MenuSettingsFile();
break;
diff --git a/source/ngc/menu.h b/source/ngc/menu.h
index 3f6bb43..82f8fa1 100644
--- a/source/ngc/menu.h
+++ b/source/ngc/menu.h
@@ -28,10 +28,6 @@ enum
MENU_EXIT = -1,
MENU_NONE,
MENU_SETTINGS,
- MENU_SETTINGS_MAPPINGS,
- MENU_SETTINGS_MAPPINGS_CTRL,
- MENU_SETTINGS_MAPPINGS_MAP,
- MENU_SETTINGS_VIDEO,
MENU_SETTINGS_FILE,
MENU_SETTINGS_MENU,
MENU_SETTINGS_NETWORK,
@@ -39,7 +35,12 @@ enum
MENU_GAME,
MENU_GAME_SAVE,
MENU_GAME_LOAD,
- MENU_GAME_CHEATS
+ MENU_GAMESETTINGS,
+ MENU_GAMESETTINGS_MAPPINGS,
+ MENU_GAMESETTINGS_MAPPINGS_CTRL,
+ MENU_GAMESETTINGS_MAPPINGS_MAP,
+ MENU_GAMESETTINGS_VIDEO,
+ MENU_GAMESETTINGS_CHEATS
};
#endif
diff --git a/update.xml b/update.xml
index b88d95a..95db49c 100644
--- a/update.xml
+++ b/update.xml
@@ -1,4 +1,4 @@
-
-
+
+