mirror of
https://github.com/holub/mame
synced 2025-05-22 05:38:52 +03:00
williams.c: added second sound board to blaster/blaster30 [hap]
This commit is contained in:
parent
9084193629
commit
a424b171e5
@ -94,14 +94,9 @@
|
||||
c80c rom_pia_dataa
|
||||
c80d rom_pia_ctrla
|
||||
c80e rom_pia_datab
|
||||
bit 0 \
|
||||
bit 1 |
|
||||
bit 2 |-6 bits to sound board
|
||||
bit 3 |
|
||||
bit 4 |
|
||||
bit 5 /
|
||||
bit 6 \
|
||||
bit 7 /Plus CA2 and CB2 = 4 bits to drive the LED 7 segment
|
||||
bits 0-5 = 6 bits to sound board
|
||||
bits 6-7 plus CA2 and CB2 = 4 bits to drive the LED 7 segment
|
||||
Blaster only: bits 6-7 are for selecting the sound board
|
||||
c80f rom_pia_ctrlb
|
||||
|
||||
C900 rom_enable_scr_ctrl Switch between video ram and rom at 0000-97FF
|
||||
@ -503,8 +498,8 @@
|
||||
#include "machine/nvram.h"
|
||||
|
||||
|
||||
#define MASTER_CLOCK (12000000)
|
||||
#define SOUND_CLOCK (3579000)
|
||||
#define MASTER_CLOCK (XTAL_12MHz)
|
||||
#define SOUND_CLOCK (XTAL_3_579545MHz)
|
||||
|
||||
|
||||
|
||||
@ -672,7 +667,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( defender_sound_map, AS_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x007f) AM_RAM /* internal RAM */
|
||||
AM_RANGE(0x0400, 0x0403) AM_MIRROR(0x8000) AM_DEVREADWRITE_MODERN("pia_2", pia6821_device, read, write)
|
||||
AM_RANGE(0xb000, 0xffff) AM_ROM /* most games start at $F000, Sinistar starts at $B000 */
|
||||
AM_RANGE(0xb000, 0xffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
@ -680,7 +675,15 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x007f) AM_RAM /* internal RAM */
|
||||
AM_RANGE(0x0080, 0x00ff) AM_RAM /* MC6810 RAM */
|
||||
AM_RANGE(0x0400, 0x0403) AM_MIRROR(0x8000) AM_DEVREADWRITE_MODERN("pia_2", pia6821_device, read, write)
|
||||
AM_RANGE(0xb000, 0xffff) AM_ROM /* most games start at $F000, Sinistar starts at $B000 */
|
||||
AM_RANGE(0xb000, 0xffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
/* Same as above, but for second sound board */
|
||||
static ADDRESS_MAP_START( sound_map_b, AS_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x007f) AM_RAM /* internal RAM */
|
||||
AM_RANGE(0x0080, 0x00ff) AM_RAM /* MC6810 RAM */
|
||||
AM_RANGE(0x0400, 0x0403) AM_MIRROR(0x8000) AM_DEVREADWRITE_MODERN("pia_2b", pia6821_device, read, write)
|
||||
AM_RANGE(0xb000, 0xffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
@ -1576,10 +1579,9 @@ static MACHINE_CONFIG_DERIVED( playball, williams )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( blaster, williams )
|
||||
static MACHINE_CONFIG_DERIVED( blastkit, williams )
|
||||
|
||||
/* basic machine hardware */
|
||||
|
||||
MCFG_CPU_MODIFY("maincpu")
|
||||
MCFG_CPU_PROGRAM_MAP(blaster_map)
|
||||
|
||||
@ -1592,16 +1594,30 @@ static MACHINE_CONFIG_DERIVED( blaster, williams )
|
||||
MCFG_SCREEN_UPDATE(blaster)
|
||||
|
||||
/* pia */
|
||||
MCFG_PIA6821_MODIFY("pia_0", williams_49way_pia_0_intf)
|
||||
MCFG_PIA6821_MODIFY("pia_0", williams_49way_muxed_pia_0_intf)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( blastkit, blaster )
|
||||
static MACHINE_CONFIG_DERIVED( blaster, blastkit )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("soundcpu_b", M6808, SOUND_CLOCK)
|
||||
MCFG_CPU_PROGRAM_MAP(sound_map_b)
|
||||
|
||||
/* pia */
|
||||
MCFG_PIA6821_MODIFY("pia_0", williams_49way_muxed_pia_0_intf)
|
||||
MCFG_PIA6821_MODIFY("pia_0", williams_49way_pia_0_intf)
|
||||
MCFG_PIA6821_MODIFY("pia_1", blaster_pia_1_intf)
|
||||
MCFG_PIA6821_ADD("pia_2b", williams_snd_pia_b_intf)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_DEVICE_REMOVE("wmsdac")
|
||||
MCFG_DEVICE_REMOVE("mono")
|
||||
|
||||
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
||||
MCFG_SOUND_ADD("wmsdac", DAC, 0)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50)
|
||||
MCFG_SOUND_ADD("wmsdac_b", DAC, 0)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
@ -2350,28 +2366,30 @@ ROM_END
|
||||
|
||||
ROM_START( blaster )
|
||||
ROM_REGION( 0x54000, "maincpu", 0 )
|
||||
ROM_LOAD( "blaster.16", 0x0d000, 0x1000, CRC(54a40b21) SHA1(663c7b539e6f1f065a4ecae7bb0477c71951223f) )
|
||||
ROM_LOAD( "blaster.13", 0x0e000, 0x2000, CRC(f4dae4c8) SHA1(211dcbe085a30419d649afe10ca7c4017d909bd7) )
|
||||
ROM_LOAD( "16.ic39", 0x0d000, 0x1000, CRC(54a40b21) SHA1(663c7b539e6f1f065a4ecae7bb0477c71951223f) )
|
||||
ROM_LOAD( "13.ic27", 0x0e000, 0x2000, CRC(f4dae4c8) SHA1(211dcbe085a30419d649afe10ca7c4017d909bd7) )
|
||||
|
||||
ROM_LOAD( "blaster.11", 0x10000, 0x2000, CRC(6371e62f) SHA1(dc4173d2ee88757a6ac0838acaee325eadc2c4fb) )
|
||||
ROM_LOAD( "blaster.12", 0x12000, 0x2000, CRC(9804faac) SHA1(e61218fe190ad268af48d611d140d8f4cd38e4c7) )
|
||||
ROM_LOAD( "blaster.17", 0x14000, 0x1000, CRC(bf96182f) SHA1(e25a02508eecf79ea1ae5d45278a60becc6c7dcc) )
|
||||
ROM_LOAD( "11.ic25", 0x10000, 0x2000, CRC(6371e62f) SHA1(dc4173d2ee88757a6ac0838acaee325eadc2c4fb) )
|
||||
ROM_LOAD( "12.ic26", 0x12000, 0x2000, CRC(9804faac) SHA1(e61218fe190ad268af48d611d140d8f4cd38e4c7) )
|
||||
ROM_LOAD( "17.ic41", 0x14000, 0x1000, CRC(bf96182f) SHA1(e25a02508eecf79ea1ae5d45278a60becc6c7dcc) )
|
||||
|
||||
ROM_LOAD( "blaster.15", 0x18000, 0x4000, CRC(1ad146a4) SHA1(5ab3d9618023b59bc329a9eeef986901867a639b) )
|
||||
ROM_LOAD( "blaster.8", 0x1c000, 0x4000, CRC(f110bbb0) SHA1(314dea232a3706509399348c7415f933c64cea1b) )
|
||||
ROM_LOAD( "blaster.9", 0x20000, 0x4000, CRC(5c5b0f8a) SHA1(224f89c85b2b1ca511d006180b8d994fccbdfb6b) )
|
||||
ROM_LOAD( "blaster.10", 0x24000, 0x4000, CRC(d47eb67f) SHA1(5dcde8be1a7b1927b90ffab3219dc47c5b2f20e4) )
|
||||
ROM_LOAD( "blaster.6", 0x28000, 0x4000, CRC(47fc007e) SHA1(3a80b9b7ae460e9732f7c1cdd465a5b06ded970f) )
|
||||
ROM_LOAD( "blaster.5", 0x2c000, 0x4000, CRC(15c1b94d) SHA1(5d97628541eb8933870c3ffd3646b7aaf8af6af5) )
|
||||
ROM_LOAD( "blaster.14", 0x30000, 0x4000, CRC(aea6b846) SHA1(04cb4b5eb000471a0cec377a5236ac8c83529528) )
|
||||
ROM_LOAD( "blaster.7", 0x34000, 0x4000, CRC(7a101181) SHA1(5f1581911ea7fe3e63ce1b9c50b1d3bf081dbf81) )
|
||||
ROM_LOAD( "blaster.1", 0x38000, 0x4000, CRC(8d0ea9e7) SHA1(34f8e2e99748bed29285f7e4929bb920960ab03e) )
|
||||
ROM_LOAD( "blaster.2", 0x3c000, 0x4000, CRC(03c4012c) SHA1(53f0adc91e5f1ac58b08b3a6d2de8de5a40bebab) )
|
||||
ROM_LOAD( "blaster.4", 0x40000, 0x4000, CRC(fc9d39fb) SHA1(126d43a64471bbf4b40aeda8913d50e82d254f9c) )
|
||||
ROM_LOAD( "blaster.3", 0x44000, 0x4000, CRC(253690fb) SHA1(06cb2ef95bb06b3618392e298aa690e1f75bc977) )
|
||||
ROM_LOAD( "15.ic38", 0x18000, 0x4000, CRC(1ad146a4) SHA1(5ab3d9618023b59bc329a9eeef986901867a639b) )
|
||||
ROM_LOAD( "8.ic20", 0x1c000, 0x4000, CRC(f110bbb0) SHA1(314dea232a3706509399348c7415f933c64cea1b) )
|
||||
ROM_LOAD( "9.ic22", 0x20000, 0x4000, CRC(5c5b0f8a) SHA1(224f89c85b2b1ca511d006180b8d994fccbdfb6b) )
|
||||
ROM_LOAD( "10.ic24", 0x24000, 0x4000, CRC(d47eb67f) SHA1(5dcde8be1a7b1927b90ffab3219dc47c5b2f20e4) )
|
||||
ROM_LOAD( "6.ic13", 0x28000, 0x4000, CRC(47fc007e) SHA1(3a80b9b7ae460e9732f7c1cdd465a5b06ded970f) )
|
||||
ROM_LOAD( "5.ic11", 0x2c000, 0x4000, CRC(15c1b94d) SHA1(5d97628541eb8933870c3ffd3646b7aaf8af6af5) )
|
||||
ROM_LOAD( "14.ic35", 0x30000, 0x4000, CRC(aea6b846) SHA1(04cb4b5eb000471a0cec377a5236ac8c83529528) )
|
||||
ROM_LOAD( "7.ic15", 0x34000, 0x4000, CRC(7a101181) SHA1(5f1581911ea7fe3e63ce1b9c50b1d3bf081dbf81) )
|
||||
ROM_LOAD( "1.ic1", 0x38000, 0x4000, CRC(8d0ea9e7) SHA1(34f8e2e99748bed29285f7e4929bb920960ab03e) )
|
||||
ROM_LOAD( "2.ic3", 0x3c000, 0x4000, CRC(03c4012c) SHA1(53f0adc91e5f1ac58b08b3a6d2de8de5a40bebab) )
|
||||
ROM_LOAD( "4.ic7", 0x40000, 0x4000, CRC(fc9d39fb) SHA1(126d43a64471bbf4b40aeda8913d50e82d254f9c) )
|
||||
ROM_LOAD( "3.ic6", 0x44000, 0x4000, CRC(253690fb) SHA1(06cb2ef95bb06b3618392e298aa690e1f75bc977) )
|
||||
|
||||
ROM_REGION( 0x10000, "soundcpu", 0 )
|
||||
ROM_LOAD( "blaster.18", 0xf000, 0x1000, CRC(c33a3145) SHA1(6ffe2da7b70c0b576fbc1790a33eecdbb9ee3d02) )
|
||||
ROM_LOAD( "18.sb13", 0xf000, 0x1000, CRC(c33a3145) SHA1(6ffe2da7b70c0b576fbc1790a33eecdbb9ee3d02) )
|
||||
ROM_REGION( 0x10000, "soundcpu_b", 0 )
|
||||
ROM_LOAD( "18.sb10", 0xf000, 0x1000, CRC(c33a3145) SHA1(6ffe2da7b70c0b576fbc1790a33eecdbb9ee3d02) )
|
||||
|
||||
ROM_REGION( 0x0c00, "proms", 0 ) /* color & video-decoder PROM data */
|
||||
ROM_LOAD( "decoder.4", 0x0800, 0x0200, CRC(e6631c23) SHA1(9988723269367fb44ef83f627186a1c88cf7877e) )
|
||||
@ -2381,28 +2399,30 @@ ROM_END
|
||||
|
||||
ROM_START( blaster30 )
|
||||
ROM_REGION( 0x54000, "maincpu", 0 )
|
||||
ROM_LOAD( "blast30.16", 0x0d000, 0x1000, CRC(2db032d2) SHA1(287769361639695b1c1ceae0fe6899d83b4575d5) )
|
||||
ROM_LOAD( "blast30.13", 0x0e000, 0x2000, CRC(c99213c7) SHA1(d1c1549c053de3d862d8ef3ebca02811ed289464) )
|
||||
ROM_LOAD( "16.ic39", 0x0d000, 0x1000, CRC(2db032d2) SHA1(287769361639695b1c1ceae0fe6899d83b4575d5) )
|
||||
ROM_LOAD( "13.ic27", 0x0e000, 0x2000, CRC(c99213c7) SHA1(d1c1549c053de3d862d8ef3ebca02811ed289464) )
|
||||
|
||||
ROM_LOAD( "blast30.11", 0x10000, 0x2000, CRC(bc2d7eda) SHA1(831e9ecb75b143f9770eab1939136092a29e64f7) )
|
||||
ROM_LOAD( "blast30.12", 0x12000, 0x2000, CRC(8a215017) SHA1(ee9233134907c03f7a1221d9daa84fe047c2db94) )
|
||||
ROM_LOAD( "blast30.17", 0x14000, 0x1000, CRC(b308f0e5) SHA1(262e25be40dff66e65a0fe34c9d013a750b90876) )
|
||||
ROM_LOAD( "11.ic25", 0x10000, 0x2000, CRC(bc2d7eda) SHA1(831e9ecb75b143f9770eab1939136092a29e64f7) )
|
||||
ROM_LOAD( "12.ic26", 0x12000, 0x2000, CRC(8a215017) SHA1(ee9233134907c03f7a1221d9daa84fe047c2db94) )
|
||||
ROM_LOAD( "17.ic41", 0x14000, 0x1000, CRC(b308f0e5) SHA1(262e25be40dff66e65a0fe34c9d013a750b90876) )
|
||||
|
||||
ROM_LOAD( "blaster.15", 0x18000, 0x4000, CRC(1ad146a4) SHA1(5ab3d9618023b59bc329a9eeef986901867a639b) )
|
||||
ROM_LOAD( "blaster.8", 0x1c000, 0x4000, CRC(f110bbb0) SHA1(314dea232a3706509399348c7415f933c64cea1b) )
|
||||
ROM_LOAD( "blaster.9", 0x20000, 0x4000, CRC(5c5b0f8a) SHA1(224f89c85b2b1ca511d006180b8d994fccbdfb6b) )
|
||||
ROM_LOAD( "blaster.10", 0x24000, 0x4000, CRC(d47eb67f) SHA1(5dcde8be1a7b1927b90ffab3219dc47c5b2f20e4) )
|
||||
ROM_LOAD( "blaster.6", 0x28000, 0x4000, CRC(47fc007e) SHA1(3a80b9b7ae460e9732f7c1cdd465a5b06ded970f) )
|
||||
ROM_LOAD( "blaster.5", 0x2c000, 0x4000, CRC(15c1b94d) SHA1(5d97628541eb8933870c3ffd3646b7aaf8af6af5) )
|
||||
ROM_LOAD( "blaster.14", 0x30000, 0x4000, CRC(aea6b846) SHA1(04cb4b5eb000471a0cec377a5236ac8c83529528) )
|
||||
ROM_LOAD( "blast30.7", 0x34000, 0x4000, CRC(a1c4db77) SHA1(7a878d44b6ca7444ecbb6c8f75e5e91de149daf3) )
|
||||
ROM_LOAD( "blaster.1", 0x38000, 0x4000, CRC(8d0ea9e7) SHA1(34f8e2e99748bed29285f7e4929bb920960ab03e) )
|
||||
ROM_LOAD( "blaster.2", 0x3c000, 0x4000, CRC(03c4012c) SHA1(53f0adc91e5f1ac58b08b3a6d2de8de5a40bebab) )
|
||||
ROM_LOAD( "blast30.4", 0x40000, 0x4000, CRC(39d2a32c) SHA1(33707877e841ef86a11b47ffabddce7f3d2a7030) )
|
||||
ROM_LOAD( "blast30.3", 0x44000, 0x4000, CRC(054c9f1c) SHA1(c21e3493f1ae506ab9fd28ed9ecc67d3305e9d7a) )
|
||||
ROM_LOAD( "15.ic38", 0x18000, 0x4000, CRC(1ad146a4) SHA1(5ab3d9618023b59bc329a9eeef986901867a639b) )
|
||||
ROM_LOAD( "8.ic20", 0x1c000, 0x4000, CRC(f110bbb0) SHA1(314dea232a3706509399348c7415f933c64cea1b) )
|
||||
ROM_LOAD( "9.ic22", 0x20000, 0x4000, CRC(5c5b0f8a) SHA1(224f89c85b2b1ca511d006180b8d994fccbdfb6b) )
|
||||
ROM_LOAD( "10.ic24", 0x24000, 0x4000, CRC(d47eb67f) SHA1(5dcde8be1a7b1927b90ffab3219dc47c5b2f20e4) )
|
||||
ROM_LOAD( "6.ic13", 0x28000, 0x4000, CRC(47fc007e) SHA1(3a80b9b7ae460e9732f7c1cdd465a5b06ded970f) )
|
||||
ROM_LOAD( "5.ic11", 0x2c000, 0x4000, CRC(15c1b94d) SHA1(5d97628541eb8933870c3ffd3646b7aaf8af6af5) )
|
||||
ROM_LOAD( "14.ic35", 0x30000, 0x4000, CRC(aea6b846) SHA1(04cb4b5eb000471a0cec377a5236ac8c83529528) )
|
||||
ROM_LOAD( "7.ic15", 0x34000, 0x4000, CRC(a1c4db77) SHA1(7a878d44b6ca7444ecbb6c8f75e5e91de149daf3) )
|
||||
ROM_LOAD( "1.ic1", 0x38000, 0x4000, CRC(8d0ea9e7) SHA1(34f8e2e99748bed29285f7e4929bb920960ab03e) )
|
||||
ROM_LOAD( "2.ic3", 0x3c000, 0x4000, CRC(03c4012c) SHA1(53f0adc91e5f1ac58b08b3a6d2de8de5a40bebab) )
|
||||
ROM_LOAD( "4.ic7", 0x40000, 0x4000, CRC(39d2a32c) SHA1(33707877e841ef86a11b47ffabddce7f3d2a7030) )
|
||||
ROM_LOAD( "3.ic6", 0x44000, 0x4000, CRC(054c9f1c) SHA1(c21e3493f1ae506ab9fd28ed9ecc67d3305e9d7a) )
|
||||
|
||||
ROM_REGION( 0x10000, "soundcpu", 0 )
|
||||
ROM_LOAD( "blaster.18", 0xf000, 0x1000, CRC(c33a3145) SHA1(6ffe2da7b70c0b576fbc1790a33eecdbb9ee3d02) )
|
||||
ROM_LOAD( "sb13.18", 0xf000, 0x1000, CRC(c33a3145) SHA1(6ffe2da7b70c0b576fbc1790a33eecdbb9ee3d02) )
|
||||
ROM_REGION( 0x10000, "soundcpu_b", 0 )
|
||||
ROM_LOAD( "sb10.18", 0xf000, 0x1000, CRC(c33a3145) SHA1(6ffe2da7b70c0b576fbc1790a33eecdbb9ee3d02) )
|
||||
|
||||
ROM_REGION( 0x0c00, "proms", 0 ) /* color & video-decoder PROM data */
|
||||
ROM_LOAD( "decoder.4", 0x0800, 0x0200, CRC(e6631c23) SHA1(9988723269367fb44ef83f627186a1c88cf7877e) )
|
||||
@ -2419,21 +2439,21 @@ ROM_START( blasterkit )
|
||||
ROM_LOAD( "blastkit.12", 0x12000, 0x2000, CRC(8b1e26ab) SHA1(7d30800a9302f5a83792499d8df536693d01f75d) )
|
||||
ROM_LOAD( "blastkit.17", 0x14000, 0x1000, CRC(577d1e9a) SHA1(0064124a65490e0473dfb0081ec28b7ee43a04b5) )
|
||||
|
||||
ROM_LOAD( "blaster.15", 0x18000, 0x4000, CRC(1ad146a4) SHA1(5ab3d9618023b59bc329a9eeef986901867a639b) )
|
||||
ROM_LOAD( "blaster.8", 0x1c000, 0x4000, CRC(f110bbb0) SHA1(314dea232a3706509399348c7415f933c64cea1b) )
|
||||
ROM_LOAD( "blaster.9", 0x20000, 0x4000, CRC(5c5b0f8a) SHA1(224f89c85b2b1ca511d006180b8d994fccbdfb6b) )
|
||||
ROM_LOAD( "blaster.10", 0x24000, 0x4000, CRC(d47eb67f) SHA1(5dcde8be1a7b1927b90ffab3219dc47c5b2f20e4) )
|
||||
ROM_LOAD( "blaster.6", 0x28000, 0x4000, CRC(47fc007e) SHA1(3a80b9b7ae460e9732f7c1cdd465a5b06ded970f) )
|
||||
ROM_LOAD( "blaster.5", 0x2c000, 0x4000, CRC(15c1b94d) SHA1(5d97628541eb8933870c3ffd3646b7aaf8af6af5) )
|
||||
ROM_LOAD( "blaster.14", 0x30000, 0x4000, CRC(aea6b846) SHA1(04cb4b5eb000471a0cec377a5236ac8c83529528) )
|
||||
ROM_LOAD( "blastkit.15", 0x18000, 0x4000, CRC(1ad146a4) SHA1(5ab3d9618023b59bc329a9eeef986901867a639b) )
|
||||
ROM_LOAD( "blastkit.8", 0x1c000, 0x4000, CRC(f110bbb0) SHA1(314dea232a3706509399348c7415f933c64cea1b) )
|
||||
ROM_LOAD( "blastkit.9", 0x20000, 0x4000, CRC(5c5b0f8a) SHA1(224f89c85b2b1ca511d006180b8d994fccbdfb6b) )
|
||||
ROM_LOAD( "blastkit.10", 0x24000, 0x4000, CRC(d47eb67f) SHA1(5dcde8be1a7b1927b90ffab3219dc47c5b2f20e4) )
|
||||
ROM_LOAD( "blastkit.6", 0x28000, 0x4000, CRC(47fc007e) SHA1(3a80b9b7ae460e9732f7c1cdd465a5b06ded970f) )
|
||||
ROM_LOAD( "blastkit.5", 0x2c000, 0x4000, CRC(15c1b94d) SHA1(5d97628541eb8933870c3ffd3646b7aaf8af6af5) )
|
||||
ROM_LOAD( "blastkit.14", 0x30000, 0x4000, CRC(aea6b846) SHA1(04cb4b5eb000471a0cec377a5236ac8c83529528) )
|
||||
ROM_LOAD( "blastkit.7", 0x34000, 0x4000, CRC(6fcc2153) SHA1(00e7b6846c15400315d94e2c7d1c99b1a737c285) )
|
||||
ROM_LOAD( "blaster.1", 0x38000, 0x4000, CRC(8d0ea9e7) SHA1(34f8e2e99748bed29285f7e4929bb920960ab03e) )
|
||||
ROM_LOAD( "blaster.2", 0x3c000, 0x4000, CRC(03c4012c) SHA1(53f0adc91e5f1ac58b08b3a6d2de8de5a40bebab) )
|
||||
ROM_LOAD( "blastkit.1", 0x38000, 0x4000, CRC(8d0ea9e7) SHA1(34f8e2e99748bed29285f7e4929bb920960ab03e) )
|
||||
ROM_LOAD( "blastkit.2", 0x3c000, 0x4000, CRC(03c4012c) SHA1(53f0adc91e5f1ac58b08b3a6d2de8de5a40bebab) )
|
||||
ROM_LOAD( "blastkit.4", 0x40000, 0x4000, CRC(f80e9ff5) SHA1(e232d96b6e07c7b4240fa4dd2cb9be4745a1be4b) )
|
||||
ROM_LOAD( "blastkit.3", 0x44000, 0x4000, CRC(20e851f9) SHA1(efc288ef0333812a6282f22aade8e43e9a827533) )
|
||||
|
||||
ROM_REGION( 0x10000, "soundcpu", 0 )
|
||||
ROM_LOAD( "blaster.18", 0xf000, 0x1000, CRC(c33a3145) SHA1(6ffe2da7b70c0b576fbc1790a33eecdbb9ee3d02) )
|
||||
ROM_LOAD( "blastkit.18", 0xf000, 0x1000, CRC(c33a3145) SHA1(6ffe2da7b70c0b576fbc1790a33eecdbb9ee3d02) )
|
||||
|
||||
ROM_REGION( 0x0c00, "proms", 0 ) /* color & video-decoder PROM data */
|
||||
ROM_LOAD( "decoder.4", 0x0800, 0x0200, CRC(e6631c23) SHA1(9988723269367fb44ef83f627186a1c88cf7877e) )
|
||||
@ -2799,13 +2819,6 @@ static DRIVER_INIT( blaster )
|
||||
}
|
||||
|
||||
|
||||
static DRIVER_INIT( blastkit )
|
||||
{
|
||||
williams_state *state = machine.driver_data<williams_state>();
|
||||
CONFIGURE_BLITTER(WILLIAMS_BLITTER_SC02, 0x9700);
|
||||
}
|
||||
|
||||
|
||||
static DRIVER_INIT( spdball )
|
||||
{
|
||||
williams_state *state = machine.driver_data<williams_state>();
|
||||
@ -2915,8 +2928,8 @@ GAME( 1982, jin, 0, jin, jin, defender, ROT90
|
||||
|
||||
/* Standard Williams hardware */
|
||||
GAME( 1981, stargate, 0, williams, stargate, stargate, ROT0, "Williams", "Stargate", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1982, robotron, 0, williams, robotron, robotron, ROT0, "Williams", "Robotron (Solid Blue label)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1982, robotronyo, robotron, williams, robotron, robotron, ROT0, "Williams", "Robotron (Yellow/Orange label)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1982, robotron, 0, williams, robotron, robotron, ROT0, "Williams", "Robotron: 2084 (Solid Blue label)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1982, robotronyo, robotron, williams, robotron, robotron, ROT0, "Williams", "Robotron: 2084 (Yellow/Orange label)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1982, joust, 0, williams_muxed, joust, joust, ROT0, "Williams", "Joust (White/Green label)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1982, joustr, joust, williams_muxed, joust, joust, ROT0, "Williams", "Joust (Solid Red label)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1982, joustwr, joust, williams_muxed, joust, joust, ROT0, "Williams", "Joust (White/Red label)", GAME_SUPPORTS_SAVE )
|
||||
@ -2929,8 +2942,8 @@ GAME( 1982, sinistar1, sinistar, sinistar, sinistar, sinistar, ROT27
|
||||
GAME( 1982, sinistar2, sinistar, sinistar, sinistar, sinistar, ROT270, "Williams", "Sinistar (revision 2)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1983, playball, 0, playball, playball, playball, ROT270, "Williams", "PlayBall! (prototype)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1983, blaster, 0, blaster, blaster, blaster, ROT0, "Williams", "Blaster", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1983, blaster30, blaster, blaster, blaster, blaster, ROT0, "Williams", "Blaster (early 30 wave version)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1983, blasterkit, blaster, blastkit, blastkit, blastkit, ROT0, "Williams", "Blaster (kit)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1983, blaster30, blaster, blaster, blaster, blaster, ROT0, "Williams", "Blaster (early version with 30 waves)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1983, blasterkit, blaster, blastkit, blastkit, blaster, ROT0, "Williams", "Blaster (kit)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1985, spdball, 0, spdball, spdball, spdball, ROT0, "Williams", "Speed Ball (prototype)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1985, alienar, 0, alienar, alienar, alienar, ROT0, "Duncan Brown", "Alien Arena", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1985, alienaru, alienar, alienar, alienar, alienaru, ROT0, "Duncan Brown", "Alien Arena (Stargate Upgrade)", GAME_SUPPORTS_SAVE )
|
||||
|
@ -57,11 +57,13 @@ extern const pia6821_interface williams_49way_pia_0_intf;
|
||||
extern const pia6821_interface williams_49way_muxed_pia_0_intf;
|
||||
extern const pia6821_interface williams_pia_1_intf;
|
||||
extern const pia6821_interface williams_snd_pia_intf;
|
||||
extern const pia6821_interface williams_snd_pia_b_intf;
|
||||
|
||||
/* Game-specific old-Williams PIA interfaces */
|
||||
extern const pia6821_interface lottofun_pia_0_intf;
|
||||
extern const pia6821_interface sinistar_snd_pia_intf;
|
||||
extern const pia6821_interface playball_pia_1_intf;
|
||||
extern const pia6821_interface blaster_pia_1_intf;
|
||||
extern const pia6821_interface spdball_pia_3_intf;
|
||||
|
||||
/* Generic later-Williams PIA interfaces */
|
||||
|
@ -19,8 +19,10 @@
|
||||
static void williams_main_irq(device_t *device, int state);
|
||||
static void williams_main_firq(device_t *device, int state);
|
||||
static void williams_snd_irq(device_t *device, int state);
|
||||
static void williams_snd_irq_b(device_t *device, int state);
|
||||
static WRITE8_DEVICE_HANDLER( williams_snd_cmd_w );
|
||||
static WRITE8_DEVICE_HANDLER( playball_snd_cmd_w );
|
||||
static WRITE8_DEVICE_HANDLER( blaster_snd_cmd_w );
|
||||
|
||||
/* input port mapping */
|
||||
static WRITE8_DEVICE_HANDLER( williams_port_select_w );
|
||||
@ -100,6 +102,13 @@ const pia6821_interface williams_snd_pia_intf =
|
||||
/*outputs: A/B,CA/B2 */ DEVCB_DEVICE_HANDLER("wmsdac", dac_w), DEVCB_NULL, DEVCB_NULL, DEVCB_NULL,
|
||||
/*irqs : A/B */ DEVCB_LINE(williams_snd_irq), DEVCB_LINE(williams_snd_irq)
|
||||
};
|
||||
/* Same as above, but for second sound board */
|
||||
const pia6821_interface williams_snd_pia_b_intf =
|
||||
{
|
||||
/*inputs : A/B,CA/B1,CA/B2 */ DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL,
|
||||
/*outputs: A/B,CA/B2 */ DEVCB_DEVICE_HANDLER("wmsdac_b", dac_w), DEVCB_NULL, DEVCB_NULL, DEVCB_NULL,
|
||||
/*irqs : A/B */ DEVCB_LINE(williams_snd_irq_b), DEVCB_LINE(williams_snd_irq_b)
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -133,6 +142,14 @@ const pia6821_interface playball_pia_1_intf =
|
||||
/*irqs : A/B */ DEVCB_LINE(williams_main_irq), DEVCB_LINE(williams_main_irq)
|
||||
};
|
||||
|
||||
/* Special PIA 1 for Blaster, to support two sound boards */
|
||||
const pia6821_interface blaster_pia_1_intf =
|
||||
{
|
||||
/*inputs : A/B,CA/B1,CA/B2 */ DEVCB_INPUT_PORT("IN2"), DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL,
|
||||
/*outputs: A/B,CA/B2 */ DEVCB_NULL, DEVCB_HANDLER(blaster_snd_cmd_w), DEVCB_NULL, DEVCB_NULL,
|
||||
/*irqs : A/B */ DEVCB_LINE(williams_main_irq), DEVCB_LINE(williams_main_irq)
|
||||
};
|
||||
|
||||
/* extra PIA 3 for Speed Ball */
|
||||
const pia6821_interface spdball_pia_3_intf =
|
||||
{
|
||||
@ -301,6 +318,15 @@ static void williams_snd_irq(device_t *device, int state)
|
||||
/* IRQ to the sound CPU */
|
||||
cputag_set_input_line(device->machine(), "soundcpu", M6800_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE);
|
||||
}
|
||||
/* Same as above, but for second sound board */
|
||||
static void williams_snd_irq_b(device_t *device, int state)
|
||||
{
|
||||
pia6821_device *pia_2 = device->machine().device<pia6821_device>("pia_2b");
|
||||
int combined_state = pia_2->irq_a_state() | pia_2->irq_b_state();
|
||||
|
||||
/* IRQ to the sound CPU */
|
||||
cputag_set_input_line(device->machine(), "soundcpu_b", M6800_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -548,6 +574,22 @@ WRITE8_DEVICE_HANDLER( playball_snd_cmd_w )
|
||||
device->machine().scheduler().synchronize(FUNC(williams_deferred_snd_cmd_w), data);
|
||||
}
|
||||
|
||||
static TIMER_CALLBACK( blaster_deferred_snd_cmd_w )
|
||||
{
|
||||
pia6821_device *pia_2l = machine.device<pia6821_device>("pia_2");
|
||||
pia6821_device *pia_2r = machine.device<pia6821_device>("pia_2b");
|
||||
UINT8 l_data = param | 0x80;
|
||||
UINT8 r_data = (param >> 1 & 0x40) | (param & 0x3f) | 0x80;
|
||||
|
||||
pia_2l->portb_w(l_data); pia_2l->cb1_w((l_data == 0xff) ? 0 : 1);
|
||||
pia_2r->portb_w(r_data); pia_2r->cb1_w((r_data == 0xff) ? 0 : 1);
|
||||
}
|
||||
|
||||
WRITE8_DEVICE_HANDLER( blaster_snd_cmd_w )
|
||||
{
|
||||
device->machine().scheduler().synchronize(FUNC(blaster_deferred_snd_cmd_w), data);
|
||||
}
|
||||
|
||||
|
||||
static TIMER_CALLBACK( williams2_deferred_snd_cmd_w )
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user