mirror of
https://github.com/ekeeke/Genesis-Plus-GX.git
synced 2024-12-27 11:41:48 +01:00
[Core/VDP] disabled sprite rendering during border when borders are not disabled (fixes wrong sprite collision detection in Racer homebrew game when borders are disabled)
This commit is contained in:
parent
d819b4bccd
commit
373b4ff214
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 3.2 MiB After Width: | Height: | Size: 3.2 MiB |
Binary file not shown.
Before Width: | Height: | Size: 3.3 MiB After Width: | Height: | Size: 3.3 MiB |
@ -1285,17 +1285,22 @@ void system_frame_sms(int do_skip)
|
|||||||
/* update VCounter */
|
/* update VCounter */
|
||||||
v_counter = line;
|
v_counter = line;
|
||||||
|
|
||||||
/* Master System & Game Gear VDP specific */
|
|
||||||
if ((system_hw < SYSTEM_MD) && (line > (lines_per_frame - 16)))
|
|
||||||
{
|
|
||||||
/* Sprites are still processed during top border */
|
|
||||||
render_obj((line - lines_per_frame) & 1);
|
|
||||||
parse_satb(line - lines_per_frame);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* render overscan */
|
/* render overscan */
|
||||||
if ((line < end) || (line >= start))
|
if ((line < end) || (line >= start))
|
||||||
{
|
{
|
||||||
|
/* Master System & Game Gear VDP specific */
|
||||||
|
if ((system_hw < SYSTEM_MD) && (line > (lines_per_frame - 16)))
|
||||||
|
{
|
||||||
|
/* Sprites are still processed during top border */
|
||||||
|
if (reg[1] & 0x40)
|
||||||
|
{
|
||||||
|
render_obj((line - lines_per_frame) & 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Sprites pre-processing occurs even when display is disabled */
|
||||||
|
parse_satb(line - lines_per_frame);
|
||||||
|
}
|
||||||
|
|
||||||
blank_line(line, -bitmap.viewport.x, bitmap.viewport.w + 2*bitmap.viewport.x);
|
blank_line(line, -bitmap.viewport.x, bitmap.viewport.w + 2*bitmap.viewport.x);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1316,6 +1321,16 @@ void system_frame_sms(int do_skip)
|
|||||||
/* last line of overscan */
|
/* last line of overscan */
|
||||||
if (bitmap.viewport.y > 0)
|
if (bitmap.viewport.y > 0)
|
||||||
{
|
{
|
||||||
|
/* Master System & Game Gear VDP specific */
|
||||||
|
if (system_hw < SYSTEM_MD)
|
||||||
|
{
|
||||||
|
/* Sprites are still processed during top border */
|
||||||
|
if (reg[1] & 0x40)
|
||||||
|
{
|
||||||
|
render_obj(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
blank_line(line, -bitmap.viewport.x, bitmap.viewport.w + 2*bitmap.viewport.x);
|
blank_line(line, -bitmap.viewport.x, bitmap.viewport.w + 2*bitmap.viewport.x);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1366,12 +1381,6 @@ void system_frame_sms(int do_skip)
|
|||||||
/* Master System & Game Gear VDP specific */
|
/* Master System & Game Gear VDP specific */
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Sprites are still processed during top border */
|
|
||||||
if (reg[1] & 0x40)
|
|
||||||
{
|
|
||||||
render_obj(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Sprites pre-processing occurs even when display is disabled */
|
/* Sprites pre-processing occurs even when display is disabled */
|
||||||
parse_satb(-1);
|
parse_satb(-1);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user