DK64: Fix bone displacement issues
A temporary solution until N64 emulation accuracy improves, based on my research at https://docs.google.com/document/d/15XNghhrc-thXJpbKzWWuHXl-NXdzcaDLEf7poFVruh8
This commit is contained in:
parent
a7bfe1e63f
commit
315e5d64b1
|
@ -204,6 +204,32 @@ void cheat_apply_cheats(int entry)
|
||||||
int skip;
|
int skip;
|
||||||
int execute_next;
|
int execute_next;
|
||||||
|
|
||||||
|
// If game is DK64, apply bone displacement fix
|
||||||
|
if (strncmp((char *)ROM_HEADER.Name, "DONKEY KONG 64", 14) == 0 && entry == ENTRY_VI) {
|
||||||
|
if (sl(ROM_HEADER.CRC1) == 0xEC58EABF && sl(ROM_HEADER.CRC2) == 0xAD7C7169) {
|
||||||
|
// DK64 USA
|
||||||
|
execute_cheat(0x8161963C, 0x0000, NULL);
|
||||||
|
execute_cheat(0x8161963E, 0x0000, NULL);
|
||||||
|
} else if (sl(ROM_HEADER.CRC1) == 0x11936D8C && sl(ROM_HEADER.CRC2) == 0x6F2C4B43) {
|
||||||
|
// DK64 PAL
|
||||||
|
execute_cheat(0x816128EC, 0x0000, NULL);
|
||||||
|
execute_cheat(0x816128EE, 0x0000, NULL);
|
||||||
|
} else if (sl(ROM_HEADER.CRC1) == 0x053C89A7 && sl(ROM_HEADER.CRC2) == 0xA5064302) {
|
||||||
|
// DK64 Japan
|
||||||
|
execute_cheat(0x816170AC, 0x0000, NULL);
|
||||||
|
execute_cheat(0x816170AE, 0x0000, NULL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// If game is DK64 Kiosk, apply bone displacement fix
|
||||||
|
if (strncmp((char *)ROM_HEADER.Name, "D K DISPLAY", 11) == 0 && entry == ENTRY_VI) {
|
||||||
|
if (sl(ROM_HEADER.CRC1) == 0x0DD4ABAB && sl(ROM_HEADER.CRC2) == 0xB5A2A91E) {
|
||||||
|
// DK64 Kiosk
|
||||||
|
execute_cheat(0x815AFB1C, 0x0000, NULL);
|
||||||
|
execute_cheat(0x815AFB1E, 0x0000, NULL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// If game is Zelda OOT, apply subscreen delay fix
|
// If game is Zelda OOT, apply subscreen delay fix
|
||||||
if (strncmp((char *)ROM_HEADER.Name, "THE LEGEND OF ZELDA", 19) == 0 && entry == ENTRY_VI) {
|
if (strncmp((char *)ROM_HEADER.Name, "THE LEGEND OF ZELDA", 19) == 0 && entry == ENTRY_VI) {
|
||||||
if (sl(ROM_HEADER.CRC1) == 0xEC7011B7 && sl(ROM_HEADER.CRC2) == 0x7616D72B) {
|
if (sl(ROM_HEADER.CRC1) == 0xEC7011B7 && sl(ROM_HEADER.CRC2) == 0x7616D72B) {
|
||||||
|
|
Binary file not shown.
Loading…
Reference in New Issue