From efca8eed42695b3709383585adc6d2f7a6d2c765 Mon Sep 17 00:00:00 2001 From: Benjamin Levy <7348004+io12@users.noreply.github.com> Date: Wed, 20 Dec 2023 01:01:10 -0500 Subject: [PATCH] win98: auto-restart x11vnc --- makeWin98Image/default.nix | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/makeWin98Image/default.nix b/makeWin98Image/default.nix index 75bcbc4..11d6539 100644 --- a/makeWin98Image/default.nix +++ b/makeWin98Image/default.nix @@ -15,6 +15,10 @@ let hash = "sha256-47M3azg2ikc7VlFTEJA7elPGovAtSmhOtZqq8j2TJmU="; }; dosboxConf = writeText "dosbox.conf" '' + [cpu] + turbo=on + stop turbo on key = false + [autoexec] if exist win98.img ( imgmount c win98.img @@ -113,7 +117,7 @@ let } } send_user "\n### OPENING SHUT DOWN PROMPT ###\n" - exec ${vncdoWrapper} key up key enter + exec ${vncdoWrapper} key u send_user "\n### TRIGGERING SHUTDOWN ###\n" exec ${vncdoWrapper} key enter send_user "\n### OMG DID IT WORK???!!!! ###\n" @@ -136,19 +140,24 @@ let } '' echo "iso src: ${iso}" cp --no-preserve=mode ${iso} win98.iso - runDosboxVnc() { + ( + while true; do + DISPLAY=:99 XAUTHORITY=/tmp/xvfb.auth x11vnc -many -shared -display :99 >/dev/null 2>&1 || true + echo RESTARTING VNC + done + ) & + runDosbox() { xvfb-run -l -s ":99 -auth /tmp/xvfb.auth -ac -screen 0 800x600x24" dosbox-x -conf ${dosboxConf} || true & dosboxPID=$! - DISPLAY=:99 XAUTHORITY=/tmp/xvfb.auth x11vnc -many -shared -display :99 >/dev/null 2>&1 & } echo STAGE 1 - runDosboxVnc + runDosbox ${expectScript} & expectScriptPID=$! wait $dosboxPID # Run dosbox-x a second time since it exits during the install echo STAGE 2 - runDosboxVnc + runDosbox wait $dosboxPID echo DOSBOX EXITED wait $expectScriptPID