ARCH = arm
CFLAGS += -DBASE_ADDR_FIXED=0 -D__BLACKBERRY_QNX__ -marm -mcpu=cortex-a9 -mtune=cortex-a9 -mfpu=neon -mfloat-abi=softfp
ASFLAGS += -mcpu=cortex-a9 -mfpu=neon -mfloat-abi=softfp
-else ifeq ($(platform), arm)
+else ifneq (,$(findstring armv,$(platform)))
TARGET := $(TARGET_NAME)_libretro.so
- HAVE_NEON = 1
- USE_DYNAREC = 1
+ SHARED := -shared -Wl,--no-undefined
DRC_CACHE_BASE = 0
+ifneq (,$(findstring cortexa8,$(platform)))
+ CFLAGS += -marm -mcpu=cortex-a8
+ ASFLAGS += -mcpu=cortex-a8
+else ifneq (,$(findstring cortexa9,$(platform)))
+ CFLAGS += -marm -mcpu=cortex-a9
+ ASFLAGS += -mcpu=cortex-a9
+endif
+ CFLAGS += -marm
+ifneq (,$(findstring neon,$(platform)))
+ CFLAGS += -mfpu=neon
+ ASFLAGS += -mfpu=neon
+ HAVE_NEON = 1
BUILTIN_GPU = neon
+endif
+ifneq (,$(findstring softfloat,$(platform)))
+ CFLAGS += -mfloat-abi=softfp
+ ASFLAGS += -mfloat-abi=softfp
+else ifneq (,$(findstring hardfloat,$(platform)))
+ CFLAGS += -mfloat-abi=hard
+ ASFLAGS += -mfloat-abi=hard
+endif
ARCH = arm
- CFLAGS += -marm -mcpu=cortex-a8 -mfpu=neon
- ASFLAGS += -mcpu=cortex-a8 -mfpu=neon
+ USE_DYNAREC = 1
else
TARGET := $(TARGET_NAME)_retro.dll
CC = gcc
static const struct retro_variable vars[] = {
{ "frameskip", "Frameskip; 0|1|2|3" },
{ "region", "Region; Auto|NTSC|PAL" },
+ { "pad1type", "Pad 1 Type; standard|analog" },
#ifdef __ARM_NEON__
{ "neon_interlace_enable", "Enable interlacing mode(s); disabled|enabled" },
{ "neon_enhancement_enable", "Enhanced resolution (slow); disabled|enabled" },
else if (strcmp(var.value, "PAL") == 0)
Config.PsxType = 1;
}
+
+ var.value = NULL;
+ var.key = "pad1type";
+
+ if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) || var.value)
+ {
+ in_type1 = PSE_PAD_TYPE_STANDARD;
+ if (strcmp(var.value, "analog") == 0)
+ in_type1 = PSE_PAD_TYPE_ANALOGPAD;
+ }
+
#ifdef __ARM_NEON__
var.value = "NULL";
var.key = "neon_interlace_enable";
if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i))
in_keystate |= retro_psx_map[i];
+ if (in_type1 == PSE_PAD_TYPE_ANALOGPAD)
+ {
+ in_a1[0] = (input_state_cb(0, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_LEFT, RETRO_DEVICE_ID_ANALOG_X) / 256) + 128;
+ in_a1[1] = (input_state_cb(0, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_LEFT, RETRO_DEVICE_ID_ANALOG_Y) / 256) + 128;
+ in_a2[0] = (input_state_cb(0, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_RIGHT, RETRO_DEVICE_ID_ANALOG_X) / 256) + 128;
+ in_a2[1] = (input_state_cb(0, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_RIGHT, RETRO_DEVICE_ID_ANALOG_Y) / 256) + 128;
+ }
+
stop = 0;
psxCpu->Execute();