X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=frontend%2Flibretro.c;h=3fd5b0a4f3c049a3aaf2a087b59d0cf22caf737d;hb=6d552c5fd9cd5115748aaf0b704aba264eab257b;hp=47f07a63ba589fba6cbf02e5a003093d8dfce1ad;hpb=4e47706596441172d1cc3f203b8baa398cea3023;p=pcsx_rearmed.git diff --git a/frontend/libretro.c b/frontend/libretro.c index 47f07a63..3fd5b0a4 100644 --- a/frontend/libretro.c +++ b/frontend/libretro.c @@ -1,5 +1,5 @@ /* - * (C) notaz, 2012 + * (C) notaz, 2012,2014,2015 * * This work is licensed under the terms of the GNU GPLv2 or later. * See the COPYING file in the top-level directory. @@ -51,6 +51,7 @@ extern char McdDisable[2]; /* PCSX ReARMed core calls and stuff */ int in_type1, in_type2; int in_a1[2] = { 127, 127 }, in_a2[2] = { 127, 127 }; +int in_a3[2] = { 127, 127 }, in_a4[2] = { 127, 127 }; int in_keystate; int in_enable_vibration = 1; @@ -197,7 +198,7 @@ void pl_timing_prepare(int is_pal) is_pal_mode = is_pal; } -void plat_trigger_vibrate(int pad, uint32_t low, uint32_t high) +void plat_trigger_vibrate(int pad, int low, int high) { rumble.set_rumble_state(pad, RETRO_RUMBLE_STRONG, high << 8); rumble.set_rumble_state(pad, RETRO_RUMBLE_WEAK, low ? 0xffff : 0x0); @@ -283,7 +284,7 @@ void retro_get_system_info(struct retro_system_info *info) { memset(info, 0, sizeof(*info)); info->library_name = "PCSX-ReARMed"; - info->library_version = "r19"; + info->library_version = "r22"; info->valid_extensions = "bin|cue|img|mdf|pbp|toc|cbn|m3u"; info->need_fullpath = true; } @@ -303,8 +304,9 @@ void retro_get_system_av_info(struct retro_system_av_info *info) /* savestates */ size_t retro_serialize_size(void) { - // it's currently 4380651 bytes, but have some reserved for future - return 0x430000; + // it's currently 4380651-4397047 bytes, + // but have some reserved for future + return 0x440000; } struct save_fp { @@ -601,7 +603,7 @@ static void extract_directory(char *buf, const char *path, size_t size) } } -#ifdef __QNX__ +#if defined(__QNX__) || defined(_WIN32) /* Blackberry QNX doesn't have strcasestr */ /* @@ -1124,6 +1126,14 @@ void retro_run(void) in_a2[1] = (input_state_cb(0, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_RIGHT, RETRO_DEVICE_ID_ANALOG_Y) / 256) + 128; } + if (in_type2 == PSE_PAD_TYPE_ANALOGPAD) + { + in_a3[0] = (input_state_cb(1, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_LEFT, RETRO_DEVICE_ID_ANALOG_X) / 256) + 128; + in_a3[1] = (input_state_cb(1, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_LEFT, RETRO_DEVICE_ID_ANALOG_Y) / 256) + 128; + in_a4[0] = (input_state_cb(1, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_RIGHT, RETRO_DEVICE_ID_ANALOG_X) / 256) + 128; + in_a4[1] = (input_state_cb(1, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_RIGHT, RETRO_DEVICE_ID_ANALOG_Y) / 256) + 128; + } + stop = 0; psxCpu->Execute(); @@ -1253,6 +1263,8 @@ void retro_init(void) #else cycle_multiplier = 200; #endif + pl_rearmed_cbs.gpu_peops.iUseDither = 1; + spu_config.iUseFixedUpdates = 1; McdDisable[0] = 0; McdDisable[1] = 1;