From f12ba601b2a605a73cc9ee4beebe744f8fcb08fd Mon Sep 17 00:00:00 2001 From: Lord-Nightmare Date: Sat, 17 Sep 2016 22:18:07 -0400 Subject: [PATCH] taitosj.cpp: Add XTALs for various clocks based on schematics. Documented and implemented AY-3-8910 outputs being tied directly together for 3 of the 4 AY-3-8910 chips. [Lord Nightmare[ --- src/emu/drivers/xtal.h | 2 +- src/mame/drivers/taitosj.cpp | 19 +++++++++++-------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/emu/drivers/xtal.h b/src/emu/drivers/xtal.h index 280e1d02879..b868219e45d 100644 --- a/src/emu/drivers/xtal.h +++ b/src/emu/drivers/xtal.h @@ -81,7 +81,7 @@ enum XTAL_5_7143MHz = 5714300, /* Cidelsa Destroyer */ XTAL_5_911MHz = 5911000, /* Philips Videopac Plus G7400 */ XTAL_5_9904MHz = 5990400, /* Luxor ABC 800 keyboard (Keytronic custom part #48-300-008 is equivalent) */ - XTAL_6MHz = 6000000, /* American Poker II */ + XTAL_6MHz = 6000000, /* American Poker II, Taito SJ System */ XTAL_6_144MHz = 6144000, /* Used on Alpha Denshi early 80's games sound board, Casio FP-200 and Namco System 16 */ XTAL_6_5MHz = 6500000, /* Jupiter Ace */ XTAL_6_9MHz = 6900000, /* BBN BitGraph CPU */ diff --git a/src/mame/drivers/taitosj.cpp b/src/mame/drivers/taitosj.cpp index 2b3b37c2b07..1aed6acf599 100644 --- a/src/mame/drivers/taitosj.cpp +++ b/src/mame/drivers/taitosj.cpp @@ -1749,17 +1749,17 @@ WRITE8_MEMBER(taitosj_state::dac_vol_w) static MACHINE_CONFIG_START( nomcu, taitosj_state ) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu",Z80,8000000/2) /* 4 MHz */ + MCFG_CPU_ADD("maincpu",Z80,XTAL_8MHz/2) /* 8 MHz / 2, on CPU board */ MCFG_CPU_PROGRAM_MAP(taitosj_main_nomcu_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", taitosj_state, irq0_line_hold) - MCFG_CPU_ADD("audiocpu", Z80,6000000/2) /* 3 MHz */ + MCFG_CPU_ADD("audiocpu", Z80,XTAL_6MHz/2) /* 6 MHz / 2, on GAME board */ MCFG_CPU_PROGRAM_MAP(taitosj_audio_map) /* interrupts: */ /* - no interrupts synced with vblank */ /* - NMI triggered by the main CPU */ /* - periodic IRQ, with frequency 6000000/(4*16*16*10*16) = 36.621 Hz, */ - MCFG_CPU_PERIODIC_INT_DRIVER(taitosj_state, irq0_line_hold, (double)6000000/(4*16*16*10*16)) + MCFG_CPU_PERIODIC_INT_DRIVER(taitosj_state, irq0_line_hold, (double)XTAL_6MHz/(4*16*16*10*16)) /* video hardware */ @@ -1780,21 +1780,24 @@ static MACHINE_CONFIG_START( nomcu, taitosj_state ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_SOUND_ADD("ay1", AY8910, 6000000/4) + MCFG_SOUND_ADD("ay1", AY8910, XTAL_6MHz/4) // 6mhz/4 on GAME board, AY-3-8910 @ IC53 (this is the only AY which uses proper mixing resistors, the 3 below have outputs tied together) MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW2")) MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW3")) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15) - MCFG_SOUND_ADD("ay2", AY8910, 6000000/4) + MCFG_SOUND_ADD("ay2", AY8910, XTAL_6MHz/4) // 6mhz/4 on GAME board, AY-3-8910 @ IC51 + MCFG_AY8910_OUTPUT_TYPE(AY8910_SINGLE_OUTPUT) MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(taitosj_state, dac_out_w)) /* port Awrite */ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(taitosj_state, dac_vol_w)) /* port Bwrite */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15) - MCFG_SOUND_ADD("ay3", AY8910, 6000000/4) + MCFG_SOUND_ADD("ay3", AY8910, XTAL_6MHz/4) // 6mhz/4 on GAME board, AY-3-8910 @ IC49 + MCFG_AY8910_OUTPUT_TYPE(AY8910_SINGLE_OUTPUT) MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(taitosj_state, input_port_4_f0_w)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15) - MCFG_SOUND_ADD("ay4", AY8910, 6000000/4) + MCFG_SOUND_ADD("ay4", AY8910, XTAL_6MHz/4) // 6mhz/4 on GAME board, AY-3-8910 @ IC50 + MCFG_AY8910_OUTPUT_TYPE(AY8910_SINGLE_OUTPUT) MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(taitosj_state, taitosj_sndnmi_msk_w)) /* port Bwrite */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) @@ -1810,7 +1813,7 @@ static MACHINE_CONFIG_DERIVED( mcu, nomcu ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(taitosj_main_mcu_map) - MCFG_CPU_ADD("mcu", M68705,3000000) /* xtal is 3MHz, divided by 4 internally */ + MCFG_CPU_ADD("mcu", M68705,XTAL_3MHz) /* xtal is 3MHz, divided by 4 internally */ MCFG_CPU_PROGRAM_MAP(taitosj_mcu_map) MCFG_QUANTUM_TIME(attotime::from_hz(6000))