mirror of
https://github.com/holub/mame
synced 2025-07-05 01:48:29 +03:00
Sky Army: cleaned up the driver, also removed the GAME_WRONG_COLORS flag since the colors actually seems correct according to the references. [Angelo Salese]
This commit is contained in:
parent
449143fec6
commit
2ba1316646
@ -31,31 +31,22 @@ static tilemap* skyarmy_tilemap;
|
|||||||
|
|
||||||
static TILE_GET_INFO( get_skyarmy_tile_info )
|
static TILE_GET_INFO( get_skyarmy_tile_info )
|
||||||
{
|
{
|
||||||
int code = skyarmy_videoram[tile_index];
|
int code = skyarmy_videoram[tile_index];
|
||||||
int attr = skyarmy_colorram[tile_index];
|
int attr = BITSWAP8(skyarmy_colorram[tile_index], 7, 6, 5, 4, 3, 0, 1, 2) & 7;
|
||||||
|
|
||||||
/* bit 0 <-> bit 2 ????? */
|
|
||||||
switch(attr)
|
|
||||||
{
|
|
||||||
case 1: attr=4; break;
|
|
||||||
case 3: attr=6; break;
|
|
||||||
case 4: attr=1; break;
|
|
||||||
case 6: attr=3; break;
|
|
||||||
}
|
|
||||||
|
|
||||||
SET_TILE_INFO( 0, code, attr, 0);
|
SET_TILE_INFO( 0, code, attr, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static WRITE8_HANDLER( skyarmy_videoram_w )
|
static WRITE8_HANDLER( skyarmy_videoram_w )
|
||||||
{
|
{
|
||||||
skyarmy_videoram[offset] = data;
|
skyarmy_videoram[offset] = data;
|
||||||
tilemap_mark_tile_dirty(skyarmy_tilemap,offset);
|
tilemap_mark_tile_dirty(skyarmy_tilemap,offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
static WRITE8_HANDLER( skyarmy_colorram_w )
|
static WRITE8_HANDLER( skyarmy_colorram_w )
|
||||||
{
|
{
|
||||||
skyarmy_colorram[offset] = data;
|
skyarmy_colorram[offset] = data;
|
||||||
tilemap_mark_tile_dirty(skyarmy_tilemap,offset);
|
tilemap_mark_tile_dirty(skyarmy_tilemap,offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
static PALETTE_INIT( skyarmy )
|
static PALETTE_INIT( skyarmy )
|
||||||
@ -88,43 +79,38 @@ static PALETTE_INIT( skyarmy )
|
|||||||
|
|
||||||
static VIDEO_START( skyarmy )
|
static VIDEO_START( skyarmy )
|
||||||
{
|
{
|
||||||
skyarmy_tilemap = tilemap_create(machine, get_skyarmy_tile_info,tilemap_scan_rows,8,8,32,32);
|
skyarmy_tilemap = tilemap_create(machine, get_skyarmy_tile_info,tilemap_scan_rows,8,8,32,32);
|
||||||
tilemap_set_scroll_cols(skyarmy_tilemap,32);
|
tilemap_set_scroll_cols(skyarmy_tilemap,32);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static VIDEO_UPDATE( skyarmy )
|
static VIDEO_UPDATE( skyarmy )
|
||||||
{
|
{
|
||||||
UINT8 *spriteram = screen->machine->generic.spriteram.u8;
|
UINT8 *spriteram = screen->machine->generic.spriteram.u8;
|
||||||
int sx, sy, flipx, flipy, offs,pal;
|
int sx, sy, flipx, flipy, offs,pal;
|
||||||
int i;
|
int i;
|
||||||
for(i=0;i<0x20;i++)tilemap_set_scrolly( skyarmy_tilemap,i,skyarmy_scrollram[i]);
|
|
||||||
|
|
||||||
tilemap_draw(bitmap,cliprect,skyarmy_tilemap,0,0);
|
for(i=0;i<0x20;i++)
|
||||||
|
tilemap_set_scrolly( skyarmy_tilemap,i,skyarmy_scrollram[i]);
|
||||||
|
|
||||||
|
tilemap_draw(bitmap,cliprect,skyarmy_tilemap,0,0);
|
||||||
|
|
||||||
for (offs = 0 ; offs < 0x40; offs+=4)
|
for (offs = 0 ; offs < 0x40; offs+=4)
|
||||||
{
|
{
|
||||||
|
pal = BITSWAP8(spriteram[offs+2], 7, 6, 5, 4, 3, 0, 1, 2) & 7;
|
||||||
|
|
||||||
pal=spriteram[offs+2]&0x7;
|
|
||||||
|
|
||||||
switch(pal)
|
|
||||||
{
|
|
||||||
case 1: pal=4; break;
|
|
||||||
case 2: pal=2; break;
|
|
||||||
case 3: pal=6; break;
|
|
||||||
case 4: pal=1; break;
|
|
||||||
case 6: pal=3; break;
|
|
||||||
}
|
|
||||||
sx = spriteram[offs+3];
|
sx = spriteram[offs+3];
|
||||||
sy = 242-spriteram[offs];
|
sy = 242-spriteram[offs];
|
||||||
flipy = (spriteram[offs+1]&0x80)>>7;
|
flipy = (spriteram[offs+1]&0x80)>>7;
|
||||||
flipx = (spriteram[offs+1]&0x40)>>6;
|
flipx = (spriteram[offs+1]&0x40)>>6;
|
||||||
|
|
||||||
drawgfx_transpen(bitmap,cliprect,screen->machine->gfx[1],
|
drawgfx_transpen(bitmap,cliprect,screen->machine->gfx[1],
|
||||||
spriteram[offs+1]&0x3f,
|
spriteram[offs+1]&0x3f,
|
||||||
pal,
|
pal,
|
||||||
flipx,flipy,
|
flipx,flipy,
|
||||||
sx,sy,0);
|
sx,sy,0);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -132,13 +118,13 @@ static int skyarmy_nmi=0;
|
|||||||
|
|
||||||
static INTERRUPT_GEN( skyarmy_nmi_source )
|
static INTERRUPT_GEN( skyarmy_nmi_source )
|
||||||
{
|
{
|
||||||
if(skyarmy_nmi) cpu_set_input_line(device,INPUT_LINE_NMI, PULSE_LINE) ;
|
if(skyarmy_nmi) cpu_set_input_line(device,INPUT_LINE_NMI, PULSE_LINE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static WRITE8_HANDLER( nmi_enable_w )
|
static WRITE8_HANDLER( nmi_enable_w )
|
||||||
{
|
{
|
||||||
skyarmy_nmi=data&1;
|
skyarmy_nmi=data&1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -209,30 +195,30 @@ INPUT_PORTS_END
|
|||||||
static const gfx_layout charlayout =
|
static const gfx_layout charlayout =
|
||||||
{
|
{
|
||||||
8,8,
|
8,8,
|
||||||
256,
|
256,
|
||||||
2,
|
2,
|
||||||
{ 0, 256*8*8 },
|
{ 0, 256*8*8 },
|
||||||
{ 0, 1, 2, 3, 4, 5, 6, 7 },
|
{ 0, 1, 2, 3, 4, 5, 6, 7 },
|
||||||
{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
|
{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
|
||||||
8*8
|
8*8
|
||||||
};
|
};
|
||||||
|
|
||||||
static const gfx_layout spritelayout =
|
static const gfx_layout spritelayout =
|
||||||
{
|
{
|
||||||
16,16,
|
16,16,
|
||||||
32*2,
|
32*2,
|
||||||
2,
|
2,
|
||||||
{ 0, 256*8*8 },
|
{ 0, 256*8*8 },
|
||||||
{ 0, 1, 2, 3, 4, 5, 6, 7,
|
{ 0, 1, 2, 3, 4, 5, 6, 7,
|
||||||
8*8+0, 8*8+1, 8*8+2, 8*8+3, 8*8+4, 8*8+5, 8*8+6, 8*8+7 },
|
8*8+0, 8*8+1, 8*8+2, 8*8+3, 8*8+4, 8*8+5, 8*8+6, 8*8+7 },
|
||||||
{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
|
{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
|
||||||
16*8,17*8,18*8,19*8,20*8,21*8,22*8,23*8 },
|
16*8,17*8,18*8,19*8,20*8,21*8,22*8,23*8 },
|
||||||
32*8
|
32*8
|
||||||
};
|
};
|
||||||
|
|
||||||
static GFXDECODE_START( skyarmy )
|
static GFXDECODE_START( skyarmy )
|
||||||
GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 32 )
|
GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 8 )
|
||||||
GFXDECODE_ENTRY( "gfx2", 0, spritelayout, 0, 32 )
|
GFXDECODE_ENTRY( "gfx2", 0, spritelayout, 0, 8 )
|
||||||
GFXDECODE_END
|
GFXDECODE_END
|
||||||
|
|
||||||
static MACHINE_DRIVER_START( skyarmy )
|
static MACHINE_DRIVER_START( skyarmy )
|
||||||
@ -283,5 +269,5 @@ ROM_START( skyarmy )
|
|||||||
ROM_LOAD( "a6.bin", 0x0000, 0x0020, CRC(c721220b) SHA1(61b3320fb616c0600d56840cb6438616c7e0c6eb) )
|
ROM_LOAD( "a6.bin", 0x0000, 0x0020, CRC(c721220b) SHA1(61b3320fb616c0600d56840cb6438616c7e0c6eb) )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
GAME( 1982, skyarmy, 0, skyarmy, skyarmy, 0, ROT90, "Shoei", "Sky Army", GAME_WRONG_COLORS )
|
GAME( 1982, skyarmy, 0, skyarmy, skyarmy, 0, ROT90, "Shoei", "Sky Army", 0 )
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user