X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=frontend%2Fmenu.c;h=f3d4d6361f132072275e00c969df70b6843b9a54;hp=ec3c5a221fb5941f467b4d158d15e24ddca2bcd2;hb=e4c83ca67cf7ad13db3995909605ce01ff915824;hpb=dde7da71ec95f2d83a9427bd381448438aa9201c diff --git a/frontend/menu.c b/frontend/menu.c index ec3c5a22..f3d4d636 100644 --- a/frontend/menu.c +++ b/frontend/menu.c @@ -34,7 +34,7 @@ #include "../libpcsxcore/cheat.h" #include "../libpcsxcore/psemu_plugin_defs.h" #include "../libpcsxcore/new_dynarec/new_dynarec.h" -#include "../plugins/dfinput/main.h" +#include "../plugins/dfinput/externals.h" #include "../plugins/gpulib/cspace.h" #include "revision.h" @@ -624,12 +624,18 @@ static void draw_savestate_bg(int slot) x = gpu->ulControl[5] & 0x3ff; y = (gpu->ulControl[5] >> 10) & 0x1ff; - s = (u16 *)gpu->psxVRam + y * 1024 + x; w = psx_widths[(gpu->ulStatus >> 16) & 7]; tmp = gpu->ulControl[7]; h = ((tmp >> 10) & 0x3ff) - (tmp & 0x3ff); if (gpu->ulStatus & 0x80000) // doubleheight h *= 2; + if (h <= 0 || h > 512) + goto out; + if (y > 512 - 64) + y = 0; + if (y + h > 512) + h = 512 - y; + s = (u16 *)gpu->psxVRam + y * 1024 + x; x = max(0, g_menuscreen_w - w) & ~3; y = max(0, g_menuscreen_h / 2 - h / 2);