Previous 199869 Revisions Next

r19880 Friday 28th December, 2012 at 07:47:50 UTC by Jonathan Gevaryahu
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 s11a.c s11b.c

trunk/src/mame/drivers/s11.c
r19879r19880
77
88
99ToDo:
10- Background music is slow in High Speed
1110- Can coin up but not start
1211- Doesn't react to the Advance button very well
1312
r19879r19880
236235      if(param == 1)
237236      {
238237         m_maincpu->set_input_line(M6800_IRQ_LINE,ASSERT_LINE);
239         m_irq_timer->adjust(attotime::from_ticks(32,4000000/2),0);
238         m_irq_timer->adjust(attotime::from_ticks(32,XTAL_4MHz/2),0);
240239         m_pias->cb1_w(0);
241240         m_irq_active = true;
242241         m_pia28->ca1_w(BIT(ioport("DIAGS")->read(), 2));  // Advance
r19879r19880
245244      else
246245      {
247246         m_maincpu->set_input_line(M6800_IRQ_LINE,CLEAR_LINE);
248         m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,4000000/2),1);
247         m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,XTAL_4MHz/2),1);
249248         m_pias->cb1_w(1);
250249         m_irq_active = false;
251250         m_pia28->ca1_w(1);
r19879r19880
280279   if(state == CLEAR_LINE)
281280   {
282281      // restart IRQ timer
283      m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,4000000/2),1);
282      m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,XTAL_4MHz/2),1);
284283      m_irq_active = false;
285284   }
286285   else
r19879r19880
592591   membank("bank0")->set_entry(0);
593592   membank("bank1")->set_entry(0);
594593   m_irq_timer = timer_alloc(TIMER_IRQ);
595   m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,4000000/2),1);
594   m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,XTAL_4MHz/2),1);
596595   m_irq_active = false;
597596}
598597
599598static MACHINE_CONFIG_START( s11, s11_state )
600599   /* basic machine hardware */
601   MCFG_CPU_ADD("maincpu", M6802, 4000000)
600   MCFG_CPU_ADD("maincpu", M6802, XTAL_4MHz)
602601   MCFG_CPU_PROGRAM_MAP(s11_main_map)
603602   MCFG_MACHINE_RESET_OVERRIDE(s11_state, s11)
604603
r19879r19880
618617   MCFG_NVRAM_ADD_1FILL("nvram")
619618
620619   /* Add the soundcard */
621   MCFG_CPU_ADD("audiocpu", M6808, 3580000)
620   MCFG_CPU_ADD("audiocpu", M6808, XTAL_4MHz)
622621   MCFG_CPU_PROGRAM_MAP(s11_audio_map)
623622
624623   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mame/drivers/s11a.c
r19879r19880
245245      if(param == 1)
246246      {
247247         m_maincpu->set_input_line(M6800_IRQ_LINE,ASSERT_LINE);
248         m_irq_timer->adjust(attotime::from_ticks(32,4000000/2),0);
248         m_irq_timer->adjust(attotime::from_ticks(32,XTAL_4MHz/2),0);
249249         m_pias->cb1_w(0);
250250         m_irq_active = true;
251251         m_pia28->ca1_w(BIT(ioport("DIAGS")->read(), 2));  // Advance
r19879r19880
254254      else
255255      {
256256         m_maincpu->set_input_line(M6800_IRQ_LINE,CLEAR_LINE);
257         m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,4000000/2),1);
257         m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,XTAL_4MHz/2),1);
258258         m_pias->cb1_w(1);
259259         m_irq_active = false;
260260         m_pia28->ca1_w(1);
r19879r19880
290290   if(state == CLEAR_LINE)
291291   {
292292      // restart IRQ timer
293      m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,4000000/2),1);
293      m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,XTAL_4MHz/2),1);
294294      m_irq_active = false;
295295   }
296296   else
r19879r19880
616616   membank("bank1")->set_entry(0);
617617   membank("bgbank")->set_entry(0);
618618   m_irq_timer = timer_alloc(TIMER_IRQ);
619   m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,4000000/2),1);
619   m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,XTAL_4MHz/2),1);
620620   m_irq_active = false;
621621}
622622
623623static MACHINE_CONFIG_START( s11a, s11a_state )
624624   /* basic machine hardware */
625   MCFG_CPU_ADD("maincpu", M6808, 4000000)
625   MCFG_CPU_ADD("maincpu", M6808, XTAL_4MHz)
626626   MCFG_CPU_PROGRAM_MAP(s11a_main_map)
627627   MCFG_MACHINE_RESET_OVERRIDE(s11a_state, s11a)
628628
r19879r19880
642642   MCFG_NVRAM_ADD_1FILL("nvram")
643643
644644   /* Add the soundcard */
645   MCFG_CPU_ADD("audiocpu", M6802, 3580000)
645   MCFG_CPU_ADD("audiocpu", M6802, XTAL_4MHz)
646646   MCFG_CPU_PROGRAM_MAP(s11a_audio_map)
647647
648648   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mame/drivers/s11b.c
r19879r19880
243243      if(param == 1)
244244      {
245245         m_maincpu->set_input_line(M6800_IRQ_LINE,ASSERT_LINE);
246         m_irq_timer->adjust(attotime::from_ticks(32,4000000/2),0);
246         m_irq_timer->adjust(attotime::from_ticks(32,XTAL_4MHz/2),0);
247247         m_pias->cb1_w(0);
248248         m_irq_active = true;
249249         m_pia28->ca1_w(BIT(ioport("DIAGS")->read(), 2));  // Advance
r19879r19880
252252      else
253253      {
254254         m_maincpu->set_input_line(M6800_IRQ_LINE,CLEAR_LINE);
255         m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,4000000/2),1);
255         m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,XTAL_4MHz/2),1);
256256         m_pias->cb1_w(1);
257257         m_irq_active = false;
258258         m_pia28->ca1_w(1);
r19879r19880
291291   if(state == CLEAR_LINE)
292292   {
293293      // restart IRQ timer
294      m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,4000000/2),1);
294      m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,XTAL_4MHz/2),1);
295295      m_irq_active = false;
296296   }
297297   else
r19879r19880
651651   membank("bgbank")->set_entry(0);
652652   m_invert = false;
653653   m_irq_timer = timer_alloc(TIMER_IRQ);
654   m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,4000000/2),1);
654   m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,XTAL_4MHz/2),1);
655655   m_irq_active = false;
656656}
657657
r19879r19880
667667   membank("bgbank")->set_entry(0);
668668   m_invert = true;
669669   m_irq_timer = timer_alloc(TIMER_IRQ);
670   m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,4000000/2),1);
670   m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,XTAL_4MHz/2),1);
671671   m_irq_active = false;
672672}
673673
674674static MACHINE_CONFIG_START( s11b, s11b_state )
675675   /* basic machine hardware */
676   MCFG_CPU_ADD("maincpu", M6808, 4000000)
676   MCFG_CPU_ADD("maincpu", M6808, XTAL_4MHz)
677677   MCFG_CPU_PROGRAM_MAP(s11b_main_map)
678678   MCFG_MACHINE_RESET_OVERRIDE(s11b_state, s11b)
679679
r19879r19880
693693   MCFG_NVRAM_ADD_1FILL("nvram")
694694
695695   /* Add the soundcard */
696   MCFG_CPU_ADD("audiocpu", M6802, 3580000)
696   MCFG_CPU_ADD("audiocpu", M6802, XTAL_4MHz)
697697   MCFG_CPU_PROGRAM_MAP(s11b_audio_map)
698698
699699   MCFG_SPEAKER_STANDARD_MONO("mono")
r19879r19880
707707   MCFG_PIA6821_ADD("pias", pias_intf)
708708
709709   /* Add the background music card */
710   MCFG_CPU_ADD("bgcpu", M6809E, 8000000) // MC68B09E
710   MCFG_CPU_ADD("bgcpu", M6809E, XTAL_8MHz) // MC68B09E (note: schematics show this as 8mhz/2, but games crash very quickly with that speed?)
711711   MCFG_CPU_PROGRAM_MAP(s11b_bg_map)
712712   MCFG_QUANTUM_TIME(attotime::from_hz(50))
713713

Previous 199869 Revisions Next


© 1997-2024 The MAME Team