Page 2 of 2

Posted: Sun Jan 10, 2016 5:52 pm
by .mad.
Updated the 2.4.4 script i had for my VIC20 to include Dink buttons.
Some DINK JOYPAD bits are not working as i think they should.
The problem could be my eyes though. :shock:

Code: Select all

;******************************
;* WinVICE 2.4.8 GEMUS Script *
;* -Dink-    VIC-20    -Dink- *
;*            .mad.           *
;*      10th January 2016     *
;******************************

; these are the options for the configurable buttons

;NUM| ACTION
;---|-------------
;5  | DPAD UP
;6  | DPAD RIGHT		
;7  | DPAD DOWN		
;8  | DPAD LEFT		

;1  | WARP MODE (EMULATOR)
;2  | PAUSE (EMULATOR)
;4  | SWAP JOYSTICK PORT
;9  | QUICK SAVE		
;10 | QUICK LOAD		
;11 | QUICK SAVE UNDO	
;15 | SET MILESTONE      
;16 | RETURN MILESTONE   
;99 | QUIT (EMULATOR)	

;3  | SPACE BAR	    
;20 | SHIFT		    
;21 | RETURN	            
;22 | COMMODORE	    
;29 | RUN STOP	    
;30 | LEFT ARROW	    
;41 | F1 
;42 | F2 
;43 | F3 
;44 | F4 
;45 | F5 
;46 | F6 
;47 | F7 
;48 | F8 
;31 | 1
;32 | 2
;33 | 3
;34 | 4
;35 | 5
;36 | 6
;37 | 7
;38 | 8
;39 | 9
;40 | 0
;51 | A  
;52 | B  
;53 | C  
;54 | D  
;55 | E  
;56 | F  
;57 | G  
;58 | H  
;59 | I  
;60 | J  
;61 | K  
;62 | L  
;63 | M  
;64 | N  
;65 | O  
;66 | P  
;67 | Q  
;68 | R  
;69 | S  
;70 | T  
;71 | U  
;72 | V  
;73 | W  
;74 | X  
;75 | Y  
;76 | Z  

;--------------------------------------------------------------------
; Start of script.
;--------------------------------------------------------------------
; Set emulator default values.
Set_INI_Value(1||VIC20||AutostartPrgMode||0)
Set_INI_Value(1||VIC20||AutostartWarp||0)
Set_INI_Value(1||VIC20||VICFilter||0)

; Dink MOD (Speedy SL - boots emu in warp mode)
If key_speedysl CONTAINS (yes||on||1)
Set_INI_Value(1||VIC20||AutostartWarpSpeedySL||1)
Set_INI_Value(1||VIC20||DriveTrueEmulation||1)
Set_INI_Value(1||VIC20||AutostartHandleTrueDriveEmulation||1)
Set_INI_Value(1||VIC20||VirtualDevices||1)
Else
Set_INI_Value(1||VIC20||AutostartWarpSpeedySL||0)
Set_INI_Value(1||VIC20||DriveTrueEmulation||0)
Set_INI_Value(1||VIC20||AutostartHandleTrueDriveEmulation||0)
Set_INI_Value(1||VIC20||VirtualDevices||0)
End If

If Key_drivesound CONTAINS (yes)
;Default is OFF
;Drive Sound stays on playing the first two multi-load games tested Mini Kong & Men Rescue.
Set_INI_Value(1||VIC20||DriveSoundEmulation||1)
Set_INI_Value(1||VIC20||DriveSoundEmulationVolume||4000)
Else
Set_INI_Value(1||VIC20||DriveSoundEmulation||0)
Set_INI_Value(1||VIC20||DriveSoundEmulationVolume||0)
End IF

;enable Joypad - must be attached and driver installed before emulator is run.
;if you plug it in USB once WinVICE is running, you must select it manually from options.

Set_INI_Value(1||VIC20||JoyDevice1||4)
Set_INI_Value(1||VIC20||JoyAutofire1Speed||16)
Set_INI_Value(1||VIC20||JoyAutofire1Axis||0)

;map every joypad buuton as fire
Set_INI_Value(1||VIC20||JoyFire1Button||0)

;---------------------------------------------------------------------------------
; Dink MOD - remap extra Joypad Buttons for custom KEYS.
; You can not map a KEY to D-Pad function, but can map a BUTTON to DPAD direction.
; The code is there to make it work, but i can not?.
;
; Future Update Request.
; JoyDinkUP/DOWN/LEFT/RIGHT/FUNCTION
; This would be very usefull to remap keyboard only games in GEMUS.
; ALL keys if Possible.
; "SHIFT" ";" "." "," "'" "@" "CBM"
;
; Stop Tape Function, for a few Vic20 Tape Games.
; Jogger disables Joystick while play is pressed (datasette motor running).
;
; Please NOTE:
; Every Pad and USB Adapter could use slightly different button numbers.
; Example shows a PS2 Joypad with "Twin USB Vibration Gamepad" adapter.
;---------------------------------------------------------------------------------

if key_Dinkmod CONTAINS (no||0||off)
;Disable Dink MODs
Set_INI_Value(1||VIC20||JoyDinkButton0FUNCTION||0)
Set_INI_Value(1||VIC20||JoyDinkButton1FUNCTION||0)
Set_INI_Value(1||VIC20||JoyDinkButton2FUNCTION||0)
Set_INI_Value(1||VIC20||JoyDinkButton3FUNCTION||0)
Set_INI_Value(1||VIC20||JoyDinkButton4FUNCTION||0)
Set_INI_Value(1||VIC20||JoyDinkButton5FUNCTION||0)
Set_INI_Value(1||VIC20||JoyDinkButton6FUNCTION||0)
Set_INI_Value(1||VIC20||JoyDinkButton7FUNCTION||0)
Set_INI_Value(1||VIC20||JoyDinkButton8FUNCTION||0)
Set_INI_Value(1||VIC20||JoyDinkButton9FUNCTION||0)
;Not used (my pad only has 10 buttons)
Set_INI_Value(1||VIC20||JoyDinkButton10FUNCTION||0)
Set_INI_Value(1||VIC20||JoyDinkButton11FUNCTION||0)
Set_INI_Value(1||VIC20||JoyDinkButton12FUNCTION||0)
Set_INI_Value(1||VIC20||JoyDinkButton13FUNCTION||0)
Set_INI_Value(1||VIC20||JoyDinkButton14FUNCTION||0)
Set_INI_Value(1||VIC20||JoyDinkButton15FUNCTION||0)
Set_INI_Value(1||VIC20||JoyDinkButton16FUNCTION||0)
Set_INI_Value(1||VIC20||JoyDinkButton17FUNCTION||0)
Set_INI_Value(1||VIC20||JoyDinkButton18FUNCTION||0)
Set_INI_Value(1||VIC20||JoyDinkButton19FUNCTION||0)
Set_INI_Value(1||VIC20||JoyDinkButton20FUNCTION||0)
Set_INI_Value(1||VIC20||JoyDinkButton21FUNCTION||0)
Set_INI_Value(1||VIC20||JoyDinkButton22FUNCTION||0)
Set_INI_Value(1||VIC20||JoyDinkButton23FUNCTION||0)
Set_INI_Value(1||VIC20||JoyDinkButton24FUNCTION||0)
Set_INI_Value(1||VIC20||JoyDinkButton25FUNCTION||0)
Set_INI_Value(1||VIC20||JoyDinkButton26FUNCTION||0)
Set_INI_Value(1||VIC20||JoyDinkButton27FUNCTION||0)
Set_INI_Value(1||VIC20||JoyDinkButton28FUNCTION||0)
Set_INI_Value(1||VIC20||JoyDinkButton29FUNCTION||0)
Set_INI_Value(1||VIC20||JoyDinkButton30FUNCTION||0)
Set_INI_Value(1||VIC20||JoyDinkButton31FUNCTION||0)

Else
;--------------------------------------------------------
;X (Button #3) = Map Fire Button for this button #3 only.
;--------------------------------------------------------
Set_INI_Value(1||VIC20||JoyFire1Button||3)

;-----------------------------------------------------
;Triangle (Button #0) = SHIFT 20 / RUNSTOP 29
;-----------------------------------------------------
If key_Button0 CONTAINS (*)
Set_INI_Value(1||VIC20||JoyDinkButton0FUNCTION||%Button0_Value%)
else
Set_INI_Value(1||VIC20||JoyDinkButton0FUNCTION||20)
End If
;--------------------
;Circle - SPACE
;--------------------
If key_Button1 CONTAINS (*)
Set_INI_Value(1||VIC20||JoyDinkButton1FUNCTION||%Button1_Value%)
else
Set_INI_Value(1||VIC20||JoyDinkButton1FUNCTION||3)
End If
;--------------------
;X - (FIRE)
;--------------------
;If key_Button2 CONTAINS (*)
;Set_INI_Value(1||VIC20||JoyDinkButton2FUNCTION||%Button2_Value%)
;else
;Set_INI_Value(1||VIC20||JoyDinkButton2FUNCTION||0)
;End If
;--------------------
;Square - COMMODORE
;--------------------
If key_Button3 CONTAINS (*)
Set_INI_Value(1||VIC20||JoyDinkButton3FUNCTION||%Button3_Value%)
else
Set_INI_Value(1||VIC20||JoyDinkButton3FUNCTION||22)
End If
;--------------------
;L2 - F7/F8
;--------------------
If key_Button4 CONTAINS (*)
Set_INI_Value(1||VIC20||JoyDinkButton4FUNCTION||%Button4_Value%)
else
Set_INI_Value(1||VIC20||JoyDinkButton4FUNCTION||47)
End If
;--------------------
;R2 - F5/F6
;--------------------
If key_Button5 CONTAINS (*)
Set_INI_Value(1||VIC20||JoyDinkButton5FUNCTION||%Button5_Value%)
else
Set_INI_Value(1||VIC20||JoyDinkButton5FUNCTION||45)
End If
;--------------------
;L1 = F1/F2
;--------------------
If key_Button6 CONTAINS (*)
Set_INI_Value(1||VIC20||JoyDinkButton6FUNCTION||%Button6_Value%)
else
Set_INI_Value(1||VIC20||JoyDinkButton6FUNCTION||41)
End If
;--------------------
;R1 = F3/F4
;--------------------
If key_Button7 CONTAINS (*)
Set_INI_Value(1||VIC20||JoyDinkButton7FUNCTION||%Button7_Value%)
else
Set_INI_Value(1||VIC20||JoyDinkButton7FUNCTION||43)
End If
;--------------------
;SELECT - (PAUSE)
;--------------------
If key_Button8 CONTAINS (*)
Set_INI_Value(1||VIC20||JoyDinkButton8FUNCTION||%Button8_Value%)
else
Set_INI_Value(1||VIC20||JoyDinkButton8FUNCTION||2)
End If
;--------------------
;START - (WARP)
;--------------------
If key_Button8 CONTAINS (*)
Set_INI_Value(1||VIC20||JoyDinkButton9FUNCTION||%Button9_Value%)
else
Set_INI_Value(1||VIC20||JoyDinkButton9FUNCTION||1)
End If
;--------------------------------
;End of DINK MOD
End If
;----------------------------

Set_INI_Value(1||VIC20||InitialTapeDir||"%gamepath%")
Set_INI_Value(1||VIC20||InitialDiskDir||"%gamepath%")
Set_INI_Value(1||VIC20||InitialCartDir||"%gamepath%")

   ;Do we want a PAL or NTSC setup?
   If PalNTSC = NTSC
      Add_CLP( -ntsc)
      ;Set_INI_Value(1||VIC20||MachineVideoStandard||-2)
   Else
      Add_CLP( -pal)
      ;Set_INI_Value(1||VIC20||MachineVideoStandard||-1)
   End If


If Control = Mouse
Set_INI_Value(1||VIC20||Mouse||1)
Set_INI_Value(1||VIC20||MouseSensitivity||40)

ElseIf Control = LightPen
Set_INI_Value(1||VIC20||Lightpen||1)

;0=Pen Button Up, 1=Pen Button Left ,2=Datel Pen ,3=Magnum Light Phaser, 4=Stack Light Rifel
Set_INI_Value(1||VIC20||LightpenType||0)

ElseIf Control = LightGun
Set_INI_Value(1||VIC20||Lightpen||1)
Set_INI_Value(1||VIC20||LightpenType||3)

;Paddles are switched on using Mouse command.
ElseIf Control = PaddlePort2
Set_INI_Value(1||VIC20||Mouse||1)
ElseIf Control = PaddlePort1
Set_INI_Value(1||VIC20||Mouse||1)

Else
Set_INI_Value(1||VIC20||Lightpen||0)
Set_INI_Value(1||VIC20||LightpenType||0)
Set_INI_Value(1||VIC20||Mouse||0)
End If

;Set_INI_Value(1||VIC20||JoyOpposite||0)
;Set_INI_Value(1||VIC20||KeySetEnable||1)

; Keyset A - Customise your own keys
; remap a keyboard only game to joypad.
;Set_INI_Value(1||VIC20||KeymapIndex||1)
;Set_INI_Value(1||VIC20||KeySetEnable||1)

;Cursor numbers
;90 up, 92 left, 93 right, 95 down, 100 R-CTRL

If key_up CONTAINS (*)
Set_INI_Value(1||VIC20||KeySet1North||%up_value%)
End if

If key_down CONTAINS (*)
Set_INI_Value(1||VIC20||KeySet1South||%down_value%)
End if

If key_left CONTAINS (*)
Set_INI_Value(1||VIC20||KeySet1West||%left_value%)
End If

If key_right CONTAINS (*)
Set_INI_Value(1||VIC20||KeySet1East||%right_value%)
End If

If key_fire CONTAINS (*)
Set_INI_Value(1||VIC20||KeySet1Fire||%fire_value%)
End If

;***************************************************************
;VIC20 only has 1 Control port as standard.
;Extra joysticks can only be used by attaching special adapters.
; TankAtak needs OEM joy adapater for 2 players.
;***************************************************************

;Set_INI_Value(1||VIC20||ExtraJoy||0)
;Set_INI_Value(1||VIC20||ExtraJoyType||0)

;Set_INI_Value(1||VIC20||JoyDevice2||0)
;Set_INI_Value(1||VIC20||JoyDevice3||0)
;Set_INI_Value(1||VIC20||JoyDevice4||0)

;Set_INI_Value(1||VIC20||JoyFire1Button||0)
;Set_INI_Value(1||VIC20||JoyFire2Button||0)
;Set_INI_Value(1||VIC20||JoyFire3Button||0)
;Set_INI_Value(1||VIC20||JoyFire4Button||0)

;Set_INI_Value(1||VIC20||JoyAutofire1Speed||16)
;Set_INI_Value(1||VIC20||JoyAutofire1Axis||0)
;Set_INI_Value(1||VIC20||JoyAutofire1Button||0)

;Set_INI_Value(1||VIC20||JoyAutofire2Speed||16)
;Set_INI_Value(1||VIC20||JoyAutofire2Axis||0)
;Set_INI_Value(1||VIC20||JoyAutofire2Button||0)

;Set_INI_Value(1||VIC20||JoyAutofire3Speed||16)
;Set_INI_Value(1||VIC20||JoyAutofire3Axis||0)
;Set_INI_Value(1||VIC20||JoyAutofire3Button||0)

;Set_INI_Value(1||VIC20||JoyAutofire4Speed||16)
;Set_INI_Value(1||VIC20||JoyAutofire4Axis||0)
;Set_INI_Value(1||VIC20||JoyAutofire4Button||0)

;--------------------------------------------------------------------
; Memory configuration.

;Set_INI_Value(1||VIC20||RAMBlock0||0)
;Set_INI_Value(1||VIC20||RAMBlock1||0)
;Set_INI_Value(1||VIC20||RAMBlock2||0)
;Set_INI_Value(1||VIC20||RAMBlock3||0)
;Set_INI_Value(1||VIC20||RAMBlock5||0)

;set through the key=value pair:
; memory=x
; where x is: none,all,3k,8k,16k,24k,"0,1,2,3,5" or "04,20,40,60,A0"

	If Key_memory CONTAINS(*)
		Add_CLP( -memory %memory_value%)
	Else
		Add_CLP( -memory none)
	End If
;--------------------------------------------------------------------

If GameType CONTAINS(prg)
;use prg run mode.
Set_INI_Value(1||VIC20||AutostartPrgMode||1)

If Key_sys CONTAINS(*)
Add_CLP( -autoload "%gamepathfile%")
Run_Emulator_Send_Keys([1]sys%sys_value%{ENTER}||50)
Else
Add_CLP( -autostart "%gamepathfile%")
run_emulator()
end If
End If

;--------------------------------------------------------------------

If GameType CONTAINS(crt||rom)

;1=Generic 2=Mega-Cart 3=Final Expansion 4=Vic Flash Plugin
Set_INI_Value(1||VIC20||CartridgeType||1)

;Reset on Cartridge Change
If Key_cartreset CONTAINS (off)
Set_INI_Value(1||VIC20||CartridgeReset||0)
else
Set_INI_Value(1||VIC20||CartridgeReset||-1)
end if

;Set_INI_Value(1||VIC20||CartridgeFile||)
;Set_INI_Value(1||VIC20||GenericCartridgeFile2000||)
;Set_INI_Value(1||VIC20||GenericCartridgeFile4000||)
;Set_INI_Value(1||VIC20||GenericCartridgeFile6000||"C:\GBGame\0\AE-6000.crt")
;Set_INI_Value(1||VIC20||GenericCartridgeFileA000||"C:\GBGame\0\AE-a000.crt")
;Set_INI_Value(1||VIC20||GenericCartridgeFileB000||)

		If Key_cart CONTAINS(*20*)
			Add_CLP( -cart2 %gamepath%\*%cart_value%*.*)
		ElseIf Key_cart CONTAINS(*40*)
			Add_CLP( -cart4 %gamepath%\*%cart_value%*.*)
		ElseIf Key_cart CONTAINS(*60*)
			Add_CLP( -cart6 %gamepath%\*%cart_value%*.*)
		ElseIf Key_cart CONTAINS(*a0*)
			Add_CLP( -cartA %gamepath%\*%cart_value%*.*)
		ElseIf Key_cart CONTAINS(*b0*)
			Add_CLP( -cartB %gamepath%\*%cart_value%*.*)
		End If

		If Key_cart2 CONTAINS(*20*)
			Add_CLP( -cart2 %gamepath%\*%cart2_value%*.*)
		ElseIf Key_cart2 CONTAINS(*40*)
			Add_CLP( -cart4 %gamepath%\*%cart2_value%*.*)
		ElseIf Key_cart2 CONTAINS(*60*)
			Add_CLP( -cart6 %gamepath%\*%cart2_value%*.*)
		ElseIf Key_cart2 CONTAINS(*a0*)
			Add_CLP( -cartA %gamepath%\*%cart2_value%*.*)
		ElseIf Key_cart2 CONTAINS(*b0*)
			Add_CLP( -cartB %gamepath%\*%cart2_value%*.*)
		End If


; AE Cart boots with corrupt screen with RAM 00 at 0000.
; must use these VICE RAM settings, or enter monitor and type - G A027.

If key_RAM CONTAINS (255)
Set_INI_Value(1||VIC20||RAMInitStartValue||255)
Else
Set_INI_Value(1||VIC20||RAMInitStartValue||0)
End If

; Default is 64, possible settings (0||1||2||4||8||16||32||64||128||256||512||1024)
Set_INI_Value(1||VIC20||RAMInitValueInvert||64)

; Default is 0,  possible settings (0||1||2||4||8||16||32||64||128||256||512||1024)
Set_INI_Value(1||VIC20||RAMInitPatternInvert||0)

;Start Cart with SYS command (Mission Impossible).
;GEMUS sys=32592
If Key_sys CONTAINS(*)
Run_Emulator_Send_Keys([1]sys%sys_value%{ENTER}||50)

Else If key_megacart CONTAINS (yes)
;Set_INI_Value(1||VIC20||CartridgeType||2)
;Set_INI_Value(1||VIC20||CartridgeFile||"C:\GBGame\0\mega-cart.rom")
;Set_INI_Value(1||VIC20||MegaCartNvRAMfilename||"C:\GBGame\0\mega-cart.nv")
;Set_INI_Value(1||VIC20||MegaCartNvRAMWriteBack||1)

Add_CLP ( -cartmega %gamepath%\mega-cart.rom -mcnvramwriteback -mcnvramfile %gamepath%\mega-cart.nv)
Run_Emulator()
Else

Run_Emulator()

End if
End if

;--------------------------------------------------------------------

If GameType CONTAINS(t64||tap)

Set_INI_Value(1||VIC20||DatasetteResetWithCPU||1)

;------------------------------
;Fine-tune Datasette settings.
;------------------------------
If key_delay CONTAINS(1000||2000||5000||10000||20000||50000)
Set_INI_Value(1||VIC20||DatasetteZeroGapDelay||%delay_value%)
else
Set_INI_Value(1||VIC20||DatasetteZeroGapDelay||20000)
End if

;Caves of Annod=1, Shark Attack=2
If Key_cycles CONTAINS(0||1||2||3||4||5||6||7)
Set_INI_Value(1||VIC20||DatasetteSpeedTuning||%cycles_value%)
else
Set_INI_Value(1||VIC20||DatasetteSpeedTuning||1)
end if
;------------------------------


;No commandline options for loading tapes with ,1,1. Only BASIC load available.

 	If ImageName CONTAINS (*)
   	; Load the TAPE Image (T64) with Filename stored in GameBase.
   	Add_CLP2( -autostart "%gamepathfile%:%c64imagename%")
   	End If
	
	If key_load CONTAINS(manual)
	 Show_Message(You must load the TAPE manually. Example Load"",1,1)
	 ; Attach Tape Image in default Cassette Deck (1) and run emulator. Disable auto loading.
	 Clear_CLP()
	 Add_CLP2( -1 "%gamepathfile%")
	 
	 Else
	 ; Load the first file on the Tape image.
	 ;Default Attach TAPE and load
	 Add_CLP2( -autostart "%gamepathfile%")
	End If

if key_tape CONTAINS(detach)
;Jogger controls do not work without a tape at the STOP position.
;If using a T64 file the image needs to be removed.
;Open WinVICE menu and detach T64/Tape file.
Run_Emulator_Send_Keys([4]%{f}h||50)

else
Run_emulator()
end if
End if

;--------------------------------------------------------------------

If GameType CONTAINS(d64||g64||g41)

Set_INI_Value(1||VIC20||DriveTrueEmulation||1)
;Set_INI_Value(1||VIC20||DriveSoundEmulation||0)

;Set_INI_Value(1||VIC20||Drive8Type||1541)
;Set_INI_Value(1||VIC20||AttachDevice8Readonly||0)
;Set_INI_Value(1||VIC20||FileSystemDevice8||1)
;Set_INI_Value(1||VIC20||Drive8ExtendImagePolicy||0)
;Set_INI_Value(1||VIC20||Drive8IdleMethod||0)
;Set_INI_Value(1||VIC20||Drive8RAM2000||0)
;Set_INI_Value(1||VIC20||Drive8RAM4000||0)
;Set_INI_Value(1||VIC20||Drive8RAM6000||0)
;Set_INI_Value(1||VIC20||Drive8RAM8000||0)
;Set_INI_Value(1||VIC20||Drive8RAMA000||0)

Set_INI_Value(1||VIC20||Drive9Type||0)
Set_INI_Value(1||VIC20||Drive10Type||0)
Set_INI_Value(1||VIC20||Drive11Type||0)


      ; -autorun    autoloads prg file, but you will need to type RUN [return] manually.
      ; -autostart  autoloads and runs the file.
      
	If ImageName CONTAINS (*)
	;Default setting. Boot disk with ImageName
	Add_CLP2( -autostart "%gamepathfile%:%c64imagename%")

; ***** Boot all other disks with a wildcard, if no internal file can be set on the image (G64) *****
	Else
	Add_CLP2( -autostart "%gamepathfile%")
	End If
; ***************************************************************************************************	
	
		If Key_load CONTAINS(wildcard)
		; Auto boot disk with LOAD"*",8,1
		Clear_CLP()
		Add_CLP2( -autostart "%gamepathfile%")

		ElseIf Key_load CONTAINS(basic)
		; Auto boot Disk with LOAD"*",8
		Clear_CLP()
		Add_CLP2( -autostart "%gamepathfile%" -basicload)

		ElseIf key_load CONTAINS(manual)
		Show_Message(You must load the game on the disk manually. LOAD"$",8 and type LIST for directory)
		; Just attach disk in default drive 8 and run emulator. Disable auto loading.
		Clear_CLP()
		Add_CLP2( -8 "%gamepathfile%")
		End If
Run_emulator()
End If

Posted: Sun Jan 10, 2016 11:28 pm
by macguyver
Thanks very much .mad. for taking the time to put this together!

I'll play with this script and report back. :)

Posted: Sun Jan 31, 2016 9:21 am
by macguyver
.mad. I'm having great luck getting the controller to work as thanks to your helpful GEMUS script. however, I'm having trouble trying to get Gamebase to exit by pressing the escape key. Any ideas? At first I was modifying the win_sym.vkm file but I've somehow got to fool VICE that pressing "esc" is the same as alt-x. Any suggestions?

- actually I got it to work by adjusting the .vkm file to include the following:

1 -1 -1 0 /* ESC -> No Key */

(To get the escape key functionality, I'm also using GameEx which runs overtop of Gamebase, so it's a little crazy but it all works.)

One other issue I noticed with the GEMUS script above is that I think some of the details are out of sync with the version of VICE that it's meant for (2.4.8 dink mod). For example, I could not get the cartridge version of "Gorf" to work on it any longer. (GORF-a000.prg) So what I did is copy the previous GEMUS script pieces from V2.4 earlier in this thread, and past that section relating to memory addresses and loading in to the new version you provided. Now it works! I wonder what is offside about that section of your newest GEMUS script?

Thanks again for all your insights.

Posted: Sun Jan 31, 2016 11:52 am
by .mad.
macguyver wrote: I could not get the cartridge version of "Gorf" to work on it any longer. (GORF-a000.prg).
it is working as it should.
GORF-A000.PRG is a CARTRIDGE not a PROGRAM.

i renamed all CRT files with incorrect PRG extension.
you can add PRG to cartridge filetypes, or rename file to GORF-A000.CRT.

Posted: Fri Feb 05, 2016 7:03 am
by macguyver
Thanks for the feedback, .mad.

I do realize that Gorf is a cartridge. I purchased it myself for $64 in 1983 and played it like crazy that summer! I remember the salesperson was telling my mother, "It's four games in 1, so your son is getting quite the deal".

Unfortunately it appears that many of the cartridges in the latest version (V3) of the Vic20 Gamebase are listed with the PRG extension. Thanks for the suggestion of renaming the files, or adding PRG to cartridge filetype. I chose the latter route rather than renaming them all, even though I hope the next version of the database will go with the new naming scheme.

Thanks again for your help. Playing the huge collection of Gamebase Vic20 games with a wireless D-pad is such a blast! :D