summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/deco32.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/deco32.cpp')
-rw-r--r--src/mame/drivers/deco32.cpp40
1 files changed, 16 insertions, 24 deletions
diff --git a/src/mame/drivers/deco32.cpp b/src/mame/drivers/deco32.cpp
index ca68923befb..3cbe6c4e564 100644
--- a/src/mame/drivers/deco32.cpp
+++ b/src/mame/drivers/deco32.cpp
@@ -576,9 +576,9 @@ void nslasher_state::tattass_map(address_map &map)
map(0x150000, 0x150003).w(FUNC(nslasher_state::tattass_control_w)); /* Volume port/Eprom/Priority */
map(0x162000, 0x162fff).ram(); /* 'Jack' RAM!? */
map(0x163000, 0x16309f).rw(m_deco_ace, FUNC(deco_ace_device::ace_r), FUNC(deco_ace_device::ace_w)).umask32(0x0000ffff); /* 'Ace' RAM */
- map(0x164000, 0x164003).nopw(); /* Palette control BG2/3 ($1a constant) */
- map(0x164004, 0x164007).nopw(); /* Palette control Obj1 ($6 constant) */
- map(0x164008, 0x16400b).nopw(); /* Palette control Obj2 ($5 constant) */
+ map(0x164000, 0x164000).w(FUNC(nslasher_state::tilemap_color_bank_w));
+ map(0x164004, 0x164004).w(FUNC(nslasher_state::sprite1_color_bank_w));
+ map(0x164008, 0x164008).w(FUNC(nslasher_state::sprite2_color_bank_w));
map(0x16400c, 0x16400f).nopw();
map(0x168000, 0x169fff).rw(m_deco_ace, FUNC(deco_ace_device::buffered_palette_r), FUNC(deco_ace_device::buffered_palette_w));
map(0x16c000, 0x16c003).nopw();
@@ -614,9 +614,9 @@ void nslasher_state::nslasher_map(address_map &map)
map(0x150000, 0x150000).w(FUNC(nslasher_state::eeprom_w));
map(0x150001, 0x150001).w(FUNC(nslasher_state::volume_w));
map(0x163000, 0x16309f).rw(m_deco_ace, FUNC(deco_ace_device::ace_r), FUNC(deco_ace_device::ace_w)).umask32(0x0000ffff); /* 'Ace' RAM */
- map(0x164000, 0x164003).nopw(); /* Palette control BG2/3 ($1a constant) */
- map(0x164004, 0x164007).nopw(); /* Palette control Obj1 ($4 constant) */
- map(0x164008, 0x16400b).nopw(); /* Palette control Obj2 ($6 constant) */
+ map(0x164000, 0x164000).w(FUNC(nslasher_state::tilemap_color_bank_w));
+ map(0x164004, 0x164004).w(FUNC(nslasher_state::sprite1_color_bank_w));
+ map(0x164008, 0x164008).w(FUNC(nslasher_state::sprite2_color_bank_w));
map(0x16400c, 0x16400f).nopw();
map(0x168000, 0x169fff).rw(m_deco_ace, FUNC(deco_ace_device::buffered_palette_r), FUNC(deco_ace_device::buffered_palette_w));
map(0x16c000, 0x16c003).nopw();
@@ -976,7 +976,7 @@ void deco32_state::eeprom_w(u8 data)
// --5----- eeprom clk
// ---4---- eeprom di
// ----3--- unknown
- // -----2-- color fading effect (0 = without obj1, 1 = with obj1) (used in nslasher, TODO : not implemented)
+ // -----2-- color fading effect mode (0 = without obj1, 1 = with obj1)
// ------1- bg2/3 joint mode (8bpp) (not used by fghthist?)
// -------0 layer priority
@@ -1124,7 +1124,7 @@ void nslasher_state::tattass_control_w(offs_t offset, u32 data, u32 mem_mask)
}
/* Playfield control - Only written in full word memory accesses */
- pri_w(data & 0x3); /* Bit 0 - layer priority toggle, Bit 1 - BG2/3 Joint mode (8bpp) */
+ pri_w(data & 0x7); /* Bit 0 - layer priority toggle, Bit 1 - BG2/3 Joint mode (8bpp), Bit 2 - color fading effect mode (with/without OBJ1)? */
/* Sound board reset control */
if (BIT(data, 7))
@@ -1816,20 +1816,12 @@ static GFXDECODE_START( gfx_dragngun )
GFXDECODE_ENTRY( "gfx4", 0, spritelayout5, 0, 32 ) /* Sprites 16x16 */
GFXDECODE_END
-static GFXDECODE_START( gfx_tattass )
- GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0x800, 128 ) /* Characters 8x8 */
- GFXDECODE_ENTRY( "gfx1", 0, tilelayout, 0, 128 ) /* Tiles 16x16 */
- GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 0, 128 ) /* Tiles 16x16 */
- GFXDECODE_ENTRY( "gfx3", 0, tilelayout_5bpp, 0x600, 16 ) /* Sprites 16x16 */
- GFXDECODE_ENTRY( "gfx4", 0, tilelayout, 0x500, 16 ) /* Sprites 16x16 */
-GFXDECODE_END
-
static GFXDECODE_START( gfx_nslasher )
- GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0x800, 128 ) /* Characters 8x8 */
- GFXDECODE_ENTRY( "gfx1", 0, tilelayout, 0, 128 ) /* Tiles 16x16 */
- GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 0, 128 ) /* Tiles 16x16 */
- GFXDECODE_ENTRY( "gfx3", 0, tilelayout_5bpp, 0x400, 16 ) /* Sprites 16x16 */
- GFXDECODE_ENTRY( "gfx4", 0, tilelayout, 0x600, 16 ) /* Sprites 16x16 */
+ GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0x800, 128 ) /* Characters 8x8 */
+ GFXDECODE_ENTRY( "gfx1", 0, tilelayout, 0, 128 ) /* Tiles 16x16 */
+ GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 0, 128 ) /* Tiles 16x16 */
+ GFXDECODE_ENTRY( "gfx3", 0, tilelayout_5bpp, 0, 16 ) /* Sprites 16x16 */
+ GFXDECODE_ENTRY( "gfx4", 0, tilelayout, 0, 16 ) /* Sprites 16x16 */
GFXDECODE_END
@@ -2265,7 +2257,7 @@ void nslasher_state::tattass(machine_config &config)
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
m_screen->set_raw(XTAL(28'000'000) / 4, 442, 0, 320, 274, 8, 248);
- m_screen->set_screen_update(FUNC(nslasher_state::screen_update));
+ m_screen->set_screen_update(FUNC(nslasher_state::screen_update_tattass));
DECO_ACE(config, m_deco_ace, 0);
@@ -2307,7 +2299,7 @@ void nslasher_state::tattass(machine_config &config)
m_sprgen[1]->set_gfx_region(4);
m_sprgen[1]->set_gfxdecode_tag(m_gfxdecode);
- GFXDECODE(config, m_gfxdecode, m_deco_ace, gfx_tattass);
+ GFXDECODE(config, m_gfxdecode, m_deco_ace, gfx_nslasher);
DECO104PROT(config, m_ioprot, 0);
m_ioprot->port_a_cb().set_ioport("IN0");
@@ -2339,7 +2331,7 @@ void nslasher_state::nslasher(machine_config &config)
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
m_screen->set_raw(XTAL(28'322'000) / 4, 442, 0, 320, 274, 8, 248);
- m_screen->set_screen_update(FUNC(nslasher_state::screen_update));
+ m_screen->set_screen_update(FUNC(nslasher_state::screen_update_nslasher));
DECO_ACE(config, m_deco_ace, 0);