From 410384f497cb26c2b5965709dd5d00eb9852598b Mon Sep 17 00:00:00 2001 From: AJR Date: Thu, 15 Jun 2017 14:50:25 -0400 Subject: [PATCH] arkanoid, tehkanwc: More PSG substitution (nw) --- src/mame/drivers/arkanoid.cpp | 20 ++++++++++++++++---- src/mame/drivers/tehkanwc.cpp | 20 ++++++++++++++++---- 2 files changed, 32 insertions(+), 8 deletions(-) diff --git a/src/mame/drivers/arkanoid.cpp b/src/mame/drivers/arkanoid.cpp index 40c1389306e..76b3e1ba545 100644 --- a/src/mame/drivers/arkanoid.cpp +++ b/src/mame/drivers/arkanoid.cpp @@ -44,6 +44,10 @@ above $F000. For these addresses it is vital to read zero values, or else the player will die for no reason. + Some bootleg boards substitute an AY-3-8910A for the YM2149. Since the clock + divider of the GI PSG cannot be configured, this effectively doubles the + pitch of music and sound effects on actual hardware! + Measured Clocks: Z80 - 5997077Hz (6Mhz) MC68705 - 2998533Hz (3Mhz) @@ -1389,6 +1393,14 @@ static MACHINE_CONFIG_DERIVED( bootleg, arkanoid ) MCFG_DEVICE_REMOVE("mcu") MACHINE_CONFIG_END +static MACHINE_CONFIG_DERIVED( aysnd, bootleg ) + MCFG_SOUND_ADD("aysnd", AY8910, XTAL_12MHz/4) + MCFG_AY8910_OUTPUT_TYPE(AY8910_SINGLE_OUTPUT) + MCFG_AY8910_PORT_A_READ_CB(IOPORT("UNUSED")) + MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW")) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.66) +MACHINE_CONFIG_END + static MACHINE_CONFIG_START( hexa ) @@ -2209,11 +2221,11 @@ GAME( 1986, arkblock, arkanoid, bootleg, arkangc, arkanoid_state, arkblock GAME( 1986, arkbloc2, arkanoid, bootleg, arkangc, arkanoid_state, arkbloc2, ROT90, "bootleg (Game Corporation)", "Block (Game Corporation bootleg, set 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1986, arkbloc3, arkanoid, bootleg, block2, arkanoid_state, block2, ROT90, "bootleg (Game Corporation)", "Block (Game Corporation bootleg, set 3)", MACHINE_SUPPORTS_SAVE ) // Both these sets (arkblock3, block2) have an extra unknown rom GAME( 1986, block2, arkanoid, bootleg, block2, arkanoid_state, block2, ROT90, "bootleg (S.P.A. Co.)", "Block 2 (S.P.A. Co. bootleg)", MACHINE_SUPPORTS_SAVE ) // and scrambled gfx roms with 'space invader' themed gfx -GAME( 1986, arkgcbl, arkanoid, bootleg, arkgcbl, arkanoid_state, arkgcbl, ROT90, "bootleg", "Arkanoid (bootleg on Block hardware, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, arkgcbla, arkanoid, bootleg, arkgcbl, arkanoid_state, arkgcbl, ROT90, "bootleg", "Arkanoid (bootleg on Block hardware, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, arkgcbl, arkanoid, aysnd, arkgcbl, arkanoid_state, arkgcbl, ROT90, "bootleg", "Arkanoid (bootleg on Block hardware, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, arkgcbla, arkanoid, aysnd, arkgcbl, arkanoid_state, arkgcbl, ROT90, "bootleg", "Arkanoid (bootleg on Block hardware, set 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1988, paddle2, arkanoid, bootleg, paddle2, arkanoid_state, paddle2, ROT90, "bootleg", "Paddle 2 (bootleg on Block hardware)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, arkatayt, arkanoid, bootleg, arkatayt, arkanoid_state, 0, ROT90, "bootleg (Tayto)", "Arkanoid (Tayto bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, arktayt2, arkanoid, bootleg, arktayt2, arkanoid_state, 0, ROT90, "bootleg (Tayto)", "Arkanoid (Tayto bootleg, harder)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, arkatayt, arkanoid, aysnd, arkatayt, arkanoid_state, 0, ROT90, "bootleg (Tayto)", "Arkanoid (Tayto bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, arktayt2, arkanoid, aysnd, arktayt2, arkanoid_state, 0, ROT90, "bootleg (Tayto)", "Arkanoid (Tayto bootleg, harder)", MACHINE_SUPPORTS_SAVE ) // Other games GAME( 1987, arkatour, 0, arkanoid, arkanoid, arkanoid_state, 0, ROT90, "Taito America Corporation (Romstar license)", "Tournament Arkanoid (US)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/tehkanwc.cpp b/src/mame/drivers/tehkanwc.cpp index 21cbdead748..00f906128d4 100644 --- a/src/mame/drivers/tehkanwc.cpp +++ b/src/mame/drivers/tehkanwc.cpp @@ -669,12 +669,12 @@ static MACHINE_CONFIG_START( tehkanwc ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") MCFG_GENERIC_LATCH_8_ADD("soundlatch2") - MCFG_SOUND_ADD("ay1", AY8910, 18432000/12) + MCFG_SOUND_ADD("ay1", YM2149, 18432000/12) MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(tehkanwc_state, portA_w)) MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(tehkanwc_state, portB_w)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - MCFG_SOUND_ADD("ay2", AY8910, 18432000/12) + MCFG_SOUND_ADD("ay2", YM2149, 18432000/12) MCFG_AY8910_PORT_A_READ_CB(READ8(tehkanwc_state, portA_r)) MCFG_AY8910_PORT_B_READ_CB(READ8(tehkanwc_state, portB_r)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) @@ -685,6 +685,18 @@ static MACHINE_CONFIG_START( tehkanwc ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.45) MACHINE_CONFIG_END +static MACHINE_CONFIG_DERIVED(tehkanwcb, tehkanwc) + MCFG_SOUND_REPLACE("ay1", AY8910, 18432000/12) + MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(tehkanwc_state, portA_w)) + MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(tehkanwc_state, portB_w)) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) + + MCFG_SOUND_REPLACE("ay2", AY8910, 18432000/12) + MCFG_AY8910_PORT_A_READ_CB(READ8(tehkanwc_state, portA_r)) + MCFG_AY8910_PORT_B_READ_CB(READ8(tehkanwc_state, portB_r)) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) +MACHINE_CONFIG_END + DRIVER_INIT_MEMBER(tehkanwc_state,teedoff) { @@ -929,8 +941,8 @@ ROM_END GAME( 1985, tehkanwc, 0, tehkanwc, tehkanwc, tehkanwc_state, 0, ROT0, "Tehkan", "Tehkan World Cup (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, tehkanwcb, tehkanwc, tehkanwc, tehkanwc, tehkanwc_state, 0, ROT0, "Tehkan", "Tehkan World Cup (set 2, bootleg?)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, tehkanwcc, tehkanwc, tehkanwc, tehkanwc, tehkanwc_state, 0, ROT0, "bootleg", "Tehkan World Cup (set 3, bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // aka 'World Cup 85', different inputs? +GAME( 1985, tehkanwcb, tehkanwc, tehkanwcb, tehkanwc, tehkanwc_state, 0, ROT0, "Tehkan", "Tehkan World Cup (set 2, bootleg?)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, tehkanwcc, tehkanwc, tehkanwcb, tehkanwc, tehkanwc_state, 0, ROT0, "bootleg", "Tehkan World Cup (set 3, bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // aka 'World Cup 85', different inputs? GAME( 1985, tehkanwcd, tehkanwc, tehkanwc, tehkanwc, tehkanwc_state, 0, ROT0, "Tehkan", "Tehkan World Cup (set 4, earlier?)", MACHINE_SUPPORTS_SAVE ) GAMEL(1985, gridiron, 0, tehkanwc, gridiron, tehkanwc_state, 0, ROT0, "Tehkan", "Gridiron Fight", MACHINE_SUPPORTS_SAVE, layout_gridiron ) GAME( 1986, teedoff, 0, tehkanwc, teedoff, tehkanwc_state, teedoff, ROT90, "Tecmo", "Tee'd Off (Japan)", MACHINE_SUPPORTS_SAVE )