Menu

#1766 GTK VICE - Autostart with Cart and autoloading file

v3.x
closed-invalid
nobody
TSB (1)
x64sc
2022-10-05
2022-09-19
Georg
No

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
4 Attachments

Discussion

  • Querino

    Querino - 2022-09-21

    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):

    AUTOSTART: Loading program ''
    AUTOSTART: Entered ROM at $e5cd
    AUTOSTART: Left ROM for $c989
    AUTOSTART: aborting.

    AUTOSTART: Turning Warp mode off.
    AUTOSTART: Restoring FSDeviceLongNames to 1.
    AUTOSTART: Restoring FileSystemDevice8 to 1.
    AUTOSTART: Restoring FSDevice8ConvertP00 to 1.
    AUTOSTART: Restoring AttachDevice8d0Readonly to 0.
    AUTOSTART: Done.

    tuned simons basic (TSB_md.crt):

    AUTOSTART: Loading program ''
    AUTOSTART: Entered ROM at $e5cd
    AUTOSTART: Searching for ...
    AUTOSTART: Loading
    AUTOSTART: Entered ROM at $ea21
    AUTOSTART: Ready
    AUTOSTART: Starting program.

    AUTOSTART: Turning Warp mode off.
    AUTOSTART: Restoring FSDeviceLongNames to 1.
    AUTOSTART: Restoring FileSystemDevice8 to 1.
    AUTOSTART: Restoring FSDevice8ConvertP00 to 1.
    AUTOSTART: Restoring AttachDevice8d0Readonly to 0.
    AUTOSTART: Done.

    gpz?

     

    Last edit: Querino 2022-09-21
  • gpz

    gpz - 2022-09-29

    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

    x64sc -default -cartcrt TSB_md.crt -autostartprgmode 1  sample.prg
    

    That said, there is still something weird going on with this TSB cartridge. If i do

    x64sc -default -cartcrt TSB_md.crt -8 sample.d64
    

    ..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?

     
  • gpz

    gpz - 2022-09-29

    ok. it must be some non initialized RAM that it uses :)

    x64sc -default -cartcrt TSB_md.crt -8 sample.d64
    

    then open monitor

    (C:$e5cf) f 0 ffff 8
    (C:$e5cf) reset
    

    now load directory - it works. every time :)

     
  • Georg

    Georg - 2022-09-29

    Great, I'll pass it on!

     
  • Querino

    Querino - 2022-09-29

    btw, some days ago i found out that the other cart of TSB (TSB_up.crt.bin) works too.

     
  • Georg

    Georg - 2022-10-05

    As it seems the culprit was found and fixed in TSB. This issue can be closed!

     
  • gpz

    gpz - 2022-10-05

    cheers :)

     
  • gpz

    gpz - 2022-10-05
    • status: open --> closed-invalid
    • Port: GTK3 -->
     

Log in to post a comment.