Zelda64Recomp/patches/room_patches.c

30 lines
1.2 KiB
C

#include "patches.h"
void room_load_hook(PlayState* play, Room* room) {
if (play->sceneId == SCENE_00KEIKOKU && room->num == 0) {
// Patch the branch commands that cause Clock Town geometry to disappear when forcing gbi branches.
extern Gfx Z2_00KEIKOKU_room_00DL_00D490[];
extern Gfx Z2_00KEIKOKU_room_00DL_00CD70[];
extern Gfx Z2_00KEIKOKU_room_00DL_00D9C8[];
Gfx* command = (Gfx*)SEGMENTED_TO_K0(Z2_00KEIKOKU_room_00DL_00D490 + 1);
if ((command[0].words.w0 >> 24) == G_RDPHALF_1 && (command[1].words.w0 >> 24) == G_BRANCH_Z) {
gSPNoOp(command + 0);
gSPNoOp(command + 1);
}
command = (Gfx*)SEGMENTED_TO_K0(Z2_00KEIKOKU_room_00DL_00CD70 + 1);
if ((command[0].words.w0 >> 24) == G_RDPHALF_1 && (command[1].words.w0 >> 24) == G_BRANCH_Z) {
gSPNoOp(command + 0);
gSPNoOp(command + 1);
}
command = (Gfx*)SEGMENTED_TO_K0(Z2_00KEIKOKU_room_00DL_00D9C8 + 1);
if ((command[0].words.w0 >> 24) == G_RDPHALF_1 && (command[1].words.w0 >> 24) == G_BRANCH_Z) {
gSPNoOp(command + 0);
gSPNoOp(command + 1);
}
}
}