mirror of
https://github.com/ekeeke/Genesis-Plus-GX.git
synced 2024-12-26 03:01:50 +01:00
commit
9f6b2c7482
@ -21,6 +21,7 @@
|
||||
#define RETRO_DEVICE_MDPAD_3B_TEAMPLAYER RETRO_DEVICE_SUBCLASS(RETRO_DEVICE_JOYPAD, 5)
|
||||
#define RETRO_DEVICE_MDPAD_6B_TEAMPLAYER RETRO_DEVICE_SUBCLASS(RETRO_DEVICE_JOYPAD, 6)
|
||||
#define RETRO_DEVICE_MSPAD_2B_MASTERTAP RETRO_DEVICE_SUBCLASS(RETRO_DEVICE_JOYPAD, 7)
|
||||
#define RETRO_DEVICE_MDPAD_6B_ALT RETRO_DEVICE_SUBCLASS(RETRO_DEVICE_JOYPAD, 8)
|
||||
|
||||
#include "shared.h"
|
||||
#include "libretro.h"
|
||||
@ -50,6 +51,7 @@ char CART_BRAM[256];
|
||||
|
||||
static int vwidth;
|
||||
static int vheight;
|
||||
static bool md6_alt = false;
|
||||
|
||||
static uint32_t brm_crc[2];
|
||||
static uint8_t brm_format[0x40] =
|
||||
@ -173,32 +175,20 @@ void osd_input_update(void)
|
||||
for (i = 0; i < MAX_INPUTS; i++)
|
||||
{
|
||||
temp = 0;
|
||||
switch (input.dev[i])
|
||||
if(md6_alt)
|
||||
{
|
||||
case DEVICE_PAD6B:
|
||||
{
|
||||
if (input_state_cb(padnum, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_L))
|
||||
if (input_state_cb(padnum, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_B))
|
||||
temp |= INPUT_A;
|
||||
if (input_state_cb(padnum, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_A))
|
||||
temp |= INPUT_B;
|
||||
if (input_state_cb(padnum, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_R))
|
||||
temp |= INPUT_C;
|
||||
if (input_state_cb(padnum, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_Y))
|
||||
temp |= INPUT_X;
|
||||
if (input_state_cb(padnum, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_X))
|
||||
temp |= INPUT_Y;
|
||||
if (input_state_cb(padnum, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_R))
|
||||
if (input_state_cb(padnum, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_L))
|
||||
temp |= INPUT_Z;
|
||||
if (input_state_cb(padnum, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_SELECT))
|
||||
temp |= INPUT_MODE;
|
||||
}
|
||||
|
||||
case DEVICE_PAD3B:
|
||||
{
|
||||
if (input_state_cb(padnum, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_Y))
|
||||
temp |= INPUT_A;
|
||||
}
|
||||
|
||||
case DEVICE_PAD2B:
|
||||
{
|
||||
if (input_state_cb(padnum, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_B))
|
||||
temp |= INPUT_B;
|
||||
if (input_state_cb(padnum, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_A))
|
||||
temp |= INPUT_C;
|
||||
if (input_state_cb(padnum, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_START))
|
||||
temp |= INPUT_START;
|
||||
if (input_state_cb(padnum, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_UP))
|
||||
@ -209,13 +199,57 @@ void osd_input_update(void)
|
||||
temp |= INPUT_LEFT;
|
||||
if (input_state_cb(padnum, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_RIGHT))
|
||||
temp |= INPUT_RIGHT;
|
||||
|
||||
if (input_state_cb(padnum, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_SELECT))
|
||||
temp |= INPUT_MODE;
|
||||
|
||||
padnum++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (input.dev[i])
|
||||
{
|
||||
case DEVICE_PAD6B:
|
||||
{
|
||||
if (input_state_cb(padnum, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_L))
|
||||
temp |= INPUT_X;
|
||||
if (input_state_cb(padnum, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_X))
|
||||
temp |= INPUT_Y;
|
||||
if (input_state_cb(padnum, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_R))
|
||||
temp |= INPUT_Z;
|
||||
if (input_state_cb(padnum, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_SELECT))
|
||||
temp |= INPUT_MODE;
|
||||
}
|
||||
|
||||
default:
|
||||
break;
|
||||
case DEVICE_PAD3B:
|
||||
{
|
||||
if (input_state_cb(padnum, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_Y))
|
||||
temp |= INPUT_A;
|
||||
}
|
||||
|
||||
case DEVICE_PAD2B:
|
||||
{
|
||||
if (input_state_cb(padnum, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_B))
|
||||
temp |= INPUT_B;
|
||||
if (input_state_cb(padnum, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_A))
|
||||
temp |= INPUT_C;
|
||||
if (input_state_cb(padnum, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_START))
|
||||
temp |= INPUT_START;
|
||||
if (input_state_cb(padnum, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_UP))
|
||||
temp |= INPUT_UP;
|
||||
if (input_state_cb(padnum, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_DOWN))
|
||||
temp |= INPUT_DOWN;
|
||||
if (input_state_cb(padnum, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_LEFT))
|
||||
temp |= INPUT_LEFT;
|
||||
if (input_state_cb(padnum, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_RIGHT))
|
||||
temp |= INPUT_RIGHT;
|
||||
|
||||
padnum++;
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
input.pad[i] = temp;
|
||||
@ -757,6 +791,7 @@ void retro_set_environment(retro_environment_t cb)
|
||||
{ "Joypad Port Empty", RETRO_DEVICE_NONE },
|
||||
{ "MD Joypad 3 Button", RETRO_DEVICE_MDPAD_3B },
|
||||
{ "MD Joypad 6 Button", RETRO_DEVICE_MDPAD_6B },
|
||||
{ "MD Joypad 6 Alternate", RETRO_DEVICE_MDPAD_6B_ALT },
|
||||
{ "MS Joypad 2 Button", RETRO_DEVICE_MSPAD_2B },
|
||||
{ "MD Joypad 3 Button + 4-WayPlay", RETRO_DEVICE_MDPAD_3B_WAYPLAY },
|
||||
{ "MD Joypad 6 Button + 4-WayPlay", RETRO_DEVICE_MDPAD_6B_WAYPLAY },
|
||||
@ -770,6 +805,7 @@ void retro_set_environment(retro_environment_t cb)
|
||||
{ "Joypad Port Empty", RETRO_DEVICE_NONE },
|
||||
{ "MD Joypad 3 Button", RETRO_DEVICE_MDPAD_3B },
|
||||
{ "MD Joypad 6 Button", RETRO_DEVICE_MDPAD_6B },
|
||||
{ "MD Joypad 6 Alternate", RETRO_DEVICE_MDPAD_6B_ALT },
|
||||
{ "MS Joypad 2 Button", RETRO_DEVICE_MSPAD_2B },
|
||||
{ "MD Joypad 3 Button + 4-WayPlay", RETRO_DEVICE_MDPAD_3B_WAYPLAY },
|
||||
{ "MD Joypad 6 Button + 4-WayPlay", RETRO_DEVICE_MDPAD_6B_WAYPLAY },
|
||||
@ -830,6 +866,11 @@ void retro_set_controller_port_device(unsigned port, unsigned device)
|
||||
config.input[port*4].padtype = DEVICE_PAD6B;
|
||||
input.system[port] = SYSTEM_GAMEPAD;
|
||||
break;
|
||||
case RETRO_DEVICE_MDPAD_6B_ALT:
|
||||
config.input[port*4].padtype = DEVICE_PAD6B;
|
||||
input.system[port] = SYSTEM_GAMEPAD;
|
||||
md6_alt = true;
|
||||
break;
|
||||
case RETRO_DEVICE_MSPAD_2B:
|
||||
config.input[port*4].padtype = DEVICE_PAD2B;
|
||||
input.system[port] = SYSTEM_GAMEPAD;
|
||||
|
Loading…
Reference in New Issue
Block a user