Memcard: Stop Folder memcards double reindexing

This commit is contained in:
refractionpcsx2 2023-06-24 11:17:49 +01:00
parent c40e132284
commit d51d51b3cc
3 changed files with 15 additions and 6 deletions

View File

@ -620,11 +620,8 @@ uint FileMcd_ConvertToSlot(uint port, uint slot)
return slot + 4; // multitap 2
}
void FileMcd_EmuOpen()
void FileMcd_SetType()
{
if(FileMcd_Open)
return;
FileMcd_Open = true;
// detect inserted memory card types
for (uint slot = 0; slot < 8; ++slot)
{
@ -643,6 +640,14 @@ void FileMcd_EmuOpen()
EmuConfig.Mcd[slot].Type = type;
}
}
}
void FileMcd_EmuOpen()
{
if(FileMcd_Open)
return;
FileMcd_Open = true;
Mcd::impl.Open();
Mcd::implFolder.SetFiltering(EmuConfig.McdFolderAutoManage);
@ -667,9 +672,9 @@ void FileMcd_Reopen(std::string new_serial)
{
Console.WriteLn("Reopening memory cards...");
FileMcd_EmuClose();
FileMcd_EmuOpen();
FileMcd_SetType();
sioSetGameSerial(new_serial);
FileMcd_EmuOpen();
}
s32 FileMcd_IsPresent(uint port, uint slot)

View File

@ -45,6 +45,7 @@ extern bool FileMcd_IsMultitapSlot(uint slot);
extern std::string FileMcd_GetDefaultName(uint slot);
uint FileMcd_ConvertToSlot(uint port, uint slot);
void FileMcd_SetType();
void FileMcd_EmuOpen();
void FileMcd_EmuClose();
void FileMcd_CancelEject();

View File

@ -234,6 +234,7 @@ void FolderMemoryCard::Close(bool flush)
m_oldDataCache.clear();
m_lastAccessedFile.CloseAll();
m_fileMetadataQuickAccess.clear();
m_isEnabled = false;
}
bool FolderMemoryCard::ReIndex(bool enableFiltering, const std::string& filter)
@ -2394,5 +2395,7 @@ bool FolderMemoryCardAggregator::ReIndex(uint slot, const bool enableFiltering,
return true;
}
SetFiltering(enableFiltering);
m_lastKnownFilter = filter;
return false;
}