diff options
Diffstat (limited to 'src/mame/midw8080/8080bw.cpp')
-rw-r--r-- | src/mame/midw8080/8080bw.cpp | 52 |
1 files changed, 39 insertions, 13 deletions
diff --git a/src/mame/midw8080/8080bw.cpp b/src/mame/midw8080/8080bw.cpp index edb8585fab1..52432706bd6 100644 --- a/src/mame/midw8080/8080bw.cpp +++ b/src/mame/midw8080/8080bw.cpp @@ -249,7 +249,7 @@ static INPUT_PORTS_START( sicv_base ) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) // sicv has a DIP switch connected here PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // tied high via 1k resistor on schematic PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) // tied high via 1k resistor on schematic - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) // tied high via 1k resistor on schematic (shard with IN1 bit 3) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) // tied high via 1k resistor on schematic (shared with IN1 bit 3) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) // tied high via 1k resistor on schematic PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) // not connected (floating) on schematic) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) // tied high via 1k resistor on schematic @@ -356,7 +356,7 @@ static INPUT_PORTS_START( alieninv ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("IN2") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1") + PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1") PORT_DIPSETTING( 0x00, "2" ) PORT_DIPSETTING( 0x01, "3" ) PORT_DIPNAME( 0x02, 0x02, "Pence Coinage" ) PORT_DIPLOCATION("SW1:2") @@ -1304,7 +1304,7 @@ void _8080bw_state::escmars(machine_config &config) /* */ /*******************************************************/ -READ_LINE_MEMBER(_8080bw_state::cosmicmo_cab_r) +int _8080bw_state::cosmicmo_cab_r() { return m_cabinet_type->read(); } @@ -1555,6 +1555,10 @@ static INPUT_PORTS_START( rollingc ) PORT_INCLUDE( sicv_base ) PORT_MODIFY("IN0") + // bit 0: Looks like simple protection for moonbase, see routine at $0EB1, gets called at $0DD2. + // It checks for score overflow, and the game ends with message "YOU ARE TOO STRONG" when score + // overflows from 99990 to 0. If bit 0 value = 1, the game ends prematurely when score hits 1000. + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(rollingc_state, game_select_r) PORT_MODIFY("IN1") @@ -1897,7 +1901,7 @@ void _8080bw_state::crashrd(machine_config &config) /* */ /*******************************************************/ -READ_LINE_MEMBER(_8080bw_state::sflush_80_r) +int _8080bw_state::sflush_80_r() { return (m_screen->vpos() & 0x80) ? 1 : 0; } @@ -2136,7 +2140,7 @@ void _8080bw_state::lupin3a(machine_config &config) /* */ /*******************************************************/ -WRITE_LINE_MEMBER(_8080bw_state::polaris_60hz_w) +void _8080bw_state::polaris_60hz_w(int state) { if (state) { @@ -3394,7 +3398,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(claybust_state::gun_callback) m_gun_pos = 0; } -READ_LINE_MEMBER(claybust_state::gun_on_r) +int claybust_state::gun_on_r() { return m_gun_pos ? 1 : 0; } @@ -4111,7 +4115,7 @@ void cane_state::cane(machine_config &config) CANE_AUDIO(config, "soundboard"); } -void cane_state::cane_unknown_port0_w(u8 data) +void cane_state::cane_unknown_port0_w(uint8_t data) { logerror("Unmapped io memory write to 00 = 00 %u\n", data); } @@ -4140,13 +4144,13 @@ void cane_state::cane_unknown_port0_w(u8 data) ***********************************************************************************************************************************/ -u8 orbite_state::orbite_scattered_colorram_r(address_space &space, offs_t offset, u8 mem_mask) +uint8_t orbite_state::orbite_scattered_colorram_r(address_space &space, offs_t offset, uint8_t mem_mask) { return m_scattered_colorram[(offset & 0x1f) | ((offset & 0x1f80) >> 2)]; } -void orbite_state::orbite_scattered_colorram_w(address_space &space, offs_t offset, u8 data, u8 mem_mask) +void orbite_state::orbite_scattered_colorram_w(address_space &space, offs_t offset, uint8_t data, uint8_t mem_mask) { m_scattered_colorram[(offset & 0x1f) | ((offset & 0x1f80) >> 2)] = data; } @@ -4392,6 +4396,16 @@ ROM_START( sinvemag ) ROM_LOAD( "emag_si.f", 0x1c00, 0x0400, CRC(077f5ef2) SHA1(625de6839073ac4c904f949efc1b2e0afea5d676) ) ROM_END +ROM_START( sinvemag2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "sie.a", 0x0000, 0x0400, CRC(86bb8cb6) SHA1(a75648e7f2446c756d86624b15d387d25ce47b66) ) + ROM_LOAD( "sie.b", 0x0400, 0x0400, CRC(febe6d1a) SHA1(e1c3a24b4fa5862107ada1f9d7249466e8c3f06a) ) + ROM_LOAD( "sie.c", 0x0800, 0x0400, CRC(ad6529f0) SHA1(69cbf7e052c4b1ea210c7c92af75a68a34ebf6bb) ) + ROM_LOAD( "sie.d", 0x1400, 0x0400, CRC(68c4b9da) SHA1(8953dc0427b09b71bd763e65caa7deaca09a15da) ) + ROM_LOAD( "sie.e", 0x1800, 0x0400, CRC(636a6b7d) SHA1(6061355176f9bf88d5b2caba9fc6828061669853) ) + ROM_LOAD( "sie.f", 0x1c00, 0x0400, CRC(52062faa) SHA1(c3788ce39b6ddb05115733ebd0de2ece10ef7928) ) +ROM_END + ROM_START( tst_invd ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "test.h", 0x0000, 0x0800, CRC(f86a2eea) SHA1(4a72ff01f3e6d16bbe9bf7f123cd98895bfbed9a) ) /* The Test ROM */ @@ -4520,6 +4534,16 @@ ROM_START( spceking ) ROM_LOAD( "spcekng4", 0x1800, 0x0800, CRC(54170ada) SHA1(1e8b3774355ec0d448f04805a917f4c1fe64bceb) ) ROM_END +ROM_START( spcebttl ) // Three PCB stack (U-1109 + 29-22-2 + 29-22-1), almost exact duplicates of Taito PCBs. + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "1", 0x0000, 0x0400, CRC(86bb8cb6) SHA1(a75648e7f2446c756d86624b15d387d25ce47b66) ) + ROM_LOAD( "2", 0x0400, 0x0400, CRC(febe6d1a) SHA1(e1c3a24b4fa5862107ada1f9d7249466e8c3f06a) ) + ROM_LOAD( "3", 0x0800, 0x0400, CRC(e11ef4ae) SHA1(26f21297cfff1e9922ea20283c5e8eb6a54e8359) ) + ROM_LOAD( "4", 0x1400, 0x0400, CRC(1293b826) SHA1(165cd5d08a19eadbe954145b12807f10df9e691a) ) + ROM_LOAD( "5", 0x1800, 0x0400, CRC(3c89b4d5) SHA1(cf0622a9dcdadc5769546fe807a0f168cc6e18dc) ) + ROM_LOAD( "6", 0x1c00, 0x0400, CRC(e154f4e5) SHA1(eeda4cbae72e0753965cbb99dfbfa927c6a372d1) ) +ROM_END + ROM_START( spcewars ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "sanritsu.1", 0x0000, 0x0400, CRC(ca331679) SHA1(5c362c3d1c721d293bcddbef4033533769c8f0e0) ) @@ -5924,6 +5948,7 @@ GAMEL(1978, invadernc, invaders, invaders, sicv, sisv_state, empty_i 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? GAMEL(1978, spceking, invaders, invaders, sicv, sisv_state, empty_init, ROT270, "Taito / Leijac Corporation", "Space King", MACHINE_SUPPORTS_SAVE, layout_invaders ) // Unclassified, licensed or bootleg? +GAME( 1978, spcebttl, invaders, invaders, sitv, sisv_state, empty_init, ROT270, "bootleg", "Space Battle (Space Invaders bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAMEL(1979, cosmicmo, invaders, cosmicmo, cosmicmo, _8080bw_state, empty_init, ROT270, "bootleg (Universal)", "Cosmic Monsters (version II)", MACHINE_SUPPORTS_SAVE, layout_cosmicm ) // Taito sued, and as settlement they were allowed to sell Universal's Galaxy Wars GAMEL(1979, cosmicm2, invaders, cosmicmo, cosmicmo, _8080bw_state, empty_init, ROT270, "bootleg (Universal)", "Cosmic Monsters 2", MACHINE_SUPPORTS_SAVE, layout_cosmicm ) // " GAMEL(1980?,sinvzen, invaders, invaders, sinvzen, invaders_state, empty_init, ROT270, "Taito / Zenitone-Microsec Ltd.", "Super Invaders (Zenitone-Microsec)", MACHINE_SUPPORTS_SAVE, layout_invaders ) // Unclassified, licensed or bootleg? @@ -5945,7 +5970,8 @@ GAMEL(1979, invasionrz, invaders, invasion, invasion, invasion_state, empty_i 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, sinvemag, invaders, invaders, sinvemag, invaders_state, empty_init, ROT270, "bootleg (Emag)", "Super Invaders (bootleg set 2)", 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, searthina, invaders, invaders, searthin, invaders_state, empty_init, ROT270, "bootleg (Competitive Video)", "Super Earth Invasion (set 2)", 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 ) @@ -6000,14 +6026,14 @@ GAME( 1980, polarisb, polaris, polaris, polaris, _8080bw_state, empty_i GAME( 1980, polariso, polaris, polaris, polaris, _8080bw_state, empty_init, ROT270, "Taito", "Polaris (original version)", MACHINE_SUPPORTS_SAVE ) GAME( 1981, polarisbr, polaris, polaris, polaris, _8080bw_state, empty_init, ROT270, "Taito do Brasil", "Polaris (Brazil)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, ballbomb, 0, ballbomb, ballbomb, _8080bw_state, empty_init, ROT270, "Taito", "Balloon Bomber", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // Missing clouds +GAME( 1980, ballbomb, 0, ballbomb, ballbomb, _8080bw_state, empty_init, ROT270, "Taito", "Balloon Bomber", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // Missing clouds GAME( 1980, indianbt, 0, indianbt, indianbt, _8080bw_state, empty_init, ROT270, "Taito", "Indian Battle", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) GAME( 1983, indianbtbr, indianbt, indianbtbr,indianbtbr,_8080bw_state, empty_init, ROT270, "Taito do Brasil", "Indian Battle (Brazil)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -GAME( 1980, steelwkr, 0, steelwkr, steelwkr, _8080bw_state, empty_init, ROT0 , "Taito", "Steel Worker", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +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 ) +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 ) // Misc. manufacturers |