finalize 4.0.1

This commit is contained in:
dborth 2009-04-13 19:36:33 +00:00
parent fe9d114fd0
commit fbfc422d35
10 changed files with 451 additions and 364 deletions

View File

@ -2,11 +2,10 @@
<app version="1"> <app version="1">
<name>Snes9X GX</name> <name>Snes9X GX</name>
<coder>Tantric, michniewski</coder> <coder>Tantric, michniewski</coder>
<version>4.0.0</version> <version>4.0.1</version>
<release_date>20090404</release_date> <release_date>20090413</release_date>
<short_description>Super Nintendo Emulator</short_description> <short_description>Super Nintendo Emulator</short_description>
<long_description> <long_description>
A Super Nintendo Emulator for Wii A Super Nintendo Emulator for Wii
Based on Snes9x 1.51 Based on Snes9x 1.51

View File

@ -10,7 +10,7 @@
­———————————————————————————————————————————————————————————————————————•ßrK• ­———————————————————————————————————————————————————————————————————————•ßrK•
×—–­—–­—–­—–­ –­—–­—–­—–­—–­—–­—–­—–­—–­—–­— ­—–­—–­—–­—–­—–­—–­—–­—-­—–­-–•¬ ×—–­—–­—–­—–­ –­—–­—–­—–­—–­—–­—–­—–­—–­—–­— ­—–­—–­—–­—–­—–­—–­—–­—-­—–­-–•¬
|0O×øo· Snes9x GX 4.0.0 ·oø×O0| |0O×øo· Snes9x GX 4.0.1 ·oø×O0|
| http://code.google.com/p/snes9x-gx | | http://code.google.com/p/snes9x-gx |
| (Under GPL License) | | (Under GPL License) |
`¨•¨¨¨¨¨ ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ ¨¨¨¨¨¨¨¨¨¨¨¨¨' `¨•¨¨¨¨¨ ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ ¨¨¨¨¨¨¨¨¨¨¨¨¨'
@ -48,6 +48,16 @@ guides on how to install and get homebrew working on your Nintendo Wii.
| UPDATE HISTORY | | UPDATE HISTORY |
•˜———–—––-- - —————————––––– ———–—––-- - —————————––––– ———–—––-- - ————————• •˜———–—––-- - —————————––––– ———–—––-- - —————————––––– ———–—––-- - ————————•
[4.0.1 - April 13, 2009]
* Fixed turning off autosave in menu
* Keyboard fixed, more keys added
* Fixed 7z loading from DVD
* Enable auto loading and renaming of SRAM save without "Auto" in the name
* PAL resolution fixed - no more letterboxing
* File browser scrollbar box now draggable, arrow buttons now scroll list
* Better handling of multiple on-screen wiimotes
* Menu restructured - new "Game Settings" menu
[4.0.0 - April 4, 2009] [4.0.0 - April 4, 2009]
* New GX-based menu, with a completely redesigned layout. Has Wiimote IR * New GX-based menu, with a completely redesigned layout. Has Wiimote IR

View File

@ -50,6 +50,8 @@ extern const u32 icon_settings_png_size;
extern const u8 icon_home_png[]; extern const u8 icon_home_png[];
extern const u32 icon_home_png_size; 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 u8 icon_game_cheats_png[];
extern const u32 icon_game_cheats_png_size; extern const u32 icon_game_cheats_png_size;
extern const u8 icon_game_controllers_png[]; extern const u8 icon_game_controllers_png[];

View File

@ -30,9 +30,6 @@ GuiFileBrowser::GuiFileBrowser(int w, int h)
trigA->SetSimpleTrigger(-1, WPAD_BUTTON_A | WPAD_CLASSIC_BUTTON_A, PAD_BUTTON_A); trigA->SetSimpleTrigger(-1, WPAD_BUTTON_A | WPAD_CLASSIC_BUTTON_A, PAD_BUTTON_A);
trigHeldA = new GuiTrigger; trigHeldA = new GuiTrigger;
if(GCSettings.WiimoteOrientation)
trigHeldA->SetHeldTrigger(-1, WPAD_BUTTON_2 | WPAD_CLASSIC_BUTTON_A, PAD_BUTTON_A);
else
trigHeldA->SetHeldTrigger(-1, WPAD_BUTTON_A | WPAD_CLASSIC_BUTTON_A, PAD_BUTTON_A); trigHeldA->SetHeldTrigger(-1, WPAD_BUTTON_A | WPAD_CLASSIC_BUTTON_A, PAD_BUTTON_A);
btnSoundOver = new GuiSound(button_over_pcm, button_over_pcm_size, SOUND_PCM); btnSoundOver = new GuiSound(button_over_pcm, button_over_pcm_size, SOUND_PCM);

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1140,8 +1140,7 @@ static int MenuGame()
GuiImageData btnCloseOutlineOver(button_small_over_png); GuiImageData btnCloseOutlineOver(button_small_over_png);
GuiImageData btnLargeOutline(button_large_png); GuiImageData btnLargeOutline(button_large_png);
GuiImageData btnLargeOutlineOver(button_large_over_png); GuiImageData btnLargeOutlineOver(button_large_over_png);
GuiImageData iconCheats(icon_game_cheats_png); GuiImageData iconGameSettings(icon_game_settings_png);
GuiImageData iconController(icon_game_controllers_png);
GuiImageData iconLoad(icon_game_load_png); GuiImageData iconLoad(icon_game_load_png);
GuiImageData iconSave(icon_game_save_png); GuiImageData iconSave(icon_game_save_png);
GuiImageData iconReset(icon_game_reset_png); GuiImageData iconReset(icon_game_reset_png);
@ -1164,8 +1163,8 @@ static int MenuGame()
GuiImage saveBtnImgOver(&btnLargeOutlineOver); GuiImage saveBtnImgOver(&btnLargeOutlineOver);
GuiImage saveBtnIcon(&iconSave); GuiImage saveBtnIcon(&iconSave);
GuiButton saveBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight()); GuiButton saveBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight());
saveBtn.SetAlignment(ALIGN_LEFT, ALIGN_TOP); saveBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
saveBtn.SetPosition(50, 120); saveBtn.SetPosition(-125, 120);
saveBtn.SetLabel(&saveBtnTxt); saveBtn.SetLabel(&saveBtnTxt);
saveBtn.SetImage(&saveBtnImg); saveBtn.SetImage(&saveBtnImg);
saveBtn.SetImageOver(&saveBtnImgOver); saveBtn.SetImageOver(&saveBtnImgOver);
@ -1181,7 +1180,7 @@ static int MenuGame()
GuiImage loadBtnIcon(&iconLoad); GuiImage loadBtnIcon(&iconLoad);
GuiButton loadBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight()); GuiButton loadBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight());
loadBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP); loadBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
loadBtn.SetPosition(0, 120); loadBtn.SetPosition(125, 120);
loadBtn.SetLabel(&loadBtnTxt); loadBtn.SetLabel(&loadBtnTxt);
loadBtn.SetImage(&loadBtnImg); loadBtn.SetImage(&loadBtnImg);
loadBtn.SetImageOver(&loadBtnImgOver); loadBtn.SetImageOver(&loadBtnImgOver);
@ -1196,8 +1195,8 @@ static int MenuGame()
GuiImage resetBtnImgOver(&btnLargeOutlineOver); GuiImage resetBtnImgOver(&btnLargeOutlineOver);
GuiImage resetBtnIcon(&iconReset); GuiImage resetBtnIcon(&iconReset);
GuiButton resetBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight()); GuiButton resetBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight());
resetBtn.SetAlignment(ALIGN_RIGHT, ALIGN_TOP); resetBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
resetBtn.SetPosition(-50, 120); resetBtn.SetPosition(125, 250);
resetBtn.SetLabel(&resetBtnTxt); resetBtn.SetLabel(&resetBtnTxt);
resetBtn.SetImage(&resetBtnImg); resetBtn.SetImage(&resetBtnImg);
resetBtn.SetImageOver(&resetBtnImgOver); resetBtn.SetImageOver(&resetBtnImgOver);
@ -1207,37 +1206,22 @@ static int MenuGame()
resetBtn.SetTrigger(&trigA); resetBtn.SetTrigger(&trigA);
resetBtn.SetEffectGrow(); resetBtn.SetEffectGrow();
GuiText controllerBtnTxt("Controller", 24, (GXColor){0, 0, 0, 255}); GuiText gameSettingsBtnTxt("Game Settings", 24, (GXColor){0, 0, 0, 255});
GuiImage controllerBtnImg(&btnLargeOutline); gameSettingsBtnTxt.SetMaxWidth(btnLargeOutline.GetWidth()-30);
GuiImage controllerBtnImgOver(&btnLargeOutlineOver); GuiImage gameSettingsBtnImg(&btnLargeOutline);
GuiImage controllerBtnIcon(&iconController); GuiImage gameSettingsBtnImgOver(&btnLargeOutlineOver);
GuiButton controllerBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight()); GuiImage gameSettingsBtnIcon(&iconGameSettings);
controllerBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP); GuiButton gameSettingsBtn(btnLargeOutline.GetWidth(), btnLargeOutline.GetHeight());
controllerBtn.SetPosition(-125, 250); gameSettingsBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
controllerBtn.SetLabel(&controllerBtnTxt); gameSettingsBtn.SetPosition(-125, 250);
controllerBtn.SetImage(&controllerBtnImg); gameSettingsBtn.SetLabel(&gameSettingsBtnTxt);
controllerBtn.SetImageOver(&controllerBtnImgOver); gameSettingsBtn.SetImage(&gameSettingsBtnImg);
controllerBtn.SetIcon(&controllerBtnIcon); gameSettingsBtn.SetImageOver(&gameSettingsBtnImgOver);
controllerBtn.SetSoundOver(&btnSoundOver); gameSettingsBtn.SetIcon(&gameSettingsBtnIcon);
controllerBtn.SetSoundClick(&btnSoundClick); gameSettingsBtn.SetSoundOver(&btnSoundOver);
controllerBtn.SetTrigger(&trigA); gameSettingsBtn.SetSoundClick(&btnSoundClick);
controllerBtn.SetEffectGrow(); gameSettingsBtn.SetTrigger(&trigA);
gameSettingsBtn.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 mainmenuBtnTxt("Main Menu", 24, (GXColor){0, 0, 0, 255}); GuiText mainmenuBtnTxt("Main Menu", 24, (GXColor){0, 0, 0, 255});
GuiImage mainmenuBtnImg(&btnOutline); GuiImage mainmenuBtnImg(&btnOutline);
@ -1314,8 +1298,7 @@ static int MenuGame()
w.Append(&saveBtn); w.Append(&saveBtn);
w.Append(&loadBtn); w.Append(&loadBtn);
w.Append(&resetBtn); w.Append(&resetBtn);
w.Append(&controllerBtn); w.Append(&gameSettingsBtn);
w.Append(&cheatsBtn);
#ifdef HW_RVL #ifdef HW_RVL
w.Append(batteryBtn[0]); w.Append(batteryBtn[0]);
@ -1347,12 +1330,7 @@ static int MenuGame()
batteryBtn[3]->SetEffect(EFFECT_SLIDE_BOTTOM | EFFECT_SLIDE_IN, 35); batteryBtn[3]->SetEffect(EFFECT_SLIDE_BOTTOM | EFFECT_SLIDE_IN, 35);
#endif #endif
saveBtn.SetEffect(EFFECT_FADE, 15); w.SetEffect(EFFECT_FADE, 15);
loadBtn.SetEffect(EFFECT_FADE, 15);
resetBtn.SetEffect(EFFECT_FADE, 15);
controllerBtn.SetEffect(EFFECT_FADE, 15);
cheatsBtn.SetEffect(EFFECT_FADE, 15);
AutoSave(); AutoSave();
} }
@ -1401,17 +1379,9 @@ static int MenuGame()
S9xSoftReset (); S9xSoftReset ();
menu = MENU_EXIT; 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) else if(mainmenuBtn.GetState() == STATE_CLICKED)
{ {
@ -1450,12 +1420,7 @@ static int MenuGame()
batteryBtn[3]->SetEffect(EFFECT_SLIDE_BOTTOM | EFFECT_SLIDE_OUT, 35); batteryBtn[3]->SetEffect(EFFECT_SLIDE_BOTTOM | EFFECT_SLIDE_OUT, 35);
#endif #endif
saveBtn.SetEffect(EFFECT_FADE, -20); w.SetEffect(EFFECT_FADE, -20);
loadBtn.SetEffect(EFFECT_FADE, -20);
resetBtn.SetEffect(EFFECT_FADE, -20);
controllerBtn.SetEffect(EFFECT_FADE, -20);
cheatsBtn.SetEffect(EFFECT_FADE, -20);
usleep(200000); // wait for effects to finish usleep(200000); // wait for effects to finish
} }
} }
@ -1759,6 +1724,199 @@ static int MenuGameSaves(int action)
return menu; 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(-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 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 * MenuGameCheats
* *
@ -1777,7 +1935,7 @@ static int MenuGameCheats()
options.length = i; 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.SetAlignment(ALIGN_LEFT, ALIGN_TOP);
titleTxt.SetPosition(50,50); titleTxt.SetPosition(50,50);
@ -1785,8 +1943,6 @@ static int MenuGameCheats()
GuiSound btnSoundClick(button_click_pcm, button_click_pcm_size, SOUND_PCM); GuiSound btnSoundClick(button_click_pcm, button_click_pcm_size, SOUND_PCM);
GuiImageData btnOutline(button_png); GuiImageData btnOutline(button_png);
GuiImageData btnOutlineOver(button_over_png); GuiImageData btnOutlineOver(button_over_png);
GuiImageData btnCloseOutline(button_small_png);
GuiImageData btnCloseOutlineOver(button_small_over_png);
GuiTrigger trigA; GuiTrigger trigA;
if(GCSettings.WiimoteOrientation) if(GCSettings.WiimoteOrientation)
@ -1794,9 +1950,6 @@ static int MenuGameCheats()
else else
trigA.SetSimpleTrigger(-1, WPAD_BUTTON_A | WPAD_CLASSIC_BUTTON_A, PAD_BUTTON_A); 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 backBtnTxt("Go Back", 24, (GXColor){0, 0, 0, 255}); GuiText backBtnTxt("Go Back", 24, (GXColor){0, 0, 0, 255});
GuiImage backBtnImg(&btnOutline); GuiImage backBtnImg(&btnOutline);
GuiImage backBtnImgOver(&btnOutlineOver); GuiImage backBtnImgOver(&btnOutlineOver);
@ -1811,21 +1964,6 @@ static int MenuGameCheats()
backBtn.SetTrigger(&trigA); backBtn.SetTrigger(&trigA);
backBtn.SetEffectGrow(); 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); GuiOptionBrowser optionBrowser(552, 248, &options);
optionBrowser.SetPosition(0, 108); optionBrowser.SetPosition(0, 108);
optionBrowser.SetAlignment(ALIGN_CENTRE, ALIGN_TOP); optionBrowser.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
@ -1833,7 +1971,6 @@ static int MenuGameCheats()
HaltGui(); HaltGui();
GuiWindow w(screenwidth, screenheight); GuiWindow w(screenwidth, screenheight);
w.Append(&backBtn); w.Append(&backBtn);
w.Append(&closeBtn);
mainWindow->Append(&optionBrowser); mainWindow->Append(&optionBrowser);
mainWindow->Append(&w); mainWindow->Append(&w);
mainWindow->Append(&titleTxt); mainWindow->Append(&titleTxt);
@ -1855,23 +1992,7 @@ static int MenuGameCheats()
if(backBtn.GetState() == STATE_CLICKED) if(backBtn.GetState() == STATE_CLICKED)
{ {
menu = MENU_GAME; menu = MENU_GAMESETTINGS;
}
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
} }
} }
HaltGui(); HaltGui();
@ -1881,223 +2002,6 @@ static int MenuGameCheats()
return menu; 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 * MenuSettingsMappings
***************************************************************************/ ***************************************************************************/
@ -2105,7 +2009,7 @@ static int MenuSettingsMappings()
{ {
int menu = MENU_NONE; 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.SetAlignment(ALIGN_LEFT, ALIGN_TOP);
titleTxt.SetPosition(50,50); titleTxt.SetPosition(50,50);
@ -2227,27 +2131,27 @@ static int MenuSettingsMappings()
if(snesBtn.GetState() == STATE_CLICKED) if(snesBtn.GetState() == STATE_CLICKED)
{ {
menu = MENU_SETTINGS_MAPPINGS_CTRL; menu = MENU_GAMESETTINGS_MAPPINGS_CTRL;
mapMenuCtrlSNES = CTRL_PAD; mapMenuCtrlSNES = CTRL_PAD;
} }
else if(superscopeBtn.GetState() == STATE_CLICKED) else if(superscopeBtn.GetState() == STATE_CLICKED)
{ {
menu = MENU_SETTINGS_MAPPINGS_CTRL; menu = MENU_GAMESETTINGS_MAPPINGS_CTRL;
mapMenuCtrlSNES = CTRL_SCOPE; mapMenuCtrlSNES = CTRL_SCOPE;
} }
else if(mouseBtn.GetState() == STATE_CLICKED) else if(mouseBtn.GetState() == STATE_CLICKED)
{ {
menu = MENU_SETTINGS_MAPPINGS_CTRL; menu = MENU_GAMESETTINGS_MAPPINGS_CTRL;
mapMenuCtrlSNES = CTRL_MOUSE; mapMenuCtrlSNES = CTRL_MOUSE;
} }
else if(justifierBtn.GetState() == STATE_CLICKED) else if(justifierBtn.GetState() == STATE_CLICKED)
{ {
menu = MENU_SETTINGS_MAPPINGS_CTRL; menu = MENU_GAMESETTINGS_MAPPINGS_CTRL;
mapMenuCtrlSNES = CTRL_JUST; mapMenuCtrlSNES = CTRL_JUST;
} }
else if(backBtn.GetState() == STATE_CLICKED) else if(backBtn.GetState() == STATE_CLICKED)
{ {
menu = MENU_SETTINGS; menu = MENU_GAMESETTINGS;
} }
} }
HaltGui(); HaltGui();
@ -2261,7 +2165,7 @@ static int MenuSettingsMappingsController()
char menuTitle[100]; char menuTitle[100];
char menuSubtitle[100]; char menuSubtitle[100];
sprintf(menuTitle, "Settings - Button Mappings"); sprintf(menuTitle, "Game Settings - Button Mappings");
GuiText titleTxt(menuTitle, 28, (GXColor){255, 255, 255, 255}); GuiText titleTxt(menuTitle, 28, (GXColor){255, 255, 255, 255});
titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP); titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP);
titleTxt.SetPosition(50,30); titleTxt.SetPosition(50,30);
@ -2401,27 +2305,27 @@ static int MenuSettingsMappingsController()
if(wiimoteBtn.GetState() == STATE_CLICKED) if(wiimoteBtn.GetState() == STATE_CLICKED)
{ {
menu = MENU_SETTINGS_MAPPINGS_MAP; menu = MENU_GAMESETTINGS_MAPPINGS_MAP;
mapMenuCtrl = CTRLR_WIIMOTE; mapMenuCtrl = CTRLR_WIIMOTE;
} }
else if(nunchukBtn.GetState() == STATE_CLICKED) else if(nunchukBtn.GetState() == STATE_CLICKED)
{ {
menu = MENU_SETTINGS_MAPPINGS_MAP; menu = MENU_GAMESETTINGS_MAPPINGS_MAP;
mapMenuCtrl = CTRLR_NUNCHUK; mapMenuCtrl = CTRLR_NUNCHUK;
} }
else if(classicBtn.GetState() == STATE_CLICKED) else if(classicBtn.GetState() == STATE_CLICKED)
{ {
menu = MENU_SETTINGS_MAPPINGS_MAP; menu = MENU_GAMESETTINGS_MAPPINGS_MAP;
mapMenuCtrl = CTRLR_CLASSIC; mapMenuCtrl = CTRLR_CLASSIC;
} }
else if(gamecubeBtn.GetState() == STATE_CLICKED) else if(gamecubeBtn.GetState() == STATE_CLICKED)
{ {
menu = MENU_SETTINGS_MAPPINGS_MAP; menu = MENU_GAMESETTINGS_MAPPINGS_MAP;
mapMenuCtrl = CTRLR_GCPAD; mapMenuCtrl = CTRLR_GCPAD;
} }
else if(backBtn.GetState() == STATE_CLICKED) else if(backBtn.GetState() == STATE_CLICKED)
{ {
menu = MENU_SETTINGS_MAPPINGS; menu = MENU_GAMESETTINGS_MAPPINGS;
} }
} }
HaltGui(); HaltGui();
@ -2563,7 +2467,7 @@ static int MenuSettingsMappingsMap()
char menuTitle[100]; char menuTitle[100];
char menuSubtitle[100]; char menuSubtitle[100];
sprintf(menuTitle, "Settings - Button Mappings"); sprintf(menuTitle, "Game Settings - Button Mappings");
GuiText titleTxt(menuTitle, 28, (GXColor){255, 255, 255, 255}); GuiText titleTxt(menuTitle, 28, (GXColor){255, 255, 255, 255});
titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP); titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP);
@ -2685,7 +2589,7 @@ static int MenuSettingsMappingsMap()
if(backBtn.GetState() == STATE_CLICKED) if(backBtn.GetState() == STATE_CLICKED)
{ {
menu = MENU_SETTINGS_MAPPINGS_CTRL; menu = MENU_GAMESETTINGS_MAPPINGS_CTRL;
} }
} }
HaltGui(); HaltGui();
@ -2917,7 +2821,7 @@ static int MenuSettingsVideo()
sprintf(options.name[i++], "Screen Position"); sprintf(options.name[i++], "Screen Position");
options.length = i; 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.SetAlignment(ALIGN_LEFT, ALIGN_TOP);
titleTxt.SetPosition(50,50); titleTxt.SetPosition(50,50);
@ -3015,7 +2919,7 @@ static int MenuSettingsVideo()
if(backBtn.GetState() == STATE_CLICKED) if(backBtn.GetState() == STATE_CLICKED)
{ {
menu = MENU_SETTINGS; menu = MENU_GAMESETTINGS;
} }
} }
HaltGui(); HaltGui();
@ -3025,6 +2929,177 @@ static int MenuSettingsVideo()
return menu; 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 * MenuSettingsFile
***************************************************************************/ ***************************************************************************/
@ -3553,24 +3628,27 @@ MainMenu (int menu)
case MENU_GAME_SAVE: case MENU_GAME_SAVE:
currentMenu = MenuGameSaves(1); currentMenu = MenuGameSaves(1);
break; 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(); currentMenu = MenuGameCheats();
break; break;
case MENU_SETTINGS: case MENU_SETTINGS:
currentMenu = MenuSettings(); currentMenu = MenuSettings();
break; 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: case MENU_SETTINGS_FILE:
currentMenu = MenuSettingsFile(); currentMenu = MenuSettingsFile();
break; break;

View File

@ -27,10 +27,6 @@ enum
MENU_EXIT = -1, MENU_EXIT = -1,
MENU_NONE, MENU_NONE,
MENU_SETTINGS, MENU_SETTINGS,
MENU_SETTINGS_MAPPINGS,
MENU_SETTINGS_MAPPINGS_CTRL,
MENU_SETTINGS_MAPPINGS_MAP,
MENU_SETTINGS_VIDEO,
MENU_SETTINGS_FILE, MENU_SETTINGS_FILE,
MENU_SETTINGS_MENU, MENU_SETTINGS_MENU,
MENU_SETTINGS_NETWORK, MENU_SETTINGS_NETWORK,
@ -38,7 +34,12 @@ enum
MENU_GAME, MENU_GAME,
MENU_GAME_SAVE, MENU_GAME_SAVE,
MENU_GAME_LOAD, 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 #endif

View File

@ -98,7 +98,7 @@ void UpdateCheck()
else // temporary, for compatibility else // temporary, for compatibility
{ {
int versionnum = atoi(version); int versionnum = atoi(version);
if(versionnum > 10) // 010 if(versionnum > 11) // 011
{ {
item = mxmlFindElement(xml, xml, "file", NULL, NULL, MXML_DESCEND); item = mxmlFindElement(xml, xml, "file", NULL, NULL, MXML_DESCEND);
if(item) if(item)

View File

@ -20,7 +20,7 @@
#include "filelist.h" #include "filelist.h"
#define APPNAME "Snes9x GX" #define APPNAME "Snes9x GX"
#define APPVERSION "4.0.0" #define APPVERSION "4.0.1"
#define PREF_FILE_NAME "settings.xml" #define PREF_FILE_NAME "settings.xml"
#define NOTSILENT 0 #define NOTSILENT 0

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<app version="010"> <app version="011">
<file url="http://snes9x-gx.googlecode.com/files/Snes9x%20GX%204.0.0%20-%20Wii.zip"></file> <file url="http://snes9x-gx.googlecode.com/files/Snes9x%20GX%204.0.1%20-%20Wii.zip"></file>
</app> </app>