Author Topic: I need some help with my old mslug5nd driver...  (Read 18700 times)

Offline Ashura-X

  • Member
  • ***
  • Posts: 138
  • Karma: +0/-0
Re: I need some help with my old mslug5nd driver...
« Reply #15 on: June 29, 2007, 05:40:47 PM »
Well seeing on more crap sets if I have here these following ones just below give me MEMORY ACCESS VIOLATION and hangs the emu to DOS screen  :eek:

Code: [Select]
ROM_START( kof2k2bd ) /* MVS, Bootleg, Decrypted */
ROM_REGION( 0x500000, NEOGEO_REGION_MAIN_CPU_CARTRIDGE, 0 )
ROM_LOAD16_WORD_SWAP( "265-p1.bin", 0x000000, 0x100000, CRC(9EDE7323) SHA1(AD9D45498777FDA9FA58E75781F48E09AEE705A6) )
ROM_LOAD16_WORD_SWAP( "265-p2bd.bin", 0x100000, 0x400000, CRC(65DF650D) SHA1(C13E466E3FDB349BA2E0D3FE01DAEDE759130828) ) /* Descrambled */

NEO_SFIX_128K( "265-s1b.bin", CRC(2255f5bf) SHA1(8a82b3e9717df30b580b9d0bac0b403f8102a002) )

NEO_BIOS_AUDIO_128K( "265-m1_decrypted.bin", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) /* Decrypted */

ROM_REGION( 0x1000000, NEOGEO_REGION_AUDIO_DATA_1, 0 )
ROM_LOAD( "265-v1d.bin", 0x000000, 0x400000, CRC(13D98607) SHA1(0F1A374247992D301BC26C0BAB200631A13A9F4A) ) /* Decrypted */
ROM_LOAD( "265-v2d.bin", 0x400000, 0x400000, CRC(9CF74677) SHA1(073E7CB00127690FDEC05C19F00347EC449F15AC) ) /* Decrypted */
ROM_LOAD( "265-v3d.bin", 0x800000, 0x400000, CRC(8E9448B5) SHA1(C22420649C7C68A172290548CAB846345C861CB0) ) /* Decrypted */
ROM_LOAD( "265-v4d.bin", 0xc00000, 0x400000, CRC(067271B5) SHA1(36E07DA78AAF634824C98023053BEF802BE4E218) ) /* Decrypted */

NO_DELTAT_REGION

ROM_REGION( 0x4000000, NEOGEO_REGION_SPRITES, 0 )
ROM_LOAD16_BYTE( "265-c1d.bin", 0x0000000, 0x800000, CRC(7EFA6EF7) SHA1(71345A4202E7CC9239538FB978638141416C8893) ) /* Descrambled */
ROM_LOAD16_BYTE( "265-c2d.bin", 0x0000001, 0x800000, CRC(AA82948B) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) ) /* Descrambled */
ROM_LOAD16_BYTE( "k2k4s-c3.bin", 0x1000000, 0x800000, CRC(959FAD0B) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) ) /* Descrambled */
ROM_LOAD16_BYTE( "265-c4bd.bin", 0x1000001, 0x800000, CRC(2558972F) SHA1(2E0627FC5D689BF64FE36F02A489408D103C4499) ) /* Descrambled */
ROM_LOAD16_BYTE( "k2k4s-c2.bin", 0x2000000, 0x800000, CRC(74BBA7C6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) ) /* Descrambled */
ROM_LOAD16_BYTE( "k2k4s-c6.bin", 0x2000001, 0x800000, CRC(E20D2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) ) /* Descrambled */
ROM_LOAD16_BYTE( "265-c7d.bin", 0x3000000, 0x800000, CRC(8A5B561C) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) ) /* Descrambled */
ROM_LOAD16_BYTE( "265-c8d.bin", 0x3000001, 0x800000, CRC(BEF667A3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) ) /* Descrambled */
ROM_END

Code: [Select]
DRIVER_INIT( kof2k2bd )
{
neogeo_fixed_layer_bank_type = 0;
driver_init_neogeo(machine);
}
« Last Edit: June 30, 2007, 01:35:23 PM by Ashura-X »

Offline Ashura-X

  • Member
  • ***
  • Posts: 138
  • Karma: +0/-0
Re: I need some help with my old mslug5nd driver...
« Reply #16 on: June 30, 2007, 01:00:32 PM »
Ah, ok.  It was the 3 and 4th chunk that were swapped :)

Code: [Select]
ROM_REGION( 0x500000, NEOGEO_REGION_MAIN_CPU_CARTRIDGE, 0 )
ROM_LOAD16_WORD_SWAP( "268-p1bl.bin", 0x000000, 0x100000, CRC(e6d297af) SHA1(5bb3f72ce26e3f46c523b955f425056eb246e855) )
ROM_LOAD16_WORD_SWAP( "268-p2bl.bin", 0x100000, 0x100000, CRC(3fc46cfa) SHA1(f20d3d359f6cdbf6aabb6920020621b02bafee91) )
ROM_CONTINUE( 0x300000, 0x100000 )
ROM_LOAD16_WORD_SWAP( "268-p3bl.bin", 0x200000, 0x100000, CRC(742c955a) SHA1(96c0f08b1f2f6877f5169a96c13b67f3be6082c6) )
ROM_CONTINUE( 0x400000, 0x100000 )


The game no works here. I´ve pasted all code on main neodrv.c and the graphics are glitched...
These Rom_Continue sentences make CLRMAME crazy when scanning too. You never will reaches the correct CRC with these.
« Last Edit: June 30, 2007, 01:28:32 PM by Ashura-X »

Offline iq_132

  • Administrator
  • *****
  • Posts: 3728
  • Karma: +411/-0
  • Definitely not Dink!
    • NeoSource
Re: I need some help with my old mslug5nd driver...
« Reply #17 on: June 30, 2007, 08:12:26 PM »
Works fine for me. As for CLRMAME, I have no idea about that.

Code: [Select]
ROM_START( ms5boot ) /* Bootleg / Hack of Metal Slug 5 */
ROM_REGION( 0x500000, NEOGEO_REGION_MAIN_CPU_CARTRIDGE, 0 )
ROM_LOAD16_WORD_SWAP( "268-p1bl.bin", 0x000000, 0x100000, CRC(e6d297af) SHA1(5bb3f72ce26e3f46c523b955f425056eb246e855) )
ROM_LOAD16_WORD_SWAP( "268-p2bl.bin", 0x100000, 0x100000, CRC(3fc46cfa) SHA1(f20d3d359f6cdbf6aabb6920020621b02bafee91) )
ROM_CONTINUE( 0x300000, 0x100000 )
ROM_LOAD16_WORD_SWAP( "268-p3bl.bin", 0x200000, 0x100000, CRC(742c955a) SHA1(96c0f08b1f2f6877f5169a96c13b67f3be6082c6) )
ROM_CONTINUE( 0x400000, 0x100000 )

NEO_SFIX_128K( "268-s1bl.bin", CRC(52a8c09b) SHA1(3a90d8e44aa7cbc79945f8ece0e2fb9ce3e5a4c7) )

       NEO_BIOS_SOUND_256K( "ms5-m1.bin", CRC(792e07c1) SHA1(117516e8ec9026c7682ab27857aab6639bef5835) )

        ROM_REGION( 0x1000000, NEOGEO_REGION_AUDIO_DATA_1, 0 )
        ROM_LOAD( "ms5-v1.bin", 0x000000, 0x400000, CRC(c3540e0d) SHA1(bf7ca3abe291b28a4cfaef791f0c556cc98ad8d8) )
ROM_LOAD( "ms5-v2.bin", 0x400000, 0x400000, CRC(077bd2f4) SHA1(1699959d17f8c7113cebdb9da2e1cd18ce48486c) )
ROM_LOAD( "ms5-v3.bin", 0x800000, 0x400000, CRC(39b14567) SHA1(1658612a93ba30130f9260bc41d3f18f6b90c1e7) )
ROM_LOAD( "ms5-v4.bin", 0xc00000, 0x400000, CRC(969ff3b2) SHA1(50feceb741a1c08b000b077a33151ab1352eb798) )

        NO_DELTAT_REGION

        ROM_REGION( 0x4000000, NEOGEO_REGION_SPRITES, 0 )
        ROM_LOAD16_BYTE( "ms5-c1.bin", 0x0000000, 0x800000, CRC(969c0d62) SHA1(de3c5cfa980cca2fab0416ac0d292948b5d4c9c3) ) /* Plane 0,1 */
        ROM_LOAD16_BYTE( "ms5-c2.bin", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198ee5c7c2c7563b49ebd9f7ba95d9b0b303f6c) ) /* Plane 2,3 */
        ROM_LOAD16_BYTE( "ms5-c3.bin", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443ea4c1bab45f1977a390eb7e1a0163915110) ) /* Plane 0,1 */
        ROM_LOAD16_BYTE( "ms5-c4.bin", 0x1000001, 0x800000, CRC(e1b1131b) SHA1(68a36d336582069e79ad481638d92f57c4cd6523) ) /* Plane 2,3 */
        ROM_LOAD16_BYTE( "ms5-c5.bin", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4ae15d29ba979601598eddf8905072fe1d9e0a98) ) /* Plane 0,1 */
        ROM_LOAD16_BYTE( "ms5-c6.bin", 0x2000001, 0x800000, CRC(6de89589) SHA1(86a6c036bf51af516fea83a30874026ec1586a83) ) /* Plane 2,3 */
        ROM_LOAD16_BYTE( "ms5-c7.bin", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30f3280fe527098ecf46541cc645a59b366105ea) ) /* Plane 0,1 */
        ROM_LOAD16_BYTE( "ms5-c8.bin", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(b5d0d81d5cc624538b0651c568295e578a1330d1) ) /* Plane 2,3 */
ROM_END




static WRITE16_HANDLER( mslug5_bankswitch_w )
{
if (offset == 1) {
neogeo_set_main_cpu_bank_address( data << 8 );
}
}



void neogeo_bootleg_text_decrypt(INT32 value)
{
INT32 i, ofst, size = memory_region_length( NEOGEO_REGION_FIXED_LAYER_CARTRIDGE );
UINT8 *srom = memory_region( NEOGEO_REGION_FIXED_LAYER_CARTRIDGE );
UINT8 *tmp = malloc(size);

switch (value) {
// Original code for MAME by fataku
// for kf2k1pla
case 0: {
for (i = 0; i < size; i++) {
srom[i] = BITSWAP8(srom[i], 3, 2, 4, 5, 1, 6, 0, 7);
}
  break;
}
// Original code from mame traduced by FerchogtX
// for ms5boot, svcboot, svcplusa, more
case 1: {
memcpy(tmp + 0x000000, srom + 0x010000, 0x010000);
memcpy(tmp + 0x010000, srom + 0x000000, 0x010000);
memcpy(srom, tmp, size);
break;
}
// Thanks also to HappyASR for the info
// for ms5plus, svcplus, kf2k3bl, more
case 2: {
for (i = 0; i < size; i+= 0x10) {
memcpy(tmp + i + 0, srom + i + 8, 8);
memcpy(tmp + i + 8, srom + i + 0, 8);
}
memcpy (srom, tmp, size);
break;
}
// Original code from MAME -- http://www.mame.net
// for cthd2003
case 3: {
memcpy(tmp + 0 * 0x8000, srom + 0 * 0x8000, 0x8000);
memcpy(tmp + 1 * 0x8000, srom + 2 * 0x8000, 0x8000);
memcpy(tmp + 2 * 0x8000, srom + 1 * 0x8000, 0x8000);
memcpy(tmp + 3 * 0x8000, srom + 3 * 0x8000, 0x8000);
memcpy(srom, tmp, size);
break;
}
// Original code by HalRIN
// for ct2k3sp
case 4: {
memcpy(tmp, srom, size);

for (i = 0; i < size; i++) {
ofst = BITSWAP24((i & 0x1ffff),23,22,21,20,19,18,17,3,0,1,4,2,13,14,16,15,5,6,11,10,9,8,7,12);
ofst += (i >> 17) << 17;
srom[i] = tmp[ofst];
}

memcpy(tmp, srom, size);
memcpy(srom + 0x08000, tmp + 0x10000, 0x8000);
memcpy(srom + 0x10000, tmp + 0x08000, 0x8000);
memcpy(srom + 0x28000, tmp + 0x30000, 0x8000);
memcpy(srom + 0x30000, tmp + 0x28000, 0x8000);
break;
}
// Converted by Jimmy_Page (www.neofighters.com)
// for svcsplus, kof10thu, kf2k2spr, more
case 5: {
for (i = 0; i < size; i++) {
srom[i] = BITSWAP8(srom[i], 7, 6, 0, 4, 3, 2, 1, 5);
}
break;
}
// for kof2k2bl
case 6: {
kof2002b_gfx_decrypt(srom, 0x20000);
break;
}
// for kf2k5uni
case 7: {
for(i = 0; i < size; i++) {
srom[i] = BITSWAP8(srom[i], 4, 5, 6, 7, 0, 1, 2, 3);
}
break;
}
}
free(tmp);
}

void ms5boot_install_protection(void)
{
// special ROM banking handler
memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2ffff0, 0x2fffff, 0, 0, mslug5_bankswitch_w);
}



DRIVER_INIT( ms5boot )
{
neogeo_bootleg_text_decrypt(1);

driver_init_neogeo(machine);
ms5boot_install_protection();
}

GAMEB( 2003, ms5boot,  mslug5,   neogeo, neogeo, neogeo,  ms5boot,  ROT0, "bootleg", "Metal Slug 5 (Bootleg Set 2)", 0 )



Offline Ashura-X

  • Member
  • ***
  • Posts: 138
  • Karma: +0/-0
Re: I need some help with my old mslug5nd driver...
« Reply #18 on: July 01, 2007, 08:14:43 AM »
Works fine for me. As for CLRMAME, I have no idea about that.

Code: [Select]
ROM_START( ms5boot ) /* Bootleg / Hack of Metal Slug 5 */
ROM_REGION( 0x500000, NEOGEO_REGION_MAIN_CPU_CARTRIDGE, 0 )
ROM_LOAD16_WORD_SWAP( "268-p1bl.bin", 0x000000, 0x100000, CRC(e6d297af) SHA1(5bb3f72ce26e3f46c523b955f425056eb246e855) )
ROM_LOAD16_WORD_SWAP( "268-p2bl.bin", 0x100000, 0x100000, CRC(3fc46cfa) SHA1(f20d3d359f6cdbf6aabb6920020621b02bafee91) )
ROM_CONTINUE( 0x300000, 0x100000 )
ROM_LOAD16_WORD_SWAP( "268-p3bl.bin", 0x200000, 0x100000, CRC(742c955a) SHA1(96c0f08b1f2f6877f5169a96c13b67f3be6082c6) )
ROM_CONTINUE( 0x400000, 0x100000 )

NEO_SFIX_128K( "268-s1bl.bin", CRC(52a8c09b) SHA1(3a90d8e44aa7cbc79945f8ece0e2fb9ce3e5a4c7) )

       NEO_BIOS_SOUND_256K( "ms5-m1.bin", CRC(792e07c1) SHA1(117516e8ec9026c7682ab27857aab6639bef5835) )

        ROM_REGION( 0x1000000, NEOGEO_REGION_AUDIO_DATA_1, 0 )
        ROM_LOAD( "ms5-v1.bin", 0x000000, 0x400000, CRC(c3540e0d) SHA1(bf7ca3abe291b28a4cfaef791f0c556cc98ad8d8) )
ROM_LOAD( "ms5-v2.bin", 0x400000, 0x400000, CRC(077bd2f4) SHA1(1699959d17f8c7113cebdb9da2e1cd18ce48486c) )
ROM_LOAD( "ms5-v3.bin", 0x800000, 0x400000, CRC(39b14567) SHA1(1658612a93ba30130f9260bc41d3f18f6b90c1e7) )
ROM_LOAD( "ms5-v4.bin", 0xc00000, 0x400000, CRC(969ff3b2) SHA1(50feceb741a1c08b000b077a33151ab1352eb798) )

        NO_DELTAT_REGION

        ROM_REGION( 0x4000000, NEOGEO_REGION_SPRITES, 0 )
        ROM_LOAD16_BYTE( "ms5-c1.bin", 0x0000000, 0x800000, CRC(969c0d62) SHA1(de3c5cfa980cca2fab0416ac0d292948b5d4c9c3) ) /* Plane 0,1 */
        ROM_LOAD16_BYTE( "ms5-c2.bin", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198ee5c7c2c7563b49ebd9f7ba95d9b0b303f6c) ) /* Plane 2,3 */
        ROM_LOAD16_BYTE( "ms5-c3.bin", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443ea4c1bab45f1977a390eb7e1a0163915110) ) /* Plane 0,1 */
        ROM_LOAD16_BYTE( "ms5-c4.bin", 0x1000001, 0x800000, CRC(e1b1131b) SHA1(68a36d336582069e79ad481638d92f57c4cd6523) ) /* Plane 2,3 */
        ROM_LOAD16_BYTE( "ms5-c5.bin", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4ae15d29ba979601598eddf8905072fe1d9e0a98) ) /* Plane 0,1 */
        ROM_LOAD16_BYTE( "ms5-c6.bin", 0x2000001, 0x800000, CRC(6de89589) SHA1(86a6c036bf51af516fea83a30874026ec1586a83) ) /* Plane 2,3 */
        ROM_LOAD16_BYTE( "ms5-c7.bin", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30f3280fe527098ecf46541cc645a59b366105ea) ) /* Plane 0,1 */
        ROM_LOAD16_BYTE( "ms5-c8.bin", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(b5d0d81d5cc624538b0651c568295e578a1330d1) ) /* Plane 2,3 */
ROM_END




static WRITE16_HANDLER( mslug5_bankswitch_w )
{
if (offset == 1) {
neogeo_set_main_cpu_bank_address( data << 8 );
}
}



void neogeo_bootleg_text_decrypt(INT32 value)
{
INT32 i, ofst, size = memory_region_length( NEOGEO_REGION_FIXED_LAYER_CARTRIDGE );
UINT8 *srom = memory_region( NEOGEO_REGION_FIXED_LAYER_CARTRIDGE );
UINT8 *tmp = malloc(size);

switch (value) {
// Original code for MAME by fataku
// for kf2k1pla
case 0: {
for (i = 0; i < size; i++) {
srom[i] = BITSWAP8(srom[i], 3, 2, 4, 5, 1, 6, 0, 7);
}
  break;
}
// Original code from mame traduced by FerchogtX
// for ms5boot, svcboot, svcplusa, more
case 1: {
memcpy(tmp + 0x000000, srom + 0x010000, 0x010000);
memcpy(tmp + 0x010000, srom + 0x000000, 0x010000);
memcpy(srom, tmp, size);
break;
}
// Thanks also to HappyASR for the info
// for ms5plus, svcplus, kf2k3bl, more
case 2: {
for (i = 0; i < size; i+= 0x10) {
memcpy(tmp + i + 0, srom + i + 8, 8);
memcpy(tmp + i + 8, srom + i + 0, 8);
}
memcpy (srom, tmp, size);
break;
}
// Original code from MAME -- http://www.mame.net
// for cthd2003
case 3: {
memcpy(tmp + 0 * 0x8000, srom + 0 * 0x8000, 0x8000);
memcpy(tmp + 1 * 0x8000, srom + 2 * 0x8000, 0x8000);
memcpy(tmp + 2 * 0x8000, srom + 1 * 0x8000, 0x8000);
memcpy(tmp + 3 * 0x8000, srom + 3 * 0x8000, 0x8000);
memcpy(srom, tmp, size);
break;
}
// Original code by HalRIN
// for ct2k3sp
case 4: {
memcpy(tmp, srom, size);

for (i = 0; i < size; i++) {
ofst = BITSWAP24((i & 0x1ffff),23,22,21,20,19,18,17,3,0,1,4,2,13,14,16,15,5,6,11,10,9,8,7,12);
ofst += (i >> 17) << 17;
srom[i] = tmp[ofst];
}

memcpy(tmp, srom, size);
memcpy(srom + 0x08000, tmp + 0x10000, 0x8000);
memcpy(srom + 0x10000, tmp + 0x08000, 0x8000);
memcpy(srom + 0x28000, tmp + 0x30000, 0x8000);
memcpy(srom + 0x30000, tmp + 0x28000, 0x8000);
break;
}
// Converted by Jimmy_Page (www.neofighters.com)
// for svcsplus, kof10thu, kf2k2spr, more
case 5: {
for (i = 0; i < size; i++) {
srom[i] = BITSWAP8(srom[i], 7, 6, 0, 4, 3, 2, 1, 5);
}
break;
}
// for kof2k2bl
case 6: {
kof2002b_gfx_decrypt(srom, 0x20000);
break;
}
// for kf2k5uni
case 7: {
for(i = 0; i < size; i++) {
srom[i] = BITSWAP8(srom[i], 4, 5, 6, 7, 0, 1, 2, 3);
}
break;
}
}
free(tmp);
}

void ms5boot_install_protection(void)
{
// special ROM banking handler
memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2ffff0, 0x2fffff, 0, 0, mslug5_bankswitch_w);
}



DRIVER_INIT( ms5boot )
{
neogeo_bootleg_text_decrypt(1);

driver_init_neogeo(machine);
ms5boot_install_protection();
}

GAMEB( 2003, ms5boot,  mslug5,   neogeo, neogeo, neogeo,  ms5boot,  ROT0, "bootleg", "Metal Slug 5 (Bootleg Set 2)", 0 )


Well the game really doesn´t works here. I´m using mamePlus source!  :redface:
What a hell this  :biggrin:

Offline KOF2112

  • Expert
  • *****
  • Posts: 187
  • Karma: +14/-4
Re: I need some help with my old mslug5nd driver...
« Reply #19 on: July 01, 2007, 09:24:26 AM »
 :biggrin: :biggrin:

Code: [Select]
ROM_START( ms5boot )
ROM_REGION( 0x500000, REGION_CPU1, 0 )
ROM_LOAD16_WORD_SWAP( "ms5-p1.bin", 0x000000, 0x100000, CRC(e6d297af) SHA1(5bb3f72ce26e3f46c523b955f425056eb246e855) )
ROM_LOAD16_WORD_SWAP( "ms5-p2.bin", 0x100000, 0x200000, CRC(3fc46cfa) SHA1(f20d3d359f6cdbf6aabb6920020621b02bafee91) )
ROM_LOAD16_WORD_SWAP( "ms5-p3.bin", 0x300000, 0x200000, CRC(742c955a) SHA1(96c0f08b1f2f6877f5169a96c13b67f3be6082c6) )

ROM_REGION( 0x20000, REGION_GFX1, 0 )
ROM_LOAD("ms5-s1.bin", 0x000000, 0x20000, CRC(52a8c09b) SHA1(3A90D8E44AA7CBC79945F8ECE0E2FB9CE3E5A4C7) )
ROM_REGION( 0x20000, REGION_GFX2, 0 )
ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) )

NEO_BIOS_SOUND_256K( "ms5-m1.bin", CRC(792e07c1) SHA1(117516e8ec9026c7682ab27857aab6639bef5835) )

ROM_REGION( 0x1000000, REGION_SOUND1, 0 )
ROM_LOAD( "ms5-v1.bin", 0x000000, 0x400000, CRC(c3540e0d) SHA1(bf7ca3abe291b28a4cfaef791f0c556cc98ad8d8) )
ROM_LOAD( "ms5-v2.bin", 0x400000, 0x400000, CRC(077bd2f4) SHA1(1699959d17f8c7113cebdb9da2e1cd18ce48486c) )
ROM_LOAD( "ms5-v3.bin", 0x800000, 0x400000, CRC(39b14567) SHA1(1658612a93ba30130f9260bc41d3f18f6b90c1e7) )
ROM_LOAD( "ms5-v4.bin", 0xc00000, 0x400000, CRC(969ff3b2) SHA1(50feceb741a1c08b000b077a33151ab1352eb798) )

NO_DELTAT_REGION

ROM_REGION( 0x4000000, REGION_GFX3, 0 )
ROM_LOAD16_BYTE( "ms5-c1.bin", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) )
ROM_LOAD16_BYTE( "ms5-c2.bin", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) )
ROM_LOAD16_BYTE( "ms5-c3.bin", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) )
ROM_LOAD16_BYTE( "ms5-c4.bin", 0x1000001, 0x800000, CRC(e1b1131b) SHA1(68a36d336582069e79ad481638d92f57c4cd6523) )
ROM_LOAD16_BYTE( "ms5-c5.bin", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) )
ROM_LOAD16_BYTE( "ms5-c6.bin", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) )
ROM_LOAD16_BYTE( "ms5-c7.bin", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) )
ROM_LOAD16_BYTE( "ms5-c8.bin", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) )
ROM_END

Code: [Select]
DRIVER_INIT( ms5boot )
{
    neogeo_sfix_decrypt();
neogeo_fix_bank_type = 1;

install_pvc_protection();

memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2ffff0, 0x2ffff1, 0, 0, mslug5_bankswitch_w);
memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2ffff2, 0x2ffff3, 0, 0, mslug5_calc_bankoffset_w);

init_neogeo();
}

Offline novaa

  • Newbies
  • *
  • Posts: 10
  • Karma: +0/-1
Re: I need some help with my old mslug5nd driver...
« Reply #20 on: July 01, 2007, 06:19:02 PM »
Complete driver by iq_132 , work fine under mameplus source
dont include the code of neoboot in the neodrv for nothing

in drivers/neodrv.c
Code: [Select]
ROM_START( ms5boot ) /* Bootleg / Hack of Metal Slug 5 */
ROM_REGION( 0x500000, NEOGEO_REGION_MAIN_CPU_CARTRIDGE, 0 )
ROM_LOAD16_WORD_SWAP( "268-p1bl.bin", 0x000000, 0x100000, CRC(e6d297af) SHA1(5bb3f72ce26e3f46c523b955f425056eb246e855) )
ROM_LOAD16_WORD_SWAP( "268-p2bl.bin", 0x100000, 0x100000, CRC(3fc46cfa) SHA1(f20d3d359f6cdbf6aabb6920020621b02bafee91) )
ROM_CONTINUE( 0x300000, 0x100000 )
ROM_LOAD16_WORD_SWAP( "268-p3bl.bin", 0x200000, 0x100000, CRC(742c955a) SHA1(96c0f08b1f2f6877f5169a96c13b67f3be6082c6) )
ROM_CONTINUE( 0x400000, 0x100000 )

NEO_SFIX_128K( "268-s1bl.bin", CRC(52a8c09b) SHA1(3a90d8e44aa7cbc79945f8ece0e2fb9ce3e5a4c7) )

NEO_BIOS_AUDIO_256K( "268-m1bl.bin", CRC(792e07c1) SHA1(117516e8ec9026c7682ab27857aab6639bef5835) )

ROM_REGION( 0x1000000, NEOGEO_REGION_AUDIO_DATA_1, 0 )
ROM_LOAD( "268-v1bl.bin", 0x000000, 0x400000, CRC(c3540e0d) SHA1(bf7ca3abe291b28a4cfaef791f0c556cc98ad8d8) )
ROM_LOAD( "268-v2bl.bin", 0x400000, 0x400000, CRC(077bd2f4) SHA1(1699959d17f8c7113cebdb9da2e1cd18ce48486c) )
ROM_LOAD( "268-v3bl.bin", 0x800000, 0x400000, CRC(39b14567) SHA1(1658612a93ba30130f9260bc41d3f18f6b90c1e7) )
ROM_LOAD( "268-v4bl.bin", 0xc00000, 0x400000, CRC(969ff3b2) SHA1(50feceb741a1c08b000b077a33151ab1352eb798) )

NO_DELTAT_REGION

ROM_REGION( 0x4000000, NEOGEO_REGION_SPRITES, 0 )
ROM_LOAD16_BYTE( "268-c1bl.bin", 0x0000000, 0x800000, CRC(969c0d62) SHA1(de3c5cfa980cca2fab0416ac0d292948b5d4c9c3) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "268-c2bl.bin", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198ee5c7c2c7563b49ebd9f7ba95d9b0b303f6c) ) /* Plane 2,3 */
ROM_LOAD16_BYTE( "268-c3bl.bin", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443ea4c1bab45f1977a390eb7e1a0163915110) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "268-c4bl.bin", 0x1000001, 0x800000, CRC(e1b1131b) SHA1(68a36d336582069e79ad481638d92f57c4cd6523) ) /* Plane 2,3 */
ROM_LOAD16_BYTE( "268-c5bl.bin", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4ae15d29ba979601598eddf8905072fe1d9e0a98) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "268-c6bl.bin", 0x2000001, 0x800000, CRC(6de89589) SHA1(86a6c036bf51af516fea83a30874026ec1586a83) ) /* Plane 2,3 */
ROM_LOAD16_BYTE( "268-c7bl.bin", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30f3280fe527098ecf46541cc645a59b366105ea) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "268-c8bl.bin", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(b5d0d81d5cc624538b0651c568295e578a1330d1) ) /* Plane 2,3 */
ROM_END

DRIVER_INIT( ms5boot )
{
neogeo_bootleg_text_decrypt(1);
driver_init_neogeo(machine);
ms5boot_install_protection();
}

GAMEB( 2003, ms5boot,  mslug5,   neogeo, neogeo,   neogeo,  ms5boot,  ROT0, "bootleg", "Metal Slug 5 (Bootleg Set 2)", 0 )

in machine/neoboot.c
Code: [Select]
void neogeo_bootleg_text_decrypt(INT32 value)
{
INT32 i, ofst, size = memory_region_length( NEOGEO_REGION_FIXED_LAYER_CARTRIDGE );
UINT8 *srom = memory_region( NEOGEO_REGION_FIXED_LAYER_CARTRIDGE );
UINT8 *tmp = malloc(size);

switch (value) {
// Original code for MAME by fataku
// for kf2k1pla
case 0: {
for (i = 0; i < size; i++) {
srom[i] = BITSWAP8(srom[i], 3, 2, 4, 5, 1, 6, 0, 7);
}
  break;
}
// Original code from mame traduced by FerchogtX
// for ms5boot, svcboot, svcplusa, more
case 1: {
memcpy(tmp + 0x000000, srom + 0x010000, 0x010000);
memcpy(tmp + 0x010000, srom + 0x000000, 0x010000);
memcpy(srom, tmp, size);
break;
}
// Thanks also to HappyASR for the info
// for ms5plus, svcplus, kf2k3bl, more
case 2: {
for (i = 0; i < size; i+= 0x10) {
memcpy(tmp + i + 0, srom + i + 8, 8);
memcpy(tmp + i + 8, srom + i + 0, 8);
}
memcpy (srom, tmp, size);
break;
}
// Original code from MAME -- http://www.mame.net
// for cthd2003
case 3: {
memcpy(tmp + 0 * 0x8000, srom + 0 * 0x8000, 0x8000);
memcpy(tmp + 1 * 0x8000, srom + 2 * 0x8000, 0x8000);
memcpy(tmp + 2 * 0x8000, srom + 1 * 0x8000, 0x8000);
memcpy(tmp + 3 * 0x8000, srom + 3 * 0x8000, 0x8000);
memcpy(srom, tmp, size);
break;
}
// Original code by HalRIN
// for ct2k3sp
case 4: {
memcpy(tmp, srom, size);

for (i = 0; i < size; i++) {
ofst = BITSWAP24((i & 0x1ffff),23,22,21,20,19,18,17,3,0,1,4,2,13,14,16,15,5,6,11,10,9,8,7,12);
ofst += (i >> 17) << 17;
srom[i] = tmp[ofst];
}

memcpy(tmp, srom, size);
memcpy(srom + 0x08000, tmp + 0x10000, 0x8000);
memcpy(srom + 0x10000, tmp + 0x08000, 0x8000);
memcpy(srom + 0x28000, tmp + 0x30000, 0x8000);
memcpy(srom + 0x30000, tmp + 0x28000, 0x8000);
break;
}
// Converted by Jimmy_Page (www.neofighters.com)
// for svcsplus, kof10thu, kf2k2spr, more
case 5: {
for (i = 0; i < size; i++) {
srom[i] = BITSWAP8(srom[i], 7, 6, 0, 4, 3, 2, 1, 5);
}
break;
}
// for kof2k2bl
case 6: {
kof2002b_gfx_decrypt(srom, 0x20000);
break;
}
// for kf2k5uni
case 7: {
for(i = 0; i < size; i++) {
srom[i] = BITSWAP8(srom[i], 4, 5, 6, 7, 0, 1, 2, 3);
}
break;
}
}
free(tmp);
}

static WRITE16_HANDLER( mslug5_bankswitch_w )
{
if (offset == 1) {
neogeo_set_main_cpu_bank_address( data << 8 );
}
}

void ms5boot_install_protection(void)
{
// special ROM banking handler
memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2ffff0, 0x2fffff, 0, 0, mslug5_bankswitch_w);
}

in includes/neogeo.h
Code: [Select]
/*----------- defined in machine/neoboot.c -----------*/
void neogeo_bootleg_text_decrypt(INT32 value);
void ms5boot_install_protection(void);

in mamedriv.c
Code: [Select]
DRIVER( ms5boot ) /* 0268 (c) 2003 Playmore/bootleg */
« Last Edit: July 01, 2007, 06:20:20 PM by novaa »

Offline Ashura-X

  • Member
  • ***
  • Posts: 138
  • Karma: +0/-0
Re: I need some help with my old mslug5nd driver...
« Reply #21 on: July 02, 2007, 06:15:58 PM »
Complete driver by iq_132 , work fine under mameplus source
dont include the code of neoboot in the neodrv for nothing

in drivers/neodrv.c
Code: [Select]
ROM_START( ms5boot ) /* Bootleg / Hack of Metal Slug 5 */
ROM_REGION( 0x500000, NEOGEO_REGION_MAIN_CPU_CARTRIDGE, 0 )
ROM_LOAD16_WORD_SWAP( "268-p1bl.bin", 0x000000, 0x100000, CRC(e6d297af) SHA1(5bb3f72ce26e3f46c523b955f425056eb246e855) )
ROM_LOAD16_WORD_SWAP( "268-p2bl.bin", 0x100000, 0x100000, CRC(3fc46cfa) SHA1(f20d3d359f6cdbf6aabb6920020621b02bafee91) )
ROM_CONTINUE( 0x300000, 0x100000 )
ROM_LOAD16_WORD_SWAP( "268-p3bl.bin", 0x200000, 0x100000, CRC(742c955a) SHA1(96c0f08b1f2f6877f5169a96c13b67f3be6082c6) )
ROM_CONTINUE( 0x400000, 0x100000 )

NEO_SFIX_128K( "268-s1bl.bin", CRC(52a8c09b) SHA1(3a90d8e44aa7cbc79945f8ece0e2fb9ce3e5a4c7) )

NEO_BIOS_AUDIO_256K( "268-m1bl.bin", CRC(792e07c1) SHA1(117516e8ec9026c7682ab27857aab6639bef5835) )

ROM_REGION( 0x1000000, NEOGEO_REGION_AUDIO_DATA_1, 0 )
ROM_LOAD( "268-v1bl.bin", 0x000000, 0x400000, CRC(c3540e0d) SHA1(bf7ca3abe291b28a4cfaef791f0c556cc98ad8d8) )
ROM_LOAD( "268-v2bl.bin", 0x400000, 0x400000, CRC(077bd2f4) SHA1(1699959d17f8c7113cebdb9da2e1cd18ce48486c) )
ROM_LOAD( "268-v3bl.bin", 0x800000, 0x400000, CRC(39b14567) SHA1(1658612a93ba30130f9260bc41d3f18f6b90c1e7) )
ROM_LOAD( "268-v4bl.bin", 0xc00000, 0x400000, CRC(969ff3b2) SHA1(50feceb741a1c08b000b077a33151ab1352eb798) )

NO_DELTAT_REGION

ROM_REGION( 0x4000000, NEOGEO_REGION_SPRITES, 0 )
ROM_LOAD16_BYTE( "268-c1bl.bin", 0x0000000, 0x800000, CRC(969c0d62) SHA1(de3c5cfa980cca2fab0416ac0d292948b5d4c9c3) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "268-c2bl.bin", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198ee5c7c2c7563b49ebd9f7ba95d9b0b303f6c) ) /* Plane 2,3 */
ROM_LOAD16_BYTE( "268-c3bl.bin", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443ea4c1bab45f1977a390eb7e1a0163915110) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "268-c4bl.bin", 0x1000001, 0x800000, CRC(e1b1131b) SHA1(68a36d336582069e79ad481638d92f57c4cd6523) ) /* Plane 2,3 */
ROM_LOAD16_BYTE( "268-c5bl.bin", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4ae15d29ba979601598eddf8905072fe1d9e0a98) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "268-c6bl.bin", 0x2000001, 0x800000, CRC(6de89589) SHA1(86a6c036bf51af516fea83a30874026ec1586a83) ) /* Plane 2,3 */
ROM_LOAD16_BYTE( "268-c7bl.bin", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30f3280fe527098ecf46541cc645a59b366105ea) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "268-c8bl.bin", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(b5d0d81d5cc624538b0651c568295e578a1330d1) ) /* Plane 2,3 */
ROM_END

DRIVER_INIT( ms5boot )
{
neogeo_bootleg_text_decrypt(1);
driver_init_neogeo(machine);
ms5boot_install_protection();
}

GAMEB( 2003, ms5boot,  mslug5,   neogeo, neogeo,   neogeo,  ms5boot,  ROT0, "bootleg", "Metal Slug 5 (Bootleg Set 2)", 0 )

in machine/neoboot.c
Code: [Select]
void neogeo_bootleg_text_decrypt(INT32 value)
{
INT32 i, ofst, size = memory_region_length( NEOGEO_REGION_FIXED_LAYER_CARTRIDGE );
UINT8 *srom = memory_region( NEOGEO_REGION_FIXED_LAYER_CARTRIDGE );
UINT8 *tmp = malloc(size);

switch (value) {
// Original code for MAME by fataku
// for kf2k1pla
case 0: {
for (i = 0; i < size; i++) {
srom[i] = BITSWAP8(srom[i], 3, 2, 4, 5, 1, 6, 0, 7);
}
  break;
}
// Original code from mame traduced by FerchogtX
// for ms5boot, svcboot, svcplusa, more
case 1: {
memcpy(tmp + 0x000000, srom + 0x010000, 0x010000);
memcpy(tmp + 0x010000, srom + 0x000000, 0x010000);
memcpy(srom, tmp, size);
break;
}
// Thanks also to HappyASR for the info
// for ms5plus, svcplus, kf2k3bl, more
case 2: {
for (i = 0; i < size; i+= 0x10) {
memcpy(tmp + i + 0, srom + i + 8, 8);
memcpy(tmp + i + 8, srom + i + 0, 8);
}
memcpy (srom, tmp, size);
break;
}
// Original code from MAME -- http://www.mame.net
// for cthd2003
case 3: {
memcpy(tmp + 0 * 0x8000, srom + 0 * 0x8000, 0x8000);
memcpy(tmp + 1 * 0x8000, srom + 2 * 0x8000, 0x8000);
memcpy(tmp + 2 * 0x8000, srom + 1 * 0x8000, 0x8000);
memcpy(tmp + 3 * 0x8000, srom + 3 * 0x8000, 0x8000);
memcpy(srom, tmp, size);
break;
}
// Original code by HalRIN
// for ct2k3sp
case 4: {
memcpy(tmp, srom, size);

for (i = 0; i < size; i++) {
ofst = BITSWAP24((i & 0x1ffff),23,22,21,20,19,18,17,3,0,1,4,2,13,14,16,15,5,6,11,10,9,8,7,12);
ofst += (i >> 17) << 17;
srom[i] = tmp[ofst];
}

memcpy(tmp, srom, size);
memcpy(srom + 0x08000, tmp + 0x10000, 0x8000);
memcpy(srom + 0x10000, tmp + 0x08000, 0x8000);
memcpy(srom + 0x28000, tmp + 0x30000, 0x8000);
memcpy(srom + 0x30000, tmp + 0x28000, 0x8000);
break;
}
// Converted by Jimmy_Page (www.neofighters.com)
// for svcsplus, kof10thu, kf2k2spr, more
case 5: {
for (i = 0; i < size; i++) {
srom[i] = BITSWAP8(srom[i], 7, 6, 0, 4, 3, 2, 1, 5);
}
break;
}
// for kof2k2bl
case 6: {
kof2002b_gfx_decrypt(srom, 0x20000);
break;
}
// for kf2k5uni
case 7: {
for(i = 0; i < size; i++) {
srom[i] = BITSWAP8(srom[i], 4, 5, 6, 7, 0, 1, 2, 3);
}
break;
}
}
free(tmp);
}

static WRITE16_HANDLER( mslug5_bankswitch_w )
{
if (offset == 1) {
neogeo_set_main_cpu_bank_address( data << 8 );
}
}

void ms5boot_install_protection(void)
{
// special ROM banking handler
memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2ffff0, 0x2fffff, 0, 0, mslug5_bankswitch_w);
}

in includes/neogeo.h
Code: [Select]
/*----------- defined in machine/neoboot.c -----------*/
void neogeo_bootleg_text_decrypt(INT32 value);
void ms5boot_install_protection(void);

in mamedriv.c
Code: [Select]
DRIVER( ms5boot ) /* 0268 (c) 2003 Playmore/bootleg */


Worked now ! I didnt pay attention on right order of P roms sizes :p
Thx all for help me ! YES ! I´M DUMB !  :idiot:


« Last Edit: July 02, 2007, 06:33:17 PM by Ashura-X »

Offline novaa

  • Newbies
  • *
  • Posts: 10
  • Karma: +0/-1
Re: I need some help with my old mslug5nd driver...
« Reply #22 on: July 03, 2007, 07:56:40 AM »
 :cool: iq have make a very nice work on this driver