// Crouching Tiger Hidden Dragon 2003 Super Plus alternate (The King of Fighters 2001 bootleg)static struct BurnRomInfo ct2k3saRomDesc[] = { { "5003-p1sa.bin", 0x100000, 0x013a509d, 1 | BRF_ESS | BRF_PRG }, // 0 68K code { "5003-p2.bin", 0x400000, 0xADC1C22B, 1 | BRF_ESS | BRF_PRG }, // 1 { "5003-s1sa.bin", 0x040000, 0x4e1f7eae, 2 | BRF_GRA }, // 2 Text layer tiles { "5003-c1.bin", 0x800000, 0x68F54B67, 3 | BRF_GRA }, // 3 Sprite data { "5003-c2.bin", 0x800000, 0x2F8849D5, 3 | BRF_GRA }, // 4 { "5003-c3.bin", 0x800000, 0xAC4AFF71, 3 | BRF_GRA }, // 5 { "5003-c4.bin", 0x800000, 0xAFEF5D66, 3 | BRF_GRA }, // 6 { "5003-c5.bin", 0x800000, 0xC7C1AE50, 3 | BRF_GRA }, // 7 { "5003-c6.bin", 0x800000, 0x613197F9, 3 | BRF_GRA }, // 8 { "5003-c7.bin", 0x800000, 0x64DDFE0F, 3 | BRF_GRA }, // 9 { "5003-c8.bin", 0x800000, 0x917A1439, 3 | BRF_GRA }, // 10 { "5003-m1.bin", 0x020000, 0x1A8C274B, 4 | BRF_ESS | BRF_PRG }, // 11 Z80 code { "262-v1.bin", 0x400000, 0x83D49ECF, 5 | BRF_SND }, // 12 Sound data { "262-v2.bin", 0x400000, 0x003F1843, 5 | BRF_SND }, // 13 { "262-v3.bin", 0x400000, 0x2AE38DBE, 5 | BRF_SND }, // 14 { "262-v4.bin", 0x400000, 0x26EC4DD9, 5 | BRF_SND }, // 15};STDROMPICKEXT(ct2k3sa, ct2k3sa, neogeo);STD_ROM_FN(ct2k3sa);static void ct2k3saCallback(){ // Descambling { extern unsigned char* NeoZ80ROM; unsigned char* tmp = (unsigned char*)malloc(0x020000); memcpy(tmp + 0 * 0x8000, NeoZ80ROM + 0 * 0x8000, 0x8000); memcpy(tmp + 1 * 0x8000, NeoZ80ROM + 2 * 0x8000, 0x8000); memcpy(tmp + 2 * 0x8000, NeoZ80ROM + 1 * 0x8000, 0x8000); memcpy(tmp + 3 * 0x8000, NeoZ80ROM + 3 * 0x8000, 0x8000); memcpy(NeoZ80ROM, tmp, 0x20000); free(tmp); cthd2003_c(); } // Patches by Razoola { // fix garbage on s1 layer over everything ((unsigned short*)Neo68KROM)[0xF415A / 2] = 0x4EF9; ((unsigned short*)Neo68KROM)[0xF415C / 2] = 0x000F; ((unsigned short*)Neo68KROM)[0xF415E / 2] = 0x4CF2; // Fix corruption in attract mode before title screen for (int i = 0x1AE290 / 2; i < 0x1AE8D0/2; i++) { ((unsigned short*)Neo68KROM)[i] = 0x0000; } // Fix for title page for (int i = 0x1F8EF0 / 2; i < 0x1FA1F0 / 2; i = i + 2) { ((unsigned short*)Neo68KROM)[i + 0] -= 0x7000; ((unsigned short*)Neo68KROM)[i + 1] -= 0x0010; } // Fix for green dots on title page for (int i = 0xAC500 / 2; i < 0xAC520 / 2; i++) { ((unsigned short*)Neo68KROM)[i] = 0xFFFF; } // Fix for blanks as screen change level end clear ((unsigned short*)Neo68KROM)[0x991D0 / 2] = 0xDD03; ((unsigned short*)Neo68KROM)[0x99306 / 2] = 0xDD03; ((unsigned short*)Neo68KROM)[0x99354 / 2] = 0xDD03; ((unsigned short*)Neo68KROM)[0x9943E / 2] = 0xDD03; }}static int ct2k3saInit(){ pNeoInitCallback = ct2k3saCallback; return NeoInit();}struct BurnDriver BurnDrvct2k3sa = { "ct2k3sa", "cthd2003", "neogeo", "2003", "Crouching Tiger Hidden Dragon 2003 Super Plus alternate (bootleg)\0", "Hack of \"The King of Fighters 2001\"", "Phenixsoft", "Neo Geo", L"\u81E5\u864E\u85CF\u9F8D Crouching Tiger Hidden Dragon 2003 Super Plus alternate (bootleg)\0", NULL, NULL, NULL, BDF_GAME_WORKING | BDF_BOOTLEG | BDF_CLONE, 2, HARDWARE_SNK_NEOGEO, NULL, ct2k3saRomInfo, ct2k3saRomName, neogeoInputInfo, neogeoDIPInfo, ct2k3saInit, NeoExit, NeoFrame, NeoRender, NeoScan, &NeoRecalcPalette, 304, 224, 4, 3};
{ "5003-s1sa.bin", 0x020000, 0x4e1f7eae, 2 | BRF_GRA }, // 2 Text layer tiles