Welcome to the Gamebase 64 forums.                 An attempt to document ALL Commodore 64 gameware before it's too late!

VICE 3.6.x only loading cartridges and tapes

Are you having problems setting up GB64 on your machine? Ask your questions in here!

Moderator: Jimbo

Jakuchu
New Member
Location: Finland
Posts: 14
Joined: Sun Jul 16, 2006 10:15 pm

VICE 3.6.x only loading cartridges and tapes

Wed Feb 02, 2022 3:57 pm

Hi,

I decided to try out the latest version of VICE (3.6.1 as of writing this) and when trying to launch a game from the GBC v17, the emulator doesn't start at all. Only exceptions are cartridges and tapes (.tap) from Extras, which load just fine. I'm using the GEMUS script made for GTK3 VICE 3.5, so I'm assuming that script is the problem since every game loads just fine with VICE 3.5.

So my question is, does anyone have an idea what needs to be changed in GEMUS script or anywhere else to make everything work?

Any help is much appreciated!
User avatar
.mad.
Honoured Member
Honoured Member
Location: Lancashire
Posts: 2256
Joined: Sun Jun 19, 2005 3:30 pm

Re: VICE 3.6.x only loading cartridges and tapes

Wed Feb 02, 2022 8:43 pm

The problem is changed command-line for autostart and virtual devices.

-autostartprgmode 1
-truedrive = -drive8truedrive
-virtualdev = -virtualdev8

this hasn't been heavily tested for all advanced script options.
* The emulator won't run if the command-line has an error.

Just tested a few game files... D64, TAP, CRT, P00.
please report any problems you find, i use WinVICE with my setup. :wink:

Code: Select all

;*********************************
;*         GTK3VICE-3.6.0        *
;*                               *
;*         GEMUS Script          *
;*      (c)  The GB64 Team       *
;*       2nd February 2022       *
;*********************************

; Default M/C LOAD from TAPE or DISK is now Absolute.
; TAPE file = LOAD"",1,1
; DISK file = LOAD"*",8,1

; [-basicload] switch is required for any games that require BASIC loading...
; TAPE file = LOAD"",1
; DISK file = LOAD"*",8

; This script uses commandline functions, which are available in THIS GTK3 version of VICE.
; All other options will be the internal GTK3VICE defaults.
;  Optional files (1): JiffyDOS_1581.bin - speed up loading in MetalDust.

; To use any foreign character ROM sets in VICE.
; Just place them in the .\GBC_v16\ROMs\ folder and set the GEMUS.
;--------------------------------------------------------
Clear_CLP()
;--------------------------------------------------------
; These are the only known C64 roms with custom characters i could find.
; SWE - Swedish, TUR - Turkish, DAN - Danish, SPA - Spanish, GER - German, JAP - Japanese.

 If key_rom CONTAINS(SWE||DAN||TUR||SPA||GER||JAP||*)
 	If QUESTION(Do you have the %rom_value% KERNAL and CHAR ROMs in the%crlf% %dbpath%\ROMs\%rom_value%\ folder?%crlfx2%The emulator will not work if you lie.) = YES
 	Add_CLP( -kernal "%dbpath%\ROMs\%rom_value%\KERNAL.ROM")
 	Add_CLP( -chargen "%dbpath%\ROMs\%rom_value%\CHAR.ROM")
 	Else
 	End If
End If
;-------------------------------------------------------
; the emulator will not run on "shoddy" OpenGL Windows PC's without [-gtkbackend 0].
;---------------------------------------------------
if key_gtk CONTAINS (cairo)
; old PC without OpenGL 3.2+ drivers.
Add_CLP( -gtkbackend 0)

; OpenGL 3.2 Graphic card drivers only (GTX1080).
Else If key_gtk CONTAINS (opengl)
Add_CLP( -gtkbackend 1)

Else
; Cairo - default for OLD PC with old Graphic card drivers.
Add_CLP( -gtkbackend 0)
end if
;--------------------------------------------------
; stop sound buffer overflow crash (default value 100 is to low)
Add_CLP( -soundbufsize 350)

;Disable save resources on EXIT
Add_CLP( +saveres)

;disable nag screen
Add_CLP( +confirmonexit)

; Virtual Disks will not load without a Virtual Device (Disk Drive).
;Add_CLP( -virtualdev1)

; No crappy CRT graphic filter.
Add_CLP( -VICIIfilter 0)

If key_aspect CONTAINS(real)
;slightly squashed screen for a realistic C64 screen size.
Add_CLP( -trueaspect)
;character set looks really bad without the filter.
;Set filtering mode (1 = bilinear)
Add_CLP( -gtkfilter 1)
Else
;slightly wider screen for a true square pixel image.
Add_CLP( +trueaspect)
;Set filtering mode (0 = nearest)
;no filter for a clean sharp looking character set.
Add_CLP( -gtkfilter 0)
End if

; No British Keyboard?- User Positional & Dutch is best alternative.
; keyboard [positional]
Add_CLP( -keymap 1)
Add_CLP( -keyboardmapping 3)

;Start at normal 100% speed
Add_CLP( +warp)

;Specify SID engine and model (0: FastSID 6581, 1: FastSID 8580, 256: ReSID 6581, 257: ReSID 8580, 258: ReSID 8580 + digiboost, 512: Catweasel, 768: HardSID, 1024: ParSID in par port 1, 1280: ParSID in par port 2, 1536: ParSID in par port 3, 1792: SSI2001)
;related command line parameter seems to have changed therefore this section is disabled
;If Key_SID CONTAINS(0||1||256||257||258||512||768||1024||1280||1536||1792)
;Add_CLP( -sidenginemodel %sid_value%)
;Else
;SID 6581 (default)
;Add_CLP( -sidenginemodel 0)
;End If

   If Key_fullscreen CONTAINS(yes||1||on||true)
      Add_CLP( -fullscreen)
 End If

   ;do we want a PAL or NTSC setup?
	If PalNTSC = NTSC
	 Add_CLP( -ntsc)
	 Else
	 Add_CLP( -pal)
	End If

; --\/-- start of cut --\/--
; -Joydev is back in the command-line for GTK3 starting with this version (r36821)
; modify or delete this section if you want your own Joypad settings.
; *GTK3 VICE less than r36821 does not support -joydev# and will crash at this point.

; Enable Joystick controller to PORT#, for what is set in the GameBase tab.
; This may not always be set correctly in GameBase.

  ;0=None, 1=Numpad + RCtrl, 2=Keset A, 3=Keyset B, 4+ are for real joysticks/pads
  ; NumLock [light] must be ON for NumPAD joykeymap to work.

  ; Selecting "4" or "5" will crash the emulator if you haven't got a USB Joystick attached in your PC.
  ; so we must check for user input in global kv-keyset in RIGHT GEMUS window (F2):.
  ; REALJOYSTICK1=YES
  ; REALJOYSTICK2=YES

	If Control = JoyPort2
;------------------------------------
         If Key_realjoystick1 CONTAINS(yes||1||on||true)
            Add_CLP( -joydev2 4)
;------------------------------------
         Else
            Add_CLP( -joydev2 1)
         End If
         If NumPlayers > 1
;------------------------------------
            If Key_realjoystick2 CONTAINS(yes||1||on||true)
               Add_CLP( -joydev1 5)
;------------------------------------
            Else
               Add_CLP( -joydev1 2)
            End If
         Else
            Add_CLP( -joydev1 0)
         End If
         
      ElseIf Control = JoyPort1
;------------------------------------ 
 	If Key_realjoystick1 CONTAINS(yes||1||on||true)
            Add_CLP( -joydev1 4)
;------------------------------------
         Else
            Add_CLP( -joydev1 1)
         End If
         If NumPlayers > 1
;------------------------------------
            If Key_realjoystick2 CONTAINS(yes||1||on||true)
               Add_CLP( -joydev2 5)
;------------------------------------
            Else
               Add_CLP( -joydev2 2)
            End If
         Else
            Add_CLP( -joydev2 0)
         End If
	
	ElseIf Control = Keyboard
	; you might still want a real joystick mapped?
	; But not in port #1 for the obvious reason.
	; and definitely no conflicting joykeymaps.
	If Key_realjoystick1 CONTAINS(yes||1||on||true)
	Add_CLP( -joydev2 4)
	else
	Add_CLP( -joydev1 0)
	Add_CLP( -joydev2 0)
	End If
	
	Else
		; The setting used for every other controller option.
		; Paddle, Mouse, KoalaPad, LightPen.
	; Joystick in Port#2 - Nothing in port 2
	Add_CLP( -joydev2 4)
	Add_CLP( -joydev1 0)
End If

;--/\--- end of cut --/\--

	If GameType CONTAINS(d81)
	
	If QUESTION(Do you have "JiffyDOS_1581.bin"%crlf% in the %dbpath%\ROMs\ folder?)%crlfx2%Disk will not load if you lie.) = YES
	 Add_CLP( -dos1581 "%dbpath%\ROMs\JiffyDOS_1581.bin")
	 Add_CLP( -jiffyswitch)
		 
		Show_Message(Using JiffyDOS 1581 to speed up the loading.%crlf%Press "8", "J" and ENTER at the menu to load.)
	Else
	Show_Message(No JiffyDOS = SLOW loading.%crlf%Press "C" and ENTER at the menu to load.)
End If
	;******************************************************
	; Metal Dust is the only SuperCPU Game in GameBase.
	; SuperCPU ROM v0.05 or higher is required to boot the disk.
	; SuperCPU ROM v0.07 is included in GTK3VICE v3.33.
	; With "JiffyDOS_1581.bin" you can speed up the loading.
	; Place the "JiffyDOS_1581.bin" in the scripts folder.
	;******************************************************
	
		Add_CLP( -drive8type 1581)
		Add_CLP( -drive8extend 2)

		Add_CLP( -drive9type 1581)
		Add_CLP( -drive9extend 2)
		
	Add_CLP( -drive8truedrive)
	Add_CLP( -simmsize 16)
	Add_CLP( -speedswitch)
	
	Add_CLP( -fs8 "%gamepath%" -8 "%gamepathfile%")
	Add_CLP( -fs9 "%gamepath%" -9 "%gamepathfile%(1)")
	Add_CLP( -autostart "%gamepathfile%")
	;********************************************************
	
	Else If GameType CONTAINS(REU)
	; RAM Expansion Unit files

; EXPERIMENTAL for DOOM.
; Super CPU 16MB and REU 16MB (still only 4 FPS)
if key_scpureu CONTAINS (yes)
	; RAM Expansion Unit files + SPCPU (DOOM)
	Add_CLP( -simmsize 16)
	ADD_CLP( -reu -reusize 16384 +reuimagerw -reuimage "%gamepathfile%" -autostartprgmode 1 -autostart "%gamepath%\loader.prg")
End If

	if key_reu CONTAINS(128||256||512||1024||2048||4096||8192||16384)
	ADD_CLP( -reu -reusize %reu_value%)
	else
	ADD_CLP( -reu -reusize 512)
	End If
	
	;link the REU file as the gamefile from GameBase.
	ADD_CLP( -reuimage "%gamepathfile%")
	
	if key_reuboot CONTAINS(*.prg)
	;prg bootfile for REU image (max 8 chars).
	ADD_CLP( -autostartprgmode 1 -autostart "%gamepath%\%reuboot_value%")
	elseif key_reuboot CONTAINS(*.t64||*.d64||*.p00)
	ADD_CLP( -autostart "%gamepath%\%reuboot_value%")
	End If

	Else If GameType CONTAINS(crt)
     		 ;autostart the cart image
     		 Add_CLP( -cartcrt "%gamepathfile%")
     	
     	Else If GameType CONTAINS(tap)
     	
     		ADD_CLP( -drive8type 0)
     		ADD_CLP( -tapeport1device 1)
     		
     		;Reset (Auto-rewind) needs to be OFF for compilation tapes.
     		ADD_CLP( +dsresetwithcpu)
 
; VICE is fixed to TAP LOAD"",1,1 as default in this version.
; so we reverse the command.
; and add [-basicload] to the deafult setting.

	If key_load11 CONTAINS(yes)

  		if key_sys CONTAINS(*)
		Add_CLP( -autoload "%gamepathfile%")
		Add_CLP( -keybuf "sys%sys_value%\x0d")
     		else
     		ADD_CLP ( -autostart "%gamepathfile%")
        	End if
     		
     	Else
     		ADD_CLP ( -basicload "%gamepathfile%")
 	End If
    		
	Else If GameType CONTAINS(g64)
	
	If Key_drive8type CONTAINS (1542)
		Add_CLP( -drive8type 1542)
		else
		Add_CLP( -drive8type 1541)
	End If
		Add_CLP( -drive8extend 2)
		
	; Set TrueDrive Emulation option ON for ALL G64 disks.
	; overrule with vtde=no stored in gemus.

			if key_vtde CONTAINS(no)
			Add_CLP( +drive8truedrive)
			Add_CLP( -virtualdev8)
			else
	         	Add_CLP( -drive8truedrive)
			End If
;----------------------------------
; It's now possible to load a specific game file from a G64 using the VICE key buffer.
; for wildcard use "*" as the filename.
; GEMUS: load8name=*
;        sys=16384

	If key_load8name CONTAINS(*)
	;Insert Disk for manual loading
		Add_CLP( -8 "%gamepathfile%")
		If key_sys CONTAINS(*)
		ADD_CLP( -keybuf-delay 1 -keybuf "load"""%load8name_value%""",8\nsys%sys_value%\n")
		Else
		ADD_CLP( -keybuf-delay 1 -keybuf "load"""%load8name_value%""",8\nrun\n")
		End If

	ElseIf key_load81name CONTAINS(*)
	;Insert Disk for manual loading
		Add_CLP( -8 "%gamepathfile%")
		If key_sys CONTAINS(*)
		ADD_CLP( -keybuf-delay 1 -keybuf "load"""%load81name_value%""",8,1\nsys%sys_value%\n")
		Else
		ADD_CLP( -keybuf-delay 1 -keybuf "load"""%load81name_value%""",8,1\nrun\n")
		End If

	ElseIf key_load8 CONTAINS(wildcard)
		;only possible way to load some protected disks. LOAD"*",8:RUN
		Add_CLP( -basicload "%gamepathfile%")

	     Else		
		;no internal image file to select so it's autoboot or nothing.
		Add_CLP( -autostart "%gamepathfile%")
	End If

	ElseIf GameType CONTAINS(t64||p00||prg)
	
		ADD_CLP( -drive8type 0)
		
		;inject into RAM
		Add_CLP( -autostartprgmode 1)
	
	   	If Key_load CONTAINS(wildcard)
		; Load the first file on the tape image "load:".
		 Add_CLP( -autostart "%gamepathfile%")

;only for corrupt T64
		 ElseIf key_load1name CONTAINS(*)
		 Add_CLP( -autostart "%gamepathfile%:%load1name_value%")

ElseIf ImageIndex > 0
    ; Boot tape with internal ImageName stored in GameBase "runnable file". Requires to press play on tape
	 	Add_CLP( -autostart "%gamepathfile%:%c64imagename%")
Else
	; Default setting. ; Load the first file
		 Add_CLP( -autostart "%gamepathfile%")
End If
 
	ElseIf GameType CONTAINS(d64)
		
		If Key_drive8type CONTAINS (1542)
			Add_CLP( -drive8type 1542)
			else
			Add_CLP( -drive8type 1541)
	End If
		Add_CLP( -drive8extend 2)
		
	; Check if TrueDrive Emulation option is enabled in GameBase Tab.
	; overrule with vtde=yes/no stored in global gemus.
	
		If TrueDriveEmu = YES
			if key_vtde CONTAINS(no)
			Add_CLP( +drive8truedrive)
			Add_CLP( -virtualdev8)
			else
	         	Add_CLP( -drive8truedrive)
			End If
		ElseIf TrueDriveEmu = NO
			if key_vtde CONTAINS(yes)
			Add_CLP( -drive8truedrive)
			else
			Add_CLP( +drive8truedrive)
			Add_CLP( -virtualdev8)
			End If 
         	End If
	
;----------------------------------
; It's now possible to load a specific game file with a system call using the VICE key buffer.
; works well on protected D64 disks that can not be read from the GameBase file selector.
; to load "*" as the filename. use load8=wildcard or load=wildcard.
; GEMUS: load81name=menu
;        sys=64738

	If key_load8name CONTAINS(*)
		Add_CLP( -8 "%gamepathfile%")
		If key_sys CONTAINS(*)
		ADD_CLP( -keybuf-delay 1 -keybuf "load"""%load8name_value%""",8\nsys%sys_value%\n")

		else if key_doublerun CONTAINS(yes)
		ADD_CLP( -keybuf-delay 1 -keybuf "load"""%load8name_value%""",8\nrun\nrun\n")

		Else
		ADD_CLP( -keybuf-delay 1 -keybuf "load"""%load8name_value%""",8\nrun\n")
		End If
		
	ElseIf key_load81name CONTAINS(*)
		Add_CLP( -8 "%gamepathfile%")
		If key_sys CONTAINS(*)
		ADD_CLP( -keybuf-delay 1 -keybuf "load"""%load81name_value%""",8,1\nsys%sys_value%\n")
		Else
		ADD_CLP( -keybuf-delay 1 -keybuf "load"""%load81name_value%""",8,1\nrun\n")
		End If

		ElseIf key_vicename CONTAINS(*)
; only possible way to load some DIR edited disks in VICE (without a fileindex load).
		Add_CLP( -8 "%gamepathfile%")
		ADD_CLP( -keybuf-delay 1 -keybuf "load"""%vicename_value%""",8,1\nrun\n")

	Else if key_sbname CONTAINS(*)
		Add_CLP( -8 "%gamepathfile%")
		ADD_CLP( -keybuf-delay 1 -keybuf "load"""simon's basic""",8,1\nrun\nload"""%sbname_value%""",8\nrun\n")

	Else if key_ssb3name CONTAINS(*)
		Add_CLP( -8 "%gamepathfile%")
		ADD_CLP( -keybuf-delay 1 -keybuf "load"""ssbasic3""",8,1\nrun\nload"""%ssb3name_value%""",8\nrun\n")
;--------------------------
; Load and RUN ANY 2 files (for some magazine BASIC listings).
; multifile1=rabbyte loader
; multifile2=rabbyte game
;--------------------------
	Else If key_multifile1 CONTAINS(*)
		Add_CLP( -8 "%gamepathfile%")
		ADD_CLP( -keybuf-delay 1 -keybuf "load"""%multifile1_value%""",8,1\nrun\nload"""%multifile2_value%""",8\nrun\n")
;--------------------------
	ElseIf key_load CONTAINS(wildcard)
		;only possible way to load some protected disks. LOAD"*",8,1
		ADD_CLP( -autostart "%gamepathfile%")
	
	ElseIf key_load8 CONTAINS(wildcard)
		;only possible way to load some protected disks. LOAD"*",8:RUN
		Add_CLP( -basicload "%gamepathfile%")
	Else

	; Default setting. Boot disk with internal ImageName stored in GameBase "runnable file".
  	 Add_CLP( -fs8 "%gamepath%" -8 "%gamepathfile%")
	Add_CLP( -autostart "%gamepathfile%:%c64imagename%")

	;================================
	; SYS can be used without LOAD81NAME when only 1 file is on the disk.
		If key_sys CONTAINS(*)
		ADD_CLP( -keybuf-delay 1 -keybuf "sys%sys_value%\n")
		End If
	;================================
	
	End If
End If

   If VersionComment CONTAINS(*not 100%*||*not working*||*doesn't work*)
      Show_Message(This game may not work properly.)
   End If

   ;show message for the user
   If Key_msg CONTAINS(*)
      Show_Message(%msg_value%)
   End If

; keybuf should be used for all load commands in VICE.
; sendkeys are only required to start the Myth original cartridge.
; typing "SYS 3 MYTH" on the black screen.

If key_sendkeys CONTAINS(sys 3 myth)
Run_Emulator_Send_Keys([2]%sendkeys_value%||50)

Else If key_load CONTAINS(gamma)
Run_Emulator_Send_Keys([2]lstart{enter}[1]r||50)

Else
   ;run the emulator
   Run_Emulator()
End If
Attachments
360 Scripts.zip
(9.39 KiB) Downloaded 940 times
Jakuchu
New Member
Location: Finland
Posts: 14
Joined: Sun Jul 16, 2006 10:15 pm

Re: VICE 3.6.x only loading cartridges and tapes

Thu Feb 03, 2022 3:33 pm

That did the trick, everything seems to be working now. Thank you very much for the help!

Return to “GB64 Help!”

Who is online

Users browsing this forum: No registered users and 11 guests