summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Scott Stone <tafoid@users.noreply.github.com>2011-03-24 23:06:24 +0000
committer Scott Stone <tafoid@users.noreply.github.com>2011-03-24 23:06:24 +0000
commit719bac990c1757bcf42ae6684b74242d080910e8 (patch)
tree79d3ec9ff7e38453265bb4c442e196efdce3a344
parent9bf7f29b6a46c4cba5c78497afd9f7478ce95c9d (diff)
Haze: Converted capteven to using generic functions in deco16ic.c (no whatsnew)
-rw-r--r--src/mame/drivers/backfire.c2
-rw-r--r--src/mame/drivers/boogwing.c2
-rw-r--r--src/mame/drivers/cbuster.c2
-rw-r--r--src/mame/drivers/cninja.c8
-rw-r--r--src/mame/drivers/dassault.c2
-rw-r--r--src/mame/drivers/dblewing.c2
-rw-r--r--src/mame/drivers/deco156.c2
-rw-r--r--src/mame/drivers/deco32.c79
-rw-r--r--src/mame/drivers/dietgo.c2
-rw-r--r--src/mame/drivers/funkyjet.c2
-rw-r--r--src/mame/drivers/mirage.c2
-rw-r--r--src/mame/drivers/pktgaldx.c2
-rw-r--r--src/mame/drivers/rohga.c4
-rw-r--r--src/mame/drivers/simpl156.c2
-rw-r--r--src/mame/drivers/supbtime.c2
-rw-r--r--src/mame/drivers/tumblep.c2
-rw-r--r--src/mame/drivers/vaportra.c2
-rw-r--r--src/mame/video/deco16ic.c95
-rw-r--r--src/mame/video/deco16ic.h6
-rw-r--r--src/mame/video/deco32.c90
20 files changed, 146 insertions, 164 deletions
diff --git a/src/mame/drivers/backfire.c b/src/mame/drivers/backfire.c
index 6b25bd3d5f9..39659dbf07c 100644
--- a/src/mame/drivers/backfire.c
+++ b/src/mame/drivers/backfire.c
@@ -414,7 +414,7 @@ static int backfire_bank_callback( int bank )
static const deco16ic_interface backfire_deco16ic_intf =
{
"lscreen",
- 0, 0, 1,
+ 0, 0, 1, 1,
0x0f, 0x0f, 0x0f, 0x0f, /* trans masks (default values) */
0x00, 0x40, 0x10, 0x50, /* color base */
0x0f, 0x0f, 0x0f, 0x0f, /* color masks (default values) */
diff --git a/src/mame/drivers/boogwing.c b/src/mame/drivers/boogwing.c
index 3fc84b506ef..1db54aa70c5 100644
--- a/src/mame/drivers/boogwing.c
+++ b/src/mame/drivers/boogwing.c
@@ -311,7 +311,7 @@ static int boogwing_bank_callback2( const int bank )
static const deco16ic_interface boogwing_deco16ic_intf =
{
"screen",
- 0, 0, 1,
+ 0, 0, 1, 1,
0x0f, 0x1f, 0x0f, 0x0f, /* trans masks (pf2 has 5bpp graphics) */
0, 0, 0, 16, /* color base (pf2 is non default) */
0x0f, 0x0f, 0x0f, 0x0f, /* color masks (default values) */
diff --git a/src/mame/drivers/cbuster.c b/src/mame/drivers/cbuster.c
index 9b527f0b00f..ab2edcb4509 100644
--- a/src/mame/drivers/cbuster.c
+++ b/src/mame/drivers/cbuster.c
@@ -283,7 +283,7 @@ static int twocrude_bank_callback( const int bank )
static const deco16ic_interface twocrude_deco16ic_intf =
{
"screen",
- 0, 0, 1,
+ 0, 0, 1, 1,
0x0f, 0x0f, 0x0f, 0x0f, /* trans masks (default values) */
0x00, 0x20, 0x30, 0x40, /* color base (default values) */
0x0f, 0x0f, 0x0f, 0x0f, /* color masks (default values) */
diff --git a/src/mame/drivers/cninja.c b/src/mame/drivers/cninja.c
index 66facdf3acf..2b21b06bb8e 100644
--- a/src/mame/drivers/cninja.c
+++ b/src/mame/drivers/cninja.c
@@ -777,7 +777,7 @@ static int mutantf_2_bank_callback( const int bank )
static const deco16ic_interface cninja_deco16ic_intf =
{
"screen",
- 0, 1, 1,
+ 0, 1, 1, 1,
0x0f, 0x0f, 0x0f, 0x0f, /* trans masks (default values) */
0, 16, 0, 48, /* color base */
0x0f, 0x0f, 0x0f, 0x0f, /* color masks (default values) */
@@ -790,7 +790,7 @@ static const deco16ic_interface cninja_deco16ic_intf =
static const deco16ic_interface edrandy_deco16ic_intf =
{
"screen",
- 0, 0, 1,
+ 0, 0, 1, 1,
0x0f, 0x0f, 0x0f, 0x0f, /* trans masks (default values) */
0, 16, 0, 48, /* color base */
0x0f, 0x0f, 0x0f, 0x0f, /* color masks (default values) */
@@ -803,7 +803,7 @@ static const deco16ic_interface edrandy_deco16ic_intf =
static const deco16ic_interface robocop2_deco16ic_intf =
{
"screen",
- 0, 0, 1,
+ 0, 0, 1, 1,
0x0f, 0x0f, 0x0f, 0x0f, /* trans masks (default values) */
0, 16, 0, 48, /* color base */
0x0f, 0x0f, 0x0f, 0x0f, /* color masks (default values) */
@@ -816,7 +816,7 @@ static const deco16ic_interface robocop2_deco16ic_intf =
static const deco16ic_interface mutantf_deco16ic_intf =
{
"screen",
- 0, 0, 1,
+ 0, 0, 1, 1,
0x0f, 0x0f, 0x0f, 0x0f, /* trans masks (default values) */
0, 0x30, 0x20, 0x40, /* color base */
0x0f, 0x0f, 0x0f, 0x0f, /* color masks (default values) */
diff --git a/src/mame/drivers/dassault.c b/src/mame/drivers/dassault.c
index 424c9999986..e3700d44f88 100644
--- a/src/mame/drivers/dassault.c
+++ b/src/mame/drivers/dassault.c
@@ -541,7 +541,7 @@ static int dassault_bank_callback( const int bank )
static const deco16ic_interface dassault_deco16ic_intf =
{
"screen",
- 0, 0, 1,
+ 0, 0, 1, 1,
0x0f, 0x0f, 0x0f, 0x0f, /* trans masks (default values) */
0, 16, 0, 16, /* color base (default values) */
0x0f, 0x0f, 0x0f, 0x0f, /* color masks (default values) */
diff --git a/src/mame/drivers/dblewing.c b/src/mame/drivers/dblewing.c
index 051012b5911..70be37ede18 100644
--- a/src/mame/drivers/dblewing.c
+++ b/src/mame/drivers/dblewing.c
@@ -543,7 +543,7 @@ static int dblewing_bank_callback( const int bank )
static const deco16ic_interface dblewing_deco16ic_intf =
{
"screen",
- 1, 0, 1,
+ 1, 0, 1, 1,
0x0f, 0x0f, 0x0f, 0x0f, /* trans masks (default values) */
0, 16, 0, 16, /* color base (default values) */
0x0f, 0x0f, 0x0f, 0x0f, /* color masks (default values) */
diff --git a/src/mame/drivers/deco156.c b/src/mame/drivers/deco156.c
index f14910e4d2b..980f8d2b296 100644
--- a/src/mame/drivers/deco156.c
+++ b/src/mame/drivers/deco156.c
@@ -315,7 +315,7 @@ static int deco156_bank_callback(const int bank)
static const deco16ic_interface deco156_deco16ic_intf =
{
"screen",
- 1, 0, 1,
+ 1, 0, 1, 1,
0x0f, 0x0f, 0x0f, 0x0f, /* trans masks (default values) */
0, 16, 0, 16, /* color base (default values) */
0x0f, 0x0f, 0x0f, 0x0f, /* color masks (default values) */
diff --git a/src/mame/drivers/deco32.c b/src/mame/drivers/deco32.c
index 3f5e2603331..5a2034231c6 100644
--- a/src/mame/drivers/deco32.c
+++ b/src/mame/drivers/deco32.c
@@ -253,7 +253,7 @@ static int fghthist_bank_callback( int bank )
static const deco16ic_interface fghthist_deco16ic_intf =
{
"screen",
- 0, 0, 1,
+ 0, 0, 1, 1,
0x0f, 0x0f, 0x0f, 0x0f, /* trans masks (default values) */
0x00, 0x10, 0x20, 0x30, /* color base */
0x0f, 0x0f, 0x0f, 0x0f, /* color masks (default values) */
@@ -728,6 +728,19 @@ static WRITE32_HANDLER( deco32_buffer_spriteram2_w )
memcpy(state->spriteram16_2_buffered, state->spriteram16_2, 0x1000);
}
+
+
+
+static READ32_HANDLER( deco32_pf1_rowscroll_r ) { deco32_state *state = space->machine->driver_data<deco32_state>(); return state->pf1_rowscroll[offset] ^ 0xffff0000; }
+static READ32_HANDLER( deco32_pf2_rowscroll_r ) { deco32_state *state = space->machine->driver_data<deco32_state>(); return state->pf2_rowscroll[offset] ^ 0xffff0000; }
+static READ32_HANDLER( deco32_pf3_rowscroll_r ) { deco32_state *state = space->machine->driver_data<deco32_state>(); return state->pf3_rowscroll[offset] ^ 0xffff0000; }
+static READ32_HANDLER( deco32_pf4_rowscroll_r ) { deco32_state *state = space->machine->driver_data<deco32_state>(); return state->pf4_rowscroll[offset] ^ 0xffff0000; }
+static WRITE32_HANDLER( deco32_pf1_rowscroll_w ) { deco32_state *state = space->machine->driver_data<deco32_state>(); data &= 0x0000ffff; mem_mask &= 0x0000ffff; COMBINE_DATA(&state->pf1_rowscroll[offset]); }
+static WRITE32_HANDLER( deco32_pf2_rowscroll_w ) { deco32_state *state = space->machine->driver_data<deco32_state>(); data &= 0x0000ffff; mem_mask &= 0x0000ffff; COMBINE_DATA(&state->pf2_rowscroll[offset]); }
+static WRITE32_HANDLER( deco32_pf3_rowscroll_w ) { deco32_state *state = space->machine->driver_data<deco32_state>(); data &= 0x0000ffff; mem_mask &= 0x0000ffff; COMBINE_DATA(&state->pf3_rowscroll[offset]); }
+static WRITE32_HANDLER( deco32_pf4_rowscroll_w ) { deco32_state *state = space->machine->driver_data<deco32_state>(); data &= 0x0000ffff; mem_mask &= 0x0000ffff; COMBINE_DATA(&state->pf4_rowscroll[offset]); }
+
+
static ADDRESS_MAP_START( captaven_map, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
@@ -746,30 +759,21 @@ static ADDRESS_MAP_START( captaven_map, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0x178000, 0x178003) AM_WRITE(deco32_pri_w)
- AM_RANGE(0x180000, 0x18001f) AM_RAM_WRITE(deco32_pf12_control_w) AM_BASE_MEMBER(deco32_state, pf12_control)
- AM_RANGE(0x190000, 0x191fff) AM_RAM_WRITE(deco32_pf1_data_w) AM_BASE_MEMBER(deco32_state, pf1_data)
- AM_RANGE(0x192000, 0x193fff) AM_WRITE(deco32_pf1_data_w) /* Mirror address - bug in program code */
- AM_RANGE(0x194000, 0x195fff) AM_RAM_WRITE(deco32_pf2_data_w) AM_BASE_MEMBER(deco32_state, pf2_data)
- AM_RANGE(0x1a0000, 0x1a1fff) AM_RAM AM_BASE_MEMBER(deco32_state, pf1_rowscroll32)
- AM_RANGE(0x1a4000, 0x1a5fff) AM_RAM AM_BASE_MEMBER(deco32_state, pf2_rowscroll32)
-
- AM_RANGE(0x1c0000, 0x1c001f) AM_RAM_WRITE(deco32_pf34_control_w) AM_BASE_MEMBER(deco32_state, pf34_control)
- AM_RANGE(0x1d0000, 0x1d1fff) AM_RAM_WRITE(deco32_pf3_data_w) AM_BASE_MEMBER(deco32_state, pf3_data)
- AM_RANGE(0x1e0000, 0x1e1fff) AM_RAM AM_BASE_MEMBER(deco32_state, pf3_rowscroll32)
+ AM_RANGE(0x180000, 0x18001f) AM_DEVREADWRITE("deco_custom", deco16ic_pf12_control_dword_r, deco16ic_pf12_control_dword_w)
+ AM_RANGE(0x190000, 0x191fff) AM_DEVREADWRITE("deco_custom", deco16ic_pf1_data_dword_r, deco16ic_pf1_data_dword_w)
+ AM_RANGE(0x192000, 0x193fff) AM_DEVREADWRITE("deco_custom", deco16ic_pf1_data_dword_r, deco16ic_pf1_data_dword_w) /* Mirror address - bug in program code */
+ AM_RANGE(0x194000, 0x195fff) AM_DEVREADWRITE("deco_custom", deco16ic_pf2_data_dword_r, deco16ic_pf2_data_dword_w)
+ AM_RANGE(0x1a0000, 0x1a1fff) AM_READWRITE(deco32_pf1_rowscroll_r, deco32_pf1_rowscroll_w)
+ AM_RANGE(0x1a4000, 0x1a5fff) AM_READWRITE(deco32_pf2_rowscroll_r, deco32_pf2_rowscroll_w)
+
+ AM_RANGE(0x1c0000, 0x1c001f) AM_DEVREADWRITE("deco_custom", deco16ic_pf34_control_dword_r, deco16ic_pf34_control_dword_w)
+ AM_RANGE(0x1d0000, 0x1d1fff) AM_DEVREADWRITE("deco_custom", deco16ic_pf3_data_dword_r, deco16ic_pf3_data_dword_w)
+ AM_RANGE(0x1d4000, 0x1d5fff) AM_DEVREADWRITE("deco_custom", deco16ic_pf4_data_dword_r, deco16ic_pf4_data_dword_w) // unused
+ AM_RANGE(0x1e0000, 0x1e1fff) AM_READWRITE(deco32_pf3_rowscroll_r, deco32_pf3_rowscroll_w)
+ AM_RANGE(0x1e4000, 0x1e5fff) AM_READWRITE(deco32_pf4_rowscroll_r, deco32_pf4_rowscroll_w) // unused
ADDRESS_MAP_END
-
-static READ32_HANDLER( deco32_pf1_rowscroll_r ) { deco32_state *state = space->machine->driver_data<deco32_state>(); return state->pf1_rowscroll[offset] ^ 0xffff0000; }
-static READ32_HANDLER( deco32_pf2_rowscroll_r ) { deco32_state *state = space->machine->driver_data<deco32_state>(); return state->pf2_rowscroll[offset] ^ 0xffff0000; }
-static READ32_HANDLER( deco32_pf3_rowscroll_r ) { deco32_state *state = space->machine->driver_data<deco32_state>(); return state->pf3_rowscroll[offset] ^ 0xffff0000; }
-static READ32_HANDLER( deco32_pf4_rowscroll_r ) { deco32_state *state = space->machine->driver_data<deco32_state>(); return state->pf4_rowscroll[offset] ^ 0xffff0000; }
-static WRITE32_HANDLER( deco32_pf1_rowscroll_w ) { deco32_state *state = space->machine->driver_data<deco32_state>(); data &= 0x0000ffff; mem_mask &= 0x0000ffff; COMBINE_DATA(&state->pf1_rowscroll[offset]); }
-static WRITE32_HANDLER( deco32_pf2_rowscroll_w ) { deco32_state *state = space->machine->driver_data<deco32_state>(); data &= 0x0000ffff; mem_mask &= 0x0000ffff; COMBINE_DATA(&state->pf2_rowscroll[offset]); }
-static WRITE32_HANDLER( deco32_pf3_rowscroll_w ) { deco32_state *state = space->machine->driver_data<deco32_state>(); data &= 0x0000ffff; mem_mask &= 0x0000ffff; COMBINE_DATA(&state->pf3_rowscroll[offset]); }
-static WRITE32_HANDLER( deco32_pf4_rowscroll_w ) { deco32_state *state = space->machine->driver_data<deco32_state>(); data &= 0x0000ffff; mem_mask &= 0x0000ffff; COMBINE_DATA(&state->pf4_rowscroll[offset]); }
-
-
static ADDRESS_MAP_START( fghthist_map, ADDRESS_SPACE_PROGRAM, 32 )
// AM_RANGE(0x000000, 0x001fff) AM_ROM AM_WRITE(deco32_pf1_data_w) // wtf??
AM_RANGE(0x000000, 0x0fffff) AM_ROM
@@ -1640,9 +1644,9 @@ static const gfx_layout spritelayout5 =
};
static GFXDECODE_START( captaven )
- GFXDECODE_ENTRY( "gfx1", 0, charlayout, 512, 32 ) /* Characters 8x8 */
- GFXDECODE_ENTRY( "gfx1", 0, tilelayout, 512, 32 ) /* Tiles 16x16 */
- GFXDECODE_ENTRY( "gfx2", 0, tilelayout2, 1024, 4 ) /* Tiles 16x16 */
+ GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 128 ) /* Characters 8x8 */
+ GFXDECODE_ENTRY( "gfx1", 0, tilelayout, 0, 128 ) /* Tiles 16x16 */
+ GFXDECODE_ENTRY( "gfx2", 0, tilelayout2, 0, 128 ) /* Tiles 16x16 */
GFXDECODE_ENTRY( "gfx3", 0, spritelayout, 0, 32 ) /* Sprites 16x16 */
GFXDECODE_END
@@ -1760,6 +1764,29 @@ UINT16 captaven_pri_callback(UINT16 x)
}
}
+static int captaven_bank_callback( int bank )
+{
+ bank = bank >> 4;
+ bank = (bank & 2) >> 1;
+
+ return bank * 0x4000;
+}
+
+// pf4 not used (pf3 is in 8bpp mode)
+static const deco16ic_interface captaven_deco16ic_intf =
+{
+ "screen",
+ 0, 0, 1, 0, // pf12only, split, fullwidth12 / fullwidth34
+ 0x0f, 0x0f, 0xff, 0x00, /* trans masks (default values) */
+ 0x20, 0x20, 0x10, 0x00, /* color base */
+ 0x0f, 0x0f, 0x0f, 0x00, /* color masks (default values) */
+ 0,
+ 0,
+ captaven_bank_callback,
+ NULL,
+};
+
+
static MACHINE_CONFIG_START( captaven, deco32_state )
/* basic machine hardware */
@@ -1785,6 +1812,8 @@ static MACHINE_CONFIG_START( captaven, deco32_state )
MCFG_GFXDECODE(captaven)
MCFG_PALETTE_LENGTH(2048)
+ MCFG_DECO16IC_ADD("deco_custom", captaven_deco16ic_intf)
+
MCFG_DEVICE_ADD("spritegen", decospr_, 0)
decospr_device_config::set_gfx_region(device, 3);
decospr_device_config::set_pri_callback(device, captaven_pri_callback);
diff --git a/src/mame/drivers/dietgo.c b/src/mame/drivers/dietgo.c
index e194227a827..dd327fdc6d8 100644
--- a/src/mame/drivers/dietgo.c
+++ b/src/mame/drivers/dietgo.c
@@ -180,7 +180,7 @@ static int dietgo_bank_callback(const int bank)
static const deco16ic_interface dietgo_deco16ic_intf =
{
"screen",
- 1, 0, 1,
+ 1, 0, 1, 1,
0x0f, 0x0f, 0x0f, 0x0f, /* trans masks (default values) */
0, 16, 0, 16, /* color base (default values) */
0x0f, 0x0f, 0x0f, 0x0f, /* color masks (default values) */
diff --git a/src/mame/drivers/funkyjet.c b/src/mame/drivers/funkyjet.c
index 861bc96967d..de3dd47abcd 100644
--- a/src/mame/drivers/funkyjet.c
+++ b/src/mame/drivers/funkyjet.c
@@ -289,7 +289,7 @@ static const ym2151_interface ym2151_config =
static const deco16ic_interface funkyjet_deco16ic_intf =
{
"screen",
- 1, 0, 1,
+ 1, 0, 1, 1,
0x0f, 0x0f, 0x0f, 0x0f, /* trans masks (default values) */
0, 16, 0, 16, /* color base (default values) */
0x0f, 0x0f, 0x0f, 0x0f, /* color masks (default values) */
diff --git a/src/mame/drivers/mirage.c b/src/mame/drivers/mirage.c
index 1de844f2ced..aaad1a86c49 100644
--- a/src/mame/drivers/mirage.c
+++ b/src/mame/drivers/mirage.c
@@ -290,7 +290,7 @@ static int mirage_bank_callback( const int bank )
static const deco16ic_interface mirage_deco16ic_intf =
{
"screen",
- 1, 0, 1,
+ 1, 0, 1, 1,
0x0f, 0x0f, 0x0f, 0x0f, /* trans masks (default values) */
0, 16, 0, 16, /* color base (default values) */
0x0f, 0x0f, 0x0f, 0x0f, /* color masks (default values) */
diff --git a/src/mame/drivers/pktgaldx.c b/src/mame/drivers/pktgaldx.c
index 3fbfa852293..b6d86b80cd6 100644
--- a/src/mame/drivers/pktgaldx.c
+++ b/src/mame/drivers/pktgaldx.c
@@ -300,7 +300,7 @@ static int pktgaldx_bank_callback( const int bank )
static const deco16ic_interface pktgaldx_deco16ic_intf =
{
"screen",
- 1, 0, 1,
+ 1, 0, 1, 1,
0x0f, 0x0f, 0x0f, 0x0f, /* trans masks (default values) */
0, 16, 0, 16, /* color base (default values) */
0x0f, 0x0f, 0x0f, 0x0f, /* color masks (default values) */
diff --git a/src/mame/drivers/rohga.c b/src/mame/drivers/rohga.c
index edc5f57668a..91159f76567 100644
--- a/src/mame/drivers/rohga.c
+++ b/src/mame/drivers/rohga.c
@@ -749,7 +749,7 @@ static int rohga_bank_callback( const int bank )
static const deco16ic_interface rohga_deco16ic_intf =
{
"screen",
- 0, 0, 1,
+ 0, 0, 1, 1,
0x0f, 0x0f, 0x0f, 0x0f, /* trans masks (default values) */
0, 16, 0, 16, /* color base (default values) */
0x0f, 0x0f, 0x0f, 0x0f, /* color masks (default values) */
@@ -762,7 +762,7 @@ static const deco16ic_interface rohga_deco16ic_intf =
static const deco16ic_interface nitrobal_deco16ic_intf =
{
"screen",
- 0, 0, 0,
+ 0, 0, 0, 0,
0x0f, 0x0f, 0x0f, 0x0f, /* trans masks (default values) */
0, 16, 0, 0, /* color base (pf4 is not default) */
0x0f, 0x0f, 0, 0, /* color masks */
diff --git a/src/mame/drivers/simpl156.c b/src/mame/drivers/simpl156.c
index 5940397e2cd..38b590bd77e 100644
--- a/src/mame/drivers/simpl156.c
+++ b/src/mame/drivers/simpl156.c
@@ -407,7 +407,7 @@ static int simpl156_bank_callback(const int bank)
static const deco16ic_interface simpl156_deco16ic_intf =
{
"screen",
- 1, 0, 1,
+ 1, 0, 1, 1,
0x0f, 0x0f, 0x0f, 0x0f, /* trans masks (default values) */
0, 16, 0, 16, /* color base (default values) */
0x0f, 0x0f, 0x0f, 0x0f, /* color masks (default values) */
diff --git a/src/mame/drivers/supbtime.c b/src/mame/drivers/supbtime.c
index e092d2ba5ca..bf438e28ec1 100644
--- a/src/mame/drivers/supbtime.c
+++ b/src/mame/drivers/supbtime.c
@@ -323,7 +323,7 @@ static const ym2151_interface ym2151_config =
static const deco16ic_interface supbtime_deco16ic_intf =
{
"screen",
- 1, 0, 1,
+ 1, 0, 1, 1,
0x0f, 0x0f, 0x0f, 0x0f, /* trans masks (default values) */
0, 16, 0, 16, /* color base (default values) */
0x0f, 0x0f, 0x0f, 0x0f, /* color masks (default values) */
diff --git a/src/mame/drivers/tumblep.c b/src/mame/drivers/tumblep.c
index 9e261a5cb1b..4363d620f1e 100644
--- a/src/mame/drivers/tumblep.c
+++ b/src/mame/drivers/tumblep.c
@@ -288,7 +288,7 @@ static const ym2151_interface ym2151_config =
static const deco16ic_interface tumblep_deco16ic_intf =
{
"screen",
- 1, 0, 1,
+ 1, 0, 1, 1,
0x0f, 0x0f, 0x0f, 0x0f, /* trans masks (default values) */
0, 16, 0, 16, /* color base (default values) */
0x0f, 0x0f, 0x0f, 0x0f, /* color masks (default values) */
diff --git a/src/mame/drivers/vaportra.c b/src/mame/drivers/vaportra.c
index 0a1bfbfc3a8..7b47c3c2c4c 100644
--- a/src/mame/drivers/vaportra.c
+++ b/src/mame/drivers/vaportra.c
@@ -219,7 +219,7 @@ static int vaportra_bank_callback( const int bank )
static const deco16ic_interface vaportra_deco16ic_intf =
{
"screen",
- 0, 0, 1,
+ 0, 0, 1, 1,
0x0f, 0x0f, 0x0f, 0x0f, /* trans masks (default values) */
0x00, 0x20, 0x30, 0x40, /* color base */
0x0f, 0x0f, 0x0f, 0x0f, /* color masks (default values) */
diff --git a/src/mame/video/deco16ic.c b/src/mame/video/deco16ic.c
index 4111c6af29d..4d9544e1f3f 100644
--- a/src/mame/video/deco16ic.c
+++ b/src/mame/video/deco16ic.c
@@ -149,22 +149,7 @@ Rowscroll style:
#include "video/deco16ic.h"
#include "ui.h"
-#if 0
-void deco16ic_set_vram( const device_config *device, UINT8 *ram_bank )
-{
- deco16ic_state *deco16ic = get_safe_token(device);
-
- deco16ic->vram = ram_bank;
-}
-
-UINT8 *deco16icvdp_get_vram( const device_config *device )
-{
- deco16ic_state *deco16ic = get_safe_token(device);
-
- return deco16ic->vram;
-}
-#endif
-
+/* Note, each device should have 2 tilemaps, not 4.. games with 4 chips use 2 devices.. this should be fixed here! */
typedef struct _deco16ic_state deco16ic_state;
struct _deco16ic_state
@@ -199,6 +184,8 @@ struct _deco16ic_state
int pf1_trans_mask, pf2_trans_mask, pf3_trans_mask, pf4_trans_mask;
int pf12_last_small, pf12_last_big, pf34_last_big;
+
+ int pf3_8bpp_mode;
};
/*****************************************************************************
@@ -349,11 +336,25 @@ static TILE_GET_INFO_DEVICE( get_pf3_tile_info )
}
}
- SET_TILE_INFO_DEVICE(
- deco16ic->pf34_16x16_gfx_bank,
- (tile & 0xfff) | deco16ic->pf3_bank,
- (colour & deco16ic->pf3_colourmask) + deco16ic->pf3_colour_bank,
- flags);
+ if (deco16ic->pf3_8bpp_mode)
+ {
+ // Captain America operates this chip in 8bpp mode.
+ // In 8bpp mode you appear to only get 1 layer, not 2, but you also
+ // have an extra 2 tile bits, and 2 less colour bits.
+ SET_TILE_INFO_DEVICE(
+ deco16ic->pf34_16x16_gfx_bank,
+ (tile & 0x3fff) | deco16ic->pf3_bank,
+ ((colour & deco16ic->pf3_colourmask) + deco16ic->pf3_colour_bank)>>2,
+ flags);
+ }
+ else
+ {
+ SET_TILE_INFO_DEVICE(
+ deco16ic->pf34_16x16_gfx_bank,
+ (tile & 0xfff) | deco16ic->pf3_bank,
+ ((colour & deco16ic->pf3_colourmask) + deco16ic->pf3_colour_bank),
+ flags);
+ }
}
static TILE_GET_INFO_DEVICE( get_pf2_tile_info )
@@ -481,6 +482,7 @@ static TILE_GET_INFO_DEVICE( get_pf1_tile_info_b )
static void custom_tilemap_draw(
device_t *device,
bitmap_t *bitmap,
+ const rectangle *cliprect,
tilemap_t *tilemap0_8x8,
tilemap_t *tilemap0_16x16,
tilemap_t *tilemap1_8x8,
@@ -513,11 +515,15 @@ static void custom_tilemap_draw(
if (!BIT(control0, 7))
return;
+ int starty = cliprect->min_y;
+ int endy = cliprect->max_y+1;
+
width_mask = src_bitmap0->width - 1;
height_mask = src_bitmap0->height - 1;
- src_y = scrolly + 8;
+ src_y = scrolly + starty;
+
- for (y = 8; y < 248; y++)
+ for (y = starty; y < endy; y++)
{
if (rowscroll_ptr && BIT(control1, 6))
src_x = scrollx + rowscroll_ptr[src_y / row_type];
@@ -587,6 +593,13 @@ static void custom_tilemap_draw(
/******************************************************************************/
+/* captain america seems to have a similar 8bpp feature to robocop2, investigate merging */
+void deco16ic_set_pf3_8bpp_mode(device_t *device, int mode)
+{
+ deco16ic_state *deco16ic = get_safe_token(device);
+ deco16ic->pf3_8bpp_mode = mode;
+}
+
/* robocop 2 can switch between 2 tilemaps at 4bpp, or 1 at 8bpp */
void deco16ic_set_tilemap_colour_mask( device_t *device, int tmap, int mask )
{
@@ -716,12 +729,14 @@ WRITE16_DEVICE_HANDLER( deco16ic_pf12_control_w )
{
deco16ic_state *deco16ic = get_safe_token(device);
COMBINE_DATA(&deco16ic->pf12_control[offset]);
+ device->machine->primary_screen->update_partial(device->machine->primary_screen->vpos());
}
WRITE16_DEVICE_HANDLER( deco16ic_pf34_control_w )
{
deco16ic_state *deco16ic = get_safe_token(device);
COMBINE_DATA(&deco16ic->pf34_control[offset]);
+ device->machine->primary_screen->update_partial(device->machine->primary_screen->vpos());
}
READ16_DEVICE_HANDLER( deco16ic_pf12_control_r )
@@ -799,18 +814,6 @@ WRITE32_DEVICE_HANDLER( deco16ic_pf4_data_dword_w )
}
-
-#if 0
-void deco_allocate_sprite_bitmap(running_machine *machine)
-{
- /* Allow sprite bitmap to be used by Deco32 games as well */
- int width = machine->primary_screen->width();
- int height = machine->primary_screen->height();
- sprite_priority_bitmap = auto_bitmap_alloc(machine, width, height, BITMAP_FORMAT_INDEXED16 );
-}
-
-#endif
-
/*****************************************************************************************/
static int deco16_pf_update(
@@ -1168,7 +1171,7 @@ void deco16ic_tilemap_1_draw( device_t *device, bitmap_t *bitmap, const rectangl
if (deco16ic->use_custom_pf1)
{
- custom_tilemap_draw(device, bitmap, deco16ic->pf1_tilemap_8x8, deco16ic->pf1_tilemap_16x16, 0, 0, deco16ic->pf1_rowscroll_ptr, deco16ic->pf12_control[1], deco16ic->pf12_control[2], deco16ic->pf12_control[5] & 0xff, deco16ic->pf12_control[6] & 0xff, 0, 0, deco16ic->pf1_trans_mask, flags, priority);
+ custom_tilemap_draw(device, bitmap, cliprect, deco16ic->pf1_tilemap_8x8, deco16ic->pf1_tilemap_16x16, 0, 0, deco16ic->pf1_rowscroll_ptr, deco16ic->pf12_control[1], deco16ic->pf12_control[2], deco16ic->pf12_control[5] & 0xff, deco16ic->pf12_control[6] & 0xff, 0, 0, deco16ic->pf1_trans_mask, flags, priority);
}
else
{
@@ -1185,7 +1188,7 @@ void deco16ic_tilemap_2_draw(device_t *device, bitmap_t *bitmap, const rectangle
if (deco16ic->use_custom_pf2)
{
- custom_tilemap_draw(device, bitmap, deco16ic->pf2_tilemap_8x8, deco16ic->pf2_tilemap_16x16, 0, 0, deco16ic->pf2_rowscroll_ptr, deco16ic->pf12_control[3], deco16ic->pf12_control[4], deco16ic->pf12_control[5] >> 8, deco16ic->pf12_control[6] >> 8, 0, 0, deco16ic->pf2_trans_mask, flags, priority);
+ custom_tilemap_draw(device, bitmap, cliprect, deco16ic->pf2_tilemap_8x8, deco16ic->pf2_tilemap_16x16, 0, 0, deco16ic->pf2_rowscroll_ptr, deco16ic->pf12_control[3], deco16ic->pf12_control[4], deco16ic->pf12_control[5] >> 8, deco16ic->pf12_control[6] >> 8, 0, 0, deco16ic->pf2_trans_mask, flags, priority);
}
else
{
@@ -1201,7 +1204,7 @@ void deco16ic_tilemap_3_draw(device_t *device, bitmap_t *bitmap, const rectangle
deco16ic_state *deco16ic = get_safe_token(device);
if (deco16ic->use_custom_pf3)
- custom_tilemap_draw(device, bitmap, 0, deco16ic->pf3_tilemap_16x16, 0, 0, deco16ic->pf3_rowscroll_ptr, deco16ic->pf34_control[1], deco16ic->pf34_control[2], deco16ic->pf34_control[5] & 0xff, deco16ic->pf34_control[6] & 0xff, 0, 0, deco16ic->pf3_trans_mask, flags, priority);
+ custom_tilemap_draw(device, bitmap, cliprect, 0, deco16ic->pf3_tilemap_16x16, 0, 0, deco16ic->pf3_rowscroll_ptr, deco16ic->pf34_control[1], deco16ic->pf34_control[2], deco16ic->pf34_control[5] & 0xff, deco16ic->pf34_control[6] & 0xff, 0, 0, deco16ic->pf3_trans_mask, flags, priority);
else if (deco16ic->pf3_tilemap_16x16)
tilemap_draw(bitmap, cliprect, deco16ic->pf3_tilemap_16x16, flags, priority);
}
@@ -1211,7 +1214,7 @@ void deco16ic_tilemap_4_draw(device_t *device, bitmap_t *bitmap, const rectangle
deco16ic_state *deco16ic = get_safe_token(device);
if (deco16ic->use_custom_pf4)
- custom_tilemap_draw(device, bitmap, 0, deco16ic->pf4_tilemap_16x16, 0, 0, deco16ic->pf4_rowscroll_ptr, deco16ic->pf34_control[3], deco16ic->pf34_control[4], deco16ic->pf34_control[5] >> 8, deco16ic->pf34_control[6] >> 8, 0, 0, deco16ic->pf4_trans_mask, flags, priority);
+ custom_tilemap_draw(device, bitmap, cliprect, 0, deco16ic->pf4_tilemap_16x16, 0, 0, deco16ic->pf4_rowscroll_ptr, deco16ic->pf34_control[3], deco16ic->pf34_control[4], deco16ic->pf34_control[5] >> 8, deco16ic->pf34_control[6] >> 8, 0, 0, deco16ic->pf4_trans_mask, flags, priority);
else if (deco16ic->pf4_tilemap_16x16)
tilemap_draw(bitmap, cliprect, deco16ic->pf4_tilemap_16x16, flags, priority);
}
@@ -1222,7 +1225,7 @@ void deco16ic_tilemap_4_draw(device_t *device, bitmap_t *bitmap, const rectangle
void deco16ic_tilemap_34_combine_draw(device_t *device, bitmap_t *bitmap, const rectangle *cliprect, int flags, UINT32 priority)
{
deco16ic_state *deco16ic = get_safe_token(device);
- custom_tilemap_draw(device, bitmap, 0, deco16ic->pf3_tilemap_16x16, 0, deco16ic->pf4_tilemap_16x16, deco16ic->pf3_rowscroll_ptr, deco16ic->pf34_control[1], deco16ic->pf34_control[2], deco16ic->pf34_control[5] & 0xff, deco16ic->pf34_control[6] & 0xff, 0xf, 4, 0xff, flags, priority);
+ custom_tilemap_draw(device, bitmap, cliprect, 0, deco16ic->pf3_tilemap_16x16, 0, deco16ic->pf4_tilemap_16x16, deco16ic->pf3_rowscroll_ptr, deco16ic->pf34_control[1], deco16ic->pf34_control[2], deco16ic->pf34_control[5] & 0xff, deco16ic->pf34_control[6] & 0xff, 0xf, 4, 0xff, flags, priority);
}
@@ -1266,16 +1269,16 @@ static DEVICE_START( deco16ic )
deco16ic->pf1_tilemap_8x8 = tilemap_create_device(device, get_pf1_tile_info_b, tilemap_scan_rows, 8, 8, 64, 32);
if (intf->split)
- deco16ic->pf2_tilemap_16x16 = tilemap_create_device(device, get_pf2_tile_info, deco16_scan_rows, 16, 16, intf->full_width ? 64 : 32, 32);
+ deco16ic->pf2_tilemap_16x16 = tilemap_create_device(device, get_pf2_tile_info, deco16_scan_rows, 16, 16, intf->full_width12 ? 64 : 32, 32);
else
- deco16ic->pf2_tilemap_16x16 = tilemap_create_device(device, get_pf2_tile_info, deco16_scan_rows, 16, 16, intf->full_width ? 64 : 32, 32);
+ deco16ic->pf2_tilemap_16x16 = tilemap_create_device(device, get_pf2_tile_info, deco16_scan_rows, 16, 16, intf->full_width12 ? 64 : 32, 32);
- deco16ic->pf2_tilemap_8x8 = tilemap_create_device(device, get_pf2_tile_info_b, tilemap_scan_rows, 8, 8, intf->full_width ? 64 : 32, 32);
+ deco16ic->pf2_tilemap_8x8 = tilemap_create_device(device, get_pf2_tile_info_b, tilemap_scan_rows, 8, 8, intf->full_width12 ? 64 : 32, 32);
if (!intf->pf12_only)
{
- deco16ic->pf4_tilemap_16x16 = tilemap_create_device(device, get_pf4_tile_info, deco16_scan_rows, 16, 16, intf->full_width ? 64 : 32, 32);
- deco16ic->pf3_tilemap_16x16 = tilemap_create_device(device, get_pf3_tile_info, deco16_scan_rows, 16, 16, intf->full_width ? 64 : 32, 32);
+ deco16ic->pf4_tilemap_16x16 = tilemap_create_device(device, get_pf4_tile_info, deco16_scan_rows, 16, 16, intf->full_width34 ? 64 : 32, 32);
+ deco16ic->pf3_tilemap_16x16 = tilemap_create_device(device, get_pf3_tile_info, deco16_scan_rows, 16, 16, intf->full_width34 ? 64 : 32, 32);
}
else
{
@@ -1297,6 +1300,7 @@ static DEVICE_START( deco16ic )
tilemap_set_transparent_pen(deco16ic->pf4_tilemap_16x16, 0);
}
+ deco16ic->pf3_8bpp_mode = 0;
deco16ic->dirty_palette = auto_alloc_array_clear(device->machine, UINT8, 4096);
deco16ic->raster_display_list = auto_alloc_array_clear(device->machine, UINT16, 20 * 256 / 2);
@@ -1324,6 +1328,7 @@ static DEVICE_START( deco16ic )
device->save_item(NAME(deco16ic->pf12_last_small));
device->save_item(NAME(deco16ic->pf12_last_big));
device->save_item(NAME(deco16ic->pf34_last_big));
+ device->save_item(NAME(deco16ic->pf3_8bpp_mode));
device->save_pointer(NAME(deco16ic->dirty_palette), 4096);
device->save_pointer(NAME(deco16ic->raster_display_list), 20 * 256 / 2);
diff --git a/src/mame/video/deco16ic.h b/src/mame/video/deco16ic.h
index 0d288468516..cc76808c613 100644
--- a/src/mame/video/deco16ic.h
+++ b/src/mame/video/deco16ic.h
@@ -26,7 +26,8 @@ struct _deco16ic_interface
const char *screen;
int pf12_only;
int split;
- int full_width;
+ int full_width12;
+ int full_width34;
int trans_mask1, trans_mask2, trans_mask3, trans_mask4;
int col_base1, col_base2, col_base3, col_base4;
@@ -118,6 +119,9 @@ void deco16ic_pdrawgfx(
void deco16ic_set_tilemap_colour_mask(device_t *device, int tmap, int mask);
void deco16ic_pf34_set_gfxbank(device_t *device, int small, int big);
+/* used by captaven */
+void deco16ic_set_pf3_8bpp_mode(device_t *device, int mode);
+
/* used by stoneage */
void deco16ic_set_scrolldx(device_t *device, int tmap, int size, int dx, int dx_if_flipped);
diff --git a/src/mame/video/deco32.c b/src/mame/video/deco32.c
index 30821d988cb..7134c296ba4 100644
--- a/src/mame/video/deco32.c
+++ b/src/mame/video/deco32.c
@@ -647,13 +647,6 @@ static TILE_GET_INFO( get_pf4_tile_info )
SET_TILE_INFO(2,(tile&0xfff)|state->pf4_bank,colour+state->pf4_colourbank,flags);
}
-/* Captain America tilemap chip 2 has different banking and colour from normal */
-static TILE_GET_INFO( get_ca_pf3_tile_info )
-{
- deco32_state *state = machine->driver_data<deco32_state>();
- int tile=state->pf3_data[tile_index];
- SET_TILE_INFO(2,(tile&0x3fff)+state->pf3_bank,(tile >> 14)&3,0);
-}
static TILE_GET_INFO( get_ll_pf3_tile_info )
{
@@ -690,38 +683,14 @@ static TILE_GET_INFO( get_ll_pf4_tile_info )
VIDEO_START( captaven )
{
deco32_state *state = machine->driver_data<deco32_state>();
- state->pf1_tilemap = tilemap_create(machine, get_pf1_tile_info, tilemap_scan_rows, 8, 8,64,32);
- state->pf1a_tilemap =tilemap_create(machine, get_pf1a_tile_info, deco16_scan_rows,16,16,64,32);
- state->pf2_tilemap = tilemap_create(machine, get_pf2_tile_info, deco16_scan_rows,16,16,64,32);
- state->pf3_tilemap = tilemap_create(machine, get_ca_pf3_tile_info, tilemap_scan_rows,16,16,32,32);
-
- tilemap_set_transparent_pen(state->pf1_tilemap,0);
- tilemap_set_transparent_pen(state->pf1a_tilemap,0);
- tilemap_set_transparent_pen(state->pf2_tilemap,0);
- tilemap_set_transparent_pen(state->pf3_tilemap,0);
-
- state->pf2_colourbank=16;
- state->pf4_colourbank=0;
state->has_ace_ram=0;
}
VIDEO_START( fghthist )
{
deco32_state *state = machine->driver_data<deco32_state>();
- //state->pf1_tilemap = tilemap_create(machine, get_pf1_tile_info, tilemap_scan_rows, 8, 8,64,32);
- //state->pf2_tilemap = tilemap_create(machine, get_pf2_tile_info, deco16_scan_rows, 16,16,64,32);
- //state->pf3_tilemap = tilemap_create(machine, get_pf3_tile_info, deco16_scan_rows, 16,16,64,32);
- //state->pf4_tilemap = tilemap_create(machine, get_pf4_tile_info, deco16_scan_rows, 16,16,64,32);
- //state->pf1a_tilemap =0;
state->dirty_palette = auto_alloc_array(machine, UINT8, 4096);
-
machine->device<decospr_device>("spritegen")->alloc_sprite_bitmap(machine);
-
- //tilemap_set_transparent_pen(state->pf1_tilemap,0);
- //tilemap_set_transparent_pen(state->pf2_tilemap,0);
- //tilemap_set_transparent_pen(state->pf3_tilemap,0);
-
- //state->pf2_colourbank=state->pf4_colourbank=0;
state->has_ace_ram=0;
}
@@ -925,57 +894,32 @@ static void combined_tilemap_draw(running_machine* machine, bitmap_t *bitmap, co
SCREEN_UPDATE( captaven )
{
deco32_state *state = screen->machine->driver_data<deco32_state>();
- int pf1_enable,pf2_enable,pf3_enable;
+ state->deco16ic = screen->machine->device("deco_custom");
- flip_screen_set(screen->machine, state->pf12_control[0]&0x80);
tilemap_set_flip_all(screen->machine,flip_screen_get(screen->machine) ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
- deco32_setup_scroll(state->pf1_tilemap, 256,(state->pf12_control[5]>>0)&0xff,(state->pf12_control[6]>>0)&0xff,state->pf12_control[2],state->pf12_control[1],state->pf1_rowscroll32,state->pf1_rowscroll32+0x200);
- deco32_setup_scroll(state->pf1a_tilemap,512,(state->pf12_control[5]>>0)&0xff,(state->pf12_control[6]>>0)&0xff,state->pf12_control[2],state->pf12_control[1],state->pf1_rowscroll32,state->pf1_rowscroll32+0x200);
- deco32_setup_scroll(state->pf2_tilemap, 512,(state->pf12_control[5]>>8)&0xff,(state->pf12_control[6]>>8)&0xff,state->pf12_control[4],state->pf12_control[3],state->pf2_rowscroll32,state->pf2_rowscroll32+0x200);
- deco32_setup_scroll(state->pf3_tilemap, 512,(state->pf34_control[5]>>0)&0xff,(state->pf34_control[6]>>0)&0xff,state->pf34_control[4],state->pf34_control[3],state->pf3_rowscroll32,state->pf3_rowscroll32+0x200);
-
- /* PF1 & PF2 only have enough roms for 1 bank */
- state->pf1_bank=0;//(state->pf12_control[7]>> 4)&0xf;
- state->pf2_bank=0;//(state->pf12_control[7]>>12)&0xf;
- state->pf3_bank=(state->pf34_control[7]>> 4)&0xf;
-
- if (state->pf34_control[7]&0x0020) state->pf3_bank=0x4000; else state->pf3_bank=0;
- if (state->pf3_bank!=state->last_pf3_bank) tilemap_mark_all_tiles_dirty(state->pf3_tilemap);
- state->last_pf3_bank=state->pf3_bank;
-
- pf1_enable=state->pf12_control[5]&0x0080;
- pf2_enable=state->pf12_control[5]&0x8000;
- pf3_enable=state->pf34_control[5]&0x0080;
+ bitmap_fill(screen->machine->priority_bitmap,cliprect,0);
+ bitmap_fill(bitmap,cliprect,screen->machine->pens[0x000]); // Palette index not confirmed
- tilemap_set_enable(state->pf1_tilemap,pf1_enable);
- tilemap_set_enable(state->pf1a_tilemap,pf1_enable);
- tilemap_set_enable(state->pf2_tilemap,pf2_enable);
- tilemap_set_enable(state->pf3_tilemap,pf3_enable);
+ deco16ic_set_pf3_8bpp_mode(state->deco16ic, 1);
- bitmap_fill(screen->machine->priority_bitmap,cliprect,0);
- if ((state->pri&1)==0) {
- if (pf3_enable)
- tilemap_draw(bitmap,cliprect,state->pf3_tilemap,TILEMAP_DRAW_OPAQUE,1);
- else
- bitmap_fill(bitmap,cliprect,get_black_pen(screen->machine));
+ deco16ic_pf12_update(state->deco16ic, state->pf1_rowscroll, state->pf2_rowscroll);
+ deco16ic_pf34_update(state->deco16ic, state->pf3_rowscroll, state->pf4_rowscroll);
- tilemap_draw(bitmap,cliprect,state->pf2_tilemap,0,2);
- } else {
- if (pf2_enable) {
- tilemap_draw(bitmap,cliprect,state->pf2_tilemap,0,1);
- }
- else
- bitmap_fill(bitmap,cliprect,get_black_pen(screen->machine));
+ // pf4 not used (because pf3 is in 8bpp mode)
- tilemap_draw(bitmap,cliprect,state->pf3_tilemap,0,2);
+ if ((state->pri&1)==0)
+ {
+ deco16ic_tilemap_3_draw(state->deco16ic, bitmap, cliprect, 0, 1);
+ deco16ic_tilemap_2_draw(state->deco16ic, bitmap, cliprect, 0, 2);
}
-
- /* PF1 can be in 8x8 mode or 16x16 mode */
- if (state->pf12_control[6]&0x80)
- tilemap_draw(bitmap,cliprect,state->pf1_tilemap,0,4);
else
- tilemap_draw(bitmap,cliprect,state->pf1a_tilemap,0,4);
+ {
+ deco16ic_tilemap_2_draw(state->deco16ic, bitmap, cliprect, 0, 1);
+ deco16ic_tilemap_3_draw(state->deco16ic, bitmap, cliprect, 0, 2);
+ }
+
+ deco16ic_tilemap_1_draw(state->deco16ic, bitmap, cliprect, 0, 4);
screen->machine->device<decospr_device>("spritegen")->set_alt_format(true);
screen->machine->device<decospr_device>("spritegen")->draw_sprites(screen->machine, bitmap, cliprect, state->spriteram16_buffered, 0x400);