From 3c9562d34c977a4784d3ba9718a81d32733672ee Mon Sep 17 00:00:00 2001 From: angelosa Date: Tue, 29 May 2018 20:43:43 +0200 Subject: tatsumi.cpp: first pass of merging memory maps in cycle warriors / big fight (nw) --- src/mame/drivers/tatsumi.cpp | 83 ++++++++++++++------------------------------ src/mame/includes/tatsumi.h | 1 + 2 files changed, 27 insertions(+), 57 deletions(-) diff --git a/src/mame/drivers/tatsumi.cpp b/src/mame/drivers/tatsumi.cpp index 41864c115a8..be8420ba6a8 100644 --- a/src/mame/drivers/tatsumi.cpp +++ b/src/mame/drivers/tatsumi.cpp @@ -341,11 +341,8 @@ void roundup5_state::roundup5_z80_map(address_map &map) /******************************************************************************/ -void cyclwarr_state::cyclwarr_68000a_map(address_map &map) +void cyclwarr_state::common_map(address_map &map) { - map(0x000000, 0x00ffff).ram().share("cw_cpua_ram"); - map(0x03e000, 0x03efff).ram(); - map(0x040000, 0x04ffff).ram().share("cw_cpub_ram"); map(0x080000, 0x08ffff).rw(this, FUNC(cyclwarr_state::cyclwarr_videoram_r<1>), FUNC(cyclwarr_state::cyclwarr_videoram_w<1>)).share("cw_videoram1"); map(0x090000, 0x09ffff).rw(this, FUNC(cyclwarr_state::cyclwarr_videoram_r<0>), FUNC(cyclwarr_state::cyclwarr_videoram_w<0>)).share("cw_videoram0"); @@ -353,14 +350,23 @@ void cyclwarr_state::cyclwarr_68000a_map(address_map &map) map(0x0a4000, 0x0a4001).w(this, FUNC(cyclwarr_state::bigfight_a40000_w)); map(0x0a6000, 0x0a6001).w(this, FUNC(cyclwarr_state::bigfight_a60000_w)); map(0x0ac000, 0x0ac003).w(this, FUNC(tatsumi_state::hd6445_crt_w)).umask16(0x00ff); - + map(0x0b8000, 0x0b8001).w(this, FUNC(cyclwarr_state::cyclwarr_sound_w)).umask16(0xff00); map(0x0b9000, 0x0b900f).rw("io1", FUNC(cxd1095_device::read), FUNC(cxd1095_device::write)).umask16(0x00ff).cswidth(16); map(0x0ba000, 0x0ba00f).rw("io2", FUNC(cxd1095_device::read), FUNC(cxd1095_device::write)).umask16(0x00ff).cswidth(16); map(0x0bc000, 0x0bc001).w(this, FUNC(cyclwarr_state::output_w)); + map(0x0c0000, 0x0c3fff).rw(this, FUNC(cyclwarr_state::cyclwarr_sprite_r), FUNC(cyclwarr_state::cyclwarr_sprite_w)).share("spriteram"); map(0x0ca000, 0x0ca1ff).rw(this, FUNC(cyclwarr_state::tatsumi_sprite_control_r), FUNC(cyclwarr_state::tatsumi_sprite_control_w)).share("obj_ctrl_ram"); map(0x0d0000, 0x0d3fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); +} + +void cyclwarr_state::cyclwarr_68000a_map(address_map &map) +{ + map(0x000000, 0x00ffff).ram().share("cw_cpua_ram"); + map(0x03e000, 0x03efff).ram(); + map(0x040000, 0x04ffff).ram().share("cw_cpub_ram"); + common_map(map); map(0x140000, 0x1bffff).bankr("bank2"); /* CPU B ROM */ map(0x2c0000, 0x33ffff).bankr("bank1"); /* CPU A ROM */ } @@ -368,35 +374,11 @@ void cyclwarr_state::cyclwarr_68000a_map(address_map &map) void cyclwarr_state::cyclwarr_68000b_map(address_map &map) { map(0x000000, 0x00ffff).ram().share("cw_cpub_ram"); - - map(0x080000, 0x08ffff).rw(this, FUNC(cyclwarr_state::cyclwarr_videoram_r<1>), FUNC(cyclwarr_state::cyclwarr_videoram_w<1>)); - map(0x090000, 0x09ffff).rw(this, FUNC(cyclwarr_state::cyclwarr_videoram_r<0>), FUNC(cyclwarr_state::cyclwarr_videoram_w<0>)); - - map(0x0a2000, 0x0a2007).w(this, FUNC(cyclwarr_state::bigfight_a20000_w)); - map(0x0a4000, 0x0a4001).w(this, FUNC(cyclwarr_state::bigfight_a40000_w)); - map(0x0a6000, 0x0a6001).w(this, FUNC(cyclwarr_state::bigfight_a60000_w)); - - map(0x0b9000, 0x0b900f).rw("io1", FUNC(cxd1095_device::read), FUNC(cxd1095_device::write)).umask16(0x00ff).cswidth(16); - map(0x0ba000, 0x0ba00f).rw("io2", FUNC(cxd1095_device::read), FUNC(cxd1095_device::write)).umask16(0x00ff).cswidth(16); - map(0x0c0000, 0x0c3fff).rw(this, FUNC(cyclwarr_state::cyclwarr_sprite_r), FUNC(cyclwarr_state::cyclwarr_sprite_w)); - map(0x0ca000, 0x0ca1ff).rw(this, FUNC(cyclwarr_state::tatsumi_sprite_control_r), FUNC(cyclwarr_state::tatsumi_sprite_control_w)).share("obj_ctrl_ram"); - map(0x0d0000, 0x0d3fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); + common_map(map); map(0x140000, 0x1bffff).bankr("bank2"); /* CPU B ROM */ map(0x2c0000, 0x33ffff).bankr("bank1"); /* CPU A ROM */ } -void cyclwarr_state::cyclwarr_z80_map(address_map &map) -{ - map(0x0000, 0xdfff).rom(); - map(0xe000, 0xffef).ram(); - map(0xfff0, 0xfff1).r(this, FUNC(cyclwarr_state::tatsumi_hack_ym2151_r)).w(m_ym2151, FUNC(ym2151_device::write)); - map(0xfff4, 0xfff4).r(this, FUNC(cyclwarr_state::tatsumi_hack_oki_r)).w(m_oki, FUNC(okim6295_device::write)); - map(0xfffc, 0xfffc).r(m_soundlatch, FUNC(generic_latch_8_device::read)); - map(0xfffe, 0xfffe).nopw(); -} - -/******************************************************************************/ - // TODO: merge with above void cyclwarr_state::bigfight_68000a_map(address_map &map) { @@ -404,22 +386,7 @@ void cyclwarr_state::bigfight_68000a_map(address_map &map) map(0x03e000, 0x03efff).ram(); map(0x040000, 0x04ffff).ram().share("cw_cpub_ram"); - - map(0x080000, 0x08ffff).rw(this, FUNC(cyclwarr_state::cyclwarr_videoram_r<1>), FUNC(cyclwarr_state::cyclwarr_videoram_w<1>)).share("cw_videoram1"); - map(0x090000, 0x09ffff).rw(this, FUNC(cyclwarr_state::cyclwarr_videoram_r<0>), FUNC(cyclwarr_state::cyclwarr_videoram_w<0>)).share("cw_videoram0"); - - map(0x0a2000, 0x0a2007).w(this, FUNC(cyclwarr_state::bigfight_a20000_w)); - map(0x0a4000, 0x0a4001).w(this, FUNC(cyclwarr_state::bigfight_a40000_w)); - map(0x0a6000, 0x0a6001).w(this, FUNC(cyclwarr_state::bigfight_a60000_w)); - map(0x0ac000, 0x0ac003).w(this, FUNC(tatsumi_state::hd6445_crt_w)).umask16(0x00ff); - - map(0x0b8000, 0x0b8001).w(this, FUNC(cyclwarr_state::cyclwarr_sound_w)).umask16(0xff00); - map(0x0b9000, 0x0b900f).rw("io1", FUNC(cxd1095_device::read), FUNC(cxd1095_device::write)).umask16(0x00ff).cswidth(16); - map(0x0ba000, 0x0ba00f).rw("io2", FUNC(cxd1095_device::read), FUNC(cxd1095_device::write)).umask16(0x00ff).cswidth(16); - map(0x0bc000, 0x0bc001).w(this, FUNC(cyclwarr_state::output_w)); - map(0x0c0000, 0x0c3fff).rw(this, FUNC(cyclwarr_state::cyclwarr_sprite_r), FUNC(cyclwarr_state::cyclwarr_sprite_w)).share("spriteram"); - map(0x0ca000, 0x0ca1ff).rw(this, FUNC(cyclwarr_state::tatsumi_sprite_control_r), FUNC(cyclwarr_state::tatsumi_sprite_control_w)).share("obj_ctrl_ram"); - map(0x0d0000, 0x0d3fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); + common_map(map); map(0x100000, 0x17ffff).bankr("bank2"); /* CPU A ROM */ map(0x200000, 0x27ffff).bankr("bank1"); /* CPU B ROM */ } @@ -427,21 +394,23 @@ void cyclwarr_state::bigfight_68000a_map(address_map &map) void cyclwarr_state::bigfight_68000b_map(address_map &map) { map(0x000000, 0x00ffff).ram().share("cw_cpub_ram"); - map(0x080000, 0x08ffff).rw(this, FUNC(cyclwarr_state::cyclwarr_videoram_r<1>), FUNC(cyclwarr_state::cyclwarr_videoram_w<1>)); - map(0x090000, 0x09ffff).rw(this, FUNC(cyclwarr_state::cyclwarr_videoram_r<0>), FUNC(cyclwarr_state::cyclwarr_videoram_w<0>)); - map(0x0a2000, 0x0a2007).w(this, FUNC(cyclwarr_state::bigfight_a20000_w)); - map(0x0a4000, 0x0a4001).w(this, FUNC(cyclwarr_state::bigfight_a40000_w)); - map(0x0a6000, 0x0a6001).w(this, FUNC(cyclwarr_state::bigfight_a60000_w)); - - map(0x0b9000, 0x0b900f).rw("io1", FUNC(cxd1095_device::read), FUNC(cxd1095_device::write)).umask16(0x00ff).cswidth(16); - map(0x0ba000, 0x0ba00f).rw("io2", FUNC(cxd1095_device::read), FUNC(cxd1095_device::write)).umask16(0x00ff).cswidth(16); - map(0x0c0000, 0x0c3fff).rw(this, FUNC(cyclwarr_state::cyclwarr_sprite_r), FUNC(cyclwarr_state::cyclwarr_sprite_w)); - map(0x0ca000, 0x0ca1ff).rw(this, FUNC(cyclwarr_state::tatsumi_sprite_control_r), FUNC(cyclwarr_state::tatsumi_sprite_control_w)).share("obj_ctrl_ram"); - map(0x0d0000, 0x0d3fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); + common_map(map); map(0x100000, 0x17ffff).bankr("bank2"); /* CPU A ROM */ map(0x200000, 0x27ffff).bankr("bank1"); /* CPU B ROM */ } + +void cyclwarr_state::cyclwarr_z80_map(address_map &map) +{ + map(0x0000, 0xdfff).rom(); + map(0xe000, 0xffef).ram(); + map(0xfff0, 0xfff1).r(this, FUNC(cyclwarr_state::tatsumi_hack_ym2151_r)).w(m_ym2151, FUNC(ym2151_device::write)); + map(0xfff4, 0xfff4).r(this, FUNC(cyclwarr_state::tatsumi_hack_oki_r)).w(m_oki, FUNC(okim6295_device::write)); + map(0xfffc, 0xfffc).r(m_soundlatch, FUNC(generic_latch_8_device::read)); + map(0xfffe, 0xfffe).nopw(); +} + + /******************************************************************************/ static INPUT_PORTS_START( apache3 ) diff --git a/src/mame/includes/tatsumi.h b/src/mame/includes/tatsumi.h index f2ab3313726..ad25dbc6d46 100644 --- a/src/mame/includes/tatsumi.h +++ b/src/mame/includes/tatsumi.h @@ -214,6 +214,7 @@ public: void cyclwarr(machine_config &config); void bigfight(machine_config &config); + void common_map(address_map &map); void bigfight_68000a_map(address_map &map); void bigfight_68000b_map(address_map &map); void cyclwarr_68000a_map(address_map &map); -- cgit v1.2.3