From 4836dd9c1f538aa2759eed1548dd62bae80d57ed Mon Sep 17 00:00:00 2001 From: AJR Date: Thu, 12 Jan 2017 20:38:42 -0500 Subject: [PATCH] Preliminary work on Gran Premio F1 sound system (nw) --- src/mame/drivers/polepos.cpp | 15 ++++++++++++++- src/mame/includes/polepos.h | 3 +++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/mame/drivers/polepos.cpp b/src/mame/drivers/polepos.cpp index 3ff8dd81f42..bf7c7a24e3c 100644 --- a/src/mame/drivers/polepos.cpp +++ b/src/mame/drivers/polepos.cpp @@ -228,6 +228,7 @@ Todo: #include "audio/namco54.h" #include "includes/polepos.h" #include "sound/tms5220.h" +#include "machine/gen_latch.h" #include "machine/nvram.h" #include "machine/watchdog.h" @@ -986,13 +987,22 @@ static MACHINE_CONFIG_START( topracern, polepos_state ) MACHINE_CONFIG_END +READ8_MEMBER(polepos_state::sound_z80_nmi_ack_r) +{ + m_sound_z80->set_input_line(INPUT_LINE_NMI, CLEAR_LINE); + return 0xff; +} + static ADDRESS_MAP_START( sound_z80_bootleg_map, AS_PROGRAM, 8, polepos_state ) AM_RANGE(0x0000, 0x1fff) AM_ROM AM_RANGE(0x2700, 0x27ff) AM_RAM + AM_RANGE(0x4000, 0x4000) AM_DEVREAD("soundlatch", generic_latch_8_device, read) + AM_RANGE(0x6000, 0x6000) AM_READ(sound_z80_nmi_ack_r) ADDRESS_MAP_END static ADDRESS_MAP_START( sound_z80_bootleg_iomap, AS_IO, 8, polepos_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) + AM_RANGE(0x00, 0x00) AM_DEVREADWRITE("tms", tms5220_device, status_r, data_w) ADDRESS_MAP_END static MACHINE_CONFIG_DERIVED( polepos2bi, topracern ) @@ -1001,6 +1011,9 @@ static MACHINE_CONFIG_DERIVED( polepos2bi, topracern ) MCFG_CPU_PROGRAM_MAP(sound_z80_bootleg_map) MCFG_CPU_IO_MAP(sound_z80_bootleg_iomap) + MCFG_GENERIC_LATCH_8_ADD("soundlatch") + MCFG_GENERIC_LATCH_DATA_PENDING_CB(ASSERTLINE("soundz80bl", INPUT_LINE_NMI)) + MCFG_SOUND_ADD("tms", TMS5220, 600000) /* ? Mhz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.80) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.80) @@ -2252,7 +2265,7 @@ ROM_START( polepos2bs ) /* this is used for the spanish speech with a TMS5220, not properly hooked up */ ROM_REGION( 0x2000, "soundz80bl", 0 ) - ROM_LOAD( "aboard-spi.11", 0x0000, 0x2000, CRC(269c1af4) SHA1(73acb28f1cf8eae26838835aef1566fea18b4138) ) + ROM_LOAD( "aboard-spi.11", 0x0000, 0x2000, BAD_DUMP CRC(269c1af4) SHA1(73acb28f1cf8eae26838835aef1566fea18b4138) ) // D6 stuck high // ROM_REGION( 0x2000, "pals", 0 ) // ...not dumped yet... diff --git a/src/mame/includes/polepos.h b/src/mame/includes/polepos.h index 3cb277b0a29..3efa109cb47 100644 --- a/src/mame/includes/polepos.h +++ b/src/mame/includes/polepos.h @@ -41,6 +41,7 @@ public: m_maincpu(*this, "maincpu"), m_subcpu(*this, "sub"), m_subcpu2(*this, "sub2"), + m_sound_z80(*this, "soundz80bl"), m_namco_sound(*this, "namco"), m_tms(*this, "tms"), m_sprite16_memory(*this, "sprite16_memory"), @@ -54,6 +55,7 @@ public: required_device m_maincpu; required_device m_subcpu; required_device m_subcpu2; + optional_device m_sound_z80; optional_device m_namco_sound; optional_device m_tms; uint8_t m_steer_last; @@ -114,6 +116,7 @@ public: DECLARE_READ8_MEMBER(namco_53xx_k_r); DECLARE_READ8_MEMBER(steering_changed_r); DECLARE_READ8_MEMBER(steering_delta_r); + DECLARE_READ8_MEMBER(sound_z80_nmi_ack_r); DECLARE_DRIVER_INIT(topracern); DECLARE_DRIVER_INIT(polepos2); TILE_GET_INFO_MEMBER(bg_get_tile_info);