Jump to content

iq_132

1Emu Veteran
  • Posts

    2,311
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by iq_132

  1. I think the kf2k3pcb cx decrypt came from Razoola & Halrin. Actually, it was something I put together and sent Haze It used code from Raz's cx decrypt and Halrin's svc cx decrypt. If you look at how the Cx are loaded it's also changed.
  2. Well, the kf2k3pcb cx decrypt is one (I don't know where that code came from lol) Also, the kof2003 bootlegs were fixed up, and proper sram emulation.
  3. Yeah, ZeZu is just that way (no offense), there's no need to take what he says to heart.
  4. I'd suggest syncing up all of the roms except the M roms. Use what johnboy's dats suggest for those.
  5. Also, IIRC, they correctly emulated the sound processor.
  6. kof2k3up fix: change your kof2002b_px_decrypt code to this: static void kof2003b_px_decrypt() { /* Descrambling Px by X-or */ unsigned char* src = Neo68KROM; unsigned char* dst = (unsigned char*)malloc(0x800000); unsigned int sec[]= {0x700000, 0x000000, 0x100000, 0x200000, 0x300000, 0x400000, 0x500000, 0x600000}; if (dst) { memcpy(dst, src, 0x800000); for(int i = 0; i < 8; ++i) { memcpy(src + i * 0x100000, dst + sec[i], 0x100000); } free(dst); } } And use this for your kof2k3up decrypt static void kof2k3upDecrypt() { kof2003b_px_decrypt(); unsigned char *src = Neo68KROM + 0xfe000; unsigned char *dst = Neo68KROM + 0xd0610; for( int i = 0; i < 0x2000 / 2; i++ ) { int ofst = (i & 0xff00) + BITSWAP08( (i & 0x00ff), 7, 6, 0, 4, 3, 2, 1, 5 ); memcpy( &src[ i * 2 ], &dst[ ofst * 2 ], 2 ); } }
  7. // King Of Fighters 2002, The (bootleg) static struct BurnRomInfo kof2002bRomDesc[] = { { "265-p1.bin", 0x100000, 0x9EDE7323, 1 | BRF_ESS | BRF_PRG }, // 0 68K code { "265-p2b.bin", 0x400000, 0x6DBEE4DF, 1 | BRF_ESS | BRF_PRG }, // 1 // { "2k2-s1b.bin", 0x020000, 0x2255F5BF, 2 | BRF_GRA }, // 2 Text data { "2k2-c1b.bin", 0x800000, 0xF25D3D66, 3 | BRF_GRA }, // 3 Sprite data { "2k2-c2b.bin", 0x800000, 0xE3E66F1D, 3 | BRF_GRA }, // 4 { "2k2-c3b.bin", 0x800000, 0x8732FA30, 3 | BRF_GRA }, // 5 { "2k2-c4b.bin", 0x800000, 0x0989FD40, 3 | BRF_GRA }, // 6 { "2k2-c5b.bin", 0x800000, 0x60635CD2, 3 | BRF_GRA }, // 7 { "2k2-c6b.bin", 0x800000, 0xBD736824, 3 | BRF_GRA }, // 8 { "2k2-c7b.bin", 0x800000, 0x2DA8D8CF, 3 | BRF_GRA }, // 9 { "2k2-c8b.bin", 0x800000, 0x2048404A, 3 | BRF_GRA }, // 10 { "265-m1_decrypted.bin", 0x020000, 0x1c661a4b, 4 | BRF_ESS | BRF_PRG }, // 11 Z80 code { "265-v1.bin", 0x800000, 0x15E8F3F5, 5 | BRF_SND }, // 16 { "265-v2.bin", 0x800000, 0xDA41D6F9, 5 | BRF_SND }, // 17 }; STDROMPICKEXT(kof2002b, kof2002b, neogeo); STD_ROM_FN(kof2002b); static int kof2002bInit() { int nRet; nPCM2=true; pNeoInitCallback = PCM2DecryptP; nRet = NeoInit(); if (nRet == 0) { PCM2DecryptVInfo Info = { 0x0A5000, 0x000000, { 0xF9, 0xE0, 0x5D, 0xF3, 0xEA, 0x92, 0xBE, 0xEF } }; PCM2DecryptV(&Info); } InitSpritePaging(PAGEFILE, nPCM2spritesize, 256*1024, 76); InitPageAndFrameTables(); NeoInitSprites(); return nRet; } struct BurnDriver BurnDrvkof2002b = { "kof2002b", "kof2002", "neogeo", "2002", "King of Fighters 2002, The - Challenge to Ultimate Battle (bootleg)\0", "needs decrypted C ROMs for now", "Eolith / Playmore Corporation", "Neo-Geo", NULL, NULL, NULL, NULL, BDF_GAME_WORKING | BDF_BOOTLEG, 2, HARDWARE_SNK_NEOGEO, NULL, kof2002bRomInfo, kof2002bRomName, neogeoInputInfo, neogeoDIPInfo, kof2002bInit, NeoExit, NeoFrame, NeoRender, NeoScan, &NeoRecalcPalette, nNeoScreenWidth, 224, 4, 3 }; Put this in neo_decrypt.cpp void kof2002b_gfx_decrypt(unsigned char* src, int size) { int t[8][10] = { { 0, 8, 7, 3, 4, 5, 6, 2, 1 }, { 1, 0, 8, 4, 5, 3, 7, 6, 2 }, { 2, 1, 0, 3, 4, 5, 8, 7, 6 }, { 6, 2, 1, 5, 3, 4, 0, 8, 7 }, { 7, 6, 2, 5, 3, 4, 1, 0, 8 }, { 0, 1, 2, 3, 4, 5, 6, 7, 8 }, { 2, 1, 0, 4, 5, 3, 6, 7, 8 }, { 8, 0, 7, 3, 4, 5, 6, 2, 1 }, }; unsigned char* dst = (unsigned char*)malloc(0x10000); for (int i = 0; i < size; i+=0x10000) { memcpy(dst, src+i,0x10000); for (int j = 0; j < 0x200; j++) { int *n = t[(j % 0x40) / 8]; int ofst = BITSWAP16(j, 15, 14, 13, 12, 11, 10, 9, n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8]); memcpy(src+i+ofst*128, dst+j*128, 128); } } free(dst); } neogeo.h extern void kof2002b_gfx_decrypt(unsigned char* src, int size); neogeo.cpp after the cx decrypt code for svcboot if (!strcmp(BurnDrvGetTextA(DRV_NAME), "kof2002b")) { kof2002b_gfx_decrypt(SpriteBuf, (dwBytesDone - nSpriteSize)); }
  8. I'll see what I can do with these tonight.
  9. You can get cthd/svcboot's Cx decrypted in a similar way: add this somewhere, neo_decrypt is a good place for it... void DoPerm(int g, unsigned char *src) { unsigned int idx[2][ 0x10 ] = { {0, 1, 2, 3, 3, 4, 4, 5, 0, 1, 2, 3, 3, 4, 4, 5}, // cthd2003 {0, 1, 0, 1, 2, 3, 2, 3, 3, 4, 3, 4, 4, 5, 4, 5}, // svcboot }; unsigned int tbl[ 6 ][ 4 ] = { { 3, 0, 1, 2 }, { 2, 3, 0, 1 }, { 1, 2, 3, 0 }, { 0, 1, 2, 3 }, { 3, 2, 1, 0 }, { 3, 0, 2, 1 }, }; unsigned char dst[0x800]; for(int i = 0; i < 0x2000; i++) { for(int j = 0; j < 16; j++) { unsigned int *b = tbl[ idx[g][(i>>(5-g))&0xF] ]; int ofst = BITSWAP08(j, 7, 6, 5, 4, b[3], b[2], b[1], b[0] ); memcpy( dst + j * 0x80, src + (i * 0x800) + ofst * 0x80, 0x80 ); } memcpy (src + i * 0x800, dst, 0x800); } } Add this to neogeo.h extern void DoPerm(int g, unsigned char *src); Add this to neogeo.cpp after the code you added for kog if (!strcmp(BurnDrvText(0), "svcboot")) { DoPerm(1, SpriteBuf); } if ((!strcmp(BurnDrvText(0), "cthd2003"))||(!strcmp(BurnDrvText(0), "matrimbl"))) { DoPerm(0, SpriteBuf); }
  10. + T +, I think I may have a solution to allow you to use the scrambled Cx roms from kog and lans2004 in neogeo.cpp find this: // If the ROMs combined are 0x800000 bytes large, place swap the 0x0400000 byte blocks if (BurnDrvGetHardwareCode() & HARDWARE_SNK_SWAPC && ri.nLen == 0x400000) { // i counts 16-bit words! for (int j = 0; j < 0x200000; j++) { short n = ((short*)(SpriteBuf))[j]; ((short*)(SpriteBuf))[j] = ((short*)(SpriteBuf))[j + 0x200000]; ((short*)(SpriteBuf))[j + 0x200000] = n; } } Add this after: if ((!strcmp(BurnDrvText(0), "kog"))||(!strcmp(BurnDrvText(0), "lans2004"))) { unsigned char *tmp = (unsigned char*)malloc(0x40); int tsize = dwBytesDone - nSpriteSize; if (tmp) { for (int z = 0; z < tsize; z+=0x80) { memcpy (tmp + 0, SpriteBuf + z + 0, 0x40); memcpy (SpriteBuf + z + 0, SpriteBuf + z + 0x40, 0x40); memcpy (SpriteBuf + z + 0x40, tmp + 0, 0x40); } free (tmp); } } This definitely works for kog, I haven't tested lans2004, and it may also work with samsh5bl. BTW, do you post your source ever? I'd like to take a look at it if you do
  11. Super Smash Brothers is another great one, All of the Mario Party games are good... I would suggest modding your cube. There are 4 chips that should fit for different budgets low end Xeno Chip // http://www.divineo.com/cgi-bin/div-us/dd-gc-xeno GC Ninja Mod // don't bother with this one Viper GC // nice chip, but small bios Qoob -- a very very nice chip Viper GC Extreme // http://www.divineo.com/cgi-bin/div-us/dd-gc-vipextr
  12. I've never even heard of "Mother", what's this all about?
  13. Sounds like the MAME32 team is going to start asking for $$ to add controller configs...
  14. Old. I saw this years ago. They used every bit of power the saturn had, even (from what I heard) using some of the sound processor's cycles to process geometry data. It also would have taken like 10 regular cds to hold it
  15. I don't get it... What is the purpose of this thing??
  16. lol, fat chance. Execs will 99.9% of the time NEVER take a pay cut. Even if their companies are crashing and burning, they don't care, as long as they get their big fat paychecks.
  17. Check it out at: http://www.citylan.it/reip/
  18. SMF a member of the MAME team has posted some screenshots of Ghoul Panic on his Blog. Visit the link below to check them out. http://smf.mameworld.info/
  19. This one was compile by Haze, as usual, the.diff can be gotten at http://www.mamedev.com MAME32 0.103u2 released MAME32FX 0.103u2 released MAME Plus! 0.103u2 released
  20. No links to this one, the bios contains copyrighted material.
  21. See pics and the post here: http://rbelmont.mameworld.info/?p=85
  22. Looks like this dumbass wanted to make "Peace" in the #1emu channel. I figured it out right away when I did a whois on him. Little does he know that proxies don't work that easily on IRC so I got his real IP address too! Here's the conversation (pretty short).. Banned on #1emu Oh and his real IP address again: 207.38.225.43 Somebody report his IP address and contact the NYPD to get his ass arrested or something.
×
×
  • Create New...