summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/esqasr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/esqasr.cpp')
-rw-r--r--src/mame/drivers/esqasr.cpp17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/mame/drivers/esqasr.cpp b/src/mame/drivers/esqasr.cpp
index 139aeab4dea..890748050b0 100644
--- a/src/mame/drivers/esqasr.cpp
+++ b/src/mame/drivers/esqasr.cpp
@@ -76,18 +76,14 @@ private:
DECLARE_WRITE_LINE_MEMBER(esq5506_otto_irq);
DECLARE_READ16_MEMBER(esq5506_read_adc);
+ void es5506_clock_changed(u32 data);
+
void asr_map(address_map &map);
void asrx_map(address_map &map);
};
void esqasr_state::machine_start()
{
- if (m_pump.found())
- {
- // tell the pump about the ESP chips
- if (m_esp.found())
- m_pump->set_esp(m_esp);
- }
}
void esqasr_state::machine_reset()
@@ -116,6 +112,11 @@ READ16_MEMBER(esqasr_state::esq5506_read_adc)
return 0;
}
+void esqasr_state::es5506_clock_changed(u32 data)
+{
+ m_pump->set_unscaled_clock(data);
+}
+
void esqasr_state::asr(machine_config &config)
{
M68000(config, m_maincpu, XTAL(16'000'000)); // actually MC68302
@@ -130,10 +131,12 @@ void esqasr_state::asr(machine_config &config)
SPEAKER(config, "rspeaker").front_right();
ESQ_5505_5510_PUMP(config, m_pump, XTAL(16'000'000) / (16 * 32));
+ m_pump->set_esp(m_esp);
m_pump->add_route(0, "lspeaker", 1.0);
m_pump->add_route(1, "rspeaker", 1.0);
es5506_device &ensoniq(ES5506(config, "ensoniq", XTAL(16'000'000)));
+ ensoniq.sample_rate_changed().set(FUNC(esqasr_state::es5506_clock_changed));
ensoniq.set_region0("waverom"); /* Bank 0 */
ensoniq.set_region1("waverom2"); /* Bank 1 */
ensoniq.set_region2("waverom3"); /* Bank 0 */
@@ -165,10 +168,12 @@ void esqasr_state::asrx(machine_config &config)
SPEAKER(config, "rspeaker").front_right();
ESQ_5505_5510_PUMP(config, m_pump, XTAL(16'000'000) / (16 * 32)); // Actually ES5511
+ m_pump->set_esp(m_esp);
m_pump->add_route(0, "lspeaker", 1.0);
m_pump->add_route(1, "rspeaker", 1.0);
es5506_device &ensoniq(ES5506(config, "ensoniq", XTAL(16'000'000)));
+ ensoniq.sample_rate_changed().set(FUNC(esqasr_state::es5506_clock_changed));
ensoniq.set_region0("waverom"); /* Bank 0 */
ensoniq.set_region1("waverom2"); /* Bank 1 */
ensoniq.set_region2("waverom3"); /* Bank 0 */