midw8080/8080bw.cpp: Remove shifter from some (mostly bootleg) sets that don't use it

This commit is contained in:
AJR 2025-04-04 08:12:50 -04:00
parent 0cecc6f1cc
commit b9a91cada5
3 changed files with 34 additions and 15 deletions

View File

@ -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, "<unknown>", "Space Invaders Test ROM", MACHINE_SUPPORTS_SAVE, layout_invaders )
GAMEL(19??, tst_invd, invaders, invnomb, sicv, sisv_state, empty_init, ROT0, "<unknown>", "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 )

View File

@ -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");
}
/*************************************

View File

@ -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