From b9a91cada5226dc1a920e55f71ad1f7a9d4ea9f0 Mon Sep 17 00:00:00 2001 From: AJR Date: Fri, 4 Apr 2025 08:12:50 -0400 Subject: [PATCH] midw8080/8080bw.cpp: Remove shifter from some (mostly bootleg) sets that don't use it --- src/mame/midw8080/8080bw.cpp | 22 +++++++++++----------- src/mame/midw8080/mw8080bw.cpp | 25 +++++++++++++++++++++---- src/mame/midw8080/mw8080bw.h | 2 ++ 3 files changed, 34 insertions(+), 15 deletions(-) diff --git a/src/mame/midw8080/8080bw.cpp b/src/mame/midw8080/8080bw.cpp index 08f86c82a84..cfcce0e2fc2 100644 --- a/src/mame/midw8080/8080bw.cpp +++ b/src/mame/midw8080/8080bw.cpp @@ -5973,7 +5973,7 @@ GAMEL(1978, sitv, invaders, invaders, sitv, sisv_state, empty_i GAME( 1979, sicv, invaders, invadpt2, sicv, _8080bw_state, empty_init, ROT270, "Taito", "Space Invaders (CV Version, larger roms)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 1979, sicv1, invaders, invadpt2, sicv, _8080bw_state, empty_init, ROT270, "Taito", "Space Invaders (CV Version, smaller roms)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAMEL(1978, invadrmr, invaders, invaders, invadrmr, invaders_state, empty_init, ROT270, "Taito / Model Racing", "Space Invaders (Model Racing)", MACHINE_SUPPORTS_SAVE, layout_invaders ) // Unclassified, licensed or bootleg? -GAMEL(1978, invaderl, invaders, invaders, sicv, sisv_state, empty_init, ROT270, "Taito / Logitec", "Space Invaders (Logitec)", MACHINE_SUPPORTS_SAVE, layout_invaders ) // Unclassified, licensed or bootleg? +GAMEL(1978, invaderl, invaders, invnomb, sicv, sisv_state, empty_init, ROT270, "Taito / Logitec", "Space Invaders (Logitec)", MACHINE_SUPPORTS_SAVE, layout_invaders ) // Unclassified, licensed or bootleg? GAMEL(1978, invadernc, invaders, invaders, sicv, sisv_state, empty_init, ROT270, "bootleg (Nas Corp)", "Space Invaders (Nas Corp bootleg)", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE, layout_invaders ) // Runs on original Logitec PCB, PROM dump might be bad, needs correct decoding anyway GAMEL(1978, spcewars, invaders, spcewars, spcewars, _8080bw_state, empty_init, ROT270, "Taito / Sanritsu", "Space War (Sanritsu)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_invaders ) // Unclassified, licensed or bootleg? GAME( 1979, spcewarla, invaders, spcewarla, spcewars, _8080bw_state, empty_init, ROT270, "bootleg (Leisure and Allied)", "Space War (Leisure and Allied)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // unclassified, licensed or bootleg? @@ -5989,7 +5989,7 @@ GAMEL(1978, spaceatt, invaders, invaders, sicv, sisv_state, empty_i GAMEL(1978, spaceattbp, invaders, invaders, sicv, sisv_state, empty_init, ROT270, "bootleg (Video Games GmbH)", "Space Attack (bootleg of Space Invaders, bproms)", MACHINE_SUPPORTS_SAVE, layout_invaders ) GAMEL(1978, spaceatt2k, invaders, invaders, sicv, sisv_state, empty_init, ROT270, "bootleg (Video Games GmbH)", "Space Attack (bootleg of Space Invaders, 2k roms)", MACHINE_SUPPORTS_SAVE, layout_invaders ) GAMEL(1978, cosmicin, invaders, invaders, sicv, sisv_state, empty_init, ROT270, "bootleg", "Cosmic Invaders (bootleg of Space Invaders)", MACHINE_SUPPORTS_SAVE, layout_invaders ) -GAMEL(1978, galmonst, invaders, invaders, sicv, sisv_state, empty_init, ROT270, "bootleg (Laguna S.A.)", "Galaxy Monsters (Laguna S.A. Spanish bootleg of Space Invaders)", MACHINE_SUPPORTS_SAVE, layout_invaders ) +GAMEL(1978, galmonst, invaders, invnomb, sicv, sisv_state, empty_init, ROT270, "bootleg (Laguna S.A.)", "Galaxy Monsters (Laguna S.A. Spanish bootleg of Space Invaders)", MACHINE_SUPPORTS_SAVE, layout_invaders ) GAMEL(1979, spacecom, invaders, spacecom, spacecom, spacecom_state, init_spacecom, ROT270, "bootleg", "Space Combat (bootleg of Space Invaders)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_spacecom ) GAME( 1978, spacerng, invaders, spacerng, sitv, _8080bw_state, empty_init, ROT90, "bootleg (Leisure Time Electronics)", "Space Ranger", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) // Many modifications GAMEL(19??, invasion, invaders, invasion, invasion, invasion_state, empty_init, ROT270, "bootleg (Sidam)", "Invasion (Sidam)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_invaders ) @@ -5999,10 +5999,10 @@ GAMEL(1979, invasionb, invaders, invasion, invasion, invasion_state, empty_i GAMEL(1979, invasionrz, invaders, invasion, invasion, invasion_state, empty_init, ROT270, "bootleg (R Z SRL Bologna)", "Invasion (bootleg set 1, R Z SRL Bologna)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_invaders ) GAMEL(1979, invasionrza, invaders, invasion, invasion, invasion_state, empty_init, ROT270, "bootleg (R Z SRL Bologna)", "Invasion (bootleg set 2, R Z SRL Bologna)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_invaders ) GAMEL(19??, invadersem, invaders, invaders, sitv, sisv_state, empty_init, ROT270, "Electromar", "Space Invaders (Electromar, Spanish)", MACHINE_SUPPORTS_SAVE, layout_invaders ) // Possibly licensed -GAMEL(1978, superinv, invaders, invaders, superinv, invaders_state, empty_init, ROT270, "bootleg", "Super Invaders (bootleg set 1)", MACHINE_SUPPORTS_SAVE, layout_invaders ) // Not related to Zenitone-Microsec version +GAMEL(1978, superinv, invaders, invnomb, superinv, invaders_state, empty_init, ROT270, "bootleg", "Super Invaders (bootleg set 1)", MACHINE_SUPPORTS_SAVE, layout_invaders ) // Not related to Zenitone-Microsec version GAMEL(1978, sinvemag, invaders, invaders, sinvemag, invaders_state, empty_init, ROT270, "bootleg (Emag)", "Super Invaders (Emag bootleg set 1)", MACHINE_SUPPORTS_SAVE, layout_invaders ) // Not related to Zenitone-Microsec version GAMEL(1978, sinvemag2, invaders, invaders, sinvemag, invaders_state, empty_init, ROT270, "bootleg (Emag)", "Super Invaders (Emag bootleg set 2)", MACHINE_SUPPORTS_SAVE, layout_invaders ) // Not related to Zenitone-Microsec version -GAMEL(1980, searthin, invaders, invaders, searthin, invaders_state, empty_init, ROT270, "bootleg (Competitive Video)", "Super Earth Invasion (set 1)", MACHINE_SUPPORTS_SAVE, layout_invaders ) +GAMEL(1980, searthin, invaders, invnomb, searthin, invaders_state, empty_init, ROT270, "bootleg (Competitive Video)", "Super Earth Invasion (set 1)", MACHINE_SUPPORTS_SAVE, layout_invaders ) GAMEL(1980, searthina, invaders, invaders, searthin, invaders_state, empty_init, ROT270, "bootleg (Competitive Video)", "Super Earth Invasion (set 2)", MACHINE_SUPPORTS_SAVE, layout_invaders ) GAMEL(19??, searthinc, invaders, invaders, searthin, invaders_state, empty_init, ROT270, "bootleg (Centromatic)", "Super Earth Invasion (Centromatic, Spanish)", MACHINE_SUPPORTS_SAVE, layout_invaders ) GAMEL(1979, supinvsion, invaders, invaders, searthin, invaders_state, empty_init, ROT270, "bootleg (Electromar / Irecsa)", "Super Invasion (Electromar, Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_CONTROLS, layout_invaders ) @@ -6014,7 +6014,7 @@ GAMEL(1979, jspecter2, invaders, invaders, jspecter, invaders_state, empty_i GAMEL(1978, spacewr3, invaders, spcewars, sicv, _8080bw_state, empty_init, ROT270, "bootleg", "Space War Part 3", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_invaders ) // Bootleg of Sanritsu's Space War GAMEL(1978, swipeout, invaders, spcewars, sicv, _8080bw_state, empty_init, ROT270, "bootleg (Beyer and Brown)", "Space Wipeout", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_invaders ) // Bootleg of Sanritsu's Space War GAME( 1978, darthvdr, invaders, darthvdr, darthvdr, darthvdr_state, empty_init, ROT270, "bootleg", "Darth Vader (bootleg of Space Invaders)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAMEL(19??, tst_invd, invaders, invaders, sicv, sisv_state, empty_init, ROT0, "", "Space Invaders Test ROM", MACHINE_SUPPORTS_SAVE, layout_invaders ) +GAMEL(19??, tst_invd, invaders, invnomb, sicv, sisv_state, empty_init, ROT0, "", "Space Invaders Test ROM", MACHINE_SUPPORTS_SAVE, layout_invaders ) // Other Taito GAME( 1979, invadpt2, 0, invadpt2, invadpt2, _8080bw_state, empty_init, ROT270, "Taito", "Space Invaders Part II (Taito, bigger ROMs)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) @@ -6065,15 +6065,15 @@ GAME( 1983, indianbtbr, indianbt, indianbtbr,indianbtbr,_8080bw_state, empty_i GAME( 1980, steelwkr, 0, steelwkr, steelwkr, _8080bw_state, empty_init, ROT0, "Taito", "Steel Worker", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAMEL(1980?,galactic, 0, invaders, galactic, invaders_state, empty_init, ROT270, "Taito do Brasil", "Galactica - Batalha Espacial", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND, layout_galactic ) // Modified version of Taito Spacian, on Space Invaders hardware -GAMEL(1980?,spacmiss, galactic, invaders, galactic, invaders_state, empty_init, ROT270, "bootleg?", "Space Missile - Space Fighting Game", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND, layout_galactic ) +GAMEL(1980?,galactic, 0, invnomb, galactic, invaders_state, empty_init, ROT270, "Taito do Brasil", "Galactica - Batalha Espacial", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND, layout_galactic ) // Modified version of Taito Spacian, on Space Invaders hardware +GAMEL(1980?,spacmiss, galactic, invnomb, galactic, invaders_state, empty_init, ROT270, "bootleg?", "Space Missile - Space Fighting Game", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND, layout_galactic ) // Misc. manufacturers GAME( 1979, galxwars, 0, invadpt2, galxwars, _8080bw_state, empty_init, ROT270, "Universal", "Galaxy Wars (Universal set 1)", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) GAME( 1979, galxwars2, galxwars, invadpt2, galxwars, _8080bw_state, empty_init, ROT270, "Universal", "Galaxy Wars (Universal set 2)", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) GAME( 1979, galxwarst, galxwars, invadpt2, galxwars, _8080bw_state, empty_init, ROT270, "Universal (Taito license?)", "Galaxy Wars (Taito?)" , MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) // Copyright not displayed GAME( 1979, galxwarst2, galxwars, invadpt2, galxwars, _8080bw_state, empty_init, ROT270, "Universal (Taito Corporation license)", "Galaxy Wars (Taito)" , MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) // Copyright displayed, quite different codebase from galxwarst -GAME( 1979, starw, galxwars, invaders, galxwars, invaders_state, empty_init, ROT270, "bootleg", "Star Wars (bootleg of Galaxy Wars, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1979, starw, galxwars, invnomb, galxwars, invaders_state, empty_init, ROT270, "bootleg", "Star Wars (bootleg of Galaxy Wars, set 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1979, starw1, galxwars, starw1, galxwars, _8080bw_state, empty_init, ROT270, "bootleg (Yamashita)", "Star Wars (bootleg of Galaxy Wars, set 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1979, cosmo, 0, cosmo, cosmo, _8080bw_state, empty_init, ROT90, "TDS & MINTS", "Cosmo", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) @@ -6090,9 +6090,9 @@ GAME( 1979, rollingc, 0, rollingc, rollingc, rollingc_state, empty_i GAME( 1979, ozmawars, 0, ozmawars, ozmawars, ozmawars_state, empty_init, ROT270, "SNK", "Ozma Wars (set 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1979, ozmawars2, ozmawars, ozmawars, ozmawars, ozmawars_state, empty_init, ROT270, "SNK", "Ozma Wars (set 2)", MACHINE_SUPPORTS_SAVE ) // Uses Taito's three board color version of Space Invaders PCB -GAME( 1979, ozmawarsmr, ozmawars, invaders, ozmawars, invaders_state, empty_init, ROT270, "bootleg (Model Racing)", "Ozma Wars (Model Racing bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1979, spaceph, ozmawars, invaders, spaceph, invaders_state, empty_init, ROT270, "bootleg? (Zilec Games)", "Space Phantoms (bootleg of Ozma Wars)", MACHINE_SUPPORTS_SAVE ) -GAME( 1979, solfight, ozmawars, invaders, ozmawars, invaders_state, empty_init, ROT270, "bootleg", "Solar Fight (bootleg of Ozma Wars)", MACHINE_SUPPORTS_SAVE ) +GAME( 1979, ozmawarsmr, ozmawars, invnomb, ozmawars, invaders_state, empty_init, ROT270, "bootleg (Model Racing)", "Ozma Wars (Model Racing bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1979, spaceph, ozmawars, invnomb, spaceph, invaders_state, empty_init, ROT270, "bootleg? (Zilec Games)", "Space Phantoms (bootleg of Ozma Wars)", MACHINE_SUPPORTS_SAVE ) +GAME( 1979, solfight, ozmawars, invnomb, ozmawars, invaders_state, empty_init, ROT270, "bootleg", "Solar Fight (bootleg of Ozma Wars)", MACHINE_SUPPORTS_SAVE ) GAMEL(1979, yosakdon, 0, yosakdon, yosakdon, yosakdon_state, empty_init, ROT270, "Wing", "Yosaku to Donbei (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND, layout_yosakdon ) GAMEL(1979, yosakdona, yosakdon, yosakdon, yosakdon, yosakdon_state, empty_init, ROT270, "Wing", "Yosaku to Donbei (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND, layout_yosakdon ) diff --git a/src/mame/midw8080/mw8080bw.cpp b/src/mame/midw8080/mw8080bw.cpp index 7cdafcac56e..c71ee274d3e 100644 --- a/src/mame/midw8080/mw8080bw.cpp +++ b/src/mame/midw8080/mw8080bw.cpp @@ -2629,19 +2629,27 @@ bool invaders_state::is_cabinet_cocktail() } -void invaders_state::io_map(address_map &map) +void invaders_state::io_map_noshift(address_map &map) { map.global_mask(0x7); map(0x00, 0x00).mirror(0x04).portr("IN0"); map(0x01, 0x01).mirror(0x04).portr("IN1"); map(0x02, 0x02).mirror(0x04).portr("IN2"); + + map(0x02, 0x02).nopw(); // galmonst has residual writes to this port + map(0x03, 0x03).w("soundboard", FUNC(invaders_audio_device::p1_w)); + map(0x05, 0x05).w("soundboard", FUNC(invaders_audio_device::p2_w)); + map(0x06, 0x06).w(m_watchdog, FUNC(watchdog_timer_device::reset_w)); +} + +void invaders_state::io_map(address_map &map) +{ + io_map_noshift(map); + map(0x03, 0x03).mirror(0x04).r(m_mb14241, FUNC(mb14241_device::shift_result_r)); map(0x02, 0x02).w(m_mb14241, FUNC(mb14241_device::shift_count_w)); - map(0x03, 0x03).w("soundboard", FUNC(invaders_audio_device::p1_w)); map(0x04, 0x04).w(m_mb14241, FUNC(mb14241_device::shift_data_w)); - map(0x05, 0x05).w("soundboard", FUNC(invaders_audio_device::p2_w)); - map(0x06, 0x06).w(m_watchdog, FUNC(watchdog_timer_device::reset_w)); } @@ -2728,6 +2736,15 @@ void invaders_state::invaders(machine_config &config) }); } +void invaders_state::invnomb(machine_config &config) +{ + invaders(config); + + m_maincpu->set_addrmap(AS_IO, &invaders_state::io_map_noshift); + + config.device_remove("mb14241"); +} + /************************************* diff --git a/src/mame/midw8080/mw8080bw.h b/src/mame/midw8080/mw8080bw.h index ce189893d09..d4ed696584b 100644 --- a/src/mame/midw8080/mw8080bw.h +++ b/src/mame/midw8080/mw8080bw.h @@ -387,6 +387,7 @@ public: } void invaders(machine_config &config); + void invnomb(machine_config &config); ioport_value invaders_sw6_sw7_r(); ioport_value invaders_sw5_r(); @@ -408,6 +409,7 @@ protected: private: void io_map(address_map &map) ATTR_COLD; + void io_map_noshift(address_map &map) ATTR_COLD; }; class bowler_state : public mw8080bw_state