Fixed sdl2 keymap processing. [Couriersud]

Keymaps must have been broken for ages:

-	It is now possible to map every scancode SDL2 defines.
-	Removed keycode field. This was a leftover from SDL1.x
-	Fixed bug preventing keymaps from working.
-	Fixed the DE keymap.
-	Converted other keymaps to new format and added a
    comment that they have to be reviewed and fixed.
This commit is contained in:
couriersud 2019-02-16 16:44:21 +01:00
parent 983ffa2de6
commit 757436bbfb
15 changed files with 496 additions and 202 deletions

View File

@ -1,44 +1,49 @@
#
# FIXME: This file produces errors and needs to be fixed.
#
[SDL2]
# MAME/MESS keymap for Belgian AZERTY 105-keys keyboard (Linux)
#
# Row 1
#
ITEM_ID_TILDE SDLK_WORLD_18 0x31 0xb2 ²
ITEM_ID_1 SDLK_AMPERSAND 0x0a 0x26 &
ITEM_ID_2 SDLK_WORLD_73 0x0b 0xe9 é
ITEM_ID_3 SDLK_QUOTEDBL 0x0c 0x22 "
ITEM_ID_4 SDLK_QUOTE 0x0d 0x27 '
ITEM_ID_5 SDLK_LEFTPAREN 0x0e 0x28 (
ITEM_ID_6 SDLK_WORLD_7 0x0f 0xa7 §
ITEM_ID_7 SDLK_WORLD_72 0x10 0xe8 è
ITEM_ID_8 SDLK_EXCLAIM 0x11 0x21 !
ITEM_ID_9 SDLK_WORLD_71 0x12 0xe7 ç
ITEM_ID_0 SDLK_WORLD_64 0x13 0xe0 à
ITEM_ID_MINUS SDLK_RIGHTPAREN 0x14 0x29 )
ITEM_ID_EQUALS SDLK_MINUS 0x15 0x2d -
ITEM_ID_TILDE SDL_SCANCODE_WORLD_18 ²
ITEM_ID_1 SDL_SCANCODE_AMPERSAND &
ITEM_ID_2 SDL_SCANCODE_WORLD_73 é
ITEM_ID_3 SDL_SCANCODE_QUOTEDBL "
ITEM_ID_4 SDL_SCANCODE_QUOTE '
ITEM_ID_5 SDL_SCANCODE_LEFTPAREN (
ITEM_ID_6 SDL_SCANCODE_WORLD_7 §
ITEM_ID_7 SDL_SCANCODE_WORLD_72 è
ITEM_ID_8 SDL_SCANCODE_EXCLAIM !
ITEM_ID_9 SDL_SCANCODE_WORLD_71 ç
ITEM_ID_0 SDL_SCANCODE_WORLD_64 à
ITEM_ID_MINUS SDL_SCANCODE_RIGHTPAREN )
ITEM_ID_EQUALS SDL_SCANCODE_MINUS -
#
# Row 2
#
ITEM_ID_Q SDLK_a 0x18 0x61 A
ITEM_ID_W SDLK_z 0x19 0x7a Z
ITEM_ID_OPENBRACE SDLK_CARET 0x22 0x5e ^
ITEM_ID_CLOSEBRACE SDLK_DOLLAR 0x23 0x24 $
ITEM_ID_Q SDL_SCANCODE_A A
ITEM_ID_W SDL_SCANCODE_Z Z
ITEM_ID_OPENBRACE SDL_SCANCODE_CARET ^
ITEM_ID_CLOSEBRACE SDL_SCANCODE_DOLLAR $
#
# Row 3
#
ITEM_ID_A SDLK_q 0x26 0x71 Q
ITEM_ID_COLON SDLK_m 0x2f 0x6d M
ITEM_ID_QUOTE SDLK_WORLD_89 0x30 0xf9 ù
ITEM_ID_BACKSLASH SDLK_WORLD_21 0x33 0xb5 µ
ITEM_ID_A SDL_SCANCODE_Q Q
ITEM_ID_COLON SDL_SCANCODE_M M
ITEM_ID_QUOTE SDL_SCANCODE_WORLD_89 ù
ITEM_ID_BACKSLASH SDL_SCANCODE_WORLD_21 µ
#
# Row 4
#
ITEM_ID_BACKSLASH2 SDLK_LESS 0x5e 0x3c <
ITEM_ID_Z SDLK_w 0x34 0x77 W
ITEM_ID_M SDLK_COMMA 0x3a 0x2c ,
ITEM_ID_COMMA SDLK_SEMICOLON 0x3b 0x3b ;
ITEM_ID_STOP SDLK_COLON 0x3c 0x3a :
ITEM_ID_SLASH SDLK_EQUALS 0x3d 0x3d =
ITEM_ID_BACKSLASH2 SDL_SCANCODE_LESS <
ITEM_ID_Z SDL_SCANCODE_W W
ITEM_ID_M SDL_SCANCODE_COMMA ,
ITEM_ID_COMMA SDL_SCANCODE_SEMICOLON ;
ITEM_ID_STOP SDL_SCANCODE_COLON :
ITEM_ID_SLASH SDL_SCANCODE_EQUALS =
#
# Row 5
#
ITEM_ID_RALT SDLK_MODE 0x71 0x00 ALTGR
ITEM_ID_RALT SDL_SCANCODE_MODE ALTGR

View File

@ -1,3 +1,8 @@
#
# FIXME: This file produces errors and needs to be fixed.
#
[SDL2]
# MAME/MESS keymap for Brazilian QWERTY 107-keys keyboard (Linux)
#
# The 107-keys Brazilian keyboard has an extra key used to type "/".
@ -10,24 +15,24 @@
#
# Row 1
#
ITEM_ID_TILDE SDLK_QUOTE 0x31 0x27 '
ITEM_ID_TILDE SDL_SCANCODE_QUOTE '
#
# Row 2
#
ITEM_ID_OPENBRACE SDLK_COMPOSE 0x22 0x00 ´
ITEM_ID_CLOSEBRACE SDLK_LEFTBRACKET 0x23 0x00 [
ITEM_ID_OPENBRACE SDL_SCANCODE_COMPOSE ´
ITEM_ID_CLOSEBRACE SDL_SCANCODE_LEFTBRACKET [
#
# Row 3
#
ITEM_ID_COLON SDLK_WORLD_71 0x2f 0xe7 Ç
ITEM_ID_QUOTE SDLK_COMPOSE 0x30 0x00 ~
ITEM_ID_BACKSLASH SDLK_RIGHTBRACKET 0x33 0x00 ]
ITEM_ID_COLON SDL_SCANCODE_WORLD_71 Ç
ITEM_ID_QUOTE SDL_SCANCODE_COMPOSE ~
ITEM_ID_BACKSLASH SDL_SCANCODE_RIGHTBRACKET ]
#
# Row 4
#
ITEM_ID_BACKSLASH2 SDLK_LESS 0x5e 0x3c <
ITEM_ID_SLASH SDLK_SEMICOLON 0x3d 0x3b ;
ITEM_ID_BACKSLASH2 SDL_SCANCODE_LESS <
ITEM_ID_SLASH SDL_SCANCODE_SEMICOLON ;
#
# Row 5
#
ITEM_ID_RALT SDLK_MODE 0x71 0x00 ALTGR
ITEM_ID_RALT SDL_SCANCODE_MODE ALTGR

View File

@ -1,29 +1,34 @@
#
# FIXME: This file produces errors and needs to be fixed.
#
[SDL2]
# MAME/MESS keymap for Swiss QWERTZ 105-keys keyboard (Linux)
#
# Row 1
#
ITEM_ID_TILDE SDLK_WORLD_7 0x31 0xa7 §
ITEM_ID_MINUS SDLK_QUOTE 0x14 0x27 '
ITEM_ID_EQUALS SDLK_CARET 0x15 0x00 ^
ITEM_ID_TILDE SDL_SCANCODE_WORLD_7 §
ITEM_ID_MINUS SDL_SCANCODE_QUOTE '
ITEM_ID_EQUALS SDL_SCANCODE_CARET ^
#
# Row 2
#
ITEM_ID_Y SDLK_z 0x1d 0x7a Z
ITEM_ID_OPENBRACE SDLK_WORLD_92 0x22 0xfc ü
ITEM_ID_CLOSEBRACE SDLK_COMPOSE 0x23 0x00 ¨
ITEM_ID_Y SDL_SCANCODE_Z Z
ITEM_ID_OPENBRACE SDL_SCANCODE_WORLD_92 ü
ITEM_ID_CLOSEBRACE SDL_SCANCODE_COMPOSE ¨
#
# Row 3
#
ITEM_ID_COLON SDLK_WORLD_86 0x2f 0xf6 ö
ITEM_ID_QUOTE SDLK_WORLD_68 0x30 0xe4 ä
ITEM_ID_BACKSLASH SDLK_DOLLAR 0x33 0x24 $
ITEM_ID_COLON SDL_SCANCODE_WORLD_86 ö
ITEM_ID_QUOTE SDL_SCANCODE_WORLD_68 ä
ITEM_ID_BACKSLASH SDL_SCANCODE_DOLLAR $
#
# Row 4
#
ITEM_ID_BACKSLASH2 SDLK_LESS 0x5e 0x3c <
ITEM_ID_Z SDLK_y 0x34 0x79 Y
ITEM_ID_SLASH SDLK_MINUS 0x3d 0x2d -
ITEM_ID_BACKSLASH2 SDL_SCANCODE_LESS <
ITEM_ID_Z SDL_SCANCODE_Y Y
ITEM_ID_SLASH SDL_SCANCODE_MINUS -
#
# Row 5
#
ITEM_ID_RALT SDLK_MODE 0x71 0x00 ALTGR
ITEM_ID_RALT SDL_SCANCODE_MODE ALTGR

View File

@ -1,29 +1,31 @@
[SDL2]
# MAME/MESS keymap for German QWERTZ 105-keys keyboard (Linux)
#
# Row 1
#
ITEM_ID_TILDE SDLK_CARET 0x31 0x00 ^
ITEM_ID_MINUS SDLK_WORLD_63 0x14 0xdf ß
ITEM_ID_EQUALS SDLK_COMPOSE 0x15 0x00 ´
ITEM_ID_TILDE SDL_SCANCODE_GRAVE ^
ITEM_ID_MINUS SDL_SCANCODE_MINUS ß
ITEM_ID_EQUALS SDL_SCANCODE_EQUALS ´
#
# Row 2
#
ITEM_ID_Y SDLK_z 0x1d 0x7a Z
ITEM_ID_OPENBRACE SDLK_WORLD_92 0x22 0xfc Ü
ITEM_ID_CLOSEBRACE SDLK_PLUS 0x23 0x2b +
ITEM_ID_Y SDL_SCANCODE_Z Z
ITEM_ID_OPENBRACE SDL_SCANCODE_LEFTBRACKET Ü
ITEM_ID_CLOSEBRACE SDL_SCANCODE_RIGHTBRACKET +
#
# Row 3
#
ITEM_ID_COLON SDLK_WORLD_86 0x2f 0xf6 Ö
ITEM_ID_QUOTE SDLK_WORLD_68 0x30 0xe4 Ä
ITEM_ID_BACKSLASH SDLK_HASH 0x33 0x23 #
ITEM_ID_COLON SDL_SCANCODE_SEMICOLON Ö
ITEM_ID_QUOTE SDL_SCANCODE_APOSTROPHE Ä
ITEM_ID_BACKSLASH SDL_SCANCODE_BACKSLASH #
#
# Row 4
#
ITEM_ID_BACKSLASH2 SDLK_LESS 0x5e 0x3c <
ITEM_ID_Z SDLK_y 0x34 0x79 Y
ITEM_ID_SLASH SDLK_MINUS 0x3d 0x2d -
ITEM_ID_BACKSLASH2 SDL_SCANCODE_NONUSBACKSLASH <
ITEM_ID_Z SDL_SCANCODE_Y Y
ITEM_ID_SLASH SDL_SCANCODE_SLASH -
#
# Row 5
#
ITEM_ID_RALT SDLK_MODE 0x71 0x00 ALTGR
ITEM_ID_RALT SDL_SCANCODE_RALT ALTGR

View File

@ -1,3 +1,8 @@
#
# FIXME: This file produces errors and needs to be fixed.
#
[SDL2]
# MAME/MESS keymap for Spanish QWERTY 105-keys keyboard (Linux)
# SDL can tell the difference between the two COMPOSE keys but assigns them the same label
# thus both OPENBRACE and QUOTE appear like "` ´" in the user interface.
@ -5,26 +10,26 @@
#
# Row 1
#
ITEM_ID_TILDE SDLK_WORLD_26 0x31 0xba º
ITEM_ID_MINUS SDLK_QUOTE 0x14 0x27 '
ITEM_ID_EQUALS SDLK_WORLD_1 0x15 0xa1 ¡
ITEM_ID_TILDE SDL_SCANCODE_WORLD_26 º
ITEM_ID_MINUS SDL_SCANCODE_QUOTE '
ITEM_ID_EQUALS SDL_SCANCODE_WORLD_1 ¡
#
# Row 2
#
ITEM_ID_OPENBRACE SDLK_COMPOSE 0x22 0x00 `
ITEM_ID_CLOSEBRACE SDLK_PLUS 0x23 0x00 +
ITEM_ID_OPENBRACE SDL_SCANCODE_COMPOSE `
ITEM_ID_CLOSEBRACE SDL_SCANCODE_PLUS +
#
# Row 3
#
ITEM_ID_COLON SDLK_WORLD_81 0x2f 0xf1 Ñ
ITEM_ID_QUOTE SDLK_COMPOSE 0x30 0x00 ´
ITEM_ID_BACKSLASH SDLK_WORLD_71 0x33 0x00 Ç
ITEM_ID_COLON SDL_SCANCODE_WORLD_81 Ñ
ITEM_ID_QUOTE SDL_SCANCODE_COMPOSE ´
ITEM_ID_BACKSLASH SDL_SCANCODE_WORLD_71 Ç
#
# Row 4
#
ITEM_ID_BACKSLASH2 SDLK_LESS 0x5e 0x3c <
ITEM_ID_SLASH SDLK_MINUS 0x3d 0x2d -
ITEM_ID_BACKSLASH2 SDL_SCANCODE_LESS <
ITEM_ID_SLASH SDL_SCANCODE_MINUS -
#
# Row 5
#
ITEM_ID_RALT SDLK_MODE 0x71 0x00 ALTGR
ITEM_ID_RALT SDL_SCANCODE_MODE ALTGR

View File

@ -1,43 +1,48 @@
#
# FIXME: This file produces errors and needs to be fixed.
#
[SDL2]
# MAME/MESS keymap for French AZERTY 105-keys keyboard (Linux)
#
# Row 1
#
ITEM_ID_TILDE SDLK_WORLD_18 0x31 0xb2 ²
ITEM_ID_1 SDLK_AMPERSAND 0x0a 0x26 &
ITEM_ID_2 SDLK_WORLD_73 0x0b 0xe9 é
ITEM_ID_3 SDLK_QUOTEDBL 0x0c 0x22 "
ITEM_ID_4 SDLK_QUOTE 0x0d 0x27 '
ITEM_ID_5 SDLK_LEFTPAREN 0x0e 0x28 (
ITEM_ID_6 SDLK_MINUS 0x0f 0x2d -
ITEM_ID_7 SDLK_WORLD_72 0x10 0xe8 è
ITEM_ID_8 SDLK_UNDERSCORE 0x11 0x5f _
ITEM_ID_9 SDLK_WORLD_71 0x12 0xe7 ç
ITEM_ID_0 SDLK_WORLD_64 0x13 0xe0 à
ITEM_ID_MINUS SDLK_RIGHTPAREN 0x14 0x29 )
ITEM_ID_TILDE SDL_SCANCODE_WORLD_18 ²
ITEM_ID_1 SDL_SCANCODE_AMPERSAND &
ITEM_ID_2 SDL_SCANCODE_WORLD_73 é
ITEM_ID_3 SDL_SCANCODE_QUOTEDBL "
ITEM_ID_4 SDL_SCANCODE_QUOTE '
ITEM_ID_5 SDL_SCANCODE_LEFTPAREN (
ITEM_ID_6 SDL_SCANCODE_MINUS -
ITEM_ID_7 SDL_SCANCODE_WORLD_72 è
ITEM_ID_8 SDL_SCANCODE_UNDERSCORE _
ITEM_ID_9 SDL_SCANCODE_WORLD_71 ç
ITEM_ID_0 SDL_SCANCODE_WORLD_64 à
ITEM_ID_MINUS SDL_SCANCODE_RIGHTPAREN )
#
# Row 2
#
ITEM_ID_Q SDLK_a 0x18 0x61 A
ITEM_ID_W SDLK_z 0x19 0x7a Z
ITEM_ID_OPENBRACE SDLK_CARET 0x22 0x00 ^
ITEM_ID_CLOSEBRACE SDLK_DOLLAR 0x23 0x00 $
ITEM_ID_Q SDL_SCANCODE_A A
ITEM_ID_W SDL_SCANCODE_Z Z
ITEM_ID_OPENBRACE SDL_SCANCODE_CARET ^
ITEM_ID_CLOSEBRACE SDL_SCANCODE_DOLLAR $
#
# Row 3
#
ITEM_ID_A SDLK_q 0x26 0x51 Q
ITEM_ID_COLON SDLK_m 0x2f 0x6d M
ITEM_ID_QUOTE SDLK_WORLD_89 0x30 0xf9 ù
ITEM_ID_BACKSLASH SDLK_ASTERISK 0x33 0x2a *
ITEM_ID_A SDL_SCANCODE_Q Q
ITEM_ID_COLON SDL_SCANCODE_M M
ITEM_ID_QUOTE SDL_SCANCODE_WORLD_89 ù
ITEM_ID_BACKSLASH SDL_SCANCODE_ASTERISK *
#
# Row 4
#
ITEM_ID_BACKSLASH2 SDLK_LESS 0x5e 0x3c <
ITEM_ID_Z SDLK_w 0x34 0x77 W
ITEM_ID_M SDLK_COMMA 0x3a 0x2c ,
ITEM_ID_COMMA SDLK_SEMICOLON 0x3b 0x3b ;
ITEM_ID_STOP SDLK_COLON 0x3c 0x3a :
ITEM_ID_SLASH SDLK_EXCLAIM 0x3d 0x21 !
ITEM_ID_BACKSLASH2 SDL_SCANCODE_LESS <
ITEM_ID_Z SDL_SCANCODE_w W
ITEM_ID_M SDL_SCANCODE_COMMA ,
ITEM_ID_COMMA SDL_SCANCODE_SEMICOLON ;
ITEM_ID_STOP SDL_SCANCODE_COLON :
ITEM_ID_SLASH SDL_SCANCODE_EXCLAIM !
#
# Row 5
#
ITEM_ID_RALT SDLK_MODE 0x71 0x00 ALTGR
ITEM_ID_RALT SDL_SCANCODE_MODE ALTGR

View File

@ -1,15 +1,20 @@
#
# FIXME: This file produces errors and needs to be fixed.
#
[SDL2]
# MAME/MESS keymap for French AZERTY keyboard (OSX)
#
#
ITEM_ID_1 SDLK_AMPERSAND 0x12 0x26 &
ITEM_ID_2 SDLK_WORLD_0 0x13 0xe9 é
ITEM_ID_3 SDLK_QUOTEDBL 0x14 0x22 "
ITEM_ID_4 SDLK_QUOTE 0x15 0x27 '
ITEM_ID_5 SDLK_LEFTPAREN 0x17 0x28 (
ITEM_ID_6 SDLK_WORLD_1 0x16 0xa7 §
ITEM_ID_7 SDLK_WORLD_3 0x1a 0xe8 č
ITEM_ID_8 SDLK_EXCLAIM 0x1c 0x21 !
ITEM_ID_9 SDLK_WORLD_2 0x19 0xe7 ç
ITEM_ID_0 SDLK_WORLD_4 0x1d 0xe0 ŕ
ITEM_ID_MINUS SDLK_RIGHTPAREN 0x1b 0x29 )
ITEM_ID_EQUALS SDLK_MINUS 0x18 0x2d -
ITEM_ID_1 SDL_SCANCODE_AMPERSAND &
ITEM_ID_2 SDL_SCANCODE_WORLD_0 <20>
ITEM_ID_3 SDL_SCANCODE_QUOTEDBL "
ITEM_ID_4 SDL_SCANCODE_QUOTE '
ITEM_ID_5 SDL_SCANCODE_LEFTPAREN (
ITEM_ID_6 SDL_SCANCODE_WORLD_1 <20>
ITEM_ID_7 SDL_SCANCODE_WORLD_3 <20>
ITEM_ID_8 SDL_SCANCODE_EXCLAIM !
ITEM_ID_9 SDL_SCANCODE_WORLD_2 <20>
ITEM_ID_0 SDL_SCANCODE_WORLD_4 <20>
ITEM_ID_MINUS SDL_SCANCODE_RIGHTPAREN )
ITEM_ID_EQUALS SDL_SCANCODE_MINUS -

View File

@ -1,20 +1,25 @@
#
# FIXME: This file produces errors and needs to be fixed.
#
[SDL2]
# MAME/MESS keymap for British QWERTY 105-keys keyboard (Linux)
#
# Row 1
#
ITEM_ID_TILDE SDLK_BACKQUOTE 0x31 0x60 `
ITEM_ID_TILDE SDL_SCANCODE_BACKQUOTE `
#
# Row 2
#
#
# Row 3
#
ITEM_ID_BACKSLASH SDLK_HASH 0x33 0x23 #
ITEM_ID_BACKSLASH SDL_SCANCODE_HASH #
#
# Row 4
#
ITEM_ID_BACKSLASH2 SDLK_BACKSLASH 0x5e 0x5c \
ITEM_ID_BACKSLASH2 SDL_SCANCODE_BACKSLASH \
#
# Row 5
#
ITEM_ID_RALT SDLK_MODE 0x71 0x00 ALTGR
ITEM_ID_RALT SDL_SCANCODE_MODE ALTGR

View File

@ -1,27 +1,32 @@
#
# FIXME: This file produces errors and needs to be fixed.
#
[SDL2]
# MAME/MESS keymap for Italian QWERTY 105-keys keyboard (Linux)
#
# Row 1
#
ITEM_ID_TILDE SDLK_BACKSLASH 0x31 0x5c \
ITEM_ID_MINUS SDLK_QUOTE 0x14 0x27 '
ITEM_ID_EQUALS SDLK_WORLD_76 0x15 0xec ì
ITEM_ID_TILDE SDL_SCANCODE_BACKSLASH \
ITEM_ID_MINUS SDL_SCANCODE_QUOTE '
ITEM_ID_EQUALS SDL_SCANCODE_WORLD_76 ì
#
# Row 2
#
ITEM_ID_OPENBRACE SDLK_WORLD_72 0x22 0xe8 è
ITEM_ID_CLOSEBRACE SDLK_PLUS 0x23 0x2b +
ITEM_ID_OPENBRACE SDL_SCANCODE_WORLD_72 è
ITEM_ID_CLOSEBRACE SDL_SCANCODE_PLUS +
#
# Row 3
#
ITEM_ID_COLON SDLK_WORLD_82 0x2f 0xf2 ò
ITEM_ID_QUOTE SDLK_WORLD_64 0x30 0xe0 à
ITEM_ID_BACKSLASH SDLK_WORLD_89 0x33 0xf9 ù
ITEM_ID_COLON SDL_SCANCODE_WORLD_82 ò
ITEM_ID_QUOTE SDL_SCANCODE_WORLD_64 à
ITEM_ID_BACKSLASH SDL_SCANCODE_WORLD_89 ù
#
# Row 4
#
ITEM_ID_BACKSLASH2 SDLK_LESS 0x5e 0x3c <
ITEM_ID_SLASH SDLK_MINUS 0x3d 0x2d -
ITEM_ID_BACKSLASH2 SDL_SCANCODE_LESS <
ITEM_ID_SLASH SDL_SCANCODE_MINUS -
#
# Row 5
#
ITEM_ID_RALT SDLK_MODE 0x71 0x00 ALTGR
ITEM_ID_RALT SDL_SCANCODE_MODE ALTGR

View File

@ -1,3 +1,8 @@
#
# FIXME: This file produces errors and needs to be fixed.
#
[SDL2]
# MAME/MESS keymap for Portuguese QWERTY 105-keys keyboard (Linux)
# SDL can tell the difference between the two COMPOSE keys but assigns them the same label
# thus both CLOSEBRACE and BACKSLASH appear like "´ ~" in the user interface.
@ -5,26 +10,26 @@
#
# Row 1
#
ITEM_ID_TILDE SDLK_BACKSLASH 0x31 0x5c \
ITEM_ID_MINUS SDLK_QUOTE 0x14 0x27 '
ITEM_ID_EQUALS SDLK_WORLD_11 0x15 0xab «
ITEM_ID_TILDE SDL_SCANCODE_BACKSLASH \
ITEM_ID_MINUS SDL_SCANCODE_QUOTE '
ITEM_ID_EQUALS SDL_SCANCODE_WORLD_11 «
#
# Row 2
#
ITEM_ID_OPENBRACE SDLK_PLUS 0x22 0x2b +
ITEM_ID_CLOSEBRACE SDLK_COMPOSE 0x23 0x00 ´
ITEM_ID_OPENBRACE SDL_SCANCODE_PLUS +
ITEM_ID_CLOSEBRACE SDL_SCANCODE_COMPOSE ´
#
# Row 3
#
ITEM_ID_COLON SDLK_WORLD_71 0x2f 0xe7 Ç
ITEM_ID_QUOTE SDLK_WORLD_26 0x30 0xba º
ITEM_ID_BACKSLASH SDLK_COMPOSE 0x33 0x00 ~
ITEM_ID_COLON SDL_SCANCODE_WORLD_71 Ç
ITEM_ID_QUOTE SDL_SCANCODE_WORLD_26 º
ITEM_ID_BACKSLASH SDL_SCANCODE_COMPOSE ~
#
# Row 4
#
ITEM_ID_BACKSLASH2 SDLK_LESS 0x5e 0x3c <
ITEM_ID_SLASH SDLK_MINUS 0x3d 0x2d -
ITEM_ID_BACKSLASH2 SDL_SCANCODE_LESS <
ITEM_ID_SLASH SDL_SCANCODE_MINUS -
#
# Row 5
#
ITEM_ID_RALT SDLK_MODE 0x71 0x00 ALTGR
ITEM_ID_RALT SDL_SCANCODE_MODE ALTGR

View File

@ -1,23 +1,28 @@
#
# FIXME: This file produces errors and needs to be fixed.
#
[SDL2]
# MAME/MESS keymap for Swedish/Finnish QWERTY 105-keys keyboard (Linux)
#
# Row 1
#
ITEM_ID_TILDE SDLK_LESS 0x32 0x3c <
ITEM_ID_MINUS SDLK_PLUS 0x1b 0x2b +
ITEM_ID_EQUALS SDLK_WORLD_1 0x18 0x00
ITEM_ID_TILDE SDL_SCANCODE_LESS <
ITEM_ID_MINUS SDL_SCANCODE_PLUS +
ITEM_ID_EQUALS SDL_SCANCODE_WORLD_1 0x00
#
# Row 2
#
ITEM_ID_OPENBRACE SDLK_WORLD_3 0x21 0xe5 å
ITEM_ID_CLOSEBRACE SDLK_WORLD_2 0x1e 0x00
ITEM_ID_OPENBRACE SDL_SCANCODE_WORLD_3 å
ITEM_ID_CLOSEBRACE SDL_SCANCODE_WORLD_2
#
# Row 3
#
ITEM_ID_COLON SDLK_WORLD_5 0x29 0xf6 ö
ITEM_ID_QUOTE SDLK_WORLD_4 0x27 0xe4 ä
ITEM_ID_BACKSLASH2 SDLK_QUOTE 0x2a 0x27 '
ITEM_ID_COLON SDL_SCANCODE_WORLD_5 ö
ITEM_ID_QUOTE SDL_SCANCODE_WORLD_4 ä
ITEM_ID_BACKSLASH2 SDL_SCANCODE_QUOTE '
#
# Row 4
#
ITEM_ID_BACKSLASH SDLK_WORLD_0 0x0a 0xa7 §
ITEM_ID_SLASH SDLK_MINUS 0x2c 0x2d -
ITEM_ID_BACKSLASH SDL_SCANCODE_WORLD_0 §
ITEM_ID_SLASH SDL_SCANCODE_MINUS -

View File

@ -1,23 +1,28 @@
#
# FIXME: This file produces errors and needs to be fixed.
#
[SDL2]
# MAME/MESS keymap for Swedish/Finnish QWERTY compact keyboard (OSX)
#
# Row 1
#
ITEM_ID_TILDE SDLK_WORLD_0 0x0a 0xa7 §
ITEM_ID_MINUS SDLK_PLUS 0x1b 0x2b +
ITEM_ID_EQUALS SDLK_WORLD_1 0x18 0x00
ITEM_ID_TILDE SDL_SCANCODE_WORLD_0 §
ITEM_ID_MINUS SDL_SCANCODE_PLUS +
ITEM_ID_EQUALS SDL_SCANCODE_WORLD_1 0x00
#
# Row 2
#
ITEM_ID_OPENBRACE SDLK_WORLD_3 0x21 0xe5 å
ITEM_ID_CLOSEBRACE SDLK_WORLD_2 0x1e 0x00
ITEM_ID_OPENBRACE SDL_SCANCODE_WORLD_3 å
ITEM_ID_CLOSEBRACE SDL_SCANCODE_WORLD_2
#
# Row 3
#
ITEM_ID_COLON SDLK_WORLD_5 0x29 0xf6 ö
ITEM_ID_QUOTE SDLK_WORLD_4 0x27 0xe4 ä
ITEM_ID_BACKSLASH2 SDLK_QUOTE 0x2a 0x27 '
ITEM_ID_COLON SDL_SCANCODE_WORLD_5 ö
ITEM_ID_QUOTE SDL_SCANCODE_WORLD_4 ä
ITEM_ID_BACKSLASH2 SDL_SCANCODE_QUOTE '
#
# Row 4
#
ITEM_ID_BACKSLASH SDLK_LESS 0x32 0x3c <
ITEM_ID_SLASH SDLK_MINUS 0x2c 0x2d -
ITEM_ID_BACKSLASH SDL_SCANCODE_LESS <
ITEM_ID_SLASH SDL_SCANCODE_MINUS -

View File

@ -34,8 +34,8 @@
#elif defined(OSD_SDL)
// SDL include
#include <SDL2/SDL.h>
#define KEY_TRANS_ENTRY0(mame, sdlsc, sdlkey, disc, virtual, uwp, ascii, UI) { ITEM_ID_##mame, SDL_SCANCODE_ ## sdlsc, SDLK_ ## sdlkey, ascii, "ITEM_ID_"#mame, (char *) UI }
#define KEY_TRANS_ENTRY1(mame, sdlsc, sdlkey, disc, virtual, uwp, ascii) { ITEM_ID_##mame, SDL_SCANCODE_ ## sdlsc, SDLK_ ## sdlkey, ascii, "ITEM_ID_"#mame, (char*) #mame }
#define KEY_TRANS_ENTRY0(mame, sdlsc, sdlkey, disc, virtual, uwp, ascii, UI) { ITEM_ID_##mame, SDL_SCANCODE_ ## sdlsc, ascii, "ITEM_ID_"#mame, (char *) UI }
#define KEY_TRANS_ENTRY1(mame, sdlsc, sdlkey, disc, virtual, uwp, ascii) { ITEM_ID_##mame, SDL_SCANCODE_ ## sdlsc, ascii, "ITEM_ID_"#mame, (char*) #mame }
#elif defined(OSD_UWP)
#define KEY_TRANS_ENTRY0(mame, sdlsc, sdlkey, disc, virtual, uwp, ascii, UI) { ITEM_ID_##mame, KEY_ ## disc, Windows::System::VirtualKey:: ## uwp, ascii, "ITEM_ID_"#mame, (char *) UI }
#define KEY_TRANS_ENTRY1(mame, sdlsc, sdlkey, disc, virtual, uwp, ascii) { ITEM_ID_##mame, KEY_ ## disc, Windows::System::VirtualKey:: ## uwp, ascii, "ITEM_ID_"#mame, (char*) #mame }
@ -43,6 +43,8 @@
// osd mini
#endif
// FIXME: sdl_key can be removed from the table below. It is no longer used.
#if defined(OSD_WINDOWS) || defined(OSD_SDL) || defined(OSD_UWP)
key_trans_entry keyboard_trans_table::s_default_table[] =
{

View File

@ -358,7 +358,6 @@ struct key_trans_entry {
#if defined(OSD_SDL)
int sdl_scancode;
int sdl_key;
#elif defined(OSD_WINDOWS)
int scan_code;
unsigned char virtual_key;

View File

@ -63,24 +63,265 @@ struct key_lookup_table
static key_lookup_table sdl_lookup_table[] =
{
KE7(UNKNOWN, BACKSPACE, TAB, CLEAR, RETURN, PAUSE, ESCAPE)
KE(SPACE)
KE5(COMMA, MINUS, PERIOD, SLASH, 0)
KE8(1, 2, 3, 4, 5, 6, 7, 8)
KE3(9, SEMICOLON, EQUALS)
KE5(LEFTBRACKET,BACKSLASH, RIGHTBRACKET, A, B)
KE8(C, D, E, F, G, H, I, J)
KE8(K, L, M, N, O, P, Q, R)
KE8(S, T, U, V, W, X, Y, Z)
KE8(DELETE, KP_0, KP_1, KP_2, KP_3, KP_4, KP_5, KP_6)
KE8(KP_7, KP_8, KP_9, KP_PERIOD, KP_DIVIDE, KP_MULTIPLY,KP_MINUS, KP_PLUS)
KE8(KP_ENTER, KP_EQUALS, UP, DOWN, RIGHT, LEFT, INSERT, HOME)
KE8(END, PAGEUP, PAGEDOWN, F1, F2, F3, F4, F5)
KE8(F6, F7, F8, F9, F10, F11, F12, F13)
KE8(F14, F15, NUMLOCKCLEAR, CAPSLOCK, SCROLLLOCK, RSHIFT, LSHIFT, RCTRL)
KE5(LCTRL, RALT, LALT, LGUI, RGUI)
KE8(GRAVE, LEFTBRACKET,RIGHTBRACKET, SEMICOLON, APOSTROPHE, BACKSLASH, PRINTSCREEN,MENU)
KE(UNDO)
KE(UNKNOWN)
KE(A)
KE(B)
KE(C)
KE(D)
KE(E)
KE(F)
KE(G)
KE(H)
KE(I)
KE(J)
KE(K)
KE(L)
KE(M)
KE(N)
KE(O)
KE(P)
KE(Q)
KE(R)
KE(S)
KE(T)
KE(U)
KE(V)
KE(W)
KE(X)
KE(Y)
KE(Z)
KE(1)
KE(2)
KE(3)
KE(4)
KE(5)
KE(6)
KE(7)
KE(8)
KE(9)
KE(0)
KE(RETURN)
KE(ESCAPE)
KE(BACKSPACE)
KE(TAB)
KE(SPACE)
KE(MINUS)
KE(EQUALS)
KE(LEFTBRACKET)
KE(RIGHTBRACKET)
KE(BACKSLASH)
KE(NONUSHASH)
KE(SEMICOLON)
KE(APOSTROPHE)
KE(GRAVE)
KE(COMMA)
KE(PERIOD)
KE(SLASH)
KE(CAPSLOCK)
KE(F1)
KE(F2)
KE(F3)
KE(F4)
KE(F5)
KE(F6)
KE(F7)
KE(F8)
KE(F9)
KE(F10)
KE(F11)
KE(F12)
KE(PRINTSCREEN)
KE(SCROLLLOCK)
KE(PAUSE)
KE(INSERT)
KE(HOME)
KE(PAGEUP)
KE(DELETE)
KE(END)
KE(PAGEDOWN)
KE(RIGHT)
KE(LEFT)
KE(DOWN)
KE(UP)
KE(NUMLOCKCLEAR)
KE(KP_DIVIDE)
KE(KP_MULTIPLY)
KE(KP_MINUS)
KE(KP_PLUS)
KE(KP_ENTER)
KE(KP_1)
KE(KP_2)
KE(KP_3)
KE(KP_4)
KE(KP_5)
KE(KP_6)
KE(KP_7)
KE(KP_8)
KE(KP_9)
KE(KP_0)
KE(KP_PERIOD)
KE(NONUSBACKSLASH)
KE(APPLICATION)
KE(POWER)
KE(KP_EQUALS)
KE(F13)
KE(F14)
KE(F15)
KE(F16)
KE(F17)
KE(F18)
KE(F19)
KE(F20)
KE(F21)
KE(F22)
KE(F23)
KE(F24)
KE(EXECUTE)
KE(HELP)
KE(MENU)
KE(SELECT)
KE(STOP)
KE(AGAIN)
KE(UNDO)
KE(CUT)
KE(COPY)
KE(PASTE)
KE(FIND)
KE(MUTE)
KE(VOLUMEUP)
KE(VOLUMEDOWN)
KE(KP_COMMA)
KE(KP_EQUALSAS400)
KE(INTERNATIONAL1)
KE(INTERNATIONAL2)
KE(INTERNATIONAL3)
KE(INTERNATIONAL4)
KE(INTERNATIONAL5)
KE(INTERNATIONAL6)
KE(INTERNATIONAL7)
KE(INTERNATIONAL8)
KE(INTERNATIONAL9)
KE(LANG1)
KE(LANG2)
KE(LANG3)
KE(LANG4)
KE(LANG5)
KE(LANG6)
KE(LANG7)
KE(LANG8)
KE(LANG9)
KE(ALTERASE)
KE(SYSREQ)
KE(CANCEL)
KE(CLEAR)
KE(PRIOR)
KE(RETURN2)
KE(SEPARATOR)
KE(OUT)
KE(OPER)
KE(CLEARAGAIN)
KE(CRSEL)
KE(EXSEL)
KE(KP_00)
KE(KP_000)
KE(THOUSANDSSEPARATOR)
KE(DECIMALSEPARATOR)
KE(CURRENCYUNIT)
KE(CURRENCYSUBUNIT)
KE(KP_LEFTPAREN)
KE(KP_RIGHTPAREN)
KE(KP_LEFTBRACE)
KE(KP_RIGHTBRACE)
KE(KP_TAB)
KE(KP_BACKSPACE)
KE(KP_A)
KE(KP_B)
KE(KP_C)
KE(KP_D)
KE(KP_E)
KE(KP_F)
KE(KP_XOR)
KE(KP_POWER)
KE(KP_PERCENT)
KE(KP_LESS)
KE(KP_GREATER)
KE(KP_AMPERSAND)
KE(KP_DBLAMPERSAND)
KE(KP_VERTICALBAR)
KE(KP_DBLVERTICALBAR)
KE(KP_COLON)
KE(KP_HASH)
KE(KP_SPACE)
KE(KP_AT)
KE(KP_EXCLAM)
KE(KP_MEMSTORE)
KE(KP_MEMRECALL)
KE(KP_MEMCLEAR)
KE(KP_MEMADD)
KE(KP_MEMSUBTRACT)
KE(KP_MEMMULTIPLY)
KE(KP_MEMDIVIDE)
KE(KP_PLUSMINUS)
KE(KP_CLEAR)
KE(KP_CLEARENTRY)
KE(KP_BINARY)
KE(KP_OCTAL)
KE(KP_DECIMAL)
KE(KP_HEXADECIMAL)
KE(LCTRL)
KE(LSHIFT)
KE(LALT)
KE(LGUI)
KE(RCTRL)
KE(RSHIFT)
KE(RALT)
KE(RGUI)
KE(MODE)
KE(AUDIONEXT)
KE(AUDIOPREV)
KE(AUDIOSTOP)
KE(AUDIOPLAY)
KE(AUDIOMUTE)
KE(MEDIASELECT)
KE(WWW)
KE(MAIL)
KE(CALCULATOR)
KE(COMPUTER)
KE(AC_SEARCH)
KE(AC_HOME)
KE(AC_BACK)
KE(AC_FORWARD)
KE(AC_STOP)
KE(AC_REFRESH)
KE(AC_BOOKMARKS)
KE(BRIGHTNESSDOWN)
KE(BRIGHTNESSUP)
KE(DISPLAYSWITCH)
KE(KBDILLUMTOGGLE)
KE(KBDILLUMDOWN)
KE(KBDILLUMUP)
KE(EJECT)
KE(SLEEP)
KE(APP1)
KE(APP2)
{
-1, ""
}
@ -126,7 +367,6 @@ protected:
// sdl_keyboard_device
//============================================================
#define OSD_SDL_INDEX_KEYSYM(keysym) ((keysym)->scancode)
class sdl_keyboard_device : public sdl_device
{
public:
@ -143,13 +383,13 @@ public:
switch (sdlevent.type)
{
case SDL_KEYDOWN:
keyboard.state[OSD_SDL_INDEX_KEYSYM(&sdlevent.key.keysym)] = 0x80;
keyboard.state[sdlevent.key.keysym.scancode] = 0x80;
if (sdlevent.key.keysym.sym < 0x20)
machine().ui_input().push_char_event(osd_common_t::s_window_list.front()->target(), sdlevent.key.keysym.sym);
break;
case SDL_KEYUP:
keyboard.state[OSD_SDL_INDEX_KEYSYM(&sdlevent.key.keysym)] = 0x00;
keyboard.state[sdlevent.key.keysym.scancode] = 0x00;
break;
case SDL_TEXTINPUT:
@ -567,11 +807,6 @@ private:
char *keymap_filename;
FILE *keymap_file;
int line = 1;
int index, len, sk, vk, ak;
char buf[256];
char mks[41];
char sks[41];
char kns[41];
int sdl2section = 0;
keyboard_trans_table &default_table = keyboard_trans_table::instance();
@ -601,41 +836,42 @@ private:
while (!feof(keymap_file))
{
char buf[256];
char *ret = fgets(buf, 255, keymap_file);
if (ret && buf[0] != '\n' && buf[0] != '#')
{
buf[255] = 0;
len = strlen(buf);
int len = strlen(buf);
if (len && buf[len - 1] == '\n')
buf[len - 1] = 0;
if (strncmp(buf, "[SDL2]", 6) == 0)
{
sdl2section = 1;
}
else if (((SDLMAME_SDL2) ^ sdl2section) == 0)
else if (sdl2section == 1)
{
mks[0] = 0;
sks[0] = 0;
memset(kns, 0, ARRAY_LENGTH(kns));
sscanf(buf, "%40s %40s %x %x %40c\n",
mks, sks, &vk, &ak, kns);
char mks[41] = {0};
char sks[41] = {0};
char kns[41] = {0};
index = default_table.lookup_mame_index(mks);
sk = lookup_sdl_code(sks);
int n = sscanf(buf, "%40s %40s %40c\n", mks, sks, kns);
if (n != 3)
osd_printf_error("Keymap: Error on line %d : Expected 3 parameters, got %d\n", line, n);
int index = default_table.lookup_mame_index(mks);
int sk = lookup_sdl_code(sks);
if (sk >= 0 && index >= 0)
{
key_trans_entry &entry = (*custom_table)[index];
entry.sdl_key = sk;
// vk and ak are not really needed
//key_trans_table[index][VIRTUAL_KEY] = vk;
//key_trans_table[index][ASCII_KEY] = ak;
entry.sdl_scancode = sk;
entry.ui_name = auto_alloc_array(machine, char, strlen(kns) + 1);
strcpy(entry.ui_name, kns);
osd_printf_verbose("Keymap: Mapped <%s> to <%s> with ui-text <%s>\n", sks, mks, kns);
}
else
osd_printf_warning("Keymap: Error on line %d - %s key not found: %s\n", line, (sk<0) ? "sdl" : "mame", buf);
osd_printf_error("Keymap: Error on line %d - %s key not found: %s\n", line, (sk<0) ? "sdl" : "mame", buf);
}
}
line++;