Example #1
0
void snes_set_controller_port_device(bool in_port, unsigned device)
{
	int port = in_port == SNES_PORT_1 ? 0 : 1;
	switch (device)
	{
		case SNES_DEVICE_JOYPAD:
			S9xSetController(port, CTL_JOYPAD, 0, 0, 0, 0);
			snes_devices[port] = SNES_DEVICE_JOYPAD;
			break;
		case SNES_DEVICE_MULTITAP:
			S9xSetController(port, CTL_MP5, 1, 2, 3, 4);
			snes_devices[port] = SNES_DEVICE_MULTITAP;
			break;
		case SNES_DEVICE_MOUSE:
			S9xSetController(port, CTL_MOUSE, 0, 0, 0, 0);
			snes_devices[port] = SNES_DEVICE_MOUSE;

			/* mapping pointers here */
			S9xMapPointer((BTN_POINTER), S9xGetCommandT("Pointer Mouse1+Superscope+Justifier1"));
			S9xMapPointer((BTN_POINTER2), S9xGetCommandT("Pointer Mouse2"));

			/* mapping extra buttons here */
			MAP_BUTTON(MAKE_BUTTON(PAD_1, BTN_SELECT), "Mouse1 L");
			MAP_BUTTON(MAKE_BUTTON(PAD_1, BTN_START), "Mouse1 R");
			MAP_BUTTON(MAKE_BUTTON(PAD_2, BTN_SELECT), "Mouse2 L");
			MAP_BUTTON(MAKE_BUTTON(PAD_2, BTN_START), "Mouse2 R");
			break;
		case SNES_DEVICE_SUPER_SCOPE:
			S9xSetController(port, CTL_SUPERSCOPE, 0, 0, 0, 0);
			snes_devices[port] = SNES_DEVICE_SUPER_SCOPE;

			/* mapping pointers here */
			S9xMapPointer((BTN_POINTER), S9xGetCommandT("Pointer Mouse1+Superscope+Justifier1"));
			S9xMapPointer((BTN_POINTER2), S9xGetCommandT("Pointer Mouse2"));

			/* mapping extra buttons here */
			MAP_BUTTON(MAKE_BUTTON(PAD_2, BTN_SELECT), "Superscope Fire");
			MAP_BUTTON(MAKE_BUTTON(PAD_2, BTN_START), "Superscope Cursor");
			MAP_BUTTON(MAKE_BUTTON(PAD_2, BTN_UP), "Superscope ToggleTurbo");
			MAP_BUTTON(MAKE_BUTTON(PAD_2, BTN_DOWN), "Superscope Pause");
			break;
		case SNES_DEVICE_JUSTIFIER:
			S9xSetController(port, CTL_JUSTIFIER, 0, 0, 0, 0);
			snes_devices[port] = SNES_DEVICE_JUSTIFIER;

			/* mapping extra buttons here */
			MAP_BUTTON(MAKE_BUTTON(PAD_2, BTN_SELECT), "Justifier1 Trigger");
			MAP_BUTTON(MAKE_BUTTON(PAD_2, BTN_START), "Justifier1 Start");
			break;
		case SNES_DEVICE_JUSTIFIERS:
			S9xSetController(port, CTL_JUSTIFIER, 1, 0, 0, 0);
			snes_devices[port] = SNES_DEVICE_JUSTIFIERS;
			break;
		default:
			fprintf(stderr, "[libsnes]: Invalid device!\n");
	}
}
s9xcommand_t
S9xGetPortCommandT (const char *name)
{
    s9xcommand_t cmd;

    cmd.type = S9xButtonPort;
    cmd.multi_press = 0;
    cmd.button_norpt = 0;
    cmd.port[0] = 0;
    cmd.port[1] = 0;
    cmd.port[2] = 0;
    cmd.port[3] = 0;

    if (!strcasecmp (name, "GTK_fullscreen"))
    {
        cmd.port[0] = PORT_COMMAND_FULLSCREEN;
    }

    else if (!strcasecmp (name, "GTK_save_spc"))
    {
        cmd.port[0] = PORT_COMMAND_SAVE_SPC;
    }

    else if (!strcasecmp (name, "GTK_open_rom"))
    {
        cmd.port[0] = PORT_OPEN_ROM;
    }

    else if (!strcasecmp (name, "GTK_pause"))
    {
        cmd.port[0] = PORT_PAUSE;
    }

    else if (!strcasecmp (name, "GTK_seek_to_frame"))
    {
        cmd.port[0] = PORT_SEEK_TO_FRAME;
    }

    else if (!strcasecmp (name, "GTK_quit"))
    {
        cmd.port[0] = PORT_QUIT;
    }

    else if (!strcasecmp (name, "GTK_swap_controllers"))
    {
        cmd.port[0] = PORT_SWAP_CONTROLLERS;
    }

    else
    {
        cmd = S9xGetCommandT (name);
    }

    return cmd;
}
Example #3
0
s9xcommand_t S9xGetPortCommandT (const char *name)
{
    s9xcommand_t cmd;

    cmd.type = S9xButtonPort;
    cmd.multi_press = 0;
    cmd.button_norpt = 0;
    cmd.port[0] = 0;
    cmd.port[1] = 0;
    cmd.port[2] = 0;
    cmd.port[3] = 0;

    if (!strcasecmp (name, "GTK_fullscreen"))
    {
        cmd.port[0] = PORT_COMMAND_FULLSCREEN;
    }

    else if (!strcasecmp (name, "GTK_save_spc"))
    {
        cmd.port[0] = PORT_COMMAND_SAVE_SPC;
    }

    else if (!strcasecmp (name, "GTK_open_rom"))
    {
        cmd.port[0] = PORT_OPEN_ROM;
    }

    else if (!strcasecmp (name, "GTK_pause"))
    {
        cmd.port[0] = PORT_PAUSE;
    }

    else if (!strcasecmp (name, "GTK_seek_to_frame"))
    {
        cmd.port[0] = PORT_SEEK_TO_FRAME;
    }

    else if (!strcasecmp (name, "GTK_quit"))
    {
        cmd.port[0] = PORT_QUIT;
    }

    else if (!strcasecmp (name, "GTK_swap_controllers"))
    {
        cmd.port[0] = PORT_SWAP_CONTROLLERS;
    }

    else if (!strcasecmp (name, "GTK_rewind"))
    {
        cmd.port[0] = PORT_REWIND;
    }

    else if (strstr (name, "QuickLoad000"))
    {
        cmd.port[0] = PORT_QUICKLOAD0;
    }

    else if (strstr (name, "QuickLoad001"))
    {
        cmd.port[0] = PORT_QUICKLOAD1;
    }

    else if (strstr (name, "QuickLoad002"))
    {
        cmd.port[0] = PORT_QUICKLOAD2;
    }

    else if (strstr (name, "QuickLoad003"))
    {
        cmd.port[0] = PORT_QUICKLOAD3;
    }

    else if (strstr (name, "QuickLoad004"))
    {
        cmd.port[0] = PORT_QUICKLOAD4;
    }

    else if (strstr (name, "QuickLoad005"))
    {
        cmd.port[0] = PORT_QUICKLOAD5;
    }

    else if (strstr (name, "QuickLoad006"))
    {
        cmd.port[0] = PORT_QUICKLOAD6;
    }

    else if (strstr (name, "QuickLoad007"))
    {
        cmd.port[0] = PORT_QUICKLOAD7;
    }

    else if (strstr (name, "QuickLoad008"))
    {
        cmd.port[0] = PORT_QUICKLOAD8;
    }

    else if (strstr (name, "QuickLoad009"))
    {
        cmd.port[0] = PORT_QUICKLOAD9;
    }

    else if (strstr (name, "GTK_state_save_current"))
    {
        cmd.port[0] = PORT_SAVESLOT;
    }

    else if (strstr (name, "GTK_state_load_current"))
    {
        cmd.port[0] = PORT_LOADSLOT;
    }

    else if (strstr (name, "GTK_state_increment_save"))
    {
        cmd.port[0] = PORT_INCREMENTSAVESLOT;
    }

    else if (strstr (name, "GTK_state_decrement_load"))
    {
        cmd.port[0] = PORT_DECREMENTLOADSLOT;
    }

    else if (strstr (name, "GTK_state_increment"))
    {
        cmd.port[0] = PORT_INCREMENTSLOT;
    }

    else if (strstr (name, "GTK_state_decrement"))
    {
        cmd.port[0] = PORT_DECREMENTSLOT;
    }

    else if (strstr (name, "GTK_grab_mouse"))
    {
        cmd.port[0] = PORT_GRABMOUSE;
    }


    else
    {
        cmd = S9xGetCommandT (name);
    }

    return cmd;
}
Example #4
0
void retro_set_controller_port_device(unsigned in_port, unsigned device)
{
   int port = in_port;

   switch (device)
   {
      case RETRO_DEVICE_JOYPAD:
         retro_devices[port] = RETRO_DEVICE_JOYPAD;
         S9xSetController(port, CTL_JOYPAD, port, 0, 0, 0);
         break;
      case RETRO_DEVICE_JOYPAD_MULTITAP:
         retro_devices[port] = RETRO_DEVICE_JOYPAD_MULTITAP;
         S9xSetController(port, CTL_MP5, port+0, port+2, port+4, port+6);
         break;
      case RETRO_DEVICE_MOUSE:
         retro_devices[port] = RETRO_DEVICE_MOUSE;

         S9xSetController(port, CTL_MOUSE, 0, 0, 0, 0);

         /* mapping pointers here */
         S9xMapPointer((BTN_POINTER), S9xGetCommandT("Pointer Mouse1+Superscope+Justifier1"));
         S9xMapPointer((BTN_POINTER2), S9xGetCommandT("Pointer Mouse2"));

         /* mapping extra buttons here */
         LR_MAP_BUTTON(MAKE_BUTTON(1, RETRO_DEVICE_ID_JOYPAD_SELECT), "Mouse1 L");
         LR_MAP_BUTTON(MAKE_BUTTON(1, RETRO_DEVICE_ID_JOYPAD_START), "Mouse1 R");
         LR_MAP_BUTTON(MAKE_BUTTON(2, RETRO_DEVICE_ID_JOYPAD_SELECT), "Mouse2 L");
         LR_MAP_BUTTON(MAKE_BUTTON(2, RETRO_DEVICE_ID_JOYPAD_START), "Mouse2 R");
         break;
      case RETRO_DEVICE_LIGHTGUN_SUPER_SCOPE:
         S9xSetController(port, CTL_SUPERSCOPE, 0, 0, 0, 0);
         retro_devices[port] = RETRO_DEVICE_LIGHTGUN_SUPER_SCOPE;

         /* mapping pointers here */
         S9xMapPointer((BTN_POINTER), S9xGetCommandT("Pointer Mouse1+Superscope+Justifier1"));
         S9xMapPointer((BTN_POINTER2), S9xGetCommandT("Pointer Mouse2"));

         /* mapping extra buttons here */
         LR_MAP_BUTTON(MAKE_BUTTON(2, RETRO_DEVICE_ID_JOYPAD_SELECT), "Superscope Fire");
         LR_MAP_BUTTON(MAKE_BUTTON(2, RETRO_DEVICE_ID_JOYPAD_START), "Superscope Cursor");
         LR_MAP_BUTTON(MAKE_BUTTON(2, RETRO_DEVICE_ID_JOYPAD_UP), "Superscope ToggleTurbo");
         LR_MAP_BUTTON(MAKE_BUTTON(2, RETRO_DEVICE_ID_JOYPAD_DOWN), "Superscope Pause");
         break;
      case RETRO_DEVICE_LIGHTGUN_JUSTIFIER:
         S9xSetController(port, CTL_JUSTIFIER, 0, 0, 0, 0);
         retro_devices[port] = RETRO_DEVICE_LIGHTGUN_JUSTIFIER;

         /* mapping extra buttons here */
         LR_MAP_BUTTON(MAKE_BUTTON(2, RETRO_DEVICE_ID_JOYPAD_SELECT), "Justifier1 Trigger");
         LR_MAP_BUTTON(MAKE_BUTTON(2, RETRO_DEVICE_ID_JOYPAD_START), "Justifier1 Start");
         break;
      case RETRO_DEVICE_LIGHTGUN_JUSTIFIERS:
         S9xSetController(port, CTL_JUSTIFIER, 1, 0, 0, 0);
         retro_devices[port] = RETRO_DEVICE_LIGHTGUN_JUSTIFIERS;
         break;
      default:
         if (log_cb)
            log_cb(RETRO_LOG_ERROR, "Invalid device!\n");
   }

   if (((retro_devices[0] == RETRO_DEVICE_JOYPAD) && retro_devices[1] == RETRO_DEVICE_JOYPAD) ||
      ((retro_devices[0] == RETRO_DEVICE_JOYPAD) && retro_devices[1] == RETRO_DEVICE_JOYPAD_MULTITAP) ||
         ((retro_devices[0] == RETRO_DEVICE_JOYPAD_MULTITAP) && retro_devices[1] == RETRO_DEVICE_JOYPAD))
      Settings.NormalControls = 1;
}
Example #5
0
/****************************************************************************
 * Set the default mapping for NGC
 ***************************************************************************/
void SetDefaultButtonMap ()
{
  int maxcode = 0x10;
  s9xcommand_t cmd;

	/*** Joypad 1 ***/
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad1 A");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad1 B");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad1 X");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad1 Y");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad1 L");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad1 R");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad1 Select");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad1 Start");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad1 Up");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad1 Down");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad1 Left");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad1 Right");

  maxcode = 0x20;
	/*** Joypad 2 ***/
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad2 A");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad2 B");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad2 X");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad2 Y");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad2 L");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad2 R");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad2 Select");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad2 Start");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad2 Up");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad2 Down");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad2 Left");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad2 Right");

  maxcode = 0x30;
	/*** Joypad 3 ***/
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad3 A");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad3 B");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad3 X");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad3 Y");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad3 L");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad3 R");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad3 Select");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad3 Start");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad3 Up");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad3 Down");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad3 Left");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad3 Right");

  maxcode = 0x40;
	/*** Joypad 4 ***/
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad4 A");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad4 B");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad4 X");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad4 Y");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad4 L");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad4 R");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad4 Select");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad4 Start");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad4 Up");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad4 Down");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad4 Left");
  ASSIGN_BUTTON_FALSE (maxcode++, "Joypad4 Right");

  maxcode = 0x50;
	/*** Superscope ***/
  ASSIGN_BUTTON_FALSE (maxcode++, "Superscope AimOffscreen");
  ASSIGN_BUTTON_FALSE (maxcode++, "Superscope Fire");
  ASSIGN_BUTTON_FALSE (maxcode++, "Superscope Cursor");
  ASSIGN_BUTTON_FALSE (maxcode++, "Superscope ToggleTurbo");
  ASSIGN_BUTTON_FALSE (maxcode++, "Superscope Pause");

  maxcode = 0x60;
	/*** Mouse ***/
  ASSIGN_BUTTON_FALSE (maxcode++, "Mouse1 L");
  ASSIGN_BUTTON_FALSE (maxcode++, "Mouse1 R");
  ASSIGN_BUTTON_FALSE (maxcode++, "Mouse2 L");
  ASSIGN_BUTTON_FALSE (maxcode++, "Mouse2 R");

  maxcode = 0x70;
	/*** Justifier ***/
  ASSIGN_BUTTON_FALSE (maxcode++, "Justifier1 AimOffscreen");
  ASSIGN_BUTTON_FALSE (maxcode++, "Justifier1 Trigger");
  ASSIGN_BUTTON_FALSE (maxcode++, "Justifier1 Start");
  ASSIGN_BUTTON_FALSE (maxcode++, "Justifier2 AimOffscreen");
  ASSIGN_BUTTON_FALSE (maxcode++, "Justifier2 Trigger");
  ASSIGN_BUTTON_FALSE (maxcode++, "Justifier2 Start");

  maxcode = 0x80;
  S9xMapPointer( maxcode++, S9xGetCommandT("Pointer Superscope"), false);
  S9xMapPointer( maxcode++, S9xGetCommandT("Pointer Mouse1"), false);
  S9xMapPointer( maxcode++, S9xGetCommandT("Pointer Mouse2"), false);
  S9xMapPointer( maxcode++, S9xGetCommandT("Pointer Justifier1"), false);
  S9xMapPointer( maxcode++, S9xGetCommandT("Pointer Justifier2"), false);

  SetControllers ();

}
Example #6
0
// void S9xInitInputDevices (void)
// {
// 	S9xUnmapAllControls();
// #ifdef USE_SDL
//     S9xMapButton(SDLK_RIGHT, S9xGetCommandT("Joypad1 Right"), false);
//     S9xMapButton(SDLK_LEFT, S9xGetCommandT("Joypad1 Left"), false);
//     S9xMapButton(SDLK_DOWN, S9xGetCommandT("Joypad1 Down"), false);
//     S9xMapButton(SDLK_UP, S9xGetCommandT("Joypad1 Up"), false);
//     S9xMapButton(SDLK_RETURN, S9xGetCommandT("Joypad1 Start"), false);
//     S9xMapButton(SDLK_SPACE,  S9xGetCommandT("Joypad1 Select"), false);
//     S9xMapButton(SDLK_d, S9xGetCommandT("Joypad1 A"), false);
//     S9xMapButton(SDLK_c, S9xGetCommandT("Joypad1 B"), false);
//     S9xMapButton(SDLK_s, S9xGetCommandT("Joypad1 X"), false);
//     S9xMapButton(SDLK_x, S9xGetCommandT("Joypad1 Y"), false);
//     S9xMapButton(SDLK_a, S9xGetCommandT("Joypad1 L"), false);
//     S9xMapButton(SDLK_z, S9xGetCommandT("Joypad1 R"), false);
// #endif
// }
void S9xInitInputDevices (int r, int l, int d, int u, int st, int sl, int a, int b, int x, int y, int lb, int rb)
{
	S9xUnmapAllControls();
#ifdef USE_SDL
    S9xMapButton(r, S9xGetCommandT("Joypad1 Right"), false);
    S9xMapButton(l, S9xGetCommandT("Joypad1 Left"), false);
    S9xMapButton(d, S9xGetCommandT("Joypad1 Down"), false);
    S9xMapButton(u, S9xGetCommandT("Joypad1 Up"), false);
    S9xMapButton(st, S9xGetCommandT("Joypad1 Start"), false);
    S9xMapButton(sl,  S9xGetCommandT("Joypad1 Select"), false);
    S9xMapButton(a, S9xGetCommandT("Joypad1 A"), false);
    S9xMapButton(b, S9xGetCommandT("Joypad1 B"), false);
    S9xMapButton(x, S9xGetCommandT("Joypad1 X"), false);
    S9xMapButton(y, S9xGetCommandT("Joypad1 Y"), false);
    S9xMapButton(lb, S9xGetCommandT("Joypad1 L"), false);
    S9xMapButton(rb, S9xGetCommandT("Joypad1 R"), false);
#endif
}
Example #7
0
static void map_buttons()
{
   MAP_BUTTON(MAKE_BUTTON(PAD_1, BTN_A), "Joypad1 A");
   MAP_BUTTON(MAKE_BUTTON(PAD_1, BTN_B), "Joypad1 B");
   MAP_BUTTON(MAKE_BUTTON(PAD_1, BTN_X), "Joypad1 X");
   MAP_BUTTON(MAKE_BUTTON(PAD_1, BTN_Y), "Joypad1 Y");
   MAP_BUTTON(MAKE_BUTTON(PAD_1, BTN_SELECT), "{Joypad1 Select,Mouse1 L}");
   MAP_BUTTON(MAKE_BUTTON(PAD_1, BTN_START), "{Joypad1 Start,Mouse1 R}");
   MAP_BUTTON(MAKE_BUTTON(PAD_1, BTN_L), "Joypad1 L");
   MAP_BUTTON(MAKE_BUTTON(PAD_1, BTN_R), "Joypad1 R");
   MAP_BUTTON(MAKE_BUTTON(PAD_1, BTN_LEFT), "Joypad1 Left");
   MAP_BUTTON(MAKE_BUTTON(PAD_1, BTN_RIGHT), "Joypad1 Right");
   MAP_BUTTON(MAKE_BUTTON(PAD_1, BTN_UP), "Joypad1 Up");
   MAP_BUTTON(MAKE_BUTTON(PAD_1, BTN_DOWN), "Joypad1 Down");
   S9xMapPointer((BTN_POINTER), S9xGetCommandT("Pointer Mouse1+Superscope+Justifier1"), false);
   S9xMapPointer((BTN_POINTER2), S9xGetCommandT("Pointer Mouse2"), false);

   MAP_BUTTON(MAKE_BUTTON(PAD_2, BTN_A), "Joypad2 A");
   MAP_BUTTON(MAKE_BUTTON(PAD_2, BTN_B), "Joypad2 B");
   MAP_BUTTON(MAKE_BUTTON(PAD_2, BTN_X), "Joypad2 X");
   MAP_BUTTON(MAKE_BUTTON(PAD_2, BTN_Y), "Joypad2 Y");
   MAP_BUTTON(MAKE_BUTTON(PAD_2, BTN_SELECT), "{Joypad2 Select,Mouse2 L,Superscope Fire,Justifier1 Trigger}");
   MAP_BUTTON(MAKE_BUTTON(PAD_2, BTN_START), "{Joypad2 Start,Mouse2 R,Superscope Cursor,Justifier1 Start}");
   MAP_BUTTON(MAKE_BUTTON(PAD_2, BTN_L), "Joypad2 L");
   MAP_BUTTON(MAKE_BUTTON(PAD_2, BTN_R), "Joypad2 R");
   MAP_BUTTON(MAKE_BUTTON(PAD_2, BTN_LEFT), "Joypad2 Left");
   MAP_BUTTON(MAKE_BUTTON(PAD_2, BTN_RIGHT), "Joypad2 Right");
   MAP_BUTTON(MAKE_BUTTON(PAD_2, BTN_UP), "{Joypad2 Up,Superscope ToggleTurbo}");
   MAP_BUTTON(MAKE_BUTTON(PAD_2, BTN_DOWN), "{Joypad2 Down,Superscope Pause}");

   MAP_BUTTON(MAKE_BUTTON(PAD_3, BTN_A), "Joypad3 A");
   MAP_BUTTON(MAKE_BUTTON(PAD_3, BTN_B), "Joypad3 B");
   MAP_BUTTON(MAKE_BUTTON(PAD_3, BTN_X), "Joypad3 X");
   MAP_BUTTON(MAKE_BUTTON(PAD_3, BTN_Y), "Joypad3 Y");
   MAP_BUTTON(MAKE_BUTTON(PAD_3, BTN_SELECT), "Joypad3 Select");
   MAP_BUTTON(MAKE_BUTTON(PAD_3, BTN_START), "Joypad3 Start");
   MAP_BUTTON(MAKE_BUTTON(PAD_3, BTN_L), "Joypad3 L");
   MAP_BUTTON(MAKE_BUTTON(PAD_3, BTN_R), "Joypad3 R");
   MAP_BUTTON(MAKE_BUTTON(PAD_3, BTN_LEFT), "Joypad3 Left");
   MAP_BUTTON(MAKE_BUTTON(PAD_3, BTN_RIGHT), "Joypad3 Right");
   MAP_BUTTON(MAKE_BUTTON(PAD_3, BTN_UP), "Joypad3 Up");
   MAP_BUTTON(MAKE_BUTTON(PAD_3, BTN_DOWN), "Joypad3 Down");

   MAP_BUTTON(MAKE_BUTTON(PAD_4, BTN_A), "Joypad4 A");
   MAP_BUTTON(MAKE_BUTTON(PAD_4, BTN_B), "Joypad4 B");
   MAP_BUTTON(MAKE_BUTTON(PAD_4, BTN_X), "Joypad4 X");
   MAP_BUTTON(MAKE_BUTTON(PAD_4, BTN_Y), "Joypad4 Y");
   MAP_BUTTON(MAKE_BUTTON(PAD_4, BTN_SELECT), "Joypad4 Select");
   MAP_BUTTON(MAKE_BUTTON(PAD_4, BTN_START), "Joypad4 Start");
   MAP_BUTTON(MAKE_BUTTON(PAD_4, BTN_L), "Joypad4 L");
   MAP_BUTTON(MAKE_BUTTON(PAD_4, BTN_R), "Joypad4 R");
   MAP_BUTTON(MAKE_BUTTON(PAD_4, BTN_LEFT), "Joypad4 Left");
   MAP_BUTTON(MAKE_BUTTON(PAD_4, BTN_RIGHT), "Joypad4 Right");
   MAP_BUTTON(MAKE_BUTTON(PAD_4, BTN_UP), "Joypad4 Up");
   MAP_BUTTON(MAKE_BUTTON(PAD_4, BTN_DOWN), "Joypad4 Down");

   MAP_BUTTON(MAKE_BUTTON(PAD_5, BTN_A), "Joypad5 A");
   MAP_BUTTON(MAKE_BUTTON(PAD_5, BTN_B), "Joypad5 B");
   MAP_BUTTON(MAKE_BUTTON(PAD_5, BTN_X), "Joypad5 X");
   MAP_BUTTON(MAKE_BUTTON(PAD_5, BTN_Y), "Joypad5 Y");
   MAP_BUTTON(MAKE_BUTTON(PAD_5, BTN_SELECT), "Joypad5 Select");
   MAP_BUTTON(MAKE_BUTTON(PAD_5, BTN_START), "Joypad5 Start");
   MAP_BUTTON(MAKE_BUTTON(PAD_5, BTN_L), "Joypad5 L");
   MAP_BUTTON(MAKE_BUTTON(PAD_5, BTN_R), "Joypad5 R");
   MAP_BUTTON(MAKE_BUTTON(PAD_5, BTN_LEFT), "Joypad5 Left");
   MAP_BUTTON(MAKE_BUTTON(PAD_5, BTN_RIGHT), "Joypad5 Right");
   MAP_BUTTON(MAKE_BUTTON(PAD_5, BTN_UP), "Joypad5 Up");
   MAP_BUTTON(MAKE_BUTTON(PAD_5, BTN_DOWN), "Joypad5 Down");

}