BSS round 2, hud_element.c funcs (#613)

* an end func

* 2nd segment bss file added

* hud_element work

* some renaming, set_hud_element_scale

* 2 hud_element funcz

* remove more unneeded undefined_syms

* bss 3, PR comments
This commit is contained in:
Ethan Roseman 2022-01-10 13:25:06 -05:00 committed by GitHub
parent 486dbfda39
commit e60e5fccd1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
29 changed files with 959 additions and 1717 deletions

View File

@ -743,7 +743,7 @@ typedef struct BattleStatus {
/* 0x170 */ s8 nextEnemyIndex; /* (during enemy turn) who should go next */
/* 0x171 */ s8 numEnemyActors;
/* 0x172 */ s16 activeEnemyActorID; /* (during enemy turn) enemy currently using their move */
/* 0x174 */ struct Actor* currentTurnEnemy;
/* 0x174 */ struct Actor* currentTurnEnemy;
/* 0x178 */ s8 moveCategory; ///< 0 = jump, 1 = hammer, 5 = partner, ...
/* 0x179 */ char unk_179;
/* 0x17A */ s16 selectedItemID;
@ -2120,7 +2120,7 @@ typedef struct struct802E4B10 {
typedef struct {
/* 0x00000 */ LookAt lookAt;
/* 0x00020 */ char unk_20[0x10];
/* 0x00030 */ Matrix4s camPerspMatrix[8]; // could only be length 4, unsure
/* 0x00030 */ Mtx camPerspMatrix[8]; // could only be length 4, unsure
/* 0x00230 */ Gfx mainGfx[0x2080];
/* 0x10630 */ Gfx backgroundGfx[0x200]; // used by gfx_task_background
/* 0x11630 */ Mtx matrixStack[0x200];

View File

@ -1,8 +1,6 @@
#include "common.h"
#include "sprite.h"
extern s32 spr_allocateBtlComponentsOnWorldHeap;
typedef struct UnkSpr10 {
/* 0x00 */ s32 unk_00;
/* 0x04 */ char unk_04[0xC];

View File

@ -315,7 +315,7 @@ void func_80254C50(Actor* actor) {
guMtxCatF(sp258, sp1D8, sp218);
temp_s0_2 = partTable->opacity;
partTable->opacity = phi_s6 - (sp29C * phi_s4);
func_802591EC(0, partTable, clamp_angle(scale + 0xB4), &sp218, 1);
func_802591EC(0, partTable, clamp_angle(scale + 180), &sp218, 1);
partTable->opacity = temp_s0_2;
}
}
@ -752,19 +752,19 @@ INCLUDE_ASM(s32, "182B30", func_802597B0);
INCLUDE_ASM(s32, "182B30", func_8025995C);
void func_80259A48(s32 arg0, ActorPart* arg1, s32 arg2, s32 arg3) {
DecorationTable* decorationTable = arg1->decorationTable;
void func_80259A48(s32 arg0, ActorPart* part, s32 arg2, s32 arg3) {
DecorationTable* decorationTable = part->decorationTable;
if (decorationTable->unk_6C1 != 0) {
arg1->verticalStretch = 1;
arg1->unkOffset[0] = 0;
arg1->unkOffset[1] = 0;
part->verticalStretch = 1;
part->unkOffset[0] = 0;
part->unkOffset[1] = 0;
decorationTable->unk_6C1 = 0;
}
if (arg0 == 0) {
func_802597B0(arg1, arg2, arg3);
func_802597B0(part, arg2, arg3);
} else {
func_8025950C(arg1, arg2, arg3);
func_8025950C(part, arg2, arg3);
}
}

View File

@ -1,6 +1,30 @@
#include "common.h"
#include "audio.h"
void snd_SEFCmd_00_SetVolume(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_01_SetPan(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_02_SetInstrument(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_03_SetReverb(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_04(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_05(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_06(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_07(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_08(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_09_StartLoop(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_0A_EndLoop(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_0B(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_0C(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_0D(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_0E(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_0F(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_10_Jump(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_13(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_14(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_15(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_16(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_17(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_18(SoundManager* manager, SoundPlayer* player);
void func_8004B440(SoundManager* manager, u8 arg1, u8 arg2, UnkAl19E0* arg3, u8 arg4) {
u32 i;
s32 c = 0x6A25E;
@ -185,30 +209,6 @@ INCLUDE_ASM(s32, "26840_len_20d0", snd_set_voice_volume);
INCLUDE_ASM(s32, "26840_len_20d0", func_8004CDF8);
void snd_SEFCmd_00_SetVolume(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_01_SetPan(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_02_SetInstrument(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_03_SetReverb(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_04(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_05(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_06(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_07(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_08(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_09_StartLoop(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_0A_EndLoop(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_0B(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_0C(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_0D(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_0E(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_0F(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_10_Jump(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_13(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_14(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_15(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_16(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_17(SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_18(SoundManager* manager, SoundPlayer* player);
INCLUDE_ASM(void, "26840_len_20d0", snd_SEFCmd_00_SetVolume, SoundManager* manager, SoundPlayer* player);
void snd_SEFCmd_01_SetPan(SoundManager* manager, SoundPlayer* player) {

View File

@ -458,6 +458,7 @@ void snd_get_sequence_player_and_track(u32 playerIndex, s32** outCurrentTrackDat
default:
*outCurrentTrackData = NULL;
*outPlayer = NULL;
break;
}
}
@ -474,6 +475,7 @@ void snd_get_sequence_player(u32 playerIndex, BGMPlayer** outPlayer) {
break;
default:
*outPlayer = NULL;
break;
}
}
@ -625,7 +627,7 @@ void snd_copy_words(s32* src, s32* dst, s32 num) {
num /= 4;
if (num > 0) {
if ((((s32) src | (s32) dst) & 3) == 0) {
if (!(((s32) src | (s32) dst) & 3)) {
s32* srcIt = src;
s32* dstIt = dst;

View File

@ -944,23 +944,21 @@ s32 D_8014C188[] = { 0xFFFE7960, 0x000F4240, 0x000F4240, 0x000F4240, 0x00000000,
s8 D_8014C248[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
// BSS
static s32 B_801512B0[2];
static ModelCustomGfxBuilderList* gCurrentCustomModelGfxBuildersPtr;
static s32 D_801512BC;
static s32 D_801512C0;
static s32 gEntityHeapBase;
static s32 D_801512C8;
BSS ModelList* gCurrentModels;
static s32 D_801512D0[4];
extern s32 B_801512B0[2];
extern ModelCustomGfxBuilderList* gCurrentCustomModelGfxBuildersPtr;
extern s32 D_801512BC;
extern s32 D_801512C0;
extern s32 gEntityHeapBase;
extern s32 D_801512C8;
extern ModelList* gCurrentModels;
extern s32 D_801512D0[4];
extern ModelNode** gCurrentModelTreeRoot;
static ModelTransformGroupList* gCurrentTransformGroups;
static s8 gMsgGlobalWaveCounter[0x4];
static ModelCustomGfxList* gCurrentCustomModelGfxPtr;
static s32 gLastCreatedEntityIndex;
static s8 B_801512F0[0x410];
static GameMode gMainGameState[2]; // TODO rename
extern ModelTransformGroupList* gCurrentTransformGroups;
extern s8 gMsgGlobalWaveCounter[0x4];
extern ModelCustomGfxList* gCurrentCustomModelGfxPtr;
extern s32 gLastCreatedEntityIndex;
extern s8 B_801512F0[0x410];
extern GameMode gMainGameState[2]; // TODO rename
extern s32 D_80151300;
extern s32 D_80151324;

148
src/bss2.c Normal file
View File

@ -0,0 +1,148 @@
#include "types.h"
// This file exists to enforce the order of BSS symbols, since they were reordered in the original rom.
#ifndef M2CTX
#define BSS __attribute__ ((section (".bss")))
#else
#define BSS static
#endif
BSS s32 D_8010C920;
BSS s32 D_8010C924;
BSS s32 D_8010C928;
BSS s32 D_8010C92C;
BSS s32 wPartnerNpc;
BSS s32 D_8010C934;
BSS s32 D_8010C938;
BSS s32 D_8010C93C;
BSS s32 D_8010C940;
BSS s32 gSpinHistoryBufferPos;
BSS char D_8010C948[0x4];
BSS s32 D_8010C94C;
BSS s32 D_8010C950;
BSS s32 D_8010C954;
BSS s32 D_8010C958;
BSS s32 D_8010C95C;
BSS s32 D_8010C960;
BSS s32 D_8010C964;
BSS s8 D_8010C968;
BSS char D_8010C969;
BSS char D_8010C96A;
BSS s8 D_8010C96B;
BSS s32 D_8010C96C;
BSS s32 D_8010C970;
BSS s32 D_8010C974;
BSS s16 D_8010C978;
BSS s16 D_8010C97A;
BSS s32 D_8010C97C;
BSS s32 D_8010C980;
BSS s32 D_8010C984;
BSS char D_8010C988[0x4];
BSS s32 D_8010C98C;
BSS s32 D_8010C990;
BSS char D_8010C994[0xC];
BSS s32 D_8010C9A0;
BSS char D_8010C9A4[0xC];
BSS s32 D_8010C9B0;
BSS char D_8010C9B4[0xC];
BSS s32 D_8010C9C0;
BSS char D_8010C9C4[0x4];
BSS s32 D_8010C9C8;
BSS char D_8010C9CC[0x32C];
BSS s16 D_8010CCF8;
BSS s16 D_8010CCFA;
BSS s16 D_8010CCFC;
BSS s16 D_8010CCFE;
BSS s32 D_8010CD00;
BSS char D_8010CD04[0xC];
BSS s16 D_8010CD10;
BSS s16 D_8010CD12;
BSS char D_8010CD14[0xC];
BSS s32 D_8010CD20;
BSS char D_8010CD24[0xC];
BSS s32 D_8010CD30;
BSS s32 D_8010CD34;
BSS s32 D_8010CD38;
BSS char D_8010CD3C[0x27C];
BSS s32 D_8010CFB8;
BSS s32 D_8010CFBC;
BSS s32 wPartnerTetherDistance;
BSS s32 D_8010CFC4;
BSS s16 D_8010CFC8;
BSS s16 D_8010CFCA;
BSS s16 D_8010CFCC;
BSS s16 D_8010CFCE;
BSS s32 D_8010CFD0;
BSS s32 D_8010CFD4;
BSS s32 D_8010CFD8;
BSS s32 D_8010CFDC;
BSS s32 D_8010CFE0;
BSS s32 D_8010CFE4;
BSS s32 D_8010CFE8;
BSS s32 wPartner;
BSS s32 D_8010CFF0;
BSS s32 D_8010CFF4;
BSS char D_8010CFF8[0x8];
BSS s32 D_8010D000;
BSS char D_8010D004[0x63C];
BSS s32 D_8010D640;
BSS s32 D_8010D644;
BSS s32 D_8010D648;
BSS s32 D_8010D64C;
BSS s32 D_8010D650;
BSS s8 D_8010D654;
BSS s8 D_8010D655;
BSS s16 D_8010D656;
BSS s16 D_8010D658;
BSS s16 D_8010D65A;
BSS s32 D_8010D65C;
BSS s32 D_8010D660;
BSS s32 D_8010D664;
BSS s32 D_8010D668;
BSS s32 D_8010D66C;
BSS s32 D_8010D670;
BSS s32 D_8010D674;
BSS s32 D_8010D678;
BSS s16 D_8010D67C;
BSS s16 D_8010D67E;
BSS s16 D_8010D680;
BSS s16 D_8010D682;
BSS s16 D_8010D684;
BSS s16 D_8010D686;
BSS s16 D_8010D688;
BSS s16 D_8010D68A;
BSS s16 D_8010D68C;
BSS s8 D_8010D68E;
BSS s8 D_8010D68F;
BSS s8 D_8010D690;
BSS s8 D_8010D691;
BSS s8 D_8010D692;
BSS s8 D_8010D693;
BSS s32 D_8010D694;
BSS s8 D_8010D698;
BSS s8 D_8010D699;
BSS s16 D_8010D69A;
BSS s32 gPopupMenu;
BSS s32 D_8010D6A0;
BSS s32 D_8010D6A4;
BSS char D_8010D6A8[0x8];
BSS char D_8010D6B0[0x1500];
BSS char gPartnerActionStatus[0x360];
BSS char gSpinHistoryPosY[0x18];
BSS char gSpinHistoryPosX[0x18];
BSS char gSpinHistoryPosZ[0x18];
BSS char gUIStatus[0x3A];
BSS s16 D_8010EF92;
BSS char D_8010EF94[0x8];
BSS s8 D_8010EF9C;
BSS s8 D_8010EF9D;
BSS s8 D_8010EF9E;
BSS char D_8010EF9F;
BSS char D_8010EFA0[0x28];
BSS s8 gPlayerStatus[0xB4];
BSS s32 gPlayerActionState;
BSS s8 gPlayerAnimation[0x1D0];
BSS s8 gPlayerSpinState[0x40];
BSS s8 gPlayerData[0x428];
BSS s8 gSpinHistoryPosAngle[0x18];

286
src/bss3.c Normal file
View File

@ -0,0 +1,286 @@
#include "types.h"
// This file exists to enforce the order of BSS symbols, since they were reordered in the original rom.
#ifndef M2CTX
#define BSS __attribute__ ((section (".bss")))
#else
#define BSS static
#endif
BSS s32 D_801512B0;
BSS s32 D_801512B4;
BSS s32 gCurrentCustomModelGfxBuildersPtr;
BSS s32 D_801512BC;
BSS s32 D_801512C0;
BSS s32 gEntityHeapBase;
BSS s32 D_801512C8;
BSS s32 gCurrentModels;
BSS s32 D_801512D0;
BSS s32 gAnimCount;
BSS s16 gMsgBGScrollAmtX;
BSS s16 D_801512DA;
BSS s32 D_801512DC;
BSS s32 gCurrentTransformGroups;
BSS s32 gMsgGlobalWaveCounter;
BSS s32 gCurrentCustomModelGfxPtr;
BSS s32 gLastCreatedEntityIndex;
BSS s32 D_801512F0;
BSS s32 gMsgVarImages;
BSS s32 D_801512F8;
BSS s32 gCurrentModelTreeRoot;
BSS s32 D_80151300;
BSS s32 D_80151304;
BSS s32 D_80151308;
BSS s16 gMsgBGScrollAmtY;
BSS s16 D_8015130E;
BSS s32 D_80151310;
BSS s32 D_80151314;
BSS s32 gEntityModelCount;
BSS s32 D_8015131C;
BSS char D_80151320[0x4];
BSS s32 D_80151324;
BSS s32 D_80151328;
BSS s32 D_8015132C;
BSS s32 D_80151330;
BSS s32 gTriggerCount;
BSS s32 D_80151338;
BSS s32 D_8015133C;
BSS s32 gCurrentDoorSoundsSet;
BSS s32 D_80151344;
BSS char D_80151348[0x38];
BSS s8 gWorldEntityList[0x78];
BSS s8 gBattleEntityList[0x78];
BSS s32 gCurrentEntityListPtr;
BSS char D_80151474[0x4];
BSS s8 gWorldShadowList[0xF0];
BSS s8 gBattleShadowList[0xF0];
BSS s32 gCurrentShadowListPtr;
BSS s32 wStaticEntityDataSize;
BSS s32 bStaticEntityDataSize;
BSS char D_80151664[0x4];
BSS s8 wStaticEntityData[0x74];
BSS s32 D_801516DC;
BSS char D_8015DCE0[0x8];
BSS s8 bStaticEntityData[0x14];
BSS s32 D_801516FC;
BSS s8 gMainGameState[0x40];
BSS s8 gCurrentTileDescriptor[0x30];
BSS s8 wModelList[0x400];
BSS s8 bModelList[0x400];
BSS s8 wTransformGroups[0x10];
BSS s8 bTransformGroups[0x10];
BSS s8 wModelSpecialDls[0x80];
BSS s8 bModelSpecialDls[0x80];
BSS s8 wCustomModelGfxBuilders[0x80];
BSS s8 bCustomModelGfxBuilders[0x80];
BSS s8 D_80152190[0x40];
BSS s8 D_801521D0[0x40];
BSS s32 gCurrentModelLocalVtxBuffers;
BSS s32 D_80152214;
BSS s32 D_80152218;
BSS char D_8015221C[0x4];
BSS s8 D_80152220[0x800];
BSS s8 D_80152A20[0x800];
BSS s8 wBgRenderType;
BSS s8 bBgRenderType;
BSS s8 D_80153222;
BSS s8 D_80153223;
BSS s16 mdl_treeIterPos;
BSS s16 D_80153226;
BSS s8 wFogSettings[0x20];
BSS s8 bFogSettings[0x1C];
BSS s32 gCurrentFogSettings;
BSS s8 texPannerMainU[0x40];
BSS s8 texPannerMainV[0x40];
BSS s8 texPannerAuxU[0x40];
BSS s8 texPannerAuxV[0x40];
BSS s32 mdl_nextTextureAddress;
BSS s16 mdl_currentTransformGroupChildIndex;
BSS s16 D_8015336E;
BSS s32 D_80153370;
BSS s16 D_80153374;
BSS s16 D_80153376;
BSS s8 D_80153378[0x8];
BSS s8 D_80153380[0x20];
BSS s8 mdl_renderTaskLists[0xC];
BSS s32 mdl_renderTaskMode;
BSS s8 mdl_renderTaskCount[0x10];
BSS s8 D_801533C0[0x300];
BSS s8 D_801536C0[0x300];
BSS s8 D_801539C0[0x40];
BSS s8 D_80153A00[0x40];
BSS s32 gCurrentAnimMeshListPtr;
BSS s32 gAnimModelFogEnabled;
BSS s8 gAnimModelFogR;
BSS char D_80153A49;
BSS char D_80153A4A;
BSS s8 D_80153A4B;
BSS s8 gAnimModelFogG;
BSS char D_80153A4D;
BSS char D_80153A4E;
BSS s8 D_80153A4F;
BSS s8 gAnimModelFogB;
BSS char D_80153A51;
BSS char D_80153A52;
BSS s8 D_80153A53;
BSS s8 gAnimModelFogA;
BSS char D_80153A55;
BSS char D_80153A56;
BSS s8 D_80153A57;
BSS s32 gAnimModelFogStart;
BSS s32 gAnimModelFogEnd;
BSS s8 D_80153A60[0x8];
BSS s8 gAnimRotMtx[0x40];
BSS s8 gAnimScaleMtx[0x40];
BSS s8 gAnimTranslateMtx[0x40];
BSS s8 gAnimRotScaleMtx[0x40];
BSS s8 gAnimTreeRoot[0x8];
BSS s8 gWorldEntityModelList[0x400];
BSS s8 gBattleEntityModelList[0x400];
BSS s32 gCurrentEntityModelList;
BSS s32 D_80154374;
BSS s32 entity_fog_enabled;
BSS s8 entity_fog_red;
BSS char D_8015437D;
BSS char D_8015437E;
BSS s8 D_8015437F;
BSS s8 entity_fog_green;
BSS char D_80154381;
BSS char D_80154382;
BSS s8 D_80154383;
BSS s8 entity_fog_blue;
BSS char D_80154385;
BSS char D_80154386;
BSS s8 D_80154387;
BSS s8 entity_fog_alpha;
BSS char D_80154389;
BSS char D_8015438A;
BSS s8 D_8015438B;
BSS s32 entity_fog_dist_min;
BSS s32 entity_fog_dist_max;
BSS char D_80154394[0xC];
BSS s8 gWorldDynamicEntityList[0x40];
BSS s8 gBattleDynamicEntityList[0x40];
BSS s32 gCurrentDynamicEntityListPtr;
BSS char D_80154424[0xC];
BSS s8 gMessageBuffers[0x800];
BSS s8 gMessagePrinters[0x1008];
BSS s8 gMessageMsgVars[0x60];
BSS s8 D_80155C98[0x8];
BSS s8 gMessageWindowProjMatrix[0x80];
BSS s32 D_80155D20;
BSS char D_8015DD24[0x50];
BSS s32 msg_drawState;
BSS char D_8015DD78[0x8];
BSS s32 D_80155D80;
BSS s32 D_80155D84;
BSS s32 D_80155D88;
BSS s16 D_80155D8C;
BSS s16 D_80155D8E;
BSS s8 D_80155D90[0x10];
BSS s8 D_80155DA0[0x400];
BSS s8 D_801561A0[0x400];
BSS s32 D_801565A0;
BSS s16 D_801565A4;
BSS s16 D_801565A6;
BSS s32 D_801565A8;
BSS char D_801565AC[0x4];
BSS s8 D_801565B0[0x330];
BSS s32 D_801568E0;
BSS s32 D_801568E4;
BSS s32 D_801568E8;
BSS s32 D_801568EC;
BSS s32 D_801568F0;
BSS s32 D_801568F4;
BSS s32 D_801568F8;
BSS char D_801568FC[0x4];
BSS s32 screen_overlay_frontType;
BSS s32 screen_overlay_frontZoom;
BSS s32 screen_overlay_backType;
BSS s32 screen_overlay_backZoom;
BSS s8 D_80156910[0x10];
BSS s8 D_80156920[0x28];
BSS s8 D_80156948[0x8];
BSS s32 fold_vtxBuf;
BSS s32 D_80156954;
BSS s8 D_80156958[0x8];
BSS s8 D_80156960[0x8];
BSS s8 D_80156968[0x8];
BSS s8 D_80156970[0x10];
BSS s8 fold_groupDescriptors[0x5A0];
BSS s8 fold_gfxDataCache[0x40];
BSS s8 D_80156F60[0x500];
BSS s8 D_80157460[0x500];
BSS s32 gHudElements;
BSS s32 D_80157964;
BSS s32 D_80157968;
BSS char D_8015796C[0x4];
BSS s8 D_80157970[0x600];
BSS s8 D_80157F70[0x600];
BSS s32 D_80158570;
BSS s32 D_80158574;
BSS char D_80158578[0x8];
BSS s8 D_80158580[0x600];
BSS s8 D_80158B80[0x600];
BSS s8 D_80159180[0x10];
BSS s8 wTriggerList[0x100];
BSS s8 bTriggerList[0x100];
BSS s32 gCurrentTriggerListPtr;
BSS char D_80159394[0xC];
BSS s8 D_801593A0[0x1FE];
BSS s16 D_8015959E;
BSS s8 D_801595A0[0x20];
BSS s8 D_801595C0[0xB0];
BSS s8 D_80159670[0xB0];
BSS s8 D_80159720[0xB0];
BSS s8 D_801597D0[0xB0];
BSS s8 D_80159880[0x20];
BSS s8 D_801598A0[0x118];
BSS s8 D_801599B8[0x118];
BSS s32 D_80159AD0;
BSS s32 D_80159AD4;
BSS char D_80159AD8[0x8];
BSS s16 gMusicUnkVolume;
BSS s16 gMusicTargetVolume;
BSS s16 gMusicUnkVolume2;
BSS s16 gMusicCurrentVolume;
BSS char D_80159AE8[0x8];
BSS s8 gMusicSettings[0x18];
BSS s8 D_80159B08[0x48];
BSS s8 D_80159B50[0x200];
BSS s32 gWindows;
BSS s8 D_80159D54[0xC];
BSS s8 D_80159D60[0x110];
BSS s8 D_80159E70[0xC];
BSS char D_80159E7C;
BSS char D_80159E7D;
BSS char D_80159E7E;
BSS char D_80159E7F;
BSS s8 D_80159E80[0x190];
BSS s8 D_8015A010[0x60];
BSS s8 D_8015A070[0xC];
BSS s8 D_8015A07C[0x164];
BSS char D_8015A1E0;
BSS char D_8015A1E1;
BSS char D_8015A1E2;
BSS char D_8015A1E3;
BSS s8 D_8015A1E4[0xD8];
BSS s16 D_8015A2BC;
BSS s16 D_8015A2BE;
BSS char D_8015A2C0[0x10];
BSS s8 D_8015A2D0[0xA0];
BSS s8 D_8015A370[0x1E0];
BSS s8 gCollisionStatus[0x28];
BSS s16 D_8015A578;
BSS s16 D_8015A57A;
BSS char D_8015A57C[0x14];
BSS s8 mdl_textureHandles[0x2200];
BSS s8 D_8015C790[0x30];
BSS s8 D_8015C7C0[0x10];
BSS s16 D_8015C7D0;
BSS s16 D_8015C7D2;
BSS char D_8015C7D4[0x4];
BSS s32 D_8015C7D8;
BSS char D_8015C7DC[0x4];
BSS s32 D_8015C7E0;

View File

@ -1,8 +1,8 @@
#include "common.h"
#include "hud_element.h"
#include "nu/nusys.h"
// TODO: probably BSS
extern HudElement** hudElements;
extern HudElementList* gHudElements;
s32 D_8014EFC0[] = { 0x00000000, };
s32 D_8014EFC4[] = { 0x00011000, };
@ -11,25 +11,68 @@ HudElementAnim hud_element_defaultAnim = {
he_End,
};
s32 D_8014EFCC[] = { 0x00080008, 0x00200010, 0x00100080, 0x00180018, 0x01200020, 0x00200200, 0x00300030, 0x04800040,
0x00400800, 0x00080010, 0x00400010, 0x00080040, 0x00100018, 0x00C00010, 0x00200100, 0x00400020,
0x04000020, 0x00100100, 0x000C000C, 0x00480030, 0x00180240, 0x00200008, 0x00800018, 0x00080060,
0x00400010, 0x02000010, 0x00400200, 0x00C00020, 0x0C000028, 0x00280320, 0x00180010, 0x00C00020,
0x00280280, 0x00280010, 0x01400028, 0x001801E0, 0x00200018, 0x01800014, 0x00200000, 0x00220020,
0x00000028, 0x002803C8, 0x00000000, 0xED000000, 0x005003C0, 0xE7000000, 0x00000000, 0xE3000A11,
0x00002CF0, 0xE2001E01, 0x00000000, 0xDF000000, 0x00000000, 0xED000000, 0x005003C0, 0xE7000000,
0x00000000, 0xE3000A11, 0x00002CF0, 0xE2001E01, 0x00000000, 0xDF000000, 0x00000000,
};
s32 D_8014F0C8[] = { 0xFFF40000, 0x00000000, 0x08000800, 0x000000FF, 0x00330000, 0x00000000, 0x00000800, 0x000000FF,
0x0033003F, 0x00000000, 0x00000000, 0x000000FF, 0xFFF4003F, 0x00000000, 0x08000000, 0x000000FF,
0xFFFFFF00, 0xFFFFFF00,
};
s32 D_8014F110[] = { 0x00000000, 0x00000000, 0x00000000, 0x00000000 };
Vec3s gHudElementSizes[26] = {
{ 8, 8, 32 },
{ 16, 16, 128 },
{ 24, 24, 288 },
{ 32, 32, 512 },
{ 48, 48, 1152 },
{ 64, 64, 2048 },
{ 8, 16, 64 },
{ 16, 8, 64 },
{ 16, 24, 192 },
{ 16, 32, 256 },
{ 64, 32, 1024 },
{ 32, 16, 256 },
{ 12, 12, 72 },
{ 48, 24, 576 },
{ 32, 8, 128 },
{ 24, 8, 96 },
{ 64, 16, 512 },
{ 16, 64, 512 },
{ 192, 32, 3072 },
{ 40, 40, 800 },
{ 24, 16, 192 },
{ 32, 40, 640 },
{ 40, 16, 320 },
{ 40, 24, 480 },
{ 32, 24, 384 },
{ 20, 32, 0 }
};
s32 D_8014F062[] = {
0x00220020, 0x00000028, 0x002803C8, 0x00000000, 0xED000000, 0x005003C0, 0xE7000000,
0x00000000, 0xE3000A11, 0x00002CF0, 0xE2001E01, 0x00000000, 0xDF000000, 0x00000000, 0xED000000, 0x005003C0,
0xE7000000, 0x00000000, 0xE3000A11, 0x00002CF0, 0xE2001E01, 0x00000000, 0xDF000000, 0x00000000,
};
s32 D_8014F0C8[] = {
0xFFF40000, 0x00000000, 0x08000800, 0x000000FF, 0x00330000, 0x00000000, 0x00000800, 0x000000FF,
0x0033003F, 0x00000000, 0x00000000, 0x000000FF, 0xFFF4003F, 0x00000000, 0x08000000, 0x000000FF,
};
Lights1 D_8014F108 = {
.a = {
.l = {
.col = { 255, 255, 255 },
.colc = { 255, 255, 255 },
}
},
.l = {
{
.l = {
.col = { 0, 0, 0 },
.colc = { 0, 0, 0 },
.dir = { 0, 0, 0},
}
}
}
};
extern s32 D_801512B4; // no of hud elements?
extern s32 D_80159180;
extern HudElement* D_80156F60;
extern HudElement* D_80157460;
extern HudElementList D_80156F60;
extern HudElementList D_80157460;
extern void* D_8015133C;
extern void* D_80157968;
extern void* D_801512C8;
@ -39,9 +82,9 @@ extern void* D_80157F70;
extern void* D_80158574;
extern void* D_80158580;
extern void* D_80158B80;
extern s32 D_80157964;
extern s32 D_80158570;
extern s32 D_80151314;
extern s32* D_80157964;
extern s32* D_80158570;
extern s32* D_80151314;
INCLUDE_ASM(void, "hud_element", load_hud_element, HudElement* hudElement, const HudElementAnim* anim);
@ -66,13 +109,13 @@ void init_hud_element_list(void) {
D_80158570 = NULL;
}
hudElements = &D_80156F60;
gHudElements = &D_80156F60;
D_8015133C = &D_80157968;
D_801512C8 = &D_80157970;
D_801512D0 = &D_80157F70;
D_80151314 = D_80157964;
} else {
hudElements = &D_80157460;
gHudElements = &D_80157460;
D_8015133C = &D_80158574;
D_801512C8 = &D_80158580;
D_801512D0 = &D_80158B80;
@ -103,41 +146,31 @@ void func_801413F8(void) {
gCameras[3].flags &= ~0x6;
}
#ifdef NON_EQUIVALENT
s32 create_hud_element(const HudElementAnim* anim) {
HudElement *hudElement;
HudElement* hudElement;
s32 id;
for (id = 0; id < 320; id++) {
if (hudElements[id] == NULL) {
for (id = 0; id < ARRAY_COUNT(*gHudElements); id++) {
if ((*gHudElements)[id] == NULL) {
break;
}
}
ASSERT(id < 320);
ASSERT(id < ARRAY_COUNT(*gHudElements));
hudElements[id] = hudElement = heap_malloc(sizeof(HudElement));
(*gHudElements)[id] = hudElement = heap_malloc(sizeof(HudElement));
D_801512B4 += 1;
ASSERT(hudElement != NULL);
hudElement->flags = 1;
hudElement->flags.as_word = 1;
hudElement->readPos = anim;
if (anim == NULL) {
hudElement->readPos = hud_element_defaultAnim;
hudElement->readPos = &hud_element_defaultAnim;
}
hudElement->updateTimer = 1;
hudElement->drawSizePreset = -1;
hudElement->tileSizePreset = -1;
hudElement->screenPosOffset.x = 0;
hudElement->screenPosOffset.y = 0;
hudElement->worldPosOffset.x = 0;
hudElement->worldPosOffset.y = 0;
hudElement->worldPosOffset.z = 0;
hudElement->opacity = 255;
hudElement->tint.r = 255;
hudElement->tint.b = 255;
hudElement->tint.g = 255;
hudElement->renderPosX = 0;
hudElement->renderPosY = 0;
hudElement->ptrPropertyList = (s32*) anim; // TODO: what
@ -145,22 +178,56 @@ s32 create_hud_element(const HudElementAnim* anim) {
hudElement->heightScale = X10(1.0f);
hudElement->anim = hudElement->readPos;
hudElement->uniformScale = 1.0f;
hudElement->screenPosOffset.x = 0;
hudElement->screenPosOffset.y = 0;
hudElement->worldPosOffset.x = 0;
hudElement->worldPosOffset.y = 0;
hudElement->worldPosOffset.z = 0;
hudElement->opacity = 255;
hudElement->tint.r = 255;
hudElement->tint.g = 255;
hudElement->tint.b = 255;
if (gGameStatusPtr->isBattle) {
hudElement->flags |= 0x400;
hudElement->flags.as_word |= 0x400;
id |= 0x800;
}
load_hud_element(hudElement, hudElement->readPos);
while (hud_element_update(hudElement) != 0) {}
while (hud_element_update(hudElement) != 0);
return id;
}
#else
INCLUDE_ASM(s32, "hud_element", create_hud_element, const HudElementAnim* anim);
#endif
INCLUDE_ASM(void, "hud_element", update_hud_elements, void);
// TODO not ideal match - should be able to put loop iterator in the loop def, but can't
void update_hud_elements(void) {
s32 i;
for (i = 0; i < ARRAY_COUNT(*gHudElements);) {
HudElement* elem = (*gHudElements)[i];
if (elem != NULL && (elem->flags.as_word != 0) && !(elem->flags.as_word & 2)) {
if (elem->flags.as_word & 0x40000) {
free_hud_element(i);
i++;
} else if (elem->readPos != 0) {
elem->updateTimer--;
if (elem->updateTimer == 0) {
while (hud_element_update(elem) != 0);
}
if (elem->flags.as_word & 0x100) {
elem->unkImgScale[0] += elem->unk_20;
elem->unkImgScale[1] += elem->unk_24;
}
i++;
} else {
break;
}
} else {
i++;
}
}
}
INCLUDE_ASM(s32, "hud_element", hud_element_update, HudElement* hudElement);
@ -172,25 +239,196 @@ INCLUDE_ASM(void, "hud_element", render_hud_element, HudElement* hudElement);
INCLUDE_ASM(void, "hud_element", render_hud_elements_world, void);
INCLUDE_ASM(void, "hud_element", func_80143C48, s32 arg0, s32 arg1, s32 arg2);
void func_80143C48(s32 elemID, s32 arg1, s32 camID) {
Camera* camera = &gCameras[camID];
if (arg1 > 0) {
if (camera->flags == 0 || (camera->flags & 2)) {
return;
}
gCurrentCamID = camID;
gSPViewport(gMasterGfxPos++, &camera->vp);
gSPClearGeometryMode(gMasterGfxPos++, G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN |
G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH);
gSPTexture(gMasterGfxPos++, 0, 0, 0, G_TX_RENDERTILE, G_OFF);
gDPPipelineMode(gMasterGfxPos++, G_PM_NPRIMITIVE);
gDPSetTextureLUT(gMasterGfxPos++, G_TT_NONE);
gDPSetTextureFilter(gMasterGfxPos++, G_TF_BILERP);
gDPSetCombineMode(gMasterGfxPos++, G_CC_SHADE, G_CC_SHADE);
gDPSetRenderMode(gMasterGfxPos++, G_RM_OPA_SURF, G_RM_OPA_SURF2);
gSPClipRatio(gMasterGfxPos++, FRUSTRATIO_2);
gDPPipeSync(gMasterGfxPos++);
gDPSetCycleType(gMasterGfxPos++, G_CYC_FILL);
gDPSetColorImage(gMasterGfxPos++, G_IM_FMT_RGBA, G_IM_SIZ_16b, SCREEN_WIDTH, osVirtualToPhysical(nuGfxZBuffer));
gDPSetFillColor(gMasterGfxPos++, 0xFFFCFFFC);
gDPFillRectangle(gMasterGfxPos++, camera->viewportStartX, camera->viewportStartY,
camera->viewportStartX + camera->viewportW - 1,
camera->viewportStartY + camera->viewportH - 1);
gDPPipeSync(gMasterGfxPos++);
gDPSetColorImage(gMasterGfxPos++, G_IM_FMT_RGBA, G_IM_SIZ_16b, SCREEN_WIDTH, osVirtualToPhysical(nuGfxCfb_ptr));
gDPPipeSync(gMasterGfxPos++);
guOrthoF(camera->perspectiveMatrix, 0.0f, 320.0f, -240.0f, 0.0f, -1000.0f, 1000.0f, 1.0f);
guMtxF2L(camera->perspectiveMatrix, &gDisplayContext->camPerspMatrix[gCurrentCamID]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->camPerspMatrix[gCurrentCamID], G_MTX_NOPUSH | G_MTX_LOAD |
G_MTX_PROJECTION);
gDPSetScissor(gMasterGfxPos++, G_SC_NON_INTERLACE, 12, 20, 308, 220);
gDPPipeSync(gMasterGfxPos++);
gDPSetCycleType(gMasterGfxPos++, G_CYC_1CYCLE);
gSPClearGeometryMode(gMasterGfxPos++, G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING |
G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH);
gSPSetGeometryMode(gMasterGfxPos++, G_ZBUFFER | G_SHADE | G_LIGHTING | G_SHADING_SMOOTH);
gSPSetLights1(gMasterGfxPos++, D_8014F108);
gSPTexture(gMasterGfxPos++, -1, -1, 0, G_TX_RENDERTILE, G_ON);
gDPSetTextureLOD(gMasterGfxPos++, G_TL_TILE);
gDPSetTexturePersp(gMasterGfxPos++, G_TP_PERSP);
gDPSetColorDither(gMasterGfxPos++, G_CD_DISABLE);
gDPSetTextureDetail(gMasterGfxPos++, G_TD_CLAMP);
gDPSetTextureConvert(gMasterGfxPos++, G_TC_FILT);
gDPSetCombineKey(gMasterGfxPos++, G_CK_NONE);
gDPSetAlphaCompare(gMasterGfxPos++, G_AC_NONE);
}
if (elemID >= 0) {
HudElement* elem;
elemID &= ~0x800;
elem = (*gHudElements)[elemID];
if (elem != NULL) {
if (elem->flags.as_word != 0 && !(elem->flags.as_word & 2)) {
if (!(elem->flags.as_word & 0x10200000)) {
if (elem->flags.as_word & 0x10000) {
if (!(elem->flags.as_word & 0x40) && (elem->drawSizePreset >= 0) && (elem->flags.as_word & 0x80)) {
render_hud_element(elem);
}
}
}
}
}
}
}
void func_80144218(s32 arg0) {
func_80143C48(arg0, 1, 3);
func_80143C48(arg0, 1, CAM_CAM3);
}
void func_80144238(s32 arg0) {
func_80143C48(arg0, 0, 3);
func_80143C48(arg0, 0, CAM_CAM3);
}
void func_80144258(s32 arg0) {
func_80143C48(arg0, 1, 1);
func_80143C48(arg0, 1, CAM_BATTLE);
}
void func_80144278(s32 arg0) {
func_80143C48(arg0, 0, 1);
func_80143C48(arg0, 0, CAM_BATTLE);
}
INCLUDE_ASM(void, "hud_element", draw_hud_element, s32 id, s32 clipMode);
void draw_hud_element(s32 id, s32 clipMode) {
HudElement* elem = (*gHudElements)[id & ~0x800];
s32 texSizeX, texSizeY;
s32 drawSizeX, drawSizeY;
s32 offsetX, offsetY;
s32 preset;
if ((elem->flags.as_word != 0) && !(elem->flags.as_word & 2)) {
if (!(elem->flags.as_word & 0x10200000) && (elem->drawSizePreset >= 0)) {
if (clipMode != 1) {
if (clipMode == 0) {
gDPSetScissor(gMasterGfxPos++, G_SC_NON_INTERLACE, 12, 20, 308, 220);
}
gDPPipeSync(gMasterGfxPos++);
gDPSetCycleType(gMasterGfxPos++, G_CYC_1CYCLE);
gDPSetTexturePersp(gMasterGfxPos++, G_TP_NONE);
gDPSetTextureLOD(gMasterGfxPos++, G_TL_TILE);
gDPSetTextureDetail(gMasterGfxPos++, G_TD_CLAMP);
gDPSetTextureConvert(gMasterGfxPos++, G_TC_FILT);
gDPSetCombineKey(gMasterGfxPos++, G_CK_NONE);
gDPSetAlphaCompare(gMasterGfxPos++, G_AC_NONE);
gDPNoOp(gMasterGfxPos++);
gDPSetColorDither(gMasterGfxPos++, G_CD_DISABLE);
gDPSetAlphaDither(gMasterGfxPos++, G_AD_DISABLE);
gSPTexture(gMasterGfxPos++, -1, -1, 0, G_TX_RENDERTILE, G_ON);
}
if (!(elem->flags.as_word & 0x100)) {
if (!(elem->flags.as_word & 0x100000)) {
preset = elem->tileSizePreset;
texSizeX = gHudElementSizes[preset].x;
texSizeY = gHudElementSizes[preset].y;
} else {
texSizeX = elem->customImageSize.x;
texSizeY = elem->customImageSize.y;
}
if (!(elem->flags.as_word & 0x10)) {
if (!(elem->flags.as_word & 0x100000)) {
drawSizeX = gHudElementSizes[elem->drawSizePreset].x;
drawSizeY = gHudElementSizes[elem->drawSizePreset].y;
} else {
drawSizeX = elem->customDrawSize.x;
drawSizeY = elem->customDrawSize.y;
}
} else {
drawSizeX = elem->sizeX;
drawSizeY = elem->sizeY;
}
do {
offsetX = -drawSizeX / 2;
offsetY = -drawSizeY / 2;
} while (0); // TODO required to match
if (!(elem->flags.as_word & 0x800)) {
if (elem->flags.as_word & 0x20000000) {
draw_rect_hud_element(elem, texSizeX, texSizeY, drawSizeX, drawSizeY, offsetX, offsetY, TRUE, TRUE);
}
draw_rect_hud_element(elem, texSizeX, texSizeY, drawSizeX, drawSizeY, offsetX, offsetY, TRUE, FALSE);
} else {
if (elem->flags.as_word & 0x20000000) {
draw_rect_hud_element(elem, texSizeX, texSizeY, drawSizeX, drawSizeY, offsetX, offsetY, FALSE, TRUE);
}
draw_rect_hud_element(elem, texSizeX, texSizeY, drawSizeX, drawSizeY, offsetX, offsetY, FALSE, FALSE);
}
} else {
f32 xScaled, yScaled;
if (!(elem->flags.as_word & 0x100000)) {
preset = elem->tileSizePreset;
texSizeX = gHudElementSizes[preset].x;
texSizeY = gHudElementSizes[preset].y;
} else {
texSizeX = elem->customImageSize.x;
texSizeY = elem->customImageSize.y;
}
drawSizeX = elem->unkImgScale[0];
drawSizeY = elem->unkImgScale[1];
offsetX = -elem->unkImgScale[0] / 2;
offsetY = -elem->unkImgScale[1] / 2;
xScaled = (f32) drawSizeX / (f32) texSizeX;
yScaled = (f32) drawSizeY / (f32) texSizeY;
xScaled = 1.0f / xScaled;
yScaled = 1.0f / yScaled;
elem->widthScale = X10(xScaled);
elem->heightScale = X10(yScaled);
if (elem->flags.as_word & 0x20000000) {
draw_rect_hud_element(elem, texSizeX, texSizeY, drawSizeX, drawSizeY, offsetX, offsetY, FALSE, TRUE);
}
draw_rect_hud_element(elem, texSizeX, texSizeY, drawSizeX, drawSizeY, offsetX, offsetY, FALSE, FALSE);
}
}
}
}
void draw_hud_element_clipped(s32 id) {
draw_hud_element(id, 0);
@ -205,7 +443,7 @@ void draw_hud_element_3(s32 id) {
}
void set_hud_element_anim(s32 id, const HudElementAnim* anim) {
HudElement* hudElement = hudElements[id & ~0x800];
HudElement* hudElement = (*gHudElements)[id & ~0x800];
if (anim == NULL) {
anim = &hud_element_defaultAnim;
@ -230,58 +468,91 @@ void set_hud_element_anim(s32 id, const HudElementAnim* anim) {
}
HudElementAnim* get_hud_element_anim(s32 id) {
return hudElements[id & ~0x800]->anim;
return (*gHudElements)[id & ~0x800]->anim;
}
HudElement* get_hud_element(s32 id) {
return hudElements[id & ~0x800];
return (*gHudElements)[id & ~0x800];
}
void free_hud_element(s32 id) {
if (hudElements[id & ~0x800]->flags.as_word & 0x10000) {
if ((*gHudElements)[id & ~0x800]->flags.as_word & 0x10000) {
free_hud_element_transform(id & ~0x800);
}
heap_free(hudElements[id & ~0x800]);
hudElements[id & ~0x800] = NULL;
heap_free((*gHudElements)[id & ~0x800]);
(*gHudElements)[id & ~0x800] = NULL;
D_801512B4--;
}
void set_hud_element_render_pos(s32 id, s32 x, s32 y) {
HudElement* hudElement = hudElements[id & ~0x800];
HudElement* hudElement = (*gHudElements)[id & ~0x800];
hudElement->renderPosX = x;
hudElement->renderPosY = y;
}
void get_hud_element_render_pos(s32 id, s32* x, s32* y) {
HudElement* hudElement = hudElements[id & ~0x800];
HudElement* hudElement = (*gHudElements)[id & ~0x800];
*x = hudElement->renderPosX;
*y = hudElement->renderPosY;
}
void set_hud_element_render_depth(s32 id, s32 z) {
hudElements[id & ~0x800]->worldPosOffset.z = z;
(*gHudElements)[id & ~0x800]->worldPosOffset.z = z;
}
void set_hud_element_flags(s32 id, s32 flags) {
hudElements[id & ~0x800]->flags.as_word |= flags;
(*gHudElements)[id & ~0x800]->flags.as_word |= flags;
}
void clear_hud_element_flags(s32 id, s32 flags) {
hudElements[id & ~0x800]->flags.as_word &= ~flags;
(*gHudElements)[id & ~0x800]->flags.as_word &= ~flags;
}
INCLUDE_ASM(void, "hud_element", ALT_clear_hud_element_cache, void);
INCLUDE_ASM(void, "hud_element", set_hud_element_scale, s32 index, f32 scale);
void set_hud_element_scale(s32 index, f32 scale) {
HudElement* elem = (*gHudElements)[index & ~0x800];
s32 drawSizeX;
s32 drawSizeY;
s32 imgSizeX;
s32 imgSizeY;
f32 xScaled, yScaled;
elem->uniformScale = scale;
if (!(elem->flags.as_word & 0x100000)) {
imgSizeX = gHudElementSizes[elem->tileSizePreset].x;
imgSizeY = gHudElementSizes[elem->tileSizePreset].y;
drawSizeX = gHudElementSizes[elem->drawSizePreset].x;
drawSizeY = gHudElementSizes[elem->drawSizePreset].y;
} else {
imgSizeX = elem->customImageSize.x;
imgSizeY = elem->customImageSize.y;
drawSizeX = elem->customDrawSize.x;
drawSizeY = elem->customDrawSize.y;
}
elem->sizeX = drawSizeX * scale;
elem->sizeY = drawSizeY * scale;
elem->flags.as_word &= ~0x100;
elem->flags.as_word |= 0x800 | 0x10;
xScaled = ((f32) drawSizeX / (f32) imgSizeX) * scale;
yScaled = ((f32) drawSizeY / (f32) imgSizeY) * scale;
xScaled = 1.0f / xScaled;
yScaled = 1.0f / yScaled;
elem->widthScale = X10(xScaled);
elem->heightScale = X10(yScaled);
}
void set_hud_element_size(s32 id, s8 size) {
HudElement* hudElement = hudElements[id & ~0x800];
HudElement* hudElement = (*gHudElements)[id & ~0x800];
hudElement->widthScale = 0x400;
hudElement->heightScale = 0x400;
hudElement->widthScale = 1024;
hudElement->heightScale = 1024;
hudElement->tileSizePreset = size;
hudElement->drawSizePreset = size;
hudElement->uniformScale = 1.0f;
@ -290,18 +561,18 @@ void set_hud_element_size(s32 id, s8 size) {
}
s32 func_80144E4C(s32 id) {
return hudElements[id & ~0x800]->flags.as_bitfields.f4;
return (*gHudElements)[id & ~0x800]->flags.as_bitfields.f4;
}
void func_80144E74(s32 id, s32 arg1) {
HudElement* hudElement = hudElements[id & ~0x800];
HudElement* hudElement = (*gHudElements)[id & ~0x800];
hudElement->flags.as_word &= ~0xF000000;
hudElement->flags.as_word |= arg1 << 24;
}
void set_hud_element_alpha(s32 id, s32 opacity) {
HudElement* hudElement = hudElements[id & ~0x800];
HudElement* hudElement = (*gHudElements)[id & ~0x800];
hudElement->flags.as_word |= 0x20;
hudElement->opacity = opacity;
@ -312,7 +583,7 @@ void set_hud_element_alpha(s32 id, s32 opacity) {
}
void set_hud_element_tint(s32 id, s32 r, s32 g, s32 b) {
HudElement* hudElement = hudElements[id & ~0x800];
HudElement* hudElement = (*gHudElements)[id & ~0x800];
hudElement->tint.r = r;
hudElement->tint.g = g;
@ -320,7 +591,7 @@ void set_hud_element_tint(s32 id, s32 r, s32 g, s32 b) {
}
void create_hud_element_transform_A(s32 id) {
HudElement* element = hudElements[id & ~0x800];
HudElement* element = (*gHudElements)[id & ~0x800];
HudTransform* transform = general_heap_malloc(sizeof(*transform));
element->hudTransform = transform;
@ -342,7 +613,7 @@ void create_hud_element_transform_A(s32 id) {
}
void create_hud_element_transform_B(s32 id) {
HudElement* element = hudElements[id & ~0x800];
HudElement* element = (*gHudElements)[id & ~0x800];
HudTransform* transform = general_heap_malloc(sizeof(*transform));
element->hudTransform = transform;
@ -362,7 +633,7 @@ void create_hud_element_transform_B(s32 id) {
}
void create_hud_element_transform_C(s32 id) {
HudElement* element = hudElements[id & ~0x800];
HudElement* element = (*gHudElements)[id & ~0x800];
HudTransform* transform = general_heap_malloc(sizeof(*transform));
element->hudTransform = transform;
@ -382,20 +653,20 @@ void create_hud_element_transform_C(s32 id) {
}
void free_hud_element_transform(s32 id) {
HudElement* hudElement = hudElements[id & ~0x800];
s32* hudTransform = hudElement->hudTransform;
HudElement* hudElement = (*gHudElements)[id & ~0x800];
HudTransform* hudTransform = hudElement->hudTransform;
if (!(hudElement->flags.as_word & 0x20000)) {
func_8013A854(*hudTransform);
func_8013A854(hudTransform->unk_00);
}
heap_free(hudElement->hudTransform);
hudElement->hudTransform = NULL;
hudElement->flags.as_word &= ~0x40030000;
hudElement->flags.as_word &= ~(0x40000000 | 0x20000 | 0x10000);
}
void set_hud_element_transform_pos(s32 id, f32 x, f32 y, f32 z) {
HudElement* element = hudElements[id & ~0x800];
HudElement* element = (*gHudElements)[id & ~0x800];
HudTransform* transform = element->hudTransform;
if (element->flags.as_word & 0x10000) {
@ -406,7 +677,7 @@ void set_hud_element_transform_pos(s32 id, f32 x, f32 y, f32 z) {
}
void set_hud_element_transform_scale(s32 id, f32 x, f32 y, f32 z) {
HudElement* element = hudElements[id & ~0x800];
HudElement* element = (*gHudElements)[id & ~0x800];
HudTransform* transform = element->hudTransform;
if (element->flags.as_word & 0x10000) {
@ -417,7 +688,7 @@ void set_hud_element_transform_scale(s32 id, f32 x, f32 y, f32 z) {
}
void set_hud_element_transform_rotation(s32 id, f32 x, f32 y, f32 z) {
HudElement* element = hudElements[id & ~0x800];
HudElement* element = (*gHudElements)[id & ~0x800];
HudTransform* transform = element->hudTransform;
if (element->flags.as_word & 0x10000) {
@ -428,7 +699,7 @@ void set_hud_element_transform_rotation(s32 id, f32 x, f32 y, f32 z) {
}
void set_hud_element_transform_rotation_pivot(s32 id, s32 dx, s32 dy) {
HudElement* element = hudElements[id & ~0x800];
HudElement* element = (*gHudElements)[id & ~0x800];
HudTransform* transform = element->hudTransform;
if (element->flags.as_word & 0x10000) {
@ -437,13 +708,9 @@ void set_hud_element_transform_rotation_pivot(s32 id, s32 dx, s32 dy) {
}
}
#ifdef NON_EQUIVALENT
void copy_world_hud_element_ref_to_battle(s32 worldID, s32 battleID) {
D_80157460[battleID & ~0x800].flags.as_word = D_80156F60[worldID & ~0x800].flags.as_word;
D_80157460[battleID & ~0x800] = D_80156F60[worldID & ~0x800];
}
#else
INCLUDE_ASM(void, "hud_element", copy_world_hud_element_ref_to_battle, s32 worldID, s32 battleID);
#endif
void set_hud_element_nonworld_cache(void* base, s32 size) {
D_8014EFC0[0] = (s32)base;

View File

@ -101,15 +101,17 @@ typedef struct HudElement {
/* 0x42 */ Vec3b worldPosOffset;
/* 0x45 */ s8 drawSizePreset;
/* 0x46 */ s8 tileSizePreset;
/* 0x47 */ u8 updateTimer;
/* 0x47 */ s8 updateTimer;
/* 0x48 */ u8 sizeX; /* screen size? */
/* 0x49 */ u8 sizeY; /* screen size? */
/* 0x4A */ u8 opacity;
/* 0x4B */ struct { s8 r; s8 g; s8 b; } tint;
/* 0x4E */ Vec2b customImageSize;
/* 0x40 */ Vec2b customDrawSize;
/* 0x4B */ Color_RGB8 tint;
/* 0x4E */ Vec2bu customImageSize;
/* 0x40 */ Vec2bu customDrawSize;
} HudElement; // size = 0x54
typedef HudElement* HudElementList[320];
extern HudElementAnim D_80104A28[];
extern HudElementAnim D_80108558[];
extern HudElementAnim D_80108A64[];
@ -157,10 +159,10 @@ void draw_rect_hud_element(
HudElement* hudElement,
s32 texSizeX,
s32 texSizeY,
s32 drawSizeX,
s32 drawSizeY,
s32 offsetX,
s32 offsetY,
s16 drawSizeX,
s16 drawSizeY,
s16 offsetX,
s16 offsetY,
s32 clamp,
s32 dropShadow
);

View File

@ -1,5 +1,15 @@
#include "end_00.h"
typedef struct End18 {
/* 0x00 */ s32 initialAnim;
/* 0x04 */ s32** animList;
/* 0x08 */ Vec3f pos;
/* 0x14 */ f32 yaw;
} End18; // size = 0x18
extern s32 spr_allocateBtlComponentsOnWorldHeap;
extern End18 D_80244D74_DFB774[];
INCLUDE_ASM(s32, "world/area_end/end_00/DF6A20", func_80240020_DF6A20);
INCLUDE_ASM(s32, "world/area_end/end_00/DF6A20", func_80240270_DF6C70);
@ -42,7 +52,29 @@ ApiStatus func_80242558_DF8F58(Evt* script, s32 isInitialCall) {
INCLUDE_ASM(s32, "world/area_end/end_00/DF6A20", func_80242580_DF8F80);
INCLUDE_ASM(s32, "world/area_end/end_00/DF6A20", func_80242680_DF9080);
ApiStatus func_80242680_DF9080(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
s32 npcID = evt_get_variable(script, *args++);
End18* end18 = &D_80244D74_DFB774[npcID];
NpcBlueprint bp;
Npc* npc;
bp.flags = 0x100;
bp.initialAnim = end18->initialAnim;
bp.onUpdate = NULL;
bp.onRender = NULL;
spr_allocateBtlComponentsOnWorldHeap = TRUE;
npc = get_npc_by_index(_create_npc_standard(&bp, end18->animList));
npc->npcID = npcID;
npc->flags &= ~NPC_FLAG_PARTICLE;
npc->pos.x = end18->pos.x;
npc->pos.y = end18->pos.y;
npc->pos.z = end18->pos.z;
set_npc_yaw(npc, end18->yaw);
return ApiStatus_DONE2;
}
ApiStatus func_80242744_DF9144(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
@ -54,7 +86,9 @@ ApiStatus func_80242744_DF9144(Evt* script, s32 isInitialCall) {
}
ApiStatus func_802427A4_DF91A4(Evt* script, s32 isInitialCall) {
_heap_free(&gSpriteHeapPtr, evt_get_variable(script, *script->ptrReadPos));
Bytecode* args = script->ptrReadPos;
_heap_free(&gSpriteHeapPtr, evt_get_variable(script, *args++));
return ApiStatus_DONE2;
}

0
tools/sortsymz.py Normal file → Executable file
View File

View File

@ -11,8 +11,8 @@ glabel clear_hud_element_cache
/* D7818 80141118 00000000 */ nop
/* D781C 8014111C 3C028015 */ lui $v0, %hi(D_80156F60)
/* D7820 80141120 24426F60 */ addiu $v0, $v0, %lo(D_80156F60)
/* D7824 80141124 3C018015 */ lui $at, %hi(hudElements)
/* D7828 80141128 AC227960 */ sw $v0, %lo(hudElements)($at)
/* D7824 80141124 3C018015 */ lui $at, %hi(gHudElements)
/* D7828 80141128 AC227960 */ sw $v0, %lo(gHudElements)($at)
/* D782C 8014112C 3C028015 */ lui $v0, %hi(D_80157968)
/* D7830 80141130 24427968 */ addiu $v0, $v0, %lo(D_80157968)
/* D7834 80141134 3C018015 */ lui $at, %hi(D_8015133C)
@ -28,8 +28,8 @@ glabel clear_hud_element_cache
.L8014115C:
/* D785C 8014115C 3C028015 */ lui $v0, %hi(D_80157460)
/* D7860 80141160 24427460 */ addiu $v0, $v0, %lo(D_80157460)
/* D7864 80141164 3C018015 */ lui $at, %hi(hudElements)
/* D7868 80141168 AC227960 */ sw $v0, %lo(hudElements)($at)
/* D7864 80141164 3C018015 */ lui $at, %hi(gHudElements)
/* D7868 80141168 AC227960 */ sw $v0, %lo(gHudElements)($at)
/* D786C 8014116C 3C028016 */ lui $v0, %hi(D_80158574)
/* D7870 80141170 24428574 */ addiu $v0, $v0, %lo(D_80158574)
/* D7874 80141174 3C018015 */ lui $at, %hi(D_8015133C)
@ -124,8 +124,8 @@ glabel clear_hud_element_cache
/* D79B4 801412B4 1440FFFA */ bnez $v0, .L801412A0
/* D79B8 801412B8 24630008 */ addiu $v1, $v1, 8
.L801412BC:
/* D79BC 801412BC 3C028015 */ lui $v0, %hi(hudElements)
/* D79C0 801412C0 8C427960 */ lw $v0, %lo(hudElements)($v0)
/* D79BC 801412BC 3C028015 */ lui $v0, %hi(gHudElements)
/* D79C0 801412C0 8C427960 */ lw $v0, %lo(gHudElements)($v0)
/* D79C4 801412C4 2404013F */ addiu $a0, $zero, 0x13f
/* D79C8 801412C8 244204FC */ addiu $v0, $v0, 0x4fc
.L801412CC:

View File

@ -1,17 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel copy_world_hud_element_ref_to_battle
/* DB9B4 801452B4 2402F7FF */ addiu $v0, $zero, -0x801
/* DB9B8 801452B8 00A22824 */ and $a1, $a1, $v0
/* DB9BC 801452BC 00822024 */ and $a0, $a0, $v0
/* DB9C0 801452C0 00042080 */ sll $a0, $a0, 2
/* DB9C4 801452C4 3C028015 */ lui $v0, %hi(D_80156F60)
/* DB9C8 801452C8 00441021 */ addu $v0, $v0, $a0
/* DB9CC 801452CC 8C426F60 */ lw $v0, %lo(D_80156F60)($v0)
/* DB9D0 801452D0 00052880 */ sll $a1, $a1, 2
/* DB9D4 801452D4 3C018015 */ lui $at, %hi(D_80157460)
/* DB9D8 801452D8 00250821 */ addu $at, $at, $a1
/* DB9DC 801452DC AC227460 */ sw $v0, %lo(D_80157460)($at)
/* DB9E0 801452E0 03E00008 */ jr $ra
/* DB9E4 801452E4 00000000 */ nop

View File

@ -1,104 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel create_hud_element
/* D7BA4 801414A4 3C038015 */ lui $v1, %hi(hudElements)
/* D7BA8 801414A8 8C637960 */ lw $v1, %lo(hudElements)($v1)
/* D7BAC 801414AC 27BDFFE0 */ addiu $sp, $sp, -0x20
/* D7BB0 801414B0 AFB20018 */ sw $s2, 0x18($sp)
/* D7BB4 801414B4 0080902D */ daddu $s2, $a0, $zero
/* D7BB8 801414B8 AFB10014 */ sw $s1, 0x14($sp)
/* D7BBC 801414BC 0000882D */ daddu $s1, $zero, $zero
/* D7BC0 801414C0 AFBF001C */ sw $ra, 0x1c($sp)
/* D7BC4 801414C4 AFB00010 */ sw $s0, 0x10($sp)
.L801414C8:
/* D7BC8 801414C8 8C620000 */ lw $v0, ($v1)
/* D7BCC 801414CC 10400006 */ beqz $v0, .L801414E8
/* D7BD0 801414D0 2A220140 */ slti $v0, $s1, 0x140
/* D7BD4 801414D4 26310001 */ addiu $s1, $s1, 1
/* D7BD8 801414D8 2A220140 */ slti $v0, $s1, 0x140
/* D7BDC 801414DC 1440FFFA */ bnez $v0, .L801414C8
/* D7BE0 801414E0 24630004 */ addiu $v1, $v1, 4
/* D7BE4 801414E4 2A220140 */ slti $v0, $s1, 0x140
.L801414E8:
/* D7BE8 801414E8 14400003 */ bnez $v0, .L801414F8
/* D7BEC 801414EC 00000000 */ nop
.L801414F0:
/* D7BF0 801414F0 0805053C */ j .L801414F0
/* D7BF4 801414F4 00000000 */ nop
.L801414F8:
/* D7BF8 801414F8 0C00AB39 */ jal heap_malloc
/* D7BFC 801414FC 24040054 */ addiu $a0, $zero, 0x54
/* D7C00 80141500 00112080 */ sll $a0, $s1, 2
/* D7C04 80141504 3C038015 */ lui $v1, %hi(hudElements)
/* D7C08 80141508 8C637960 */ lw $v1, %lo(hudElements)($v1)
/* D7C0C 8014150C 3C058015 */ lui $a1, %hi(D_801512B4)
/* D7C10 80141510 24A512B4 */ addiu $a1, $a1, %lo(D_801512B4)
/* D7C14 80141514 00832021 */ addu $a0, $a0, $v1
/* D7C18 80141518 8CA30000 */ lw $v1, ($a1)
/* D7C1C 8014151C 0040802D */ daddu $s0, $v0, $zero
/* D7C20 80141520 AC900000 */ sw $s0, ($a0)
/* D7C24 80141524 24630001 */ addiu $v1, $v1, 1
/* D7C28 80141528 16000003 */ bnez $s0, .L80141538
/* D7C2C 8014152C ACA30000 */ sw $v1, ($a1)
.L80141530:
/* D7C30 80141530 0805054C */ j .L80141530
/* D7C34 80141534 00000000 */ nop
.L80141538:
/* D7C38 80141538 24030001 */ addiu $v1, $zero, 1
/* D7C3C 8014153C AE030000 */ sw $v1, ($s0)
/* D7C40 80141540 16400004 */ bnez $s2, .L80141554
/* D7C44 80141544 AE120004 */ sw $s2, 4($s0)
/* D7C48 80141548 3C028015 */ lui $v0, %hi(hud_element_defaultAnim)
/* D7C4C 8014154C 2442EFC8 */ addiu $v0, $v0, %lo(hud_element_defaultAnim)
/* D7C50 80141550 AE020004 */ sw $v0, 4($s0)
.L80141554:
/* D7C54 80141554 A2030047 */ sb $v1, 0x47($s0)
/* D7C58 80141558 8E030004 */ lw $v1, 4($s0)
/* D7C5C 8014155C 3C013F80 */ lui $at, 0x3f80
/* D7C60 80141560 44810000 */ mtc1 $at, $f0
/* D7C64 80141564 2402FFFF */ addiu $v0, $zero, -1
/* D7C68 80141568 A2020045 */ sb $v0, 0x45($s0)
/* D7C6C 8014156C A2020046 */ sb $v0, 0x46($s0)
/* D7C70 80141570 240200FF */ addiu $v0, $zero, 0xff
/* D7C74 80141574 A2000040 */ sb $zero, 0x40($s0)
/* D7C78 80141578 A2000041 */ sb $zero, 0x41($s0)
/* D7C7C 8014157C A2000042 */ sb $zero, 0x42($s0)
/* D7C80 80141580 A2000043 */ sb $zero, 0x43($s0)
/* D7C84 80141584 A2000044 */ sb $zero, 0x44($s0)
/* D7C88 80141588 A202004A */ sb $v0, 0x4a($s0)
/* D7C8C 8014158C A202004B */ sb $v0, 0x4b($s0)
/* D7C90 80141590 A202004C */ sb $v0, 0x4c($s0)
/* D7C94 80141594 A202004D */ sb $v0, 0x4d($s0)
/* D7C98 80141598 3C048007 */ lui $a0, %hi(gGameStatusPtr)
/* D7C9C 8014159C 8C84419C */ lw $a0, %lo(gGameStatusPtr)($a0)
/* D7CA0 801415A0 24020400 */ addiu $v0, $zero, 0x400
/* D7CA4 801415A4 A600003C */ sh $zero, 0x3c($s0)
/* D7CA8 801415A8 A600003E */ sh $zero, 0x3e($s0)
/* D7CAC 801415AC AE12000C */ sw $s2, 0xc($s0)
/* D7CB0 801415B0 AE020034 */ sw $v0, 0x34($s0)
/* D7CB4 801415B4 AE020038 */ sw $v0, 0x38($s0)
/* D7CB8 801415B8 AE030008 */ sw $v1, 8($s0)
/* D7CBC 801415BC E6000030 */ swc1 $f0, 0x30($s0)
/* D7CC0 801415C0 80820070 */ lb $v0, 0x70($a0)
/* D7CC4 801415C4 10400005 */ beqz $v0, .L801415DC
/* D7CC8 801415C8 00000000 */ nop
/* D7CCC 801415CC 8E020000 */ lw $v0, ($s0)
/* D7CD0 801415D0 36310800 */ ori $s1, $s1, 0x800
/* D7CD4 801415D4 34420400 */ ori $v0, $v0, 0x400
/* D7CD8 801415D8 AE020000 */ sw $v0, ($s0)
.L801415DC:
/* D7CDC 801415DC 8E050004 */ lw $a1, 4($s0)
/* D7CE0 801415E0 0C04FCD4 */ jal load_hud_element
/* D7CE4 801415E4 0200202D */ daddu $a0, $s0, $zero
.L801415E8:
/* D7CE8 801415E8 0C0505C1 */ jal hud_element_update
/* D7CEC 801415EC 0200202D */ daddu $a0, $s0, $zero
/* D7CF0 801415F0 1440FFFD */ bnez $v0, .L801415E8
/* D7CF4 801415F4 0220102D */ daddu $v0, $s1, $zero
/* D7CF8 801415F8 8FBF001C */ lw $ra, 0x1c($sp)
/* D7CFC 801415FC 8FB20018 */ lw $s2, 0x18($sp)
/* D7D00 80141600 8FB10014 */ lw $s1, 0x14($sp)
/* D7D04 80141604 8FB00010 */ lw $s0, 0x10($sp)
/* D7D08 80141608 03E00008 */ jr $ra
/* D7D0C 8014160C 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,344 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel draw_hud_element
/* DA998 80144298 27BDFFB8 */ addiu $sp, $sp, -0x48
/* DA99C 8014429C 2402F7FF */ addiu $v0, $zero, -0x801
/* DA9A0 801442A0 00822024 */ and $a0, $a0, $v0
/* DA9A4 801442A4 3C028015 */ lui $v0, %hi(hudElements)
/* DA9A8 801442A8 8C427960 */ lw $v0, %lo(hudElements)($v0)
/* DA9AC 801442AC 00042080 */ sll $a0, $a0, 2
/* DA9B0 801442B0 AFBF0044 */ sw $ra, 0x44($sp)
/* DA9B4 801442B4 AFB60040 */ sw $s6, 0x40($sp)
/* DA9B8 801442B8 AFB5003C */ sw $s5, 0x3c($sp)
/* DA9BC 801442BC AFB40038 */ sw $s4, 0x38($sp)
/* DA9C0 801442C0 AFB30034 */ sw $s3, 0x34($sp)
/* DA9C4 801442C4 AFB20030 */ sw $s2, 0x30($sp)
/* DA9C8 801442C8 AFB1002C */ sw $s1, 0x2c($sp)
/* DA9CC 801442CC AFB00028 */ sw $s0, 0x28($sp)
/* DA9D0 801442D0 00822021 */ addu $a0, $a0, $v0
/* DA9D4 801442D4 8C900000 */ lw $s0, ($a0)
/* DA9D8 801442D8 8E030000 */ lw $v1, ($s0)
/* DA9DC 801442DC 10600128 */ beqz $v1, .L80144780
/* DA9E0 801442E0 30620002 */ andi $v0, $v1, 2
/* DA9E4 801442E4 14400126 */ bnez $v0, .L80144780
/* DA9E8 801442E8 3C021020 */ lui $v0, 0x1020
/* DA9EC 801442EC 00621024 */ and $v0, $v1, $v0
/* DA9F0 801442F0 14400123 */ bnez $v0, .L80144780
/* DA9F4 801442F4 00000000 */ nop
/* DA9F8 801442F8 82020045 */ lb $v0, 0x45($s0)
/* DA9FC 801442FC 04400120 */ bltz $v0, .L80144780
/* DAA00 80144300 24020001 */ addiu $v0, $zero, 1
/* DAA04 80144304 10A2005E */ beq $a1, $v0, .L80144480
/* DAA08 80144308 30620100 */ andi $v0, $v1, 0x100
/* DAA0C 8014430C 14A0000E */ bnez $a1, .L80144348
/* DAA10 80144310 3C06E300 */ lui $a2, 0xe300
/* DAA14 80144314 3C06ED03 */ lui $a2, 0xed03
/* DAA18 80144318 34C60050 */ ori $a2, $a2, 0x50
/* DAA1C 8014431C 3C05004D */ lui $a1, 0x4d
/* DAA20 80144320 3C04800A */ lui $a0, %hi(gMasterGfxPos)
/* DAA24 80144324 2484A66C */ addiu $a0, $a0, %lo(gMasterGfxPos)
/* DAA28 80144328 8C820000 */ lw $v0, ($a0)
/* DAA2C 8014432C 34A50370 */ ori $a1, $a1, 0x370
/* DAA30 80144330 0040182D */ daddu $v1, $v0, $zero
/* DAA34 80144334 24420008 */ addiu $v0, $v0, 8
/* DAA38 80144338 AC820000 */ sw $v0, ($a0)
/* DAA3C 8014433C AC660000 */ sw $a2, ($v1)
/* DAA40 80144340 AC650004 */ sw $a1, 4($v1)
/* DAA44 80144344 3C06E300 */ lui $a2, 0xe300
.L80144348:
/* DAA48 80144348 34C60A01 */ ori $a2, $a2, 0xa01
/* DAA4C 8014434C 3C07E300 */ lui $a3, 0xe300
/* DAA50 80144350 34E70C00 */ ori $a3, $a3, 0xc00
/* DAA54 80144354 3C08E300 */ lui $t0, 0xe300
/* DAA58 80144358 35080F00 */ ori $t0, $t0, 0xf00
/* DAA5C 8014435C 3C09E300 */ lui $t1, 0xe300
/* DAA60 80144360 35290D01 */ ori $t1, $t1, 0xd01
/* DAA64 80144364 3C0AE300 */ lui $t2, 0xe300
/* DAA68 80144368 354A1402 */ ori $t2, $t2, 0x1402
/* DAA6C 8014436C 3C0BE300 */ lui $t3, 0xe300
/* DAA70 80144370 356B1700 */ ori $t3, $t3, 0x1700
/* DAA74 80144374 3C0CE200 */ lui $t4, 0xe200
/* DAA78 80144378 358C1E01 */ ori $t4, $t4, 0x1e01
/* DAA7C 8014437C 3C0DE300 */ lui $t5, 0xe300
/* DAA80 80144380 35AD1801 */ ori $t5, $t5, 0x1801
/* DAA84 80144384 3C0EE300 */ lui $t6, 0xe300
/* DAA88 80144388 35CE1A01 */ ori $t6, $t6, 0x1a01
/* DAA8C 8014438C 3C0FD700 */ lui $t7, 0xd700
/* DAA90 80144390 3C04800A */ lui $a0, %hi(gMasterGfxPos)
/* DAA94 80144394 2484A66C */ addiu $a0, $a0, %lo(gMasterGfxPos)
/* DAA98 80144398 35EF0002 */ ori $t7, $t7, 2
/* DAA9C 8014439C 8C820000 */ lw $v0, ($a0)
/* DAAA0 801443A0 3C03E700 */ lui $v1, 0xe700
/* DAAA4 801443A4 0040282D */ daddu $a1, $v0, $zero
/* DAAA8 801443A8 24420008 */ addiu $v0, $v0, 8
/* DAAAC 801443AC AC820000 */ sw $v0, ($a0)
/* DAAB0 801443B0 ACA30000 */ sw $v1, ($a1)
/* DAAB4 801443B4 24430008 */ addiu $v1, $v0, 8
/* DAAB8 801443B8 ACA00004 */ sw $zero, 4($a1)
/* DAABC 801443BC AC830000 */ sw $v1, ($a0)
/* DAAC0 801443C0 24430010 */ addiu $v1, $v0, 0x10
/* DAAC4 801443C4 AC460000 */ sw $a2, ($v0)
/* DAAC8 801443C8 AC400004 */ sw $zero, 4($v0)
/* DAACC 801443CC AC830000 */ sw $v1, ($a0)
/* DAAD0 801443D0 24430018 */ addiu $v1, $v0, 0x18
/* DAAD4 801443D4 AC470008 */ sw $a3, 8($v0)
/* DAAD8 801443D8 AC40000C */ sw $zero, 0xc($v0)
/* DAADC 801443DC AC830000 */ sw $v1, ($a0)
/* DAAE0 801443E0 24430020 */ addiu $v1, $v0, 0x20
/* DAAE4 801443E4 AC480010 */ sw $t0, 0x10($v0)
/* DAAE8 801443E8 AC400014 */ sw $zero, 0x14($v0)
/* DAAEC 801443EC AC830000 */ sw $v1, ($a0)
/* DAAF0 801443F0 24430028 */ addiu $v1, $v0, 0x28
/* DAAF4 801443F4 AC490018 */ sw $t1, 0x18($v0)
/* DAAF8 801443F8 AC40001C */ sw $zero, 0x1c($v0)
/* DAAFC 801443FC AC830000 */ sw $v1, ($a0)
/* DAB00 80144400 24030C00 */ addiu $v1, $zero, 0xc00
/* DAB04 80144404 AC430024 */ sw $v1, 0x24($v0)
/* DAB08 80144408 24430030 */ addiu $v1, $v0, 0x30
/* DAB0C 8014440C AC4A0020 */ sw $t2, 0x20($v0)
/* DAB10 80144410 AC830000 */ sw $v1, ($a0)
/* DAB14 80144414 24430038 */ addiu $v1, $v0, 0x38
/* DAB18 80144418 AC4B0028 */ sw $t3, 0x28($v0)
/* DAB1C 8014441C AC40002C */ sw $zero, 0x2c($v0)
/* DAB20 80144420 AC830000 */ sw $v1, ($a0)
/* DAB24 80144424 24430040 */ addiu $v1, $v0, 0x40
/* DAB28 80144428 AC4C0030 */ sw $t4, 0x30($v0)
/* DAB2C 8014442C AC400034 */ sw $zero, 0x34($v0)
/* DAB30 80144430 AC830000 */ sw $v1, ($a0)
/* DAB34 80144434 24430048 */ addiu $v1, $v0, 0x48
/* DAB38 80144438 AC400038 */ sw $zero, 0x38($v0)
/* DAB3C 8014443C AC40003C */ sw $zero, 0x3c($v0)
/* DAB40 80144440 AC830000 */ sw $v1, ($a0)
/* DAB44 80144444 240300C0 */ addiu $v1, $zero, 0xc0
/* DAB48 80144448 AC430044 */ sw $v1, 0x44($v0)
/* DAB4C 8014444C 24430050 */ addiu $v1, $v0, 0x50
/* DAB50 80144450 AC4D0040 */ sw $t5, 0x40($v0)
/* DAB54 80144454 AC830000 */ sw $v1, ($a0)
/* DAB58 80144458 24030030 */ addiu $v1, $zero, 0x30
/* DAB5C 8014445C AC4E0048 */ sw $t6, 0x48($v0)
/* DAB60 80144460 AC43004C */ sw $v1, 0x4c($v0)
/* DAB64 80144464 24430058 */ addiu $v1, $v0, 0x58
/* DAB68 80144468 AC830000 */ sw $v1, ($a0)
/* DAB6C 8014446C 2403FFFF */ addiu $v1, $zero, -1
/* DAB70 80144470 AC4F0050 */ sw $t7, 0x50($v0)
/* DAB74 80144474 AC430054 */ sw $v1, 0x54($v0)
/* DAB78 80144478 8E030000 */ lw $v1, ($s0)
/* DAB7C 8014447C 30620100 */ andi $v0, $v1, 0x100
.L80144480:
/* DAB80 80144480 1440005B */ bnez $v0, .L801445F0
/* DAB84 80144484 3C020010 */ lui $v0, 0x10
/* DAB88 80144488 00621024 */ and $v0, $v1, $v0
/* DAB8C 8014448C 1440000B */ bnez $v0, .L801444BC
/* DAB90 80144490 00000000 */ nop
/* DAB94 80144494 82040046 */ lb $a0, 0x46($s0)
/* DAB98 80144498 3C038015 */ lui $v1, %hi(D_8014EFCC)
/* DAB9C 8014449C 2463EFCC */ addiu $v1, $v1, %lo(D_8014EFCC)
/* DABA0 801444A0 00041040 */ sll $v0, $a0, 1
/* DABA4 801444A4 00441021 */ addu $v0, $v0, $a0
/* DABA8 801444A8 00021040 */ sll $v0, $v0, 1
/* DABAC 801444AC 00431021 */ addu $v0, $v0, $v1
/* DABB0 801444B0 84560000 */ lh $s6, ($v0)
/* DABB4 801444B4 08051131 */ j .L801444C4
/* DABB8 801444B8 84550002 */ lh $s5, 2($v0)
.L801444BC:
/* DABBC 801444BC 9216004E */ lbu $s6, 0x4e($s0)
/* DABC0 801444C0 9215004F */ lbu $s5, 0x4f($s0)
.L801444C4:
/* DABC4 801444C4 8E030000 */ lw $v1, ($s0)
/* DABC8 801444C8 30620010 */ andi $v0, $v1, 0x10
/* DABCC 801444CC 14400013 */ bnez $v0, .L8014451C
/* DABD0 801444D0 3C020010 */ lui $v0, 0x10
/* DABD4 801444D4 00621024 */ and $v0, $v1, $v0
/* DABD8 801444D8 1440000C */ bnez $v0, .L8014450C
/* DABDC 801444DC 00000000 */ nop
/* DABE0 801444E0 82020045 */ lb $v0, 0x45($s0)
/* DABE4 801444E4 3C048015 */ lui $a0, %hi(D_8014EFCC)
/* DABE8 801444E8 2484EFCC */ addiu $a0, $a0, %lo(D_8014EFCC)
/* DABEC 801444EC 00021840 */ sll $v1, $v0, 1
/* DABF0 801444F0 00621821 */ addu $v1, $v1, $v0
/* DABF4 801444F4 00031840 */ sll $v1, $v1, 1
/* DABF8 801444F8 00641821 */ addu $v1, $v1, $a0
/* DABFC 801444FC 84710000 */ lh $s1, ($v1)
/* DAC00 80144500 84720002 */ lh $s2, 2($v1)
/* DAC04 80144504 0805114A */ j .L80144528
/* DAC08 80144508 00111023 */ negu $v0, $s1
.L8014450C:
/* DAC0C 8014450C 92110050 */ lbu $s1, 0x50($s0)
/* DAC10 80144510 92120051 */ lbu $s2, 0x51($s0)
/* DAC14 80144514 0805114A */ j .L80144528
/* DAC18 80144518 00111023 */ negu $v0, $s1
.L8014451C:
/* DAC1C 8014451C 92110048 */ lbu $s1, 0x48($s0)
/* DAC20 80144520 92120049 */ lbu $s2, 0x49($s0)
/* DAC24 80144524 00111023 */ negu $v0, $s1
.L80144528:
/* DAC28 80144528 00021FC2 */ srl $v1, $v0, 0x1f
/* DAC2C 8014452C 00431021 */ addu $v0, $v0, $v1
/* DAC30 80144530 00029843 */ sra $s3, $v0, 1
/* DAC34 80144534 00121023 */ negu $v0, $s2
/* DAC38 80144538 00021FC2 */ srl $v1, $v0, 0x1f
/* DAC3C 8014453C 00431021 */ addu $v0, $v0, $v1
/* DAC40 80144540 0002A043 */ sra $s4, $v0, 1
/* DAC44 80144544 8E030000 */ lw $v1, ($s0)
/* DAC48 80144548 30620800 */ andi $v0, $v1, 0x800
/* DAC4C 8014454C 14400026 */ bnez $v0, .L801445E8
/* DAC50 80144550 3C022000 */ lui $v0, 0x2000
/* DAC54 80144554 00621024 */ and $v0, $v1, $v0
/* DAC58 80144558 10400012 */ beqz $v0, .L801445A4
/* DAC5C 8014455C 0200202D */ daddu $a0, $s0, $zero
/* DAC60 80144560 02C0282D */ daddu $a1, $s6, $zero
/* DAC64 80144564 02A0302D */ daddu $a2, $s5, $zero
/* DAC68 80144568 00113C00 */ sll $a3, $s1, 0x10
/* DAC6C 8014456C 00073C03 */ sra $a3, $a3, 0x10
/* DAC70 80144570 00121400 */ sll $v0, $s2, 0x10
/* DAC74 80144574 00021403 */ sra $v0, $v0, 0x10
/* DAC78 80144578 AFA20010 */ sw $v0, 0x10($sp)
/* DAC7C 8014457C 00131400 */ sll $v0, $s3, 0x10
/* DAC80 80144580 00021403 */ sra $v0, $v0, 0x10
/* DAC84 80144584 AFA20014 */ sw $v0, 0x14($sp)
/* DAC88 80144588 00141400 */ sll $v0, $s4, 0x10
/* DAC8C 8014458C 00021403 */ sra $v0, $v0, 0x10
/* DAC90 80144590 AFA20018 */ sw $v0, 0x18($sp)
/* DAC94 80144594 24020001 */ addiu $v0, $zero, 1
/* DAC98 80144598 AFA2001C */ sw $v0, 0x1c($sp)
/* DAC9C 8014459C 0C04FDC1 */ jal draw_rect_hud_element
/* DACA0 801445A0 AFA20020 */ sw $v0, 0x20($sp)
.L801445A4:
/* DACA4 801445A4 0200202D */ daddu $a0, $s0, $zero
/* DACA8 801445A8 02C0282D */ daddu $a1, $s6, $zero
/* DACAC 801445AC 02A0302D */ daddu $a2, $s5, $zero
/* DACB0 801445B0 00113C00 */ sll $a3, $s1, 0x10
/* DACB4 801445B4 00073C03 */ sra $a3, $a3, 0x10
/* DACB8 801445B8 00121400 */ sll $v0, $s2, 0x10
/* DACBC 801445BC 00021403 */ sra $v0, $v0, 0x10
/* DACC0 801445C0 AFA20010 */ sw $v0, 0x10($sp)
/* DACC4 801445C4 00131400 */ sll $v0, $s3, 0x10
/* DACC8 801445C8 00021403 */ sra $v0, $v0, 0x10
/* DACCC 801445CC AFA20014 */ sw $v0, 0x14($sp)
/* DACD0 801445D0 00141400 */ sll $v0, $s4, 0x10
/* DACD4 801445D4 00021403 */ sra $v0, $v0, 0x10
/* DACD8 801445D8 AFA20018 */ sw $v0, 0x18($sp)
/* DACDC 801445DC 24020001 */ addiu $v0, $zero, 1
/* DACE0 801445E0 080511DE */ j .L80144778
/* DACE4 801445E4 AFA2001C */ sw $v0, 0x1c($sp)
.L801445E8:
/* DACE8 801445E8 080511BC */ j .L801446F0
/* DACEC 801445EC 00621024 */ and $v0, $v1, $v0
.L801445F0:
/* DACF0 801445F0 00621024 */ and $v0, $v1, $v0
/* DACF4 801445F4 1440000C */ bnez $v0, .L80144628
/* DACF8 801445F8 3C032000 */ lui $v1, 0x2000
/* DACFC 801445FC 82040046 */ lb $a0, 0x46($s0)
/* DAD00 80144600 3C038015 */ lui $v1, %hi(D_8014EFCC)
/* DAD04 80144604 2463EFCC */ addiu $v1, $v1, %lo(D_8014EFCC)
/* DAD08 80144608 00041040 */ sll $v0, $a0, 1
/* DAD0C 8014460C 00441021 */ addu $v0, $v0, $a0
/* DAD10 80144610 00021040 */ sll $v0, $v0, 1
/* DAD14 80144614 00431021 */ addu $v0, $v0, $v1
/* DAD18 80144618 84560000 */ lh $s6, ($v0)
/* DAD1C 8014461C 84550002 */ lh $s5, 2($v0)
/* DAD20 80144620 0805118C */ j .L80144630
/* DAD24 80144624 3C032000 */ lui $v1, 0x2000
.L80144628:
/* DAD28 80144628 9216004E */ lbu $s6, 0x4e($s0)
/* DAD2C 8014462C 9215004F */ lbu $s5, 0x4f($s0)
.L80144630:
/* DAD30 80144630 C6000028 */ lwc1 $f0, 0x28($s0)
/* DAD34 80144634 C606002C */ lwc1 $f6, 0x2c($s0)
/* DAD38 80144638 3C013F00 */ lui $at, 0x3f00
/* DAD3C 8014463C 44811000 */ mtc1 $at, $f2
/* DAD40 80144640 3C013F80 */ lui $at, 0x3f80
/* DAD44 80144644 44815000 */ mtc1 $at, $f10
/* DAD48 80144648 46000207 */ neg.s $f8, $f0
/* DAD4C 8014464C 46024202 */ mul.s $f8, $f8, $f2
/* DAD50 80144650 00000000 */ nop
/* DAD54 80144654 3C014480 */ lui $at, 0x4480
/* DAD58 80144658 44816000 */ mtc1 $at, $f12
/* DAD5C 8014465C 8E020000 */ lw $v0, ($s0)
/* DAD60 80144660 4600038D */ trunc.w.s $f14, $f0
/* DAD64 80144664 44117000 */ mfc1 $s1, $f14
/* DAD68 80144668 4600338D */ trunc.w.s $f14, $f6
/* DAD6C 8014466C 44127000 */ mfc1 $s2, $f14
/* DAD70 80144670 46003187 */ neg.s $f6, $f6
/* DAD74 80144674 46023182 */ mul.s $f6, $f6, $f2
/* DAD78 80144678 00000000 */ nop
/* DAD7C 8014467C 44912000 */ mtc1 $s1, $f4
/* DAD80 80144680 00000000 */ nop
/* DAD84 80144684 46802120 */ cvt.s.w $f4, $f4
/* DAD88 80144688 44960000 */ mtc1 $s6, $f0
/* DAD8C 8014468C 00000000 */ nop
/* DAD90 80144690 46800020 */ cvt.s.w $f0, $f0
/* DAD94 80144694 46002103 */ div.s $f4, $f4, $f0
/* DAD98 80144698 46045103 */ div.s $f4, $f10, $f4
/* DAD9C 8014469C 460C2102 */ mul.s $f4, $f4, $f12
/* DADA0 801446A0 00000000 */ nop
/* DADA4 801446A4 44920000 */ mtc1 $s2, $f0
/* DADA8 801446A8 00000000 */ nop
/* DADAC 801446AC 46800020 */ cvt.s.w $f0, $f0
/* DADB0 801446B0 44951000 */ mtc1 $s5, $f2
/* DADB4 801446B4 00000000 */ nop
/* DADB8 801446B8 468010A0 */ cvt.s.w $f2, $f2
/* DADBC 801446BC 46020003 */ div.s $f0, $f0, $f2
/* DADC0 801446C0 46005003 */ div.s $f0, $f10, $f0
/* DADC4 801446C4 460C0002 */ mul.s $f0, $f0, $f12
/* DADC8 801446C8 00000000 */ nop
/* DADCC 801446CC 00431024 */ and $v0, $v0, $v1
/* DADD0 801446D0 4600438D */ trunc.w.s $f14, $f8
/* DADD4 801446D4 44137000 */ mfc1 $s3, $f14
/* DADD8 801446D8 4600338D */ trunc.w.s $f14, $f6
/* DADDC 801446DC 44147000 */ mfc1 $s4, $f14
/* DADE0 801446E0 4600238D */ trunc.w.s $f14, $f4
/* DADE4 801446E4 E60E0034 */ swc1 $f14, 0x34($s0)
/* DADE8 801446E8 4600038D */ trunc.w.s $f14, $f0
/* DADEC 801446EC E60E0038 */ swc1 $f14, 0x38($s0)
.L801446F0:
/* DADF0 801446F0 10400012 */ beqz $v0, .L8014473C
/* DADF4 801446F4 0200202D */ daddu $a0, $s0, $zero
/* DADF8 801446F8 02C0282D */ daddu $a1, $s6, $zero
/* DADFC 801446FC 02A0302D */ daddu $a2, $s5, $zero
/* DAE00 80144700 00113C00 */ sll $a3, $s1, 0x10
/* DAE04 80144704 00073C03 */ sra $a3, $a3, 0x10
/* DAE08 80144708 00121400 */ sll $v0, $s2, 0x10
/* DAE0C 8014470C 00021403 */ sra $v0, $v0, 0x10
/* DAE10 80144710 AFA20010 */ sw $v0, 0x10($sp)
/* DAE14 80144714 00131400 */ sll $v0, $s3, 0x10
/* DAE18 80144718 00021403 */ sra $v0, $v0, 0x10
/* DAE1C 8014471C AFA20014 */ sw $v0, 0x14($sp)
/* DAE20 80144720 00141400 */ sll $v0, $s4, 0x10
/* DAE24 80144724 00021403 */ sra $v0, $v0, 0x10
/* DAE28 80144728 AFA20018 */ sw $v0, 0x18($sp)
/* DAE2C 8014472C 24020001 */ addiu $v0, $zero, 1
/* DAE30 80144730 AFA0001C */ sw $zero, 0x1c($sp)
/* DAE34 80144734 0C04FDC1 */ jal draw_rect_hud_element
/* DAE38 80144738 AFA20020 */ sw $v0, 0x20($sp)
.L8014473C:
/* DAE3C 8014473C 0200202D */ daddu $a0, $s0, $zero
/* DAE40 80144740 02C0282D */ daddu $a1, $s6, $zero
/* DAE44 80144744 02A0302D */ daddu $a2, $s5, $zero
/* DAE48 80144748 00113C00 */ sll $a3, $s1, 0x10
/* DAE4C 8014474C 00073C03 */ sra $a3, $a3, 0x10
/* DAE50 80144750 00121400 */ sll $v0, $s2, 0x10
/* DAE54 80144754 00021403 */ sra $v0, $v0, 0x10
/* DAE58 80144758 AFA20010 */ sw $v0, 0x10($sp)
/* DAE5C 8014475C 00131400 */ sll $v0, $s3, 0x10
/* DAE60 80144760 00021403 */ sra $v0, $v0, 0x10
/* DAE64 80144764 AFA20014 */ sw $v0, 0x14($sp)
/* DAE68 80144768 00141400 */ sll $v0, $s4, 0x10
/* DAE6C 8014476C 00021403 */ sra $v0, $v0, 0x10
/* DAE70 80144770 AFA20018 */ sw $v0, 0x18($sp)
/* DAE74 80144774 AFA0001C */ sw $zero, 0x1c($sp)
.L80144778:
/* DAE78 80144778 0C04FDC1 */ jal draw_rect_hud_element
/* DAE7C 8014477C AFA00020 */ sw $zero, 0x20($sp)
.L80144780:
/* DAE80 80144780 8FBF0044 */ lw $ra, 0x44($sp)
/* DAE84 80144784 8FB60040 */ lw $s6, 0x40($sp)
/* DAE88 80144788 8FB5003C */ lw $s5, 0x3c($sp)
/* DAE8C 8014478C 8FB40038 */ lw $s4, 0x38($sp)
/* DAE90 80144790 8FB30034 */ lw $s3, 0x34($sp)
/* DAE94 80144794 8FB20030 */ lw $s2, 0x30($sp)
/* DAE98 80144798 8FB1002C */ lw $s1, 0x2c($sp)
/* DAE9C 8014479C 8FB00028 */ lw $s0, 0x28($sp)
/* DAEA0 801447A0 03E00008 */ jr $ra
/* DAEA4 801447A4 27BD0048 */ addiu $sp, $sp, 0x48

View File

@ -1,378 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80143C48
/* DA348 80143C48 27BDFFB8 */ addiu $sp, $sp, -0x48
/* DA34C 80143C4C AFBE0040 */ sw $fp, 0x40($sp)
/* DA350 80143C50 0080F02D */ daddu $fp, $a0, $zero
/* DA354 80143C54 AFB10024 */ sw $s1, 0x24($sp)
/* DA358 80143C58 00C0882D */ daddu $s1, $a2, $zero
/* DA35C 80143C5C 3C02800B */ lui $v0, %hi(gCameras)
/* DA360 80143C60 24421D80 */ addiu $v0, $v0, %lo(gCameras)
/* DA364 80143C64 00111880 */ sll $v1, $s1, 2
/* DA368 80143C68 00711821 */ addu $v1, $v1, $s1
/* DA36C 80143C6C 00031880 */ sll $v1, $v1, 2
/* DA370 80143C70 00711823 */ subu $v1, $v1, $s1
/* DA374 80143C74 000320C0 */ sll $a0, $v1, 3
/* DA378 80143C78 00641821 */ addu $v1, $v1, $a0
/* DA37C 80143C7C 000318C0 */ sll $v1, $v1, 3
/* DA380 80143C80 AFB60038 */ sw $s6, 0x38($sp)
/* DA384 80143C84 0062B021 */ addu $s6, $v1, $v0
/* DA388 80143C88 AFBF0044 */ sw $ra, 0x44($sp)
/* DA38C 80143C8C AFB7003C */ sw $s7, 0x3c($sp)
/* DA390 80143C90 AFB50034 */ sw $s5, 0x34($sp)
/* DA394 80143C94 AFB40030 */ sw $s4, 0x30($sp)
/* DA398 80143C98 AFB3002C */ sw $s3, 0x2c($sp)
/* DA39C 80143C9C AFB20028 */ sw $s2, 0x28($sp)
/* DA3A0 80143CA0 18A00133 */ blez $a1, .L80144170
/* DA3A4 80143CA4 AFB00020 */ sw $s0, 0x20($sp)
/* DA3A8 80143CA8 96C20000 */ lhu $v0, ($s6)
/* DA3AC 80143CAC 1040014E */ beqz $v0, .L801441E8
/* DA3B0 80143CB0 30420002 */ andi $v0, $v0, 2
/* DA3B4 80143CB4 1440014C */ bnez $v0, .L801441E8
/* DA3B8 80143CB8 3C02DC08 */ lui $v0, 0xdc08
/* DA3BC 80143CBC 34420008 */ ori $v0, $v0, 8
/* DA3C0 80143CC0 3C04D9C0 */ lui $a0, 0xd9c0
/* DA3C4 80143CC4 3484F9FB */ ori $a0, $a0, 0xf9fb
/* DA3C8 80143CC8 3C05E300 */ lui $a1, 0xe300
/* DA3CC 80143CCC 34A50800 */ ori $a1, $a1, 0x800
/* DA3D0 80143CD0 3C06E300 */ lui $a2, 0xe300
/* DA3D4 80143CD4 34C61001 */ ori $a2, $a2, 0x1001
/* DA3D8 80143CD8 3C07E300 */ lui $a3, 0xe300
/* DA3DC 80143CDC 34E71201 */ ori $a3, $a3, 0x1201
/* DA3E0 80143CE0 3C0AFCFF */ lui $t2, 0xfcff
/* DA3E4 80143CE4 354AFFFF */ ori $t2, $t2, 0xffff
/* DA3E8 80143CE8 3C08FFFE */ lui $t0, 0xfffe
/* DA3EC 80143CEC 3508793C */ ori $t0, $t0, 0x793c
/* DA3F0 80143CF0 3C0BE200 */ lui $t3, 0xe200
/* DA3F4 80143CF4 356B001C */ ori $t3, $t3, 0x1c
/* DA3F8 80143CF8 3C090F0A */ lui $t1, 0xf0a
/* DA3FC 80143CFC 35294000 */ ori $t1, $t1, 0x4000
/* DA400 80143D00 3C0CDB04 */ lui $t4, 0xdb04
/* DA404 80143D04 358C0004 */ ori $t4, $t4, 4
/* DA408 80143D08 3C0DDB04 */ lui $t5, 0xdb04
/* DA40C 80143D0C 35AD000C */ ori $t5, $t5, 0xc
/* DA410 80143D10 3C0EDB04 */ lui $t6, 0xdb04
/* DA414 80143D14 35CE0014 */ ori $t6, $t6, 0x14
/* DA418 80143D18 3C0FDB04 */ lui $t7, 0xdb04
/* DA41C 80143D1C 35EF001C */ ori $t7, $t7, 0x1c
/* DA420 80143D20 3C14E300 */ lui $s4, 0xe300
/* DA424 80143D24 36940A01 */ ori $s4, $s4, 0xa01
/* DA428 80143D28 3C15FF10 */ lui $s5, 0xff10
/* DA42C 80143D2C 36B5013F */ ori $s5, $s5, 0x13f
/* DA430 80143D30 3C12800A */ lui $s2, %hi(gMasterGfxPos)
/* DA434 80143D34 2652A66C */ addiu $s2, $s2, %lo(gMasterGfxPos)
/* DA438 80143D38 8E500000 */ lw $s0, ($s2)
/* DA43C 80143D3C 3C13E700 */ lui $s3, 0xe700
/* DA440 80143D40 3C01800A */ lui $at, %hi(gCurrentCamID)
/* DA444 80143D44 A431A634 */ sh $s1, %lo(gCurrentCamID)($at)
/* DA448 80143D48 0200182D */ daddu $v1, $s0, $zero
/* DA44C 80143D4C 26100008 */ addiu $s0, $s0, 8
/* DA450 80143D50 AE500000 */ sw $s0, ($s2)
/* DA454 80143D54 AC620000 */ sw $v0, ($v1)
/* DA458 80143D58 26C200A0 */ addiu $v0, $s6, 0xa0
/* DA45C 80143D5C AC620004 */ sw $v0, 4($v1)
/* DA460 80143D60 26020008 */ addiu $v0, $s0, 8
/* DA464 80143D64 AE420000 */ sw $v0, ($s2)
/* DA468 80143D68 26020010 */ addiu $v0, $s0, 0x10
/* DA46C 80143D6C AE040000 */ sw $a0, ($s0)
/* DA470 80143D70 AE000004 */ sw $zero, 4($s0)
/* DA474 80143D74 AE420000 */ sw $v0, ($s2)
/* DA478 80143D78 3C02D700 */ lui $v0, 0xd700
/* DA47C 80143D7C AE020008 */ sw $v0, 8($s0)
/* DA480 80143D80 26020018 */ addiu $v0, $s0, 0x18
/* DA484 80143D84 AE00000C */ sw $zero, 0xc($s0)
/* DA488 80143D88 AE420000 */ sw $v0, ($s2)
/* DA48C 80143D8C 26020020 */ addiu $v0, $s0, 0x20
/* DA490 80143D90 AE050010 */ sw $a1, 0x10($s0)
/* DA494 80143D94 AE000014 */ sw $zero, 0x14($s0)
/* DA498 80143D98 AE420000 */ sw $v0, ($s2)
/* DA49C 80143D9C 26020028 */ addiu $v0, $s0, 0x28
/* DA4A0 80143DA0 AE060018 */ sw $a2, 0x18($s0)
/* DA4A4 80143DA4 AE00001C */ sw $zero, 0x1c($s0)
/* DA4A8 80143DA8 AE420000 */ sw $v0, ($s2)
/* DA4AC 80143DAC 24022000 */ addiu $v0, $zero, 0x2000
/* DA4B0 80143DB0 AE020024 */ sw $v0, 0x24($s0)
/* DA4B4 80143DB4 26020030 */ addiu $v0, $s0, 0x30
/* DA4B8 80143DB8 AE070020 */ sw $a3, 0x20($s0)
/* DA4BC 80143DBC AE420000 */ sw $v0, ($s2)
/* DA4C0 80143DC0 26020038 */ addiu $v0, $s0, 0x38
/* DA4C4 80143DC4 AE0A0028 */ sw $t2, 0x28($s0)
/* DA4C8 80143DC8 AE08002C */ sw $t0, 0x2c($s0)
/* DA4CC 80143DCC AE420000 */ sw $v0, ($s2)
/* DA4D0 80143DD0 26020040 */ addiu $v0, $s0, 0x40
/* DA4D4 80143DD4 24030002 */ addiu $v1, $zero, 2
/* DA4D8 80143DD8 AE0B0030 */ sw $t3, 0x30($s0)
/* DA4DC 80143DDC AE090034 */ sw $t1, 0x34($s0)
/* DA4E0 80143DE0 AE420000 */ sw $v0, ($s2)
/* DA4E4 80143DE4 26020048 */ addiu $v0, $s0, 0x48
/* DA4E8 80143DE8 AE0C0038 */ sw $t4, 0x38($s0)
/* DA4EC 80143DEC AE03003C */ sw $v1, 0x3c($s0)
/* DA4F0 80143DF0 AE420000 */ sw $v0, ($s2)
/* DA4F4 80143DF4 26020050 */ addiu $v0, $s0, 0x50
/* DA4F8 80143DF8 AE030044 */ sw $v1, 0x44($s0)
/* DA4FC 80143DFC 3403FFFE */ ori $v1, $zero, 0xfffe
/* DA500 80143E00 AE0D0040 */ sw $t5, 0x40($s0)
/* DA504 80143E04 AE420000 */ sw $v0, ($s2)
/* DA508 80143E08 AE0E0048 */ sw $t6, 0x48($s0)
/* DA50C 80143E0C 3C04800A */ lui $a0, %hi(nuGfxZBuffer)
/* DA510 80143E10 8C84A5DC */ lw $a0, %lo(nuGfxZBuffer)($a0)
/* DA514 80143E14 26020058 */ addiu $v0, $s0, 0x58
/* DA518 80143E18 AE03004C */ sw $v1, 0x4c($s0)
/* DA51C 80143E1C AE420000 */ sw $v0, ($s2)
/* DA520 80143E20 26020060 */ addiu $v0, $s0, 0x60
/* DA524 80143E24 AE0F0050 */ sw $t7, 0x50($s0)
/* DA528 80143E28 AE030054 */ sw $v1, 0x54($s0)
/* DA52C 80143E2C AE420000 */ sw $v0, ($s2)
/* DA530 80143E30 26020068 */ addiu $v0, $s0, 0x68
/* DA534 80143E34 AE130058 */ sw $s3, 0x58($s0)
/* DA538 80143E38 AE00005C */ sw $zero, 0x5c($s0)
/* DA53C 80143E3C AE420000 */ sw $v0, ($s2)
/* DA540 80143E40 3C020030 */ lui $v0, 0x30
/* DA544 80143E44 AE020064 */ sw $v0, 0x64($s0)
/* DA548 80143E48 26020070 */ addiu $v0, $s0, 0x70
/* DA54C 80143E4C AE140060 */ sw $s4, 0x60($s0)
/* DA550 80143E50 AE420000 */ sw $v0, ($s2)
/* DA554 80143E54 0C0187A4 */ jal osVirtualToPhysical
/* DA558 80143E58 AE150068 */ sw $s5, 0x68($s0)
/* DA55C 80143E5C 3C05FFFC */ lui $a1, 0xfffc
/* DA560 80143E60 8E510000 */ lw $s1, ($s2)
/* DA564 80143E64 34A5FFFC */ ori $a1, $a1, 0xfffc
/* DA568 80143E68 AE02006C */ sw $v0, 0x6c($s0)
/* DA56C 80143E6C 3C02F700 */ lui $v0, 0xf700
/* DA570 80143E70 3C04800A */ lui $a0, %hi(nuGfxCfb_ptr)
/* DA574 80143E74 8C84A64C */ lw $a0, %lo(nuGfxCfb_ptr)($a0)
/* DA578 80143E78 0220182D */ daddu $v1, $s1, $zero
/* DA57C 80143E7C 26310008 */ addiu $s1, $s1, 8
/* DA580 80143E80 AE510000 */ sw $s1, ($s2)
/* DA584 80143E84 AC620000 */ sw $v0, ($v1)
/* DA588 80143E88 26220008 */ addiu $v0, $s1, 8
/* DA58C 80143E8C AC650004 */ sw $a1, 4($v1)
/* DA590 80143E90 AE420000 */ sw $v0, ($s2)
/* DA594 80143E94 86C3000E */ lh $v1, 0xe($s6)
/* DA598 80143E98 86C5000A */ lh $a1, 0xa($s6)
/* DA59C 80143E9C 26220010 */ addiu $v0, $s1, 0x10
/* DA5A0 80143EA0 AE420000 */ sw $v0, ($s2)
/* DA5A4 80143EA4 86C20010 */ lh $v0, 0x10($s6)
/* DA5A8 80143EA8 00651821 */ addu $v1, $v1, $a1
/* DA5AC 80143EAC 2463FFFF */ addiu $v1, $v1, -1
/* DA5B0 80143EB0 306303FF */ andi $v1, $v1, 0x3ff
/* DA5B4 80143EB4 86C5000C */ lh $a1, 0xc($s6)
/* DA5B8 80143EB8 00031B80 */ sll $v1, $v1, 0xe
/* DA5BC 80143EBC 00451021 */ addu $v0, $v0, $a1
/* DA5C0 80143EC0 2442FFFF */ addiu $v0, $v0, -1
/* DA5C4 80143EC4 304203FF */ andi $v0, $v0, 0x3ff
/* DA5C8 80143EC8 00021080 */ sll $v0, $v0, 2
/* DA5CC 80143ECC 3C05F600 */ lui $a1, 0xf600
/* DA5D0 80143ED0 00451025 */ or $v0, $v0, $a1
/* DA5D4 80143ED4 00621825 */ or $v1, $v1, $v0
/* DA5D8 80143ED8 AE230000 */ sw $v1, ($s1)
/* DA5DC 80143EDC 96C2000E */ lhu $v0, 0xe($s6)
/* DA5E0 80143EE0 96C50010 */ lhu $a1, 0x10($s6)
/* DA5E4 80143EE4 26230018 */ addiu $v1, $s1, 0x18
/* DA5E8 80143EE8 AE430000 */ sw $v1, ($s2)
/* DA5EC 80143EEC AE330008 */ sw $s3, 8($s1)
/* DA5F0 80143EF0 AE20000C */ sw $zero, 0xc($s1)
/* DA5F4 80143EF4 AE350010 */ sw $s5, 0x10($s1)
/* DA5F8 80143EF8 304203FF */ andi $v0, $v0, 0x3ff
/* DA5FC 80143EFC 00021380 */ sll $v0, $v0, 0xe
/* DA600 80143F00 30A503FF */ andi $a1, $a1, 0x3ff
/* DA604 80143F04 00052880 */ sll $a1, $a1, 2
/* DA608 80143F08 00451025 */ or $v0, $v0, $a1
/* DA60C 80143F0C 0C0187A4 */ jal osVirtualToPhysical
/* DA610 80143F10 AE220004 */ sw $v0, 4($s1)
/* DA614 80143F14 26D000D4 */ addiu $s0, $s6, 0xd4
/* DA618 80143F18 8E430000 */ lw $v1, ($s2)
/* DA61C 80143F1C 44800000 */ mtc1 $zero, $f0
/* DA620 80143F20 3C01447A */ lui $at, 0x447a
/* DA624 80143F24 44811000 */ mtc1 $at, $f2
/* DA628 80143F28 3C013F80 */ lui $at, 0x3f80
/* DA62C 80143F2C 44812000 */ mtc1 $at, $f4
/* DA630 80143F30 3C0643A0 */ lui $a2, 0x43a0
/* DA634 80143F34 3C07C370 */ lui $a3, 0xc370
/* DA638 80143F38 0200202D */ daddu $a0, $s0, $zero
/* DA63C 80143F3C AE220014 */ sw $v0, 0x14($s1)
/* DA640 80143F40 0060102D */ daddu $v0, $v1, $zero
/* DA644 80143F44 44050000 */ mfc1 $a1, $f0
/* DA648 80143F48 3C01C47A */ lui $at, 0xc47a
/* DA64C 80143F4C 44810000 */ mtc1 $at, $f0
/* DA650 80143F50 24630008 */ addiu $v1, $v1, 8
/* DA654 80143F54 AE430000 */ sw $v1, ($s2)
/* DA658 80143F58 AC530000 */ sw $s3, ($v0)
/* DA65C 80143F5C AC400004 */ sw $zero, 4($v0)
/* DA660 80143F60 E7A20018 */ swc1 $f2, 0x18($sp)
/* DA664 80143F64 E7A4001C */ swc1 $f4, 0x1c($sp)
/* DA668 80143F68 AFA50010 */ sw $a1, 0x10($sp)
/* DA66C 80143F6C 0C018E44 */ jal guOrthoF
/* DA670 80143F70 E7A00014 */ swc1 $f0, 0x14($sp)
/* DA674 80143F74 0200202D */ daddu $a0, $s0, $zero
/* DA678 80143F78 3C10800A */ lui $s0, %hi(gDisplayContext)
/* DA67C 80143F7C 2610A674 */ addiu $s0, $s0, %lo(gDisplayContext)
/* DA680 80143F80 3C05800A */ lui $a1, %hi(gCurrentCamID)
/* DA684 80143F84 84A5A634 */ lh $a1, %lo(gCurrentCamID)($a1)
/* DA688 80143F88 8E020000 */ lw $v0, ($s0)
/* DA68C 80143F8C 00052980 */ sll $a1, $a1, 6
/* DA690 80143F90 24A50030 */ addiu $a1, $a1, 0x30
/* DA694 80143F94 0C019D40 */ jal guMtxF2L
/* DA698 80143F98 00452821 */ addu $a1, $v0, $a1
/* DA69C 80143F9C 3C03DA38 */ lui $v1, 0xda38
/* DA6A0 80143FA0 34630007 */ ori $v1, $v1, 7
/* DA6A4 80143FA4 3C07ED03 */ lui $a3, 0xed03
/* DA6A8 80143FA8 34E70050 */ ori $a3, $a3, 0x50
/* DA6AC 80143FAC 3C06004D */ lui $a2, 0x4d
/* DA6B0 80143FB0 34C60370 */ ori $a2, $a2, 0x370
/* DA6B4 80143FB4 3C08D9C0 */ lui $t0, 0xd9c0
/* DA6B8 80143FB8 3508F9FA */ ori $t0, $t0, 0xf9fa
/* DA6BC 80143FBC 3C0AD9FF */ lui $t2, 0xd9ff
/* DA6C0 80143FC0 354AFFFF */ ori $t2, $t2, 0xffff
/* DA6C4 80143FC4 3C090022 */ lui $t1, 0x22
/* DA6C8 80143FC8 35290005 */ ori $t1, $t1, 5
/* DA6CC 80143FCC 3C0BDC08 */ lui $t3, 0xdc08
/* DA6D0 80143FD0 356B060A */ ori $t3, $t3, 0x60a
/* DA6D4 80143FD4 3C0CDC08 */ lui $t4, 0xdc08
/* DA6D8 80143FD8 358C090A */ ori $t4, $t4, 0x90a
/* DA6DC 80143FDC 3C0DD700 */ lui $t5, 0xd700
/* DA6E0 80143FE0 35AD0002 */ ori $t5, $t5, 2
/* DA6E4 80143FE4 3C0EE300 */ lui $t6, 0xe300
/* DA6E8 80143FE8 35CE0F00 */ ori $t6, $t6, 0xf00
/* DA6EC 80143FEC 3C0FE300 */ lui $t7, 0xe300
/* DA6F0 80143FF0 35EF0C00 */ ori $t7, $t7, 0xc00
/* DA6F4 80143FF4 3C11E300 */ lui $s1, 0xe300
/* DA6F8 80143FF8 36311801 */ ori $s1, $s1, 0x1801
/* DA6FC 80143FFC 3C15E300 */ lui $s5, 0xe300
/* DA700 80144000 36B50D01 */ ori $s5, $s5, 0xd01
/* DA704 80144004 3C16E300 */ lui $s6, 0xe300
/* DA708 80144008 36D61402 */ ori $s6, $s6, 0x1402
/* DA70C 8014400C 3C17E300 */ lui $s7, 0xe300
/* DA710 80144010 36F71700 */ ori $s7, $s7, 0x1700
/* DA714 80144014 3C18E200 */ lui $t8, 0xe200
/* DA718 80144018 37181E01 */ ori $t8, $t8, 0x1e01
/* DA71C 8014401C 8E420000 */ lw $v0, ($s2)
/* DA720 80144020 3C04800A */ lui $a0, %hi(gCurrentCamID)
/* DA724 80144024 8484A634 */ lh $a0, %lo(gCurrentCamID)($a0)
/* DA728 80144028 0040282D */ daddu $a1, $v0, $zero
/* DA72C 8014402C 24420008 */ addiu $v0, $v0, 8
/* DA730 80144030 00042180 */ sll $a0, $a0, 6
/* DA734 80144034 AE420000 */ sw $v0, ($s2)
/* DA738 80144038 ACA30000 */ sw $v1, ($a1)
/* DA73C 8014403C 8E030000 */ lw $v1, ($s0)
/* DA740 80144040 24840030 */ addiu $a0, $a0, 0x30
/* DA744 80144044 00641821 */ addu $v1, $v1, $a0
/* DA748 80144048 ACA30004 */ sw $v1, 4($a1)
/* DA74C 8014404C 24430008 */ addiu $v1, $v0, 8
/* DA750 80144050 AE430000 */ sw $v1, ($s2)
/* DA754 80144054 24430010 */ addiu $v1, $v0, 0x10
/* DA758 80144058 AC470000 */ sw $a3, ($v0)
/* DA75C 8014405C AC460004 */ sw $a2, 4($v0)
/* DA760 80144060 AE430000 */ sw $v1, ($s2)
/* DA764 80144064 24430018 */ addiu $v1, $v0, 0x18
/* DA768 80144068 AC530008 */ sw $s3, 8($v0)
/* DA76C 8014406C AC40000C */ sw $zero, 0xc($v0)
/* DA770 80144070 AE430000 */ sw $v1, ($s2)
/* DA774 80144074 24430020 */ addiu $v1, $v0, 0x20
/* DA778 80144078 AC540010 */ sw $s4, 0x10($v0)
/* DA77C 8014407C AC400014 */ sw $zero, 0x14($v0)
/* DA780 80144080 AE430000 */ sw $v1, ($s2)
/* DA784 80144084 24430028 */ addiu $v1, $v0, 0x28
/* DA788 80144088 AC480018 */ sw $t0, 0x18($v0)
/* DA78C 8014408C AC40001C */ sw $zero, 0x1c($v0)
/* DA790 80144090 AE430000 */ sw $v1, ($s2)
/* DA794 80144094 24430030 */ addiu $v1, $v0, 0x30
/* DA798 80144098 AC4A0020 */ sw $t2, 0x20($v0)
/* DA79C 8014409C AC490024 */ sw $t1, 0x24($v0)
/* DA7A0 801440A0 AE430000 */ sw $v1, ($s2)
/* DA7A4 801440A4 3C03DB02 */ lui $v1, 0xdb02
/* DA7A8 801440A8 AC430028 */ sw $v1, 0x28($v0)
/* DA7AC 801440AC 24030018 */ addiu $v1, $zero, 0x18
/* DA7B0 801440B0 AC43002C */ sw $v1, 0x2c($v0)
/* DA7B4 801440B4 24430038 */ addiu $v1, $v0, 0x38
/* DA7B8 801440B8 3C048015 */ lui $a0, %hi(D_8014F110)
/* DA7BC 801440BC 2484F110 */ addiu $a0, $a0, %lo(D_8014F110)
/* DA7C0 801440C0 AE430000 */ sw $v1, ($s2)
/* DA7C4 801440C4 24430040 */ addiu $v1, $v0, 0x40
/* DA7C8 801440C8 AC440034 */ sw $a0, 0x34($v0)
/* DA7CC 801440CC 2484FFF8 */ addiu $a0, $a0, -8
/* DA7D0 801440D0 AC4B0030 */ sw $t3, 0x30($v0)
/* DA7D4 801440D4 AE430000 */ sw $v1, ($s2)
/* DA7D8 801440D8 24430048 */ addiu $v1, $v0, 0x48
/* DA7DC 801440DC AC4C0038 */ sw $t4, 0x38($v0)
/* DA7E0 801440E0 AC44003C */ sw $a0, 0x3c($v0)
/* DA7E4 801440E4 AE430000 */ sw $v1, ($s2)
/* DA7E8 801440E8 2403FFFF */ addiu $v1, $zero, -1
/* DA7EC 801440EC AC430044 */ sw $v1, 0x44($v0)
/* DA7F0 801440F0 24430050 */ addiu $v1, $v0, 0x50
/* DA7F4 801440F4 AC4D0040 */ sw $t5, 0x40($v0)
/* DA7F8 801440F8 AE430000 */ sw $v1, ($s2)
/* DA7FC 801440FC 24430058 */ addiu $v1, $v0, 0x58
/* DA800 80144100 AC4E0048 */ sw $t6, 0x48($v0)
/* DA804 80144104 AC40004C */ sw $zero, 0x4c($v0)
/* DA808 80144108 AE430000 */ sw $v1, ($s2)
/* DA80C 8014410C 3C030008 */ lui $v1, 8
/* DA810 80144110 AC430054 */ sw $v1, 0x54($v0)
/* DA814 80144114 24430060 */ addiu $v1, $v0, 0x60
/* DA818 80144118 AC4F0050 */ sw $t7, 0x50($v0)
/* DA81C 8014411C AE430000 */ sw $v1, ($s2)
/* DA820 80144120 240300C0 */ addiu $v1, $zero, 0xc0
/* DA824 80144124 AC43005C */ sw $v1, 0x5c($v0)
/* DA828 80144128 24430068 */ addiu $v1, $v0, 0x68
/* DA82C 8014412C AC510058 */ sw $s1, 0x58($v0)
/* DA830 80144130 AE430000 */ sw $v1, ($s2)
/* DA834 80144134 24430070 */ addiu $v1, $v0, 0x70
/* DA838 80144138 AC550060 */ sw $s5, 0x60($v0)
/* DA83C 8014413C AC400064 */ sw $zero, 0x64($v0)
/* DA840 80144140 AE430000 */ sw $v1, ($s2)
/* DA844 80144144 24030C00 */ addiu $v1, $zero, 0xc00
/* DA848 80144148 AC43006C */ sw $v1, 0x6c($v0)
/* DA84C 8014414C 24430078 */ addiu $v1, $v0, 0x78
/* DA850 80144150 AC560068 */ sw $s6, 0x68($v0)
/* DA854 80144154 AE430000 */ sw $v1, ($s2)
/* DA858 80144158 24430080 */ addiu $v1, $v0, 0x80
/* DA85C 8014415C AC570070 */ sw $s7, 0x70($v0)
/* DA860 80144160 AC400074 */ sw $zero, 0x74($v0)
/* DA864 80144164 AE430000 */ sw $v1, ($s2)
/* DA868 80144168 AC580078 */ sw $t8, 0x78($v0)
/* DA86C 8014416C AC40007C */ sw $zero, 0x7c($v0)
.L80144170:
/* DA870 80144170 07C0001D */ bltz $fp, .L801441E8
/* DA874 80144174 2402F7FF */ addiu $v0, $zero, -0x801
/* DA878 80144178 03C2F024 */ and $fp, $fp, $v0
/* DA87C 8014417C 3C038015 */ lui $v1, %hi(hudElements)
/* DA880 80144180 8C637960 */ lw $v1, %lo(hudElements)($v1)
/* DA884 80144184 001E1080 */ sll $v0, $fp, 2
/* DA888 80144188 00431021 */ addu $v0, $v0, $v1
/* DA88C 8014418C 8C440000 */ lw $a0, ($v0)
/* DA890 80144190 10800015 */ beqz $a0, .L801441E8
/* DA894 80144194 00000000 */ nop
/* DA898 80144198 8C830000 */ lw $v1, ($a0)
/* DA89C 8014419C 10600012 */ beqz $v1, .L801441E8
/* DA8A0 801441A0 30620002 */ andi $v0, $v1, 2
/* DA8A4 801441A4 14400010 */ bnez $v0, .L801441E8
/* DA8A8 801441A8 3C021020 */ lui $v0, 0x1020
/* DA8AC 801441AC 00621024 */ and $v0, $v1, $v0
/* DA8B0 801441B0 1440000D */ bnez $v0, .L801441E8
/* DA8B4 801441B4 3C020001 */ lui $v0, 1
/* DA8B8 801441B8 00621024 */ and $v0, $v1, $v0
/* DA8BC 801441BC 1040000A */ beqz $v0, .L801441E8
/* DA8C0 801441C0 30620040 */ andi $v0, $v1, 0x40
/* DA8C4 801441C4 14400008 */ bnez $v0, .L801441E8
/* DA8C8 801441C8 00000000 */ nop
/* DA8CC 801441CC 80820045 */ lb $v0, 0x45($a0)
/* DA8D0 801441D0 04400005 */ bltz $v0, .L801441E8
/* DA8D4 801441D4 30620080 */ andi $v0, $v1, 0x80
/* DA8D8 801441D8 10400003 */ beqz $v0, .L801441E8
/* DA8DC 801441DC 00000000 */ nop
/* DA8E0 801441E0 0C050AFF */ jal render_hud_element
/* DA8E4 801441E4 00000000 */ nop
.L801441E8:
/* DA8E8 801441E8 8FBF0044 */ lw $ra, 0x44($sp)
/* DA8EC 801441EC 8FBE0040 */ lw $fp, 0x40($sp)
/* DA8F0 801441F0 8FB7003C */ lw $s7, 0x3c($sp)
/* DA8F4 801441F4 8FB60038 */ lw $s6, 0x38($sp)
/* DA8F8 801441F8 8FB50034 */ lw $s5, 0x34($sp)
/* DA8FC 801441FC 8FB40030 */ lw $s4, 0x30($sp)
/* DA900 80144200 8FB3002C */ lw $s3, 0x2c($sp)
/* DA904 80144204 8FB20028 */ lw $s2, 0x28($sp)
/* DA908 80144208 8FB10024 */ lw $s1, 0x24($sp)
/* DA90C 8014420C 8FB00020 */ lw $s0, 0x20($sp)
/* DA910 80144210 03E00008 */ jr $ra
/* DA914 80144214 27BD0048 */ addiu $sp, $sp, 0x48

View File

@ -105,8 +105,8 @@ glabel hud_element_update
/* D7F54 80141854 00621024 */ and $v0, $v1, $v0
/* D7F58 80141858 14400012 */ bnez $v0, .L801418A4
/* D7F5C 8014185C 00000000 */ nop
/* D7F60 80141860 3C028015 */ lui $v0, %hi(D_8014EFCC)
/* D7F64 80141864 2442EFCC */ addiu $v0, $v0, %lo(D_8014EFCC)
/* D7F60 80141860 3C028015 */ lui $v0, %hi(gHudElementSizes)
/* D7F64 80141864 2442EFCC */ addiu $v0, $v0, %lo(gHudElementSizes)
/* D7F68 80141868 82650046 */ lb $a1, 0x46($s3)
/* D7F6C 8014186C 82660045 */ lb $a2, 0x45($s3)
/* D7F70 80141870 00051840 */ sll $v1, $a1, 1
@ -186,8 +186,8 @@ glabel hud_element_update
/* D8088 80141988 00621024 */ and $v0, $v1, $v0
/* D808C 8014198C 14400012 */ bnez $v0, .L801419D8
/* D8090 80141990 00000000 */ nop
/* D8094 80141994 3C028015 */ lui $v0, %hi(D_8014EFCC)
/* D8098 80141998 2442EFCC */ addiu $v0, $v0, %lo(D_8014EFCC)
/* D8094 80141994 3C028015 */ lui $v0, %hi(gHudElementSizes)
/* D8098 80141998 2442EFCC */ addiu $v0, $v0, %lo(gHudElementSizes)
/* D809C 8014199C 82650046 */ lb $a1, 0x46($s3)
/* D80A0 801419A0 82660045 */ lb $a2, 0x45($s3)
/* D80A4 801419A4 00051840 */ sll $v1, $a1, 1
@ -301,8 +301,8 @@ glabel hud_element_update
/* D8228 80141B28 00621024 */ and $v0, $v1, $v0
/* D822C 80141B2C 14400012 */ bnez $v0, .L80141B78
/* D8230 80141B30 00000000 */ nop
/* D8234 80141B34 3C028015 */ lui $v0, %hi(D_8014EFCC)
/* D8238 80141B38 2442EFCC */ addiu $v0, $v0, %lo(D_8014EFCC)
/* D8234 80141B34 3C028015 */ lui $v0, %hi(gHudElementSizes)
/* D8238 80141B38 2442EFCC */ addiu $v0, $v0, %lo(gHudElementSizes)
/* D823C 80141B3C 82650046 */ lb $a1, 0x46($s3)
/* D8240 80141B40 82660045 */ lb $a2, 0x45($s3)
/* D8244 80141B44 00051840 */ sll $v1, $a1, 1
@ -432,8 +432,8 @@ glabel hud_element_update
/* D840C 80141D0C 24020001 */ addiu $v0, $zero, 1
/* D8410 80141D10 3C013F80 */ lui $at, 0x3f80
/* D8414 80141D14 44813000 */ mtc1 $at, $f6
/* D8418 80141D18 3C048015 */ lui $a0, %hi(D_8014EFCC)
/* D841C 80141D1C 2484EFCC */ addiu $a0, $a0, %lo(D_8014EFCC)
/* D8418 80141D18 3C048015 */ lui $a0, %hi(gHudElementSizes)
/* D841C 80141D1C 2484EFCC */ addiu $a0, $a0, %lo(gHudElementSizes)
/* D8420 80141D20 AE700004 */ sw $s0, 4($s3)
/* D8424 80141D24 00451804 */ sllv $v1, $a1, $v0
/* D8428 80141D28 00651821 */ addu $v1, $v1, $a1
@ -553,8 +553,8 @@ glabel hud_element_update
/* D85D0 80141ED0 14400012 */ bnez $v0, .L80141F1C
/* D85D4 80141ED4 E6640030 */ swc1 $f4, 0x30($s3)
/* D85D8 80141ED8 82630046 */ lb $v1, 0x46($s3)
/* D85DC 80141EDC 3C048015 */ lui $a0, %hi(D_8014EFCC)
/* D85E0 80141EE0 2484EFCC */ addiu $a0, $a0, %lo(D_8014EFCC)
/* D85DC 80141EDC 3C048015 */ lui $a0, %hi(gHudElementSizes)
/* D85E0 80141EE0 2484EFCC */ addiu $a0, $a0, %lo(gHudElementSizes)
/* D85E4 80141EE4 00031040 */ sll $v0, $v1, 1
/* D85E8 80141EE8 00431021 */ addu $v0, $v0, $v1
/* D85EC 80141EEC 00021040 */ sll $v0, $v0, 1

View File

@ -22,8 +22,8 @@ glabel load_hud_element
/* D5A78 8013F378 120000D8 */ beqz $s0, .L8013F6DC_D5DDC
/* D5A7C 8013F37C AFB10014 */ sw $s1, 0x14($sp)
/* D5A80 8013F380 0000982D */ daddu $s3, $zero, $zero
/* D5A84 8013F384 3C168015 */ lui $s6, %hi(D_8014EFCC)
/* D5A88 8013F388 26D6EFCC */ addiu $s6, $s6, %lo(D_8014EFCC)
/* D5A84 8013F384 3C168015 */ lui $s6, %hi(gHudElementSizes)
/* D5A88 8013F388 26D6EFCC */ addiu $s6, $s6, %lo(gHudElementSizes)
.L8013F38C_D5A8C:
/* D5A8C 8013F38C 8E030000 */ lw $v1, ($s0)
/* D5A90 8013F390 2C62001C */ sltiu $v0, $v1, 0x1c

View File

@ -56,8 +56,8 @@ glabel render_hud_element
/* D93BC 80142CBC 14400011 */ bnez $v0, .L80142D04
/* D93C0 80142CC0 00000000 */ nop
/* D93C4 80142CC4 82E30046 */ lb $v1, 0x46($s7)
/* D93C8 80142CC8 3C048015 */ lui $a0, %hi(D_8014EFCC)
/* D93CC 80142CCC 2484EFCC */ addiu $a0, $a0, %lo(D_8014EFCC)
/* D93C8 80142CC8 3C048015 */ lui $a0, %hi(gHudElementSizes)
/* D93CC 80142CCC 2484EFCC */ addiu $a0, $a0, %lo(gHudElementSizes)
/* D93D0 80142CD0 00031040 */ sll $v0, $v1, 1
/* D93D4 80142CD4 00431021 */ addu $v0, $v0, $v1
/* D93D8 80142CD8 00021040 */ sll $v0, $v0, 1
@ -96,8 +96,8 @@ glabel render_hud_element
/* D9450 80142D50 1440000C */ bnez $v0, .L80142D84
/* D9454 80142D54 00000000 */ nop
/* D9458 80142D58 82E20046 */ lb $v0, 0x46($s7)
/* D945C 80142D5C 3C048015 */ lui $a0, %hi(D_8014EFCC)
/* D9460 80142D60 2484EFCC */ addiu $a0, $a0, %lo(D_8014EFCC)
/* D945C 80142D5C 3C048015 */ lui $a0, %hi(gHudElementSizes)
/* D9460 80142D60 2484EFCC */ addiu $a0, $a0, %lo(gHudElementSizes)
/* D9464 80142D64 00021840 */ sll $v1, $v0, 1
/* D9468 80142D68 00621821 */ addu $v1, $v1, $v0
/* D946C 80142D6C 00031840 */ sll $v1, $v1, 1

View File

@ -30,8 +30,8 @@ glabel render_hud_elements_backUI
/* D8970 80142270 3C03800A */ lui $v1, %hi(gMasterGfxPos)
/* D8974 80142274 2463A66C */ addiu $v1, $v1, %lo(gMasterGfxPos)
/* D8978 80142278 8C620000 */ lw $v0, ($v1)
/* D897C 8014227C 3C058015 */ lui $a1, %hi(hudElements)
/* D8980 80142280 8CA57960 */ lw $a1, %lo(hudElements)($a1)
/* D897C 8014227C 3C058015 */ lui $a1, %hi(gHudElements)
/* D8980 80142280 8CA57960 */ lw $a1, %lo(gHudElements)($a1)
/* D8984 80142284 0040202D */ daddu $a0, $v0, $zero
/* D8988 80142288 24420008 */ addiu $v0, $v0, 8
/* D898C 8014228C AC620000 */ sw $v0, ($v1)
@ -70,8 +70,8 @@ glabel render_hud_elements_backUI
/* D8A08 80142308 27C2FFFF */ addiu $v0, $fp, -1
/* D8A0C 8014230C 18400024 */ blez $v0, .L801423A0
/* D8A10 80142310 0000B82D */ daddu $s7, $zero, $zero
/* D8A14 80142314 3C0D8015 */ lui $t5, %hi(hudElements)
/* D8A18 80142318 25AD7960 */ addiu $t5, $t5, %lo(hudElements)
/* D8A14 80142314 3C0D8015 */ lui $t5, %hi(gHudElements)
/* D8A18 80142318 25AD7960 */ addiu $t5, $t5, %lo(gHudElements)
/* D8A1C 8014231C 27AC0028 */ addiu $t4, $sp, 0x28
/* D8A20 80142320 0180582D */ daddu $t3, $t4, $zero
.L80142324:
@ -116,8 +116,8 @@ glabel render_hud_elements_backUI
.L801423AC:
/* D8AAC 801423AC 03A21021 */ addu $v0, $sp, $v0
/* D8AB0 801423B0 8C420028 */ lw $v0, 0x28($v0)
/* D8AB4 801423B4 3C038015 */ lui $v1, %hi(hudElements)
/* D8AB8 801423B8 8C637960 */ lw $v1, %lo(hudElements)($v1)
/* D8AB4 801423B4 3C038015 */ lui $v1, %hi(gHudElements)
/* D8AB8 801423B8 8C637960 */ lw $v1, %lo(gHudElements)($v1)
/* D8ABC 801423BC 00021080 */ sll $v0, $v0, 2
/* D8AC0 801423C0 00431021 */ addu $v0, $v0, $v1
/* D8AC4 801423C4 8C500000 */ lw $s0, ($v0)
@ -132,8 +132,8 @@ glabel render_hud_elements_backUI
/* D8AE8 801423E8 1440000B */ bnez $v0, .L80142418
/* D8AEC 801423EC 00000000 */ nop
/* D8AF0 801423F0 82030046 */ lb $v1, 0x46($s0)
/* D8AF4 801423F4 3C0E8015 */ lui $t6, %hi(D_8014EFCC)
/* D8AF8 801423F8 25CEEFCC */ addiu $t6, $t6, %lo(D_8014EFCC)
/* D8AF4 801423F4 3C0E8015 */ lui $t6, %hi(gHudElementSizes)
/* D8AF8 801423F8 25CEEFCC */ addiu $t6, $t6, %lo(gHudElementSizes)
/* D8AFC 801423FC 00031040 */ sll $v0, $v1, 1
/* D8B00 80142400 00431021 */ addu $v0, $v0, $v1
/* D8B04 80142404 00021040 */ sll $v0, $v0, 1
@ -153,8 +153,8 @@ glabel render_hud_elements_backUI
/* D8B34 80142434 1440000C */ bnez $v0, .L80142468
/* D8B38 80142438 00000000 */ nop
/* D8B3C 8014243C 82030045 */ lb $v1, 0x45($s0)
/* D8B40 80142440 3C0E8015 */ lui $t6, %hi(D_8014EFCC)
/* D8B44 80142444 25CEEFCC */ addiu $t6, $t6, %lo(D_8014EFCC)
/* D8B40 80142440 3C0E8015 */ lui $t6, %hi(gHudElementSizes)
/* D8B44 80142444 25CEEFCC */ addiu $t6, $t6, %lo(gHudElementSizes)
/* D8B48 80142448 00031040 */ sll $v0, $v1, 1
/* D8B4C 8014244C 00431021 */ addu $v0, $v0, $v1
/* D8B50 80142450 00021040 */ sll $v0, $v0, 1
@ -230,8 +230,8 @@ glabel render_hud_elements_backUI
/* D8C50 80142550 1440000B */ bnez $v0, .L80142580
/* D8C54 80142554 00000000 */ nop
/* D8C58 80142558 82030046 */ lb $v1, 0x46($s0)
/* D8C5C 8014255C 3C0E8015 */ lui $t6, %hi(D_8014EFCC)
/* D8C60 80142560 25CEEFCC */ addiu $t6, $t6, %lo(D_8014EFCC)
/* D8C5C 8014255C 3C0E8015 */ lui $t6, %hi(gHudElementSizes)
/* D8C60 80142560 25CEEFCC */ addiu $t6, $t6, %lo(gHudElementSizes)
/* D8C64 80142564 00031040 */ sll $v0, $v1, 1
/* D8C68 80142568 00431021 */ addu $v0, $v0, $v1
/* D8C6C 8014256C 00021040 */ sll $v0, $v0, 1

View File

@ -21,8 +21,8 @@ glabel render_hud_elements_frontUI
/* D8E5C 8014275C AFB1052C */ sw $s1, 0x52c($sp)
/* D8E60 80142760 AFB00528 */ sw $s0, 0x528($sp)
/* D8E64 80142764 8C620000 */ lw $v0, ($v1)
/* D8E68 80142768 3C058015 */ lui $a1, %hi(hudElements)
/* D8E6C 8014276C 8CA57960 */ lw $a1, %lo(hudElements)($a1)
/* D8E68 80142768 3C058015 */ lui $a1, %hi(gHudElements)
/* D8E6C 8014276C 8CA57960 */ lw $a1, %lo(gHudElements)($a1)
/* D8E70 80142770 0040202D */ daddu $a0, $v0, $zero
/* D8E74 80142774 24420008 */ addiu $v0, $v0, 8
/* D8E78 80142778 AC620000 */ sw $v0, ($v1)
@ -61,8 +61,8 @@ glabel render_hud_elements_frontUI
/* D8EF4 801427F4 27C2FFFF */ addiu $v0, $fp, -1
/* D8EF8 801427F8 18400024 */ blez $v0, .L8014288C
/* D8EFC 801427FC 0000B82D */ daddu $s7, $zero, $zero
/* D8F00 80142800 3C0D8015 */ lui $t5, %hi(hudElements)
/* D8F04 80142804 25AD7960 */ addiu $t5, $t5, %lo(hudElements)
/* D8F00 80142800 3C0D8015 */ lui $t5, %hi(gHudElements)
/* D8F04 80142804 25AD7960 */ addiu $t5, $t5, %lo(gHudElements)
/* D8F08 80142808 27AC0028 */ addiu $t4, $sp, 0x28
/* D8F0C 8014280C 0180582D */ daddu $t3, $t4, $zero
.L80142810:
@ -107,8 +107,8 @@ glabel render_hud_elements_frontUI
.L80142898:
/* D8F98 80142898 03A21021 */ addu $v0, $sp, $v0
/* D8F9C 8014289C 8C420028 */ lw $v0, 0x28($v0)
/* D8FA0 801428A0 3C038015 */ lui $v1, %hi(hudElements)
/* D8FA4 801428A4 8C637960 */ lw $v1, %lo(hudElements)($v1)
/* D8FA0 801428A0 3C038015 */ lui $v1, %hi(gHudElements)
/* D8FA4 801428A4 8C637960 */ lw $v1, %lo(gHudElements)($v1)
/* D8FA8 801428A8 00021080 */ sll $v0, $v0, 2
/* D8FAC 801428AC 00431021 */ addu $v0, $v0, $v1
/* D8FB0 801428B0 8C500000 */ lw $s0, ($v0)
@ -120,8 +120,8 @@ glabel render_hud_elements_frontUI
/* D8FC8 801428C8 1440000B */ bnez $v0, .L801428F8
/* D8FCC 801428CC 00000000 */ nop
/* D8FD0 801428D0 82030046 */ lb $v1, 0x46($s0)
/* D8FD4 801428D4 3C0E8015 */ lui $t6, %hi(D_8014EFCC)
/* D8FD8 801428D8 25CEEFCC */ addiu $t6, $t6, %lo(D_8014EFCC)
/* D8FD4 801428D4 3C0E8015 */ lui $t6, %hi(gHudElementSizes)
/* D8FD8 801428D8 25CEEFCC */ addiu $t6, $t6, %lo(gHudElementSizes)
/* D8FDC 801428DC 00031040 */ sll $v0, $v1, 1
/* D8FE0 801428E0 00431021 */ addu $v0, $v0, $v1
/* D8FE4 801428E4 00021040 */ sll $v0, $v0, 1
@ -141,8 +141,8 @@ glabel render_hud_elements_frontUI
/* D9014 80142914 1440000C */ bnez $v0, .L80142948
/* D9018 80142918 00000000 */ nop
/* D901C 8014291C 82030045 */ lb $v1, 0x45($s0)
/* D9020 80142920 3C0E8015 */ lui $t6, %hi(D_8014EFCC)
/* D9024 80142924 25CEEFCC */ addiu $t6, $t6, %lo(D_8014EFCC)
/* D9020 80142920 3C0E8015 */ lui $t6, %hi(gHudElementSizes)
/* D9024 80142924 25CEEFCC */ addiu $t6, $t6, %lo(gHudElementSizes)
/* D9028 80142928 00031040 */ sll $v0, $v1, 1
/* D902C 8014292C 00431021 */ addu $v0, $v0, $v1
/* D9030 80142930 00021040 */ sll $v0, $v0, 1
@ -218,8 +218,8 @@ glabel render_hud_elements_frontUI
/* D9130 80142A30 1440000B */ bnez $v0, .L80142A60
/* D9134 80142A34 00000000 */ nop
/* D9138 80142A38 82030045 */ lb $v1, 0x45($s0)
/* D913C 80142A3C 3C0E8015 */ lui $t6, %hi(D_8014EFCC)
/* D9140 80142A40 25CEEFCC */ addiu $t6, $t6, %lo(D_8014EFCC)
/* D913C 80142A3C 3C0E8015 */ lui $t6, %hi(gHudElementSizes)
/* D9140 80142A40 25CEEFCC */ addiu $t6, $t6, %lo(gHudElementSizes)
/* D9144 80142A44 00031040 */ sll $v0, $v1, 1
/* D9148 80142A48 00431021 */ addu $v0, $v0, $v1
/* D914C 80142A4C 00021040 */ sll $v0, $v0, 1

View File

@ -16,8 +16,8 @@ glabel render_hud_elements_world
/* D9DE0 801436E0 3C091020 */ lui $t1, 0x1020
/* D9DE4 801436E4 3C080001 */ lui $t0, 1
/* D9DE8 801436E8 3C074000 */ lui $a3, 0x4000
/* D9DEC 801436EC 3C068015 */ lui $a2, %hi(hudElements)
/* D9DF0 801436F0 8CC67960 */ lw $a2, %lo(hudElements)($a2)
/* D9DEC 801436EC 3C068015 */ lui $a2, %hi(gHudElements)
/* D9DF0 801436F0 8CC67960 */ lw $a2, %lo(gHudElements)($a2)
/* D9DF4 801436F4 27A50010 */ addiu $a1, $sp, 0x10
.L801436F8:
/* D9DF8 801436F8 8CC40000 */ lw $a0, ($a2)
@ -59,8 +59,8 @@ glabel render_hud_elements_world
/* D9E84 80143784 2642FFFF */ addiu $v0, $s2, -1
/* D9E88 80143788 18400024 */ blez $v0, .L8014381C
/* D9E8C 8014378C 0000882D */ daddu $s1, $zero, $zero
/* D9E90 80143790 3C0C8015 */ lui $t4, %hi(hudElements)
/* D9E94 80143794 258C7960 */ addiu $t4, $t4, %lo(hudElements)
/* D9E90 80143790 3C0C8015 */ lui $t4, %hi(gHudElements)
/* D9E94 80143794 258C7960 */ addiu $t4, $t4, %lo(gHudElements)
/* D9E98 80143798 27AB0010 */ addiu $t3, $sp, 0x10
/* D9E9C 8014379C 0160502D */ daddu $t2, $t3, $zero
.L801437A0:
@ -150,8 +150,8 @@ glabel render_hud_elements_world
/* D9FDC 801438DC 24030018 */ addiu $v1, $zero, 0x18
/* D9FE0 801438E0 AC43001C */ sw $v1, 0x1c($v0)
/* D9FE4 801438E4 24430028 */ addiu $v1, $v0, 0x28
/* D9FE8 801438E8 3C048015 */ lui $a0, %hi(D_8014F110)
/* D9FEC 801438EC 2484F110 */ addiu $a0, $a0, %lo(D_8014F110)
/* D9FE8 801438E8 3C048015 */ lui $a0, %hi(D_8014F108 + 8)
/* D9FEC 801438EC 2484F110 */ addiu $a0, $a0, %lo(D_8014F108 + 8)
/* D9FF0 801438F0 ACA30000 */ sw $v1, ($a1)
/* D9FF4 801438F4 24430030 */ addiu $v1, $v0, 0x30
/* D9FF8 801438F8 AC440024 */ sw $a0, 0x24($v0)
@ -178,8 +178,8 @@ glabel render_hud_elements_world
.L8014394C:
/* DA04C 8014394C 8E020000 */ lw $v0, ($s0)
/* DA050 80143950 26100004 */ addiu $s0, $s0, 4
/* DA054 80143954 3C038015 */ lui $v1, %hi(hudElements)
/* DA058 80143958 8C637960 */ lw $v1, %lo(hudElements)($v1)
/* DA054 80143954 3C038015 */ lui $v1, %hi(gHudElements)
/* DA058 80143958 8C637960 */ lw $v1, %lo(gHudElements)($v1)
/* DA05C 8014395C 00021080 */ sll $v0, $v0, 2
/* DA060 80143960 00431021 */ addu $v0, $v0, $v1
/* DA064 80143964 8C440000 */ lw $a0, ($v0)
@ -199,8 +199,8 @@ glabel render_hud_elements_world
/* DA094 80143994 3C091020 */ lui $t1, 0x1020
/* DA098 80143998 3C080001 */ lui $t0, 1
/* DA09C 8014399C 3C074000 */ lui $a3, 0x4000
/* DA0A0 801439A0 3C068015 */ lui $a2, %hi(hudElements)
/* DA0A4 801439A4 8CC67960 */ lw $a2, %lo(hudElements)($a2)
/* DA0A0 801439A0 3C068015 */ lui $a2, %hi(gHudElements)
/* DA0A4 801439A4 8CC67960 */ lw $a2, %lo(gHudElements)($a2)
/* DA0A8 801439A8 27A50010 */ addiu $a1, $sp, 0x10
.L801439AC:
/* DA0AC 801439AC 8CC40000 */ lw $a0, ($a2)
@ -242,8 +242,8 @@ glabel render_hud_elements_world
/* DA138 80143A38 2642FFFF */ addiu $v0, $s2, -1
/* DA13C 80143A3C 18400024 */ blez $v0, .L80143AD0
/* DA140 80143A40 0000882D */ daddu $s1, $zero, $zero
/* DA144 80143A44 3C0C8015 */ lui $t4, %hi(hudElements)
/* DA148 80143A48 258C7960 */ addiu $t4, $t4, %lo(hudElements)
/* DA144 80143A44 3C0C8015 */ lui $t4, %hi(gHudElements)
/* DA148 80143A48 258C7960 */ addiu $t4, $t4, %lo(gHudElements)
/* DA14C 80143A4C 27AB0010 */ addiu $t3, $sp, 0x10
/* DA150 80143A50 0160502D */ daddu $t2, $t3, $zero
.L80143A54:
@ -333,8 +333,8 @@ glabel render_hud_elements_world
/* DA290 80143B90 24030018 */ addiu $v1, $zero, 0x18
/* DA294 80143B94 AC43001C */ sw $v1, 0x1c($v0)
/* DA298 80143B98 24430028 */ addiu $v1, $v0, 0x28
/* DA29C 80143B9C 3C048015 */ lui $a0, %hi(D_8014F110)
/* DA2A0 80143BA0 2484F110 */ addiu $a0, $a0, %lo(D_8014F110)
/* DA29C 80143B9C 3C048015 */ lui $a0, %hi(D_8014F108 + 8)
/* DA2A0 80143BA0 2484F110 */ addiu $a0, $a0, %lo(D_8014F108 + 8)
/* DA2A4 80143BA4 ACA30000 */ sw $v1, ($a1)
/* DA2A8 80143BA8 24430030 */ addiu $v1, $v0, 0x30
/* DA2AC 80143BAC AC440024 */ sw $a0, 0x24($v0)
@ -361,8 +361,8 @@ glabel render_hud_elements_world
.L80143C00:
/* DA300 80143C00 8E020000 */ lw $v0, ($s0)
/* DA304 80143C04 26100004 */ addiu $s0, $s0, 4
/* DA308 80143C08 3C038015 */ lui $v1, %hi(hudElements)
/* DA30C 80143C0C 8C637960 */ lw $v1, %lo(hudElements)($v1)
/* DA308 80143C08 3C038015 */ lui $v1, %hi(gHudElements)
/* DA30C 80143C0C 8C637960 */ lw $v1, %lo(gHudElements)($v1)
/* DA310 80143C10 00021080 */ sll $v0, $v0, 2
/* DA314 80143C14 00431021 */ addu $v0, $v0, $v1
/* DA318 80143C18 8C440000 */ lw $a0, ($v0)

View File

@ -1,127 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel set_hud_element_scale
/* DB320 80144C20 2402F7FF */ addiu $v0, $zero, -0x801
/* DB324 80144C24 00822024 */ and $a0, $a0, $v0
/* DB328 80144C28 00042080 */ sll $a0, $a0, 2
/* DB32C 80144C2C 3C028015 */ lui $v0, %hi(hudElements)
/* DB330 80144C30 8C427960 */ lw $v0, %lo(hudElements)($v0)
/* DB334 80144C34 44853000 */ mtc1 $a1, $f6
/* DB338 80144C38 00822021 */ addu $a0, $a0, $v0
/* DB33C 80144C3C 8C850000 */ lw $a1, ($a0)
/* DB340 80144C40 8CA20000 */ lw $v0, ($a1)
/* DB344 80144C44 3C030010 */ lui $v1, 0x10
/* DB348 80144C48 00431024 */ and $v0, $v0, $v1
/* DB34C 80144C4C 14400012 */ bnez $v0, .L80144C98
/* DB350 80144C50 E4A60030 */ swc1 $f6, 0x30($a1)
/* DB354 80144C54 80A30046 */ lb $v1, 0x46($a1)
/* DB358 80144C58 3C048015 */ lui $a0, %hi(D_8014EFCC)
/* DB35C 80144C5C 2484EFCC */ addiu $a0, $a0, %lo(D_8014EFCC)
/* DB360 80144C60 00031040 */ sll $v0, $v1, 1
/* DB364 80144C64 00431021 */ addu $v0, $v0, $v1
/* DB368 80144C68 00021040 */ sll $v0, $v0, 1
/* DB36C 80144C6C 00441021 */ addu $v0, $v0, $a0
/* DB370 80144C70 84480000 */ lh $t0, ($v0)
/* DB374 80144C74 80A30045 */ lb $v1, 0x45($a1)
/* DB378 80144C78 84490002 */ lh $t1, 2($v0)
/* DB37C 80144C7C 00031040 */ sll $v0, $v1, 1
/* DB380 80144C80 00431021 */ addu $v0, $v0, $v1
/* DB384 80144C84 00021040 */ sll $v0, $v0, 1
/* DB388 80144C88 00441021 */ addu $v0, $v0, $a0
/* DB38C 80144C8C 84440000 */ lh $a0, ($v0)
/* DB390 80144C90 0805132A */ j .L80144CA8
/* DB394 80144C94 84460002 */ lh $a2, 2($v0)
.L80144C98:
/* DB398 80144C98 90A8004E */ lbu $t0, 0x4e($a1)
/* DB39C 80144C9C 90A9004F */ lbu $t1, 0x4f($a1)
/* DB3A0 80144CA0 90A40050 */ lbu $a0, 0x50($a1)
/* DB3A4 80144CA4 90A60051 */ lbu $a2, 0x51($a1)
.L80144CA8:
/* DB3A8 80144CA8 44840000 */ mtc1 $a0, $f0
/* DB3AC 80144CAC 00000000 */ nop
/* DB3B0 80144CB0 46800020 */ cvt.s.w $f0, $f0
/* DB3B4 80144CB4 46060002 */ mul.s $f0, $f0, $f6
/* DB3B8 80144CB8 00000000 */ nop
/* DB3BC 80144CBC 3C014F00 */ lui $at, 0x4f00
/* DB3C0 80144CC0 44811000 */ mtc1 $at, $f2
/* DB3C4 80144CC4 00000000 */ nop
/* DB3C8 80144CC8 4600103E */ c.le.s $f2, $f0
/* DB3CC 80144CCC 00000000 */ nop
/* DB3D0 80144CD0 45010005 */ bc1t .L80144CE8
/* DB3D4 80144CD4 24A70048 */ addiu $a3, $a1, 0x48
/* DB3D8 80144CD8 4600020D */ trunc.w.s $f8, $f0
/* DB3DC 80144CDC 44034000 */ mfc1 $v1, $f8
/* DB3E0 80144CE0 08051340 */ j .L80144D00
/* DB3E4 80144CE4 00000000 */ nop
.L80144CE8:
/* DB3E8 80144CE8 46020001 */ sub.s $f0, $f0, $f2
/* DB3EC 80144CEC 3C028000 */ lui $v0, 0x8000
/* DB3F0 80144CF0 4600020D */ trunc.w.s $f8, $f0
/* DB3F4 80144CF4 44034000 */ mfc1 $v1, $f8
/* DB3F8 80144CF8 00000000 */ nop
/* DB3FC 80144CFC 00621825 */ or $v1, $v1, $v0
.L80144D00:
/* DB400 80144D00 44860000 */ mtc1 $a2, $f0
/* DB404 80144D04 00000000 */ nop
/* DB408 80144D08 46800020 */ cvt.s.w $f0, $f0
/* DB40C 80144D0C 46060002 */ mul.s $f0, $f0, $f6
/* DB410 80144D10 00000000 */ nop
/* DB414 80144D14 3C014F00 */ lui $at, 0x4f00
/* DB418 80144D18 44811000 */ mtc1 $at, $f2
/* DB41C 80144D1C A0E30000 */ sb $v1, ($a3)
/* DB420 80144D20 4600103E */ c.le.s $f2, $f0
/* DB424 80144D24 00000000 */ nop
/* DB428 80144D28 45010005 */ bc1t .L80144D40
/* DB42C 80144D2C 24A70049 */ addiu $a3, $a1, 0x49
/* DB430 80144D30 4600020D */ trunc.w.s $f8, $f0
/* DB434 80144D34 44034000 */ mfc1 $v1, $f8
/* DB438 80144D38 08051356 */ j .L80144D58
/* DB43C 80144D3C 00000000 */ nop
.L80144D40:
/* DB440 80144D40 46020001 */ sub.s $f0, $f0, $f2
/* DB444 80144D44 3C028000 */ lui $v0, 0x8000
/* DB448 80144D48 4600020D */ trunc.w.s $f8, $f0
/* DB44C 80144D4C 44034000 */ mfc1 $v1, $f8
/* DB450 80144D50 00000000 */ nop
/* DB454 80144D54 00621825 */ or $v1, $v1, $v0
.L80144D58:
/* DB458 80144D58 44842000 */ mtc1 $a0, $f4
/* DB45C 80144D5C 00000000 */ nop
/* DB460 80144D60 46802120 */ cvt.s.w $f4, $f4
/* DB464 80144D64 44880000 */ mtc1 $t0, $f0
/* DB468 80144D68 00000000 */ nop
/* DB46C 80144D6C 46800020 */ cvt.s.w $f0, $f0
/* DB470 80144D70 46002103 */ div.s $f4, $f4, $f0
/* DB474 80144D74 46062102 */ mul.s $f4, $f4, $f6
/* DB478 80144D78 00000000 */ nop
/* DB47C 80144D7C 44861000 */ mtc1 $a2, $f2
/* DB480 80144D80 00000000 */ nop
/* DB484 80144D84 468010A0 */ cvt.s.w $f2, $f2
/* DB488 80144D88 44890000 */ mtc1 $t1, $f0
/* DB48C 80144D8C 00000000 */ nop
/* DB490 80144D90 46800020 */ cvt.s.w $f0, $f0
/* DB494 80144D94 46001083 */ div.s $f2, $f2, $f0
/* DB498 80144D98 46061082 */ mul.s $f2, $f2, $f6
/* DB49C 80144D9C 00000000 */ nop
/* DB4A0 80144DA0 3C013F80 */ lui $at, 0x3f80
/* DB4A4 80144DA4 44810000 */ mtc1 $at, $f0
/* DB4A8 80144DA8 3C014480 */ lui $at, 0x4480
/* DB4AC 80144DAC 44813000 */ mtc1 $at, $f6
/* DB4B0 80144DB0 46040103 */ div.s $f4, $f0, $f4
/* DB4B4 80144DB4 46062102 */ mul.s $f4, $f4, $f6
/* DB4B8 80144DB8 00000000 */ nop
/* DB4BC 80144DBC A0E30000 */ sb $v1, ($a3)
/* DB4C0 80144DC0 2403FEFF */ addiu $v1, $zero, -0x101
/* DB4C4 80144DC4 8CA20000 */ lw $v0, ($a1)
/* DB4C8 80144DC8 46020083 */ div.s $f2, $f0, $f2
/* DB4CC 80144DCC 46061082 */ mul.s $f2, $f2, $f6
/* DB4D0 80144DD0 00000000 */ nop
/* DB4D4 80144DD4 00431024 */ and $v0, $v0, $v1
/* DB4D8 80144DD8 34420810 */ ori $v0, $v0, 0x810
/* DB4DC 80144DDC ACA20000 */ sw $v0, ($a1)
/* DB4E0 80144DE0 4600220D */ trunc.w.s $f8, $f4
/* DB4E4 80144DE4 E4A80034 */ swc1 $f8, 0x34($a1)
/* DB4E8 80144DE8 4600120D */ trunc.w.s $f8, $f2
/* DB4EC 80144DEC 03E00008 */ jr $ra
/* DB4F0 80144DF0 E4A80038 */ swc1 $f8, 0x38($a1)

View File

@ -1,72 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel update_hud_elements
/* D7D10 80141610 27BDFFE0 */ addiu $sp, $sp, -0x20
/* D7D14 80141614 AFB10014 */ sw $s1, 0x14($sp)
/* D7D18 80141618 0000882D */ daddu $s1, $zero, $zero
/* D7D1C 8014161C AFB20018 */ sw $s2, 0x18($sp)
/* D7D20 80141620 3C120004 */ lui $s2, 4
/* D7D24 80141624 AFBF001C */ sw $ra, 0x1c($sp)
/* D7D28 80141628 AFB00010 */ sw $s0, 0x10($sp)
.L8014162C:
/* D7D2C 8014162C 3C038015 */ lui $v1, %hi(hudElements)
/* D7D30 80141630 8C637960 */ lw $v1, %lo(hudElements)($v1)
/* D7D34 80141634 00111080 */ sll $v0, $s1, 2
/* D7D38 80141638 00431021 */ addu $v0, $v0, $v1
/* D7D3C 8014163C 8C500000 */ lw $s0, ($v0)
/* D7D40 80141640 52000027 */ beql $s0, $zero, .L801416E0
/* D7D44 80141644 26310001 */ addiu $s1, $s1, 1
/* D7D48 80141648 8E030000 */ lw $v1, ($s0)
/* D7D4C 8014164C 10600023 */ beqz $v1, .L801416DC
/* D7D50 80141650 30620002 */ andi $v0, $v1, 2
/* D7D54 80141654 54400022 */ bnel $v0, $zero, .L801416E0
/* D7D58 80141658 26310001 */ addiu $s1, $s1, 1
/* D7D5C 8014165C 00721024 */ and $v0, $v1, $s2
/* D7D60 80141660 10400005 */ beqz $v0, .L80141678
/* D7D64 80141664 00000000 */ nop
/* D7D68 80141668 0C05123D */ jal free_hud_element
/* D7D6C 8014166C 0220202D */ daddu $a0, $s1, $zero
/* D7D70 80141670 080505B8 */ j .L801416E0
/* D7D74 80141674 26310001 */ addiu $s1, $s1, 1
.L80141678:
/* D7D78 80141678 8E020004 */ lw $v0, 4($s0)
/* D7D7C 8014167C 1040001B */ beqz $v0, .L801416EC
/* D7D80 80141680 00000000 */ nop
/* D7D84 80141684 92020047 */ lbu $v0, 0x47($s0)
/* D7D88 80141688 2442FFFF */ addiu $v0, $v0, -1
/* D7D8C 8014168C A2020047 */ sb $v0, 0x47($s0)
/* D7D90 80141690 00021600 */ sll $v0, $v0, 0x18
/* D7D94 80141694 14400005 */ bnez $v0, .L801416AC
/* D7D98 80141698 00000000 */ nop
.L8014169C:
/* D7D9C 8014169C 0C0505C1 */ jal hud_element_update
/* D7DA0 801416A0 0200202D */ daddu $a0, $s0, $zero
/* D7DA4 801416A4 1440FFFD */ bnez $v0, .L8014169C
/* D7DA8 801416A8 00000000 */ nop
.L801416AC:
/* D7DAC 801416AC 8E020000 */ lw $v0, ($s0)
/* D7DB0 801416B0 30420100 */ andi $v0, $v0, 0x100
/* D7DB4 801416B4 5040000A */ beql $v0, $zero, .L801416E0
/* D7DB8 801416B8 26310001 */ addiu $s1, $s1, 1
/* D7DBC 801416BC C6040028 */ lwc1 $f4, 0x28($s0)
/* D7DC0 801416C0 C6000020 */ lwc1 $f0, 0x20($s0)
/* D7DC4 801416C4 C602002C */ lwc1 $f2, 0x2c($s0)
/* D7DC8 801416C8 46002100 */ add.s $f4, $f4, $f0
/* D7DCC 801416CC C6000024 */ lwc1 $f0, 0x24($s0)
/* D7DD0 801416D0 46001080 */ add.s $f2, $f2, $f0
/* D7DD4 801416D4 E6040028 */ swc1 $f4, 0x28($s0)
/* D7DD8 801416D8 E602002C */ swc1 $f2, 0x2c($s0)
.L801416DC:
/* D7DDC 801416DC 26310001 */ addiu $s1, $s1, 1
.L801416E0:
/* D7DE0 801416E0 2A220140 */ slti $v0, $s1, 0x140
/* D7DE4 801416E4 1440FFD1 */ bnez $v0, .L8014162C
/* D7DE8 801416E8 00000000 */ nop
.L801416EC:
/* D7DEC 801416EC 8FBF001C */ lw $ra, 0x1c($sp)
/* D7DF0 801416F0 8FB20018 */ lw $s2, 0x18($sp)
/* D7DF4 801416F4 8FB10014 */ lw $s1, 0x14($sp)
/* D7DF8 801416F8 8FB00010 */ lw $s0, 0x10($sp)
/* D7DFC 801416FC 03E00008 */ jr $ra
/* D7E00 80141700 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,53 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80242680_DF9080
/* DF9080 80242680 27BDFFD0 */ addiu $sp, $sp, -0x30
/* DF9084 80242684 AFBF0028 */ sw $ra, 0x28($sp)
/* DF9088 80242688 AFB10024 */ sw $s1, 0x24($sp)
/* DF908C 8024268C AFB00020 */ sw $s0, 0x20($sp)
/* DF9090 80242690 8C82000C */ lw $v0, 0xc($a0)
/* DF9094 80242694 0C0B1EAF */ jal evt_get_variable
/* DF9098 80242698 8C450000 */ lw $a1, ($v0)
/* DF909C 8024269C 24030100 */ addiu $v1, $zero, 0x100
/* DF90A0 802426A0 0040882D */ daddu $s1, $v0, $zero
/* DF90A4 802426A4 3C028024 */ lui $v0, %hi(D_80244D74_DFB774)
/* DF90A8 802426A8 24424D74 */ addiu $v0, $v0, %lo(D_80244D74_DFB774)
/* DF90AC 802426AC 00118040 */ sll $s0, $s1, 1
/* DF90B0 802426B0 02118021 */ addu $s0, $s0, $s1
/* DF90B4 802426B4 001080C0 */ sll $s0, $s0, 3
/* DF90B8 802426B8 02028021 */ addu $s0, $s0, $v0
/* DF90BC 802426BC AFA30010 */ sw $v1, 0x10($sp)
/* DF90C0 802426C0 8E020000 */ lw $v0, ($s0)
/* DF90C4 802426C4 AFA00018 */ sw $zero, 0x18($sp)
/* DF90C8 802426C8 AFA0001C */ sw $zero, 0x1c($sp)
/* DF90CC 802426CC AFA20014 */ sw $v0, 0x14($sp)
/* DF90D0 802426D0 8E050004 */ lw $a1, 4($s0)
/* DF90D4 802426D4 24020001 */ addiu $v0, $zero, 1
/* DF90D8 802426D8 3C01802E */ lui $at, %hi(spr_allocateBtlComponentsOnWorldHeap)
/* DF90DC 802426DC AC22F524 */ sw $v0, %lo(spr_allocateBtlComponentsOnWorldHeap)($at)
/* DF90E0 802426E0 0C00E219 */ jal _create_npc_standard
/* DF90E4 802426E4 27A40010 */ addiu $a0, $sp, 0x10
/* DF90E8 802426E8 0C00E2B7 */ jal get_npc_by_index
/* DF90EC 802426EC 0040202D */ daddu $a0, $v0, $zero
/* DF90F0 802426F0 3C04FBFF */ lui $a0, 0xfbff
/* DF90F4 802426F4 8C430000 */ lw $v1, ($v0)
/* DF90F8 802426F8 3484FFFF */ ori $a0, $a0, 0xffff
/* DF90FC 802426FC A05100A4 */ sb $s1, 0xa4($v0)
/* DF9100 80242700 00641824 */ and $v1, $v1, $a0
/* DF9104 80242704 AC430000 */ sw $v1, ($v0)
/* DF9108 80242708 C6000008 */ lwc1 $f0, 8($s0)
/* DF910C 8024270C E4400038 */ swc1 $f0, 0x38($v0)
/* DF9110 80242710 C600000C */ lwc1 $f0, 0xc($s0)
/* DF9114 80242714 E440003C */ swc1 $f0, 0x3c($v0)
/* DF9118 80242718 C6000010 */ lwc1 $f0, 0x10($s0)
/* DF911C 8024271C E4400040 */ swc1 $f0, 0x40($v0)
/* DF9120 80242720 8E050014 */ lw $a1, 0x14($s0)
/* DF9124 80242724 0C00ECD0 */ jal set_npc_yaw
/* DF9128 80242728 0040202D */ daddu $a0, $v0, $zero
/* DF912C 8024272C 8FBF0028 */ lw $ra, 0x28($sp)
/* DF9130 80242730 8FB10024 */ lw $s1, 0x24($sp)
/* DF9134 80242734 8FB00020 */ lw $s0, 0x20($sp)
/* DF9138 80242738 24020002 */ addiu $v0, $zero, 2
/* DF913C 8024273C 03E00008 */ jr $ra
/* DF9140 80242740 27BD0030 */ addiu $sp, $sp, 0x30

View File

@ -328,53 +328,12 @@ segments:
- [0x71430, bin, gspF3DEX2kawase_fifo_text]
- [0x72A60, bin, gspF3DEX2kawase_fifo_data]
- [0x72E80, bin, n_aspMain_data]
- [0x73130, .rodata, is_debug]
- [0x73148, .rodata, main_loop]
- [0x73160, .rodata, 43F0]
- [0x73200, .rodata, curtains]
- [0x73230, .rodata, crash_screen]
- [0x735E0, .rodata, 8800]
- [0x73610, .rodata, B0E0]
- [0x73680, .rodata, camera]
- [0x73690, .rodata, state_logos]
- [0x736E8, .rodata, state_file_select]
- [0x73720, .rodata, 111f0_len_860]
- [0x73738, .rodata, state_intro]
- [0x73790, .rodata, state_title_screen]
- [0x73860, .rodata, state_demo]
- [0x73880, .rodata, npc]
- [0x739F0, .rodata, 1a1f0_len_5390]
- [0x73AB0, .rodata, status_icons]
- [0x73B10, .rodata, 23680]
- [0x73CC0, .rodata, 28910_len_5090]
- [0x73CF0, .rodata, 2e230_len_2190]
- [0x73D08, .rodata, 30450]
- [0x73D30, .rodata, 33450]
- [0x73D40, .rodata, 341d0]
- [0x73DA0, .rodata, world/world]
- [0x74EA0, .rodata, os/osSetIntMask]
- [0x74F20, .rodata, os/3c490_len_3c0]
- [0x74F40, .rodata, os/3c940_len_140]
- [0x74F50, .rodata, os/guLookAt]
- [0x74F70, .rodata, os/lookathil]
- [0x74FA0, .rodata, os/lookatref]
- [0x74FB0, .rodata, os/perspective]
- [0x74FF0, .rodata, os/3FEA0]
- [0x75170, .rodata, os/42470_len_310]
- [0x75180, .rodata, os/exceptasm]
- [0x751D0, .rodata, os/46c70_len_e00]
- [0x75240, .rodata, os/48c00_len_5c0]
- [0x75340, .rodata, os/491c0_len_f80]
- [0x75540, .rodata, os/49C70]
- [0x75640, .rodata, battle/battle]
# bss starts at 0x8009A5B0
# 0x800 of bss until...
# - [0x75240, .bss, main_loop]
# - [0x75240, .bss, os/39cb0_len_100, 0x0] # size unknown
- [0x73130]
- type: code
start: 0x759B0
vram: 0x800DC500
subsegments:
- [0x759B0, c, bss2]
- [0x759B0, c, 759b0_len_61b0]
- [0x77480, c, 77480]
- [0x7B440, c, 7B440]
@ -701,11 +660,12 @@ segments:
- [0x9DE60, data]
- [0xA2D40, .data, 8a860_len_3f30]
- [0xA2D90, data]
- [0xA5100] # bss at 8010C920
- [0xA5100]
- type: code
start: 0xA5DD0
vram: 0x8010F6D0
subsegments:
- [0xA5DD0, c, bss3]
- [0xA5DD0, c, a5dd0_len_114e0]
- [0xB4580, c, B4580]
- [0xB72B0, c, entity]
@ -728,7 +688,6 @@ segments:
- [0xE2960, .data, entity]
- [0xE2980, .data, msg]
- [0xE2CA0, data]
#- [0xE2DF0, .data, cd180_len_38f0]
- start: 0xE2DF0
type: .data
name: cd180_len_38f0

View File

@ -3002,7 +3002,7 @@ fold_groupOffsets = 0x8014EF64; // type:data rom:0xE5664
D_8014EFC0 = 0x8014EFC0; // type:data rom:0xE56C0
D_8014EFC4 = 0x8014EFC4; // type:data rom:0xE56C4
hud_element_defaultAnim = 0x8014EFC8; // type:data rom:0xE56C8
D_8014EFCC = 0x8014EFCC; // type:data rom:0xE56CC
gHudElementSizes = 0x8014EFCC; // type:data rom:0xE56CC
D_8014F0C8 = 0x8014F0C8; // type:data rom:0xE57C8
D_8014F110 = 0x8014F110; // type:data rom:0xE5810
gCloudyFlowerFieldsBg = 0x8014F120; // type:data rom:0xE5820
@ -20630,7 +20630,7 @@ fold_groupDescriptors = 0x80156980; // type:data
fold_gfxDataCache = 0x80156F20; // type:data
D_80156F60 = 0x80156F60; // type:data
D_80157460 = 0x80157460; // type:data
hudElements = 0x80157960; // type:data
gHudElements = 0x80157960; // type:data
D_80157964 = 0x80157964; // type:data
D_80157968 = 0x80157968; // type:data
D_80157970 = 0x80157970; // type:data

View File

@ -95,235 +95,8 @@ D_80000308 = 0x80000308;
D_8000030C = 0x8000030C;
osMemSize = 0x80000318;
D_8000031C = 0x8000031C;
D_801512B0 = 0x801512B0;
D_801512B4 = 0x801512B4;
D_800A08C0 = 0x800A08C0;
gCurrentCustomModelGfxBuildersPtr = 0x801512B8;
D_801512BC = 0x801512BC;
D_801512C0 = 0x801512C0;
gEntityHeapBase = 0x801512C4;
D_801512C8 = 0x801512C8;
gCurrentModels = 0x801512CC;
D_801512D0 = 0x801512D0;
gAnimCount = 0x801512D4;
gMsgBGScrollAmtX = 0x801512D8;
D_801512DA = 0x801512DA;
gCurrentTransformGroups = 0x801512E0;
gMsgGlobalWaveCounter = 0x801512E4;
gCurrentCustomModelGfxPtr = 0x801512E8;
gLastCreatedEntityIndex = 0x801512EC;
D_801512F0 = 0x801512F0;
gMsgVarImages = 0x801512F4;
D_801512F8 = 0x801512F8;
gCurrentModelTreeRoot = 0x801512FC;
D_80151300 = 0x80151300;
D_80151304 = 0x80151304;
D_80151308 = 0x80151308;
gMsgBGScrollAmtY = 0x8015130C;
D_8015130E = 0x8015130E;
D_80151310 = 0x80151310;
D_80151314 = 0x80151314;
gEntityModelCount = 0x80151318;
D_8015131C = 0x8015131C;
D_80151324 = 0x80151324;
D_80151328 = 0x80151328;
D_8015132C = 0x8015132C;
D_80151330 = 0x80151330;
gTriggerCount = 0x80151334;
D_80151338 = 0x80151338;
D_8015133C = 0x8015133C;
gCurrentDoorSoundsSet = 0x80151340;
D_80151344 = 0x80151344;
gWorldEntityList = 0x80151380;
gBattleEntityList = 0x801513F8;
gCurrentEntityListPtr = 0x80151470;
gWorldShadowList = 0x80151478;
gBattleShadowList = 0x80151568;
gCurrentShadowListPtr = 0x80151658;
wStaticEntityDataSize = 0x8015165C;
bStaticEntityDataSize = 0x80151660;
wStaticEntityData = 0x80151668;
D_801516DC = 0x801516DC;
bStaticEntityData = 0x801516E8;
D_801516FC = 0x801516FC;
gMainGameState = 0x80151700;
gCurrentTileDescriptor = 0x80151740;
wModelList = 0x80151770;
bModelList = 0x80151B70;
wTransformGroups = 0x80151F70;
bTransformGroups = 0x80151F80;
wModelSpecialDls = 0x80151F90;
bModelSpecialDls = 0x80152010;
wCustomModelGfxBuilders = 0x80152090;
bCustomModelGfxBuilders = 0x80152110;
D_80152190 = 0x80152190;
D_801521D0 = 0x801521D0;
gCurrentModelLocalVtxBuffers = 0x80152210;
D_80152214 = 0x80152214;
D_80152218 = 0x80152218;
D_80152220 = 0x80152220;
D_80152A20 = 0x80152A20;
wBgRenderType = 0x80153220;
bBgRenderType = 0x80153221;
mdl_treeIterPos = 0x80153224;
D_80153226 = 0x80153226;
wFogSettings = 0x80153228;
bFogSettings = 0x80153248;
gCurrentFogSettings = 0x80153264;
texPannerMainU = 0x80153268;
texPannerMainV = 0x801532A8;
texPannerAuxU = 0x801532E8;
texPannerAuxV = 0x80153328;
mdl_nextTextureAddress = 0x80153368;
mdl_currentTransformGroupChildIndex = 0x8015336C;
D_8015336E = 0x8015336E;
D_80153370 = 0x80153370;
D_80153374 = 0x80153374;
D_80153376 = 0x80153376;
D_80153380 = 0x80153380;
mdl_renderTaskLists = 0x801533A0;
mdl_renderTaskMode = 0x801533AC;
mdl_renderTaskCount = 0x801533B0;
D_801533C0 = 0x801533C0;
D_801536C0 = 0x801536C0;
D_801539C0 = 0x801539C0;
D_80153A00 = 0x80153A00;
gCurrentAnimMeshListPtr = 0x80153A40;
gAnimModelFogEnabled = 0x80153A44;
gAnimModelFogR = 0x80153A48;
D_80153A4B = 0x80153A4B;
gAnimModelFogG = 0x80153A4C;
D_80153A4F = 0x80153A4F;
gAnimModelFogB = 0x80153A50;
D_80153A53 = 0x80153A53;
gAnimModelFogA = 0x80153A54;
D_80153A57 = 0x80153A57;
gAnimModelFogStart = 0x80153A58;
gAnimModelFogEnd = 0x80153A5C;
D_80153A60 = 0x80153A60;
gAnimRotMtx = 0x80153A68;
gAnimScaleMtx = 0x80153AA8;
gAnimTranslateMtx = 0x80153AE8;
gAnimRotScaleMtx = 0x80153B28;
gAnimTreeRoot = 0x80153B68;
gWorldEntityModelList = 0x80153B70;
gBattleEntityModelList = 0x80153F70;
gCurrentEntityModelList = 0x80154370;
D_80154374 = 0x80154374;
entity_fog_enabled = 0x80154378;
entity_fog_red = 0x8015437C;
D_8015437F = 0x8015437F;
entity_fog_green = 0x80154380;
D_80154383 = 0x80154383;
entity_fog_blue = 0x80154384;
D_80154387 = 0x80154387;
entity_fog_alpha = 0x80154388;
D_8015438B = 0x8015438B;
entity_fog_dist_min = 0x8015438C;
entity_fog_dist_max = 0x80154390;
gWorldDynamicEntityList = 0x801543A0;
gBattleDynamicEntityList = 0x801543E0;
gCurrentDynamicEntityListPtr = 0x80154420;
gMessageBuffers = 0x80154430;
gMessagePrinters = 0x80154C30;
gMessageMsgVars = 0x80155C38;
D_80155C98 = 0x80155C98;
gMessageWindowProjMatrix = 0x80155CA0;
D_80155D20 = 0x80155D20;
msg_drawState = 0x80155D74;
D_80155D80 = 0x80155D80;
D_80155D84 = 0x80155D84;
D_80155D88 = 0x80155D88;
D_80155D8C = 0x80155D8C;
D_80155D8E = 0x80155D8E;
D_80155D90 = 0x80155D90;
D_80155DA0 = 0x80155DA0;
D_801561A0 = 0x801561A0;
D_801565A0 = 0x801565A0;
D_801565A4 = 0x801565A4;
D_801565A6 = 0x801565A6;
D_801565A8 = 0x801565A8;
D_801565B0 = 0x801565B0;
D_801568E0 = 0x801568E0;
D_801568E4 = 0x801568E4;
D_801568E8 = 0x801568E8;
D_801568EC = 0x801568EC;
D_801568F0 = 0x801568F0;
D_801568F4 = 0x801568F4;
D_801568F8 = 0x801568F8;
screen_overlay_frontType = 0x80156900;
D_80156903 = 0x80156903;
screen_overlay_frontZoom = 0x80156904;
screen_overlay_backType = 0x80156908;
screen_overlay_backZoom = 0x8015690C;
D_80156910 = 0x80156910;
D_8015690B = 0x8015690B;
D_80156920 = 0x80156920;
D_80156948 = 0x80156948;
fold_vtxBuf = 0x80156950;
D_80156954 = 0x80156954;
D_80156958 = 0x80156958;
D_80156960 = 0x80156960;
D_80156968 = 0x80156968;
D_80156970 = 0x80156970;
fold_groupDescriptors = 0x80156980;
fold_gfxDataCache = 0x80156F20;
D_80156F60 = 0x80156F60;
D_80157460 = 0x80157460;
hudElements = 0x80157960;
D_80157964 = 0x80157964;
D_80157968 = 0x80157968;
D_80157970 = 0x80157970;
D_80157F70 = 0x80157F70;
D_80158570 = 0x80158570;
D_80158574 = 0x80158574;
D_80158580 = 0x80158580;
D_80158B80 = 0x80158B80;
D_80159180 = 0x80159180;
wTriggerList = 0x80159190;
bTriggerList = 0x80159290;
gCurrentTriggerListPtr = 0x80159390;
D_801593A0 = 0x801593A0;
D_8015959E = 0x8015959E;
D_801595A0 = 0x801595A0;
D_801595C0 = 0x801595C0;
D_80159670 = 0x80159670;
D_80159720 = 0x80159720;
D_801597D0 = 0x801597D0;
D_80159880 = 0x80159880;
D_801598A0 = 0x801598A0;
D_801599B8 = 0x801599B8;
D_80159AD0 = 0x80159AD0;
D_80159AD4 = 0x80159AD4;
gMusicUnkVolume = 0x80159AE0;
gMusicTargetVolume = 0x80159AE2;
gMusicUnkVolume2 = 0x80159AE4;
gMusicCurrentVolume = 0x80159AE6;
gMusicSettings = 0x80159AF0;
D_80159B08 = 0x80159B08;
D_80159B50 = 0x80159B50;
gWindows = 0x80159D50;
D_80159D54 = 0x80159D54;
D_80159E7E = 0x80159E7E;
D_8015A010 = 0x8015A010;
D_8015A070 = 0x8015A070;
D_8015A07C = 0x8015A07C;
D_8015A1E2 = 0x8015A1E2;
D_8015A2BC = 0x8015A2BC;
D_8015A2BE = 0x8015A2BE;
D_8015A2D0 = 0x8015A2D0;
D_8015A370 = 0x8015A370;
gCollisionStatus = 0x8015A550;
D_8015A578 = 0x8015A578;
D_8015A57A = 0x8015A57A;
mdl_textureHandles = 0x8015A590;
D_8015C790 = 0x8015C790;
D_8015C7A8 = 0x8015C7A8;
D_8015C7C0 = 0x8015C7C0;
D_8015C7D0 = 0x8015C7D0;
D_8015C7D2 = 0x8015C7D2;
D_8015C7D8 = 0x8015C7D8;
D_8015C7E0 = 0x8015C7E0;
D_80164000 = 0x80164000;
D_80169B16 = 0x80169B16;
D_80197000 = 0x80197000;
@ -447,17 +220,11 @@ D_80245603 = 0x80245603;
D_80245604 = 0x80245604;
D_80245605 = 0x80245605;
D_80245608 = 0x80245608;
D_8024560B = 0x8024560B;
D_8024560C = 0x8024560C;
D_8024560F = 0x8024560F;
D_80245610 = 0x80245610;
D_80245613 = 0x80245613;
D_80245614 = 0x80245614;
D_80245617 = 0x80245617;
D_80245618 = 0x80245618;
D_8024561B = 0x8024561B;
D_8024561C = 0x8024561C;
D_8024561F = 0x8024561F;
D_80245620 = 0x80245620;
D_80245650 = 0x80245650;
D_80245928 = 0x80245928;
@ -498,7 +265,6 @@ D_80247BF0 = 0x80247BF0;
D_80247CA0 = 0x80247CA0;
D_80247CB4 = 0x80247CB4;
D_80247D00 = 0x80247D00;
D_80247DF0 = 0x80247DF0;
D_80247E68 = 0x80247E68;
D_80248380 = 0x80248380;
D_80248388 = 0x80248388;
@ -527,7 +293,6 @@ D_8024B990 = 0x8024B990;
D_8024B9B4 = 0x8024B9B4;
D_8024B9B8 = 0x8024B9B8;
D_8024BA90 = 0x8024BA90;
D_8024BB80 = 0x8024BB80;
D_8024BDD0 = 0x8024BDD0;
D_8024BDE8 = 0x8024BDE8;
D_8024BDF0 = 0x8024BDF0;
@ -749,8 +514,6 @@ gStatsMenuIconIDs = 0x80270150;
gBadgeMenuItemIDs = 0x80270180;
gBadgeMenuCurrentPage = 0x80270280;
gBadgeMenuPages = 0x80270288;
D_80270289 = 0x80270289;
D_8027028A = 0x8027028A;
gBadgeMenuSelectedIndex = 0x80270378;
D_8027037C = 0x8027037C;
gBadgeMenuSelectedItemID = 0x80270380;
@ -912,7 +675,6 @@ D_8029FBD0 = 0x8029FBD0;
D_8029FBD4 = 0x8029FBD4;
gActionCommandStatus = 0x8029FBE0;
D_8029FC2A = 0x8029FC2A;
D_8029FC3E = 0x8029FC3E;
D_8029FC4C = 0x8029FC4C;
D_802A19B0 = 0x802A19B0;
D_802A19C0 = 0x802A19C0;
@ -921,7 +683,6 @@ D_802A1AC0 = 0x802A1AC0;
D_802A1B40 = 0x802A1B40;
D_802A1CD0 = 0x802A1CD0;
D_802A1CD4 = 0x802A1CD4;
D_802A1D60 = 0x802A1D60;
D_802A21F0 = 0x802A21F0;
D_802A25C8 = 0x802A25C8;
D_802A25E4 = 0x802A25E4;
@ -1217,6 +978,11 @@ heap_battleHead = 0x803DA800;
D_802510B0 = 0x802510B0;
D_8026A2B0 = 0x8026A2B0;
// BSS syms
#ifndef NON_MATCHING
// todo add more here as we find them
#endif
// effect_1
D_09000FA0 = 0x09000FA0;
D_09001060 = 0x09001060;
@ -1290,129 +1056,6 @@ D_09001358 = 0x09001358;
D_09001430 = 0x09001430;
D_09001508 = 0x09001508;
// BSS syms
#ifndef NON_MATCHING
D_8010C920 = 0x8010C920;
D_8010C924 = 0x8010C924;
D_8010C928 = 0x8010C928;
D_8010C92C = 0x8010C92C;
wPartnerNpc = 0x8010C930;
D_8010C934 = 0x8010C934;
D_8010C938 = 0x8010C938;
D_8010C93C = 0x8010C93C;
D_8010C940 = 0x8010C940;
gSpinHistoryBufferPos = 0x8010C944;
D_8010C94C = 0x8010C94C;
D_8010C950 = 0x8010C950;
D_8010C954 = 0x8010C954;
D_8010C958 = 0x8010C958;
D_8010C95C = 0x8010C95C;
D_8010C960 = 0x8010C960;
D_8010C964 = 0x8010C964;
D_8010C968 = 0x8010C968;
D_8010C96B = 0x8010C96B;
D_8010C96C = 0x8010C96C;
D_8010C970 = 0x8010C970;
D_8010C974 = 0x8010C974;
D_8010C978 = 0x8010C978;
D_8010C97A = 0x8010C97A;
D_8010C97C = 0x8010C97C;
D_8010C980 = 0x8010C980;
D_8010C984 = 0x8010C984;
D_8010C98C = 0x8010C98C;
D_8010C990 = 0x8010C990;
D_8010C9A0 = 0x8010C9A0;
D_8010C9B0 = 0x8010C9B0;
D_8010C9C0 = 0x8010C9C0;
D_8010C9C8 = 0x8010C9C8;
D_8010CCF8 = 0x8010CCF8;
D_8010CCFA = 0x8010CCFA;
D_8010CCFC = 0x8010CCFC;
D_8010CCFE = 0x8010CCFE;
D_8010CD00 = 0x8010CD00;
D_8010CD10 = 0x8010CD10;
D_8010CD12 = 0x8010CD12;
D_8010CD20 = 0x8010CD20;
D_8010CD30 = 0x8010CD30;
D_8010CD34 = 0x8010CD34;
D_8010CD38 = 0x8010CD38;
D_8010CFB8 = 0x8010CFB8;
D_8010CFBC = 0x8010CFBC;
wPartnerTetherDistance = 0x8010CFC0;
D_8010CFC4 = 0x8010CFC4;
D_8010CFC8 = 0x8010CFC8;
D_8010CFCA = 0x8010CFCA;
D_8010CFCC = 0x8010CFCC;
D_8010CFCE = 0x8010CFCE;
D_8010CFD0 = 0x8010CFD0;
D_8010CFD4 = 0x8010CFD4;
D_8010CFD8 = 0x8010CFD8;
D_8010CFDC = 0x8010CFDC;
D_8010CFE0 = 0x8010CFE0;
D_8010CFE4 = 0x8010CFE4;
D_8010CFE8 = 0x8010CFE8;
wPartner = 0x8010CFEC;
D_8010CFF0 = 0x8010CFF0;
D_8010CFF4 = 0x8010CFF4;
D_8010D000 = 0x8010D000;
D_8010D640 = 0x8010D640;
D_8010D644 = 0x8010D644;
D_8010D648 = 0x8010D648;
D_8010D64C = 0x8010D64C;
D_8010D650 = 0x8010D650;
D_8010D654 = 0x8010D654;
D_8010D655 = 0x8010D655;
D_8010D656 = 0x8010D656;
D_8010D658 = 0x8010D658;
D_8010D65A = 0x8010D65A;
D_8010D65C = 0x8010D65C;
D_8010D660 = 0x8010D660;
D_8010D664 = 0x8010D664;
D_8010D668 = 0x8010D668;
D_8010D66C = 0x8010D66C;
D_8010D670 = 0x8010D670;
D_8010D674 = 0x8010D674;
D_8010D678 = 0x8010D678;
D_8010D67C = 0x8010D67C;
D_8010D67E = 0x8010D67E;
D_8010D680 = 0x8010D680;
D_8010D682 = 0x8010D682;
D_8010D684 = 0x8010D684;
D_8010D686 = 0x8010D686;
D_8010D688 = 0x8010D688;
D_8010D68A = 0x8010D68A;
D_8010D68C = 0x8010D68C;
D_8010D68E = 0x8010D68E;
D_8010D68F = 0x8010D68F;
D_8010D690 = 0x8010D690;
D_8010D691 = 0x8010D691;
D_8010D692 = 0x8010D692;
D_8010D693 = 0x8010D693;
D_8010D694 = 0x8010D694;
D_8010D698 = 0x8010D698;
D_8010D699 = 0x8010D699;
D_8010D69A = 0x8010D69A;
gPopupMenu = 0x8010D69C;
D_8010D6A0 = 0x8010D6A0;
D_8010D6A4 = 0x8010D6A4;
D_8010D6B0 = 0x8010D6B0;
gPartnerActionStatus = 0x8010EBB0;
gSpinHistoryPosY = 0x8010EF10;
gSpinHistoryPosX = 0x8010EF28;
gSpinHistoryPosZ = 0x8010EF40;
gUIStatus = 0x8010EF58;
D_8010EF92 = 0x8010EF92;
D_8010EF9C = 0x8010EF9C;
D_8010EF9D = 0x8010EF9D;
D_8010EF9E = 0x8010EF9E;
gPlayerStatus = 0x8010EFC8;
gPlayerActionState = 0x8010F07C;
gPlayerAnimation = 0x8010F080;
gPlayerSpinState = 0x8010F250;
gPlayerData = 0x8010F290;
gSpinHistoryPosAngle = 0x8010F6B8;
#endif
// Invalid pointers from dead code
dead_atan2 = 0x8002AF70;
dead_gCurrentCamID = 0x800A158C;