diff --git a/src/emu/sound/sound.mak b/src/emu/sound/sound.mak index b82f93f54b0..1f3d3edcab7 100644 --- a/src/emu/sound/sound.mak +++ b/src/emu/sound/sound.mak @@ -419,6 +419,16 @@ endif +#------------------------------------------------- +# AdMOS QS1000 +#------------------------------------------------- + +#ifneq ($(filter QS1000,$(SOUNDS)),) +SOUNDOBJS += $(SOUNDOBJ)/qs1000.o +#endif + + + #------------------------------------------------- # QSound sample player #------------------------------------------------- diff --git a/src/mame/drivers/eolith.c b/src/mame/drivers/eolith.c index 6a0885073bc..5530fba5e3c 100644 --- a/src/mame/drivers/eolith.c +++ b/src/mame/drivers/eolith.c @@ -44,9 +44,6 @@ - Fortress 2 Blue Arcade (v. 1.02) - Ribbon (Step1. Mild Mind) (c) 1999 - Alt title Penfan girls is dumped - TODO: - - sound & sound cpu - ----------------------------------------------------------------------------- Original (Not emulation) Bugs: @@ -100,23 +97,21 @@ #include "emu.h" #include "cpu/e132xs/e132xs.h" +#include "cpu/mcs51/mcs51.h" +#include "sound/qs1000.h" #include "machine/eeprom.h" #include "includes/eolith.h" #include "includes/eolithsp.h" -// It's configured for 512 bytes -static const eeprom_interface eeprom_interface_93C66 = -{ - 9, // address bits 9 - 8, // data bits 8 - "*110", // read 110 aaaaaaaaa - "*101", // write 101 aaaaaaaaa dddddddd - "*111", // erase 111 aaaaaaaaa - "*10000xxxxxx", // lock 100 00xxxxxxx - "*10011xxxxxx" // unlock 100 11xxxxxxx -}; + +static MACHINE_RESET( eolith ); +/************************************* + * + * Control + * + *************************************/ READ32_MEMBER(eolith_state::eolith_custom_r) { @@ -162,13 +157,93 @@ READ32_MEMBER(eolith_state::hidctch3_pen2_r) return xpos + (ypos*168*2); } +WRITE32_MEMBER( eolith_state::sound_w ) +{ +// printf("CPU Command: %x\n", m_sound_data); + m_sound_data = data; + m_soundcpu->set_input_line(MCS51_INT0_LINE, ASSERT_LINE); +} + + +/************************************* + * + * Sound CPU + * + *************************************/ + +READ8_MEMBER( eolith_state::sound_cmd_r ) +{ + m_soundcpu->set_input_line(MCS51_INT0_LINE, CLEAR_LINE); + return m_sound_data; +} + +WRITE8_MEMBER( eolith_state::sound_p1_w ) +{ + // .... xxxx - Data ROM bank (32kB) + // ...x .... - Unknown (Usually 1?) + membank("sound_bank")->set_entry(data & 0x0f); +} + + +/************************************* + * + * QS1000 CPU + * + *************************************/ + +/* + Possible port mapping: + + P30 (O) A16 (RxD) + P31 (O) A17 (TxD) + P32 (O) A18 (/INT0) + P33 (I) INT_68 (/INT1) + P34 (O) PCM1 (T0) + P35 (O) SET_INT (T1) + P36 (O) PCM0 + P37 (O) RDB (/RD) +*/ + +READ8_MEMBER( eolith_state::qs1000_p1_r ) +{ + // Sound banking? (must be 1) + return 1; +} + +WRITE8_MEMBER( eolith_state::qs1000_p1_w ) +{ + +} + + +/************************************* + * + * Sound CPU <-> QS1000 CPU + * + *************************************/ + +static void soundcpu_to_qs1000(device_t *device, int data) +{ + qs1000_device *qs1000 = device->machine().device("qs1000"); + qs1000->serial_in(data); + + device->machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(250)); +} + + +/************************************* + * + * Main CPU memory map + * + *************************************/ + static ADDRESS_MAP_START( eolith_map, AS_PROGRAM, 32, eolith_state ) AM_RANGE(0x00000000, 0x001fffff) AM_RAM // fort2b wants ram here AM_RANGE(0x40000000, 0x401fffff) AM_RAM AM_RANGE(0x90000000, 0x9003ffff) AM_READWRITE(eolith_vram_r, eolith_vram_w) AM_RANGE(0xfc000000, 0xfc000003) AM_READ(eolith_custom_r) AM_RANGE(0xfc400000, 0xfc400003) AM_WRITE(systemcontrol_w) - AM_RANGE(0xfc800000, 0xfc800003) AM_WRITENOP // sound latch + AM_RANGE(0xfc800000, 0xfc800003) AM_WRITE(sound_w) AM_RANGE(0xfca00000, 0xfca00003) AM_READ_PORT("DSW1") AM_RANGE(0xfcc00000, 0xfcc0005b) AM_WRITENOP // crt registers ? AM_RANGE(0xfd000000, 0xfeffffff) AM_ROM AM_REGION("user1", 0) @@ -176,7 +251,29 @@ static ADDRESS_MAP_START( eolith_map, AS_PROGRAM, 32, eolith_state ) ADDRESS_MAP_END +/************************************* + * + * Sound CPU memory map + * + *************************************/ +static ADDRESS_MAP_START( sound_prg_map, AS_PROGRAM, 8, eolith_state ) + AM_RANGE(0x0000, 0x7fff) AM_ROM +ADDRESS_MAP_END + +static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, eolith_state ) + AM_RANGE(0x0000, 0x7fff) AM_ROMBANK("sound_bank") + AM_RANGE(0x8000, 0x8000) AM_READ(sound_cmd_r) + AM_RANGE(MCS51_PORT_P1, MCS51_PORT_P1) AM_WRITE(sound_p1_w) +ADDRESS_MAP_END + + +/************************************* + * + * Inputs + * + *************************************/ + static INPUT_PORTS_START( common ) PORT_START("IN0") PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_START1 ) @@ -420,13 +517,65 @@ static INPUT_PORTS_START( puzzlekg ) INPUT_PORTS_END +/************************************* + * + * EEPROM interface + * + *************************************/ + +// It's configured for 512 bytes +static const eeprom_interface eeprom_interface_93C66 = +{ + 9, // address bits 9 + 8, // data bits 8 + "*110", // read 110 aaaaaaaaa + "*101", // write 101 aaaaaaaaa dddddddd + "*111", // erase 111 aaaaaaaaa + "*10000xxxxxx", // lock 100 00xxxxxxx + "*10011xxxxxx" // unlock 100 11xxxxxxx +}; + + +/************************************* + * + * QS1000 interface + * + *************************************/ + +static QS1000_INTERFACE( qs1000_intf ) +{ + /* External ROM */ + true, + + /* P1-P3 read handlers */ + DEVCB_DRIVER_MEMBER(eolith_state, qs1000_p1_r), + DEVCB_NULL, + DEVCB_NULL, + + /* P1-P3 write handlers */ + DEVCB_DRIVER_MEMBER(eolith_state, qs1000_p1_w), + DEVCB_NULL, + DEVCB_NULL, +}; + + +/************************************* + * + * Machine driver + * + *************************************/ static MACHINE_CONFIG_START( eolith45, eolith_state ) MCFG_CPU_ADD("maincpu", E132N, 45000000) /* 45 MHz */ MCFG_CPU_PROGRAM_MAP(eolith_map) MCFG_TIMER_ADD_SCANLINE("scantimer", eolith_speedup, "screen", 0, 1) - /* sound cpu */ + /* Sound CPU */ + MCFG_CPU_ADD("soundcpu", I8032, XTAL_12MHz) + MCFG_CPU_PROGRAM_MAP(sound_prg_map) + MCFG_CPU_IO_MAP(sound_io_map) + + MCFG_MACHINE_RESET(eolith) MCFG_EEPROM_ADD("eeprom", eeprom_interface_93C66) @@ -444,6 +593,11 @@ static MACHINE_CONFIG_START( eolith45, eolith_state ) MCFG_VIDEO_START(eolith) /* sound hardware */ + MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") + + MCFG_QS1000_ADD("qs1000", XTAL_24MHz, qs1000_intf) + MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) + MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( eolith50, eolith45 ) @@ -457,6 +611,11 @@ static MACHINE_CONFIG_DERIVED( ironfort, eolith45 ) MACHINE_CONFIG_END +/************************************* + * + * ROM definition + * + *************************************/ /* @@ -523,20 +682,18 @@ ROM_START( ironfort ) ROM_LOAD32_WORD_SWAP( "if00-02.u40", 0x0800000, 0x400000, CRC(63b5cca5) SHA1(4ec8b813c7e465f659a4a2361ddfbad763bf6e6a) ) ROM_LOAD32_WORD_SWAP( "if00-03.u35", 0x0800002, 0x400000, CRC(54a76cb5) SHA1(21fb3bedf065079d59f642b19487f76590f97558) ) - ROM_REGION( 0x008000, "cpu1", 0 ) /* QDSP ('51) Code */ - ROM_LOAD( "u107", 0x0000, 0x8000, CRC(89450a2f) SHA1(d58efa805f497bec179fdbfb8c5860ac5438b4ec) ) /* 27C256 eprom with no label */ - - ROM_REGION( 0x08000, "cpu2", 0 ) /* Sound (80c301) CPU Code */ + ROM_REGION( 0x08000, "soundcpu", 0 ) /* Sound (80c301) CPU Code */ ROM_LOAD( "u111", 0x0000, 0x8000, CRC(5d1d1387) SHA1(91c8aa4c7472b91c149bef9da64569a97df35298) ) /* 27C256 eprom with no label */ - ROM_REGION( 0x080000, "music", 0 ) /* Music data */ + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ ROM_LOAD( "u108", 0x00000, 0x80000, CRC(89233144) SHA1(74e87679a7559450934b80fcfcb667d9845977a7) ) /* 27C040 eprom with no label */ + + ROM_REGION( 0x008000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "u107", 0x0000, 0x8000, CRC(89450a2f) SHA1(d58efa805f497bec179fdbfb8c5860ac5438b4ec) ) /* 27C256 eprom with no label */ - ROM_REGION( 0x080000, "sfx", 0 ) /* QDSP samples (SFX) */ - ROM_LOAD( "u97", 0x00000, 0x80000, CRC(47b9d43a) SHA1(e0bc42892480cb563dc694fcefa8ca0b984749dd) ) /* 27C040 eprom with no label */ - - ROM_REGION( 0x080000, "wavetable", 0 ) /* QDSP wavetable rom */ - ROM_LOAD( "qs1001a.u96", 0x000000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "u97", 0x00000, 0x80000, CRC(47b9d43a) SHA1(e0bc42892480cb563dc694fcefa8ca0b984749dd) ) /* 27C040 eprom with no label */ + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) ROM_END ROM_START( ironfortj ) @@ -549,20 +706,18 @@ ROM_START( ironfortj ) ROM_LOAD32_WORD_SWAP( "if00-02.u40", 0x0800000, 0x400000, CRC(63b5cca5) SHA1(4ec8b813c7e465f659a4a2361ddfbad763bf6e6a) ) ROM_LOAD32_WORD_SWAP( "if00-03.u35", 0x0800002, 0x400000, CRC(54a76cb5) SHA1(21fb3bedf065079d59f642b19487f76590f97558) ) - ROM_REGION( 0x008000, "cpu1", 0 ) /* QDSP ('51) Code */ - ROM_LOAD( "u107", 0x0000, 0x8000, CRC(89450a2f) SHA1(d58efa805f497bec179fdbfb8c5860ac5438b4ec) ) /* 27C256 eprom with no label */ - - ROM_REGION( 0x08000, "cpu2", 0 ) /* Sound (80c301) CPU Code */ + ROM_REGION( 0x08000, "soundcpu", 0 ) /* Sound (80c301) CPU Code */ ROM_LOAD( "u111", 0x0000, 0x8000, CRC(5d1d1387) SHA1(91c8aa4c7472b91c149bef9da64569a97df35298) ) /* 27C256 eprom with no label */ - ROM_REGION( 0x080000, "music", 0 ) /* Music data */ + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ ROM_LOAD( "u108", 0x00000, 0x80000, CRC(89233144) SHA1(74e87679a7559450934b80fcfcb667d9845977a7) ) /* 27C040 eprom with no label */ - ROM_REGION( 0x080000, "sfx", 0 ) /* QDSP samples (SFX) */ - ROM_LOAD( "u97", 0x00000, 0x80000, CRC(47b9d43a) SHA1(e0bc42892480cb563dc694fcefa8ca0b984749dd) ) /* 27C040 eprom with no label */ + ROM_REGION( 0x008000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "u107", 0x0000, 0x8000, CRC(89450a2f) SHA1(d58efa805f497bec179fdbfb8c5860ac5438b4ec) ) /* 27C256 eprom with no label */ - ROM_REGION( 0x080000, "wavetable", 0 ) /* QDSP wavetable rom */ - ROM_LOAD( "qs1001a.u96", 0x000000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "u97", 0x00000, 0x80000, CRC(47b9d43a) SHA1(e0bc42892480cb563dc694fcefa8ca0b984749dd) ) /* 27C040 eprom with no label */ + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) ROM_END /* Linky Pipe */ @@ -577,20 +732,18 @@ ROM_START( linkypip ) ROM_LOAD32_WORD_SWAP( "lp02.u40", 0x0800000, 0x400000, CRC(3381bd2c) SHA1(78b30f3940e5c9887ab4ad398bde356671deabb5) ) ROM_LOAD32_WORD_SWAP( "lp03.u35", 0x0800002, 0x400000, CRC(459008f3) SHA1(c59e58c3afc1b7466df306c1b57110a6b644cdf4) ) - ROM_REGION( 0x008000, "cpu1", 0 ) /* QDSP ('51) Code */ - ROM_LOAD( "u107.bin", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) - - ROM_REGION( 0x08000, "cpu2", 0 ) /* Sound (80c301) CPU Code */ + ROM_REGION( 0x08000, "soundcpu", 0 ) /* Sound (80c301) CPU Code */ ROM_LOAD( "u111.bin", 0x0000, 0x8000, CRC(52f419ea) SHA1(79c9f135b0cf8b1928411faed9b447cd98a83287) ) - ROM_REGION( 0x080000, "music", 0 ) /* Music data */ + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ ROM_LOAD( "u108.bin", 0x00000, 0x80000, CRC(ca65856f) SHA1(f45868552389ccd637b5ccb1067b94e1226001ce) ) + + ROM_REGION( 0x008000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "u107.bin", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) - ROM_REGION( 0x080000, "sfx", 0 ) /* QDSP samples (SFX) */ - ROM_LOAD( "u97.bin", 0x00000, 0x80000, CRC(4465fe8d) SHA1(4d77169fff2fee5424e8da833088a544318b2981) ) - - ROM_REGION( 0x080000, "wavetable", 0 ) /* QDSP wavetable rom */ - ROM_LOAD( "qs1001a.u96", 0x000000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "u97.bin", 0x00000, 0x80000, CRC(4465fe8d) SHA1(4d77169fff2fee5424e8da833088a544318b2981) ) + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) ROM_END /* Hidden Catch */ @@ -608,20 +761,18 @@ ROM_START( hidnctch ) ROM_LOAD32_WORD_SWAP( "hc5_u36.bin", 0x1000002, 0x400000, CRC(74b1719d) SHA1(fe2325259117598ad7c23217426ac9c28440e3a0) ) // 0x1800000 - 0x1ffffff empty - ROM_REGION( 0x008000, "cpu1", 0 ) /* QDSP ('51) Code */ - ROM_LOAD( "hc_u107.bin", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) + ROM_REGION( 0x008000, "soundcpu", 0 ) /* Sound (80c301) CPU Code */ + ROM_LOAD( "hc_u111.bin", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) - ROM_REGION( 0x008000, "cpu2", 0 ) /* Sound (80c301) CPU Code */ - ROM_LOAD( "hc_u111.bin", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) /* Only 0x3E6 bytes used */ - - ROM_REGION( 0x080000, "music", 0 ) /* Music data */ + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ ROM_LOAD( "hc_u108.bin", 0x00000, 0x80000, CRC(2bae46cb) SHA1(7c43f1002dfc20b9c1bb1647f7261dfa7ed2b4f9) ) - ROM_REGION( 0x080000, "sfx", 0 ) /* QDSP samples (SFX) */ - ROM_LOAD( "hc_u97.bin", 0x00000, 0x80000, CRC(ebf9f77b) SHA1(5d472aeb84fc011e19b9e61d34aeddfe7d6ac216) ) + ROM_REGION( 0x008000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "hc_u107.bin", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) - ROM_REGION( 0x080000, "wavetable", 0 ) /* QDSP wavetable rom */ - ROM_LOAD( "qs1001a.u96", 0x000000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "hc_u97.bin", 0x00000, 0x80000, CRC(ebf9f77b) SHA1(5d472aeb84fc011e19b9e61d34aeddfe7d6ac216) ) + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) ROM_END /* @@ -681,20 +832,18 @@ ROM_START( nhidctch ) ROM_LOAD32_WORD_SWAP( "hc006.u42", 0x1800000, 0x400000, CRC(2ec58049) SHA1(2a95d615f397cc4befdf92fcfca64a2726f6a791) ) ROM_LOAD32_WORD_SWAP( "hc007.u37", 0x1800002, 0x400000, CRC(07e25def) SHA1(6e52a897cb2894625721010b8468ff237930b19b) ) - ROM_REGION( 0x008000, "cpu1", 0 ) /* QDSP ('51) Code */ - ROM_LOAD( "u107", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) + ROM_REGION( 0x008000, "soundcpu", 0 ) /* Sound (80c301) CPU Code */ + ROM_LOAD( "u111", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) - ROM_REGION( 0x008000, "cpu2", 0 ) /* Sound (80c301) CPU Code */ - ROM_LOAD( "u111", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) /* Only 0x3E6 bytes used */ - - ROM_REGION( 0x080000, "music", 0 ) /* Music data */ + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ ROM_LOAD( "u108", 0x00000, 0x80000, CRC(2bae46cb) SHA1(7c43f1002dfc20b9c1bb1647f7261dfa7ed2b4f9) ) + + ROM_REGION( 0x008000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "u107", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) - ROM_REGION( 0x080000, "sfx", 0 ) /* QDSP samples (SFX) */ - ROM_LOAD( "u97", 0x00000, 0x80000, CRC(ebf9f77b) SHA1(5d472aeb84fc011e19b9e61d34aeddfe7d6ac216) ) - - ROM_REGION( 0x080000, "wavetable", 0 ) /* QDSP wavetable rom */ - ROM_LOAD( "qs1001a.u96", 0x000000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "u97", 0x00000, 0x80000, CRC(ebf9f77b) SHA1(5d472aeb84fc011e19b9e61d34aeddfe7d6ac216) ) + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) ROM_END /* @@ -764,21 +913,19 @@ ROM_START( hidctch2 ) ROM_LOAD32_WORD_SWAP( "14", 0x1c00000, 0x200000, CRC(8eb1b01b) SHA1(e144ba01aa65dc96e22d1d41c3ca87ae19e874d5) ) ROM_LOAD32_WORD_SWAP( "15", 0x1c00002, 0x200000, CRC(3b06fe4e) SHA1(35356a116e6b825b8ed93c8ea1e016491ac1863a) ) - ROM_REGION( 0x008000, "cpu1", 0 ) /* QDSP ('51) Code */ - ROM_LOAD( "u107", 0x0000, 0x8000, CRC(89450a2f) SHA1(d58efa805f497bec179fdbfb8c5860ac5438b4ec) ) - - ROM_REGION( 0x000800, "cpu2", 0 ) /* AT89c52 */ + ROM_REGION( 0x008000, "soundcpu", 0 ) /* AT89c52 */ /* This is the first 2K of hc2j.u111 from hidctch2a, verify against the internal dump when decapped */ ROM_LOAD( "hc2.103", 0x0000, 0x0800, BAD_DUMP CRC(92797034) SHA1(b600f19972986b2e09c56be0ea0c09f92a9fe422) ) /* MCU internal 2K flash */ - - ROM_REGION( 0x080000, "music", 0 ) /* Music data */ + + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ ROM_LOAD( "u108", 0x00000, 0x80000, CRC(75fc7a65) SHA1(308715ab62d28787ee894ddcf7304464e2543b2e) ) - ROM_REGION( 0x080000, "sfx", 0 ) /* QDSP samples (SFX) */ - ROM_LOAD( "u97", 0x00000, 0x80000, CRC(a7a1627e) SHA1(a93ced858d839daac1fa9a85f4f8c89cb179bad5) ) + ROM_REGION( 0x008000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "u107", 0x0000, 0x8000, CRC(89450a2f) SHA1(d58efa805f497bec179fdbfb8c5860ac5438b4ec) ) - ROM_REGION( 0x080000, "wavetable", 0 ) /* QDSP wavetable rom */ - ROM_LOAD( "qs1001a.u96", 0x000000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "u97", 0x00000, 0x80000, CRC(a7a1627e) SHA1(a93ced858d839daac1fa9a85f4f8c89cb179bad5) ) + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) ROM_END ROM_START( hidctch2a ) @@ -803,20 +950,18 @@ ROM_START( hidctch2a ) ROM_LOAD32_WORD_SWAP( "14", 0x1c00000, 0x200000, CRC(8eb1b01b) SHA1(e144ba01aa65dc96e22d1d41c3ca87ae19e874d5) ) ROM_LOAD32_WORD_SWAP( "15", 0x1c00002, 0x200000, CRC(3b06fe4e) SHA1(35356a116e6b825b8ed93c8ea1e016491ac1863a) ) - ROM_REGION( 0x008000, "cpu1", 0 ) /* QDSP ('51) Code */ + ROM_REGION( 0x008000, "soundcpu", 0 ) /* Sound (80c301) CPU Code */ + ROM_LOAD( "hc2j.u111", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) + + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ + ROM_LOAD( "u108", 0x00000, 0x80000, CRC(75fc7a65) SHA1(308715ab62d28787ee894ddcf7304464e2543b2e) ) + + ROM_REGION( 0x008000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ ROM_LOAD( "u107", 0x0000, 0x8000, CRC(89450a2f) SHA1(d58efa805f497bec179fdbfb8c5860ac5438b4ec) ) - ROM_REGION( 0x008000, "cpu2", 0 ) /* Sound (80c301) CPU Code */ - ROM_LOAD( "hc2j.u111", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) /* Only 0x3E6 bytes used */ - - ROM_REGION( 0x080000, "music", 0 ) /* Music data */ - ROM_LOAD( "u108", 0x00000, 0x80000, CRC(75fc7a65) SHA1(308715ab62d28787ee894ddcf7304464e2543b2e) ) - - ROM_REGION( 0x080000, "sfx", 0 ) /* QDSP samples (SFX) */ - ROM_LOAD( "u97", 0x00000, 0x80000, CRC(a7a1627e) SHA1(a93ced858d839daac1fa9a85f4f8c89cb179bad5) ) - - ROM_REGION( 0x080000, "wavetable", 0 ) /* QDSP wavetable rom */ - ROM_LOAD( "qs1001a.u96", 0x000000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "u97", 0x00000, 0x80000, CRC(a7a1627e) SHA1(a93ced858d839daac1fa9a85f4f8c89cb179bad5) ) + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) ROM_END @@ -896,20 +1041,18 @@ ROM_START( raccoon ) ROM_LOAD32_WORD_SWAP( "racoon.u5", 0x0800002, 0x200000, CRC(5fbac174) SHA1(1d3e3f40a737d61ff688627891dec183af7fa19a) ) // 0x0c00000 - 0x1ffffff empty - ROM_REGION( 0x08000, "cpu1", 0 ) /* QDSP ('51) Code */ - ROM_LOAD( "racoon-u.107", 0x0000, 0x8000, CRC(89450a2f) SHA1(d58efa805f497bec179fdbfb8c5860ac5438b4ec) ) - - ROM_REGION( 0x08000, "cpu2", 0 ) /* Sound (80c301) CPU Code */ + ROM_REGION( 0x08000, "soundcpu", 0 ) /* Sound (80c301) CPU Code */ ROM_LOAD( "racoon-u.111", 0x0000, 0x8000, CRC(52f419ea) SHA1(79c9f135b0cf8b1928411faed9b447cd98a83287) ) - ROM_REGION( 0x080000, "music", 0 ) /* Music data */ + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ ROM_LOAD( "racoon-u.108", 0x00000, 0x80000, CRC(fc4f30ee) SHA1(74b9e60cceb03ad572e0e080fbe1de5cffa1b2c3) ) + + ROM_REGION( 0x08000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "racoon-u.107", 0x0000, 0x8000, CRC(89450a2f) SHA1(d58efa805f497bec179fdbfb8c5860ac5438b4ec) ) - ROM_REGION( 0x080000, "sfx", 0 ) /* QDSP samples (SFX) */ - ROM_LOAD( "racoon-u.97", 0x00000, 0x80000, CRC(fef828b1) SHA1(38352b67d18300db40113df9426c2aceec12a29b) ) - - ROM_REGION( 0x080000, "wavetable", 0 ) /* QDSP wavetable rom */ - ROM_LOAD( "qs1001a.u96", 0x000000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "racoon-u.97", 0x00000, 0x80000, CRC(fef828b1) SHA1(38352b67d18300db40113df9426c2aceec12a29b) ) + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) ROM_END /* Land Breaker */ @@ -936,20 +1079,18 @@ ROM_START( landbrk ) ROM_LOAD32_WORD_SWAP( "14.bin", 0x1c00000, 0x200000, CRC(f30f7bc5) SHA1(8b3e002b773a88229d013e1d95336736a259c698) ) ROM_LOAD32_WORD_SWAP( "15.bin", 0x1c00002, 0x200000, CRC(bc1664e3) SHA1(a13a4e1df8d9825a72ecca1552ee52958c0d33d8) ) - ROM_REGION( 0x008000, "cpu1", 0 ) /* QDSP ('51) Code */ - ROM_LOAD( "lb.107", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) + ROM_REGION( 0x008000, "soundcpu", 0 ) /* Sound (80c301) CPU Code */ + ROM_LOAD( "rom1.u111", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) - ROM_REGION( 0x008000, "cpu2", 0 ) /* Sound (80c301) CPU Code */ - ROM_LOAD( "rom1.u111", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) /* Only 0x3E6 bytes used */ - - ROM_REGION( 0x080000, "music", 0 ) /* Music data */ + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ ROM_LOAD( "rom2.u108", 0x00000, 0x80000, CRC(f3b327ef) SHA1(4b359171afd6ca10275961f795f3fe64f9df9897) ) + + ROM_REGION( 0x008000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "lb.107", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) - ROM_REGION( 0x080000, "sfx", 0 ) /* QDSP samples (SFX) */ - ROM_LOAD( "lb_3.u97", 0x00000, 0x80000, CRC(5b34dff0) SHA1(1668763e977e272781ddcc74beba97b53477cc9d) ) - - ROM_REGION( 0x080000, "wavetable", 0 ) /* QDSP wavetable rom */ - ROM_LOAD( "qs1001a.u96", 0x000000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "lb_3.u97", 0x00000, 0x80000, CRC(5b34dff0) SHA1(1668763e977e272781ddcc74beba97b53477cc9d) ) + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) ROM_END @@ -967,21 +1108,19 @@ ROM_START( landbrka ) ROM_LOAD32_WORD_SWAP( "lb2-006.u42", 0x1800000, 0x400000, CRC(22c57cd8) SHA1(c9eb745523005876395ff7f0b3e996994b3f1220) ) ROM_LOAD32_WORD_SWAP( "lb2-007.u37", 0x1800002, 0x400000, CRC(31f957b3) SHA1(ab1c4c50c2d5361ba8db047feb714423d84e6df4) ) - ROM_REGION( 0x008000, "cpu1", 0 ) /* QDSP ('51) Code */ - ROM_LOAD( "lb.107", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) - - ROM_REGION( 0x000800, "cpu2", 0 ) /* AT89c52 */ + ROM_REGION( 0x008000, "soundcpu", 0 ) /* AT89c52 */ /* This is the first 2K of rom1.u111 from landbrk, verify against the internal dump when decapped */ ROM_LOAD( "lb.103", 0x0000, 0x0800, BAD_DUMP CRC(92797034) SHA1(b600f19972986b2e09c56be0ea0c09f92a9fe422) ) /* MCU internal 2K flash */ - ROM_REGION( 0x080000, "music", 0 ) /* Music data */ + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ ROM_LOAD( "lb_2.108", 0x00000, 0x80000, CRC(a99182d7) SHA1(628c8d09efb3917a4e97d9e02b6b0ca1f339825d) ) + + ROM_REGION( 0x008000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "lb.107", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) - ROM_REGION( 0x080000, "sfx", 0 ) /* QDSP samples (SFX) */ - ROM_LOAD( "lb_3.u97", 0x00000, 0x80000, CRC(5b34dff0) SHA1(1668763e977e272781ddcc74beba97b53477cc9d) ) - - ROM_REGION( 0x080000, "wavetable", 0 ) /* QDSP wavetable rom */ - ROM_LOAD( "qs1001a.u96", 0x000000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "lb_3.u97", 0x00000, 0x80000, CRC(5b34dff0) SHA1(1668763e977e272781ddcc74beba97b53477cc9d) ) + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) ROM_END @@ -1007,20 +1146,18 @@ ROM_START( penfan ) ROM_LOAD32_WORD_SWAP( "14.u18", 0x1c00000, 0x200000, CRC(20a9a08e) SHA1(fe4071cdf78d362bccaee92cdc70c66f7e30f817) ) // not checked by rom check ROM_LOAD32_WORD_SWAP( "15.u13", 0x1c00002, 0x200000, CRC(872fa9c4) SHA1(4902faa97c9a3a9671cfefc6a711cfcd25f2d6bc) ) // not checked by rom check - ROM_REGION( 0x008000, "cpu1", 0 ) /* QDSP ('51) Code */ - ROM_LOAD( "pfg.u107", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) + ROM_REGION( 0x008000, "soundcpu", 0 ) /* Sound (80c301) CPU Code */ + ROM_LOAD( "pfg.u111", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) - ROM_REGION( 0x008000, "cpu2", 0 ) /* Sound (80c301) CPU Code */ - ROM_LOAD( "pfg.u111", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) /* Only 0x3E6 bytes used */ - - ROM_REGION( 0x080000, "music", 0 ) /* Music data */ + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ ROM_LOAD( "pfg.u108", 0x00000, 0x80000, CRC(ac97c23b) SHA1(85319cbff811c84af2a802c2f609bd58cf9e7bc3) ) + + ROM_REGION( 0x008000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "pfg.u107", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) - ROM_REGION( 0x080000, "sfx", 0 ) /* QDSP samples (SFX) */ - ROM_LOAD( "pfg.u97", 0x00000, 0x80000, CRC(0c713eef) SHA1(4c4ea19fec5af4f0cb983c8b9f71152d05c15047) ) - - ROM_REGION( 0x080000, "wavetable", 0 ) /* QDSP wavetable rom */ - ROM_LOAD( "qs1001a.u96", 0x000000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "pfg.u97", 0x00000, 0x80000, CRC(0c713eef) SHA1(4c4ea19fec5af4f0cb983c8b9f71152d05c15047) ) + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) ROM_END @@ -1047,20 +1184,18 @@ ROM_START( stealsee ) ROM_LOAD32_WORD_SWAP( "14.u18", 0x1c00000, 0x200000, CRC(9a4109e5) SHA1(ba59caac5f5a80fc52c507d8a47f322a380aa9a1) ) ROM_LOAD32_WORD_SWAP( "15.u13", 0x1c00002, 0x200000, CRC(9a4109e5) SHA1(ba59caac5f5a80fc52c507d8a47f322a380aa9a1) ) - ROM_REGION( 0x008000, "cpu1", 0 ) /* QDSP ('51) Code */ + ROM_REGION( 0x008000, "soundcpu", 0 ) /* Sound (80c301) CPU Code */ + ROM_LOAD( "ss.u111", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) + + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ + ROM_LOAD( "ss.u108", 0x00000, 0x80000, CRC(95bd136d) SHA1(a6e2d75fc5e8d600d4dceab13c596f6a7edb6e72) ) + + ROM_REGION( 0x008000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ ROM_LOAD( "ss.u107", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) - ROM_REGION( 0x008000, "cpu2", 0 ) /* Sound (80c301) CPU Code */ - ROM_LOAD( "ss.u111", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) /* Only 0x3E6 bytes used */ - - ROM_REGION( 0x080000, "music", 0 ) /* Music data */ - ROM_LOAD( "ss.u108", 0x00000, 0x80000, CRC(95bd136d) SHA1(a6e2d75fc5e8d600d4dceab13c596f6a7edb6e72) ) - - ROM_REGION( 0x080000, "sfx", 0 ) /* QDSP samples (SFX) */ - ROM_LOAD( "ss.u97", 0x00000, 0x80000, CRC(56c9f4a4) SHA1(dfc7cb8b68ec9e77854287b8998131e3ef4ca18d) ) - - ROM_REGION( 0x080000, "wavetable", 0 ) /* QDSP wavetable rom */ - ROM_LOAD( "qs1001a.u96", 0x000000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "ss.u97", 0x00000, 0x80000, CRC(56c9f4a4) SHA1(dfc7cb8b68ec9e77854287b8998131e3ef4ca18d) ) + ROM_LOAD( "qs1001a.u96", 0x00000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) ROM_END @@ -1086,25 +1221,21 @@ ROM_START( candy ) ROM_LOAD32_WORD_SWAP( "14.u18", 0x1c00000, 0x200000, CRC(7cdd8639) SHA1(bdffcb2eeff10b7b3de5d178c766619205dd6f21) ) // not checked by rom check ROM_LOAD32_WORD_SWAP( "15.u13", 0x1c00002, 0x200000, CRC(8b0cf884) SHA1(5acdd084732a15c4a452766bb53bd0e908c1e6f0) ) // not checked by rom check - ROM_REGION( 0x008000, "cpu1", 0 ) /* QDSP ('51) Code */ - ROM_LOAD( "cc.u107", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) + ROM_REGION( 0x008000, "soundcpu", 0 ) /* Sound (80c301) CPU Code */ + ROM_LOAD( "cc.u111", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) - ROM_REGION( 0x008000, "cpu2", 0 ) /* Sound (80c301) CPU Code */ - ROM_LOAD( "cc.u111", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) /* Only 0x3E6 bytes used */ - - ROM_REGION( 0x080000, "music", 0 ) /* Music data */ + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ ROM_LOAD( "cc.u108", 0x00000, 0x80000, CRC(6eedb497) SHA1(d9c7322cba0efa21bef72bc6b1465aa45e8caef6) ) - ROM_REGION( 0x080000, "sfx", 0 ) /* QDSP samples (SFX) */ - ROM_LOAD( "cc.u97", 0x00000, 0x80000, CRC(1400c878) SHA1(d643a9fa930d3a945786a2bb90919a0f6404c625) ) + ROM_REGION( 0x008000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "hc_u107.bin", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) - ROM_REGION( 0x080000, "wavetable", 0 ) /* QDSP wavetable rom */ - ROM_LOAD( "qs1001a.u96", 0x000000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "cc.u97", 0x00000, 0x80000, CRC(1400c878) SHA1(d643a9fa930d3a945786a2bb90919a0f6404c625) ) + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) ROM_END -/* Fortress 2 Blue */ - ROM_START( fort2b ) ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ ROM_LOAD( "1.u43", 0x00000, 0x80000, CRC(b2279485) SHA1(022591b260be28820f04a1c1fdd61cb9b68d6703) ) @@ -1127,22 +1258,21 @@ ROM_START( fort2b ) ROM_LOAD32_WORD_SWAP( "14.u18", 0x1c00000, 0x200000, CRC(450fa784) SHA1(d1244b94be6571f1f8930154778362af5cd4c334) ) ROM_LOAD32_WORD_SWAP( "15.u13", 0x1c00002, 0x200000, CRC(c1f02d5c) SHA1(73fe9e654c097cd57863b49545c6aa05996a7645) ) - ROM_REGION( 0x008000, "cpu1", 0 ) /* QDSP ('51) Code */ - ROM_LOAD( "5.u107", 0x00000, 0x08000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) + ROM_REGION( 0x08000, "soundcpu", 0 ) /* Sound (80c301) CPU Code */ + ROM_LOAD( "4.u111", 0x00000, 0x08000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) - ROM_REGION( 0x08000, "cpu2", 0 ) /* Sound (80c301) CPU Code */ - ROM_LOAD( "4.u111", 0x00000, 0x08000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) /* Only 0x3E6 bytes used */ - - ROM_REGION( 0x080000, "music", 0 ) /* Music data */ + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ ROM_LOAD( "3.u108", 0x00000, 0x80000, CRC(9b996b60) SHA1(c4e34601f754ae2908dd6d59ea9da0c5c6f56f2d) ) + + ROM_REGION( 0x008000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "5.u107", 0x00000, 0x08000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) - ROM_REGION( 0x080000, "sfx", 0 ) /* QDSP samples (SFX) */ + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sapmle ROMs */ ROM_LOAD( "2.u97", 0x00000, 0x80000, CRC(8a431b14) SHA1(5a9824280f30ef2e7b7f16652b2f9f9559cb764f) ) - - ROM_REGION( 0x080000, "wavetable", 0 ) /* QDSP wavetable rom */ - ROM_LOAD( "qs1001a.u96", 0x000000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) ROM_END + ROM_START( fort2ba ) ROM_REGION( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ ROM_LOAD( "ftii012.u43", 0x00000, 0x80000, CRC(6424e05f) SHA1(2f02f103de180561e372ce897f8410a11c4cb58d) ) @@ -1157,20 +1287,18 @@ ROM_START( fort2ba ) ROM_LOAD32_WORD_SWAP( "ftii003.u42", 0x1800000, 0x400000, CRC(3cac1efe) SHA1(aca009a39b5d6049e3cf234f4412868a569ffb18) ) ROM_LOAD32_WORD_SWAP( "ftii007.u37", 0x1800002, 0x400000, CRC(a583a672) SHA1(b013fbfaa1e3f573a305e6346e50b930766daa1d) ) - ROM_REGION( 0x008000, "cpu1", 0 ) /* QDSP ('51) Code */ - ROM_LOAD( "ftii010.u107", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) + ROM_REGION( 0x08000, "soundcpu", 0 ) /* Sound (80c301) CPU Code */ + ROM_LOAD( "ftii008.u111", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) - ROM_REGION( 0x08000, "cpu2", 0 ) /* Sound (80c301) CPU Code */ - ROM_LOAD( "ftii008.u111", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) /* Only 0x3E6 bytes used */ - - ROM_REGION( 0x080000, "music", 0 ) /* Music data */ + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ ROM_LOAD( "ftii009.u108", 0x00000, 0x80000, CRC(9b996b60) SHA1(c4e34601f754ae2908dd6d59ea9da0c5c6f56f2d) ) + + ROM_REGION( 0x008000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "ftii010.u107", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) - ROM_REGION( 0x080000, "sfx", 0 ) /* QDSP samples (SFX) */ - ROM_LOAD( "ftii011.u97", 0x00000, 0x80000, CRC(8a431b14) SHA1(5a9824280f30ef2e7b7f16652b2f9f9559cb764f) ) - - ROM_REGION( 0x080000, "wavetable", 0 ) /* QDSP wavetable rom */ - ROM_LOAD( "qs1001a.u96", 0x000000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "ftii011.u97", 0x00000, 0x80000, CRC(8a431b14) SHA1(5a9824280f30ef2e7b7f16652b2f9f9559cb764f) ) + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) ROM_END /* Puzzle King */ @@ -1197,20 +1325,18 @@ ROM_START( puzzlekg ) ROM_LOAD32_WORD_SWAP( "u17.bin", 0x1c00000, 0x200000, CRC(234b7261) SHA1(6bb95b8258133cc802f076c15e69c5412272e960) ) ROM_LOAD32_WORD_SWAP( "u8.bin", 0x1c00002, 0x200000, CRC(8f4e50d7) SHA1(78808f0193a13467b45c84aef7f6a8f1cfe24feb) ) - ROM_REGION( 0x008000, "cpu1", 0 ) /* QDSP ('51) Code */ - ROM_LOAD( "u107.bin", 0x0000, 0x8000, CRC(f3add818) SHA1(96e77950154ced9f3234200de2aa29060c00d47f) ) + ROM_REGION( 0x08000, "soundcpu", 0 ) /* Sound (80c301) CPU Code */ + ROM_LOAD( "u111.bin", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) - ROM_REGION( 0x08000, "cpu2", 0 ) /* Sound (80c301) CPU Code */ - ROM_LOAD( "u111.bin", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) /* Only 0x3E6 bytes used */ - - ROM_REGION( 0x080000, "music", 0 ) /* Music data */ + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ ROM_LOAD( "u108.bin", 0x00000, 0x80000, CRC(e4555c6b) SHA1(128196a5b47d13ee7163981043b96f7b4b27204b) ) + + ROM_REGION( 0x008000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "u107.bin", 0x0000, 0x8000, CRC(f3add818) SHA1(96e77950154ced9f3234200de2aa29060c00d47f) ) - ROM_REGION( 0x080000, "sfx", 0 ) /* QDSP samples (SFX) */ - ROM_LOAD( "u97.bin", 0x00000, 0x80000, CRC(f4604ce8) SHA1(e061b203ef5df386120dbf089ece094d16a1b59b) ) - - ROM_REGION( 0x080000, "wavetable", 0 ) /* QDSP wavetable rom */ - ROM_LOAD( "qs1001a.u96", 0x000000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "u97.bin", 0x00000, 0x80000, CRC(f4604ce8) SHA1(e061b203ef5df386120dbf089ece094d16a1b59b) ) + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) ROM_END /* @@ -1285,32 +1411,45 @@ ROM_START( hidctch3 ) ROM_LOAD32_WORD_SWAP( "14", 0x1c00000, 0x200000, CRC(6c042967) SHA1(e81ec2bf4fe5880d283e76bebf5e22d60f0588f9) ) ROM_LOAD32_WORD_SWAP( "15", 0x1c00002, 0x200000, CRC(a49c0834) SHA1(64ca242cbf3ad6160b79ea2cb8ca4e4958d40e59) ) - ROM_REGION( 0x008000, "cpu1", 0 ) /* QDSP ('51) Code */ - ROM_LOAD( "u107", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) + ROM_REGION( 0x008000, "soundcpu", 0 ) /* GMS90C32 */ + ROM_LOAD( "u111", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) - ROM_REGION( 0x008000, "cpu2", 0 ) /* GMS90C32 */ - ROM_LOAD( "u111", 0x0000, 0x8000, CRC(79012474) SHA1(09a2d5705d7bc52cc2d1644c87c1e31ee44813ef) ) /* Only 0x3E6 bytes used */ - - ROM_REGION( 0x080000, "music", 0 ) /* Music data */ + ROM_REGION( 0x080000, "sounddata", 0 ) /* Music data */ ROM_LOAD( "u108", 0x00000, 0x80000, CRC(4a7de2e1) SHA1(89da2423f22f98886d7cac807964b1e52398ee19) ) - ROM_REGION( 0x080000, "sfx", 0 ) /* QDSP samples (SFX) */ - ROM_LOAD( "u97", 0x00000, 0x80000, CRC(6d37aa1a) SHA1(6827e500d9bf66e2e9236be563456ff88c78db91) ) + ROM_REGION( 0x008000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "u107", 0x0000, 0x8000, CRC(afd5263d) SHA1(71ace1b749d8a6b84d08b97185e7e512d04e4b8d) ) - ROM_REGION( 0x080000, "wavetable", 0 ) /* QDSP wavetable rom */ - ROM_LOAD( "qs1001a.u96", 0x000000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) + ROM_REGION( 0x1000000, "qs1000", 0 ) /* QDSP sample ROMs */ + ROM_LOAD( "u97", 0x00000, 0x80000, CRC(6d37aa1a) SHA1(6827e500d9bf66e2e9236be563456ff88c78db91) ) + ROM_LOAD( "qs1001a.u96", 0x80000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) ROM_END + +static MACHINE_RESET( eolith ) +{ + cputag_set_input_line(machine, "soundcpu", MCS51_INT1_LINE, ASSERT_LINE); +} + static DRIVER_INIT( eolith ) { + eolith_state *state = machine.driver_data(); + init_eolith_speedup(machine); + + // Sound CPU -> QS1000 CPU serial link + i8051_set_serial_tx_callback(machine.device("soundcpu"), soundcpu_to_qs1000); + + // Configure the sound ROM banking + machine.root_device().membank("sound_bank")->configure_entries(0, 16, state->memregion("sounddata")->base(), 0x8000); } static DRIVER_INIT( landbrk ) { eolith_state *state = machine.driver_data(); state->m_coin_counter_bit = 0x1000; - init_eolith_speedup(machine); + + DRIVER_INIT_CALL(eolith); } static DRIVER_INIT( landbrka ) @@ -1323,7 +1462,8 @@ static DRIVER_INIT( landbrka ) rombase[0x14f00/4] = (rombase[0x14f00/4] & 0xffff) | 0x03000000; /* Change BR to NOP */ state->m_coin_counter_bit = 0x2000; - init_eolith_speedup(machine); + + DRIVER_INIT_CALL(eolith); } static DRIVER_INIT( hidctch2 ) @@ -1331,7 +1471,8 @@ static DRIVER_INIT( hidctch2 ) //it fails compares in memory like in landbrka UINT32 *rombase = (UINT32*)machine.root_device().memregion("maincpu")->base(); rombase[0xbcc8/4] = (rombase[0xbcc8/4] & 0xffff) | 0x03000000; /* Change BR to NOP */ - init_eolith_speedup(machine); + + DRIVER_INIT_CALL(eolith); } static DRIVER_INIT( hidctch3 ) @@ -1347,23 +1488,30 @@ static DRIVER_INIT( hidctch3 ) machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xfcf00000, 0xfcf00003, read32_delegate(FUNC(eolith_state::hidctch3_pen2_r),state)); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xfcf80000, 0xfcf80003, read32_delegate(FUNC(eolith_state::hidctch3_pen2_r),state)); - init_eolith_speedup(machine); + DRIVER_INIT_CALL(eolith); } -GAME( 1998, linkypip, 0, eolith45, linkypip, eolith, ROT0, "Eolith", "Linky Pipe", GAME_NO_SOUND | GAME_NOT_WORKING ) -GAME( 1998, ironfort, 0, ironfort, ironfort, eolith, ROT0, "Eolith", "Iron Fortress", GAME_NO_SOUND ) -GAME( 1998, ironfortj, ironfort, ironfort, ironfortj, eolith, ROT0, "Eolith", "Iron Fortress (Japan)", GAME_NO_SOUND ) -GAME( 1998, hidnctch, 0, eolith45, hidnctch, eolith, ROT0, "Eolith", "Hidden Catch (World) / Tul Lin Gu Lim Chat Ki '98 (Korea) (pcb ver 3.03)", GAME_NO_SOUND ) // or Teurrin Geurim Chajgi '98 -GAME( 1998, raccoon, 0, eolith45, raccoon, eolith, ROT0, "Eolith", "Raccoon World", GAME_NO_SOUND ) -GAME( 1998, puzzlekg, 0, eolith45, puzzlekg, eolith, ROT0, "Eolith", "Puzzle King (Dance & Puzzle)", GAME_NO_SOUND ) -GAME( 1999, candy, 0, eolith50, candy, eolith, ROT0, "Eolith", "Candy Candy", GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND ) -GAME( 1999, hidctch2, 0, eolith50, hidnctch, hidctch2, ROT0, "Eolith", "Hidden Catch 2 (pcb ver 3.03) (Kor/Eng) (AT89c52 protected)", GAME_NO_SOUND ) -GAME( 1999, hidctch2a, hidctch2, eolith50, hidnctch, eolith, ROT0, "Eolith", "Hidden Catch 2 (pcb ver 1.00) (Kor/Eng/Jpn/Chi)", GAME_NO_SOUND ) -GAME( 1999, landbrk, 0, eolith45, landbrk, landbrk, ROT0, "Eolith", "Land Breaker (World) / Miss Tang Ja Ru Gi (Korea) (pcb ver 3.02)", GAME_NO_SOUND ) // or Miss Ttang Jjareugi -GAME( 1999, landbrka, landbrk, eolith45, landbrk, landbrka, ROT0, "Eolith", "Land Breaker (World) / Miss Tang Ja Ru Gi (Korea) (pcb ver 3.03) (AT89c52 protected)", GAME_NO_SOUND ) // or Miss Ttang Jjareugi -GAME( 1999, nhidctch, 0, eolith45, hidnctch, eolith, ROT0, "Eolith", "New Hidden Catch (World) / New Tul Lin Gu Lim Chat Ki '98 (Korea) (pcb ver 3.02)", GAME_NO_SOUND ) // or New Teurrin Geurim Chajgi '98 -GAME( 1999, penfan, 0, eolith45, landbrk, eolith, ROT0, "Eolith", "Penfan Girls - Step1. Mild Mind", GAME_NO_SOUND ) // alt title of Ribbon -GAME( 2000, stealsee, 0, eolith45, stealsee, eolith, ROT0, "Moov Generation / Eolith", "Steal See (& Get Land)", GAME_NO_SOUND ) -GAME( 2000, hidctch3, 0, eolith50, hidctch3, hidctch3, ROT0, "Eolith", "Hidden Catch 3 (ver 1.00 / pcb ver 3.05)", GAME_NO_SOUND ) -GAME( 2001, fort2b, 0, eolith50, common, eolith, ROT0, "Eolith", "Fortress 2 Blue Arcade (ver 1.01 / pcb ver 3.05)", GAME_NO_SOUND ) -GAME( 2001, fort2ba, fort2b, eolith50, common, eolith, ROT0, "Eolith", "Fortress 2 Blue Arcade (ver 1.00 / pcb ver 3.05)", GAME_NO_SOUND ) + +/************************************* + * + * Game driver(s) + * + *************************************/ + +GAME( 1998, linkypip, 0, eolith45, linkypip, eolith, ROT0, "Eolith", "Linky Pipe", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) +GAME( 1998, ironfort, 0, ironfort, ironfort, eolith, ROT0, "Eolith", "Iron Fortress", GAME_IMPERFECT_SOUND ) +GAME( 1998, ironfortj, ironfort, ironfort, ironfortj, eolith, ROT0, "Eolith", "Iron Fortress (Japan)", GAME_IMPERFECT_SOUND ) +GAME( 1998, hidnctch, 0, eolith45, hidnctch, eolith, ROT0, "Eolith", "Hidden Catch (World) / Tul Lin Gu Lim Chat Ki '98 (Korea) (pcb ver 3.03)", GAME_IMPERFECT_SOUND ) // or Teurrin Geurim Chajgi '98 +GAME( 1998, raccoon, 0, eolith45, raccoon, eolith, ROT0, "Eolith", "Raccoon World", GAME_IMPERFECT_SOUND ) +GAME( 1998, puzzlekg, 0, eolith45, puzzlekg, eolith, ROT0, "Eolith", "Puzzle King (Dance & Puzzle)", GAME_IMPERFECT_SOUND ) +GAME( 1999, candy, 0, eolith50, candy, eolith, ROT0, "Eolith", "Candy Candy", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) +GAME( 1999, hidctch2, 0, eolith50, hidnctch, hidctch2, ROT0, "Eolith", "Hidden Catch 2 (pcb ver 3.03) (Kor/Eng) (AT89c52 protected)", GAME_IMPERFECT_SOUND ) +GAME( 1999, hidctch2a, hidctch2, eolith50, hidnctch, eolith, ROT0, "Eolith", "Hidden Catch 2 (pcb ver 1.00) (Kor/Eng/Jpn/Chi)", GAME_IMPERFECT_SOUND ) +GAME( 1999, landbrk, 0, eolith45, landbrk, landbrk, ROT0, "Eolith", "Land Breaker (World) / Miss Tang Ja Ru Gi (Korea) (pcb ver 3.02)", GAME_IMPERFECT_SOUND ) // or Miss Ttang Jjareugi +GAME( 1999, landbrka, landbrk, eolith45, landbrk, landbrka, ROT0, "Eolith", "Land Breaker (World) / Miss Tang Ja Ru Gi (Korea) (pcb ver 3.03) (AT89c52 protected)", GAME_IMPERFECT_SOUND ) // or Miss Ttang Jjareugi +GAME( 1999, nhidctch, 0, eolith45, hidnctch, eolith, ROT0, "Eolith", "New Hidden Catch (World) / New Tul Lin Gu Lim Chat Ki '98 (Korea) (pcb ver 3.02)", GAME_IMPERFECT_SOUND ) // or New Teurrin Geurim Chajgi '98 +GAME( 1999, penfan, 0, eolith45, landbrk, eolith, ROT0, "Eolith", "Penfan Girls - Step1. Mild Mind", GAME_IMPERFECT_SOUND ) // alt title of Ribbon +GAME( 2000, stealsee, 0, eolith45, stealsee, eolith, ROT0, "Moov Generation / Eolith", "Steal See (& Get Land)", GAME_IMPERFECT_SOUND ) +GAME( 2000, hidctch3, 0, eolith50, hidctch3, hidctch3, ROT0, "Eolith", "Hidden Catch 3 (ver 1.00 / pcb ver 3.05)", GAME_IMPERFECT_SOUND ) +GAME( 2001, fort2b, 0, eolith50, common, eolith, ROT0, "Eolith", "Fortress 2 Blue Arcade (ver 1.01 / pcb ver 3.05)", GAME_IMPERFECT_SOUND ) +GAME( 2001, fort2ba, fort2b, eolith50, common, eolith, ROT0, "Eolith", "Fortress 2 Blue Arcade (ver 1.00 / pcb ver 3.05)", GAME_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/vamphalf.c b/src/mame/drivers/vamphalf.c index 303493ff376..3bc8594705a 100644 --- a/src/mame/drivers/vamphalf.c +++ b/src/mame/drivers/vamphalf.c @@ -57,6 +57,7 @@ TODO: #include "cpu/e132xs/e132xs.h" #include "machine/eeprom.h" #include "machine/nvram.h" +#include "sound/qs1000.h" #include "sound/2151intf.h" #include "sound/okim6295.h" @@ -87,6 +88,8 @@ public: UINT16 m_finalgdr_backupram_bank; UINT8 *m_finalgdr_backupram; int m_has_extra_gfx; + UINT8 m_qs1000_data; + DECLARE_WRITE16_MEMBER(flipscreen_w); DECLARE_WRITE32_MEMBER(flipscreen32_w); DECLARE_WRITE16_MEMBER(jmpbreak_flipscreen_w); @@ -95,12 +98,11 @@ public: DECLARE_WRITE32_MEMBER(wyvernwg_prot_w); DECLARE_READ32_MEMBER(finalgdr_prot_r); DECLARE_WRITE32_MEMBER(finalgdr_prot_w); - DECLARE_WRITE32_MEMBER(finalgdr_backupram_bank_w); - DECLARE_READ32_MEMBER(finalgdr_backupram_r); - DECLARE_WRITE32_MEMBER(finalgdr_backupram_w); DECLARE_WRITE32_MEMBER(finalgdr_prize_w); DECLARE_WRITE16_MEMBER(boonggab_prize_w); DECLARE_WRITE16_MEMBER(boonggab_lamps_w); + DECLARE_CUSTOM_INPUT_MEMBER(boonggab_photo_sensors_r); + DECLARE_READ16_MEMBER(vamphalf_speedup_r); DECLARE_READ16_MEMBER(vamphafk_speedup_r); DECLARE_READ16_MEMBER(misncrft_speedup_r); @@ -120,15 +122,24 @@ public: DECLARE_READ16_MEMBER(dtfamily_speedup_r); DECLARE_READ16_MEMBER(toyland_speedup_r); DECLARE_READ16_MEMBER(boonggab_speedup_r); - DECLARE_CUSTOM_INPUT_MEMBER(boonggab_photo_sensors_r); + DECLARE_READ16_MEMBER(eeprom_r); DECLARE_READ32_MEMBER(eeprom32_r); DECLARE_WRITE16_MEMBER(eeprom_w); DECLARE_WRITE32_MEMBER(eeprom32_w); DECLARE_WRITE32_MEMBER(finalgdr_eeprom_w); + DECLARE_WRITE32_MEMBER(finalgdr_backupram_bank_w); + DECLARE_READ32_MEMBER(finalgdr_backupram_r); + DECLARE_WRITE32_MEMBER(finalgdr_backupram_w); + DECLARE_WRITE32_MEMBER(finalgdr_oki_bank_w); DECLARE_WRITE32_MEMBER(aoh_oki_bank_w); DECLARE_WRITE16_MEMBER(boonggab_oki_bank_w); + DECLARE_WRITE32_MEMBER(wyvernwg_snd_w); + DECLARE_WRITE16_MEMBER(misncrft_snd_w); + + DECLARE_READ8_MEMBER(qs1000_p1_r); + DECLARE_WRITE8_MEMBER(qs1000_p3_w); }; READ16_MEMBER(vamphalf_state::eeprom_r) @@ -338,6 +349,42 @@ WRITE16_MEMBER(vamphalf_state::boonggab_lamps_w) } } + + +WRITE32_MEMBER( vamphalf_state::wyvernwg_snd_w ) +{ + qs1000_device *qs1000 = machine().device("qs1000"); + + m_qs1000_data = data & 0xff; + qs1000->set_irq(ASSERT_LINE); + machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100)); +} + +WRITE16_MEMBER( vamphalf_state::misncrft_snd_w ) +{ + qs1000_device *qs1000 = machine().device("qs1000"); + + m_qs1000_data = data & 0xff; + qs1000->set_irq(ASSERT_LINE); + machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100)); +} + +READ8_MEMBER( vamphalf_state::qs1000_p1_r ) +{ + return m_qs1000_data; +} + +WRITE8_MEMBER( vamphalf_state::qs1000_p3_w ) +{ + qs1000_device *qs1000 = machine().device("qs1000"); + + if (!BIT(data, 5)) + qs1000->set_irq(CLEAR_LINE); + + membank("qs1000:data")->set_entry(data & 7); +} + + static ADDRESS_MAP_START( common_map, AS_PROGRAM, 16, vamphalf_state ) AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_SHARE("wram") AM_RANGE(0x40000000, 0x4003ffff) AM_RAM AM_SHARE("tiles") @@ -369,6 +416,7 @@ static ADDRESS_MAP_START( misncrft_io, AS_IO, 16, vamphalf_state ) AM_RANGE(0x200, 0x203) AM_READ_PORT("P1_P2") AM_RANGE(0x240, 0x243) AM_READ_PORT("SYSTEM") AM_RANGE(0x3c0, 0x3c3) AM_WRITE(eeprom_w) + AM_RANGE(0x400, 0x403) AM_WRITE(misncrft_snd_w) AM_RANGE(0x580, 0x583) AM_READ(eeprom_r) ADDRESS_MAP_END @@ -400,7 +448,7 @@ static ADDRESS_MAP_START( wyvernwg_io, AS_IO, 32, vamphalf_state ) AM_RANGE(0x2000, 0x2003) AM_WRITE(flipscreen32_w) AM_RANGE(0x2800, 0x2803) AM_READ_PORT("P1_P2") AM_RANGE(0x3000, 0x3003) AM_READ_PORT("SYSTEM") - AM_RANGE(0x5400, 0x5403) AM_WRITENOP // soundlatch + AM_RANGE(0x5400, 0x5403) AM_WRITE(wyvernwg_snd_w) AM_RANGE(0x7000, 0x7003) AM_WRITE(eeprom32_w) AM_RANGE(0x7c00, 0x7c03) AM_READ(eeprom32_r) ADDRESS_MAP_END @@ -852,13 +900,24 @@ static GFXDECODE_START( vamphalf ) GFXDECODE_END -static ADDRESS_MAP_START( qs1000_prg_map, AS_PROGRAM, 8, vamphalf_state ) - AM_RANGE( 0x0000, 0xffff) AM_ROM -ADDRESS_MAP_END -static ADDRESS_MAP_START( qs1000_io_map, AS_IO, 8, vamphalf_state ) - AM_RANGE( 0x0000, 0x007f) AM_RAM // RAM? wavetable registers? not sure. -ADDRESS_MAP_END + +static QS1000_INTERFACE( qs1000_intf ) +{ + /* External ROM */ + true, + + /* P1-P3 read handlers */ + DEVCB_DRIVER_MEMBER(vamphalf_state, qs1000_p1_r), + DEVCB_NULL, + DEVCB_NULL, + + /* P1-P3 write handlers */ + DEVCB_NULL, + DEVCB_NULL, + DEVCB_DRIVER_MEMBER(vamphalf_state, qs1000_p3_w), +}; + static MACHINE_CONFIG_START( common, vamphalf_state ) MCFG_CPU_ADD("maincpu", E116T, 50000000) /* 50 MHz */ @@ -904,10 +963,12 @@ static MACHINE_CONFIG_FRAGMENT( sound_suplup ) MACHINE_CONFIG_END static MACHINE_CONFIG_FRAGMENT( sound_qs1000 ) - MCFG_CPU_ADD("audiocpu", I8052, 24000000/4) /* 6 MHz? */ - MCFG_CPU_PROGRAM_MAP(qs1000_prg_map) - MCFG_CPU_IO_MAP( qs1000_io_map) + /* sound hardware */ + MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") + MCFG_QS1000_ADD("qs1000", XTAL_24MHz, qs1000_intf) + MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) + MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( vamphalf, common ) @@ -1628,11 +1689,11 @@ EEPROM: 93C46 F-E1-32-010-D +------------------------------------------------------------------+ | VOL +-------+ +---------+ | -+-+ | QPSD | | U15A | +---------+ +---------+ | ++-+ | QDSP | | U15A | +---------+ +---------+ | | |QS1001A| | | | ROMH00 | | ROML00 | | +-+ +-------+ +---------+ | | | | | | +-------+ +---------+ +---------+ | -| |QPSD | +----------+ +---------+ +---------+ | +| |QDSP | +----------+ +---------+ +---------+ | | |QS1000 | | U7 | | ROMH01 | | ROML01 | | |J 24MHz +-------+ +----------+ | | | | | |A +---------+ +---------+ | @@ -1676,8 +1737,11 @@ ROM_START( wyvernwg ) ROM_LOAD( "rom1.bin", 0x000000, 0x080000, CRC(66bf3a5c) SHA1(037d5e7a6ef6f5b4ac08a9c811498c668a9d2522) ) ROM_LOAD( "rom2.bin", 0x080000, 0x080000, CRC(fd9b5911) SHA1(a01e8c6e5a9009024af385268ba3ba90e1ebec50) ) - ROM_REGION( 0x020000, "audiocpu", 0 ) /* QDSP ('51) Code */ - ROM_LOAD( "u7", 0x0000, 0x20000, CRC(00a3f705) SHA1(f0a6bafd16bea53d4c05c8cc108983cbd41e5757) ) + ROM_REGION( 0x080000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ + ROM_LOAD( "u7", 0x00000, 0x20000, CRC(00a3f705) SHA1(f0a6bafd16bea53d4c05c8cc108983cbd41e5757) ) + ROM_RELOAD( 0x20000, 0x20000 ) + ROM_RELOAD( 0x40000, 0x20000 ) + ROM_RELOAD( 0x60000, 0x20000 ) ROM_REGION( 0x1000000, "gfx1", 0 ) /* gfx data */ ROM_LOAD32_WORD( "roml00", 0x000000, 0x200000, CRC(fb3541b6) SHA1(4f569ac7bde92c5febf005ab73f76552421ec223) ) @@ -1689,11 +1753,9 @@ ROM_START( wyvernwg ) ROM_LOAD32_WORD( "roml03", 0xc00000, 0x200000, CRC(b10bf37c) SHA1(6af835b1e2573f0bb2c17057e016a7aecc8fcde8) ) ROM_LOAD32_WORD( "romh03", 0xc00002, 0x200000, CRC(e01c2a92) SHA1(f53c2db92d62f595d473b1835c46d426f0dbe6b3) ) - ROM_REGION( 0x200000, "sfx", 0 ) /* Music data / QDSP samples (SFX) */ - ROM_LOAD( "romsnd.u15a", 0x000000, 0x200000, CRC(fc89eedc) SHA1(2ce28bdb773cfa5b5660e4c0a9ef454cb658f2da) ) - - ROM_REGION( 0x080000, "wavetable", 0 ) /* QDSP wavetable rom */ - ROM_LOAD( "qs1001a", 0x000000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) + ROM_REGION( 0x1000000, "qs1000", 0 ) /* Music data / QDSP samples (SFX) */ + ROM_LOAD( "romsnd.u15a", 0x000000, 0x200000, CRC(fc89eedc) SHA1(2ce28bdb773cfa5b5660e4c0a9ef454cb658f2da) ) + ROM_LOAD( "qs1001a", 0x200000, 0x080000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) ROM_END ROM_START( wyvernwga ) @@ -1701,7 +1763,7 @@ ROM_START( wyvernwga ) ROM_LOAD( "rom1(__alt).rom", 0x000000, 0x080000, CRC(586881fd) SHA1(d335bbd91def8fa4935eb2375c9b00471a1f40eb) ) ROM_LOAD( "rom2(__alt).rom", 0x080000, 0x080000, CRC(938049ec) SHA1(cc10944c99ceb388dd4aafc93377c40540861d14) ) - ROM_REGION( 0x020000, "audiocpu", 0 ) /* QDSP ('51) Code */ + ROM_REGION( 0x020000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ ROM_LOAD( "u7", 0x0000, 0x20000, CRC(00a3f705) SHA1(f0a6bafd16bea53d4c05c8cc108983cbd41e5757) ) ROM_REGION( 0x1000000, "gfx1", 0 ) /* gfx data */ @@ -1714,11 +1776,9 @@ ROM_START( wyvernwga ) ROM_LOAD32_WORD( "roml03", 0xc00000, 0x200000, CRC(b10bf37c) SHA1(6af835b1e2573f0bb2c17057e016a7aecc8fcde8) ) ROM_LOAD32_WORD( "romh03", 0xc00002, 0x200000, CRC(e01c2a92) SHA1(f53c2db92d62f595d473b1835c46d426f0dbe6b3) ) - ROM_REGION( 0x200000, "sfx", 0 ) /* Music data / QDSP samples (SFX) */ - ROM_LOAD( "romsnd.u15a", 0x000000, 0x200000, CRC(fc89eedc) SHA1(2ce28bdb773cfa5b5660e4c0a9ef454cb658f2da) ) - - ROM_REGION( 0x080000, "wavetable", 0 ) /* QDSP wavetable rom */ - ROM_LOAD( "qs1001a", 0x000000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) + ROM_REGION( 0x1000000, "qs1000", 0 ) /* Music data / QDSP samples (SFX) */ + ROM_LOAD( "romsnd.u15a", 0x000000, 0x200000, CRC(fc89eedc) SHA1(2ce28bdb773cfa5b5660e4c0a9ef454cb658f2da) ) + ROM_LOAD( "qs1001a", 0x200000, 0x080000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) ROM_END /* @@ -1774,20 +1834,21 @@ ROM_START( misncrft ) /* 0 - 0x80000 empty */ ROM_LOAD( "prg-rom2.bin", 0x80000, 0x80000, CRC(059ae8c1) SHA1(2c72fcf560166cb17cd8ad665beae302832d551c) ) /* Version 2.4 */ - ROM_REGION( 0x400000, "audiocpu", 0 ) /* i8052 code */ + ROM_REGION( 0x080000, "qs1000:cpu", 0 ) /* QDSP (8052) Code */ ROM_LOAD( "snd-rom2.us1", 0x00000, 0x20000, CRC(8821e5b9) SHA1(4b8df97bc61b48aa16ed411614fcd7ed939cac33) ) - + ROM_RELOAD( 0x20000, 0x20000 ) + ROM_RELOAD( 0x40000, 0x20000 ) + ROM_RELOAD( 0x60000, 0x20000 ) + ROM_REGION( 0x800000, "gfx1", 0 ) ROM_LOAD32_WORD( "roml00", 0x000000, 0x200000, CRC(748c5ae5) SHA1(28005f655920e18c82eccf05c0c449dac16ee36e) ) ROM_LOAD32_WORD( "romh00", 0x000002, 0x200000, CRC(f34ae697) SHA1(2282e3ef2d100f3eea0167b25b66b35a64ddb0f8) ) ROM_LOAD32_WORD( "roml01", 0x400000, 0x200000, CRC(e37ece7b) SHA1(744361bb73905bc0184e6938be640d3eda4b758d) ) ROM_LOAD32_WORD( "romh01", 0x400002, 0x200000, CRC(71fe4bc3) SHA1(08110b02707e835bf428d343d5112b153441e255) ) - ROM_REGION( 0x80000, "sfx", 0 ) - ROM_LOAD( "snd-rom1.u15", 0x00000, 0x80000, CRC(fb381da9) SHA1(2b1a5447ed856ab92e44d000f27a04d981e3ac52) ) - - ROM_REGION( 0x80000, "wavetable", 0 ) - ROM_LOAD( "qs1001a.u17", 0x00000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) + ROM_REGION( 0x1000000, "qs1000", 0 ) + ROM_LOAD( "snd-rom1.u15", 0x000000, 0x80000, CRC(fb381da9) SHA1(2b1a5447ed856ab92e44d000f27a04d981e3ac52) ) + ROM_LOAD( "qs1001a.u17", 0x200000, 0x80000, CRC(d13c6407) SHA1(57b14f97c7d4f9b5d9745d3571a0b7115fbe3176) ) ROM_REGION16_BE( 0x80, "eeprom", 0 ) ROM_LOAD( "eeprom-misncrft.bin", 0x0000, 0x0080, CRC(9ad27077) SHA1(7f0e98eff9cf6e1b60c19fc1016b888e50b087e0) ) @@ -2370,6 +2431,10 @@ static DRIVER_INIT( misncrft ) state->m_palshift = 0; state->m_flip_bit = 1; + + // Configure the QS1000 ROM banking. Care must be taken not to overlap the 256b internal RAM + machine.device("qs1000:cpu")->memory().space(AS_IO)->install_read_bank(0x0100, 0xffff, "data"); + state->membank("qs1000:data")->configure_entries(0, 16, state->memregion("qs1000:cpu")->base()+0x100, 0x8000-0x100); } static DRIVER_INIT( coolmini ) @@ -2429,6 +2494,10 @@ static DRIVER_INIT( wyvernwg ) state->m_semicom_prot_idx = 8; state->m_semicom_prot_data[0] = 2; state->m_semicom_prot_data[1] = 1; + + // Configure the QS1000 ROM banking. Care must be taken not to overlap the 256b internal RAM + machine.device("qs1000:cpu")->memory().space(AS_IO)->install_read_bank(0x0100, 0xffff, "data"); + state->membank("qs1000:data")->configure_entries(0, 16, state->memregion("qs1000:cpu")->base()+0x100, 0x8000-0x100); } static DRIVER_INIT( finalgdr ) @@ -2539,13 +2608,13 @@ GAME( 1999, puzlbang, suplup, suplup, common, puzlbang, ROT0, "Omega Sys GAME( 1999, vamphalf, 0, vamphalf, common, vamphalf, ROT0, "Danbi / F2 System", "Vamf x1/2 (Europe)", 0 ) GAME( 1999, vamphalfk,vamphalf, vamphalf, common, vamphafk, ROT0, "Danbi / F2 System", "Vamp x1/2 (Korea)", 0 ) GAME( 2000, dquizgo2, 0, coolmini, common, dquizgo2, ROT0, "SemiCom", "Date Quiz Go Go Episode 2" , 0) -GAME( 2000, misncrft, 0, misncrft, common, misncrft, ROT90, "Sun", "Mission Craft (version 2.4)", GAME_NO_SOUND ) +GAME( 2000, misncrft, 0, misncrft, common, misncrft, ROT90, "Sun", "Mission Craft (version 2.4)", GAME_IMPERFECT_SOUND ) GAME( 2000, mrdig, 0, mrdig, common, mrdig, ROT0, "Sun", "Mr. Dig", 0 ) GAME( 2001, dtfamily, 0, coolmini, common, dtfamily, ROT0, "SemiCom", "Diet Family", 0 ) GAME( 2001, finalgdr, 0, finalgdr, finalgdr, finalgdr, ROT0, "SemiCom", "Final Godori (Korea, version 2.20.5915)", 0 ) GAME( 2001, mrkicker, 0, mrkicker, finalgdr, mrkicker, ROT0, "SemiCom", "Mr. Kicker", GAME_NOT_WORKING ) // game stops booting / working properly after you get a high score, or if you don't have a default eeprom with 'valid data. It's never worked properly, CPU core issue? GAME( 2001, toyland, 0, coolmini, common, toyland, ROT0, "SemiCom", "Toy Land Adventure", 0 ) -GAME( 2001, wyvernwg, 0, wyvernwg, common, wyvernwg, ROT270, "SemiCom (Game Vision license)", "Wyvern Wings (set 1)", GAME_NO_SOUND ) -GAME( 2001, wyvernwga,wyvernwg, wyvernwg, common, wyvernwg, ROT270, "SemiCom (Game Vision license)", "Wyvern Wings (set 2)", GAME_NO_SOUND ) +GAME( 2001, wyvernwg, 0, wyvernwg, common, wyvernwg, ROT270, "SemiCom (Game Vision license)", "Wyvern Wings (set 1)", GAME_IMPERFECT_SOUND ) +GAME( 2001, wyvernwga,wyvernwg, wyvernwg, common, wyvernwg, ROT270, "SemiCom (Game Vision license)", "Wyvern Wings (set 2)", GAME_IMPERFECT_SOUND ) GAME( 2001, aoh, 0, aoh, aoh, aoh, ROT0, "Unico", "Age Of Heroes - Silkroad 2 (v0.63 - 2001/02/07)", 0 ) GAME( 2001, boonggab, 0, boonggab, boonggab, boonggab, ROT270, "Taff System", "Boong-Ga Boong-Ga (Spank'em!)", 0 ) diff --git a/src/mame/includes/eolith.h b/src/mame/includes/eolith.h index 7b122d0ed2d..085fc6e8f5a 100644 --- a/src/mame/includes/eolith.h +++ b/src/mame/includes/eolith.h @@ -3,22 +3,35 @@ class eolith_state : public driver_device public: eolith_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_maincpu(*this,"maincpu") + m_maincpu(*this, "maincpu"), + m_soundcpu(*this, "soundcpu") { } int m_coin_counter_bit; int m_buffer; UINT32 *m_vram; + + UINT8 m_sound_data; + UINT8 m_data_to_qs1000; required_device m_maincpu; + required_device m_soundcpu; + DECLARE_READ32_MEMBER(eolith_custom_r); DECLARE_WRITE32_MEMBER(systemcontrol_w); + DECLARE_WRITE32_MEMBER(sound_w); DECLARE_READ32_MEMBER(hidctch3_pen1_r); DECLARE_READ32_MEMBER(hidctch3_pen2_r); DECLARE_WRITE32_MEMBER(eolith_vram_w); DECLARE_READ32_MEMBER(eolith_vram_r); DECLARE_CUSTOM_INPUT_MEMBER(eolith_speedup_getvblank); DECLARE_CUSTOM_INPUT_MEMBER(stealsee_speedup_getvblank); + + DECLARE_READ8_MEMBER(sound_cmd_r); + DECLARE_WRITE8_MEMBER(sound_p1_w); + + DECLARE_READ8_MEMBER(qs1000_p1_r); + DECLARE_WRITE8_MEMBER(qs1000_p1_w); };