Welcome!

General Emulation => MAME => Topic started by: oliverkof on September 21, 2005, 09:56:25 PM

Title: Help: mslug5nd & svcnd for mame
Post by: oliverkof on September 21, 2005, 09:56:25 PM
Hello,

Here below are 2 drivers for mslug5nd & svcnd. It works ok.

But when i try to use the decrypted p rom and remove:
   mslug5_px_decrypt();
   svcchaos_px_decrypt();

It doesn't work at all!!!!!!!!!!!!!!!!!! :idiot: :redface:

Anyone can help me!!!!!!!!!!!!!!!!! :eek:


Code: [Select]
ROM_START( mslug5nd )
ROM_REGION( 0x800000, REGION_CPU1, 0 )
ROM_LOAD32_WORD_SWAP( "268-p1.bin", 0x000000, 0x400000, CRC(d0466792) SHA1(880819933d997fab398f91061e9dbccb959ae8a1) )
ROM_LOAD32_WORD_SWAP( "268-p2.bin", 0x000002, 0x400000, CRC(fbf6b61e) SHA1(9ec743d5988b5e3183f37f8edf45c72a8c0c893e) )
//      ROM_REGION( 0x500000, REGION_CPU1, 0 )
//      ROM_LOAD16_WORD_SWAP( "268-p1d.bin", 0x000000, 0x100000, CRC(e6d297af) SHA1(5bb3f72ce26e3f46c523b955f425056eb246e855) )
// ROM_LOAD16_WORD_SWAP( "268-p2d.bin", 0x100000, 0x400000, CRC(768ee64a) SHA1(76a65a69aee749758a2101aabdd44f3404838b54) )

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_512K( "268-m1_decrypted.bin", CRC(2f621a2b) SHA1(e88f645b4935157608c32843f203180c796f5304) )

ROM_REGION( 0x1000000, REGION_SOUND1, ROMREGION_SOUNDONLY )
ROM_LOAD( "268-v1d.bin", 0x000000, 0x800000, CRC(7ff6ca47) SHA1(e36c4e6a349dd9fd38d1a36b6760bbd943c2a42f) )
ROM_LOAD( "268-v2d.bin", 0x800000, 0x800000, CRC(696cce3b) SHA1(538d4a25befa4ffd25a48df97380469c13980f7a) )

        NO_DELTAT_REGION

        ROM_REGION( 0x4000000, REGION_GFX3, 0 )
        ROM_LOAD16_BYTE( "268-c1d.bin", 0x0000000, 0x800000, CRC(e8239365) SHA1(e0a75902a783110049730b66ad3cbccdd804bf62) ) /* Plane 0,1 */
        ROM_LOAD16_BYTE( "268-c2d.bin", 0x0000001, 0x800000, CRC(89b21d4c) SHA1(862ac31ce9570529b33e6f58ada0ac867a442679) ) /* Plane 2,3 */
        ROM_LOAD16_BYTE( "268-c3d.bin", 0x1000000, 0x800000, CRC(3cda13a0) SHA1(5d029c92688384eafd65ad711a2954d0b86a3163) ) /* Plane 0,1 */
        ROM_LOAD16_BYTE( "268-c4d.bin", 0x1000001, 0x800000, CRC(9c00160d) SHA1(c612102f9cd288bba4c245b5855d795e4362b217) ) /* Plane 2,3 */
        ROM_LOAD16_BYTE( "268-c5d.bin", 0x2000000, 0x800000, CRC(38754256) SHA1(744d91d041998ca27ee2781188746797c65377bd) ) /* Plane 0,1 */
        ROM_LOAD16_BYTE( "268-c6d.bin", 0x2000001, 0x800000, CRC(59d33e9c) SHA1(ed7f5c7db4c35ec5a7db0ad5436110b3fe80b89a) ) /* Plane 2,3 */
        ROM_LOAD16_BYTE( "268-c7d.bin", 0x3000000, 0x800000, CRC(c9f8c357) SHA1(7064224afa887f57245f5479b0b46228539a131b) ) /* Plane 0,1 */
        ROM_LOAD16_BYTE( "268-c8d.bin", 0x3000001, 0x800000, CRC(fafc3eb9) SHA1(f4f73194cc7fd151be3ca2561f993b5be7628369) ) /* Plane 2,3 */
ROM_END

ROM_START( svcnd )
ROM_REGION( 0x2000000, REGION_CPU1, 0 )
ROM_LOAD16_WORD_SWAP( "269-p1.bin", 0x000000, 0x2000000, CRC(432cfdfc) SHA1(19b40d32188a8bace6d2d570c6cf3d2f1e31e379) )
// ROM_REGION( 0x600000, REGION_CPU1, 0 )
// ROM_LOAD16_WORD_SWAP( "269-p1d.bin", 0x000000, 0x200000, CRC(c56087c2) SHA1(24294ee842759b93e9149b641477748fd7ff1aeb) )
// ROM_LOAD16_WORD_SWAP( "269-p2d.bin", 0x200000, 0x400000, CRC(2d32879b) SHA1(a908cdc715b13dc76d23611359e7f3637b1123ba) )

ROM_REGION( 0x80000, REGION_GFX1, 0 )
ROM_FILL(                 0x000000, 0x80000, 0 )
ROM_REGION( 0x20000, REGION_GFX2, 0 )
ROM_LOAD( "sfix.sfx",  0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) )

NEO_BIOS_SOUND_128K( "269-m1d.bin", CRC(fd4f0ff9) SHA1(e97e864aaa4789d854363512986e80c0606da996) )

ROM_REGION( 0x1000000, REGION_SOUND1, ROMREGION_SOUNDONLY )
ROM_LOAD( "269-v1d.bin", 0x000000, 0x800000, CRC(ff64cd56) SHA1(e2754c554ed5ca14c2020c5d931021d5ac82660c) )
ROM_LOAD( "269-v2d.bin", 0x800000, 0x800000, CRC(a8dd6446) SHA1(8972aab271c33f8af344bffe6359d9ddc4b8af2e) )

NO_DELTAT_REGION

ROM_REGION( 0x4000000, REGION_GFX3, 0 )
ROM_LOAD16_BYTE( "269-c1d.bin", 0x0000000, 0x800000, CRC(465d473b) SHA1(0b2be2b2657c2ae021ec91515d1d6306179751d5) )
ROM_LOAD16_BYTE( "269-c2d.bin", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(df1b096fe95796db1515b69f74266ed13dd9ee56) )
ROM_LOAD16_BYTE( "269-c3d.bin", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(a19788435173540469fe5d07429a83dde6d701a0) )
ROM_LOAD16_BYTE( "269-c4d.bin", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98d8dac2e40f71b5b8426d3c77476a0a20783181) )
ROM_LOAD16_BYTE( "269-c5d.bin", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(eed45e1330dcc9f610598dc53977bf3a81dd161a) )
ROM_LOAD16_BYTE( "269-c6d.bin", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8aaa1b9ea34470085d9944c9ad64cfb0ffe09859) )
ROM_LOAD16_BYTE( "269-c7d.bin", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74cb0d57060d25e35f76a9820f607633bd1b9c2c) )
ROM_LOAD16_BYTE( "269-c8d.bin", 0x3000001, 0x800000, CRC(de99e613) SHA1(f28c6af4a31a937e5b441d4b860e3ccca725f27a) )
ROM_END

DRIVER_INIT( mslug5nd )
{
mslug5_px_decrypt();
neogeo_sfix_decrypt();
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);

init_neogeo();
}


DRIVER_INIT( svcnd )
{
int i;
UINT8 *s1;
size_t s1_size;

        extern int neogeo_fix_bank_type;
int tx_size = memory_region_length(REGION_GFX1);
        int rom_size = memory_region_length(REGION_GFX3);
UINT8 *src = memory_region(REGION_GFX3)+rom_size-tx_size;
UINT8 *dst = memory_region(REGION_GFX1);

for (i = 0;i < tx_size;i++)
dst[i] = src[(i & ~0x1f) + ((i & 7) << 2) + ((~i & 8) >> 2) + ((i & 0x10) >> 4)];

s1 = memory_region( REGION_GFX1 );
s1_size = memory_region_length( REGION_GFX1 );

for( i = 0; i < s1_size; i++ ){
s1[ i ] = BITSWAP8( s1[ i ] ^ 0xd2, 4, 0, 7, 2, 5, 1, 6, 3 ); }

svcchaos_px_decrypt();
neogeo_fix_bank_type = 2;
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, mslug5nd, mslug5,   neogeo, neogeo, neogeo,  mslug5nd, ROT0, "SNK Playmore", "Metal Slug 5 (fully decrypted)" )
GAMEB( 2003, svcnd,    svcchaos, neogeo, neogeo, neogeo,  svcnd,    ROT0, "SNK Playmore", "SNK Vs. CAPCOM SVC CHAOS (fully decrypted)" )
Title: Re: Help: mslug5nd & svcnd for mame
Post by: iq_132 on September 21, 2005, 11:41:47 PM
Replace these:
   mslug5_px_decrypt();
   svcchaos_px_decrypt();

with this:
Code: [Select]
// hack the decrypted P data to fix bankswitch offsets
UINT8 *SRC = memory_region( REGION_CPU1 );
memcpy (src + 0x200000, src + 0x100000, 0x500000);

This should work, defintely let me know if it doesn't...
Title: Re: Help: mslug5nd & svcnd for mame
Post by: oliverkof on September 22, 2005, 09:35:05 PM
iq_132, Thank you very much!

Based on your suggestion, i arrange the drivers as below:

But it still doesn't work! :idiot:
After roms has been loaded, it just returns back to the emulator (not in the game) :idiot:

What i need to adjust further???  :idiot: :idiot: :idiot:

Drivers:

ROM_START( mslug5nd )
   ROM_REGION( 0x500000, REGION_CPU1, 0 )
   ROM_LOAD16_WORD_SWAP( "268-p1d.bin", 0x000000, 0x100000, CRC(e6d297af) SHA1(5bb3f72ce26e3f46c523b955f425056eb246e855) )
   ROM_LOAD16_WORD_SWAP( "268-p2d.bin", 0x100000, 0x400000, CRC(768ee64a) SHA1(76a65a69aee749758a2101aabdd44f3404838b54) )

   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_512K( "268-m1_decrypted.bin", CRC(2f621a2b) SHA1(e88f645b4935157608c32843f203180c796f5304) )

   ROM_REGION( 0x1000000, REGION_SOUND1, ROMREGION_SOUNDONLY )
   ROM_LOAD( "268-v1d.bin", 0x000000, 0x800000, CRC(7ff6ca47) SHA1(e36c4e6a349dd9fd38d1a36b6760bbd943c2a42f) )
   ROM_LOAD( "268-v2d.bin", 0x800000, 0x800000, CRC(696cce3b) SHA1(538d4a25befa4ffd25a48df97380469c13980f7a) )

        NO_DELTAT_REGION

        ROM_REGION( 0x4000000, REGION_GFX3, 0 )
        ROM_LOAD16_BYTE( "268-c1d.bin", 0x0000000, 0x800000, CRC(e8239365) SHA1(e0a75902a783110049730b66ad3cbccdd804bf62) ) /* Plane 0,1 */
        ROM_LOAD16_BYTE( "268-c2d.bin", 0x0000001, 0x800000, CRC(89b21d4c) SHA1(862ac31ce9570529b33e6f58ada0ac867a442679) ) /* Plane 2,3 */
        ROM_LOAD16_BYTE( "268-c3d.bin", 0x1000000, 0x800000, CRC(3cda13a0) SHA1(5d029c92688384eafd65ad711a2954d0b86a3163) ) /* Plane 0,1 */
        ROM_LOAD16_BYTE( "268-c4d.bin", 0x1000001, 0x800000, CRC(9c00160d) SHA1(c612102f9cd288bba4c245b5855d795e4362b217) ) /* Plane 2,3 */
        ROM_LOAD16_BYTE( "268-c5d.bin", 0x2000000, 0x800000, CRC(38754256) SHA1(744d91d041998ca27ee2781188746797c65377bd) ) /* Plane 0,1 */
        ROM_LOAD16_BYTE( "268-c6d.bin", 0x2000001, 0x800000, CRC(59d33e9c) SHA1(ed7f5c7db4c35ec5a7db0ad5436110b3fe80b89a) ) /* Plane 2,3 */
        ROM_LOAD16_BYTE( "268-c7d.bin", 0x3000000, 0x800000, CRC(c9f8c357) SHA1(7064224afa887f57245f5479b0b46228539a131b) ) /* Plane 0,1 */
        ROM_LOAD16_BYTE( "268-c8d.bin", 0x3000001, 0x800000, CRC(fafc3eb9) SHA1(f4f73194cc7fd151be3ca2561f993b5be7628369) ) /* Plane 2,3 */
ROM_END

ROM_START( svcnd )
   ROM_REGION( 0x600000, REGION_CPU1, 0 )
   ROM_LOAD16_WORD_SWAP( "269-p1d.bin", 0x000000, 0x200000, CRC(c56087c2) SHA1(24294ee842759b93e9149b641477748fd7ff1aeb) )
   ROM_LOAD16_WORD_SWAP( "269-p2d.bin", 0x200000, 0x400000, CRC(2d32879b) SHA1(a908cdc715b13dc76d23611359e7f3637b1123ba) )

   ROM_REGION( 0x80000, REGION_GFX1, 0 )
   ROM_FILL(                 0x000000, 0x80000, 0 )
   ROM_REGION( 0x20000, REGION_GFX2, 0 )
   ROM_LOAD( "sfix.sfx",  0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) )
   
   NEO_BIOS_SOUND_128K( "269-m1d.bin", CRC(fd4f0ff9) SHA1(e97e864aaa4789d854363512986e80c0606da996) )

   ROM_REGION( 0x1000000, REGION_SOUND1, ROMREGION_SOUNDONLY )
   ROM_LOAD( "269-v1d.bin", 0x000000, 0x800000, CRC(ff64cd56) SHA1(e2754c554ed5ca14c2020c5d931021d5ac82660c) )
   ROM_LOAD( "269-v2d.bin", 0x800000, 0x800000, CRC(a8dd6446) SHA1(8972aab271c33f8af344bffe6359d9ddc4b8af2e) )

   NO_DELTAT_REGION

   ROM_REGION( 0x4000000, REGION_GFX3, 0 )
   ROM_LOAD16_BYTE( "269-c1d.bin", 0x0000000, 0x800000, CRC(465d473b) SHA1(0b2be2b2657c2ae021ec91515d1d6306179751d5) )
   ROM_LOAD16_BYTE( "269-c2d.bin", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(df1b096fe95796db1515b69f74266ed13dd9ee56) )
   ROM_LOAD16_BYTE( "269-c3d.bin", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(a19788435173540469fe5d07429a83dde6d701a0) )
   ROM_LOAD16_BYTE( "269-c4d.bin", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98d8dac2e40f71b5b8426d3c77476a0a20783181) )
   ROM_LOAD16_BYTE( "269-c5d.bin", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(eed45e1330dcc9f610598dc53977bf3a81dd161a) )
   ROM_LOAD16_BYTE( "269-c6d.bin", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8aaa1b9ea34470085d9944c9ad64cfb0ffe09859) )
   ROM_LOAD16_BYTE( "269-c7d.bin", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74cb0d57060d25e35f76a9820f607633bd1b9c2c) )
   ROM_LOAD16_BYTE( "269-c8d.bin", 0x3000001, 0x800000, CRC(de99e613) SHA1(f28c6af4a31a937e5b441d4b860e3ccca725f27a) )
ROM_END

void decrypted_p(void)
{
   UINT8 *src = memory_region( REGION_CPU1 );
   memcpy (src + 0x200000, src + 0x100000, 0x500000);
}

DRIVER_INIT( mslug5nd )
{
   decrypted_p();
   neogeo_sfix_decrypt();
   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);

   init_neogeo();
}


DRIVER_INIT( svcnd )
{
   int i;
   UINT8 *s1;
   size_t s1_size;

   extern int neogeo_fix_bank_type;
   int tx_size = memory_region_length(REGION_GFX1);
    int rom_size = memory_region_length(REGION_GFX3);
   UINT8 *src = memory_region(REGION_GFX3)+rom_size-tx_size;
   UINT8 *dst = memory_region(REGION_GFX1);

   for (i = 0;i < tx_size;i++)
      dst = src[(i & ~0x1f) + ((i & 7) << 2) + ((~i & 8) >> 2) + ((i & 0x10) >> 4)];

   s1 = memory_region( REGION_GFX1 );
   s1_size = memory_region_length( REGION_GFX1 );

   for( i = 0; i < s1_size; i++ ){
      s1[ i ] = BITSWAP8( s1[ i ] ^ 0xd2, 4, 0, 7, 2, 5, 1, 6, 3 ); }

   decrypted_p();
   neogeo_fix_bank_type = 2;
   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, mslug5nd, mslug5,   neogeo, neogeo, neogeo,  mslug5nd, ROT0, "SNK Playmore", "Metal Slug 5 (fully decrypted)" )
GAMEB( 2003, svcnd,    svcchaos, neogeo, neogeo, neogeo,  svcnd,    ROT0, "SNK Playmore", "SNK Vs. CAPCOM SVC CHAOS (fully decrypted)" )
Title: Re: Help: mslug5nd & svcnd for mame
Post by: neo04 on September 22, 2005, 10:54:50 PM
/* driver updated by neo04 */
DRIVER_INIT( mslug5nd )
{
        UINT8 *rom = memory_region(REGION_CPU1);
        UINT8 *dst = malloc(0x600000);
        int i;
        unsigned int sec[]={0x000000,0x500000,0x100000,0x200000,0x300000,0x400000}; // 268-p2d.bin crc:768ee64a
        //unsigned int sec[]={0x000000,0x500000,0x100000,0x300000,0x200000,0x400000}; // 268-p2d.bin crc:84def63e (bootleg)

   memcpy( dst, rom, 0x600000 );
   for( i=0; i<6; ++i ){
      memcpy( rom+i*0x100000, dst+sec, 0x100000 );
   }
   free(dst);

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

   init_neogeo();
}
Title: Re: Help: mslug5nd & svcnd for mame
Post by: neo04 on September 22, 2005, 10:55:58 PM
/* driver updated by neo04 */
static void svcnd_px_fix( void )
{
       int size = memory_region_length(REGION_CPU1);
        UINT8 *rom = memory_region(REGION_CPU1);
        UINT8 *dst = malloc( size );
        int i;
        unsigned int sec[]={0x000000,0x600000,0x100000,0x200000,0x300000,0x400000,0x500000};

   memcpy( dst, rom, size );
   for( i=0; i<7; ++i ){
      memcpy( rom+i*0x100000, dst+sec, 0x100000 );
   }
   free(dst);

}

static void svcnd_sx_decrypt( void ) /* using 512k s1 */
{
   UINT8 *src = memory_region(REGION_GFX1);
   UINT8 *buf = malloc(0x80000);
        int i;
   unsigned int sec[]={0x60000,0x40000,0x20000,0x00000};

   memcpy( buf, src, 0x80000 );
   for ( i=0; i<4; ++i ){
      memcpy( src+i*0x20000, buf+sec, 0x20000 );
   }
   free(buf);
}

DRIVER_INIT( svcnd )
{
   svcnd_px_fix();
   svcnd_sx_decrypt();

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

   neogeo_fix_bank_type = 2;
   init_neogeo();
}
Title: Re: Help: mslug5nd & svcnd for mame
Post by: James33 on September 23, 2005, 08:41:18 AM
I thought it would be better to use the fully decrypted sets for those games

Title: Re: Help: mslug5nd & svcnd for mame
Post by: neo04 on September 23, 2005, 09:56:31 AM
fully decrypted sets? meaning the hacked p roms?
Title: Re: Help: mslug5nd & svcnd for mame
Post by: James33 on September 23, 2005, 06:25:55 PM
Well it seems thats what he is wanting to do .

Anyway why does the P decrypt code need a fix ?
Title: Re: Help: mslug5nd & svcnd for mame
Post by: neo04 on September 23, 2005, 09:36:12 PM
heh.. actually its not fully decrypted :P
Title: Re: Help: mslug5nd & svcnd for mame
Post by: James33 on September 23, 2005, 10:28:59 PM
But there is sets that are .
Title: Re: Help: mslug5nd & svcnd for mame
Post by: neo04 on September 23, 2005, 10:43:06 PM
for mslug5? crc pls.. i think its a hack... or maybe iq's fix with reset bug.. :)
Title: Re: Help: mslug5nd & svcnd for mame
Post by: oliverkof on September 23, 2005, 11:06:37 PM
Hello,
Thank you for iq_132 & neo04 help!

However ... ...still have some problems!!!!!!!!!!!!!!!!! :idiot: (i post the code below based on neo04 update)

After the roms were loaded, screen returned back to emulator(not going into the games)!

I did try to use the s1 rom (instead getting data from Cx roms) to follow exactly what neo04 provided, but got the same problem(couldn't go into the games)! :idiot:

Actually i don't think there are problems about s1 roms code (from Cx roms or individual s1 rom) because the drivers are working when i use encrypted p roms!

So the problem(s) should be about the driver for p roms :confused:
could be this part:
   ROM_REGION( 0x500000, REGION_CPU1, 0 )
   ROM_LOAD16_WORD_SWAP( "268-p1d.bin", 0x000000, 0x100000, CRC(e6d297af) SHA1(5bb3f72ce26e3f46c523b955f425056eb246e855) )
   ROM_LOAD16_WORD_SWAP( "268-p2d.bin", 0x100000, 0x400000, CRC(768ee64a) SHA1(76a65a69aee749758a2101aabdd44f3404838b54) )

or more likely be this part:
                px_fix ()
               ...
               ...

Please help!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! :wink:

ROM_START( mslug5nd )
   ROM_REGION( 0x500000, REGION_CPU1, 0 )
   ROM_LOAD16_WORD_SWAP( "268-p1d.bin", 0x000000, 0x100000, CRC(e6d297af) SHA1(5bb3f72ce26e3f46c523b955f425056eb246e855) )
   ROM_LOAD16_WORD_SWAP( "268-p2d.bin", 0x100000, 0x400000, CRC(768ee64a) SHA1(76a65a69aee749758a2101aabdd44f3404838b54) )

   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_512K( "268-m1_decrypted.bin", CRC(2f621a2b) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )

   ROM_REGION( 0x1000000, REGION_SOUND1, ROMREGION_SOUNDONLY )
   ROM_LOAD( "268-v1d.bin", 0x000000, 0x800000, CRC(7ff6ca47) SHA1(e36c4e6a349dd9fd38d1a36b6760bbd943c2a42f) )
   ROM_LOAD( "268-v2d.bin", 0x800000, 0x800000, CRC(696cce3b) SHA1(538d4a25befa4ffd25a48df97380469c13980f7a) )

        NO_DELTAT_REGION

        ROM_REGION( 0x4000000, REGION_GFX3, 0 )
        ROM_LOAD16_BYTE( "268-c1d.bin", 0x0000000, 0x800000, CRC(e8239365) SHA1(e0a75902a783110049730b66ad3cbccdd804bf62) ) /* Plane 0,1 */
        ROM_LOAD16_BYTE( "268-c2d.bin", 0x0000001, 0x800000, CRC(89b21d4c) SHA1(862ac31ce9570529b33e6f58ada0ac867a442679) ) /* Plane 2,3 */
        ROM_LOAD16_BYTE( "268-c3d.bin", 0x1000000, 0x800000, CRC(3cda13a0) SHA1(5d029c92688384eafd65ad711a2954d0b86a3163) ) /* Plane 0,1 */
        ROM_LOAD16_BYTE( "268-c4d.bin", 0x1000001, 0x800000, CRC(9c00160d) SHA1(c612102f9cd288bba4c245b5855d795e4362b217) ) /* Plane 2,3 */
        ROM_LOAD16_BYTE( "268-c5d.bin", 0x2000000, 0x800000, CRC(38754256) SHA1(744d91d041998ca27ee2781188746797c65377bd) ) /* Plane 0,1 */
        ROM_LOAD16_BYTE( "268-c6d.bin", 0x2000001, 0x800000, CRC(59d33e9c) SHA1(ed7f5c7db4c35ec5a7db0ad5436110b3fe80b89a) ) /* Plane 2,3 */
        ROM_LOAD16_BYTE( "268-c7d.bin", 0x3000000, 0x800000, CRC(c9f8c357) SHA1(7064224afa887f57245f5479b0b46228539a131b) ) /* Plane 0,1 */
        ROM_LOAD16_BYTE( "268-c8d.bin", 0x3000001, 0x800000, CRC(fafc3eb9) SHA1(f4f73194cc7fd151be3ca2561f993b5be7628369) ) /* Plane 2,3 */
ROM_END

ROM_START( svcnd )
   ROM_REGION( 0x600000, REGION_CPU1, 0 )
   ROM_LOAD16_WORD_SWAP( "269-p1d.bin", 0x000000, 0x200000, CRC(c56087c2) SHA1(24294ee842759b93e9149b641477748fd7ff1aeb) )
   ROM_LOAD16_WORD_SWAP( "269-p2d.bin", 0x200000, 0x400000, CRC(2d32879b) SHA1(a908cdc715b13dc76d23611359e7f3637b1123ba) )

   ROM_REGION( 0x80000, REGION_GFX1, 0 )
   ROM_FILL(                 0x000000, 0x80000, 0 )
   ROM_REGION( 0x20000, REGION_GFX2, 0 )
   ROM_LOAD( "sfix.sfx",  0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) )
   
   NEO_BIOS_SOUND_128K( "269-m1d.bin", CRC(fd4f0ff9) SHA1(e97e864aaa4789d854363512986e80c0606da996) )

   ROM_REGION( 0x1000000, REGION_SOUND1, ROMREGION_SOUNDONLY )
   ROM_LOAD( "269-v1d.bin", 0x000000, 0x800000, CRC(ff64cd56) SHA1(e2754c554ed5ca14c2020c5d931021d5ac82660c) )
   ROM_LOAD( "269-v2d.bin", 0x800000, 0x800000, CRC(a8dd6446) SHA1(8972aab271c33f8af344bffe6359d9ddc4b8af2e) )

   NO_DELTAT_REGION

   ROM_REGION( 0x4000000, REGION_GFX3, 0 )
   ROM_LOAD16_BYTE( "269-c1d.bin", 0x0000000, 0x800000, CRC(465d473b) SHA1(0b2be2b2657c2ae021ec91515d1d6306179751d5) )
   ROM_LOAD16_BYTE( "269-c2d.bin", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(df1b096fe95796db1515b69f74266ed13dd9ee56) )
   ROM_LOAD16_BYTE( "269-c3d.bin", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(a19788435173540469fe5d07429a83dde6d701a0) )
   ROM_LOAD16_BYTE( "269-c4d.bin", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98d8dac2e40f71b5b8426d3c77476a0a20783181) )
   ROM_LOAD16_BYTE( "269-c5d.bin", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(eed45e1330dcc9f610598dc53977bf3a81dd161a) )
   ROM_LOAD16_BYTE( "269-c6d.bin", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8aaa1b9ea34470085d9944c9ad64cfb0ffe09859) )
   ROM_LOAD16_BYTE( "269-c7d.bin", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74cb0d57060d25e35f76a9820f607633bd1b9c2c) )
   ROM_LOAD16_BYTE( "269-c8d.bin", 0x3000001, 0x800000, CRC(de99e613) SHA1(f28c6af4a31a937e5b441d4b860e3ccca725f27a) )
ROM_END

static void mslug5nd_px_fix(void)
{
   UINT8 *rom = memory_region(REGION_CPU1);
        UINT8 *dst = malloc(0x600000);
        int i;
        unsigned int sec[]={0x000000,0x500000,0x100000,0x200000,0x300000,0x400000}; // 268-p2d.bin crc:768ee64a
        //unsigned int sec[]={0x000000,0x500000,0x100000,0x300000,0x200000,0x400000}; // 268-p2d.bin crc:84def63e (bootleg)

   memcpy( dst, rom, 0x600000 );
   for( i=0; i<6; ++i ){
      memcpy( rom+i*0x100000, dst+sec, 0x100000 );
   }
   free(dst);
}

DRIVER_INIT( mslug5nd )
{
   mslug5nd_px_fix();
   neogeo_sfix_decrypt();
   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);

   init_neogeo();
}

static void svcnd_px_fix( void )
{
   int size = memory_region_length(REGION_CPU1);
        UINT8 *rom = memory_region(REGION_CPU1);
        UINT8 *dst = malloc( size );
        int i;
        unsigned int sec[]={0x000000,0x600000,0x100000,0x200000,0x300000,0x400000,0x500000};

   memcpy( dst, rom, size );
     for( i=0; i<7; ++i ){
      memcpy( rom+i*0x100000, dst+sec, 0x100000 );
   }
   free(dst);
}

static void svcnd_sx_decrypt( void )
{
   UINT8 *s1 = memory_region( REGION_GFX1 );
   size_t s1_size = memory_region_length( REGION_GFX1 );
   int i;
        extern int neogeo_fix_bank_type;
   int tx_size = memory_region_length(REGION_GFX1);
        int rom_size = memory_region_length(REGION_GFX3);
   UINT8 *src = memory_region(REGION_GFX3)+rom_size-tx_size;
   UINT8 *dst = memory_region(REGION_GFX1);

   for (i = 0;i < tx_size;i++)
   dst = src[(i & ~0x1f) + ((i & 7) << 2) + ((~i & 8) >> 2) + ((i & 0x10) >> 4)];

   for( i = 0; i < s1_size; i++ ){
   s1[ i ] = BITSWAP8( s1[ i ] ^ 0xd2, 4, 0, 7, 2, 5, 1, 6, 3 ); }
}

DRIVER_INIT( svcnd )
{
   svcnd_px_fix();
   svcnd_sx_decrypt();

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

   neogeo_fix_bank_type = 2;
   init_neogeo();
}

GAMEB( 2003, mslug5nd, mslug5,   neogeo, neogeo, neogeo,  mslug5nd, ROT0, "SNK Playmore", "Metal Slug 5 (fully decrypted)" )
GAMEB( 2003, svcnd,    svcchaos, neogeo, neogeo, neogeo,  svcnd,    ROT0, "SNK Playmore", "SNK Vs. CAPCOM SVC CHAOS (fully decrypted)" )
Title: Re: Help: mslug5nd & svcnd for mame
Post by: neo04 on September 24, 2005, 12:04:26 AM
see this:
static void mslug5nd_px_fix(void)
{
   UINT8 *rom = memory_region(REGION_CPU1);
        UINT8 *dst = malloc(0x600000);

so, the driver should be:
Code: [Select]
ROM_START( mslug5nd )
   ROM_REGION( 0x600000, REGION_CPU1, 0 )

not 0x500000, coz junk rom was loaded in the second chunk;
unsigned int sec[]={0x000000,0x500000,0x100000,0x200000,0x300000,0x400000}; // 268-p2d.bin crc:768ee64a

Title: Re: Help: mslug5nd & svcnd for mame
Post by: neo04 on September 24, 2005, 12:07:05 AM
same goes for svcnd.. junk 1mb data inserted in the 2nd chunk...
static void svcnd_px_fix( void )
{
   int size = memory_region_length(REGION_CPU1);
        UINT8 *rom = memory_region(REGION_CPU1);
        UINT8 *dst = malloc( size );
        int i;
        unsigned int sec[]={0x000000,0x600000,0x100000,0x200000,0x300000,0x400000,0x500000};

so, driver should be updated:
Code: [Select]
ROM_START( svcnd )
   ROM_REGION( 0x700000, REGION_CPU1, 0 )
Title: Re: Help: mslug5nd & svcnd for mame
Post by: James33 on September 24, 2005, 06:29:42 AM
for mslug5? crc pls.. i think its a hack... or maybe iq's fix with reset bug.. :)

Games like mslug5 That are fully decrypted are hacks anyway .
Anyway this set does not seem to have a reset bug .
Where is it meant to reset ?


Code: [Select]
ROM_START( mslug5n )
        ROM_REGION( 0x600000, REGION_CPU1, 0 )
        ROM_LOAD16_WORD_SWAP( "268-p1d.bin", 0x000000, 0x600000, CRC(3b4eda6b) SHA1(e38a70bb8d1de33a7e68b5e92b65b5fabc7db009) )
       
        NEO_SFIX_128K( "268-s1.bin", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )

        NEO_BIOS_SOUND_256K( "268-m1d.bin", CRC(6866d696) SHA1(3638b072e44277a6bffea5a78a915a14c6afcba0) )

        ROM_REGION( 0x1000000, REGION_SOUND1, ROMREGION_SOUNDONLY )
        ROM_LOAD( "268-v1d.bin", 0x000000, 0x800000, CRC(14848c5c) SHA1(8f67daa54738f8b217cce1f1d0a7872fd06d91b6) )
        ROM_LOAD( "268-v2d.bin", 0x800000, 0x800000, CRC(696cce3b) SHA1(538d4a25befa4ffd25a48df97380469c13980f7a) )

        NO_DELTAT_REGION

        ROM_REGION( 0x4000000, REGION_GFX3, 0 )
/* decrypted */
        ROM_LOAD16_BYTE( "268-c1d.bin", 0x0000000, 0x800000, CRC(969C0D62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) ) /* Plane 0,1 */
        ROM_LOAD16_BYTE( "268-c2d.bin", 0x0000001, 0x800000, CRC(C69AE867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) ) /* Plane 2,3 */
        ROM_LOAD16_BYTE( "268-c3d.bin", 0x1000000, 0x800000, CRC(D7BEAEAF) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) ) /* Plane 0,1 */
        ROM_LOAD16_BYTE( "268-c4d.bin", 0x1000001, 0x800000, CRC(899fb2af) SHA1(a06a424c813c1b4f922c5404405779f605c90a06) ) /* Plane 2,3 */
        ROM_LOAD16_BYTE( "268-c5d.bin", 0x2000000, 0x800000, CRC(2FA1A5AD) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) ) /* Plane 0,1 */
        ROM_LOAD16_BYTE( "268-c6d.bin", 0x2000001, 0x800000, CRC(6DE89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) ) /* Plane 2,3 */
        ROM_LOAD16_BYTE( "268-c7d.bin", 0x3000000, 0x800000, CRC(97BD0C0A) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) ) /* Plane 0,1 */
        ROM_LOAD16_BYTE( "268-c8d.bin", 0x3000001, 0x800000, CRC(C0D5BC20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) ) /* Plane 2,3 */
ROM_END
Title: Re: Help: mslug5nd & svcnd for mame
Post by: neo04 on September 24, 2005, 07:53:28 AM
is this set is real? cart do exist? coz mslug4n do exist :)
the real cart only have one p rom?
Title: Re: Help: mslug5nd & svcnd for mame
Post by: James33 on September 24, 2005, 09:02:47 AM
I have no idea sorry  .
Title: Re: Help: mslug5nd & svcnd for mame
Post by: oliverkof on September 24, 2005, 10:36:53 PM
Hello!
Finally, those drivers are working quite well!!!! :biggrin:
Thank you thank you!, especailly iq_132 & neo04! :wink:

I post the drivers below:

Code:
ROM_START( mslug5nd )
   ROM_REGION( 0x600000, REGION_CPU1, 0 )
   ROM_LOAD16_WORD_SWAP( "268-p1d.bin", 0x000000, 0x100000, CRC(e6d297af) SHA1(5bb3f72ce26e3f46c523b955f425056eb246e855) )
   ROM_LOAD16_WORD_SWAP( "268-p2d.bin", 0x100000, 0x400000, CRC(768ee64a) SHA1(76a65a69aee749758a2101aabdd44f3404838b54) )

   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_512K( "268-m1_decrypted.bin", CRC(2f621a2b) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )

   ROM_REGION( 0x1000000, REGION_SOUND1, ROMREGION_SOUNDONLY )
   ROM_LOAD( "268-v1d.bin", 0x000000, 0x800000, CRC(7ff6ca47) SHA1(e36c4e6a349dd9fd38d1a36b6760bbd943c2a42f) )
   ROM_LOAD( "268-v2d.bin", 0x800000, 0x800000, CRC(696cce3b) SHA1(538d4a25befa4ffd25a48df97380469c13980f7a) )

        NO_DELTAT_REGION

        ROM_REGION( 0x4000000, REGION_GFX3, 0 )
        ROM_LOAD16_BYTE( "268-c1d.bin", 0x0000000, 0x800000, CRC(e8239365) SHA1(e0a75902a783110049730b66ad3cbccdd804bf62) ) /* Plane 0,1 */
        ROM_LOAD16_BYTE( "268-c2d.bin", 0x0000001, 0x800000, CRC(89b21d4c) SHA1(862ac31ce9570529b33e6f58ada0ac867a442679) ) /* Plane 2,3 */
        ROM_LOAD16_BYTE( "268-c3d.bin", 0x1000000, 0x800000, CRC(3cda13a0) SHA1(5d029c92688384eafd65ad711a2954d0b86a3163) ) /* Plane 0,1 */
        ROM_LOAD16_BYTE( "268-c4d.bin", 0x1000001, 0x800000, CRC(9c00160d) SHA1(c612102f9cd288bba4c245b5855d795e4362b217) ) /* Plane 2,3 */
        ROM_LOAD16_BYTE( "268-c5d.bin", 0x2000000, 0x800000, CRC(38754256) SHA1(744d91d041998ca27ee2781188746797c65377bd) ) /* Plane 0,1 */
        ROM_LOAD16_BYTE( "268-c6d.bin", 0x2000001, 0x800000, CRC(59d33e9c) SHA1(ed7f5c7db4c35ec5a7db0ad5436110b3fe80b89a) ) /* Plane 2,3 */
        ROM_LOAD16_BYTE( "268-c7d.bin", 0x3000000, 0x800000, CRC(c9f8c357) SHA1(7064224afa887f57245f5479b0b46228539a131b) ) /* Plane 0,1 */
        ROM_LOAD16_BYTE( "268-c8d.bin", 0x3000001, 0x800000, CRC(fafc3eb9) SHA1(f4f73194cc7fd151be3ca2561f993b5be7628369) ) /* Plane 2,3 */
ROM_END

ROM_START( svcnd )
   ROM_REGION( 0x700000, REGION_CPU1, 0 )
   ROM_LOAD16_WORD_SWAP( "269-p1d.bin", 0x000000, 0x200000, CRC(c56087c2) SHA1(24294ee842759b93e9149b641477748fd7ff1aeb) )
   ROM_LOAD16_WORD_SWAP( "269-p2d.bin", 0x200000, 0x400000, CRC(2d32879b) SHA1(a908cdc715b13dc76d23611359e7f3637b1123ba) )

   ROM_REGION( 0x80000, REGION_GFX1, 0 )
   ROM_FILL(                 0x000000, 0x80000, 0 )
   ROM_REGION( 0x20000, REGION_GFX2, 0 )
   ROM_LOAD( "sfix.sfx",  0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) )
   
   NEO_BIOS_SOUND_128K( "269-m1_decrypted.bin", CRC(fd4f0ff9) SHA1(e97e864aaa4789d854363512986e80c0606da996) )

   ROM_REGION( 0x1000000, REGION_SOUND1, ROMREGION_SOUNDONLY )
   ROM_LOAD( "269-v1d.bin", 0x000000, 0x800000, CRC(ff64cd56) SHA1(e2754c554ed5ca14c2020c5d931021d5ac82660c) )
   ROM_LOAD( "269-v2d.bin", 0x800000, 0x800000, CRC(a8dd6446) SHA1(8972aab271c33f8af344bffe6359d9ddc4b8af2e) )

   NO_DELTAT_REGION

   ROM_REGION( 0x4000000, REGION_GFX3, 0 )
   ROM_LOAD16_BYTE( "269-c1d.bin", 0x0000000, 0x800000, CRC(465d473b) SHA1(0b2be2b2657c2ae021ec91515d1d6306179751d5) )
   ROM_LOAD16_BYTE( "269-c2d.bin", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(df1b096fe95796db1515b69f74266ed13dd9ee56) )
   ROM_LOAD16_BYTE( "269-c3d.bin", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(a19788435173540469fe5d07429a83dde6d701a0) )
   ROM_LOAD16_BYTE( "269-c4d.bin", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98d8dac2e40f71b5b8426d3c77476a0a20783181) )
   ROM_LOAD16_BYTE( "269-c5d.bin", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(eed45e1330dcc9f610598dc53977bf3a81dd161a) )
   ROM_LOAD16_BYTE( "269-c6d.bin", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8aaa1b9ea34470085d9944c9ad64cfb0ffe09859) )
   ROM_LOAD16_BYTE( "269-c7d.bin", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74cb0d57060d25e35f76a9820f607633bd1b9c2c) )
   ROM_LOAD16_BYTE( "269-c8d.bin", 0x3000001, 0x800000, CRC(de99e613) SHA1(f28c6af4a31a937e5b441d4b860e3ccca725f27a) )
ROM_END

static void mslug5nd_px_fix(void)
{
   /*update by neo04*/
   UINT8 *rom = memory_region(REGION_CPU1);
        UINT8 *dst = malloc(0x600000);
        int i;
        unsigned int sec[]={0x000000,0x500000,0x100000,0x200000,0x300000,0x400000}; // 268-p2d.bin crc:768ee64a
        //unsigned int sec[]={0x000000,0x500000,0x100000,0x300000,0x200000,0x400000}; // 268-p2d.bin crc:84def63e (bootleg)

   memcpy( dst, rom, 0x600000 );
   for( i=0; i<6; ++i ){
      memcpy( rom+i*0x100000, dst+sec, 0x100000 );
   }
   free(dst);
}

DRIVER_INIT( mslug5nd )
{
   mslug5nd_px_fix();
   neogeo_sfix_decrypt();
   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);

   init_neogeo();
}
DRIVER_INIT( mslug5nd )
{
   mslug5nd_px_fix();
   neogeo_sfix_decrypt();
   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);

   init_neogeo();
}

static void svcnd_px_fix( void )
{
   /*update by neo04*/
   int size = memory_region_length(REGION_CPU1);
        UINT8 *rom = memory_region(REGION_CPU1);
        UINT8 *dst = malloc( size );
        int i;
        unsigned int sec[]={0x000000,0x600000,0x100000,0x200000,0x300000,0x400000,0x500000};

   memcpy( dst, rom, size );
     for( i=0; i<7; ++i ){
      memcpy( rom+i*0x100000, dst+sec, 0x100000 );
   }
   free(dst);
}

static void svcnd_sx_decrypt( void )
{
   UINT8 *s1 = memory_region( REGION_GFX1 );
   size_t s1_size = memory_region_length( REGION_GFX1 );
   int i;
        extern int neogeo_fix_bank_type;
   int tx_size = memory_region_length(REGION_GFX1);
        int rom_size = memory_region_length(REGION_GFX3);
   UINT8 *src = memory_region(REGION_GFX3)+rom_size-tx_size;
   UINT8 *dst = memory_region(REGION_GFX1);

   for (i = 0;i < tx_size;i++)
   dst = src[(i & ~0x1f) + ((i & 7) << 2) + ((~i & 8) >> 2) + ((i & 0x10) >> 4)];

   for( i = 0; i < s1_size; i++ ){
   s1[ i ] = BITSWAP8( s1[ i ] ^ 0xd2, 4, 0, 7, 2, 5, 1, 6, 3 ); }
}

DRIVER_INIT( svcnd )
{
   svcnd_px_fix();
   svcnd_sx_decrypt();

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

   neogeo_fix_bank_type = 2;
   init_neogeo();
}

GAMEB( 2003, mslug5nd, mslug5,   neogeo, neogeo, neogeo,  mslug5nd, ROT0, "SNK Playmore", "Metal Slug 5 (fully decrypted)" )
GAMEB( 2003, svcnd,    svcchaos, neogeo, neogeo, neogeo,  svcnd,    ROT0, "SNK Playmore", "SNK Vs. CAPCOM SVC CHAOS (fully decrypted)" )
Title: Re: Help: mslug5nd & svcnd for mame
Post by: James33 on September 25, 2005, 04:13:54 AM
But those are not proper sets .
Title: Re: Help: mslug5nd & svcnd for mame
Post by: FerchogtX on September 25, 2005, 10:36:33 PM
Wait a sec... those ROMs are meant to have backswitch?... that things work on NeoRAGEx... at least mslug5nd has the bankswitch removed... or not?... OMG!!!!! why don't you simply use the original dumps? less problems about legitimal decryptions...
See ya!!!!!! :biggrin:
Title: Re: Help: mslug5nd & svcnd for mame
Post by: oliverkof on September 25, 2005, 10:53:49 PM
What do you mean by "original dumps"? do you mean encrypted sets? :idiot:
I've got the drivers for encrypted sets already. and i just try to add those decrypted sets! :wink:
Title: Re: Help: mslug5nd & svcnd for mame
Post by: James33 on September 25, 2005, 11:08:45 PM
Looking at your drivers you still have code that decrypts them so your not useing decrypted sets at all
Title: Re: Help: mslug5nd & svcnd for mame
Post by: oliverkof on September 25, 2005, 11:39:58 PM
I don't know much about roms & decrypted code :idiot:
Those decrypted p-roms are the only decrypted p-roms i know (for svc & mslug5) :idiot:
James33, do you know any p-roms for svc & mslug5 which do not require any decrypt code??? :idiot:
Title: Re: Help: mslug5nd & svcnd for mame
Post by: FerchogtX on September 27, 2005, 12:19:26 AM
EDIT*
I was wrong... this set still needs bankswitch... I think is better to use the encrypted roms (at least P-ROMs) instead of this, anyway needs bankswitch... if you have the PVC code It has no sense to add this semi decrypted dumps...
See ya!!!!! :biggrin:
Title: Re: Help: mslug5nd & svcnd for mame
Post by: neo04 on September 27, 2005, 01:19:43 AM
ok.. ok.. im lame  :p i will removes those sets from my build... but the name should be mslug5d & svchaosd  :biggrin:
Title: Re: Help: mslug5nd & svcnd for mame
Post by: FerchogtX on September 27, 2005, 09:38:54 PM
maybe there is a posibility to get a fully decrypted set... let me find my sets.
See ya!!!!!! :biggrin:
Title: Re: Help: mslug5nd & svcnd for mame
Post by: James33 on September 28, 2005, 01:32:47 AM
I still have the old svc set that worked ok in Mame but lock up in NRX