summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/goldstar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/goldstar.cpp')
-rw-r--r--src/mame/drivers/goldstar.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/mame/drivers/goldstar.cpp b/src/mame/drivers/goldstar.cpp
index 5cff325585c..96c492a5f2a 100644
--- a/src/mame/drivers/goldstar.cpp
+++ b/src/mame/drivers/goldstar.cpp
@@ -19222,6 +19222,20 @@ void cb3_state::init_cherrys()
}
}
+void cb3_state::init_cb3c()
+{
+ uint8_t *rom = memregion("maincpu")->base();
+
+ std::vector<uint8_t> buffer(0x10000);
+
+ memcpy(&buffer[0], rom, 0x10000);
+
+ for (int i = 0; i < 0x10000; i++)
+ {
+ rom[i] = buffer[bitswap<24>(i, 23, 22, 21, 20, 19, 18, 17, 16, 10, 11, 12, 9, 15, 0, 14, 13, 8, 7, 6, 5, 4, 3, 2, 1)];
+ rom[i] = bitswap<8>(rom[i], 1, 0, 6, 4, 7, 5, 3, 2);
+ }
+}
void cb3_state::init_cb3e()
{
@@ -19587,7 +19601,7 @@ GAMEL( 199?, ncb3, 0, ncb3, ncb3, cb3_state, empty_init
GAMEL( 199?, cb3a, ncb3, ncb3, cb3a, cb3_state, empty_init, ROT0, "Dyna", "Cherry Bonus III (ver.1.40, set 2)", 0, layout_cherryb3 )
GAMEL( 199?, cb3, ncb3, ncb3, ncb3, cb3_state, init_cb3, ROT0, "Dyna", "Cherry Bonus III (ver.1.40, encrypted)", 0, layout_cherryb3 )
GAMEL( 199?, cb3b, ncb3, cherrys, ncb3, cb3_state, init_cherrys, ROT0, "Dyna", "Cherry Bonus III (alt)", 0, layout_cherryb3 )
-GAME( 199?, cb3c, ncb3, cb3c, chrygld, cb3_state, init_cb3, ROT0, "bootleg", "Cherry Bonus III (alt, set 2)", MACHINE_NOT_WORKING) // encrypted
+GAME( 199?, cb3c, ncb3, cb3c, chrygld, cb3_state, init_cb3c, ROT0, "bootleg", "Cherry Bonus III (Ivanhoe V46-0799)", MACHINE_NOT_WORKING) // decryption should be good, but different memory map
GAMEL( 199?, cb3d, ncb3, ncb3, ncb3, cb3_state, empty_init, ROT0, "bootleg", "Cherry Bonus III (set 3)", 0, layout_cherryb3 )
GAMEL( 199?, cb3e, ncb3, cb3e, chrygld, cb3_state, init_cb3e, ROT0, "bootleg", "Cherry Bonus III (set 4, encrypted bootleg)", 0, layout_chrygld )
GAMEL( 199?, cb3f, ncb3, ncb3, ncb3, cb3_state, init_cb3f, ROT0, "bootleg (Cleco)", "Cherry Bonus III (set 5, encrypted bootleg)", MACHINE_NOT_WORKING, layout_chrygld ) // partially decrypted, stops at 'call attendant'