summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2018-02-17 01:14:11 -0500
committer AJR <ajrhacker@users.noreply.github.com>2018-02-17 01:14:11 -0500
commit72ad974876f60bbc3d2190588861852e719e5dd7 (patch)
tree8a4f967440d5678b7c09eed820ef9d84d7309c97
parentadd7e239f12148c839fc65c0f456d2ecad8cb296 (diff)
vaportra: Soundlatch modernization and code cleanup (nw)
-rw-r--r--src/mame/drivers/vaportra.cpp51
-rw-r--r--src/mame/includes/vaportra.h7
2 files changed, 13 insertions, 45 deletions
diff --git a/src/mame/drivers/vaportra.cpp b/src/mame/drivers/vaportra.cpp
index 7f1ac4dc098..9671a913645 100644
--- a/src/mame/drivers/vaportra.cpp
+++ b/src/mame/drivers/vaportra.cpp
@@ -30,51 +30,27 @@
/******************************************************************************/
-WRITE16_MEMBER(vaportra_state::vaportra_sound_w)
+READ8_MEMBER(vaportra_state::irq6_ack_r)
{
- /* Force synchronisation between CPUs with fake timer */
- machine().scheduler().synchronize();
- m_soundlatch->write(space, 0, data & 0xff);
- m_audiocpu->set_input_line(0, ASSERT_LINE);
-}
-
-READ16_MEMBER(vaportra_state::irq6_ack_r)
-{
- if (ACCESSING_BITS_0_7)
- m_maincpu->set_input_line (6, CLEAR_LINE);
+ m_maincpu->set_input_line(M68K_IRQ_6, CLEAR_LINE);
return (0);
}
-WRITE16_MEMBER(vaportra_state::irq6_ack_w)
+WRITE8_MEMBER(vaportra_state::irq6_ack_w)
{
- if (ACCESSING_BITS_0_7)
- m_maincpu->set_input_line (6, CLEAR_LINE);
-}
-
-READ16_MEMBER(vaportra_state::vaportra_control_r)
-{
- switch (offset << 1)
- {
- case 4:
- return ioport("DSW")->read();
- case 2:
- return ioport("COINS")->read();
- case 0:
- return ioport("PLAYERS")->read();
- }
-
- logerror("Unknown control read at %d\n",offset);
- return ~0;
+ m_maincpu->set_input_line(M68K_IRQ_6, CLEAR_LINE);
}
/******************************************************************************/
ADDRESS_MAP_START(vaportra_state::main_map)
AM_RANGE(0x000000, 0x07ffff) AM_ROM
+ AM_RANGE(0x100000, 0x100001) AM_READ_PORT("PLAYERS")
+ AM_RANGE(0x100002, 0x100003) AM_READ_PORT("COINS")
+ AM_RANGE(0x100004, 0x100005) AM_READ_PORT("DSW")
AM_RANGE(0x100000, 0x100003) AM_WRITE(vaportra_priority_w)
- AM_RANGE(0x100006, 0x100007) AM_WRITE(vaportra_sound_w)
- AM_RANGE(0x100000, 0x10000f) AM_READ(vaportra_control_r)
+ AM_RANGE(0x100006, 0x100007) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x00ff)
AM_RANGE(0x200000, 0x201fff) AM_DEVREADWRITE("tilegen2", deco16ic_device, pf1_data_r, pf1_data_w)
AM_RANGE(0x202000, 0x203fff) AM_DEVREADWRITE("tilegen2", deco16ic_device, pf2_data_r, pf2_data_w)
AM_RANGE(0x240000, 0x24000f) AM_DEVWRITE("tilegen2", deco16ic_device, pf_control_w)
@@ -83,7 +59,7 @@ ADDRESS_MAP_START(vaportra_state::main_map)
AM_RANGE(0x2c0000, 0x2c000f) AM_DEVWRITE("tilegen1", deco16ic_device, pf_control_w)
AM_RANGE(0x300000, 0x3009ff) AM_RAM_WRITE(vaportra_palette_24bit_rg_w) AM_SHARE("paletteram")
AM_RANGE(0x304000, 0x3049ff) AM_RAM_WRITE(vaportra_palette_24bit_b_w) AM_SHARE("paletteram2")
- AM_RANGE(0x308000, 0x308001) AM_READWRITE(irq6_ack_r, irq6_ack_w)
+ AM_RANGE(0x308000, 0x308001) AM_READWRITE8(irq6_ack_r, irq6_ack_w, 0x00ff)
AM_RANGE(0x30c000, 0x30c001) AM_DEVWRITE("spriteram", buffered_spriteram16_device, write)
AM_RANGE(0x318000, 0x3187ff) AM_MIRROR(0xce0000) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xffc000, 0xffffff) AM_RAM
@@ -92,19 +68,13 @@ ADDRESS_MAP_END
/******************************************************************************/
-READ8_MEMBER(vaportra_state::vaportra_soundlatch_r)
-{
- m_audiocpu->set_input_line(0, CLEAR_LINE);
- return m_soundlatch->read(space, offset);
-}
-
ADDRESS_MAP_START(vaportra_state::sound_map)
AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_DEVREADWRITE("ym1", ym2203_device, read, write)
AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE("ym2", ym2151_device, read, write)
AM_RANGE(0x120000, 0x120001) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
AM_RANGE(0x130000, 0x130001) AM_DEVREADWRITE("oki2", okim6295_device, read, write)
- AM_RANGE(0x140000, 0x140001) AM_READ(vaportra_soundlatch_r)
+ AM_RANGE(0x140000, 0x140001) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank8") /* ??? LOOKUP ??? */
AM_RANGE(0x1fec00, 0x1fec01) AM_DEVWRITE("audiocpu", h6280_device, timer_w)
AM_RANGE(0x1ff400, 0x1ff403) AM_DEVWRITE("audiocpu", h6280_device, irq_status_w)
@@ -304,6 +274,7 @@ MACHINE_CONFIG_START(vaportra_state::vaportra)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
+ MCFG_GENERIC_LATCH_DATA_PENDING_CB(INPUTLINE("audiocpu", 0))
MCFG_SOUND_ADD("ym1", YM2203, XTAL(32'220'000)/8)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
diff --git a/src/mame/includes/vaportra.h b/src/mame/includes/vaportra.h
index 3115ad0b329..2b0d1838d51 100644
--- a/src/mame/includes/vaportra.h
+++ b/src/mame/includes/vaportra.h
@@ -43,11 +43,8 @@ public:
/* misc */
uint16_t m_priority[2];
- DECLARE_WRITE16_MEMBER(vaportra_sound_w);
- DECLARE_READ16_MEMBER(irq6_ack_r);
- DECLARE_WRITE16_MEMBER(irq6_ack_w);
- DECLARE_READ16_MEMBER(vaportra_control_r);
- DECLARE_READ8_MEMBER(vaportra_soundlatch_r);
+ DECLARE_READ8_MEMBER(irq6_ack_r);
+ DECLARE_WRITE8_MEMBER(irq6_ack_w);
DECLARE_WRITE16_MEMBER(vaportra_priority_w);
DECLARE_WRITE16_MEMBER(vaportra_palette_24bit_rg_w);
DECLARE_WRITE16_MEMBER(vaportra_palette_24bit_b_w);