mirror of
https://github.com/libretro/RetroArch
synced 2025-02-03 17:54:04 +00:00
(Xenon) Fixes/cleanups (remnants of old SSNES eradicated)
This commit is contained in:
parent
79e9dc0ebb
commit
25908c7d8c
@ -22,7 +22,7 @@ OBJ = console/griffin/griffin.o
|
|||||||
|
|
||||||
LIBS = -lretro_xenon360 -lxenon -lm -lc
|
LIBS = -lretro_xenon360 -lxenon -lm -lc
|
||||||
DEFINES = -std=gnu99 -DPACKAGE_VERSION=\"0.9.8-beta3\" -DRARCH_CONSOLE -DHAVE_THREAD -DHAVE_GETOPT_LONG=1 -DHAVE_GRIFFIN -Dmain=rarch_main
|
DEFINES = -std=gnu99 -DPACKAGE_VERSION=\"0.9.8-beta3\" -DRARCH_CONSOLE -DHAVE_THREAD -DHAVE_GETOPT_LONG=1 -DHAVE_GRIFFIN -Dmain=rarch_main
|
||||||
DEFINES += -maltivec -mhard-float -m32 -mpowerpc64 -mcpu=cell -mtune=cell -fno-pic -g -Wall -DXENON $(INCDIRS)
|
DEFINES += -maltivec -mhard-float -m32 -mpowerpc64 -mcpu=cell -mtune=cell -fno-pic -g -Wall -DXENON $(INCDIRS) -Wno-char-subscripts
|
||||||
DEFINES += -u read -u _start -u exc_base
|
DEFINES += -u read -u _start -u exc_base
|
||||||
|
|
||||||
ifeq ($(DEBUG), 1)
|
ifeq ($(DEBUG), 1)
|
||||||
|
@ -113,6 +113,9 @@ static inline bool input_key_pressed_func(int key)
|
|||||||
#elif defined(_XBOX) && (defined(HAVE_D3D8) || defined(HAVE_D3D9)) /* D3D */
|
#elif defined(_XBOX) && (defined(HAVE_D3D8) || defined(HAVE_D3D9)) /* D3D */
|
||||||
#define MAKENAME_VIDEO(A) CONCAT2(xdk_d3d, A)
|
#define MAKENAME_VIDEO(A) CONCAT2(xdk_d3d, A)
|
||||||
|
|
||||||
|
#elif defined(XENON) /* XENON */
|
||||||
|
#define MAKENAME_VIDEO(A) CONCAT2(xenon360, A)
|
||||||
|
|
||||||
#define video_set_aspect_ratio_func(aspectratio_idx) gfx_ctx_set_aspect_ratio(driver.video_data, aspectratio_idx)
|
#define video_set_aspect_ratio_func(aspectratio_idx) gfx_ctx_set_aspect_ratio(driver.video_data, aspectratio_idx)
|
||||||
|
|
||||||
#define gfx_ctx_window_has_focus() (true)
|
#define gfx_ctx_window_has_focus() (true)
|
||||||
@ -163,6 +166,8 @@ static inline bool input_key_pressed_func(int key)
|
|||||||
#define MAKENAME_INPUT(A) CONCAT2(ps3, A)
|
#define MAKENAME_INPUT(A) CONCAT2(ps3, A)
|
||||||
#elif defined(ANDROID) /* ANDROID */
|
#elif defined(ANDROID) /* ANDROID */
|
||||||
#define MAKENAME_INPUT(A) CONCAT2(android, A)
|
#define MAKENAME_INPUT(A) CONCAT2(android, A)
|
||||||
|
#elif defined(XENON) /* XENON */
|
||||||
|
#define MAKENAME_INPUT(A) CONCAT2(xenon360, A)
|
||||||
#else
|
#else
|
||||||
#define MAKENAME_INPUT(A) CONCAT2(nullinput, A)
|
#define MAKENAME_INPUT(A) CONCAT2(nullinput, A)
|
||||||
#endif
|
#endif
|
||||||
|
@ -24,17 +24,33 @@
|
|||||||
#include <input/input.h>
|
#include <input/input.h>
|
||||||
#include <usb/usbmain.h>
|
#include <usb/usbmain.h>
|
||||||
|
|
||||||
#define MAX_PADS
|
#define MAX_PADS 4
|
||||||
|
|
||||||
static struct controller_data_s pad[MAX_PADS];
|
static uint64_t state[MAX_PADS];
|
||||||
|
|
||||||
static void xenon360_input_poll(void *data)
|
static void xenon360_input_poll(void *data)
|
||||||
{
|
{
|
||||||
(void)data;
|
(void)data;
|
||||||
for (unsigned i = 0; i < MAX_PADS; i++)
|
for (unsigned i = 0; i < MAX_PADS; i++)
|
||||||
{
|
{
|
||||||
|
struct controller_data_s pad;
|
||||||
usb_do_poll();
|
usb_do_poll();
|
||||||
get_controller_data(&pad[i], i);
|
get_controller_data(&pad, i);
|
||||||
|
|
||||||
|
uint64_t *cur_state = &state[i];
|
||||||
|
|
||||||
|
*cur_state |= pad.b ? RETRO_DEVICE_ID_JOYPAD_A : 0;
|
||||||
|
*cur_state |= pad.a ? RETRO_DEVICE_ID_JOYPAD_B : 0;
|
||||||
|
*cur_state |= pad.y ? RETRO_DEVICE_ID_JOYPAD_X : 0;
|
||||||
|
*cur_state |= pad.x ? RETRO_DEVICE_ID_JOYPAD_Y : 0;
|
||||||
|
*cur_state |= pad.left ? RETRO_DEVICE_ID_JOYPAD_LEFT : 0;
|
||||||
|
*cur_state |= pad.right ? RETRO_DEVICE_ID_JOYPAD_RIGHT : 0;
|
||||||
|
*cur_state |= pad.up ? RETRO_DEVICE_ID_JOYPAD_UP : 0;
|
||||||
|
*cur_state |= pad.down ? RETRO_DEVICE_ID_JOYPAD_DOWN : 0;
|
||||||
|
*cur_state |= pad.start ? RETRO_DEVICE_ID_JOYPAD_START : 0;
|
||||||
|
*cur_state |= pad.back ? RETRO_DEVICE_ID_JOYPAD_SELECT : 0;
|
||||||
|
*cur_state |= pad.lt ? RETRO_DEVICE_ID_JOYPAD_L : 0;
|
||||||
|
*cur_state |= pad.rt ? RETRO_DEVICE_ID_JOYPAD_R : 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -43,68 +59,25 @@ static int16_t xenon360_input_state(void *data, const struct retro_keybind **bin
|
|||||||
unsigned index, unsigned id)
|
unsigned index, unsigned id)
|
||||||
{
|
{
|
||||||
(void)data;
|
(void)data;
|
||||||
(void)binds;
|
|
||||||
(void)index;
|
(void)index;
|
||||||
|
unsigned player = port;
|
||||||
|
uint64_t button = binds[player][id].joykey;
|
||||||
|
int16_t retval = 0;
|
||||||
|
|
||||||
if (device != SNES_DEVICE_JOYPAD)
|
if(player < MAX_PADS)
|
||||||
return 0;
|
|
||||||
|
|
||||||
unsigned player = 0;
|
|
||||||
if (port == SNES_PORT_2 && device == SNES_DEVICE_MULTITAP)
|
|
||||||
player = index + 1;
|
|
||||||
else if (port == SNES_PORT_2)
|
|
||||||
player = 1;
|
|
||||||
|
|
||||||
bool button;
|
|
||||||
|
|
||||||
// Hardcoded binds.
|
|
||||||
switch (id)
|
|
||||||
{
|
{
|
||||||
case SNES_DEVICE_ID_JOYPAD_A:
|
switch (device)
|
||||||
button = pad[player].b;
|
{
|
||||||
break;
|
case RETRO_DEVICE_JOYPAD:
|
||||||
case SNES_DEVICE_ID_JOYPAD_B:
|
retval = (state[player] & button) ? 1 : 0;
|
||||||
button = pad[player].a;
|
|
||||||
break;
|
|
||||||
case SNES_DEVICE_ID_JOYPAD_X:
|
|
||||||
button = pad[player].y;
|
|
||||||
break;
|
|
||||||
case SNES_DEVICE_ID_JOYPAD_Y:
|
|
||||||
button = pad[player].x;
|
|
||||||
break;
|
|
||||||
case SNES_DEVICE_ID_JOYPAD_LEFT:
|
|
||||||
button = pad[player].left;
|
|
||||||
break;
|
|
||||||
case SNES_DEVICE_ID_JOYPAD_RIGHT:
|
|
||||||
button = pad[player].right;
|
|
||||||
break;
|
|
||||||
case SNES_DEVICE_ID_JOYPAD_UP:
|
|
||||||
button = pad[player].up;
|
|
||||||
break;
|
|
||||||
case SNES_DEVICE_ID_JOYPAD_DOWN:
|
|
||||||
button = pad[player].down;
|
|
||||||
break;
|
|
||||||
case SNES_DEVICE_ID_JOYPAD_START:
|
|
||||||
button = pad[player].start;
|
|
||||||
break;
|
|
||||||
case SNES_DEVICE_ID_JOYPAD_SELECT:
|
|
||||||
button = pad[player].select;
|
|
||||||
break;
|
|
||||||
case SNES_DEVICE_ID_JOYPAD_L:
|
|
||||||
button = pad[player].lt;
|
|
||||||
break;
|
|
||||||
case SNES_DEVICE_ID_JOYPAD_R:
|
|
||||||
button = pad[player].rt;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
button = false;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return button;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xenon360_free_input(void *data)
|
static void xenon360_input_free_input(void *data)
|
||||||
{
|
{
|
||||||
(void)data;
|
(void)data;
|
||||||
}
|
}
|
||||||
@ -138,7 +111,7 @@ const input_driver_t input_xenon360 = {
|
|||||||
.poll = xenon360_input_poll,
|
.poll = xenon360_input_poll,
|
||||||
.input_state = xenon360_input_state,
|
.input_state = xenon360_input_state,
|
||||||
.key_pressed = xenon360_key_pressed,
|
.key_pressed = xenon360_key_pressed,
|
||||||
.free = xenon360_free_input,
|
.free = xenon360_input_free_input,
|
||||||
.set_default_keybind_lut = xenon360_input_set_default_keybind_lut,
|
.set_default_keybind_lut = xenon360_input_set_default_keybind_lut,
|
||||||
.set_analog_dpad_mapping = xenon360_input_set_analog_dpad_mapping,
|
.set_analog_dpad_mapping = xenon360_input_set_analog_dpad_mapping,
|
||||||
.max_pads = MAX_PADS,
|
.max_pads = MAX_PADS,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user