KillerBee
Members+-
Posts
28 -
Joined
-
Last visited
KillerBee's Achievements
Newbie (1/14)
0
Reputation
-
KillerBee started following Mame/Mame32 NeoGeo other bios drivers adding... and Sneaky Ro
-
I been playing this for days. I'm hook on it.
-
Mame/Mame32 NeoGeo other bios drivers adding...
KillerBee replied to KillerBee's topic in Arcade Emulators [/pc/arcade]
Everymine I fixs the problem now. -
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 */
-
NeoGeo games drivers - I need help.
KillerBee replied to KillerBee's topic in Arcade Emulators [/pc/arcade]
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. -
NeoGeo games drivers - I need help.
KillerBee replied to KillerBee's topic in Arcade Emulators [/pc/arcade]
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" ) -
NeoGeo games drivers - I need help.
KillerBee replied to KillerBee's topic in Arcade Emulators [/pc/arcade]
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. -
NeoGeo games drivers - I need help.
KillerBee replied to KillerBee's topic in Arcade Emulators [/pc/arcade]
Already fixs. Crouching Tiger Hidden Dragon 2003 'Super Plus'. -
NeoGeo games drivers - I need help.
KillerBee replied to KillerBee's topic in Arcade Emulators [/pc/arcade]
Ok I will removed the other part then. -
NeoGeo games drivers - I need help.
KillerBee replied to KillerBee's topic in Arcade Emulators [/pc/arcade]
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. -
NeoGeo games drivers - I need help.
KillerBee replied to KillerBee's topic in Arcade Emulators [/pc/arcade]
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. -
NeoGeo games drivers - I need help.
KillerBee replied to KillerBee's topic in Arcade Emulators [/pc/arcade]
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. -
NeoGeo games drivers - I need help.
KillerBee replied to KillerBee's topic in Arcade Emulators [/pc/arcade]
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 -----------*/ -
NeoGeo games drivers - I need help.
KillerBee replied to KillerBee's topic in Arcade Emulators [/pc/arcade]
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. -
NeoGeo games drivers - I need help.
KillerBee replied to KillerBee's topic in Arcade Emulators [/pc/arcade]
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(); } -
NeoGeo games drivers - I need help.
KillerBee replied to KillerBee's topic in Arcade Emulators [/pc/arcade]
It fixs.