N3oGhost Posted February 6, 2004 Share Posted February 6, 2004 so what relationship does the P roms have to the C roms? would it be possible to restructure the P but then just change the order of the C roms? or am i talkin out of my arse?lol Link to comment Share on other sites More sharing options...
N3oGhost Posted February 6, 2004 Share Posted February 6, 2004 (edited) This is the driver used to run KOF2000 on FBA How similar is this to the Mame driver for KOF2000? Im wondering if by comparing this one with mame we can do similar changes (where needed) to run kof2k3 on FBA (i know this is kawaks thread but there is no FBA thread and the smart cookies hang out here) // The King Of Fighters 2000 (encrypted code & grahics) static struct BurnRomInfo kof2000RomDesc[] = { {"257-sma.bin",0x040000, 0x71C6E6BB, 0x10}, // 0 68K code {"257-p1.bin", 0x400000, 0x60947B4C, 0x10}, // 1 {"257-p2.bin", 0x400000, 0x1B7EC415, 0x10}, // 2 {"257-c1.bin", 0x800000, 0xCEF1CDFA, 1}, // 3 Sprite data {"257-c2.bin", 0x800000, 0xF7BF0003, 1}, // 4 {"257-c3.bin", 0x800000, 0x101E6560, 1}, // 5 {"257-c4.bin", 0x800000, 0xBD2FC1B1, 1}, // 6 {"257-c5.bin", 0x800000, 0x89775412, 1}, // 7 {"257-c6.bin", 0x800000, 0xFA7200D5, 1}, // 8 {"257-c7.bin", 0x800000, 0x7DA11FE4, 1}, // 9 {"257-c8.bin", 0x800000, 0xB1AFA60B, 1}, // 10 {"257-m1d.bin",0x040000, 0xD404DB70, 0x10}, // 11 Z80 code (decrypted) {"257-m1.bin", 0x040000, 0x4B749113, 0x10}, // 11 Z80 code {"257-v1.bin", 0x400000, 0x17CDE847, 2}, // 12 Sound data {"257-v2.bin", 0x400000, 0x1aFB20FF, 2}, // 13 {"257-v3.bin", 0x400000, 0x4605036A, 2}, // 14 {"257-v4.bin", 0x400000, 0x764BBD6B, 2}, // 15 }; STDROMPICKEXT(kof2000, kof2000, neogeo); STD_ROM_FN(kof2000); static void kof2000SMADecrypt() { for (int i = 0; i < 0x800000 / 2; i++) { ((unsigned short*)Neo68KROM02)[i] = BITSWAP16(((unsigned short*)Neo68KROM02)[i], 12, 8, 11, 3, 15, 14, 7, 0, 10, 13, 6, 5, 9, 2, 1, 4); } for (int i = 0; i < 0x0C0000 / 2; i++) { ((unsigned short*)Neo68KROM01)[i] = ((unsigned short*)Neo68KROM01)[0x73A000 / 2 + BITSWAP24(i, 23, 22, 21, 20, 19, 18, 8, 4, 15, 13, 3, 14, 16, 2, 6, 17, 7, 12, 10, 0, 5, 11, 1, 9)]; } for (int i = 0; i < 0x63A000 / 2; i += 0x0800 / 2) { unsigned short nBuffer[0x0800 / 2]; memcpy(nBuffer, &((unsigned short*)Neo68KROM02)[i], 0x0800); for (int j = 0; j < 0x0800 / 2; j++) { ((unsigned short*)Neo68KROM02)[i + j] = nBuffer[BITSWAP24(j, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 4, 1, 3, 8, 6, 2, 7, 0, 9, 5)]; } } } void __fastcall kof2000WriteWordBankswitch(unsigned int sekAddress, unsigned short wordValue) { if (sekAddress == 0x2FFFEC) { static unsigned int bankoffset[64] = { 0x000000, 0x100000, 0x200000, 0x300000, // 00 0x3f7800, 0x4f7800, 0x3ff800, 0x4ff800, // 04 0x407800, 0x507800, 0x40f800, 0x50f800, // 08 0x416800, 0x516800, 0x41d800, 0x51d800, // 12 0x424000, 0x524000, 0x523800, 0x623800, // 16 0x526000, 0x626000, 0x528000, 0x628000, // 20 0x52a000, 0x62a000, 0x52b800, 0x62b800, // 24 0x52d000, 0x62d000, 0x52e800, 0x62e800, // 28 0x618000, 0x619000, 0x61a000, 0x61a800, // 32 }; // Unscramble bank number int nBank = (((wordValue >> 15) & 1) << 0) + (((wordValue >> 14) & 1) << 1) + (((wordValue >> 7) & 1) << 2) + (((wordValue >> 3) & 1) << 3) + (((wordValue >> 10) & 1) << 4) + (((wordValue >> 5) & 1) << 5); if (bankoffset[nBank] != nNeo68KROMBank) { nNeo68KROMBank = bankoffset[nBank]; SekMapMemory(Neo68KROM02 + nNeo68KROMBank, 0x200000, 0x2FE3FF, SM_ROM); SekMapMemory(Neo68KROM02 + nNeo68KROMBank + 0x0FE800, 0x2FE800, 0x2FFBFF, SM_ROM); } } } static int kof2000Init() { nNeoTextROMSize = 0x080000; nNeoProtectionXor = 0x00; nNeoSMARNGAddress[0] = 0x2FFFD8; nNeoSMARNGAddress[1] = 0x2FFFDA; pNeoSMABankswitch = kof2000WriteWordBankswitch; pNeoInitCallback = kof2000SMADecrypt; return NeoInit(); } struct BurnDriver BurnDrvkof2000 = { {"kof2000", "The King of Fighters 2000", NULL, "SNK", "Neo Geo", "2000", NULL, "neogeo"}, BDF_GAME_WORKING, 2, HARDWARE_SNK_NEOGEO | HARDWARE_SNK_ENCRYPTED_B | HARDWARE_SNK_ALTERNATE_TEXT | HARDWARE_SNK_SRAM | HARDWARE_SNK_SMA_PROTECTION, NULL, kof2000RomInfo, kof2000RomName, neogeoInputInfo, neogeoDIPInfo, kof2000Init, NeoExit, NeoFrame, NeoRender, NeoScan, &NeoRecalcPalette, nNeoScreenWidth, 224, 4, 3 }; Edited February 6, 2004 by N3oGhost Link to comment Share on other sites More sharing options...
Xeon Posted February 6, 2004 Share Posted February 6, 2004 (edited) somone at ROMShare Forums posted a preliminary driver for FBA, and you can safely assume that it didnt work. but its a start heres the posted driver // King of Fighters 2003 static struct BurnRomInfo kof2003RomDesc[] = { {"271-p1.bin", 0x400000, 0x92ed6ee3, 0x10}, // 0 68K code {"271-p2.bin", 0x400000, 0x5d3d8bb3, 0x10}, // 0 68K code {"271-s1.bin", 0x020000, 0xc47f8ac3, 1}, // 1 Text layer tiles {"271-c1d.bin", 0x800000, 0xe42fc226, 1}, // 2 Sprite data {"271-c2d.bin", 0x800000, 0x1b5e3b58, 1}, // 3 {"271-c3d.bin", 0x800000, 0xd334fdd9, 1}, // 4 {"271-c4d.bin", 0x800000, 0xd457699, 1}, // 5 {"271-c5d.bin", 0x800000, 0x8a91aae4, 1}, // 6 {"271-c6d.bin", 0x800000, 0x9f8674b8, 1}, // 7 {"271-c7d.bin", 0x800000, 0x374ea523, 1}, // 8 {"271-c8d.bin", 0x800000, 0x75211f4d, 1}, // 9 {"271-m1d.bin", 0x080000, 0xe86af8f, 0x10}, // 10 Z80 code {"271-v1d.bin", 0x400000, 0xd2b8aa5e, 2}, // 11 Sound data {"271-v2d.bin", 0x400000, 0x71956ee2, 2}, // 12 {"271-v3d.bin", 0x400000, 0xddbbb199, 2}, // 13 {"271-v4d.bin", 0x400000, 0x1b90c4f, 2}, // 14 }; STDROMPICKEXT(kof2003, kof2003, neogeo); STD_ROM_FN(kof2003); static unsigned short kof2003_tbl[0x1000]; void __fastcall kof2003WriteWordBankswitch(unsigned int sekAddress, unsigned short wordValue) { if (sekAddress == 0x2fe000) { //kof2003_tbl[sekAddress]=(kof2003_tbl[sekAddress]&mem_mask)|((~mem_mask)&wordValue); if(sekAddress>0xff9) return; nNeo68KROMBank = ((kof2003_tbl[0xff8]>>8)|(kof2003_tbl[0xff9]<<8))+0x100000; SekMapMemory(Neo68KROM02 + nNeo68KROMBank, 0x??????, 0x??????, SM_ROM); } } static void kof2003Patch() { *((unsigned short*)(Neo68KROM01 + 0x1ff0)) = 0xa0; *((unsigned short*)(Neo68KROM01 + 0x1ff1)) = 0xfe; *((unsigned short*)(Neo68KROM01 + 0x1ff3)) = 0x7f; *((unsigned short*)(Neo68KROM01 + 0x58196)) = kof2003_tbl[0xff9]&0xff; } static int kof2003Init() { //nNeoTextROMSize = 0x080000; pNeoSMABankswitch=kof2003WriteWordBankswitch; pNeoInitCallback = kof2003Patch; return NeoInit(); } struct BurnDriver BurnDrvkof2003 = { {"kof2003", "The King of Fighters 2003", NULL, "Playmore", "Neo Geo", "2003", NULL, "neogeo"}, BDF_GAME_WORKING, 2, HARDWARE_SNK_NEOGEO | HARDWARE_SNK_SWAPC, NULL, kof2003RomInfo, kof2003RomName, neogeoInputInfo, neogeoDIPInfo, NeoInit, NeoExit, NeoFrame, NeoRender, NeoScan, &NeoRecalcPalette, nNeoScreenWidth, 224, 4, 3 }; i tried to make some fixes here and there myself but everything has just gone to worse. Edited February 6, 2004 by Xeon Link to comment Share on other sites More sharing options...
James Posted February 6, 2004 Author Share Posted February 6, 2004 somone at ROMShare Forums posted a preliminary driver for FBA, and you can safely assume that it didnt work. but its a start heres the posted driver // King of Fighters 2003 static struct BurnRomInfo kof2003RomDesc[] = { {"271-p1.bin", 0x400000, 0x92ed6ee3, 0x10}, // 0 68K code {"271-p2.bin", 0x400000, 0x5d3d8bb3, 0x10}, // 0 68K code {"271-s1.bin", 0x020000, 0xc47f8ac3, 1}, // 1 Text layer tiles {"271-c1d.bin", 0x800000, 0xe42fc226, 1}, // 2 Sprite data {"271-c2d.bin", 0x800000, 0x1b5e3b58, 1}, // 3 {"271-c3d.bin", 0x800000, 0xd334fdd9, 1}, // 4 {"271-c4d.bin", 0x800000, 0xd457699, 1}, // 5 {"271-c5d.bin", 0x800000, 0x8a91aae4, 1}, // 6 {"271-c6d.bin", 0x800000, 0x9f8674b8, 1}, // 7 {"271-c7d.bin", 0x800000, 0x374ea523, 1}, // 8 {"271-c8d.bin", 0x800000, 0x75211f4d, 1}, // 9 {"271-m1d.bin", 0x080000, 0xe86af8f, 0x10}, // 10 Z80 code {"271-v1d.bin", 0x400000, 0xd2b8aa5e, 2}, // 11 Sound data {"271-v2d.bin", 0x400000, 0x71956ee2, 2}, // 12 {"271-v3d.bin", 0x400000, 0xddbbb199, 2}, // 13 {"271-v4d.bin", 0x400000, 0x1b90c4f, 2}, // 14 }; STDROMPICKEXT(kof2003, kof2003, neogeo); STD_ROM_FN(kof2003); static unsigned short kof2003_tbl[0x1000]; void __fastcall kof2003WriteWordBankswitch(unsigned int sekAddress, unsigned short wordValue) { if (sekAddress == 0x2fe000) { //kof2003_tbl[sekAddress]=(kof2003_tbl[sekAddress]&mem_mask)|((~mem_mask)&wordValue); if(sekAddress>0xff9) return; nNeo68KROMBank = ((kof2003_tbl[0xff8]>>8)|(kof2003_tbl[0xff9]<<8))+0x100000; SekMapMemory(Neo68KROM02 + nNeo68KROMBank, 0x??????, 0x??????, SM_ROM); } } static void kof2003Patch() { *((unsigned short*)(Neo68KROM01 + 0x1ff0)) = 0xa0; *((unsigned short*)(Neo68KROM01 + 0x1ff1)) = 0xfe; *((unsigned short*)(Neo68KROM01 + 0x1ff3)) = 0x7f; *((unsigned short*)(Neo68KROM01 + 0x58196)) = kof2003_tbl[0xff9]&0xff; } static int kof2003Init() { //nNeoTextROMSize = 0x080000; pNeoSMABankswitch=kof2003WriteWordBankswitch; pNeoInitCallback = kof2003Patch; return NeoInit(); } struct BurnDriver BurnDrvkof2003 = { {"kof2003", "The King of Fighters 2003", NULL, "Playmore", "Neo Geo", "2003", NULL, "neogeo"}, BDF_GAME_WORKING, 2, HARDWARE_SNK_NEOGEO | HARDWARE_SNK_SWAPC, NULL, kof2003RomInfo, kof2003RomName, neogeoInputInfo, neogeoDIPInfo, NeoInit, NeoExit, NeoFrame, NeoRender, NeoScan, &NeoRecalcPalette, nNeoScreenWidth, 224, 4, 3 }; i tried to make some fixes here and there myself but everything has just gone to worse.May i ask what happens when you try to load the game ? Link to comment Share on other sites More sharing options...
Xeon Posted February 6, 2004 Share Posted February 6, 2004 nothing, the same grid of death screen as usual. like i said, the driver is preliminary, or maybe i should say a rough translation from the MAME driver. Link to comment Share on other sites More sharing options...
James Posted February 6, 2004 Author Share Posted February 6, 2004 nothing, the same grid of death screen as usual. like i said, the driver is preliminary, or maybe i should say a rough translation from the MAME driver.Ok thank you Link to comment Share on other sites More sharing options...
Iori Yagami Posted February 6, 2004 Share Posted February 6, 2004 I hear these guys have news:http://fightersgym.killeens.com/forum/index.php? s=c0842fae5ea058ffcdd2d58da24fbaf3&showtopic=652&st=140entry21478 Link to comment Share on other sites More sharing options...
alphabetman Posted February 6, 2004 Share Posted February 6, 2004 i don't see any news on that page that we don't have here Link to comment Share on other sites More sharing options...
N3oGhost Posted February 6, 2004 Share Posted February 6, 2004 Just a pissed mod about rom beggars or somethin. Still new source is new source, im a member now Link to comment Share on other sites More sharing options...
Spiffy Posted February 7, 2004 Share Posted February 7, 2004 (edited) kof2k3 updates, try this link m8s... Click Me Edited February 7, 2004 by Spiffy Link to comment Share on other sites More sharing options...
bled2deth17 Posted February 7, 2004 Share Posted February 7, 2004 (edited) kof2k3 updates, try this link m8s... Click Mecoolness a quick heads up on that DAT though, capitalize the word "Neo" or it won't work. musta been a slight typo. this is a very nice setup right here, but at the moment it's nothing I can do anything with. the testing of the individual roms and stuff is an art I'm illiterate in. we know there's capable hands around though, hurrah for progress! Edited February 7, 2004 by bled2deth17 Link to comment Share on other sites More sharing options...
Recommended Posts