Final Burn Neo > FBN Development

Helps me MAME SRC Modifies FBA SRC

<< < (2/4) > >>

iq_132:
This should work...


--- Code: ---// 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
};

--- End code ---


--- Code: ---// 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
};

--- End code ---

KOF2112:
 :biggrin:
Thanks You iq_132

KOF2112:
 :biggrin:
The hope helps me to alter to this  MAME SRC Modifies FBA SRC

Thanks

--- Quote ---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 )

--- End quote ---



--- Quote ---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 */

--- End quote ---

iq_132:
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)

KOF2112:
I use the FB ALPHA PLUS! V0.2.95.23 (U7] SRC Translation

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version