diff options
Diffstat (limited to 'src/mame/drivers/williams.cpp')
-rw-r--r-- | src/mame/drivers/williams.cpp | 268 |
1 files changed, 146 insertions, 122 deletions
diff --git a/src/mame/drivers/williams.cpp b/src/mame/drivers/williams.cpp index 1a747643f48..cfcc015bddd 100644 --- a/src/mame/drivers/williams.cpp +++ b/src/mame/drivers/williams.cpp @@ -541,7 +541,7 @@ void defender_state::bankc000_map(address_map &map) void mayday_state::main_map(address_map &map) { defender_state::main_map(map); - /* install a handler to catch protection checks */ + // install a handler to catch protection checks map(0xa190, 0xa191).r(FUNC(mayday_state::protection_r)); } @@ -593,7 +593,7 @@ void sinistar_state::main_map(address_map &map) void bubbles_state::main_map(address_map &map) { base_map(map); - /* bubbles has a full 8-bit-wide CMOS */ + // bubbles has a full 8-bit-wide CMOS map(0xcc00, 0xcfff).w(FUNC(bubbles_state::cmos_w)).share("nvram"); } @@ -606,12 +606,12 @@ void bubbles_state::main_map(address_map &map) void spdball_state::main_map(address_map &map) { base_map(map); - /* install extra input handlers */ + // install extra input handlers map(0xc800, 0xc800).portr("AN0"); map(0xc801, 0xc801).portr("AN1"); map(0xc802, 0xc802).portr("AN2"); map(0xc803, 0xc803).portr("AN3"); - /* add a third PIA */ + // add a third PIA map(0xc808, 0xc80b).mirror(0x00f0).rw(m_pia[3], FUNC(pia6821_device::read), FUNC(pia6821_device::write)); } @@ -682,7 +682,7 @@ void williams2_state::bank8000_map(address_map &map) } -/* mysticm and inferno: D000-DFFF is RAM */ +// mysticm and inferno: D000-DFFF is RAM void williams_d000_ram_state::d000_map(address_map &map) { common_map(map); @@ -691,7 +691,7 @@ void williams_d000_ram_state::d000_map(address_map &map) } -/* tshoot and joust2: D000-DFFF is ROM */ +// tshoot and joust2: D000-DFFF is ROM void williams_d000_rom_state::d000_map(address_map &map) { common_map(map); @@ -708,7 +708,7 @@ void williams_d000_rom_state::d000_map(address_map &map) void defender_state::sound_map(address_map &map) { - map(0x0000, 0x007f).ram(); /* internal RAM */ + map(0x0000, 0x007f).ram(); // internal RAM map(0x0400, 0x0403).mirror(0x8000).rw(m_pia[2], FUNC(pia6821_device::read), FUNC(pia6821_device::write)); map(0xb000, 0xffff).rom(); } @@ -716,8 +716,8 @@ void defender_state::sound_map(address_map &map) void williams_state::sound_map(address_map &map) { - map(0x0000, 0x007f).ram(); /* internal RAM */ - map(0x0080, 0x00ff).ram(); /* MC6810 RAM */ + map(0x0000, 0x007f).ram(); // internal RAM + map(0x0080, 0x00ff).ram(); // MC6810 RAM map(0x0400, 0x0403).mirror(0x8000).rw(m_pia[2], FUNC(pia6821_device::read), FUNC(pia6821_device::write)); map(0xb000, 0xffff).rom(); } @@ -725,8 +725,8 @@ void williams_state::sound_map(address_map &map) /* Same as above, but for second sound board */ void blaster_state::sound2_map(address_map &map) { - map(0x0000, 0x007f).ram(); /* internal RAM */ - map(0x0080, 0x00ff).ram(); /* MC6810 RAM */ + map(0x0000, 0x007f).ram(); // internal RAM + map(0x0080, 0x00ff).ram(); // MC6810 RAM map(0x0400, 0x0403).mirror(0x8000).rw(m_pia[3], FUNC(pia6821_device::read), FUNC(pia6821_device::write)); map(0xb000, 0xffff).rom(); } @@ -741,8 +741,8 @@ void blaster_state::sound2_map(address_map &map) void williams2_state::sound_map(address_map &map) { - map(0x0000, 0x007f).ram(); /* internal RAM */ - map(0x0080, 0x00ff).ram(); /* MC6810 RAM */ + map(0x0000, 0x007f).ram(); // internal RAM + map(0x0080, 0x00ff).ram(); // MC6810 RAM map(0x2000, 0x2003).mirror(0x1ffc).rw(m_pia[2], FUNC(pia6821_device::read), FUNC(pia6821_device::write)); map(0xe000, 0xffff).rom(); } @@ -828,8 +828,8 @@ static INPUT_PORTS_START( mayday ) PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_START("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE4 ) PORT_NAME("Auto Up / Manual Down") PORT_TOGGLE /* Default to Auto Up */ - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Advance") /* ? */ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE4 ) PORT_NAME("Auto Up / Manual Down") PORT_TOGGLE // Default to Auto Up + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Advance") // ? PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_NAME("Test Credit") PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN1 ) @@ -863,10 +863,10 @@ static INPUT_PORTS_START( colony7 ) PORT_DIPSETTING( 0x02, "30k/50k" ) PORT_CONDITION("IN2",0x01,NOTEQUALS,0x01) PORT_DIPSETTING( 0x00, "30k/50k" ) PORT_CONDITION("IN2",0x01,EQUALS,0x01) PORT_DIPSETTING( 0x02, "40k/70k" ) PORT_CONDITION("IN2",0x01,EQUALS,0x01) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown )) /* documented as unused */ + PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown )) // documented as unused PORT_DIPSETTING( 0x04, DEF_STR( Off )) PORT_DIPSETTING( 0x00, DEF_STR( On )) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown )) /* documented as unused */ + PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown )) // documented as unused PORT_DIPSETTING( 0x08, DEF_STR( Off )) PORT_DIPSETTING( 0x00, DEF_STR( On )) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN1 ) @@ -1106,7 +1106,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( sinistar ) PORT_START("IN0") - /* pseudo analog joystick, see below */ + // pseudo analog joystick, see below PORT_START("IN1") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) @@ -1125,10 +1125,10 @@ static INPUT_PORTS_START( sinistar ) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_TILT ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_START("49WAYX") /* converted by port_0_49way_r() */ + PORT_START("49WAYX") // converted by port_0_49way_r() PORT_BIT( 0xff, 0x38, IPT_AD_STICK_X ) PORT_MINMAX(0x00,0x6f) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) - PORT_START("49WAYY") /* converted by port_0_49way_r() */ + PORT_START("49WAYY") // converted by port_0_49way_r() PORT_BIT( 0xff, 0x38, IPT_AD_STICK_Y ) PORT_MINMAX(0x00,0x6f) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_REVERSE INPUT_PORTS_END @@ -1187,17 +1187,17 @@ static INPUT_PORTS_START( blaster ) PORT_START("INP2") PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_START("49WAYX") /* converted by port_0_49way_r() */ + PORT_START("49WAYX") // converted by port_0_49way_r() PORT_BIT( 0xff, 0x38, IPT_AD_STICK_X ) PORT_MINMAX(0x00,0x6f) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) - PORT_START("49WAYY") /* converted by port_0_49way_r() */ + PORT_START("49WAYY") // converted by port_0_49way_r() PORT_BIT( 0xff, 0x38, IPT_AD_STICK_Y ) PORT_MINMAX(0x00,0x6f) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_REVERSE INPUT_PORTS_END static INPUT_PORTS_START( blastkit ) PORT_START("IN0") - /* pseudo analog joystick, see below */ + // pseudo analog joystick, see below PORT_START("IN1") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) @@ -1213,10 +1213,10 @@ static INPUT_PORTS_START( blastkit ) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_TILT ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) - PORT_START("49WAYX") /* converted by port_0_49way_r() */ + PORT_START("49WAYX") // converted by port_0_49way_r() PORT_BIT( 0xff, 0x38, IPT_AD_STICK_X ) PORT_MINMAX(0x00,0x6f) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) - PORT_START("49WAYY") /* converted by port_0_49way_r() */ + PORT_START("49WAYY") // converted by port_0_49way_r() PORT_BIT( 0xff, 0x38, IPT_AD_STICK_Y ) PORT_MINMAX(0x00,0x6f) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_REVERSE PORT_START("IN3") @@ -1265,16 +1265,16 @@ static INPUT_PORTS_START( spdball ) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START1 ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_START("AN0") /* analog */ + PORT_START("AN0") // analog PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_REVERSE PORT_PLAYER(1) - PORT_START("AN1") /* analog */ + PORT_START("AN1") // analog PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_PLAYER(1) - PORT_START("AN2") /* analog */ + PORT_START("AN2") // analog PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_REVERSE PORT_PLAYER(2) - PORT_START("AN3") /* analog */ + PORT_START("AN3") // analog PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_PLAYER(2) INPUT_PORTS_END @@ -1355,7 +1355,7 @@ static INPUT_PORTS_START( mysticm ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START1 ) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START2 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) /* Key */ + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) // Key PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_START("IN1") @@ -1386,7 +1386,7 @@ static INPUT_PORTS_START( tshoot ) PORT_START("IN1") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Grenade") PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Gobble") - PORT_BIT( 0x3c, IP_ACTIVE_HIGH, IPT_UNUSED ) /* 0011-1100 output */ + PORT_BIT( 0x3c, IP_ACTIVE_HIGH, IPT_UNUSED ) // 0011-1100 output PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START1 ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START2 ) @@ -1534,7 +1534,7 @@ GFXDECODE_END void williams_state::williams_base(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware MC6809E(config, m_maincpu, MASTER_CLOCK/3/4); m_maincpu->set_addrmap(AS_PROGRAM, &williams_state::base_map); @@ -1551,7 +1551,7 @@ void williams_state::williams_base(machine_config &config) WATCHDOG_TIMER(config, m_watchdog); - /* video hardware */ + // video hardware SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_video_attributes(VIDEO_UPDATE_SCANLINE | VIDEO_ALWAYS_UPDATE); m_screen->set_raw(MASTER_CLOCK*2/3, 512, 6, 298, 260, 7, 247); @@ -1559,14 +1559,14 @@ void williams_state::williams_base(machine_config &config) PALETTE(config, m_palette, FUNC(williams_state::palette_init), 256); - /* sound hardware */ + // sound hardware SPEAKER(config, "speaker").front_center(); MC1408(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // mc1408.ic6 voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); - /* pia */ + // pia INPUT_MERGER_ANY_HIGH(config, "mainirq").output_handler().set_inputline(m_maincpu, M6809_IRQ_LINE); INPUT_MERGER_ANY_HIGH(config, "soundirq").output_handler().set_inputline(m_soundcpu, M6808_IRQ_LINE); @@ -1592,7 +1592,7 @@ void defender_state::defender(machine_config &config) { williams_base(config); - /* basic machine hardware */ + // basic machine hardware m_maincpu->set_addrmap(AS_PROGRAM, &defender_state::main_map); m_soundcpu->set_addrmap(AS_PROGRAM, &defender_state::sound_map); @@ -1606,7 +1606,7 @@ void defender_state::defender(machine_config &config) void defender_state::jin(machine_config &config) // needs a different screen size or the credit text is clipped { defender(config); - /* basic machine hardware */ + // basic machine hardware m_screen->set_visarea(0, 315, 7, 247-1); } @@ -1615,9 +1615,9 @@ void williams_muxed_state::williams_muxed(machine_config &config) { williams_base(config); - /* basic machine hardware */ + // basic machine hardware - /* pia */ + // pia m_pia[0]->readpa_handler().set_ioport("IN0").mask(0x30); m_pia[0]->readpa_handler().append("mux_0", FUNC(ls157_device::output_r)).mask(0x0f); m_pia[0]->readpa_handler().append("mux_1", FUNC(ls157_device::output_r)).lshift(6).mask(0xc0); @@ -1640,10 +1640,10 @@ void spdball_state::spdball(machine_config &config) { williams_base(config); - /* basic machine hardware */ + // basic machine hardware m_maincpu->set_addrmap(AS_PROGRAM, &spdball_state::main_map); - /* pia */ + // pia PIA6821(config, m_pia[3], 0); m_pia[3]->readpa_handler().set_ioport("IN3"); m_pia[3]->readpb_handler().set_ioport("IN4"); @@ -1654,9 +1654,9 @@ void williams_state::lottofun(machine_config &config) { williams_base(config); - /* basic machine hardware */ + // basic machine hardware - /* pia */ + // pia m_pia[0]->writepa_handler().set("ticket", FUNC(ticket_dispenser_device::motor_w)).bit(7); m_pia[0]->ca2_handler().set(FUNC(williams_state::lottofun_coin_lock_w)); @@ -1668,13 +1668,13 @@ void sinistar_state::sinistar(machine_config &config) { williams_base(config); - /* basic machine hardware */ + // basic machine hardware m_maincpu->set_addrmap(AS_PROGRAM, &sinistar_state::main_map); - /* sound hardware */ + // sound hardware HC55516(config, "cvsd", 0).add_route(ALL_OUTPUTS, "speaker", 0.8); - /* pia */ + // pia m_pia[0]->readpa_handler().set(FUNC(williams_state::port_0_49way_r)); m_pia[2]->ca2_handler().set("cvsd", FUNC(hc55516_device::digit_w)); @@ -1686,7 +1686,7 @@ void bubbles_state::bubbles(machine_config &config) // has a full 8-bit NVRAM e { williams_base(config); - /* basic machine hardware */ + // basic machine hardware m_maincpu->set_addrmap(AS_PROGRAM, &bubbles_state::main_map); } @@ -1695,15 +1695,15 @@ void playball_state::playball(machine_config &config) { williams_base(config); - /* basic machine hardware */ + // basic machine hardware - /* video hardware */ + // video hardware m_screen->set_visarea(6, 298-1, 8, 240-1); - /* sound hardware */ + // sound hardware HC55516(config, "cvsd", 0).add_route(ALL_OUTPUTS, "speaker", 0.8); - /* pia */ + // pia m_pia[1]->writepb_handler().set(FUNC(playball_state::snd_cmd_w)); m_pia[2]->ca2_handler().set("cvsd", FUNC(hc55516_device::digit_w)); @@ -1715,13 +1715,13 @@ void blaster_state::blastkit(machine_config &config) { williams_base(config); - /* basic machine hardware */ + // basic machine hardware m_maincpu->set_addrmap(AS_PROGRAM, &blaster_state::main_map); - /* video hardware */ + // video hardware m_screen->set_screen_update(FUNC(blaster_state::screen_update)); - /* pia */ + // pia m_pia[0]->readpa_handler().set("mux_a", FUNC(ls157_x2_device::output_r)); m_pia[0]->cb2_handler().set("mux_a", FUNC(ls157_x2_device::select_w)); @@ -1737,11 +1737,11 @@ void blaster_state::blaster(machine_config &config) { blastkit(config); - /* basic machine hardware */ + // basic machine hardware M6808(config, m_soundcpu_b, SOUND_CLOCK); // internal clock divider of 4, effective frequency is 894.886kHz m_soundcpu_b->set_addrmap(AS_PROGRAM, &blaster_state::sound2_map); - /* pia */ + // pia m_pia[0]->readpb_handler().set("mux_b", FUNC(ls157_device::output_r)).mask(0x0f); m_pia[0]->readpb_handler().append_ioport("IN1").mask(0xf0); m_pia[0]->cb2_handler().set("mux_a", FUNC(ls157_x2_device::select_w)); @@ -1766,7 +1766,7 @@ void blaster_state::blaster(machine_config &config) m_pia[3]->irqa_handler().set("soundirq_b", FUNC(input_merger_any_high_device::in_w<0>)); m_pia[3]->irqb_handler().set("soundirq_b", FUNC(input_merger_any_high_device::in_w<1>)); - /* sound hardware */ + // sound hardware config.device_remove("speaker"); config.device_remove("dac"); config.device_remove("vref"); @@ -1783,10 +1783,10 @@ void blaster_state::blaster(machine_config &config) void williams2_state::williams2_base(machine_config &config) { - /* basic machine hardware */ + // basic machine hardware MC6809E(config, m_maincpu, MASTER_CLOCK/3/4); - M6808(config, m_soundcpu, MASTER_CLOCK/3); /* yes, this is different from the older games */ + M6808(config, m_soundcpu, MASTER_CLOCK/3); // yes, this is different from the older games m_soundcpu->set_addrmap(AS_PROGRAM, &williams2_state::sound_map); ADDRESS_MAP_BANK(config, "bank8000").set_map(&williams2_state::bank8000_map).set_options(ENDIANNESS_BIG, 8, 12, 0x800); @@ -1801,7 +1801,7 @@ void williams2_state::williams2_base(machine_config &config) WATCHDOG_TIMER(config, m_watchdog); - /* video hardware */ + // video hardware PALETTE(config, m_palette).set_entries(1024); GFXDECODE(config, m_gfxdecode, m_palette, gfx_williams2); @@ -1810,7 +1810,7 @@ void williams2_state::williams2_base(machine_config &config) m_screen->set_raw(MASTER_CLOCK*2/3, 512, 8, 284, 260, 8, 248); m_screen->set_screen_update(FUNC(williams2_state::screen_update)); - /* sound hardware */ + // sound hardware SPEAKER(config, "speaker").front_center(); MC1408(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.5); // unknown DAC voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); @@ -1820,7 +1820,7 @@ void williams2_state::williams2_base(machine_config &config) INPUT_MERGER_ANY_HIGH(config, "mainirq").output_handler().set_inputline(m_maincpu, M6809_IRQ_LINE); INPUT_MERGER_ANY_HIGH(config, "soundirq").output_handler().set_inputline(m_soundcpu, M6808_IRQ_LINE); - /* pia */ + // pia PIA6821(config, m_pia[0], 0); m_pia[0]->readpa_handler().set_ioport("IN0"); m_pia[0]->readpb_handler().set_ioport("IN1"); @@ -1846,7 +1846,7 @@ void inferno_state::inferno(machine_config &config) williams2_base(config); m_maincpu->set_addrmap(AS_PROGRAM, &inferno_state::d000_map); - /* pia */ + // pia m_pia[0]->readpa_handler().set("mux", FUNC(ls157_x2_device::output_r)); m_pia[0]->ca2_handler().set("mux", FUNC(ls157_x2_device::select_w)); @@ -1863,7 +1863,7 @@ void mysticm_state::mysticm(machine_config &config) m_screen->set_raw(MASTER_CLOCK*2/3, 512, 8, 284, 256, 8, 248); m_screen->set_screen_update(FUNC(mysticm_state::screen_update)); - /* pia */ + // pia m_pia[0]->irqa_handler().set_inputline("maincpu", M6809_FIRQ_LINE); m_pia[0]->irqb_handler().set("mainirq", FUNC(input_merger_any_high_device::in_w<0>)); @@ -1876,10 +1876,10 @@ void tshoot_state::tshoot(machine_config &config) { williams2_base(config); - /* basic machine hardware */ + // basic machine hardware m_maincpu->set_addrmap(AS_PROGRAM, &tshoot_state::d000_map); - /* pia */ + // pia m_pia[0]->readpa_handler().set("mux", FUNC(ls157_x2_device::output_r)); m_pia[0]->writepb_handler().set(FUNC(tshoot_state::lamp_w)); m_pia[0]->ca2_handler().set("mux", FUNC(ls157_x2_device::select_w)); @@ -1901,12 +1901,12 @@ void joust2_state::joust2(machine_config &config) { williams2_base(config); - /* basic machine hardware */ + // basic machine hardware m_maincpu->set_addrmap(AS_PROGRAM, &joust2_state::d000_map); WILLIAMS_CVSD_SOUND(config, m_cvsd_sound).add_route(ALL_OUTPUTS, "speaker", 1.0); - /* pia */ + // pia m_pia[0]->readpa_handler().set_ioport("IN0").mask(0xf0); m_pia[0]->readpa_handler().append("mux", FUNC(ls157_device::output_r)).mask(0x0f); m_pia[0]->ca2_handler().set("mux", FUNC(ls157_device::select_w)); @@ -1994,7 +1994,7 @@ ROM_START( defenderb ) ROM_LOAD( "decoder.1", 0x0000, 0x0200, CRC(8dd98da5) SHA1(da979604f7a2aa8b5a6d4a5debd2e80f77569e35) ) ROM_END -/* the white set seems to be the source of the defcmnd & startrkd bootlegs */ +// the white set seems to be the source of the defcmnd & startrkd bootlegs ROM_START( defenderw ) ROM_REGION( 0x19000, "maincpu", 0 ) ROM_LOAD( "rom1.bin", 0x0d000, 0x1000, CRC(5af871e3) SHA1(f9a42619b37db2eb07d0302ac9d0ff5c1923c21d) ) @@ -2061,7 +2061,7 @@ ROM_START( tornado1 ) ROM_CONTINUE ( 0x000, 0x800 ) // cut rom instead? ROM_END -/* I suspect this one is a bad dump */ +// I suspect this one is a bad dump ROM_START( tornado2 ) ROM_REGION( 0x19000, "maincpu", 0 ) ROM_LOAD( "tto15.bin", 0x0d000, 0x1000, BAD_DUMP CRC(910ac603) SHA1(33705b5ce4242a5865a8b4ecf27aa9e656067ea3) ) // 1ST AND 2ND HALF IDENTICAL @@ -2396,6 +2396,29 @@ ROM_START( robotronyo ) ROM_LOAD( "decoder.6", 0x0200, 0x0200, CRC(83faf25e) SHA1(30002643d08ed983a6701a7c4b5ee74a2f4a1adb) ) ROM_END +ROM_START( robotronun ) + ROM_REGION( 0x19000, "maincpu", 0 ) + ROM_LOAD( "roboun11.10b", 0x0d000, 0x1000, CRC(13797024) SHA1(d426a50e75dabe936de643c83a548da5e399331c) ) + ROM_LOAD( "roboun11.11b", 0x0e000, 0x1000, CRC(7e3c1b87) SHA1(f8c6cbe3688f256f41a121255fc08f575f6a4b4f) ) + ROM_LOAD( "roboun11.12b", 0x0f000, 0x1000, CRC(645d543e) SHA1(fad7cea868ebf17347c4bc5193d647bbd8f9517b) ) + ROM_LOAD( "roboun11.1b", 0x10000, 0x1000, CRC(66c7d3ef) SHA1(f6d60e26c209c1df2cc01ac07ad5559daa1b7118) ) + ROM_LOAD( "roboun11.2b", 0x11000, 0x1000, CRC(5bc6c614) SHA1(4d6e82bc29f49100f7751ccfc6a9ff35695b84b3) ) + ROM_LOAD( "roboun11.3b", 0x12000, 0x1000, CRC(e99a82be) SHA1(06a8c8dd0b4726eb7f0bb0e89c8533931d75fc1c) ) + ROM_LOAD( "roboun11.4b", 0x13000, 0x1000, CRC(afb1c561) SHA1(aaf89c19fd8f4e8750717169eb1af476aef38a5e) ) + ROM_LOAD( "roboun11.5b", 0x14000, 0x1000, CRC(62691e77) SHA1(79b4680ce19bd28882ae823f0e7b293af17cbb91) ) + ROM_LOAD( "roboun11.6b", 0x15000, 0x1000, CRC(bd2c853d) SHA1(f76ec5432a7939b33a27be1c6855e2dbe6d9fdc8) ) + ROM_LOAD( "roboun11.7b", 0x16000, 0x1000, CRC(8981a43b) SHA1(8ecab99093d42cb66e177dfa7cf7e352667930ca) ) + ROM_LOAD( "roboun11.8b", 0x17000, 0x1000, CRC(3a96e88c) SHA1(7ae38a609ed9a6f62ca003cab719740ed7651b7c) ) + ROM_LOAD( "roboun11.9b", 0x18000, 0x1000, CRC(b124367b) SHA1(fd9d75b866f0ebbb723f84889337e6814496a103) ) + + ROM_REGION( 0x10000, "soundcpu", 0 ) + ROM_LOAD( "roboun11.snd", 0xf000, 0x1000, CRC(c56c1d28) SHA1(15afefef11bfc3ab78f61ab046701db78d160ec3) ) + + ROM_REGION( 0x0400, "proms", 0 ) + ROM_LOAD( "decoder.4", 0x0000, 0x0200, CRC(e6631c23) SHA1(9988723269367fb44ef83f627186a1c88cf7877e) ) + ROM_LOAD( "decoder.6", 0x0200, 0x0200, CRC(83faf25e) SHA1(30002643d08ed983a6701a7c4b5ee74a2f4a1adb) ) +ROM_END + ROM_START( robotron87 ) ROM_REGION( 0x19000, "maincpu", 0 ) ROM_LOAD( "robotron.sba", 0x0d000, 0x1000, CRC(13797024) SHA1(d426a50e75dabe936de643c83a548da5e399331c) ) @@ -2764,7 +2787,7 @@ ROM_START( blaster ) ROM_REGION( 0x10000, "soundcpu_b", 0 ) ROM_LOAD( "18.sb10", 0xf000, 0x1000, CRC(c33a3145) SHA1(6ffe2da7b70c0b576fbc1790a33eecdbb9ee3d02) ) - ROM_REGION( 0x0c00, "proms", 0 ) /* color & video-decoder PROM data */ + ROM_REGION( 0x0c00, "proms", 0 ) // color & video-decoder PROM data ROM_LOAD( "4.u42", 0x0800, 0x0200, CRC(e6631c23) SHA1(9988723269367fb44ef83f627186a1c88cf7877e) ) ROM_LOAD( "6.u23", 0x0a00, 0x0200, CRC(83faf25e) SHA1(30002643d08ed983a6701a7c4b5ee74a2f4a1adb) ) ROM_LOAD( "blaster.col", 0x0000, 0x0800, CRC(bac50bc4) SHA1(80a48eb97c6f02703210d00498f9669c36e64326) ) @@ -2797,7 +2820,7 @@ ROM_START( blastero ) ROM_REGION( 0x10000, "soundcpu_b", 0 ) ROM_LOAD( "18.sb10", 0xf000, 0x1000, CRC(c33a3145) SHA1(6ffe2da7b70c0b576fbc1790a33eecdbb9ee3d02) ) - ROM_REGION( 0x0c00, "proms", 0 ) /* color & video-decoder PROM data */ + ROM_REGION( 0x0c00, "proms", 0 ) // color & video-decoder PROM data ROM_LOAD( "4.u42", 0x0800, 0x0200, CRC(e6631c23) SHA1(9988723269367fb44ef83f627186a1c88cf7877e) ) ROM_LOAD( "6.u23", 0x0a00, 0x0200, CRC(83faf25e) SHA1(30002643d08ed983a6701a7c4b5ee74a2f4a1adb) ) ROM_LOAD( "blaster.col", 0x0000, 0x0800, CRC(bac50bc4) SHA1(80a48eb97c6f02703210d00498f9669c36e64326) ) @@ -2828,7 +2851,7 @@ ROM_START( blasterkit ) ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "blastkit.18", 0xf000, 0x1000, CRC(c33a3145) SHA1(6ffe2da7b70c0b576fbc1790a33eecdbb9ee3d02) ) - ROM_REGION( 0x0c00, "proms", 0 ) /* color & video-decoder PROM data */ + ROM_REGION( 0x0c00, "proms", 0 ) // color & video-decoder PROM data ROM_LOAD( "4.u42", 0x0800, 0x0200, CRC(e6631c23) SHA1(9988723269367fb44ef83f627186a1c88cf7877e) ) ROM_LOAD( "6.u23", 0x0a00, 0x0200, CRC(83faf25e) SHA1(30002643d08ed983a6701a7c4b5ee74a2f4a1adb) ) ROM_LOAD( "blaster.col", 0x0000, 0x0800, CRC(bac50bc4) SHA1(80a48eb97c6f02703210d00498f9669c36e64326) ) @@ -2945,7 +2968,7 @@ ROM_START( mysticm ) ROM_LOAD( "mm13_1.a21", 0x44000, 0x2000, CRC(ef4b79db) SHA1(346057cb8c4593df44fb36771553e60610fe1a0c) ) /* IC21 */ ROM_LOAD( "mm12_1.a19", 0x46000, 0x2000, CRC(a1f04bf0) SHA1(389bdb7c9e395af9275abfb20c3ab51bc12dc4db) ) /* IC19 */ - /* sound CPU */ + // sound CPU ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "mm01_1.a08", 0x0e000, 0x2000, CRC(65339512) SHA1(144625d2905c953383bcc90cd2435d332394883f) ) /* IC8 */ @@ -2954,7 +2977,7 @@ ROM_START( mysticm ) ROM_LOAD( "mm21_1.b58", 0x02000, 0x2000, CRC(cb90b3c5) SHA1(f28cca2c3ff23d6c9e2952a1b08ab2875655ec70) ) /* IC58 */ ROM_LOAD( "mm19_1.b41", 0x04000, 0x2000, CRC(e274df86) SHA1(9876a487c5efa350ced31acbc39df22c8d414677) ) /* IC41 */ - ROM_REGION( 0x200, "proms", 0 ) /* not hooked up */ + ROM_REGION( 0x200, "proms", 0 ) // not hooked up ROM_LOAD( "ic14.bpr", 0x00000, 0x020, CRC(27a6d555) SHA1(988d55092d7d0243a867986873dfd12be67280c7) ) ROM_LOAD( "ic47.bpr", 0x00000, 0x100, CRC(efb03024) SHA1(4c3e3de374f7959a03dcfcb8a29a372685f3b273) ) ROM_LOAD( "ic60.bpr", 0x00000, 0x200, CRC(0ea3f7fb) SHA1(a8a2a7fbc1a3527a8e2cda71d737afaa717902f1) ) @@ -2984,7 +3007,7 @@ ROM_START( mysticmp ) ROM_LOAD( "cpu_2764_ic21_rom13_proto6.i9", 0x44000, 0x2000, CRC(e387a785) SHA1(de98d503f4d2c947c701ff96628114b34da45f93) ) /* ic21 */ // different ROM_LOAD( "cpu_2764_ic19_rom12_proto6.g9", 0x46000, 0x2000, CRC(a1f04bf0) SHA1(389bdb7c9e395af9275abfb20c3ab51bc12dc4db) ) /* ic19 */ - /* sound cpu */ + // sound CPU ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "cpu_2764_ic8_rom1_proto4.f0", 0x0e000, 0x2000, CRC(65339512) SHA1(144625d2905c953383bcc90cd2435d332394883f) ) /* ic8 */ @@ -3019,7 +3042,7 @@ ROM_START( tshoot ) ROM_LOAD( "rom13.ic21", 0x44000, 0x2000, CRC(ec016c9b) SHA1(f2e40abd14b8b4944b792dd453ebe92eb64355ae) ) /* IC21 */ ROM_LOAD( "rom12.ic19", 0x46000, 0x2000, CRC(98ae7afa) SHA1(6a904408419f576352bd2f895727fd17c0541ff8) ) /* IC19 */ - /* sound CPU */ + // sound CPU ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "rom1.ic8", 0xe000, 0x2000, CRC(011a94a7) SHA1(9f54a742a87ba56b9517e33e556f57dce6eb2eab) ) /* IC8 */ @@ -3055,7 +3078,7 @@ ROM_START( inferno ) ROM_LOAD( "ic21.inf", 0x44000, 0x2000, CRC(c405f853) SHA1(6bd74d065a6043849e083c2822925b82c6fedb00) ) /* IC21 */ ROM_LOAD( "ic19.inf", 0x46000, 0x2000, CRC(ade7645a) SHA1(bfaab1840e3171df895a2333a30b9dac214b3351) ) /* IC19 */ - /* sound CPU */ + // sound CPU ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "ic8.inf", 0x0e000, 0x2000, CRC(4e3123b8) SHA1(f453feed3ae3b6430db49eb4325f62eecfee9f5e) ) /* IC8 */ @@ -3096,11 +3119,11 @@ ROM_START( joust2 ) ROM_LOAD( "cpu_2732_ic21_rom14_rev1.9i", 0x44000, 0x2000, CRC(0bbd867c) SHA1(f2db9fc57b6afb762715617345e8c3dcb89b6cc2) ) ROM_LOAD( "cpu_2732_ic19_rom12_rev1.9g", 0x46000, 0x2000, CRC(b9221ed1) SHA1(428ea8f3e2fa58d875f581f5de6e0d05ed855a45) ) - /* sound CPU */ + // sound CPU ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "cpu_2764_ic8_rom1_rev1.0f", 0x0E000, 0x2000, CRC(84517c3c) SHA1(de0b6473953783c091ddcc7aaa89fc1ec3b9d378) ) - /* sound board */ + // sound board ROM_REGION( 0x90000, "cvsd:cpu", 0 ) ROM_LOAD( "snd_27256_rom23_rev1.u4", 0x10000, 0x8000, CRC(3af6b47d) SHA1(aff19d65a4d9c249dec6a9e04a4066fada0f8fa1) ) ROM_RELOAD( 0x18000, 0x8000 ) @@ -3120,7 +3143,7 @@ ROM_START( joust2 ) ROM_LOAD( "vid_27128_ic58_rom21_rev1.9f", 0x04000, 0x4000, CRC(aa94bf05) SHA1(3412dd181e2c12dc2dd1caabfe7e737005b0ccd7) ) ROM_LOAD( "vid_27128_ic41_rom22_rev1.9d", 0x08000, 0x4000, CRC(c41e3daa) SHA1(fafe76bebd6eaf2cd124c1030e3a58eb5a6cddc6) ) - ROM_REGION( 0x200, "proms", 0 ) /* not hooked up */ + ROM_REGION( 0x200, "proms", 0 ) // not hooked up ROM_LOAD( "vid_82s123_ic14_a-5282-10295.2b", 0x00000, 0x020, CRC(85057e40) SHA1(c34cdd24d77031450493da50d4ad02813f9b30a8) ) ROM_LOAD( "vid_82s129_ic47_a-5282-10294.15d", 0x00000, 0x100, CRC(efb03024) SHA1(4c3e3de374f7959a03dcfcb8a29a372685f3b273) ) ROM_LOAD( "vid_82s147a_ic60_a-5282-10292.12f", 0x00000, 0x200, CRC(0ea3f7fb) SHA1(a8a2a7fbc1a3527a8e2cda71d737afaa717902f1) ) @@ -3152,11 +3175,11 @@ ROM_START( joust2r1 ) ROM_LOAD( "cpu_2732_ic21_rom14_rev1.9i", 0x44000, 0x2000, CRC(0bbd867c) SHA1(f2db9fc57b6afb762715617345e8c3dcb89b6cc2) ) ROM_LOAD( "cpu_2732_ic19_rom12_rev1.9g", 0x46000, 0x2000, CRC(b9221ed1) SHA1(428ea8f3e2fa58d875f581f5de6e0d05ed855a45) ) - /* sound CPU */ + // sound CPU ROM_REGION( 0x10000, "soundcpu", 0 ) ROM_LOAD( "cpu_2764_ic8_rom1_rev1.0f", 0x0E000, 0x2000, CRC(84517c3c) SHA1(de0b6473953783c091ddcc7aaa89fc1ec3b9d378) ) - /* sound board */ + // sound board ROM_REGION( 0x90000, "cvsd:cpu", 0 ) ROM_LOAD( "snd_27256_rom23_rev1.u4", 0x10000, 0x8000, CRC(3af6b47d) SHA1(aff19d65a4d9c249dec6a9e04a4066fada0f8fa1) ) ROM_RELOAD( 0x18000, 0x8000 ) @@ -3176,7 +3199,7 @@ ROM_START( joust2r1 ) ROM_LOAD( "vid_27128_ic58_rom21_rev1.9f", 0x04000, 0x4000, CRC(aa94bf05) SHA1(3412dd181e2c12dc2dd1caabfe7e737005b0ccd7) ) ROM_LOAD( "vid_27128_ic41_rom22_rev1.9d", 0x08000, 0x4000, CRC(c41e3daa) SHA1(fafe76bebd6eaf2cd124c1030e3a58eb5a6cddc6) ) - ROM_REGION( 0x200, "proms", 0 ) /* not hooked up */ + ROM_REGION( 0x200, "proms", 0 ) // not hooked up ROM_LOAD( "vid_82s123_ic14_a-5282-10295.2b", 0x00000, 0x020, CRC(85057e40) SHA1(c34cdd24d77031450493da50d4ad02813f9b30a8) ) ROM_LOAD( "vid_82s129_ic47_a-5282-10294.15d", 0x00000, 0x100, CRC(efb03024) SHA1(4c3e3de374f7959a03dcfcb8a29a372685f3b273) ) ROM_LOAD( "vid_82s147a_ic60_a-5282-10292.12f", 0x00000, 0x200, CRC(0ea3f7fb) SHA1(a8a2a7fbc1a3527a8e2cda71d737afaa717902f1) ) @@ -3203,7 +3226,7 @@ void defndjeu_state::driver_init() m_blitter_config = WILLIAMS_BLITTER_NONE; m_blitter_clip_address = 0x0000; - /* apply simple decryption by swapping bits 0 and 7 */ + // apply simple decryption by swapping bits 0 and 7 for (int i = 0xd000; i < 0x19000; i++) rom[i] = bitswap<8>(rom[i],0,6,5,4,3,2,1,7); } @@ -3352,27 +3375,27 @@ void joust2_state::driver_init() * *************************************/ -/* Defender hardware games */ -GAME( 1980, defender, 0, defender, defender, defender_state, empty_init, ROT0, "Williams", "Defender (Red label)", MACHINE_SUPPORTS_SAVE ) // developers left Williams in 1981 and formed Vid Kidz -GAME( 1980, defenderg, defender, defender, defender, defender_state, empty_init, ROT0, "Williams", "Defender (Green label)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, defenderb, defender, defender, defender, defender_state, empty_init, ROT0, "Williams", "Defender (Blue label)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, defenderw, defender, defender, defender, defender_state, empty_init, ROT0, "Williams", "Defender (White label)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, defenderj, defender, defender, defender, defender_state, empty_init, ROT0, "Williams (Taito Corporation license)", "T.T Defender", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, defndjeu, defender, defender, defender, defndjeu_state, empty_init, ROT0, "bootleg (Jeutel)", "Defender (bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) -GAME( 1980, tornado1, defender, defender, defender, defndjeu_state, empty_init, ROT0, "bootleg (Jeutel)", "Tornado (set 1, Defender bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, tornado2, defender, defender, defender, defndjeu_state, empty_init, ROT0, "bootleg (Jeutel)", "Tornado (set 2, Defender bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // bad dump? -GAME( 1980, zero, defender, defender, defender, defndjeu_state, empty_init, ROT0, "bootleg (Jeutel)", "Zero (set 1, Defender bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, zero2, defender, defender, defender, defndjeu_state, empty_init, ROT0, "bootleg (Amtec)", "Zero (set 2, Defender bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, defcmnd, defender, defender, defender, defender_state, empty_init, ROT0, "bootleg", "Defense Command (Defender bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, defence, defender, defender, defender, defender_state, empty_init, ROT0, "bootleg (Outer Limits)", "Defence Command (Defender bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, startrkd, defender, defender, defender, defender_state, empty_init, ROT0, "bootleg", "Star Trek (Defender bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1980, attackf, defender, defender, defender, defender_state, empty_init, ROT0, "bootleg (FAMARE S.A.)", "Attack (Defender bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1981, galwars2, defender, defender, defender, defender_state, empty_init, ROT0, "bootleg (Sonic)", "Galaxy Wars II (Defender bootleg)", MACHINE_SUPPORTS_SAVE ) // Sega Sonic - Sega S.A., only displays Sonic on title screen - -GAME( 1980, mayday, 0, defender, mayday, mayday_state, empty_init, ROT0, "Hoei", "Mayday (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION ) // \ original by Hoei, which one of these 3 sets is bootleg/licensed/original is unknown -GAME( 1980, maydaya, mayday, defender, mayday, mayday_state, empty_init, ROT0, "Hoei", "Mayday (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION ) // > these games have an unemulated protection chip of some sort which is hacked around in /machine/williams.cpp "protection_r" function -GAME( 1980, maydayb, mayday, defender, mayday, mayday_state, empty_init, ROT0, "Hoei", "Mayday (set 3)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION ) // / -GAME( 1980, batlzone, mayday, defender, mayday, mayday_state, empty_init, ROT0, "bootleg (Video Game)", "Battle Zone (bootleg of Mayday)", MACHINE_SUPPORTS_SAVE )// the bootleg may or may not use the same protection chip, or some hack around it. +// Defender hardware games +GAME( 1980, defender, 0, defender, defender, defender_state, empty_init, ROT0, "Williams", "Defender (Red label)", MACHINE_SUPPORTS_SAVE ) // developers left Williams in 1981 and formed Vid Kidz +GAME( 1980, defenderg, defender, defender, defender, defender_state, empty_init, ROT0, "Williams", "Defender (Green label)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, defenderb, defender, defender, defender, defender_state, empty_init, ROT0, "Williams", "Defender (Blue label)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, defenderw, defender, defender, defender, defender_state, empty_init, ROT0, "Williams", "Defender (White label)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, defenderj, defender, defender, defender, defender_state, empty_init, ROT0, "Williams (Taito Corporation license)", "T.T Defender", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, defndjeu, defender, defender, defender, defndjeu_state, empty_init, ROT0, "bootleg (Jeutel)", "Defender (bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1980, tornado1, defender, defender, defender, defndjeu_state, empty_init, ROT0, "bootleg (Jeutel)", "Tornado (set 1, Defender bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, tornado2, defender, defender, defender, defndjeu_state, empty_init, ROT0, "bootleg (Jeutel)", "Tornado (set 2, Defender bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // bad dump? +GAME( 1980, zero, defender, defender, defender, defndjeu_state, empty_init, ROT0, "bootleg (Jeutel)", "Zero (set 1, Defender bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, zero2, defender, defender, defender, defndjeu_state, empty_init, ROT0, "bootleg (Amtec)", "Zero (set 2, Defender bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, defcmnd, defender, defender, defender, defender_state, empty_init, ROT0, "bootleg", "Defense Command (Defender bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, defence, defender, defender, defender, defender_state, empty_init, ROT0, "bootleg (Outer Limits)", "Defence Command (Defender bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, startrkd, defender, defender, defender, defender_state, empty_init, ROT0, "bootleg", "Star Trek (Defender bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1980, attackf, defender, defender, defender, defender_state, empty_init, ROT0, "bootleg (Famaresa)", "Attack (Defender bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1981, galwars2, defender, defender, defender, defender_state, empty_init, ROT0, "bootleg (Sonic)", "Galaxy Wars II (Defender bootleg)", MACHINE_SUPPORTS_SAVE ) // Sega Sonic - Sega S.A., only displays Sonic on title screen + +GAME( 1980, mayday, 0, defender, mayday, mayday_state, empty_init, ROT0, "Hoei", "Mayday (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION ) // \ original by Hoei, which one of these 3 sets is bootleg/licensed/original is unknown +GAME( 1980, maydaya, mayday, defender, mayday, mayday_state, empty_init, ROT0, "Hoei", "Mayday (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION ) // > these games have an unemulated protection chip of some sort which is hacked around in /machine/williams.cpp "protection_r" function +GAME( 1980, maydayb, mayday, defender, mayday, mayday_state, empty_init, ROT0, "Hoei", "Mayday (set 3)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION ) // / +GAME( 1980, batlzone, mayday, defender, mayday, mayday_state, empty_init, ROT0, "bootleg (Video Game)", "Battle Zone (bootleg of Mayday)", MACHINE_SUPPORTS_SAVE ) // the bootleg may or may not use the same protection chip, or some hack around it. GAME( 1981, colony7, 0, defender, colony7, defender_state, empty_init, ROT270, "Taito", "Colony 7 (set 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1981, colony7a, colony7, defender, colony7, defender_state, empty_init, ROT270, "Taito", "Colony 7 (set 2)", MACHINE_SUPPORTS_SAVE ) @@ -3381,47 +3404,48 @@ GAME( 1982, jin, 0, jin, jin, defender_state, -/* Standard Williams hardware */ +// Standard Williams hardware GAME( 1981, stargate, 0, williams_base, stargate, williams_state, init_stargate, ROT0, "Williams / Vid Kidz", "Stargate", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, robotron, 0, williams_base, robotron, williams_state, init_robotron, ROT0, "Williams / Vid Kidz", "Robotron: 2084 (Solid Blue label)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, robotronyo, robotron, williams_base, robotron, williams_state, init_robotron, ROT0, "Williams / Vid Kidz", "Robotron: 2084 (Yellow/Orange label)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, robotron, 0, williams_base, robotron, williams_state, init_robotron, ROT0, "Williams / Vid Kidz", "Robotron: 2084 (Solid Blue label)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, robotronyo, robotron, williams_base, robotron, williams_state, init_robotron, ROT0, "Williams / Vid Kidz", "Robotron: 2084 (Yellow/Orange label)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, robotronun, robotron, williams_base, robotron, williams_state, init_robotron, ROT0, "Williams / Vid Kidz (Unidesa license)", "Robotron: 2084 (Unidesa license)", MACHINE_SUPPORTS_SAVE ) + // the 3 below are all noteworthy hacks of the Solid BLue set GAME( 1987, robotron87, robotron, williams_base, robotron, williams_state, init_robotron, ROT0, "hack", "Robotron: 2084 (1987 'shot-in-the-corner' bugfix)", MACHINE_SUPPORTS_SAVE ) // fixes a reset bug. -GAME( 2012, robotron12, robotron, williams_base, robotron, williams_state, init_robotron, ROT0, "hack", "Robotron: 2084 (2012 'wave 201 start' hack)", MACHINE_SUPPORTS_SAVE ) // includes sitc bug fix, used for competitive play. -GAME( 2015, robotrontd, robotron, williams_base, robotron, williams_state, init_robotron, ROT0, "hack", "Robotron: 2084 (2015 'tie-die V2' hack)", MACHINE_SUPPORTS_SAVE ) // inc. sitc fix, mods by some of the original developers, see backstory here http://www.robotron2084guidebook.com/gameplay/raceto100million/robo2k14_tie-die-romset/ (I guess there's a tie-die V1 before it was released to the public?) +GAME( 2012, robotron12, robotron, williams_base, robotron, williams_state, init_robotron, ROT0, "hack", "Robotron: 2084 (2012 'wave 201 start' hack)", MACHINE_SUPPORTS_SAVE ) // includes sitc bug fix, used for competitive play. +GAME( 2015, robotrontd, robotron, williams_base, robotron, williams_state, init_robotron, ROT0, "hack", "Robotron: 2084 (2015 'tie-die V2' hack)", MACHINE_SUPPORTS_SAVE ) // inc. sitc fix, mods by some of the original developers, see backstory here http://www.robotron2084guidebook.com/gameplay/raceto100million/robo2k14_tie-die-romset/ (I guess there's a tie-die V1 before it was released to the public?) GAME( 1982, joust, 0, williams_muxed, joust, williams_muxed_state, init_joust, ROT0, "Williams", "Joust (White/Green label)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, joustr, joust, williams_muxed, joust, williams_muxed_state, init_joust, ROT0, "Williams", "Joust (Solid Red label)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, joustwr, joust, williams_muxed, joust, williams_muxed_state, init_joust, ROT0, "Williams", "Joust (White/Red label)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, joustr, joust, williams_muxed, joust, williams_muxed_state, init_joust, ROT0, "Williams", "Joust (Solid Red label)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, joustwr, joust, williams_muxed, joust, williams_muxed_state, init_joust, ROT0, "Williams", "Joust (White/Red label)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, bubbles, 0, bubbles, bubbles, bubbles_state, empty_init, ROT0, "Williams", "Bubbles", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, bubblesr, bubbles, bubbles, bubbles, bubbles_state, empty_init, ROT0, "Williams", "Bubbles (Solid Red label)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, bubblesr, bubbles, bubbles, bubbles, bubbles_state, empty_init, ROT0, "Williams", "Bubbles (Solid Red label)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, bubblesp, bubbles, bubbles, bubbles, bubbles_state, empty_init, ROT0, "Williams", "Bubbles (prototype version)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, splat, 0, williams_muxed, splat, williams_muxed_state, init_splat, ROT0, "Williams", "Splat!", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, sinistar, 0, sinistar, sinistar, sinistar_state, empty_init, ROT270, "Williams", "Sinistar (revision 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, sinistar, 0, sinistar, sinistar, sinistar_state, empty_init, ROT270, "Williams", "Sinistar (revision 3)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, sinistar1, sinistar, sinistar, sinistar, sinistar_state, empty_init, ROT270, "Williams", "Sinistar (prototype version)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, sinistar2, sinistar, sinistar, sinistar, sinistar_state, empty_init, ROT270, "Williams", "Sinistar (revision 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1982, sinistar2, sinistar, sinistar, sinistar, sinistar_state, empty_init, ROT270, "Williams", "Sinistar (revision 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1983, playball, 0, playball, playball, playball_state, empty_init, ROT270, "Williams", "PlayBall! (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, blaster, 0, blaster, blaster, blaster_state, empty_init, ROT0, "Williams / Vid Kidz", "Blaster", MACHINE_SUPPORTS_SAVE ) -GAME( 1983, blastero, blaster, blaster, blaster, blaster_state, empty_init, ROT0, "Williams / Vid Kidz", "Blaster (location test)", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, blaster, 0, blaster, blaster, blaster_state, empty_init, ROT0, "Williams / Vid Kidz", "Blaster", MACHINE_SUPPORTS_SAVE ) +GAME( 1983, blastero, blaster, blaster, blaster, blaster_state, empty_init, ROT0, "Williams / Vid Kidz", "Blaster (location test)", MACHINE_SUPPORTS_SAVE ) GAME( 1983, blasterkit, blaster, blastkit, blastkit, blaster_state, empty_init, ROT0, "Williams / Vid Kidz", "Blaster (conversion kit)", MACHINE_SUPPORTS_SAVE ) // mono sound GAME( 1985, spdball, 0, spdball, spdball, spdball_state, empty_init, ROT0, "Williams", "Speed Ball - Contest at Neonworld (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, alienar, 0, williams_muxed, alienar, williams_muxed_state, init_alienar, ROT0, "Duncan Brown", "Alien Arena", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, alienar, 0, williams_muxed, alienar, williams_muxed_state, init_alienar, ROT0, "Duncan Brown", "Alien Arena", MACHINE_SUPPORTS_SAVE ) GAME( 1985, alienaru, alienar, williams_muxed, alienar, williams_muxed_state, init_alienaru, ROT0, "Duncan Brown", "Alien Arena (Stargate upgrade)", MACHINE_SUPPORTS_SAVE ) GAME( 1987, lottofun, 0, lottofun, lottofun, williams_state, init_lottofun, ROT0, "H.A.R. Management", "Lotto Fun", MACHINE_SUPPORTS_SAVE ) - -/* 2nd Generation Williams hardware with tilemaps */ -GAME( 1983, mysticm, 0, mysticm, mysticm, mysticm_state, empty_init, ROT0, "Williams", "Mystic Marathon", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE) +// 2nd Generation Williams hardware with tilemaps +GAME( 1983, mysticm, 0, mysticm, mysticm, mysticm_state, empty_init, ROT0, "Williams", "Mystic Marathon", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE) GAME( 1983, mysticmp, mysticm, mysticm, mysticm, mysticm_state, empty_init, ROT0, "Williams", "Mystic Marathon (prototype)", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) // newest roms are 'proto 6' ? GAME( 1984, tshoot, 0, tshoot, tshoot, tshoot_state, empty_init, ROT0, "Williams", "Turkey Shoot (prototype)", MACHINE_SUPPORTS_SAVE ) |