diff options
Diffstat (limited to 'src/mame/drivers/taotaido.cpp')
-rw-r--r-- | src/mame/drivers/taotaido.cpp | 63 |
1 files changed, 33 insertions, 30 deletions
diff --git a/src/mame/drivers/taotaido.cpp b/src/mame/drivers/taotaido.cpp index c80d79e92c1..82c4a436742 100644 --- a/src/mame/drivers/taotaido.cpp +++ b/src/mame/drivers/taotaido.cpp @@ -96,23 +96,24 @@ WRITE8_MEMBER(taotaido_state::unknown_output_w) // Bits 5, 4 also used? } -ADDRESS_MAP_START(taotaido_state::main_map) - AM_RANGE(0x000000, 0x0fffff) AM_ROM - AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(bgvideoram_w) AM_SHARE("bgram") // bg ram? - AM_RANGE(0xa00000, 0xa01fff) AM_RAM AM_SHARE("spriteram") // sprite ram - AM_RANGE(0xc00000, 0xc0ffff) AM_RAM AM_SHARE("spriteram2") // sprite tile lookup ram - AM_RANGE(0xfe0000, 0xfeffff) AM_RAM // main ram - AM_RANGE(0xffc000, 0xffcfff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette") // palette ram - AM_RANGE(0xffe000, 0xffe3ff) AM_RAM AM_SHARE("scrollram") // rowscroll / rowselect / scroll ram - AM_RANGE(0xffff80, 0xffff9f) AM_DEVREADWRITE8("io1", vs9209_device, read, write, 0x00ff) - AM_RANGE(0xffffa0, 0xffffbf) AM_DEVREADWRITE8("io2", vs9209_device, read, write, 0x00ff) - AM_RANGE(0xffff00, 0xffff0f) AM_WRITE(tileregs_w) - AM_RANGE(0xffff10, 0xffff11) AM_WRITENOP // unknown - AM_RANGE(0xffff20, 0xffff21) AM_WRITENOP // unknown - flip screen related - AM_RANGE(0xffff40, 0xffff47) AM_WRITE(sprite_character_bank_select_w) - AM_RANGE(0xffffc0, 0xffffc1) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x00ff) // seems right - AM_RANGE(0xffffe0, 0xffffe1) AM_READ(pending_command_r) // guess - seems to be needed for all the sounds to work -ADDRESS_MAP_END +void taotaido_state::main_map(address_map &map) +{ + map(0x000000, 0x0fffff).rom(); + map(0x800000, 0x803fff).ram().w(this, FUNC(taotaido_state::bgvideoram_w)).share("bgram"); // bg ram? + map(0xa00000, 0xa01fff).ram().share("spriteram"); // sprite ram + map(0xc00000, 0xc0ffff).ram().share("spriteram2"); // sprite tile lookup ram + map(0xfe0000, 0xfeffff).ram(); // main ram + map(0xffc000, 0xffcfff).ram().w("palette", FUNC(palette_device::write16)).share("palette"); // palette ram + map(0xffe000, 0xffe3ff).ram().share("scrollram"); // rowscroll / rowselect / scroll ram + map(0xffff80, 0xffff9f).rw("io1", FUNC(vs9209_device::read), FUNC(vs9209_device::write)).umask16(0x00ff); + map(0xffffa0, 0xffffbf).rw("io2", FUNC(vs9209_device::read), FUNC(vs9209_device::write)).umask16(0x00ff); + map(0xffff00, 0xffff0f).w(this, FUNC(taotaido_state::tileregs_w)); + map(0xffff10, 0xffff11).nopw(); // unknown + map(0xffff20, 0xffff21).nopw(); // unknown - flip screen related + map(0xffff40, 0xffff47).w(this, FUNC(taotaido_state::sprite_character_bank_select_w)); + map(0xffffc1, 0xffffc1).w(m_soundlatch, FUNC(generic_latch_8_device::write)); // seems right + map(0xffffe0, 0xffffe1).r(this, FUNC(taotaido_state::pending_command_r)); // guess - seems to be needed for all the sounds to work +} /* sound cpu - same as aerofgt */ @@ -122,19 +123,21 @@ WRITE8_MEMBER(taotaido_state::sh_bankswitch_w) membank("soundbank")->set_entry(data & 0x03); } -ADDRESS_MAP_START(taotaido_state::sound_map) - AM_RANGE(0x0000, 0x77ff) AM_ROM - AM_RANGE(0x7800, 0x7fff) AM_RAM - AM_RANGE(0x8000, 0xffff) AM_ROMBANK("soundbank") -ADDRESS_MAP_END - -ADDRESS_MAP_START(taotaido_state::sound_port_map) - ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) - AM_RANGE(0x04, 0x04) AM_WRITE(sh_bankswitch_w) - AM_RANGE(0x08, 0x08) AM_DEVWRITE("soundlatch", generic_latch_8_device, acknowledge_w) - AM_RANGE(0x0c, 0x0c) AM_DEVREAD("soundlatch", generic_latch_8_device, read) -ADDRESS_MAP_END +void taotaido_state::sound_map(address_map &map) +{ + map(0x0000, 0x77ff).rom(); + map(0x7800, 0x7fff).ram(); + map(0x8000, 0xffff).bankr("soundbank"); +} + +void taotaido_state::sound_port_map(address_map &map) +{ + map.global_mask(0xff); + map(0x00, 0x03).rw("ymsnd", FUNC(ym2610_device::read), FUNC(ym2610_device::write)); + map(0x04, 0x04).w(this, FUNC(taotaido_state::sh_bankswitch_w)); + map(0x08, 0x08).w(m_soundlatch, FUNC(generic_latch_8_device::acknowledge_w)); + map(0x0c, 0x0c).r(m_soundlatch, FUNC(generic_latch_8_device::read)); +} static INPUT_PORTS_START( taotaido ) |