Page 1 of 1

I noticed with the default keyboard setup with Gamebase, the + symbols don't work right

Posted: Mon Jul 04, 2022 6:33 am
by KrazyKanuck
I noticed that when I was using a trainer to change a level in a game, I wanted to start at a higher level in the game but whenever I pressed shift with the equals symbol nothing would happen. I literally have to change the keyboard layout to "American" instead of Dutch every time just to get the correct + symbol to work. Is there a way to permanently change this setting for gamebase?

Re: I noticed with the default keyboard setup with Gamebase, the + symbols don't work right

Posted: Mon Jul 04, 2022 7:30 pm
by .mad.
The key maps are a bit of a mess in Gtk3VICE & SDL2.
the UK key maps were only included this year (because i made them). ;)

depending on the version of VICE you are using, the script might not be able to select the correct one you need.
so use latest version (nightly builds).

for best results use a POSITIONAL keymap.
this is the same key location as that on the real C64.
* = ]
when you learn the C64 key location it will improve your C64 gaming.
no need to press SHIFT/EQUALS for PLUS.
Just press MINUS.

SYMBOLIC is mapping C64 key at PC location.
* = SHIFT+8
Using this mode will make typing some CBM/SHIFT key GFX impossible in listings.

edit the script

change this...
; British Keyboard - Positional.
; keyboard [positional]
Add_CLP( -keymap 1)
Add_CLP( -keyboardmapping 2)

to one of these...
;positional user
ADD_CLP( -keymap 3 -poskeymap gtk3_pos_uk.vkm)

;symbolic user
ADD_CLP( -keymap 2 -symkeymap gtk3_sym_uk.vkm)

All the VKM keymap files are in this folder
\GTK3VICE-3.6.2\C64\

Code: Select all

# VICE keyboard mapping file
#
# A Keyboard map is read in as patch to the current map.
#
# File format:
# - comment lines start with '#'
# - keyword lines start with '!keyword'
# - normal lines have 'keysym/scancode row column shiftflag'
#
# Keywords and their lines are:
# '!CLEAR'               clear whole table
# '!INCLUDE filename'    read file as mapping file
# '!LSHIFT row col'      left shift keyboard row/column
# '!RSHIFT row col'      right shift keyboard row/column
# '!VSHIFT shiftkey'     virtual shift key (RSHIFT or LSHIFT)
# '!SHIFTL shiftkey'     shift lock key (RSHIFT or LSHIFT)
#  for emulated keyboards that have only one shift key, set both LSHIFT
#  and RSHIFT to the same row/col and use RSHIFT for VSHIFT and SHIFTL.
# '!LCTRL row col'       left control keyboard row/column
# '!VCTRL ctrlkey'       virtual control key (LCTRL)
# '!LCBM row col'        left CBM keyboard row/column
# '!VCBM cbmkey'         virtual CBM key (LCBM)
# '!UNDEF keysym'        remove keysym from table
#
# Shiftflag can have these values, flags can be ORed to combine them:
# 0x0000      0  key is not shifted for this keysym/scancode
# 0x0001      1  key is combined with shift for this keysym/scancode
# 0x0002      2  key is left shift on emulated machine
# 0x0004      4  key is right shift on emulated machine (use only this one
#                for emulated keyboards that have only one shift key)
# 0x0008      8  key can be shifted or not with this keysym/scancode
# 0x0010     16  deshift key for this keysym/scancode
# 0x0020     32  another definition for this keysym/scancode follows
# 0x0040     64  key is shift-lock on emulated machine
# 0x0080    128  shift modifier required on host
# 0x0100    256  key is used for an alternative keyboard mapping, e.g. C64 mode in x128
# 0x0200    512  alt-r (alt-gr) modifier required on host
# 0x0400   1024  ctrl modifier required on host
# 0x0800   2048  key is combined with cbm for this keysym/scancode
# 0x1000   4096  key is combined with ctrl for this keysym/scancode
# 0x2000   8192  key is (left) cbm on emulated machine
# 0x4000  16384  key is (left) ctrl on emulated machine
#
# Negative row values:
# 'keysym -1 n' joystick keymap A, direction n
# 'keysym -2 n' joystick keymap B, direction n
# 'keysym -3 0' first RESTORE key
# 'keysym -3 1' second RESTORE key
# 'keysym -4 0' 40/80 column key (x128)
# 'keysym -4 1' CAPS (ASCII/DIN) key (x128)
# 'keysym -5 n' joyport keypad, key n (not supported in x128)
#
# Joystick direction values:
# 0      Fire
# 1      South/West
# 2      South
# 3      South/East
# 4      West
# 5      East
# 6      North/West
# 7      North
# 8      North/East
#
# Joyport keypad key layout:
# --------------------------
# |  0 |  1 |  2 |  3 |  4 |
# --------------------------
# |  5 |  6 |  7 |  8 |  9 |
# --------------------------
# | 10 | 11 | 12 | 13 | 14 |
# --------------------------
# | 15 | 16 | 17 | 18 | 19 |
# --------------------------
#
# When a bigger spaced key is used,
# it uses the upper left most key value.

# Positional Mapping, UK Layout, C64, GTK

# C64 keyboard matrix:
#
#       +-----+-----+-----+-----+-----+-----+-----+-----+
#       |Bit 0|Bit 1|Bit 2|Bit 3|Bit 4|Bit 5|Bit 6|Bit 7|
# +-----+-----+-----+-----+-----+-----+-----+-----+-----+
# |Bit 0| DEL |Retrn|C_L/R|  F7 |  F1 |  F3 |  F5 |C_U/D|
# +-----+-----+-----+-----+-----+-----+-----+-----+-----+
# |Bit 1| 3 # |  W  |  A  | 4 $ |  Z  |  S  |  E  | S_L |
# +-----+-----+-----+-----+-----+-----+-----+-----+-----+
# |Bit 2| 5 % |  R  |  D  | 6 & |  C  |  F  |  T  |  X  |
# +-----+-----+-----+-----+-----+-----+-----+-----+-----+
# |Bit 3| 7 ' |  Y  |  G  | 8 ( |  B  |  H  |  U  |  V  |
# +-----+-----+-----+-----+-----+-----+-----+-----+-----+
# |Bit 4| 9 ) |  I  |  J  |  0  |  M  |  K  |  O  |  N  |
# +-----+-----+-----+-----+-----+-----+-----+-----+-----+
# |Bit 5|  +  |  P  |  L  |  -  | . > | : [ |  @  | , < |
# +-----+-----+-----+-----+-----+-----+-----+-----+-----+
# |Bit 6|POUND|  *  | ; ] | HOME| S_R |  =  | A_UP| / ? |
# +-----+-----+-----+-----+-----+-----+-----+-----+-----+
# |Bit 7| 1 ! |A_LFT| CTRL| 2 " |SPACE|  C= |  Q  | R/S |
# +-----+-----+-----+-----+-----+-----+-----+-----+-----+

# C64 Keyboard layout:
#
#   arrow 1!  2"  3#  4$  5%  6&  7'  8(  9)  0   +   -   pound clr del     f1/f2
#    ctrl   q   w   e   r   t   y   u   i   o   p   @   *   ^   restore     f3/f4
#   r/s SL    a   s   d   f   g   h   j   k   l   :[  ;]  =   return        f5/f6
#   CBM LS      z   x   c   v   b   n   m   ,<  .>  /?  RS  u/d l/r         f7/f8
#                               space

!CLEAR
!LSHIFT 1 7
!RSHIFT 6 4
!VSHIFT RSHIFT
!SHIFTL LSHIFT
!LCBM 7 5
!VCBM LCBM
!LCTRL 7 2
!VCTRL LCTRL

### Not used#####################################
#bar             0 0 0       # (|)
#backslash       0 0 0       # (\)
#Page_Down       0 0 0       # (PgDn/ SysRq)
#End             7 7 8       # (End / Break)
#################################################

Insert          6 0 8        # £        (Insert)
Delete          6 6 8        # Up Arrow (Delete) [pi]
Home            6 3 8        # CLR/HOME (Home)
Page_Up -3 0                 # RESTORE  (PgUp)

BackSpace       0 0 8        # Inst/Del (BackSpace)
Return          0 1 8        # RETURN   (Enter)
Tab             7 2 16392    # CTRL     (Tab)
ISO_Left_Tab    7 2 16392    # CTRL     (Shift + Tab)
space           7 4 8        # Space    (SPACE)

Shift_L         1 7 2        # Shift    (Left Shift)
Caps_Lock       1 7 64
Shift_R         6 4 4        # Shift    (Right Shift)

Control_L       7 5 8200     # CBM      (Ctrl)
Escape          7 7 8        # Run/Stop (Esc)

Left            0 2 1        #   (Cursor Left)
Right           0 2 8        #   (Cursor Right)
Up              0 7 1        #   (Cursor Up)
Down            0 7 8        #   (Cursor Down)

F1              0 4 8        #   (F1)
F2              0 4 1        #   (F2)
F3              0 5 8        #   (F3)
F4              0 5 1        #   (F4)
F5              0 6 8        #   (F5)
F6              0 6 1        #   (F6)
F7              0 3 8        #   (F7)
F8              0 3 1        #   (F8)

# gtk3 name     Map          C64     PC
grave           7 1 8        # Back Arrow (`)
notsign         7 1 1        # Back Arrow (¬)

exclam          7 0 1        # !     (!) 1
quotedbl        7 3 1        # "     (") 2
sterling        1 0 1        # #     (£) 3
dollar          1 3 1        # $     ($) 4
percent         2 0 1        # %     (%) 5
asciicircum     2 3 1        # &     (^) 6
ampersand       3 0 1        # '     (&) 7
asterisk        3 3 1        # (     (*) 8
parenleft       4 0 1        # )     (() 9
parenright      4 3 1        #       ()) 0

minus           5 0 8        #  +    (-)
underscore      5 0 1        # [gfx] (_)

equal           5 3 8        #  -    (=)
plus            5 3 1        # [gfx] (+)

bracketleft     5 6 8        #  @    ([)
braceleft       5 6 1        # [gfx] ({)

bracketright    6 1 8        #  *    (])
braceright      6 1 1        # [gfx] (})

semicolon       5 5 8        # :     (;)
colon           5 5 1        # [     (:)

apostrophe      6 2 8        # ;     (')
at              6 2 1        # ]     (@)

numbersign      6 5 8        # =     (#)
asciitilde      6 5 1        # =     (~)

comma           5 7 8        # ,     (,)
less            5 7 1        # <     (<)

period          5 4 8        # .     (.)
greater         5 4 1        # >     (>)

question        6 7 8        # ?     (?)
slash           6 7 1        # /     (/)

#####################
# letters and numbers

0 4 3 8
1 7 0 8
2 7 3 8
3 1 0 8
4 1 3 8
5 2 0 8
6 2 3 8
7 3 0 8
8 3 3 8
9 4 0 8

A 1 2 8
B 3 4 8
C 2 4 8
D 2 2 8
E 1 6 8
F 2 5 8
G 3 2 8
H 3 5 8
I 4 1 8
J 4 2 8
K 4 5 8
L 5 2 8
M 4 4 8
N 4 7 8
O 4 6 8
P 5 1 8
Q 7 6 8
R 2 1 8
S 1 5 8
T 2 6 8
U 3 6 8
V 3 7 8
W 1 1 8
X 2 7 8
Y 3 1 8
Z 1 4 8
a 1 2 8
b 3 4 8
c 2 4 8
d 2 2 8
e 1 6 8
f 2 5 8
g 3 2 8
h 3 5 8
i 4 1 8
j 4 2 8
k 4 5 8
l 5 2 8
m 4 4 8
n 4 7 8
o 4 6 8
p 5 1 8
q 7 6 8
r 2 1 8
s 1 5 8
t 2 6 8
u 3 6 8
v 3 7 8
w 1 1 8
x 2 7 8
y 3 1 8
z 1 4 8


Re: I noticed with the default keyboard setup with Gamebase, the + symbols don't work right

Posted: Tue Jul 05, 2022 1:08 am
by KrazyKanuck
Ok if you press minus for plus, what do you press for minus? LOL. Forgive me, haven't used a real C64 keyboard since around 2008

Re: I noticed with the default keyboard setup with Gamebase, the + symbols don't work right

Posted: Tue Jul 05, 2022 9:33 am
by .mad.
you press EQUALS (+), of course. :)

There are only a few keys that need to learned.
some SHIFTED on a PC, but not on a C64.
it's all about the location of the key.
CBM | CTRL
CTRL | TAB
# | SHIFT3
@ | [
* | ]
£ | insert
arrow UP | delete
arrow LEFT | ¬`
- | +
+ | =
= | #

yes you can still tweak mapping to for a couple of keys
swapping + and - isn't really a big deal.
but other keys have GFX in a SHIFTED or COMMODORE mode.