summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/tmnt.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/tmnt.cpp')
-rw-r--r--src/mame/drivers/tmnt.cpp662
1 files changed, 341 insertions, 321 deletions
diff --git a/src/mame/drivers/tmnt.cpp b/src/mame/drivers/tmnt.cpp
index ddeca3654a1..6418d096e3e 100644
--- a/src/mame/drivers/tmnt.cpp
+++ b/src/mame/drivers/tmnt.cpp
@@ -469,105 +469,110 @@ WRITE8_MEMBER(tmnt_state::cuebrick_nvbank_w)
membank("nvrambank")->set_entry(data);
}
-ADDRESS_MAP_START(tmnt_state::cuebrick_main_map)
- AM_RANGE(0x000000, 0x01ffff) AM_ROM
- AM_RANGE(0x040000, 0x043fff) AM_RAM /* main RAM */
- AM_RANGE(0x060000, 0x063fff) AM_RAM /* main RAM */
- AM_RANGE(0x080000, 0x080fff) AM_DEVREADWRITE8("palette", palette_device, read8, write8, 0x00ff) AM_SHARE("palette")
- AM_RANGE(0x0a0000, 0x0a0001) AM_READ_PORT("COINS") AM_WRITE(tmnt_0a0000_w)
- AM_RANGE(0x0a0002, 0x0a0003) AM_READ_PORT("P1")
- AM_RANGE(0x0a0004, 0x0a0005) AM_READ_PORT("P2")
- AM_RANGE(0x0a0010, 0x0a0011) AM_READ_PORT("DSW2") AM_DEVWRITE("watchdog", watchdog_timer_device, reset16_w)
- AM_RANGE(0x0a0012, 0x0a0013) AM_READ_PORT("DSW1")
- AM_RANGE(0x0a0018, 0x0a0019) AM_READ_PORT("DSW3")
- AM_RANGE(0x0b0000, 0x0b03ff) AM_RAMBANK("nvrambank")
- AM_RANGE(0x0b0400, 0x0b0401) AM_WRITE8(cuebrick_nvbank_w, 0xff00)
- AM_RANGE(0x0c0000, 0x0c0003) AM_DEVREADWRITE8("ymsnd", ym2151_device, read, write, 0xff00)
- AM_RANGE(0x100000, 0x107fff) AM_READWRITE(k052109_word_noA12_r, k052109_word_noA12_w)
- AM_RANGE(0x140000, 0x140007) AM_DEVREADWRITE8("k051960", k051960_device, k051937_r, k051937_w, 0xffff)
- AM_RANGE(0x140400, 0x1407ff) AM_DEVREADWRITE8("k051960", k051960_device, k051960_r, k051960_w, 0xffff)
-ADDRESS_MAP_END
-
-
-ADDRESS_MAP_START(tmnt_state::mia_main_map)
- AM_RANGE(0x000000, 0x03ffff) AM_ROM
- AM_RANGE(0x040000, 0x043fff) AM_RAM /* main RAM */
- AM_RANGE(0x060000, 0x063fff) AM_RAM /* main RAM */
- AM_RANGE(0x080000, 0x080fff) AM_DEVREADWRITE8("palette", palette_device, read8, write8, 0x00ff) AM_SHARE("palette")
- AM_RANGE(0x0a0000, 0x0a0001) AM_READ_PORT("COINS") AM_WRITE(tmnt_0a0000_w)
- AM_RANGE(0x0a0002, 0x0a0003) AM_READ_PORT("P1")
- AM_RANGE(0x0a0004, 0x0a0005) AM_READ_PORT("P2")
- AM_RANGE(0x0a0008, 0x0a0009) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x00ff)
- AM_RANGE(0x0a0010, 0x0a0011) AM_READ_PORT("DSW1") AM_DEVWRITE("watchdog", watchdog_timer_device, reset16_w)
- AM_RANGE(0x0a0012, 0x0a0013) AM_READ_PORT("DSW2")
- AM_RANGE(0x0a0018, 0x0a0019) AM_READ_PORT("DSW3")
+void tmnt_state::cuebrick_main_map(address_map &map)
+{
+ map(0x000000, 0x01ffff).rom();
+ map(0x040000, 0x043fff).ram(); /* main RAM */
+ map(0x060000, 0x063fff).ram(); /* main RAM */
+ map(0x080000, 0x080fff).rw(m_palette, FUNC(palette_device::read8), FUNC(palette_device::write8)).umask16(0x00ff).share("palette");
+ map(0x0a0000, 0x0a0001).portr("COINS").w(this, FUNC(tmnt_state::tmnt_0a0000_w));
+ map(0x0a0002, 0x0a0003).portr("P1");
+ map(0x0a0004, 0x0a0005).portr("P2");
+ map(0x0a0010, 0x0a0011).portr("DSW2").w("watchdog", FUNC(watchdog_timer_device::reset16_w));
+ map(0x0a0012, 0x0a0013).portr("DSW1");
+ map(0x0a0018, 0x0a0019).portr("DSW3");
+ map(0x0b0000, 0x0b03ff).bankrw("nvrambank");
+ map(0x0b0400, 0x0b0400).w(this, FUNC(tmnt_state::cuebrick_nvbank_w));
+ map(0x0c0000, 0x0c0003).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write)).umask16(0xff00);
+ map(0x100000, 0x107fff).rw(this, FUNC(tmnt_state::k052109_word_noA12_r), FUNC(tmnt_state::k052109_word_noA12_w));
+ map(0x140000, 0x140007).rw(m_k051960, FUNC(k051960_device::k051937_r), FUNC(k051960_device::k051937_w));
+ map(0x140400, 0x1407ff).rw(m_k051960, FUNC(k051960_device::k051960_r), FUNC(k051960_device::k051960_w));
+}
+
+
+void tmnt_state::mia_main_map(address_map &map)
+{
+ map(0x000000, 0x03ffff).rom();
+ map(0x040000, 0x043fff).ram(); /* main RAM */
+ map(0x060000, 0x063fff).ram(); /* main RAM */
+ map(0x080000, 0x080fff).rw(m_palette, FUNC(palette_device::read8), FUNC(palette_device::write8)).umask16(0x00ff).share("palette");
+ map(0x0a0000, 0x0a0001).portr("COINS").w(this, FUNC(tmnt_state::tmnt_0a0000_w));
+ map(0x0a0002, 0x0a0003).portr("P1");
+ map(0x0a0004, 0x0a0005).portr("P2");
+ map(0x0a0009, 0x0a0009).w("soundlatch", FUNC(generic_latch_8_device::write));
+ map(0x0a0010, 0x0a0011).portr("DSW1").w("watchdog", FUNC(watchdog_timer_device::reset16_w));
+ map(0x0a0012, 0x0a0013).portr("DSW2");
+ map(0x0a0018, 0x0a0019).portr("DSW3");
#if 0
- AM_RANGE(0x0c0000, 0x0c0001) AM_WRITE(tmnt_priority_w)
+ map(0x0c0000, 0x0c0001).w(this, FUNC(tmnt_state::tmnt_priority_w));
#endif
- AM_RANGE(0x100000, 0x107fff) AM_READWRITE(k052109_word_noA12_r, k052109_word_noA12_w)
+ map(0x100000, 0x107fff).rw(this, FUNC(tmnt_state::k052109_word_noA12_r), FUNC(tmnt_state::k052109_word_noA12_w));
// AM_RANGE(0x10e800, 0x10e801) AM_WRITENOP ???
- AM_RANGE(0x140000, 0x140007) AM_DEVREADWRITE8("k051960", k051960_device, k051937_r, k051937_w, 0xffff)
- AM_RANGE(0x140400, 0x1407ff) AM_DEVREADWRITE8("k051960", k051960_device, k051960_r, k051960_w, 0xffff)
-ADDRESS_MAP_END
-
-
-ADDRESS_MAP_START(tmnt_state::tmnt_main_map)
- AM_RANGE(0x000000, 0x05ffff) AM_ROM
- AM_RANGE(0x060000, 0x063fff) AM_RAM /* main RAM */
- AM_RANGE(0x080000, 0x080fff) AM_DEVREADWRITE8("palette", palette_device, read8, write8, 0x00ff) AM_SHARE("palette")
- AM_RANGE(0x0a0000, 0x0a0001) AM_READ_PORT("COINS") AM_WRITE(tmnt_0a0000_w)
- AM_RANGE(0x0a0002, 0x0a0003) AM_READ_PORT("P1")
- AM_RANGE(0x0a0004, 0x0a0005) AM_READ_PORT("P2")
- AM_RANGE(0x0a0006, 0x0a0007) AM_READ_PORT("P3")
- AM_RANGE(0x0a0008, 0x0a0009) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x00ff)
- AM_RANGE(0x0a0010, 0x0a0011) AM_READ_PORT("DSW1") AM_DEVWRITE("watchdog", watchdog_timer_device, reset16_w)
- AM_RANGE(0x0a0012, 0x0a0013) AM_READ_PORT("DSW2")
- AM_RANGE(0x0a0014, 0x0a0015) AM_READ_PORT("P4")
- AM_RANGE(0x0a0018, 0x0a0019) AM_READ_PORT("DSW3")
- AM_RANGE(0x0c0000, 0x0c0001) AM_WRITE(tmnt_priority_w)
- AM_RANGE(0x100000, 0x107fff) AM_READWRITE(k052109_word_noA12_r, k052109_word_noA12_w)
+ map(0x140000, 0x140007).rw(m_k051960, FUNC(k051960_device::k051937_r), FUNC(k051960_device::k051937_w));
+ map(0x140400, 0x1407ff).rw(m_k051960, FUNC(k051960_device::k051960_r), FUNC(k051960_device::k051960_w));
+}
+
+
+void tmnt_state::tmnt_main_map(address_map &map)
+{
+ map(0x000000, 0x05ffff).rom();
+ map(0x060000, 0x063fff).ram(); /* main RAM */
+ map(0x080000, 0x080fff).rw(m_palette, FUNC(palette_device::read8), FUNC(palette_device::write8)).umask16(0x00ff).share("palette");
+ map(0x0a0000, 0x0a0001).portr("COINS").w(this, FUNC(tmnt_state::tmnt_0a0000_w));
+ map(0x0a0002, 0x0a0003).portr("P1");
+ map(0x0a0004, 0x0a0005).portr("P2");
+ map(0x0a0006, 0x0a0007).portr("P3");
+ map(0x0a0009, 0x0a0009).w("soundlatch", FUNC(generic_latch_8_device::write));
+ map(0x0a0010, 0x0a0011).portr("DSW1").w("watchdog", FUNC(watchdog_timer_device::reset16_w));
+ map(0x0a0012, 0x0a0013).portr("DSW2");
+ map(0x0a0014, 0x0a0015).portr("P4");
+ map(0x0a0018, 0x0a0019).portr("DSW3");
+ map(0x0c0000, 0x0c0001).w(this, FUNC(tmnt_state::tmnt_priority_w));
+ map(0x100000, 0x107fff).rw(this, FUNC(tmnt_state::k052109_word_noA12_r), FUNC(tmnt_state::k052109_word_noA12_w));
// AM_RANGE(0x10e800, 0x10e801) AM_WRITENOP ???
- AM_RANGE(0x140000, 0x140007) AM_DEVREADWRITE8("k051960", k051960_device, k051937_r, k051937_w, 0xffff)
- AM_RANGE(0x140400, 0x1407ff) AM_DEVREADWRITE8("k051960", k051960_device, k051960_r, k051960_w, 0xffff)
-ADDRESS_MAP_END
-
-
-ADDRESS_MAP_START(tmnt_state::punkshot_main_map)
- AM_RANGE(0x000000, 0x03ffff) AM_ROM
- AM_RANGE(0x080000, 0x083fff) AM_RAM /* main RAM */
- AM_RANGE(0x090000, 0x090fff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
- AM_RANGE(0x0a0000, 0x0a0001) AM_READ_PORT("DSW1/DSW2")
- AM_RANGE(0x0a0002, 0x0a0003) AM_READ_PORT("COINS/DSW3")
- AM_RANGE(0x0a0004, 0x0a0005) AM_READ_PORT("P3/P4")
- AM_RANGE(0x0a0006, 0x0a0007) AM_READ_PORT("P1/P2")
- AM_RANGE(0x0a0020, 0x0a0021) AM_WRITE(punkshot_0a0020_w)
- AM_RANGE(0x0a0040, 0x0a0043) AM_DEVREADWRITE8("k053260", k053260_device, main_read, main_write, 0x00ff)
- AM_RANGE(0x0a0060, 0x0a007f) AM_DEVWRITE("k053251", k053251_device, lsb_w)
- AM_RANGE(0x0a0080, 0x0a0081) AM_DEVWRITE("watchdog", watchdog_timer_device, reset16_w)
- AM_RANGE(0x100000, 0x107fff) AM_READWRITE(k052109_word_noA12_r, punkshot_k052109_word_noA12_w)
- AM_RANGE(0x110000, 0x110007) AM_DEVREADWRITE8("k051960", k051960_device, k051937_r, k051937_w, 0xffff)
- AM_RANGE(0x110400, 0x1107ff) AM_DEVREADWRITE8("k051960", k051960_device, k051960_r, k051960_w, 0xffff)
- AM_RANGE(0xfffffc, 0xffffff) AM_READ(punkshot_kludge_r)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(tmnt_state::lgtnfght_main_map)
- AM_RANGE(0x000000, 0x03ffff) AM_ROM
- AM_RANGE(0x080000, 0x080fff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
- AM_RANGE(0x090000, 0x093fff) AM_RAM /*main RAM */
- AM_RANGE(0x0a0000, 0x0a0001) AM_READ_PORT("COINS")
- AM_RANGE(0x0a0002, 0x0a0003) AM_READ_PORT("P1")
- AM_RANGE(0x0a0004, 0x0a0005) AM_READ_PORT("P2")
- AM_RANGE(0x0a0006, 0x0a0007) AM_READ_PORT("DSW1")
- AM_RANGE(0x0a0008, 0x0a0009) AM_READ_PORT("DSW2")
- AM_RANGE(0x0a0010, 0x0a0011) AM_READ_PORT("DSW3")
- AM_RANGE(0x0a0018, 0x0a0019) AM_WRITE(lgtnfght_0a0018_w)
- AM_RANGE(0x0a0020, 0x0a0023) AM_DEVREADWRITE8("k053260", k053260_device, main_read, main_write, 0x00ff)
- AM_RANGE(0x0a0028, 0x0a0029) AM_DEVWRITE("watchdog", watchdog_timer_device, reset16_w)
- AM_RANGE(0x0b0000, 0x0b3fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_SHARE("spriteram")
- AM_RANGE(0x0c0000, 0x0c001f) AM_READWRITE(k053244_word_noA1_r, k053244_word_noA1_w)
- AM_RANGE(0x0e0000, 0x0e001f) AM_DEVWRITE("k053251", k053251_device, lsb_w)
- AM_RANGE(0x100000, 0x107fff) AM_READWRITE(k052109_word_noA12_r, k052109_word_noA12_w)
-ADDRESS_MAP_END
+ map(0x140000, 0x140007).rw(m_k051960, FUNC(k051960_device::k051937_r), FUNC(k051960_device::k051937_w));
+ map(0x140400, 0x1407ff).rw(m_k051960, FUNC(k051960_device::k051960_r), FUNC(k051960_device::k051960_w));
+}
+
+
+void tmnt_state::punkshot_main_map(address_map &map)
+{
+ map(0x000000, 0x03ffff).rom();
+ map(0x080000, 0x083fff).ram(); /* main RAM */
+ map(0x090000, 0x090fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
+ map(0x0a0000, 0x0a0001).portr("DSW1/DSW2");
+ map(0x0a0002, 0x0a0003).portr("COINS/DSW3");
+ map(0x0a0004, 0x0a0005).portr("P3/P4");
+ map(0x0a0006, 0x0a0007).portr("P1/P2");
+ map(0x0a0020, 0x0a0021).w(this, FUNC(tmnt_state::punkshot_0a0020_w));
+ map(0x0a0040, 0x0a0043).rw(m_k053260, FUNC(k053260_device::main_read), FUNC(k053260_device::main_write)).umask16(0x00ff);
+ map(0x0a0060, 0x0a007f).w(m_k053251, FUNC(k053251_device::lsb_w));
+ map(0x0a0080, 0x0a0081).w("watchdog", FUNC(watchdog_timer_device::reset16_w));
+ map(0x100000, 0x107fff).rw(this, FUNC(tmnt_state::k052109_word_noA12_r), FUNC(tmnt_state::punkshot_k052109_word_noA12_w));
+ map(0x110000, 0x110007).rw(m_k051960, FUNC(k051960_device::k051937_r), FUNC(k051960_device::k051937_w));
+ map(0x110400, 0x1107ff).rw(m_k051960, FUNC(k051960_device::k051960_r), FUNC(k051960_device::k051960_w));
+ map(0xfffffc, 0xffffff).r(this, FUNC(tmnt_state::punkshot_kludge_r));
+}
+
+void tmnt_state::lgtnfght_main_map(address_map &map)
+{
+ map(0x000000, 0x03ffff).rom();
+ map(0x080000, 0x080fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
+ map(0x090000, 0x093fff).ram(); /*main RAM */
+ map(0x0a0000, 0x0a0001).portr("COINS");
+ map(0x0a0002, 0x0a0003).portr("P1");
+ map(0x0a0004, 0x0a0005).portr("P2");
+ map(0x0a0006, 0x0a0007).portr("DSW1");
+ map(0x0a0008, 0x0a0009).portr("DSW2");
+ map(0x0a0010, 0x0a0011).portr("DSW3");
+ map(0x0a0018, 0x0a0019).w(this, FUNC(tmnt_state::lgtnfght_0a0018_w));
+ map(0x0a0020, 0x0a0023).rw(m_k053260, FUNC(k053260_device::main_read), FUNC(k053260_device::main_write)).umask16(0x00ff);
+ map(0x0a0028, 0x0a0029).w("watchdog", FUNC(watchdog_timer_device::reset16_w));
+ map(0x0b0000, 0x0b3fff).rw(this, FUNC(tmnt_state::k053245_scattered_word_r), FUNC(tmnt_state::k053245_scattered_word_w)).share("spriteram");
+ map(0x0c0000, 0x0c001f).rw(this, FUNC(tmnt_state::k053244_word_noA1_r), FUNC(tmnt_state::k053244_word_noA1_w));
+ map(0x0e0000, 0x0e001f).w(m_k053251, FUNC(k053251_device::lsb_w));
+ map(0x100000, 0x107fff).rw(this, FUNC(tmnt_state::k052109_word_noA12_r), FUNC(tmnt_state::k052109_word_noA12_w));
+}
WRITE16_MEMBER(tmnt_state::ssriders_soundkludge_w)
{
@@ -575,25 +580,26 @@ WRITE16_MEMBER(tmnt_state::ssriders_soundkludge_w)
m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
}
-ADDRESS_MAP_START(tmnt_state::blswhstl_main_map)
- AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0x180000, 0x183fff) AM_DEVREADWRITE("k052109", k052109_device, word_r, word_w)
- AM_RANGE(0x204000, 0x207fff) AM_RAM /* main RAM */
- AM_RANGE(0x300000, 0x303fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_SHARE("spriteram")
- AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
- AM_RANGE(0x500000, 0x50003f) AM_DEVREADWRITE("k054000", k054000_device, lsb_r, lsb_w)
- AM_RANGE(0x680000, 0x68001f) AM_READWRITE(k053244_word_noA1_r, k053244_word_noA1_w)
- AM_RANGE(0x700000, 0x700001) AM_READ_PORT("P1")
- AM_RANGE(0x700002, 0x700003) AM_READ_PORT("P2")
- AM_RANGE(0x700004, 0x700005) AM_READ(blswhstl_coin_r)
- AM_RANGE(0x700006, 0x700007) AM_READ_PORT("EEPROM")
- AM_RANGE(0x700200, 0x700201) AM_WRITE(blswhstl_eeprom_w)
- AM_RANGE(0x700300, 0x700301) AM_WRITE(blswhstl_700300_w)
- AM_RANGE(0x700400, 0x700401) AM_DEVREADWRITE("watchdog", watchdog_timer_device, reset16_r, reset16_w)
- AM_RANGE(0x780600, 0x780603) AM_DEVREADWRITE8("k053260", k053260_device, main_read, main_write, 0x00ff)
- AM_RANGE(0x780604, 0x780605) AM_WRITE(ssriders_soundkludge_w)
- AM_RANGE(0x780700, 0x78071f) AM_DEVWRITE("k053251", k053251_device, lsb_w)
-ADDRESS_MAP_END
+void tmnt_state::blswhstl_main_map(address_map &map)
+{
+ map(0x000000, 0x07ffff).rom();
+ map(0x180000, 0x183fff).rw(m_k052109, FUNC(k052109_device::word_r), FUNC(k052109_device::word_w));
+ map(0x204000, 0x207fff).ram(); /* main RAM */
+ map(0x300000, 0x303fff).rw(this, FUNC(tmnt_state::k053245_scattered_word_r), FUNC(tmnt_state::k053245_scattered_word_w)).share("spriteram");
+ map(0x400000, 0x400fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
+ map(0x500000, 0x50003f).rw(m_k054000, FUNC(k054000_device::lsb_r), FUNC(k054000_device::lsb_w));
+ map(0x680000, 0x68001f).rw(this, FUNC(tmnt_state::k053244_word_noA1_r), FUNC(tmnt_state::k053244_word_noA1_w));
+ map(0x700000, 0x700001).portr("P1");
+ map(0x700002, 0x700003).portr("P2");
+ map(0x700004, 0x700005).r(this, FUNC(tmnt_state::blswhstl_coin_r));
+ map(0x700006, 0x700007).portr("EEPROM");
+ map(0x700200, 0x700201).w(this, FUNC(tmnt_state::blswhstl_eeprom_w));
+ map(0x700300, 0x700301).w(this, FUNC(tmnt_state::blswhstl_700300_w));
+ map(0x700400, 0x700401).rw("watchdog", FUNC(watchdog_timer_device::reset16_r), FUNC(watchdog_timer_device::reset16_w));
+ map(0x780600, 0x780603).rw(m_k053260, FUNC(k053260_device::main_read), FUNC(k053260_device::main_write)).umask16(0x00ff);
+ map(0x780604, 0x780605).w(this, FUNC(tmnt_state::ssriders_soundkludge_w));
+ map(0x780700, 0x78071f).w(m_k053251, FUNC(k053251_device::lsb_w));
+}
WRITE16_MEMBER(tmnt_state::k053251_glfgreat_w)
{
@@ -616,49 +622,51 @@ WRITE16_MEMBER(tmnt_state::k053251_glfgreat_w)
}
}
-ADDRESS_MAP_START(tmnt_state::glfgreat_main_map)
- AM_RANGE(0x000000, 0x03ffff) AM_ROM
- AM_RANGE(0x100000, 0x103fff) AM_RAM /* main RAM */
- AM_RANGE(0x104000, 0x107fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_SHARE("spriteram")
- AM_RANGE(0x108000, 0x108fff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
- AM_RANGE(0x10c000, 0x10cfff) AM_DEVREADWRITE("k053936", k053936_device, linectrl_r, linectrl_w) /* 053936? */
- AM_RANGE(0x110000, 0x11001f) AM_WRITE(k053244_word_noA1_w) /* duplicate! */
- AM_RANGE(0x114000, 0x11401f) AM_DEVREADWRITE("k053245", k05324x_device, k053244_lsb_r, k053244_lsb_w) /* duplicate! */
- AM_RANGE(0x118000, 0x11801f) AM_DEVWRITE("k053936", k053936_device, ctrl_w)
- AM_RANGE(0x11c000, 0x11c01f) AM_DEVWRITE("k053251", k053251_device, msb_w)
- AM_RANGE(0x120000, 0x120001) AM_READ_PORT("P1/P2")
- AM_RANGE(0x120002, 0x120003) AM_READ_PORT("P3/P4")
- AM_RANGE(0x120004, 0x120005) AM_READ_PORT("COINS/DSW3")
- AM_RANGE(0x120006, 0x120007) AM_READ_PORT("DSW1/DSW2")
- AM_RANGE(0x121000, 0x121001) AM_READ(glfgreat_ball_r) /* returns the color of the center pixel of the roz layer */
- AM_RANGE(0x122000, 0x122001) AM_WRITE(glfgreat_122000_w)
- AM_RANGE(0x124000, 0x124001) AM_DEVWRITE("watchdog", watchdog_timer_device, reset16_w)
- AM_RANGE(0x125000, 0x125003) AM_DEVREAD8("k053260", k053260_device, main_read, 0xff00) AM_WRITE8(glfgreat_sound_w, 0xff00)
- AM_RANGE(0x200000, 0x207fff) AM_READWRITE(k052109_word_noA12_r, k052109_word_noA12_w)
- AM_RANGE(0x300000, 0x3fffff) AM_READ(glfgreat_rom_r)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(tmnt_state::prmrsocr_main_map)
- AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0x100000, 0x103fff) AM_RAM /* main RAM */
- AM_RANGE(0x104000, 0x107fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_SHARE("spriteram")
- AM_RANGE(0x108000, 0x108fff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
- AM_RANGE(0x10c000, 0x10cfff) AM_DEVREADWRITE("k053936", k053936_device, linectrl_r, linectrl_w)
- AM_RANGE(0x110000, 0x11001f) AM_WRITE(k053244_word_noA1_w) /* duplicate! */
- AM_RANGE(0x114000, 0x11401f) AM_DEVREADWRITE("k053245", k05324x_device, k053244_lsb_r, k053244_lsb_w) /* duplicate! */
- AM_RANGE(0x118000, 0x11801f) AM_DEVWRITE("k053936", k053936_device, ctrl_w)
- AM_RANGE(0x11c000, 0x11c01f) AM_DEVWRITE("k053251", k053251_device, msb_w)
- AM_RANGE(0x120000, 0x120001) AM_READ_PORT("P1/COINS")
- AM_RANGE(0x120002, 0x120003) AM_READ_PORT("P2/EEPROM")
- AM_RANGE(0x12100c, 0x12100d) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x00ff)
- AM_RANGE(0x12100e, 0x12100f) AM_DEVWRITE8("soundlatch2", generic_latch_8_device, write, 0x00ff)
- AM_RANGE(0x121014, 0x121015) AM_DEVREAD8("soundlatch3", generic_latch_8_device, read, 0x00ff)
- AM_RANGE(0x122000, 0x122001) AM_WRITE(prmrsocr_eeprom_w) /* EEPROM + video control */
- AM_RANGE(0x123000, 0x123001) AM_WRITE(prmrsocr_sound_irq_w)
- AM_RANGE(0x200000, 0x207fff) AM_READWRITE(k052109_word_noA12_r, k052109_word_noA12_w)
- AM_RANGE(0x280000, 0x280001) AM_DEVWRITE("watchdog", watchdog_timer_device, reset16_w)
- AM_RANGE(0x300000, 0x33ffff) AM_READ(prmrsocr_rom_r)
-ADDRESS_MAP_END
+void tmnt_state::glfgreat_main_map(address_map &map)
+{
+ map(0x000000, 0x03ffff).rom();
+ map(0x100000, 0x103fff).ram(); /* main RAM */
+ map(0x104000, 0x107fff).rw(this, FUNC(tmnt_state::k053245_scattered_word_r), FUNC(tmnt_state::k053245_scattered_word_w)).share("spriteram");
+ map(0x108000, 0x108fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
+ map(0x10c000, 0x10cfff).rw(m_k053936, FUNC(k053936_device::linectrl_r), FUNC(k053936_device::linectrl_w)); /* 053936? */
+ map(0x110000, 0x11001f).w(this, FUNC(tmnt_state::k053244_word_noA1_w)); /* duplicate! */
+ map(0x114000, 0x11401f).rw(m_k053245, FUNC(k05324x_device::k053244_lsb_r), FUNC(k05324x_device::k053244_lsb_w)); /* duplicate! */
+ map(0x118000, 0x11801f).w(m_k053936, FUNC(k053936_device::ctrl_w));
+ map(0x11c000, 0x11c01f).w(m_k053251, FUNC(k053251_device::msb_w));
+ map(0x120000, 0x120001).portr("P1/P2");
+ map(0x120002, 0x120003).portr("P3/P4");
+ map(0x120004, 0x120005).portr("COINS/DSW3");
+ map(0x120006, 0x120007).portr("DSW1/DSW2");
+ map(0x121000, 0x121001).r(this, FUNC(tmnt_state::glfgreat_ball_r)); /* returns the color of the center pixel of the roz layer */
+ map(0x122000, 0x122001).w(this, FUNC(tmnt_state::glfgreat_122000_w));
+ map(0x124000, 0x124001).w("watchdog", FUNC(watchdog_timer_device::reset16_w));
+ map(0x125000, 0x125003).r(m_k053260, FUNC(k053260_device::main_read)).umask16(0xff00).w(this, FUNC(tmnt_state::glfgreat_sound_w)).umask16(0xff00);
+ map(0x200000, 0x207fff).rw(this, FUNC(tmnt_state::k052109_word_noA12_r), FUNC(tmnt_state::k052109_word_noA12_w));
+ map(0x300000, 0x3fffff).r(this, FUNC(tmnt_state::glfgreat_rom_r));
+}
+
+void tmnt_state::prmrsocr_main_map(address_map &map)
+{
+ map(0x000000, 0x07ffff).rom();
+ map(0x100000, 0x103fff).ram(); /* main RAM */
+ map(0x104000, 0x107fff).rw(this, FUNC(tmnt_state::k053245_scattered_word_r), FUNC(tmnt_state::k053245_scattered_word_w)).share("spriteram");
+ map(0x108000, 0x108fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
+ map(0x10c000, 0x10cfff).rw(m_k053936, FUNC(k053936_device::linectrl_r), FUNC(k053936_device::linectrl_w));
+ map(0x110000, 0x11001f).w(this, FUNC(tmnt_state::k053244_word_noA1_w)); /* duplicate! */
+ map(0x114000, 0x11401f).rw(m_k053245, FUNC(k05324x_device::k053244_lsb_r), FUNC(k05324x_device::k053244_lsb_w)); /* duplicate! */
+ map(0x118000, 0x11801f).w(m_k053936, FUNC(k053936_device::ctrl_w));
+ map(0x11c000, 0x11c01f).w(m_k053251, FUNC(k053251_device::msb_w));
+ map(0x120000, 0x120001).portr("P1/COINS");
+ map(0x120002, 0x120003).portr("P2/EEPROM");
+ map(0x12100d, 0x12100d).w("soundlatch", FUNC(generic_latch_8_device::write));
+ map(0x12100f, 0x12100f).w("soundlatch2", FUNC(generic_latch_8_device::write));
+ map(0x121015, 0x121015).r("soundlatch3", FUNC(generic_latch_8_device::read));
+ map(0x122000, 0x122001).w(this, FUNC(tmnt_state::prmrsocr_eeprom_w)); /* EEPROM + video control */
+ map(0x123000, 0x123001).w(this, FUNC(tmnt_state::prmrsocr_sound_irq_w));
+ map(0x200000, 0x207fff).rw(this, FUNC(tmnt_state::k052109_word_noA12_r), FUNC(tmnt_state::k052109_word_noA12_w));
+ map(0x280000, 0x280001).w("watchdog", FUNC(watchdog_timer_device::reset16_w));
+ map(0x300000, 0x33ffff).r(this, FUNC(tmnt_state::prmrsocr_rom_r));
+}
#if 1
@@ -897,160 +905,171 @@ logerror("copy command %04x sprite %08x data %08x: %04x%04x %04x%04x modifiers
}
#endif
-ADDRESS_MAP_START(tmnt_state::tmnt2_main_map)
- AM_RANGE(0x000000, 0x0fffff) AM_ROM AM_SHARE("tmnt2_rom")
- AM_RANGE(0x104000, 0x107fff) AM_RAM AM_SHARE("sunset_104000") /* main RAM */
- AM_RANGE(0x140000, 0x140fff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
- AM_RANGE(0x180000, 0x183fff) AM_RAM_WRITE(k053245_scattered_word_w) AM_SHARE("spriteram") // k053245_scattered_word_r
- AM_RANGE(0x1c0000, 0x1c0001) AM_READ_PORT("P1")
- AM_RANGE(0x1c0002, 0x1c0003) AM_READ_PORT("P2")
- AM_RANGE(0x1c0004, 0x1c0005) AM_READ_PORT("P3")
- AM_RANGE(0x1c0006, 0x1c0007) AM_READ_PORT("P4")
- AM_RANGE(0x1c0100, 0x1c0101) AM_READ_PORT("COINS")
- AM_RANGE(0x1c0102, 0x1c0103) AM_READ(ssriders_eeprom_r)
- AM_RANGE(0x1c0200, 0x1c0201) AM_WRITE(ssriders_eeprom_w) /* EEPROM and gfx control */
- AM_RANGE(0x1c0300, 0x1c0301) AM_WRITE(ssriders_1c0300_w)
- AM_RANGE(0x1c0400, 0x1c0401) AM_DEVREADWRITE("watchdog", watchdog_timer_device, reset16_r, reset16_w)
- AM_RANGE(0x1c0500, 0x1c057f) AM_RAM /* TMNT2 only (1J) unknown, mostly MCU blit offsets */
+void tmnt_state::tmnt2_main_map(address_map &map)
+{
+ map(0x000000, 0x0fffff).rom().share("tmnt2_rom");
+ map(0x104000, 0x107fff).ram().share("sunset_104000"); /* main RAM */
+ map(0x140000, 0x140fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
+ map(0x180000, 0x183fff).ram().w(this, FUNC(tmnt_state::k053245_scattered_word_w)).share("spriteram"); // k053245_scattered_word_r
+ map(0x1c0000, 0x1c0001).portr("P1");
+ map(0x1c0002, 0x1c0003).portr("P2");
+ map(0x1c0004, 0x1c0005).portr("P3");
+ map(0x1c0006, 0x1c0007).portr("P4");
+ map(0x1c0100, 0x1c0101).portr("COINS");
+ map(0x1c0102, 0x1c0103).r(this, FUNC(tmnt_state::ssriders_eeprom_r));
+ map(0x1c0200, 0x1c0201).w(this, FUNC(tmnt_state::ssriders_eeprom_w)); /* EEPROM and gfx control */
+ map(0x1c0300, 0x1c0301).w(this, FUNC(tmnt_state::ssriders_1c0300_w));
+ map(0x1c0400, 0x1c0401).rw("watchdog", FUNC(watchdog_timer_device::reset16_r), FUNC(watchdog_timer_device::reset16_w));
+ map(0x1c0500, 0x1c057f).ram(); /* TMNT2 only (1J) unknown, mostly MCU blit offsets */
// AM_RANGE(0x1c0800, 0x1c0801) AM_READ(ssriders_protection_r) /* protection device */
- AM_RANGE(0x1c0800, 0x1c081f) AM_WRITE(tmnt2_1c0800_w) AM_SHARE("tmnt2_1c0800") /* protection device */
- AM_RANGE(0x5a0000, 0x5a001f) AM_READWRITE(k053244_word_noA1_r, k053244_word_noA1_w)
- AM_RANGE(0x5c0600, 0x5c0603) AM_DEVREADWRITE8("k053260", k053260_device, main_read, main_write, 0x00ff)
- AM_RANGE(0x5c0604, 0x5c0605) AM_WRITE(ssriders_soundkludge_w)
- AM_RANGE(0x5c0700, 0x5c071f) AM_DEVWRITE("k053251", k053251_device, lsb_w)
- AM_RANGE(0x600000, 0x603fff) AM_DEVREADWRITE("k052109", k052109_device, word_r, word_w)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(tmnt_state::ssriders_main_map)
- AM_RANGE(0x000000, 0x0bffff) AM_ROM
- AM_RANGE(0x104000, 0x107fff) AM_RAM /* main RAM */
- AM_RANGE(0x140000, 0x140fff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
- AM_RANGE(0x180000, 0x183fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_SHARE("spriteram")
- AM_RANGE(0x1c0000, 0x1c0001) AM_READ_PORT("P1")
- AM_RANGE(0x1c0002, 0x1c0003) AM_READ_PORT("P2")
- AM_RANGE(0x1c0004, 0x1c0005) AM_READ_PORT("P3")
- AM_RANGE(0x1c0006, 0x1c0007) AM_READ_PORT("P4")
- AM_RANGE(0x1c0100, 0x1c0101) AM_READ_PORT("COINS")
- AM_RANGE(0x1c0102, 0x1c0103) AM_READ(ssriders_eeprom_r)
- AM_RANGE(0x1c0200, 0x1c0201) AM_WRITE(ssriders_eeprom_w) /* EEPROM and gfx control */
- AM_RANGE(0x1c0300, 0x1c0301) AM_WRITE(ssriders_1c0300_w)
- AM_RANGE(0x1c0400, 0x1c0401) AM_DEVREADWRITE("watchdog", watchdog_timer_device, reset16_r, reset16_w)
- AM_RANGE(0x1c0500, 0x1c057f) AM_RAM /* TMNT2 only (1J) unknown */
- AM_RANGE(0x1c0800, 0x1c0801) AM_READ(ssriders_protection_r)
- AM_RANGE(0x1c0800, 0x1c0803) AM_WRITE(ssriders_protection_w)
- AM_RANGE(0x5a0000, 0x5a001f) AM_READWRITE(k053244_word_noA1_r, k053244_word_noA1_w)
- AM_RANGE(0x5c0600, 0x5c0603) AM_DEVREADWRITE8("k053260", k053260_device, main_read, main_write, 0x00ff)
- AM_RANGE(0x5c0604, 0x5c0605) AM_WRITE(ssriders_soundkludge_w)
- AM_RANGE(0x5c0700, 0x5c071f) AM_DEVWRITE("k053251", k053251_device, lsb_w)
- AM_RANGE(0x600000, 0x603fff) AM_DEVREADWRITE("k052109", k052109_device, word_r, word_w)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(tmnt_state::sunsetbl_main_map)
- AM_RANGE(0x000000, 0x0bffff) AM_ROM
- AM_RANGE(0x104000, 0x107fff) AM_RAM /* main RAM */
- AM_RANGE(0x14c000, 0x14cfff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
- AM_RANGE(0x14e700, 0x14e71f) AM_DEVWRITE("k053251", k053251_device, lsb_w)
- AM_RANGE(0x180000, 0x183fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_SHARE("spriteram")
- AM_RANGE(0x184000, 0x18ffff) AM_RAM
- AM_RANGE(0x1c0300, 0x1c0301) AM_WRITE(ssriders_1c0300_w)
- AM_RANGE(0x1c0400, 0x1c0401) AM_WRITENOP
- AM_RANGE(0x5a0000, 0x5a001f) AM_READWRITE(k053244_word_noA1_r, k053244_word_noA1_w)
- AM_RANGE(0x600000, 0x603fff) AM_DEVREADWRITE("k052109", k052109_device, word_r, word_w)
- AM_RANGE(0x604020, 0x60402f) AM_WRITENOP /* written every frame */
- AM_RANGE(0x604200, 0x604201) AM_WRITENOP /* watchdog */
- AM_RANGE(0x6119e2, 0x6119e3) AM_WRITENOP /* written a lot in some test menus (PC=18204) */
- AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("P1")
- AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("P2")
- AM_RANGE(0xc00004, 0xc00005) AM_READ_PORT("P3")
- AM_RANGE(0xc00006, 0xc00007) AM_READ_PORT("P4")
- AM_RANGE(0xc00200, 0xc00201) AM_WRITE(ssriders_eeprom_w) /* EEPROM and gfx control */
- AM_RANGE(0xc00404, 0xc00405) AM_READ_PORT("COINS")
- AM_RANGE(0xc00406, 0xc00407) AM_READ(sunsetbl_eeprom_r)
- AM_RANGE(0xc00600, 0xc00601) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
- AM_RANGE(0x75d288, 0x75d289) AM_READNOP // read repeatedly in some test menus (PC=181f2)
-ADDRESS_MAP_END
-
-
-ADDRESS_MAP_START(tmnt_state::thndrx2_main_map)
- AM_RANGE(0x000000, 0x03ffff) AM_ROM
- AM_RANGE(0x100000, 0x103fff) AM_RAM /* main RAM */
- AM_RANGE(0x200000, 0x200fff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
- AM_RANGE(0x300000, 0x30001f) AM_DEVWRITE("k053251", k053251_device, lsb_w)
- AM_RANGE(0x400000, 0x400003) AM_DEVREADWRITE8("k053260", k053260_device, main_read, main_write, 0x00ff)
- AM_RANGE(0x500000, 0x50003f) AM_DEVREADWRITE("k054000", k054000_device, lsb_r, lsb_w)
- AM_RANGE(0x500100, 0x500101) AM_WRITE(thndrx2_eeprom_w)
- AM_RANGE(0x500200, 0x500201) AM_READ_PORT("P1/COINS")
- AM_RANGE(0x500202, 0x500203) AM_READ(thndrx2_eeprom_r)
- AM_RANGE(0x500300, 0x500301) AM_WRITENOP /* watchdog reset? irq enable? */
- AM_RANGE(0x600000, 0x607fff) AM_READWRITE(k052109_word_noA12_r, k052109_word_noA12_w)
- AM_RANGE(0x700000, 0x700007) AM_DEVREADWRITE8("k051960", k051960_device, k051937_r, k051937_w, 0xffff)
- AM_RANGE(0x700400, 0x7007ff) AM_DEVREADWRITE8("k051960", k051960_device, k051960_r, k051960_w, 0xffff)
-ADDRESS_MAP_END
-
-
-ADDRESS_MAP_START(tmnt_state::mia_audio_map)
- AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0x87ff) AM_RAM
- AM_RANGE(0xa000, 0xa000) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
- AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE("k007232", k007232_device, read, write)
- AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write)
-ADDRESS_MAP_END
-
-
-ADDRESS_MAP_START(tmnt_state::tmnt_audio_map)
- AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0x87ff) AM_RAM
- AM_RANGE(0x9000, 0x9000) AM_READWRITE(tmnt_sres_r, tmnt_sres_w) /* title music & UPD7759C reset */
- AM_RANGE(0xa000, 0xa000) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
- AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE("k007232", k007232_device, read, write)
- AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write)
- AM_RANGE(0xd000, 0xd000) AM_DEVWRITE("upd", upd7759_device, port_w)
- AM_RANGE(0xe000, 0xe000) AM_WRITE(tmnt_upd_start_w)
- AM_RANGE(0xf000, 0xf000) AM_READ(tmnt_upd_busy_r)
-ADDRESS_MAP_END
-
-
-ADDRESS_MAP_START(tmnt_state::punkshot_audio_map)
- AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0xf000, 0xf7ff) AM_RAM
- AM_RANGE(0xf800, 0xf801) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write)
- AM_RANGE(0xfa00, 0xfa00) AM_WRITE(sound_arm_nmi_w)
- AM_RANGE(0xfc00, 0xfc2f) AM_DEVREADWRITE("k053260", k053260_device, read, write)
-ADDRESS_MAP_END
-
-
-ADDRESS_MAP_START(tmnt_state::lgtnfght_audio_map)
- AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0x87ff) AM_RAM
- AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write)
- AM_RANGE(0xc000, 0xc02f) AM_DEVREADWRITE("k053260", k053260_device, read, write)
-ADDRESS_MAP_END
-
-
-ADDRESS_MAP_START(tmnt_state::glfgreat_audio_map)
- AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0xf000, 0xf7ff) AM_RAM
- AM_RANGE(0xf800, 0xf82f) AM_DEVREADWRITE("k053260", k053260_device, read, write)
- AM_RANGE(0xfa00, 0xfa00) AM_WRITE(sound_arm_nmi_w)
-ADDRESS_MAP_END
-
-
-ADDRESS_MAP_START(tmnt_state::ssriders_audio_map)
- AM_RANGE(0x0000, 0xefff) AM_ROM
- AM_RANGE(0xf000, 0xf7ff) AM_RAM
- AM_RANGE(0xf800, 0xf801) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write)
- AM_RANGE(0xfa00, 0xfa2f) AM_DEVREADWRITE("k053260", k053260_device, read, write)
- AM_RANGE(0xfc00, 0xfc00) AM_WRITE(sound_arm_nmi_w)
-ADDRESS_MAP_END
-
-
-ADDRESS_MAP_START(tmnt_state::thndrx2_audio_map)
- AM_RANGE(0x0000, 0xefff) AM_ROM
- AM_RANGE(0xf000, 0xf7ff) AM_RAM
- AM_RANGE(0xf800, 0xf801) AM_MIRROR(0x0010) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write)
- AM_RANGE(0xfa00, 0xfa00) AM_WRITE(sound_arm_nmi_w)
- AM_RANGE(0xfc00, 0xfc2f) AM_DEVREADWRITE("k053260", k053260_device, read, write)
-ADDRESS_MAP_END
+ map(0x1c0800, 0x1c081f).w(this, FUNC(tmnt_state::tmnt2_1c0800_w)).share("tmnt2_1c0800"); /* protection device */
+ map(0x5a0000, 0x5a001f).rw(this, FUNC(tmnt_state::k053244_word_noA1_r), FUNC(tmnt_state::k053244_word_noA1_w));
+ map(0x5c0600, 0x5c0603).rw(m_k053260, FUNC(k053260_device::main_read), FUNC(k053260_device::main_write)).umask16(0x00ff);
+ map(0x5c0604, 0x5c0605).w(this, FUNC(tmnt_state::ssriders_soundkludge_w));
+ map(0x5c0700, 0x5c071f).w(m_k053251, FUNC(k053251_device::lsb_w));
+ map(0x600000, 0x603fff).rw(m_k052109, FUNC(k052109_device::word_r), FUNC(k052109_device::word_w));
+}
+
+void tmnt_state::ssriders_main_map(address_map &map)
+{
+ map(0x000000, 0x0bffff).rom();
+ map(0x104000, 0x107fff).ram(); /* main RAM */
+ map(0x140000, 0x140fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
+ map(0x180000, 0x183fff).rw(this, FUNC(tmnt_state::k053245_scattered_word_r), FUNC(tmnt_state::k053245_scattered_word_w)).share("spriteram");
+ map(0x1c0000, 0x1c0001).portr("P1");
+ map(0x1c0002, 0x1c0003).portr("P2");
+ map(0x1c0004, 0x1c0005).portr("P3");
+ map(0x1c0006, 0x1c0007).portr("P4");
+ map(0x1c0100, 0x1c0101).portr("COINS");
+ map(0x1c0102, 0x1c0103).r(this, FUNC(tmnt_state::ssriders_eeprom_r));
+ map(0x1c0200, 0x1c0201).w(this, FUNC(tmnt_state::ssriders_eeprom_w)); /* EEPROM and gfx control */
+ map(0x1c0300, 0x1c0301).w(this, FUNC(tmnt_state::ssriders_1c0300_w));
+ map(0x1c0400, 0x1c0401).rw("watchdog", FUNC(watchdog_timer_device::reset16_r), FUNC(watchdog_timer_device::reset16_w));
+ map(0x1c0500, 0x1c057f).ram(); /* TMNT2 only (1J) unknown */
+ map(0x1c0800, 0x1c0801).r(this, FUNC(tmnt_state::ssriders_protection_r));
+ map(0x1c0800, 0x1c0803).w(this, FUNC(tmnt_state::ssriders_protection_w));
+ map(0x5a0000, 0x5a001f).rw(this, FUNC(tmnt_state::k053244_word_noA1_r), FUNC(tmnt_state::k053244_word_noA1_w));
+ map(0x5c0600, 0x5c0603).rw(m_k053260, FUNC(k053260_device::main_read), FUNC(k053260_device::main_write)).umask16(0x00ff);
+ map(0x5c0604, 0x5c0605).w(this, FUNC(tmnt_state::ssriders_soundkludge_w));
+ map(0x5c0700, 0x5c071f).w(m_k053251, FUNC(k053251_device::lsb_w));
+ map(0x600000, 0x603fff).rw(m_k052109, FUNC(k052109_device::word_r), FUNC(k052109_device::word_w));
+}
+
+void tmnt_state::sunsetbl_main_map(address_map &map)
+{
+ map(0x000000, 0x0bffff).rom();
+ map(0x104000, 0x107fff).ram(); /* main RAM */
+ map(0x14c000, 0x14cfff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
+ map(0x14e700, 0x14e71f).w(m_k053251, FUNC(k053251_device::lsb_w));
+ map(0x180000, 0x183fff).rw(this, FUNC(tmnt_state::k053245_scattered_word_r), FUNC(tmnt_state::k053245_scattered_word_w)).share("spriteram");
+ map(0x184000, 0x18ffff).ram();
+ map(0x1c0300, 0x1c0301).w(this, FUNC(tmnt_state::ssriders_1c0300_w));
+ map(0x1c0400, 0x1c0401).nopw();
+ map(0x5a0000, 0x5a001f).rw(this, FUNC(tmnt_state::k053244_word_noA1_r), FUNC(tmnt_state::k053244_word_noA1_w));
+ map(0x600000, 0x603fff).rw(m_k052109, FUNC(k052109_device::word_r), FUNC(k052109_device::word_w));
+ map(0x604020, 0x60402f).nopw(); /* written every frame */
+ map(0x604200, 0x604201).nopw(); /* watchdog */
+ map(0x6119e2, 0x6119e3).nopw(); /* written a lot in some test menus (PC=18204) */
+ map(0xc00000, 0xc00001).portr("P1");
+ map(0xc00002, 0xc00003).portr("P2");
+ map(0xc00004, 0xc00005).portr("P3");
+ map(0xc00006, 0xc00007).portr("P4");
+ map(0xc00200, 0xc00201).w(this, FUNC(tmnt_state::ssriders_eeprom_w)); /* EEPROM and gfx control */
+ map(0xc00404, 0xc00405).portr("COINS");
+ map(0xc00406, 0xc00407).r(this, FUNC(tmnt_state::sunsetbl_eeprom_r));
+ map(0xc00601, 0xc00601).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+ map(0x75d288, 0x75d289).nopr(); // read repeatedly in some test menus (PC=181f2)
+}
+
+
+void tmnt_state::thndrx2_main_map(address_map &map)
+{
+ map(0x000000, 0x03ffff).rom();
+ map(0x100000, 0x103fff).ram(); /* main RAM */
+ map(0x200000, 0x200fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
+ map(0x300000, 0x30001f).w(m_k053251, FUNC(k053251_device::lsb_w));
+ map(0x400000, 0x400003).rw(m_k053260, FUNC(k053260_device::main_read), FUNC(k053260_device::main_write)).umask16(0x00ff);
+ map(0x500000, 0x50003f).rw(m_k054000, FUNC(k054000_device::lsb_r), FUNC(k054000_device::lsb_w));
+ map(0x500100, 0x500101).w(this, FUNC(tmnt_state::thndrx2_eeprom_w));
+ map(0x500200, 0x500201).portr("P1/COINS");
+ map(0x500202, 0x500203).r(this, FUNC(tmnt_state::thndrx2_eeprom_r));
+ map(0x500300, 0x500301).nopw(); /* watchdog reset? irq enable? */
+ map(0x600000, 0x607fff).rw(this, FUNC(tmnt_state::k052109_word_noA12_r), FUNC(tmnt_state::k052109_word_noA12_w));
+ map(0x700000, 0x700007).rw(m_k051960, FUNC(k051960_device::k051937_r), FUNC(k051960_device::k051937_w));
+ map(0x700400, 0x7007ff).rw(m_k051960, FUNC(k051960_device::k051960_r), FUNC(k051960_device::k051960_w));
+}
+
+
+void tmnt_state::mia_audio_map(address_map &map)
+{
+ map(0x0000, 0x7fff).rom();
+ map(0x8000, 0x87ff).ram();
+ map(0xa000, 0xa000).r("soundlatch", FUNC(generic_latch_8_device::read));
+ map(0xb000, 0xb00d).rw(m_k007232, FUNC(k007232_device::read), FUNC(k007232_device::write));
+ map(0xc000, 0xc001).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write));
+}
+
+
+void tmnt_state::tmnt_audio_map(address_map &map)
+{
+ map(0x0000, 0x7fff).rom();
+ map(0x8000, 0x87ff).ram();
+ map(0x9000, 0x9000).rw(this, FUNC(tmnt_state::tmnt_sres_r), FUNC(tmnt_state::tmnt_sres_w)); /* title music & UPD7759C reset */
+ map(0xa000, 0xa000).r("soundlatch", FUNC(generic_latch_8_device::read));
+ map(0xb000, 0xb00d).rw(m_k007232, FUNC(k007232_device::read), FUNC(k007232_device::write));
+ map(0xc000, 0xc001).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write));
+ map(0xd000, 0xd000).w(m_upd7759, FUNC(upd7759_device::port_w));
+ map(0xe000, 0xe000).w(this, FUNC(tmnt_state::tmnt_upd_start_w));
+ map(0xf000, 0xf000).r(this, FUNC(tmnt_state::tmnt_upd_busy_r));
+}
+
+
+void tmnt_state::punkshot_audio_map(address_map &map)
+{
+ map(0x0000, 0x7fff).rom();
+ map(0xf000, 0xf7ff).ram();
+ map(0xf800, 0xf801).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write));
+ map(0xfa00, 0xfa00).w(this, FUNC(tmnt_state::sound_arm_nmi_w));
+ map(0xfc00, 0xfc2f).rw(m_k053260, FUNC(k053260_device::read), FUNC(k053260_device::write));
+}
+
+
+void tmnt_state::lgtnfght_audio_map(address_map &map)
+{
+ map(0x0000, 0x7fff).rom();
+ map(0x8000, 0x87ff).ram();
+ map(0xa000, 0xa001).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write));
+ map(0xc000, 0xc02f).rw(m_k053260, FUNC(k053260_device::read), FUNC(k053260_device::write));
+}
+
+
+void tmnt_state::glfgreat_audio_map(address_map &map)
+{
+ map(0x0000, 0x7fff).rom();
+ map(0xf000, 0xf7ff).ram();
+ map(0xf800, 0xf82f).rw(m_k053260, FUNC(k053260_device::read), FUNC(k053260_device::write));
+ map(0xfa00, 0xfa00).w(this, FUNC(tmnt_state::sound_arm_nmi_w));
+}
+
+
+void tmnt_state::ssriders_audio_map(address_map &map)
+{
+ map(0x0000, 0xefff).rom();
+ map(0xf000, 0xf7ff).ram();
+ map(0xf800, 0xf801).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write));
+ map(0xfa00, 0xfa2f).rw(m_k053260, FUNC(k053260_device::read), FUNC(k053260_device::write));
+ map(0xfc00, 0xfc00).w(this, FUNC(tmnt_state::sound_arm_nmi_w));
+}
+
+
+void tmnt_state::thndrx2_audio_map(address_map &map)
+{
+ map(0x0000, 0xefff).rom();
+ map(0xf000, 0xf7ff).ram();
+ map(0xf800, 0xf801).mirror(0x0010).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write));
+ map(0xfa00, 0xfa00).w(this, FUNC(tmnt_state::sound_arm_nmi_w));
+ map(0xfc00, 0xfc2f).rw(m_k053260, FUNC(k053260_device::read), FUNC(k053260_device::write));
+}
READ8_MEMBER(tmnt_state::k054539_ctrl_r)
@@ -1063,17 +1082,18 @@ WRITE8_MEMBER(tmnt_state::k054539_ctrl_w)
m_k054539->write(space, 0x200 + offset, data, 0xff);
}
-ADDRESS_MAP_START(tmnt_state::prmrsocr_audio_map)
- AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
- AM_RANGE(0xc000, 0xdfff) AM_RAM
- AM_RANGE(0xe000, 0xe0ff) AM_DEVREADWRITE("k054539", k054539_device, read, write)
- AM_RANGE(0xe100, 0xe12f) AM_READWRITE(k054539_ctrl_r, k054539_ctrl_w)
- AM_RANGE(0xf000, 0xf000) AM_DEVWRITE("soundlatch3", generic_latch_8_device, write)
- AM_RANGE(0xf002, 0xf002) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
- AM_RANGE(0xf003, 0xf003) AM_DEVREAD("soundlatch2", generic_latch_8_device, read)
- AM_RANGE(0xf800, 0xf800) AM_WRITE(prmrsocr_audio_bankswitch_w)
-ADDRESS_MAP_END
+void tmnt_state::prmrsocr_audio_map(address_map &map)
+{
+ map(0x0000, 0x7fff).rom();
+ map(0x8000, 0xbfff).bankr("bank1");
+ map(0xc000, 0xdfff).ram();
+ map(0xe000, 0xe0ff).rw(m_k054539, FUNC(k054539_device::read), FUNC(k054539_device::write));
+ map(0xe100, 0xe12f).rw(this, FUNC(tmnt_state::k054539_ctrl_r), FUNC(tmnt_state::k054539_ctrl_w));
+ map(0xf000, 0xf000).w("soundlatch3", FUNC(generic_latch_8_device::write));
+ map(0xf002, 0xf002).r("soundlatch", FUNC(generic_latch_8_device::read));
+ map(0xf003, 0xf003).r("soundlatch2", FUNC(generic_latch_8_device::read));
+ map(0xf800, 0xf800).w(this, FUNC(tmnt_state::prmrsocr_audio_bankswitch_w));
+}
static INPUT_PORTS_START( cuebrick )