GTK VICE - Autostart with Cart and autoloading file
Versatile Commodore Emulator
Brought to you by:
blackystardust,
gpz
I'm trying to find a setup for testing Tuned Simons' BASIC (cartridge) and auto-load a file to run under TSB.
The call to the emulator looks like this:
D:\Emulator\C64\GTK3VICE-3.3-win32-r35872\x64sc.exe -cartcrt TSB_md.crt "D:\projekte\C64Studio\Sample Projects\TSB Sample\sample.d64"
The sample.d64 contains a single .prg file with a 10 PRINT "HELLO WORLD" (see attached file).
The cartridge file is also attached.
This works fine with GTK VICE 3.3, but with later versions the auto-load runs into "DEVICE NOT PRESENT ERROR" after the LOAD"",8,1.
However when reentering LOAD"",8,1 manually it loads fine.
The log for GTK VICE 3.6.1 shows this, up until the load fails:
Determined sample.bas as active document
Build is current
Running sample.bas
Calling D:\Emulator\C64\GTK3VICE-3.6.1-win64\GTK3VICE-3.6.1-win64\bin\x64sc.exe with -cartcrt TSB_md.crt "D:\projekte\C64Studio\Sample Projects\TSB Sample\sample.d64"
Hotkeys: Initializing.
Hotkeys: Parsing C64 hotkeys file:
Hotkeys: OK.
ffmpeg avformat lib has version 3a4c64, VICE expects 3a4c64: full match
ffmpeg avcodec lib has version 3a8664, VICE expects 3a8664: full match
ffmpeg avutil lib has version 384664, VICE expects 384664: full match
ffmpeg swscale lib has version 050964, VICE expects 050964: full match
ffmpeg swresample lib has version 030964, VICE expects 030964: full match
Detecting DLL based HardSID boards.
Initializing chip model "MOS8565" (63 cycles per line, 312 raster lines).
VSP Bug: safe channels are: 012567. Emulation of memory corruption is disabled.
Reading configuration file `C:\Users\Georg\AppData\Roaming\vice\vice.ini'.
Error - Unknown resource `VirtualDevices'.
Warning - C:\Users\Georg\AppData\Roaming\vice\vice.ini: Unknown resource specification at line 10.
Error - Unknown resource `DriveTrueEmulation'.
Warning - C:\Users\Georg\AppData\Roaming\vice\vice.ini: Unknown resource specification at line 20.
CART: attached 'TSB_md.crt' as ID 19.
*** VICE Version 3.6.1 ***
Welcome to x64sc, the free portable C64 Emulator.
Current VICE team members:
Martin Pottendorfer, Marco van den Heuvel, Fabrizio Gennari, Groepaz,
Errol Smith, Ingo Korb, Olaf Seibert, Marcus Sutton, Kajtar Zsolt, AreaScout,
Bas Wassink, Michael C. Martin, Christopher Phillips, David Hogan,
Empathic Qubit, Roberto Muscedere, June Tate-Gans, Pablo Roldan.
This is free software with ABSOLUTELY NO WARRANTY.
See the "About VICE" command for more info.
random seed was: 0x6328be4c
command line was: D:\Emulator\C64\GTK3VICE-3.6.1-win64\GTK3VICE-3.6.1-win64\bin\x64sc.exe -cartcrt TSB_md.crt D:\projekte\C64Studio\Sample Projects\TSB Sample\sample.d64
Loading system file `D:\Emulator\C64\GTK3VICE-3.6.1-win64\GTK3VICE-3.6.1-win64\bin\..\C64\kernal'.
Loading system file `D:\Emulator\C64\GTK3VICE-3.6.1-win64\GTK3VICE-3.6.1-win64\bin\..\C64\basic'.
Loading system file `D:\Emulator\C64\GTK3VICE-3.6.1-win64\GTK3VICE-3.6.1-win64\bin\..\C64\chargen'.
Loading system file `D:\Emulator\C64\GTK3VICE-3.6.1-win64\GTK3VICE-3.6.1-win64\bin\..\PRINTER\mps803'.
Palette: Loading palette `D:\Emulator\C64\GTK3VICE-3.6.1-win64\GTK3VICE-3.6.1-win64\bin\..\PRINTER\mps803.vpl'.
Loading system file `D:\Emulator\C64\GTK3VICE-3.6.1-win64\GTK3VICE-3.6.1-win64\bin\..\PRINTER\nl10-cbm'.
Palette: Loading palette `D:\Emulator\C64\GTK3VICE-3.6.1-win64\GTK3VICE-3.6.1-win64\bin\..\PRINTER\nl10.vpl'.
NL10: Printer driver initialized.
Palette: Loading palette `D:\Emulator\C64\GTK3VICE-3.6.1-win64\GTK3VICE-3.6.1-win64\bin\..\PRINTER\1520.vpl'.
Loading system file `D:\Emulator\C64\GTK3VICE-3.6.1-win64\GTK3VICE-3.6.1-win64\bin\..\DRIVES\dos1540'.
Loading system file `D:\Emulator\C64\GTK3VICE-3.6.1-win64\GTK3VICE-3.6.1-win64\bin\..\DRIVES\dos1541'.
Loading system file `D:\Emulator\C64\GTK3VICE-3.6.1-win64\GTK3VICE-3.6.1-win64\bin\..\DRIVES\d1541II'.
Loading system file `D:\Emulator\C64\GTK3VICE-3.6.1-win64\GTK3VICE-3.6.1-win64\bin\..\DRIVES\dos1570'.
Loading system file `D:\Emulator\C64\GTK3VICE-3.6.1-win64\GTK3VICE-3.6.1-win64\bin\..\DRIVES\dos1571'.
Loading system file `D:\Emulator\C64\GTK3VICE-3.6.1-win64\GTK3VICE-3.6.1-win64\bin\..\DRIVES\dos1581'.
Loading system file `D:\Emulator\C64\GTK3VICE-3.6.1-win64\GTK3VICE-3.6.1-win64\bin\..\DRIVES\dos2031'.
Loading system file `D:\Emulator\C64\GTK3VICE-3.6.1-win64\GTK3VICE-3.6.1-win64\bin\..\DRIVES\dos2040'.
Loading system file `D:\Emulator\C64\GTK3VICE-3.6.1-win64\GTK3VICE-3.6.1-win64\bin\..\DRIVES\dos3040'.
Loading system file `D:\Emulator\C64\GTK3VICE-3.6.1-win64\GTK3VICE-3.6.1-win64\bin\..\DRIVES\dos4040'.
Loading system file `D:\Emulator\C64\GTK3VICE-3.6.1-win64\GTK3VICE-3.6.1-win64\bin\..\DRIVES\dos1001'.
Loading system file `D:\Emulator\C64\GTK3VICE-3.6.1-win64\GTK3VICE-3.6.1-win64\bin\..\DRIVES\dos9000'.
Drive: Finished loading ROM images.
VIC-II: Initializing chip model "MOS8565" (63 cycles per line, 312 raster lines).
using GTK3 backend: DirectX
Created render thread 0
Render thread initialised
Sound: Available sound devices: dx wmm dummy fs dump wav voc iff aiff mp3 flac ogg soundmovie
registered controller 'Controller (XBOX 360 For Windows)' with 5 axes, 1 hats, 10 buttons
Keyboard: Loading keymap `D:\Emulator\C64\GTK3VICE-3.6.1-win64\GTK3VICE-3.6.1-win64\bin\..\C64\gtk3_sym_de.vkm'.
AUTOSTART: Attached file `D:\projekte\C64Studio\Sample Projects\TSB Sample\sample.d64' as a disk image.
AUTOSTART: mounted image is type: 1541, not changing drive.
AUTOSTART: Resetting drive 8
AUTOSTART: Resetting the machine to autostart '*'
VIC-II: VSP Bug: safe channels are: 0347. Emulation of memory corruption is disabled.
AUTOSTART: Turning Warp mode on.
AUTOSTART: `D:\projekte\C64Studio\Sample Projects\TSB Sample\sample.d64' recognized as disk image.
Main CPU: starting at ($FFFC).
Main CPU: RESET.
Sound: Opened device `dx', speed 48000Hz, fragment size 2.67ms, buffer size 101.33ms
reSID: MOS8580, filter on, sampling rate 48000Hz - resampling, pass to 21600Hz
Sync reset
Unit 8: RESET.
AUTOSTART: Loading program '*'
AUTOSTART: Entered ROM at $e5d4
AUTOSTART: Left ROM for $c989
AUTOSTART: aborting.
AUTOSTART: Turning Warp mode off.
AUTOSTART: Restoring FileSystemDevice8 to 1.
AUTOSTART: Restoring FSDevice8ConvertP00 to 1.
AUTOSTART: Restoring FSDeviceLongNames to 0.
AUTOSTART: Done.
Sync reset
it seems it happened somewhere between r37178 (?) and r37189
a lot of autostart rework there.
btw, autostarting sample.d64 works with standard simons basic.
the difference in the log is:
org. simons basic (Simons_Basic_(198x)(Commodore).crt):
tuned simons basic (TSB_md.crt):
gpz?
Last edit: Querino 2022-09-21
First of all, the autostart logic seems to work as designed - so this isn't really a bug. The logic is primarily designed to be able to autostart anything you throw at, with the original default settings (and roms, carts, etc). Especially handling original games, that use all sorts of autostart trickery, correctly requires disabling our own autostart logic under certain conditions - which is what is happening here. There is no good way to prevent this - not without potentially breaking some original games.
Whatever, what about
That said, there is still something weird going on with this TSB cartridge. If i do
..and then manually try to load the directory, i get a "device not present" error as well! So the original problem may actually not be related to the autostart logic at all - it could well be a problem with the TSB .crt :) So this is the problem we need to solve... is this .crt verified to work on real hw? And on what kind of setup?
ok. it must be some non initialized RAM that it uses :)
then open monitor
now load directory - it works. every time :)
Great, I'll pass it on!
btw, some days ago i found out that the other cart of TSB (TSB_up.crt.bin) works too.
As it seems the culprit was found and fixed in TSB. This issue can be closed!
cheers :)