mirror of https://github.com/PCSX2/pcsx2.git
VMManager: Cycle/autoeject memory cards when files change
Hopefully should fix card changes not getting picked up in some games.
This commit is contained in:
parent
cf07f4aef1
commit
547b2fc9e8
|
@ -121,6 +121,7 @@ extern void sioWrite8(u8 value);
|
|||
extern void sioWriteCtrl16(u16 value);
|
||||
extern void sioInterrupt();
|
||||
extern void sioInterruptR();
|
||||
extern void SetForceMcdEjectTimeoutNow(uint port, uint slot);
|
||||
extern void SetForceMcdEjectTimeoutNow();
|
||||
extern void ClearMcdEjectTimeoutNow();
|
||||
extern void sioStatRead();
|
||||
|
|
|
@ -1535,6 +1535,21 @@ void VMManager::CheckForMemoryCardConfigChanges(const Pcsx2Config& old_config)
|
|||
FileMcd_EmuClose();
|
||||
FileMcd_EmuOpen();
|
||||
|
||||
// force card eject when files change
|
||||
for (u32 port = 0; port < 2; port++)
|
||||
{
|
||||
for (u32 slot = 0; slot < 4; slot++)
|
||||
{
|
||||
const uint index = FileMcd_ConvertToSlot(port, slot);
|
||||
if (EmuConfig.Mcd[index].Enabled != old_config.Mcd[index].Enabled ||
|
||||
EmuConfig.Mcd[index].Filename != old_config.Mcd[index].Filename)
|
||||
{
|
||||
Console.WriteLn("Replugging memory card %u (port %u slot %u) due to source change", index, port, slot);
|
||||
SetForceMcdEjectTimeoutNow(port, slot);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// force reindexing, mc folder code is janky
|
||||
std::string sioSerial;
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue