diff --git a/builds/genesis_plus_gx_libretro.dll b/builds/genesis_plus_gx_libretro.dll index 1f14af46..64562de7 100644 Binary files a/builds/genesis_plus_gx_libretro.dll and b/builds/genesis_plus_gx_libretro.dll differ diff --git a/builds/genplus_cube.dol b/builds/genplus_cube.dol index 845c73a1..f3a2c153 100644 Binary files a/builds/genplus_cube.dol and b/builds/genplus_cube.dol differ diff --git a/builds/genplus_wii.dol b/builds/genplus_wii.dol index be09e682..1da3d399 100644 Binary files a/builds/genplus_wii.dol and b/builds/genplus_wii.dol differ diff --git a/core/system.c b/core/system.c index 5c3f6e65..d15582eb 100644 --- a/core/system.c +++ b/core/system.c @@ -1366,7 +1366,7 @@ void system_frame_sms(int do_skip) /* Master System & Game Gear VDP specific */ else { - /* Sprites are still processed during vertical borders */ + /* Sprites are still processed during top border */ if (reg[1] & 0x40) { render_obj(1); diff --git a/core/vdp_render.c b/core/vdp_render.c index 4fa05c31..485949ac 100644 --- a/core/vdp_render.c +++ b/core/vdp_render.c @@ -3731,8 +3731,8 @@ void parse_satb_m4(int line) break; } - /* Wrap Y coordinate for sprites > 256-16 */ - if (ypos > 240) + /* Wrap Y coordinate (NB: this is likely not 100% accurate and needs to be verified on real hardware) */ + if (ypos > (bitmap.viewport.h + 16)) { ypos -= 256; }