Welcome to the Gamebase 64 forums. An attempt to document ALL Commodore 64 gameware before it's too late!
NTSC and JOYSTICKS
Moderator: Jimbo
- cammelspit
- New Member
Post
NTSC and JOYSTICKS
ok, so I am having one heck of a time getting GB64 to work with VIce the way I would like it to. For one, I cant get the machine to start in NTSC and I have searched these forums and found that not one thing that SHOULD work that actually does, an annoyance to say the least but that isnt the worst part. I use an XBOX 360 controller for most of my emulation as its very compatible but I have to reset the joystick stting every time I launch a game making the whole front end idea a moot point. The emulator when launched manually keeps the settings perfectly and my controller works fine but GB64 seems to be overwriting those settings for no apparent reason. I would love to be able to enjoy all these fine C64 titles but it seems the emulators that are around are almost as conveluted as using origenal hardware! (If you dont already know how then just dont bother) I am NOT an amulator newbie and have set up some of the most conveluted mame and mess frontend stuff and I can always figure it out eventually but here I am losing hair over this and I dont have an infinate supply of that left these days.
- .mad.
- Honoured Member
- Location: Lancashire
Post
the script does all the joystick config settings.
Script/WINVICE.txt
;set the game controls
;These settings are designed to automatically set the controls for player 1
;to the same controller, regardless of which PORT the game uses for player 1.
;
;0=None, 1=Numpad + RCtrl, 2=Keset A, 3=Keyset B, 4+ are for real joysticks/pads
;
;Use k=v pair REALJOYSTICK1 and REALJOYSTICK2 to activate a USB game controller
;for player 1 and player 2
----------
open C64 GameBase and Press F2
enter this in the KVSets GLOBAL (right window)
realjoystick1=YES
realjoystick2=YES
or the joy keysets will be set automatically.
you can just edit the script to use your settings as default, or delete the joystick part of the script to use your current VICE settings.
Script/WINVICE.txt
;set the game controls
;These settings are designed to automatically set the controls for player 1
;to the same controller, regardless of which PORT the game uses for player 1.
;
;0=None, 1=Numpad + RCtrl, 2=Keset A, 3=Keyset B, 4+ are for real joysticks/pads
;
;Use k=v pair REALJOYSTICK1 and REALJOYSTICK2 to activate a USB game controller
;for player 1 and player 2
----------
open C64 GameBase and Press F2
enter this in the KVSets GLOBAL (right window)
realjoystick1=YES
realjoystick2=YES
or the joy keysets will be set automatically.
you can just edit the script to use your settings as default, or delete the joystick part of the script to use your current VICE settings.
- cammelspit
- New Member
Post
Ok, I get that a script must be used but there is no winvice.txt in the scripts folder... There was one called x64 but it was just a copy of the vice INI and I did delete it but it also did nothing at all when referring to joysticks or the type of machine emulated not one thing at all. it also kept rewriting the vice ini completely which seems like not a good idea seeing as you have to do all this stuff manually anyways, you know, for usability. Should I remake it and try again because I DID change the seeting in vice and saved the ini and trhen copy pasted to that script but still nothing. All other settings worked fine but not joysticks or macing type which are actually among the most important to get working. It's just VERY frustrating.
- .mad.
- Honoured Member
- Location: Lancashire
Post
Best to start over, i think.
Here is a script with the joystick / control settings removed.
put this in GAMEBASE/GBC_v11/Scripts/WinVICE.txt
WinVICE.txt
check this file...
GAMEBASE/GBC_v11/emulators.ini
it should point to your WinVICE install and VICE.ini
you must create the default VICE.INI file before using gamebase.
like this example..
the above file can be created using the emulators setup wizard...
http://www.gb64.com/forum/viewtopic.php?t=5206
if your emulators are in other locations.
Then your current setup is never going to work with WinVICE.I get that a script must be used but there is no winvice.txt in the scripts folder...
Best to start over, i think.
Here is a script with the joystick / control settings removed.
put this in GAMEBASE/GBC_v11/Scripts/WinVICE.txt
WinVICE.txt
Code: Select all
;*************************
;* WinVICE v2.4 *
;* GEMUS Script *
;* (c) The GB64 Team *
;* 13th April 2013 *
;*************************
; PLEASE SET YOUR EMULATOR PROPERTIES AS FOLLOWS:
;
; Emulator File: x64.exe
; Associated Script Files (1): vice.ini [C64]
; Use Short Filenames: YES
; File Types: D64;D71;D80;D81;D82;G64;G41;X64;TAP;T64;P00;PRG;CRT
; Emulator Website: (2.4 - 27 Dec 2012)
; http://vice-emu.sourceforge.net/
; Disable Exit Nag Box.
Set_INI_Value(1||C64||ConfirmOnExit||0)
; Remove Crappy Video CRT emulation.
If Key_CRTEmu CONTAINS (yes||on||1)
Set_INI_Value(1||C64||VICIIFilter||1)
Else
Set_INI_Value(1||C64||VICIIFilter||0)
End If
;Make sure emulator starts at normal speed.
Set_INI_Value(1||C64||WarpMode||0)
;option to start in fullscreen/Window mode
If Key_fullscreen CONTAINS(yes||1||on||true)
Set_INI_Value(1||C64||FullscreenEnabled||1)
Else
Set_INI_Value(1||C64||FullscreenEnabled||0)
Set_INI_Value(1||C64||VICIIDoubleSize||1)
Set_INI_Value(1||C64||VICIIDoubleScan||1)
End If
;option to disable sound output
If Key_sound CONTAINS(no||0||off|false)
Set_INI_Value(1||C64||Sound||0)
Else
Set_INI_Value(1||C64||Sound||1)
End If
; TrueDrive Emulation
; Set_INI_Value(1||C64||DriveTrueEmulation||1)
Set_INI_Value(1||C64||AutostartPrgDiskImage||"%emupath%\autostart-C64.d64")
;Make Gamebase rezip directory (c:/gbgame/0) default path.
Set_INI_Value(1||C64||InitialDiskDir||"%gamepath%")
Set_INI_Value(1||C64||InitialTapeDir||"%gamepath%")
Set_INI_Value(1||C64||InitialCartDir||"%gamepath%")
If key_autowarp CONTAINS(on||yes||1)
Set_INI_Value(1||C64||AutostartWarp||1)
else
Set_INI_Value(1||C64||AutostartWarp||0)
End If
;Dink Mod Settings.
If key_speedysl CONTAINS(on||yes||1)
Set_INI_Value(1||C64||AutostartWarpSpeedySL||1)
else
Set_INI_Value(1||C64||AutostartWarpSpeedySL||0)
End If
; Disable Disk Drives, until we know the filetype.
Set_INI_Value(1||C64||Drive8Type||0)
Set_INI_Value(1||C64||Drive9Type||0)
Set_INI_Value(1||C64||Drive10Type||0)
Set_INI_Value(1||C64||Drive11Type||0)
; Prepare all drive to extend on access.
Set_INI_Value(1||C64||Drive8IdleMethod||0)
Set_INI_Value(1||C64||Drive8ExtendImagePolicy||2)
Set_INI_Value(1||C64||Drive9IdleMethod||0)
Set_INI_Value(1||C64||Drive9ExtendImagePolicy||2)
Set_INI_Value(1||C64||Drive10IdleMethod||0)
Set_INI_Value(1||C64||Drive10ExtendImagePolicy||2)
Set_INI_Value(1||C64||Drive11IdleMethod||0)
Set_INI_Value(1||C64||Drive11ExtendImagePolicy||2)
If GameType CONTAINS(crt)
;autostart the cart image
Add_CLP( -cartcrt %gamepathfile%)
End If
If GameType CONTAINS(d64||g64||g41)
Set_INI_Value(1||C64||FSDevice8Dir||"%gamepath%")
Set_INI_Value(1||C64||Drive8Type||1541)
;insert multiple disks into drives 9, 10 and 11?
If Key_maxdrives CONTAINS(2||3||4)
If NumGameFiles > 1
Add_CLP2( -9 "%gamepathfile(1)%")
Set_INI_Value(1||C64||FSDevice9Dir||"%gamepath%")
Set_INI_Value(1||C64||Drive9Type||1541)
End If
End If
If Key_maxdrives CONTAINS(3||4)
If NumGameFiles > 2
Add_CLP2( -10 "%gamepathfile(2)%")
Set_INI_Value(1||C64||FSDevice10Dir||"%gamepath%")
Set_INI_Value(1||C64||Drive10Type||1541)
End If
End If
If Key_maxdrives CONTAINS(4)
If NumGameFiles > 3
Add_CLP2( -11 "%gamepathfile(3)%")
Set_INI_Value(1||C64||FSDevice11Dir||"%gamepath%")
Set_INI_Value(1||C64||Drive11Type||1541)
End If
End If
End If
If GameType CONTAINS(d80||d81||d82)
Set_INI_Value(1||C64||FSDevice8Dir||"%gamepath%")
Set_INI_Value(1||C64||Drive8Type||1581)
If Key_maxdrives CONTAINS(2||3||4)
If NumGameFiles > 1
Add_CLP2( -9 "%gamepathfile(1)%")
Set_INI_Value(1||C64||FSDevice9Dir||"%gamepath%")
Set_INI_Value(1||C64||Drive9Type||1581)
End If
End If
If Key_maxdrives CONTAINS(3||4)
If NumGameFiles > 2
Add_CLP2( -10 "%gamepathfile(2)%")
Set_INI_Value(1||C64||FSDevice10Dir||"%gamepath%")
Set_INI_Value(1||C64||Drive10Type||1581)
End If
End If
If Key_maxdrives CONTAINS(4)
If NumGameFiles > 3
Add_CLP2( -11 "%gamepathfile(3)%")
Set_INI_Value(1||C64||FSDevice11Dir||"%gamepath%")
Set_INI_Value(1||C64||Drive11Type||1581)
End If
End If
End If
; -autorun autoloads prg file, but you will need to type RUN [return] manually.
; -autostart autoloads and runs the file.
If Key_load CONTAINS(basic)
; Auto boot Disk with LOAD"*",8:
Set_INI_Value(1||C64||AutostartRunWithColon||1)
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%")
ElseIf key_sendkeys CONTAINS(*)
Add_CLP2( -8 "%gamepathfile%")
ElseIf Key_load CONTAINS(wildcard)
; Auto boot disk with LOAD"*",8,1:
Add_CLP2( -autostart "%gamepathfile%")
;NOT POSSIBLE to select internal file from GameBase in G64, G41, D71, D80, D81, D82 and FDI disk images.
;So load"*",8,1 is used. use sendkeys if another file is required to boot disk.
;use GEMUS "Load=Wildcard"
ElseIf GameType CONTAINS(g64||g41||d70||d71||d80||d81||d82)
Add_CLP2( -autostart "%gamepathfile%")
Else
;Default setting. Boot disk with internal ImageName
Add_CLP2( -autostart "%gamepathfile%:%c64imagename%")
End If
If GameType CONTAINS(t64||tap)
;No commandline options for loading tapes with ,1,1. Only BASIC load available.
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.
Add_CLP2( -1 "%gamepathfile%")
ElseIf key_sendkeys CONTAINS(*)
Add_CLP2( -1 "%gamepathfile%")
Else If Key_load CONTAINS(wildcard)
; Load the first file on the Tape image.
;Default Attach TAPE and load
Add_CLP2( -autostart "%gamepathfile%")
Else
; Load the TAPE Image (T64) with Filename stored in GameBase.
Add_CLP2( -autostart "%gamepathfile%:%c64imagename%")
End If
End If
;do we want a PAL or NTSC setup?
If PalNTSC = NTSC
Add_CLP( -ntsc)
Else
Add_CLP( -pal)
End If
;true drive emulation (vtde=yes is for VICE only, not CCS64)
;set GEMUS key "vtde" to overrule database TrueDriveEmu settings
If Key_vtde CONTAINS(yes||on||true||1)
Add_CLP( -truedrive)
ElseIf Key_vtde CONTAINS(no||no*||off|false||0)
Add_CLP( +truedrive)
ElseIf TrueDriveEmu = YES
Add_CLP( -truedrive)
;Set True Drive Emulation ON for all G64 Original Disks.
;Best option would be to check for Extras Name CONTAINS "Original Disk".
ElseIf GameType CONTAINS(g64||d71||d81||d82)
Add_CLP( -truedrive)
Else
Add_CLP( +truedrive)
End If
;set the game controls
;These settings are designed to automatically set the controls for player 1
;to the same controller, regardless of which PORT the game uses for player 1.
;
;0=None, 1=Numpad + RCtrl, 2=Keset A, 3=Keyset B, 4+ are for real joysticks/pads
;
;Use k=v pair REALJOYSTICK1 and REALJOYSTICK2 to activate a USB game controller
;for player 1 and player 2
; If Key_joystickautoconfig CONTAINS(no||0||off||false)
; Else
; If Control = JoyPort2
; If Key_realjoystick1 CONTAINS(yes||1||on||true)
; Add_CLP( -joydev2 4)
; Else
; Add_CLP( -joydev2 3)
; 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
; Set_INI_Value(1||C64||Mouse||0)
; ElseIf Control = JoyPort1
; If Key_realjoystick1 CONTAINS(yes||1||on||true)
; Add_CLP( -joydev1 4)
; Else
; Add_CLP( -joydev1 3)
; 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
; Set_INI_Value(1||C64||Mouse||0)
; ElseIf Control = Mouse
; ;1351 Mouse emulation (the Port cannot be changed or determined via the GUI)
; Set_INI_Value(1||C64||Mouse||1)
; Set_INI_Value(1||C64||Mouseport||1)
; Add_CLP( -joydev1 0)
; Add_CLP( -joydev2 0)
; ElseIf Control = PaddlePort1
; ;Mouse PORT1 setting may give partial PaddlePort1 control
; Set_INI_Value(1||C64||Mouse||1)
; Set_INI_Value(1||C64||Mouseport||1)
; Add_CLP( -joydev1 0)
; Add_CLP( -joydev2 0)
; ElseIf Control = PaddlePort2
; ;Mouse PORT2 setting may give partial PaddlePort2 control
; Set_INI_Value(1||C64||Mouse||1)
; Set_INI_Value(1||C64||Mouseport||2)
; Add_CLP( -joydev1 0)
; Add_CLP( -joydev2 0)
; Else
; ;Disable Joysticks and Mouse
; Add_CLP( -joydev1 0)
; Add_CLP( -joydev2 0)
; Set_INI_Value(1||C64||Mouse||0)
; End If
; End If
;REU (Ram Expansion Unit) = 128,256,512,1024,2048,4086,8192 or 16384 kB
If Key_reu CONTAINS(*)
;enable REU and set to reu value
If Key_reu CONTAINS(128||256||512||1024||2048||4096||8192||16384)
Set_INI_Value(1||C64||REUsize||%reu_value%)
Set_INI_Value(1||C64||REU||1)
ElseIf Key_reu CONTAINS(no||no*||off||false||0)
;disable REU if set to off
Set_INI_Value(1||C64||REU||0)
Else
;set to 512 kB for all other REU values (on, yes, 500, etc.)
Set_INI_Value(1||C64||REUsize||512)
Set_INI_Value(1||C64||REU||1)
End If
Else
;disable REU
Set_INI_Value(1||C64||REU||0)
End If
;unsupported game controls
If Control = LightPen
Show_Message(This emulator does not have LightPen emulation.%crlfx2%This game may be uncontrollable/unplayable.)
ElseIf Control = KoalaPad
Show_Message(This emulator does not have KoalaPad emulation.%crlfx2%This game may be uncontrollable/unplayable.)
ElseIf Control = LightGun
Show_Message(This emulator does not have LightGun emulation.%crlfx2%This game may be uncontrollable/unplayable.)
ElseIf Control = PaddlePort1
Show_Message(This emulator does not have Paddle emulation.%crlfx2%Mouse Port1 setting may allow partial control via the mouse.%crlfx2%This game may still be uncontrollable/unplayable.)
ElseIf Control = PaddlePort2
Show_Message(This emulator does not have Paddle emulation.%crlfx2%Mouse Port2 setting may allow partial control via the mouse.%crlfx2%This game may still be uncontrollable/unplayable.)
End If
;give the user a warning message?
If VersionComment CONTAINS(*use C64S*||*use CCS*||*use real C64*)
Show_Message(This game may not work properly with this emulator.%crlfx2%See Version Comment for more info.)
End If
If VersionComment CONTAINS(*not 100%*||*not working*||*doesn't work*)
Show_Message(This game may not work properly.)
End If
If VersionComment CONTAINS(*PET Emulator*)
Show_Message(Use LOAD"*",8 and RUN in PET Emulator start this game.)
End If
If VersionComment CONTAINS(*ATTN:*||*NOTE:*||*ATTN!:*||*NOTE!:*)
;point out that critical info is in the version comment
Show_Message(Read this game's Version Comments for very important information/instructions.)
End If
If VersionComment CONTAINS(*VIC-20*||*VIC20*)
If VersionComment CONTAINS(*emulator*)
Show_Message(Use VIC-20 column Emulator to run this game properly.)
End If
End If
;show message for the user
If Key_msg CONTAINS(*)
Show_Message(%msg_value%)
End If
;********************************************************************************************************
; Send keys to emulator (use lower case in GEMUS).
; same as using load=manual it disables any auto loading.
;
; Remember C64 Emulators use different keymaps from PC.
; ;=: ]=* [=@ £=# ^=& *=( (=) -=+
;
; Only a few ANSI codes {C34} are available for sendkeys. Some have strange results.
; {C31} = Put C64 in lowecase, {C30} = Put the C64 back in uppercase
; sendkeys={C31}[1]{C30}
;
; sendkeys=load"game",8,1{enter}
;
; LOAD"M*",8,1
; sendkeys=load"m]",8,1
;
; example of PRG file start when injected into RAM.
; sendkeys=sys64738{enter}
;
; To get the directory of the disk (some original copy protections will never finish loading.)
;
; sendkeys=load"$",8{enter}[2]list{enter}
; or
; sendkeys=lO"$",8{enter}[2]lI{enter}
;********************************************************************************************************
If key_sendkeys CONTAINS(*)
Run_Emulator_Send_Keys([4]%sendkeys_value%||50)
Else
;run the emulator
Run_Emulator()
End If
GAMEBASE/GBC_v11/emulators.ini
it should point to your WinVICE install and VICE.ini
you must create the default VICE.INI file before using gamebase.
like this example..
Code: Select all
[Emulators]
1=WinVICE 2.4-x86
2=
[WinVICE 2.4-x86]
UseShortFilenames=1
SupportedTypes=D64;T64;G64;G41;TAP;CRT;P00;PRG;ROM
EmulatorPathFile=C:\GameBase\GBC_v11\Emulators\WinVICE-2.4-x86\x64.exe
ScriptFile=WinVICE.txt
1=C:\GameBase\GBC_v11\Emulators\WinVICE-2.4-x86\vice.ini
2=
http://www.gb64.com/forum/viewtopic.php?t=5206
if your emulators are in other locations.
- cammelspit
- New Member
Post
For one... YAY! Joystick functions are now no longer being rewritten by game base and are now only defaulting to what is in my vice.ini(Preffered behavior) so thank you very very much for the assist. I guess the script is just set up to rewrite the joy settings in the ini for some reason... Now, I am still having the NTSC options being rewritten as well and I am assuming it's more than likely the same kind of issue. However, I don't know what to change to make it either default to NTSC. Either I can change the defaults somehow or I would be ok to also just default to the vice ini settings, I just dont really know how. You are super awesome for helping me out here, it is very much appreciated.
- .mad.
- Honoured Member
- Location: Lancashire
Post
The GameBase frontend sets the desired machine for each game in the collection.
for PAL only games it will load a PAL machine, and for NTSC Only games will load a NTSC machine.
for a game that runs in both it will boot PAL.
seeing as the machine it is emulated on a PC, it should not matter to you.
anyway, i guess it does your head in.
edit these lines of the script...
;do we want a PAL or NTSC setup?
If PalNTSC = NTSC
Add_CLP( -ntsc)
Else
Add_CLP( -pal)
End If
------------------
change to this
------------------
;do we want a PAL or NTSC setup?
If PalNTSC = PAL
Add_CLP( -pal)
Else
Add_CLP( -ntsc)
End If
PAL will still be booted for PAL Only games set in GameBase.
default will be NTSC.
for PAL only games it will load a PAL machine, and for NTSC Only games will load a NTSC machine.
for a game that runs in both it will boot PAL.
seeing as the machine it is emulated on a PC, it should not matter to you.
anyway, i guess it does your head in.
edit these lines of the script...
;do we want a PAL or NTSC setup?
If PalNTSC = NTSC
Add_CLP( -ntsc)
Else
Add_CLP( -pal)
End If
------------------
change to this
------------------
;do we want a PAL or NTSC setup?
If PalNTSC = PAL
Add_CLP( -pal)
Else
Add_CLP( -ntsc)
End If
PAL will still be booted for PAL Only games set in GameBase.
default will be NTSC.
- cammelspit
- New Member
Post
Good sir, you are a god among men. I could just feel the frustration just drain away and ease into a slight giddy feeling because all works as I would like it to and I can enjoy some of these classics. I know PAL shouldn't matter but it stiill bothered me seeing as I use a 60Hz TV for my PC instead of a normal variable Hz monitor so I like using the native Hz whenever possible to decrease tearimng (for faster that) or pulldown/up having to be done internally oir even throught the video divers as it sucks anyway. Still again I appreciate the assist and thank you profusely.
Who is online
Users browsing this forum: No registered users and 2 guests