From 0dd39db3dee8a9543a95e74065f2ca640646fe1b Mon Sep 17 00:00:00 2001 From: Jonathan Gevaryahu Date: Fri, 28 Dec 2012 07:47:50 +0000 Subject: [PATCH] Williams System 11 pinball boards: Fix audiocpu clock; this fixes the speed of music in High Speed and the pitch of the voices in Black Knight 2000. [Lord Nightmare] --- src/mame/drivers/s11.c | 13 ++++++------- src/mame/drivers/s11a.c | 12 ++++++------ src/mame/drivers/s11b.c | 16 ++++++++-------- 3 files changed, 20 insertions(+), 21 deletions(-) diff --git a/src/mame/drivers/s11.c b/src/mame/drivers/s11.c index ceec1e35371..3731efaa483 100644 --- a/src/mame/drivers/s11.c +++ b/src/mame/drivers/s11.c @@ -7,7 +7,6 @@ ToDo: -- Background music is slow in High Speed - Can coin up but not start - Doesn't react to the Advance button very well @@ -236,7 +235,7 @@ void s11_state::device_timer(emu_timer &timer, device_timer_id id, int param, vo if(param == 1) { m_maincpu->set_input_line(M6800_IRQ_LINE,ASSERT_LINE); - m_irq_timer->adjust(attotime::from_ticks(32,4000000/2),0); + m_irq_timer->adjust(attotime::from_ticks(32,XTAL_4MHz/2),0); m_pias->cb1_w(0); m_irq_active = true; m_pia28->ca1_w(BIT(ioport("DIAGS")->read(), 2)); // Advance @@ -245,7 +244,7 @@ void s11_state::device_timer(emu_timer &timer, device_timer_id id, int param, vo else { m_maincpu->set_input_line(M6800_IRQ_LINE,CLEAR_LINE); - m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,4000000/2),1); + m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,XTAL_4MHz/2),1); m_pias->cb1_w(1); m_irq_active = false; m_pia28->ca1_w(1); @@ -280,7 +279,7 @@ WRITE_LINE_MEMBER( s11_state::pia_irq ) if(state == CLEAR_LINE) { // restart IRQ timer - m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,4000000/2),1); + m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,XTAL_4MHz/2),1); m_irq_active = false; } else @@ -592,13 +591,13 @@ DRIVER_INIT_MEMBER( s11_state, s11 ) membank("bank0")->set_entry(0); membank("bank1")->set_entry(0); m_irq_timer = timer_alloc(TIMER_IRQ); - m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,4000000/2),1); + m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,XTAL_4MHz/2),1); m_irq_active = false; } static MACHINE_CONFIG_START( s11, s11_state ) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", M6802, 4000000) + MCFG_CPU_ADD("maincpu", M6802, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(s11_main_map) MCFG_MACHINE_RESET_OVERRIDE(s11_state, s11) @@ -618,7 +617,7 @@ static MACHINE_CONFIG_START( s11, s11_state ) MCFG_NVRAM_ADD_1FILL("nvram") /* Add the soundcard */ - MCFG_CPU_ADD("audiocpu", M6808, 3580000) + MCFG_CPU_ADD("audiocpu", M6808, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(s11_audio_map) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/s11a.c b/src/mame/drivers/s11a.c index 87842e8b3f9..be8eca3d208 100644 --- a/src/mame/drivers/s11a.c +++ b/src/mame/drivers/s11a.c @@ -245,7 +245,7 @@ void s11a_state::device_timer(emu_timer &timer, device_timer_id id, int param, v if(param == 1) { m_maincpu->set_input_line(M6800_IRQ_LINE,ASSERT_LINE); - m_irq_timer->adjust(attotime::from_ticks(32,4000000/2),0); + m_irq_timer->adjust(attotime::from_ticks(32,XTAL_4MHz/2),0); m_pias->cb1_w(0); m_irq_active = true; m_pia28->ca1_w(BIT(ioport("DIAGS")->read(), 2)); // Advance @@ -254,7 +254,7 @@ void s11a_state::device_timer(emu_timer &timer, device_timer_id id, int param, v else { m_maincpu->set_input_line(M6800_IRQ_LINE,CLEAR_LINE); - m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,4000000/2),1); + m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,XTAL_4MHz/2),1); m_pias->cb1_w(1); m_irq_active = false; m_pia28->ca1_w(1); @@ -290,7 +290,7 @@ WRITE_LINE_MEMBER( s11a_state::pia_irq ) if(state == CLEAR_LINE) { // restart IRQ timer - m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,4000000/2),1); + m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,XTAL_4MHz/2),1); m_irq_active = false; } else @@ -616,13 +616,13 @@ DRIVER_INIT_MEMBER( s11a_state, s11a ) membank("bank1")->set_entry(0); membank("bgbank")->set_entry(0); m_irq_timer = timer_alloc(TIMER_IRQ); - m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,4000000/2),1); + m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,XTAL_4MHz/2),1); m_irq_active = false; } static MACHINE_CONFIG_START( s11a, s11a_state ) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", M6808, 4000000) + MCFG_CPU_ADD("maincpu", M6808, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(s11a_main_map) MCFG_MACHINE_RESET_OVERRIDE(s11a_state, s11a) @@ -642,7 +642,7 @@ static MACHINE_CONFIG_START( s11a, s11a_state ) MCFG_NVRAM_ADD_1FILL("nvram") /* Add the soundcard */ - MCFG_CPU_ADD("audiocpu", M6802, 3580000) + MCFG_CPU_ADD("audiocpu", M6802, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(s11a_audio_map) MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/s11b.c b/src/mame/drivers/s11b.c index 6793ccef758..db97fedba31 100644 --- a/src/mame/drivers/s11b.c +++ b/src/mame/drivers/s11b.c @@ -243,7 +243,7 @@ void s11b_state::device_timer(emu_timer &timer, device_timer_id id, int param, v if(param == 1) { m_maincpu->set_input_line(M6800_IRQ_LINE,ASSERT_LINE); - m_irq_timer->adjust(attotime::from_ticks(32,4000000/2),0); + m_irq_timer->adjust(attotime::from_ticks(32,XTAL_4MHz/2),0); m_pias->cb1_w(0); m_irq_active = true; m_pia28->ca1_w(BIT(ioport("DIAGS")->read(), 2)); // Advance @@ -252,7 +252,7 @@ void s11b_state::device_timer(emu_timer &timer, device_timer_id id, int param, v else { m_maincpu->set_input_line(M6800_IRQ_LINE,CLEAR_LINE); - m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,4000000/2),1); + m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,XTAL_4MHz/2),1); m_pias->cb1_w(1); m_irq_active = false; m_pia28->ca1_w(1); @@ -291,7 +291,7 @@ WRITE_LINE_MEMBER( s11b_state::pia_irq ) if(state == CLEAR_LINE) { // restart IRQ timer - m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,4000000/2),1); + m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,XTAL_4MHz/2),1); m_irq_active = false; } else @@ -651,7 +651,7 @@ DRIVER_INIT_MEMBER( s11b_state, s11b ) membank("bgbank")->set_entry(0); m_invert = false; m_irq_timer = timer_alloc(TIMER_IRQ); - m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,4000000/2),1); + m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,XTAL_4MHz/2),1); m_irq_active = false; } @@ -667,13 +667,13 @@ DRIVER_INIT_MEMBER( s11b_state, s11b_invert ) membank("bgbank")->set_entry(0); m_invert = true; m_irq_timer = timer_alloc(TIMER_IRQ); - m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,4000000/2),1); + m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,XTAL_4MHz/2),1); m_irq_active = false; } static MACHINE_CONFIG_START( s11b, s11b_state ) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", M6808, 4000000) + MCFG_CPU_ADD("maincpu", M6808, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(s11b_main_map) MCFG_MACHINE_RESET_OVERRIDE(s11b_state, s11b) @@ -693,7 +693,7 @@ static MACHINE_CONFIG_START( s11b, s11b_state ) MCFG_NVRAM_ADD_1FILL("nvram") /* Add the soundcard */ - MCFG_CPU_ADD("audiocpu", M6802, 3580000) + MCFG_CPU_ADD("audiocpu", M6802, XTAL_4MHz) MCFG_CPU_PROGRAM_MAP(s11b_audio_map) MCFG_SPEAKER_STANDARD_MONO("mono") @@ -707,7 +707,7 @@ static MACHINE_CONFIG_START( s11b, s11b_state ) MCFG_PIA6821_ADD("pias", pias_intf) /* Add the background music card */ - MCFG_CPU_ADD("bgcpu", M6809E, 8000000) // MC68B09E + MCFG_CPU_ADD("bgcpu", M6809E, XTAL_8MHz) // MC68B09E (note: schematics show this as 8mhz/2, but games crash very quickly with that speed?) MCFG_CPU_PROGRAM_MAP(s11b_bg_map) MCFG_QUANTUM_TIME(attotime::from_hz(50))