summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
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
commit3fd317125b08c7b13422a7ae31c413e4332fccc5 (patch)
treec39f46a5e6f3593b480353ea4c718a190bfe0d79
parentf08a04d758ed3428b1a8fa89ce98e2467f669323 (diff)
macrossp: Revert the zoomed scroll offset to how it was for the time-being.
-rw-r--r--src/mame/video/macrossp.c29
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,