Welcome!
Final Burn Neo => FBN Development => Topic started by: KOF2112 on May 01, 2006, 11:12:07 AM
-
The hope helps me to alter to this MAME SRC Modifies FBA SRC
Thanks
ROM_START( wofsjb )
ROM_REGION( CODE_SIZE, REGION_CPU1, 0 ) /* 68000 code */
ROM_LOAD16_BYTE( "c-d140.040", 0x000000, 0x80000, CRC(e6d933a6) )
ROM_LOAD16_BYTE( "a-0050.040", 0x000001, 0x80000, CRC(403eaead) )
ROM_REGION( 0x400000, REGION_GFX1, 0 )
ROMX_LOAD( "tk2_gfx1.rom", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
ROMX_LOAD( "tk2_gfx3.rom", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
ROMX_LOAD( "tk2_gfx2.rom", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
ROMX_LOAD( "tk2_gfx4.rom", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
ROMX_LOAD( "tk2_gfx5.rom", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
ROMX_LOAD( "tk2_gfx7.rom", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
ROMX_LOAD( "tk2_gfx6.rom", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
ROMX_LOAD( "tk2_gfx8.rom", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
ROM_REGION( 0x8000, REGION_GFX2, 0 )
ROM_COPY( REGION_GFX1, 0x000000, 0x000000, 0x8000 ) /* stars */
ROM_REGION( 0x28000, REGION_CPU2, 0 ) /* QSound Z80 code + space for decrypted opcodes */
ROM_LOAD( "tk2_qa.rom", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
ROM_CONTINUE( 0x10000, 0x18000 )
ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* QSound samples */
ROM_LOAD( "tk2_q1.rom", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
ROM_LOAD( "tk2_q2.rom", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
ROM_LOAD( "tk2_q3.rom", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
ROM_LOAD( "tk2_q4.rom", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
ROM_END
static DRIVER_INIT( wofsjb )
{
UINT8 *mem8 = memory_region(REGION_CPU1);
// Patch Q sound protection? check
mem8[0x5A1A] = 0x00;
mem8[0x5A1B] = 0x67;
mem8[0x5A1C] = 0x56;
mem8[0x5A1D] = 0x00;
mem8[0x5A1E] = 0x7C;
mem8[0x5A1F] = 0x20;
mem8[0x5A20] = 0xF1;
mem8[0x5A21] = 0x00;
mem8[0x5A22] = 0x00;
mem8[0x5A23] = 0x80;
mem8[0x5A24] = 0x28;
mem8[0x5A25] = 0x4A;
mem8[0x5A26] = 0x1F;
mem8[0x5A27] = 0x00;
mem8[0x5A28] = 0x00;
mem8[0x5A29] = 0x6A;
mem8[0x5A40] = 0x5C;
mem8[0x5A41] = 0x11;
mem8[0x5A42] = 0x01;
mem8[0x5A43] = 0x00;
mem8[0x5A44] = 0x5C;
mem8[0x5A45] = 0x11;
mem8[0x5A46] = 0x03;
mem8[0x5A47] = 0x00;
mem8[0x5A4A] = 0x07;
mem8[0x5A4B] = 0x00;
mem8[0x5A4C] = 0x5C;
mem8[0x5A4D] = 0x11;
mem8[0x5A4E] = 0x09;
mem8[0x5A4F] = 0x00;
mem8[0x5A50] = 0x5C;
mem8[0x5A51] = 0x31;
mem8[0x5A52] = 0x0C;
mem8[0x5A53] = 0x00;
mem8[0x5A54] = 0x5C;
mem8[0x5A55] = 0x11;
mem8[0x5A56] = 0x0F;
mem8[0x5A57] = 0x00;
mem8[0x5A58] = 0x5C;
mem8[0x5A59] = 0x11;
mem8[0x72A6] = 0x71;
mem8[0x72A7] = 0x4E;
mem8[0x72A8] = 0x71;
mem8[0x72A9] = 0x4E;
mem8[0x72AA] = 0x71;
mem8[0x72AB] = 0x4E;
mem8[0x72AC] = 0x71;
mem8[0x72AD] = 0x4E;
mem8[0x72AE] = 0x71;
mem8[0x72AF] = 0x4E;
mem8[0x72B0] = 0x71;
mem8[0x72B1] = 0x4E;
mem8[0x72B2] = 0x39;
mem8[0x72B3] = 0x30;
mem8[0x72B4] = 0xF1;
mem8[0x72B5] = 0x00;
mem8[0x72B6] = 0xFE;
mem8[0x72B7] = 0x9F;
mem8[0x72B8] = 0x00;
mem8[0x72B9] = 0x0C;
wof_decode();
init_cps1();
}
GAME( 1995, wofsjb, wof, qsound, wof, wofsjb, ROT0, "hack", "Holy Sword Three Kingdoms (set 3)", GAME_UNEMULATED_PROTECTION )
-
Here's what I had for this game:
//==============================
// Holy Sword Three Kingdoms (set 3) (Asia)
//==============================
static int WofsjbInit()
{
int nRet=0; unsigned char *pqs=NULL;
Cps=1; Cps1Qs=1;
nCpsRomLen= 2*0x080000;
nCpsCodeLen=0; // not encrypted
nCpsGfxLen= 8*0x080000;
nCpsZRomLen= 2*0x020000;
nCpsQSamLen= 4*0x080000;
nRet=CpsInit(); if (nRet!=0) return 1;
// Load program roms
nRet=BurnLoadRom(CpsRom+0x000001,0,2); if (nRet!=0) return 1;
nRet=BurnLoadRom(CpsRom+0x000000,1,2); if (nRet!=0) return 1;
// GFX can be nearly 100% by patching in 0x5B6-0x6BA
// QSound Fixes
*((unsigned short*)(CpsRom + 0x5A1A)) = 0x6700;
*((unsigned short*)(CpsRom + 0x5A1C)) = 0x0056;
*((unsigned short*)(CpsRom + 0x5A1E)) = 0x207C;
*((unsigned short*)(CpsRom + 0x5A20)) = 0x00F1;
*((unsigned short*)(CpsRom + 0x5A22)) = 0x8000;
*((unsigned short*)(CpsRom + 0x5A24)) = 0x4A28;
*((unsigned short*)(CpsRom + 0x5A26)) = 0x001F;
*((unsigned short*)(CpsRom + 0x5A28)) = 0x6A00;
*((unsigned short*)(CpsRom + 0x5A40)) = 0x115C;
*((unsigned short*)(CpsRom + 0x5A42)) = 0x0001;
*((unsigned short*)(CpsRom + 0x5A44)) = 0x115C;
*((unsigned short*)(CpsRom + 0x5A46)) = 0x0003;
*((unsigned short*)(CpsRom + 0x5A4A)) = 0x0007;
*((unsigned short*)(CpsRom + 0x5A4C)) = 0x115C;
*((unsigned short*)(CpsRom + 0x5A4E)) = 0x0009;
*((unsigned short*)(CpsRom + 0x5A50)) = 0x315C;
*((unsigned short*)(CpsRom + 0x5A52)) = 0x000C;
*((unsigned short*)(CpsRom + 0x5A54)) = 0x115C;
*((unsigned short*)(CpsRom + 0x5A56)) = 0x000F;
*((unsigned short*)(CpsRom + 0x5A58)) = 0x115C;
*((unsigned short*)(CpsRom + 0x72A6)) = 0x4E71;
*((unsigned short*)(CpsRom + 0x72A8)) = 0x4E71;
*((unsigned short*)(CpsRom + 0x72AA)) = 0x4E71;
*((unsigned short*)(CpsRom + 0x72AC)) = 0x4E71;
*((unsigned short*)(CpsRom + 0x72AE)) = 0x4E71;
*((unsigned short*)(CpsRom + 0x72B0)) = 0x4E71;
*((unsigned short*)(CpsRom + 0x72B2)) = 0x3039;
*((unsigned short*)(CpsRom + 0x72B4)) = 0x00F1;
*((unsigned short*)(CpsRom + 0x72B6)) = 0x9FFE;
*((unsigned short*)(CpsRom + 0x72B8)) = 0x0C00;
// Load graphics roms
CpsLoadTiles(CpsGfx , 2);
CpsLoadTiles(CpsGfx+0x200000, 6);
nCpsLcReg=0x66; // Layer control register is at 0x66
CpsLayEn[1]=0x02;
CpsLayEn[2]=0x04;
CpsLayEn[3]=0x08;
// Start of Board ID improvments by KEV. 0x00,0x0000
CpsBID[0]=0x00;
CpsBID[1]=0x00;
CpsBID[2]=0x00;
//end
MaskAddr[0]=0x68;
MaskAddr[1]=0x6a;
MaskAddr[2]=0x6c;
MaskAddr[3]=0x6e;
nRet=BurnLoadRom(CpsZRom,10,1);
wof_decode();
pqs=(unsigned char *)CpsQSam;
nRet=BurnLoadRom(pqs ,11,1);
nRet=BurnLoadRom(pqs+0x080000,12,1);
nRet=BurnLoadRom(pqs+0x100000,13,1);
nRet=BurnLoadRom(pqs+0x180000,14,1);
nRet=CpsRunInit(); if (nRet!=0) return 1;
// Ready to go
return 0;
}
//==========================================
// Holy Sword Three Kingdoms (set 3) (Asia)
//==========================================
// Rom information
static struct BurnRomInfo wofsjbRomDesc[] = {
{ "c-d140.040", 0x80000, 0xe6d933a6, BRF_ESS | BRF_PRG }, // 0 even 68000 code
{ "a-0050.040", 0x80000, 0x403eaead, BRF_ESS | BRF_PRG }, // 1 odd
// graphics:
{ "tk2_gfx1.rom", 0x80000, 0x0d9cb9bf, BRF_GRA }, // 2
{ "tk2_gfx3.rom", 0x80000, 0x45227027, BRF_GRA },
{ "tk2_gfx2.rom", 0x80000, 0xc5ca2460, BRF_GRA },
{ "tk2_gfx4.rom", 0x80000, 0xe349551c, BRF_GRA },
{ "tk2_gfx5.rom", 0x80000, 0x291f0f0b, BRF_GRA }, // 6
{ "tk2_gfx7.rom", 0x80000, 0x3edeb949, BRF_GRA },
{ "tk2_gfx6.rom", 0x80000, 0x1abd14d6, BRF_GRA },
{ "tk2_gfx8.rom", 0x80000, 0xb27948e3, BRF_GRA },
// z80 rom
{ "tk2_qa.rom", 0x20000, 0xc9183a0d, BRF_SND }, // 10
// samples
{ "tk2_q1.rom", 0x80000, 0x611268cf, BRF_SND },
{ "tk2_q2.rom", 0x80000, 0x20f55ca9, BRF_SND },
{ "tk2_q3.rom", 0x80000, 0xbfcf6f52, BRF_SND },
{ "tk2_q4.rom", 0x80000, 0x36642e88, BRF_SND },
};
// Make The RomInfo/Name functions for the game
STD_ROM_PICK(wofsjb) STD_ROM_FN(wofsjb)
struct BurnDriver BurnDrvCpswofsjb = {
"wofsjb", "wof", NULL, "1992",
"Holy Sword Three Kingdoms (set 3)\0", "GFX not 100%, Hack?", "Capcom", "CPS1 / QSound",
L"\u4E09\u56FD\u5FD7II (921005 Asia)\0Sangokushi II\0", NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE,3,HARDWARE_CAPCOM_CPS1_QSOUND,
NULL,wofsjbRomInfo,wofsjbRomName,DrvInputInfo, wofDIPInfo,
WofsjbInit,DrvExit,Cps1Frame,CpsRedraw,CpsAreaScan,
&CpsRecalcPal,384,224,4,3
};
-
:biggrin:Thanks You iq_132
-
:wink:
The hope helps me to alter to this MAME SRC Modifies FBA SRC
Thanks
ROM_START( cthd2k3a ) /* Protected hack/bootleg of kof2001 Phenixsoft */
ROM_REGION( 0x500000, REGION_CPU1, 0 )
ROM_LOAD16_WORD_SWAP( "5003-p1a.bin", 0x000000, 0x100000, CRC(1185fe39) SHA1(f7ce0878180858c359f125990fd750ec846f42dd) )
ROM_LOAD16_WORD_SWAP( "5003-p2a.bin", 0x100000, 0x400000, CRC(ea71faf7) SHA1(5d1bb12d04a5e2db6f48b59cae5f9b02acaeb976) )
NEO_SFIX_128K( "5003-s1a.bin", CRC(174ccffd) SHA1(8067e4d79ac91f5c18855793840f41c30825cbb4) )
NEO_BIOS_SOUND_128K( "5003-m1a.bin", CRC(a37cc447) SHA1(969375ca70cf9140afaf833378716cc43e25c5c6) )
/* sound roms are identical to kof2001 */
ROM_REGION( 0x1000000, REGION_SOUND1, 0 )
ROM_LOAD( "262-v1.bin", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
ROM_LOAD( "5003-v2a.bin", 0x400000, 0x400000, CRC(2b498449) SHA1(8e2b01dd17dbf4498a197bda8ce3e08cdf785f12) )
ROM_LOAD( "262-v3.bin", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
ROM_LOAD( "262-v4.bin", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
NO_DELTAT_REGION
ROM_REGION( 0x4000000, REGION_GFX3, 0 )
ROM_LOAD16_BYTE( "5003-c1a.bin", 0x0000000, 0x800000, CRC(dc90c563) SHA1(a79f54f754a1bd0d603f70af6b335e839b5e20d1) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "5003-c2a.bin", 0x0000001, 0x800000, CRC(7b08d331) SHA1(40e259cbc888184aa0f8102d00098f37f3005ce3) ) /* Plane 2,3 */
ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) ) /* Plane 2,3 */
ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) ) /* Plane 2,3 */
ROM_LOAD16_BYTE( "5003-c7a.bin", 0x3000000, 0x800000, CRC(ad2d72b3) SHA1(6396ba51f863019059ce3e37dab20a60d3a8c549) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "5003-c8a.bin", 0x3000001, 0x800000, CRC(8c3fc1b5) SHA1(81b6df7c937915c5b971bde20786aece02404a05) ) /* Plane 2,3 */
ROM_END
DRIVER_INIT( cthd2k3a )
{
cthd2k3a_px_decrypt();
decrypt_cthd2003();
init_neogeo();
}
void cthd2k3a_px_decrypt(void)
{
INT32 i;
UINT8 nBank[] = {
0x06, 0x02, 0x04, 0x05, 0x01, 0x03, 0x00, 0x07,
0x27, 0x0E, 0x1C, 0x15, 0x1B, 0x17, 0x0A, 0x0F,
0x16, 0x14, 0x23, 0x0B, 0x22, 0x26, 0x08, 0x24,
0x21, 0x13, 0x1A, 0x0C, 0x19, 0x1D, 0x25, 0x10,
0x09, 0x20, 0x18, 0x1F, 0x1E, 0x12, 0x0D, 0x11
};
UINT8 *src = (UINT8*)memory_region(REGION_CPU1);
UINT8 *dst = (UINT8*)malloc(0x500000);
if (dst)
{
for (i = 0; i < 0x500000 / 0x20000; i++)
{
memcpy (dst + i * 0x20000, src + nBank * 0x20000, 0x20000);
}
memcpy (src, dst, 0x500000);
free (dst);
}
}
void decrypt_cthd2003(void)
{
UINT8 *romdata = memory_region(REGION_GFX1);
UINT8*tmp = (UINT8*)malloc(8*128*128);
memcpy(tmp+8*0*128, romdata+8*0*128, 8*32*128);
memcpy(tmp+8*32*128, romdata+8*64*128, 8*32*128);
memcpy(tmp+8*64*128, romdata+8*32*128, 8*32*128);
memcpy(tmp+8*96*128, romdata+8*96*128, 8*32*128);
memcpy(romdata, tmp, 8*128*128);
romdata = memory_region(REGION_CPU2)+0x10000;
memcpy(tmp+8*0*128, romdata+8*0*128, 8*32*128);
memcpy(tmp+8*32*128, romdata+8*64*128, 8*32*128);
memcpy(tmp+8*64*128, romdata+8*32*128, 8*32*128);
memcpy(tmp+8*96*128, romdata+8*96*128, 8*32*128);
memcpy(romdata, tmp, 8*128*128);
free(tmp);
memcpy(romdata-0x10000,romdata,0x10000);;
cthd2003_c(0);
}
GAMEB( 2003, cthd2k3a, kof2001, neogeo, neogeo, neogeo, cthd2k3a, ROT0, "bootleg", "Crouching Tiger Hidden Dragon 2003 (The King of Fighters 2001 set 2, bootleg)", 0 ) /* Protected Hack / Bootleg of kof2001 */
-
The hope helps me to alter to this MAME SRC Modifies FBA SRC
Thanks
ROM_START( samsho5b )
ROM_REGION( 0x800000, REGION_CPU1, 0 )
ROM_LOAD16_WORD_SWAP( "270-p2b.bin", 0x000000, 0x400000, CRC(5023067f) SHA1(b1d682fa7d158f19664356a919da6572e8cfeee0) )
ROM_LOAD16_WORD_SWAP( "270-p1b.bin", 0x400000, 0x400000, CRC(b6cbe386) SHA1(99c2407361116c2b2c5fe72df53e05c5f99163c1) )
/* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */
ROM_REGION( 0x80000, REGION_GFX1, 0 ) /* larger char set */
ROM_FILL( 0x000000, 0x80000, 0 )
ROM_REGION( 0x20000, REGION_GFX2, 0 )
ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) )
ROM_REGION( 0x80000, REGION_USER4, 0 )
/* Encrypted, we load it here for reference and replace with decrypted ROM */
ROM_LOAD( "270-m1.bin", 0x00000, 0x40000, CRC(e4a5ab0c) SHA1(dcf74be51593a9c96607f3f776a1210b43df4ac9) )
/* Decrypted */
NEO_BIOS_SOUND_256K( "270-m1_decrypted.bin", CRC(e94a5e2b) SHA1(53ef2ad6583060af69fdde73576e09ba88affa55) ) /* not a 100% match for encrypted version */
ROM_REGION( 0x1000000, REGION_SOUND1, 0 )
/* Encrypted */
ROM_LOAD( "270-v1.bin", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) )
ROM_LOAD( "270-v2.bin", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) )
NO_DELTAT_REGION
ROM_REGION( 0x4000000, REGION_GFX3, 0 )
/* Encrypted */
ROM_LOAD16_BYTE( "270-c1.bin", 0x0000000, 0x800000, CRC(14ffffac) SHA1(2ccebfdd0c7907679ae95bf6eca85b8d322441e2) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "270-c2.bin", 0x0000001, 0x800000, CRC(401f7299) SHA1(94e48cdf1682b1250f53c59f3f71d995e928d17b) ) /* Plane 2,3 */
ROM_LOAD16_BYTE( "270-c3.bin", 0x1000000, 0x800000, CRC(838f0260) SHA1(d5c8d3c6e7221d04e0b20882a847752e5ba95635) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "270-c4.bin", 0x1000001, 0x800000, CRC(041560a5) SHA1(d165e533699f15b1e079c82f97db3542b3a7dd66) ) /* Plane 2,3 */
ROM_LOAD16_BYTE( "270-c5.bin", 0x2000000, 0x800000, CRC(bd30b52d) SHA1(9f8282e684415b4045218cf764ef7d75a70e3240) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "270-c6.bin", 0x2000001, 0x800000, CRC(86a69c70) SHA1(526732cdb408cf680af9da39057bce6a4dfb5e13) ) /* Plane 2,3 */
ROM_LOAD16_BYTE( "270-c7.bin", 0x3000000, 0x800000, CRC(d28fbc3c) SHA1(a82a6ba6760fad14d9309f9147cb7d80bd6f70fc) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "270-c8.bin", 0x3000001, 0x800000, CRC(02c530a6) SHA1(7a3fafa6075506c6ef78cc4ec2cb72118ec83cb9) ) /* Plane 2,3 */
ROM_END
DRIVER_INIT( samsho5b )
{
neo_pcm2_swap(4);
neogeo_fix_bank_type = 1;
kof2000_neogeo_gfx_decrypt(0x0f);
samsh5bl_px_decrypt();
init_neogeo();
}
/* samsho5bl */
void samsh5bl_px_decrypt( void )
{
int px_size = memory_region_length( REGION_CPU1 );
UINT8 *rom = memory_region( REGION_CPU1 );
UINT8 *buf = malloc( px_size );
int ofst;
int i;
memcpy( buf, rom, px_size );
for( i = 0; i < px_size / 2; i++ ){
ofst = BITSWAP8( (i & 0x000ff), 7, 6, 5, 4, 3, 0, 1, 2 );
ofst += (i & 0xfffff00);
ofst ^= 0x060005;
memcpy( &rom[ i * 2 ], &buf[ ofst * 2 ], 0x02 );
}
memcpy( buf, rom, px_size );
memcpy( &rom[ 0x000000 ], &buf[ 0x700000 ], 0x100000 );
memcpy( &rom[ 0x100000 ], &buf[ 0x000000 ], 0x700000 );
free( buf );
}
GAMEB( 2003, samsho5b, samsho5, neogeo, neogeo, neogeo, samsho5b, ROT0, "bootleg", "Samurai Shodown V / Samurai Spirits Zero (bootleg)", 0 ) // different program scrambling
-
This should work...
// Crouching Tiger Hidden Dragon 2003 (Set 2) (Bootleg)
static struct BurnRomInfo cthd2k3aRomDesc[] = {
{ "5003-p1a.bin", 0x100000, 0x1185fe39, 1 | BRF_ESS | BRF_PRG }, // 0 68K Code
{ "5003-p2a.bin", 0x400000, 0xea71faf7, 1 | BRF_ESS | BRF_PRG }, // 1
{ "5003-s1a.bin", 0x020000, 0x174ccffd, 2 | BRF_GRA }, // 2 Text data
{ "5003-c1a.bin", 0x800000, 0xdc90c563, 3 | BRF_GRA }, // 3 Sprite data
{ "5003-c2a.bin", 0x800000, 0x7b08d331, 3 | BRF_GRA }, // 4
{ "5003-c3.bin", 0x800000, 0xac4aff71, 3 | BRF_GRA }, // 5
{ "5003-c4.bin", 0x800000, 0xafef5d66, 3 | BRF_GRA }, // 6
{ "5003-c5.bin", 0x800000, 0xc7c1ae50, 3 | BRF_GRA }, // 7
{ "5003-c6.bin", 0x800000, 0x613197f9, 3 | BRF_GRA }, // 8
{ "5003-c7a.bin", 0x800000, 0xad2d72b3, 3 | BRF_GRA }, // 9
{ "5003-c8a.bin", 0x800000, 0x8c3fc1b5, 3 | BRF_GRA }, // 10
{ "5003-m1a.bin", 0x020000, 0xa37cc447, 4 | BRF_ESS | BRF_PRG }, // 11 Z80 code
{ "5003-v1.bin", 0x400000, 0x83d49ecf, 5 | BRF_SND }, // 12 Sound data
{ "5003-v2a.bin", 0x400000, 0x2b498449, 5 | BRF_SND }, // 13
{ "5003-v3.bin", 0x400000, 0x2ae38dbe, 5 | BRF_SND }, // 14
{ "5003-v4.bin", 0x400000, 0x26ec4dd9, 5 | BRF_SND }, // 15
};
STDROMPICKEXT(cthd2k3a, cthd2k3a, neogeo);
STD_ROM_FN(cthd2k3a);
void cthd2k3a_px_decrypt()
{
unsigned char nBank[] = {
0x06, 0x02, 0x04, 0x05, 0x01, 0x03, 0x00, 0x07,
0x27, 0x0E, 0x1C, 0x15, 0x1B, 0x17, 0x0A, 0x0F,
0x16, 0x14, 0x23, 0x0B, 0x22, 0x26, 0x08, 0x24,
0x21, 0x13, 0x1A, 0x0C, 0x19, 0x1D, 0x25, 0x10,
0x09, 0x20, 0x18, 0x1F, 0x1E, 0x12, 0x0D, 0x11
};
unsigned char *src = Neo68KROM;
unsigned char *dst = (unsigned char*)malloc(0x500000);
if (dst)
{
memcpy (dst, src, 0x500000);
for (int i = 0; i < 0x500000 / 0x20000; i++)
{
memcpy (src + i * 0x20000, dst + nBank * 0x20000, 0x20000);
}
free (dst);
}
}
static int cthd2k3aInit()
{
pNeoInitCallback = cthd2k3a_px_decrypt;
return NeoInit();
}
struct BurnDriver BurnDrvcthd2k3a = {
"cthd2k3a", "kof2001", "neogeo", "2001",
"Crouching Tiger Hidden Dragon 2003 (Set 2)\0", NULL, "Bootleg", "Neo Geo",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_SNK_NEOGEO,
NULL, cthd2k3aRomInfo, cthd2k3aRomName, neogeoInputInfo, neogeoDIPInfo,
cthd2k3aInit, NeoExit, NeoFrame, NeoRender, NeoScan, &NeoRecalcPalette,
nNeoScreenWidth, 224, 4, 3
};
// Samurai Shodown V / Samurai Spirits Zero (Bootleg)
static struct BurnRomInfo samsho5bRomDesc[] = {
{ "270-p2b.bin", 0x400000, 0x5023067f, 1 | BRF_ESS | BRF_PRG }, // 0 68K Code
{ "270-p1b.bin", 0x400000, 0xb6cbe386, 1 | BRF_ESS | BRF_PRG }, // 1
{ "270-c1.bin", 0x800000, 0x14ffffac, 3 | BRF_GRA }, // 2 Sprite data
{ "270-c2.bin", 0x800000, 0x401f7299, 3 | BRF_GRA }, // 3
{ "270-c3.bin", 0x800000, 0x838f0260, 3 | BRF_GRA }, // 4
{ "270-c4.bin", 0x800000, 0x041560a5, 3 | BRF_GRA }, // 5
{ "270-c5.bin", 0x800000, 0xbd30b52d, 3 | BRF_GRA }, // 6
{ "270-c6.bin", 0x800000, 0x86a69c70, 3 | BRF_GRA }, // 7
{ "270-c7.bin", 0x800000, 0xd28fbc3c, 3 | BRF_GRA }, // 8
{ "270-c8.bin", 0x800000, 0x02c530a6, 3 | BRF_GRA }, // 9
{ "270-m1_decrypted.bin", 0x040000, 0xe94a5e2b, 4 | BRF_ESS | BRF_PRG }, // 10 Z80 code (decrypted)
{ "270-m1.bin", 0x040000, 0xe4a5ab0c, 0 | BRF_PRG | BRF_OPT }, // 11 Z80 code
{ "270-v1.bin", 0x800000, 0x62e434eb, 5 | BRF_SND }, // 12 Sound data
{ "270-v2.bin", 0x800000, 0x180f3c9a, 5 | BRF_SND }, // 13
};
STDROMPICKEXT(samsho5b, samsho5b, neogeo);
STD_ROM_FN(samsho5b);
void samsh5bl_px_decrypt()
{
unsigned char *rom = Neo68KROM;
unsigned char *buf = (unsigned char*)malloc( 0x800000 );
memcpy( buf, rom, 0x800000 );
for(int i = 0; i < 0x800000 / 2; i++){
int ofst = BITSWAP8( (i & 0x000ff), 7, 6, 5, 4, 3, 0, 1, 2 );
ofst += (i & 0xfffff00);
ofst ^= 0x060005;
memcpy( &rom[ i * 2 ], &buf[ ofst * 2 ], 0x02 );
}
memcpy( buf, rom, 0x800000 );
memcpy( &rom[ 0x000000 ], &buf[ 0x700000 ], 0x100000 );
memcpy( &rom[ 0x100000 ], &buf[ 0x000000 ], 0x700000 );
free( buf );
}
static int samsho5bInit()
{
int nRet;
nNeoTextROMSize = 0x080000;
nNeoProtectionXor = 0x0f;
pNeoInitCallback = samsh5bl_px_decrypt;
nRet = NeoInit();
if (nRet == 0) {
PCM2DecryptVInfo Info = { 0x00A000, 0xFEB2C0, { 0xCB, 0x29, 0x7D, 0x43, 0xD2, 0x3A, 0xC2, 0xB4} };
PCM2DecryptV(&Info);
}
return nRet;
}
struct BurnDriver BurnDrvsamsho5b = {
"samsho5b", "samsho5", "neogeo", "2003",
"Samurai Shodown V / Samurai Spirits Zero\0", NULL, "SNK Playmore Corporation", "Neo Geo",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_SNK_NEOGEO | HARDWARE_SNK_ENCRYPTED_B,
NULL, samsho5bRomInfo, samsho5bRomName, neogeoInputInfo, neogeoDIPInfo,
samsho5bInit, NeoExit, NeoFrame, NeoRender, NeoScan, &NeoRecalcPalette,
nNeoScreenWidth, 224, 4, 3
};
-
:biggrin:
Thanks You iq_132
-
:biggrin:
The hope helps me to alter to this MAME SRC Modifies FBA SRC
Thanks
ROM_START( mslug5b )
ROM_REGION( 0x600000, REGION_CPU1, 0 )
ROM_LOAD16_WORD_SWAP( "268-p1b.bin", 0x000000, 0x100000, CRC(d05853ea) SHA1(8bb284d8f937b1b50d28d207f5fd262e4ed1d96c) )
ROM_CONTINUE( 0x200000, 0x100000 )
ROM_CONTINUE( 0x400000, 0x100000 )
ROM_CONTINUE( 0x300000, 0x100000 )
ROM_CONTINUE( 0x500000, 0x100000 )
ROM_REGION( 0x20000, REGION_GFX1, 0 )
ROM_FILL( 0x000000, 0x20000, 0 )
ROM_REGION( 0x20000, REGION_GFX2, 0 )
ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) )
NEO_BIOS_SOUND_64K( "268-m1_decrypted.bin", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) )
ROM_REGION( 0x1000000, REGION_SOUND1, 0 )
/* Encrypted */
ROM_LOAD( "268-v1c.bin", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
ROM_LOAD( "268-v2c.bin", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
NO_DELTAT_REGION
ROM_REGION( 0x4000000, REGION_GFX3, 0 )
/* Encrypted */
ROM_LOAD16_BYTE( "268-c1c.bin", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "268-c2c.bin", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) ) /* Plane 2,3 */
ROM_LOAD16_BYTE( "268-c3c.bin", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "268-c4c.bin", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) ) /* Plane 2,3 */
ROM_LOAD16_BYTE( "268-c5c.bin", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "268-c6c.bin", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) ) /* Plane 2,3 */
ROM_LOAD16_BYTE( "268-c7c.bin", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "268-c8c.bin", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) ) /* Plane 2,3 */
ROM_END
DRIVER_INIT( mslug5b )
{
neogeo_fix_bank_type = 1;
kof2000_neogeo_gfx_decrypt(0x19);
neo_pcm2_swap(2);
init_neogeo();
install_pvc_protection();
}
GAMEB( 2003, mslug5b, mslug5, neogeo, neogeo, neogeo, mslug5b, ROT0, "bootleg", "Metal Slug 5 (bootleg)", 0 )
ROM_START( kof2003b ) /* MVS Version - Encrypted Code & Sound & GFX */
ROM_REGION( 0x800000, REGION_CPU1, 0 )
ROM_LOAD16_WORD_SWAP( "271-p1bl.bin", 0x000000, 0x400000, CRC(92ed6ee3) SHA1(5e7e21eb40dfcc453ba73808760d5ddedd49c58a) )
ROM_LOAD16_WORD_SWAP( "271-p2bl.bin", 0x400000, 0x400000, CRC(5d3d8bb3) SHA1(7f2341f14ca12ff5721eb038b3496228a1f34b60) )
/* The Encrypted Boards do _not_ have an s1 rom, data for it comes from the Cx ROMs */
ROM_REGION( 0x80000, REGION_GFX1, 0 ) /* larger char set */
ROM_FILL( 0x000000, 0x80000, 0 )
ROM_REGION( 0x20000, REGION_GFX2, 0 )
ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) )
/* Decrypted */
NEO_BIOS_SOUND_512K( "271-m1c_decrypted.bin", CRC(4374cb5c) SHA1(d245a09fcebc8fe59f4af2de2fc30a0871e56d68) ) /* not a 100% match for encrypted version */
ROM_REGION( 0x1000000, REGION_SOUND1, 0 )
/* Encrypted */
ROM_LOAD( "271-v1c.bin", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) ) // = 8M:271-v1(1d96154b) part1
ROM_LOAD( "271-v2c.bin", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) ) // = 8M:271-v1(1d96154b) part2
NO_DELTAT_REGION
ROM_REGION( 0x4000000, REGION_GFX3, 0 )
/* Encrypted */
ROM_LOAD16_BYTE( "271-c1c.bin", 0x0000000, 0x800000, CRC(b1dc25d0) SHA1(50adc3c60d5b4b3abd10a49db2267306c6dbd772) )
ROM_LOAD16_BYTE( "271-c2c.bin", 0x0000001, 0x800000, CRC(d5362437) SHA1(66db36522dc09106388c707252df9fe1c88b4856) )
ROM_LOAD16_BYTE( "271-c3c.bin", 0x1000000, 0x800000, CRC(0a1fbeab) SHA1(9fe30d36ba98d00fda010832ff2f27783dd577c1) )
ROM_LOAD16_BYTE( "271-c4c.bin", 0x1000001, 0x800000, CRC(87b19a0c) SHA1(b72a8e7d9124ce859b5149bb4381ba481c161ea5) )
ROM_LOAD16_BYTE( "271-c5c.bin", 0x2000000, 0x800000, CRC(704ea371) SHA1(e75b80422f0d72eac826f8ffadf79efeccaab124) )
ROM_LOAD16_BYTE( "271-c6c.bin", 0x2000001, 0x800000, CRC(20a1164c) SHA1(c9843b37612a16fc95f6851793b1cfb5d49d811d) )
ROM_LOAD16_BYTE( "271-c7c.bin", 0x3000000, 0x800000, CRC(189aba7f) SHA1(7152195a57ad36b28290810fe87ed8c206262ba9) )
ROM_LOAD16_BYTE( "271-c8c.bin", 0x3000001, 0x800000, CRC(20ec4fdc) SHA1(deb5f7ec5a090e419b9d1a6a74877bee081198e2) )
ROM_END
void kof2k3b_decrypt_68k( void )
{
const unsigned int sec[] = {
0x700000, 0x000000, 0x100000, 0x200000, 0x300000, 0x400000, 0x500000, 0x600000
};
int rom_size = 0x800000;
UINT8 *rom = memory_region(REGION_CPU1);
UINT8 *buf = malloc(rom_size);
int i;
memcpy(buf, rom, rom_size);
for (i = 0; i < 0x8; i++) {
memcpy(&rom[i * 0x100000], &buf[sec], 0x100000);
}
free(buf);
}
static READ16_HANDLER( kof2k3b_prot_r )
{
return CartRAM[ 0xff9 ];
}
void install_kof2k3b_protection( void )
{
memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x058196, 0x058197, 0, 0, kof2k3b_prot_r);
}
DRIVER_INIT( kof2k3b )
{
kof2k3b_decrypt_68k();
neo_pcm2_swap(5);
neogeo_fix_bank_type = 2;
kof2000_neogeo_gfx_decrypt(0x9d);
neogeo_sfix_decrypt();
init_neogeo();
install_pvc_protection();
install_kof2k3b_protection();
}
GAMEB( 2003, kof2003b, kof2003, neogeo, neogeo, neogeo, kof2k3b, ROT0, "SNK Playmore", "The King of Fighters 2003 (MVS, bootleg)" , 0) /* Encrypted Code & Sound & GFX */
-
For these two, I need to know what pvc bankswitch code you're using (or if you're using fba plus! as a base, which version)
-
I use the FB ALPHA PLUS! V0.2.95.23 (U7] SRC Translation
-
I haven't tested these, but they should work.
// The King of Fighters 2003 (bootleg / hack, set 1)
static struct BurnRomInfo kof2003bRomDesc[] = {
{ "271-p1bl.bin", 0x400000, 0x92ed6ee3, 1 | BRF_ESS | BRF_PRG }, // 0 68K code (protected)
{ "271-p2bl.bin", 0x400000, 0x5d3d8bb3, 1 | BRF_ESS | BRF_PRG }, // 1
{ "271-c1c.bin", 0x800000, 0xb1dc25d0, 3 | BRF_GRA }, // 2 Sprite data
{ "271-c2c.bin", 0x800000, 0xd5362437, 3 | BRF_GRA }, // 3
{ "271-c3c.bin", 0x800000, 0x0a1fbeab, 3 | BRF_GRA }, // 4
{ "271-c4c.bin", 0x800000, 0x87b19a0c, 3 | BRF_GRA }, // 5
{ "271-c5c.bin", 0x800000, 0x704ea371, 3 | BRF_GRA }, // 6
{ "271-c6c.bin", 0x800000, 0x20a1164c, 3 | BRF_GRA }, // 7
{ "271-c7c.bin", 0x800000, 0x189aba7f, 3 | BRF_GRA }, // 8
{ "271-c8c.bin", 0x800000, 0x20ec4fdc, 3 | BRF_GRA }, // 9
{ "271-m1c_decrypted.bin", 0x080000, 0x4374cb5c, 4 | BRF_ESS | BRF_PRG }, // 10 Z80 code (decrypted)
{ "271-v1c.bin", 0x800000, 0xffa3f8c7, 5 | BRF_SND }, // 11 Sound data
{ "271-v2c.bin", 0x800000, 0x5382c7d1, 5 | BRF_SND }, // 12
};
STDROMPICKEXT(kof2003b, kof2003b, neogeo);
STD_ROM_FN(kof2003b);
static int kof2003bInit()
{
memset(CartRAM, 0, 0x2000);
nNeoTextROMSize = 0x080000;
nNeoProtectionXor = 0x9d;
pNeoInitCallback = kf2k3blDecrypt;
pNeoBankswitchCallback = NeoPVCBankswitch;
pNeoProtectionCallback = kf2k3blProtectionInstall;
return NeoPVCInit(4, NULL, 6, 0);
}
struct BurnDriver BurnDrvkof2003b = {
"kof2003b", "kof2003", "neogeo", "2003",
"The King of Fighters 2003 (bootleg, set 1)\0", "Bootleg of \"The King of Fighters 2003\"", "SNK Playmore", "Neo Geo",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_BOOTLEG | BDF_CLONE, 2, HARDWARE_SNK_NEOGEO | HARDWARE_SNK_ALTERNATE_TEXT | HARDWARE_SNK_ENCRYPTED_B,
NULL, kof2003bRomInfo, kof2003bRomName, neogeoInputInfo, neogeoDIPInfo,
kof2003bInit, NeoExit, NeoFrame, NeoRender, NeoScan, &NeoRecalcPalette,
nNeoScreenWidth, 224, 4, 3
};
-
:smilie:
Very grateful You iq_132 Help 。
kof2003b Error
Lack kof2003bDecrypt; Code
:biggrin:
Sorry I am Chinese English is not good
-
Change this line
pNeoInitCallback = kof2003bDecrypt;
to this
pNeoInitCallback = kf2k3blDecrypt;
-
mslug5b The picture is wrong
-
Ok, this definitely works.
// Metal Slug 5 (Bootleg)
static struct BurnRomInfo mslug5bRomDesc[] = {
{ "268-p1b.bin", 0x500000, 0xd05853ea, 1 | BRF_ESS | BRF_PRG }, // 0 68K code
{ "268-c1c.bin", 0x800000, 0xab7c389a, 3 | BRF_GRA }, // 1 Sprite data
{ "268-c2c.bin", 0x800000, 0x3560881b, 3 | BRF_GRA }, // 2
{ "268-c3c.bin", 0x800000, 0x3af955ea, 3 | BRF_GRA }, // 3
{ "268-c4c.bin", 0x800000, 0xc329c373, 3 | BRF_GRA }, // 4
{ "268-c5c.bin", 0x800000, 0x959c8177, 3 | BRF_GRA }, // 5
{ "268-c6c.bin", 0x800000, 0x010a831b, 3 | BRF_GRA }, // 6
{ "268-c7c.bin", 0x800000, 0x6d72a969, 3 | BRF_GRA }, // 7
{ "268-c8c.bin", 0x800000, 0x551d720e, 3 | BRF_GRA }, // 8
{ "268-m1_decrypted.bin", 0x10000, 0x3c0655a7, 4 | BRF_ESS | BRF_PRG }, // 10 Z80 code (decrypted)
{ "268-v1c.bin", 0x800000, 0xae31d60c, 5 | BRF_SND }, // 10 Sound data
{ "268-v2c.bin", 0x800000, 0xc40613ed, 5 | BRF_SND }, // 11
};
STDROMPICKEXT(mslug5b, mslug5b, neogeo);
STD_ROM_FN(mslug5b);
void __fastcall mslug5b_bankswitch_w(unsigned int sekAddress, unsigned short wordValue)
{
if (sekAddress == 0x2ffff2)
{
wordValue = (wordValue>>12);
if (wordValue == 2)
{
wordValue = 3;
}
else if (wordValue == 3)
{
wordValue = 2;
}
SekMapMemory(Neo68KROM + wordValue * 0x100000, 0x200000, 0x2fffff, SM_ROM);
};
}
static int mslug5bInit()
{
int nRet;
nNeoProtectionXor = 0x19;
nNeoPCM2PLAYMOREProtection = 3;
nRet = NeoInit();
if (nRet == 0) {
// special ROM banking handler
SekMapHandler(5, 0x2ffff0, 0x2fffff, SM_WRITE);
SekSetWriteWordHandler(5, mslug5b_bankswitch_w);
}
return nRet;
}
struct BurnDriver BurnDrvmslug5b = {
"mslug5b", "mslug5", "neogeo", "2003",
"Metal Slug 5 (Bootleg)\0", NULL, "SNK Playmore", "Neo Geo",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_SNK_NEOGEO | HARDWARE_SNK_ENCRYPTED_B,
NULL, mslug5bRomInfo, mslug5bRomName, neogeoInputInfo, neogeoDIPInfo,
mslug5bInit, NeoExit, NeoFrame, NeoRender, NeoScan, &NeoRecalcPalette,
nNeoScreenWidth, 224, 4, 3
};
-
:biggrin:
ok Now may the normal operation:biggrin:
Very grateful You iq_132 Help 。Thanks :biggrin:
-
:confused:
The hope helps me to alter to this MAME SRC Modifies FBA SRC
ROM_START( garoubl ) /* Bootleg of garoup */
ROM_REGION( 0x500000, REGION_CPU1, 0 )
ROM_LOAD16_WORD_SWAP( "253-p1bl.bin", 0x000000, 0x100000, CRC(fd446d59) SHA1(e37484673a935b2af76c84cd26977c751c0f8cff) )
ROM_LOAD16_WORD_SWAP( "253-p2bl.bin", 0x100000, 0x400000, CRC(3fb10a84) SHA1(4e4a4f4cd7f0ad2520c938c64c8910e6f8805eaf) )
NEO_SFIX_128K( "253-s1bl.bin", CRC(df720e33) SHA1(58d05002d4851682bd626241fa7b70f78f6f3bc8) )
NEO_BIOS_SOUND_512K( "253-m1bl.bin", CRC(7c51d002) SHA1(01ffba6cbc8da07804f7b21d8c71c39d64a1a4e2) )
ROM_REGION( 0x1000000, REGION_SOUND1, 0 )
ROM_LOAD( "253-v1bl.bin", 0x000000, 0x400000, CRC(98d736e4) SHA1(3edda9a1d45b0e38a85156d24fc8ff2f0011239b) )
ROM_LOAD( "253-v2bl.bin", 0x400000, 0x400000, CRC(eb43c03f) SHA1(83c9c168b154e60a64f1033004b2d33e218bbb8b) )
ROM_LOAD( "253-v3bl.bin", 0x800000, 0x400000, CRC(10a0f814) SHA1(e86def80d6fb2a38ebc9f3338d22f28c15ce85da) )
ROM_LOAD( "253-v4bl.bin", 0xc00000, 0x400000, CRC(8918fdd3) SHA1(60ea2104a0f993341124728d8fde0e8e937c55ef) )
NO_DELTAT_REGION
ROM_REGION( 0x4000000, REGION_GFX3, 0 )
ROM_LOAD16_BYTE( "253-c1bl.bin", 0x0000000, 0x1000000, CRC(e2ac83fa) SHA1(186f88a85d80efbb0371bd42cca152b6b59817fb) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "253-c2bl.bin", 0x0000001, 0x1000000, CRC(7c344b24) SHA1(f8af62a917e0ce2bf8ae4f17736fdd84d55d0788) ) /* Plane 2,3 */
ROM_LOAD16_BYTE( "253-c3bl.bin", 0x2000000, 0x1000000, CRC(d3aec5a6) SHA1(c1a584909a8a1519f676aa49351742b87c18276d) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "253-c4bl.bin", 0x2000001, 0x1000000, CRC(e02a242d) SHA1(8a73826d14880303a7bea2a903e842c733178aca) ) /* Plane 2,3 */
ROM_END
DRIVER_INIT( garoubl )
{
neogeo_bootleg_sx_decrypt(2);
neogeo_bootleg_cx_decrypt();
init_neogeo(machine);
}
GAMEB( 1999, garoubl, garou, neogeo, neogeo, neogeo, garoubl, ROT0, "bootleg", "Garou - Mark of the Wolves Bootleg", 0 ) /* Bootleg of garoup */
-
This one plugs straight into FBA 0.2.96.62. I'll do a build and release tonight - didn't have the necessary files to test this one last night! :)
static void garoublCallback()
{
NeogeoBootlegSXDecrypt(2);
NeogeoBootlegCXDecrypt(0x1000000 * 4);
}
static int garoublInit()
{
pNeoInitCallback = garoublCallback;
return NeoInit();
}
static struct BurnRomInfo garoublRomDesc[] = {
{ "253-p1bl.bin", 0x100000, 0xfd446d59, 1 | BRF_ESS | BRF_PRG }, // 0 68K code
{ "253-p2bl.bin", 0x400000, 0x3fb10a84, 1 | BRF_ESS | BRF_PRG }, // 1
{ "253-s1bl.bin", 0x020000, 0xdf720e33, 2 | BRF_GRA }, // 2 Text layer tiles
{ "253-c1bl.bin", 0x1000000, 0xe2ac83fa, 3 | BRF_GRA }, // 3 Sprite data
{ "253-c2bl.bin", 0x1000000, 0x7c344b24, 3 | BRF_GRA }, // 4
{ "253-c3bl.bin", 0x1000000, 0xd3aec5a6, 3 | BRF_GRA }, // 5
{ "253-c4bl.bin", 0x1000000, 0xe02a242d, 3 | BRF_GRA }, // 6
{ "253-m1bl.bin", 0x080000, 0x7c51d002, 4 | BRF_ESS | BRF_PRG }, // 11 Z80 code
{ "253-v1bl.bin", 0x400000, 0x98d736e4, 5 | BRF_SND }, // 12 Sound data
{ "253-v2bl.bin", 0x400000, 0xeb43c03f, 5 | BRF_SND }, // 13
{ "253-v3bl.bin", 0x400000, 0x10a0f814, 5 | BRF_SND }, // 14
{ "253-v4bl.bin", 0x400000, 0x8918fdd3, 5 | BRF_SND }, // 15
};
STDROMPICKEXT(garoubl, garoubl, neogeo);
STD_ROM_FN(garoubl);
struct BurnDriver BurnDrvGaroubl = {
"garoubl", "garou", "neogeo", "1999",
"Garou - mark of the wolves (bootleg)\0", NULL, "bootleg", "Neo Geo",
L"\u9913\u72FC - mark of the wolves (bootleg)\0Garou - mark of the wolves (bootleg)\0", NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_SNK_NEOGEO | HARDWARE_SNK_SRAM,
NULL, garoublRomInfo, garoublRomName, neogeoInputInfo, neogeoDIPInfo,
garoublInit, NeoExit, NeoFrame, NeoRender, NeoScan, &NeoRecalcPalette,
nNeoScreenWidth, 224, 4, 3
};
-
:biggrin:
Thanks Topic Summary