Pass -drive8type 1541 to VICE so autostart works

VICE defaults to the 1541-II (drive type 1542), whose ROM we don't
have installed.  Without this flag the autostart LOAD"*",8,1 fails
with ?DEVICE NOT PRESENT.  We have the original 1541 ROM at
~/.local/share/vice/DRIVES/dos1541-325302-01+901229-05.bin, so
forcing drive type 1541 makes autostart succeed.

Added to both the foreground (-v/-V) and background (-p/-P) VICE
launches.  The --kill pgrep regex still matches (the .* after
+confirmonexit covers the new -drive8type flag).
This commit is contained in:
ballz
2026-07-18 16:05:22 +02:00
parent d78eb976cf
commit 3e9683a2fc
+8 -2
View File
@@ -23,6 +23,12 @@
# nyuller.lbl — VICE monitor label commands # nyuller.lbl — VICE monitor label commands
# nyuller.d64 — disk image wrapping nyuller.prg (for VICE autostart) # nyuller.d64 — disk image wrapping nyuller.prg (for VICE autostart)
# #
# VICE note: -drive8type 1541 is required for autostart to work. VICE
# defaults to the 1541-II (drive type 1542), whose ROM we don't have
# installed; without this flag the autostart `LOAD"*",8,1` fails with
# ?DEVICE NOT PRESENT. We have the original 1541 ROM at
# ~/.local/share/vice/DRIVES/dos1541-325302-01+901229-05.bin.
#
# For the development loop, use -e (oscar64's built-in emulator). It runs # For the development loop, use -e (oscar64's built-in emulator). It runs
# without a display, needs no ROMs, and is faster than VICE. Use -p when # without a display, needs no ROMs, and is faster than VICE. Use -p when
# you want to play the game interactively — it launches VICE in the # you want to play the game interactively — it launches VICE in the
@@ -161,7 +167,7 @@ case "$EMU_CMD" in
echo "warning: no \$DISPLAY set; VICE won't show a window" >&2 echo "warning: no \$DISPLAY set; VICE won't show a window" >&2
fi fi
echo "running nyuller in VICE ($EMU_CMD, blocking)" echo "running nyuller in VICE ($EMU_CMD, blocking)"
"$EMU_CMD" +confirmonexit -autostart "$D64" "$EMU_CMD" +confirmonexit -drive8type 1541 -autostart "$D64"
;; ;;
esac esac
@@ -189,7 +195,7 @@ if [ -n "$PLAY_VICE" ]; then
build_d64 build_d64
echo "launching VICE $PLAY_VICE in the background with $D64..." echo "launching VICE $PLAY_VICE in the background with $D64..."
log="$BUILD_DIR/vice.log" log="$BUILD_DIR/vice.log"
( setsid nohup "$PLAY_VICE" +confirmonexit -autostart "$D64" \ ( setsid nohup "$PLAY_VICE" +confirmonexit -drive8type 1541 -autostart "$D64" \
> "$log" 2>&1 < /dev/null & echo $! > "$BUILD_DIR/vice.pid" ) > "$log" 2>&1 < /dev/null & echo $! > "$BUILD_DIR/vice.pid" )
# setsid + nohup detach VICE from this shell so it survives our exit. # setsid + nohup detach VICE from this shell so it survives our exit.
pid=$(cat "$BUILD_DIR/vice.pid") pid=$(cat "$BUILD_DIR/vice.pid")