X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=frontend%2Flibretro.c;h=992da60f31e8e13b05170d74bb91e2d9df73d54b;hb=8ec1e4de88798ca548481773e49bb01a4de03139;hp=92cc9e652e34975f7d3c0a05caa17c69953d9e59;hpb=d3c41e5eabb5e49e457ae0413982c4c25350c170;p=pcsx_rearmed.git diff --git a/frontend/libretro.c b/frontend/libretro.c index 92cc9e65..992da60f 100644 --- a/frontend/libretro.c +++ b/frontend/libretro.c @@ -76,6 +76,9 @@ static bool display_internal_fps = false; static unsigned frame_count = 0; static bool libretro_supports_bitmasks = false; +static unsigned previous_width = 0; +static unsigned previous_height = 0; + static int plugins_opened; static int is_pal_mode; @@ -180,11 +183,17 @@ static void vout_set_mode(int w, int h, int raw_w, int raw_h, int bpp) vout_width = w; vout_height = h; + if (previous_width != vout_width || previous_height != vout_height) + { + previous_width = vout_width; + previous_height = vout_height; + SysPrintf("setting mode width: %d height %d\n", vout_width, vout_height); struct retro_system_av_info info; retro_get_system_av_info(&info); environ_cb(RETRO_ENVIRONMENT_SET_GEOMETRY, &info.geometry); + } set_vout_fb(); } @@ -1355,6 +1364,8 @@ void *retro_get_memory_data(unsigned id) { if (id == RETRO_MEMORY_SAVE_RAM) return Mcd1Data; + else if (id == RETRO_MEMORY_SYSTEM_RAM) + return psxM; else return NULL; } @@ -1363,6 +1374,8 @@ size_t retro_get_memory_size(unsigned id) { if (id == RETRO_MEMORY_SAVE_RAM) return MCD_SIZE; + else if (id == RETRO_MEMORY_SYSTEM_RAM) + return 0x210000; else return 0; } @@ -1814,7 +1827,7 @@ void retro_run(void) // Query digital inputs // // > Pad-Up - if (ret & (1 < RETRO_DEVICE_ID_JOYPAD_UP)) + if (ret & (1 << RETRO_DEVICE_ID_JOYPAD_UP)) in_keystate[i] |= (1 << DKEY_UP); // > Pad-Right if (ret & (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT))