Author Topic: Helps me MAME SRC Modifies FBA SRC  (Read 14733 times)

Offline KOF2112

  • Expert
  • *****
  • Posts: 187
  • Karma: +14/-4
Helps me MAME SRC Modifies FBA SRC
« on: May 01, 2006, 11:12:07 AM »
The hope helps me to alter to this  MAME SRC Modifies FBA SRC

Thanks

Code: [Select]
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 )
« Last Edit: May 01, 2006, 01:27:16 PM by iq_132 »

Offline iq_132

  • Administrator
  • *****
  • Posts: 3724
  • Karma: +411/-0
  • Definitely not Dink!
    • NeoSource
Re: Helps me MAME SRC Modifies FBA SRC
« Reply #1 on: May 01, 2006, 01:27:40 PM »
Here's what I had for this game:

Code: [Select]
//==============================
// 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
};


Offline KOF2112

  • Expert
  • *****
  • Posts: 187
  • Karma: +14/-4
Re: Helps me MAME SRC Modifies FBA SRC
« Reply #2 on: May 01, 2006, 02:47:15 PM »
 :biggrin:Thanks You iq_132

Offline KOF2112

  • Expert
  • *****
  • Posts: 187
  • Karma: +14/-4
Re: Helps me MAME SRC Modifies FBA SRC
« Reply #3 on: June 23, 2006, 10:34:20 PM »
 :wink:
The hope helps me to alter to this  MAME SRC Modifies FBA SRC

Thanks
Quote
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();
}
Quote
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 */



Offline KOF2112

  • Expert
  • *****
  • Posts: 187
  • Karma: +14/-4
Re: Helps me MAME SRC Modifies FBA SRC
« Reply #4 on: June 23, 2006, 10:37:36 PM »
The hope helps me to alter to this  MAME SRC Modifies FBA SRC

Thanks

Quote
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();
}

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

Offline iq_132

  • Administrator
  • *****
  • Posts: 3724
  • Karma: +411/-0
  • Definitely not Dink!
    • NeoSource
Re: Helps me MAME SRC Modifies FBA SRC
« Reply #5 on: June 24, 2006, 02:39:41 AM »
This should work...

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

Code: [Select]
// 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
};
« Last Edit: June 24, 2006, 02:55:50 AM by iq_132 »


Offline KOF2112

  • Expert
  • *****
  • Posts: 187
  • Karma: +14/-4
Re: Helps me MAME SRC Modifies FBA SRC
« Reply #6 on: June 24, 2006, 05:46:25 AM »
 :biggrin:
Thanks You iq_132

Offline KOF2112

  • Expert
  • *****
  • Posts: 187
  • Karma: +14/-4
Re: Helps me MAME SRC Modifies FBA SRC
« Reply #7 on: July 19, 2006, 11:24:06 AM »
 :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 )


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

Offline iq_132

  • Administrator
  • *****
  • Posts: 3724
  • Karma: +411/-0
  • Definitely not Dink!
    • NeoSource
Re: Helps me MAME SRC Modifies FBA SRC
« Reply #8 on: July 19, 2006, 08:27:05 PM »
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)


Offline KOF2112

  • Expert
  • *****
  • Posts: 187
  • Karma: +14/-4
Re: Helps me MAME SRC Modifies FBA SRC
« Reply #9 on: July 19, 2006, 11:53:52 PM »
I use the FB ALPHA PLUS! V0.2.95.23 (U7] SRC Translation

Offline iq_132

  • Administrator
  • *****
  • Posts: 3724
  • Karma: +411/-0
  • Definitely not Dink!
    • NeoSource
Re: Helps me MAME SRC Modifies FBA SRC
« Reply #10 on: July 20, 2006, 11:19:24 AM »
I haven't tested these, but they should work.

Code: [Select]
// 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
};
« Last Edit: July 21, 2006, 08:06:17 AM by iq_132 »


Offline KOF2112

  • Expert
  • *****
  • Posts: 187
  • Karma: +14/-4
Re: Helps me MAME SRC Modifies FBA SRC
« Reply #11 on: July 20, 2006, 01:06:48 PM »
 :smilie:
Very grateful You iq_132 Help 。

kof2003b Error

 Lack kof2003bDecrypt; Code

 :biggrin:
Sorry I am Chinese English is not good



Offline iq_132

  • Administrator
  • *****
  • Posts: 3724
  • Karma: +411/-0
  • Definitely not Dink!
    • NeoSource
Re: Helps me MAME SRC Modifies FBA SRC
« Reply #12 on: July 20, 2006, 10:10:11 PM »
Change this line
   pNeoInitCallback = kof2003bDecrypt;

to this

   pNeoInitCallback = kf2k3blDecrypt;


Offline KOF2112

  • Expert
  • *****
  • Posts: 187
  • Karma: +14/-4
Re: Helps me MAME SRC Modifies FBA SRC
« Reply #13 on: July 21, 2006, 03:33:41 AM »
mslug5b The picture is wrong

Offline iq_132

  • Administrator
  • *****
  • Posts: 3724
  • Karma: +411/-0
  • Definitely not Dink!
    • NeoSource
Re: Helps me MAME SRC Modifies FBA SRC
« Reply #14 on: July 21, 2006, 08:06:41 AM »
Ok, this definitely works.

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