mirror of
https://github.com/zeldaret/oot
synced 2026-06-03 10:31:49 -04:00
Use official macros for Physical Address conversion (#2511)
This commit is contained in:
@@ -61,7 +61,7 @@ typedef void (*UcodeDisasCallback)(UCodeDisas*, u32);
|
||||
void* UCodeDisas_TranslateAddr(UCodeDisas* this, uintptr_t addr) {
|
||||
uintptr_t physical = this->segments[SEGMENT_NUMBER(addr)] + SEGMENT_OFFSET(addr);
|
||||
|
||||
return PHYSICAL_TO_VIRTUAL(physical);
|
||||
return OS_PHYSICAL_TO_K0(physical);
|
||||
}
|
||||
|
||||
F3dzexConst sUCodeDisasGeometryModes[] = {
|
||||
|
||||
+1
-1
@@ -931,7 +931,7 @@ void Actor_SetScale(Actor* actor, f32 scale) {
|
||||
}
|
||||
|
||||
void Actor_SetObjectDependency(PlayState* play, Actor* actor) {
|
||||
gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[actor->objectSlot].segment);
|
||||
gSegments[6] = OS_K0_TO_PHYSICAL(play->objectCtx.slots[actor->objectSlot].segment);
|
||||
}
|
||||
|
||||
void Actor_Init(Actor* actor, PlayState* play) {
|
||||
|
||||
@@ -70,7 +70,7 @@ void EffectSs_DrawGEffect(PlayState* play, EffectSs* this, void* texture) {
|
||||
SkinMatrix_SetScale(&mfScale, scale, scale, scale);
|
||||
SkinMatrix_MtxFMtxFMult(&mfTrans, &play->billboardMtxF, &mfTransBillboard);
|
||||
SkinMatrix_MtxFMtxFMult(&mfTransBillboard, &mfScale, &mfResult);
|
||||
gSegments[6] = VIRTUAL_TO_PHYSICAL(objectPtr);
|
||||
gSegments[6] = OS_K0_TO_PHYSICAL(objectPtr);
|
||||
gSPSegment(POLY_XLU_DISP++, 0x06, objectPtr);
|
||||
|
||||
mtx = SkinMatrix_MtxFToNewMtx(gfxCtx, &mfResult);
|
||||
|
||||
+4
-4
@@ -48,12 +48,12 @@ void Jpeg_ScheduleDecoderTask(JpegContext* ctx) {
|
||||
JpegWork* workBuf = ctx->workBuf;
|
||||
s32 pad[2];
|
||||
|
||||
workBuf->taskData.address = VIRTUAL_TO_PHYSICAL(&workBuf->data);
|
||||
workBuf->taskData.address = OS_K0_TO_PHYSICAL(&workBuf->data);
|
||||
workBuf->taskData.mode = ctx->mode;
|
||||
workBuf->taskData.mbCount = 4;
|
||||
workBuf->taskData.qTableYPtr = VIRTUAL_TO_PHYSICAL(&workBuf->qTableY);
|
||||
workBuf->taskData.qTableUPtr = VIRTUAL_TO_PHYSICAL(&workBuf->qTableU);
|
||||
workBuf->taskData.qTableVPtr = VIRTUAL_TO_PHYSICAL(&workBuf->qTableV);
|
||||
workBuf->taskData.qTableYPtr = OS_K0_TO_PHYSICAL(&workBuf->qTableY);
|
||||
workBuf->taskData.qTableUPtr = OS_K0_TO_PHYSICAL(&workBuf->qTableU);
|
||||
workBuf->taskData.qTableVPtr = OS_K0_TO_PHYSICAL(&workBuf->qTableV);
|
||||
|
||||
sJpegTask.t.flags = 0;
|
||||
sJpegTask.t.ucode_boot = SysUcode_GetUCodeBoot();
|
||||
|
||||
@@ -2163,7 +2163,7 @@ void Interface_LoadActionLabel(InterfaceContext* interfaceCtx, u16 action, s16 l
|
||||
DO_ACTION_TEX_SIZE, 0, &interfaceCtx->loadQueue, NULL, "../z_parameter.c", 2145);
|
||||
osRecvMesg(&interfaceCtx->loadQueue, NULL, OS_MESG_BLOCK);
|
||||
} else {
|
||||
gSegments[7] = VIRTUAL_TO_PHYSICAL(interfaceCtx->doActionSegment);
|
||||
gSegments[7] = OS_K0_TO_PHYSICAL(interfaceCtx->doActionSegment);
|
||||
func_80086D5C(SEGMENTED_TO_VIRTUAL(sDoActionTextures[loadOffset]), DO_ACTION_TEX_SIZE / 4);
|
||||
}
|
||||
}
|
||||
|
||||
+7
-7
@@ -584,9 +584,9 @@ void Play_Update(PlayState* this) {
|
||||
}
|
||||
#endif
|
||||
|
||||
gSegments[4] = VIRTUAL_TO_PHYSICAL(this->objectCtx.slots[this->objectCtx.mainKeepSlot].segment);
|
||||
gSegments[5] = VIRTUAL_TO_PHYSICAL(this->objectCtx.slots[this->objectCtx.subKeepSlot].segment);
|
||||
gSegments[2] = VIRTUAL_TO_PHYSICAL(this->sceneSegment);
|
||||
gSegments[4] = OS_K0_TO_PHYSICAL(this->objectCtx.slots[this->objectCtx.mainKeepSlot].segment);
|
||||
gSegments[5] = OS_K0_TO_PHYSICAL(this->objectCtx.slots[this->objectCtx.subKeepSlot].segment);
|
||||
gSegments[2] = OS_K0_TO_PHYSICAL(this->sceneSegment);
|
||||
|
||||
if (FrameAdvance_Update(&this->frameAdvCtx, &input[1])) {
|
||||
if ((this->transitionMode == TRANS_MODE_OFF) && (this->transitionTrigger != TRANS_TRIGGER_OFF)) {
|
||||
@@ -1145,9 +1145,9 @@ void Play_Draw(PlayState* this) {
|
||||
|
||||
OPEN_DISPS(gfxCtx, "../z_play.c", 3907);
|
||||
|
||||
gSegments[4] = VIRTUAL_TO_PHYSICAL(this->objectCtx.slots[this->objectCtx.mainKeepSlot].segment);
|
||||
gSegments[5] = VIRTUAL_TO_PHYSICAL(this->objectCtx.slots[this->objectCtx.subKeepSlot].segment);
|
||||
gSegments[2] = VIRTUAL_TO_PHYSICAL(this->sceneSegment);
|
||||
gSegments[4] = OS_K0_TO_PHYSICAL(this->objectCtx.slots[this->objectCtx.mainKeepSlot].segment);
|
||||
gSegments[5] = OS_K0_TO_PHYSICAL(this->objectCtx.slots[this->objectCtx.subKeepSlot].segment);
|
||||
gSegments[2] = OS_K0_TO_PHYSICAL(this->sceneSegment);
|
||||
|
||||
gSPSegment(POLY_OPA_DISP++, 0x00, NULL);
|
||||
gSPSegment(POLY_XLU_DISP++, 0x00, NULL);
|
||||
@@ -1606,7 +1606,7 @@ void Play_SpawnScene(PlayState* this, s32 sceneId, s32 spawn) {
|
||||
|
||||
ASSERT(this->sceneSegment != NULL, "this->sceneSegment != NULL", "../z_play.c", 4960);
|
||||
|
||||
gSegments[2] = VIRTUAL_TO_PHYSICAL(this->sceneSegment);
|
||||
gSegments[2] = OS_K0_TO_PHYSICAL(this->sceneSegment);
|
||||
|
||||
Play_InitScene(this, spawn);
|
||||
|
||||
|
||||
@@ -1525,7 +1525,7 @@ void Player_DrawGetItemImpl(PlayState* play, Player* this, Vec3f* refPos, s32 dr
|
||||
|
||||
OPEN_DISPS(play->state.gfxCtx, "../z_player_lib.c", 2401);
|
||||
|
||||
gSegments[6] = VIRTUAL_TO_PHYSICAL(this->giObjectSegment);
|
||||
gSegments[6] = OS_K0_TO_PHYSICAL(this->giObjectSegment);
|
||||
|
||||
gSPSegment(POLY_OPA_DISP++, 0x06, this->giObjectSegment);
|
||||
gSPSegment(POLY_XLU_DISP++, 0x06, this->giObjectSegment);
|
||||
@@ -1879,9 +1879,9 @@ u32 Player_InitPauseDrawData(PlayState* play, u8* segment, SkelAnime* skelAnime)
|
||||
|
||||
ptr = (void*)ALIGN16((uintptr_t)ptr + size);
|
||||
|
||||
gSegments[4] = VIRTUAL_TO_PHYSICAL(segment + PAUSE_EQUIP_BUFFER_SIZE);
|
||||
gSegments[4] = OS_K0_TO_PHYSICAL(segment + PAUSE_EQUIP_BUFFER_SIZE);
|
||||
gSegments[6] =
|
||||
VIRTUAL_TO_PHYSICAL(segment + PAUSE_EQUIP_BUFFER_SIZE + PAUSE_PLAYER_SEGMENT_GAMEPLAY_KEEP_BUFFER_SIZE);
|
||||
OS_K0_TO_PHYSICAL(segment + PAUSE_EQUIP_BUFFER_SIZE + PAUSE_PLAYER_SEGMENT_GAMEPLAY_KEEP_BUFFER_SIZE);
|
||||
|
||||
SkelAnime_InitLink(play, skelAnime, gPlayerSkelHeaders[(void)0, gSaveContext.save.linkAge],
|
||||
&gPlayerAnim_link_normal_wait, 9, ptr, ptr, PLAYER_LIMB_MAX);
|
||||
@@ -2057,9 +2057,9 @@ void Player_DrawPause(PlayState* play, u8* segment, SkelAnime* skelAnime, Vec3f*
|
||||
Vec3s* srcTable;
|
||||
s32 i;
|
||||
|
||||
gSegments[4] = VIRTUAL_TO_PHYSICAL(segment + PAUSE_EQUIP_BUFFER_SIZE);
|
||||
gSegments[4] = OS_K0_TO_PHYSICAL(segment + PAUSE_EQUIP_BUFFER_SIZE);
|
||||
gSegments[6] =
|
||||
VIRTUAL_TO_PHYSICAL(segment + PAUSE_EQUIP_BUFFER_SIZE + PAUSE_PLAYER_SEGMENT_GAMEPLAY_KEEP_BUFFER_SIZE);
|
||||
OS_K0_TO_PHYSICAL(segment + PAUSE_EQUIP_BUFFER_SIZE + PAUSE_PLAYER_SEGMENT_GAMEPLAY_KEEP_BUFFER_SIZE);
|
||||
|
||||
if (!LINK_IS_ADULT) {
|
||||
if (shield == PLAYER_SHIELD_DEKU) {
|
||||
|
||||
+2
-2
@@ -715,7 +715,7 @@ s32 Room_ProcessRoomRequest(PlayState* play, RoomContext* roomCtx) {
|
||||
if (osRecvMesg(&roomCtx->loadQueue, NULL, OS_MESG_NOBLOCK) == 0) {
|
||||
roomCtx->status = 0;
|
||||
roomCtx->curRoom.segment = roomCtx->roomRequestAddr;
|
||||
gSegments[3] = VIRTUAL_TO_PHYSICAL(roomCtx->curRoom.segment);
|
||||
gSegments[3] = OS_K0_TO_PHYSICAL(roomCtx->curRoom.segment);
|
||||
|
||||
Scene_ExecuteCommands(play, roomCtx->curRoom.segment);
|
||||
Player_SetBootData(play, GET_PLAYER(play));
|
||||
@@ -730,7 +730,7 @@ s32 Room_ProcessRoomRequest(PlayState* play, RoomContext* roomCtx) {
|
||||
|
||||
void Room_Draw(PlayState* play, Room* room, u32 flags) {
|
||||
if (room->segment != NULL) {
|
||||
gSegments[3] = VIRTUAL_TO_PHYSICAL(room->segment);
|
||||
gSegments[3] = OS_K0_TO_PHYSICAL(room->segment);
|
||||
ASSERT(room->roomShape->base.type < ARRAY_COUNTU(sRoomDrawHandlers),
|
||||
"this->ground_shape->polygon.type < number(Room_Draw_Proc)", "../z_room.c", 1125);
|
||||
sRoomDrawHandlers[room->roomShape->base.type](play, room, flags);
|
||||
|
||||
+2
-2
@@ -108,7 +108,7 @@ void Object_InitContext(PlayState* play, ObjectContext* objectCtx) {
|
||||
objectCtx->spaceEnd = (void*)((uintptr_t)objectCtx->spaceStart + spaceSize);
|
||||
|
||||
objectCtx->mainKeepSlot = Object_SpawnPersistent(objectCtx, OBJECT_GAMEPLAY_KEEP);
|
||||
gSegments[4] = VIRTUAL_TO_PHYSICAL(objectCtx->slots[objectCtx->mainKeepSlot].segment);
|
||||
gSegments[4] = OS_K0_TO_PHYSICAL(objectCtx->slots[objectCtx->mainKeepSlot].segment);
|
||||
}
|
||||
|
||||
void Object_UpdateEntries(ObjectContext* objectCtx) {
|
||||
@@ -264,7 +264,7 @@ BAD_RETURN(s32) Scene_CommandSpawnList(PlayState* play, SceneCmd* cmd) {
|
||||
BAD_RETURN(s32) Scene_CommandSpecialFiles(PlayState* play, SceneCmd* cmd) {
|
||||
if (cmd->specialFiles.keepObjectId != OBJECT_INVALID) {
|
||||
play->objectCtx.subKeepSlot = Object_SpawnPersistent(&play->objectCtx, cmd->specialFiles.keepObjectId);
|
||||
gSegments[5] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[play->objectCtx.subKeepSlot].segment);
|
||||
gSegments[5] = OS_K0_TO_PHYSICAL(play->objectCtx.slots[play->objectCtx.subKeepSlot].segment);
|
||||
}
|
||||
|
||||
if (cmd->specialFiles.naviQuestHintFileId != NAVI_QUEST_HINTS_NONE) {
|
||||
|
||||
Reference in New Issue
Block a user