Welcome!

General Emulation => MAME => Topic started by: James33 on November 24, 2004, 07:13:28 PM

Title: King of Fighter 2003 and hacks drivers
Post by: James33 on November 24, 2004, 07:13:28 PM
This should give you an idea even if your rom crc do not match .


Code: [Select]
ROM_START( kof2003 )
ROM_REGION( 0x900000, REGION_CPU1, 0 )
ROM_LOAD32_WORD_SWAP( "271-p1.bin", 0x000000, 0x400000, CRC(b9da070c) SHA1(1a26325af142a4dd221c336061761468598c4634) )
ROM_LOAD32_WORD_SWAP( "271-p2.bin", 0x000002, 0x400000, CRC(da3118c4) SHA1(582e4f44f03276adecb7b2848d3b96bf6da57f1e) )
ROM_LOAD16_WORD_SWAP( "271-p3.bin", 0x800000, 0x100000, CRC(5cefd0d2) SHA1(cddc3164629fed4b6f715e12b109ad35d1009355) )
ROM_LOAD16_WORD_SWAP( "271-p3d.bin", 0x800000, 0x100000, CRC(59d376da) SHA1(3c3ad0b79e8b37e838893a8f7b87e11d7eeee8f2) )

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

ROM_REGION16_BE( 0x40000, REGION_USER1, 0 )
ROM_LOAD16_WORD_SWAP( "271-bios.bin", 0x00000, 0x040000, CRC(c521b5bc) SHA1(c9a5db63523191dedd1b39baab8772f64f09b77f) )
NEOGEO_BIOS

ROM_REGION( 0x90000, REGION_CPU2, 0 )
ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) )
ROM_LOAD( "271-m1d.bin", 0x00000, 0x80000, CRC(0e86af8f) SHA1(769102b67bb1a699cfa5674d66cdb46ae633cb65) )
ROM_RELOAD(             0x10000, 0x80000 )
ROM_REGION( 0x10000, REGION_GFX4, 0 )
ROM_LOAD( "000-lo.lo", 0x00000, 0x10000, CRC(e09e253c) SHA1(2b1c719531dac9bb503f22644e6e4236b91e7cfc) )

ROM_REGION( 0x1000000, REGION_SOUND1, ROMREGION_SOUNDONLY )
ROM_LOAD( "271-v1d.bin", 0x000000, 0x1000000, CRC(2058ec5e) SHA1(567fdf328f87551a949dc601f4e71c55368debf0) )

NO_DELTAT_REGION

ROM_REGION( 0x6000000, REGION_GFX3, 0 )
ROM_LOAD16_BYTE( "271-c1d.bin", 0x0000000, 0x1000000, CRC(c29acd28) SHA1(8a10409c5a9ad95fa9b56e94c14f1b96101fb179) )
ROM_LOAD16_BYTE( "271-c2d.bin", 0x0000001, 0x1000000, CRC(328e80b1) SHA1(c7f8069488be1a88a2ea03718b6a131f5c96bd3f) )
ROM_LOAD16_BYTE( "271-c3d.bin", 0x2000000, 0x1000000, CRC(020a11f1) SHA1(85cfae76234f72b0039ebc02f931bb2a9c10b1af) )
ROM_LOAD16_BYTE( "271-c4d.bin", 0x2000001, 0x1000000, CRC(991b5ed2) SHA1(99c4c470bc9cb388773e27de6df4a16803fc7b45) )
ROM_LOAD16_BYTE( "271-c5d.bin", 0x4000000, 0x1000000, CRC(c2de8b66) SHA1(40c2ea48fc20d470163a9dbb40c0276fc4cfceb9) )
ROM_LOAD16_BYTE( "271-c6d.bin", 0x4000001, 0x1000000, CRC(3ff750db) SHA1(714f14a2eb2df6f25d10a6b6aff4b3adfbc7a5dc) )
ROM_END

ROM_START( kof2003b ) /* Uni-Bios Fix - Bootleg Set 1 */
ROM_REGION( 0x800000, REGION_CPU1, 0 )
ROM_LOAD16_WORD_SWAP( "271-p1bl.bin" , 0x100000, 0x400000, CRC(92ed6ee3) SHA1(5e7e21eb40dfcc453ba73808760d5ddedd49c58a) )
ROM_LOAD16_WORD_SWAP( "271-p2bl.bin" , 0x500000, 0x200000, CRC(5d3d8bb3) SHA1(7f2341f14ca12ff5721eb038b3496228a1f34b60) )
ROM_CONTINUE( 0x000000, 0x100000 )
ROM_CONTINUE( 0x000000, 0x100000 )

NEO_SFIX_128K( "271-s1d.bin", CRC(beea2419) SHA1(d3a9d7bf1b3c9c51e4381c2adee33081443744af) )
// NEO_SFIX_128K( "271-s1d.bin", CRC(7c7829aa) SHA1(22f8d38d1d0891295d0593741d9477fbe6b4f48c) )

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(2058ec5e) SHA1(567fdf328f87551a949dc601f4e71c55368debf0) )

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_LOAD16_BYTE( "271-c5d.bin", 0x4000000, 0x1000000, CRC(c2de8b66) SHA1(40c2ea48fc20d470163a9dbb40c0276fc4cfceb9) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "271-c6d.bin", 0x4000001, 0x1000000, CRC(3ff750db) SHA1(714f14a2eb2df6f25d10a6b6aff4b3adfbc7a5dc) ) /* Plane 2,3 */
ROM_END

ROM_START( kof2k3up ) /* Ultra Plus */
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(2058ec5e) SHA1(567fdf328f87551a949dc601f4e71c55368debf0) )

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_LOAD16_BYTE( "271-c5d.bin", 0x4000000, 0x1000000, CRC(c2de8b66) SHA1(40c2ea48fc20d470163a9dbb40c0276fc4cfceb9) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "271-c6d.bin", 0x4000001, 0x1000000, CRC(3ff750db) SHA1(714f14a2eb2df6f25d10a6b6aff4b3adfbc7a5dc) ) /* Plane 2,3 */
ROM_END

ROM_START( kf2k3ba ) /* Uni-Bios Fix - Bootleg Set 2 */
ROM_REGION( 0x800000, REGION_CPU1, 0 )
ROM_LOAD16_WORD_SWAP( "271-p1d.bin" , 0x000000, 0x400000, CRC(3b58d2e5) SHA1(9524cd6f90e8d3037eeeb895b4da1d13f18c1e4a) )
ROM_LOAD16_WORD_SWAP( "271-p2d.bin" , 0x400000, 0x400000, CRC(5934d72b) SHA1(6814b368f40f342d68db4d676bb54fb459b7c7eb) )

NEO_SFIX_512K( "271t-s1d.bin", CRC(071a8b1e) SHA1(92c73931f22ba5cae8b15a1fc2c773bb7f8ed702) )

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(2058ec5e) SHA1(567fdf328f87551a949dc601f4e71c55368debf0) )

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_LOAD16_BYTE( "271-c5d.bin", 0x4000000, 0x1000000, CRC(c2de8b66) SHA1(40c2ea48fc20d470163a9dbb40c0276fc4cfceb9) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "271-c6d.bin", 0x4000001, 0x1000000, CRC(3ff750db) SHA1(714f14a2eb2df6f25d10a6b6aff4b3adfbc7a5dc) ) /* Plane 2,3 */
ROM_END

ROM_START( kof2003p ) /* Uni-Bios Fix - Bootleg Hack */
       ROM_REGION( 0x700000, REGION_CPU1, 0 )
ROM_LOAD16_WORD_SWAP( "271-p1ex.bin", 0x000000, 0x100000, CRC(dacf5b2d) SHA1(b776f3cf2a720325fed8f8908f18eacdc3cb05aa) )
ROM_LOAD16_WORD_SWAP( "271-p1bl.bin", 0x100000, 0x400000, CRC(92ed6ee3) SHA1(5e7e21eb40dfcc453ba73808760d5ddedd49c58a) )
ROM_LOAD16_WORD_SWAP( "271-p3ex.bin", 0x500000, 0x200000, CRC(0d0a5861) SHA1(823dd3d11574a42f98588a6d1f9bb5d721f34be2) )

NEO_SFIX_512K( "271p-s1d.bin", CRC(09e3f2bd) SHA1(733488b3c06262e67cb771ed76e8bbbe16cf7dda) )

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(2058ec5e) SHA1(567fdf328f87551a949dc601f4e71c55368debf0) )

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_LOAD16_BYTE( "271-c5d.bin", 0x4000000, 0x1000000, CRC(c2de8b66) SHA1(40c2ea48fc20d470163a9dbb40c0276fc4cfceb9) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "271-c6d.bin", 0x4000001, 0x1000000, CRC(3ff750db) SHA1(714f14a2eb2df6f25d10a6b6aff4b3adfbc7a5dc) ) /* Plane 2,3 */
ROM_END

Code: [Select]
static void kof2003_px_decrypt( void )
{
const unsigned char xor2[ 0x20 ] = {
0xb4, 0x0f, 0x40, 0x6c, 0x38, 0x07, 0xd0, 0x3f, 0x53, 0x08, 0x80, 0xaa, 0xbe, 0x07, 0xc0, 0xfa,
0xd0, 0x08, 0x10, 0xd2, 0xf1, 0x03, 0x70, 0x7e, 0x87, 0x0B, 0x40, 0xf6, 0x2a, 0x0a, 0xe0, 0xf9
};

int i;
int ofst;
UINT8 *rom, *buf;

rom = memory_region( REGION_CPU1 );

for( i = 0x100000; i < 0x800000; i++ ){
rom[ i ] ^= xor2[ (i % 0x20) ];
}

for( i = 0x100000; i < 0x800000; i += 4 ){
UINT16 *rom16 = (UINT16*)&rom[ i + 1 ];
*rom16 = BITSWAP16( *rom16, 15, 14, 13, 12, 4, 5, 6, 7, 8, 9, 10, 11, 3, 2, 1, 0 );
}

buf = malloc( 0x800000 );
memcpy( buf, rom, 0x800000 );

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

for( i = 0x100000; i < 0x800000; i += 0x100 ){
ofst = (i & 0xf000ff) +
  ((i & 0x000f00) ^ 0x00300) +
  (BITSWAP8( ((i & 0x0ff000) >> 12), 4, 5, 6, 7, 1, 0, 3, 2 ) << 12);

memcpy( &rom[ i ], &buf[ ofst ], 0x100 );
}

free( buf );

buf = malloc(0x900000);
memcpy( buf, rom, 0x900000 );

memcpy( &rom[0x100000], &buf[0x800000], 0x100000 );
memcpy( &rom[0x200000], &buf[0x100000], 0x700000 );

free(buf);
}

static void kof2003_sx_decrypt( void )
{
int i;
int tx_size = memory_region_length( REGION_GFX1 );
int rom_size = memory_region_length( REGION_GFX3 );
UINT8 *src;
UINT8 *dst;

src = memory_region( REGION_GFX3 ) + rom_size - 0x1000000 - 0x80000;
dst = memory_region( REGION_GFX1 );

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

src = memory_region( REGION_GFX3 ) + rom_size - 0x80000;
dst = memory_region( REGION_GFX1 ) + 0x80000;

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

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



DRIVER_INIT( kof2003 )
{
kof2003_px_decrypt();
kof2003_sx_decrypt();
// save_decrypted_ps();
neogeo_fix_bank_type = 2;
init_neogeo();
}

DRIVER_INIT( kf2k3ba )
{
neogeo_fix_bank_type = 2;
init_neogeo();
}

static void kof2k3up_sx_decrypt( void )
{
    UINT8 *rom = memory_region( REGION_GFX1 );
    int rom_size = memory_region_length( REGION_GFX1 );

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

DRIVER_INIT( kof2k3up )
{
// Driver by IQ_132 -- http://neosource.1emu.net/
// Descramble P1 (bring part 8 to the front)
UINT8 *src = memory_region(REGION_CPU1);
memcpy(src+0x100000, src, 0x600000);
memcpy(src, src+0x700000, 0x100000);

// Patch out protected addresses
data16_t *mem16 = (data16_t *)memory_region(REGION_CPU1);
mem16[0x0D8A/2] = 0x0000;
mem16[0x0D8C/2] = 0x12EE;

neogeo_fix_bank_type = 2;
kof2k3up_sx_decrypt();
init_neogeo();
}

Code: [Select]
GAMEB( 2003, kof2003,  neogeo, neogeo, neogeo, neogeo, kof2003,  ROT0, "Playmore Corporation", "The King of Fighters 2003")
GAMEB( 2003, kof2003b, kof2003, neogeo, neogeo, neogeo, neogeo,   ROT0, "Playmore Corporation", "The King of Fighters 2003 (BootLeg Set 1)" )
GAMEB( 2003, kf2k3ba, kof2003, neogeo, neogeo, neogeo, kf2k3ba, ROT0, "Playmore Corporation", "The King of Fighters 2003 (Transparencies / BootLeg Set 2)" )
GAMEB( 2003, kof2003p, kof2003, neogeo, neogeo, neogeo, kof2003a, ROT0, "Playmore Corporation", "The King of Fighters 2004 Hero (BootLeg / Hack)" )
GAMEB( 2003, kof2k3up, kof2003, neogeo, neogeo, neogeo, kof2k3up, ROT0, "Playmore Corporation", "The King of Fighters 2003 Ultra Plus (Hack)" )

next post Machine/neogeo.c init
Title: King of Fighter 2003 and hacks drivers
Post by: James33 on November 24, 2004, 07:16:42 PM
machine/neogeo.c

Code: [Select]
/* PCB init info */
static UINT16 mv0_prot_offset[ 0x08 ];
static UINT16 mv0_bankswitch_offset[ 2 ];
static int mv0_bankswitch_flg;

static READ16_HANDLER( mv0_prot_r )
{
return mv0_prot_offset[ offset ];
}

static WRITE16_HANDLER( mv0_prot_w )
{
mv0_prot_offset[ offset ] = (mv0_prot_offset[ offset ] & mem_mask) | ((~mem_mask) & data);

if( offset == 0 ){
UINT8 *ofst8 = (UINT8*)mv0_prot_offset;

ofst8[ 0x02 ] = ((ofst8[ 0x01 ] >> 4) & 0x01) + ((ofst8[ 0x00 ] & 0x0f) << 1);
ofst8[ 0x03 ] = ((ofst8[ 0x01 ] >> 5) & 0x01) + (((ofst8[ 0x00 ] >> 4) & 0x0f) << 1);
ofst8[ 0x04 ] = ((ofst8[ 0x01 ] >> 6) & 0x01) + ((ofst8[ 0x01 ] & 0x0f) << 1);
ofst8[ 0x05 ] = (ofst8[ 0x01 ] >> 7);
}else if( offset == 5 ){
UINT8 *ofst8 = (UINT8*)mv0_prot_offset;

ofst8[ 0x0c ] = (ofst8[ 0x08 ] >> 1) | ((ofst8[ 0x09 ] >> 1) << 4);
ofst8[ 0x0d ] = (ofst8[ 0x0a ] >> 1) |
((ofst8[ 0x08 ] & 0x01) << 4) |
((ofst8[ 0x09 ] & 0x01) << 5) |
((ofst8[ 0x0a ] & 0x01) << 6) |
(ofst8[ 0x0b ] << 7);
}
}

static READ16_HANDLER( mv0_bankswitch_r )
{
if( mv0_bankswitch_offset[ 0 ] == 0xffff && mv0_bankswitch_offset[ 1 ] == 0xffff ){

mv0_bankswitch_flg = 1;
if( offset == 0 ){
return 0xfea0;
}else if( offset == 1 ){
return 0x7fff;
}else{
return mv0_bankswitch_offset[ offset ];
}
}else if( mv0_bankswitch_offset[ 0 ] == 0x0000 && mv0_bankswitch_offset[ 1 ] == 0x0000 && mv0_bankswitch_flg == 1 ){

if( offset == 0 ){
return 0x00a0;
}else if( offset == 1 ){
mv0_bankswitch_flg = 0;
return 0x0000;
}else{
return mv0_bankswitch_offset[ offset ];
}
}else{
return mv0_bankswitch_offset[ offset ];
}
}

static WRITE16_HANDLER( mv0_bankswitch_w )
{
UINT32 bank_addr;

mv0_bankswitch_offset[ offset ] = (mv0_bankswitch_offset[ offset ] & mem_mask) | ((~mem_mask) & data);

bank_addr = (mv0_bankswitch_offset[ 0 ] >> 8) +(mv0_bankswitch_offset[ 1 ] << 8) +0x100000;

neogeo_set_cpu1_second_bank( bank_addr );
}

/* kof2003 bootleg init info */
static data16_t kof2003_tbl[4096];

READ16_HANDLER( kof2003_r)
{
return kof2003_tbl[offset];
}

WRITE16_HANDLER( kof2003_w )
{
data = COMBINE_DATA(&kof2003_tbl[offset]);
if (offset == 0x1ff0/2 || offset == 0x1ff2/2) {
UINT8* cr = (UINT8 *)kof2003_tbl;
UINT32 address = (cr[0x1ff3]<<16)|(cr[0x1ff2]<<8)|cr[0x1ff1];
UINT8 prt = cr[0x1ff2];
UINT8* mem = (UINT8 *)memory_region(REGION_CPU1);

cr[0x1ff0] =  0xa0;
cr[0x1ff1] &= 0xfe;
cr[0x1ff3] &= 0x7f;
neogeo_set_cpu1_second_bank(address+0x100000);

mem[0x58196] = prt;
}
}

WRITE16_HANDLER( kof2003p_w )
{
data = COMBINE_DATA(&kof2003_tbl[offset]);
if (offset == 0x1ff0/2 || offset == 0x1ff2/2) {
UINT8* cr = (UINT8 *)kof2003_tbl;
UINT32 address = (cr[0x1ff3]<<16)|(cr[0x1ff2]<<8)|cr[0x1ff0];
UINT8 prt = cr[0x1ff2];
UINT8* mem = (UINT8 *)memory_region(REGION_CPU1);

cr[0x1ff0] &= 0xfe;
cr[0x1ff3] &= 0x7f;
neogeo_set_cpu1_second_bank(address+0x100000);

mem[0x58196] = prt;
}
}

Code: [Select]
       if (!strcmp(Machine->gamedrv->name,"kof2003p"))
{
/* special ROM banking handler */
memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2fe000, 0x2fffff, 0, 0, kof2003_r);

/* additional protection */
memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2fe000, 0x2fffff, 0, 0, kof2003p_w);
}

if (!strcmp(Machine->gamedrv->name,"kof2003b") ||
!strcmp(Machine->gamedrv->name,"kf2k3ba") ||
!strcmp(Machine->gamedrv->name,"kof2k3up"))
{
/* special ROM banking handler */
memory_install_read16_handler (0, ADDRESS_SPACE_PROGRAM, 0x2fe000, 0x2fffff, 0, 0, kof2003_r);

/* additional protection */
memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2fe000, 0x2fffff, 0, 0, kof2003_w);
}

if (!strcmp(Machine->gamedrv->name,"kof2003"))
{
memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2fe000, 0x2fffff, 0, 0, MRA16_RAM );
memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2fe000, 0x2fffff, 0, 0, MWA16_RAM );

memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2fffe0, 0x2fffef, 0, 0, mv0_prot_r );
memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2fffe0, 0x2fffef, 0, 0, mv0_prot_w );

memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2ffff0, 0x2ffff3, 0, 0, mv0_bankswitch_r );
memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2ffff0, 0x2ffff3, 0, 0, mv0_bankswitch_w );

memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0xc00000, 0xc3ffff, 0, 0, MRA16_BANK3 );  // 256k bios
}
Title: King of Fighter 2003 and hacks drivers
Post by: neo04 on November 25, 2004, 07:08:42 AM
thx for kof2k3up! so james, what is the crc of decrypted p1 of kof2k3up did u get?
Title: King of Fighter 2003 and hacks drivers
Post by: James33 on November 25, 2004, 11:02:54 AM
Its decrypted but the bankswitching has not been removed .
Title: Updated kof2003 ultra plus
Post by: James33 on December 15, 2004, 02:25:19 AM
Code: [Select]

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(2058ec5e) SHA1(567fdf328f87551a949dc601f4e71c55368debf0) )

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



// original code by bms1221
static void kof2k3up_px_decrypt( void )
{
int ofst;

UINT8 *rom = memory_region( REGION_CPU1 ) + 0xfe000;
UINT8 *buf = memory_region( REGION_CPU1 ) + 0xd0610;

for( int 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 );
}
}

static void kof2k3up_sx_decrypt( void )
{
    UINT8 *rom = memory_region( REGION_GFX1 );
    int rom_size = memory_region_length( REGION_GFX1 );

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

DRIVER_INIT( kof2k3up )
{
// Driver by IQ_132 -- [url]http://neosource.1emu.net/[/url]
// Descramble P1 (bring part 8 to the front)
UINT8 *src = memory_region(REGION_CPU1);
memcpy(src+0x100000, src, 0x600000);
memcpy(src, src+0x700000, 0x100000);

kof2k3up_px_decrypt();
neogeo_fix_bank_type = 2;
kof2k3up_sx_decrypt();
init_neogeo();
}





Machine\neogeo.c
Code: [Select]


/* kof2003 bootleg init info */
static data16_t kof2003_tbl[4096];

READ16_HANDLER( kof2003_r)
{
return kof2003_tbl[offset];
}

WRITE16_HANDLER( kof2003_w )
{
data = COMBINE_DATA(&kof2003_tbl[offset]);
if (offset == 0x1ff0/2 || offset == 0x1ff2/2) {
UINT8* cr = (UINT8 *)kof2003_tbl;
UINT32 address = (cr[0x1ff3]<<16)|(cr[0x1ff2]<<8)|cr[0x1ff1];
UINT8 prt = cr[0x1ff2];
UINT8* mem = (UINT8 *)memory_region(REGION_CPU1);

cr[0x1ff0] =  0xa0;
cr[0x1ff1] &= 0xfe;
cr[0x1ff3] &= 0x7f;
neogeo_set_cpu1_second_bank(address+0x100000);

mem[0x58196] = prt;
}
}

WRITE16_HANDLER( kof2003p_w )
{
data = COMBINE_DATA(&kof2003_tbl[offset]);
if (offset == 0x1ff0/2 || offset == 0x1ff2/2) {
UINT8* cr = (UINT8 *)kof2003_tbl;
UINT32 address = (cr[0x1ff3]<<16)|(cr[0x1ff2]<<8)|cr[0x1ff0];
UINT8 prt = cr[0x1ff2];
UINT8* mem = (UINT8 *)memory_region(REGION_CPU1);

cr[0x1ff0] &= 0xfe;
cr[0x1ff3] &= 0x7f;
neogeo_set_cpu1_second_bank(address+0x100000);

mem[0x58196] = prt;
}
}




      if (!strcmp(Machine->gamedrv->name,"kof2003b") ||
!strcmp(Machine->gamedrv->name,"kof2003a") ||
!strcmp(Machine->gamedrv->name,"kof2k3up"))
{
/* special ROM banking handler */
memory_install_read16_handler (0, ADDRESS_SPACE_PROGRAM, 0x2fe000, 0x2fffff, 0, 0, kof2003_r);

/* additional protection */
memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2fe000, 0x2fffff, 0, 0, kof2003_w);
}


Title: Driver init kof2k3up Modified
Post by: James33 on December 16, 2004, 12:43:21 AM
Code: [Select]

DRIVER_INIT( kof2k3up )
{
/* Codes by HalRIN,IQ_132,bms1221 Modified By James */
/* Descramble P1 (bring part 8 to the front) */
UINT8 *src = memory_region(REGION_CPU1);
memcpy(src+0x100000, src, 0x600000);
memcpy(src, src+0x700000, 0x100000);

int ofst;
UINT8 *rom = memory_region( REGION_CPU1 ) + 0xfe000;
UINT8 *buf = memory_region( REGION_CPU1 ) + 0xd0610;

for( int 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 );
}

UINT8 *srom = memory_region( REGION_GFX1 );
int rom_size = memory_region_length( REGION_GFX1 );

for( int 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();
}
Title: King of Fighter 2003 and hacks drivers
Post by: X-or on December 27, 2004, 06:39:26 AM
Code: [Select]
ROM_START( kof2003p ) /* Uni-Bios Fix - Bootleg Hack */
       ROM_REGION( 0x700000, REGION_CPU1, 0 )
ROM_LOAD16_WORD_SWAP( "271h-p1.bin" , 0x000000, 0x100000, CRC(dacf5b2d) SHA1(b776f3cf2a720325fed8f8908f18eacdc3cb05aa) )
ROM_LOAD16_WORD_SWAP( "271h-p2.bin" , 0x100000, 0x200000, CRC(8c06e880) SHA1(4345d10232d5c26d88a79463968e4a8f5d1a2a42) )
ROM_LOAD16_WORD_SWAP( "271h-p3.bin" , 0x300000, 0x400000, CRC(96842d45) SHA1(afa5346064b1b9b43eb6d817b5e4139c98b077f1) )[/
QUOTE]

@james
this is not the correct kof2003p set, is it?
the correct p pros are
Code: [Select]
ROM_LOAD16_WORD_SWAP( "271-p1p.bin", 0x000000, 0x100000, CRC(dacf5b2d) SHA1(b776f3cf2a720325fed8f8908f18eacdc3cb05aa) )
ROM_LOAD16_WORD_SWAP( "271-p1bl.bin", 0x100000, 0x400000, CRC(92ed6ee3) SHA1(5e7e21eb40dfcc453ba73808760d5ddedd49c58a) )
ROM_LOAD16_WORD_SWAP( "271-p3p.bin", 0x500000, 0x200000, CRC(0d0a5861) SHA1(823dd3d11574a42f98588a6d1f9bb5d721f34be2) )

let me know if your driver works with this code


btw, MC&HNY to all  :)
Title: driver for the correct set of kof ex hero
Post by: X-or on December 27, 2004, 03:59:01 PM
Code: [Select]
ROM_START( kof03ex ) /* korean bootleg / hack of kof2003 */
ROM_REGION( 0x700000, REGION_CPU1, 0 )
ROM_LOAD16_WORD_SWAP( "271-p1ex.bin", 0x000000, 0x100000, CRC(dacf5b2d) SHA1(b776f3cf2a720325fed8f8908f18eacdc3cb05aa) )
ROM_LOAD16_WORD_SWAP( "271-p1bl.bin", 0x100000, 0x400000, CRC(92ed6ee3) SHA1(5e7e21eb40dfcc453ba73808760d5ddedd49c58a) )
ROM_LOAD16_WORD_SWAP( "271-p3ex.bin", 0x500000, 0x200000, CRC(0d0a5861) SHA1(823dd3d11574a42f98588a6d1f9bb5d721f34be2) )

/* Decrypted? */
NEO_SFIX_128K( "271-s1ex.bin", CRC(a5d78a9a) SHA1(4d5697a52c40b4fbb9602d49221f37fac36d97c6) )

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

/* Encrypted */
ROM_REGION( 0x1000000, REGION_SOUND1, ROMREGION_SOUNDONLY )
ROM_LOAD( "271-v1.bin", 0x000000, 0x1000000, CRC(1d96154b) SHA1(1d4e262b0d30cee79a4edc83bb9706023c736668) )

NO_DELTAT_REGION

/* Decrypted */
ROM_REGION( 0x6000000, REGION_GFX3, 0 )
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_LOAD16_BYTE( "271-c5d.bin", 0x4000000, 0x1000000, CRC(c2de8b66) SHA1(40c2ea48fc20d470163a9dbb40c0276fc4cfceb9) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "271-c6d.bin", 0x4000001, 0x1000000, CRC(3ff750db) SHA1(714f14a2eb2df6f25d10a6b6aff4b3adfbc7a5dc) ) /* Plane 2,3 */
ROM_END

DRIVER_INIT( kof03ex )
{
data16_t *mem16 = (data16_t *)memory_region(REGION_CPU1);
mem16[0xf38ac/2] = 0x4e75;
neo_pcm2_v2(5);
init_neogeo();

/* special ROM banking handler */
memory_install_read16_handler( 0, ADDRESS_SPACE_PROGRAM, 0x2fe000, 0x2fffff, 0, 0, kof2003_r);
memory_install_write16_handler( 0, ADDRESS_SPACE_PROGRAM, 0x2fe000, 0x2fffff, 0, 0, kof2003p_w);
}

GAMEB( 2003, kof03ex,  kof2003,  neogeo, neogeo, neogeo,  kof03ex,  ROT0, "hack / bootleg", "The King of Fighters 2004 EX Hero" )

kof2003_r and kof2003p_w are the same as before
Title: King of Fighter 2003 and hacks drivers
Post by: FerchogtX on December 27, 2004, 08:34:19 PM
What does that meme patch does? i have the same P roms and game runs perfectly, but without that patch...
See ya!!!!!! :D
Title: King of Fighter 2003 and hacks drivers
Post by: X-or on January 02, 2005, 06:43:27 AM
Quote from: FerchogtX
What does that meme patch does? i have the same P roms and game runs perfectly, but without that patch...
See ya!!!!!! :D


this is an old fataku patch which seems not needed anymore
Title: King of Fighter 2003 and hacks drivers
Post by: James33 on January 02, 2005, 12:36:52 PM
Why do you use the encrypted V rom in kof2k3 ex ?
Title: King of Fighter 2003 and hacks drivers
Post by: X-or on January 03, 2005, 07:15:17 AM
Quote from: James33
Why do you use the encrypted V rom in kof2k3 ex ?


because the real v roms are not dumped
only P and S were dumped
since I don't use the bootleg (useless), I use the decrypted kof2003 set as a parent (for which the encrypted V rom is available)
Title: King of Fighter 2003 and hacks drivers
Post by: FerchogtX on January 03, 2005, 12:37:38 PM
kof2003b isn't useless, from it kof2k4ex and kof2k3up uses the GFX sound and z80...
See ya!!!!! :D
P.D. Just for knowlodge, anyone can do what they want ;)
Title: King of Fighter 2003 and hacks drivers
Post by: X-or on January 03, 2005, 08:57:37 PM
Quote from: FerchogtX
kof2003b isn't useless, from it kof2k4ex and kof2k3up uses the GFX sound and z80


what do you know? only P & S were dumped
you can't just assume they use the same GFX sound and z80 until it's fully dumped :)
Title: King of Fighter 2003 and hacks drivers
Post by: FerchogtX on January 03, 2005, 11:13:00 PM
Quote from: X-or
what do you know? only P & S were dumped
you can't just assume they use the same GFX sound and z80 until it's fully dumped :)

Don't trust me, ask fataku...
See ya!!!!! :D
Title: King of Fighter 2003 and hacks drivers
Post by: X-or on January 04, 2005, 01:02:13 PM
Quote from: FerchogtX
Don't trust me, ask fataku...
See ya!!!!! :D


if that's the same fataku I know, he hasn't aknoledged kof2003ex and up hacks use the bootleg m/v/c roms
Title: King of Fighter 2003 and hacks drivers
Post by: FerchogtX on January 04, 2005, 08:19:56 PM
Well, if from svcboot , plus, plusa and splus USES ROMS (don't trust me, Billy JR. dumped that carts as far as i know, smo others were dumped by ****)
It's logical that this bootlegs USES the GFX and sound of the BOOTLEG parent if this doesn't convice you:
Quote from: fataku
You dont need to load the roms C5 and C6, since those roms are used for extract the S1 information in the real game, but this bootleg use a S1 roms so the C5 and C6 are useless.
Quote from: FerchogtX
But the real bootleg board uses that roms isn't? kof2003b does that... I guess...
See ya!!!!!! :D
Quote from: fataku
The bootleg board have 8 C roms (8mb each), so NO, doesnt have those roms, just take a look in those C roms, oh wait, you cant ^_^
Quote from: FerchogtX
That means that the bootleg board has the "old" 8 C-ROMs dump and the ex hero set uses the same?... Why Razoola chaged this?... Hard Drive reasons? ^_^ XD
See ya!!!!! :D
Quote from: fataku
maybe, or maybe he doesnt have the full bootleg set at that time, like some roms from bootleg set that arent publics...
Source:
http://neo-source.com/index.php?topic=208.0
Now you can make your own conclutions, I use this lyout just to match the bootleg cart info, but i know that the roms are wrong...
See ya!!!!! :D
Title: King of Fighter 2003 and hacks drivers
Post by: James33 on January 05, 2005, 02:29:37 AM
Quote from: X-or
because the real v roms are not dumped
only P and S were dumped
since I don't use the bootleg (useless), I use the decrypted kof2003 set as a parent (for which the encrypted V rom is available)


If you have the encrypted V roms then its a matter of decrypting them which has already been done .Decrypted V roms are never dumped they are decrypted from the encrypted roms Which I doubt the encrypted V roms are used in the bootleg set.
Title: King of Fighter 2003 and hacks drivers
Post by: FerchogtX on January 06, 2005, 07:53:25 PM
Quote from: James33
If you have the encrypted V roms then its a matter of decrypting them which has already been done .Decrypted V roms are never dumped they are decrypted from the encrypted roms Which I doubt the encrypted V roms are used in the bootleg set.

The only thisng here is that kof2003b has some protections in tha V-ROMs and GFX (i guess) so, they cannot have the same protection as an official snk/playmore cart, i mean things like the PCM2 playmore chip protection or even cmc encryptyon cannot be implemented ina bootleg, because bootleggers doesn't use (or know) how to use them or add them...
They can have protectuions, but this cannot be considered as encryption at all, that's my point of view ;)
See ya!!!! :D
Title: The King of Fighters 2003 won't run.
Post by: KingHanco on November 28, 2005, 12:22:44 AM
Oh ok. Thanks iq_132 for point me to the right place.

I will read these.

====================================================================

Ok I try all these and it does read the roms. Then the game bootup and return to the Mame32-X (my build) screen once again. lol...Heh...I will wait until I get some help on this. Edit - Not working and removed from my build.

Code: [Select]
ROM_START( kof2003 )
ROM_REGION( 0x900000, REGION_CPU1, 0 )
ROM_LOAD32_WORD_SWAP( "271-p1.bin", 0x000000, 0x400000, CRC(b9da070c) SHA1(1a26325af142a4dd221c336061761468598c4634) )
ROM_LOAD32_WORD_SWAP( "271-p2.bin", 0x000002, 0x400000, CRC(da3118c4) SHA1(582e4f44f03276adecb7b2848d3b96bf6da57f1e) )
ROM_LOAD16_WORD_SWAP( "271-p3.bin", 0x800000, 0x100000, CRC(5cefd0d2) SHA1(cddc3164629fed4b6f715e12b109ad35d1009355) )
ROM_LOAD16_WORD_SWAP( "271-p3d.bin", 0x800000, 0x100000, CRC(59d376da) SHA1(3c3ad0b79e8b37e838893a8f7b87e11d7eeee8f2) )

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

ROM_REGION16_BE( 0x40000, REGION_USER1, 0 )
ROM_LOAD16_WORD_SWAP( "271-bios.bin", 0x00000, 0x040000, CRC(c521b5bc) SHA1(c9a5db63523191dedd1b39baab8772f64f09b77f) )
NEOGEO_BIOS

ROM_REGION( 0x90000, REGION_CPU2, 0 )
ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) )
ROM_LOAD( "271-m1d.bin", 0x00000, 0x80000, CRC(0e86af8f) SHA1(769102b67bb1a699cfa5674d66cdb46ae633cb65) )
ROM_RELOAD( 0x10000, 0x80000 )
ROM_REGION( 0x10000, REGION_GFX4, 0 )
ROM_LOAD( "000-lo.lo", 0x00000, 0x10000, CRC(e09e253c) SHA1(2b1c719531dac9bb503f22644e6e4236b91e7cfc) )

ROM_REGION( 0x1000000, REGION_SOUND1, 0 )
ROM_LOAD( "271-v1.bin", 0x000000, 0x1000000, CRC(1d96154b) SHA1(1d4e262b0d30cee79a4edc83bb9706023c736668) )


NO_DELTAT_REGION

ROM_REGION( 0x6000000, REGION_GFX3, 0 )
ROM_LOAD16_BYTE( "271-c1d.bin", 0x0000000, 0x1000000, CRC(c29acd28) SHA1(8a10409c5a9ad95fa9b56e94c14f1b96101fb179) )
ROM_LOAD16_BYTE( "271-c2d.bin", 0x0000001, 0x1000000, CRC(328e80b1) SHA1(c7f8069488be1a88a2ea03718b6a131f5c96bd3f) )
ROM_LOAD16_BYTE( "271-c3d.bin", 0x2000000, 0x1000000, CRC(020a11f1) SHA1(85cfae76234f72b0039ebc02f931bb2a9c10b1af) )
ROM_LOAD16_BYTE( "271-c4d.bin", 0x2000001, 0x1000000, CRC(991b5ed2) SHA1(99c4c470bc9cb388773e27de6df4a16803fc7b45) )
ROM_LOAD16_BYTE( "271-c5d.bin", 0x4000000, 0x1000000, CRC(c2de8b66) SHA1(40c2ea48fc20d470163a9dbb40c0276fc4cfceb9) )
ROM_LOAD16_BYTE( "271-c6d.bin", 0x4000001, 0x1000000, CRC(3ff750db) SHA1(714f14a2eb2df6f25d10a6b6aff4b3adfbc7a5dc) )
ROM_END

static void kof2003_px_decrypt( void )
{
        const unsigned char xor2[ 0x20 ] = {
        0xb4, 0x0f, 0x40, 0x6c, 0x38, 0x07, 0xd0, 0x3f, 0x53, 0x08, 0x80, 0xaa, 0xbe, 0x07, 0xc0, 0xfa,
        0xd0, 0x08, 0x10, 0xd2, 0xf1, 0x03, 0x70, 0x7e, 0x87, 0x0B, 0x40, 0xf6, 0x2a, 0x0a, 0xe0, 0xf9
        };

        int i;
        int ofst;
        UINT8 *rom, *buf;

        rom = memory_region( REGION_CPU1 );

        for( i = 0x100000; i < 0x800000; i++ ){
        rom[ i ] ^= xor2[ (i % 0x20) ];
        }

        for( i = 0x100000; i < 0x800000; i += 4 ){
        UINT16 *rom16 = (UINT16*)&rom[ i + 1 ];
        *rom16 = BITSWAP16( *rom16, 15, 14, 13, 12, 4, 5, 6, 7, 8, 9, 10, 11, 3, 2, 1, 0 );
        }

        buf = malloc( 0x800000 );
        memcpy( buf, rom, 0x800000 );

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

        for( i = 0x100000; i < 0x800000; i += 0x100 ){
        ofst = (i & 0xf000ff) +
        ((i & 0x000f00) ^ 0x00300) +
        (BITSWAP8( ((i & 0x0ff000) >> 12), 4, 5, 6, 7, 1, 0, 3, 2 ) << 12);

        memcpy( &rom[ i ], &buf[ ofst ], 0x100 );
        }

        free( buf );

        buf = malloc(0x900000);
        memcpy( buf, rom, 0x900000 );

        memcpy( &rom[0x100000], &buf[0x800000], 0x100000 );
        memcpy( &rom[0x200000], &buf[0x100000], 0x700000 );

    free(buf);
}

static void kof2003_sx_decrypt( void )
{
        int i;
        int tx_size = memory_region_length( REGION_GFX1 );
        int rom_size = memory_region_length( REGION_GFX3 );
        UINT8 *src;
        UINT8 *dst;

        src = memory_region( REGION_GFX3 ) + rom_size - 0x1000000 - 0x80000;
        dst = memory_region( REGION_GFX1 );

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

        src = memory_region( REGION_GFX3 ) + rom_size - 0x80000;
        dst = memory_region( REGION_GFX1 ) + 0x80000;

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

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

DRIVER_INIT( kof2003 )
{
        kof2003_px_decrypt();
        kof2003_sx_decrypt();
        // save_decrypted_ps();
        neogeo_fix_bank_type = 2;
    init_neogeo();
}

To machine/neogeo.c

/* PCB init info */
static UINT16 mv0_prot_offset[ 0x08 ];
static UINT16 mv0_bankswitch_offset[ 2 ];
static int mv0_bankswitch_flg;

static READ16_HANDLER( mv0_prot_r )
{
        return mv0_prot_offset[ offset ];
        }

        static WRITE16_HANDLER( mv0_prot_w )
        {
        mv0_prot_offset[ offset ] = (mv0_prot_offset[ offset ] & mem_mask) | ((~mem_mask) & data);

        if( offset == 0 ){
        UINT8 *ofst8 = (UINT8*)mv0_prot_offset;

        ofst8[ 0x02 ] = ((ofst8[ 0x01 ] >> 4) & 0x01) + ((ofst8[ 0x00 ] & 0x0f) << 1);
        ofst8[ 0x03 ] = ((ofst8[ 0x01 ] >> 5) & 0x01) + (((ofst8[ 0x00 ] >> 4) & 0x0f) << 1);
        ofst8[ 0x04 ] = ((ofst8[ 0x01 ] >> 6) & 0x01) + ((ofst8[ 0x01 ] & 0x0f) << 1);
        ofst8[ 0x05 ] = (ofst8[ 0x01 ] >> 7);
        }else if( offset == 5 ){
        UINT8 *ofst8 = (UINT8*)mv0_prot_offset;

        ofst8[ 0x0c ] = (ofst8[ 0x08 ] >> 1) | ((ofst8[ 0x09 ] >> 1) << 4);
        ofst8[ 0x0d ] = (ofst8[ 0x0a ] >> 1) |
        ((ofst8[ 0x08 ] & 0x01) << 4) |
        ((ofst8[ 0x09 ] & 0x01) << 5) |
        ((ofst8[ 0x0a ] & 0x01) << 6) |
        (ofst8[ 0x0b ] << 7);
    }
}

static READ16_HANDLER( mv0_bankswitch_r )
{
        if( mv0_bankswitch_offset[ 0 ] == 0xffff && mv0_bankswitch_offset[ 1 ] == 0xffff ){

        mv0_bankswitch_flg = 1;
        if( offset == 0 ){
        return 0xfea0;
        }else if( offset == 1 ){
        return 0x7fff;
        }else{
        return mv0_bankswitch_offset[ offset ];
        }
        }else if( mv0_bankswitch_offset[ 0 ] == 0x0000 && mv0_bankswitch_offset[ 1 ] == 0x0000 && mv0_bankswitch_flg == 1 ){

        if( offset == 0 ){
        return 0x00a0;
        }else if( offset == 1 ){
        mv0_bankswitch_flg = 0;
        return 0x0000;
        }else{
        return mv0_bankswitch_offset[ offset ];
        }
        }else{
        return mv0_bankswitch_offset[ offset ];
    }
}

static WRITE16_HANDLER( mv0_bankswitch_w )
{
        UINT32 bank_addr;

        mv0_bankswitch_offset[ offset ] = (mv0_bankswitch_offset[ offset ] & mem_mask) | ((~mem_mask) & data);

        bank_addr = (mv0_bankswitch_offset[ 0 ] >> 8) +(mv0_bankswitch_offset[ 1 ] << 8) +0x100000;

    neogeo_set_cpu1_second_bank( bank_addr );
}

if (!strcmp(Machine->gamedrv->name,"kof2003"))
{
       memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2fe000, 0x2fffff, 0, 0, MRA16_RAM );
       memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2fe000, 0x2fffff, 0, 0, MWA16_RAM );

       memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2fffe0, 0x2fffef, 0, 0, mv0_prot_r );
       memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2fffe0, 0x2fffef, 0, 0, mv0_prot_w );

       memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2ffff0, 0x2ffff3, 0, 0, mv0_bankswitch_r );
       memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2ffff0, 0x2ffff3, 0, 0, mv0_bankswitch_w );

   memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0xc00000, 0xc3ffff, 0, 0, MRA16_BANK3 );  // 256k bios
}
Title: Re: King of Fighter 2003 and hacks drivers
Post by: iq_132 on December 01, 2005, 11:00:04 AM
I missed this somehow... does KingHanco = KillerBee ??

You got it ;)
http://neo-source.com/index.php?topic=418.0
Title: Re: King of Fighter 2003 and hacks drivers
Post by: KingHanco on December 01, 2005, 04:45:54 PM
I missed this somehow... does KingHanco = KillerBee ??

That me.
Title: Re: King of Fighter 2003 and hacks drivers
Post by: iq_132 on December 02, 2005, 12:37:47 PM
I knew I'd seen it someplace.

The mis-spelling of "below" as "bellow" was a vital clue.

Lol, I thought the complete and utter disregard of any sort of grammar or spelling rules would have tipped you off ^^
Title: Re: King of Fighter 2003 and hacks drivers
Post by: KingHanco on December 12, 2005, 10:54:02 PM
Ok I updated these. I don't know I did it correcty or not. Here I go. First part I didn't updated it. The 2nd part I did.

Code: [Select]
//The King of Fighters 2003

ROM_START( kof2003 )
ROM_REGION( 0x900000, REGION_CPU1, 0 )
ROM_LOAD32_WORD_SWAP( "271-p1.bin", 0x000000, 0x400000, CRC(b9da070c) SHA1(1a26325af142a4dd221c336061761468598c4634) )
ROM_LOAD32_WORD_SWAP( "271-p2.bin", 0x000002, 0x400000, CRC(da3118c4) SHA1(582e4f44f03276adecb7b2848d3b96bf6da57f1e) )
ROM_LOAD16_WORD_SWAP( "271-p3.bin", 0x800000, 0x100000, CRC(5cefd0d2) SHA1(cddc3164629fed4b6f715e12b109ad35d1009355) )
ROM_LOAD16_WORD_SWAP( "271-p3d.bin", 0x800000, 0x100000, CRC(59d376da) SHA1(3c3ad0b79e8b37e838893a8f7b87e11d7eeee8f2) )

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

ROM_REGION16_BE( 0x40000, REGION_USER1, 0 )
ROM_LOAD16_WORD_SWAP( "271-bios.bin", 0x00000, 0x040000, CRC(c521b5bc) SHA1(c9a5db63523191dedd1b39baab8772f64f09b77f) )
NEOGEO_BIOS

ROM_REGION( 0x90000, REGION_CPU2, 0 )
ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) )
ROM_LOAD( "271-m1d.bin", 0x00000, 0x80000, CRC(0e86af8f) SHA1(769102b67bb1a699cfa5674d66cdb46ae633cb65) )
ROM_RELOAD( 0x10000, 0x80000 )
ROM_REGION( 0x10000, REGION_GFX4, 0 )
ROM_LOAD( "000-lo.lo", 0x00000, 0x10000, CRC(e09e253c) SHA1(2b1c719531dac9bb503f22644e6e4236b91e7cfc) )

ROM_REGION( 0x1000000, REGION_SOUND1, 0 )
ROM_LOAD( "271-v1.bin", 0x000000, 0x1000000, CRC(1d96154b) SHA1(1d4e262b0d30cee79a4edc83bb9706023c736668) )

NO_DELTAT_REGION

ROM_REGION( 0x6000000, REGION_GFX3, 0 )
ROM_LOAD16_BYTE( "271-c1d.bin", 0x0000000, 0x1000000, CRC(c29acd28) SHA1(8a10409c5a9ad95fa9b56e94c14f1b96101fb179) )
ROM_LOAD16_BYTE( "271-c2d.bin", 0x0000001, 0x1000000, CRC(328e80b1) SHA1(c7f8069488be1a88a2ea03718b6a131f5c96bd3f) )
ROM_LOAD16_BYTE( "271-c3d.bin", 0x2000000, 0x1000000, CRC(020a11f1) SHA1(85cfae76234f72b0039ebc02f931bb2a9c10b1af) )
ROM_LOAD16_BYTE( "271-c4d.bin", 0x2000001, 0x1000000, CRC(991b5ed2) SHA1(99c4c470bc9cb388773e27de6df4a16803fc7b45) )
ROM_LOAD16_BYTE( "271-c5d.bin", 0x4000000, 0x1000000, CRC(c2de8b66) SHA1(40c2ea48fc20d470163a9dbb40c0276fc4cfceb9) )
ROM_LOAD16_BYTE( "271-c6d.bin", 0x4000001, 0x1000000, CRC(3ff750db) SHA1(714f14a2eb2df6f25d10a6b6aff4b3adfbc7a5dc) )
ROM_END

static void kof2003_px_decrypt( void )
{
        const unsigned char xor2[ 0x20 ] = {
        0xb4, 0x0f, 0x40, 0x6c, 0x38, 0x07, 0xd0, 0x3f, 0x53, 0x08, 0x80, 0xaa, 0xbe, 0x07, 0xc0, 0xfa,
        0xd0, 0x08, 0x10, 0xd2, 0xf1, 0x03, 0x70, 0x7e, 0x87, 0x0B, 0x40, 0xf6, 0x2a, 0x0a, 0xe0, 0xf9
        };

        int i;
        int ofst;
        UINT8 *rom, *buf;

        rom = memory_region( REGION_CPU1 );

        for( i = 0x100000; i < 0x800000; i++ ){
        rom[ i ] ^= xor2[ (i % 0x20) ];
        }

        for( i = 0x100000; i < 0x800000; i += 4 )
        {
        UINT16 *rom16 = (UINT16*)&rom[ i + 1 ];
        *rom16 = BITSWAP16( *rom16, 15, 14, 13, 12, 4, 5, 6, 7, 8, 9, 10, 11, 3, 2, 1, 0 );
        }

        buf = malloc( 0x800000 );
        memcpy( buf, rom, 0x800000 );

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

        for( i = 0x100000; i < 0x800000; i += 0x100 )
        {
        ofst = (i & 0xf000ff) +
        ((i & 0x000f00) ^ 0x00300) +
        (BITSWAP8( ((i & 0x0ff000) >> 12), 4, 5, 6, 7, 1, 0, 3, 2 ) << 12);

        memcpy( &rom[ i ], &buf[ ofst ], 0x100 );
        }

        free( buf );

        buf = malloc(0x900000);
        memcpy( buf, rom, 0x900000 );

        memcpy( &rom[0x100000], &buf[0x800000], 0x100000 );
        memcpy( &rom[0x200000], &buf[0x100000], 0x700000 );

    free(buf);
}

static void kof2003_sx_decrypt( void )
{
        int i;
        int tx_size = memory_region_length( REGION_GFX1 );
        int rom_size = memory_region_length( REGION_GFX3 );
        UINT8 *src;
        UINT8 *dst;

        src = memory_region( REGION_GFX3 ) + rom_size - 0x1000000 - 0x80000;
        dst = memory_region( REGION_GFX1 );

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

        src = memory_region( REGION_GFX3 ) + rom_size - 0x80000;
        dst = memory_region( REGION_GFX1 ) + 0x80000;

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

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

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

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

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

DRIVER_INIT( kof2003 )
{
        kof2003_px_decrypt();
        kof2003_sx_decrypt();
        neo_pcm2_playmore_2002(5);
        neogeo_fix_bank_type = 2;
    init_neogeo();
}

static unsigned short CartRAM[0x1000];

void pvc_w8(unsigned int offset, unsigned char data)
{
*(((unsigned char*)CartRAM)+offset)=data;
}

unsigned char pvc_r8(unsigned int offset)
{
return *(((unsigned char*)CartRAM)+offset);
}

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

pvc_w8(0x1fe2,(((b2>>0)&0xf)<<1)|((b1>>4)&1));
pvc_w8(0x1fe3,(((b2>>4)&0xf)<<1)|((b1>>5)&1));
pvc_w8(0x1fe4,(((b1>>0)&0xf)<<1)|((b1>>6)&1));
pvc_w8(0x1fe5, (b1>>7));
}

// Pack RGB dword to palette word
void pvc_prot2( void ) // on writes to e8/e9/ea/eb
{
unsigned char b1, b2, b3, b4;
b1 = pvc_r8(0x1fe9);
b2 = pvc_r8(0x1fe8);
b3 = pvc_r8(0x1feb);
b4 = pvc_r8(0x1fea);

pvc_w8(0x1fec,(b2>>1)|((b1>>1)<<4));
pvc_w8(0x1fed,(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));
*(((unsigned char *)CartRAM) + 0x1ff0) = 0xA0;
*(((unsigned char *)CartRAM) + 0x1ff1) &= 0xFE;
*(((unsigned char *)CartRAM) + 0x1ff3) &= 0x7F;
neogeo_set_cpu1_second_bank(bankaddress+0x100000);
}

static READ16_HANDLER( pvc_prot_r )
{
return CartRAM[ offset ];
}

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

if (!strcmp(Machine->gamedrv->name,"kof2003"))
        {
                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, 0xc00000, 0xc3ffff, 0, 0, MRA16_BANK3 );  // 256k bios
        }


Code: [Select]
ROM_START( kof2003b )
        ROM_REGION( 0x800000, REGION_CPU1, 0 )
        ROM_LOAD16_WORD_SWAP( "271-p1bl.bin" , 0x100000, 0x400000, CRC(92ed6ee3) SHA1(5e7e21eb40dfcc453ba73808760d5ddedd49c58a) )
        ROM_LOAD16_WORD_SWAP( "271-p2bl.bin" , 0x500000, 0x200000, CRC(5d3d8bb3) SHA1(7f2341f14ca12ff5721eb038b3496228a1f34b60) )
        ROM_CONTINUE( 0x000000, 0x100000 )
        ROM_CONTINUE( 0x000000, 0x100000 )

        NEO_SFIX_128K( "271-s1d.bin", CRC(beea2419) SHA1(d3a9d7bf1b3c9c51e4381c2adee33081443744af) )

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

        ROM_REGION( 0x1000000, REGION_SOUND1, 0 )
        ROM_LOAD( "271-v1d.bin", 0x000000, 0x1000000, CRC(2058ec5e) SHA1(567fdf328f87551a949dc601f4e71c55368debf0) )

        NO_DELTAT_REGION

        ROM_REGION( 0x6000000, REGION_GFX3, 0 )
        ROM_LOAD16_BYTE( "271-c1d.bin", 0x0000000, 0x1000000, CRC(c29acd28) SHA1(8a10409c5a9ad95fa9b56e94c14f1b96101fb179) )
        ROM_LOAD16_BYTE( "271-c2d.bin", 0x0000001, 0x1000000, CRC(328e80b1) SHA1(c7f8069488be1a88a2ea03718b6a131f5c96bd3f) )
        ROM_LOAD16_BYTE( "271-c3d.bin", 0x2000000, 0x1000000, CRC(020a11f1) SHA1(85cfae76234f72b0039ebc02f931bb2a9c10b1af) )
        ROM_LOAD16_BYTE( "271-c4d.bin", 0x2000001, 0x1000000, CRC(991b5ed2) SHA1(99c4c470bc9cb388773e27de6df4a16803fc7b45) )
        ROM_LOAD16_BYTE( "271-c5d.bin", 0x4000000, 0x1000000, CRC(c2de8b66) SHA1(40c2ea48fc20d470163a9dbb40c0276fc4cfceb9) )
        ROM_LOAD16_BYTE( "271-c6d.bin", 0x4000001, 0x1000000, CRC(3ff750db) SHA1(714f14a2eb2df6f25d10a6b6aff4b3adfbc7a5dc) )
ROM_END

ROM_START( kof2k3up )
        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, 0 )
        ROM_LOAD( "271-v1d.bin", 0x000000, 0x1000000, CRC(2058ec5e) SHA1(567fdf328f87551a949dc601f4e71c55368debf0) )

        NO_DELTAT_REGION

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

ROM_START( kof2003a )
        ROM_REGION( 0x800000, REGION_CPU1, 0 )
        ROM_LOAD16_WORD_SWAP( "271-p1d.bin" , 0x000000, 0x400000, CRC(3b58d2e5) SHA1(9524cd6f90e8d3037eeeb895b4da1d13f18c1e4a) )
        ROM_LOAD16_WORD_SWAP( "271-p2d.bin" , 0x400000, 0x400000, CRC(5934d72b) SHA1(6814b368f40f342d68db4d676bb54fb459b7c7eb) )

        NEO_SFIX_512K( "271t-s1d.bin", CRC(071a8b1e) SHA1(92c73931f22ba5cae8b15a1fc2c773bb7f8ed702) )

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

        ROM_REGION( 0x1000000, REGION_SOUND1, 0 )
        ROM_LOAD( "271-v1d.bin", 0x000000, 0x1000000, CRC(2058ec5e) SHA1(567fdf328f87551a949dc601f4e71c55368debf0) )

        NO_DELTAT_REGION

        ROM_REGION( 0x6000000, REGION_GFX3, 0 )
        ROM_LOAD16_BYTE( "271-c1d.bin", 0x0000000, 0x1000000, CRC(c29acd28) SHA1(8a10409c5a9ad95fa9b56e94c14f1b96101fb179) )
        ROM_LOAD16_BYTE( "271-c2d.bin", 0x0000001, 0x1000000, CRC(328e80b1) SHA1(c7f8069488be1a88a2ea03718b6a131f5c96bd3f) )
        ROM_LOAD16_BYTE( "271-c3d.bin", 0x2000000, 0x1000000, CRC(020a11f1) SHA1(85cfae76234f72b0039ebc02f931bb2a9c10b1af) )
        ROM_LOAD16_BYTE( "271-c4d.bin", 0x2000001, 0x1000000, CRC(991b5ed2) SHA1(99c4c470bc9cb388773e27de6df4a16803fc7b45) )
        ROM_LOAD16_BYTE( "271-c5d.bin", 0x4000000, 0x1000000, CRC(c2de8b66) SHA1(40c2ea48fc20d470163a9dbb40c0276fc4cfceb9) )
        ROM_LOAD16_BYTE( "271-c6d.bin", 0x4000001, 0x1000000, CRC(3ff750db) SHA1(714f14a2eb2df6f25d10a6b6aff4b3adfbc7a5dc) )
ROM_END

ROM_START( kof2003p ) /* Uni-Bios Fix - Bootleg Hack */
        ROM_REGION( 0x700000, REGION_CPU1, 0 )
        ROM_LOAD16_WORD_SWAP( "271-p1ex.bin", 0x000000, 0x100000, CRC(dacf5b2d) SHA1(b776f3cf2a720325fed8f8908f18eacdc3cb05aa) )
        ROM_LOAD16_WORD_SWAP( "271-p1bl.bin", 0x100000, 0x400000, CRC(92ed6ee3) SHA1(5e7e21eb40dfcc453ba73808760d5ddedd49c58a) )
        ROM_LOAD16_WORD_SWAP( "271-p3ex.bin", 0x500000, 0x200000, CRC(0d0a5861) SHA1(823dd3d11574a42f98588a6d1f9bb5d721f34be2) )

        NEO_SFIX_512K( "271p-s1d.bin", CRC(09e3f2bd) SHA1(733488b3c06262e67cb771ed76e8bbbe16cf7dda) )

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

        ROM_REGION( 0x1000000, REGION_SOUND1, 0 )
        ROM_LOAD( "271-v1d.bin", 0x000000, 0x1000000, CRC(2058ec5e) SHA1(567fdf328f87551a949dc601f4e71c55368debf0) )

        NO_DELTAT_REGION

        ROM_REGION( 0x6000000, REGION_GFX3, 0 )
        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_LOAD16_BYTE( "271-c5d.bin", 0x4000000, 0x1000000, CRC(c2de8b66) SHA1(40c2ea48fc20d470163a9dbb40c0276fc4cfceb9) ) /* Plane 0,1 */
        ROM_LOAD16_BYTE( "271-c6d.bin", 0x4000001, 0x1000000, CRC(3ff750db) SHA1(714f14a2eb2df6f25d10a6b6aff4b3adfbc7a5dc) ) /* Plane 2,3 */
ROM_END

DRIVER_INIT( kof2003a )
{
        neogeo_fix_bank_type = 2;
    init_neogeo();
}

DRIVER_INIT( kof2k3up )
{
        int i;

        UINT8 *src = memory_region(REGION_CPU1);
        memcpy(src+0x100000, src, 0x600000);
        memcpy(src, src+0x700000, 0x100000);

        int ofst;
        UINT8 *rom = memory_region( REGION_CPU1 ) + 0xfe000;
        UINT8 *buf = memory_region( REGION_CPU1 ) + 0xd0610;

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

        int i;

        UINT8 *srom = memory_region( REGION_GFX1 );
        int rom_size = memory_region_length( REGION_GFX1 );

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

static UINT16 kof2003_tbl[4096];

READ16_HANDLER( kof2003_r)
{
        return kof2003_tbl[offset];
        }

        WRITE16_HANDLER( kof2003_w )
        {
        data = COMBINE_DATA(&kof2003_tbl[offset]);
        if (offset == 0x1ff0/2 || offset == 0x1ff2/2) {
        UINT8* cr = (UINT8 *)kof2003_tbl;
        UINT32 address = (cr[0x1ff3]<<16)|(cr[0x1ff2]<<8)|cr[0x1ff1];
        UINT8 prt = cr[0x1ff2];
        UINT8* mem = (UINT8 *)memory_region(REGION_CPU1);

        cr[0x1ff0] =  0xa0;
        cr[0x1ff1] &= 0xfe;
        cr[0x1ff3] &= 0x7f;
        neogeo_set_cpu1_second_bank(address+0x100000);

        mem[0x58196] = prt;
    }
}

WRITE16_HANDLER( kof2003p_w )
{
        data = COMBINE_DATA(&kof2003_tbl[offset]);
        if (offset == 0x1ff0/2 || offset == 0x1ff2/2) {
        UINT8* cr = (UINT8 *)kof2003_tbl;
        UINT32 address = (cr[0x1ff3]<<16)|(cr[0x1ff2]<<8)|cr[0x1ff0];
        UINT8 prt = cr[0x1ff2];
        UINT8* mem = (UINT8 *)memory_region(REGION_CPU1);

        cr[0x1ff0] &= 0xfe;
        cr[0x1ff3] &= 0x7f;
        neogeo_set_cpu1_second_bank(address+0x100000);

        mem[0x58196] = prt;
    }
}

if (!strcmp(Machine->gamedrv->name,"kof2003b") ||
        !strcmp(Machine->gamedrv->name,"kof2003a") ||
        !strcmp(Machine->gamedrv->name,"kof2k3up"))
        {
        memory_install_read16_handler (0, ADDRESS_SPACE_PROGRAM, 0x2fe000, 0x2fffff, 0, 0, kof2003_r);
        memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2fe000, 0x2fffff, 0, 0, kof2003_w);
}

Let me know what is wrong that I update those. Thanks.
Title: Re: King of Fighter 2003 and hacks drivers
Post by: iq_132 on December 12, 2005, 11:36:10 PM
Why the hell don't you just try them?

Try to follow this:

Step 1. - ADD THE CODE
Step 2. - COMPILE MAME
Step 2.1. - If you have a problem, try and fix it, go back to step 2.
Step 3. TRY IT, LEARN.
Title: Re: King of Fighter 2003 and hacks drivers
Post by: KingHanco on December 13, 2005, 01:54:30 AM
Hell...This isn't what I want it show. I problemy screw it up. :mad:

I bet that why your mad at me.

(http://img212.imageshack.us/img212/1358/untitled7gh1.th.png) (http://img212.imageshack.us/my.php?image=untitled7gh1.png)

I'm so stupid.
Title: Re: King of Fighter 2003 and hacks drivers
Post by: KingHanco on December 13, 2005, 02:19:09 PM
The hazards of using old code. NEO_SFIX_512K macro doesn't exist, that's why kof2003a and kof2003p aren't going to work. I think you should leave them out until the other problems have been sorted out.

kof2k3up has variable declarations scattered throughout the driver. We have discussed this before, you will need to fix it yourself.

I will disbaled the 2.

Anyway I think this is the problem on the kof2k3up. This is what it causes to loop bellow. I will point to that instead by using the kof2k2pc_sx_decrypt();. I think it will fixs that part.

Code: [Select]
static void kof2k2pc_sx_decrypt( void )
{
UINT8 *rom = memory_region( REGION_GFX1 );
int rom_size = memory_region_length( REGION_GFX1 );
int i;

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

DRIVER_INIT( kof2k2mp )
{
unsigned char *src = memory_region(REGION_CPU1);
unsigned char *dst = (unsigned char*)malloc(0x80);
int i, j;

if (dst)
{
for (i = 0; i < 0x500000; i+=0x80)
{
for (j = 0; j < 0x80 / 2; j++)
{
int ofst = BITSWAP8( j, 6, 7, 2, 3, 4, 5, 0, 1 );
memcpy(dst + j * 2, src + i + ofst * 2, 2);
}
memcpy(src + i, dst, 0x80);
}
}
free(dst);
neogeo_fix_bank_type = 0;
kof2k2pc_sx_decrypt();
cmc50_neogeo_gfx_decrypt(0xec);
neo_pcm2_swap(0);
    init_neogeo();
}
Title: Re: King of Fighter 2003 and hacks drivers
Post by: iq_132 on December 13, 2005, 03:42:48 PM
I will disbaled the 2.

Anyway I think this is the problem on the kof2k3up. This is what it causes to loop bellow. I will point to that instead by using the kof2k2pc_sx_decrypt();. I think it will fixs that part.

/me is proud of Hanco :) You are learning  :eek:
Title: Re: King of Fighter 2003 and hacks drivers
Post by: KingHanco on December 13, 2005, 04:30:24 PM
iq_132, do you have the 2 patches for the 271-s1d.bin (0xbeea2419) and the 271-v1d.bin (0x2058ec5e) for the kof2003b?

I can't find the correct roms set for these drivers. Could it be the roms sets are out dated? I will keep looking though.  :biggrin:
Title: Re: King of Fighter 2003 and hacks drivers
Post by: iq_132 on December 13, 2005, 04:59:10 PM
Nope.  Try Neo04's site.
Title: Re: King of Fighter 2003 and hacks drivers
Post by: KingHanco on December 13, 2005, 05:44:10 PM
Scatch that. Who need patches anyway. There is another way to do this.

I found a very helpful website that show you how to merge the roms together.

I merge the old kof2003 which I found on eMule and I think it a kof2003b because the d roms in the zip.

MakeRoms.bat with this in it and then save it. Click on it next ->
Code: [Select]
copy /b 271-v1d.rom+271-v2d.rom+271-v3d.rom+271-v4d.rom 271-v1.rom
(http://img381.imageshack.us/img381/5443/untitled6pp.png) (http://imageshack.us)

Then let the cmpro rename it to 271-v1d.bin.

I wonder why I couldn't find the rom. I have to merge it to make a 271-v1d.bin that I need. :biggrin:

The rom works without a problem.

Hmmm...I gotting alot of errors on the kof2k3up just now. I will have to disabled that for now. The kof2003b and the kof2003 the only thing works on making and gameplay. The rest are out dated because of the lates Mame source. I'm not sure anyone will updated all this. Because I'm not. If not then I won't worry about it until someone will updated those drivers. I won't complain anymore about this until then. :(

(http://img227.imageshack.us/img227/1196/untitled3gh1.th.png) (http://img227.imageshack.us/my.php?image=untitled3gh1.png)
Title: Re: King of Fighter 2003 and hacks drivers
Post by: James33 on December 13, 2005, 11:47:08 PM
/me is proud of Hanco :) You are learning  :eek:

Oh really are you 100% sure ?   :biggrin:
Title: Re: King of Fighter 2003 and hacks drivers
Post by: iq_132 on December 14, 2005, 12:16:42 AM
lol, about 17%, but it's a start.
Title: Re: King of Fighter 2003 and hacks drivers
Post by: KingHanco on December 14, 2005, 04:42:51 AM
I found the problem. I had the same problem on the mslug3d and over look. I saw it missing and add the ) in there.

Ha Ha Ha. :D

Not fixs.

Code: [Select]
if (!strcmp(Machine->gamedrv->name,"kof2003b" || !strcmp(Machine->gamedrv->name,"kof2k3up"))
        {
/* || !strcmp(Machine->gamedrv->name,"kof2003a")) */
                memory_install_read16_handler (0, ADDRESS_SPACE_PROGRAM, 0x2fe000, 0x2fffff, 0, 0, kof2003_r);
                memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2fe000, 0x2fffff, 0, 0, kof2003_w);
        }

Fixs.

Code: [Select]
if (!strcmp(Machine->gamedrv->name,"kof2003b") || !strcmp(Machine->gamedrv->name,"kof2k3up"))
        {
/* || !strcmp(Machine->gamedrv->name,"kof2003a")) */
                memory_install_read16_handler (0, ADDRESS_SPACE_PROGRAM, 0x2fe000, 0x2fffff, 0, 0, kof2003_r);
                memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x2fe000, 0x2fffff, 0, 0, kof2003_w);
        }

=============================================================================

Edit. I will wait until next year when Mame Plus get the kof2003 drivers. It will be best thing to do.
Title: Re: King of Fighter 2003 and hacks drivers
Post by: James33 on December 15, 2005, 02:08:36 AM
Edit. I will wait until next year when Mame Plus get the kof2003 drivers. It will be best thing to do.

Thats just lazy .
Title: Re: King of Fighter 2003 and hacks drivers
Post by: KingHanco on December 15, 2005, 02:26:22 AM
Thats just lazy .

It is. Then why not help me out on what I'm stuck on. You haven't said anything yet on what is I need to add.  :biggrin:
Title: Re: King of Fighter 2003 and hacks drivers
Post by: James33 on December 15, 2005, 03:48:08 AM
Because you do not seem to learn anything .

When you copy a driver you keep them how they are . You do not change them ( Which you seem to do )


Title: Re: King of Fighter 2003 and hacks drivers
Post by: KingHanco on December 16, 2005, 03:42:21 AM
I couldn't stop thinking about those. I will continue now.
Title: Re: King of Fighter 2003 and hacks drivers
Post by: iq_132 on December 29, 2005, 06:46:54 PM
I'm fairly certain the Cx and V are available now...
Title: Re: King of Fighter 2003 and hacks drivers
Post by: James33 on December 29, 2005, 08:07:45 PM
KOF2003:

The driver is loading decrypted V and C roms. Are the encrypted ones available? What are the CRC's?
Is there decryption code available?

The encrypted V rom has been around for a very long time now and the code .  And yes the encrypted C's are now released as well , So far there is no code the C roms .
Title: Re: King of Fighter 2003 and hacks drivers
Post by: iq_132 on December 29, 2005, 10:57:59 PM
Yeah, neoconv, I wrote it a while back... or if you have the kof2003a Vx just copy /b 271-v1a.bin+271-v2a.bin 271-v1.bin
Title: Re: King of Fighter 2003 and hacks drivers
Post by: hotaru on December 31, 2005, 11:04:35 PM
neoconv handles sample (v) rom encryption/decryption nothing more.  convert2 handles graphics (c) rom encryption/decryption for all roms MVS.  currently excluded are mslug5, svcchaos, and kof2003 PCB (coincidently developed in house) as they use kof2000 tables each with an additional XOR.  program will more likely than not see an update when mslug5 PCB is dumped and public.
Title: Re: King of Fighter 2003 and hacks drivers
Post by: magni on January 02, 2006, 03:23:36 AM
I'm fairly certain the Cx and V are available now...

The m1 is also available now?
Title: A fixs for the 0.103u2.
Post by: KingHanco on January 12, 2006, 02:59:55 AM
Replace the screwup one with this.

Code: [Select]
GAME ( 2003, kof2003,  0,                neogeo, neogeo,  kof2003,  ROT0, "SNK Playmore", "The King of Fighters 2003 (Japan, JAMMA PCB)", 0 ) // not a clone of neogeo because it's NOT a neogeo cart.
Into

Code: [Select]
GAMEB( 2003, kof2003,  neogeo,   neogeo, neogeo, neogeo,  kof2003,  ROT0, "SNK Playmore", "The King of Fighters 2003 (Japan, JAMMA PCB)", 0 ) // not a clone of neogeo because it's NOT a neogeo cart.
There nothing wrong with this game as far I tested.

I already post at the Mame forum about this.
Title: Re: King of Fighter 2003 and hacks drivers
Post by: mamesick on January 12, 2006, 03:34:48 AM
No, the line is correct... read carefully the comment at the end:

GAME ( 2003, kof2003,  0,                neogeo, neogeo,  kof2003,  ROT0, "SNK Playmore", "The King of Fighters 2003 (Japan, JAMMA PCB)", 0 ) // not a clone of neogeo because it's NOT a neogeo cart.

The game boots and work fine. Your fix is wrong even if it works instead. :wink:
Title: Re: A fixs for the 0.103u2.
Post by: James33 on January 12, 2006, 03:37:31 AM
Replace the screwup one with this.

Code: [Select]
GAME ( 2003, kof2003,  0,                neogeo, neogeo,  kof2003,  ROT0, "SNK Playmore", "The King of Fighters 2003 (Japan, JAMMA PCB)", 0 ) // not a clone of neogeo because it's NOT a neogeo cart.
Into

Code: [Select]
GAMEB( 2003, kof2003,  neogeo,   neogeo, neogeo, neogeo,  kof2003,  ROT0, "SNK Playmore", "The King of Fighters 2003 (Japan, JAMMA PCB)", 0 ) // not a clone of neogeo because it's NOT a neogeo cart.
There nothing wrong with this game as far I tested.

I already post at the Mame forum about this.

lol , The game is not broken . That was how it was meant to be :)
Title: Re: A fixs for the 0.103u2.
Post by: KingHanco on January 12, 2006, 04:26:16 AM
lol , The game is not broken . That was how it was meant to be :)

It looking for the 000.lo.lo, sfix.sfx and sm1.sm1 which I already have.

Edit: Ok I forgotting to deleted the nvram before test it. It just will not run on Mame32. I going to put the cheated way back in there now until Mame do something about it.

Maybe it need to be like this.

GAME ( 2003, kof2003,  0,      0,          neogeo, neogeo,  kof2003,  ROT0, "SNK Playmore", "The King of Fighters 2003 (Japan, JAMMA PCB)", 0 ) // not a clone of neogeo because it's NOT a neogeo cart.
Title: Re: King of Fighter 2003 and hacks drivers
Post by: KingHanco on January 12, 2006, 06:11:22 AM
No, the line is correct... read carefully the comment at the end:

GAME ( 2003, kof2003,  0,                neogeo, neogeo,  kof2003,  ROT0, "SNK Playmore", "The King of Fighters 2003 (Japan, JAMMA PCB)", 0 ) // not a clone of neogeo because it's NOT a neogeo cart.

The game boots and work fine. Your fix is wrong even if it works instead. :wink:

Don't work on the Mame32FX over here. I just now try it. How did you got it to work anyway? :confused:

There is something wrong about that kof2003 source.
Title: Re: King of Fighter 2003 and hacks drivers
Post by: mamesick on January 12, 2006, 09:05:37 AM
Don't work on the Mame32FX over here. I just now try it. How did you got it to work anyway? :confused:

There is something wrong about that kof2003 source.

Oh! I'm dumb... I tested kof2003a..... Yes, you're right! It doesn't work because in the ROM_START (kof2003) it loads the BIOS roms. So your first fix is correct. Please forgive me... :idiot:
Title: Re: King of Fighter 2003 and hacks drivers
Post by: KingHanco on January 12, 2006, 02:17:34 PM
Oh! I'm dumb... I tested kof2003a..... Yes, you're right! It doesn't work because in the ROM_START (kof2003) it loads the BIOS roms. So your first fix is correct. Please forgive me... :idiot:

That ok. I forgive you. :biggrin:
Title: Re: King of Fighter 2003 and hacks drivers
Post by: mamesick on January 12, 2006, 03:50:35 PM
Haze and others MAMEDev explained well that kof2003.zip doesn't need to be a neogeo BIOS clone. You can remove your fix safely and fix your kof2003 rom with the new release of CLRMAME which correctly handles the "bug". :wink:
Title: Re: King of Fighter 2003 and hacks drivers
Post by: KingHanco on January 12, 2006, 09:31:01 PM
Haze and others MAMEDev explained well that kof2003.zip doesn't need to be a neogeo BIOS clone. You can remove your fix safely and fix your kof2003 rom with the new release of CLRMAME which correctly handles the "bug". :wink:

I use the patch that Haze made to over patch the source with some fixes that he did. :biggrin:
Title: Re: King of Fighter 2003 and hacks drivers
Post by: NeoKIM® on January 22, 2006, 11:33:54 PM
which would be the correct INIT for kof2003b, in the MAME32 Plus 0.103u2??
I am half lost...

Thanks!!!