From 5b38c7e994b4465c97394f55d5ca7ada0d9b3882 Mon Sep 17 00:00:00 2001 From: AJR Date: Thu, 17 Aug 2017 20:36:45 -0400 Subject: [PATCH] progolf: Soundlatch modernization (nw) --- src/mame/drivers/progolf.cpp | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/src/mame/drivers/progolf.cpp b/src/mame/drivers/progolf.cpp index 8df11e55821..e62a9f66337 100644 --- a/src/mame/drivers/progolf.cpp +++ b/src/mame/drivers/progolf.cpp @@ -58,6 +58,7 @@ Twenty four 8116 rams. #include "video/mc6845.h" #include "machine/deco222.h" #include "machine/decocpu6.h" +#include "machine/gen_latch.h" #include "screen.h" #include "speaker.h" @@ -88,15 +89,12 @@ public: uint8_t m_scrollx_hi; uint8_t m_scrollx_lo; uint8_t m_gfx_switch; - uint8_t m_sound_cmd; DECLARE_WRITE8_MEMBER(charram_w); DECLARE_WRITE8_MEMBER(char_vregs_w); DECLARE_WRITE8_MEMBER(scrollx_lo_w); DECLARE_WRITE8_MEMBER(scrollx_hi_w); DECLARE_WRITE8_MEMBER(flip_screen_w); - DECLARE_WRITE8_MEMBER(audio_command_w); - DECLARE_READ8_MEMBER(audio_command_r); DECLARE_READ8_MEMBER(videoram_r); DECLARE_WRITE8_MEMBER(videoram_w); @@ -112,7 +110,6 @@ public: void progolf_state::machine_start() { - save_item(NAME(m_sound_cmd)); } void progolf_state::video_start() @@ -228,18 +225,6 @@ WRITE8_MEMBER(progolf_state::flip_screen_w) printf("$9600 with data = %02x used\n",data); } -WRITE8_MEMBER(progolf_state::audio_command_w) -{ - m_sound_cmd = data; - m_audiocpu->set_input_line(0, ASSERT_LINE); -} - -READ8_MEMBER(progolf_state::audio_command_r) -{ - m_audiocpu->set_input_line(0, CLEAR_LINE); - return m_sound_cmd; -} - READ8_MEMBER(progolf_state::videoram_r) { uint8_t *gfx_rom = memregion("gfx1")->base(); @@ -283,7 +268,7 @@ static ADDRESS_MAP_START( main_cpu, AS_PROGRAM, 8, progolf_state ) AM_RANGE(0x9800, 0x9800) AM_READ_PORT("DSW1") AM_RANGE(0x9800, 0x9800) AM_DEVWRITE("crtc", mc6845_device, address_w) AM_RANGE(0x9801, 0x9801) AM_DEVWRITE("crtc", mc6845_device, register_w) - AM_RANGE(0x9a00, 0x9a00) AM_READ_PORT("DSW2") AM_WRITE(audio_command_w) + AM_RANGE(0x9a00, 0x9a00) AM_READ_PORT("DSW2") AM_DEVWRITE("soundlatch", generic_latch_8_device, write) // AM_RANGE(0x9e00, 0x9e00) AM_WRITENOP AM_RANGE(0xb000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -294,7 +279,7 @@ static ADDRESS_MAP_START( sound_cpu, AS_PROGRAM, 8, progolf_state ) AM_RANGE(0x5000, 0x5fff) AM_DEVWRITE("ay1", ay8910_device, address_w) AM_RANGE(0x6000, 0x6fff) AM_DEVREADWRITE("ay2", ay8910_device, data_r, data_w) AM_RANGE(0x7000, 0x7fff) AM_DEVWRITE("ay2", ay8910_device, address_w) - AM_RANGE(0x8000, 0x8fff) AM_READ(audio_command_r) AM_WRITENOP //volume control? + AM_RANGE(0x8000, 0x8fff) AM_DEVREADWRITE("soundlatch", generic_latch_8_device, read, acknowledge_w) AM_RANGE(0xf000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -434,6 +419,10 @@ static MACHINE_CONFIG_START( progolf ) MCFG_QUANTUM_PERFECT_CPU("maincpu") + MCFG_GENERIC_LATCH_8_ADD("soundlatch") + MCFG_GENERIC_LATCH_DATA_PENDING_CB(INPUTLINE("audiocpu", 0)) + MCFG_GENERIC_LATCH_SEPARATE_ACKNOWLEDGE(true) + /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(57)