Jump to content

All my products and services are free. All my costs are met by donations I receive from my users. If you enjoy using any of my products, please donate to support me. Thank you for your support. Tom Speirs

Patreon

[RESOLVED] WinVice - Configure GamePad?


hansolo77

Recommended Posts

Hey guys, I'm really desperate. I've read the documentation over at the VICE website, and tried to figure it out on my own, but I'm just coming up short.

I'm setting up my computer emulations now, and using GameBase when I can. WinVice is the recommended best emulator for the C64, so I'm using that. Using GameBase, I can launch a game fine, and it runs perfectly. However, I can't figure out how to setup my gamepad controller to work with the emulator. I've enabled it in the joystick settings, but it doesn't work. The only thing that seems to work is the buttons. That's all good, but I need to be able to make the D-Pad control the stick! Could somebody walk me through, perhaps with screenshots, on how to set this up?

RESOLVED... Edit the GEMUS ini file to disable automatic mapping of controllers, and configure controller inside WinVICE directly, mapping it to port #2 and not #1.

Link to comment
Share on other sites

I think I figured it out. The info on some of the games says the Joystick goes in port 2, which I didn't have enabled. That did the trick. Now I need some help getting the enabled port to SAVE. Seems like everytime I load up a game, it isn't enabled, so I have to re-enabled it EVERYTIME. Is this just something I have to live with?

Link to comment
Share on other sites

Just be patient, I use WinVICE and I'll look into this tonight. Your issue is very strange since you say that the buttons work... D-pad should work automatically too. Open WinVICE outside of GE, don't load anything. Look at the bar at the bottom of the WinVICE's window. There are two crosses symbolising the joysticks. Do they respond to your movement?

And in the meantime... take a look at CCS64. I'm not the only one to say that is the best emulator since v2.0 (now we have 3.8). It emulates 99,9% of the software. This is the claim of the author, of course, but trust me, I've found CCS64 more compatible and accurate than WinVICE, which is a great emulator, though.

Link to comment
Share on other sites

Oh, it was so simple! According to the game, you could have to switch port 1\port 2, although port 2 is generally used for game.

Regarding the save issue, try Options (Or settings.. I don't remember) end near the end (Save settings on exit).

Link to comment
Share on other sites

Yeah I have the Save Settings on Exit enabled, but it doesn't save the enabled joysticks. I'm poking around with it more right now; lunch time gotta go get food. I'm off all day so it's not like i'm in a rush. :) Thanks for offering your help AlphaUMi!

Link to comment
Share on other sites

Wow, I'm glad I'm uber smart....

First thing; Enabling Full Screen.

Open the GEMUS menu in GameBase

Click the 1st option (1. WinVICE v2.2...)

Scroll down and look for "Set_INI_Value(1||C64||FullscreenEnabled||1)" and remove the ; delimiter.

Click [OK] button.

Second thing; Disabling Automatic Joystick Mapping

Open the GEMUS menu in GameBase

Click the 1st option (1. WinVICE v2.2...)

Scroll down and look for ";set the game controls"

Put a ; delimiter before each and every line until you get to ";REU (Ram Expansion Unit) = 128,256,512,1024,2048,4086,8192 or 16384 kB" (it's the last "End If" statement in that group)

Clik [OK] button.

Or, just copy and paste this:

;********************************

;* WinVICE Default GEMUS Script *

;* © The GB64 Team *

;* 8 August 2007 *

;********************************

;

; PLEASE SET YOUR EMULATOR PROPERTIES AS FOLLOWS:

;

; Emulator File: X64.EXE

; Associated Script File (1): vice.ini

; Use Short Filenames: YES

; File Types: D64;T64;G64;G41;TAP;CRT;P00;PRG;LNX

; (Compressed File Types: GZ;Z;BZ2;ZIP;TAR;TZG;ZOO)

;

; This script was written for WinVICE C64 v1.16,

; but may work with other Windows C64 versions too.

;

; Emulator Website: http://www.viceteam.org

;

; If you have a disk game that comes on multiple disks

; and works with multiple drives, you can set a

; GEMUS key=value pair to auto insert all the disks into

; VICE's drives. Simply press F2 (in the main GB window)

; and enter: maxdrives=x

; where x is either 2, 3 or 4

;

; If VICE requires True Drive Emulation, but CCS64 does not,

; use the key=value pair: vtde=yes

; If VICE does not require True Drive Emulation, but CCS64 does,

; use the key=value pair: vtde=no

;

; To enable the REU (RAM Expansion Unit),

; use the key=value pair: reu=x

; where x is 128,256,512,1024,2048,4086,8192 or 16384

If GameType CONTAINS(d64||t64||g64||g41||tap||crt||p00||prg||lnx)

;option to turn on/off Warp Mode (speed increase) at startup

;Set_INI_Value(1||C64||WarpMode||1)

;option to start in fullscreen mode (no border=640x400, border=600x800 or larger)

Set_INI_Value(1||C64||FullscreenEnabled||1)

;Set_INI_Value(1||C64||FullscreenWidth||640)

;Set_INI_Value(1||C64||FullscreenHeight||400)

;Set_INI_Value(1||C64||FullscreenBitdepth||32)

;VICII settings for Color Enhancer v0.8 (but may work with other versions too)

;website: http://perso.wanadoo.fr/ck/C64/filter/C64Filter.html

;the Color Enhancer Filter replaces the default Scale2x filter

;with a 32-bit color depth smoothing/dithering filter algorithm.

;Set_INI_Value(1||C64||VICIIDoubleSize||1)

;Set_INI_Value(1||C64||VICIIScale2x||1)

;set paths to file location for possible image swaps

Set_INI_Value(1||C64||InitialDiskDir||"%gamepath%")

Set_INI_Value(1||C64||InitialTapeDir||"%gamepath%")

Set_INI_Value(1||C64||InitialCartDir||"%gamepath%")

Set_INI_Value(1||C64||InitialAutostartDir||"%gamepath%")

Set_INI_Value(1||C64||InitialDefaultDir||"%gamepath%")

Set_INI_Value(1||C64||InitialSnapshotDir||"%gamepath%")

Set_INI_Value(1||C64||FSDevice8Dir||"%gamepath%")

Set_INI_Value(1||C64||Drive9Type||0)

Set_INI_Value(1||C64||Drive10Type||0)

Set_INI_Value(1||C64||Drive11Type||0)

;set to extend tracks on access

Set_INI_Value(1||C64||Drive8ExtendImagePolicy||2)

Set_INI_Value(1||C64||Drive9ExtendImagePolicy||2)

Set_INI_Value(1||C64||Drive10ExtendImagePolicy||2)

Set_INI_Value(1||C64||Drive11ExtendImagePolicy||2)

;autostart or 'manual load' the game image

If GameType CONTAINS(crt)

;autostart the cart image

Add_CLP( -cartcrt %gamepathfile%)

Else

;insert multiple disks into drives 9, 10 and 11?

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

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

;autostart or 'manual load' the game image

If ImageName CONTAINS(*)

If VersionComment CONTAINS(*load manually*)

Add_CLP2( -autoload "%gamepathfile%:%c64imagename%")

If Key_keybuf CONTAINS(*)

Add_CLP2( -keybuf %keybuf_value%)

End If

Else

Add_CLP2( -autostart "%gamepathfile%:%c64imagename%")

End If

Else

If VersionComment CONTAINS(*load manually*)

Add_CLP2( -autoload "%gamepathfile%)

Else

Add_CLP2( -autostart "%gamepathfile%")

End If

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)

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

;

;Replace * with <DISABLED> to disable the automatic settings for the JoyPorts

;If %gamefile% CONTAINS(*)

; If Control = JoyPort2

; Add_CLP( -joydev2 3)

; If NumPlayers > 1

; Add_CLP( -joydev1 2)

; Else

; Add_CLP( -joydev1 0)

; End If

; Set_INI_Value(1||C64||Mouse||0)

; ElseIf Control = JoyPort1

; Add_CLP( -joydev1 3)

; If NumPlayers > 1

; Add_CLP( -joydev2 2)

; 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 PET Emulator to run 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

;run the emulator

Run_Emulator()

Else

;invalid game file type

Show_Message(GAME_NOT_SUPPORTED%crlfx2%Supported types: D64, T64, G64/G41, TAP, CRT, P00, PRG, LNX)

End If

Turns out, the problem with the controllers being disabled wasn't the emulator causing it, but GameBase. Everytime I loaded up the emulator outside of GameBase, it had the controllers enabled as I wanted. But once I loaded up GameBase, it reset the controllers, disabling my gamepad. When I exited GameBase and loaded the emulator separately, it was reset. Re-enabled, exited. Re-opened the emulator; enabled. Exited, launched GameBase; disabled. So I found the lines in the GameBase's GEMUS that controlled this, and disabled them. I also found the line that enabled the full screen mode, which was disabled by default, even though I had the emulator saving in full screen. All better now!

Link to comment
Share on other sites

Good to hear that, hansolo! You found a very smart and sophisticated solution for your issues.

Personally I had the same result in the simple way: :P

1. Used the default script that basically acts like [launch emulator "ROMPATH\ROMFILE"], without taking control of the emulator settings, instead of the WinVICE script that was written for a very old version of WinVICE (1.6, according to the script).

2. Enabled fullscreen via vice.ini (yes, it's strange, but I haven't ever seen an option in the gui to start the emulator automatically in full screen). The entry is FullscreenEnabled=1.

Personally, I think there is no need of complicated scripted configuration files, I don't like GEMUS too much...

Link to comment
Share on other sites

Well, the benefit of the GEMUS is the functions where it detects how much memory to use for a given game. Depending on the format of the ROM (disk, cartridge, tape), there is different memory requirements and sizes needed. The GEMUS detect this, and properlly setup the emulator with the correct requirements.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...