本文整理汇总了C++中running_machine::input方法的典型用法代码示例。如果您正苦于以下问题:C++ running_machine::input方法的具体用法?C++ running_machine::input怎么用?C++ running_machine::input使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类running_machine
的用法示例。
在下文中一共展示了running_machine::input方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: tilemap_handle_keys
static void tilemap_handle_keys(running_machine &machine, ui_gfx_state *state, int viswidth, int visheight)
{
ui_gfx_state oldstate = *state;
UINT32 mapwidth, mapheight;
int step;
/* handle tilemap selection (open bracket,close bracket) */
if (ui_input_pressed(machine, IPT_UI_PREV_GROUP))
state->tilemap.which--;
if (ui_input_pressed(machine, IPT_UI_NEXT_GROUP))
state->tilemap.which++;
/* clamp within range */
if (state->tilemap.which < 0)
state->tilemap.which = 0;
if (state->tilemap.which >= machine.tilemap().count())
state->tilemap.which = machine.tilemap().count() - 1;
/* cache some info in locals */
tilemap_t *tilemap = machine.tilemap().find(state->tilemap.which);
mapwidth = tilemap->width();
mapheight = tilemap->height();
/* handle zoom (minus,plus) */
if (ui_input_pressed(machine, IPT_UI_ZOOM_OUT))
state->tilemap.zoom--;
if (ui_input_pressed(machine, IPT_UI_ZOOM_IN))
state->tilemap.zoom++;
/* clamp within range */
if (state->tilemap.zoom < 0)
state->tilemap.zoom = 0;
if (state->tilemap.zoom > 8)
state->tilemap.zoom = 8;
if (state->tilemap.zoom != oldstate.tilemap.zoom)
{
if (state->tilemap.zoom != 0)
popmessage("Zoom = %d", state->tilemap.zoom);
else
popmessage("Zoom Auto");
}
/* handle rotation (R) */
if (ui_input_pressed(machine, IPT_UI_ROTATE))
state->tilemap.rotate = orientation_add(ROT90, state->tilemap.rotate);
/* handle navigation (up,down,left,right) */
step = 8;
if (machine.input().code_pressed(KEYCODE_LSHIFT)) step = 1;
if (machine.input().code_pressed(KEYCODE_LCONTROL)) step = 64;
if (ui_input_pressed_repeat(machine, IPT_UI_UP, 4))
state->tilemap.yoffs -= step;
if (ui_input_pressed_repeat(machine, IPT_UI_DOWN, 4))
state->tilemap.yoffs += step;
if (ui_input_pressed_repeat(machine, IPT_UI_LEFT, 6))
state->tilemap.xoffs -= step;
if (ui_input_pressed_repeat(machine, IPT_UI_RIGHT, 6))
state->tilemap.xoffs += step;
/* clamp within range */
while (state->tilemap.xoffs < 0)
state->tilemap.xoffs += mapwidth;
while (state->tilemap.xoffs >= mapwidth)
state->tilemap.xoffs -= mapwidth;
while (state->tilemap.yoffs < 0)
state->tilemap.yoffs += mapheight;
while (state->tilemap.yoffs >= mapheight)
state->tilemap.yoffs -= mapheight;
/* if something changed, we need to force an update to the bitmap */
if (state->tilemap.which != oldstate.tilemap.which ||
state->tilemap.xoffs != oldstate.tilemap.xoffs ||
state->tilemap.yoffs != oldstate.tilemap.yoffs ||
state->tilemap.rotate != oldstate.tilemap.rotate)
{
state->bitmap_dirty = TRUE;
}
}
示例2: initInput
static void initInput(running_machine &machine)
{
int i,button;
char defname[20];
#if 0
mouse_device = machine.input().device_class(DEVICE_CLASS_MOUSE).add_device("Mice1");
mouse_enabled = 1;
// add the axes
input_device_item_add_mouse(mouse_device , "X", &mouseLX, ITEM_ID_XAXIS, generic_axis_get_state);
input_device_item_add_mouse(mouse_device , "Y", &mouseLY, ITEM_ID_YAXIS, generic_axis_get_state);
for (button = 0; button < 4; button++)
{
input_item_id itemid = (input_item_id) (ITEM_ID_BUTTON1+button);
sprintf(defname, "B%d", button + 1);
input_device_item_add_mouse(mouse_device, defname, &mouseBUT[button], itemid, generic_button_get_state);
}
#endif
P1_device = machine.input().device_class(DEVICE_CLASS_KEYBOARD).add_device("Pad1", P1_device);
P2_device = machine.input().device_class(DEVICE_CLASS_KEYBOARD).add_device("Pad2", P2_device);
if (P1_device == NULL)
fatalerror("P1 Error creating keyboard device\n");
if (P2_device == NULL)
fatalerror("P2 Error creating keyboard device\n");
// our faux keyboard only has a couple of keys (corresponding to the
// common defaults)
fprintf(stderr, "SOURCE FILE: %s\n", machine.system().source_file);
fprintf(stderr, "PARENT: %s\n", machine.system().parent);
fprintf(stderr, "NAME: %s\n", machine.system().name);
fprintf(stderr, "DESCRIPTION: %s\n", machine.system().description);
fprintf(stderr, "YEAR: %s\n", machine.system().year);
fprintf(stderr, "MANUFACTURER: %s\n", machine.system().manufacturer);
P1_state[KEY_TAB] = 0;//RETRO_DEVICE_ID_JOYPAD_R2
P1_state[KEY_ENTER] = 0;//RETRO_DEVICE_ID_JOYPAD_L2
P1_state[KEY_START] = 0;//RETRO_DEVICE_ID_JOYPAD_START
P1_state[KEY_COIN] = 0;//RETRO_DEVICE_ID_JOYPAD_SELECT
P1_state[KEY_BUTTON_1] = 0;//RETRO_DEVICE_ID_JOYPAD_A
P1_state[KEY_BUTTON_2] = 0;//RETRO_DEVICE_ID_JOYPAD_B
P1_state[KEY_BUTTON_3] = 0;//RETRO_DEVICE_ID_JOYPAD_X
P1_state[KEY_BUTTON_4] = 0;//RETRO_DEVICE_ID_JOYPAD_Y
P1_state[KEY_BUTTON_5] = 0;//RETRO_DEVICE_ID_JOYPAD_L
P1_state[KEY_BUTTON_6] = 0;//RETRO_DEVICE_ID_JOYPAD_R
P1_state[KEY_JOYSTICK_U] = 0;//RETRO_DEVICE_ID_JOYPAD_UP
P1_state[KEY_JOYSTICK_D] = 0;//RETRO_DEVICE_ID_JOYPAD_DOWN
P1_state[KEY_JOYSTICK_L] = 0;//RETRO_DEVICE_ID_JOYPAD_LEFT
P1_state[KEY_JOYSTICK_R] = 0;//RETRO_DEVICE_ID_JOYPAD_RIGHT
P2_state[KEY_START] = 0;//RETRO_DEVICE_ID_JOYPAD_START
P2_state[KEY_COIN] = 0;//RETRO_DEVICE_ID_JOYPAD_SELECT
P2_state[KEY_BUTTON_1] = 0;//RETRO_DEVICE_ID_JOYPAD_A
P2_state[KEY_BUTTON_2] = 0;//RETRO_DEVICE_ID_JOYPAD_B
P2_state[KEY_BUTTON_3] = 0;//RETRO_DEVICE_ID_JOYPAD_X
P2_state[KEY_BUTTON_4] = 0;//RETRO_DEVICE_ID_JOYPAD_Y
P2_state[KEY_BUTTON_5] = 0;//RETRO_DEVICE_ID_JOYPAD_L
P2_state[KEY_BUTTON_6] = 0;//RETRO_DEVICE_ID_JOYPAD_R
P2_state[KEY_JOYSTICK_U] = 0;//RETRO_DEVICE_ID_JOYPAD_UP
P2_state[KEY_JOYSTICK_D] = 0;//RETRO_DEVICE_ID_JOYPAD_DOWN
P2_state[KEY_JOYSTICK_L] = 0;//RETRO_DEVICE_ID_JOYPAD_LEFT
P2_state[KEY_JOYSTICK_R] = 0;//RETRO_DEVICE_ID_JOYPAD_RIGHT
input_device_item_add_p2(P2_device, "Tab", &P2_state[KEY_TAB], ITEM_ID_TAB, pad2_get_state);
input_device_item_add_p2(P2_device, "Enter", &P2_state[KEY_ENTER], ITEM_ID_ENTER, pad2_get_state);
input_device_item_add_p2(P2_device, "P2 Start", &P2_state[KEY_START], ITEM_ID_2, pad2_get_state);
input_device_item_add_p2(P2_device, "COIN2", &P2_state[KEY_COIN], ITEM_ID_6, pad2_get_state);
input_device_item_add_p2(P2_device, "P2 JoyU", &P2_state[KEY_JOYSTICK_U], ITEM_ID_R, pad2_get_state);
input_device_item_add_p2(P2_device, "P2 JoyD", &P2_state[KEY_JOYSTICK_D], ITEM_ID_F, pad2_get_state);
input_device_item_add_p2(P2_device, "P2 JoyL", &P2_state[KEY_JOYSTICK_L], ITEM_ID_D, pad2_get_state);
input_device_item_add_p2(P2_device, "P2 JoyR", &P2_state[KEY_JOYSTICK_R], ITEM_ID_G, pad2_get_state);
input_device_item_add_p1(P1_device, "Tab", &P1_state[KEY_TAB], ITEM_ID_TAB, pad1_get_state);
input_device_item_add_p1(P1_device, "Enter", &P1_state[KEY_ENTER], ITEM_ID_ENTER, pad1_get_state);
input_device_item_add_p1(P1_device, "P1 Start", &P1_state[KEY_START], ITEM_ID_1, pad1_get_state);
input_device_item_add_p1(P1_device, "COIN1", &P1_state[KEY_COIN], ITEM_ID_5, pad1_get_state);
input_device_item_add_p1(P1_device, "P1 JoyU", &P1_state[KEY_JOYSTICK_U], ITEM_ID_UP, pad1_get_state);
input_device_item_add_p1(P1_device, "P1 JoyD", &P1_state[KEY_JOYSTICK_D], ITEM_ID_DOWN, pad1_get_state);
input_device_item_add_p1(P1_device, "P1 JoyL", &P1_state[KEY_JOYSTICK_L], ITEM_ID_LEFT, pad1_get_state);
input_device_item_add_p1(P1_device, "P1 JoyR", &P1_state[KEY_JOYSTICK_R], ITEM_ID_RIGHT, pad1_get_state);
if ((core_stricmp(machine.system().name, "tekken") == 0) ||
(core_stricmp(machine.system().parent, "tekken") == 0) ||
(core_stricmp(machine.system().name, "tekken2") == 0) ||
(core_stricmp(machine.system().parent, "tekken2") == 0)
)
{
/* Tekken 1/2 */
input_device_item_add_p1(P1_device, "RetroPad P1 Y", &P1_state[KEY_BUTTON_4], ITEM_ID_LCONTROL, pad1_get_state);
input_device_item_add_p1(P1_device, "RetroPad P1 X", &P1_state[KEY_BUTTON_3], ITEM_ID_LALT, pad1_get_state);
input_device_item_add_p1(P1_device, "RetroPad P1 B", &P1_state[KEY_BUTTON_2], ITEM_ID_SPACE, pad1_get_state);
input_device_item_add_p1(P1_device, "RetroPad P1 A", &P1_state[KEY_BUTTON_1], ITEM_ID_LSHIFT, pad1_get_state);
input_device_item_add_p1(P2_device, "RetroPad P2 Y", &P2_state[KEY_BUTTON_4], ITEM_ID_A, pad2_get_state);
//.........这里部分代码省略.........
示例3: tilemap_handle_keys
static void tilemap_handle_keys(running_machine &machine, ui_gfx_state &state, int viswidth, int visheight)
{
// handle tilemap selection (open bracket,close bracket)
if (machine.ui_input().pressed(IPT_UI_PREV_GROUP) && state.tilemap.which > 0)
{ state.tilemap.which--; state.bitmap_dirty = true; }
if (machine.ui_input().pressed(IPT_UI_NEXT_GROUP) && state.tilemap.which < machine.tilemap().count() - 1)
{ state.tilemap.which++; state.bitmap_dirty = true; }
// cache some info in locals
tilemap_t *tilemap = machine.tilemap().find(state.tilemap.which);
uint32_t mapwidth = tilemap->width();
uint32_t mapheight = tilemap->height();
// handle zoom (minus,plus)
if (machine.ui_input().pressed(IPT_UI_ZOOM_OUT) && state.tilemap.zoom > 0)
{
state.tilemap.zoom--;
state.bitmap_dirty = true;
if (state.tilemap.zoom != 0)
machine.popmessage("Zoom = %d", state.tilemap.zoom);
else
machine.popmessage("Zoom Auto");
}
if (machine.ui_input().pressed(IPT_UI_ZOOM_IN) && state.tilemap.zoom < 8)
{
state.tilemap.zoom++;
state.bitmap_dirty = true;
machine.popmessage("Zoom = %d", state.tilemap.zoom);
}
// handle rotation (R)
if (machine.ui_input().pressed(IPT_UI_ROTATE))
{
state.tilemap.rotate = orientation_add(ROT90, state.tilemap.rotate);
state.bitmap_dirty = true;
}
// return to (0,0) (HOME)
if( machine.ui_input().pressed(IPT_UI_HOME))
{
state.tilemap.xoffs = 0;
state.tilemap.yoffs = 0;
state.bitmap_dirty = true;
}
// handle flags (category)
if (machine.ui_input().pressed(IPT_UI_PAGE_UP) && state.tilemap.flags != TILEMAP_DRAW_ALL_CATEGORIES)
{
if (state.tilemap.flags > 0)
{
state.tilemap.flags--;
machine.popmessage("Category = %d", state.tilemap.flags);
}
else
{
state.tilemap.flags = TILEMAP_DRAW_ALL_CATEGORIES;
machine.popmessage("Category All");
}
state.bitmap_dirty = true;
}
if (machine.ui_input().pressed(IPT_UI_PAGE_DOWN) && (state.tilemap.flags < TILEMAP_DRAW_CATEGORY_MASK || (state.tilemap.flags == TILEMAP_DRAW_ALL_CATEGORIES)))
{
if (state.tilemap.flags == TILEMAP_DRAW_ALL_CATEGORIES)
state.tilemap.flags = 0;
else
state.tilemap.flags++;
state.bitmap_dirty = true;
machine.popmessage("Category = %d", state.tilemap.flags);
}
// handle navigation (up,down,left,right), taking orientation into account
int step = 8; // this may be applied more than once if multiple directions are pressed
if (machine.input().code_pressed(KEYCODE_LSHIFT)) step = 1;
if (machine.input().code_pressed(KEYCODE_LCONTROL)) step = 64;
if (machine.ui_input().pressed_repeat(IPT_UI_UP, 4))
{
if (state.tilemap.rotate & ORIENTATION_SWAP_XY)
state.tilemap.xoffs -= (state.tilemap.rotate & ORIENTATION_FLIP_Y) ? -step : step;
else
state.tilemap.yoffs -= (state.tilemap.rotate & ORIENTATION_FLIP_Y) ? -step : step;
state.bitmap_dirty = true;
}
if (machine.ui_input().pressed_repeat(IPT_UI_DOWN, 4))
{
if (state.tilemap.rotate & ORIENTATION_SWAP_XY)
state.tilemap.xoffs += (state.tilemap.rotate & ORIENTATION_FLIP_Y) ? -step : step;
else
state.tilemap.yoffs += (state.tilemap.rotate & ORIENTATION_FLIP_Y) ? -step : step;
state.bitmap_dirty = true;
}
if (machine.ui_input().pressed_repeat(IPT_UI_LEFT, 6))
{
if (state.tilemap.rotate & ORIENTATION_SWAP_XY)
state.tilemap.yoffs -= (state.tilemap.rotate & ORIENTATION_FLIP_X) ? -step : step;
else
state.tilemap.xoffs -= (state.tilemap.rotate & ORIENTATION_FLIP_X) ? -step : step;
state.bitmap_dirty = true;
}
if (machine.ui_input().pressed_repeat(IPT_UI_RIGHT, 6))
{
//.........这里部分代码省略.........
示例4: tilemap_handle_keys
static void tilemap_handle_keys(running_machine &machine, ui_gfx_state &state, int viswidth, int visheight)
{
UINT32 mapwidth, mapheight;
int step;
// handle tilemap selection (open bracket,close bracket)
if (ui_input_pressed(machine, IPT_UI_PREV_GROUP) && state.tilemap.which > 0)
{ state.tilemap.which--; state.bitmap_dirty = true; }
if (ui_input_pressed(machine, IPT_UI_NEXT_GROUP) && state.tilemap.which < machine.tilemap().count() - 1)
{ state.tilemap.which++; state.bitmap_dirty = true; }
// cache some info in locals
tilemap_t *tilemap = machine.tilemap().find(state.tilemap.which);
mapwidth = tilemap->width();
mapheight = tilemap->height();
// handle zoom (minus,plus)
if (ui_input_pressed(machine, IPT_UI_ZOOM_OUT) && state.tilemap.zoom > 0)
{
state.tilemap.zoom--;
state.bitmap_dirty = true;
if (state.tilemap.zoom != 0)
machine.popmessage("Zoom = %d", state.tilemap.zoom);
else
machine.popmessage("Zoom Auto");
}
if (ui_input_pressed(machine, IPT_UI_ZOOM_IN) && state.tilemap.zoom < 8)
{
state.tilemap.zoom++;
state.bitmap_dirty = true;
machine.popmessage("Zoom = %d", state.tilemap.zoom);
}
// handle rotation (R)
if (ui_input_pressed(machine, IPT_UI_ROTATE))
{
state.tilemap.rotate = orientation_add(ROT90, state.tilemap.rotate);
state.bitmap_dirty = true;
}
// handle navigation (up,down,left,right)
step = 8;
if (machine.input().code_pressed(KEYCODE_LSHIFT)) step = 1;
if (machine.input().code_pressed(KEYCODE_LCONTROL)) step = 64;
if (ui_input_pressed_repeat(machine, IPT_UI_UP, 4))
{ state.tilemap.yoffs -= step; state.bitmap_dirty = true; }
if (ui_input_pressed_repeat(machine, IPT_UI_DOWN, 4))
{ state.tilemap.yoffs += step; state.bitmap_dirty = true; }
if (ui_input_pressed_repeat(machine, IPT_UI_LEFT, 6))
{ state.tilemap.xoffs -= step; state.bitmap_dirty = true; }
if (ui_input_pressed_repeat(machine, IPT_UI_RIGHT, 6))
{ state.tilemap.xoffs += step; state.bitmap_dirty = true; }
// clamp within range
while (state.tilemap.xoffs < 0)
state.tilemap.xoffs += mapwidth;
while (state.tilemap.xoffs >= mapwidth)
state.tilemap.xoffs -= mapwidth;
while (state.tilemap.yoffs < 0)
state.tilemap.yoffs += mapheight;
while (state.tilemap.yoffs >= mapheight)
state.tilemap.yoffs -= mapheight;
}
示例5: initInput
static void initInput(running_machine &machine)
{
int i,button;
char defname[20];
if (mouse_enable)
{
mouse_device = machine.input().device_class(DEVICE_CLASS_MOUSE).add_device("Mice1");
// add the axes
input_device_item_add_mouse(mouse_device , "X", &mouseLX, ITEM_ID_XAXIS, generic_axis_get_state);
input_device_item_add_mouse(mouse_device , "Y", &mouseLY, ITEM_ID_YAXIS, generic_axis_get_state);
for (button = 0; button < 4; button++)
{
input_item_id itemid = (input_item_id) (ITEM_ID_BUTTON1+button);
sprintf(defname, "B%d", button + 1);
input_device_item_add_mouse(mouse_device, defname, &mouseBUT[button], itemid, generic_button_get_state);
}
}
//KEYBOARD
retrokbd_device = machine.input().device_class(DEVICE_CLASS_KEYBOARD).add_device("Retrokdb");
if (retrokbd_device == NULL)
fatalerror("KBD Error creating keyboard device\n");
for(i = 0; i < RETROK_LAST; i++) {
retrokbd_state[i]=0;
retrokbd_state2[i]=0;
}
i=0;
do {
input_device_item_add_kbd(retrokbd_device,\
ktable[i].mame_key_name, &retrokbd_state[ktable[i].retro_key_name],ktable[i].mame_key,retrokbd_get_state);
i++;
} while(ktable[i].retro_key_name!=-1);
//JOYPAD
P1_device = machine.input().device_class(DEVICE_CLASS_KEYBOARD).add_device("Pad1", P1_device);
P2_device = machine.input().device_class(DEVICE_CLASS_KEYBOARD).add_device("Pad2", P2_device);
if (P1_device == NULL)
fatalerror("P1 Error creating keyboard device\n");
if (P2_device == NULL)
fatalerror("P2 Error creating keyboard device\n");
// our faux keyboard only has a couple of keys (corresponding to the
// common defaults)
LOGI( "SOURCE FILE: %s\n", machine.system().source_file);
LOGI( "PARENT: %s\n", machine.system().parent);
LOGI( "NAME: %s\n", machine.system().name);
LOGI( "DESCRIPTION: %s\n", machine.system().description);
LOGI( "YEAR: %s\n", machine.system().year);
LOGI( "MANUFACTURER: %s\n", machine.system().manufacturer);
P1_state[KEY_TAB] = 0;//RETRO_DEVICE_ID_JOYPAD_R2
P1_state[KEY_ENTER] = 0;//RETRO_DEVICE_ID_JOYPAD_L2
P1_state[KEY_START] = 0;//RETRO_DEVICE_ID_JOYPAD_START
P1_state[KEY_COIN] = 0;//RETRO_DEVICE_ID_JOYPAD_SELECT
P1_state[KEY_BUTTON_1] = 0;//RETRO_DEVICE_ID_JOYPAD_A
P1_state[KEY_BUTTON_2] = 0;//RETRO_DEVICE_ID_JOYPAD_B
P1_state[KEY_BUTTON_3] = 0;//RETRO_DEVICE_ID_JOYPAD_X
P1_state[KEY_BUTTON_4] = 0;//RETRO_DEVICE_ID_JOYPAD_Y
P1_state[KEY_BUTTON_5] = 0;//RETRO_DEVICE_ID_JOYPAD_L
P1_state[KEY_BUTTON_6] = 0;//RETRO_DEVICE_ID_JOYPAD_R
P1_state[KEY_JOYSTICK_U] = 0;//RETRO_DEVICE_ID_JOYPAD_UP
P1_state[KEY_JOYSTICK_D] = 0;//RETRO_DEVICE_ID_JOYPAD_DOWN
P1_state[KEY_JOYSTICK_L] = 0;//RETRO_DEVICE_ID_JOYPAD_LEFT
P1_state[KEY_JOYSTICK_R] = 0;//RETRO_DEVICE_ID_JOYPAD_RIGHT
P2_state[KEY_START] = 0;//RETRO_DEVICE_ID_JOYPAD_START
P2_state[KEY_COIN] = 0;//RETRO_DEVICE_ID_JOYPAD_SELECT
P2_state[KEY_BUTTON_1] = 0;//RETRO_DEVICE_ID_JOYPAD_A
P2_state[KEY_BUTTON_2] = 0;//RETRO_DEVICE_ID_JOYPAD_B
P2_state[KEY_BUTTON_3] = 0;//RETRO_DEVICE_ID_JOYPAD_X
P2_state[KEY_BUTTON_4] = 0;//RETRO_DEVICE_ID_JOYPAD_Y
P2_state[KEY_BUTTON_5] = 0;//RETRO_DEVICE_ID_JOYPAD_L
P2_state[KEY_BUTTON_6] = 0;//RETRO_DEVICE_ID_JOYPAD_R
P2_state[KEY_JOYSTICK_U] = 0;//RETRO_DEVICE_ID_JOYPAD_UP
P2_state[KEY_JOYSTICK_D] = 0;//RETRO_DEVICE_ID_JOYPAD_DOWN
P2_state[KEY_JOYSTICK_L] = 0;//RETRO_DEVICE_ID_JOYPAD_LEFT
P2_state[KEY_JOYSTICK_R] = 0;//RETRO_DEVICE_ID_JOYPAD_RIGHT
input_device_item_add_p2(P2_device, "Tab", &P2_state[KEY_TAB], ITEM_ID_TAB, pad2_get_state);
input_device_item_add_p2(P2_device, "Enter", &P2_state[KEY_ENTER], ITEM_ID_ENTER, pad2_get_state);
input_device_item_add_p2(P2_device, "P2 Start", &P2_state[KEY_START], ITEM_ID_2, pad2_get_state);
input_device_item_add_p2(P2_device, "COIN2", &P2_state[KEY_COIN], ITEM_ID_6, pad2_get_state);
input_device_item_add_p2(P2_device, "P2 JoyU", &P2_state[KEY_JOYSTICK_U], ITEM_ID_R, pad2_get_state);
input_device_item_add_p2(P2_device, "P2 JoyD", &P2_state[KEY_JOYSTICK_D], ITEM_ID_F, pad2_get_state);
input_device_item_add_p2(P2_device, "P2 JoyL", &P2_state[KEY_JOYSTICK_L], ITEM_ID_D, pad2_get_state);
input_device_item_add_p2(P2_device, "P2 JoyR", &P2_state[KEY_JOYSTICK_R], ITEM_ID_G, pad2_get_state);
input_device_item_add_p1(P1_device, "Tab", &P1_state[KEY_TAB], ITEM_ID_TAB, pad1_get_state);
input_device_item_add_p1(P1_device, "Enter", &P1_state[KEY_ENTER], ITEM_ID_ENTER, pad1_get_state);
//.........这里部分代码省略.........