Jump to content

KillerBee

Members+
  • Posts

    28
  • Joined

  • Last visited

Everything posted by KillerBee

  1. I been playing this for days. I'm hook on it.
  2. How can I get the other neogeo bios drivers to addon onto the Mame/Mame32 correcty? I keep on getting alots of errors on trying. I been trying for an hour and gaveup. It wasn't easy at all. */ /******************************************************************************/ /**** These are the known Bios Roms, Set options.bios to the one you want ****/ SYSTEM_BIOS_START( neogeo ) SYSTEM_BIOS_ADD( 0, "euro", "Europe MVS (Ver. 2)" ) SYSTEM_BIOS_ADD( 1, "euro-s1", "Europe MVS (Ver. 1)" ) SYSTEM_BIOS_ADD( 2, "us", "US MVS (Ver. 2?)" ) SYSTEM_BIOS_ADD( 3, "us-e", "US MVS (Ver. 1)" ) SYSTEM_BIOS_ADD( 4, "asia", "Asia MVS (Ver. 3)" ) SYSTEM_BIOS_ADD( 5, "japan", "Japan MVS (Ver. 3)" ) SYSTEM_BIOS_ADD( 6, "japan-s2", "Japan MVS (Ver. 2)" ) SYSTEM_BIOS_ADD( 7, "japan-s1", "Japan MVS (Ver. 1)" ) /******************************************************************************/ SYSTEM_BIOS_ADD( 8, "uni-bios.21","Unibios MVS (Hack, Ver. 2.1)" ) SYSTEM_BIOS_ADD( 9, "debug", "Debug MVS (Hack?)" ) SYSTEM_BIOS_ADD(11, "asia-aes", "Asia AES" ) SYSTEM_BIOS_END #define ROM_LOAD16_WORD_SWAP_BIOS(bios,name,offset,length,hash) \ ROMX_LOAD(name, offset, length, hash, ROM_GROUPWORD | ROM_REVERSE | ROM_BIOS(bios+1)) /* Note '+1' */ #define NEOGEO_BIOS \ ROM_LOAD16_WORD_SWAP_BIOS( 0, "sp-s2.sp1", 0x00000, 0x020000, CRC(9036d879) SHA1(4f5ed7105b7128794654ce82b51723e16e389543) ) /* Europe, 1 Slot, has also been found on a 4 Slot (the old hacks were designed for this one) */ \ ROM_LOAD16_WORD_SWAP_BIOS( 1, "sp-s.sp1", 0x00000, 0x020000, CRC(c7f2fa45) SHA1(09576ff20b4d6b365e78e6a5698ea450262697cd) ) /* Europe, 4 Slot */ \ ROM_LOAD16_WORD_SWAP_BIOS( 2, "usa_2slt.bin", 0x00000, 0x020000, CRC(e72943de) SHA1(5c6bba07d2ec8ac95776aa3511109f5e1e2e92eb) ) /* US, 2 Slot */ \ ROM_LOAD16_WORD_SWAP_BIOS( 3, "sp-e.sp1", 0x00000, 0x020000, CRC(2723a5b5) SHA1(5dbff7531cf04886cde3ef022fb5ca687573dcb8) ) /* US, 6 Slot (V5?) */ \ ROM_LOAD16_WORD_SWAP_BIOS( 4, "asia-s3.rom", 0x00000, 0x020000, CRC(91b64be3) SHA1(720a3e20d26818632aedf2c2fd16c54f213543e1) ) /* Asia */ \ ROM_LOAD16_WORD_SWAP_BIOS( 5, "vs-bios.rom", 0x00000, 0x020000, CRC(f0e8f27d) SHA1(ecf01eda815909f1facec62abf3594eaa8d11075) ) /* Japan, Ver 6 VS Bios */ \ ROM_LOAD16_WORD_SWAP_BIOS( 6, "sp-j2.rom", 0x00000, 0x020000, CRC(acede59c) SHA1(b6f97acd282fd7e94d9426078a90f059b5e9dd91) ) /* Japan, Older */ \ ROM_LOAD16_WORD_SWAP_BIOS( 7, "sp1.jipan.1024",0x00000, 0x020000, CRC(9fb0abe4) SHA1(18a987ce2229df79a8cf6a84f968f0e42ce4e59d) ) /* Japan, Older */ \ /******************************************************************************/ ROM_LOAD16_WORD_SWAP_BIOS( 8, "uni-bios.21", 0x00000, 0x020000, CRC(8dabf76b) SHA1(c23732c4491d966cf0373c65c83c7a4e88f0082c) ) /* Universe Bios v2.1 (hack) */ \ ROM_LOAD16_WORD_SWAP_BIOS( 9, "neodebug.rom", 0x00000, 0x020000, CRC(698ebb7d) SHA1(081c49aa8cc7dad5939833dc1b18338321ea0a07) ) /* Debug (Development) Bios */ \ ROM_LOAD16_WORD_SWAP_BIOS(10, "aes-bios.bin", 0x00000, 0x020000, CRC(d27a71f1) SHA1(1b3b22092f30c4d1b2c15f04d1670eb1e9fbea07) ) /* AES Console (Asia?) Bios */ /* note you'll have to modify the last for lines of each block to use the extra bios roms, they're hacks / homebrew / console bios roms so Mame doesn't list them by default */
  3. Thanks for the roms drivers. How did you set these up? kf2k3ba, kf2k4ex and kof2k3up. ================================================== I problemy need the kof2003 and the kof2003b as well because I may have a different source. All those may not work inorder. Can you send me the source? I will send you an email so that you can send me those source on those. I really lost finding the all the source on all. PM email sent. I will keep an eye out for the source on those.
  4. http://neosource.1emulation.com/forums/index.php?topic=462.0 What about these sets? Incluir esta línea de código en el fichero src/driver.c: DRIVER( kof2003 ) /* 0271 (c) 2003 SNK Playmore */ DRIVER( kof2003b ) /* 0271 (c) 2003 bootleg */ DRIVER( kof2003h ) /* 0271 (c) 2003 bootleg */ DRIVER( kof2003p ) /* 0271 (c) 2003 bootleg */ DRIVER( kof2003u ) /* 0271 (c) 2003 bootleg */ DRIVER( kof2004h ) /* 0271 (c) 2004 bootleg */ Modificar las siguientes líneas de código en el fichero src/machine/neogeo.c: * original: if (system_bios == 0) // Europe MVS Ver.2 { /* Set up machine country */ src = readinputport(5); res = src & 0x3; * modificada: if ( (system_bios == 0) && (strcmp(Machine->gamedrv->name,"kof2003")) ) // Europe MVS Ver.2 { /* Set up machine country */ src = readinputport(5); res = src & 0x3; * original: if (system_bios == 0) // Europe, 1 Slot { /* Remove memory check for now */ mem16[0x11b00/2] = 0x4e71; mem16[0x11b02/2] = 0x4e71; * modificada: if ( (system_bios == 0) && (strcmp(Machine->gamedrv->name,"kof2003")) ) // Europe, 1 Slot { /* Remove memory check for now */ mem16[0x11b00/2] = 0x4e71; mem16[0x11b02/2] = 0x4e71; Incluir las siguientes líneas de código en el fichero src/drivers/neogeo.c: * esto va después de la última definición de ROM_START: ROM_START( kof2003 ) ROM_REGION( 0x900000, REGION_CPU1, 0 ) ROM_LOAD32_WORD_SWAP( "271-p1.bin", 0x000000, 0x400000, CRC(b9da070c) ) ROM_LOAD32_WORD_SWAP( "271-p2.bin", 0x000002, 0x400000, CRC(da3118c4) ) ROM_LOAD16_WORD_SWAP( "271-p3.bin", 0x800000, 0x100000, CRC(5cefd0d2) ) ROM_LOAD16_WORD_SWAP( "271-p3d.bin", 0x800000, 0x100000, CRC(59d376da) ) 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) ) 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) ) 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-v1.bin", 0x000000, 0x1000000, CRC(1d96154b) ) NO_DELTAT_REGION ROM_REGION( 0x6000000, REGION_GFX3, 0 ) ROM_LOAD16_BYTE( "271-c1d.bin", 0x0000000, 0x1000000, CRC(c29acd28) ) ROM_LOAD16_BYTE( "271-c2d.bin", 0x0000001, 0x1000000, CRC(328e80b1) ) ROM_LOAD16_BYTE( "271-c3d.bin", 0x2000000, 0x1000000, CRC(020a11f1) ) ROM_LOAD16_BYTE( "271-c4d.bin", 0x2000001, 0x1000000, CRC(991b5ed2) ) ROM_LOAD16_BYTE( "271-c5d.bin", 0x4000000, 0x1000000, CRC(c2de8b66) ) ROM_LOAD16_BYTE( "271-c6d.bin", 0x4000001, 0x1000000, CRC(3ff750db) ) ROM_END ROM_START( kof2003b ) ROM_REGION( 0x800000, REGION_CPU1, 0 ) ROM_LOAD16_WORD_SWAP( "271b-p1.bin", 0x100000, 0x400000, CRC(92ed6ee3) ) ROM_LOAD16_WORD_SWAP( "271b-p2.bin", 0x500000, 0x200000, CRC(5d3d8bb3) ) ROM_CONTINUE( 0x000000, 0x100000 ) ROM_CONTINUE( 0x000000, 0x100000 ) NEO_SFIX_128K( "271b-s1.bin", CRC(482c48a5) ) NEO_BIOS_SOUND_512K( "271-m1d.bin", CRC(0e86af8f) ) ROM_REGION( 0x1000000, REGION_SOUND1, ROMREGION_SOUNDONLY ) ROM_LOAD( "271-v1.bin", 0x000000, 0x1000000, CRC(1d96154b) ) NO_DELTAT_REGION ROM_REGION( 0x4000000, REGION_GFX3, 0 ) ROM_LOAD16_BYTE( "271-c1d.bin", 0x0000000, 0x1000000, CRC(c29acd28) ) /* Plane 0,1 */ ROM_LOAD16_BYTE( "271-c2d.bin", 0x0000001, 0x1000000, CRC(328e80b1) ) /* Plane 2,3 */ ROM_LOAD16_BYTE( "271-c3d.bin", 0x2000000, 0x1000000, CRC(020a11f1) ) /* Plane 0,1 */ ROM_LOAD16_BYTE( "271-c4d.bin", 0x2000001, 0x1000000, CRC(991b5ed2) ) /* Plane 2,3 */ ROM_END ROM_START( kof2003h ) /* This is a bootleg of kof2003 */ /* Encrypted */ ROM_REGION( 0x800000, REGION_CPU1, 0 ) ROM_LOAD16_WORD_SWAP( "271b-p1.bin", 0x100000, 0x400000, CRC(92ed6ee3) ) ROM_LOAD16_WORD_SWAP( "271b-p2.bin", 0x500000, 0x200000, CRC(5d3d8bb3) ) ROM_CONTINUE( 0x000000, 0x100000 ) ROM_CONTINUE( 0x000000, 0x100000 ) /* Encrypted */ ROM_REGION( 0x80000, REGION_GFX1, 0 ) ROM_LOAD( "271b-s1h.bin",0x000000, 0x80000, CRC(f4515195) ) ROM_REGION( 0x20000, REGION_GFX2, 0 ) ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) ) /* Decrypted */ NEO_BIOS_SOUND_512K( "271-m1d.bin", CRC(0e86af8f) ) ROM_REGION( 0x1000000, REGION_SOUND1, ROMREGION_SOUNDONLY ) ROM_LOAD( "271-v1.bin", 0x000000, 0x1000000, CRC(1d96154b) ) NO_DELTAT_REGION ROM_REGION( 0x4000000, REGION_GFX3, 0 ) ROM_LOAD16_BYTE( "271-c1d.bin", 0x0000000, 0x1000000, CRC(c29acd28) ) /* Plane 0,1 */ ROM_LOAD16_BYTE( "271-c2d.bin", 0x0000001, 0x1000000, CRC(328e80b1) ) /* Plane 2,3 */ ROM_LOAD16_BYTE( "271-c3d.bin", 0x2000000, 0x1000000, CRC(020a11f1) ) /* Plane 0,1 */ ROM_LOAD16_BYTE( "271-c4d.bin", 0x2000001, 0x1000000, CRC(991b5ed2) ) /* Plane 2,3 */ ROM_END ROM_START( kof2003p ) /* This is a bootleg of kof2003 */ ROM_REGION( 0x800000, REGION_CPU1, 0 ) ROM_LOAD16_WORD_SWAP( "271b-p1p.bin", 0x000000, 0x800000, CRC(efdd5b72) ) NEO_SFIX_128K( "271b-s1p.bin", CRC(8e33b485) ) /* Decrypted */ NEO_BIOS_SOUND_512K( "271-m1d.bin", CRC(0e86af8f) ) ROM_REGION( 0x1000000, REGION_SOUND1, ROMREGION_SOUNDONLY ) ROM_LOAD( "271-v1.bin", 0x000000, 0x1000000, CRC(1d96154b) ) NO_DELTAT_REGION ROM_REGION( 0x4000000, REGION_GFX3, 0 ) ROM_LOAD16_BYTE( "271-c1d.bin", 0x0000000, 0x1000000, CRC(c29acd28) ) /* Plane 0,1 */ ROM_LOAD16_BYTE( "271-c2d.bin", 0x0000001, 0x1000000, CRC(328e80b1) ) /* Plane 2,3 */ ROM_LOAD16_BYTE( "271-c3d.bin", 0x2000000, 0x1000000, CRC(020a11f1) ) /* Plane 0,1 */ ROM_LOAD16_BYTE( "271-c4d.bin", 0x2000001, 0x1000000, CRC(991b5ed2) ) /* Plane 2,3 */ ROM_END ROM_START( kof2003u ) /* This is a bootleg of kof2003 */ ROM_REGION( 0x800000, REGION_CPU1, 0 ) ROM_LOAD16_WORD_SWAP( "271-p1up.bin", 0x000000, 0x800000, CRC(87294c01) ) NEO_SFIX_128K( "271-s1up.bin", CRC(e5708c0c) ) /* Decrypted */ NEO_BIOS_SOUND_512K( "271-m1d.bin", CRC(0e86af8f) ) ROM_REGION( 0x1000000, REGION_SOUND1, ROMREGION_SOUNDONLY ) ROM_LOAD( "271-v1.bin", 0x000000, 0x1000000, CRC(1d96154b) ) NO_DELTAT_REGION ROM_REGION( 0x4000000, REGION_GFX3, 0 ) ROM_LOAD16_BYTE( "271-c1d.bin", 0x0000000, 0x1000000, CRC(c29acd28) ) /* Plane 0,1 */ ROM_LOAD16_BYTE( "271-c2d.bin", 0x0000001, 0x1000000, CRC(328e80b1) ) /* Plane 2,3 */ ROM_LOAD16_BYTE( "271-c3d.bin", 0x2000000, 0x1000000, CRC(020a11f1) ) /* Plane 0,1 */ ROM_LOAD16_BYTE( "271-c4d.bin", 0x2000001, 0x1000000, CRC(991b5ed2) ) /* Plane 2,3 */ ROM_END ROM_START( kof2004h ) ROM_REGION( 0x700000, REGION_CPU1, 0 ) ROM_LOAD16_WORD_SWAP( "271-p1ex.bin", 0x000000, 0x100000, CRC(dacf5b2d) ) ROM_LOAD16_WORD_SWAP( "271-p3ex.bin", 0x100000, 0x400000, CRC(92ed6ee3) ) ROM_LOAD16_WORD_SWAP( "271-p2ex.bin", 0x500000, 0x200000, CRC(0d0a5861) ) NEO_SFIX_128K( "271-s1ex.bin", CRC(a5d78a9a) ) NEO_BIOS_SOUND_512K( "271-m1d.bin", CRC(0e86af8f) ) ROM_REGION( 0x1000000, REGION_SOUND1, ROMREGION_SOUNDONLY ) ROM_LOAD( "271-v1.bin", 0x000000, 0x1000000, CRC(1d96154b) ) NO_DELTAT_REGION ROM_REGION( 0x4000000, REGION_GFX3, 0 ) ROM_LOAD16_BYTE( "271-c1d.bin", 0x0000000, 0x1000000, CRC(c29acd28) ) /* Plane 0,1 */ ROM_LOAD16_BYTE( "271-c2d.bin", 0x0000001, 0x1000000, CRC(328e80b1) ) /* Plane 2,3 */ ROM_LOAD16_BYTE( "271-c3d.bin", 0x2000000, 0x1000000, CRC(020a11f1) ) /* Plane 0,1 */ ROM_LOAD16_BYTE( "271-c4d.bin", 0x2000001, 0x1000000, CRC(991b5ed2) ) /* Plane 2,3 */ ROM_END * esto va después de la última definición de DRIVER_INIT: /* NEO-PVC */ 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); } } // imcomplete 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 ); } /* NEO-PVC */ 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 ); } } static void kof2003_vx_decrypt( void ) { const unsigned char xor[ 0x08 ] = { 0x4b, 0xa4, 0x63, 0x46, 0xf0, 0x91, 0xea, 0x62 }; int ofst; int rom_size = memory_region_length( REGION_SOUND1 ); UINT8 *rom = memory_region( REGION_SOUND1 ); UINT8 *buf = malloc( rom_size ); memcpy( buf, rom, rom_size ); for( int i = 0; i < rom_size; i++ ){ ofst = (i & 0xfefffe) | ((i & 0x010000) >> 16) | ((i & 0x000001) << 16); ofst ^= 0xa7001; rom[ ofst ] = buf[ ((i + 0xff14ea) & 0xffffff) ] ^ xor[ (ofst & 0x07) ]; } free( buf ); } DRIVER_INIT( kof2003 ) { kof2003_px_decrypt(); kof2003_sx_decrypt(); kof2003_vx_decrypt(); neogeo_fix_bank_type = 2; init_neogeo(); install_mem_read16_handler(0, 0x2fe000, 0x2fffff, MRA16_RAM ); install_mem_write16_handler(0, 0x2fe000, 0x2fffff, MWA16_RAM ); install_mem_read16_handler(0, 0x2fffe0, 0x2fffef, mv0_prot_r ); install_mem_write16_handler(0, 0x2fffe0, 0x2fffef, mv0_prot_w ); install_mem_read16_handler(0, 0x2ffff0, 0x2ffff3, mv0_bankswitch_r ); install_mem_write16_handler(0, 0x2ffff0, 0x2ffff3, mv0_bankswitch_w ); install_mem_read16_handler(0, 0xc00000, 0xc3ffff, MRA16_BANK3 ); // 256k bios } static READ16_HANDLER( kof2003b_prot_r ) { return mv0_bankswitch_offset[ 1 ]; } static void kof2003b_s1_decrypt( void ) { int rom_size = memory_region_length( REGION_GFX1 ); UINT8 *rom = memory_region( REGION_GFX1 ); UINT8 *buf = malloc( rom_size ); memcpy( buf, rom, rom_size ); for( int i = 0; i < rom_size; i += 0x10 ){ memcpy( &rom[ i ], &buf[ i + 0x08 ], 0x08 ); memcpy( &rom[ i + 0x08 ], &buf[ i ], 0x08 ); } free( buf ); } DRIVER_INIT( kof2003b ) { kof2003b_s1_decrypt(); kof2003_vx_decrypt(); init_neogeo(); install_mem_read16_handler( 0, 0x2fe000, 0x2fffff, MRA16_RAM ); install_mem_write16_handler( 0, 0x2fe000, 0x2fffff, MWA16_RAM ); install_mem_read16_handler( 0, 0x2ffff0, 0x2ffff3, mv0_bankswitch_r ); install_mem_write16_handler( 0, 0x2ffff0, 0x2ffff3, mv0_bankswitch_w ); install_mem_read16_handler( 0, 0x058196, 0x058197, kof2003b_prot_r ); } DRIVER_INIT( kof2003h ) { kof2003_vx_decrypt(); install_mem_read16_handler( 0, 0x2fe000, 0x2fffff, MRA16_RAM ); install_mem_write16_handler( 0, 0x2fe000, 0x2fffff, MWA16_RAM ); install_mem_read16_handler( 0, 0x2ffff0, 0x2ffff3, mv0_bankswitch_r ); install_mem_write16_handler( 0, 0x2ffff0, 0x2ffff3, mv0_bankswitch_w ); install_mem_read16_handler( 0, 0x058196, 0x058197, kof2003b_prot_r ); /* Descrambling S1 by dorriga */ UINT8 *srom = memory_region(REGION_GFX1); UINT8 *dst2 = (UINT8*)malloc(0x80000); memcpy( dst2+0x00000, srom+0x60000, 0x20000 ); memcpy( dst2+0x20000, srom+0x40000, 0x20000 ); memcpy( dst2+0x40000, srom+0x20000, 0x20000 ); memcpy( dst2+0x60000, srom+0x00000, 0x20000 ); memcpy( srom, dst2, 0x80000 ); free(dst2); neogeo_fix_bank_type = 2; init_neogeo(); } DRIVER_INIT( kof2003p ) { kof2003_vx_decrypt(); init_neogeo(); } // original code by bms1221 static void kof2003up_px_decrypt( void ) { 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 ); } } static void kof2003up_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( kof2003u ) { kof2003up_px_decrypt(); kof2003up_sx_decrypt(); kof2003_vx_decrypt(); init_neogeo(); install_mem_read16_handler( 0, 0x2fe000, 0x2fffff, MRA16_RAM ); install_mem_write16_handler( 0, 0x2fe000, 0x2fffff, MWA16_RAM ); install_mem_read16_handler( 0, 0x2ffff0, 0x2ffff3, mv0_bankswitch_r ); install_mem_write16_handler( 0, 0x2ffff0, 0x2ffff3, mv0_bankswitch_w ); install_mem_read16_handler( 0, 0x058196, 0x058197, kof2003b_prot_r ); } static data16_t kof2003_tbl[4096]; static READ16_HANDLER( kof2k4ex_prot_r) { return kof2003_tbl[offset]; } static WRITE16_HANDLER( kof2k4ex_bankswitch_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; } } DRIVER_INIT( kof2004h ) { kof2003_vx_decrypt(); install_mem_write16_handler (0, 0x2fe000, 0x2fffff, kof2k4ex_bankswitch_w); install_mem_read16_handler (0, 0x2fe000, 0x2fffff, kof2k4ex_prot_r); init_neogeo(); } * y esto va al final del fichero (recuerda dejar una línea en blanco al final): /* SNK Playmore */ GAMEB( 2003, kof2003, neogeo, neogeo, neogeo, neogeo, kof2003, ROT0, "SNK Playmore", "The King of Fighters 2003" ) /* bootleg */ GAMEB( 2003, kof2003b, kof2003, neogeo, neogeo, neogeo, kof2003b, ROT0, "bootleg", "The King of Fighters 2003 (bootleg) (set 1)" ) GAMEB( 2003, kof2003h, kof2003, neogeo, neogeo, neogeo, kof2003h, ROT0, "bootleg", "The King of Fighters 2003 (bootleg) (set 2)" ) GAMEB( 2003, kof2003p, kof2003, neogeo, neogeo, neogeo, kof2003p, ROT0, "bootleg", "The King of Fighters 2003 Plus" ) GAMEB( 2003, kof2003u, kof2003, neogeo, neogeo, neogeo, kof2003u, ROT0, "bootleg", "The King of Fighters 2003 Ultra Plus" ) GAMEB( 2004, kof2004h, kof2003, neogeo, neogeo, neogeo, kof2004h, ROT0, "bootleg", "The King of Fighters 2004 EX Hero" )
  5. http://www.savefile.com/projects.php?pid=601581 I need help with these. kof2003, kof2003b, kof2003a, kof2003p and kof2k3up. I gotting 4 errors. Here is the source on those. Please help me solve the probelms that I'm getting. Another thing is the kof2003 might not boot. I try this by it self before and it just return back onto the Mame32 screen. I left everything alone except for fixing some things. Like rename the data16_t into UINT16 because those will not work on the lates source. I left the roms settings alone as well. The errors that I'm getting is from these. ROM_START( kof2003a ) /* 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, 0 ) /* 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, 0 ) /* 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 I send James33 these and haven't gotting a respond yet from him.
  6. Already fixs. Crouching Tiger Hidden Dragon 2003 'Super Plus'.
  7. It kind of like turn on the machine. It write, read next and then load the game. Hmmm...It doesn't like it. Errror report. scr/machine/neogeo.c In function 'neogeo_custom_memory' : warning: passing arg 7 of '_memory_install_read16_handler' from incompatible pointer type It talking about this bellow. It missing something there. if (!strcmp(Machine->gamedrv->name,"ms5plus") ) { memory_install_read16_handler( 0, ADDRESS_SPACE_PROGRAM, 0x2ffff0, 0x2fffff, 0, 0, mslug5p_bankswitch_w ); } Oh ok. It missing this one. memory_install_read16_handler( 0, ADDRESS_SPACE_PROGRAM, 0x2ffff0, 0x2fffff, 0, 0, mslug5_prot_r ); } Because of this. static READ16_HANDLER( mslug5_prot_r ) { logerror("PC %06x: access protected\n",activecpu_get_pc()); return 0xa0; } I just now figger it out nnow.
  8. Ok I gotting an error on the src\machine\neogeo.c In function 'mslug5p_bankswitch_w' warning: implicit declaration of function 'cpu_setbank' static WRITE16_HANDLER ( mslug5p_bankswitch_w ) { /* thanks to fataku for the info */ unsigned char *RAM = memory_region(REGION_CPU1); int bankaddress; logerror("offset: %06x PC %06x: set banking %04x\n",offset,activecpu_get_pc(),data); if ((offset == 0)&&(data == 0xa0)) { bankaddress=0xa0; cpu_setbank(4,&RAM[bankaddress]); //neogeo_set_cpu1_second_bank(bankaddress); logerror("offset: %06x PC %06x: set banking %04x\n\n",offset,activecpu_get_pc(),bankaddress); } else if(offset == 2) { data=data>>4; //data=data&7; bankaddress=data*0x100000; cpu_setbank(4,&RAM[bankaddress]); //neogeo_set_cpu1_second_bank(bankaddress); logerror("offset: %06x PC %06x: set banking %04x\n\n",offset,activecpu_get_pc(),bankaddress); } } ========================================= if (!strcmp(Machine->gamedrv->name,"ms5plus") ) { /* special ROM banking handler */ memory_install_write16_handler( 0, ADDRESS_SPACE_PROGRAM, 0x2ffff0, 0x2fffff, 0, 0, mslug5p_bankswitch_w ); /* additional protection */ memory_install_read16_handler( 0, ADDRESS_SPACE_PROGRAM, 0x2ffff0, 0x2fffff, 0, 0, mslug5_prot_r ); } ROM_START( ms5plus ) ROM_REGION( 0x500000, REGION_CPU1, 0 ) ROM_LOAD16_WORD_SWAP( "268-p1p.bin", 0x000000, 0x100000, CRC(106b276f) ) ROM_LOAD16_WORD_SWAP( "268-p2p.bin", 0x100000, 0x200000, CRC(d6a458e8) ) ROM_LOAD16_WORD_SWAP( "268-p3p.bin", 0x300000, 0x200000, CRC(439ec031) ) ROM_REGION( 0x20000, REGION_GFX1, 0 ) ROM_LOAD("268-s1p.bin", 0x000000, 0x20000, CRC(21e04432) ) ROM_REGION( 0x20000, REGION_GFX2, 0 ) ROM_LOAD( "sfix.sfx", 0x000000, 0x20000, CRC(354029fc) SHA1(4ae4bf23b4c2acff875775d4cbff5583893ce2a1) ) ROM_REGION( 0x40000, REGION_USER4, 0 ) ROM_LOAD( "268-m1.bin", 0x00000, 0x40000, CRC(88c11f51) SHA1(5592819be64b69ab361d3b6b139fc68d8cabd29d) ) NEO_BIOS_SOUND_256K( "268-m1d.bin", CRC(6866d696) SHA1(3638b072e44277a6bffea5a78a915a14c6afcba0) ) ROM_REGION( 0x1000000, REGION_SOUND1, 0) ROM_LOAD( "268-v1.bin", 0x000000, 0x800000, CRC(33c6305c) SHA1(67fce35a62941d2dcec75f0e6319677d6df7a4dc) ) ROM_LOAD( "268-v2.bin", 0x800000, 0x800000, CRC(1afb848e) SHA1(368e950043deebc91f7b38be770fa1045a0153af) ) ROM_REGION( 0x4000000, REGION_GFX3, 0 ) ROM_LOAD16_BYTE( "ms5n_c1.rom", 0x0000000, 0x800000, CRC(969c0d62) ) ROM_LOAD16_BYTE( "ms5n_c2.rom", 0x0000001, 0x800000, CRC(c69ae867) ) ROM_LOAD16_BYTE( "ms5n_c3.rom", 0x1000000, 0x800000, CRC(d7beaeaf) ) ROM_LOAD16_BYTE( "ms5n_c4.rom", 0x1000001, 0x800000, CRC(899fb2af) ) ROM_LOAD16_BYTE( "ms5n_c5.rom", 0x2000000, 0x800000, CRC(2fa1a5ad) ) ROM_LOAD16_BYTE( "ms5n_c6.rom", 0x2000001, 0x800000, CRC(6de89589) ) ROM_LOAD16_BYTE( "ms5n_c7.rom", 0x3000000, 0x800000, CRC(97bd0c0a) ) ROM_LOAD16_BYTE( "ms5n_c8.rom", 0x3000001, 0x800000, CRC(c0d5bc20) ) ROM_END ========================================== DRIVER_INIT( ms5plus ) { UINT8 *dst = osd_malloc(0x20000); UINT8 *roms1 = (memory_region(REGION_GFX1)); int j; if ( dst ) { memcpy(dst,roms1,0x20000); // descrambling the S1 by dorriGa for (j=0;j<0x20000; j+=0x000010) { memcpy( roms1+j, dst+j+0x000008,8); memcpy( roms1+j+0x000008, dst+j,8); } } free( dst ); neogeo_fix_bank_type = 1; mslug5_vx_decrypt(); init_neogeo(); } Let me know what to fixs.
  9. Cool I gotting the "MAGIC PLUS" word to work now. I also fixs the "MAGIC PLUS 2" word as well. Because the kof2000_neogeo_gfx_decrypt(0xec); change into the cmc50_neogeo_gfx_decrypt(0xec);. Thanks.
  10. Can the Mame32 use the code that Mame Plus uses? Point me where to look at. I want to try the code out. Maybe I can get it to work if I coding it in. <{POST_SNAPBACK}> Yes you can src\machine\neocrypt.c <{POST_SNAPBACK}> I need these. /* the S data comes from the end of the C data */ void neogeo_sfix_decrypt(void) { int i; int rom_size = memory_region_length(REGION_GFX3); int tx_size = memory_region_length(REGION_GFX1); UINT8 *src = memory_region(REGION_GFX3)+rom_size-tx_size; UINT8 *dst = memory_region(REGION_GFX1); for (i = 0;i < tx_size;i++) dst[i] = src[(i & ~0x1f) + ((i & 7) << 2) + ((~i & 8) >> 2) + ((i & 0x10) >> 4)]; } /* CMC42 protection chip */ void kof99_neogeo_gfx_decrypt(int extra_xor) { type0_t03 = kof99_type0_t03; type0_t12 = kof99_type0_t12; type1_t03 = kof99_type1_t03; type1_t12 = kof99_type1_t12; address_8_15_xor1 = kof99_address_8_15_xor1; address_8_15_xor2 = kof99_address_8_15_xor2; address_16_23_xor1 = kof99_address_16_23_xor1; address_16_23_xor2 = kof99_address_16_23_xor2; address_0_7_xor = kof99_address_0_7_xor; neogeo_gfx_decrypt(extra_xor); neogeo_sfix_decrypt(); } /* CMC50 protection chip */ void kof2000_neogeo_gfx_decrypt(int extra_xor) { type0_t03 = kof2000_type0_t03; type0_t12 = kof2000_type0_t12; type1_t03 = kof2000_type1_t03; type1_t12 = kof2000_type1_t12; address_8_15_xor1 = kof2000_address_8_15_xor1; address_8_15_xor2 = kof2000_address_8_15_xor2; address_16_23_xor1 = kof2000_address_16_23_xor1; address_16_23_xor2 = kof2000_address_16_23_xor2; address_0_7_xor = kof2000_address_0_7_xor; neogeo_gfx_decrypt(extra_xor); neogeo_sfix_decrypt(); /* here I should also decrypt the sound ROM */ } /* CMC42 protection chip */ void cmc42_neogeo_gfx_decrypt(int extra_xor) { type0_t03 = kof99_type0_t03; type0_t12 = kof99_type0_t12; type1_t03 = kof99_type1_t03; type1_t12 = kof99_type1_t12; address_8_15_xor1 = kof99_address_8_15_xor1; address_8_15_xor2 = kof99_address_8_15_xor2; address_16_23_xor1 = kof99_address_16_23_xor1; address_16_23_xor2 = kof99_address_16_23_xor2; address_0_7_xor = kof99_address_0_7_xor; neogeo_gfx_decrypt(extra_xor); } /* CMC50 protection chip */ void cmc50_neogeo_gfx_decrypt(int extra_xor) { type0_t03 = kof2000_type0_t03; type0_t12 = kof2000_type0_t12; type1_t03 = kof2000_type1_t03; type1_t12 = kof2000_type1_t12; address_8_15_xor1 = kof2000_address_8_15_xor1; address_8_15_xor2 = kof2000_address_8_15_xor2; address_16_23_xor1 = kof2000_address_16_23_xor1; address_16_23_xor2 = kof2000_address_16_23_xor2; address_0_7_xor = kof2000_address_0_7_xor; neogeo_gfx_decrypt(extra_xor); /* here I should also decrypt the sound ROM */ } Also I need this. src\includes\neogeo /*----------- defined in machine/neocrypt.c -----------*/ extern int neogeo_fix_bank_type; void kof99_neogeo_gfx_decrypt(int extra_xor); void kof2000_neogeo_gfx_decrypt(int extra_xor); void cmc42_neogeo_gfx_decrypt(int extra_xor); void cmc50_neogeo_gfx_decrypt(int extra_xor); void neogeo_sfix_decrypt(void); /*----------- defined in vidhrdw/neogeo.c -----------*/
  11. Can the Mame32 use the code that Mame Plus uses? Point me where to look at. I want to try the code out. Maybe I can get it to work if I coding it in.
  12. How come the yellow word of "MAGIC PLUS" doesn't show on the Mame32 screen but it does on the Mame Plus screen? It weard it does that. It like it wasn't even on the Mame32 at all. ROM_START( kof2k2mp ) ROM_REGION( 0x500000, REGION_CPU1, 0 ) ROM_LOAD16_WORD_SWAP( "265-p1mp.bin", 0x000000, 0x300000, CRC(ff7c6ec0) SHA1(704c14d671dcb4cfed44d9f978a289cb7dd9d065) ) ROM_CONTINUE( 0x000000, 0x100000 ) ROM_LOAD16_WORD_SWAP( "265-p2mp.bin", 0x100000, 0x400000, CRC(91584716) SHA1(90da863037cf775957fa154cd42536e221df5740) ) NEO_SFIX_128K( "265-s1mp.bin", CRC(348d6f2c) SHA1(586da8a936ebbb71af324339a4b60ec91dfa0990) ) NEO_BIOS_SOUND_128K( "265-m1_decrypted.bin", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) ) ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) ROM_LOAD( "265-v1.bin", 0x000000, 0x800000, CRC(15e8f3f 5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) ) ROM_LOAD( "265-v2.bin", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) ) NO_DELTAT_REGION ROM_REGION( 0x4000000, REGION_GFX3, 0 ) ROM_LOAD16_BYTE( "265-c1.bin", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) ) ROM_LOAD16_BYTE( "265-c2.bin", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) ) ROM_LOAD16_BYTE( "265-c3.bin", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) ) ROM_LOAD16_BYTE( "265-c4.bin", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) ) ROM_LOAD16_BYTE( "265-c5.bin", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) ) ROM_LOAD16_BYTE( "265-c6.bin", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) ) ROM_LOAD16_BYTE( "265-c7.bin", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) ) ROM_LOAD16_BYTE( "265-c8.bin", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) ) ROM_END static void kof2k2mp_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; kof2k2mp_sx_decrypt(); kof2000_neogeo_gfx_decrypt(0xec); neo_pcm2_swap(0); init_neogeo(); } Ok here is what I try out. It very messy on the screen. static void sx_decrypt( int value ) { int sx_size = memory_region_length( REGION_GFX1 ); UINT8 *rom = memory_region( REGION_GFX1 ); int i; if (value == 1) { UINT8 *buf = malloc( sx_size ); memcpy( buf, rom, sx_size ); for( i = 0; i < sx_size; i += 0x10 ) { memcpy( &rom[ i ], &buf[ i + 8 ], 8 ); memcpy( &rom[ i + 8 ], &buf[ i ], 8 ); } free( buf ); } else if (value == 2) { for( i = 0; i < sx_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); sx_decrypt(2); init_neogeo(); }
  13. Alrighty I gotting the graphics to work now. Is that something now after looking in the kof2002b_kof2002p_kof2004e source in the extrasrc_095. Now I need to figger out how to fixs the sounds and musics. Yeppy. :biggrin: I think it the neo_pcm2_playmore_2002(0); will fixs that. static void kof2002b_gfx_decrypt(unsigned char* src, int size) { unsigned short kof2002b_sec[512] = { 0x001, 0x101, 0x002, 0x102, 0x003, 0x103, 0x004, 0x104, 0x009, 0x089, 0x109, 0x189, 0x00A, 0x08A, 0x10A, 0x18A, 0x011, 0x051, 0x091, 0x0D1, 0x111, 0x151, 0x191, 0x1D1, 0x019, 0x01D, 0x059, 0x05D, 0x099, 0x09D, 0x0D9, 0x0DD, 0x021, 0x023, 0x025, 0x027, 0x061, 0x063, 0x065, 0x067, 0x029, 0x129, 0x0A9, 0x1A9, 0x069, 0x169, 0x0E9, 0x1E9, 0x031, 0x071, 0x0B1, 0x0F1, 0x131, 0x171, 0x1B1, 0x1F1, 0x039, 0x0B9, 0x03A, 0x0BA, 0x03B, 0x0BB, 0x03C, 0x0BC, 0x005, 0x105, 0x006, 0x106, 0x007, 0x107, 0x008, 0x108, 0x00B, 0x08B, 0x10B, 0x18B, 0x00C, 0x08C, 0x10C, 0x18C, 0x012, 0x052, 0x092, 0x0D2, 0x112, 0x152, 0x192, 0x1D2, 0x119, 0x11D, 0x159, 0x15D, 0x199, 0x19D, 0x1D9, 0x1DD, 0x0A1, 0x0A3, 0x0A5, 0x0A7, 0x0E1, 0x0E3, 0x0E5, 0x0E7, 0x02D, 0x12D, 0x0AD, 0x1AD, 0x06D, 0x16D, 0x0ED, 0x1ED, 0x035, 0x075, 0x0B5, 0x0F5, 0x135, 0x175, 0x1B5, 0x1F5, 0x03D, 0x0BD, 0x03E, 0x0BE, 0x03F, 0x0BF, 0x040, 0x0C0, 0x041, 0x141, 0x042, 0x142, 0x043, 0x143, 0x044, 0x144, 0x00D, 0x08D, 0x10D, 0x18D, 0x00E, 0x08E, 0x10E, 0x18E, 0x013, 0x053, 0x093, 0x0D3, 0x113, 0x153, 0x193, 0x1D3, 0x01A, 0x01E, 0x05A, 0x05E, 0x09A, 0x09E, 0x0DA, 0x0DE, 0x121, 0x123, 0x125, 0x127, 0x161, 0x163, 0x165, 0x167, 0x02B, 0x12B, 0x0AB, 0x1AB, 0x06B, 0x16B, 0x0EB, 0x1EB, 0x033, 0x073, 0x0B3, 0x0F3, 0x133, 0x173, 0x1B3, 0x1F3, 0x079, 0x0F9, 0x07A, 0x0FA, 0x07B, 0x0FB, 0x07C, 0x0FC, 0x045, 0x145, 0x046, 0x146, 0x047, 0x147, 0x048, 0x148, 0x00F, 0x08F, 0x10F, 0x18F, 0x010, 0x090, 0x110, 0x190, 0x014, 0x054, 0x094, 0x0D4, 0x114, 0x154, 0x194, 0x1D4, 0x11A, 0x11E, 0x15A, 0x15E, 0x19A, 0x19E, 0x1DA, 0x1DE, 0x1A1, 0x1A3, 0x1A5, 0x1A7, 0x1E1, 0x1E3, 0x1E5, 0x1E7, 0x02F, 0x12F, 0x0AF, 0x1AF, 0x06F, 0x16F, 0x0EF, 0x1EF, 0x037, 0x077, 0x0B7, 0x0F7, 0x137, 0x177, 0x1B7, 0x1F7, 0x07D, 0x0FD, 0x07E, 0x0FE, 0x07F, 0x0FF, 0x080, 0x100, 0x081, 0x181, 0x082, 0x182, 0x083, 0x183, 0x084, 0x184, 0x049, 0x0C9, 0x149, 0x1C9, 0x04A, 0x0CA, 0x14A, 0x1CA, 0x015, 0x055, 0x095, 0x0D5, 0x115, 0x155, 0x195, 0x1D5, 0x01B, 0x01F, 0x05B, 0x05F, 0x09B, 0x09F, 0x0DB, 0x0DF, 0x022, 0x024, 0x026, 0x028, 0x062, 0x064, 0x066, 0x068, 0x02A, 0x12A, 0x0AA, 0x1AA, 0x06A, 0x16A, 0x0EA, 0x1EA, 0x032, 0x072, 0x0B2, 0x0F2, 0x132, 0x172, 0x1B2, 0x1F2, 0x139, 0x1B9, 0x13A, 0x1BA, 0x13B, 0x1BB, 0x13C, 0x1BC, 0x085, 0x185, 0x086, 0x186, 0x087, 0x187, 0x088, 0x188, 0x04B, 0x0CB, 0x14B, 0x1CB, 0x04C, 0x0CC, 0x14C, 0x1CC, 0x016, 0x056, 0x096, 0x0D6, 0x116, 0x156, 0x196, 0x1D6, 0x11B, 0x11F, 0x15B, 0x15F, 0x19B, 0x19F, 0x1DB, 0x1DF, 0x0A2, 0x0A4, 0x0A6, 0x0A8, 0x0E2, 0x0E4, 0x0E6, 0x0E8, 0x02E, 0x12E, 0x0AE, 0x1AE, 0x06E, 0x16E, 0x0EE, 0x1EE, 0x036, 0x076, 0x0B6, 0x0F6, 0x136, 0x176, 0x1B6, 0x1F6, 0x13D, 0x1BD, 0x13E, 0x1BE, 0x13F, 0x1BF, 0x140, 0x1C0, 0x0C1, 0x1C1, 0x0C2, 0x1C2, 0x0C3, 0x1C3, 0x0C4, 0x1C4, 0x04D, 0x0CD, 0x14D, 0x1CD, 0x04E, 0x0CE, 0x14E, 0x1CE, 0x017, 0x057, 0x097, 0x0D7, 0x117, 0x157, 0x197, 0x1D7, 0x01C, 0x020, 0x05C, 0x060, 0x09C, 0x0A0, 0x0DC, 0x0E0, 0x122, 0x124, 0x126, 0x128, 0x162, 0x164, 0x166, 0x168, 0x02C, 0x12C, 0x0AC, 0x1AC, 0x06C, 0x16C, 0x0EC, 0x1EC, 0x034, 0x074, 0x0B4, 0x0F4, 0x134, 0x174, 0x1B4, 0x1F4, 0x179, 0x1F9, 0x17A, 0x1FA, 0x17B, 0x1FB, 0x17C, 0x1FC, 0x0C5, 0x1C5, 0x0C6, 0x1C6, 0x0C7, 0x1C7, 0x0C8, 0x1C8, 0x04F, 0x0CF, 0x14F, 0x1CF, 0x050, 0x0D0, 0x150, 0x1D0, 0x018, 0x058, 0x098, 0x0D8, 0x118, 0x158, 0x198, 0x1D8, 0x11C, 0x120, 0x15C, 0x160, 0x19C, 0x1A0, 0x1DC, 0x1E0, 0x1A2, 0x1A4, 0x1A6, 0x1A8, 0x1E2, 0x1E4, 0x1E6, 0x1E8, 0x030, 0x130, 0x0B0, 0x1B0, 0x070, 0x170, 0x0F0, 0x1F0, 0x038, 0x078, 0x0B8, 0x0F8, 0x138, 0x178, 0x1B8, 0x1F8, 0x17D, 0x1FD, 0x17E, 0x1FE, 0x17F, 0x1FF, 0x180, 0x200, }; int i, j; UINT8 *dst = malloc(0x10000); for (i = 0; i < size; i+=0x10000) { memcpy(dst, src+i,0x10000); for (j = 0; j < 512; ++j) { memcpy(src+i+(kof2002b_sec[j]-1)*128, dst+j*128, 128); } } free(dst); } // © 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( kof2002b ) { kof2002b_gfx_decrypt(memory_region(REGION_GFX3),0x4000000); kof2002b_gfx_decrypt(memory_region(REGION_GFX1),0x20000); neo_pcm2_playmore_2002(0); neogeo_fix_bank_type = 1; init_neogeo(); }
  14. Ok. Like this bellow? GAMEB( 2002, kof2002, neogeo, neogeo, neogeo, neogeo, kof2002, ROT0, "Eolith / Playmore", "The King of Fighters 2002 (Set 1)", 0 ) GAMEB( 2002, kof2k2nd, kof2002, neogeo, neogeo, neogeo, kof2k2nd, ROT0, "Eolith / Playmore", "The King of Fighters 2002 (Set 2)", 0 ) GAMEB( 2002, kf2k2pa, kof2002, neogeo, neogeo, neogeo, kof2k2nd, ROT0, "Eolith / Playmore", "The King of Fighters 2002 Plus (Bootleg - Set 1)", 0 ) GAMEB( 2002, kf2k2pls, kof2002, neogeo, neogeo, neogeo, kof2k2nd, ROT0, "Eolith / Playmore", "The King of Fighters 2002 Plus (Bootleg - Set 2)", 0 )
  15. Now here is another problem. I can't get this in the right order. Mame32 doesn't like it this way. GAMEB( 2002, kof2002, neogeo, neogeo, neogeo, neogeo, kof2002, ROT0, "Eolith / Playmore", "The King of Fighters 2002 (Set 1)", 0 ) GAMEB( 2002, kof2k2nd, kof2002, neogeo, neogeo, neogeo, kof2k2nd, ROT0, "Eolith / Playmore", "The King of Fighters 2002 (Set 2)", 0 ) GAMEB( 2002, kf2k2pa, kof2k2nd, neogeo, neogeo, neogeo, kof2k2nd, ROT0, "Eolith / Playmore", "The King of Fighters 2002 Plus (Bootleg - Set 1)", 0 ) GAMEB( 2002, kf2k2pls, kof2k2nd, neogeo, neogeo, neogeo, kof2k2nd, ROT0, "Eolith / Playmore", "The King of Fighters 2002 Plus (Bootleg - Set 2)", 0 ) This one works bellow. I just now test it. Even though the kof2k2nd will have the extra roms that kof2002 have uses. GAMEB( 2002, kof2002, neogeo, neogeo, neogeo, neogeo, kof2002, ROT0, "Eolith / Playmore", "The King of Fighters 2002 (Set 1)", 0 ) GAMEB( 2002, kof2k2nd, neogeo, neogeo, neogeo, neogeo, kof2k2nd, ROT0, "Eolith / Playmore", "The King of Fighters 2002 (Set 2)", 0 ) GAMEB( 2002, kf2k2pa, kof2k2nd, neogeo, neogeo, neogeo, kof2k2nd, ROT0, "Eolith / Playmore", "The King of Fighters 2002 Plus (Bootleg - Set 1)", 0 ) GAMEB( 2002, kf2k2pls, kof2k2nd, neogeo, neogeo, neogeo, kof2k2nd, ROT0, "Eolith / Playmore", "The King of Fighters 2002 Plus (Bootleg - Set 2)", 0 )
  16. GGXX was never released on PC. Whoops I meant the GGX. Bridget is a dude who was raised as a girl because of an omen in his village that identical boys = bad. So thusfully, his parents raised Bridget as a girl. Christ, you can see in his Isuka art paddings trying to give the feeling that he HAS breasts. You should ACTUALLY read something canonical once in a while. No, that dude on gamefaqs does NOT count as a realible source for this longly known douchebaggery. I will hate to see a guy dress up and look like a girl. I also don't want to see a guy chasing guys ether. Where my boomstick at???
  17. I have the DMC1 and DMC2. I going to get the DMC3 when it drop to $29.95.
  18. Bridget is a girl with a big red yoyo. I have the PC game version of GGXX *Japanese and GGXX Reload *Japanese.
  19. 271-v1.bin (1d961548) is that buggy? I could try the kof2003a 271-v1c.bin (ffa3f8c7) and see it fixs the problem. Let me try it out becuase I have it.
  20. Ok I will try again. With this /* kof2003 */. The sounds and musics are bad. Is there away to fixs those?
×
×
  • Create New...