summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2020-03-27 20:30:51 +0100
committer Ivan Vangelista <mesgnet@yahoo.it>2020-03-27 20:30:51 +0100
commit326e5f1907be8952eeb9daa3cb05a3831c065e87 (patch)
treee96a6145c444f75ec863049e592baa923df6622b
parentc1f93f6b47805e5687c80183d11335950fc9275e (diff)
astrcorp.cpp: preliminary decryption for magibomb (nw)
-rw-r--r--src/mame/drivers/astrcorp.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/mame/drivers/astrcorp.cpp b/src/mame/drivers/astrcorp.cpp
index 269d635e36f..34e29265d42 100644
--- a/src/mame/drivers/astrcorp.cpp
+++ b/src/mame/drivers/astrcorp.cpp
@@ -70,6 +70,7 @@ public:
void showhanc(machine_config &config);
void init_astoneag();
+ void init_magibomb();
void init_showhanc();
void init_showhand();
@@ -1360,11 +1361,20 @@ void astrocorp_state::init_astoneag()
decrypt_rom(astoneag_table);
}
+void astrocorp_state::init_magibomb()
+{
+ uint8_t *rom = memregion("maincpu")->base();
+ for (int i = 1; i < 0x20000; i += 2)
+ {
+ rom[i] = bitswap<8>(rom[i], 6, 7, 5, 0, 4, 1, 3, 2);
+ }
+}
+
GAME( 2000, showhand, 0, showhand, showhand, astrocorp_state, init_showhand, ROT0, "Astro Corp.", "Show Hand (Italy)", MACHINE_SUPPORTS_SAVE )
GAME( 2000, showhanc, showhand, showhanc, showhanc, astrocorp_state, init_showhanc, ROT0, "Astro Corp.", "Wang Pai Dui Jue (China)", MACHINE_SUPPORTS_SAVE )
GAME( 2002, skilldrp, 0, skilldrp, skilldrp, astrocorp_state, empty_init, ROT0, "Astro Corp.", "Skill Drop Georgia (Ver. G1.0S)", MACHINE_SUPPORTS_SAVE )
GAME( 2003, speeddrp, 0, speeddrp, skilldrp, astrocorp_state, empty_init, ROT0, "Astro Corp.", "Speed Drop (Ver. 1.06)", MACHINE_SUPPORTS_SAVE )
-GAME( 200?, magibomb, 0, speeddrp, skilldrp, astrocorp_state, empty_init, ROT0, "Astro Corp.", "Magic Bomb", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // no gfx dumps, less complex looking encryption
+GAME( 200?, magibomb, 0, speeddrp, skilldrp, astrocorp_state, init_magibomb, ROT0, "Astro Corp.", "Magic Bomb", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // no gfx dumps, less complex looking encryption
// Encrypted games (not working):
GAME( 2003?, dinodino, 0, skilldrp, skilldrp, astrocorp_state, empty_init, ROT0, "Astro Corp.", "Dino Dino", MACHINE_NOT_WORKING )