add an option to not eject/reinsert memcards on save/load state
when off certain games like ZTP ZWW maybe other cannot save to a different memory card after loading from a savestate, but for TAS the game will no longer think that the card was ejected to use add ReloadMemcardOnState = false to dolphin.ini git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7323 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
610df4ab78
commit
83209b4afc
|
@ -209,6 +209,7 @@ void SConfig::SaveSettings()
|
||||||
ini.Set("Core", "SelectedLanguage", m_LocalCoreStartupParameter.SelectedLanguage);
|
ini.Set("Core", "SelectedLanguage", m_LocalCoreStartupParameter.SelectedLanguage);
|
||||||
ini.Set("Core", "MemcardA", m_strMemoryCardA);
|
ini.Set("Core", "MemcardA", m_strMemoryCardA);
|
||||||
ini.Set("Core", "MemcardB", m_strMemoryCardB);
|
ini.Set("Core", "MemcardB", m_strMemoryCardB);
|
||||||
|
ini.Set("Core", "ReloadMemcardOnState", b_reloadMCOnState);
|
||||||
ini.Set("Core", "SlotA", m_EXIDevice[0]);
|
ini.Set("Core", "SlotA", m_EXIDevice[0]);
|
||||||
ini.Set("Core", "SlotB", m_EXIDevice[1]);
|
ini.Set("Core", "SlotB", m_EXIDevice[1]);
|
||||||
ini.Set("Core", "SerialPort1", m_EXIDevice[2]);
|
ini.Set("Core", "SerialPort1", m_EXIDevice[2]);
|
||||||
|
@ -333,6 +334,7 @@ void SConfig::LoadSettings()
|
||||||
ini.Get("Core", "SelectedLanguage", &m_LocalCoreStartupParameter.SelectedLanguage, 0);
|
ini.Get("Core", "SelectedLanguage", &m_LocalCoreStartupParameter.SelectedLanguage, 0);
|
||||||
ini.Get("Core", "MemcardA", &m_strMemoryCardA);
|
ini.Get("Core", "MemcardA", &m_strMemoryCardA);
|
||||||
ini.Get("Core", "MemcardB", &m_strMemoryCardB);
|
ini.Get("Core", "MemcardB", &m_strMemoryCardB);
|
||||||
|
ini.Get("Core", "ReloadMemcardOnState", &b_reloadMCOnState, true);
|
||||||
ini.Get("Core", "SlotA", (int*)&m_EXIDevice[0], EXIDEVICE_MEMORYCARD_A);
|
ini.Get("Core", "SlotA", (int*)&m_EXIDevice[0], EXIDEVICE_MEMORYCARD_A);
|
||||||
ini.Get("Core", "SlotB", (int*)&m_EXIDevice[1], EXIDEVICE_NONE);
|
ini.Get("Core", "SlotB", (int*)&m_EXIDevice[1], EXIDEVICE_NONE);
|
||||||
ini.Get("Core", "SerialPort1", (int*)&m_EXIDevice[2], EXIDEVICE_NONE);
|
ini.Get("Core", "SerialPort1", (int*)&m_EXIDevice[2], EXIDEVICE_NONE);
|
||||||
|
|
|
@ -46,6 +46,10 @@ struct SConfig : NonCopyable
|
||||||
|
|
||||||
std::string m_strMemoryCardA;
|
std::string m_strMemoryCardA;
|
||||||
std::string m_strMemoryCardB;
|
std::string m_strMemoryCardB;
|
||||||
|
// eject and reload the memory card on state
|
||||||
|
// in ZTP and other games if the save file has been deleted from the memory card
|
||||||
|
//this is necessary to save after loading a savestate
|
||||||
|
bool b_reloadMCOnState;
|
||||||
TEXIDevices m_EXIDevice[3];
|
TEXIDevices m_EXIDevice[3];
|
||||||
TSIDevices m_SIDevice[4];
|
TSIDevices m_SIDevice[4];
|
||||||
std::string m_bba_mac;
|
std::string m_bba_mac;
|
||||||
|
|
|
@ -50,6 +50,7 @@ CEXIMemoryCard::CEXIMemoryCard(const std::string& _rName, const std::string& _rF
|
||||||
{
|
{
|
||||||
cards[_card_index] = this;
|
cards[_card_index] = this;
|
||||||
et_this_card = CoreTiming::RegisterEvent(_rName.c_str(), FlushCallback);
|
et_this_card = CoreTiming::RegisterEvent(_rName.c_str(), FlushCallback);
|
||||||
|
reloadOnState = SConfig::GetInstance().b_reloadMCOnState;
|
||||||
|
|
||||||
interruptSwitch = 0;
|
interruptSwitch = 0;
|
||||||
m_bInterruptSet = 0;
|
m_bInterruptSet = 0;
|
||||||
|
@ -432,8 +433,11 @@ void CEXIMemoryCard::TransferByte(u8 &byte)
|
||||||
|
|
||||||
void CEXIMemoryCard::DoState(PointerWrap &p)
|
void CEXIMemoryCard::DoState(PointerWrap &p)
|
||||||
{
|
{
|
||||||
int slot = 0;
|
if (reloadOnState)
|
||||||
if (GetFileName() == SConfig::GetInstance().m_strMemoryCardA)
|
{
|
||||||
slot = 1;
|
int slot = 0;
|
||||||
ExpansionInterface::ChangeDevice(slot, slot ? EXIDEVICE_MEMORYCARD_B : EXIDEVICE_MEMORYCARD_A, 0);
|
if (GetFileName() == SConfig::GetInstance().m_strMemoryCardA)
|
||||||
|
slot = 1;
|
||||||
|
ExpansionInterface::ChangeDevice(slot, slot ? EXIDEVICE_MEMORYCARD_B : EXIDEVICE_MEMORYCARD_A, 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,6 +72,7 @@ private:
|
||||||
std::string m_strFilename;
|
std::string m_strFilename;
|
||||||
int card_index;
|
int card_index;
|
||||||
int et_this_card;
|
int et_this_card;
|
||||||
|
bool reloadOnState;
|
||||||
//! memory card state
|
//! memory card state
|
||||||
|
|
||||||
// STATE_TO_SAVE
|
// STATE_TO_SAVE
|
||||||
|
|
Loading…
Reference in New Issue