add option to disable rumble, auto-determine if HBC stub is present

This commit is contained in:
dborth 2009-05-20 05:26:32 +00:00
parent a6fa5c982d
commit d08fa5f0e3
6 changed files with 51 additions and 21 deletions

View File

@ -220,8 +220,7 @@ Gamecube:
--------- ---------
You can load FCEUGX via sdload and an SD card in slot A, or by streaming You can load FCEUGX via sdload and an SD card in slot A, or by streaming
it to your Gamecube, or by booting a bootable DVD with FCEUGX on it. it to your Gamecube, or by booting a bootable DVD with FCEUGX on it.
This document doesn't cover how to do any of that. A good source for information This document doesn't cover how to do any of that.
on these topics is the tehskeen forums: http://www.tehskeen.com/forums/
---------------------------- ----------------------------
ROMS, Preferences, and Saves: ROMS, Preferences, and Saves:
@ -303,8 +302,5 @@ Timing - NTSC or PAL (Depends if you're running a PAL or NTSC game)
FCEUGX Web Site FCEUGX Web Site
http://code.google.com/p/fceugc http://code.google.com/p/fceugc
TehSkeen Support Forums
http://www.tehskeen.net
¸,ø¤°`°¤ø,¸¸,ø¤°`°¤ø,¸,ø¤°`°¤ø,¸¸,ø¤°`°¤ø,¸,ø¤°`°¤ø,¸¸,ø¤°`°¤ø,¸,ø¤°`°¤ø,¸¸,ø¤ ¸,ø¤°`°¤ø,¸¸,ø¤°`°¤ø,¸,ø¤°`°¤ø,¸¸,ø¤°`°¤ø,¸,ø¤°`°¤ø,¸¸,ø¤°`°¤ø,¸,ø¤°`°¤ø,¸¸,ø¤

View File

@ -77,6 +77,7 @@ DefaultSettings ()
GCSettings.ExitAction = 0; GCSettings.ExitAction = 0;
GCSettings.MusicVolume = 40; GCSettings.MusicVolume = 40;
GCSettings.SFXVolume = 40; GCSettings.SFXVolume = 40;
GCSettings.Rumble = 1;
GCSettings.LoadMethod = METHOD_AUTO; // Auto, SD, DVD, USB, Network (SMB) GCSettings.LoadMethod = METHOD_AUTO; // Auto, SD, DVD, USB, Network (SMB)
GCSettings.SaveMethod = METHOD_AUTO; // Auto, SD, Memory Card Slot A, Memory Card Slot B, USB, Network (SMB) GCSettings.SaveMethod = METHOD_AUTO; // Auto, SD, Memory Card Slot A, Memory Card Slot B, USB, Network (SMB)

View File

@ -96,16 +96,26 @@ void ExitApp()
{ {
ExitCleanup(); ExitCleanup();
if(GCSettings.ExitAction == 0) // Exit to Loader #ifdef HW_RVL
if(GCSettings.ExitAction == 0) // Auto
{ {
#ifdef HW_RVL char * sig = (char *)0x80001804;
exit(0); if(
#else sig[0] == 'S' &&
if (psoid[0] == PSOSDLOADID) sig[1] == 'T' &&
PSOReload (); sig[2] == 'U' &&
#endif sig[3] == 'B' &&
sig[4] == 'H' &&
sig[5] == 'A' &&
sig[6] == 'X' &&
sig[7] == 'X')
GCSettings.ExitAction = 3; // Exit to HBC
else
GCSettings.ExitAction = 1; // HBC not found
} }
else if(GCSettings.ExitAction == 1) // Exit to Menu #endif
if(GCSettings.ExitAction == 1) // Exit to Menu
{ {
#ifdef HW_RVL #ifdef HW_RVL
SYS_ResetSystem(SYS_RETURNTOMENU, 0, 0); SYS_ResetSystem(SYS_RETURNTOMENU, 0, 0);
@ -114,10 +124,19 @@ void ExitApp()
*SOFTRESET_ADR = 0x00000000; *SOFTRESET_ADR = 0x00000000;
#endif #endif
} }
else // Shutdown Wii else if(GCSettings.ExitAction == 2) // Shutdown Wii
{ {
SYS_ResetSystem(SYS_POWEROFF, 0, 0); SYS_ResetSystem(SYS_POWEROFF, 0, 0);
} }
else // Exit to Loader
{
#ifdef HW_RVL
exit(0);
#else
if (psoid[0] == PSOSDLOADID)
PSOReload();
#endif
}
} }
#ifdef HW_RVL #ifdef HW_RVL

View File

@ -83,6 +83,7 @@ struct SGCSettings{
int ExitAction; int ExitAction;
int MusicVolume; int MusicVolume;
int SFXVolume; int SFXVolume;
int Rumble;
}; };
void ExitApp(); void ExitApp();

View File

@ -3289,6 +3289,7 @@ static int MenuSettingsMenu()
sprintf(options.name[i++], "Wiimote Orientation"); sprintf(options.name[i++], "Wiimote Orientation");
sprintf(options.name[i++], "Music Volume"); sprintf(options.name[i++], "Music Volume");
sprintf(options.name[i++], "Sound Effects Volume"); sprintf(options.name[i++], "Sound Effects Volume");
sprintf(options.name[i++], "Rumble");
options.length = i; options.length = i;
GuiText titleTxt("Settings - Menu", 28, (GXColor){255, 255, 255, 255}); GuiText titleTxt("Settings - Menu", 28, (GXColor){255, 255, 255, 255});
@ -3341,13 +3342,10 @@ static int MenuSettingsMenu()
sprintf (options.value[0], "Return to Wii Menu"); sprintf (options.value[0], "Return to Wii Menu");
else if (GCSettings.ExitAction == 2) else if (GCSettings.ExitAction == 2)
sprintf (options.value[0], "Power off Wii"); sprintf (options.value[0], "Power off Wii");
else else if (GCSettings.ExitAction == 3)
sprintf (options.value[0], "Return to Loader"); sprintf (options.value[0], "Return to Loader");
else
if (GCSettings.WiimoteOrientation == 0) sprintf (options.value[0], "Auto");
sprintf (options.value[1], "Vertical");
else if (GCSettings.WiimoteOrientation == 1)
sprintf (options.value[1], "Horizontal");
#else // GameCube #else // GameCube
if(GCSettings.ExitAction > 1) if(GCSettings.ExitAction > 1)
GCSettings.ExitAction = 0; GCSettings.ExitAction = 0;
@ -3359,8 +3357,14 @@ static int MenuSettingsMenu()
options.name[1][0] = 0; // Wiimote options.name[1][0] = 0; // Wiimote
options.name[2][0] = 0; // Music options.name[2][0] = 0; // Music
options.name[3][0] = 0; // Sound Effects options.name[3][0] = 0; // Sound Effects
options.name[4][0] = 0; // Rumble
#endif #endif
if (GCSettings.WiimoteOrientation == 0)
sprintf (options.value[1], "Vertical");
else if (GCSettings.WiimoteOrientation == 1)
sprintf (options.value[1], "Horizontal");
if(GCSettings.MusicVolume > 0) if(GCSettings.MusicVolume > 0)
sprintf(options.value[2], "%d%%", GCSettings.MusicVolume); sprintf(options.value[2], "%d%%", GCSettings.MusicVolume);
else else
@ -3371,13 +3375,18 @@ static int MenuSettingsMenu()
else else
sprintf(options.value[3], "Mute"); sprintf(options.value[3], "Mute");
if (GCSettings.Rumble == 1)
sprintf (options.value[4], "Enabled");
else
sprintf (options.value[4], "Disabled");
ret = optionBrowser.GetClickedOption(); ret = optionBrowser.GetClickedOption();
switch (ret) switch (ret)
{ {
case 0: case 0:
GCSettings.ExitAction++; GCSettings.ExitAction++;
if(GCSettings.ExitAction > 2) if(GCSettings.ExitAction > 3)
GCSettings.ExitAction = 0; GCSettings.ExitAction = 0;
break; break;
case 1: case 1:
@ -3394,6 +3403,9 @@ static int MenuSettingsMenu()
if(GCSettings.SFXVolume > 100) if(GCSettings.SFXVolume > 100)
GCSettings.SFXVolume = 0; GCSettings.SFXVolume = 0;
break; break;
case 4:
GCSettings.Rumble ^= 1;
break;
} }
if(backBtn.GetState() == STATE_CLICKED) if(backBtn.GetState() == STATE_CLICKED)

View File

@ -189,6 +189,7 @@ void ShutoffRumble()
void DoRumble(int i) void DoRumble(int i)
{ {
if(!GCSettings.Rumble) return;
if(rumbleRequest[i] && rumbleCount[i] < 3) if(rumbleRequest[i] && rumbleCount[i] < 3)
{ {
WPAD_Rumble(i, 1); // rumble on WPAD_Rumble(i, 1); // rumble on