From 4ee1c70057fdfa0b151eb2d02cf9d3bf5eb29af2 Mon Sep 17 00:00:00 2001 From: davidhay Date: Sun, 8 Feb 2009 20:54:18 +0000 Subject: [PATCH] decrypted nfb96sea set in goldstar.c [Olivier Galibert] --- src/mame/drivers/goldstar.c | 44 ++++++++++++++++++++++++++++++++++--- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/src/mame/drivers/goldstar.c b/src/mame/drivers/goldstar.c index a8a7eed530d..0c8989aa1fd 100644 --- a/src/mame/drivers/goldstar.c +++ b/src/mame/drivers/goldstar.c @@ -4696,8 +4696,23 @@ ROM_END // this set has an encrypted program rom ROM_START( nfb96sea ) ROM_REGION( 0x10000, "main", 0 ) - ROM_LOAD( "dog_08.rom", 0x00000, 0x10000, CRC(357f13e8) SHA1(ca0872c9f7dc44a4c1c342f7f53c490f6342f1d2) ) - + ROM_LOAD( "dog_08.rom", 0x00000, 0x1000, CRC(357f13e8) SHA1(ca0872c9f7dc44a4c1c342f7f53c490f6342f1d2) ) + ROM_CONTINUE(0x4000, 0x1000) + ROM_CONTINUE(0x3000, 0x1000) + ROM_CONTINUE(0x7000, 0x1000) + ROM_CONTINUE(0x1000, 0x1000) + ROM_CONTINUE(0x6000, 0x1000) + ROM_CONTINUE(0x2000, 0x1000) + ROM_CONTINUE(0x5000, 0x1000) + ROM_CONTINUE(0x8000, 0x1000) + ROM_CONTINUE(0x9000, 0x1000) + ROM_CONTINUE(0xa000, 0x1000) + ROM_CONTINUE(0xb000, 0x1000) + ROM_CONTINUE(0xc000, 0x1000) + ROM_CONTINUE(0xd000, 0x1000) + ROM_CONTINUE(0xe000, 0x1000) + ROM_CONTINUE(0xf000, 0x1000) + /* the graphic roms on this set are a mess, the planes don't match up properly */ ROM_REGION( 0x18000, "gfx1", ROMREGION_DISPOSE ) ROM_LOAD( "dog_05.rom", 0x10000, 0x08000, CRC(c03b5632) SHA1(4f603ec5218adcbfce09ec6d3643ffb5006056dd) ) @@ -5053,6 +5068,29 @@ static DRIVER_INIT(lucky8a) ROM[0x0010] = 0x21; } +static DRIVER_INIT( nfb96sea ) +{ + int i; + UINT8 *ROM = memory_region(machine, "main"); + + for (i = 0;i < 0x10000;i++) + { + UINT8 x = ROM[i]; + switch(i & 7) + { + case 0: x = BITSWAP8(x^0x80, 1,6,7,4,5,2,3,0); break; + case 1: x = BITSWAP8(x^0xa0, 5,6,3,4,1,2,7,0); break; + case 2: x = BITSWAP8(x^0x02, 5,6,3,4,1,2,7,0); break; + case 3: x = BITSWAP8(x^0xa0, 3,6,1,4,7,2,5,0); break; + case 4: x = BITSWAP8(x^0x82, 3,6,1,4,7,2,5,0); break; + case 5: x = BITSWAP8(x^0x02, 1,6,7,4,5,2,3,0); break; + case 6: x = BITSWAP8(x^0x08, 3,6,1,4,7,2,5,0); break; + case 7: x = BITSWAP8(x^0x80, 5,6,3,4,1,2,7,0); break; + } + + ROM[i] = x; + } +} /********************************************* * Game Drivers * @@ -5102,7 +5140,7 @@ GAME( 1996, csel96, 0, cmnobmp, cmv801, 0, ROT0, "Amcoe", // these all appear to be graphic hacks of 'New Fruit Bonus '96', they can run with the same program rom // some sets are messy and appear to have mismatched graphic roms, they needed to be sorted out properly GAME( 1996, nfb96se, nfb96, cm, cmv4, 0, ROT0, "bootleg", "New Fruit Bonus '96 Special Edition (bootleg, set 1)", GAME_WRONG_COLORS | GAME_NOT_WORKING ) -GAME( 1996, nfb96sea, nfb96, cm, cmv4, 0, ROT0, "bootleg", "New Fruit Bonus '96 Special Edition (bootleg, set 2)", GAME_WRONG_COLORS | GAME_NOT_WORKING ) // encrypted program +GAME( 1996, nfb96sea, nfb96, cm, cmv4, nfb96sea, ROT0, "bootleg", "New Fruit Bonus '96 Special Edition (bootleg, set 2)", GAME_WRONG_COLORS | GAME_NOT_WORKING ) // encrypted program GAME( 1996, nfb96seb, nfb96, cm, cmv4, 0, ROT0, "bootleg", "New Fruit Bonus '96 Special Edition (bootleg, set 3)", GAME_WRONG_COLORS | GAME_NOT_WORKING ) GAME( 2002, carb2002, nfb96, cm, cmv4, 0, ROT0, "bootleg", "Carriage Bonus 2002 (bootleg)", GAME_WRONG_COLORS | GAME_NOT_WORKING ) GAME( 2003, carb2003, nfb96, cm, cmv4, 0, ROT0, "bootleg", "Carriage Bonus 2003 (bootleg)", GAME_WRONG_COLORS | GAME_NOT_WORKING )