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);