|
|

楼主 |
发表于 2007-6-28 07:08:04
|
显示全部楼层
还有一点不明白的是emerge下载的xmame源码和我自己下载的xmame源码是一样的,前者不需要运行snddevices就有声音,我主要是想改一下xmame的映射键,成果如下:
/usr/local/xmame-0.106/input.h中定义了键盘按键
enum
{
/* digital keyboard codes */
KEYCODE_A,
KEYCODE_B,
KEYCODE_C,
KEYCODE_D,
KEYCODE_E,
KEYCODE_F,
KEYCODE_G,
KEYCODE_H,
KEYCODE_I,
KEYCODE_J,
KEYCODE_K,
KEYCODE_L,
KEYCODE_M,
KEYCODE_N,
KEYCODE_O,
KEYCODE_P,
KEYCODE_Q,
KEYCODE_R,
KEYCODE_S,
KEYCODE_T,
KEYCODE_U,
KEYCODE_V,
KEYCODE_W,
KEYCODE_X,
KEYCODE_Y,
KEYCODE_Z,
KEYCODE_0,
KEYCODE_1,
KEYCODE_2,
KEYCODE_3,
KEYCODE_4,
KEYCODE_5,
KEYCODE_6,
KEYCODE_7,
KEYCODE_8,
KEYCODE_9,
KEYCODE_F1,
KEYCODE_F2,
KEYCODE_F3,
KEYCODE_F4,
KEYCODE_F5,
KEYCODE_F6,
KEYCODE_F7,
KEYCODE_F8,
KEYCODE_F9,
KEYCODE_F10,
KEYCODE_F11,
KEYCODE_F12,
KEYCODE_F13,
KEYCODE_F14,
KEYCODE_F15,
KEYCODE_ESC,
KEYCODE_TILDE,
KEYCODE_MINUS,
KEYCODE_EQUALS,
KEYCODE_BACKSPACE,
KEYCODE_TAB,
KEYCODE_OPENBRACE,
KEYCODE_CLOSEBRACE,
KEYCODE_ENTER,
KEYCODE_COLON,
KEYCODE_QUOTE,
KEYCODE_BACKSLASH,
KEYCODE_BACKSLASH2,
KEYCODE_COMMA,
KEYCODE_STOP,
KEYCODE_SLASH,
KEYCODE_SPACE,
KEYCODE_INSERT,
KEYCODE_DEL,
KEYCODE_HOME,
KEYCODE_END,
KEYCODE_PGUP,
KEYCODE_PGDN,
KEYCODE_LEFT,
KEYCODE_RIGHT,
KEYCODE_UP,
KEYCODE_DOWN,
KEYCODE_0_PAD,
KEYCODE_1_PAD,
KEYCODE_2_PAD,
KEYCODE_3_PAD,
KEYCODE_4_PAD,
KEYCODE_5_PAD,
KEYCODE_6_PAD,
KEYCODE_7_PAD,
KEYCODE_8_PAD,
KEYCODE_9_PAD,
KEYCODE_SLASH_PAD,
KEYCODE_ASTERISK,
KEYCODE_MINUS_PAD,
KEYCODE_PLUS_PAD,
KEYCODE_DEL_PAD,
KEYCODE_ENTER_PAD,
KEYCODE_PRTSCR,
KEYCODE_PAUSE,
KEYCODE_LSHIFT,
KEYCODE_RSHIFT,
KEYCODE_LCONTROL,
KEYCODE_RCONTROL,
KEYCODE_LALT,
KEYCODE_RALT,
KEYCODE_SCRLOCK,
KEYCODE_NUMLOCK,
KEYCODE_CAPSLOCK,
KEYCODE_LWIN,
KEYCODE_RWIN,
KEYCODE_MENU,
/* digital joystick codes */
...
};
修改文件/usr/local/xmame-0.106/inptport.c,下面是已经修改过的。将小键盘的方向键映射该为W,S,A,D, 等等
static const input_port_default_entry default_ports_builtin[] =
{
INPUT_PORT_DIGITAL_DEF( 1, IPG_PLAYER1, JOYSTICK_UP, " 1 Up", SEQ_DEF_3(KEYCODE_W, CODE_OR, JOYCODE_1_UP) )
INPUT_PORT_DIGITAL_DEF( 1, IPG_PLAYER1, JOYSTICK_DOWN, " 1 Down", SEQ_DEF_3(KEYCODE_S, CODE_OR, JOYCODE_1_DOWN) )
INPUT_PORT_DIGITAL_DEF( 1, IPG_PLAYER1, JOYSTICK_LEFT, " 1 Left", SEQ_DEF_3(KEYCODE_A, CODE_OR, JOYCODE_1_LEFT) )
INPUT_PORT_DIGITAL_DEF( 1, IPG_PLAYER1, JOYSTICK_RIGHT, " 1 Right", SEQ_DEF_3(KEYCODE_D, CODE_OR, JOYCODE_1_RIGHT) )
...
INPUT_PORT_DIGITAL_DEF( 1, IPG_PLAYER1, BUTTON1, " 1 Button 1", SEQ_DEF_5(KEYCODE_M, CODE_OR, JOYCODE_1_BUTTON1, CODE_OR, MOUSECODE_1_BUTTON1) )
INPUT_PORT_DIGITAL_DEF( 1, IPG_PLAYER1, BUTTON2, " 1 Button 2", SEQ_DEF_5(KEYCODE_COMMA, CODE_OR, JOYCODE_1_BUTTON2, CODE_OR, MOUSECODE_1_BUTTON3) )
INPUT_PORT_DIGITAL_DEF( 1, IPG_PLAYER1, BUTTON3, " 1 Button 3", SEQ_DEF_5(KEYCODE_STOP, CODE_OR, JOYCODE_1_BUTTON3, CODE_OR, MOUSECODE_1_BUTTON2) )
INPUT_PORT_DIGITAL_DEF( 1, IPG_PLAYER1, BUTTON4, " 1 Button 4", SEQ_DEF_3(KEYCODE_K, CODE_OR, JOYCODE_1_BUTTON4) )
INPUT_PORT_DIGITAL_DEF( 1, IPG_PLAYER1, BUTTON5, " 1 Button 5", SEQ_DEF_3(KEYCODE_L, CODE_OR, JOYCODE_1_BUTTON5) )
INPUT_PORT_DIGITAL_DEF( 1, IPG_PLAYER1, BUTTON6, " 1 Button 6", SEQ_DEF_3(KEYCODE_COLON, CODE_OR, JOYCODE_1_BUTTON6) )
...
} |
|