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

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

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

Moderator: Jimbo

KrazyKanuck
Cool Member
Cool Member
Location: Marystown, Newfoundland and Labrador, Canada
Posts: 254
Joined: Mon Nov 20, 2017 2:53 am

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

Mon Jul 04, 2022 6:33 am

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?
User avatar
.mad.
Honoured Member
Honoured Member
Location: Lancashire
Posts: 2256
Joined: Sun Jun 19, 2005 3:30 pm

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

Mon Jul 04, 2022 7:30 pm

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

KrazyKanuck
Cool Member
Cool Member
Location: Marystown, Newfoundland and Labrador, Canada
Posts: 254
Joined: Mon Nov 20, 2017 2:53 am

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

Tue Jul 05, 2022 1:08 am

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
User avatar
.mad.
Honoured Member
Honoured Member
Location: Lancashire
Posts: 2256
Joined: Sun Jun 19, 2005 3:30 pm

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

Tue Jul 05, 2022 9:33 am

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.
Attachments
c64-vic20-keyboard.png
c64-vic20-keyboard.png (52.47 KiB) Viewed 29300 times

Return to “GB64 Help!”

Who is online

Users browsing this forum: No registered users and 12 guests