diff --git a/frontend/src/pages/Play.svelte b/frontend/src/pages/Play.svelte index 67a0b6b..4498024 100644 --- a/frontend/src/pages/Play.svelte +++ b/frontend/src/pages/Play.svelte @@ -64,14 +64,19 @@ booting = false; } - function stopEmulator() { - if (dosCI) { - try { dosCI.exit(); } catch (_) {} - dosCI = null; + async function stopEmulator() { + // Save reference then null it so the unmount cleanup doesn't double-try + const ci = dosCI; + dosCI = null; + + // Properly stop the emulator + if (ci) { + try { await ci.exit(); } catch (_) {} } if (dosContainer) { dosContainer.innerHTML = ""; } + running = false; push(`/game/${game.id}`); }