diff options
author | Ivan Vangelista <mesgnet@yahoo.it> | 2019-06-17 17:58:47 +0200 |
---|---|---|
committer | Ivan Vangelista <mesgnet@yahoo.it> | 2019-06-17 17:58:47 +0200 |
commit | 42db5e035f08da5cea044d68f81449d02f2d9c8d (patch) | |
tree | 7f4ace88144d30be2e49161b09461595c9c16bf4 | |
parent | dab6358a8e1080095a7e9d8124875deabb0bd188 (diff) |
goldstar.cpp: decrypted jkrmast and jkrmasta. Left as not working as GFX, inputs and sounds aren't hooked up correctly (nw)
-rw-r--r-- | src/mame/drivers/goldstar.cpp | 41 | ||||
-rw-r--r-- | src/mame/includes/goldstar.h | 1 |
2 files changed, 38 insertions, 4 deletions
diff --git a/src/mame/drivers/goldstar.cpp b/src/mame/drivers/goldstar.cpp index 9be1164c8a6..f25318b9d52 100644 --- a/src/mame/drivers/goldstar.cpp +++ b/src/mame/drivers/goldstar.cpp @@ -11096,7 +11096,10 @@ ROM_END // the program roms on these seem scrambled somehow ROM_START( jkrmast ) ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "pid-515.u5", 0x0000, 0x10000, CRC(73caf824) SHA1(b7a7bb6190465f7c3b40f2ef97f4f6beeb89ec41) ) + ROM_LOAD( "pid-515.u5", 0x4000, 0x4000, CRC(73caf824) SHA1(b7a7bb6190465f7c3b40f2ef97f4f6beeb89ec41) ) + ROM_CONTINUE(0x0000, 0x4000) + ROM_CONTINUE(0xc000, 0x4000) + ROM_CONTINUE(0x8000, 0x4000) ROM_REGION( 0x20000, "gfx1", 0 ) ROM_LOAD( "2000b.u48", 0x00000, 0x20000, CRC(e7b406ec) SHA1(c0a10cf8bf5467ecfe3c90e6897db3ab9aae0127) ) @@ -11113,7 +11116,10 @@ ROM_END ROM_START( jkrmasta ) ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "pid-513.u5", 0x0000, 0x10000, CRC(12fa7ea0) SHA1(71ee141fe01ae2ce9913620b52c54cf445fd0b00) ) + ROM_LOAD( "pid-513.u5", 0x4000, 0x4000, CRC(12fa7ea0) SHA1(71ee141fe01ae2ce9913620b52c54cf445fd0b00) ) + ROM_CONTINUE(0x0000, 0x4000) + ROM_CONTINUE(0xc000, 0x4000) + ROM_CONTINUE(0x8000, 0x4000) ROM_REGION( 0x20000, "gfx1", 0 ) ROM_LOAD( "2000b.u48", 0x00000, 0x20000, CRC(e7b406ec) SHA1(c0a10cf8bf5467ecfe3c90e6897db3ab9aae0127) ) @@ -15951,6 +15957,33 @@ void goldstar_state::init_goldstar() } } +void goldstar_state::init_jkrmast() +{ + uint8_t *ROM = memregion("maincpu")->base(); + + for (int A = 0; A < 0x8000; A++) + { + uint8_t x = ROM[A]; + x = bitswap<8>(x ^ 0x0a, 5, 6, 1, 4, 7, 2, 3, 0); + ROM[A] = x; + } + + uint8_t buf[0x8000]; + memcpy(buf, ROM, 0x8000); + + for (int i = 0; i < 0x8000; i++) + { + if ((i & 0x60) == 0x00) + ROM[i] = buf[i^0x08]; + else if ((i & 0x60) == 0x60) + ROM[i] = buf[i^0x10]; + else if ((i & 0x60) == 0x40) + ROM[i] = buf[i^0x18]; + else if ((i & 0x60) == 0x20) + ROM[i] = buf[i]; + } +} + // this block swapping is the same for chry10, chrygld and cb3 // the underlying bitswaps / xors are different however void cb3_state::do_blockswaps(uint8_t* ROM) @@ -16749,8 +16782,8 @@ GAMEL( 1991, cmasterh, cmaster, cm, cmasterb, cmaster_state, init_cmv4, GAMEL( 199?, super7, cmaster, cm, cmaster, cmaster_state, init_super7, ROT0, "bootleg", "Super Seven", MACHINE_NOT_WORKING, layout_cmasterb ) GAMEL( 1991, tonypok, 0, cm, tonypok, cmaster_state, init_tonypok, ROT0, "Corsica", "Poker Master (Tony-Poker V3.A, hack?)", 0 , layout_tonypok ) -GAME( 199?, jkrmast, 0, pkrmast, pkrmast, goldstar_state, empty_init, ROT0, "<unknown>", "Joker Master (V515)", MACHINE_NOT_WORKING ) // encrypted -GAME( 199?, jkrmasta, jkrmast, pkrmast, pkrmast, goldstar_state, empty_init, ROT0, "<unknown>", "Joker Master (V512)", MACHINE_NOT_WORKING ) // encrypted +GAME( 1999, jkrmast, 0, pkrmast, pkrmast, goldstar_state, init_jkrmast, ROT0, "Pick-A-Party USA", "Joker Master (V515)", MACHINE_NOT_WORKING ) // encryption broken, needs GFX and controls +GAME( 1999, jkrmasta, jkrmast, pkrmast, pkrmast, goldstar_state, init_jkrmast, ROT0, "Pick-A-Party USA", "Joker Master (V512)", MACHINE_NOT_WORKING ) // encryption broken, needs GFX and controls GAME( 199?, pkrmast, jkrmast, pkrmast, pkrmast, goldstar_state, empty_init, ROT0, "<unknown>", "Poker Master (ED-1993 set 1)", MACHINE_NOT_WORKING ) // incomplete dump + encrypted? GAME( 1993, pkrmasta, jkrmast, pkrmast, pkrmast, goldstar_state, empty_init, ROT0, "<unknown>", "Poker Master (ED-1993 set 2)", MACHINE_NOT_WORKING ) // incomplete dump + encrypted? diff --git a/src/mame/includes/goldstar.h b/src/mame/includes/goldstar.h index cb4641d0052..659daaa2616 100644 --- a/src/mame/includes/goldstar.h +++ b/src/mame/includes/goldstar.h @@ -48,6 +48,7 @@ public: DECLARE_WRITE8_MEMBER(ay8910_outputa_w); DECLARE_WRITE8_MEMBER(ay8910_outputb_w); void init_goldstar(); + void init_jkrmast(); void init_cmast91(); void init_wcherry(); void init_super9(); |