diff options
Diffstat (limited to 'src/mame/old/asteroid.cpp')
-rw-r--r-- | src/mame/old/asteroid.cpp | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/src/mame/old/asteroid.cpp b/src/mame/old/asteroid.cpp new file mode 100644 index 00000000000..f773a10f52b --- /dev/null +++ b/src/mame/old/asteroid.cpp @@ -0,0 +1,148 @@ +// license:BSD-3-Clause +// copyright-holders:Robbbert +#include "../mame/drivers/asteroid.cpp" + +static INPUT_PORTS_START( astdelu4 ) + PORT_INCLUDE(astdelux) + PORT_MODIFY("IN1") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) // Coin Left + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) // Coin Center + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 ) // Coin Right + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 ) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 ) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_CODE(KEYCODE_LALT) PORT_CODE(JOYCODE_BUTTON2) // thrust + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CODE(KEYCODE_RIGHT) PORT_CODE(JOYCODE_X_RIGHT_SWITCH) // right + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CODE(KEYCODE_LEFT) PORT_CODE(JOYCODE_X_LEFT_SWITCH) // left +INPUT_PORTS_END + + + +/************************************* + * + * ROM definitions + * + *************************************/ + +ROM_START( starslayer ) // This name does not appear anywhere, but it does say Star Destroyer at the end. + ROM_REGION( 0x8000, "maincpu", 0 ) + ROM_LOAD( "035145-02.ef2", 0x6800, 0x0800, CRC(0cc75459) SHA1(2af85c9689b878155004da47fedbde5853a18723) ) + ROM_LOAD( "035144-02.h2", 0x7000, 0x0800, CRC(096ed35c) SHA1(064d680ded7f30c543f93ae5ca85f90d550f73e5) ) + ROM_LOAD( "035143-02.j2", 0x7800, 0x0800, CRC(312caa02) SHA1(1ce2eac1ab90b972e3f1fc3d250908f26328d6cb) ) + /* Vector ROM */ + ROM_LOAD( "035127-02.ss", 0x5000, 0x0800, CRC(edf610a2) SHA1(bbbf62820a3b06488201137c735c0d8c03cf535c) ) + + /* DVG PROM */ + ROM_REGION( 0x100, "user1", 0 ) + ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) +ROM_END + +ROM_START( asteroid6 ) + ROM_REGION( 0x8000, "maincpu", 0 ) + ROM_LOAD( "asteroid6.ef2", 0x6800, 0x0800, CRC(6cdf25a3) SHA1(96e7882e5e144757d3adc51de8bfd5f583c0302e) ) + ROM_LOAD( "asteroid6.h2", 0x7000, 0x0800, CRC(b4dcfbde) SHA1(447e888c4af704c9f30801b2417617b7caa73921) ) + ROM_LOAD( "035143-02.j2", 0x7800, 0x0800, CRC(312caa02) SHA1(1ce2eac1ab90b972e3f1fc3d250908f26328d6cb) ) + /* Vector ROM */ + ROM_LOAD( "035127-02.np3", 0x5000, 0x0800, CRC(8b71fd9e) SHA1(8cd5005e531eafa361d6b7e9eed159d164776c70) ) + + ROM_REGION( 0x0100, "user1", 0 ) + ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) +ROM_END + +ROM_START( astdelux4 ) + ROM_REGION( 0x8000, "maincpu", 0 ) + ROM_LOAD( "036430.02", 0x6000, 0x0800, CRC(cbcfba4f) SHA1(7e0ed90588e47c89182a18a8f5815ad052a42674) ) + ROM_LOAD( "036431.02", 0x6800, 0x0800, CRC(3249e623) SHA1(7dd7f4531680e4fe2efb14e22466458c2e2ea4e7) ) + ROM_LOAD( "036432.02", 0x7000, 0x0800, CRC(6d720c41) SHA1(198218cd2f43f8b83e4463b1f3a8aa49da5015e4) ) + ROM_LOAD( "036433.03", 0x7800, 0x0800, CRC(0dcc0be6) SHA1(bf10ffb0c4870e777d6b509cbede35db8bb6b0b8) ) + /* Vector ROM */ + ROM_LOAD( "036800.02", 0x4800, 0x0800, CRC(5c0ca7a6) SHA1(4abbac4a4974c89a0b44e1a92ea0c8b9095d9594) ) + ROM_LOAD( "036799.01", 0x5000, 0x0800, CRC(7d511572) SHA1(1956a12bccb5d3a84ce0c1cc10c6ad7f64e30b40) ) + /* DVG PROM */ + ROM_REGION( 0x100, "user1", 0 ) + ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) +ROM_END + + +GAME( 1979, asteroid6, asteroid, asteroid, asteroid, asteroid_state, empty_init, ROT0, "Clay Cowgill", "Asteroids (Six-Bullet Hack)", MACHINE_SUPPORTS_SAVE ) +GAMEL(1980, astdelux4, asteroid, astdelux, astdelu4, asteroid_state, empty_init, ROT0, "Atari", "Asteroids Deluxe (Unknown Revision) [h]", MACHINE_SUPPORTS_SAVE, layout_astdelux ) +GAME( 1979, starslayer, asteroid, asteroid, asteroid, asteroid_state, empty_init, ROT0, "Nufekop", "Starslayer (hack of Asteroids (rev 2))", MACHINE_SUPPORTS_SAVE ) + + +/*********************************************************************************************************************/ + +#if 0 +/* Asteroids Multigame + +such a confusing pile of roms + +*/ + +class amg_state : public asteroid_state +{ +public: + amg_state(const machine_config &mconfig, device_type type, const char *tag) + : asteroid_state(mconfig, type, tag) +// , m_maincpu(*this, "maincpu") +// , m_p_ram(*this, "ram") + { } + + void init_amg(); +}; + +ROM_START( amg ) + ROM_REGION( 0x8000, "maincpu", 0 ) + ROM_LOAD( "035145-02.ef2", 0x6800, 0x0800, CRC(0cc75459) SHA1(2af85c9689b878155004da47fedbde5853a18723) ) + ROM_LOAD( "035144-02.h2", 0x7000, 0x0800, CRC(096ed35c) SHA1(064d680ded7f30c543f93ae5ca85f90d550f73e5) ) + ROM_LOAD( "035143-02.j2", 0x7800, 0x0800, CRC(312caa02) SHA1(1ce2eac1ab90b972e3f1fc3d250908f26328d6cb) ) + /* Vector ROM */ + ROM_LOAD( "035127.02", 0x5000, 0x0800, CRC(8b71fd9e) SHA1(8cd5005e531eafa361d6b7e9eed159d164776c70) ) + + /* DVG PROM */ + ROM_REGION( 0x100, "user1", 0 ) + ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) ) + + ROM_REGION( 0x20000, "user2", 0 ) + ROM_LOAD( "adla-11a.512", 0x0000, 0x10000, CRC(43ad0f95) SHA1(6105926b4d734ec12e23579faa4453b4d5a981f9) ) + ROM_LOAD( "adlv-11a.256", 0x10000, 0x8000, CRC(a03b957c) SHA1(45819fafdb34b9da0c3100e5ff143ba8e164c9d0) ) + + ROM_REGION( 0x20000, "user3", ROMREGION_ERASEFF ) +ROM_END + +void amg_state::init_amg() +{ + u8 *src = memregion("user2")->base(); + u8 *dest = memregion("user3")->base(); + + offs_t i,j; + + for (i = 0; i < 0x10000; i++) + src[i] = bitswap<8>(src[i], 3, 4, 5, 6, 7, 1, 2, 0); + + for (i = 0; i < 0x10000; i++) + { + j = bitswap<16>(i, 15, 5, 4, 7, 0, 10, 1, 11, 6, 2, 12, 3, 9, 8, 13, 14); + + if (!BIT(i, 10)) + j ^= 0x100; + + dest[j] = src[i]; + } + +// for (i = 0x10000; i < 0x18000; i++) +// src[i] = bitswap<8>(src[i], 3, 4, 5, 6, 7, 1, 2, 0); + +// for (i = 0x10000; i < 0x18000; i++) +// { +// j = bitswap<16>(i, 15, 6, 5, 12, 11, 10, 9, 8, 7, 14, 13, 4, 3, 2, 1, 0); +// dest[j|0x10000] = src[i]; +// } + +// src = memregion("maincpu")->base()+0x6000; +// for (i = 0; i < 0x2000; i++) +// src[i] = dest[i]; +} + + +GAME( 2002, amg, asteroid, asteroid, asteroid, amg_state, init_amg, ROT0, "Braze", "Asteroids Multigame", MACHINE_NOT_WORKING ) +#endif + |