Jump to content

Robert

User Admin
  • Posts

    12,842
  • Joined

  • Last visited

  • Days Won

    312

Everything posted by Robert

  1. The one specified was 2058ec5e. You have the encrypted one which I could not find anywhere. To get it to work, you will have to add an extra line in the DRIVER_INIT section, just above the "init_neogeo()" line. My guess is the line would be: neo_pcm2_playmore_2002(5); But you'll need to add an extra subroutine just above any DRIVER_INIT's you've added. // © 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); }
  2. Source Perhaps you'd better move to Australia.
  3. Yes it is possible, although because it was a work-related thing, we set up a Sandisk Mini-Cruzer usb stick to boot to Windows 98 command-line. You didn't say what OS you wanted to boot into, or for what purpose.
  4. In what way is it bad? Does it keep repeating like an echo box, or is it all fuzzy?
  5. Yape emulates the Commodore Plus/4 and C16 consoles. >> Get it HERE
  6. It is? LOL Congratulations, have a good day. Present for you: robbbert attacked Disoblige with a Atomic Bomb (672 str) and took off 1244! Disoblige has 0 HP left!
  7. It's the driver I happened to find. I just had a look and I don't possess the encrypted rom anyway. So there's not much choice.
  8. Look for this one: static void neogeo_custom_memory(void)
  9. Yes that driver is a bit old now. This is what I have, it's a rather complex driver. Firstly delete all the stuff you've put in from drivers\neogeo.c and machine\neogeo.c Now, this goes in drivers\neogeo.c 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) ) 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-v1d.bin", 0x000000, 0x1000000, CRC(2058ec5e) SHA1(567fdf328f87551a949dc601f4e71c55368debf0) ) // ROM_LOAD( "271-v1.bin", 0x000000, 0x1000000, CRC(1d96154b) SHA1(1d4e262b0d30cee79a4edc83bb9706023c736668) ) 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 //--------------------------------------------------------kof2003 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,*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(); neogeo_fix_bank_type = 2; init_neogeo(); } GAMEB( 2003, kof2003, neogeo, neogeo, neogeo, neogeo, kof2003, ROT0, "SNK Playmore", "The King of Fighters 2003 (PCB, decrypted C)", 0 ) In machine\neogeo.c look for neogeo_custom_memory and put this just before it //----------------------------------------new bankswitch code from neosource // thanks to BMS888 and Halrin for much of this code // MAME port by IQ_132 - neosource.1emulation.com 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(); } still machine\neogeo.c, look in the neogeo_custom_memory routine, you will see code for various games. Add this: //-------------------------------------------------------------------------kof2003 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 } Now, do a clean compile and it "should" work. Good luck.
  10. As I don't have mod rights on this forum, we will have to wait for a supermod or admin.
  11. I've yet to encounter a mame version that overall goes faster than its predecessor.
  12. I thought it said Free360 project.
  13. I've noticed on the original kof2003, the power bars of the inactive players are dotted and are semi-transparent. On all the other versions, all the bars are solid. What does it look like on a real machine? In other words which way is correct?
  14. News to me... Does this happen often? Is Malaysia a police state? Is it unsafe for foreigners to visit?
  15. I'm sure they would like to try it... they would have a tough time with certain laws. It would be illegal in Australia as it represents a restriction of trade.
  16. Ever heard of the TCPA? An organisation with the top computer software and hardware companies whose aim is to control what software will work on your computer. READ MORE HERE This could be considered old as it's been around since 1999. Should it ever happen it would be a great threat to our freedom. What do you think? Maybe those old computers will have some extra life in them after all.
  17. Vice is a Commodore 64/128 emulator. >> Get it HERE
  18. Well, this business of adding games has settled into a routine. Here is the list of what I've added: bangbedp (Bang Bead prototype) mslug4nd (Metal Slug 4 decrypted) mslug5 (Metal Slug 5) ms5plus (Metal Slug 5 plus) mslug5nd (Metal Slug 5 decrypted) matrimbl (Matrimelee bootleg) pnyaa (Pochi & Nyaa) pnyaad (Pochi & Nyaa decrypted) samsho5 (Samurai Shodown 5) samsh5bl (Samurai Shodown 5 bootleg) samsh5sp (Samurai Shodown 5 Special) svcchaos (SVC Chaos) svchaosa (SVC Chaos alternate) svcboot (SVC Chaos bootleg) svcplus (SVC Chaos plus) svcplusa (SVC Chaos plus alternate) svcsplus (SVC Chaos Super Plus) kof96evo (KOF 96 Evolution hack) kof96ep (KOF 96 Boss hack) kof96ru (KOF 96 another boss hack) kof2003 (KOF 2003) kof2003b (KOF 2003 bootleg) kof2003d (KOF 2003 decrypted) kof2k4ex (KOF 2k4 EX plus) kof2k3up (KOF 2k4 "ultra" plus) kof2k4se (KOF 2k4 Special Edition) kf2k4spe (KOF 2k4 Special Edition alternate) kof2k2mp (KOF 2002 Magic Plus) cthd2003 (Crouching Tiger Hidden Dragon 2003) ct2k3sp (Crouching Tiger Hidden Dragon 2003 Special) kof2k1rp (KOF 2001 Remix Pro hack) kf2k2pls (KOF 2002 Plus decrypted) kof2k2sr (KOF 2002 Super) kof2k4mp (KOF 2k4 Magic Plus) kof10th (KOF 10th Anniversary) kof10thu (KOF 10th Unique) kf10thud (KOF 10th Unique decrypted) kf10thep (KOF 10th Extra Plus) kog (King of Gladiator) beast (Shadow of the Beast preview) columnsn (Neogeo Columns) diggerma (Diggerman) neonopon (Neo No Panepon v2) neopong (Neopong v1.1) npong10 (Neopong v1.0) syscheck (System Check) frogfest (Frog Feast) ltor (Jonas Indiana and the Lost Temple of Ra) chaos (Demo by Chaos group) 49 games. They all work except for: bangbedp, mslug4nd, mslug5nd - don't have the roms to test with kof10th, kog - slight graphics problems, no fix available neopong - crashes my computer when Start pressed All thats left to do is automate the decrypt routines, so they examine the data and apply the proper decryption accordingly. I probably won't publish these because of the mameplus fiasco. Lastly, I've been handed a whole pile of "phoenixed" CPS-2 roms. When (or more likely if) anything happens will be the subject of another thread. Thanks to James and IQ_132 for their invaluable assistance Now this subject is over and I'm closing this thread.
×
×
  • Create New...