Jump to content

Mame Neogeo


James

Recommended Posts

Samurai Shodown V Special

 

 

ROM_START( samsh5sp )
       ROM_REGION( 0x800000, REGION_CPU1, 0 )
       ROM_LOAD16_WORD_SWAP( "272-p1.bin", 0x000000, 0x400000, CRC(9291794d) SHA1(66588ff9b00ffad6508b03423548984e28a3209d) )
ROM_LOAD16_WORD_SWAP( "272-p2.bin", 0x400000, 0x400000, CRC(fa1a7dd8) SHA1(62443dad76d6c1e18f515d7d4ef8e1295a4b7f1d) )

       ROM_REGION( 0x80000, REGION_GFX1, 0 )
ROM_FILL(                                 0x000000, 0x20000, 0 )
ROM_REGION( 0x20000, REGION_GFX2, 0 )
ROM_LOAD( "sfix.sfx",  0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) )
       
/* The M1 ROM is encrypted, we load it here for reference and replace it with a decrypted version */
ROM_REGION( 0x80000, REGION_USER4, 0 )
ROM_LOAD( "272-m1.bin", 0x00000, 0x80000, CRC(adeebf40) SHA1(8cbd63dda3fff4de38060405bf70cd9308c9e66e) )
NEO_BIOS_SOUND_512K( "272-m1d.bin", CRC(203d744e) SHA1(24fc73943009effa14eed0f7a29955f349ca8e8f) ) /* Correct ? */

ROM_REGION( 0X1000000, REGION_SOUND1, ROMREGION_SOUNDONLY )
       /* encrypted */
ROM_LOAD( "272-v1.bin", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) )
ROM_LOAD( "272-v2.bin", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) )

NO_DELTAT_REGION

       ROM_REGION( 0x4000000, REGION_GFX3, 0 )
/* Encrypted */
       ROM_LOAD16_BYTE( "272-c1.bin", 0x0000000, 0x800000, CRC(4f97661a) SHA1(87f1721bae5ef16bc23c06b05e64686c396413df) ) /* Plane 0,1 */ 
       ROM_LOAD16_BYTE( "272-c2.bin", 0x0000001, 0x800000, CRC(a3afda4f) SHA1(86b475fce0bc0aa04d34e31324e8c7c7c847df19) ) /* Plane 2,3 */
       ROM_LOAD16_BYTE( "272-c3.bin", 0x1000000, 0x800000, CRC(8c3c7502) SHA1(6639020a8860d2400308e110d7277cbaf6eccc2a) ) /* Plane 0,1 */
       ROM_LOAD16_BYTE( "272-c4.bin", 0x1000001, 0x800000, CRC(32d5e2e2) SHA1(2b5612017152afd7433aaf99951a084ef5ad6bf0) ) /* Plane 2,3 */
       ROM_LOAD16_BYTE( "272-c5.bin", 0x2000000, 0x800000, CRC(6ce085bc) SHA1(0432b04a2265c649bba1bbd934dfb425c5d80fb1) ) /* Plane 0,1 */
       ROM_LOAD16_BYTE( "272-c6.bin", 0x2000001, 0x800000, CRC(05c8dc8e) SHA1(da45c222893f25495a66bdb302f9b0b1de3c8ae0) ) /* Plane 2,3 */
       ROM_LOAD16_BYTE( "272-c7.bin", 0x3000000, 0x800000, CRC(1417b742) SHA1(dfe35eb4bcd022d2f2dc544ccbbb77078f08c0aa) ) /* Plane 0,1 */
       ROM_LOAD16_BYTE( "272-c8.bin", 0x3000001, 0x800000, CRC(d49773cd) SHA1(cd8cf3b762d381c1f8f12919579c84a7ef7efb3f) ) /* Plane 2,3 */
ROM_END



// © PLAYMORE 2002 20-09-2004
static void neo_pcm2_playmore_2002(int value)
{
       //kof2002,matrimelee,mslug5 (pcb and mvs),samsho5,svcchaos (pcb and mvs),kof2003 (pcb and mvs),samsh5sp (mvs and aes)
       //offset,xor address
       unsigned int addrs[7][2]={
                {0x000000,0xA5000}, //kof2002
                {0xFFCE20,0x01000}, //matrimelee
                {0xFE2CF6,0x4E001}, //mslug5
                {0xFEB2C0,0x0A000}, //samsho5
                {0xFFAC28,0xC2000}, //svcchaos
                {0xFF14EA,0xA7001}, //kof2003
                {0xFFB440,0x02000}, //samsh5sp
                };
       unsigned int xordata[7][8]={
                {0xF9,0xE0,0x5D,0xF3,0xEA,0x92,0xBE,0xEF}, //kof2002
                {0xC4,0x83,0xA8,0x5F,0x21,0x27,0x64,0xAF}, //matrimelee
                {0xC3,0xFD,0x81,0xAC,0x6D,0xE7,0xBF,0x9E}, //mslug5
                {0xCB,0x29,0x7D,0x43,0xD2,0x3A,0xC2,0xB4}, //samsho5
                {0xC3,0xFD,0x81,0xAC,0x6D,0xE7,0xBF,0x9E}, //svcchaos
                {0x4B,0xA4,0x63,0x46,0xF0,0x91,0xEA,0x62}, //kof2003
                {0x4B,0xA4,0x63,0x46,0xF0,0x91,0xEA,0x62}, //samsh5sp
                };

UINT8 *src = memory_region(REGION_SOUND1);
UINT8 *buf = malloc(0x1000000);
int i, j, d;

       memcpy(buf,src,0x1000000);
       for (i=0;i<0x1000000;i++){
           j=BITSWAP24(i,23,22,21,20,19,18,17,0,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,16);
           j=j^addrs[value][1];
           d=((i+addrs[value][0])&0xffffff);
           src[j]=buf[d]^xordata[value][j&0x7];
       }
       free(buf);
}


DRIVER_INIT( samsh5sp )
{
/* Descrambling Px by Vorador from speksnk Converted to Mame code by James */
UINT8 *src = memory_region(REGION_CPU1);
UINT8 *dst = malloc(0x800000);
int i;
unsigned int sec[]={0x0,0x1,0xA,0x9,0xC,0xB,0xE,0x5,0x2,0xD,0x8,0xF,0x4,0x7,0x6,0x3};
if (dst)
{
 memcpy(dst,src,0x800000);

 for(i=0;i<0x10;i++)
 {
 	memcpy(src+i*0x80000,dst+sec[i]*0x80000,0x80000);
 }
 free(dst);
}
neogeo_fix_bank_type = 1;
kof2000_neogeo_gfx_decrypt(0x0d);
neo_pcm2_playmore_2002(6); // samsh5sp
init_neogeo();
}




GAMEB( 2004, samsh5sp, neogeo,  neogeo, neogeo, neogeo, samsh5sp, ROT0, "Playmore Corporation / Yuki Enterprise", "Samurai Shodown V Special" )

 

 

Find this in machine\neogeo.c

 /* hacks to make the games which do protection checks run in arcade mode */
/* we write protect a SRAM location so it cannot be set to 1 */
sram_protection_hack = ~0;
if (	!strcmp(Machine->gamedrv->name,"fatfury3") ||

 

 

add this after

!strcmp(Machine->gamedrv->name,"samsh5sp") ||

Link to comment
Share on other sites

  • 4 months later...
  • Replies 44
  • Created
  • Last Reply

Top Posters In This Topic

sorry to disturb you with this stupid question

but can someone post the editet files in an zip archiev...

iv tried to patch my source, but it seems that im to dumb :P

 

whould be nice if someone can do it for me

cya

No, because we don't provide files that are illegal. If you want to have those games in your MAME, you'll have to compile yourself.

Link to comment
Share on other sites

  • 3 months later...

kof2003a ( Set 2 MVS )

 

Thanks to IQ_132 http://neosource.1emulation.com/forums/index.php?topic=490.0

 

ROM_START( kof2003a ) /* Encrypted Code + Sound + GFX Roms */
ROM_REGION( 0x900000, REGION_CPU1, 0 )
ROM_LOAD32_WORD_SWAP( "271-p1c.bin", 0x000000, 0x400000, CRC(530ecc14) SHA1(812cf7e9902af3f5e9e330b7c05c2171b139ad2b) )
ROM_LOAD32_WORD_SWAP( "271-p2c.bin", 0x000002, 0x400000, CRC(fd568da9) SHA1(46364906a1e81dc251117e91a1a7b43af1373ada) )
ROM_LOAD16_WORD_SWAP( "271-p3c.bin", 0x800000, 0x100000, CRC(aec5b4a9) SHA1(74087f785590eda5898ce146029818f86ced42b6) ) // Encrypted
ROM_LOAD16_WORD_SWAP( "271-p3d.bin", 0x800000, 0x100000, CRC(59d376da) SHA1(3c3ad0b79e8b37e838893a8f7b87e11d7eeee8f2) ) // Decrypted

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

ROM_REGION( 0x080000, REGION_USER4, 0 )
/* The M1 ROM is encrypted, we load it here for reference and replace it with a decrypted version */
ROM_LOAD( "271-m1c.bin", 0x00000, 0x080000, CRC(F5515629) SHA1(7516bf1b0207a3c8d41dc30c478f8d8b1f71304b) )
/* Decrypted */
NEO_BIOS_SOUND_512K( "271-m1c_decrypted.bin", CRC(4374CB5C) SHA1(d245a09fcebc8fe59f4af2de2fc30a0871e56d68) ) // Not 100%

ROM_REGION( 0x1000000, REGION_SOUND1, 0 )
/* Encrypted */
ROM_LOAD( "271-v1c.bin", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) )
ROM_LOAD( "271-v2c.bin", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) )

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


static void neo_pcm2_swap(int value) /* 0=kof2002, 1=matrim, 2=mslug5, 3=samsho5, 4=svcchaos, 5=kof2003, 6=samsh5sp */
{
unsigned int addrs[7][2]={
 {0x000000,0xA5000},
               {0xFFCE20,0x01000},
               {0xFE2CF6,0x4E001},
               {0xFEB2C0,0x0A000},
               {0xFFAC28,0xC2000},
               {0xFF14EA,0xA7001},
               {0xFFB440,0x02000},
               };
      unsigned int xordata[7][8]={
               {0xF9,0xE0,0x5D,0xF3,0xEA,0x92,0xBE,0xEF},
               {0xC4,0x83,0xA8,0x5F,0x21,0x27,0x64,0xAF},
               {0xC3,0xFD,0x81,0xAC,0x6D,0xE7,0xBF,0x9E},
               {0xCB,0x29,0x7D,0x43,0xD2,0x3A,0xC2,0xB4},
               {0xC3,0xFD,0x81,0xAC,0x6D,0xE7,0xBF,0x9E},
               {0x4B,0xA4,0x63,0x46,0xF0,0x91,0xEA,0x62},
               {0x4B,0xA4,0x63,0x46,0xF0,0x91,0xEA,0x62},
               };
UINT8 *src = memory_region(REGION_SOUND1);
UINT8 *buf = malloc(0x1000000);
int i, j, d;

memcpy(buf,src,0x1000000);
for (i=0;i<0x1000000;i++)
{
 j=BITSWAP24(i,23,22,21,20,19,18,17,0,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,16);
 j=j^addrs[value][1];
 d=((i+addrs[value][0])&0xffffff);
 src[j]=buf[d]^xordata[value][j&0x7];
}
free(buf);
}


void kof2003a_px_decrypt( void )
{
int i,j;
UINT8 *src = memory_region( REGION_CPU1 );
UINT8 *dst = malloc(0x900000);

for(i = 0; i < 0x100000; i++)
 dst[i] = src[i] ^ 0xFF ^ src[ 0x0FFFE0 + (i % 0x20)];

for(i = 0x100000; i < 0x800000; i++)
 dst[i] = src[i] ^ 0xFF ^ src[ 0x7FFFE0 + (i % 0x20)];

for(i = 0x100000; i < 0x800000; i += 4) {
 UINT16 *rom16 = (UINT16*)&dst[i + 1];
 *rom16 = (*rom16&0xF00F) | BITSWAP8((*rom16>>4)&0xFF, 1, 0, 3, 2, 5, 4, 7, 6)<<4;
}

for(i = 0; i < 0x10; i++) {
 j = (i & 0xf0) + BITSWAP8((i & 0x0f), 7, 6, 5, 4, 0, 1, 2, 3);
 memcpy(src + i * 0x10000, dst + j * 0x10000, 0x10000);
}

memcpy(src + 0x100000, src + 0x800000, 0x100000);

for(i = 0x100000; i < 0x800000; i += 0x100) {
 j = (i & 0xf000ff) + ((i & 0x000f00) ^ 0x00800)
	 + (BITSWAP8(((i & 0x0ff000) >> 12), 4, 5, 6, 7, 1, 0, 3, 2) << 12);
 memcpy(src + i + 0x100000, dst + j, 0x100);
}

free(dst);
}



DRIVER_INIT( kof2003a )
{
kof2003a_px_decrypt();
neo_pcm2_swap(5);
neogeo_fix_bank_type = 2;
kof2000_neogeo_gfx_decrypt(0x9d);

init_neogeo();

memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2fe000, 0x2fffff, 0, 0, pvc_prot_r);
memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2fe000, 0x2fffff, 0, 0, pvc_prot_w);
}


GAMEB( 2003, kof2003a, kof2003, neogeo, neogeo, neogeo,  kof2003a,   ROT0, "SNK Playmore", "The King of Fighters 2003 (set 2)", 0 )	/* Encrypted Code & GFX */

Link to comment
Share on other sites

  • 10 months later...

Hey guys.. excuse me if I'm interfering with your talk.. but what the hell means all those commands??? .... I've always seen those things related to roms encrypt or kinda.... but would you explain it to me in a not very confusing way.. --- although I'm not as stupid as I seem .. lol! ---

Link to comment
Share on other sites

  • 1 month later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...