# VICE keyboard mapping file for THEC64 and Retropie # Edited by Javier Albarracin in Lima Peru # # A Keyboard map is read in as patch to the current map. # # File format: # - comment lines start with '#' # - keyword lines start with '!keyword' # - normal line has '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) # '!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 the values: # 0 key is not shifted for this keysym/scancode # 1 key is combined with shift for this keysym/scancode # 2 key is left shift on emulated machine # 4 key is right shift on emulated machine # 8 key can be shifted or not with this keysym/scancode # 16 deshift key for this keysym/scancode # 32 another definition for this keysym/scancode follows # 64 key is shift-lock on emulated machine # 128 shift modifier required on host # 256 key is used for an alternative keyboard mapping # 512 alt-r (alt-gr) modifier required on host # 1024 ctrl modifier required on host # 2048 key is combined with cbm for this keysym/scancode # 4096 key is combined with ctrl for this keysym/scancode # 8192 key is (left) cbm on emulated machine # 16384 key is (left) ctrl on emulated machine # # to migrate older keymaps and use the CBM and/or CTRL related features: # # - define !LCTRL, !VCTRL, !LCBM, !VCBM # - add 'key is (left) cbm/ctrl on emulated machine' flags to # all keys that map to the cbm or ctrl key respectively. # # after that the virtual cbm/ctrl flags and requiring host modifiers # should work as expected. keep an eye on the error messages. # # 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 # 'keysym -4 1' CAPS (ASCII/DIN) key # 'keysym -5 n' joyport keypad, key n # # 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. # # Symbolic USER Mapping for RETROPIE "TheC64", US Layout, C64, SDL # Credits: Javier Albarracin V. file modded from Keyrah/Vice/Libretro # BE AWARE THAT LINUX KEYBOARD HAS TO BE IN "US AMERICAN" FOR THIS TO WORK # this keyboard map applies for the "vice" setting for TheC64 Keyboard and # maps all 64 keys, plus restore, to the respective emulated keys in VICE. # This however leaves no key free to enter the menu - one way to work # around this is to configure a joystick key to enter the menu. # # Don't forget to edit the file /opt/retropie/configs/c64/sdl-vicerc # and include this lines to the end (without the starting "#"): # KeymapUserSymFile="/opt/retropie/configs/c64/sdl-keyt64-C64.vkm" # KeymapIndex=2 # # # +-----+-----+-----+-----+-----+-----+-----+-----+ # |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 | # +-----+-----+-----+-----+-----+-----+-----+-----+-----+ # !CLEAR !LSHIFT 1 7 !RSHIFT 6 4 !VSHIFT RSHIFT !SHIFTL LSHIFT !LCTRL 7 2 !VCTRL LCTRL !LCBM 7 5 !VCBM LCBM 8 0 0 8 /* Del -> Del */ 13 0 1 8 /* Return -> Return */ 275 0 2 8 /* Right -> CRSR RIGHT */ 276 0 2 1 /* Left -> CRSR LEFT */ 288 0 3 8 /* F7 -> F7 */ 289 0 3 1 /* F8 -> F8 */ 282 0 4 8 /* F1 -> F1 */ 283 0 4 1 /* F2 -> F2 */ 284 0 5 8 /* F3 -> F3 */ 285 0 5 1 /* F4 -> F4 */ 286 0 6 8 /* F5 -> F5 */ 287 0 6 1 /* F6 -> F6 */ 273 0 7 1 /* CRSR UP -> CRSR UP */ 274 0 7 8 /* CRSR DOWN -> CRSR DOWN */ 51 1 0 8 /* 3 -> 3 */ 52 1 3 8 /* 4 -> 4 */ 304 1 7 2 /* Left Shift -> Left Shift */ 301 1 7 64 /* Shift Lock -> Shift Lock */ 53 2 0 8 /* 5 -> 5 */ 54 2 3 8 /* 6 -> 6 */ 55 3 0 8 /* 7 -> 7 */ 56 3 3 8 /* 8 -> 8 */ 57 4 0 8 /* 9 -> 9 */ 48 4 3 8 /* 0 -> 0 */ 270 5 0 8 /* + -> + */ 269 5 3 8 /* - -> - */ 46 5 4 8 /* . -> . */ 91 5 5 8 /* : -> : */ 92 5 6 8 /* @ -> @ */ 44 5 7 8 /* , -> , */ 45 6 0 8 /* Pound -> Pound */ 59 6 1 8 /* * -> * */ 93 6 2 8 /* ; -> ; */ 278 6 3 8 /* CLR/HOME -> CLR/HOME */ 303 6 4 4 /* Right Shift -> Right Shift */ 61 6 5 8 /* = -> = */ 39 6 6 8 /* Up Arrow -> Up Arrow */ 47 6 7 8 /* / -> / */ 49 7 0 8 /* 1 -> 1 */ 96 7 1 8 /* Left Arrow -> Left Arrow */ 306 7 2 8 /* Ctrl -> Ctrl */ 50 7 3 8 /* 2 -> 2 */ 32 7 4 8 /* Space -> Space */ 310 7 5 8 /* TheC64 -> CBM */ 27 7 7 8 /* Run/Stop -> Run/Stop */ 97 1 2 8 /* A -> A */ 98 3 4 8 /* B -> B */ 99 2 4 8 /* C -> C */ 100 2 2 8 /* D -> D */ 101 1 6 8 /* E -> E */ 102 2 5 8 /* F -> F */ 103 3 2 8 /* G -> G */ 104 3 5 8 /* H -> H */ 105 4 1 8 /* I -> I */ 106 4 2 8 /* J -> J */ 107 4 5 8 /* K -> K */ 108 5 2 8 /* L -> L */ 109 4 4 8 /* M -> M */ 110 4 7 8 /* N -> N */ 111 4 6 8 /* O -> O */ 112 5 1 8 /* P -> P */ 113 7 6 8 /* Q -> Q */ 114 2 1 8 /* R -> R */ 115 1 5 8 /* S -> S */ 116 2 6 8 /* T -> T */ 117 3 6 8 /* U -> U */ 118 3 7 8 /* V -> V */ 119 1 1 8 /* W -> W */ 120 2 7 8 /* X -> X */ 121 3 1 8 /* Y -> Y */ 122 1 4 8 /* Z -> Z */ # # Restore key mappings # 9 -3 0 # # joyport attached keypad key mapping # 300 -5 0 263 -5 1 264 -5 2 265 -5 3 267 -5 4 302 -5 5 260 -5 6 261 -5 7