diff --git a/pcsx2-qt/Translations/pcsx2-qt_en.ts b/pcsx2-qt/Translations/pcsx2-qt_en.ts
index 54866da7e3..c0cf2bf23e 100644
--- a/pcsx2-qt/Translations/pcsx2-qt_en.ts
+++ b/pcsx2-qt/Translations/pcsx2-qt_en.ts
@@ -3673,42 +3673,42 @@ Achievements: %5 (%6)
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/GS/Renderers/Common/GSRenderer.cpp" line="437"/>
+        <location filename="../../pcsx2/GS/Renderers/Common/GSRenderer.cpp" line="431"/>
         <source>Saving screenshot to &apos;{}&apos;.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/GS/Renderers/Common/GSRenderer.cpp" line="449"/>
+        <location filename="../../pcsx2/GS/Renderers/Common/GSRenderer.cpp" line="443"/>
         <source>Saved screenshot to &apos;{}&apos;.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/GS/Renderers/Common/GSRenderer.cpp" line="456"/>
+        <location filename="../../pcsx2/GS/Renderers/Common/GSRenderer.cpp" line="450"/>
         <source>Failed to save screenshot to &apos;{}&apos;.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/GS/Renderers/Common/GSRenderer.cpp" line="527"/>
+        <location filename="../../pcsx2/GS/Renderers/Common/GSRenderer.cpp" line="521"/>
         <source>Host GPU device encountered an error and was recovered. This may have broken rendering.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/GS/Renderers/Common/GSRenderer.cpp" line="631"/>
+        <location filename="../../pcsx2/GS/Renderers/Common/GSRenderer.cpp" line="625"/>
         <source>CAS is not available, your graphics driver does not support the required functionality.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/GS/Renderers/Common/GSRenderer.cpp" line="706"/>
+        <location filename="../../pcsx2/GS/Renderers/Common/GSRenderer.cpp" line="700"/>
         <source>Saving {0} GS dump {1} to &apos;{2}&apos;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/GS/Renderers/Common/GSRenderer.cpp" line="727"/>
+        <location filename="../../pcsx2/GS/Renderers/Common/GSRenderer.cpp" line="721"/>
         <source>Failed to render/download screenshot.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/GS/Renderers/Common/GSRenderer.cpp" line="738"/>
+        <location filename="../../pcsx2/GS/Renderers/Common/GSRenderer.cpp" line="732"/>
         <source>Saved GS dump to &apos;{}&apos;.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3728,7 +3728,7 @@ Achievements: %5 (%6)
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp" line="2952"/>
+        <location filename="../../pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp" line="2942"/>
         <source>Spin GPU During Readbacks is enabled, but calibrated timestamps are unavailable.  This might be really slow.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -6695,272 +6695,272 @@ Swap chain: see Microsoft&apos;s Terminology Portal.</extracomment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="47"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="48"/>
         <source>Target speed set to {:.0f}%.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="65"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="66"/>
         <source>Volume: Muted</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="70"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="71"/>
         <source>Volume: {}%</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="105"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="106"/>
         <source>Save slot {} selected (last save: {}).</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="111"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="112"/>
         <source>Save slot {} selected (no save yet).</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="123"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="124"/>
         <source>No save state found in slot {}.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="137"/>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="143"/>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="148"/>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="155"/>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="159"/>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="164"/>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="173"/>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="181"/>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="189"/>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="206"/>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="211"/>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="216"/>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="221"/>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="226"/>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="231"/>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="235"/>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="240"/>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="245"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="138"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="144"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="149"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="156"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="160"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="165"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="174"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="182"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="190"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="207"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="212"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="217"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="222"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="227"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="232"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="236"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="241"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="246"/>
         <source>System</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="137"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="138"/>
         <source>Open Pause Menu</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="144"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="145"/>
         <source>Open Achievements List</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="149"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="150"/>
         <source>Open Leaderboards List</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="155"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="156"/>
         <source>Toggle Pause</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="159"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="160"/>
         <source>Toggle Fullscreen</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="164"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="165"/>
         <source>Toggle Frame Limit</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="174"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="175"/>
         <source>Toggle Turbo / Fast Forward</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="181"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="182"/>
         <source>Toggle Slow Motion</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="190"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="191"/>
         <source>Turbo / Fast Forward (Hold)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="206"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="207"/>
         <source>Increase Target Speed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="211"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="212"/>
         <source>Decrease Target Speed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="216"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="217"/>
         <source>Increase Volume</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="221"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="222"/>
         <source>Decrease Volume</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="226"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="227"/>
         <source>Toggle Mute</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="231"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="232"/>
         <source>Frame Advance</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="235"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="236"/>
         <source>Shut Down Virtual Machine</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="240"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="241"/>
         <source>Reset Virtual Machine</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="246"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="247"/>
         <source>Toggle Input Recording Mode</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="251"/>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="256"/>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="261"/>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="266"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="252"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="257"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="262"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="267"/>
         <source>Save States</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="252"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="253"/>
         <source>Select Previous Save Slot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="257"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="258"/>
         <source>Select Next Save Slot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="262"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="263"/>
         <source>Save State To Selected Slot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="267"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="268"/>
         <source>Load State From Selected Slot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="282"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="283"/>
         <source>Save State To Slot 1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="283"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="284"/>
         <source>Load State From Slot 1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="284"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="285"/>
         <source>Save State To Slot 2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="285"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="286"/>
         <source>Load State From Slot 2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="286"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="287"/>
         <source>Save State To Slot 3</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="287"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="288"/>
         <source>Load State From Slot 3</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="288"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="289"/>
         <source>Save State To Slot 4</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="289"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="290"/>
         <source>Load State From Slot 4</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="290"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="291"/>
         <source>Save State To Slot 5</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="291"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="292"/>
         <source>Load State From Slot 5</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="292"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="293"/>
         <source>Save State To Slot 6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="293"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="294"/>
         <source>Load State From Slot 6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="294"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="295"/>
         <source>Save State To Slot 7</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="295"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="296"/>
         <source>Load State From Slot 7</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="296"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="297"/>
         <source>Save State To Slot 8</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="297"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="298"/>
         <source>Load State From Slot 8</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="298"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="299"/>
         <source>Save State To Slot 9</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="299"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="300"/>
         <source>Load State From Slot 9</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="300"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="301"/>
         <source>Save State To Slot 10</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Hotkeys.cpp" line="301"/>
+        <location filename="../../pcsx2/Hotkeys.cpp" line="302"/>
         <source>Load State From Slot 10</source>
         <translation type="unfinished"></translation>
     </message>
@@ -8324,18 +8324,13 @@ The saves will not be recoverable.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Sio.cpp" line="212"/>
-        <source>Memory Card in port %d / slot %d reinserted</source>
+        <location filename="../../pcsx2/Sio.cpp" line="912"/>
+        <source>Memory card in port {} / slot {} reinserted</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/Sio.cpp" line="594"/>
-        <source>Memory Card in port {} / slot {} reinserted.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../pcsx2/Sio.cpp" line="934"/>
-        <source>Force ejecting all Memory Cards.</source>
+        <location filename="../../pcsx2/Sio.cpp" line="938"/>
+        <source>Force ejecting all Memory Cards. Reinserting in 1 second.</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -10861,207 +10856,207 @@ The URL was: %1</source>
 <context>
     <name>VMManager</name>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="1549"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="1538"/>
         <source>Failed to back up old save state {}.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="1572"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="1561"/>
         <source>Failed to save save state: {}.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="1589"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="1578"/>
         <source>State saved to slot {}.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="1596"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="1585"/>
         <source>Failed to save save state to slot {}.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="1683"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="1672"/>
         <source>There is no save state in slot {}.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="1696"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="1685"/>
         <source>Loading state from slot {}...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="1713"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="1702"/>
         <source>Saving state to slot {}...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="1775"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="1764"/>
         <source>Disc removed.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="1781"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="1770"/>
         <source>Disc changed to &apos;{}&apos;.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="1788"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="1777"/>
         <source>Failed to open new disc image &apos;{}&apos;. Reverting to old image.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="1796"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="1785"/>
         <source>Failed to switch back to old disc image. Removing disc.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="2228"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="2216"/>
         <source>Cheats have been disabled due to achievements hardcore mode.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="2282"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="2270"/>
         <source>Fast CDVD is enabled, this may break games.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="2286"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="2274"/>
         <source>Cycle rate/skip is not at default, this may crash or make games run too slow.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="2291"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="2279"/>
         <source>Audio is using async mix, expect desynchronization in FMVs.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="2294"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="2282"/>
         <source>Upscale multiplier is below native, this will break rendering.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="2298"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="2286"/>
         <source>Mipmapping is not set to automatic. This may break rendering in some games.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="2303"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="2291"/>
         <source>Texture filtering is not set to Bilinear (PS2). This will break rendering in some games.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="2309"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="2297"/>
         <source>Trilinear filtering is not set to automatic. This may break rendering in some games.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="2315"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="2303"/>
         <source>Blending is below basic, this may break effects in some games.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="2320"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="2308"/>
         <source>Hardware Download Mode is not set to Accurate, this may break rendering in some games.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="2326"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="2314"/>
         <source>EE FPU Round Mode is not set to default, this may break some games.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="2332"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="2320"/>
         <source>EE FPU Clamp Mode is not set to default, this may break some games.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="2338"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="2326"/>
         <source>VU Round Mode is not set to default, this may break some games.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="2345"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="2333"/>
         <source>VU Clamp Mode is not set to default, this may break some games.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="2350"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="2338"/>
         <source>Game Fixes are not enabled. Compatibility with some games may be affected.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="2355"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="2343"/>
         <source>Compatibility Patches are not enabled. Compatibility with some games may be affected.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="2359"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="2347"/>
         <source>Frame rate for NTSC is not default. This may break some games.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="2361"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="2349"/>
         <source>Frame rate for PAL is not default. This may break some games.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="2380"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="2368"/>
         <source>EE Recompiler is not enabled, this will significantly reduce performance.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="2385"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="2373"/>
         <source>VU0 Recompiler is not enabled, this will significantly reduce performance.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="2390"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="2378"/>
         <source>VU1 Recompiler is not enabled, this will significantly reduce performance.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="2395"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="2383"/>
         <source>IOP Recompiler is not enabled, this will significantly reduce performance.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="2400"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="2388"/>
         <source>EE Cache is enabled, this will significantly reduce performance.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="2405"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="2393"/>
         <source>EE Wait Loop Detection is not enabled, this may reduce performance.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="2410"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="2398"/>
         <source>INTC Spin Detection is not enabled, this may reduce performance.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="2415"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="2403"/>
         <source>Instant VU1 is disabled, this may reduce performance.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="2420"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="2408"/>
         <source>mVU Flag Hack is not enabled, this may reduce performance.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="2425"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="2413"/>
         <source>GPU Palette Conversion is enabled, this may reduce performance.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="2430"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="2418"/>
         <source>Texture Preloading is not Full, this may reduce performance.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../pcsx2/VMManager.cpp" line="2435"/>
+        <location filename="../../pcsx2/VMManager.cpp" line="2423"/>
         <source>Estimate texture region is enabled, this may reduce performance.</source>
         <translation type="unfinished"></translation>
     </message>
diff --git a/pcsx2/CDVD/CDVD.cpp b/pcsx2/CDVD/CDVD.cpp
index 30b3c09aaa..4c37387aa5 100644
--- a/pcsx2/CDVD/CDVD.cpp
+++ b/pcsx2/CDVD/CDVD.cpp
@@ -19,6 +19,7 @@
 #include "IopHw.h"
 #include "IopDma.h"
 #include "VMManager.h"
+#include "Sio.h"
 
 #include <cctype>
 #include <ctime>
@@ -1528,6 +1529,7 @@ void cdvdVsync()
 	cdvd.RTCcount = 0;
 
 	cdvdUpdateTrayState();
+	AutoEject::CountDownTicks();
 
 	cdvd.RTC.second++;
 	if (cdvd.RTC.second < 60)
diff --git a/pcsx2/MemoryCardFile.cpp b/pcsx2/MemoryCardFile.cpp
index a0c85a75ad..70f7310f18 100644
--- a/pcsx2/MemoryCardFile.cpp
+++ b/pcsx2/MemoryCardFile.cpp
@@ -24,6 +24,7 @@
 
 #include "MemoryCardFile.h"
 #include "MemoryCardFolder.h"
+#include "Sio.h"
 
 #include "System.h"
 #include "Config.h"
@@ -292,14 +293,11 @@ void FileMemoryCard::Open()
 			cont = true;
 		}
 
-		if (EmuConfig.Mcd[slot].Type != MemoryCardType::File)
-		{
-			str = "[is not memcard file]";
+		if (EmuConfig.Mcd[slot].Type == MemoryCardType::File)
+			Console.WriteLn(cont ? Color_Gray : Color_Green, fmt::format("McdSlot {} [File]: {}", slot, str));
+		else
 			cont = true;
-		}
 
-		Console.WriteLn(cont ? Color_Gray : Color_Green, "McdSlot %u [File]: %.*s", slot,
-			static_cast<int>(str.size()), str.data());
 		if (cont)
 			continue;
 
@@ -660,6 +658,20 @@ void FileMcd_EmuClose()
 	Mcd::impl.Close();
 }
 
+void FileMcd_CancelEject()
+{
+	AutoEject::ClearAll();
+}
+
+void FileMcd_Reopen(std::string new_serial)
+{
+	Console.WriteLn("Reopening memory cards...");
+	FileMcd_EmuClose();
+	FileMcd_EmuOpen();
+
+	sioSetGameSerial(new_serial);
+}
+
 s32 FileMcd_IsPresent(uint port, uint slot)
 {
 	const uint combinedSlot = FileMcd_ConvertToSlot(port, slot);
@@ -776,20 +788,25 @@ void FileMcd_NextFrame(uint port, uint slot)
 	}
 }
 
-bool FileMcd_ReIndex(uint port, uint slot, const std::string& filter)
+int FileMcd_ReIndex(uint port, uint slot, const std::string& filter)
 {
-	const uint combinedSlot = FileMcd_ConvertToSlot(port, slot);
+	const int combinedSlot = FileMcd_ConvertToSlot(port, slot);
+
 	switch (EmuConfig.Mcd[combinedSlot].Type)
 	{
 		//case MemoryCardType::File:
 		//	return Mcd::impl.ReIndex( combinedSlot, filter );
 		//	break;
 		case MemoryCardType::Folder:
-			return Mcd::implFolder.ReIndex(combinedSlot, EmuConfig.McdFolderAutoManage, filter);
+			if (!Mcd::implFolder.ReIndex(combinedSlot, EmuConfig.McdFolderAutoManage, filter))
+				return -1;
 			break;
 		default:
-			return false;
+				return -1;
+			break;
 	}
+
+	return combinedSlot;
 }
 
 // --------------------------------------------------------------------------------------
diff --git a/pcsx2/MemoryCardFile.h b/pcsx2/MemoryCardFile.h
index a0ad382de5..ea95f0589c 100644
--- a/pcsx2/MemoryCardFile.h
+++ b/pcsx2/MemoryCardFile.h
@@ -47,6 +47,8 @@ extern std::string FileMcd_GetDefaultName(uint slot);
 uint FileMcd_ConvertToSlot(uint port, uint slot);
 void FileMcd_EmuOpen();
 void FileMcd_EmuClose();
+void FileMcd_CancelEject();
+void FileMcd_Reopen(std::string new_serial);
 s32 FileMcd_IsPresent(uint port, uint slot);
 void FileMcd_GetSizeInfo(uint port, uint slot, McdSizeInfo* outways);
 bool FileMcd_IsPSX(uint port, uint slot);
@@ -55,7 +57,7 @@ s32 FileMcd_Save(uint port, uint slot, const u8* src, u32 adr, int size);
 s32 FileMcd_EraseBlock(uint port, uint slot, u32 adr);
 u64 FileMcd_GetCRC(uint port, uint slot);
 void FileMcd_NextFrame(uint port, uint slot);
-bool FileMcd_ReIndex(uint port, uint slot, const std::string& filter);
+int FileMcd_ReIndex(uint port, uint slot, const std::string& filter);
 
 std::vector<AvailableMcdInfo> FileMcd_GetAvailableCards(bool include_in_use_cards);
 std::optional<AvailableMcdInfo> FileMcd_GetCardInfo(const std::string_view& name);
diff --git a/pcsx2/Pcsx2Config.cpp b/pcsx2/Pcsx2Config.cpp
index d4c386a141..e5e7400eb8 100644
--- a/pcsx2/Pcsx2Config.cpp
+++ b/pcsx2/Pcsx2Config.cpp
@@ -1373,7 +1373,6 @@ Pcsx2Config::Pcsx2Config()
 	{
 		Mcd[slot].Enabled = !FileMcd_IsMultitapSlot(slot); // enables main 2 slots
 		Mcd[slot].Filename = FileMcd_GetDefaultName(slot);
-
 		// Folder memory card is autodetected later.
 		Mcd[slot].Type = MemoryCardType::File;
 	}
diff --git a/pcsx2/Sio.cpp b/pcsx2/Sio.cpp
index 967846785e..678b51d197 100644
--- a/pcsx2/Sio.cpp
+++ b/pcsx2/Sio.cpp
@@ -204,15 +204,6 @@ void Sio0::SetTxData(u8 value)
 					if (mcd->autoEjectTicks)
 					{
 						SetRxData(0x00);
-						mcd->autoEjectTicks--;
-
-						if (mcd->autoEjectTicks == 0)
-						{
-							Host::AddKeyedOSDMessage(fmt::format("AutoEjectSlotClear{}{}", port, slot),
-								fmt::format(TRANSLATE_SV("MemoryCard", "Memory Card in port %d / slot %d reinserted"),
-									port + 1, slot + 1),
-								Host::OSD_INFO_DURATION);
-						}
 
 						return;
 					}
@@ -585,16 +576,6 @@ void Sio2::Memcard()
 			fifoOut.push_back(0x00);
 		}
 
-		mcd->autoEjectTicks--;
-
-		if (mcd->autoEjectTicks == 0)
-		{
-			Host::AddKeyedOSDMessage(fmt::format("AutoEjectSlotClear{}{}", port, slot),
-				fmt::format(
-					TRANSLATE_SV("MemoryCard", "Memory Card in port {} / slot {} reinserted."), port + 1, slot + 1),
-				Host::OSD_INFO_DURATION);
-		}
-
 		return;
 	}
 
@@ -833,7 +814,8 @@ void sioNextFrame() {
 void sioSetGameSerial( const std::string& serial ) {
 	for ( uint port = 0; port < 2; ++port ) {
 		for ( uint slot = 0; slot < 4; ++slot ) {
-			if ( mcds[port][slot].ReIndex( serial ) ) {
+			if ( int index = mcds[port][slot].ReIndex( serial ) >= 0 ) {
+				Console.WriteLn("Ejecting Memory Card %u (port %u slot %u) due to source change. Reinsert in 1 second.", index, port, slot);
 				AutoEject::Set( port, slot );
 			}
 		}
@@ -915,11 +897,33 @@ bool sioPortAndSlotIsMultitap(u32 port, u32 slot)
 	return (slot != 0);
 }
 
+void AutoEject::CountDownTicks()
+{
+	bool reinserted = false;
+	for (size_t port = 0; port < SIO::PORTS; port++)
+	{
+		for (size_t slot = 0; slot < SIO::SLOTS; slot++)
+		{
+			if (mcds[port][slot].autoEjectTicks > 0)
+			{
+				if (--mcds[port][slot].autoEjectTicks == 0)
+				{
+					Host::AddKeyedOSDMessage(fmt::format("AutoEjectSlotClear{}{}", port, slot),
+						fmt::format(TRANSLATE_SV("MemoryCard", "Memory card in port {} / slot {} reinserted"),
+							port + 1, slot + 1),
+						Host::OSD_INFO_DURATION);
+				}
+			}
+		}
+	}
+}
+
 void AutoEject::Set(size_t port, size_t slot)
 {
-	if (EmuConfig.McdEnableEjection)
+	if (EmuConfig.McdEnableEjection && mcds[port][slot].autoEjectTicks == 0)
 	{
-		mcds[port][slot].autoEjectTicks = 60;
+		mcds[port][slot].autoEjectTicks = 1; // 1 second is enough.
+		mcds[port][slot].term = 0x55; // Reset terminator to default (0x55), forces the PS2 to recheck the memcard.
 	}
 }
 
@@ -931,7 +935,7 @@ void AutoEject::Clear(size_t port, size_t slot)
 void AutoEject::SetAll()
 {
 	Host::AddIconOSDMessage("AutoEjectAllSet", ICON_FA_SD_CARD,
-		TRANSLATE_SV("MemoryCard", "Force ejecting all Memory Cards."), Host::OSD_INFO_DURATION);
+		TRANSLATE_SV("MemoryCard", "Force ejecting all Memory Cards. Reinserting in 1 second."), Host::OSD_INFO_DURATION);
 
 	for (size_t port = 0; port < SIO::PORTS; port++)
 	{
diff --git a/pcsx2/Sio.h b/pcsx2/Sio.h
index 0445db7350..8525abf97a 100644
--- a/pcsx2/Sio.h
+++ b/pcsx2/Sio.h
@@ -99,7 +99,7 @@ struct _mcd
 		FileMcd_NextFrame( port, slot );
 	}
 
-	bool ReIndex(const std::string& filter) {
+	int ReIndex(const std::string& filter) {
 		return FileMcd_ReIndex(port, slot, filter);
 	}
 };
@@ -243,6 +243,7 @@ extern void sioSetGameSerial(const std::string& serial);
 
 namespace AutoEject
 {
+	extern void CountDownTicks();
 	extern void Set(size_t port, size_t slot);
 	extern void Clear(size_t port, size_t slot);
 	extern void SetAll();
diff --git a/pcsx2/VMManager.cpp b/pcsx2/VMManager.cpp
index 685af1f6b9..88e5b48d1b 100644
--- a/pcsx2/VMManager.cpp
+++ b/pcsx2/VMManager.cpp
@@ -627,9 +627,16 @@ void VMManager::Internal::UpdateEmuFolders()
 
 		if (EmuFolders::MemoryCards != old_memcards_directory)
 		{
-			FileMcd_EmuClose();
-			FileMcd_EmuOpen();
+			std::string memcardFilters = "";
+			if (const GameDatabaseSchema::GameEntry* game = GameDatabase::findGame(s_disc_serial))
+			{
+				memcardFilters = game->memcardFiltersAsString();
+			}
+
 			AutoEject::SetAll();
+
+			if(!GSDumpReplayer::IsReplayingDump())
+				FileMcd_Reopen(memcardFilters.empty() ? s_disc_serial : memcardFilters);
 		}
 
 		if (EmuFolders::Textures != old_textures_directory)
@@ -882,13 +889,6 @@ void VMManager::UpdateDiscDetails(bool booting)
 	Console.WriteLn(Color_StrongGreen, fmt::format("  Version: {}", s_disc_version));
 	Console.WriteLn(Color_StrongGreen, fmt::format("  CRC: {:08X}", s_disc_crc));
 
-	sioSetGameSerial(memcardFilters.empty() ? s_disc_serial : memcardFilters);
-
-	// If we don't reset the timer here, when using folder memcards the reindex will cause an eject,
-	// which a bunch of games don't like since they access the memory card on boot.
-	if (booting)
-		AutoEject::ClearAll();
-
 	UpdateGameSettingsLayer();
 	ApplySettings();
 
@@ -903,6 +903,9 @@ void VMManager::UpdateDiscDetails(bool booting)
 	Achievements::GameChanged(s_disc_crc, s_current_crc);
 	ReloadPINE();
 	UpdateDiscordPresence(Achievements::GetRichPresenceString());
+
+	if (!GSDumpReplayer::IsReplayingDump())
+		FileMcd_Reopen(memcardFilters.empty() ? s_disc_serial : memcardFilters);
 }
 
 void VMManager::ClearDiscDetails()
@@ -1145,17 +1148,11 @@ bool VMManager::Initialize(VMBootParameters boot_params)
 	}
 	ScopedGuard close_cdvd(&DoCDVDclose);
 
-	// Must be before updating serial because of folder memcards.
-	if (!GSDumpReplayer::IsReplayingDump())
-	{
-		Console.WriteLn("Opening Memory cards...");
-		FileMcd_EmuOpen();
-	}
-	ScopedGuard close_memcards(&FileMcd_EmuClose);
-
 	// Figure out which game we're running! This also loads game settings.
 	UpdateDiscDetails(true);
 
+	ScopedGuard close_memcards(&FileMcd_EmuClose);
+
 	// Read fast boot setting late so it can be overridden per-game.
 	// ELFs must be fast booted, and GS dumps are never fast booted.
 	s_fast_boot_requested =
@@ -1958,7 +1955,9 @@ void VMManager::Internal::EntryPointCompilingOnCPUThread()
 	HandleELFChange(true);
 
 	Patch::ApplyLoadedPatches(Patch::PPT_ONCE_ON_LOAD);
-
+	// If the config changes at this point, it's a reset, so the game doesn't currently know about the memcard
+	// so there's no need to leave the eject running.
+	FileMcd_CancelEject();
 	// Toss all the recs, we're going to be executing new code.
 	SysClearExecutionCache();
 }
@@ -2113,9 +2112,6 @@ void VMManager::CheckForMemoryCardConfigChanges(const Pcsx2Config& old_config)
 
 	Console.WriteLn("Updating memory card configuration");
 
-	FileMcd_EmuClose();
-	FileMcd_EmuOpen();
-
 	// force card eject when files change
 	for (u32 port = 0; port < 2; port++)
 	{
@@ -2130,7 +2126,6 @@ void VMManager::CheckForMemoryCardConfigChanges(const Pcsx2Config& old_config)
 			}
 		}
 	}
-
 	// force reindexing, mc folder code is janky
 	std::string sioSerial;
 	{
@@ -2140,7 +2135,9 @@ void VMManager::CheckForMemoryCardConfigChanges(const Pcsx2Config& old_config)
 		if (sioSerial.empty())
 			sioSerial = s_disc_serial;
 	}
-	sioSetGameSerial(sioSerial);
+
+	if (!GSDumpReplayer::IsReplayingDump())
+		FileMcd_Reopen(sioSerial);
 }
 
 void VMManager::CheckForMiscConfigChanges(const Pcsx2Config& old_config)