summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/astrocorp/astrcorp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/astrocorp/astrcorp.cpp')
-rw-r--r--src/mame/astrocorp/astrcorp.cpp375
1 files changed, 155 insertions, 220 deletions
diff --git a/src/mame/astrocorp/astrcorp.cpp b/src/mame/astrocorp/astrcorp.cpp
index 059a5e102e0..6aef5992b17 100644
--- a/src/mame/astrocorp/astrcorp.cpp
+++ b/src/mame/astrocorp/astrcorp.cpp
@@ -71,7 +71,6 @@ TODO:
- MCU on showhand/showhanc PCB, what does it do? Games run fine and there appears to be no interaction...
- Protection in magibomb sets with simpler encryption (writes to $a0101x, $a11100, etc.). Some sets appear to work fine regardless, others freeze.
-- Fix mirror ROM checksum / ROM overlay without code patches (in games with heavier encryption).
- Find source of level 2 interrupt (sprite DMA end?).
- magibomba, westvent: need a redump of one of the program ROMs.
- hacher, keno21: need a redump of the sprite ROMs.
@@ -864,7 +863,8 @@ void zoo_state::eeprom_w(u8 data)
void zoo_state::dinodino_map(address_map &map)
{
- map(0x000000, 0x03ffff).rom().mirror(0x800000); // POST checks for ROM checksum at mirror
+ map(0x000000, 0x03ffff).rom().region("maincpu", 0);
+ map(0x800000, 0x83ffff).rom().region("encrypted_rom", 0); // POST checks for encrypted ROM checksum here
map(0x900000, 0x903fff).ram().share("nvram"); // battery
map(0xb00000, 0xb00fff).ram().share("spriteram");
map(0xb02000, 0xb02001).nopr().w(FUNC(zoo_state::draw_sprites_w));
@@ -881,7 +881,8 @@ void zoo_state::dinodino_map(address_map &map)
void zoo_state::keno21_map(address_map &map)
{
- map(0x000000, 0x03ffff).rom().mirror(0x800000); // POST checks for ROM checksum at mirror
+ map(0x000000, 0x03ffff).rom().region("maincpu", 0);
+ map(0x800000, 0x83ffff).rom().region("encrypted_rom", 0); // POST checks for encrypted ROM checksum here
map(0x400000, 0x403fff).ram().share("nvram"); // battery
map(0xa00000, 0xa00fff).ram().share("spriteram");
map(0xa02000, 0xa02001).nopr().w(FUNC(zoo_state::draw_sprites_w));
@@ -898,7 +899,8 @@ void zoo_state::keno21_map(address_map &map)
void zoo_state::magibombd_map(address_map &map)
{
- map(0x000000, 0x03ffff).rom().mirror(0x800000); // POST checks for ROM checksum at mirror
+ map(0x000000, 0x03ffff).rom().region("maincpu", 0);
+ map(0x800000, 0x83ffff).rom().region("encrypted_rom", 0); // POST checks for encrypted ROM checksum here
map(0xa80000, 0xa80fff).ram().share("spriteram");
map(0xa82000, 0xa82001).nopr().w(FUNC(zoo_state::draw_sprites_w));
map(0xa84000, 0xa84001).portr("INPUTS");
@@ -915,7 +917,8 @@ void zoo_state::magibombd_map(address_map &map)
void zoo_state::magibombg_map(address_map &map)
{
- map(0x000000, 0x03ffff).rom().mirror(0x800000); // POST checks for ROM checksum at mirror
+ map(0x000000, 0x03ffff).rom().region("maincpu", 0);
+ map(0x800000, 0x83ffff).rom().region("encrypted_rom", 0); // POST checks for encrypted ROM checksum here
map(0xa00000, 0xa00fff).ram().share("spriteram");
map(0xa02000, 0xa02001).nopr().w(FUNC(zoo_state::draw_sprites_w));
map(0xa04000, 0xa04001).portr("INPUTS");
@@ -932,7 +935,8 @@ void zoo_state::magibombg_map(address_map &map)
void zoo_state::magibombm_map(address_map &map)
{
- map(0x000000, 0x03ffff).rom().mirror(0x800000); // POST checks for ROM checksum at mirror
+ map(0x000000, 0x03ffff).rom().region("maincpu", 0);
+ map(0x800000, 0x83ffff).rom().region("encrypted_rom", 0); // POST checks for encrypted ROM checksum here
map(0x840000, 0x843fff).ram().share("nvram"); // battery
map(0x880000, 0x880fff).ram().share("spriteram");
map(0x882000, 0x882001).nopr().w(FUNC(zoo_state::draw_sprites_w));
@@ -949,7 +953,8 @@ void zoo_state::magibombm_map(address_map &map)
void zoo_state::magibombo_map(address_map &map)
{
- map(0x000000, 0x03ffff).rom().mirror(0x800000); // POST checks for ROM checksum at mirror
+ map(0x000000, 0x03ffff).rom().region("maincpu", 0);
+ map(0x800000, 0x83ffff).rom().region("encrypted_rom", 0); // POST checks for encrypted ROM checksum here
map(0x900000, 0x903fff).ram().share("nvram"); // battery
map(0xc00000, 0xc00fff).ram().share("spriteram");
map(0xc02000, 0xc02001).nopr().w(FUNC(zoo_state::draw_sprites_w));
@@ -966,7 +971,8 @@ void zoo_state::magibombo_map(address_map &map)
void zoo_state::winbingo_map(address_map &map)
{
- map(0x000000, 0x03ffff).rom().mirror(0x800000); // POST checks for ROM checksum at mirror
+ map(0x000000, 0x03ffff).rom().region("maincpu", 0);
+ map(0x800000, 0x83ffff).rom().region("encrypted_rom", 0); // POST checks for encrypted ROM checksum here
map(0x900001, 0x900001).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
map(0x980001, 0x980001).w(FUNC(zoo_state::oki_bank_w));
map(0xa00000, 0xa03fff).ram().share("nvram"); // battery
@@ -983,7 +989,8 @@ void zoo_state::winbingo_map(address_map &map)
void zoo_state::hacher_map(address_map &map)
{
- map(0x000000, 0x03ffff).rom().mirror(0x800000); // POST checks for ROM checksum at mirror
+ map(0x000000, 0x03ffff).rom().region("maincpu", 0);
+ map(0x800000, 0x83ffff).rom().region("encrypted_rom", 0); // POST checks for encrypted ROM checksum here
map(0xb80000, 0xb80fff).ram().share("spriteram");
map(0xb82000, 0xb82001).nopr().w(FUNC(zoo_state::draw_sprites_w));
map(0xb84000, 0xb84001).portr("INPUTS");
@@ -1000,7 +1007,8 @@ void zoo_state::hacher_map(address_map &map)
void zoo_state::zoo_map(address_map &map)
{
- map(0x000000, 0x03ffff).rom().mirror(0x800000); // POST checks for ROM checksum at mirror
+ map(0x000000, 0x03ffff).rom().region("maincpu", 0);
+ map(0x800000, 0x83ffff).rom().region("encrypted_rom", 0); // POST checks for encrypted ROM checksum here
map(0xa80000, 0xa83fff).ram().share("nvram"); // battery
map(0xb80000, 0xb80fff).ram().share("spriteram");
map(0xb82000, 0xb82001).nopr().w(FUNC(zoo_state::draw_sprites_w));
@@ -1017,7 +1025,8 @@ void zoo_state::zoo_map(address_map &map)
void zoo_state::zulu_map(address_map &map)
{
- map(0x000000, 0x03ffff).rom().mirror(0x800000); // POST checks for ROM checksum at mirror
+ map(0x000000, 0x03ffff).rom().region("maincpu", 0);
+ map(0x800000, 0x83ffff).rom().region("encrypted_rom", 0); // POST checks for encrypted ROM checksum here
map(0xb00000, 0xb03fff).ram().share("nvram"); // battery
map(0xb80000, 0xb801ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
map(0xc00000, 0xc00fff).ram().share("spriteram");
@@ -1034,7 +1043,8 @@ void zoo_state::zulu_map(address_map &map)
void zoo_state::gostopac_map(address_map &map)
{
- map(0x000000, 0x03ffff).rom().mirror(0x800000); // POST checks for ROM checksum at mirror
+ map(0x000000, 0x03ffff).rom().region("maincpu", 0);
+ map(0x800000, 0x83ffff).rom().region("encrypted_rom", 0); // POST checks for encrypted ROM checksum here
map(0xb00000, 0xb00000).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
map(0xb80000, 0xb80001).portr("CPUCODE_IN");
map(0xc00000, 0xc00fff).ram().share("spriteram");
@@ -1050,7 +1060,8 @@ void zoo_state::gostopac_map(address_map &map)
void zoo_state::monkeyl_map(address_map &map)
{
- map(0x000000, 0x03ffff).rom().mirror(0x800000); // POST checks for ROM checksum at mirror
+ map(0x000000, 0x03ffff).rom().region("maincpu", 0);
+ map(0x800000, 0x83ffff).rom().region("encrypted_rom", 0); // POST checks for encrypted ROM checksum here
map(0xa00000, 0xa00fff).ram().share("spriteram");
map(0xa02000, 0xa02001).nopr().w(FUNC(zoo_state::draw_sprites_w));
map(0xa04000, 0xa04001).portr("INPUTS");
@@ -1066,7 +1077,8 @@ void zoo_state::monkeyl_map(address_map &map)
void zoo_state::monkeyle_map(address_map &map)
{
- map(0x000000, 0x03ffff).rom().mirror(0x800000); // POST checks for ROM checksum at mirror
+ map(0x000000, 0x03ffff).rom().region("maincpu", 0);
+ map(0x800000, 0x83ffff).rom().region("encrypted_rom", 0); // POST checks for encrypted ROM checksum here
map(0xa00000, 0xa03fff).ram().share("nvram"); // battery
map(0xa80000, 0xa80fff).ram().share("spriteram");
map(0xa82000, 0xa82001).nopr().w(FUNC(zoo_state::draw_sprites_w));
@@ -1082,7 +1094,8 @@ void zoo_state::monkeyle_map(address_map &map)
void zoo_state::speedmst_map(address_map &map)
{
- map(0x000000, 0x03ffff).rom().mirror(0x800000); // POST checks for ROM checksum at mirror
+ map(0x000000, 0x03ffff).rom().region("maincpu", 0);
+ map(0x800000, 0x83ffff).rom().region("encrypted_rom", 0); // POST checks for encrypted ROM checksum here
map(0x850000, 0x850001).nopr().w(FUNC(zoo_state::screen_enable_w)).umask16(0x00ff);
map(0x860000, 0x863fff).ram().share("nvram"); // battery
map(0x880000, 0x880fff).ram().share("spriteram");
@@ -1099,7 +1112,8 @@ void zoo_state::speedmst_map(address_map &map)
void zoo_state::wwitch_map(address_map &map)
{
- map(0x000000, 0x03ffff).rom().mirror(0x800000); // POST checks for ROM checksum at mirror
+ map(0x000000, 0x03ffff).rom().region("maincpu", 0);
+ map(0x800000, 0x83ffff).rom().region("encrypted_rom", 0); // POST checks for encrypted ROM checksum here
map(0xa00001, 0xa00001).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
map(0xa80000, 0xa80fff).ram().share("spriteram");
map(0xa82000, 0xa82001).nopr().w(FUNC(zoo_state::draw_sprites_w));
@@ -1116,7 +1130,8 @@ void zoo_state::wwitch_map(address_map &map)
void zoo_state::lwitch_map(address_map &map)
{
- map(0x000000, 0x03ffff).rom().mirror(0x800000); // POST checks for ROM checksum at mirror
+ map(0x000000, 0x03ffff).rom().region("maincpu", 0);
+ map(0x800000, 0x83ffff).rom().region("encrypted_rom", 0); // POST checks for encrypted ROM checksum here
map(0xa00001, 0xa00001).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
map(0xa80000, 0xa80fff).ram().share("spriteram");
map(0xa82000, 0xa82001).nopr().w(FUNC(zoo_state::draw_sprites_w));
@@ -1133,7 +1148,8 @@ void zoo_state::lwitch_map(address_map &map)
void zoo_state::hapfarm_map(address_map &map)
{
- map(0x000000, 0x03ffff).rom().mirror(0x800000); // POST checks for ROM checksum at mirror
+ map(0x000000, 0x03ffff).rom().region("maincpu", 0);
+ map(0x800000, 0x83ffff).rom().region("encrypted_rom", 0); // POST checks for encrypted ROM checksum here
map(0x480000, 0x483fff).ram().share("nvram"); // battery
map(0xb00000, 0xb00001).portr("CPUCODE_IN");
map(0xb80000, 0xb80fff).ram().share("spriteram");
@@ -1150,7 +1166,8 @@ void zoo_state::hapfarm_map(address_map &map)
void zoo_state::hapfarma_map(address_map &map)
{
- map(0x000000, 0x03ffff).rom().mirror(0x800000); // POST checks for ROM checksum at mirror
+ map(0x000000, 0x03ffff).rom().region("maincpu", 0);
+ map(0x800000, 0x83ffff).rom().region("encrypted_rom", 0); // POST checks for encrypted ROM checksum here
map(0x300000, 0x303fff).ram().share("nvram"); // battery
map(0xa80000, 0xa80001).portr("CPUCODE_IN");
map(0xb80000, 0xb80fff).ram().share("spriteram");
@@ -1167,7 +1184,8 @@ void zoo_state::hapfarma_map(address_map &map)
void zoo_state::westvent_map(address_map &map)
{
- map(0x000000, 0x03ffff).rom().mirror(0x800000); // POST checks for ROM checksum at mirror
+ map(0x000000, 0x03ffff).rom().region("maincpu", 0);
+ map(0x800000, 0x83ffff).rom().region("encrypted_rom", 0); // POST checks for encrypted ROM checksum here
map(0xa00000, 0xa00000).w(FUNC(zoo_state::oki_bank_w));
map(0xa80000, 0xa83fff).ram().share("nvram"); // battery
map(0xb00001, 0xb00001).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
@@ -1184,7 +1202,8 @@ void zoo_state::westvent_map(address_map &map)
void astoneag_state::astoneag_map(address_map &map)
{
- map(0x000000, 0x03ffff).rom().mirror(0x800000); // POST checks for ROM checksum at mirror
+ map(0x000000, 0x03ffff).rom().region("maincpu", 0);
+ map(0x800000, 0x83ffff).rom().region("encrypted_rom", 0); // POST checks for encrypted ROM checksum here
map(0xb00000, 0xb03fff).ram().share("nvram"); // battery
map(0xb80000, 0xb80001).portr("CPUCODE_IN");
map(0xc00000, 0xc00fff).ram().share("spriteram");
@@ -1864,7 +1883,9 @@ RAM1 are SEC KM681000BLG-7L RAM chips
***************************************************************************/
ROM_START( skilldrp )
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_WORD_SWAP( "7-skill_drop_g1.01s.u100", 0x00000, 0x40000, CRC(8867df18) SHA1(19ad0104647b6f5c8b6c06749c24defdcacfd54d) )
ROM_REGION( 0x200000, "sprites", 0 )
@@ -1878,7 +1899,9 @@ ROM_START( skilldrp )
ROM_END
ROM_START( skilldrpa )
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_WORD_SWAP( "7-skill_drop_g1.0s.u100", 0x00000, 0x40000, CRC(f968b783) SHA1(1d693b1d460e659ca94aae8625ea26e120053f84) )
ROM_REGION( 0x200000, "sprites", 0 )
@@ -1892,7 +1915,9 @@ ROM_START( skilldrpa )
ROM_END
ROM_START( luckycoin )
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_WORD_SWAP( "u100", 0x00000, 0x40000, CRC(77bbeebc) SHA1(45f5a18694e2a93d9c299dc1f405df32c9773ce6) ) // label was peeled off
ROM_REGION( 0x200000, "sprites", 0 )
@@ -2048,7 +2073,9 @@ ROM_START( magibombc )
ROM_END
ROM_START( magibombd )
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_BYTE( "rom1", 0x00000, 0x10000, CRC(91883755) SHA1(bc6dd5cac352f169beac790825e86a2ecb45af05) )
ROM_LOAD16_BYTE( "rom2", 0x00001, 0x10000, CRC(b55bc270) SHA1(7486018b87708cf5b653c27b1ed824e441c169b7) )
ROM_FILL( 0x20000, 0x20000, 0xff )
@@ -2097,7 +2124,9 @@ ROM_START( magibombf )
ROM_END
ROM_START( magibombg )
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_BYTE( "1 magic bomb nb.6.1.u20", 0x00000, 0x10000, CRC(8aaa14c3) SHA1(44ade91596b8cd907c7556f3c5f977e2c7b4029d) )
ROM_LOAD16_BYTE( "2 magic bomb nb.6.1.u19", 0x00001, 0x10000, CRC(d371c3ab) SHA1(3f63883ad2735a772e9dbc958346b692420667dc) )
ROM_FILL( 0x20000, 0x20000, 0xff )
@@ -2146,7 +2175,9 @@ ROM_START( magibombi )
ROM_END
ROM_START( magibombj )
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_BYTE( "1_mb_aa72c.u26", 0x00000, 0x10000, CRC(7faa57c3) SHA1(6176848354f90b819d4ffe2d91cdd9cca36ff58f) )
ROM_LOAD16_BYTE( "2_mb_aa72c.u25", 0x00001, 0x10000, CRC(987c3e4e) SHA1(d2ffac771dc1d30f0598c79cad0691753e4945f7) )
ROM_FILL( 0x20000, 0x20000, 0xff )
@@ -2195,7 +2226,9 @@ ROM_START( magibombl ) // MIN BET 1-XXX, MINIMUM % = 91/50%, OSAMA BIN LADEN GFX
ROM_END
ROM_START( magibombm )
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_BYTE( "2_m._b._ab5.3.u22", 0x00000, 0x10000, CRC(e568681a) SHA1(ec55de2ebfb2b10e1873cc11ec4f47e17dd2fffa) )
ROM_LOAD16_BYTE( "1_m._b._ab5.3.u23", 0x00001, 0x10000, CRC(dfb63c3d) SHA1(0f0bd5cccf5ab08003bfb751355304386682bbd0) )
ROM_FILL( 0x20000, 0x20000, 0xff )
@@ -2229,7 +2262,9 @@ ROM_START( magibombn ) // MIN BET 1-8-16-32 MINIMUM % = 91/50%
ROM_END
ROM_START( magibombo )
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_BYTE( "1_m.b.br.71.a.u26", 0x00000, 0x20000, CRC(6e815fa3) SHA1(f88b07c0d0bdb9667d7de5383623ac20ce48a7e9) ) // A290011T
ROM_LOAD16_BYTE( "2_m.b.br.71.a.u25", 0x00001, 0x20000, CRC(b3c24e55) SHA1(34e2e2e2862c761e6b869aaac003a73615ab730b) ) // A290011T
@@ -2247,7 +2282,9 @@ ROM_START( magibombo )
ROM_END
ROM_START( magibombp )
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_BYTE( "1_m.b._ab6.0j.u19", 0x00000, 0x10000, CRC(01bdb114) SHA1(a69b8a4f9332410f86c7d65664976a15ae8f315c) )
ROM_LOAD16_BYTE( "2_m.b._ab6.0j.u20", 0x00001, 0x10000, CRC(b5fd35aa) SHA1(7b1f157788824f1fc0924ad5e60f014b5bcc71f4) )
ROM_FILL( 0x20000, 0x20000, 0xff )
@@ -2290,7 +2327,9 @@ MX29F1610MC-10
***************************************************************************/
ROM_START( westvent )
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_BYTE( "1_w.v.aa.02.d.bin", 0x00000, 0x20000, CRC(5e208192) SHA1(5a35a419fe95513b68423d4eb6c77fdd375667f3) ) // good?
ROM_LOAD16_BYTE( "2_w.v.aa.02.d.bin", 0x00001, 0x20000, BAD_DUMP CRC(f56d3ead) SHA1(2cf8960eab221cfce1c7ac6a20d002c4b05d8cc6) ) // FIXED BITS (xxxxxx0xxxxxxxxx)
@@ -2310,7 +2349,9 @@ ROM_START( westvent )
ROM_END
ROM_START( westventa )
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_BYTE( "2_w.v.aa.02.e.u26", 0x00000, 0x20000, CRC(48892445) SHA1(b3697d309d6f4a3df19c8e9c5708b07fb36e03b0) )
ROM_LOAD16_BYTE( "1_w.v.aa.02.e.u25", 0x00001, 0x20000, CRC(81234856) SHA1(86e3f2578e77d88be36fb9e1cc2ad8f9e9e883ab) )
@@ -2393,7 +2434,9 @@ J1 is an 2 pin connector, unknown purpose
***************************************************************************/
ROM_START( winbingo )
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_BYTE( "f29c51001t.u31", 0x00000, 0x20000, CRC(964cfdb5) SHA1(01109466e07f5e906be300bc69310171d34f2e6c) )
ROM_LOAD16_BYTE( "f29c51001t.u25", 0x00001, 0x20000, CRC(4ebeec72) SHA1(c603265e6319cff94a0c75017a12c6d86787f906) )
@@ -2418,7 +2461,9 @@ ROM_START( winbingo )
ROM_END
ROM_START( winbingoa )
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_BYTE( "f29c51001t.u31", 0x00000, 0x20000, CRC(c33676c3) SHA1(9f5b7d05d187cf59948a572f80c55cb8fa1f656f) ) // sldh
ROM_LOAD16_BYTE( "f29c51001t.u25", 0x00001, 0x20000, CRC(43c7b2d8) SHA1(16ee79c34b7c485dfccecdf3e0ae9f18f8a20150) ) // sldh
@@ -2451,7 +2496,9 @@ ASTRO M1.2 PCB with Astro F02 2005-02-18
***************************************************************************/
ROM_START( hacher )
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_BYTE( "w-w-en-01-6.rom1", 0x00000, 0x20000, CRC(994acd32) SHA1(ee137ca96f4e2d22f2bae32051bbf2bd487e8c5a) )
ROM_LOAD16_BYTE( "w-w-en-01-6.rom2", 0x00001, 0x20000, CRC(b45c3f64) SHA1(c8f26fc3f9e2c46d8083d249f79ff8a3d47b67d0) )
@@ -2541,7 +2588,9 @@ J1 is an 2 pin connector, unknown purpose
***************************************************************************/
ROM_START( zoo )
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_BYTE( "zoo_zo.02.d.u26", 0x00000, 0x10000, CRC(1a3be45a) SHA1(877be4c9e8d5e7c4644e7bcb9a6729443ed772a4) )
ROM_LOAD16_BYTE( "zoo_zo.02.d.u25", 0x00001, 0x10000, CRC(8566aa21) SHA1(319192e2074f3bdda6001d8e9a4b97e98826d7ce) )
ROM_FILL( 0x20000, 0x20000, 0xff )
@@ -2560,7 +2609,9 @@ ROM_START( zoo )
ROM_END
ROM_START( zulu )
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_BYTE( "1_zulu_2.04.j.rom1.u20", 0x00000, 0x10000, CRC(f5004736) SHA1(c975556933303b47ae7cbda3641c7f367ab73871) ) // W27C512
ROM_LOAD16_BYTE( "2_zulu_2.04.j.rom1.u19", 0x00001, 0x10000, CRC(2eff3ab5) SHA1(21c2af44861ba5486cc53e39c6d04e5fe3d425b6) ) // W27C512
ROM_FILL( 0x20000, 0x20000, 0xff )
@@ -2629,7 +2680,9 @@ Video output only on VGA connector, video signals ARE VGA
***************************************************************************/
ROM_START( astoneag )
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_BYTE( "1-s-a-eng-03-a.rom1", 0x00000, 0x20000, CRC(5e600713) SHA1(48ac0a52f90b972b77064e9e59711082aa95c654) )
ROM_LOAD16_BYTE( "2-s-a-eng-03-a.rom2", 0x00001, 0x20000, CRC(488e355e) SHA1(6550292cae7eda95a24e1982e869540464b1fcdd) )
@@ -2681,7 +2734,9 @@ ASTRO T-3802A PCB with ASTRO F02 2003-03-12
***************************************************************************/
ROM_START( dinodino )
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_BYTE( "dd_rom1.u20", 0x00000, 0x20000, CRC(056613dd) SHA1(e8481177b1dacda222fe4fae2b50841ddb0c87ba) )
ROM_LOAD16_BYTE( "dd_rom2.u19", 0x00001, 0x20000, CRC(575519c5) SHA1(249fe33b6ea0bc154125a988315f571a30b9375c) )
@@ -2705,8 +2760,17 @@ ROM_START( dinodino )
ROM_LOAD( "dinodino_cpucode.key", 0x00, 0x02, CRC(674b2687) SHA1(9c1338a41162fa2ffbd2ea0a579ad87a6c084a0e) )
ROM_END
+/***************************************************************************
+
+Keno 21
+Astro Corp.
+
+***************************************************************************/
+
ROM_START( keno21 )
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_BYTE( "1_keno21_am-230.u20", 0x00000, 0x10000, CRC(362e81b9) SHA1(5f311fde80d8a18324413f0fdfb294f03eac78f4) ) // 27C512
ROM_LOAD16_BYTE( "2_keno21_am-230.u19", 0x00001, 0x10000, CRC(9201e3eb) SHA1(665991dfe55da93331e36f048bd4dac46445a9f3) ) // 27C512
ROM_FILL( 0x20000, 0x20000, 0xff )
@@ -2739,7 +2803,9 @@ Astro Corp.
***************************************************************************/
ROM_START( gostopac )
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_BYTE( "go stop en1.0 1.u20", 0x00000, 0x10000, CRC(288eb9e2) SHA1(cb1181a3ff260374d786fa3b967e3200cdc545c5) )
ROM_LOAD16_BYTE( "go stop en1.0 2.u19", 0x00001, 0x10000, CRC(6cee46c2) SHA1(f63914264fbe9c3124f7e6e1fbd6fb1a72314de9) )
ROM_FILL( 0x20000, 0x20000, 0xff )
@@ -2772,7 +2838,9 @@ Astro Corp.
***************************************************************************/
ROM_START( monkeyl )
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_BYTE( "1_m.l._aa.21.a.u26", 0x00000, 0x20000, CRC(2286237f) SHA1(cbf6589fe3eedd9482f8ba01c4510a5699085e69) ) // F29C51001T
ROM_LOAD16_BYTE( "1_m.l._aa.21.a.u25", 0x00001, 0x20000, CRC(0612f893) SHA1(6300d9defc75b1b09fad31f719c841c728fe3ff6) ) // F29C51001T
@@ -2797,7 +2865,9 @@ ROM_START( monkeyl )
ROM_END
ROM_START( monkeyla ) // MIN BET 1-XXX, % = LEVELS 1-8
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_BYTE( "1_m.l._aa.13.b.u26", 0x00000, 0x20000, CRC(0ff56936) SHA1(70f9cf3b6b71514b2401b7a516ae85ad86b5321f) ) // F29C51001T
ROM_LOAD16_BYTE( "1_m.l._aa.13.b.u25", 0x00001, 0x20000, CRC(d261b6ed) SHA1(347feb51b67cd0e0faeff98fa023b3f4a8cb9c32) ) // F29C51001T
@@ -2822,7 +2892,9 @@ ROM_START( monkeyla ) // MIN BET 1-XXX, % = LEVELS 1-8
ROM_END
ROM_START( monkeylb )
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_BYTE( "f29c51001t.u26", 0x00000, 0x20000, CRC(bae5b055) SHA1(742f6aa7b66abdcfe140fb777aecb5388e9f8bdf) )
ROM_LOAD16_BYTE( "f29c51001t.u25", 0x00001, 0x20000, CRC(06362b30) SHA1(a73bc2bc217ecae6ed48ec30481f88767058837b) )
@@ -2847,7 +2919,9 @@ ROM_START( monkeylb )
ROM_END
ROM_START( monkeylc )
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_BYTE( "1_m.l._aa.21.c.u26", 0x00000, 0x20000, CRC(482303fd) SHA1(494df379dd4436546e2ce03194ac2f214a91bd92) ) // F29C51001T
ROM_LOAD16_BYTE( "1_m.l._aa.21.c.u25", 0x00001, 0x20000, CRC(ccb3392e) SHA1(2ea301ae857f4360012f3adfc96b66319503a033) ) // F29C51001T
@@ -2872,7 +2946,9 @@ ROM_START( monkeylc )
ROM_END
ROM_START( monkeyld )
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_BYTE( "w27e010.u20", 0x00000, 0x20000, CRC(4a5c78bc) SHA1(e310605ee102eee706c9e672ca722fa5c6163f39) )
ROM_LOAD16_BYTE( "w27e010.u19", 0x00001, 0x20000, CRC(ac37c3be) SHA1(489d4aafdd3228b096988090da9b712a9c08b74c) )
@@ -2897,7 +2973,9 @@ ROM_START( monkeyld )
ROM_END
ROM_START( monkeyle )
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_BYTE( "1_m.l._en.20.b.u26", 0x00000, 0x20000, CRC(ec638bad) SHA1(dd7d7e2bfdbb2cf27b4523c49caf005b887d96f9) ) // A290011T
ROM_LOAD16_BYTE( "2_m.l._en.20.b.u25", 0x00001, 0x20000, CRC(65441a49) SHA1(07d7d5993ed5857c724bf071059a029098b34672) ) // A290011T
@@ -2922,7 +3000,9 @@ ROM_START( monkeyle )
ROM_END
ROM_START( monkeylf )
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_WORD_SWAP( "monkey_land.u11", 0x00000, 0x40000, CRC(15765d17) SHA1(99fccb820a6f4001fae24faa8c67ffab2d9d70f2) )
ROM_REGION( 0x1000000, "sprites", 0 ) // not dumped for this set
@@ -2954,7 +3034,9 @@ D2 Enterprises
***************************************************************************/
ROM_START( speedmst )
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_BYTE( "1_s.m._d2.01.c.u23", 0x00000, 0x10000, CRC(f98cdc5f) SHA1(59088d649ec47c94469de3d409d75ab29ebdd4ec) ) // 27C512
ROM_LOAD16_BYTE( "2_s.m._d2.01.c.u22", 0x00001, 0x10000, CRC(f5017c91) SHA1(fa5e4888ff819dbaa5f10f089c6de2f32b8888ac) ) // 27C512
ROM_FILL( 0x20000, 0x20000, 0xff )
@@ -2980,7 +3062,9 @@ ROM_START( speedmst )
ROM_END
ROM_START( speedmsta )
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_BYTE( "speed_master_1.u23", 0x00000, 0x10000, CRC(c99200af) SHA1(0573ebc4bd866850aa6c16a0b9db7d7229865dbf) ) // 27C512
ROM_LOAD16_BYTE( "speed_master_2.u22", 0x00001, 0x10000, CRC(041ff0de) SHA1(63b129605d1c330836fdd5fa8a654f5d20170f0d) ) // 27C512
ROM_FILL( 0x20000, 0x20000, 0xff )
@@ -3006,7 +3090,9 @@ ROM_START( speedmsta )
ROM_END
ROM_START( speedmstb )
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_BYTE( "1_speed_master_d1.6.u23", 0x00000, 0x10000, CRC(beb8bcb8) SHA1(a06f4cb151ae6e80a4d5335a774be06d2c1feb2b) ) // 27C512
ROM_LOAD16_BYTE( "2_speed_master_d1.6.u22", 0x00001, 0x10000, CRC(2a0912fd) SHA1(e83bb6f131ea0d6dd5dc8e71e21a76b1f1ba1f09) ) // 27C512
ROM_FILL( 0x20000, 0x20000, 0xff )
@@ -3039,7 +3125,9 @@ Astro Corp. / American Alpha
***************************************************************************/
ROM_START( cptshark ) // clearly based on Win Win Bingo, still has strings for it
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_BYTE( "1_c.s._cs.01.6.u31", 0x00000, 0x20000, CRC(87eb4151) SHA1(600154bde858a185d18db9a2a2cb58284622e905) ) // F29C51001T
ROM_LOAD16_BYTE( "2_c.s._cs.01.6.u25", 0x00001, 0x20000, CRC(ed59d9b5) SHA1(30ac8a988e8b80463b1e67614a784c75582bcf16) ) // F29C51001T
@@ -3071,7 +3159,9 @@ Astro Corp.
***************************************************************************/
ROM_START( wwitch )
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_BYTE( "1_wicked_w_aa.01.a.u26", 0x00000, 0x20000, CRC(6c654105) SHA1(b07e807864d7d0ccb80111369f8dc205fe45aea4) ) // F29C51001T
ROM_LOAD16_BYTE( "2_wicked_w_aa.01.a.u25", 0x00001, 0x20000, CRC(66206bb4) SHA1(80513d7dc7cd664238f01a6c1b3e40e7696e2211) ) // F29C51001T
@@ -3091,7 +3181,9 @@ ROM_START( wwitch )
ROM_END
ROM_START( lwitch )
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_BYTE( "1_l.w.en.01.a.u26", 0x00000, 0x20000, CRC(dadf2a55) SHA1(ed60182624d48c3bbfc80e0469221fbfc1a8b7ca) ) // A290011T
ROM_LOAD16_BYTE( "2_l.w.en.01.a.u25", 0x00001, 0x20000, CRC(307ce189) SHA1(cebc5a1393fbea2a2be9cc953ebf52b859255def) ) // A290011T
@@ -3118,7 +3210,9 @@ Astro Corp.
***************************************************************************/
ROM_START( hapfarm ) // also has Hot Runner N3.00 string, so probably derived from that code base
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_BYTE( "1_happy_farm_us.01.02.b.u26", 0x00000, 0x20000, CRC(c60bbc39) SHA1(fcf23c9c75bc221a310b87de58dea75f018065c2) ) // EV29001TSC-70R read as F29C51001T
ROM_LOAD16_BYTE( "2_happy_farm_us.01.02.b.u25", 0x00001, 0x20000, CRC(186a3e0f) SHA1(8e2474beb9264dbadc154cdfdc7b911cc1a3a601) ) // EV29001TSC-70R read as F29C51001T
@@ -3138,7 +3232,9 @@ ROM_START( hapfarm ) // also has Hot Runner N3.00 string, so probably derived fr
ROM_END
ROM_START( hapfarma )
- ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_REGION16_BE( 0x40000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION16_BE( 0x40000, "encrypted_rom", 0 )
ROM_LOAD16_BYTE( "1_happy_farm_in.01.02.b.u26", 0x00000, 0x20000, CRC(c7b32cbe) SHA1(08414711180485ebbb19583aaddb1cfaf19f2ac6) )
ROM_LOAD16_BYTE( "2_happy_farm_in.01.02.b.u25", 0x00001, 0x20000, CRC(8a3885a6) SHA1(adc74aaacda583b1d8ef3dcdc9c2075e89bfe7b7) )
@@ -3214,7 +3310,8 @@ void magibomb_state::init_magibomb()
void zoo_state::decrypt_rom(const decryption_info &table)
{
const u32 size = memregion("maincpu")->bytes();
- u16 * const rom = (u16 *)memregion("maincpu")->base();
+ u16 * const rom = (u16 *)memregion("encrypted_rom")->base();
+ u16 * const decrypted = (u16 *)memregion("maincpu")->base();
std::unique_ptr<u16[]> tmp = std::make_unique<u16[]>(size/2);
// Pass 1: decrypt high and low byte independently. They go
@@ -3262,7 +3359,7 @@ void zoo_state::decrypt_rom(const decryption_info &table)
(BIT(i, table.bits[8]) << 4) |
(BIT(i, table.bits[9]) << 3) |
(BIT(i, table.bits[10]) << 2);
- rom[dest >> 1] = tmp[i >> 1];
+ decrypted[dest >> 1] = tmp[i >> 1];
}
}
@@ -3307,21 +3404,6 @@ void zoo_state::init_magibombd()
u16 * const rom = (u16 *)memregion("maincpu")->base();
rom[0x00004/2] = 0x0000;
rom[0x00006/2] = 0x0446;
-
- rom[0x00f80/2] = 0x4e75; // Mirror ROM word checksum (it expects 0)
-
- address_space &program = m_maincpu->space(AS_PROGRAM);
-
- program.install_read_tap(0x800004, 0x800007, "magic_mirror_r", [] (offs_t offset, u16 &data, u16 mem_mask)
- {
- switch (offset & 0x02)
- {
- case 0x00: data = 0x1227; break;
- case 0x02: data = 0x5695; break;
- }
-
- return data;
- });
#endif
}
@@ -3334,21 +3416,6 @@ void zoo_state::init_magibombg()
u16 * const rom = (u16 *)memregion("maincpu")->base();
rom[0x00004/2] = 0x0000;
rom[0x00006/2] = 0x043e;
-
- rom[0x00f26/2] = 0x4e75; // Mirror ROM word checksum (it expects 0)
-
- address_space &program = m_maincpu->space(AS_PROGRAM);
-
- program.install_read_tap(0x800004, 0x800007, "magic_mirror_r", [] (offs_t offset, u16 &data, u16 mem_mask)
- {
- switch (offset & 0x02)
- {
- case 0x00: data = 0x1267; break;
- case 0x02: data = 0x5715; break;
- }
-
- return data;
- });
#endif
}
@@ -3361,21 +3428,6 @@ void zoo_state::init_magibombm()
u16 * const rom = (u16 *)memregion("maincpu")->base();
rom[0x00004/2] = 0x0000;
rom[0x00006/2] = 0x043e;
-
- rom[0x00f80/2] = 0x4e75; // Mirror ROM word checksum (it expects 0)
-
- address_space &program = m_maincpu->space(AS_PROGRAM);
-
- program.install_read_tap(0x800004, 0x800007, "magic_mirror_r", [] (offs_t offset, u16 &data, u16 mem_mask)
- {
- switch (offset & 0x02)
- {
- case 0x00: data = 0x1267; break;
- case 0x02: data = 0x5715; break;
- }
-
- return data;
- });
#endif
}
@@ -3388,21 +3440,6 @@ void zoo_state::init_magibombo()
u16 * const rom = (u16 *)memregion("maincpu")->base();
rom[0x00004/2] = 0x0000;
rom[0x00006/2] = 0x0446;
-
- rom[0x00f52/2] = 0x4e75; // Mirror ROM word checksum (it expects 0)
-
- address_space &program = m_maincpu->space(AS_PROGRAM);
-
- program.install_read_tap(0x800004, 0x800007, "magic_mirror_r", [] (offs_t offset, u16 &data, u16 mem_mask)
- {
- switch (offset & 0x02)
- {
- case 0x00: data = 0x1227; break;
- case 0x02: data = 0x5695; break;
- }
-
- return data;
- });
#endif
}
@@ -3447,8 +3484,6 @@ void zoo_state::init_winbingo()
u16 * const rom = (u16 *)memregion("maincpu")->base();
rom[0x00004/2] = 0x0000;
rom[0x00006/2] = 0x0400;
-
- rom[0x0821c/2] = 0x4e71; // Mirror ROM word checksum (it expects 0)
#endif
}
@@ -3461,8 +3496,6 @@ void zoo_state::init_winbingoa()
u16 * const rom = (u16 *)memregion("maincpu")->base();
rom[0x00004/2] = 0x0000;
rom[0x00006/2] = 0x0400;
-
- rom[0x081f2/2] = 0x4e71; // Mirror ROM word checksum (it expects 0)
#endif
}
@@ -3475,8 +3508,6 @@ void zoo_state::init_hacher()
u16 * const rom = (u16 *)memregion("maincpu")->base();
rom[0x00004/2] = 0x0000;
rom[0x00006/2] = 0x0400;
-
- rom[0x07d6e/2] = 0x4e71; // Mirror ROM word checksum (it expects 0)
#endif
}
@@ -3489,8 +3520,6 @@ void zoo_state::init_cptshark()
u16 * const rom = (u16 *)memregion("maincpu")->base();
rom[0x00004/2] = 0x0000;
rom[0x00006/2] = 0x0400;
-
- rom[0x08a2a/2] = 0x4e71; // Mirror ROM word checksum (it expects 0)
#endif
}
@@ -3535,11 +3564,6 @@ void zoo_state::init_zoo()
u16 * const rom = (u16 *)memregion("maincpu")->base();
rom[0x00004/2] = 0x0000;
rom[0x00006/2] = 0x0400;
-
- rom[0x00010/2] = 0x1e00; // ROM 0405 ERROR
- rom[0x00012/2] = 0x10d0; // ""
-
- rom[0x091ac/2] = 0x4e71; // Mirror ROM word checksum (it expects 0)
#endif
}
@@ -3552,11 +3576,6 @@ void zoo_state::init_zulu()
u16 * const rom = (u16 *)memregion("maincpu")->base();
rom[0x00004/2] = 0x0000;
rom[0x00006/2] = 0x0400;
-
- rom[0x00010/2] = 0x1d24; // ROM 0405 ERROR
- rom[0x00012/2] = 0x18e0; // ""
-
- rom[0x090da/2] = 0x4e71; // Mirror ROM word checksum (it expects 0)
#endif
}
@@ -3601,11 +3620,6 @@ void zoo_state::init_dinodino()
u16 * const rom = (u16 *)memregion("maincpu")->base();
rom[0x00004/2] = 0x0000;
rom[0x00006/2] = 0x0446;
-
- rom[0x00010/2] = 0x1aa9;
- rom[0x00012/2] = 0x6799;
-
- rom[0x02236/2] = 0x4e75; // Mirror ROM word checksum (it expects 0)
#endif
}
@@ -3650,9 +3664,6 @@ void zoo_state::init_gostopac()
u16 * const rom = (u16 *)memregion("maincpu")->base();
rom[0x00004/2] = 0x0400;
rom[0x00006/2] = 0x0400;
-
- rom[0x00010/2] = 0x0000;
- rom[0x00012/2] = 0x1594;
#endif
}
@@ -3665,11 +3676,6 @@ void zoo_state::init_monkeyl()
u16 * const rom = (u16 *)memregion("maincpu")->base();
rom[0x00004/2] = 0x0000;
rom[0x00006/2] = 0x0470;
-
- rom[0x00010/2] = 0x12a9;
- rom[0x00012/2] = 0x5799;
-
- rom[0x01352/2] = 0x4e75; // Mirror ROM word checksum (it expects 0)
#endif
}
@@ -3682,11 +3688,6 @@ void zoo_state::init_monkeyla()
u16 * const rom = (u16 *)memregion("maincpu")->base();
rom[0x00004/2] = 0x0000;
rom[0x00006/2] = 0x0470;
-
- rom[0x00010/2] = 0x12a9;
- rom[0x00012/2] = 0x5799;
-
- rom[0x01334/2] = 0x4e75; // Mirror ROM word checksum (it expects 0)
#endif
}
@@ -3699,11 +3700,6 @@ void zoo_state::init_monkeyld()
u16 * const rom = (u16 *)memregion("maincpu")->base();
rom[0x00004/2] = 0x0000;
rom[0x00006/2] = 0x0468;
-
- rom[0x00010/2] = 0x12a9;
- rom[0x00012/2] = 0x5799;
-
- rom[0x01334/2] = 0x4e75; // Mirror ROM word checksum (it expects 0)
#endif
}
@@ -3716,11 +3712,6 @@ void zoo_state::init_speedmst()
u16 * const rom = (u16 *)memregion("maincpu")->base();
rom[0x00004/2] = 0x0000;
rom[0x00006/2] = 0x0400;
-
- rom[0x00010/2] = 0x1c28;
- rom[0x00012/2] = 0x1840;
-
- rom[0x08736/2] = 0x4e71; // Mirror ROM word checksum (it expects 0)
#endif
}
@@ -3733,11 +3724,6 @@ void zoo_state::init_speedmsta()
u16 * const rom = (u16 *)memregion("maincpu")->base();
rom[0x00004/2] = 0x0000;
rom[0x00006/2] = 0x0400;
-
- rom[0x00010/2] = 0x1c32;
- rom[0x00012/2] = 0x1840;
-
- rom[0x086fc/2] = 0x4e71; // Mirror ROM word checksum (it expects 0)
#endif
}
@@ -3750,11 +3736,6 @@ void zoo_state::init_speedmstb()
u16 * const rom = (u16 *)memregion("maincpu")->base();
rom[0x00004/2] = 0x0000;
rom[0x00006/2] = 0x0400;
-
- rom[0x00010/2] = 0x1c28;
- rom[0x00012/2] = 0x1840;
-
- rom[0x0871a/2] = 0x4e71; // Mirror ROM word checksum (it expects 0)
#endif
}
@@ -3799,22 +3780,6 @@ void zoo_state::init_wwitch()
u16 * const rom = (u16 *)memregion("maincpu")->base();
rom[0x00004/2] = 0x0000;
rom[0x00006/2] = 0x0446;
-
- rom[0x01220/2] = 0x4e75; // Mirror ROM word checksum (it expects 0)
-
- address_space &program = m_maincpu->space(AS_PROGRAM);
-
- program.install_read_tap(0x800008, 0x80000b, "magic_mirror_r", [] (offs_t offset, u16 &data, u16 mem_mask)
- {
- switch (offset & 0x02)
- {
- case 0x00: data = 0x12a9; break;
- case 0x02: data = 0x5799; break;
- }
-
- return data;
- });
-
#endif
}
@@ -3859,11 +3824,6 @@ void zoo_state::init_westvent()
u16 * const rom = (u16 *)memregion("maincpu")->base();
rom[0x00004/2] = 0x0000;
rom[0x00006/2] = 0x043e;
-
- rom[0x00010/2] = 0x12a9;
- rom[0x00012/2] = 0x5799;
-
- rom[0x021d6/2] = 0x4e75; // Mirror ROM word checksum (it expects 0)
#endif
}
@@ -3908,8 +3868,6 @@ void zoo_state::init_hapfarm()
u16 * const rom = (u16 *)memregion("maincpu")->base();
rom[0x00004/2] = 0x0000;
rom[0x00006/2] = 0x0400;
-
- rom[0x32126/2] = 0x4e75; // Mirror ROM word checksum (it expects 0)
#endif
}
@@ -3922,8 +3880,6 @@ void zoo_state::init_hapfarma()
u16 * const rom = (u16 *)memregion("maincpu")->base();
rom[0x00004/2] = 0x0000;
rom[0x00006/2] = 0x0400;
-
- rom[0x32490/2] = 0x4e75; // Mirror ROM word checksum (it expects 0)
#endif
}
@@ -3968,10 +3924,6 @@ void zoo_state::init_keno21()
u16 * const rom = (u16 *)memregion("maincpu")->base();
rom[0x00004/2] = 0x0400;
rom[0x00006/2] = 0x0400;
- rom[0x00008/2] = 0x0000;
- rom[0x0000a/2] = 0x0400;
-
- rom[0x163ba/2] = 0x4e75; // Mirror ROM word checksum (it expects 0)
#endif
}
@@ -4016,23 +3968,6 @@ void astoneag_state::init_astoneag()
u16 * const rom = (u16 *)memregion("maincpu")->base();
rom[0x00004/2] = 0x0000;
rom[0x00006/2] = 0x0440;
-
- rom[0x02872/2] = 0x4e75; // Mirror ROM word checksum (it expects 0)
-
-
- address_space &program = m_maincpu->space(AS_PROGRAM);
-
- program.install_read_tap(0x800004, 0x800007, "magic_mirror_r", [] (offs_t offset, u16 &data, u16 mem_mask)
- {
- switch (offset & 0x02)
- {
- case 0x00: data = 0x1aa9; break;
- case 0x02: data = 0x6799; break;
- }
-
- return data;
- });
-
#endif
interleave_sprites_16x32();