diff --git a/src/mame/drivers/champbas.cpp b/src/mame/drivers/champbas.cpp index 472b2a4fc7f..d802707a1b4 100644 --- a/src/mame/drivers/champbas.cpp +++ b/src/mame/drivers/champbas.cpp @@ -281,6 +281,13 @@ void exctsccr_state::exctsccr_sound_io_map(address_map &map) map(0x8e, 0x8f).w("ay4", FUNC(ay8910_device::data_address_w)); } +void exctsccr_state::exctscc2_sound_io_map(address_map &map) +{ + map.global_mask(0x00ff); + map(0x8a, 0x8b).w("ay1", FUNC(ay8910_device::data_address_w)); + map(0x8e, 0x8f).w("ay2", FUNC(ay8910_device::data_address_w)); +} + /************************************* @@ -715,6 +722,19 @@ void exctsccr_state::exctsccr(machine_config &config) vref.add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac2", -1.0, DAC_VREF_NEG_INPUT); } +void exctsccr_state::exctscc2(machine_config &config) +{ + exctsccr(config); + + m_audiocpu->set_addrmap(AS_IO, &exctsccr_state::exctscc2_sound_io_map); + + subdevice("ay1")->set_clock(XTAL(14'318'181)/8); // measured on PCB + + // Exciting Soccer II only has two AYs + config.device_remove("ay3"); + config.device_remove("ay4"); +} + /* Bootleg running on a modified Champion Baseball board */ void exctsccr_state::exctsccrb(machine_config &config) { @@ -1184,9 +1204,9 @@ ROM_END ROM_START( exctscc2 ) // 2-PCB stack: CPU & SOUND BOARD + DISPLAY BOARD N. 58AS51-1 ROM_REGION( 0x10000, "maincpu", 0 ) // on CPU & sound board - ROM_LOAD( "eprom_1_vr_alpha_denshi.3j", 0x0000, 0x2000, CRC(c6115362) SHA1(6a258631abd72ef6b8d7968bb4b2bc88e89e597d) ) + ROM_LOAD( "eprom_1_vr_b_alpha_denshi.3j", 0x0000, 0x2000, CRC(c6115362) SHA1(6a258631abd72ef6b8d7968bb4b2bc88e89e597d) ) // B handwritten ROM_LOAD( "eprom_2_vr_alpha_denshi.3k", 0x2000, 0x2000, CRC(de36ba00) SHA1(0a0d92e710b8c749f145571bc8a204609456d19d) ) - ROM_LOAD( "eprom_3_vr_alpha_denshi.3l", 0x4000, 0x2000, CRC(1ddfdf65) SHA1(313d0a7f13fc2de15aa32492c38a59fbafad9f01) ) + ROM_LOAD( "eprom_3_vr_v_alpha_denshi.3l", 0x4000, 0x2000, CRC(1ddfdf65) SHA1(313d0a7f13fc2de15aa32492c38a59fbafad9f01) ) // V handwritten ROM_REGION( 0x10000, "audiocpu", 0 ) // on CPU & sound board ROM_LOAD( "eprom_0_vr_alpha_denshi.7d", 0x0000, 0x2000, CRC(2c675a43) SHA1(aa0a8dbcae955e3da92c435202f2a1ed238c377e) ) // yes 0, not 10 @@ -1198,21 +1218,21 @@ ROM_START( exctscc2 ) // 2-PCB stack: CPU & SOUND BOARD + DISPLAY BOARD N. 58AS5 ROM_REGION( 0x2000, "alpha_8201:mcu", 0 ) // on CPU & sound board ROM_LOAD( "alpha-8303_44801b42.1d", 0x0000, 0x2000, CRC(66adcb37) SHA1(e1c72ecb161129dcbddc0b16dd90e716d0c79311) ) - ROM_REGION( 0x04000, "gfx1", 0 ) // 3bpp chars + sprites: rearranged by DRIVER_INIT to leave only chars, on display board + ROM_REGION( 0x04000, "gfx1", 0 ) // 3bpp chars + sprites: rearranged by init_exctsccr() to leave only chars, on display board ROM_LOAD( "eprom_4_vr_alpha_denshi.5a", 0x0000, 0x2000, CRC(4ff1783d) SHA1(c45074864c3a4bcbf3a87d164027ae16dca53d9c) ) // planes 0,1 ROM_LOAD( "eprom_6_vr_alpha_denshi.5c", 0x2000, 0x2000, CRC(1fb84ee6) SHA1(56ceb86c509be783f806403ac21e7c9684760d5f) ) // plane 3 - ROM_REGION( 0x04000, "gfx2", 0 ) // 3bpp chars + sprites: rearranged by DRIVER_INIT to leave only sprites, on display board + ROM_REGION( 0x04000, "gfx2", 0 ) // 3bpp chars + sprites: rearranged by init_exctsccr() to leave only sprites, on display board ROM_LOAD( "eprom_5_vr_alpha_denshi.5b", 0x0000, 0x2000, CRC(5605b60b) SHA1(19d5909896ae4a3d7552225c369d30475c56793b) ) // planes 0,1 ROM_REGION( 0x02000, "gfx3", 0 ) // 4bpp sprites, on display board ROM_LOAD( "eprom_7_vr_alpha_denshi.5k", 0x0000, 0x1000, CRC(1d37edfa) SHA1(184fa6dd7b1b3fff4c5fc19b42301ccb7979ac84) ) ROM_LOAD( "eprom_8_vr_alpha_denshi.5l", 0x1000, 0x1000, CRC(b97f396c) SHA1(4ffe512acf047230bd593911a615fc0ef66b481d) ) - ROM_REGION( 0x0220, "proms", 0 ) // it's suspected these weren't dumped for this set, but taken from an Exciting Soccer (see MT5026) - ROM_LOAD( "prom1.5j", 0x0000, 0x0020, BAD_DUMP CRC(d9b10bf0) SHA1(bc1263331968f4bf37eb70ec4f56a8cb763c29d2) ) // palette, marked as 7051 on CPU & sound board - ROM_LOAD( "prom3.60h", 0x0020, 0x0100, BAD_DUMP CRC(b5db1c2c) SHA1(900aaaac6b674a9c5c7b7804a4b0c3d5cce761aa) ) // lookup table, marked as 7052 on display board - ROM_LOAD( "prom2.61d", 0x0120, 0x0100, BAD_DUMP CRC(8a9c0edf) SHA1(8aad387e9409cff0eeb42eeb57e9ea88770a8c9a) ) // lookup table, marked as 7052 on display board + ROM_REGION( 0x0220, "proms", 0 ) // colors match video from PCB (even the field one) + ROM_LOAD( "tbp18s030.5j", 0x0000, 0x0020, CRC(899d153d) SHA1(669f1a2de387ae7cdce16c2714a384c9586ed255) ) // palette, marked as 7051 on CPU & sound board + ROM_LOAD( "tbp24s10.61d", 0x0020, 0x0100, CRC(75613784) SHA1(38dc1c1d2d0f33d58f035942e71665c9810fdab1) ) // lookup table, marked as 7052 on display board + ROM_LOAD( "tbp24s10.60h", 0x0120, 0x0100, CRC(1a52d6eb) SHA1(cd0c8cbaf5d8df14df34103cde2ec595039a6d51) ) // lookup table, marked as 7052 on display board ROM_END @@ -1291,4 +1311,4 @@ GAME( 1983, exctsccra, exctsccr, exctsccr, exctsccr, exctsccr_state, init_exc GAME( 1983, exctsccrj, exctsccr, exctsccr, exctsccr, exctsccr_state, init_exctsccr, ROT270, "Alpha Denshi Co.", "Exciting Soccer (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1983, exctsccrjo, exctsccr, exctsccr, exctsccr, exctsccr_state, init_exctsccr, ROT270, "Alpha Denshi Co.", "Exciting Soccer (Japan, older)", MACHINE_SUPPORTS_SAVE ) GAME( 1983, exctsccrb, exctsccr, exctsccrb, exctsccr, exctsccr_state, init_exctsccr, ROT270, "bootleg (Kazutomi)", "Exciting Soccer (bootleg)", MACHINE_SUPPORTS_SAVE ) // on champbasj hardware -GAME( 1984, exctscc2, 0, exctsccr, exctsccr, exctsccr_state, init_exctsccr, ROT270, "Alpha Denshi Co.", "Exciting Soccer II", MACHINE_SUPPORTS_SAVE ) +GAME( 1984, exctscc2, 0, exctscc2, exctsccr, exctsccr_state, init_exctsccr, ROT270, "Alpha Denshi Co.", "Exciting Soccer II", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/includes/champbas.h b/src/mame/includes/champbas.h index 917c80d9ab7..70d82340623 100644 --- a/src/mame/includes/champbas.h +++ b/src/mame/includes/champbas.h @@ -112,6 +112,7 @@ public: void exctsccr(machine_config &config); void exctsccrb(machine_config &config); + void exctscc2(machine_config &config); protected: TIMER_DEVICE_CALLBACK_MEMBER(exctsccr_sound_irq); @@ -129,6 +130,7 @@ protected: void exctsccrb_map(address_map &map); void exctsccr_sound_map(address_map &map); void exctsccr_sound_io_map(address_map &map); + void exctscc2_sound_io_map(address_map &map); private: required_device m_audiocpu;