diff options
Diffstat (limited to 'src/mame/drivers/goldstar.cpp')
-rw-r--r-- | src/mame/drivers/goldstar.cpp | 16 |
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' |