Hi,
little question for Metal Slug X, i'd like to understand the initialisation of this game, in order to patch the P1 (and make it "universal"), like an AES patch (but here it seems to be an MVS patch
).
I really like fully decrypted sets (like some others really like fully original encrypted sets
), and I want to have a fully decrypted FBA build (even if some games still need special ini)
#if 0
for (int i = 0; i < 0x100000 - 8; i += 2) {
if (*((unsigned short*)(Neo68KROM + i + 0)) == 0x0243 && *((unsigned short*)(Neo68KROM + i + 2)) == 0x0001 && *((unsigned short*)(Neo68KROM + i + 4)) == 0x6600) {
*((unsigned short*)(Neo68KROM + i + 4)) = 0x4E71;
*((unsigned short*)(Neo68KROM + i + 6)) = 0x4E71;
bprintf(PRINT_NORMAL, _T(" - prot patch at 0x%06X\n"), i);
}
}
*((unsigned short*)(Neo68KROM + 0x3BDC)) = 0x4E71;
*((unsigned short*)(Neo68KROM + 0x3BDE)) = 0x4E71;
*((unsigned short*)(Neo68KROM + 0x3BE0)) = 0x4E71;
*((unsigned short*)(Neo68KROM + 0x3C0C)) = 0x4E71;
*((unsigned short*)(Neo68KROM + 0x3C0E)) = 0x4E71;
*((unsigned short*)(Neo68KROM + 0x3C10)) = 0x4E71;
*((unsigned short*)(Neo68KROM + 0x3C36)) = 0x4E71;
*((unsigned short*)(Neo68KROM + 0x3C38)) = 0x4E71;
#endif
}
I open 250-p1.bin CRC 81f1f60b, then go to offset 0x3BDC and write 714E, then 0x3BDE and write 714E then 0x3BE0 and write 714E etc.......
The game boots fine (Special initilisation removed, no warning screen) then it freezes with both the title screen and the warning screen
I do not understand the first part of the patching process (I do not have any programation skill
), and it's 99,9% sure that this is the missing part for my "universal" P1.
Please help me