diff options
author | Paul Priest <ppriest@gmail.com> | 2015-08-02 11:49:34 +0100 |
---|---|---|
committer | Paul Priest <ppriest@gmail.com> | 2015-08-02 11:50:55 +0100 |
commit | 3fd317125b08c7b13422a7ae31c413e4332fccc5 (patch) | |
tree | c39f46a5e6f3593b480353ea4c718a190bfe0d79 | |
parent | f08a04d758ed3428b1a8fa89ce98e2467f669323 (diff) |
macrossp: Revert the zoomed scroll offset to how it was for the time-being.
-rw-r--r-- | src/mame/video/macrossp.c | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/src/mame/video/macrossp.c b/src/mame/video/macrossp.c index 13f30ac135e..7c7d8492eb8 100644 --- a/src/mame/video/macrossp.c +++ b/src/mame/video/macrossp.c @@ -5,7 +5,7 @@ #include "emu.h" #include "includes/macrossp.h" -//#define DEBUG_KEYS 1 +#define DEBUG_KEYS 0 /* Sprite list is drawn backwards, and priorities with backgrounds are not transitive @@ -32,6 +32,9 @@ Interesting test cases: 3) Second level, as doors open to revels tracks/blue background for boss 4) Boss should go under bridge on level 4 when he first appears +Not bugs: +* It looks like the level 2 boss has wrong priorities versus the background (tiles weaving in and out), but that's just because of the scrolling problems on zoomed tilemaps + */ /*** SCR A LAYER ***/ @@ -332,13 +335,10 @@ void macrossp_state::draw_layer( screen_device &screen, bitmap_rgb32 &bitmap, co if ((vr[2] & 0xf0000000) == 0xe0000000) /* zoom enable (guess, surely wrong) */ { - int startx, starty, incy, incx; + int startx=0, starty=0, incy, incx; -// The global scroll registers play a part here - since they must be used to part the doors on level 2 -// startx = ((vr[0] & 0x000003ff) << 16 ); -// starty = ((vr[0] & 0x03ff0000) >> 0); - startx = (vr[1] & 0x0000ffff) << 16; - starty = (vr[1] & 0xffff0000) >> 0; + startx += (vr[1] & 0x0000ffff) << 16; + starty += (vr[1] & 0xffff0000) >> 0; incy = (vr[2] & 0x00ff0000) >> 6; if (line&1) @@ -347,14 +347,17 @@ void macrossp_state::draw_layer( screen_device &screen, bitmap_rgb32 &bitmap, co incx = (lr[line/2] & 0xffff0000)>>16; incx <<= 10; - + /* WRONG! */ /* scroll register contain position relative to the center of the screen, so adjust */ - /* Zoom Scroll registers set to this when at 1:1 with non-zoom on homescreen */ - startx -= 0x120 * incx; - starty -= 0x80 * incy; -/* startx -= (368/2) * incx; - starty -= (240/2) * incy;*/ + startx -= (368/2) * incx; + starty -= (240/2) * incy; + + /* The global scroll registers play a part here - since they must be used to part the doors on level 2 */ +#if 0 + startx += ((vr[0] & 0x000003ff) << 16 ); + starty += ((vr[0] & 0x03ff0000) >> 0); +#endif tm->draw_roz(screen, bitmap, cliprect, startx,starty,incx,0,0,incy, |