Jump to content

Recommended Posts

Posted

Hello all i was wondering if anyone had a few drivers i want... i use linux so no winkawaks or fba option..

also i'm using an older xmame port..085 actually... i do have 0.100 sources but newer versions seem very testy as far as xmame well anyway here goes

king of fighters 2001 remix pro

Archive: /roms/kof2k1rp.zip

Length Method Size Ratio Date Time CRC-32 Name

-------- ------ ------- ----- ---- ---- ------ ----

8388608 Defl:N 3865184 54% 01-19-02 17:47 4c7ec427 kof2k1rp_c3.rom

8388608 Defl:N 2749955 67% 01-19-02 17:05 1d237aa6 kof2k1rp_c4.rom

8388608 Defl:N 3638288 57% 01-19-02 17:06 c2256db5 kof2k1rp_c5.rom

8388608 Defl:N 2646416 69% 01-19-02 17:06 8d6565a9 kof2k1rp_c6.rom

8388608 Defl:N 3663766 56% 03-30-02 13:41 ef682ed2 kof2k1rp_c7.rom

8388608 Defl:N 2502410 70% 01-19-02 17:08 954d0e16 kof2k1rp_c8.rom

131072 Defl:N 29594 77% 02-08-04 10:36 56a9067f kof2k1rp_m1.rom

1048576 Defl:N 367388 65% 04-17-04 14:24 e9e42e55 kof2k1rp_p1.rom

4194304 Defl:N 1719134 59% 04-17-04 14:25 91668d86 kof2k1rp_p2.rom

131072 Defl:N 39624 70% 04-17-04 14:26 492f5efe kof2k1rp_s1.rom

4194304 Defl:N 3535609 16% 03-31-96 01:28 83d49ecf kof2k1rp_v1.rom

4194304 Defl:N 3560821 15% 03-31-96 01:39 003f1843 kof2k1rp_v2.rom

4194304 Defl:N 3350869 20% 03-31-96 03:17 2ae38dbe kof2k1rp_v3.rom

4194304 Defl:N 3155605 25% 03-31-96 19:47 26ec4dd9 kof2k1rp_v4.rom

8388608 Defl:N 3737752 55% 01-19-02 17:03 f298b87b kof2k1rp_c1.rom

8388608 Defl:N 2381880 72% 01-19-02 17:04 f9d05d99 kof2k1rp_c2.rom

 

 

 

also an older kof2k4es (mines same as kof2k4se

Archive: /roms/kof2k4es.zip

Length Method Size Ratio Date Time CRC-32 Name

-------- ------ ------- ----- ---- ---- ------ ----

4194304 Defl:N 3495271 17% 11-23-04 17:09 63bb5462 2k4-v4.rom

8388608 Defl:N 3661131 56% 11-23-04 17:04 7a050288 2k4-c1.rom

8388608 Defl:N 2638966 69% 11-23-04 17:22 e924afcf 2k4-c2.rom

8388608 Defl:N 3996914 52% 12-11-02 19:56 959fad0b 2k4-c3.rom

8388608 Defl:N 3830638 54% 12-11-02 19:56 74bba7c6 2k4-c5.rom

8388608 Defl:N 3418271 59% 11-23-04 17:05 fa705b2b 2k4-c7.rom

8388608 Defl:N 2480524 70% 11-23-04 17:25 2c912ff9 2k4-c8.rom

131072 Defl:N 51935 60% 11-23-04 17:22 5a47d9ad 2k4-m1.rom

1048576 Defl:N 368791 65% 11-23-04 17:05 5f482757 2k4-p1.rom

131072 Defl:N 18050 86% 11-23-04 17:22 a3c9b2d8 2k4-s1.rom

4194304 Defl:N 3497325 17% 11-23-04 17:08 8991f6e9 2k4-v1.rom

4194304 Defl:N 3564763 15% 11-23-04 17:08 511e4d2f 2k4-v2.rom

4194304 Defl:N 3515174 16% 11-23-04 17:08 1dd8b53a 2k4-v3.rom

8388608 Defl:N 2517424 70% 12-11-02 19:57 e20d2216 2k4-c6.rom

8388608 Defl:N 2840175 66% 10-23-02 20:00 efe6a468 2k4-c4.rom

4194304 Defl:N 1669326 60% 11-23-04 17:32 698679a7 2k4-p2.rom

1048576 Defl:N 369886 65% 01-07-05 02:33 388c5cba 2k4s-p1.bin

131072 Defl:N 17651 87% 01-07-05 02:48 348686dd 2k4s-s1.bin

 

i did find a few drivers online but i'm getting scrambled graphics and think that i didn't corvert them

properly to the old driver format or maybe i need something in machine/neogeo.c like cthd and such

 

thanks in advance!!!

  • Replies 36
  • Created
  • Last Reply

Top Posters In This Topic

Posted
ROM_START( kf2k4spe )
ROM_REGION( 0x500000, REGION_CPU1, 0 )
ROM_LOAD16_WORD_SWAP( "k2k4s-p2.bin", 0x000000, 0x080000, CRC(21a84084) SHA1(973e8a0bffa0e1f055803f663f81a8e03701802d) )
ROM_LOAD16_WORD_SWAP( "k2k4s-p3.bin", 0x080000, 0x080000, CRC(febb484e) SHA1(4b1838795b84f22d578ad043641df0a7bf7d9774) )
ROM_LOAD16_WORD_SWAP( "k2k4s-p1.bin", 0x100000, 0x400000, CRC(e6c50566) SHA1(cc6a3489a3bfeb4dcc65b6ddae0030f7e66fbabe) )

NEO_SFIX_128K( "k2k4s-s1.bin", CRC(a3c9b2d8) SHA1(1472d2cbd7bb73e84824ecf773924007e6117e77) )

NEO_BIOS_SOUND_128K( "k2k4s-m1.bin", CRC(60ba7947) SHA1(061141463fe59c5e0d4cf81d28a09b0b5d9c1566) )

ROM_REGION( 0x1000000, REGION_SOUND1, ROMREGION_SOUNDONLY )
ROM_LOAD( "k2k4s-v2.bin", 0x000000, 0x800000, CRC(e4ddfb3f) SHA1(eb8220ab01c16cf9244b7f3f9912bec0db561b85) )
ROM_LOAD( "k2k4s-v1.bin", 0x800000, 0x800000, CRC(b887d287) SHA1(f593a5722df6f6fac023d189a739a117e976bb2f) )

NO_DELTAT_REGION

ROM_REGION( 0x4000000, REGION_GFX3, 0 )
ROM_LOAD16_BYTE( "k2k4s-c4.bin", 0x0000000, 0x800000, CRC(7a050288) SHA1(55a20c5b01e11a859f096af3f8e09986025d288f) ) /* Plane 0,1 */ 
ROM_LOAD16_BYTE( "k2k4s-c8.bin", 0x0000001, 0x800000, CRC(e924afcf) SHA1(651e974f7339d2cdcfa58c5398013197a0525b77) ) /* Plane 2,3 */
ROM_LOAD16_BYTE( "k2k4s-c3.bin", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63ab83ddc5f688dc8165a7ff8d262df3fcd942a2) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "k2k4s-c7.bin", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2a414285e48aa948b5b0d4a9333bab083b5fb853) ) /* Plane 2,3 */
ROM_LOAD16_BYTE( "k2k4s-c2.bin", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(e01adc7a4633bc0951b9b4f09abc07d728e9a2d9) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "k2k4s-c6.bin", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5d28eea7b581e780b78f391a8179f1678ee0d9a5) ) /* Plane 2,3 */
ROM_LOAD16_BYTE( "k2k4s-c1.bin", 0x3000000, 0x800000, CRC(fa705b2b) SHA1(f314c66876589601806352484dd8e45bc41be692) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "k2k4s-c5.bin", 0x3000001, 0x800000, CRC(2c912ff9) SHA1(b624a625ea3e221808b7ea43fb0b1a51d8c1853e) ) /* Plane 2,3 */
ROM_END




DRIVER_INIT( kf2k4spe )
{
int i;
UINT8 *src = memory_region(REGION_CPU1)+0x100000;
UINT8 *dst = malloc(0x400000);
unsigned int sec[] = {0x300000,0x200000,0x100000,0x000000};
if (dst)
{
 memcpy(dst,src,0x400000);

for (i = 0; i < 4; ++i)
 {
	 memcpy(src+i*0x100000,dst+sec[i],0x100000);
 }
 free(dst);
}
init_neogeo();
}


GAMEB( 2004, kf2k4spe, kof2002,  neogeo, raster, neogeo,  kf2k4spe, ROT0, "Eolith / Playmore Corporation", "The King of Fighters 2004 Special Edition (Hack)", 0 )

Posted
ROM_START( kf2k4spe )
ROM_REGION( 0x500000, REGION_CPU1, 0 )
ROM_LOAD16_WORD_SWAP( "k2k4s-p2.bin", 0x000000, 0x080000, CRC(21a84084) SHA1(973e8a0bffa0e1f055803f663f81a8e03701802d) )
ROM_LOAD16_WORD_SWAP( "k2k4s-p3.bin", 0x080000, 0x080000, CRC(febb484e) SHA1(4b1838795b84f22d578ad043641df0a7bf7d9774) )
ROM_LOAD16_WORD_SWAP( "k2k4s-p1.bin", 0x100000, 0x400000, CRC(e6c50566) SHA1(cc6a3489a3bfeb4dcc65b6ddae0030f7e66fbabe) )

NEO_SFIX_128K( "k2k4s-s1.bin", CRC(a3c9b2d8) SHA1(1472d2cbd7bb73e84824ecf773924007e6117e77) )

NEO_BIOS_SOUND_128K( "k2k4s-m1.bin", CRC(60ba7947) SHA1(061141463fe59c5e0d4cf81d28a09b0b5d9c1566) )

ROM_REGION( 0x1000000, REGION_SOUND1, ROMREGION_SOUNDONLY )
ROM_LOAD( "k2k4s-v2.bin", 0x000000, 0x800000, CRC(e4ddfb3f) SHA1(eb8220ab01c16cf9244b7f3f9912bec0db561b85) )
ROM_LOAD( "k2k4s-v1.bin", 0x800000, 0x800000, CRC(b887d287) SHA1(f593a5722df6f6fac023d189a739a117e976bb2f) )

NO_DELTAT_REGION

ROM_REGION( 0x4000000, REGION_GFX3, 0 )
ROM_LOAD16_BYTE( "k2k4s-c4.bin", 0x0000000, 0x800000, CRC(7a050288) SHA1(55a20c5b01e11a859f096af3f8e09986025d288f) ) /* Plane 0,1 */ 
ROM_LOAD16_BYTE( "k2k4s-c8.bin", 0x0000001, 0x800000, CRC(e924afcf) SHA1(651e974f7339d2cdcfa58c5398013197a0525b77) ) /* Plane 2,3 */
ROM_LOAD16_BYTE( "k2k4s-c3.bin", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63ab83ddc5f688dc8165a7ff8d262df3fcd942a2) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "k2k4s-c7.bin", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2a414285e48aa948b5b0d4a9333bab083b5fb853) ) /* Plane 2,3 */
ROM_LOAD16_BYTE( "k2k4s-c2.bin", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(e01adc7a4633bc0951b9b4f09abc07d728e9a2d9) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "k2k4s-c6.bin", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5d28eea7b581e780b78f391a8179f1678ee0d9a5) ) /* Plane 2,3 */
ROM_LOAD16_BYTE( "k2k4s-c1.bin", 0x3000000, 0x800000, CRC(fa705b2b) SHA1(f314c66876589601806352484dd8e45bc41be692) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "k2k4s-c5.bin", 0x3000001, 0x800000, CRC(2c912ff9) SHA1(b624a625ea3e221808b7ea43fb0b1a51d8c1853e) ) /* Plane 2,3 */
ROM_END




DRIVER_INIT( kf2k4spe )
{
int i;
UINT8 *src = memory_region(REGION_CPU1)+0x100000;
UINT8 *dst = malloc(0x400000);
unsigned int sec[] = {0x300000,0x200000,0x100000,0x000000};
if (dst)
{
 memcpy(dst,src,0x400000);

for (i = 0; i < 4; ++i)
 {
	 memcpy(src+i*0x100000,dst+sec[i],0x100000);
 }
 free(dst);
}
init_neogeo();
}


GAMEB( 2004, kf2k4spe, kof2002,  neogeo, raster, neogeo,  kf2k4spe, ROT0, "Eolith / Playmore Corporation", "The King of Fighters 2004 Special Edition (Hack)", 0 )

 

 

 

 

thanks james !! however i have a bad p2 i believe i know how bad a p1 can cause a disturbance in the force but can a p2 do it as well (garbled graphics) wasn't there a kof2002 > kof2k4se patch floating around? also do you have a matrimbl driver (kawaks dev version)? thanks again james

Posted

ROM_START( matrimbl ) /* Bootleg */
       ROM_REGION( 0x500000, REGION_CPU1, 0 )
       ROM_LOAD16_WORD_SWAP( "266-p1.bin", 0x000000, 0x100000, CRC(5d4c2dc7) SHA1(8d723b0d28ec344eef26009b361a2b97d300dd51) )
       ROM_LOAD16_WORD_SWAP( "266-p2.bin", 0x100000, 0x400000, CRC(a14b1906) SHA1(1daa14d73512f760ef569b06f9facb279437d1db) )
       
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) )
       
NEO_BIOS_SOUND_128K( "266-m1b.bin", CRC(3ea96ab1) SHA1(e5053c4312f658faed2a34e38325a22ef792d384) )

ROM_REGION( 0X1000000, REGION_SOUND1, ROMREGION_SOUNDONLY )
       /* byte swapped */
       ROM_LOAD( "266b-v1d.bin", 0x000000, 0x400000, CRC(352b0a07) SHA1(19f7cc12f3f6d0fda9c7449816c4c32367447897) )
ROM_LOAD16_WORD_SWAP( "266b-v2d.bin", 0x400000, 0x400000, CRC(1e9bd59e) SHA1(0f754e780d0ebb815a92a45ad55f85f6d0181b70) )
       ROM_LOAD( "266b-v3d.bin", 0x800000, 0x400000, CRC(e8362fcc) SHA1(42d558fd80cabe22a1c09a1fa75741afbcf46b7c) )
ROM_LOAD16_WORD_SWAP( "266b-v4d.bin", 0xc00000, 0x400000, CRC(c8c79b19) SHA1(9c7a5e694d68f37a27209e1400b60b6241a04cc7) )

       NO_DELTAT_REGION

       ROM_REGION( 0x4000000, REGION_GFX3, 0 )
/* Scrambled GFX */
       ROM_LOAD16_BYTE( "266-c1b.bin", 0x0000000, 0x800000, CRC(a5595656) SHA1(d86281607f22e4f2001047eaeeda99cd673c508c) ) /* Plane 0,1 */ 
       ROM_LOAD16_BYTE( "266-c2b.bin", 0x0000001, 0x800000, CRC(c5f7c300) SHA1(9ff5ffb750bd2e925667d84389192f92183e8677) ) /* Plane 2,3 */
       ROM_LOAD16_BYTE( "266-c3b.bin", 0x1000000, 0x800000, CRC(574efd7d) SHA1(6cac303db705fe2800701ee51de9e9fca04e6e66) ) /* Plane 0,1 */
       ROM_LOAD16_BYTE( "266-c4b.bin", 0x1000001, 0x800000, CRC(109d54d9) SHA1(22cb748b3b14317b90d9d9951297ada2bfc3a3f1) ) /* Plane 2,3 */
       ROM_LOAD16_BYTE( "266-c5b.bin", 0x2000000, 0x800000, CRC(15c9e882) SHA1(1c9f1ccaed4fdd9d8f5cc9b6fcaca3c4e328e59e) ) /* Plane 0,1 */
       ROM_LOAD16_BYTE( "266-c6b.bin", 0x2000001, 0x800000, CRC(77497b97) SHA1(c6481bea5a36f8210971fdcb4bfbe7ed93c769de) ) /* Plane 2,3 */
       ROM_LOAD16_BYTE( "266-c7b.bin", 0x3000000, 0x800000, CRC(ab481bb6) SHA1(6b2d97c5505eeb28e300b075f37f0d69ef44463a) ) /* Plane 0,1 */
       ROM_LOAD16_BYTE( "266-c8b.bin", 0x3000001, 0x800000, CRC(906cf267) SHA1(b0f2cf8887794d715f208751ddd1ed26b2c3ffdf) ) /* Plane 2,3 */
ROM_END





/* descrambling information from razoola */
static void matrimbl_neogeo_gfx_address_fix_do(int start, int end, int bit3shift, int bit2shift, int bit1shift, int bit0shift)
{
int i,j;
int tilesize=128;

UINT8* rom = (UINT8*)malloc(16*tilesize);	// 16 tiles buffer
UINT8* realrom = memory_region(REGION_GFX3) + start*tilesize;

for (i = 0; i < (end-start)/16; i++) {
 for (j = 0; j < 16; j++) {
 	int offset = (((j&1)>>0)<<bit0shift)
           +(((j&2)>>1)<<bit1shift)
           +(((j&4)>>2)<<bit2shift)
     +(((j&8)>>3)<<bit3shift);

 	memcpy(rom+j*tilesize, realrom+offset*tilesize, tilesize);
 }
 memcpy(realrom,rom,tilesize*16);
 realrom+=16*tilesize;
}
free(rom);
}

static void matrimbl_neogeo_gfx_address_fix(int start, int end)
{
matrimbl_neogeo_gfx_address_fix_do(start+512*0, end+512*0, 0,3,2,1);
matrimbl_neogeo_gfx_address_fix_do(start+512*1, end+512*1, 1,0,3,2);
matrimbl_neogeo_gfx_address_fix_do(start+512*2, end+512*2, 2,1,0,3);
// skip 3 & 4
matrimbl_neogeo_gfx_address_fix_do(start+512*5, end+512*5, 0,1,2,3);
matrimbl_neogeo_gfx_address_fix_do(start+512*6, end+512*6, 0,1,2,3);
matrimbl_neogeo_gfx_address_fix_do(start+512*7, end+512*7, 0,2,3,1);
}

static void matrimbl_c(int pow)
{
int i;

for (i=0; i<=192; i+=8)
 matrimbl_neogeo_gfx_address_fix(i*512,i*512+512);

for (i=200; i<=392; i+=8)
 matrimbl_neogeo_gfx_address_fix(i*512,i*512+512);

for (i=400; i<=592; i+=8)
 matrimbl_neogeo_gfx_address_fix(i*512,i*512+512);

for (i=600; i<=792; i+=8)
 matrimbl_neogeo_gfx_address_fix(i*512,i*512+512);

for (i=800; i<=992; i+=8)
 matrimbl_neogeo_gfx_address_fix(i*512,i*512+512);

for (i=1000; i<=1016; i+=8)
 matrimbl_neogeo_gfx_address_fix(i*512,i*512+512);
}

#define MATRIMBLFIX(i) (i^(BITSWAP8(i&0x3,4,3,1,2,0,7,6,5)<<8))

DRIVER_INIT( matrimbl )
{
UINT8 *src = memory_region(REGION_CPU1)+0x100000;
UINT8 *dst = malloc(0x400000);
       int i; int j=0;
       int tx_size = memory_region_length(REGION_GFX1);
       int rom_size = memory_region_length(REGION_GFX3);

unsigned int sec[]={0x100000,0x280000,0x300000,0x180000,0x000000,0x380000,0x200000,0x080000};

if (dst){
 memcpy(dst,src,0x400000);
 for(i=0;i<8;++i){
 	memcpy(src+i*0x80000,dst+sec[i],0x80000);
 }
 free(dst);
}
       matrimbl_c(0);
src = memory_region(REGION_GFX3)+rom_size-tx_size;
       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)];

       neogeo_fix_bank_type = 2;
       src = memory_region(REGION_CPU2)+0x10000;
       dst = (UINT8*)malloc(0x20000);
       memcpy(dst,src,0x20000);
       for(i=0x00000;i<0x20000;i++){
          if (i&0x10000){
                if (i&0x800){
                  j=MATRIMBLFIX(i);
                  j=j^0x10000;
                }else{
                  j=MATRIMBLFIX((i^0x01));
                }
          }else{
                if (i&0x800){
                  j=MATRIMBLFIX((i^0x01));
                  j=j^0x10000;
                }else{
                  j=MATRIMBLFIX(i);
                }
          }
         src[j]=dst[i];
       }
 free(dst);
memcpy(src-0x10000,src,0x10000);

init_neogeo();
}





GAMEB( 2002, matrimbl, matrim,  neogeo, raster, neogeo, matrimbl, ROT0, "Bootleg", "Matrimelee (Bootleg)", 0 )

 

 

 

Then in Machine\neogeo.c after static void neogeo_custom_memory(void)

if (!strcmp(Machine->gamedrv->name,"matrim")  ||
 !strcmp(Machine->gamedrv->name,"matrimd") ||
 !strcmp(Machine->gamedrv->name,"matrimbl"))
{
 /* the game hangs after a while without this patch */
 UINT16 *mem16 = (UINT16 *)memory_region(REGION_CPU1);
 mem16[0x310 >> 1] = 0x4e71;
 mem16[0x318 >> 1] = 0x4e71;

 /* Patch out loop to disable console mode */
 mem16[0x1050 >> 1] = 0x4e75;
}

Posted
ROM_START( matrimbl ) /* Bootleg */
       ROM_REGION( 0x500000, REGION_CPU1, 0 )
       ROM_LOAD16_WORD_SWAP( "266-p1.bin", 0x000000, 0x100000, CRC(5d4c2dc7) SHA1(8d723b0d28ec344eef26009b361a2b97d300dd51) )
       ROM_LOAD16_WORD_SWAP( "266-p2.bin", 0x100000, 0x400000, CRC(a14b1906) SHA1(1daa14d73512f760ef569b06f9facb279437d1db) )
       
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) )
       
NEO_BIOS_SOUND_128K( "266-m1b.bin", CRC(3ea96ab1) SHA1(e5053c4312f658faed2a34e38325a22ef792d384) )

ROM_REGION( 0X1000000, REGION_SOUND1, ROMREGION_SOUNDONLY )
       /* byte swapped */
       ROM_LOAD( "266b-v1d.bin", 0x000000, 0x400000, CRC(352b0a07) SHA1(19f7cc12f3f6d0fda9c7449816c4c32367447897) )
ROM_LOAD16_WORD_SWAP( "266b-v2d.bin", 0x400000, 0x400000, CRC(1e9bd59e) SHA1(0f754e780d0ebb815a92a45ad55f85f6d0181b70) )
       ROM_LOAD( "266b-v3d.bin", 0x800000, 0x400000, CRC(e8362fcc) SHA1(42d558fd80cabe22a1c09a1fa75741afbcf46b7c) )
ROM_LOAD16_WORD_SWAP( "266b-v4d.bin", 0xc00000, 0x400000, CRC(c8c79b19) SHA1(9c7a5e694d68f37a27209e1400b60b6241a04cc7) )

       NO_DELTAT_REGION

       ROM_REGION( 0x4000000, REGION_GFX3, 0 )
/* Scrambled GFX */
       ROM_LOAD16_BYTE( "266-c1b.bin", 0x0000000, 0x800000, CRC(a5595656) SHA1(d86281607f22e4f2001047eaeeda99cd673c508c) ) /* Plane 0,1 */ 
       ROM_LOAD16_BYTE( "266-c2b.bin", 0x0000001, 0x800000, CRC(c5f7c300) SHA1(9ff5ffb750bd2e925667d84389192f92183e8677) ) /* Plane 2,3 */
       ROM_LOAD16_BYTE( "266-c3b.bin", 0x1000000, 0x800000, CRC(574efd7d) SHA1(6cac303db705fe2800701ee51de9e9fca04e6e66) ) /* Plane 0,1 */
       ROM_LOAD16_BYTE( "266-c4b.bin", 0x1000001, 0x800000, CRC(109d54d9) SHA1(22cb748b3b14317b90d9d9951297ada2bfc3a3f1) ) /* Plane 2,3 */
       ROM_LOAD16_BYTE( "266-c5b.bin", 0x2000000, 0x800000, CRC(15c9e882) SHA1(1c9f1ccaed4fdd9d8f5cc9b6fcaca3c4e328e59e) ) /* Plane 0,1 */
       ROM_LOAD16_BYTE( "266-c6b.bin", 0x2000001, 0x800000, CRC(77497b97) SHA1(c6481bea5a36f8210971fdcb4bfbe7ed93c769de) ) /* Plane 2,3 */
       ROM_LOAD16_BYTE( "266-c7b.bin", 0x3000000, 0x800000, CRC(ab481bb6) SHA1(6b2d97c5505eeb28e300b075f37f0d69ef44463a) ) /* Plane 0,1 */
       ROM_LOAD16_BYTE( "266-c8b.bin", 0x3000001, 0x800000, CRC(906cf267) SHA1(b0f2cf8887794d715f208751ddd1ed26b2c3ffdf) ) /* Plane 2,3 */
ROM_END





/* descrambling information from razoola */
static void matrimbl_neogeo_gfx_address_fix_do(int start, int end, int bit3shift, int bit2shift, int bit1shift, int bit0shift)
{
int i,j;
int tilesize=128;

UINT8* rom = (UINT8*)malloc(16*tilesize);	// 16 tiles buffer
UINT8* realrom = memory_region(REGION_GFX3) + start*tilesize;

for (i = 0; i < (end-start)/16; i++) {
 for (j = 0; j < 16; j++) {
	 int offset = (((j&1)>>0)<<bit0shift)
           +(((j&2)>>1)<<bit1shift)
           +(((j&4)>>2)<<bit2shift)
     +(((j&8)>>3)<<bit3shift);

	 memcpy(rom+j*tilesize, realrom+offset*tilesize, tilesize);
 }
 memcpy(realrom,rom,tilesize*16);
 realrom+=16*tilesize;
}
free(rom);
}

static void matrimbl_neogeo_gfx_address_fix(int start, int end)
{
matrimbl_neogeo_gfx_address_fix_do(start+512*0, end+512*0, 0,3,2,1);
matrimbl_neogeo_gfx_address_fix_do(start+512*1, end+512*1, 1,0,3,2);
matrimbl_neogeo_gfx_address_fix_do(start+512*2, end+512*2, 2,1,0,3);
// skip 3 & 4
matrimbl_neogeo_gfx_address_fix_do(start+512*5, end+512*5, 0,1,2,3);
matrimbl_neogeo_gfx_address_fix_do(start+512*6, end+512*6, 0,1,2,3);
matrimbl_neogeo_gfx_address_fix_do(start+512*7, end+512*7, 0,2,3,1);
}

static void matrimbl_c(int pow)
{
int i;

for (i=0; i<=192; i+=8)
 matrimbl_neogeo_gfx_address_fix(i*512,i*512+512);

for (i=200; i<=392; i+=8)
 matrimbl_neogeo_gfx_address_fix(i*512,i*512+512);

for (i=400; i<=592; i+=8)
 matrimbl_neogeo_gfx_address_fix(i*512,i*512+512);

for (i=600; i<=792; i+=8)
 matrimbl_neogeo_gfx_address_fix(i*512,i*512+512);

for (i=800; i<=992; i+=8)
 matrimbl_neogeo_gfx_address_fix(i*512,i*512+512);

for (i=1000; i<=1016; i+=8)
 matrimbl_neogeo_gfx_address_fix(i*512,i*512+512);
}

#define MATRIMBLFIX(i) (i^(BITSWAP8(i&0x3,4,3,1,2,0,7,6,5)<<8))

DRIVER_INIT( matrimbl )
{
UINT8 *src = memory_region(REGION_CPU1)+0x100000;
UINT8 *dst = malloc(0x400000);
       int i; int j=0;
       int tx_size = memory_region_length(REGION_GFX1);
       int rom_size = memory_region_length(REGION_GFX3);

unsigned int sec[]={0x100000,0x280000,0x300000,0x180000,0x000000,0x380000,0x200000,0x080000};

if (dst){
 memcpy(dst,src,0x400000);
 for(i=0;i<8;++i){
	 memcpy(src+i*0x80000,dst+sec[i],0x80000);
 }
 free(dst);
}
       matrimbl_c(0);
src = memory_region(REGION_GFX3)+rom_size-tx_size;
       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)];

       neogeo_fix_bank_type = 2;
       src = memory_region(REGION_CPU2)+0x10000;
       dst = (UINT8*)malloc(0x20000);
       memcpy(dst,src,0x20000);
       for(i=0x00000;i<0x20000;i++){
          if (i&0x10000){
                if (i&0x800){
                  j=MATRIMBLFIX(i);
                  j=j^0x10000;
                }else{
                  j=MATRIMBLFIX((i^0x01));
                }
          }else{
                if (i&0x800){
                  j=MATRIMBLFIX((i^0x01));
                  j=j^0x10000;
                }else{
                  j=MATRIMBLFIX(i);
                }
          }
         src[j]=dst[i];
       }
 free(dst);
memcpy(src-0x10000,src,0x10000);

init_neogeo();
}





GAMEB( 2002, matrimbl, matrim,  neogeo, raster, neogeo, matrimbl, ROT0, "Bootleg", "Matrimelee (Bootleg)", 0 )

 

 

 

Then in Machine\neogeo.c after static void neogeo_custom_memory(void)

if (!strcmp(Machine->gamedrv->name,"matrim")  ||
 !strcmp(Machine->gamedrv->name,"matrimd") ||
 !strcmp(Machine->gamedrv->name,"matrimbl"))
{
 /* the game hangs after a while without this patch */
 UINT16 *mem16 = (UINT16 *)memory_region(REGION_CPU1);
 mem16[0x310 >> 1] = 0x4e71;
 mem16[0x318 >> 1] = 0x4e71;

 /* Patch out loop to disable console mode */
 mem16[0x1050 >> 1] = 0x4e75;
}

 

 

 

 

hi James i got them working and a few more.. here goes

 

 

in /src/drivers/neogeo.c

ROM_START( kof2k4esd )

ROM_REGION( 0x500000, REGION_CPU1, 0 )

ROM_LOAD16_WORD_SWAP( "2k4-p1.bin", 0x000000, 0x100000, CRC(5f482757))

ROM_LOAD16_WORD_SWAP( "2k-p2.bin", 0x100000, 0x400000, CRC(698679a7) )

 

NEO_SFIX_128K( "2k4s-s1.bin", CRC(348686dd))

 

NEO_BIOS_SOUND_128K( "2k4-m1.bin", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578))

 

ROM_REGION( 0x1000000, REGION_SOUND1, ROMREGION_SOUNDONLY )

ROM_LOAD( "2k4-v1.bin", 0x000000, 0x400000, CRC(8991f6e9) SHA1(ce5afc0169c142d7f98111afbc60b3a9a2e17256))

ROM_LOAD( "2k4-v2.bin", 0x400000, 0x400000, CRC(511e4d2f) SHA1(28190ec86ac2169ab6fad80635ed13cfcf430c65))

ROM_LOAD( "2k4-v3.bin", 0x800000, 0x400000, CRC(1dd8b53a) SHA1(9aa84f145ba07f5f3c3b3fb682eb8a8ab1500b4c))

ROM_LOAD( "2k4-v4.bin", 0xc00000, 0x400000, CRC(63bb5462) SHA1(afc6a085e25bd006f26e16beda4244bc8bc19bb8))

 

NO_DELTAT_REGION

 

ROM_REGION( 0x4000000, REGION_GFX3, 0 )

 

ROM_LOAD16_BYTE( "2k4-c1.bin", 0x0000000, 0x800000, CRC(7a050288) SHA1(55a20c5b01e11a859f096af3f8e09986025d288f))

ROM_LOAD16_BYTE( "2k4-c2.bin", 0x0000001, 0x800000, CRC(e924afcf) SHA1(651e974f7339d2cdcfa58c5398013197a0525b77))

ROM_LOAD16_BYTE( "2k4-c3.bin", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63ab83ddc5f688dc8165a7ff8d262df3fcd942a2))

ROM_LOAD16_BYTE( "2k4-c4.bin", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2a414285e48aa948b5b0d4a9333bab083b5fb853))

ROM_LOAD16_BYTE( "2k4-c5.bin", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(e01adc7a4633bc0951b9b4f09abc07d728e9a2d9))

ROM_LOAD16_BYTE( "2k4-c6.bin", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5d28eea7b581e780b78f391a8179f1678ee0d9a5))

ROM_LOAD16_BYTE( "2k4-c7.bin", 0x3000000, 0x800000, CRC(fa705b2b) SHA1(f314c66876589601806352484dd8e45bc41be692))

ROM_LOAD16_BYTE( "2k4-c8.bin", 0x3000001, 0x800000, CRC(2c912ff9) SHA1(b624a625ea3e221808b7ea43fb0b1a51d8c1853e))

ROM_END

 

 

in the end of src/drivers/neogeo.c

GAMEB( 2004, kof2k4esd, kof2002, neogeo, neogeo, neogeo, neogeo, ROT0, "Bootleg", "The King of Fighters 2004 Special Edition Decrypted"

 

 

 

 

as far as kof 2001 remix pro (and a worthwhile hack)

working with..................

 

ROM_START( kof2k1rp )

ROM_REGION( 0x500000, REGION_CPU1, 0 )

ROM_LOAD16_WORD_SWAP( "kof2k1rp_p1.rom", 0x000000, 0x100000, CRC(e9e42e55) )

ROM_LOAD16_WORD_SWAP( "kof2k1rp_p2.rom", 0x100000, 0x400000, CRC(91668d86) )

 

NEO_SFIX_128K( "kof2k1rp_s1.rom", CRC(492f5efe) )

 

NEO_BIOS_SOUND_128K( "kof2k1rp_m1.rom", CRC(56a9067f) )

 

ROM_REGION( 0x1000000, REGION_SOUND1, ROMREGION_SOUNDONLY )

ROM_LOAD( "kof2k1rp_v1.rom", 0x000000, 0x400000, CRC(83d49ecf) )

ROM_LOAD( "kof2k1rp_v2.rom", 0x400000, 0x400000, CRC(003f1843) )

ROM_LOAD( "kof2k1rp_v3.rom", 0x800000, 0x400000, CRC(2ae38dbe) )

ROM_LOAD( "kof2k1rp_v4.rom", 0xc00000, 0x400000, CRC(26ec4dd9) )

 

NO_DELTAT_REGION

 

ROM_REGION( 0x4000000, REGION_GFX3, 0 )

ROM_LOAD16_BYTE( "kof2k1rp_c1.rom", 0x0000000, 0x800000, CRC(f298b87b) ) /* plane 0,1 */

ROM_LOAD16_BYTE( "kof2k1rp_c2.rom", 0x0000001, 0x800000, CRC(f9d05d99) ) /* Plane 2,3 */

ROM_LOAD16_BYTE( "kof2k1rp_c3.rom", 0x1000000, 0x800000, CRC(4c7ec427) ) /* Plane 0,1 */

ROM_LOAD16_BYTE( "kof2k1rp_c4.rom", 0x1000001, 0x800000, CRC(1d237aa6) ) /* Plane 2,3 */

ROM_LOAD16_BYTE( "kof2k1rp_c5.rom", 0x2000000, 0x800000, CRC(c2256db5) ) /* Plane 0,1 */

ROM_LOAD16_BYTE( "kof2k1rp_c6.rom", 0x2000001, 0x800000, CRC(8d6565a9) ) /* Plane 2,3 */

ROM_LOAD16_BYTE( "kof2krp_c7.rom", 0x3000000, 0x800000, CRC(ef682ed2) ) /* Plane 0,1 */

ROM_LOAD16_BYTE( "kof2k1rp_c8.rom", 0x3000001, 0x800000, CRC(954d0e16) ) /* Plane 2,3 */

ROM_END

 

 

and in the end of src/driver/neogeo.c

GAMEB( 2001, kof2k1rp, kof2001, neogeo, neogeo, neogeo, neogeo, ROT0, "Eolith /SNK ", "The King of Fighters 2001 Remix Pro" )

 

kof2k1rp is well worth grabbing might i mention extra moves and blue lifebars.. anyone thats enuff of an "snkmaniak" can find them on the 'net

thanks again bro i've been a fan sice the westnet/kula days.... keep up the good work..and many thanks for your drivers and help!!!!!

Posted

sorry to keep bugging you james hopefully i'll stop after this.. but i was wondering if you had a kof2003 ultra plus driver for the encypted set.. this one..

 

Length Method Size Ratio Date Time CRC-32 Name

-------- ------ ------- ----- ---- ---- ------ ----

8388608 Defl:N 1979454 76% 11-06-05 09:44 87294c01 271-p1up.bin

131072 Defl:N 15111 89% 11-06-05 09:37 e5708c0c 271-s1up.bin

 

and i can't find a patch to get the decrypted set.. it was a total nightmare patching it with windows tools in a unix system..grrrr

i did attempt to use other kof2003 driver types but oddly i'm getting a blue and yellow screen with no crash or restart or even any garbage... some weird form of protection ? who knows and off the record are the "SHA" 's simply md5sums?

Posted

ROM_START( kof2k3up ) /* Ultra Plus Hack */
ROM_REGION( 0x800000, REGION_CPU1, 0 ) 
ROM_LOAD16_WORD_SWAP( "271-p1up.bin", 0x000000, 0x800000, CRC(87294c01) SHA1(21420415a6b2ba1b43ecc1934270dc085d6bd7d9) )

NEO_SFIX_128K( "271-s1up.bin", CRC(e5708c0c) SHA1(5649446d3b0b1bd138b5a8b40b96a6d0f892f4d8) )

NEO_BIOS_SOUND_512K( "271-m1d.bin", CRC(0e86af8f) SHA1(769102b67bb1a699cfa5674d66cdb46ae633cb65) )

ROM_REGION( 0x1000000, REGION_SOUND1, ROMREGION_SOUNDONLY )
/* decrypted */
ROM_LOAD( "271-v1d.bin", 0x000000, 0x1000000, CRC(2964f36e) SHA1(bfc52f81354eb57e27acb3b80fe1547b9e070293) )

NO_DELTAT_REGION

ROM_REGION( 0x6000000, REGION_GFX3, 0 )
/* decrypted */
ROM_LOAD16_BYTE( "271-c1d.bin", 0x0000000, 0x1000000, CRC(c29acd28) SHA1(8a10409c5a9ad95fa9b56e94c14f1b96101fb179) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "271-c2d.bin", 0x0000001, 0x1000000, CRC(328e80b1) SHA1(c7f8069488be1a88a2ea03718b6a131f5c96bd3f) ) /* Plane 2,3 */
ROM_LOAD16_BYTE( "271-c3d.bin", 0x2000000, 0x1000000, CRC(020a11f1) SHA1(85cfae76234f72b0039ebc02f931bb2a9c10b1af) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "271-c4d.bin", 0x2000001, 0x1000000, CRC(991b5ed2) SHA1(99c4c470bc9cb388773e27de6df4a16803fc7b45) ) /* Plane 2,3 */
ROM_END




DRIVER_INIT( kof2k3up )
{
/* Codes by HalRIN,IQ_132,bms1221 Modified By James hehe */
/* Descramble P1 (bring part 8 to the front) */
int ofst;
int i;
UINT8 *rom = memory_region( REGION_CPU1 ) + 0xfe000;
UINT8 *buf = memory_region( REGION_CPU1 ) + 0xd0610;
UINT8 *src = memory_region(REGION_CPU1);
UINT8 *srom = memory_region( REGION_GFX1 );
int rom_size = memory_region_length( REGION_GFX1 );
memcpy(src+0x100000, src, 0x600000);
memcpy(src, src+0x700000, 0x100000);

for( i = 0; i < 0x2000 / 2; i++ ){
ofst = (i & 0xff00) + BITSWAP8( (i & 0x00ff), 7, 6, 0, 4, 3, 2, 1, 5 );
memcpy( &rom[ i * 2 ], &buf[ ofst * 2 ], 2 );
}

for( i = 0; i < rom_size; i++ ){
srom[ i ] = BITSWAP8( srom[ i ], 7, 6, 0, 4, 3, 2, 1, 5 );
}
neogeo_fix_bank_type = 2;
init_neogeo();
}



GAMEB( 2003, kof2k3up, kof2003,	neogeo, neogeo, neogeo, kof2k3up, ROT0, "Playmore Corporation", "The King of Fighters 2003 Ultra Plus (Hack)", 0 )

 

 

Next part goes in machine\neogeo.c

Ignore the other rom names if you do not have those rom sets. It should still compile

 

/* PCB init info */
static unsigned short CartRAM[0x1000];

unsigned char pvc_r8(unsigned int address)
{
return *(((unsigned char *)CartRAM)+((address^1)-0x2fe000));
}

void pvc_w8(unsigned int address, unsigned char data)
{
*(((unsigned char *)CartRAM)+((address^1)-0x2fe000))=data;
}

// These perform some palette calculations
// Unpack palette word to RGB dword, thanks to bms888
void pvc_prot1( void ) // on writes to e0/e1
{
unsigned char b1, b2;
b1 = pvc_r8(0x2fffe0);
b2 = pvc_r8(0x2fffe1);

pvc_w8(0x2fffe3,(((b2>>0)&0xf)<<1)|((b1>>4)&1));
pvc_w8(0x2fffe2,(((b2>>4)&0xf)<<1)|((b1>>5)&1));
pvc_w8(0x2fffe5,(((b1>>0)&0xf)<<1)|((b1>>6)&1));
pvc_w8(0x2fffe4, (b1>>7));
}

void pvc_prot2( void ) // on writes to e8/e9/ea/eb
{
unsigned char b1, b2, b3, b4;
b1 = pvc_r8(0x2fffe8);
b2 = pvc_r8(0x2fffe9);
b3 = pvc_r8(0x2fffea);
b4 = pvc_r8(0x2fffeb);

pvc_w8(0x2fffed,(b2>>1)|((b1>>1)<<4));
pvc_w8(0x2fffec,(b4>>1)|((b2&1)<<4)|((b1&1)<<5)|((b4&1)<<6)|((b3&1)<<7));
}

void pvc_write_bankswitch( void )
{
UINT32 bankaddress;
bankaddress = ((CartRAM[0xff8]>>8)|(CartRAM[0xff9]<<8))+0x100000;
neogeo_set_cpu1_second_bank(bankaddress);
}

static WRITE16_HANDLER( pvc_prot_w )
{
COMBINE_DATA( &CartRAM[ offset ] );

if (offset == 0xFF0)pvc_prot1();
else if(offset >= 0xFF4 && offset <= 0xFF5)pvc_prot2();
else if(offset >= 0xFF8 && offset <= 0xFF9)pvc_write_bankswitch();
}

static READ16_HANDLER( pvc_prot_r ) 
{ 
    if (offset >= 0xFF8) 
    { 
         if(CartRAM[0xFF8] == 0xffff) 
         { 
              CartRAM[0xFF8] = 0xfea0; 
              CartRAM[0xFF9] = 0x7fff; 
         } 
         if(CartRAM[0xFF8] == 0x0000) 
         { 
              CartRAM[0xFF8] = 0x00a0; 
         } 
    } 
    return CartRAM[ offset ]; 
}


/* kof2003 bootleg init info */
static READ16_HANDLER( kof2003b_prot_r )
{
return CartRAM[0xff9];
}




if (!strcmp(Machine->gamedrv->name,"kof2003b") ||
!strcmp(Machine->gamedrv->name,"kof2003a") ||
!strcmp(Machine->gamedrv->name,"kof2k3up") ||
!strcmp(Machine->gamedrv->name,"kf2k3ba"))
{
 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);

 memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x058196, 0x058197, 0, 0, kof2003b_prot_r);
}

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...