Jump to content

a few more drivers


Recommended Posts

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

Link to comment
Share on other sites

  • Replies 36
  • Created
  • Last Reply

Top Posters In This Topic

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 )

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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