mirror of
https://github.com/holub/mame
synced 2025-04-24 01:11:11 +03:00
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]
This commit is contained in:
parent
ec177d66bc
commit
0dd39db3de
@ -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")
|
||||
|
@ -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")
|
||||
|
@ -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))
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user