fixed VDP width change during active display (Golden Axe 3 intro)

This commit is contained in:
ekeeke31 2010-11-01 18:03:41 +00:00
parent 032bd764ab
commit 63617bf5a1
2 changed files with 6 additions and 20 deletions

View File

@ -447,6 +447,7 @@ void system_frame (int do_skip)
bitmap.viewport.oh = bitmap.viewport.h; bitmap.viewport.oh = bitmap.viewport.h;
bitmap.viewport.changed |= 1; bitmap.viewport.changed |= 1;
} }
if (bitmap.viewport.w != bitmap.viewport.ow) if (bitmap.viewport.w != bitmap.viewport.ow)
{ {
bitmap.viewport.ow = bitmap.viewport.w; bitmap.viewport.ow = bitmap.viewport.w;

View File

@ -972,33 +972,18 @@ static void reg_w(unsigned int r, unsigned int d)
/* Update clipping */ /* Update clipping */
window_clip(); window_clip();
/* Update viewport */ /* display width changed during HBLANK (Bugs Bunny Double Trouble) */
if (status & 8) if (!(status & 8))
{ {
/* changes should be applied on next frame */
bitmap.viewport.changed |= 2;
}
else
{
/* Update active display */
if (d & 1)
{
bitmap.viewport.w = 320;
bitmap.viewport.x = (config.overscan & 2) ? 16 : 0;
}
else
{
bitmap.viewport.w = 256;
bitmap.viewport.x = (config.overscan & 2) ? 12 : 0;
}
/* display width changed during HBLANK (Bugs Bunny Double Trouble) */
if (mcycles_68k <= (mcycles_vdp + 860)) if (mcycles_68k <= (mcycles_vdp + 860))
{ {
/* redraw entire line */ /* redraw entire line */
render_line(v_counter); render_line(v_counter);
} }
} }
/* changes should be applied on next frame */
bitmap.viewport.changed |= 2;
} }
/* Interlaced modes */ /* Interlaced modes */