mirror of
https://github.com/holub/mame
synced 2025-05-28 16:43:04 +03:00
undrfire.c, groundfx.c: improve documentation (TC0620SCC is the 6bpp tilemap chip) (nw)
This commit is contained in:
parent
3480032ae5
commit
cc723e85ec
@ -48,8 +48,8 @@
|
|||||||
|
|
||||||
Ground Effects combines the sprite system used in Taito Z games with
|
Ground Effects combines the sprite system used in Taito Z games with
|
||||||
the TC0480SCP tilemap chip plus some features from the Taito F3 system.
|
the TC0480SCP tilemap chip plus some features from the Taito F3 system.
|
||||||
It has an extra tilemap chip which is a dead ringer for the TC0100SCN
|
It has an extra TC0620SCC tilemap chip which is a 6bpp version of the
|
||||||
(check the inits), like Under Fire.
|
TC0100SCN (check the inits), like Under Fire.
|
||||||
|
|
||||||
Ground Effects is effectively a 30Hz game - though the vblank interrupts
|
Ground Effects is effectively a 30Hz game - though the vblank interrupts
|
||||||
still come in at 60Hz, the game uses a hardware frame counter to limit
|
still come in at 60Hz, the game uses a hardware frame counter to limit
|
||||||
@ -190,7 +190,7 @@ static ADDRESS_MAP_START( groundfx_map, AS_PROGRAM, 32, groundfx_state )
|
|||||||
AM_RANGE(0x700000, 0x7007ff) AM_RAM AM_SHARE("snd_shared")
|
AM_RANGE(0x700000, 0x7007ff) AM_RAM AM_SHARE("snd_shared")
|
||||||
AM_RANGE(0x800000, 0x80ffff) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, long_r, long_w) /* tilemaps */
|
AM_RANGE(0x800000, 0x80ffff) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, long_r, long_w) /* tilemaps */
|
||||||
AM_RANGE(0x830000, 0x83002f) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, ctrl_long_r, ctrl_long_w) // debugging
|
AM_RANGE(0x830000, 0x83002f) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, ctrl_long_r, ctrl_long_w) // debugging
|
||||||
AM_RANGE(0x900000, 0x90ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, long_r, long_w) /* piv tilemaps */
|
AM_RANGE(0x900000, 0x90ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, long_r, long_w) /* 6bpp tilemaps */
|
||||||
AM_RANGE(0x920000, 0x92000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_long_r, ctrl_long_w)
|
AM_RANGE(0x920000, 0x92000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_long_r, ctrl_long_w)
|
||||||
AM_RANGE(0xa00000, 0xa0ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
|
AM_RANGE(0xa00000, 0xa0ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
|
||||||
AM_RANGE(0xb00000, 0xb003ff) AM_RAM // ?? single bytes, blending ??
|
AM_RANGE(0xb00000, 0xb003ff) AM_RAM // ?? single bytes, blending ??
|
||||||
@ -279,7 +279,7 @@ static const gfx_layout charlayout =
|
|||||||
128*8 /* every sprite takes 128 consecutive bytes */
|
128*8 /* every sprite takes 128 consecutive bytes */
|
||||||
};
|
};
|
||||||
|
|
||||||
static const gfx_layout pivlayout =
|
static const gfx_layout scclayout =
|
||||||
{
|
{
|
||||||
8,8, /* 8*8 characters */
|
8,8, /* 8*8 characters */
|
||||||
RGN_FRAC(1,2),
|
RGN_FRAC(1,2),
|
||||||
@ -293,7 +293,7 @@ static const gfx_layout pivlayout =
|
|||||||
static GFXDECODE_START( groundfx )
|
static GFXDECODE_START( groundfx )
|
||||||
GFXDECODE_ENTRY( "gfx2", 0x0, tile16x16_layout, 4096, 512 )
|
GFXDECODE_ENTRY( "gfx2", 0x0, tile16x16_layout, 4096, 512 )
|
||||||
GFXDECODE_ENTRY( "gfx1", 0x0, charlayout, 0, 512 )
|
GFXDECODE_ENTRY( "gfx1", 0x0, charlayout, 0, 512 )
|
||||||
GFXDECODE_ENTRY( "gfx3", 0x0, pivlayout, 0, 512 )
|
GFXDECODE_ENTRY( "gfx3", 0x0, scclayout, 0, 512 )
|
||||||
GFXDECODE_END
|
GFXDECODE_END
|
||||||
|
|
||||||
|
|
||||||
@ -375,7 +375,7 @@ ROM_START( groundfx )
|
|||||||
ROM_LOAD32_BYTE( "d51-07.51", 0x000003, 0x200000, CRC(24b2f97d) SHA1(6980e67b435d189ce897c0301e0411763410ab47) )
|
ROM_LOAD32_BYTE( "d51-07.51", 0x000003, 0x200000, CRC(24b2f97d) SHA1(6980e67b435d189ce897c0301e0411763410ab47) )
|
||||||
|
|
||||||
ROM_REGION( 0x400000, "gfx3", 0 )
|
ROM_REGION( 0x400000, "gfx3", 0 )
|
||||||
ROM_LOAD16_BYTE( "d51-10.95", 0x000000, 0x100000, CRC(d5910604) SHA1(8efe13884cfdef208394ddfe19f43eb1b9f78ff3) ) /* PIV 8x8 tiles, 6bpp */
|
ROM_LOAD16_BYTE( "d51-10.95", 0x000000, 0x100000, CRC(d5910604) SHA1(8efe13884cfdef208394ddfe19f43eb1b9f78ff3) ) /* SCC 8x8 tiles, 6bpp */
|
||||||
ROM_LOAD16_BYTE( "d51-11.96", 0x000001, 0x100000, CRC(fee5f5c6) SHA1(1be88747f9c71c348dd61a8f0040007df3a3e6a6) )
|
ROM_LOAD16_BYTE( "d51-11.96", 0x000001, 0x100000, CRC(fee5f5c6) SHA1(1be88747f9c71c348dd61a8f0040007df3a3e6a6) )
|
||||||
ROM_LOAD ( "d51-12.97", 0x300000, 0x100000, CRC(d630287b) SHA1(2fa09e1821b7280d193ca9a2a270759c3c3189d1) )
|
ROM_LOAD ( "d51-12.97", 0x300000, 0x100000, CRC(d630287b) SHA1(2fa09e1821b7280d193ca9a2a270759c3c3189d1) )
|
||||||
ROM_FILL ( 0x200000, 0x100000, 0 )
|
ROM_FILL ( 0x200000, 0x100000, 0 )
|
||||||
@ -418,7 +418,7 @@ DRIVER_INIT_MEMBER(groundfx_state,groundfx)
|
|||||||
/* Speedup handlers */
|
/* Speedup handlers */
|
||||||
m_maincpu->space(AS_PROGRAM).install_read_handler(0x20b574, 0x20b577, read32_delegate(FUNC(groundfx_state::irq_speedup_r_groundfx),this));
|
m_maincpu->space(AS_PROGRAM).install_read_handler(0x20b574, 0x20b577, read32_delegate(FUNC(groundfx_state::irq_speedup_r_groundfx),this));
|
||||||
|
|
||||||
/* make piv tile GFX format suitable for gfxdecode */
|
/* make SCC tile GFX format suitable for gfxdecode */
|
||||||
offset = size/2;
|
offset = size/2;
|
||||||
for (i = size/2+size/4; i<size; i++)
|
for (i = size/2+size/4; i<size; i++)
|
||||||
{
|
{
|
||||||
|
@ -7,12 +7,12 @@
|
|||||||
|
|
||||||
Board Info (Underfire):
|
Board Info (Underfire):
|
||||||
|
|
||||||
TC0470LIN : ?
|
TC0470LIN : object line buffer?
|
||||||
TC0480SCP : known tilemap chip
|
TC0480SCP : known tilemap chip
|
||||||
TC0510NIO : known input chip
|
TC0510NIO : known input chip
|
||||||
TC0570SPC : must be the object chip (next to spritemap and OBJ roms)
|
TC0570SPC : must be the object chip (next to spritemap and OBJ roms)
|
||||||
TC0590PIV : Piv tilemaps
|
TC0590PIV : object related???
|
||||||
TC0620SCC : lightgun ??? pivot port ???
|
TC0620SCC : tilemap chip (6bpp version of TC0100SCN)
|
||||||
TC0650FDA : palette ? (Slapshot and F3 games also have one)
|
TC0650FDA : palette ? (Slapshot and F3 games also have one)
|
||||||
|
|
||||||
M43E0278A
|
M43E0278A
|
||||||
@ -46,9 +46,8 @@
|
|||||||
|
|
||||||
Under Fire combines the sprite system used in Taito Z games with
|
Under Fire combines the sprite system used in Taito Z games with
|
||||||
the TC0480SCP tilemap chip plus some features from the Taito F3 system.
|
the TC0480SCP tilemap chip plus some features from the Taito F3 system.
|
||||||
It has an extra tilemap chip which is a dead ringer for the TC0100SCN
|
It has an extra TC0620SCC tilemap chip which is a 6bpp version of the
|
||||||
(check the inits). Why did Taito give it a different name in this
|
TC0100SCN (check the inits).
|
||||||
incarnation?
|
|
||||||
|
|
||||||
|
|
||||||
Game misbehaviours
|
Game misbehaviours
|
||||||
@ -452,7 +451,7 @@ static ADDRESS_MAP_START( undrfire_map, AS_PROGRAM, 32, undrfire_state )
|
|||||||
AM_RANGE(0x700000, 0x7007ff) AM_RAM AM_SHARE("snd_shared")
|
AM_RANGE(0x700000, 0x7007ff) AM_RAM AM_SHARE("snd_shared")
|
||||||
AM_RANGE(0x800000, 0x80ffff) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, long_r, long_w) /* tilemaps */
|
AM_RANGE(0x800000, 0x80ffff) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, long_r, long_w) /* tilemaps */
|
||||||
AM_RANGE(0x830000, 0x83002f) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, ctrl_long_r, ctrl_long_w)
|
AM_RANGE(0x830000, 0x83002f) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, ctrl_long_r, ctrl_long_w)
|
||||||
AM_RANGE(0x900000, 0x90ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, long_r, long_w) /* piv tilemaps */
|
AM_RANGE(0x900000, 0x90ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, long_r, long_w) /* 6bpp tilemaps */
|
||||||
AM_RANGE(0x920000, 0x92000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_long_r, ctrl_long_w)
|
AM_RANGE(0x920000, 0x92000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_long_r, ctrl_long_w)
|
||||||
AM_RANGE(0xa00000, 0xa0ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
|
AM_RANGE(0xa00000, 0xa0ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
|
||||||
AM_RANGE(0xb00000, 0xb003ff) AM_RAM /* single bytes, blending ??? */
|
AM_RANGE(0xb00000, 0xb003ff) AM_RAM /* single bytes, blending ??? */
|
||||||
@ -471,7 +470,7 @@ static ADDRESS_MAP_START( cbombers_cpua_map, AS_PROGRAM, 32, undrfire_state )
|
|||||||
AM_RANGE(0x700000, 0x7007ff) AM_RAM AM_SHARE("snd_shared")
|
AM_RANGE(0x700000, 0x7007ff) AM_RAM AM_SHARE("snd_shared")
|
||||||
AM_RANGE(0x800000, 0x80ffff) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, long_r, long_w) /* tilemaps */
|
AM_RANGE(0x800000, 0x80ffff) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, long_r, long_w) /* tilemaps */
|
||||||
AM_RANGE(0x830000, 0x83002f) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, ctrl_long_r, ctrl_long_w)
|
AM_RANGE(0x830000, 0x83002f) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, ctrl_long_r, ctrl_long_w)
|
||||||
AM_RANGE(0x900000, 0x90ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, long_r, long_w) /* piv tilemaps */
|
AM_RANGE(0x900000, 0x90ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, long_r, long_w) /* 6bpp tilemaps */
|
||||||
AM_RANGE(0x920000, 0x92000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_long_r, ctrl_long_w)
|
AM_RANGE(0x920000, 0x92000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_long_r, ctrl_long_w)
|
||||||
AM_RANGE(0xa00000, 0xa0ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
|
AM_RANGE(0xa00000, 0xa0ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
|
||||||
AM_RANGE(0xb00000, 0xb0000f) AM_RAM /* ? */
|
AM_RANGE(0xb00000, 0xb0000f) AM_RAM /* ? */
|
||||||
@ -639,7 +638,7 @@ static const gfx_layout charlayout =
|
|||||||
128*8 /* every sprite takes 128 consecutive bytes */
|
128*8 /* every sprite takes 128 consecutive bytes */
|
||||||
};
|
};
|
||||||
|
|
||||||
static const gfx_layout pivlayout =
|
static const gfx_layout scclayout =
|
||||||
{
|
{
|
||||||
8,8, /* 8*8 characters */
|
8,8, /* 8*8 characters */
|
||||||
RGN_FRAC(1,2),
|
RGN_FRAC(1,2),
|
||||||
@ -653,13 +652,13 @@ static const gfx_layout pivlayout =
|
|||||||
static GFXDECODE_START( undrfire )
|
static GFXDECODE_START( undrfire )
|
||||||
GFXDECODE_ENTRY( "gfx2", 0x0, tile16x16_layout, 0, 512 )
|
GFXDECODE_ENTRY( "gfx2", 0x0, tile16x16_layout, 0, 512 )
|
||||||
GFXDECODE_ENTRY( "gfx1", 0x0, charlayout, 0, 512 )
|
GFXDECODE_ENTRY( "gfx1", 0x0, charlayout, 0, 512 )
|
||||||
GFXDECODE_ENTRY( "gfx3", 0x0, pivlayout, 0, 512 )
|
GFXDECODE_ENTRY( "gfx3", 0x0, scclayout, 0, 512 )
|
||||||
GFXDECODE_END
|
GFXDECODE_END
|
||||||
|
|
||||||
static GFXDECODE_START( cbombers )
|
static GFXDECODE_START( cbombers )
|
||||||
GFXDECODE_ENTRY( "gfx2", 0x0, tile16x16_layout, 0, 512 )
|
GFXDECODE_ENTRY( "gfx2", 0x0, tile16x16_layout, 0, 512 )
|
||||||
GFXDECODE_ENTRY( "gfx1", 0x0, charlayout, 0x1000, 512 )
|
GFXDECODE_ENTRY( "gfx1", 0x0, charlayout, 0x1000, 512 )
|
||||||
GFXDECODE_ENTRY( "gfx3", 0x0, pivlayout, 0, 512 )
|
GFXDECODE_ENTRY( "gfx3", 0x0, scclayout, 0, 512 )
|
||||||
GFXDECODE_END
|
GFXDECODE_END
|
||||||
|
|
||||||
/***********************************************************
|
/***********************************************************
|
||||||
@ -1099,7 +1098,7 @@ DRIVER_INIT_MEMBER(undrfire_state,undrfire)
|
|||||||
int size=memregion("gfx3")->bytes();
|
int size=memregion("gfx3")->bytes();
|
||||||
int data;
|
int data;
|
||||||
|
|
||||||
/* make piv tile GFX format suitable for gfxdecode */
|
/* make SCC tile GFX format suitable for gfxdecode */
|
||||||
offset = size/2;
|
offset = size/2;
|
||||||
for (i = size/2+size/4; i<size; i++)
|
for (i = size/2+size/4; i<size; i++)
|
||||||
{
|
{
|
||||||
@ -1129,7 +1128,7 @@ DRIVER_INIT_MEMBER(undrfire_state,cbombers)
|
|||||||
int data;
|
int data;
|
||||||
|
|
||||||
|
|
||||||
/* make piv tile GFX format suitable for gfxdecode */
|
/* make SCC tile GFX format suitable for gfxdecode */
|
||||||
offset = size/2;
|
offset = size/2;
|
||||||
for (i = size/2+size/4; i<size; i++)
|
for (i = size/2+size/4; i<size; i++)
|
||||||
{
|
{
|
||||||
|
@ -197,7 +197,7 @@ UINT32 groundfx_state::screen_update_groundfx(screen_device &screen, bitmap_ind1
|
|||||||
{
|
{
|
||||||
address_space &space = machine().driver_data()->generic_space();
|
address_space &space = machine().driver_data()->generic_space();
|
||||||
UINT8 layer[5];
|
UINT8 layer[5];
|
||||||
UINT8 pivlayer[3];
|
UINT8 scclayer[3];
|
||||||
UINT16 priority;
|
UINT16 priority;
|
||||||
|
|
||||||
m_tc0100scn->tilemap_update();
|
m_tc0100scn->tilemap_update();
|
||||||
@ -211,15 +211,15 @@ UINT32 groundfx_state::screen_update_groundfx(screen_device &screen, bitmap_ind1
|
|||||||
layer[3] = (priority & 0x000f) >> 0; /* tells us which is top */
|
layer[3] = (priority & 0x000f) >> 0; /* tells us which is top */
|
||||||
layer[4] = 4; /* text layer always over bg layers */
|
layer[4] = 4; /* text layer always over bg layers */
|
||||||
|
|
||||||
pivlayer[0] = m_tc0100scn->bottomlayer();
|
scclayer[0] = m_tc0100scn->bottomlayer();
|
||||||
pivlayer[1] = pivlayer[0]^1;
|
scclayer[1] = scclayer[0]^1;
|
||||||
pivlayer[2] = 2;
|
scclayer[2] = 2;
|
||||||
|
|
||||||
screen.priority().fill(0, cliprect);
|
screen.priority().fill(0, cliprect);
|
||||||
bitmap.fill(0, cliprect); /* wrong color? */
|
bitmap.fill(0, cliprect); /* wrong color? */
|
||||||
|
|
||||||
m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, pivlayer[0], TILEMAP_DRAW_OPAQUE, 0);
|
m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, scclayer[0], TILEMAP_DRAW_OPAQUE, 0);
|
||||||
m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, pivlayer[1], 0, 0);
|
m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, scclayer[1], 0, 0);
|
||||||
|
|
||||||
/* BIG HACK!
|
/* BIG HACK!
|
||||||
|
|
||||||
@ -244,7 +244,7 @@ UINT32 groundfx_state::screen_update_groundfx(screen_device &screen, bitmap_ind1
|
|||||||
m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4);
|
m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4);
|
||||||
m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[3], 0, 8);
|
m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[3], 0, 8);
|
||||||
|
|
||||||
//m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, 0, pivlayer[2], 0, 0);
|
//m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, 0, scclayer[2], 0, 0);
|
||||||
|
|
||||||
if (m_tc0480scp->long_r(space, 0x20 / 4, 0xffffffff) != 0x240866) /* Stupid hack for start of race */
|
if (m_tc0480scp->long_r(space, 0x20 / 4, 0xffffffff) != 0x240866) /* Stupid hack for start of race */
|
||||||
m_tc0480scp->tilemap_draw(screen, bitmap, m_hack_cliprect, layer[0], 0, 0);
|
m_tc0480scp->tilemap_draw(screen, bitmap, m_hack_cliprect, layer[0], 0, 0);
|
||||||
@ -257,7 +257,7 @@ UINT32 groundfx_state::screen_update_groundfx(screen_device &screen, bitmap_ind1
|
|||||||
m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4);
|
m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4);
|
||||||
m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[3], 0, 8);
|
m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[3], 0, 8);
|
||||||
|
|
||||||
m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, pivlayer[2], 0, 0);
|
m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, scclayer[2], 0, 0);
|
||||||
|
|
||||||
draw_sprites(screen, bitmap, cliprect, 0, 44, -574);
|
draw_sprites(screen, bitmap, cliprect, 0, 44, -574);
|
||||||
}
|
}
|
||||||
|
@ -347,14 +347,14 @@ UINT32 undrfire_state::screen_update_undrfire(screen_device &screen, bitmap_ind1
|
|||||||
{
|
{
|
||||||
address_space &space = machine().driver_data()->generic_space();
|
address_space &space = machine().driver_data()->generic_space();
|
||||||
UINT8 layer[5];
|
UINT8 layer[5];
|
||||||
UINT8 pivlayer[3];
|
UINT8 scclayer[3];
|
||||||
UINT16 priority;
|
UINT16 priority;
|
||||||
|
|
||||||
#ifdef MAME_DEBUG
|
#ifdef MAME_DEBUG
|
||||||
if (machine().input().code_pressed_once (KEYCODE_X))
|
if (machine().input().code_pressed_once (KEYCODE_X))
|
||||||
{
|
{
|
||||||
m_dislayer[5] ^= 1;
|
m_dislayer[5] ^= 1;
|
||||||
popmessage("piv text: %01x",m_dislayer[5]);
|
popmessage("scc text: %01x",m_dislayer[5]);
|
||||||
}
|
}
|
||||||
if (machine().input().code_pressed_once (KEYCODE_C))
|
if (machine().input().code_pressed_once (KEYCODE_C))
|
||||||
{
|
{
|
||||||
@ -398,22 +398,22 @@ UINT32 undrfire_state::screen_update_undrfire(screen_device &screen, bitmap_ind1
|
|||||||
layer[3] = (priority & 0x000f) >> 0; /* tells us which is top */
|
layer[3] = (priority & 0x000f) >> 0; /* tells us which is top */
|
||||||
layer[4] = 4; /* text layer always over bg layers */
|
layer[4] = 4; /* text layer always over bg layers */
|
||||||
|
|
||||||
pivlayer[0] = m_tc0100scn->bottomlayer();
|
scclayer[0] = m_tc0100scn->bottomlayer();
|
||||||
pivlayer[1] = pivlayer[0] ^ 1;
|
scclayer[1] = scclayer[0] ^ 1;
|
||||||
pivlayer[2] = 2;
|
scclayer[2] = 2;
|
||||||
|
|
||||||
screen.priority().fill(0, cliprect);
|
screen.priority().fill(0, cliprect);
|
||||||
bitmap.fill(0, cliprect); /* wrong color? */
|
bitmap.fill(0, cliprect); /* wrong color? */
|
||||||
|
|
||||||
|
|
||||||
/* The "PIV" chip seems to be a renamed TC0100SCN. It has a
|
/* The "SCC" chip seems to be a 6bpp TC0100SCN. It has a
|
||||||
bottom layer usually full of bright garish colors that
|
bottom layer usually full of bright garish colors that
|
||||||
vaguely mimic the structure of the layers on top. Seems
|
vaguely mimic the structure of the layers on top. Seems
|
||||||
pointless - it's always hidden by other layers. Does it
|
pointless - it's always hidden by other layers. Does it
|
||||||
serve some blending pupose ? */
|
serve some blending pupose ? */
|
||||||
|
|
||||||
m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, pivlayer[0], TILEMAP_DRAW_OPAQUE, 0);
|
m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, scclayer[0], TILEMAP_DRAW_OPAQUE, 0);
|
||||||
m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, pivlayer[1], 0, 0);
|
m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, scclayer[1], 0, 0);
|
||||||
|
|
||||||
#ifdef MAME_DEBUG
|
#ifdef MAME_DEBUG
|
||||||
if (m_dislayer[layer[0]]==0)
|
if (m_dislayer[layer[0]]==0)
|
||||||
@ -455,7 +455,7 @@ UINT32 undrfire_state::screen_update_undrfire(screen_device &screen, bitmap_ind1
|
|||||||
#ifdef MAME_DEBUG
|
#ifdef MAME_DEBUG
|
||||||
if (m_dislayer[5]==0)
|
if (m_dislayer[5]==0)
|
||||||
#endif
|
#endif
|
||||||
m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, pivlayer[2], 0, 0); /* piv text layer */
|
m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, scclayer[2], 0, 0); /* TC0620SCC text layer */
|
||||||
|
|
||||||
m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[4], 0, 0); /* TC0480SCP text layer */
|
m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[4], 0, 0); /* TC0480SCP text layer */
|
||||||
|
|
||||||
@ -488,14 +488,14 @@ UINT32 undrfire_state::screen_update_cbombers(screen_device &screen, bitmap_ind1
|
|||||||
{
|
{
|
||||||
address_space &space = machine().driver_data()->generic_space();
|
address_space &space = machine().driver_data()->generic_space();
|
||||||
UINT8 layer[5];
|
UINT8 layer[5];
|
||||||
UINT8 pivlayer[3];
|
UINT8 scclayer[3];
|
||||||
UINT16 priority;
|
UINT16 priority;
|
||||||
|
|
||||||
#ifdef MAME_DEBUG
|
#ifdef MAME_DEBUG
|
||||||
if (machine().input().code_pressed_once (KEYCODE_X))
|
if (machine().input().code_pressed_once (KEYCODE_X))
|
||||||
{
|
{
|
||||||
m_dislayer[5] ^= 1;
|
m_dislayer[5] ^= 1;
|
||||||
popmessage("piv text: %01x",m_dislayer[5]);
|
popmessage("scc text: %01x",m_dislayer[5]);
|
||||||
}
|
}
|
||||||
if (machine().input().code_pressed_once (KEYCODE_C))
|
if (machine().input().code_pressed_once (KEYCODE_C))
|
||||||
{
|
{
|
||||||
@ -539,22 +539,22 @@ UINT32 undrfire_state::screen_update_cbombers(screen_device &screen, bitmap_ind1
|
|||||||
layer[3] = (priority & 0x000f) >> 0; /* tells us which is top */
|
layer[3] = (priority & 0x000f) >> 0; /* tells us which is top */
|
||||||
layer[4] = 4; /* text layer always over bg layers */
|
layer[4] = 4; /* text layer always over bg layers */
|
||||||
|
|
||||||
pivlayer[0] = m_tc0100scn->bottomlayer();
|
scclayer[0] = m_tc0100scn->bottomlayer();
|
||||||
pivlayer[1] = pivlayer[0] ^ 1;
|
scclayer[1] = scclayer[0] ^ 1;
|
||||||
pivlayer[2] = 2;
|
scclayer[2] = 2;
|
||||||
|
|
||||||
screen.priority().fill(0, cliprect);
|
screen.priority().fill(0, cliprect);
|
||||||
bitmap.fill(0, cliprect); /* wrong color? */
|
bitmap.fill(0, cliprect); /* wrong color? */
|
||||||
|
|
||||||
|
|
||||||
/* The "PIV" chip seems to be a renamed TC0100SCN. It has a
|
/* The "SCC" chip seems to be a 6bpp TC0100SCN. It has a
|
||||||
bottom layer usually full of bright garish colors that
|
bottom layer usually full of bright garish colors that
|
||||||
vaguely mimic the structure of the layers on top. Seems
|
vaguely mimic the structure of the layers on top. Seems
|
||||||
pointless - it's always hidden by other layers. Does it
|
pointless - it's always hidden by other layers. Does it
|
||||||
serve some blending pupose ? */
|
serve some blending pupose ? */
|
||||||
|
|
||||||
m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, pivlayer[0], TILEMAP_DRAW_OPAQUE, 0);
|
m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, scclayer[0], TILEMAP_DRAW_OPAQUE, 0);
|
||||||
m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, pivlayer[1], 0, 0);
|
m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, scclayer[1], 0, 0);
|
||||||
|
|
||||||
#ifdef MAME_DEBUG
|
#ifdef MAME_DEBUG
|
||||||
if (m_dislayer[layer[0]]==0)
|
if (m_dislayer[layer[0]]==0)
|
||||||
@ -596,7 +596,7 @@ UINT32 undrfire_state::screen_update_cbombers(screen_device &screen, bitmap_ind1
|
|||||||
#ifdef MAME_DEBUG
|
#ifdef MAME_DEBUG
|
||||||
if (m_dislayer[5]==0)
|
if (m_dislayer[5]==0)
|
||||||
#endif
|
#endif
|
||||||
m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, pivlayer[2], 0, 0); /* piv text layer */
|
m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, scclayer[2], 0, 0); /* TC0620SCC text layer */
|
||||||
|
|
||||||
m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[4], 0, 0); /* TC0480SCP text layer */
|
m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[4], 0, 0); /* TC0480SCP text layer */
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user