summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/aerofgt.c2
-rw-r--r--src/mame/video/aerofgt.c61
2 files changed, 23 insertions, 40 deletions
diff --git a/src/mame/drivers/aerofgt.c b/src/mame/drivers/aerofgt.c
index 7bf6cf50293..50da02dacd7 100644
--- a/src/mame/drivers/aerofgt.c
+++ b/src/mame/drivers/aerofgt.c
@@ -349,7 +349,7 @@ static ADDRESS_MAP_START( aerfboot_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x0fe400, 0x0fe401) AM_WRITENOP
AM_RANGE(0x0fe402, 0x0fe403) AM_WRITENOP
AM_RANGE(0x0ff000, 0x0fffff) AM_RAM AM_BASE(&aerofgt_rasterram) /* used only for the scroll registers */
- AM_RANGE(0x10b800, 0x10bfff) AM_RAM AM_BASE(&aerofgt_spriteram3) AM_SIZE(&aerofgt_spriteram3_size)
+ AM_RANGE(0x108000, 0x10bfff) AM_RAM AM_BASE(&aerofgt_spriteram3) AM_SIZE(&aerofgt_spriteram3_size)
ADDRESS_MAP_END
static ADDRESS_MAP_START( wbbc97_map, ADDRESS_SPACE_PROGRAM, 16 )
diff --git a/src/mame/video/aerofgt.c b/src/mame/video/aerofgt.c
index 01e066de2b9..007685e6106 100644
--- a/src/mame/video/aerofgt.c
+++ b/src/mame/video/aerofgt.c
@@ -479,15 +479,15 @@ static void pspikesb_draw_sprites(running_machine *machine, bitmap_t *bitmap,con
static void aerfboot_draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectangle *cliprect)
{
int attr_start;//,base,first;
-
+// int notdraw = 0;
// base = chip * 0x0200;
// first = 4 * aerofgt_spriteram3[0x1fe + base];
- for (attr_start = aerofgt_spriteram3_size/2 - 4;attr_start >= 0;attr_start -= 4)
+ for (attr_start = aerofgt_spriteram3_size/2 - 4 /* - 16 */;attr_start >= 0;attr_start -= 4)
{
int code;
- int ox,oy,x,y,xsize,ysize,zoomx,zoomy,flipx,flipy,color,pri;
+ int ox,oy,sx,sy,zoomx,zoomy,flipx,flipy,color,pri;
// some other drivers still use this wrong table, they have to be upgraded
// int zoomtable[16] = { 0,7,14,20,25,30,34,38,42,46,49,52,54,57,59,61 };
@@ -497,52 +497,35 @@ static void aerfboot_draw_sprites(running_machine *machine, bitmap_t *bitmap,con
flipy = aerofgt_spriteram3[attr_start + 2] & 0x8000;
color = aerofgt_spriteram3[attr_start + 2] & 0x000f;
-// xsize = (aerofgt_spriteram3[attr_start + 2] & 0x0700) >> 8;
- xsize = (aerofgt_spriteram3[attr_start + 1] & 0x0e00) >> 9;
zoomx = (aerofgt_spriteram3[attr_start + 1] & 0xf000) >> 12;
-// ysize = (aerofgt_spriteram3[attr_start + 2] & 0x7000) >> 12;
- ysize = (aerofgt_spriteram3[attr_start + 0] & 0x0e00) >> 9;
zoomy = (aerofgt_spriteram3[attr_start + 0] & 0xf000) >> 12;
-
pri = aerofgt_spriteram3[attr_start + 2] & 0x0010;
- code = aerofgt_spriteram3[attr_start + 3] & 0x3fff;
+// code = aerofgt_spriteram3[attr_start + 3] & 0x3fff;
+ code = aerofgt_spriteram3[attr_start + 3] & 0x1fff;
+// if ((!(aerofgt_spriteram3[attr_start + 0])) & (!(aerofgt_spriteram3[attr_start + 1])) &
+// (!(aerofgt_spriteram3[attr_start + 2])) & (!(aerofgt_spriteram3[attr_start + 3]))) notdraw = 1;
-// aerofgt has this adjustment, but doing it here would break turbo force title screen
-// ox += (xsize*zoomx+2)/4;
-// oy += (ysize*zoomy+2)/4;
+// if (notdraw) continue;
- zoomx = 32 - zoomx;
- zoomy = 32 - zoomy;
+ if (!(aerofgt_spriteram3[attr_start + 2] & 0x0040)) code |= 0x2000;
- for (y = 0;y <= ysize;y++)
- {
- int sx,sy;
+ zoomx = 32 + zoomx;
+ zoomy = 32 + zoomy;
- if (flipy) sy = ((oy + zoomy * (ysize - y)/2 + 16) & 0x1ff) - 16;
- else sy = ((oy + zoomy * y / 2 + 16) & 0x1ff) - 16;
-
- for (x = 0;x <= xsize;x++)
- {
- if (flipx) sx = ((ox + zoomx * (xsize - x) / 2 + 16) & 0x1ff) - 16;
- else sx = ((ox + zoomx * x / 2 + 16) & 0x1ff) - 16;
+ sy = ((oy + 16) & 0x1ff) - 16;
+
+ sx = ((ox + 16) & 0x1ff) - 16;
- pdrawgfxzoom(bitmap,machine->gfx[sprite_gfx + (code >= 0x1000 ? 0 : 1)],
- code,
- color,
- flipx,flipy,
- sx,sy,
- cliprect,TRANSPARENCY_PEN,15,
- zoomx << 11,zoomy << 11,
- pri ? 0 : 0x2);
- code++;
- }
+ pdrawgfxzoom(bitmap,machine->gfx[sprite_gfx + (code >= 0x1000 ? 0 : 1)],
+ code,
+ color,
+ flipx,flipy,
+ sx,sy,
+ cliprect,TRANSPARENCY_PEN,15,
+ zoomx << 11,zoomy << 11,
+ pri ? 0 : 0x2);
-// if (xsize == 2) code += 1;
-// if (xsize == 4) code += 3;
-// if (xsize == 5) code += 2;
-// if (xsize == 6) code += 1;
- }
}
}