summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorpetrie911 <69443847+petrie911@users.noreply.github.com>2022-10-04 15:46:32 -0500
committerGitHub <noreply@github.com>2022-10-04 21:46:32 +0100
commit2006a65ba62e7e848823cd1de009c9e16d6421eb (patch)
tree90748c833b1620d1be9b9cbf1c19b18037626acf /src
parent8cd48db087ed7527d376195736eb9d4714bdf862 (diff)
z_overlay and z_fbdemo_dlftbls (Transition overlay handling), clean up a lot of u32s used to store pointers (#1073)
* overlay matches * prototypes * fbdemo too * virtual to physical * names, cleanup, etc * bss reordering * uintptr stuff * fixed now? * one fix * headers and such * fixes'n'stuff * XXX action * docs of a sort * useless error codes * n * format * header? I barely know her! Co-authored-by: petrie911 <petrie911@users.noreply.github.com>
Diffstat (limited to 'src')
-rw-r--r--src/boot_O2_g3/yaz0.c4
-rw-r--r--src/boot_O2_g3/z_std_dma.c6
-rw-r--r--src/code/z_actor.c2
-rw-r--r--src/code/z_effect_soft_sprite_old_init.c2
-rw-r--r--src/code/z_en_hy_code.c6
-rw-r--r--src/code/z_fbdemo_circle.c2
-rw-r--r--src/code/z_fbdemo_dlftbls.c53
-rw-r--r--src/code/z_lib.c20
-rw-r--r--src/code/z_overlay.c101
-rw-r--r--src/code/z_player_lib.c4
-rw-r--r--src/code/z_room.c4
-rw-r--r--src/code/z_scene.c10
-rw-r--r--src/libultra/io/epirawdma.c2
-rw-r--r--src/libultra/io/sirawread.c2
-rw-r--r--src/libultra/io/sirawwrite.c2
-rw-r--r--src/overlays/actors/ovl_Boss_03/z_boss_03.c3
-rw-r--r--src/overlays/actors/ovl_Dm_Stk/z_dm_stk.c8
-rw-r--r--src/overlays/actors/ovl_En_Bba_01/z_en_bba_01.c6
-rw-r--r--src/overlays/actors/ovl_En_Cne_01/z_en_cne_01.c6
-rw-r--r--src/overlays/actors/ovl_En_Dnk/z_en_dnk.c2
-rw-r--r--src/overlays/actors/ovl_En_Nwc/z_en_nwc.c4
-rw-r--r--src/overlays/actors/ovl_En_S_Goro/z_en_s_goro.c6
-rw-r--r--src/overlays/actors/ovl_En_Sob1/z_en_sob1.c6
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Extra/z_eff_ss_extra.c4
-rw-r--r--src/overlays/fbdemos/ovl_fbdemo_triforce/z_fbdemo_triforce.c2
-rw-r--r--src/overlays/fbdemos/ovl_fbdemo_triforce/z_fbdemo_triforce.h2
-rw-r--r--src/overlays/fbdemos/ovl_fbdemo_wipe1/z_fbdemo_wipe1.c2
-rw-r--r--src/overlays/fbdemos/ovl_fbdemo_wipe1/z_fbdemo_wipe1.h2
-rw-r--r--src/overlays/fbdemos/ovl_fbdemo_wipe3/z_fbdemo_wipe3.c2
-rw-r--r--src/overlays/fbdemos/ovl_fbdemo_wipe3/z_fbdemo_wipe3.h2
-rw-r--r--src/overlays/fbdemos/ovl_fbdemo_wipe4/z_fbdemo_wipe4.c2
-rw-r--r--src/overlays/fbdemos/ovl_fbdemo_wipe4/z_fbdemo_wipe4.h2
-rw-r--r--src/overlays/fbdemos/ovl_fbdemo_wipe5/z_fbdemo_wipe5.c2
-rw-r--r--src/overlays/fbdemos/ovl_fbdemo_wipe5/z_fbdemo_wipe5.h2
34 files changed, 211 insertions, 74 deletions
diff --git a/src/boot_O2_g3/yaz0.c b/src/boot_O2_g3/yaz0.c
index 5f8e5a0ed..63260e885 100644
--- a/src/boot_O2_g3/yaz0.c
+++ b/src/boot_O2_g3/yaz0.c
@@ -3,7 +3,7 @@
u8 sYaz0DataBuffer[0x400];
u8* sYaz0CurDataEnd;
-u32 sYaz0CurRomStart;
+uintptr_t sYaz0CurRomStart;
u32 sYaz0CurSize;
u8* sYaz0MaxPtr;
u8* D_8009BE20;
@@ -123,7 +123,7 @@ s32 Yaz0_DecompressImpl(u8* src, u8* dst) {
return 0;
}
-void Yaz0_Decompress(u32 romStart, void* dst, size_t size) {
+void Yaz0_Decompress(uintptr_t romStart, void* dst, size_t size) {
s32 status;
u32 pad;
char sp80[0x50];
diff --git a/src/boot_O2_g3/z_std_dma.c b/src/boot_O2_g3/z_std_dma.c
index 10d84dcb0..8e9d83872 100644
--- a/src/boot_O2_g3/z_std_dma.c
+++ b/src/boot_O2_g3/z_std_dma.c
@@ -60,7 +60,7 @@ s32 DmaMgr_DmaHandler(OSPiHandle* pihandle, OSIoMesg* mb, s32 direction) {
return osEPiStartDma(pihandle, mb, direction);
}
-DmaEntry* DmaMgr_FindDmaEntry(u32 vrom) {
+DmaEntry* DmaMgr_FindDmaEntry(uintptr_t vrom) {
DmaEntry* curr;
for (curr = dmadata; curr->vromEnd != 0; curr++) {
@@ -77,7 +77,7 @@ DmaEntry* DmaMgr_FindDmaEntry(u32 vrom) {
return NULL;
}
-u32 DmaMgr_TranslateVromToRom(u32 vrom) {
+u32 DmaMgr_TranslateVromToRom(uintptr_t vrom) {
DmaEntry* entry = DmaMgr_FindDmaEntry(vrom);
if (entry != NULL) {
@@ -95,7 +95,7 @@ u32 DmaMgr_TranslateVromToRom(u32 vrom) {
return -1;
}
-s32 DmaMgr_FindDmaIndex(u32 vrom) {
+s32 DmaMgr_FindDmaIndex(uintptr_t vrom) {
DmaEntry* entry = DmaMgr_FindDmaEntry(vrom);
if (entry != NULL) {
diff --git a/src/code/z_actor.c b/src/code/z_actor.c
index 88ec6c07b..84616f083 100644
--- a/src/code/z_actor.c
+++ b/src/code/z_actor.c
@@ -1060,7 +1060,7 @@ void Actor_SetScale(Actor* actor, f32 scale) {
}
void Actor_SetObjectDependency(PlayState* play, Actor* actor) {
- gSegments[0x06] = PHYSICAL_TO_VIRTUAL(play->objectCtx.status[actor->objBankIndex].segment);
+ gSegments[0x06] = VIRTUAL_TO_PHYSICAL(play->objectCtx.status[actor->objBankIndex].segment);
}
void Actor_Init(Actor* actor, PlayState* play) {
diff --git a/src/code/z_effect_soft_sprite_old_init.c b/src/code/z_effect_soft_sprite_old_init.c
index bbdd528a4..4f24651d1 100644
--- a/src/code/z_effect_soft_sprite_old_init.c
+++ b/src/code/z_effect_soft_sprite_old_init.c
@@ -50,7 +50,7 @@ void EffectSs_DrawGEffect(PlayState* play, EffectSs* this, TexturePtr texture) {
SkinMatrix_SetScale(&mfScale, scale, scale, scale);
SkinMatrix_MtxFMtxFMult(&mfTrans, &play->billboardMtxF, &mfTrans11DA0);
SkinMatrix_MtxFMtxFMult(&mfTrans11DA0, &mfScale, &mfResult);
- gSegments[0x06] = PHYSICAL_TO_VIRTUAL(object);
+ gSegments[0x06] = VIRTUAL_TO_PHYSICAL(object);
gSPSegment(POLY_XLU_DISP++, 0x06, object);
mtx = SkinMatrix_MtxFToNewMtx(gfxCtx, &mfResult);
diff --git a/src/code/z_en_hy_code.c b/src/code/z_en_hy_code.c
index 5e32e5c95..19a52c1b4 100644
--- a/src/code/z_en_hy_code.c
+++ b/src/code/z_en_hy_code.c
@@ -84,7 +84,7 @@ EnDoor* EnHy_FindNearestDoor(Actor* actor, PlayState* play) {
}
void EnHy_ChangeObjectAndAnim(EnHy* enHy, PlayState* play, s16 animIndex) {
- gSegments[6] = PHYSICAL_TO_VIRTUAL(play->objectCtx.status[enHy->animObjIndex].segment);
+ gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.status[enHy->animObjIndex].segment);
EnHy_ChangeAnim(&enHy->skelAnime, animIndex);
}
@@ -92,7 +92,7 @@ s32 EnHy_UpdateSkelAnime(EnHy* enHy, PlayState* play) {
s32 isUpdated = false;
if (enHy->actor.draw != NULL) {
- gSegments[6] = PHYSICAL_TO_VIRTUAL(play->objectCtx.status[enHy->animObjIndex].segment);
+ gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.status[enHy->animObjIndex].segment);
SkelAnime_Update(&enHy->skelAnime);
isUpdated = true;
}
@@ -119,7 +119,7 @@ s32 EnHy_Init(EnHy* enHy, PlayState* play, FlexSkeletonHeader* skeletonHeaderSeg
enHy->actor.objBankIndex = enHy->skelLowerObjIndex;
isInitialized = true;
ActorShape_Init(&enHy->actor.shape, 0.0f, NULL, 0.0f);
- gSegments[6] = PHYSICAL_TO_VIRTUAL(play->objectCtx.status[enHy->actor.objBankIndex].segment);
+ gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.status[enHy->actor.objBankIndex].segment);
SkelAnime_InitFlex(play, &enHy->skelAnime, skeletonHeaderSeg, NULL, enHy->jointTable, enHy->morphTable,
ENHY_LIMB_MAX);
EnHy_ChangeObjectAndAnim(enHy, play, animIndex);
diff --git a/src/code/z_fbdemo_circle.c b/src/code/z_fbdemo_circle.c
index 9cbc308be..2a8144ea4 100644
--- a/src/code/z_fbdemo_circle.c
+++ b/src/code/z_fbdemo_circle.c
@@ -13,7 +13,7 @@ Gfx D_801D0D00[] = {
};
//! @bug: TransitionCircle_Update should take an additional argument `s32 updateRate`
-const TransitionInit TransitionCircle_InitVars = {
+TransitionInit TransitionCircle_InitVars = {
TransitionCircle_Init, TransitionCircle_Destroy, (void*)TransitionCircle_Update, TransitionCircle_Draw,
TransitionCircle_Start, TransitionCircle_SetType, TransitionCircle_SetColor, NULL,
TransitionCircle_IsDone,
diff --git a/src/code/z_fbdemo_dlftbls.c b/src/code/z_fbdemo_dlftbls.c
index 7ebce9e69..9d3685a45 100644
--- a/src/code/z_fbdemo_dlftbls.c
+++ b/src/code/z_fbdemo_dlftbls.c
@@ -1,5 +1,54 @@
#include "global.h"
+#include "initvars.h"
+#include "overlays/fbdemos/ovl_fbdemo_triforce/z_fbdemo_triforce.h"
+#include "overlays/fbdemos/ovl_fbdemo_wipe1/z_fbdemo_wipe1.h"
+#include "overlays/fbdemos/ovl_fbdemo_wipe3/z_fbdemo_wipe3.h"
+#include "overlays/fbdemos/ovl_fbdemo_wipe4/z_fbdemo_wipe4.h"
+#include "overlays/fbdemos/ovl_fbdemo_wipe5/z_fbdemo_wipe5.h"
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_fbdemo_dlftbls/func_80163C90.s")
+#define TRANSITION_OVERLAY(name, filename) \
+ { \
+ { 0, 0 }, SEGMENT_START(ovl_##filename), SEGMENT_END(ovl_##filename), SEGMENT_ROM_START(ovl_##filename), \
+ SEGMENT_ROM_END(ovl_##filename), &name##_InitVars, sizeof(name) \
+ }
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_fbdemo_dlftbls/func_80163D80.s")
+#define TRANSITION_OVERLAY_INTERNAL(name) \
+ { { 0, 0 }, NULL, NULL, 0, 0, &name##_InitVars, sizeof(name) }
+
+#define TRANSITION_OVERLAY_UNSET \
+ { 0 }
+
+TransitionOverlay gTransitionOverlayTable[] = {
+ TRANSITION_OVERLAY_INTERNAL(TransitionFade), TRANSITION_OVERLAY(TransitionTriforce, fbdemo_triforce),
+ TRANSITION_OVERLAY(TransitionWipe1, fbdemo_wipe1), TRANSITION_OVERLAY(TransitionWipe3, fbdemo_wipe3),
+ TRANSITION_OVERLAY(TransitionWipe4, fbdemo_wipe4), TRANSITION_OVERLAY_INTERNAL(TransitionCircle),
+ TRANSITION_OVERLAY(TransitionWipe5, fbdemo_wipe5),
+};
+
+void Transition_Init(TransitionContext* transitionCtx) {
+ TransitionOverlay* overlayEntry;
+ ptrdiff_t relocOffset;
+ TransitionInit* initInfo[1];
+
+ overlayEntry = &gTransitionOverlayTable[transitionCtx->fbdemoType];
+ TransitionOverlay_Load(overlayEntry);
+
+ relocOffset = (uintptr_t)Lib_PhysicalToVirtual(overlayEntry->loadInfo.addr) - (uintptr_t)overlayEntry->vramStart;
+ initInfo[0] = NULL;
+ initInfo[0] = (overlayEntry->initInfo != NULL) ? (TransitionInit*)((uintptr_t)overlayEntry->initInfo + relocOffset)
+ : initInfo[0];
+
+ transitionCtx->init = initInfo[0]->init;
+ transitionCtx->destroy = initInfo[0]->destroy;
+ transitionCtx->start = initInfo[0]->start;
+ transitionCtx->isDone = initInfo[0]->isDone;
+ transitionCtx->draw = initInfo[0]->draw;
+ transitionCtx->update = initInfo[0]->update;
+ transitionCtx->setType = initInfo[0]->setType;
+ transitionCtx->setColor = initInfo[0]->setColor;
+ transitionCtx->setEnvColor = initInfo[0]->setEnvColor;
+}
+
+void Transition_Destroy(TransitionContext* transitionCtx) {
+ TransitionOverlay_Free(&gTransitionOverlayTable[transitionCtx->fbdemoType]);
+}
diff --git a/src/code/z_lib.c b/src/code/z_lib.c
index 03e6c395c..6466b337c 100644
--- a/src/code/z_lib.c
+++ b/src/code/z_lib.c
@@ -704,20 +704,30 @@ void* Lib_SegmentedToVirtual(void* ptr) {
void* Lib_SegmentedToVirtualNull(void* ptr) {
if (((uintptr_t)ptr >> 28) == 0) {
return ptr;
+ } else {
+ return SEGMENTED_TO_VIRTUAL(ptr);
}
-
- return SEGMENTED_TO_VIRTUAL(ptr);
}
-void* Lib_PhysicalToVirtual(void* ptr) {
+/*
+ * Converts a 32-bit virtual address (0x80XXXXXX) to a 24-bit physical address (0xXXXXXX). The NULL case accounts for
+ * the NULL virtual address being 0x00000000 and not 0x80000000. Used by transition overlays, which store their
+ * addresses in 24-bit fields.
+ */
+void* Lib_VirtualToPhysical(void* ptr) {
if (ptr == NULL) {
return NULL;
} else {
- return (void*)PHYSICAL_TO_VIRTUAL(ptr);
+ return (void*)VIRTUAL_TO_PHYSICAL(ptr);
}
}
-void* Lib_PhysicalToVirtualNull(void* ptr) {
+/*
+ * Converts a 24-bit physical address (0xXXXXXX) to a 32-bit virtual address (0x80XXXXXX). The NULL case accounts for
+ * the NULL virtual address being 0x00000000 and not 0x80000000. Used by transition overlays, which store their
+ * addresses in 24-bit fields.
+ */
+void* Lib_PhysicalToVirtual(void* ptr) {
if (ptr == NULL) {
return NULL;
} else {
diff --git a/src/code/z_overlay.c b/src/code/z_overlay.c
index a358cefe6..2c8c8d6d7 100644
--- a/src/code/z_overlay.c
+++ b/src/code/z_overlay.c
@@ -1,14 +1,103 @@
+/**
+ * @file z_overlay.c
+ *
+ * Functions for handling transition overlays in memory
+ *
+ * Status codes returned from TransitionOverlay_Load and TransitionOverlay_Free:
+ *
+ * -1 : failed allocation or null reference
+ * 0 : successfully loaded/freed overlay
+ * 1 : successfully added/removed instance
+ * 2 : overlay is loaded but has no instances (?) TODO: Figure out why this exists
+ * 3 : internal overlay, so always loaded
+ */
+
#include "global.h"
#include "z64load.h"
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_overlay/func_801651B0.s")
+void* TransitionOverlay_VramToRam(TransitionOverlay* overlayEntry, void* vramAddr) {
+ void* loadedRamAddr = Lib_PhysicalToVirtual(overlayEntry->loadInfo.addr);
+
+ if ((loadedRamAddr != NULL) && (vramAddr >= overlayEntry->vramStart) && (vramAddr < overlayEntry->vramEnd)) {
+ return ((uintptr_t)loadedRamAddr - (uintptr_t)overlayEntry->vramStart) + (uintptr_t)vramAddr;
+ }
+ return vramAddr;
+}
+
+void TransitionOverlay_VramToRamArray(TransitionOverlay* overlayEntry, void** vramAddrs, s32 count) {
+ s32 i;
+
+ for (i = 0; i < count; i++) {
+ vramAddrs[i] = TransitionOverlay_VramToRam(overlayEntry, vramAddrs[i]);
+ }
+}
+
+s32 TransitionOverlay_Load(TransitionOverlay* overlayEntry) {
+ s32 count;
+ void* loadedRamAddr;
+
+ if (overlayEntry->vromStart == 0) {
+ return 3;
+ }
+ if (Lib_PhysicalToVirtual(overlayEntry->loadInfo.addr) == NULL) {
+ loadedRamAddr = ZeldaArena_Malloc(VRAM_PTR_SIZE(overlayEntry));
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_overlay/func_80165224.s")
+ if (loadedRamAddr == NULL) {
+ return -1;
+ }
+ Load2_LoadOverlay(overlayEntry->vromStart, overlayEntry->vromEnd, overlayEntry->vramStart,
+ overlayEntry->vramEnd, loadedRamAddr);
+ overlayEntry->loadInfo.addr = Lib_VirtualToPhysical(loadedRamAddr);
+ overlayEntry->loadInfo.count = 1;
+ return 0;
+ } else {
+ count = overlayEntry->loadInfo.count;
+ if (count != 0) {
+ count++;
+ overlayEntry->loadInfo.count = count;
+ if (count == 0) {
+ return 2;
+ } else {
+ return 1;
+ }
+ }
+ return 2;
+ }
+}
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_overlay/func_80165288.s")
+s32 TransitionOverlay_Free(TransitionOverlay* overlayEntry) {
+ s32 count;
+ void* loadedRamAddr;
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_overlay/func_8016537C.s")
+ if (overlayEntry->vromStart == 0) {
+ return 3;
+ }
+ loadedRamAddr = Lib_PhysicalToVirtual(overlayEntry->loadInfo.addr);
+ if (loadedRamAddr != NULL) {
+ count = overlayEntry->loadInfo.count;
+ if (count != 0) {
+ count--;
+ overlayEntry->loadInfo.count = count;
+ if (count == 0) {
+ ZeldaArena_Free(loadedRamAddr);
+ overlayEntry->loadInfo.addr = Lib_VirtualToPhysical(NULL);
+ return 0;
+ }
+ return 1;
+ }
+ return 2;
+ }
+ return -1;
+}
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_overlay/func_80165438.s")
+void TransitionOverlay_ClearLoadInfo(TransitionOverlay* overlayEntry) {
+ overlayEntry->loadInfo.word = 0; // Equivalent to overlayEntry->loadInfo.count = 0, overlayEntry->loadInfo.addr = 0;
+}
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_overlay/func_80165444.s")
+void TransitionOverlay_SetSegment(TransitionOverlay* overlayEntry, void* vramStart, void* vramEnd, uintptr_t vromStart,
+ uintptr_t vromEnd) {
+ overlayEntry->vramStart = vramStart;
+ overlayEntry->vramEnd = vramEnd;
+ overlayEntry->vromStart = vromStart;
+ overlayEntry->vromEnd = vromEnd;
+}
diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c
index 0888be7c5..6f4198fc7 100644
--- a/src/code/z_player_lib.c
+++ b/src/code/z_player_lib.c
@@ -1107,7 +1107,7 @@ void Player_DrawGetItemImpl(PlayState* play, Player* player, Vec3f* refPos, s32
OPEN_DISPS(play->state.gfxCtx);
- gSegments[6] = PHYSICAL_TO_VIRTUAL(player->giObjectSegment);
+ gSegments[6] = VIRTUAL_TO_PHYSICAL(player->giObjectSegment);
gSPSegment(POLY_OPA_DISP++, 0x06, player->giObjectSegment);
gSPSegment(POLY_XLU_DISP++, 0x06, player->giObjectSegment);
@@ -1187,7 +1187,7 @@ void func_80127488(PlayState* play, Player* player, u8 alpha) {
}
void Player_DrawCouplesMask(PlayState* play, Player* player) {
- gSegments[0xA] = PHYSICAL_TO_VIRTUAL(player->maskObjectSegment);
+ gSegments[0xA] = VIRTUAL_TO_PHYSICAL(player->maskObjectSegment);
AnimatedMat_DrawOpa(play, Lib_SegmentedToVirtual(&object_mask_meoto_Matanimheader_001CD8));
}
diff --git a/src/code/z_room.c b/src/code/z_room.c
index e198e95ed..eb615c409 100644
--- a/src/code/z_room.c
+++ b/src/code/z_room.c
@@ -105,7 +105,7 @@ s32 Room_HandleLoadCallbacks(PlayState* play, RoomContext* roomCtx) {
roomCtx->unk31 = 0;
roomCtx->curRoom.segment = roomCtx->activeRoomVram;
// TODO: Segment number enum
- gSegments[0x03] = PHYSICAL_TO_VIRTUAL(roomCtx->activeRoomVram);
+ gSegments[0x03] = VIRTUAL_TO_PHYSICAL(roomCtx->activeRoomVram);
Scene_ProcessHeader(play, (SceneCmd*)roomCtx->curRoom.segment);
func_80123140(play, GET_PLAYER(play));
@@ -130,7 +130,7 @@ s32 Room_HandleLoadCallbacks(PlayState* play, RoomContext* roomCtx) {
void Room_Draw(PlayState* play, Room* room, u32 flags) {
if (room->segment != NULL) {
// TODO: Segment number enum
- gSegments[0x03] = PHYSICAL_TO_VIRTUAL(room->segment);
+ gSegments[0x03] = VIRTUAL_TO_PHYSICAL(room->segment);
roomDrawFuncs[room->mesh->type0.type](play, room, flags);
}
return;
diff --git a/src/code/z_scene.c b/src/code/z_scene.c
index 7b88d4520..c32a2271d 100644
--- a/src/code/z_scene.c
+++ b/src/code/z_scene.c
@@ -52,7 +52,7 @@ void Object_InitBank(GameState* gameState, ObjectContext* objectCtx) {
objectCtx->spaceEnd = (void*)((u32)objectCtx->spaceStart + spaceSize);
objectCtx->mainKeepIndex = Object_Spawn(objectCtx, GAMEPLAY_KEEP);
- gSegments[0x04] = PHYSICAL_TO_VIRTUAL(objectCtx->status[objectCtx->mainKeepIndex].segment);
+ gSegments[0x04] = VIRTUAL_TO_PHYSICAL(objectCtx->status[objectCtx->mainKeepIndex].segment);
}
void Object_UpdateBank(ObjectContext* objectCtx) {
@@ -108,7 +108,7 @@ s32 Object_IsLoaded(ObjectContext* objectCtx, s32 index) {
void Object_LoadAll(ObjectContext* objectCtx) {
s32 i;
s32 id;
- u32 vromSize;
+ uintptr_t vromSize;
for (i = 0; i < objectCtx->num; i++) {
id = objectCtx->status[i].id;
@@ -124,7 +124,7 @@ void Object_LoadAll(ObjectContext* objectCtx) {
void* func_8012F73C(ObjectContext* objectCtx, s32 iParm2, s16 id) {
u32 addr;
- u32 vromSize;
+ uintptr_t vromSize;
RomFile* fileTableEntry;
objectCtx->status[iParm2].id = -id;
@@ -224,7 +224,7 @@ void Scene_HeaderCmdSpecialFiles(PlayState* play, SceneCmd* cmd) {
if (cmd->specialFiles.subKeepIndex != 0) {
play->objectCtx.subKeepIndex = Object_Spawn(&play->objectCtx, cmd->specialFiles.subKeepIndex);
// TODO: Segment number enum?
- gSegments[0x05] = PHYSICAL_TO_VIRTUAL(play->objectCtx.status[play->objectCtx.subKeepIndex].segment);
+ gSegments[0x05] = VIRTUAL_TO_PHYSICAL(play->objectCtx.status[play->objectCtx.subKeepIndex].segment);
}
if (cmd->specialFiles.cUpElfMsgNum != 0) {
@@ -350,7 +350,7 @@ void Scene_LoadAreaTextures(PlayState* play, s32 fileIndex) {
{ SEGMENT_ROM_START(scene_texture_07), SEGMENT_ROM_END(scene_texture_07) },
{ SEGMENT_ROM_START(scene_texture_08), SEGMENT_ROM_END(scene_texture_08) },
};
- u32 vromStart = sceneTextureFiles[fileIndex].vromStart;
+ uintptr_t vromStart = sceneTextureFiles[fileIndex].vromStart;
size_t size = sceneTextureFiles[fileIndex].vromEnd - vromStart;
if (size != 0) {
diff --git a/src/libultra/io/epirawdma.c b/src/libultra/io/epirawdma.c
index fd7573151..aadd8ad5b 100644
--- a/src/libultra/io/epirawdma.c
+++ b/src/libultra/io/epirawdma.c
@@ -1,6 +1,6 @@
#include "global.h"
-s32 __osEPiRawStartDma(OSPiHandle* handle, s32 direction, u32 cartAddr, void* dramAddr, size_t size) {
+s32 __osEPiRawStartDma(OSPiHandle* handle, s32 direction, uintptr_t cartAddr, void* dramAddr, size_t size) {
s32 status;
OSPiHandle* curHandle;
diff --git a/src/libultra/io/sirawread.c b/src/libultra/io/sirawread.c
index 19327db49..7e3537603 100644
--- a/src/libultra/io/sirawread.c
+++ b/src/libultra/io/sirawread.c
@@ -1,6 +1,6 @@
#include "global.h"
-s32 __osSiRawReadIo(u32 devAddr, u32* data) {
+s32 __osSiRawReadIo(uintptr_t devAddr, u32* data) {
if (__osSiDeviceBusy()) {
return -1;
}
diff --git a/src/libultra/io/sirawwrite.c b/src/libultra/io/sirawwrite.c
index 040fdee0d..0f98b08c5 100644
--- a/src/libultra/io/sirawwrite.c
+++ b/src/libultra/io/sirawwrite.c
@@ -1,6 +1,6 @@
#include "global.h"
-s32 __osSiRawWriteIo(u32 devAddr, u32 data) {
+s32 __osSiRawWriteIo(uintptr_t devAddr, u32 data) {
if (__osSiDeviceBusy() != 0) {
return -1;
}
diff --git a/src/overlays/actors/ovl_Boss_03/z_boss_03.c b/src/overlays/actors/ovl_Boss_03/z_boss_03.c
index 870bc53a1..a0f3a208b 100644
--- a/src/overlays/actors/ovl_Boss_03/z_boss_03.c
+++ b/src/overlays/actors/ovl_Boss_03/z_boss_03.c
@@ -52,7 +52,6 @@
* - Effect Update/Draw
* - Seaweed
*/
-
#include "prevent_bss_reordering.h"
#include "z_boss_03.h"
#include "overlays/actors/ovl_Door_Warp1/z_door_warp1.h"
@@ -2156,7 +2155,7 @@ void Boss03_SetObject(PlayState* play, s16 objectId) {
OPEN_DISPS(play->state.gfxCtx);
- gSegments[6] = PHYSICAL_TO_VIRTUAL(play->objectCtx.status[objectIndex].segment);
+ gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.status[objectIndex].segment);
gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.status[objectIndex].segment);
gSPSegment(POLY_XLU_DISP++, 0x06, play->objectCtx.status[objectIndex].segment);
diff --git a/src/overlays/actors/ovl_Dm_Stk/z_dm_stk.c b/src/overlays/actors/ovl_Dm_Stk/z_dm_stk.c
index 2be56dda3..90ccb1382 100644
--- a/src/overlays/actors/ovl_Dm_Stk/z_dm_stk.c
+++ b/src/overlays/actors/ovl_Dm_Stk/z_dm_stk.c
@@ -311,7 +311,7 @@ void DmStk_LoadObjectForAnimation(DmStk* this, PlayState* play) {
}
if (objectIndex >= 0) {
- gSegments[6] = PHYSICAL_TO_VIRTUAL(play->objectCtx.status[objectIndex].segment);
+ gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.status[objectIndex].segment);
}
}
@@ -1909,13 +1909,13 @@ void DmStk_PostLimbDraw2(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot
(this->objectStk2ObjectIndex >= 0)) {
Matrix_Push();
Matrix_Scale(2.0f, 2.0f, 2.0f, MTXMODE_APPLY);
- gSegments[6] = PHYSICAL_TO_VIRTUAL(play->objectCtx.status[this->objectStk2ObjectIndex].segment);
+ gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.status[this->objectStk2ObjectIndex].segment);
gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.status[this->objectStk2ObjectIndex].segment);
AnimatedMat_Draw(play, Lib_SegmentedToVirtual(gSkullKidMajorasMaskCurseOverlayTexAnim));
Gfx_DrawDListOpa(play, gSkullKidMajorasMaskCurseOverlayDL);
- gSegments[6] = PHYSICAL_TO_VIRTUAL(play->objectCtx.status[this->objectStkObjectIndex].segment);
+ gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.status[this->objectStkObjectIndex].segment);
gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.status[this->objectStkObjectIndex].segment);
@@ -2027,7 +2027,7 @@ void DmStk_Draw(Actor* thisx, PlayState* play) {
return;
}
- gSegments[6] = PHYSICAL_TO_VIRTUAL(play->objectCtx.status[this->objectStkObjectIndex].segment);
+ gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.status[this->objectStkObjectIndex].segment);
OPEN_DISPS(play->state.gfxCtx);
diff --git a/src/overlays/actors/ovl_En_Bba_01/z_en_bba_01.c b/src/overlays/actors/ovl_En_Bba_01/z_en_bba_01.c
index d141c6514..8398a69ed 100644
--- a/src/overlays/actors/ovl_En_Bba_01/z_en_bba_01.c
+++ b/src/overlays/actors/ovl_En_Bba_01/z_en_bba_01.c
@@ -262,8 +262,8 @@ s32 EnBba01_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f*
if (limbIndex == BBA_LIMB_RIGHT_LOWER_ARM_ROOT) {
OPEN_DISPS(play->state.gfxCtx);
gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.status[this->enHy.headObjIndex].segment);
- gSegments[6] = PHYSICAL_TO_VIRTUAL(play->objectCtx.status[this->enHy.headObjIndex].segment);
- gSegments[6] = PHYSICAL_TO_VIRTUAL(play->objectCtx.status[this->enHy.skelLowerObjIndex].segment);
+ gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.status[this->enHy.headObjIndex].segment);
+ gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.status[this->enHy.skelLowerObjIndex].segment);
CLOSE_DISPS(play->state.gfxCtx);
}
if (limbIndex == BBA_LIMB_RIGHT_LOWER_ARM_ROOT) {
@@ -298,7 +298,7 @@ void EnBba01_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* ro
if (limbIndex == BBA_LIMB_HEAD) {
OPEN_DISPS(play->state.gfxCtx);
gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.status[this->enHy.skelUpperObjIndex].segment);
- gSegments[0x06] = PHYSICAL_TO_VIRTUAL(play->objectCtx.status[this->enHy.skelUpperObjIndex].segment);
+ gSegments[0x06] = VIRTUAL_TO_PHYSICAL(play->objectCtx.status[this->enHy.skelUpperObjIndex].segment);
CLOSE_DISPS(play->state.gfxCtx);
}
diff --git a/src/overlays/actors/ovl_En_Cne_01/z_en_cne_01.c b/src/overlays/actors/ovl_En_Cne_01/z_en_cne_01.c
index 889055ee8..993076ba8 100644
--- a/src/overlays/actors/ovl_En_Cne_01/z_en_cne_01.c
+++ b/src/overlays/actors/ovl_En_Cne_01/z_en_cne_01.c
@@ -252,9 +252,9 @@ s32 EnCne01_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f*
if (limbIndex == CNE_LIMB_HEAD) {
OPEN_DISPS(play->state.gfxCtx);
gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.status[this->enHy.headObjIndex].segment);
- gSegments[6] = PHYSICAL_TO_VIRTUAL(play->objectCtx.status[this->enHy.headObjIndex].segment);
+ gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.status[this->enHy.headObjIndex].segment);
*dList = gCneHeadBrownHairDL;
- gSegments[6] = PHYSICAL_TO_VIRTUAL(play->objectCtx.status[this->enHy.skelLowerObjIndex].segment);
+ gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.status[this->enHy.skelLowerObjIndex].segment);
CLOSE_DISPS(play->state.gfxCtx);
}
if (limbIndex == CNE_LIMB_HEAD) {
@@ -290,7 +290,7 @@ void EnCne01_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* ro
if (limbIndex == CNE_LIMB_RIGHT_FOOT) {
OPEN_DISPS(play->state.gfxCtx);
gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.status[this->enHy.skelUpperObjIndex].segment);
- gSegments[0x06] = PHYSICAL_TO_VIRTUAL(play->objectCtx.status[this->enHy.skelUpperObjIndex].segment);
+ gSegments[0x06] = VIRTUAL_TO_PHYSICAL(play->objectCtx.status[this->enHy.skelUpperObjIndex].segment);
CLOSE_DISPS(play->state.gfxCtx);
}
diff --git a/src/overlays/actors/ovl_En_Dnk/z_en_dnk.c b/src/overlays/actors/ovl_En_Dnk/z_en_dnk.c
index 50a027efa..346246f86 100644
--- a/src/overlays/actors/ovl_En_Dnk/z_en_dnk.c
+++ b/src/overlays/actors/ovl_En_Dnk/z_en_dnk.c
@@ -171,7 +171,7 @@ s32 func_80A515C4(EnDnk* this) {
void func_80A51648(EnDnk* this, PlayState* play) {
if (SubS_IsObjectLoaded(this->unk_28E, play) == true) {
- gSegments[0x06] = PHYSICAL_TO_VIRTUAL(play->objectCtx.status[this->unk_28E].segment);
+ gSegments[0x06] = VIRTUAL_TO_PHYSICAL(play->objectCtx.status[this->unk_28E].segment);
this->actor.draw = func_80A52018;
this->actor.objBankIndex = this->unk_28E;
ActorShape_Init(&this->actor.shape, 0.0f, NULL, 18.0f);
diff --git a/src/overlays/actors/ovl_En_Nwc/z_en_nwc.c b/src/overlays/actors/ovl_En_Nwc/z_en_nwc.c
index 2f842c8ae..3f66f7f70 100644
--- a/src/overlays/actors/ovl_En_Nwc/z_en_nwc.c
+++ b/src/overlays/actors/ovl_En_Nwc/z_en_nwc.c
@@ -242,14 +242,14 @@ void EnNwc_CheckFound(EnNwc* this, PlayState* play) {
void EnNwc_LoadNiwSkeleton(EnNwc* this, PlayState* play) {
if (Object_IsLoaded(&play->objectCtx, this->niwObjectIndex)) {
- gSegments[6] = PHYSICAL_TO_VIRTUAL(play->objectCtx.status[this->niwObjectIndex].segment);
+ gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.status[this->niwObjectIndex].segment);
SkelAnime_InitFlex(play, &this->niwSkeleton, &gNiwSkeleton, &gNiwIdleAnim, this->jointTable, this->morphTable,
NIW_LIMB_MAX);
Animation_Change(&this->niwSkeleton, &gNiwIdleAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gNiwIdleAnim),
ANIMMODE_LOOP, 0.0f);
- gSegments[6] = PHYSICAL_TO_VIRTUAL(play->objectCtx.status[this->nwcObjectIndex].segment);
+ gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.status[this->nwcObjectIndex].segment);
this->state = NWC_STATE_NIW_LOADED;
EnNwc_ToggleState(this);
}
diff --git a/src/overlays/actors/ovl_En_S_Goro/z_en_s_goro.c b/src/overlays/actors/ovl_En_S_Goro/z_en_s_goro.c
index ccc11a002..fbfe32252 100644
--- a/src/overlays/actors/ovl_En_S_Goro/z_en_s_goro.c
+++ b/src/overlays/actors/ovl_En_S_Goro/z_en_s_goro.c
@@ -788,7 +788,7 @@ s32 EnSGoro_UpdateCheerAnimation(EnSGoro* this, PlayState* play) {
if (((EnJg*)this->otherGoron)->flags & 1) {
this->loadedObjIndex = Object_GetIndex(&play->objectCtx, OBJECT_TAISOU);
if (this->loadedObjIndex >= 0) {
- gSegments[6] = PHYSICAL_TO_VIRTUAL(play->objectCtx.status[this->loadedObjIndex].segment);
+ gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.status[this->loadedObjIndex].segment);
this->animInfoIndex = EN_S_GORO_ANIM_TAISOU_CHEER;
SubS_ChangeAnimationByInfoS(&this->skelAnime, sAnimationInfo, this->animInfoIndex);
return true;
@@ -797,7 +797,7 @@ s32 EnSGoro_UpdateCheerAnimation(EnSGoro* this, PlayState* play) {
} else if ((this->animInfoIndex == EN_S_GORO_ANIM_TAISOU_CHEER) && !(((EnJg*)this->otherGoron)->flags & 1)) {
this->loadedObjIndex = Object_GetIndex(&play->objectCtx, OBJECT_OF1D_MAP);
if (this->loadedObjIndex >= 0) {
- gSegments[6] = PHYSICAL_TO_VIRTUAL(play->objectCtx.status[this->loadedObjIndex].segment);
+ gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.status[this->loadedObjIndex].segment);
this->animInfoIndex = EN_S_GORO_ANIM_IDLE_STAND;
SubS_ChangeAnimationByInfoS(&this->skelAnime, sAnimationInfo, this->animInfoIndex);
this->skelAnime.curFrame = this->skelAnime.endFrame;
@@ -1329,7 +1329,7 @@ void EnSGoro_Update(Actor* thisx, PlayState* play) {
this->actionFunc(this, play);
Actor_UpdateBgCheckInfo(play, &this->actor, 30.0f, 12.0f, 0.0f, 5);
- gSegments[6] = PHYSICAL_TO_VIRTUAL(play->objectCtx.status[this->loadedObjIndex].segment);
+ gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.status[this->loadedObjIndex].segment);
SkelAnime_Update(&this->skelAnime);
if (this->animInfoIndex != EN_S_GORO_ANIM_SLEEPY) {
EnSGoro_UpdateAttentionTarget(this, play);
diff --git a/src/overlays/actors/ovl_En_Sob1/z_en_sob1.c b/src/overlays/actors/ovl_En_Sob1/z_en_sob1.c
index b69877758..ebbdcf542 100644
--- a/src/overlays/actors/ovl_En_Sob1/z_en_sob1.c
+++ b/src/overlays/actors/ovl_En_Sob1/z_en_sob1.c
@@ -1305,7 +1305,7 @@ void EnSob1_Blink(EnSob1* this) {
}
void EnSob1_ChangeObject(EnSob1* this, PlayState* play) {
- gSegments[0x06] = PHYSICAL_TO_VIRTUAL(play->objectCtx.status[this->shopkeeperAnimObjIndex].segment);
+ gSegments[0x06] = VIRTUAL_TO_PHYSICAL(play->objectCtx.status[this->shopkeeperAnimObjIndex].segment);
}
s32 EnSob1_AreObjectsLoaded(EnSob1* this, PlayState* play) {
@@ -1323,7 +1323,7 @@ s32 EnSob1_AreObjectsLoaded(EnSob1* this, PlayState* play) {
void EnSob1_ZoraShopkeeper_Init(EnSob1* this, PlayState* play) {
SkelAnime_InitFlex(play, &this->skelAnime, &gZoraSkel, NULL, this->jointTable, this->morphTable, ZORA_LIMB_MAX);
- gSegments[6] = PHYSICAL_TO_VIRTUAL(play->objectCtx.status[this->shopkeeperAnimObjIndex].segment);
+ gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.status[this->shopkeeperAnimObjIndex].segment);
Animation_Change(&this->skelAnime, &gZoraShopkeeperAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gZoraShopkeeperAnim),
ANIMMODE_LOOP, 0.0f);
this->actor.draw = EnSob1_ZoraShopkeeper_Draw;
@@ -1332,7 +1332,7 @@ void EnSob1_ZoraShopkeeper_Init(EnSob1* this, PlayState* play) {
void EnSob1_GoronShopkeeper_Init(EnSob1* this, PlayState* play) {
SkelAnime_InitFlex(play, &this->skelAnime, &gGoronSkel, NULL, this->jointTable, this->morphTable, GORON_LIMB_MAX);
- gSegments[6] = PHYSICAL_TO_VIRTUAL(play->objectCtx.status[this->shopkeeperAnimObjIndex].segment);
+ gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.status[this->shopkeeperAnimObjIndex].segment);
Animation_Change(&this->skelAnime, &gGoronShopkeeperAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gGoronShopkeeperAnim),
ANIMMODE_LOOP, 0.0f);
this->actor.draw = EnSob1_GoronShopkeeper_Draw;
diff --git a/src/overlays/effects/ovl_Effect_Ss_Extra/z_eff_ss_extra.c b/src/overlays/effects/ovl_Effect_Ss_Extra/z_eff_ss_extra.c
index e33b486f4..1ec1ab41d 100644
--- a/src/overlays/effects/ovl_Effect_Ss_Extra/z_eff_ss_extra.c
+++ b/src/overlays/effects/ovl_Effect_Ss_Extra/z_eff_ss_extra.c
@@ -37,7 +37,7 @@ u32 EffectSsExtra_Init(PlayState* play, u32 index, EffectSs* this, void* initPar
if ((objIndex >= 0) && (Object_IsLoaded(&play->objectCtx, objIndex))) {
void* segBackup = gSegments[6];
- gSegments[6] = PHYSICAL_TO_VIRTUAL(play->objectCtx.status[objIndex].segment);
+ gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.status[objIndex].segment);
this->pos = params->pos;
this->velocity = params->velocity;
@@ -66,7 +66,7 @@ void EffectSsExtra_Draw(PlayState* play, u32 index, EffectSs* this) {
OPEN_DISPS(play->state.gfxCtx);
- gSegments[6] = PHYSICAL_TO_VIRTUAL(storedSegment);
+ gSegments[6] = VIRTUAL_TO_PHYSICAL(storedSegment);
gSPSegment(POLY_XLU_DISP++, 0x06, storedSegment);
diff --git a/src/overlays/fbdemos/ovl_fbdemo_triforce/z_fbdemo_triforce.c b/src/overlays/fbdemos/ovl_fbdemo_triforce/z_fbdemo_triforce.c
index 4584cfab2..00e7cfabd 100644
--- a/src/overlays/fbdemos/ovl_fbdemo_triforce/z_fbdemo_triforce.c
+++ b/src/overlays/fbdemos/ovl_fbdemo_triforce/z_fbdemo_triforce.c
@@ -16,7 +16,7 @@ void TransitionTriforce_SetType(void* thisx, s32 type);
void TransitionTriforce_SetColor(void* thisx, u32 color);
s32 TransitionTriforce_IsDone(void* thisx);
-const TransitionInit TransitionTriforce_InitVars = {
+TransitionInit TransitionTriforce_InitVars = {
TransitionTriforce_Init, TransitionTriforce_Destroy, TransitionTriforce_Update, TransitionTriforce_Draw,
TransitionTriforce_Start, TransitionTriforce_SetType, TransitionTriforce_SetColor, NULL,
TransitionTriforce_IsDone,
diff --git a/src/overlays/fbdemos/ovl_fbdemo_triforce/z_fbdemo_triforce.h b/src/overlays/fbdemos/ovl_fbdemo_triforce/z_fbdemo_triforce.h
index 2637b32cf..06d807a08 100644
--- a/src/overlays/fbdemos/ovl_fbdemo_triforce/z_fbdemo_triforce.h
+++ b/src/overlays/fbdemos/ovl_fbdemo_triforce/z_fbdemo_triforce.h
@@ -28,6 +28,4 @@ typedef struct {
/* 0x060 */ Mtx modelView[2][3];
} TransitionTriforce; // size = 0x1E0
-extern const TransitionInit TransitionTriforce_InitVars;
-
#endif
diff --git a/src/overlays/fbdemos/ovl_fbdemo_wipe1/z_fbdemo_wipe1.c b/src/overlays/fbdemos/ovl_fbdemo_wipe1/z_fbdemo_wipe1.c
index 560d341f2..ed12d400e 100644
--- a/src/overlays/fbdemos/ovl_fbdemo_wipe1/z_fbdemo_wipe1.c
+++ b/src/overlays/fbdemos/ovl_fbdemo_wipe1/z_fbdemo_wipe1.c
@@ -17,7 +17,7 @@ void TransitionWipe1_SetEnvColor(void* thisx, u32 color);
s32 TransitionWipe1_IsDone(void* thisx);
#if 0
-const TransitionInit TransitionWipe1_InitVars = {
+TransitionInit TransitionWipe1_InitVars = {
TransitionWipe1_Init,
TransitionWipe1_Destroy,
TransitionWipe1_Update,
diff --git a/src/overlays/fbdemos/ovl_fbdemo_wipe1/z_fbdemo_wipe1.h b/src/overlays/fbdemos/ovl_fbdemo_wipe1/z_fbdemo_wipe1.h
index fe70e724b..971940bb2 100644
--- a/src/overlays/fbdemos/ovl_fbdemo_wipe1/z_fbdemo_wipe1.h
+++ b/src/overlays/fbdemos/ovl_fbdemo_wipe1/z_fbdemo_wipe1.h
@@ -7,6 +7,4 @@ typedef struct {
/* 0x0000 */ char unk_0[0x218];
} TransitionWipe1; // size = 0x218
-extern const TransitionInit TransitionWipe1_InitVars;
-
#endif
diff --git a/src/overlays/fbdemos/ovl_fbdemo_wipe3/z_fbdemo_wipe3.c b/src/overlays/fbdemos/ovl_fbdemo_wipe3/z_fbdemo_wipe3.c
index bbd488642..c33f3c8c7 100644
--- a/src/overlays/fbdemos/ovl_fbdemo_wipe3/z_fbdemo_wipe3.c
+++ b/src/overlays/fbdemos/ovl_fbdemo_wipe3/z_fbdemo_wipe3.c
@@ -17,7 +17,7 @@ void TransitionWipe3_SetEnvColor(void* thisx, u32 color);
s32 TransitionWipe3_IsDone(void* thisx);
#if 0
-const TransitionInit TransitionWipe3_InitVars = {
+TransitionInit TransitionWipe3_InitVars = {
TransitionWipe3_Init,
TransitionWipe3_Destroy,
TransitionWipe3_Update,
diff --git a/src/overlays/fbdemos/ovl_fbdemo_wipe3/z_fbdemo_wipe3.h b/src/overlays/fbdemos/ovl_fbdemo_wipe3/z_fbdemo_wipe3.h
index f74f86a61..8fed0dcfe 100644
--- a/src/overlays/fbdemos/ovl_fbdemo_wipe3/z_fbdemo_wipe3.h
+++ b/src/overlays/fbdemos/ovl_fbdemo_wipe3/z_fbdemo_wipe3.h
@@ -7,6 +7,4 @@ typedef struct {
/* 0x0000 */ char unk_0[0x120];
} TransitionWipe3; // size = 0x120
-extern const TransitionInit TransitionWipe3_InitVars;
-
#endif
diff --git a/src/overlays/fbdemos/ovl_fbdemo_wipe4/z_fbdemo_wipe4.c b/src/overlays/fbdemos/ovl_fbdemo_wipe4/z_fbdemo_wipe4.c
index 49dd027c8..e91d8ab5e 100644
--- a/src/overlays/fbdemos/ovl_fbdemo_wipe4/z_fbdemo_wipe4.c
+++ b/src/overlays/fbdemos/ovl_fbdemo_wipe4/z_fbdemo_wipe4.c
@@ -17,7 +17,7 @@ void TransitionWipe4_SetEnvColor(void* thisx, u32 color);
s32 TransitionWipe4_IsDone(void* thisx);
#if 0
-const TransitionInit TransitionWipe4_InitVars = {
+TransitionInit TransitionWipe4_InitVars = {
TransitionWipe4_Init,
TransitionWipe4_Destroy,
TransitionWipe4_Update,
diff --git a/src/overlays/fbdemos/ovl_fbdemo_wipe4/z_fbdemo_wipe4.h b/src/overlays/fbdemos/ovl_fbdemo_wipe4/z_fbdemo_wipe4.h
index 60296230e..8a677c2a4 100644
--- a/src/overlays/fbdemos/ovl_fbdemo_wipe4/z_fbdemo_wipe4.h
+++ b/src/overlays/fbdemos/ovl_fbdemo_wipe4/z_fbdemo_wipe4.h
@@ -7,6 +7,4 @@ typedef struct {
/* 0x0000 */ char unk_0[0x28];
} TransitionWipe4; // size = 0x28
-extern const TransitionInit TransitionWipe4_InitVars;
-
#endif
diff --git a/src/overlays/fbdemos/ovl_fbdemo_wipe5/z_fbdemo_wipe5.c b/src/overlays/fbdemos/ovl_fbdemo_wipe5/z_fbdemo_wipe5.c
index 87f5638ac..0ed80c066 100644
--- a/src/overlays/fbdemos/ovl_fbdemo_wipe5/z_fbdemo_wipe5.c
+++ b/src/overlays/fbdemos/ovl_fbdemo_wipe5/z_fbdemo_wipe5.c
@@ -17,7 +17,7 @@ void TransitionWipe5_SetEnvColor(void* thisx, u32 color);
s32 TransitionWipe5_IsDone(void* thisx);
#if 0
-const TransitionInit TransitionWipe5_InitVars = {
+TransitionInit TransitionWipe5_InitVars = {
TransitionWipe5_Init,
TransitionWipe5_Destroy,
TransitionWipe5_Update,
diff --git a/src/overlays/fbdemos/ovl_fbdemo_wipe5/z_fbdemo_wipe5.h b/src/overlays/fbdemos/ovl_fbdemo_wipe5/z_fbdemo_wipe5.h
index d8ffe0616..d5f882dec 100644
--- a/src/overlays/fbdemos/ovl_fbdemo_wipe5/z_fbdemo_wipe5.h
+++ b/src/overlays/fbdemos/ovl_fbdemo_wipe5/z_fbdemo_wipe5.h
@@ -7,6 +7,4 @@ typedef struct {
/* 0x0000 */ char unk_0[0x14];
} TransitionWipe5; // size = 0x14
-extern const TransitionInit TransitionWipe5_InitVars;
-
#endif