summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/ddragon3.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/ddragon3.cpp')
-rw-r--r--src/mame/drivers/ddragon3.cpp196
1 files changed, 101 insertions, 95 deletions
diff --git a/src/mame/drivers/ddragon3.cpp b/src/mame/drivers/ddragon3.cpp
index dc92e9dbaea..fddd3b85eef 100644
--- a/src/mame/drivers/ddragon3.cpp
+++ b/src/mame/drivers/ddragon3.cpp
@@ -290,101 +290,107 @@ CUSTOM_INPUT_MEMBER(wwfwfest_state::dsw_c0_r)
*
*************************************/
-ADDRESS_MAP_START(ddragon3_state::ddragon3_map)
- AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0x000004, 0x000007) AM_WRITENOP
- AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE(ddragon3_fg_videoram_w) AM_SHARE("fg_videoram") /* Foreground (32x32 Tiles - 4 by per tile) */
- AM_RANGE(0x082000, 0x0827ff) AM_RAM_WRITE(ddragon3_bg_videoram_w) AM_SHARE("bg_videoram") /* Background (32x32 Tiles - 2 by per tile) */
- AM_RANGE(0x0c0000, 0x0c000f) AM_WRITE(ddragon3_scroll_w)
- AM_RANGE(0x100000, 0x100001) AM_READ_PORT("P1_P2")
- AM_RANGE(0x100002, 0x100003) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x100004, 0x100005) AM_READ_PORT("DSW")
- AM_RANGE(0x100006, 0x100007) AM_READ_PORT("P3")
- AM_RANGE(0x100000, 0x100001) AM_WRITE(ddragon3_vreg_w)
- AM_RANGE(0x100002, 0x100003) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x00ff)
- AM_RANGE(0x100004, 0x100005) AM_WRITE(irq6_ack_w)
- AM_RANGE(0x100006, 0x100007) AM_WRITE(irq5_ack_w)
- AM_RANGE(0x140000, 0x1405ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette") /* Palette RAM */
- AM_RANGE(0x180000, 0x180fff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x1c0000, 0x1c3fff) AM_RAM /* work RAM */
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(ddragon3_state::dd3b_map)
- AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE(ddragon3_fg_videoram_w) AM_SHARE("fg_videoram") /* Foreground (32x32 Tiles - 4 by per tile) */
- AM_RANGE(0x081000, 0x081fff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x082000, 0x0827ff) AM_RAM_WRITE(ddragon3_bg_videoram_w) AM_SHARE("bg_videoram") /* Background (32x32 Tiles - 2 by per tile) */
- AM_RANGE(0x0c0000, 0x0c000f) AM_WRITE(ddragon3_scroll_w)
- AM_RANGE(0x100000, 0x1005ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette") /* Palette RAM */
- AM_RANGE(0x140000, 0x140001) AM_WRITE(ddragon3_vreg_w)
- AM_RANGE(0x140002, 0x140003) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x00ff)
- AM_RANGE(0x140004, 0x140005) AM_WRITE(irq6_ack_w)
- AM_RANGE(0x140006, 0x140007) AM_WRITE(irq5_ack_w)
- AM_RANGE(0x140008, 0x140009) AM_DEVWRITE("spriteram", buffered_spriteram16_device, write)
- AM_RANGE(0x180000, 0x180001) AM_READ_PORT("IN0")
- AM_RANGE(0x180002, 0x180003) AM_READ_PORT("IN1")
- AM_RANGE(0x180004, 0x180005) AM_READ_PORT("IN2")
- AM_RANGE(0x180006, 0x180007) AM_READ_PORT("IN3")
- AM_RANGE(0x1c0000, 0x1c3fff) AM_RAM /* work RAM */
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(ddragon3_state::ctribe_map)
- AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE(ddragon3_fg_videoram_w) AM_SHARE("fg_videoram") /* Foreground (32x32 Tiles - 4 by per tile) */
- AM_RANGE(0x081000, 0x081fff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x082000, 0x0827ff) AM_RAM_WRITE(ddragon3_bg_videoram_w) AM_SHARE("bg_videoram") /* Background (32x32 Tiles - 2 by per tile) */
- AM_RANGE(0x082800, 0x082fff) AM_RAM
- AM_RANGE(0x0c0000, 0x0c000f) AM_READWRITE(ddragon3_scroll_r, ddragon3_scroll_w)
- AM_RANGE(0x100000, 0x1005ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette") /* Palette RAM */
- AM_RANGE(0x140000, 0x140001) AM_WRITE(ddragon3_vreg_w)
- AM_RANGE(0x140002, 0x140003) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x00ff)
- AM_RANGE(0x140004, 0x140005) AM_WRITE(irq6_ack_w)
- AM_RANGE(0x140006, 0x140007) AM_WRITE(irq5_ack_w)
- AM_RANGE(0x140008, 0x140009) AM_DEVWRITE("spriteram", buffered_spriteram16_device, write)
- AM_RANGE(0x180000, 0x180001) AM_READ_PORT("IN0")
- AM_RANGE(0x180002, 0x180003) AM_READ_PORT("IN1")
- AM_RANGE(0x180004, 0x180005) AM_READ_PORT("IN2")
- AM_RANGE(0x180006, 0x180007) AM_READ_PORT("IN3")
- AM_RANGE(0x1c0000, 0x1c3fff) AM_RAM /* work RAM */
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(wwfwfest_state::main_map)
- AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0x0c0000, 0x0c1fff) AM_RAM_WRITE(wwfwfest_fg0_videoram_w) AM_SHARE("fg0_videoram") /* FG0 Ram - 4 bytes per tile */
- AM_RANGE(0x0c2000, 0x0c3fff) AM_RAM AM_SHARE("spriteram") /* SPR Ram */
- AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE(ddragon3_fg_videoram_w) AM_SHARE("fg_videoram") /* BG0 Ram - 4 bytes per tile */
- AM_RANGE(0x082000, 0x082fff) AM_RAM_WRITE(ddragon3_bg_videoram_w) AM_SHARE("bg_videoram") /* BG1 Ram - 2 bytes per tile */
- AM_RANGE(0x100000, 0x100007) AM_READWRITE(ddragon3_scroll_r, ddragon3_scroll_w)
- AM_RANGE(0x10000a, 0x10000b) AM_WRITE(wwfwfest_flipscreen_w)
- AM_RANGE(0x140000, 0x140003) AM_WRITE(wwfwfest_irq_ack_w)
- AM_RANGE(0x14000c, 0x14000d) AM_WRITE(wwfwfest_soundwrite)
- AM_RANGE(0x140010, 0x140011) AM_WRITE8(wwfwfest_priority_w, 0x00ff)
- AM_RANGE(0x140020, 0x140021) AM_READ_PORT("P1")
- AM_RANGE(0x140022, 0x140023) AM_READ_PORT("P2")
- AM_RANGE(0x140024, 0x140025) AM_READ_PORT("P3")
- AM_RANGE(0x140026, 0x140027) AM_READ_PORT("P4")
- AM_RANGE(0x180000, 0x18ffff) AM_READWRITE(wwfwfest_paletteram_r,wwfwfest_paletteram_w) AM_SHARE("palette")
- AM_RANGE(0x1c0000, 0x1c3fff) AM_RAM /* Work Ram */
-ADDRESS_MAP_END
-
-
-ADDRESS_MAP_START(ddragon3_state::sound_map)
- AM_RANGE(0x0000, 0xbfff) AM_ROM
- AM_RANGE(0xc000, 0xc7ff) AM_RAM
- AM_RANGE(0xc800, 0xc801) AM_DEVREADWRITE("ym2151", ym2151_device, read, write)
- AM_RANGE(0xd800, 0xd800) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0xe000, 0xe000) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
- AM_RANGE(0xe800, 0xe800) AM_WRITE(oki_bankswitch_w)
-ADDRESS_MAP_END
-
-
-ADDRESS_MAP_START(ddragon3_state::ctribe_sound_map)
- AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0x87ff) AM_RAM
- AM_RANGE(0x8800, 0x8801) AM_DEVREADWRITE("ym2151", ym2151_device, status_r, write)
- AM_RANGE(0x9800, 0x9800) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0xa000, 0xa000) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
-ADDRESS_MAP_END
+void ddragon3_state::ddragon3_map(address_map &map)
+{
+ map(0x000000, 0x07ffff).rom();
+ map(0x000004, 0x000007).nopw();
+ map(0x080000, 0x080fff).ram().w(this, FUNC(ddragon3_state::ddragon3_fg_videoram_w)).share("fg_videoram"); /* Foreground (32x32 Tiles - 4 by per tile) */
+ map(0x082000, 0x0827ff).ram().w(this, FUNC(ddragon3_state::ddragon3_bg_videoram_w)).share("bg_videoram"); /* Background (32x32 Tiles - 2 by per tile) */
+ map(0x0c0000, 0x0c000f).w(this, FUNC(ddragon3_state::ddragon3_scroll_w));
+ map(0x100000, 0x100001).portr("P1_P2");
+ map(0x100002, 0x100003).portr("SYSTEM");
+ map(0x100004, 0x100005).portr("DSW");
+ map(0x100006, 0x100007).portr("P3");
+ map(0x100000, 0x100001).w(this, FUNC(ddragon3_state::ddragon3_vreg_w));
+ map(0x100003, 0x100003).w(m_soundlatch, FUNC(generic_latch_8_device::write));
+ map(0x100004, 0x100005).w(this, FUNC(ddragon3_state::irq6_ack_w));
+ map(0x100006, 0x100007).w(this, FUNC(ddragon3_state::irq5_ack_w));
+ map(0x140000, 0x1405ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); /* Palette RAM */
+ map(0x180000, 0x180fff).ram().share("spriteram");
+ map(0x1c0000, 0x1c3fff).ram(); /* work RAM */
+}
+
+void ddragon3_state::dd3b_map(address_map &map)
+{
+ map(0x000000, 0x07ffff).rom();
+ map(0x080000, 0x080fff).ram().w(this, FUNC(ddragon3_state::ddragon3_fg_videoram_w)).share("fg_videoram"); /* Foreground (32x32 Tiles - 4 by per tile) */
+ map(0x081000, 0x081fff).ram().share("spriteram");
+ map(0x082000, 0x0827ff).ram().w(this, FUNC(ddragon3_state::ddragon3_bg_videoram_w)).share("bg_videoram"); /* Background (32x32 Tiles - 2 by per tile) */
+ map(0x0c0000, 0x0c000f).w(this, FUNC(ddragon3_state::ddragon3_scroll_w));
+ map(0x100000, 0x1005ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); /* Palette RAM */
+ map(0x140000, 0x140001).w(this, FUNC(ddragon3_state::ddragon3_vreg_w));
+ map(0x140003, 0x140003).w(m_soundlatch, FUNC(generic_latch_8_device::write));
+ map(0x140004, 0x140005).w(this, FUNC(ddragon3_state::irq6_ack_w));
+ map(0x140006, 0x140007).w(this, FUNC(ddragon3_state::irq5_ack_w));
+ map(0x140008, 0x140009).w(m_spriteram, FUNC(buffered_spriteram16_device::write));
+ map(0x180000, 0x180001).portr("IN0");
+ map(0x180002, 0x180003).portr("IN1");
+ map(0x180004, 0x180005).portr("IN2");
+ map(0x180006, 0x180007).portr("IN3");
+ map(0x1c0000, 0x1c3fff).ram(); /* work RAM */
+}
+
+void ddragon3_state::ctribe_map(address_map &map)
+{
+ map(0x000000, 0x07ffff).rom();
+ map(0x080000, 0x080fff).ram().w(this, FUNC(ddragon3_state::ddragon3_fg_videoram_w)).share("fg_videoram"); /* Foreground (32x32 Tiles - 4 by per tile) */
+ map(0x081000, 0x081fff).ram().share("spriteram");
+ map(0x082000, 0x0827ff).ram().w(this, FUNC(ddragon3_state::ddragon3_bg_videoram_w)).share("bg_videoram"); /* Background (32x32 Tiles - 2 by per tile) */
+ map(0x082800, 0x082fff).ram();
+ map(0x0c0000, 0x0c000f).rw(this, FUNC(ddragon3_state::ddragon3_scroll_r), FUNC(ddragon3_state::ddragon3_scroll_w));
+ map(0x100000, 0x1005ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); /* Palette RAM */
+ map(0x140000, 0x140001).w(this, FUNC(ddragon3_state::ddragon3_vreg_w));
+ map(0x140003, 0x140003).w(m_soundlatch, FUNC(generic_latch_8_device::write));
+ map(0x140004, 0x140005).w(this, FUNC(ddragon3_state::irq6_ack_w));
+ map(0x140006, 0x140007).w(this, FUNC(ddragon3_state::irq5_ack_w));
+ map(0x140008, 0x140009).w(m_spriteram, FUNC(buffered_spriteram16_device::write));
+ map(0x180000, 0x180001).portr("IN0");
+ map(0x180002, 0x180003).portr("IN1");
+ map(0x180004, 0x180005).portr("IN2");
+ map(0x180006, 0x180007).portr("IN3");
+ map(0x1c0000, 0x1c3fff).ram(); /* work RAM */
+}
+
+void wwfwfest_state::main_map(address_map &map)
+{
+ map(0x000000, 0x07ffff).rom();
+ map(0x0c0000, 0x0c1fff).ram().w(this, FUNC(wwfwfest_state::wwfwfest_fg0_videoram_w)).share("fg0_videoram"); /* FG0 Ram - 4 bytes per tile */
+ map(0x0c2000, 0x0c3fff).ram().share("spriteram"); /* SPR Ram */
+ map(0x080000, 0x080fff).ram().w(this, FUNC(wwfwfest_state::ddragon3_fg_videoram_w)).share("fg_videoram"); /* BG0 Ram - 4 bytes per tile */
+ map(0x082000, 0x082fff).ram().w(this, FUNC(wwfwfest_state::ddragon3_bg_videoram_w)).share("bg_videoram"); /* BG1 Ram - 2 bytes per tile */
+ map(0x100000, 0x100007).rw(this, FUNC(wwfwfest_state::ddragon3_scroll_r), FUNC(wwfwfest_state::ddragon3_scroll_w));
+ map(0x10000a, 0x10000b).w(this, FUNC(wwfwfest_state::wwfwfest_flipscreen_w));
+ map(0x140000, 0x140003).w(this, FUNC(wwfwfest_state::wwfwfest_irq_ack_w));
+ map(0x14000c, 0x14000d).w(this, FUNC(wwfwfest_state::wwfwfest_soundwrite));
+ map(0x140011, 0x140011).w(this, FUNC(wwfwfest_state::wwfwfest_priority_w));
+ map(0x140020, 0x140021).portr("P1");
+ map(0x140022, 0x140023).portr("P2");
+ map(0x140024, 0x140025).portr("P3");
+ map(0x140026, 0x140027).portr("P4");
+ map(0x180000, 0x18ffff).rw(this, FUNC(wwfwfest_state::wwfwfest_paletteram_r), FUNC(wwfwfest_state::wwfwfest_paletteram_w)).share("palette");
+ map(0x1c0000, 0x1c3fff).ram(); /* Work Ram */
+}
+
+
+void ddragon3_state::sound_map(address_map &map)
+{
+ map(0x0000, 0xbfff).rom();
+ map(0xc000, 0xc7ff).ram();
+ map(0xc800, 0xc801).rw("ym2151", FUNC(ym2151_device::read), FUNC(ym2151_device::write));
+ map(0xd800, 0xd800).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+ map(0xe000, 0xe000).r(m_soundlatch, FUNC(generic_latch_8_device::read));
+ map(0xe800, 0xe800).w(this, FUNC(ddragon3_state::oki_bankswitch_w));
+}
+
+
+void ddragon3_state::ctribe_sound_map(address_map &map)
+{
+ map(0x0000, 0x7fff).rom();
+ map(0x8000, 0x87ff).ram();
+ map(0x8800, 0x8801).rw("ym2151", FUNC(ym2151_device::status_r), FUNC(ym2151_device::write));
+ map(0x9800, 0x9800).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+ map(0xa000, 0xa000).r(m_soundlatch, FUNC(generic_latch_8_device::read));
+}
/*************************************
*