fix sf2rk gfx rom load and decode

This commit is contained in:
TwistedTom 2020-06-18 01:06:31 +01:00
parent 6dff78ed3a
commit c65b52aae6

View File

@ -8069,8 +8069,15 @@ ROM_END
ROM_START( sf2rk )
ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
ROM_LOAD16_BYTE( "w6.u222", 0x000000, 0x80000, CRC(49422b6f) SHA1(69fe9147c7ee3f6fa29077df16f4ef1224495be3) )
ROM_LOAD16_BYTE( "w5.u196", 0x000001, 0x80000, CRC(7e9c8c2f) SHA1(3d34a3920a771e1d62a41c104c8b16e3c6ac9405) )
ROM_LOAD16_BYTE( "w6.u222", 0x000000, 0x80000, CRC(49422b6f) SHA1(69fe9147c7ee3f6fa29077df16f4ef1224495be3) )
ROM_LOAD16_BYTE( "w5.u196", 0x000001, 0x80000, CRC(7e9c8c2f) SHA1(3d34a3920a771e1d62a41c104c8b16e3c6ac9405) )
/* The dark screen issue is present on the real pcb, although much less noticable than in mame.
The bootleggers have patched out the code which modifies the brightness/fade component of the palette word.
This is somewhat strange as unlike some bootlegs, this board DOES have the brightness circuitry (2x 7407's, 12x resistor dac) populated!
The below patch fixes the issue: (for pcb fix burn a 27c040 of w6.u222 with 0x8f7=0x6b)
*/
//ROM_FILL( 0x11ee, 1, 0x6b)
ROM_REGION( 0x600000, "gfx", 0 )
ROM_LOAD64_WORD( "01 rk098", 0x000000, 0x80000, CRC(4296de4d) SHA1(2bd5a0ebe2a20c745b11da9c7dc4f13f20efdda7) )
@ -8085,16 +8092,16 @@ ROM_START( sf2rk )
ROM_CONTINUE( 0x400004, 0x80000)
ROM_LOAD64_WORD( "06 rk077", 0x400002, 0x80000, CRC(ec949f8c) SHA1(34ea3d6d85486a5ff25c774dbc6a4b16037a7347) )
ROM_CONTINUE( 0x400006, 0x80000)
/* extra gfx layer roms loaded over the former ones to remove the capcom copyright logo */
/* extra sprite roms loaded over the former ones (identical data) */
ROM_LOAD64_BYTE( "w-1", 0x400004, 0x10000, CRC(6de44671) SHA1(dc6abba639e0c27033e391c7438d88dc89a93351) )
ROM_CONTINUE( 0x400000, 0x10000 )
ROM_LOAD64_BYTE( "w-3", 0x400006, 0x10000, CRC(bf0cd819) SHA1(f04a098fce07949277268327871c5e5520e3bb3c) )
ROM_CONTINUE( 0x400002, 0x10000 )
ROM_LOAD64_BYTE( "w-2", 0x400005, 0x10000, CRC(e8f14362) SHA1(a20eb75e322011e2a8d8bf2acebe713bef3d3941) )
ROM_LOAD64_BYTE( "w-3", 0x400005, 0x10000, CRC(bf0cd819) SHA1(f04a098fce07949277268327871c5e5520e3bb3c) )
ROM_CONTINUE( 0x400001, 0x10000 )
ROM_LOAD64_BYTE( "w-2", 0x400006, 0x10000, CRC(e8f14362) SHA1(a20eb75e322011e2a8d8bf2acebe713bef3d3941) )
ROM_CONTINUE( 0x400002, 0x10000 )
ROM_LOAD64_BYTE( "w-4", 0x400007, 0x10000, CRC(76f9f91f) SHA1(58a34062d2c8378558a7f1629140330279af9a43) )
ROM_CONTINUE( 0x400003, 0x10000 )
/* end of extra gfx layer roms */
/* end of extra sprite roms */
ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
ROM_LOAD( "1.rk", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
@ -13586,9 +13593,9 @@ void cps_state::init_sf2rk()
gfx[i] = bitswap(x, 0, 6 ,5, 4, 3, 2, 1, 7);
}
// the 0x400000 - 0x440000 range is covered by the extra GFX layer ROMs, which aren't scrambled
// the 0x400000 - 0x480000 range is covered by the extra GFX layer ROMs, which aren't scrambled
for (int i = 0x440000; i < 0x600000; i++)
for (int i = 0x480000; i < 0x600000; i++)
{
uint8_t x = gfx[i];
gfx[i] = bitswap(x, 0, 6 ,5, 4, 3, 2, 1, 7);
@ -13933,7 +13940,7 @@ GAME( 1992, sf2ebbl, sf2, cps1_10MHz, sf2hack, cps_state, init_sf2hack
GAME( 1992, sf2ebbl2, sf2, cps1_10MHz, sf2hack, cps_state, init_sf2hack, ROT0, "bootleg", "Street Fighter II: The World Warrior (TAB Austria, bootleg, set 3)", MACHINE_SUPPORTS_SAVE ) // 910214 - based on World version
GAME( 1992, sf2ebbl3, sf2, cps1_10MHz, sf2hack, cps_state, init_sf2hack, ROT0, "bootleg", "Street Fighter II: The World Warrior (TAB Austria, bootleg, set 4)", MACHINE_SUPPORTS_SAVE ) // 910214 - based on World version
GAME( 1992, sf2stt, sf2, cps1_10MHz, sf2hack, cps_state, init_sf2hack, ROT0, "bootleg", "Street Fighter II: The World Warrior (TAB Austria, bootleg, set 2)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // 910214 - based on World version
GAME( 1992, sf2rk, sf2, cps1_10MHz, sf2hack, cps_state, init_sf2rk, ROT0, "bootleg", "Street Fighter II: The World Warrior (RK, bootleg)", MACHINE_SUPPORTS_SAVE ) // 920214 - based on World version
GAME( 1992, sf2rk, sf2, cps1_10MHz, sf2hack, cps_state, init_sf2rk, ROT0, "bootleg", "Street Fighter II: The World Warrior (RK, bootleg)", MACHINE_SUPPORTS_SAVE ) // 910214 - based on World version, dark screen issue confirmed present on real pcb
GAME( 1991, sf2qp1, sf2, cps1_10MHz, sf2, cps_state, init_cps1, ROT0, "bootleg", "Street Fighter II: The World Warrior (Quicken Pt-I, bootleg)", MACHINE_SUPPORTS_SAVE ) // 910214 - based on World version
GAME( 1991, sf2qp2, sf2, cps1_10MHz, sf2, cps_state, init_cps1, ROT0, "bootleg", "Street Fighter II: The World Warrior (Quicken, bootleg)", MACHINE_SUPPORTS_SAVE ) // 910522 - based on USA Rev.I? version
GAME( 1991, sf2thndr, sf2, cps1_10MHz, sf2, cps_state, init_sf2thndr, ROT0, "bootleg", "Street Fighter II: The World Warrior (Thunder Edition, bootleg, set 1)", MACHINE_SUPPORTS_SAVE ) // 910214 - based on World version