mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-22 05:40:01 -06:00
Wiimote: Reset variables on Shutdown(). I think this makes DoesChannelExist(scid) in the Core to return false.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2116 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
@ -41,10 +41,10 @@ namespace WiiMoteEmu
|
|||||||
// Definitions and variable declarations
|
// Definitions and variable declarations
|
||||||
//******************************************************************************
|
//******************************************************************************
|
||||||
|
|
||||||
u8 g_Leds = 0x0; // 4 bits
|
u8 g_Leds;
|
||||||
u8 g_Speaker = 0x0; // 1 = on
|
u8 g_Speaker;
|
||||||
u8 g_SpeakerVoice = 0x0; // 1 = on
|
u8 g_SpeakerVoice;
|
||||||
u8 g_IR = 0x0; // 1 = on
|
u8 g_IR;
|
||||||
|
|
||||||
u8 g_Eeprom[WIIMOTE_EEPROM_SIZE];
|
u8 g_Eeprom[WIIMOTE_EEPROM_SIZE];
|
||||||
u8 g_RegSpeaker[WIIMOTE_REG_SPEAKER_SIZE];
|
u8 g_RegSpeaker[WIIMOTE_REG_SPEAKER_SIZE];
|
||||||
|
@ -236,6 +236,19 @@ void UpdateEeprom()
|
|||||||
WiiMoteEmu::g_Eeprom[22], WiiMoteEmu::g_Eeprom[23], WiiMoteEmu::g_Eeprom[27]);
|
WiiMoteEmu::g_Eeprom[22], WiiMoteEmu::g_Eeprom[23], WiiMoteEmu::g_Eeprom[27]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Set initial values
|
||||||
|
void ResetVariables()
|
||||||
|
{
|
||||||
|
u8 g_Leds = 0x0; // 4 bits
|
||||||
|
u8 g_Speaker = 0x0; // 1 = on
|
||||||
|
u8 g_SpeakerVoice = 0x0; // 1 = on
|
||||||
|
u8 g_IR = 0x0; // 1 = on
|
||||||
|
|
||||||
|
g_ReportingMode = 0;
|
||||||
|
g_ReportingChannel = 0;
|
||||||
|
|
||||||
|
g_EmulatedWiiMoteInitialized = false;
|
||||||
|
}
|
||||||
|
|
||||||
// ===================================================
|
// ===================================================
|
||||||
/* Write initial values to Eeprom and registers. */
|
/* Write initial values to Eeprom and registers. */
|
||||||
@ -244,6 +257,9 @@ void Initialize()
|
|||||||
{
|
{
|
||||||
if (g_EmulatedWiiMoteInitialized) return;
|
if (g_EmulatedWiiMoteInitialized) return;
|
||||||
|
|
||||||
|
// Reset variables
|
||||||
|
ResetVariables();
|
||||||
|
|
||||||
// Write default Eeprom data
|
// Write default Eeprom data
|
||||||
memset(g_Eeprom, 0, WIIMOTE_EEPROM_SIZE);
|
memset(g_Eeprom, 0, WIIMOTE_EEPROM_SIZE);
|
||||||
memcpy(g_Eeprom, EepromData_0, sizeof(EepromData_0));
|
memcpy(g_Eeprom, EepromData_0, sizeof(EepromData_0));
|
||||||
@ -297,10 +313,12 @@ void DoState(void* ptr, int mode)
|
|||||||
//TODO: implement
|
//TODO: implement
|
||||||
}
|
}
|
||||||
|
|
||||||
/* We don't need to do anything here. All values will be reset as FreeLibrary() is called
|
/* This is not needed if we call FreeLibrary() when we stop a game, but if it's not called we need to reset
|
||||||
when we stop a game */
|
these variables. */
|
||||||
void Shutdown(void)
|
void Shutdown(void)
|
||||||
{}
|
{
|
||||||
|
ResetVariables();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// ===================================================
|
// ===================================================
|
||||||
|
@ -249,8 +249,8 @@ void ReadWiimote()
|
|||||||
std::string Temp;
|
std::string Temp;
|
||||||
|
|
||||||
/* Timeout for data reading. This is used in Initialize() to read the Eeprom, if we have not gotten
|
/* Timeout for data reading. This is used in Initialize() to read the Eeprom, if we have not gotten
|
||||||
what we wanted in the WIIUSE_READ_DATA case we stop this loop to avoid interference with the regular
|
what we wanted in the WIIUSE_READ_DATA case we stop this loop and enable the regular
|
||||||
wiiuse_io_read() and wiiuse_io_write() communication. */
|
wiiuse_io_read() and wiiuse_io_write() loop again. */
|
||||||
if (g_RunTemporary)
|
if (g_RunTemporary)
|
||||||
{
|
{
|
||||||
// This holds if the update rate of wiiuse_poll() is kept at the default value of 10 ms
|
// This holds if the update rate of wiiuse_poll() is kept at the default value of 10 ms
|
||||||
|
Reference in New Issue
Block a user