Memcard: Stop Folder memcards double reindexing

This commit is contained in:
refractionpcsx2 committed 2023-06-26 14:45:50 +01:00
1 parent c40e132284
commit d51d51b3cc
3 files changed
+15 -6

No files matched your search

+11 -6
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)
+1
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();
+3
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;
}