render_hud_element (#972)

* render_hud_element

Co-authored-by: Unnunu <serge_zorkin@mail.ru>

* update default size on progress.py

* PR comments

---------

Co-authored-by: Unnunu <serge_zorkin@mail.ru>
This commit is contained in:
Ethan Roseman 2023-03-11 11:15:59 +09:00 committed by GitHub
parent b2bfea4654
commit df10ef30c7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 160 additions and 1625 deletions

View File

@ -108,7 +108,7 @@ def main(args):
total_size = sum(sizes.values())
# TODO hack for now since non-jp roms aren't mapped out
if args.version != "us":
total_size = 3718664
total_size = 3718660
all_funcs = set(sizes.keys())
nonmatching_funcs = get_nonmatching_funcs()

View File

@ -75,19 +75,22 @@ void create_target_list(Actor* actor, s32 arg1) {
s32 i, j;
f32 f6, f8, f10;
f32 f2, f12, f14;
f32 f61;
u8 sp10;
f32 sp14;
s32 sp18 = FALSE;
s32 sp1C;
s32 fp;
s32 a02;
ActorPartBlueprint* partBlueprint;
s32 index1;
s32 index2;
s32 a22;
if (battleStatus->currentTargetListFlags & 0x80000000) {
actor->targetListLength = -1;
return;
}
if (battleStatus->currentTargetListFlags & 0x8) {
targetData->actorID = ACTOR_PLAYER;
targetData->partID = 1;
@ -101,7 +104,7 @@ void create_target_list(Actor* actor, s32 arg1) {
targetData->pos.z = playerActor->homePos.z;
}
targetData->unk_10 = -100;
s5 += 1;
s5++;
targetData++;
}
@ -118,7 +121,7 @@ void create_target_list(Actor* actor, s32 arg1) {
targetData->pos.z = partnerActor->homePos.z;
}
targetData->unk_10 = -50;
s5 += 1;
s5++;
targetData++;
}
@ -134,8 +137,7 @@ void create_target_list(Actor* actor, s32 arg1) {
numParts = targetActor->numParts;
for (j = 0; j < numParts; targetPart = targetPart->nextPart, j++) {
if (!(targetPart->flags & 0x20000)) {
ActorPartBlueprint* partBlueprint = targetPart->staticData;
s8 partID;
partBlueprint = targetPart->staticData;
if (!(targetPart->flags & 0x100000)) {
fp = !arg1; // TODO ??????
if (fp) {
@ -173,12 +175,11 @@ void create_target_list(Actor* actor, s32 arg1) {
}
targetData->actorID = ACTOR_CLASS_ENEMY | i;
partID = partBlueprint->index;
targetData->partID = partBlueprint->index;
targetData->pos.x = f6;
targetData->pos.y = f8;
targetData->pos.z = f10;
targetData->unk_10 = 0;
targetData->partID = partID;
if ((targetActor->flags & 0x4000) && !(targetActor->flags & 0x10)) {
targetData->unk_10 = 100;
@ -253,10 +254,12 @@ void create_target_list(Actor* actor, s32 arg1) {
if (battleStatus->currentTargetListFlags & 0x8000) {
if (!(targetPart->flags & 0x800000) || (targetActor->flags & 0x40) || (targetPart->flags & 0x40)) {
a02 = 1;
goto END2;
} else {
a02 = 0;
}
} else {
a02 = 0;
}
a02 = 0;
END2:
if (a02) {
for (j = i; j < s5 - 1; j++) {
@ -312,7 +315,7 @@ END2:
goto END;
}
if ((battleStatus->currentTargetListFlags & 0x4000) && !(targetPart->flags & 0x20)) {
s32 a22 = 0;
a22 = 0;
for (j = 0; j < s5; j++) {
target = &targetData[j];
@ -331,8 +334,9 @@ END2:
goto END;
}
}
if (battleStatus->currentTargetListFlags & 0x2000) {
s32 a22 = 0;
a22 = 0;
for (j = 0; j < s5; j++) {
target = &targetData[j];
@ -351,43 +355,28 @@ END2:
goto END;
}
}
if ((battleStatus->currentTargetListFlags & 0x20) && (targetActor->flags & 0x200)) {
a02 = 1;
goto END;
}
if ((battleStatus->currentTargetListFlags & 0x100000) && s0->homeRow == fp + 1) {
} else if ((battleStatus->currentTargetListFlags & 0x100000) && s0->homeRow == fp + 1) {
a02 = 1;
goto END;
}
if ((battleStatus->currentTargetListFlags & 0x200000) && s0->homeRow == fp - 1) {
} else if ((battleStatus->currentTargetListFlags & 0x200000) && s0->homeRow == fp - 1) {
a02 = 1;
goto END;
}
if ((battleStatus->currentTargetListFlags & 0x400000) && s0->homeCol == sp1C - 1) {
} else if ((battleStatus->currentTargetListFlags & 0x400000) && s0->homeCol == sp1C - 1) {
a02 = 1;
goto END;
}
if ((battleStatus->currentTargetListFlags & 0x800000) && s0->homeCol == sp1C + 1) {
} else if ((battleStatus->currentTargetListFlags & 0x800000) && s0->homeCol == sp1C + 1) {
a02 = 1;
goto END;
}
if ((battleStatus->currentTargetListFlags & 0x100000) && s0->homeRow < fp) {
} else if ((battleStatus->currentTargetListFlags & 0x100000) && s0->homeRow < fp) {
a02 = 1;
goto END;
}
if ((battleStatus->currentTargetListFlags & 0x200000) && s0->homeRow > fp) {
} else if ((battleStatus->currentTargetListFlags & 0x200000) && s0->homeRow > fp) {
a02 = 1;
goto END;
}
if ((battleStatus->currentTargetListFlags & 0x400000) && s0->homeCol > sp1C) {
} else if ((battleStatus->currentTargetListFlags & 0x400000) && s0->homeCol > sp1C) {
a02 = 1;
goto END;
}
if ((battleStatus->currentTargetListFlags & 0x800000) && s0->homeCol < sp1C) {
} else if ((battleStatus->currentTargetListFlags & 0x800000) && s0->homeCol < sp1C) {
a02 = 1;
goto END;
} else {
a02 = 0;
}
a02 = 0;
END:
if (a02) {
for (j = i; j < s5 - 1; j++) {
@ -398,6 +387,8 @@ END:
}
}
} while (0); // TODO required to match
actor->targetListLength = s5;
if (s5 == 0 && sp18) {
gBattleStatus.flags2 |= 0x1000;
@ -405,17 +396,18 @@ END:
gBattleStatus.flags2 &= ~0x1000;
}
targetIndexList = actor->targetIndexList;
targetData = actor->targetData;
s5 = actor->targetListLength;
targetIndexList = actor->targetIndexList;
for (i = 0; i < s5; i++) {
targetIndexList[i] = i;
}
for (i = 0; i < s5 - 1; i++) {
for (j = i + 1; j < s5; j++) {
s32 index1 = targetIndexList[i];
s32 index2 = targetIndexList[j];
index1 = targetIndexList[i];
index2 = targetIndexList[j];
s0 = &targetData[index1];
target = &targetData[index2];
if (s0->pos.x + s0->unk_10 * 10 > target->pos.x + target->unk_10 * 10) {
@ -424,8 +416,6 @@ END:
}
}
}
} while (0); // TODO required to match
}
#else
void create_target_list(Actor* actor, s32 arg1);
@ -578,7 +568,7 @@ void func_80263300(void) {
player_create_target_list(player);
if (player->targetListLength != 0) {
battleStatus->menuStatus[0] += 1;
battleStatus->menuStatus[0]++;
cond = TRUE;
}
}

View File

@ -512,26 +512,24 @@ void update_status_menu(void) {
UiStatus* uiStatus = &gUIStatus;
PlayerData* playerData = &gPlayerData;
PlayerStatus* playerStatus = &gPlayerStatus;
s32 s0;
s32 s02;
s32 fp;
s32 new_var;
s32 s5;
s32 s6;
s32 id;
s32 s4;
s32 s44;
s32 s7;
s32 s1;
s32 s66;
s32 v0;
s32 temp;
s32 sp50;
s32 sp54;
s32 sp5C;
s32 sp60;
s32 fp;
s32 new_var;
s32 s1;
s32 s2;
s32 s4;
s32 s5;
s32 s6;
s32 s7;
s32 id;
s32 v0;
s32 temp;
/*
regalloc:
target | current | do while
@ -556,14 +554,14 @@ void update_status_menu(void) {
status_menu_start_blinking_coins();
}
s02 = playerData->coins - uiStatus->displayCoins;
s2 = playerData->coins - uiStatus->displayCoins;
if (s02 < 0) {
s02 = (s02 - 4) / 5;
if (s2 < 0) {
s2 = (s2 - 4) / 5;
} else {
s02 = (s02 + 4) / 5;
s2 = (s2 + 4) / 5;
}
uiStatus->displayCoins += s02;
uiStatus->displayCoins += s2;
if (uiStatus->displayHP != playerData->curHP && !uiStatus->ignoreChanges) {
if (uiStatus->hidden) {
@ -649,7 +647,7 @@ void update_status_menu(void) {
return;
}
if (uiStatus->unk_45[1] && uiStatus->hidden && playerStatus->inputEnabledCounter == 0) {
if (uiStatus->unk_45[1] && uiStatus->hidden && playerStatus->inputDisabledCount == 0) {
uiStatus->showTimer = 42;
uiStatus->hidden = FALSE;
uiStatus->unk_3B[0] = 0;
@ -877,7 +875,7 @@ void update_status_menu(void) {
s7 = s4;
}
s02 = 0;
s2 = 0;
sp50 = 0;
s1 = 0;
@ -885,185 +883,185 @@ void update_status_menu(void) {
if (!s6) {
if (sp50 < uiStatus->spBarsToBlink * 8) {
while (TRUE) {
s02++;
s2++;
s1++;
if (s02 >= uiStatus->spBarsToBlink) { break; } s02++; s1++;
if (s02 >= uiStatus->spBarsToBlink) { break; } s02++; s1++;
if (s02 >= uiStatus->spBarsToBlink) { break; } s02++; s1++;
if (s02 >= uiStatus->spBarsToBlink) { break; } s02++; s1++;
if (s02 >= uiStatus->spBarsToBlink) { break; } s02++; s1++;
if (s02 >= uiStatus->spBarsToBlink) { break; } s02++; s1++;
if (s02 >= uiStatus->spBarsToBlink) { break; } s02++; s1 = 0;
if (s2 >= uiStatus->spBarsToBlink) { break; } s2++; s1++;
if (s2 >= uiStatus->spBarsToBlink) { break; } s2++; s1++;
if (s2 >= uiStatus->spBarsToBlink) { break; } s2++; s1++;
if (s2 >= uiStatus->spBarsToBlink) { break; } s2++; s1++;
if (s2 >= uiStatus->spBarsToBlink) { break; } s2++; s1++;
if (s2 >= uiStatus->spBarsToBlink) { break; } s2++; s1++;
if (s2 >= uiStatus->spBarsToBlink) { break; } s2++; s1 = 0;
sp50++;
if (s02 >= uiStatus->spBarsToBlink) { break; }
if (s2 >= uiStatus->spBarsToBlink) { break; }
}
}
}
}
while (TRUE) {
if (s02 >= s4 || s02 >= s7 && sp54 == 0) {
if (s2 >= s4 || s2 >= s7 && sp54 == 0) {
break;
}
s02++;
s2++;
hud_element_set_script(id, SPIncrementHudScripts[sp50]);
hud_element_set_render_pos(id, new_var + sp50 * 20 + D_800F7FE8[0], s5 - 2);
hud_element_draw_next(id);
s1++;
if (s02 >= s4 || s02 >= s7 && sp54 == 0) {
if (s2 >= s4 || s2 >= s7 && sp54 == 0) {
break;
}
s02++;
s2++;
hud_element_set_script(id, SPIncrementHudScripts[sp50]);
hud_element_set_render_pos(id, new_var + sp50 * 20 + D_800F7FE8[1], s5 - 2);
hud_element_draw_next(id);
s1++;
if (s02 >= s4 || s02 >= s7 && sp54 == 0) {
if (s2 >= s4 || s2 >= s7 && sp54 == 0) {
break;
}
s02++;
s2++;
hud_element_set_script(id, SPIncrementHudScripts[sp50]);
hud_element_set_render_pos(id, new_var + sp50 * 20 + D_800F7FE8[2], s5 - 2);
hud_element_draw_next(id);
s1++;
if (s02 >= s4 || s02 >= s7 && sp54 == 0) {
if (s2 >= s4 || s2 >= s7 && sp54 == 0) {
break;
}
s02++;
s2++;
hud_element_set_script(id, SPIncrementHudScripts[sp50]);
hud_element_set_render_pos(id, new_var + sp50 * 20 + D_800F7FE8[3], s5 - 2);
hud_element_draw_next(id);
s1++;
if (s02 >= s4 || s02 >= s7 && sp54 == 0) {
if (s2 >= s4 || s2 >= s7 && sp54 == 0) {
break;
}
s02++;
s2++;
hud_element_set_script(id, SPIncrementHudScripts[sp50]);
hud_element_set_render_pos(id, new_var + sp50 * 20 + D_800F7FE8[4], s5 - 2);
hud_element_draw_next(id);
s1++;
if (s02 >= s4 || s02 >= s7 && sp54 == 0) {
if (s2 >= s4 || s2 >= s7 && sp54 == 0) {
break;
}
s02++;
s2++;
hud_element_set_script(id, SPIncrementHudScripts[sp50]);
hud_element_set_render_pos(id, new_var + sp50 * 20 + D_800F7FE8[5], s5 - 2);
hud_element_draw_next(id);
s1++;
if (s02 >= s4 || s02 >= s7 && sp54 == 0) {
if (s2 >= s4 || s2 >= s7 && sp54 == 0) {
break;
}
s02++;
s2++;
hud_element_set_script(id, SPIncrementHudScripts[sp50]);
hud_element_set_render_pos(id, new_var + sp50 * 20 + D_800F7FE8[6], s5 - 2);
hud_element_draw_next(id);
s1++;
if (s02 >= s4 || s02 >= s7 && sp54 == 0) {
if (s2 >= s4 || s2 >= s7 && sp54 == 0) {
break;
}
s02++;
s2++;
hud_element_set_script(id, SPStarHudScripts[sp50]);
hud_element_set_render_pos(id, new_var + 12 + sp50 * 20, s5);
hud_element_draw_next(id);
s1 = 0;
sp50++;
if (s02 >= s4 || s02 >= s7 && sp54 == 0) {
if (s2 >= s4 || s2 >= s7 && sp54 == 0) {
break;
}
}
s4 = playerData->maxStarPower * 8;
while (TRUE) {
if (s02 >= s4) {
if (s2 >= s4) {
break;
}
if (s1 == 0) {
do {
s02++;
s2++;
hud_element_set_script(id, &HES_StatusSPEmptyIncrement);
hud_element_set_render_pos(id, new_var + sp50 * 20 + D_800F7FE8[s1], s5 - 2);
hud_element_draw_next(id);
} while (0);
if (s02 >= s4) {
if (s2 >= s4) {
break;
}
s1 = 1;
s1++;
}
if (s1 == 1) {
do {
s02++;
s2++;
hud_element_set_script(id, &HES_StatusSPEmptyIncrement);
hud_element_set_render_pos(id, new_var + sp50 * 20 + D_800F7FE8[s1], s5 - 2);
hud_element_draw_next(id);
} while (0);
if (s02 >= s4) {
if (s2 >= s4) {
break;
}
s1 = 2;
s1++;
}
if (s1 == 2) {
do {
s02++;
s2++;
hud_element_set_script(id, &HES_StatusSPEmptyIncrement);
hud_element_set_render_pos(id, new_var + sp50 * 20 + D_800F7FE8[s1], s5 - 2);
hud_element_draw_next(id);
} while (0);
if (s02 >= s4) {
if (s2 >= s4) {
break;
}
s1 = 3;
s1++;
}
if (s1 == 3) {
do {
s02++;
s2++;
hud_element_set_script(id, &HES_StatusSPEmptyIncrement);
hud_element_set_render_pos(id, new_var + sp50 * 20 + D_800F7FE8[s1], s5 - 2);
hud_element_draw_next(id);
} while (0);
if (s02 >= s4) {
if (s2 >= s4) {
break;
}
s1 = 4;
s1++;
}
if (s1 == 4) {
do {
s02++;
s2++;
hud_element_set_script(id, &HES_StatusSPEmptyIncrement);
hud_element_set_render_pos(id, new_var + sp50 * 20 + D_800F7FE8[s1], s5 - 2);
hud_element_draw_next(id);
} while (0);
if (s02 >= s4) {
if (s2 >= s4) {
break;
}
s1 = 5;
s1++;
}
if (s1 == 5) {
do {
s02++;
s2++;
hud_element_set_script(id, &HES_StatusSPEmptyIncrement);
hud_element_set_render_pos(id, new_var + sp50 * 20 + D_800F7FE8[s1], s5 - 2);
hud_element_draw_next(id);
} while (0);
if (s02 >= s4) {
if (s2 >= s4) {
break;
}
s1 = 6;
s1++;
}
if (s1 == 6) {
do {
s02++;
s2++;
hud_element_set_script(id, &HES_StatusSPEmptyIncrement);
hud_element_set_render_pos(id, new_var + sp50 * 20 + D_800F7FE8[s1], s5 - 2);
hud_element_draw_next(id);
} while (0);
if (s02 >= s4) {
if (s2 >= s4) {
break;
}
s1 = 7;
@ -1071,12 +1069,12 @@ void update_status_menu(void) {
if (s1 == 7) {
do {
s02++;
s2++;
hud_element_set_script(id, &HES_StatusStarEmpty);
hud_element_set_render_pos(id, new_var + 12 + sp50 * 20, s5);
hud_element_draw_next(id);
} while (0);
if (s02 >= s4) {
if (s2 >= s4) {
break;
}
}

View File

@ -275,8 +275,8 @@ void hud_element_draw_rect(HudElement* hudElement, s16 texSizeX, s16 texSizeY, s
s32 uly, lry, ulx, lrx;
s32 masks, maskt;
s32 screenPosOffsetScaledX, screenPosOffsetScaledY;
u8* imageAddr;
u8* paletteAddr;
IMG_PTR imageAddr;
PAL_PTR paletteAddr;
s16 baseX, baseY;
s32 tileMode;
u32 flags1, flags2;
@ -284,7 +284,7 @@ void hud_element_draw_rect(HudElement* hudElement, s16 texSizeX, s16 texSizeY, s
s16 tempX, tempY;
imageAddr = hudElement->imageAddr;
paletteAddr = hudElement->paletteAddr;
paletteAddr = (u16*) hudElement->paletteAddr;
screenPosOffsetScaledX = hudElement->screenPosOffset.x * 1024;
screenPosOffsetScaledY = hudElement->screenPosOffset.y * 1024;
@ -1406,8 +1406,6 @@ void render_hud_elements_frontUI(void) {
}
}
//issues with vtx assingment in case 2
#ifdef NON_EQUIVALENT
void render_hud_element(HudElement* hudElement) {
Matrix4f sp20;
Matrix4f sp60;
@ -1420,18 +1418,17 @@ void render_hud_element(HudElement* hudElement) {
Matrix4f sp220;
Matrix4f sp260;
FoldImageRecPart sp2A0;
f32 phi_f24, phi_f20;
f32 xScaleFactor, yScaleFactor;
s32 height, width;
HudTransform* transform;
s32 mode;
u32 flags;
u8* raster;
u8* palette;
IMG_PTR raster;
PAL_PTR palette;
u32 a0, v1;
int nv2;
s32 nv;
s32 ulx, uly, lrx, lry;
Vtx* vtx;
Vtx* vtx2;
if (hudElement->flags & HUD_ELEMENT_FLAG_FILTER_TEX) {
gDPSetTextureFilter(gMainGfxPos++, G_TF_AVERAGE);
@ -1440,20 +1437,20 @@ void render_hud_element(HudElement* hudElement) {
}
if (!(hudElement->flags & HUD_ELEMENT_FLAG_FIXEDSCALE)) {
phi_f24 = 1.0f;
phi_f20 = 1.0f;
xScaleFactor = 1.0f;
yScaleFactor = 1.0f;
} else {
if (!(hudElement->flags & HUD_ELEMENT_FLAG_CUSTOM_SIZE)) {
phi_f24 = gHudElementSizes[hudElement->tileSizePreset].width;
phi_f20 = gHudElementSizes[hudElement->tileSizePreset].height;
xScaleFactor = gHudElementSizes[hudElement->tileSizePreset].width;
yScaleFactor = gHudElementSizes[hudElement->tileSizePreset].height;
} else {
phi_f24 = hudElement->customImageSize.x;
phi_f20 = hudElement->customImageSize.y;
xScaleFactor = hudElement->customImageSize.x;
yScaleFactor = hudElement->customImageSize.y;
}
phi_f24 /= hudElement->unkImgScale[0];
phi_f24 = 1.0f / phi_f24;
phi_f20 /= hudElement->unkImgScale[1];
phi_f20 = 1.0f / phi_f20;
xScaleFactor /= hudElement->unkImgScale[0];
xScaleFactor = 1.0f / xScaleFactor;
yScaleFactor /= hudElement->unkImgScale[1];
yScaleFactor = 1.0f / yScaleFactor;
}
if (!(hudElement->flags & HUD_ELEMENT_FLAG_CUSTOM_SIZE)) {
@ -1468,15 +1465,17 @@ void render_hud_element(HudElement* hudElement) {
guTranslateF(sp1E0, transform->pivot.x, -transform->pivot.y, 0.0f);
guTranslateF(sp220, -transform->pivot.x, transform->pivot.y, 0.0f);
guTranslateF(sp1A0, hudElement->renderPosX + hudElement->screenPosOffset.x + hudElement->worldPosOffset.x + transform->position.x,
-hudElement->renderPosY - hudElement->screenPosOffset.y + hudElement->worldPosOffset.y + transform->position.y,
- (hudElement->worldPosOffset.z / 10.0) + transform->position.z);
guScaleF(sp260, hudElement->uniformScale * phi_f24 * transform->scale.x,
hudElement->uniformScale * phi_f20 * transform->scale.y,
guTranslateF(
sp1A0,
hudElement->renderPosX + hudElement->screenPosOffset.x + hudElement->worldPosOffset.x + transform->position.x,
-hudElement->renderPosY - hudElement->screenPosOffset.y + hudElement->worldPosOffset.y + transform->position.y,
- (hudElement->worldPosOffset.z / 10.0) + transform->position.z
);
guScaleF(sp260, hudElement->uniformScale * xScaleFactor * transform->scale.x,
hudElement->uniformScale * yScaleFactor * transform->scale.y,
transform->scale.z);
guRotateF(sp120, transform->rotation.y, 0.0f, 1.0f, 0.0f);
guRotateF(sp160, transform->rotation.z, 0.0f, 0.0f, 1.0f);
nv = HUD_ELEMENT_FLAG_FMT_CI4;
guRotateF(spE0, transform->rotation.x, 1.0f, 0.0f, 0.0f);
guMtxCatF(sp160, spE0, sp20);
guMtxCatF(sp20, sp120, spA0);
@ -1485,11 +1484,12 @@ void render_hud_element(HudElement* hudElement) {
guMtxCatF(sp60, sp220, sp20);
guMtxCatF(sp20, sp1A0, sp60);
guMtxF2L(sp60, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMainGfxPos++, VIRTUAL_TO_PHYSICAL(&gDisplayContext->matrixStack[gMatrixListPos++]), G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPMatrix(gMainGfxPos++, VIRTUAL_TO_PHYSICAL(&gDisplayContext->matrixStack[gMatrixListPos++]),
G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
mode = 0;
a0 = mode;
a0 = (hudElement->flags & nv) > a0;
a0 = (hudElement->flags & HUD_ELEMENT_FLAG_FMT_CI4) > a0;
v1 = mode < (hudElement->flags & HUD_ELEMENT_FLAG_FMT_IA8);
if (a0 == TRUE) {
@ -1524,12 +1524,12 @@ void render_hud_element(HudElement* hudElement) {
}
sp2A0.raster = hudElement->imageAddr;
palette = hudElement->paletteAddr;
palette = (u16*) hudElement->paletteAddr;
sp2A0.width = width;
sp2A0.height = height;
sp2A0.xOffset = -width / 2;
sp2A0.yOffset = height / 2;
sp2A0.width = width;
sp2A0.opacity = 255;
sp2A0.height = height;
sp2A0.palette = palette;
if (hudElement->flags & HUD_ELEMENT_FLAG_NO_FOLD) {
@ -1543,44 +1543,41 @@ void render_hud_element(HudElement* hudElement) {
}
break;
case 2:
vtx = transform->unk_30[D_80159180].vtx;
memcpy(&transform->unk_30[D_80159180].vtx[0], &D_8014F0C8[0], sizeof(Vtx));
memcpy(&transform->unk_30[D_80159180].vtx[1], &D_8014F0C8[1], sizeof(Vtx));
memcpy(&transform->unk_30[D_80159180].vtx[2], &D_8014F0C8[2], sizeof(Vtx));
memcpy(&transform->unk_30[D_80159180].vtx[3], &D_8014F0C8[3], sizeof(Vtx));
transform->unk_30[D_80159180].vtx[0] = D_8014F0C8[0];
transform->unk_30[D_80159180].vtx[1] = D_8014F0C8[1];
transform->unk_30[D_80159180].vtx[2] = D_8014F0C8[2];
transform->unk_30[D_80159180].vtx[3] = D_8014F0C8[3];
// D_8014F0C8[0] = transform->unk_30[D_80159180].vtx[0];
// D_8014F0C8[1] = transform->unk_30[D_80159180].vtx[1];
// D_8014F0C8[2] = transform->unk_30[D_80159180].vtx[2];
// D_8014F0C8[3] = transform->unk_30[D_80159180].vtx[3];
vtx2 = transform->unk_30[D_80159180].vtx;
vtx = vtx2;
vtx[0].v.ob[0] = -width / 2;
vtx[0].v.ob[1] = -height / 2;
vtx[0].v.ob[2] = 0;
vtx[0].v.tc[0] = 0;
vtx[0].v.tc[1] = height * 32;
vtx[1].v.ob[0] = width / 2 - 1;
vtx[1].v.ob[1] = -height / 2;
vtx[1].v.ob[2] = 0;
vtx[1].v.tc[0] = width * 32;
vtx[1].v.tc[1] = height * 32;
vtx[2].v.ob[0] = width / 2 - 1;
vtx[2].v.ob[1] = height / 2 - 1;
vtx2->v.ob[0] = -width / 2;
vtx2->v.ob[1] = -height / 2;
vtx2->v.ob[2] = 0;
vtx2->v.tc[0] = 0;
vtx2->v.tc[1] = height * 32;
vtx2 = vtx2 + 1;
vtx2[0].v.ob[0] = (width / 2) - 1;
vtx2[0].v.ob[1] = -height / 2;
vtx2[0].v.ob[2] = 0;
vtx2[0].v.tc[0] = width * 32;
vtx2[0].v.tc[1] = height * 32;
vtx[2].v.ob[0] = (width / 2) - 1;
vtx[2].v.ob[1] = (height / 2) - 1;
vtx[2].v.ob[2] = 0;
vtx[2].v.tc[0] = width * 32;
vtx[2].v.tc[1] = 0;
vtx[3].v.ob[0] = -width / 2;
vtx[3].v.ob[1] = height / 2 - 1;
vtx[3].v.ob[1] = (height / 2) - 1;
vtx[3].v.ob[2] = 0;
vtx[3].v.tc[0] = 0;
vtx[3].v.tc[1] = 0;
gDPPipeSync(gMainGfxPos++);
gDPSetCombineLERP(gMainGfxPos++, TEXEL0, 0, PRIMITIVE, 0, PRIMITIVE, 0, TEXEL0, 0, TEXEL0, 0, PRIMITIVE, 0, PRIMITIVE, 0, TEXEL0, 0);
gDPSetPrimColor(gMainGfxPos++, 0, 0, hudElement->tint.r, hudElement->tint.g, hudElement->tint.b, hudElement->opacity);
gDPSetCombineLERP(gMainGfxPos++, TEXEL0, 0, PRIMITIVE, 0, PRIMITIVE, 0, TEXEL0, 0, TEXEL0, 0, PRIMITIVE, 0,
PRIMITIVE, 0, TEXEL0, 0);
gDPSetPrimColor(gMainGfxPos++, 0, 0,
hudElement->tint.r, hudElement->tint.g, hudElement->tint.b, hudElement->opacity);
if (!(hudElement->flags & HUD_ELEMENT_FLAG_TRANSPARENT)) {
if (!(hudElement->flags & HUD_ELEMENT_FLAG_ANTIALIASING)) {
@ -1597,7 +1594,8 @@ void render_hud_element(HudElement* hudElement) {
}
gDPLoadTextureBlock(gMainGfxPos++, hudElement->imageAddr, G_IM_FMT_IA, G_IM_SIZ_8b, width, height, 0,
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK,
G_TX_NOLOD, G_TX_NOLOD);
gDPSetTextureLUT(gMainGfxPos++, G_TT_NONE);
gSPVertex(gMainGfxPos++, &transform->unk_30[D_80159180], 4, 0);
@ -1609,9 +1607,6 @@ void render_hud_element(HudElement* hudElement) {
gSPPopMatrix(gMainGfxPos++, G_MTX_MODELVIEW);
gDPPipeSync(gMainGfxPos++);
}
#else
INCLUDE_ASM(void, "hud_element", render_hud_element, HudElement* hudElement);
#endif
void render_hud_elements_world(void) {
s32 i, count, j;

View File

@ -1,725 +0,0 @@
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
/* Generated by spimdisasm 1.11.1 */
glabel render_hud_element
/* D826C 8014138C 27BDFCF8 */ addiu $sp, $sp, -0x308
/* D8270 80141390 AFB702E4 */ sw $s7, 0x2E4($sp)
/* D8274 80141394 0080B82D */ daddu $s7, $a0, $zero
/* D8278 80141398 AFBF02EC */ sw $ra, 0x2EC($sp)
/* D827C 8014139C AFBE02E8 */ sw $fp, 0x2E8($sp)
/* D8280 801413A0 AFB602E0 */ sw $s6, 0x2E0($sp)
/* D8284 801413A4 AFB502DC */ sw $s5, 0x2DC($sp)
/* D8288 801413A8 AFB402D8 */ sw $s4, 0x2D8($sp)
/* D828C 801413AC AFB302D4 */ sw $s3, 0x2D4($sp)
/* D8290 801413B0 AFB202D0 */ sw $s2, 0x2D0($sp)
/* D8294 801413B4 AFB102CC */ sw $s1, 0x2CC($sp)
/* D8298 801413B8 AFB002C8 */ sw $s0, 0x2C8($sp)
/* D829C 801413BC F7B80300 */ sdc1 $f24, 0x300($sp)
/* D82A0 801413C0 F7B602F8 */ sdc1 $f22, 0x2F8($sp)
/* D82A4 801413C4 F7B402F0 */ sdc1 $f20, 0x2F0($sp)
/* D82A8 801413C8 8EE20000 */ lw $v0, 0x0($s7)
/* D82AC 801413CC 30428000 */ andi $v0, $v0, 0x8000
/* D82B0 801413D0 1040000C */ beqz $v0, .LIQUE_80141404
/* D82B4 801413D4 3C05E300 */ lui $a1, (0xE3001201 >> 16)
/* D82B8 801413D8 3C03800A */ lui $v1, %hi(gMainGfxPos)
/* D82BC 801413DC 24639244 */ addiu $v1, $v1, %lo(gMainGfxPos)
/* D82C0 801413E0 8C620000 */ lw $v0, 0x0($v1)
/* D82C4 801413E4 34A51201 */ ori $a1, $a1, (0xE3001201 & 0xFFFF)
/* D82C8 801413E8 0040202D */ daddu $a0, $v0, $zero
/* D82CC 801413EC 24420008 */ addiu $v0, $v0, 0x8
/* D82D0 801413F0 AC620000 */ sw $v0, 0x0($v1)
/* D82D4 801413F4 24023000 */ addiu $v0, $zero, 0x3000
/* D82D8 801413F8 AC850000 */ sw $a1, 0x0($a0)
/* D82DC 801413FC 0805050A */ j .LIQUE_80141428
/* D82E0 80141400 AC820004 */ sw $v0, 0x4($a0)
.LIQUE_80141404:
/* D82E4 80141404 3C04800A */ lui $a0, %hi(gMainGfxPos)
/* D82E8 80141408 24849244 */ addiu $a0, $a0, %lo(gMainGfxPos)
/* D82EC 8014140C 8C820000 */ lw $v0, 0x0($a0)
/* D82F0 80141410 34A51201 */ ori $a1, $a1, (0xE3001201 & 0xFFFF)
/* D82F4 80141414 0040182D */ daddu $v1, $v0, $zero
/* D82F8 80141418 24420008 */ addiu $v0, $v0, 0x8
/* D82FC 8014141C AC820000 */ sw $v0, 0x0($a0)
/* D8300 80141420 AC650000 */ sw $a1, 0x0($v1)
/* D8304 80141424 AC600004 */ sw $zero, 0x4($v1)
.LIQUE_80141428:
/* D8308 80141428 8EE30000 */ lw $v1, 0x0($s7)
/* D830C 8014142C 30620100 */ andi $v0, $v1, 0x100
/* D8310 80141430 14400005 */ bnez $v0, .LIQUE_80141448
/* D8314 80141434 3C020010 */ lui $v0, (0x100000 >> 16)
/* D8318 80141438 3C013F80 */ lui $at, (0x3F800000 >> 16)
/* D831C 8014143C 4481A000 */ mtc1 $at, $f20
/* D8320 80141440 08050535 */ j .LIQUE_801414D4
/* D8324 80141444 4600A606 */ mov.s $f24, $f20
.LIQUE_80141448:
/* D8328 80141448 00621024 */ and $v0, $v1, $v0
/* D832C 8014144C 14400011 */ bnez $v0, .LIQUE_80141494
/* D8330 80141450 00000000 */ nop
/* D8334 80141454 82E30046 */ lb $v1, 0x46($s7)
/* D8338 80141458 3C048015 */ lui $a0, %hi(gHudElementSizes)
/* D833C 8014145C 2484D75C */ addiu $a0, $a0, %lo(gHudElementSizes)
/* D8340 80141460 00031040 */ sll $v0, $v1, 1
/* D8344 80141464 00431021 */ addu $v0, $v0, $v1
/* D8348 80141468 00021040 */ sll $v0, $v0, 1
/* D834C 8014146C 00441021 */ addu $v0, $v0, $a0
/* D8350 80141470 84430000 */ lh $v1, 0x0($v0)
/* D8354 80141474 84420002 */ lh $v0, 0x2($v0)
/* D8358 80141478 4483C000 */ mtc1 $v1, $f24
/* D835C 8014147C 00000000 */ nop
/* D8360 80141480 4680C620 */ cvt.s.w $f24, $f24
/* D8364 80141484 4482A000 */ mtc1 $v0, $f20
/* D8368 80141488 00000000 */ nop
/* D836C 8014148C 0805052D */ j .LIQUE_801414B4
/* D8370 80141490 4680A520 */ cvt.s.w $f20, $f20
.LIQUE_80141494:
/* D8374 80141494 92E2004E */ lbu $v0, 0x4E($s7)
/* D8378 80141498 92E3004F */ lbu $v1, 0x4F($s7)
/* D837C 8014149C 4482C000 */ mtc1 $v0, $f24
/* D8380 801414A0 00000000 */ nop
/* D8384 801414A4 4680C620 */ cvt.s.w $f24, $f24
/* D8388 801414A8 4483A000 */ mtc1 $v1, $f20
/* D838C 801414AC 00000000 */ nop
/* D8390 801414B0 4680A520 */ cvt.s.w $f20, $f20
.LIQUE_801414B4:
/* D8394 801414B4 C6E00028 */ lwc1 $f0, 0x28($s7)
/* D8398 801414B8 3C013F80 */ lui $at, (0x3F800000 >> 16)
/* D839C 801414BC 44811000 */ mtc1 $at, $f2
/* D83A0 801414C0 4600C603 */ div.s $f24, $f24, $f0
/* D83A4 801414C4 C6E0002C */ lwc1 $f0, 0x2C($s7)
/* D83A8 801414C8 46181603 */ div.s $f24, $f2, $f24
/* D83AC 801414CC 4600A503 */ div.s $f20, $f20, $f0
/* D83B0 801414D0 46141503 */ div.s $f20, $f2, $f20
.LIQUE_801414D4:
/* D83B4 801414D4 8EE20000 */ lw $v0, 0x0($s7)
/* D83B8 801414D8 3C030010 */ lui $v1, (0x100000 >> 16)
/* D83BC 801414DC 00431024 */ and $v0, $v0, $v1
/* D83C0 801414E0 1440000C */ bnez $v0, .LIQUE_80141514
/* D83C4 801414E4 00000000 */ nop
/* D83C8 801414E8 82E20046 */ lb $v0, 0x46($s7)
/* D83CC 801414EC 3C048015 */ lui $a0, %hi(gHudElementSizes)
/* D83D0 801414F0 2484D75C */ addiu $a0, $a0, %lo(gHudElementSizes)
/* D83D4 801414F4 00021840 */ sll $v1, $v0, 1
/* D83D8 801414F8 00621821 */ addu $v1, $v1, $v0
/* D83DC 801414FC 00031840 */ sll $v1, $v1, 1
/* D83E0 80141500 00641821 */ addu $v1, $v1, $a0
/* D83E4 80141504 84760000 */ lh $s6, 0x0($v1)
/* D83E8 80141508 84630002 */ lh $v1, 0x2($v1)
/* D83EC 8014150C 08050548 */ j .LIQUE_80141520
/* D83F0 80141510 AFA302B8 */ sw $v1, 0x2B8($sp)
.LIQUE_80141514:
/* D83F4 80141514 92F6004E */ lbu $s6, 0x4E($s7)
/* D83F8 80141518 92ED004F */ lbu $t5, 0x4F($s7)
/* D83FC 8014151C AFAD02B8 */ sw $t5, 0x2B8($sp)
.LIQUE_80141520:
/* D8400 80141520 4480B000 */ mtc1 $zero, $f22
/* D8404 80141524 27AE01E0 */ addiu $t6, $sp, 0x1E0
/* D8408 80141528 AFAE02BC */ sw $t6, 0x2BC($sp)
/* D840C 8014152C 8EFE001C */ lw $fp, 0x1C($s7)
/* D8410 80141530 4407B000 */ mfc1 $a3, $f22
/* D8414 80141534 87C30028 */ lh $v1, 0x28($fp)
/* D8418 80141538 87C2002A */ lh $v0, 0x2A($fp)
/* D841C 8014153C 44833000 */ mtc1 $v1, $f6
/* D8420 80141540 00000000 */ nop
/* D8424 80141544 468031A0 */ cvt.s.w $f6, $f6
/* D8428 80141548 00021023 */ negu $v0, $v0
/* D842C 8014154C 44053000 */ mfc1 $a1, $f6
/* D8430 80141550 44823000 */ mtc1 $v0, $f6
/* D8434 80141554 00000000 */ nop
/* D8438 80141558 468031A0 */ cvt.s.w $f6, $f6
/* D843C 8014155C 44063000 */ mfc1 $a2, $f6
/* D8440 80141560 0C0197A8 */ jal guTranslateF
/* D8444 80141564 01C0202D */ daddu $a0, $t6, $zero
/* D8448 80141568 27AD0220 */ addiu $t5, $sp, 0x220
/* D844C 8014156C AFAD02C0 */ sw $t5, 0x2C0($sp)
/* D8450 80141570 87C20028 */ lh $v0, 0x28($fp)
/* D8454 80141574 4407B000 */ mfc1 $a3, $f22
/* D8458 80141578 87C3002A */ lh $v1, 0x2A($fp)
/* D845C 8014157C 00021023 */ negu $v0, $v0
/* D8460 80141580 44823000 */ mtc1 $v0, $f6
/* D8464 80141584 00000000 */ nop
/* D8468 80141588 468031A0 */ cvt.s.w $f6, $f6
/* D846C 8014158C 44053000 */ mfc1 $a1, $f6
/* D8470 80141590 44833000 */ mtc1 $v1, $f6
/* D8474 80141594 00000000 */ nop
/* D8478 80141598 468031A0 */ cvt.s.w $f6, $f6
/* D847C 8014159C 44063000 */ mfc1 $a2, $f6
/* D8480 801415A0 0C0197A8 */ jal guTranslateF
/* D8484 801415A4 01A0202D */ daddu $a0, $t5, $zero
/* D8488 801415A8 86E2003C */ lh $v0, 0x3C($s7)
/* D848C 801415AC 82E30040 */ lb $v1, 0x40($s7)
/* D8490 801415B0 82E40042 */ lb $a0, 0x42($s7)
/* D8494 801415B4 C7C00004 */ lwc1 $f0, 0x4($fp)
/* D8498 801415B8 3C014024 */ lui $at, (0x40240000 >> 16)
/* D849C 801415BC 44812800 */ mtc1 $at, $f5
/* D84A0 801415C0 44802000 */ mtc1 $zero, $f4
/* D84A4 801415C4 00431021 */ addu $v0, $v0, $v1
/* D84A8 801415C8 00441021 */ addu $v0, $v0, $a0
/* D84AC 801415CC 44821000 */ mtc1 $v0, $f2
/* D84B0 801415D0 00000000 */ nop
/* D84B4 801415D4 468010A0 */ cvt.s.w $f2, $f2
/* D84B8 801415D8 46001080 */ add.s $f2, $f2, $f0
/* D84BC 801415DC 86E2003E */ lh $v0, 0x3E($s7)
/* D84C0 801415E0 82E30041 */ lb $v1, 0x41($s7)
/* D84C4 801415E4 82E40043 */ lb $a0, 0x43($s7)
/* D84C8 801415E8 C7C00008 */ lwc1 $f0, 0x8($fp)
/* D84CC 801415EC 00021023 */ negu $v0, $v0
/* D84D0 801415F0 00431023 */ subu $v0, $v0, $v1
/* D84D4 801415F4 00441021 */ addu $v0, $v0, $a0
/* D84D8 801415F8 44051000 */ mfc1 $a1, $f2
/* D84DC 801415FC 44821000 */ mtc1 $v0, $f2
/* D84E0 80141600 00000000 */ nop
/* D84E4 80141604 468010A0 */ cvt.s.w $f2, $f2
/* D84E8 80141608 82E20044 */ lb $v0, 0x44($s7)
/* D84EC 8014160C 46001080 */ add.s $f2, $f2, $f0
/* D84F0 80141610 44820000 */ mtc1 $v0, $f0
/* D84F4 80141614 00000000 */ nop
/* D84F8 80141618 46800021 */ cvt.d.w $f0, $f0
/* D84FC 8014161C 46240003 */ div.d $f0, $f0, $f4
/* D8500 80141620 44061000 */ mfc1 $a2, $f2
/* D8504 80141624 C7C2000C */ lwc1 $f2, 0xC($fp)
/* D8508 80141628 46200007 */ neg.d $f0, $f0
/* D850C 8014162C 460010A1 */ cvt.d.s $f2, $f2
/* D8510 80141630 46220000 */ add.d $f0, $f0, $f2
/* D8514 80141634 27B401A0 */ addiu $s4, $sp, 0x1A0
/* D8518 80141638 46200020 */ cvt.s.d $f0, $f0
/* D851C 8014163C 44070000 */ mfc1 $a3, $f0
/* D8520 80141640 0C0197A8 */ jal guTranslateF
/* D8524 80141644 0280202D */ daddu $a0, $s4, $zero
/* D8528 80141648 C6E20030 */ lwc1 $f2, 0x30($s7)
/* D852C 8014164C 46181102 */ mul.s $f4, $f2, $f24
/* D8530 80141650 00000000 */ nop
/* D8534 80141654 46141082 */ mul.s $f2, $f2, $f20
/* D8538 80141658 00000000 */ nop
/* D853C 8014165C C7C0001C */ lwc1 $f0, 0x1C($fp)
/* D8540 80141660 46002102 */ mul.s $f4, $f4, $f0
/* D8544 80141664 00000000 */ nop
/* D8548 80141668 C7C00020 */ lwc1 $f0, 0x20($fp)
/* D854C 8014166C 3C150001 */ lui $s5, (0x12230 >> 16)
/* D8550 80141670 46001082 */ mul.s $f2, $f2, $f0
/* D8554 80141674 00000000 */ nop
/* D8558 80141678 36B52230 */ ori $s5, $s5, (0x12230 & 0xFFFF)
/* D855C 8014167C 27B30260 */ addiu $s3, $sp, 0x260
/* D8560 80141680 8FC70024 */ lw $a3, 0x24($fp)
/* D8564 80141684 44052000 */ mfc1 $a1, $f4
/* D8568 80141688 44061000 */ mfc1 $a2, $f2
/* D856C 8014168C 0C019758 */ jal guScaleF
/* D8570 80141690 0260202D */ daddu $a0, $s3, $zero
/* D8574 80141694 27B20120 */ addiu $s2, $sp, 0x120
/* D8578 80141698 E7B60010 */ swc1 $f22, 0x10($sp)
/* D857C 8014169C 8FC50014 */ lw $a1, 0x14($fp)
/* D8580 801416A0 3C013F80 */ lui $at, (0x3F800000 >> 16)
/* D8584 801416A4 4481A000 */ mtc1 $at, $f20
/* D8588 801416A8 4406B000 */ mfc1 $a2, $f22
/* D858C 801416AC 4407A000 */ mfc1 $a3, $f20
/* D8590 801416B0 0C019828 */ jal guRotateF
/* D8594 801416B4 0240202D */ daddu $a0, $s2, $zero
/* D8598 801416B8 27B10160 */ addiu $s1, $sp, 0x160
/* D859C 801416BC E7B40010 */ swc1 $f20, 0x10($sp)
/* D85A0 801416C0 8FC50018 */ lw $a1, 0x18($fp)
/* D85A4 801416C4 4406B000 */ mfc1 $a2, $f22
/* D85A8 801416C8 4407B000 */ mfc1 $a3, $f22
/* D85AC 801416CC 0C019828 */ jal guRotateF
/* D85B0 801416D0 0220202D */ daddu $a0, $s1, $zero
/* D85B4 801416D4 27B000E0 */ addiu $s0, $sp, 0xE0
/* D85B8 801416D8 E7B60010 */ swc1 $f22, 0x10($sp)
/* D85BC 801416DC 8FC50010 */ lw $a1, 0x10($fp)
/* D85C0 801416E0 4406A000 */ mfc1 $a2, $f20
/* D85C4 801416E4 4407B000 */ mfc1 $a3, $f22
/* D85C8 801416E8 0C019828 */ jal guRotateF
/* D85CC 801416EC 0200202D */ daddu $a0, $s0, $zero
/* D85D0 801416F0 0220202D */ daddu $a0, $s1, $zero
/* D85D4 801416F4 0200282D */ daddu $a1, $s0, $zero
/* D85D8 801416F8 0C0196F0 */ jal guMtxCatF
/* D85DC 801416FC 27A60020 */ addiu $a2, $sp, 0x20
/* D85E0 80141700 27A40020 */ addiu $a0, $sp, 0x20
/* D85E4 80141704 0240282D */ daddu $a1, $s2, $zero
/* D85E8 80141708 27B000A0 */ addiu $s0, $sp, 0xA0
/* D85EC 8014170C 0C0196F0 */ jal guMtxCatF
/* D85F0 80141710 0200302D */ daddu $a2, $s0, $zero
/* D85F4 80141714 0260202D */ daddu $a0, $s3, $zero
/* D85F8 80141718 8FA502BC */ lw $a1, 0x2BC($sp)
/* D85FC 8014171C 0C0196F0 */ jal guMtxCatF
/* D8600 80141720 27A60020 */ addiu $a2, $sp, 0x20
/* D8604 80141724 27A40020 */ addiu $a0, $sp, 0x20
/* D8608 80141728 0200282D */ daddu $a1, $s0, $zero
/* D860C 8014172C 27B00060 */ addiu $s0, $sp, 0x60
/* D8610 80141730 0C0196F0 */ jal guMtxCatF
/* D8614 80141734 0200302D */ daddu $a2, $s0, $zero
/* D8618 80141738 0200202D */ daddu $a0, $s0, $zero
/* D861C 8014173C 8FA502C0 */ lw $a1, 0x2C0($sp)
/* D8620 80141740 0C0196F0 */ jal guMtxCatF
/* D8624 80141744 27A60020 */ addiu $a2, $sp, 0x20
/* D8628 80141748 27A40020 */ addiu $a0, $sp, 0x20
/* D862C 8014174C 0280282D */ daddu $a1, $s4, $zero
/* D8630 80141750 0C0196F0 */ jal guMtxCatF
/* D8634 80141754 0200302D */ daddu $a2, $s0, $zero
/* D8638 80141758 0200202D */ daddu $a0, $s0, $zero
/* D863C 8014175C 3C108007 */ lui $s0, %hi(gMatrixListPos)
/* D8640 80141760 26102E60 */ addiu $s0, $s0, %lo(gMatrixListPos)
/* D8644 80141764 3C11800A */ lui $s1, %hi(gDisplayContext)
/* D8648 80141768 2631924C */ addiu $s1, $s1, %lo(gDisplayContext)
/* D864C 8014176C 96050000 */ lhu $a1, 0x0($s0)
/* D8650 80141770 8E220000 */ lw $v0, 0x0($s1)
/* D8654 80141774 00052980 */ sll $a1, $a1, 6
/* D8658 80141778 00B52821 */ addu $a1, $a1, $s5
/* D865C 8014177C 0C0196B0 */ jal guMtxF2L
/* D8660 80141780 00452821 */ addu $a1, $v0, $a1
/* D8664 80141784 3C06DA38 */ lui $a2, (0xDA380002 >> 16)
/* D8668 80141788 34C60002 */ ori $a2, $a2, (0xDA380002 & 0xFFFF)
/* D866C 8014178C 3C03800A */ lui $v1, %hi(gMainGfxPos)
/* D8670 80141790 24639244 */ addiu $v1, $v1, %lo(gMainGfxPos)
/* D8674 80141794 0000382D */ daddu $a3, $zero, $zero
/* D8678 80141798 8C620000 */ lw $v0, 0x0($v1)
/* D867C 8014179C 96040000 */ lhu $a0, 0x0($s0)
/* D8680 801417A0 0040282D */ daddu $a1, $v0, $zero
/* D8684 801417A4 24420008 */ addiu $v0, $v0, 0x8
/* D8688 801417A8 AC620000 */ sw $v0, 0x0($v1)
/* D868C 801417AC 3082FFFF */ andi $v0, $a0, 0xFFFF
/* D8690 801417B0 00021180 */ sll $v0, $v0, 6
/* D8694 801417B4 ACA60000 */ sw $a2, 0x0($a1)
/* D8698 801417B8 8E230000 */ lw $v1, 0x0($s1)
/* D869C 801417BC 00551021 */ addu $v0, $v0, $s5
/* D86A0 801417C0 00621821 */ addu $v1, $v1, $v0
/* D86A4 801417C4 3C028000 */ lui $v0, (0x80000000 >> 16)
/* D86A8 801417C8 00621821 */ addu $v1, $v1, $v0
/* D86AC 801417CC ACA30004 */ sw $v1, 0x4($a1)
/* D86B0 801417D0 8EE30000 */ lw $v1, 0x0($s7)
/* D86B4 801417D4 24840001 */ addiu $a0, $a0, 0x1
/* D86B8 801417D8 A6040000 */ sh $a0, 0x0($s0)
/* D86BC 801417DC 30624000 */ andi $v0, $v1, 0x4000
/* D86C0 801417E0 00E2202B */ sltu $a0, $a3, $v0
/* D86C4 801417E4 3C020008 */ lui $v0, (0x80000 >> 16)
/* D86C8 801417E8 00621824 */ and $v1, $v1, $v0
/* D86CC 801417EC 24020001 */ addiu $v0, $zero, 0x1
/* D86D0 801417F0 14820002 */ bne $a0, $v0, .LIQUE_801417FC
/* D86D4 801417F4 00E3182B */ sltu $v1, $a3, $v1
/* D86D8 801417F8 0062382B */ sltu $a3, $v1, $v0
.LIQUE_801417FC:
/* D86DC 801417FC 54800004 */ bnel $a0, $zero, .LIQUE_80141810
/* D86E0 80141800 24020001 */ addiu $v0, $zero, 0x1
/* D86E4 80141804 50620001 */ beql $v1, $v0, .LIQUE_8014180C
/* D86E8 80141808 24070002 */ addiu $a3, $zero, 0x2
.LIQUE_8014180C:
/* D86EC 8014180C 24020001 */ addiu $v0, $zero, 0x1
.LIQUE_80141810:
/* D86F0 80141810 14820004 */ bne $a0, $v0, .LIQUE_80141824
/* D86F4 80141814 24020001 */ addiu $v0, $zero, 0x1
/* D86F8 80141818 50640002 */ beql $v1, $a0, .LIQUE_80141824
/* D86FC 8014181C 24070002 */ addiu $a3, $zero, 0x2
/* D8700 80141820 24020001 */ addiu $v0, $zero, 0x1
.LIQUE_80141824:
/* D8704 80141824 10E20005 */ beq $a3, $v0, .LIQUE_8014183C
/* D8708 80141828 24020002 */ addiu $v0, $zero, 0x2
/* D870C 8014182C 10E20052 */ beq $a3, $v0, .LIQUE_80141978
/* D8710 80141830 3C03D838 */ lui $v1, (0xD8380002 >> 16)
/* D8714 80141834 08050773 */ j .LIQUE_80141DCC
/* D8718 80141838 00000000 */ nop
.LIQUE_8014183C:
/* D871C 8014183C 8EE30000 */ lw $v1, 0x0($s7)
/* D8720 80141840 3C020002 */ lui $v0, (0x20000 >> 16)
/* D8724 80141844 00621024 */ and $v0, $v1, $v0
/* D8728 80141848 10400013 */ beqz $v0, .LIQUE_80141898
/* D872C 8014184C 30620020 */ andi $v0, $v1, 0x20
/* D8730 80141850 1040000A */ beqz $v0, .LIQUE_8014187C
/* D8734 80141854 0000202D */ daddu $a0, $zero, $zero
/* D8738 80141858 24050007 */ addiu $a1, $zero, 0x7
/* D873C 8014185C 240600FF */ addiu $a2, $zero, 0xFF
/* D8740 80141860 00C0102D */ daddu $v0, $a2, $zero
/* D8744 80141864 AFA20010 */ sw $v0, 0x10($sp)
/* D8748 80141868 92E2004A */ lbu $v0, 0x4A($s7)
/* D874C 8014186C 00C0382D */ daddu $a3, $a2, $zero
/* D8750 80141870 AFA00018 */ sw $zero, 0x18($sp)
/* D8754 80141874 08050638 */ j .LIQUE_801418E0
/* D8758 80141878 AFA20014 */ sw $v0, 0x14($sp)
.LIQUE_8014187C:
/* D875C 8014187C 0080282D */ daddu $a1, $a0, $zero
/* D8760 80141880 0080302D */ daddu $a2, $a0, $zero
/* D8764 80141884 0080382D */ daddu $a3, $a0, $zero
/* D8768 80141888 AFA00010 */ sw $zero, 0x10($sp)
/* D876C 8014188C AFA00014 */ sw $zero, 0x14($sp)
/* D8770 80141890 08050638 */ j .LIQUE_801418E0
/* D8774 80141894 AFA00018 */ sw $zero, 0x18($sp)
.LIQUE_80141898:
/* D8778 80141898 1040000A */ beqz $v0, .LIQUE_801418C4
/* D877C 8014189C 24050007 */ addiu $a1, $zero, 0x7
/* D8780 801418A0 240200FF */ addiu $v0, $zero, 0xFF
/* D8784 801418A4 AFA20010 */ sw $v0, 0x10($sp)
/* D8788 801418A8 92E2004A */ lbu $v0, 0x4A($s7)
/* D878C 801418AC 240600FF */ addiu $a2, $zero, 0xFF
/* D8790 801418B0 AFA00018 */ sw $zero, 0x18($sp)
/* D8794 801418B4 AFA20014 */ sw $v0, 0x14($sp)
/* D8798 801418B8 8FC40000 */ lw $a0, 0x0($fp)
/* D879C 801418BC 08050638 */ j .LIQUE_801418E0
/* D87A0 801418C0 00C0382D */ daddu $a3, $a2, $zero
.LIQUE_801418C4:
/* D87A4 801418C4 0000282D */ daddu $a1, $zero, $zero
/* D87A8 801418C8 00A0302D */ daddu $a2, $a1, $zero
/* D87AC 801418CC AFA00010 */ sw $zero, 0x10($sp)
/* D87B0 801418D0 AFA00014 */ sw $zero, 0x14($sp)
/* D87B4 801418D4 AFA00018 */ sw $zero, 0x18($sp)
/* D87B8 801418D8 8FC40000 */ lw $a0, 0x0($fp)
/* D87BC 801418DC 00A0382D */ daddu $a3, $a1, $zero
.LIQUE_801418E0:
/* D87C0 801418E0 0C04E48B */ jal fold_update
/* D87C4 801418E4 00000000 */ nop
/* D87C8 801418E8 8EE20010 */ lw $v0, 0x10($s7)
/* D87CC 801418EC 8FAE02B8 */ lw $t6, 0x2B8($sp)
/* D87D0 801418F0 AFA202A0 */ sw $v0, 0x2A0($sp)
/* D87D4 801418F4 00161023 */ negu $v0, $s6
/* D87D8 801418F8 00021FC2 */ srl $v1, $v0, 31
/* D87DC 801418FC 00431021 */ addu $v0, $v0, $v1
/* D87E0 80141900 8EE40014 */ lw $a0, 0x14($s7)
/* D87E4 80141904 00021043 */ sra $v0, $v0, 1
/* D87E8 80141908 A7A202AC */ sh $v0, 0x2AC($sp)
/* D87EC 8014190C 000E17C2 */ srl $v0, $t6, 31
/* D87F0 80141910 01C21021 */ addu $v0, $t6, $v0
/* D87F4 80141914 97AD02BA */ lhu $t5, 0x2BA($sp)
/* D87F8 80141918 00021043 */ sra $v0, $v0, 1
/* D87FC 8014191C A7A202AE */ sh $v0, 0x2AE($sp)
/* D8800 80141920 240200FF */ addiu $v0, $zero, 0xFF
/* D8804 80141924 A7B602A8 */ sh $s6, 0x2A8($sp)
/* D8808 80141928 A3A202B0 */ sb $v0, 0x2B0($sp)
/* D880C 8014192C A7AD02AA */ sh $t5, 0x2AA($sp)
/* D8810 80141930 AFA402A4 */ sw $a0, 0x2A4($sp)
/* D8814 80141934 8EE30000 */ lw $v1, 0x0($s7)
/* D8818 80141938 3C020002 */ lui $v0, (0x20000 >> 16)
/* D881C 8014193C 00621024 */ and $v0, $v1, $v0
/* D8820 80141940 10400006 */ beqz $v0, .LIQUE_8014195C
/* D8824 80141944 3C020080 */ lui $v0, (0x800000 >> 16)
/* D8828 80141948 00621024 */ and $v0, $v1, $v0
/* D882C 8014194C 14400004 */ bnez $v0, .LIQUE_80141960
/* D8830 80141950 0000202D */ daddu $a0, $zero, $zero
/* D8834 80141954 08050659 */ j .LIQUE_80141964
/* D8838 80141958 27A502A0 */ addiu $a1, $sp, 0x2A0
.LIQUE_8014195C:
/* D883C 8014195C 8FC40000 */ lw $a0, 0x0($fp)
.LIQUE_80141960:
/* D8840 80141960 27A502A0 */ addiu $a1, $sp, 0x2A0
.LIQUE_80141964:
/* D8844 80141964 24060040 */ addiu $a2, $zero, 0x40
/* D8848 80141968 0C04E5C0 */ jal fold_appendGfx_component
/* D884C 8014196C 27A70060 */ addiu $a3, $sp, 0x60
/* D8850 80141970 08050773 */ j .LIQUE_80141DCC
/* D8854 80141974 3C03D838 */ lui $v1, (0xD8380002 >> 16)
.LIQUE_80141978:
/* D8858 80141978 3C0AFC11 */ lui $t2, (0xFC11B223 >> 16)
/* D885C 8014197C 354AB223 */ ori $t2, $t2, (0xFC11B223 & 0xFFFF)
/* D8860 80141980 3C09FF67 */ lui $t1, (0xFF67FFFF >> 16)
/* D8864 80141984 3529FFFF */ ori $t1, $t1, (0xFF67FFFF & 0xFFFF)
/* D8868 80141988 3C078016 */ lui $a3, %hi(D_80159180)
/* D886C 8014198C 24E7B500 */ addiu $a3, $a3, %lo(D_80159180)
/* D8870 80141990 3C0C800A */ lui $t4, %hi(gMainGfxPos)
/* D8874 80141994 258C9244 */ addiu $t4, $t4, %lo(gMainGfxPos)
/* D8878 80141998 3C068015 */ lui $a2, %hi(D_8014F0C8)
/* D887C 8014199C 24C6D858 */ addiu $a2, $a2, %lo(D_8014F0C8)
/* D8880 801419A0 8CE50000 */ lw $a1, 0x0($a3)
/* D8884 801419A4 8D8B0000 */ lw $t3, 0x0($t4)
/* D8888 801419A8 8CE20000 */ lw $v0, 0x0($a3)
/* D888C 801419AC 8CE30000 */ lw $v1, 0x0($a3)
/* D8890 801419B0 00052980 */ sll $a1, $a1, 6
/* D8894 801419B4 24A50030 */ addiu $a1, $a1, 0x30
/* D8898 801419B8 03C52821 */ addu $a1, $fp, $a1
/* D889C 801419BC 00021180 */ sll $v0, $v0, 6
/* D88A0 801419C0 03C21021 */ addu $v0, $fp, $v0
/* D88A4 801419C4 00031980 */ sll $v1, $v1, 6
/* D88A8 801419C8 03C31821 */ addu $v1, $fp, $v1
/* D88AC 801419CC 0160402D */ daddu $t0, $t3, $zero
/* D88B0 801419D0 8CCF0000 */ lw $t7, 0x0($a2)
/* D88B4 801419D4 8CD80004 */ lw $t8, 0x4($a2)
/* D88B8 801419D8 8CCD0008 */ lw $t5, 0x8($a2)
/* D88BC 801419DC 8CCE000C */ lw $t6, 0xC($a2)
/* D88C0 801419E0 AC4F0030 */ sw $t7, 0x30($v0)
/* D88C4 801419E4 AC580034 */ sw $t8, 0x34($v0)
/* D88C8 801419E8 AC4D0038 */ sw $t5, 0x38($v0)
/* D88CC 801419EC AC4E003C */ sw $t6, 0x3C($v0)
/* D88D0 801419F0 8CE40000 */ lw $a0, 0x0($a3)
/* D88D4 801419F4 256B0008 */ addiu $t3, $t3, 0x8
/* D88D8 801419F8 8CCF0010 */ lw $t7, 0x10($a2)
/* D88DC 801419FC 8CD80014 */ lw $t8, 0x14($a2)
/* D88E0 80141A00 8CCD0018 */ lw $t5, 0x18($a2)
/* D88E4 80141A04 8CCE001C */ lw $t6, 0x1C($a2)
/* D88E8 80141A08 AC6F0040 */ sw $t7, 0x40($v1)
/* D88EC 80141A0C AC780044 */ sw $t8, 0x44($v1)
/* D88F0 80141A10 AC6D0048 */ sw $t5, 0x48($v1)
/* D88F4 80141A14 AC6E004C */ sw $t6, 0x4C($v1)
/* D88F8 80141A18 8CE20000 */ lw $v0, 0x0($a3)
/* D88FC 80141A1C 00042180 */ sll $a0, $a0, 6
/* D8900 80141A20 03C42021 */ addu $a0, $fp, $a0
/* D8904 80141A24 00021180 */ sll $v0, $v0, 6
/* D8908 80141A28 03C21021 */ addu $v0, $fp, $v0
/* D890C 80141A2C 8CCF0020 */ lw $t7, 0x20($a2)
/* D8910 80141A30 8CD80024 */ lw $t8, 0x24($a2)
/* D8914 80141A34 8CCD0028 */ lw $t5, 0x28($a2)
/* D8918 80141A38 8CCE002C */ lw $t6, 0x2C($a2)
/* D891C 80141A3C AC8F0050 */ sw $t7, 0x50($a0)
/* D8920 80141A40 AC980054 */ sw $t8, 0x54($a0)
/* D8924 80141A44 AC8D0058 */ sw $t5, 0x58($a0)
/* D8928 80141A48 AC8E005C */ sw $t6, 0x5C($a0)
/* D892C 80141A4C 8CCF0030 */ lw $t7, 0x30($a2)
/* D8930 80141A50 8CD80034 */ lw $t8, 0x34($a2)
/* D8934 80141A54 8CCD0038 */ lw $t5, 0x38($a2)
/* D8938 80141A58 8CCE003C */ lw $t6, 0x3C($a2)
/* D893C 80141A5C AC4F0060 */ sw $t7, 0x60($v0)
/* D8940 80141A60 AC580064 */ sw $t8, 0x64($v0)
/* D8944 80141A64 AC4D0068 */ sw $t5, 0x68($v0)
/* D8948 80141A68 AC4E006C */ sw $t6, 0x6C($v0)
/* D894C 80141A6C 00163023 */ negu $a2, $s6
/* D8950 80141A70 000617C2 */ srl $v0, $a2, 31
/* D8954 80141A74 00C23021 */ addu $a2, $a2, $v0
/* D8958 80141A78 00063043 */ sra $a2, $a2, 1
/* D895C 80141A7C A4A60000 */ sh $a2, 0x0($a1)
/* D8960 80141A80 8FAF02B8 */ lw $t7, 0x2B8($sp)
/* D8964 80141A84 00A0202D */ daddu $a0, $a1, $zero
/* D8968 80141A88 A4A00004 */ sh $zero, 0x4($a1)
/* D896C 80141A8C A4A00008 */ sh $zero, 0x8($a1)
/* D8970 80141A90 000F1823 */ negu $v1, $t7
/* D8974 80141A94 000317C2 */ srl $v0, $v1, 31
/* D8978 80141A98 00621821 */ addu $v1, $v1, $v0
/* D897C 80141A9C 00031843 */ sra $v1, $v1, 1
/* D8980 80141AA0 000F3940 */ sll $a3, $t7, 5
/* D8984 80141AA4 A4A30002 */ sh $v1, 0x2($a1)
/* D8988 80141AA8 A4A7000A */ sh $a3, 0xA($a1)
/* D898C 80141AAC 24A50010 */ addiu $a1, $a1, 0x10
/* D8990 80141AB0 001617C2 */ srl $v0, $s6, 31
/* D8994 80141AB4 02C21021 */ addu $v0, $s6, $v0
/* D8998 80141AB8 00021043 */ sra $v0, $v0, 1
/* D899C 80141ABC 2442FFFF */ addiu $v0, $v0, -0x1
/* D89A0 80141AC0 A4A30002 */ sh $v1, 0x2($a1)
/* D89A4 80141AC4 00161940 */ sll $v1, $s6, 5
/* D89A8 80141AC8 A4A20000 */ sh $v0, 0x0($a1)
/* D89AC 80141ACC A4A00004 */ sh $zero, 0x4($a1)
/* D89B0 80141AD0 A4A30008 */ sh $v1, 0x8($a1)
/* D89B4 80141AD4 A4A7000A */ sh $a3, 0xA($a1)
/* D89B8 80141AD8 A4820020 */ sh $v0, 0x20($a0)
/* D89BC 80141ADC 000F17C2 */ srl $v0, $t7, 31
/* D89C0 80141AE0 01E21021 */ addu $v0, $t7, $v0
/* D89C4 80141AE4 00021043 */ sra $v0, $v0, 1
/* D89C8 80141AE8 2442FFFF */ addiu $v0, $v0, -0x1
/* D89CC 80141AEC A4820022 */ sh $v0, 0x22($a0)
/* D89D0 80141AF0 A4820032 */ sh $v0, 0x32($a0)
/* D89D4 80141AF4 3C02E700 */ lui $v0, (0xE7000000 >> 16)
/* D89D8 80141AF8 A4800024 */ sh $zero, 0x24($a0)
/* D89DC 80141AFC A4830028 */ sh $v1, 0x28($a0)
/* D89E0 80141B00 A480002A */ sh $zero, 0x2A($a0)
/* D89E4 80141B04 A4860030 */ sh $a2, 0x30($a0)
/* D89E8 80141B08 A4800034 */ sh $zero, 0x34($a0)
/* D89EC 80141B0C A4800038 */ sh $zero, 0x38($a0)
/* D89F0 80141B10 A480003A */ sh $zero, 0x3A($a0)
/* D89F4 80141B14 AD8B0000 */ sw $t3, 0x0($t4)
/* D89F8 80141B18 AD020000 */ sw $v0, 0x0($t0)
/* D89FC 80141B1C 25620008 */ addiu $v0, $t3, 0x8
/* D8A00 80141B20 AD000004 */ sw $zero, 0x4($t0)
/* D8A04 80141B24 AD820000 */ sw $v0, 0x0($t4)
/* D8A08 80141B28 25620010 */ addiu $v0, $t3, 0x10
/* D8A0C 80141B2C AD6A0000 */ sw $t2, 0x0($t3)
/* D8A10 80141B30 AD690004 */ sw $t1, 0x4($t3)
/* D8A14 80141B34 AD820000 */ sw $v0, 0x0($t4)
/* D8A18 80141B38 3C02FA00 */ lui $v0, (0xFA000000 >> 16)
/* D8A1C 80141B3C AD620008 */ sw $v0, 0x8($t3)
/* D8A20 80141B40 92E2004B */ lbu $v0, 0x4B($s7)
/* D8A24 80141B44 92E3004C */ lbu $v1, 0x4C($s7)
/* D8A28 80141B48 92E4004D */ lbu $a0, 0x4D($s7)
/* D8A2C 80141B4C 00021600 */ sll $v0, $v0, 24
/* D8A30 80141B50 00031C00 */ sll $v1, $v1, 16
/* D8A34 80141B54 00431025 */ or $v0, $v0, $v1
/* D8A38 80141B58 00042200 */ sll $a0, $a0, 8
/* D8A3C 80141B5C 92E3004A */ lbu $v1, 0x4A($s7)
/* D8A40 80141B60 00441025 */ or $v0, $v0, $a0
/* D8A44 80141B64 00431025 */ or $v0, $v0, $v1
/* D8A48 80141B68 AD62000C */ sw $v0, 0xC($t3)
/* D8A4C 80141B6C 8EE30000 */ lw $v1, 0x0($s7)
/* D8A50 80141B70 30620020 */ andi $v0, $v1, 0x20
/* D8A54 80141B74 1440000C */ bnez $v0, .LIQUE_80141BA8
/* D8A58 80141B78 3C020080 */ lui $v0, (0x800000 >> 16)
/* D8A5C 80141B7C 00621024 */ and $v0, $v1, $v0
/* D8A60 80141B80 14400005 */ bnez $v0, .LIQUE_80141B98
/* D8A64 80141B84 3C04E200 */ lui $a0, (0xE200001C >> 16)
/* D8A68 80141B88 3484001C */ ori $a0, $a0, (0xE200001C & 0xFFFF)
/* D8A6C 80141B8C 3C030F0A */ lui $v1, (0xF0A7008 >> 16)
/* D8A70 80141B90 080506F4 */ j .LIQUE_80141BD0
/* D8A74 80141B94 34637008 */ ori $v1, $v1, (0xF0A7008 & 0xFFFF)
.LIQUE_80141B98:
/* D8A78 80141B98 3484001C */ ori $a0, $a0, (0xE200001C & 0xFFFF)
/* D8A7C 80141B9C 3C030055 */ lui $v1, (0x553048 >> 16)
/* D8A80 80141BA0 080506F4 */ j .LIQUE_80141BD0
/* D8A84 80141BA4 34633048 */ ori $v1, $v1, (0x553048 & 0xFFFF)
.LIQUE_80141BA8:
/* D8A88 80141BA8 00621024 */ and $v0, $v1, $v0
/* D8A8C 80141BAC 14400005 */ bnez $v0, .LIQUE_80141BC4
/* D8A90 80141BB0 3C04E200 */ lui $a0, (0xE200001C >> 16)
/* D8A94 80141BB4 3484001C */ ori $a0, $a0, (0xE200001C & 0xFFFF)
/* D8A98 80141BB8 3C030050 */ lui $v1, (0x504340 >> 16)
/* D8A9C 80141BBC 080506F4 */ j .LIQUE_80141BD0
/* D8AA0 80141BC0 34634340 */ ori $v1, $v1, (0x504340 & 0xFFFF)
.LIQUE_80141BC4:
/* D8AA4 80141BC4 3484001C */ ori $a0, $a0, (0xE200001C & 0xFFFF)
/* D8AA8 80141BC8 3C030050 */ lui $v1, (0x504348 >> 16)
/* D8AAC 80141BCC 34634348 */ ori $v1, $v1, (0x504348 & 0xFFFF)
.LIQUE_80141BD0:
/* D8AB0 80141BD0 25620018 */ addiu $v0, $t3, 0x18
/* D8AB4 80141BD4 AD820000 */ sw $v0, 0x0($t4)
/* D8AB8 80141BD8 AD640010 */ sw $a0, 0x10($t3)
/* D8ABC 80141BDC AD630014 */ sw $v1, 0x14($t3)
/* D8AC0 80141BE0 3C03800A */ lui $v1, %hi(gMainGfxPos)
/* D8AC4 80141BE4 24639244 */ addiu $v1, $v1, %lo(gMainGfxPos)
/* D8AC8 80141BE8 02C0382D */ daddu $a3, $s6, $zero
/* D8ACC 80141BEC 3C02FD70 */ lui $v0, (0xFD700000 >> 16)
/* D8AD0 80141BF0 8C660000 */ lw $a2, 0x0($v1)
/* D8AD4 80141BF4 3C080700 */ lui $t0, (0x7000000 >> 16)
/* D8AD8 80141BF8 00C0282D */ daddu $a1, $a2, $zero
/* D8ADC 80141BFC 24C60008 */ addiu $a2, $a2, 0x8
/* D8AE0 80141C00 AC660000 */ sw $a2, 0x0($v1)
/* D8AE4 80141C04 ACA20000 */ sw $v0, 0x0($a1)
/* D8AE8 80141C08 24C20008 */ addiu $v0, $a2, 0x8
/* D8AEC 80141C0C AC620000 */ sw $v0, 0x0($v1)
/* D8AF0 80141C10 24C20010 */ addiu $v0, $a2, 0x10
/* D8AF4 80141C14 AC620000 */ sw $v0, 0x0($v1)
/* D8AF8 80141C18 8EE40010 */ lw $a0, 0x10($s7)
/* D8AFC 80141C1C 24C20018 */ addiu $v0, $a2, 0x18
/* D8B00 80141C20 AC620000 */ sw $v0, 0x0($v1)
/* D8B04 80141C24 3C02F570 */ lui $v0, (0xF5700000 >> 16)
/* D8B08 80141C28 ACA40004 */ sw $a0, 0x4($a1)
/* D8B0C 80141C2C ACC20000 */ sw $v0, 0x0($a2)
/* D8B10 80141C30 3C02E600 */ lui $v0, (0xE6000000 >> 16)
/* D8B14 80141C34 ACC20008 */ sw $v0, 0x8($a2)
/* D8B18 80141C38 3C02F300 */ lui $v0, (0xF3000000 >> 16)
/* D8B1C 80141C3C ACC80004 */ sw $t0, 0x4($a2)
/* D8B20 80141C40 ACC0000C */ sw $zero, 0xC($a2)
/* D8B24 80141C44 06C10002 */ bgez $s6, .LIQUE_80141C50
/* D8B28 80141C48 ACC20010 */ sw $v0, 0x10($a2)
/* D8B2C 80141C4C 26C70007 */ addiu $a3, $s6, 0x7
.LIQUE_80141C50:
/* D8B30 80141C50 000728C3 */ sra $a1, $a3, 3
/* D8B34 80141C54 18A00002 */ blez $a1, .LIQUE_80141C60
/* D8B38 80141C58 24030800 */ addiu $v1, $zero, 0x800
/* D8B3C 80141C5C 24A307FF */ addiu $v1, $a1, 0x7FF
.LIQUE_80141C60:
/* D8B40 80141C60 8FAD02B8 */ lw $t5, 0x2B8($sp)
/* D8B44 80141C64 02CD0018 */ mult $s6, $t5
/* D8B48 80141C68 00007012 */ mflo $t6
/* D8B4C 80141C6C 25C20001 */ addiu $v0, $t6, 0x1
/* D8B50 80141C70 00021043 */ sra $v0, $v0, 1
/* D8B54 80141C74 2444FFFF */ addiu $a0, $v0, -0x1
/* D8B58 80141C78 28820800 */ slti $v0, $a0, 0x800
/* D8B5C 80141C7C 50400001 */ beql $v0, $zero, .LIQUE_80141C84
/* D8B60 80141C80 240407FF */ addiu $a0, $zero, 0x7FF
.LIQUE_80141C84:
/* D8B64 80141C84 30820FFF */ andi $v0, $a0, 0xFFF
/* D8B68 80141C88 00021300 */ sll $v0, $v0, 12
/* D8B6C 80141C8C 18A0000D */ blez $a1, .LIQUE_80141CC4
/* D8B70 80141C90 00482025 */ or $a0, $v0, $t0
/* D8B74 80141C94 14A00002 */ bnez $a1, .LIQUE_80141CA0
/* D8B78 80141C98 0065001A */ div $zero, $v1, $a1
/* D8B7C 80141C9C 0007000D */ break 7
.LIQUE_80141CA0:
/* D8B80 80141CA0 2401FFFF */ addiu $at, $zero, -0x1
/* D8B84 80141CA4 14A10004 */ bne $a1, $at, .LIQUE_80141CB8
/* D8B88 80141CA8 3C018000 */ lui $at, (0x80000000 >> 16)
/* D8B8C 80141CAC 14610002 */ bne $v1, $at, .LIQUE_80141CB8
/* D8B90 80141CB0 00000000 */ nop
/* D8B94 80141CB4 0006000D */ break 6
.LIQUE_80141CB8:
/* D8B98 80141CB8 00001012 */ mflo $v0
/* D8B9C 80141CBC 08050732 */ j .LIQUE_80141CC8
/* D8BA0 80141CC0 30420FFF */ andi $v0, $v0, 0xFFF
.LIQUE_80141CC4:
/* D8BA4 80141CC4 30620FFF */ andi $v0, $v1, 0xFFF
.LIQUE_80141CC8:
/* D8BA8 80141CC8 00821025 */ or $v0, $a0, $v0
/* D8BAC 80141CCC ACC20014 */ sw $v0, 0x14($a2)
/* D8BB0 80141CD0 3C06E300 */ lui $a2, (0xE3001001 >> 16)
/* D8BB4 80141CD4 34C61001 */ ori $a2, $a2, (0xE3001001 & 0xFFFF)
/* D8BB8 80141CD8 3C070100 */ lui $a3, (0x1004008 >> 16)
/* D8BBC 80141CDC 34E74008 */ ori $a3, $a3, (0x1004008 & 0xFFFF)
/* D8BC0 80141CE0 3C080500 */ lui $t0, (0x5000204 >> 16)
/* D8BC4 80141CE4 35080204 */ ori $t0, $t0, (0x5000204 & 0xFFFF)
/* D8BC8 80141CE8 3C090500 */ lui $t1, (0x5000406 >> 16)
/* D8BCC 80141CEC 3C05800A */ lui $a1, %hi(gMainGfxPos)
/* D8BD0 80141CF0 24A59244 */ addiu $a1, $a1, %lo(gMainGfxPos)
/* D8BD4 80141CF4 35290406 */ ori $t1, $t1, (0x5000406 & 0xFFFF)
/* D8BD8 80141CF8 8CA40000 */ lw $a0, 0x0($a1)
/* D8BDC 80141CFC 3C02E700 */ lui $v0, (0xE7000000 >> 16)
/* D8BE0 80141D00 0080182D */ daddu $v1, $a0, $zero
/* D8BE4 80141D04 24840008 */ addiu $a0, $a0, 0x8
/* D8BE8 80141D08 ACA40000 */ sw $a0, 0x0($a1)
/* D8BEC 80141D0C AC620000 */ sw $v0, 0x0($v1)
/* D8BF0 80141D10 24820008 */ addiu $v0, $a0, 0x8
/* D8BF4 80141D14 AC600004 */ sw $zero, 0x4($v1)
/* D8BF8 80141D18 ACA20000 */ sw $v0, 0x0($a1)
/* D8BFC 80141D1C 26C20007 */ addiu $v0, $s6, 0x7
/* D8C00 80141D20 000210C3 */ sra $v0, $v0, 3
/* D8C04 80141D24 304201FF */ andi $v0, $v0, 0x1FF
/* D8C08 80141D28 00021240 */ sll $v0, $v0, 9
/* D8C0C 80141D2C 3C03F568 */ lui $v1, (0xF5680000 >> 16)
/* D8C10 80141D30 00431025 */ or $v0, $v0, $v1
/* D8C14 80141D34 AC820000 */ sw $v0, 0x0($a0)
/* D8C18 80141D38 24820010 */ addiu $v0, $a0, 0x10
/* D8C1C 80141D3C AC800004 */ sw $zero, 0x4($a0)
/* D8C20 80141D40 ACA20000 */ sw $v0, 0x0($a1)
/* D8C24 80141D44 3C02F200 */ lui $v0, (0xF2000000 >> 16)
/* D8C28 80141D48 26C3FFFF */ addiu $v1, $s6, -0x1
/* D8C2C 80141D4C 00031880 */ sll $v1, $v1, 2
/* D8C30 80141D50 30630FFF */ andi $v1, $v1, 0xFFF
/* D8C34 80141D54 AC820008 */ sw $v0, 0x8($a0)
/* D8C38 80141D58 8FAD02B8 */ lw $t5, 0x2B8($sp)
/* D8C3C 80141D5C 00031B00 */ sll $v1, $v1, 12
/* D8C40 80141D60 25A2FFFF */ addiu $v0, $t5, -0x1
/* D8C44 80141D64 00021080 */ sll $v0, $v0, 2
/* D8C48 80141D68 30420FFF */ andi $v0, $v0, 0xFFF
/* D8C4C 80141D6C 00621825 */ or $v1, $v1, $v0
/* D8C50 80141D70 24820018 */ addiu $v0, $a0, 0x18
/* D8C54 80141D74 AC83000C */ sw $v1, 0xC($a0)
/* D8C58 80141D78 ACA20000 */ sw $v0, 0x0($a1)
/* D8C5C 80141D7C 3C028016 */ lui $v0, %hi(D_80159180)
/* D8C60 80141D80 8C42B500 */ lw $v0, %lo(D_80159180)($v0)
/* D8C64 80141D84 24830020 */ addiu $v1, $a0, 0x20
/* D8C68 80141D88 AC860010 */ sw $a2, 0x10($a0)
/* D8C6C 80141D8C AC800014 */ sw $zero, 0x14($a0)
/* D8C70 80141D90 ACA30000 */ sw $v1, 0x0($a1)
/* D8C74 80141D94 AC870018 */ sw $a3, 0x18($a0)
/* D8C78 80141D98 00021180 */ sll $v0, $v0, 6
/* D8C7C 80141D9C 24420030 */ addiu $v0, $v0, 0x30
/* D8C80 80141DA0 03C21021 */ addu $v0, $fp, $v0
/* D8C84 80141DA4 AC82001C */ sw $v0, 0x1C($a0)
/* D8C88 80141DA8 24820028 */ addiu $v0, $a0, 0x28
/* D8C8C 80141DAC ACA20000 */ sw $v0, 0x0($a1)
/* D8C90 80141DB0 24820030 */ addiu $v0, $a0, 0x30
/* D8C94 80141DB4 AC880020 */ sw $t0, 0x20($a0)
/* D8C98 80141DB8 AC800024 */ sw $zero, 0x24($a0)
/* D8C9C 80141DBC ACA20000 */ sw $v0, 0x0($a1)
/* D8CA0 80141DC0 AC890028 */ sw $t1, 0x28($a0)
/* D8CA4 80141DC4 AC80002C */ sw $zero, 0x2C($a0)
/* D8CA8 80141DC8 3C03D838 */ lui $v1, (0xD8380002 >> 16)
.LIQUE_80141DCC:
/* D8CAC 80141DCC 3C04800A */ lui $a0, %hi(gMainGfxPos)
/* D8CB0 80141DD0 24849244 */ addiu $a0, $a0, %lo(gMainGfxPos)
/* D8CB4 80141DD4 8C820000 */ lw $v0, 0x0($a0)
/* D8CB8 80141DD8 34630002 */ ori $v1, $v1, (0xD8380002 & 0xFFFF)
/* D8CBC 80141DDC 0040282D */ daddu $a1, $v0, $zero
/* D8CC0 80141DE0 24420008 */ addiu $v0, $v0, 0x8
/* D8CC4 80141DE4 AC820000 */ sw $v0, 0x0($a0)
/* D8CC8 80141DE8 ACA30000 */ sw $v1, 0x0($a1)
/* D8CCC 80141DEC 24030040 */ addiu $v1, $zero, 0x40
/* D8CD0 80141DF0 ACA30004 */ sw $v1, 0x4($a1)
/* D8CD4 80141DF4 24430008 */ addiu $v1, $v0, 0x8
/* D8CD8 80141DF8 AC830000 */ sw $v1, 0x0($a0)
/* D8CDC 80141DFC 3C03E700 */ lui $v1, (0xE7000000 >> 16)
/* D8CE0 80141E00 AC430000 */ sw $v1, 0x0($v0)
/* D8CE4 80141E04 AC400004 */ sw $zero, 0x4($v0)
/* D8CE8 80141E08 8FBF02EC */ lw $ra, 0x2EC($sp)
/* D8CEC 80141E0C 8FBE02E8 */ lw $fp, 0x2E8($sp)
/* D8CF0 80141E10 8FB702E4 */ lw $s7, 0x2E4($sp)
/* D8CF4 80141E14 8FB602E0 */ lw $s6, 0x2E0($sp)
/* D8CF8 80141E18 8FB502DC */ lw $s5, 0x2DC($sp)
/* D8CFC 80141E1C 8FB402D8 */ lw $s4, 0x2D8($sp)
/* D8D00 80141E20 8FB302D4 */ lw $s3, 0x2D4($sp)
/* D8D04 80141E24 8FB202D0 */ lw $s2, 0x2D0($sp)
/* D8D08 80141E28 8FB102CC */ lw $s1, 0x2CC($sp)
/* D8D0C 80141E2C 8FB002C8 */ lw $s0, 0x2C8($sp)
/* D8D10 80141E30 D7B80300 */ ldc1 $f24, 0x300($sp)
/* D8D14 80141E34 D7B602F8 */ ldc1 $f22, 0x2F8($sp)
/* D8D18 80141E38 D7B402F0 */ ldc1 $f20, 0x2F0($sp)
/* D8D1C 80141E3C 03E00008 */ jr $ra
/* D8D20 80141E40 27BD0308 */ addiu $sp, $sp, 0x308

View File

@ -1,723 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel render_hud_element
/* D92FC 80142BFC 27BDFCF8 */ addiu $sp, $sp, -0x308
/* D9300 80142C00 AFB702E4 */ sw $s7, 0x2e4($sp)
/* D9304 80142C04 0080B82D */ daddu $s7, $a0, $zero
/* D9308 80142C08 AFBF02EC */ sw $ra, 0x2ec($sp)
/* D930C 80142C0C AFBE02E8 */ sw $fp, 0x2e8($sp)
/* D9310 80142C10 AFB602E0 */ sw $s6, 0x2e0($sp)
/* D9314 80142C14 AFB502DC */ sw $s5, 0x2dc($sp)
/* D9318 80142C18 AFB402D8 */ sw $s4, 0x2d8($sp)
/* D931C 80142C1C AFB302D4 */ sw $s3, 0x2d4($sp)
/* D9320 80142C20 AFB202D0 */ sw $s2, 0x2d0($sp)
/* D9324 80142C24 AFB102CC */ sw $s1, 0x2cc($sp)
/* D9328 80142C28 AFB002C8 */ sw $s0, 0x2c8($sp)
/* D932C 80142C2C F7B80300 */ sdc1 $f24, 0x300($sp)
/* D9330 80142C30 F7B602F8 */ sdc1 $f22, 0x2f8($sp)
/* D9334 80142C34 F7B402F0 */ sdc1 $f20, 0x2f0($sp)
/* D9338 80142C38 8EE20000 */ lw $v0, ($s7)
/* D933C 80142C3C 30428000 */ andi $v0, $v0, 0x8000
/* D9340 80142C40 1040000C */ beqz $v0, .L80142C74
/* D9344 80142C44 3C05E300 */ lui $a1, 0xe300
/* D9348 80142C48 3C03800A */ lui $v1, %hi(gMainGfxPos)
/* D934C 80142C4C 2463A66C */ addiu $v1, $v1, %lo(gMainGfxPos)
/* D9350 80142C50 8C620000 */ lw $v0, ($v1)
/* D9354 80142C54 34A51201 */ ori $a1, $a1, 0x1201
/* D9358 80142C58 0040202D */ daddu $a0, $v0, $zero
/* D935C 80142C5C 24420008 */ addiu $v0, $v0, 8
/* D9360 80142C60 AC620000 */ sw $v0, ($v1)
/* D9364 80142C64 24023000 */ addiu $v0, $zero, 0x3000
/* D9368 80142C68 AC850000 */ sw $a1, ($a0)
/* D936C 80142C6C 08050B26 */ j .L80142C98
/* D9370 80142C70 AC820004 */ sw $v0, 4($a0)
.L80142C74:
/* D9374 80142C74 3C04800A */ lui $a0, %hi(gMainGfxPos)
/* D9378 80142C78 2484A66C */ addiu $a0, $a0, %lo(gMainGfxPos)
/* D937C 80142C7C 8C820000 */ lw $v0, ($a0)
/* D9380 80142C80 34A51201 */ ori $a1, $a1, 0x1201
/* D9384 80142C84 0040182D */ daddu $v1, $v0, $zero
/* D9388 80142C88 24420008 */ addiu $v0, $v0, 8
/* D938C 80142C8C AC820000 */ sw $v0, ($a0)
/* D9390 80142C90 AC650000 */ sw $a1, ($v1)
/* D9394 80142C94 AC600004 */ sw $zero, 4($v1)
.L80142C98:
/* D9398 80142C98 8EE30000 */ lw $v1, ($s7)
/* D939C 80142C9C 30620100 */ andi $v0, $v1, 0x100
/* D93A0 80142CA0 14400005 */ bnez $v0, .L80142CB8
/* D93A4 80142CA4 3C020010 */ lui $v0, 0x10
/* D93A8 80142CA8 3C013F80 */ lui $at, 0x3f80
/* D93AC 80142CAC 4481A000 */ mtc1 $at, $f20
/* D93B0 80142CB0 08050B51 */ j .L80142D44
/* D93B4 80142CB4 4600A606 */ mov.s $f24, $f20
.L80142CB8:
/* D93B8 80142CB8 00621024 */ and $v0, $v1, $v0
/* D93BC 80142CBC 14400011 */ bnez $v0, .L80142D04
/* D93C0 80142CC0 00000000 */ nop
/* D93C4 80142CC4 82E30046 */ lb $v1, 0x46($s7)
/* 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
/* D93DC 80142CDC 00441021 */ addu $v0, $v0, $a0
/* D93E0 80142CE0 84430000 */ lh $v1, ($v0)
/* D93E4 80142CE4 84420002 */ lh $v0, 2($v0)
/* D93E8 80142CE8 4483C000 */ mtc1 $v1, $f24
/* D93EC 80142CEC 00000000 */ nop
/* D93F0 80142CF0 4680C620 */ cvt.s.w $f24, $f24
/* D93F4 80142CF4 4482A000 */ mtc1 $v0, $f20
/* D93F8 80142CF8 00000000 */ nop
/* D93FC 80142CFC 08050B49 */ j .L80142D24
/* D9400 80142D00 4680A520 */ cvt.s.w $f20, $f20
.L80142D04:
/* D9404 80142D04 92E2004E */ lbu $v0, 0x4e($s7)
/* D9408 80142D08 92E3004F */ lbu $v1, 0x4f($s7)
/* D940C 80142D0C 4482C000 */ mtc1 $v0, $f24
/* D9410 80142D10 00000000 */ nop
/* D9414 80142D14 4680C620 */ cvt.s.w $f24, $f24
/* D9418 80142D18 4483A000 */ mtc1 $v1, $f20
/* D941C 80142D1C 00000000 */ nop
/* D9420 80142D20 4680A520 */ cvt.s.w $f20, $f20
.L80142D24:
/* D9424 80142D24 C6E00028 */ lwc1 $f0, 0x28($s7)
/* D9428 80142D28 3C013F80 */ lui $at, 0x3f80
/* D942C 80142D2C 44811000 */ mtc1 $at, $f2
/* D9430 80142D30 4600C603 */ div.s $f24, $f24, $f0
/* D9434 80142D34 C6E0002C */ lwc1 $f0, 0x2c($s7)
/* D9438 80142D38 46181603 */ div.s $f24, $f2, $f24
/* D943C 80142D3C 4600A503 */ div.s $f20, $f20, $f0
/* D9440 80142D40 46141503 */ div.s $f20, $f2, $f20
.L80142D44:
/* D9444 80142D44 8EE20000 */ lw $v0, ($s7)
/* D9448 80142D48 3C030010 */ lui $v1, 0x10
/* D944C 80142D4C 00431024 */ and $v0, $v0, $v1
/* D9450 80142D50 1440000C */ bnez $v0, .L80142D84
/* D9454 80142D54 00000000 */ nop
/* D9458 80142D58 82E20046 */ lb $v0, 0x46($s7)
/* 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
/* D9470 80142D70 00641821 */ addu $v1, $v1, $a0
/* D9474 80142D74 84760000 */ lh $s6, ($v1)
/* D9478 80142D78 84630002 */ lh $v1, 2($v1)
/* D947C 80142D7C 08050B64 */ j .L80142D90
/* D9480 80142D80 AFA302B8 */ sw $v1, 0x2b8($sp)
.L80142D84:
/* D9484 80142D84 92F6004E */ lbu $s6, 0x4e($s7)
/* D9488 80142D88 92ED004F */ lbu $t5, 0x4f($s7)
/* D948C 80142D8C AFAD02B8 */ sw $t5, 0x2b8($sp)
.L80142D90:
/* D9490 80142D90 4480B000 */ mtc1 $zero, $f22
/* D9494 80142D94 27AE01E0 */ addiu $t6, $sp, 0x1e0
/* D9498 80142D98 AFAE02BC */ sw $t6, 0x2bc($sp)
/* D949C 80142D9C 8EFE001C */ lw $fp, 0x1c($s7)
/* D94A0 80142DA0 4407B000 */ mfc1 $a3, $f22
/* D94A4 80142DA4 87C30028 */ lh $v1, 0x28($fp)
/* D94A8 80142DA8 87C2002A */ lh $v0, 0x2a($fp)
/* D94AC 80142DAC 44833000 */ mtc1 $v1, $f6
/* D94B0 80142DB0 00000000 */ nop
/* D94B4 80142DB4 468031A0 */ cvt.s.w $f6, $f6
/* D94B8 80142DB8 00021023 */ negu $v0, $v0
/* D94BC 80142DBC 44053000 */ mfc1 $a1, $f6
/* D94C0 80142DC0 44823000 */ mtc1 $v0, $f6
/* D94C4 80142DC4 00000000 */ nop
/* D94C8 80142DC8 468031A0 */ cvt.s.w $f6, $f6
/* D94CC 80142DCC 44063000 */ mfc1 $a2, $f6
/* D94D0 80142DD0 0C019E40 */ jal guTranslateF
/* D94D4 80142DD4 01C0202D */ daddu $a0, $t6, $zero
/* D94D8 80142DD8 27AD0220 */ addiu $t5, $sp, 0x220
/* D94DC 80142DDC AFAD02C0 */ sw $t5, 0x2c0($sp)
/* D94E0 80142DE0 87C20028 */ lh $v0, 0x28($fp)
/* D94E4 80142DE4 4407B000 */ mfc1 $a3, $f22
/* D94E8 80142DE8 87C3002A */ lh $v1, 0x2a($fp)
/* D94EC 80142DEC 00021023 */ negu $v0, $v0
/* D94F0 80142DF0 44823000 */ mtc1 $v0, $f6
/* D94F4 80142DF4 00000000 */ nop
/* D94F8 80142DF8 468031A0 */ cvt.s.w $f6, $f6
/* D94FC 80142DFC 44053000 */ mfc1 $a1, $f6
/* D9500 80142E00 44833000 */ mtc1 $v1, $f6
/* D9504 80142E04 00000000 */ nop
/* D9508 80142E08 468031A0 */ cvt.s.w $f6, $f6
/* D950C 80142E0C 44063000 */ mfc1 $a2, $f6
/* D9510 80142E10 0C019E40 */ jal guTranslateF
/* D9514 80142E14 01A0202D */ daddu $a0, $t5, $zero
/* D9518 80142E18 86E2003C */ lh $v0, 0x3c($s7)
/* D951C 80142E1C 82E30040 */ lb $v1, 0x40($s7)
/* D9520 80142E20 82E40042 */ lb $a0, 0x42($s7)
/* D9524 80142E24 C7C00004 */ lwc1 $f0, 4($fp)
/* D9528 80142E28 3C014024 */ lui $at, 0x4024
/* D952C 80142E2C 44812800 */ mtc1 $at, $f5
/* D9530 80142E30 44802000 */ mtc1 $zero, $f4
/* D9534 80142E34 00431021 */ addu $v0, $v0, $v1
/* D9538 80142E38 00441021 */ addu $v0, $v0, $a0
/* D953C 80142E3C 44821000 */ mtc1 $v0, $f2
/* D9540 80142E40 00000000 */ nop
/* D9544 80142E44 468010A0 */ cvt.s.w $f2, $f2
/* D9548 80142E48 46001080 */ add.s $f2, $f2, $f0
/* D954C 80142E4C 86E2003E */ lh $v0, 0x3e($s7)
/* D9550 80142E50 82E30041 */ lb $v1, 0x41($s7)
/* D9554 80142E54 82E40043 */ lb $a0, 0x43($s7)
/* D9558 80142E58 C7C00008 */ lwc1 $f0, 8($fp)
/* D955C 80142E5C 00021023 */ negu $v0, $v0
/* D9560 80142E60 00431023 */ subu $v0, $v0, $v1
/* D9564 80142E64 00441021 */ addu $v0, $v0, $a0
/* D9568 80142E68 44051000 */ mfc1 $a1, $f2
/* D956C 80142E6C 44821000 */ mtc1 $v0, $f2
/* D9570 80142E70 00000000 */ nop
/* D9574 80142E74 468010A0 */ cvt.s.w $f2, $f2
/* D9578 80142E78 82E20044 */ lb $v0, 0x44($s7)
/* D957C 80142E7C 46001080 */ add.s $f2, $f2, $f0
/* D9580 80142E80 44820000 */ mtc1 $v0, $f0
/* D9584 80142E84 00000000 */ nop
/* D9588 80142E88 46800021 */ cvt.d.w $f0, $f0
/* D958C 80142E8C 46240003 */ div.d $f0, $f0, $f4
/* D9590 80142E90 44061000 */ mfc1 $a2, $f2
/* D9594 80142E94 C7C2000C */ lwc1 $f2, 0xc($fp)
/* D9598 80142E98 46200007 */ neg.d $f0, $f0
/* D959C 80142E9C 460010A1 */ cvt.d.s $f2, $f2
/* D95A0 80142EA0 46220000 */ add.d $f0, $f0, $f2
/* D95A4 80142EA4 27B401A0 */ addiu $s4, $sp, 0x1a0
/* D95A8 80142EA8 46200020 */ cvt.s.d $f0, $f0
/* D95AC 80142EAC 44070000 */ mfc1 $a3, $f0
/* D95B0 80142EB0 0C019E40 */ jal guTranslateF
/* D95B4 80142EB4 0280202D */ daddu $a0, $s4, $zero
/* D95B8 80142EB8 C6E20030 */ lwc1 $f2, 0x30($s7)
/* D95BC 80142EBC 46181102 */ mul.s $f4, $f2, $f24
/* D95C0 80142EC0 00000000 */ nop
/* D95C4 80142EC4 46141082 */ mul.s $f2, $f2, $f20
/* D95C8 80142EC8 00000000 */ nop
/* D95CC 80142ECC C7C0001C */ lwc1 $f0, 0x1c($fp)
/* D95D0 80142ED0 46002102 */ mul.s $f4, $f4, $f0
/* D95D4 80142ED4 00000000 */ nop
/* D95D8 80142ED8 C7C00020 */ lwc1 $f0, 0x20($fp)
/* D95DC 80142EDC 3C150001 */ lui $s5, 1
/* D95E0 80142EE0 46001082 */ mul.s $f2, $f2, $f0
/* D95E4 80142EE4 00000000 */ nop
/* D95E8 80142EE8 36B51630 */ ori $s5, $s5, 0x1630
/* D95EC 80142EEC 27B30260 */ addiu $s3, $sp, 0x260
/* D95F0 80142EF0 8FC70024 */ lw $a3, 0x24($fp)
/* D95F4 80142EF4 44052000 */ mfc1 $a1, $f4
/* D95F8 80142EF8 44061000 */ mfc1 $a2, $f2
/* D95FC 80142EFC 0C019DF0 */ jal guScaleF
/* D9600 80142F00 0260202D */ daddu $a0, $s3, $zero
/* D9604 80142F04 27B20120 */ addiu $s2, $sp, 0x120
/* D9608 80142F08 E7B60010 */ swc1 $f22, 0x10($sp)
/* D960C 80142F0C 8FC50014 */ lw $a1, 0x14($fp)
/* D9610 80142F10 3C013F80 */ lui $at, 0x3f80
/* D9614 80142F14 4481A000 */ mtc1 $at, $f20
/* D9618 80142F18 4406B000 */ mfc1 $a2, $f22
/* D961C 80142F1C 4407A000 */ mfc1 $a3, $f20
/* D9620 80142F20 0C019EC8 */ jal guRotateF
/* D9624 80142F24 0240202D */ daddu $a0, $s2, $zero
/* D9628 80142F28 27B10160 */ addiu $s1, $sp, 0x160
/* D962C 80142F2C E7B40010 */ swc1 $f20, 0x10($sp)
/* D9630 80142F30 8FC50018 */ lw $a1, 0x18($fp)
/* D9634 80142F34 4406B000 */ mfc1 $a2, $f22
/* D9638 80142F38 4407B000 */ mfc1 $a3, $f22
/* D963C 80142F3C 0C019EC8 */ jal guRotateF
/* D9640 80142F40 0220202D */ daddu $a0, $s1, $zero
/* D9644 80142F44 27B000E0 */ addiu $s0, $sp, 0xe0
/* D9648 80142F48 E7B60010 */ swc1 $f22, 0x10($sp)
/* D964C 80142F4C 8FC50010 */ lw $a1, 0x10($fp)
/* D9650 80142F50 4406A000 */ mfc1 $a2, $f20
/* D9654 80142F54 4407B000 */ mfc1 $a3, $f22
/* D9658 80142F58 0C019EC8 */ jal guRotateF
/* D965C 80142F5C 0200202D */ daddu $a0, $s0, $zero
/* D9660 80142F60 0220202D */ daddu $a0, $s1, $zero
/* D9664 80142F64 0200282D */ daddu $a1, $s0, $zero
/* D9668 80142F68 0C019D80 */ jal guMtxCatF
/* D966C 80142F6C 27A60020 */ addiu $a2, $sp, 0x20
/* D9670 80142F70 27A40020 */ addiu $a0, $sp, 0x20
/* D9674 80142F74 0240282D */ daddu $a1, $s2, $zero
/* D9678 80142F78 27B000A0 */ addiu $s0, $sp, 0xa0
/* D967C 80142F7C 0C019D80 */ jal guMtxCatF
/* D9680 80142F80 0200302D */ daddu $a2, $s0, $zero
/* D9684 80142F84 0260202D */ daddu $a0, $s3, $zero
/* D9688 80142F88 8FA502BC */ lw $a1, 0x2bc($sp)
/* D968C 80142F8C 0C019D80 */ jal guMtxCatF
/* D9690 80142F90 27A60020 */ addiu $a2, $sp, 0x20
/* D9694 80142F94 27A40020 */ addiu $a0, $sp, 0x20
/* D9698 80142F98 0200282D */ daddu $a1, $s0, $zero
/* D969C 80142F9C 27B00060 */ addiu $s0, $sp, 0x60
/* D96A0 80142FA0 0C019D80 */ jal guMtxCatF
/* D96A4 80142FA4 0200302D */ daddu $a2, $s0, $zero
/* D96A8 80142FA8 0200202D */ daddu $a0, $s0, $zero
/* D96AC 80142FAC 8FA502C0 */ lw $a1, 0x2c0($sp)
/* D96B0 80142FB0 0C019D80 */ jal guMtxCatF
/* D96B4 80142FB4 27A60020 */ addiu $a2, $sp, 0x20
/* D96B8 80142FB8 27A40020 */ addiu $a0, $sp, 0x20
/* D96BC 80142FBC 0280282D */ daddu $a1, $s4, $zero
/* D96C0 80142FC0 0C019D80 */ jal guMtxCatF
/* D96C4 80142FC4 0200302D */ daddu $a2, $s0, $zero
/* D96C8 80142FC8 0200202D */ daddu $a0, $s0, $zero
/* D96CC 80142FCC 3C108007 */ lui $s0, %hi(gMatrixListPos)
/* D96D0 80142FD0 261041F0 */ addiu $s0, $s0, %lo(gMatrixListPos)
/* D96D4 80142FD4 3C11800A */ lui $s1, %hi(gDisplayContext)
/* D96D8 80142FD8 2631A674 */ addiu $s1, $s1, %lo(gDisplayContext)
/* D96DC 80142FDC 96050000 */ lhu $a1, ($s0)
/* D96E0 80142FE0 8E220000 */ lw $v0, ($s1)
/* D96E4 80142FE4 00052980 */ sll $a1, $a1, 6
/* D96E8 80142FE8 00B52821 */ addu $a1, $a1, $s5
/* D96EC 80142FEC 0C019D40 */ jal guMtxF2L
/* D96F0 80142FF0 00452821 */ addu $a1, $v0, $a1
/* D96F4 80142FF4 3C06DA38 */ lui $a2, 0xda38
/* D96F8 80142FF8 34C60002 */ ori $a2, $a2, 2
/* D96FC 80142FFC 3C03800A */ lui $v1, %hi(gMainGfxPos)
/* D9700 80143000 2463A66C */ addiu $v1, $v1, %lo(gMainGfxPos)
/* D9704 80143004 0000382D */ daddu $a3, $zero, $zero
/* D9708 80143008 8C620000 */ lw $v0, ($v1)
/* D970C 8014300C 96040000 */ lhu $a0, ($s0)
/* D9710 80143010 0040282D */ daddu $a1, $v0, $zero
/* D9714 80143014 24420008 */ addiu $v0, $v0, 8
/* D9718 80143018 AC620000 */ sw $v0, ($v1)
/* D971C 8014301C 3082FFFF */ andi $v0, $a0, 0xffff
/* D9720 80143020 00021180 */ sll $v0, $v0, 6
/* D9724 80143024 ACA60000 */ sw $a2, ($a1)
/* D9728 80143028 8E230000 */ lw $v1, ($s1)
/* D972C 8014302C 00551021 */ addu $v0, $v0, $s5
/* D9730 80143030 00621821 */ addu $v1, $v1, $v0
/* D9734 80143034 3C028000 */ lui $v0, 0x8000
/* D9738 80143038 00621821 */ addu $v1, $v1, $v0
/* D973C 8014303C ACA30004 */ sw $v1, 4($a1)
/* D9740 80143040 8EE30000 */ lw $v1, ($s7)
/* D9744 80143044 24840001 */ addiu $a0, $a0, 1
/* D9748 80143048 A6040000 */ sh $a0, ($s0)
/* D974C 8014304C 30624000 */ andi $v0, $v1, 0x4000
/* D9750 80143050 00E2202B */ sltu $a0, $a3, $v0
/* D9754 80143054 3C020008 */ lui $v0, 8
/* D9758 80143058 00621824 */ and $v1, $v1, $v0
/* D975C 8014305C 24020001 */ addiu $v0, $zero, 1
/* D9760 80143060 14820002 */ bne $a0, $v0, .L8014306C
/* D9764 80143064 00E3182B */ sltu $v1, $a3, $v1
/* D9768 80143068 0062382B */ sltu $a3, $v1, $v0
.L8014306C:
/* D976C 8014306C 54800004 */ bnel $a0, $zero, .L80143080
/* D9770 80143070 24020001 */ addiu $v0, $zero, 1
/* D9774 80143074 50620001 */ beql $v1, $v0, .L8014307C
/* D9778 80143078 24070002 */ addiu $a3, $zero, 2
.L8014307C:
/* D977C 8014307C 24020001 */ addiu $v0, $zero, 1
.L80143080:
/* D9780 80143080 14820004 */ bne $a0, $v0, .L80143094
/* D9784 80143084 24020001 */ addiu $v0, $zero, 1
/* D9788 80143088 50640002 */ beql $v1, $a0, .L80143094
/* D978C 8014308C 24070002 */ addiu $a3, $zero, 2
/* D9790 80143090 24020001 */ addiu $v0, $zero, 1
.L80143094:
/* D9794 80143094 10E20005 */ beq $a3, $v0, .L801430AC
/* D9798 80143098 24020002 */ addiu $v0, $zero, 2
/* D979C 8014309C 10E20052 */ beq $a3, $v0, .L801431E8
/* D97A0 801430A0 3C03D838 */ lui $v1, 0xd838
/* D97A4 801430A4 08050D8F */ j .L8014363C
/* D97A8 801430A8 00000000 */ nop
.L801430AC:
/* D97AC 801430AC 8EE30000 */ lw $v1, ($s7)
/* D97B0 801430B0 3C020002 */ lui $v0, 2
/* D97B4 801430B4 00621024 */ and $v0, $v1, $v0
/* D97B8 801430B8 10400013 */ beqz $v0, .L80143108
/* D97BC 801430BC 30620020 */ andi $v0, $v1, 0x20
/* D97C0 801430C0 1040000A */ beqz $v0, .L801430EC
/* D97C4 801430C4 0000202D */ daddu $a0, $zero, $zero
/* D97C8 801430C8 24050007 */ addiu $a1, $zero, 7
/* D97CC 801430CC 240600FF */ addiu $a2, $zero, 0xff
/* D97D0 801430D0 00C0102D */ daddu $v0, $a2, $zero
/* D97D4 801430D4 AFA20010 */ sw $v0, 0x10($sp)
/* D97D8 801430D8 92E2004A */ lbu $v0, 0x4a($s7)
/* D97DC 801430DC 00C0382D */ daddu $a3, $a2, $zero
/* D97E0 801430E0 AFA00018 */ sw $zero, 0x18($sp)
/* D97E4 801430E4 08050C54 */ j .L80143150
/* D97E8 801430E8 AFA20014 */ sw $v0, 0x14($sp)
.L801430EC:
/* D97EC 801430EC 0080282D */ daddu $a1, $a0, $zero
/* D97F0 801430F0 0080302D */ daddu $a2, $a0, $zero
/* D97F4 801430F4 0080382D */ daddu $a3, $a0, $zero
/* D97F8 801430F8 AFA00010 */ sw $zero, 0x10($sp)
/* D97FC 801430FC AFA00014 */ sw $zero, 0x14($sp)
/* D9800 80143100 08050C54 */ j .L80143150
/* D9804 80143104 AFA00018 */ sw $zero, 0x18($sp)
.L80143108:
/* D9808 80143108 1040000A */ beqz $v0, .L80143134
/* D980C 8014310C 24050007 */ addiu $a1, $zero, 7
/* D9810 80143110 240200FF */ addiu $v0, $zero, 0xff
/* D9814 80143114 AFA20010 */ sw $v0, 0x10($sp)
/* D9818 80143118 92E2004A */ lbu $v0, 0x4a($s7)
/* D981C 8014311C 240600FF */ addiu $a2, $zero, 0xff
/* D9820 80143120 AFA00018 */ sw $zero, 0x18($sp)
/* D9824 80143124 AFA20014 */ sw $v0, 0x14($sp)
/* D9828 80143128 8FC40000 */ lw $a0, ($fp)
/* D982C 8014312C 08050C54 */ j .L80143150
/* D9830 80143130 00C0382D */ daddu $a3, $a2, $zero
.L80143134:
/* D9834 80143134 0000282D */ daddu $a1, $zero, $zero
/* D9838 80143138 00A0302D */ daddu $a2, $a1, $zero
/* D983C 8014313C AFA00010 */ sw $zero, 0x10($sp)
/* D9840 80143140 AFA00014 */ sw $zero, 0x14($sp)
/* D9844 80143144 AFA00018 */ sw $zero, 0x18($sp)
/* D9848 80143148 8FC40000 */ lw $a0, ($fp)
/* D984C 8014314C 00A0382D */ daddu $a3, $a1, $zero
.L80143150:
/* D9850 80143150 0C04EAA7 */ jal fold_update
/* D9854 80143154 00000000 */ nop
/* D9858 80143158 8EE20010 */ lw $v0, 0x10($s7)
/* D985C 8014315C 8FAE02B8 */ lw $t6, 0x2b8($sp)
/* D9860 80143160 AFA202A0 */ sw $v0, 0x2a0($sp)
/* D9864 80143164 00161023 */ negu $v0, $s6
/* D9868 80143168 00021FC2 */ srl $v1, $v0, 0x1f
/* D986C 8014316C 00431021 */ addu $v0, $v0, $v1
/* D9870 80143170 8EE40014 */ lw $a0, 0x14($s7)
/* D9874 80143174 00021043 */ sra $v0, $v0, 1
/* D9878 80143178 A7A202AC */ sh $v0, 0x2ac($sp)
/* D987C 8014317C 000E17C2 */ srl $v0, $t6, 0x1f
/* D9880 80143180 01C21021 */ addu $v0, $t6, $v0
/* D9884 80143184 97AD02BA */ lhu $t5, 0x2ba($sp)
/* D9888 80143188 00021043 */ sra $v0, $v0, 1
/* D988C 8014318C A7A202AE */ sh $v0, 0x2ae($sp)
/* D9890 80143190 240200FF */ addiu $v0, $zero, 0xff
/* D9894 80143194 A7B602A8 */ sh $s6, 0x2a8($sp)
/* D9898 80143198 A3A202B0 */ sb $v0, 0x2b0($sp)
/* D989C 8014319C A7AD02AA */ sh $t5, 0x2aa($sp)
/* D98A0 801431A0 AFA402A4 */ sw $a0, 0x2a4($sp)
/* D98A4 801431A4 8EE30000 */ lw $v1, ($s7)
/* D98A8 801431A8 3C020002 */ lui $v0, 2
/* D98AC 801431AC 00621024 */ and $v0, $v1, $v0
/* D98B0 801431B0 10400006 */ beqz $v0, .L801431CC
/* D98B4 801431B4 3C020080 */ lui $v0, 0x80
/* D98B8 801431B8 00621024 */ and $v0, $v1, $v0
/* D98BC 801431BC 14400004 */ bnez $v0, .L801431D0
/* D98C0 801431C0 0000202D */ daddu $a0, $zero, $zero
/* D98C4 801431C4 08050C75 */ j .L801431D4
/* D98C8 801431C8 27A502A0 */ addiu $a1, $sp, 0x2a0
.L801431CC:
/* D98CC 801431CC 8FC40000 */ lw $a0, ($fp)
.L801431D0:
/* D98D0 801431D0 27A502A0 */ addiu $a1, $sp, 0x2a0
.L801431D4:
/* D98D4 801431D4 24060040 */ addiu $a2, $zero, 0x40
/* D98D8 801431D8 0C04EBDC */ jal fold_appendGfx_component
/* D98DC 801431DC 27A70060 */ addiu $a3, $sp, 0x60
/* D98E0 801431E0 08050D8F */ j .L8014363C
/* D98E4 801431E4 3C03D838 */ lui $v1, 0xd838
.L801431E8:
/* D98E8 801431E8 3C0AFC11 */ lui $t2, 0xfc11
/* D98EC 801431EC 354AB223 */ ori $t2, $t2, 0xb223
/* D98F0 801431F0 3C09FF67 */ lui $t1, 0xff67
/* D98F4 801431F4 3529FFFF */ ori $t1, $t1, 0xffff
/* D98F8 801431F8 3C078016 */ lui $a3, %hi(D_80159180)
/* D98FC 801431FC 24E79180 */ addiu $a3, $a3, %lo(D_80159180)
/* D9900 80143200 3C0C800A */ lui $t4, %hi(gMainGfxPos)
/* D9904 80143204 258CA66C */ addiu $t4, $t4, %lo(gMainGfxPos)
/* D9908 80143208 3C068015 */ lui $a2, %hi(D_8014F0C8)
/* D990C 8014320C 24C6F0C8 */ addiu $a2, $a2, %lo(D_8014F0C8)
/* D9910 80143210 8CE50000 */ lw $a1, ($a3)
/* D9914 80143214 8D8B0000 */ lw $t3, ($t4)
/* D9918 80143218 8CE20000 */ lw $v0, ($a3)
/* D991C 8014321C 8CE30000 */ lw $v1, ($a3)
/* D9920 80143220 00052980 */ sll $a1, $a1, 6
/* D9924 80143224 24A50030 */ addiu $a1, $a1, 0x30
/* D9928 80143228 03C52821 */ addu $a1, $fp, $a1
/* D992C 8014322C 00021180 */ sll $v0, $v0, 6
/* D9930 80143230 03C21021 */ addu $v0, $fp, $v0
/* D9934 80143234 00031980 */ sll $v1, $v1, 6
/* D9938 80143238 03C31821 */ addu $v1, $fp, $v1
/* D993C 8014323C 0160402D */ daddu $t0, $t3, $zero
/* D9940 80143240 8CCF0000 */ lw $t7, ($a2)
/* D9944 80143244 8CD80004 */ lw $t8, 4($a2)
/* D9948 80143248 8CCD0008 */ lw $t5, 8($a2)
/* D994C 8014324C 8CCE000C */ lw $t6, 0xc($a2)
/* D9950 80143250 AC4F0030 */ sw $t7, 0x30($v0)
/* D9954 80143254 AC580034 */ sw $t8, 0x34($v0)
/* D9958 80143258 AC4D0038 */ sw $t5, 0x38($v0)
/* D995C 8014325C AC4E003C */ sw $t6, 0x3c($v0)
/* D9960 80143260 8CE40000 */ lw $a0, ($a3)
/* D9964 80143264 256B0008 */ addiu $t3, $t3, 8
/* D9968 80143268 8CCF0010 */ lw $t7, 0x10($a2)
/* D996C 8014326C 8CD80014 */ lw $t8, 0x14($a2)
/* D9970 80143270 8CCD0018 */ lw $t5, 0x18($a2)
/* D9974 80143274 8CCE001C */ lw $t6, 0x1c($a2)
/* D9978 80143278 AC6F0040 */ sw $t7, 0x40($v1)
/* D997C 8014327C AC780044 */ sw $t8, 0x44($v1)
/* D9980 80143280 AC6D0048 */ sw $t5, 0x48($v1)
/* D9984 80143284 AC6E004C */ sw $t6, 0x4c($v1)
/* D9988 80143288 8CE20000 */ lw $v0, ($a3)
/* D998C 8014328C 00042180 */ sll $a0, $a0, 6
/* D9990 80143290 03C42021 */ addu $a0, $fp, $a0
/* D9994 80143294 00021180 */ sll $v0, $v0, 6
/* D9998 80143298 03C21021 */ addu $v0, $fp, $v0
/* D999C 8014329C 8CCF0020 */ lw $t7, 0x20($a2)
/* D99A0 801432A0 8CD80024 */ lw $t8, 0x24($a2)
/* D99A4 801432A4 8CCD0028 */ lw $t5, 0x28($a2)
/* D99A8 801432A8 8CCE002C */ lw $t6, 0x2c($a2)
/* D99AC 801432AC AC8F0050 */ sw $t7, 0x50($a0)
/* D99B0 801432B0 AC980054 */ sw $t8, 0x54($a0)
/* D99B4 801432B4 AC8D0058 */ sw $t5, 0x58($a0)
/* D99B8 801432B8 AC8E005C */ sw $t6, 0x5c($a0)
/* D99BC 801432BC 8CCF0030 */ lw $t7, 0x30($a2)
/* D99C0 801432C0 8CD80034 */ lw $t8, 0x34($a2)
/* D99C4 801432C4 8CCD0038 */ lw $t5, 0x38($a2)
/* D99C8 801432C8 8CCE003C */ lw $t6, 0x3c($a2)
/* D99CC 801432CC AC4F0060 */ sw $t7, 0x60($v0)
/* D99D0 801432D0 AC580064 */ sw $t8, 0x64($v0)
/* D99D4 801432D4 AC4D0068 */ sw $t5, 0x68($v0)
/* D99D8 801432D8 AC4E006C */ sw $t6, 0x6c($v0)
/* D99DC 801432DC 00163023 */ negu $a2, $s6
/* D99E0 801432E0 000617C2 */ srl $v0, $a2, 0x1f
/* D99E4 801432E4 00C23021 */ addu $a2, $a2, $v0
/* D99E8 801432E8 00063043 */ sra $a2, $a2, 1
/* D99EC 801432EC A4A60000 */ sh $a2, ($a1)
/* D99F0 801432F0 8FAF02B8 */ lw $t7, 0x2b8($sp)
/* D99F4 801432F4 00A0202D */ daddu $a0, $a1, $zero
/* D99F8 801432F8 A4A00004 */ sh $zero, 4($a1)
/* D99FC 801432FC A4A00008 */ sh $zero, 8($a1)
/* D9A00 80143300 000F1823 */ negu $v1, $t7
/* D9A04 80143304 000317C2 */ srl $v0, $v1, 0x1f
/* D9A08 80143308 00621821 */ addu $v1, $v1, $v0
/* D9A0C 8014330C 00031843 */ sra $v1, $v1, 1
/* D9A10 80143310 000F3940 */ sll $a3, $t7, 5
/* D9A14 80143314 A4A30002 */ sh $v1, 2($a1)
/* D9A18 80143318 A4A7000A */ sh $a3, 0xa($a1)
/* D9A1C 8014331C 24A50010 */ addiu $a1, $a1, 0x10
/* D9A20 80143320 001617C2 */ srl $v0, $s6, 0x1f
/* D9A24 80143324 02C21021 */ addu $v0, $s6, $v0
/* D9A28 80143328 00021043 */ sra $v0, $v0, 1
/* D9A2C 8014332C 2442FFFF */ addiu $v0, $v0, -1
/* D9A30 80143330 A4A30002 */ sh $v1, 2($a1)
/* D9A34 80143334 00161940 */ sll $v1, $s6, 5
/* D9A38 80143338 A4A20000 */ sh $v0, ($a1)
/* D9A3C 8014333C A4A00004 */ sh $zero, 4($a1)
/* D9A40 80143340 A4A30008 */ sh $v1, 8($a1)
/* D9A44 80143344 A4A7000A */ sh $a3, 0xa($a1)
/* D9A48 80143348 A4820020 */ sh $v0, 0x20($a0)
/* D9A4C 8014334C 000F17C2 */ srl $v0, $t7, 0x1f
/* D9A50 80143350 01E21021 */ addu $v0, $t7, $v0
/* D9A54 80143354 00021043 */ sra $v0, $v0, 1
/* D9A58 80143358 2442FFFF */ addiu $v0, $v0, -1
/* D9A5C 8014335C A4820022 */ sh $v0, 0x22($a0)
/* D9A60 80143360 A4820032 */ sh $v0, 0x32($a0)
/* D9A64 80143364 3C02E700 */ lui $v0, 0xe700
/* D9A68 80143368 A4800024 */ sh $zero, 0x24($a0)
/* D9A6C 8014336C A4830028 */ sh $v1, 0x28($a0)
/* D9A70 80143370 A480002A */ sh $zero, 0x2a($a0)
/* D9A74 80143374 A4860030 */ sh $a2, 0x30($a0)
/* D9A78 80143378 A4800034 */ sh $zero, 0x34($a0)
/* D9A7C 8014337C A4800038 */ sh $zero, 0x38($a0)
/* D9A80 80143380 A480003A */ sh $zero, 0x3a($a0)
/* D9A84 80143384 AD8B0000 */ sw $t3, ($t4)
/* D9A88 80143388 AD020000 */ sw $v0, ($t0)
/* D9A8C 8014338C 25620008 */ addiu $v0, $t3, 8
/* D9A90 80143390 AD000004 */ sw $zero, 4($t0)
/* D9A94 80143394 AD820000 */ sw $v0, ($t4)
/* D9A98 80143398 25620010 */ addiu $v0, $t3, 0x10
/* D9A9C 8014339C AD6A0000 */ sw $t2, ($t3)
/* D9AA0 801433A0 AD690004 */ sw $t1, 4($t3)
/* D9AA4 801433A4 AD820000 */ sw $v0, ($t4)
/* D9AA8 801433A8 3C02FA00 */ lui $v0, 0xfa00
/* D9AAC 801433AC AD620008 */ sw $v0, 8($t3)
/* D9AB0 801433B0 92E2004B */ lbu $v0, 0x4b($s7)
/* D9AB4 801433B4 92E3004C */ lbu $v1, 0x4c($s7)
/* D9AB8 801433B8 92E4004D */ lbu $a0, 0x4d($s7)
/* D9ABC 801433BC 00021600 */ sll $v0, $v0, 0x18
/* D9AC0 801433C0 00031C00 */ sll $v1, $v1, 0x10
/* D9AC4 801433C4 00431025 */ or $v0, $v0, $v1
/* D9AC8 801433C8 00042200 */ sll $a0, $a0, 8
/* D9ACC 801433CC 92E3004A */ lbu $v1, 0x4a($s7)
/* D9AD0 801433D0 00441025 */ or $v0, $v0, $a0
/* D9AD4 801433D4 00431025 */ or $v0, $v0, $v1
/* D9AD8 801433D8 AD62000C */ sw $v0, 0xc($t3)
/* D9ADC 801433DC 8EE30000 */ lw $v1, ($s7)
/* D9AE0 801433E0 30620020 */ andi $v0, $v1, 0x20
/* D9AE4 801433E4 1440000C */ bnez $v0, .L80143418
/* D9AE8 801433E8 3C020080 */ lui $v0, 0x80
/* D9AEC 801433EC 00621024 */ and $v0, $v1, $v0
/* D9AF0 801433F0 14400005 */ bnez $v0, .L80143408
/* D9AF4 801433F4 3C04E200 */ lui $a0, 0xe200
/* D9AF8 801433F8 3484001C */ ori $a0, $a0, 0x1c
/* D9AFC 801433FC 3C030F0A */ lui $v1, 0xf0a
/* D9B00 80143400 08050D10 */ j .L80143440
/* D9B04 80143404 34637008 */ ori $v1, $v1, 0x7008
.L80143408:
/* D9B08 80143408 3484001C */ ori $a0, $a0, 0x1c
/* D9B0C 8014340C 3C030055 */ lui $v1, 0x55
/* D9B10 80143410 08050D10 */ j .L80143440
/* D9B14 80143414 34633048 */ ori $v1, $v1, 0x3048
.L80143418:
/* D9B18 80143418 00621024 */ and $v0, $v1, $v0
/* D9B1C 8014341C 14400005 */ bnez $v0, .L80143434
/* D9B20 80143420 3C04E200 */ lui $a0, 0xe200
/* D9B24 80143424 3484001C */ ori $a0, $a0, 0x1c
/* D9B28 80143428 3C030050 */ lui $v1, 0x50
/* D9B2C 8014342C 08050D10 */ j .L80143440
/* D9B30 80143430 34634340 */ ori $v1, $v1, 0x4340
.L80143434:
/* D9B34 80143434 3484001C */ ori $a0, $a0, 0x1c
/* D9B38 80143438 3C030050 */ lui $v1, 0x50
/* D9B3C 8014343C 34634348 */ ori $v1, $v1, 0x4348
.L80143440:
/* D9B40 80143440 25620018 */ addiu $v0, $t3, 0x18
/* D9B44 80143444 AD820000 */ sw $v0, ($t4)
/* D9B48 80143448 AD640010 */ sw $a0, 0x10($t3)
/* D9B4C 8014344C AD630014 */ sw $v1, 0x14($t3)
/* D9B50 80143450 3C03800A */ lui $v1, %hi(gMainGfxPos)
/* D9B54 80143454 2463A66C */ addiu $v1, $v1, %lo(gMainGfxPos)
/* D9B58 80143458 02C0382D */ daddu $a3, $s6, $zero
/* D9B5C 8014345C 3C02FD70 */ lui $v0, 0xfd70
/* D9B60 80143460 8C660000 */ lw $a2, ($v1)
/* D9B64 80143464 3C080700 */ lui $t0, 0x700
/* D9B68 80143468 00C0282D */ daddu $a1, $a2, $zero
/* D9B6C 8014346C 24C60008 */ addiu $a2, $a2, 8
/* D9B70 80143470 AC660000 */ sw $a2, ($v1)
/* D9B74 80143474 ACA20000 */ sw $v0, ($a1)
/* D9B78 80143478 24C20008 */ addiu $v0, $a2, 8
/* D9B7C 8014347C AC620000 */ sw $v0, ($v1)
/* D9B80 80143480 24C20010 */ addiu $v0, $a2, 0x10
/* D9B84 80143484 AC620000 */ sw $v0, ($v1)
/* D9B88 80143488 8EE40010 */ lw $a0, 0x10($s7)
/* D9B8C 8014348C 24C20018 */ addiu $v0, $a2, 0x18
/* D9B90 80143490 AC620000 */ sw $v0, ($v1)
/* D9B94 80143494 3C02F570 */ lui $v0, 0xf570
/* D9B98 80143498 ACA40004 */ sw $a0, 4($a1)
/* D9B9C 8014349C ACC20000 */ sw $v0, ($a2)
/* D9BA0 801434A0 3C02E600 */ lui $v0, 0xe600
/* D9BA4 801434A4 ACC20008 */ sw $v0, 8($a2)
/* D9BA8 801434A8 3C02F300 */ lui $v0, 0xf300
/* D9BAC 801434AC ACC80004 */ sw $t0, 4($a2)
/* D9BB0 801434B0 ACC0000C */ sw $zero, 0xc($a2)
/* D9BB4 801434B4 06C10002 */ bgez $s6, .L801434C0
/* D9BB8 801434B8 ACC20010 */ sw $v0, 0x10($a2)
/* D9BBC 801434BC 26C70007 */ addiu $a3, $s6, 7
.L801434C0:
/* D9BC0 801434C0 000728C3 */ sra $a1, $a3, 3
/* D9BC4 801434C4 18A00002 */ blez $a1, .L801434D0
/* D9BC8 801434C8 24030800 */ addiu $v1, $zero, 0x800
/* D9BCC 801434CC 24A307FF */ addiu $v1, $a1, 0x7ff
.L801434D0:
/* D9BD0 801434D0 8FAD02B8 */ lw $t5, 0x2b8($sp)
/* D9BD4 801434D4 02CD0018 */ mult $s6, $t5
/* D9BD8 801434D8 00007012 */ mflo $t6
/* D9BDC 801434DC 25C20001 */ addiu $v0, $t6, 1
/* D9BE0 801434E0 00021043 */ sra $v0, $v0, 1
/* D9BE4 801434E4 2444FFFF */ addiu $a0, $v0, -1
/* D9BE8 801434E8 28820800 */ slti $v0, $a0, 0x800
/* D9BEC 801434EC 50400001 */ beql $v0, $zero, .L801434F4
/* D9BF0 801434F0 240407FF */ addiu $a0, $zero, 0x7ff
.L801434F4:
/* D9BF4 801434F4 30820FFF */ andi $v0, $a0, 0xfff
/* D9BF8 801434F8 00021300 */ sll $v0, $v0, 0xc
/* D9BFC 801434FC 18A0000D */ blez $a1, .L80143534
/* D9C00 80143500 00482025 */ or $a0, $v0, $t0
/* D9C04 80143504 14A00002 */ bnez $a1, .L80143510
/* D9C08 80143508 0065001A */ div $zero, $v1, $a1
/* D9C0C 8014350C 0007000D */ break 7
.L80143510:
/* D9C10 80143510 2401FFFF */ addiu $at, $zero, -1
/* D9C14 80143514 14A10004 */ bne $a1, $at, .L80143528
/* D9C18 80143518 3C018000 */ lui $at, 0x8000
/* D9C1C 8014351C 14610002 */ bne $v1, $at, .L80143528
/* D9C20 80143520 00000000 */ nop
/* D9C24 80143524 0006000D */ break 6
.L80143528:
/* D9C28 80143528 00001012 */ mflo $v0
/* D9C2C 8014352C 08050D4E */ j .L80143538
/* D9C30 80143530 30420FFF */ andi $v0, $v0, 0xfff
.L80143534:
/* D9C34 80143534 30620FFF */ andi $v0, $v1, 0xfff
.L80143538:
/* D9C38 80143538 00821025 */ or $v0, $a0, $v0
/* D9C3C 8014353C ACC20014 */ sw $v0, 0x14($a2)
/* D9C40 80143540 3C06E300 */ lui $a2, 0xe300
/* D9C44 80143544 34C61001 */ ori $a2, $a2, 0x1001
/* D9C48 80143548 3C070100 */ lui $a3, 0x100
/* D9C4C 8014354C 34E74008 */ ori $a3, $a3, 0x4008
/* D9C50 80143550 3C080500 */ lui $t0, 0x500
/* D9C54 80143554 35080204 */ ori $t0, $t0, 0x204
/* D9C58 80143558 3C090500 */ lui $t1, 0x500
/* D9C5C 8014355C 3C05800A */ lui $a1, %hi(gMainGfxPos)
/* D9C60 80143560 24A5A66C */ addiu $a1, $a1, %lo(gMainGfxPos)
/* D9C64 80143564 35290406 */ ori $t1, $t1, 0x406
/* D9C68 80143568 8CA40000 */ lw $a0, ($a1)
/* D9C6C 8014356C 3C02E700 */ lui $v0, 0xe700
/* D9C70 80143570 0080182D */ daddu $v1, $a0, $zero
/* D9C74 80143574 24840008 */ addiu $a0, $a0, 8
/* D9C78 80143578 ACA40000 */ sw $a0, ($a1)
/* D9C7C 8014357C AC620000 */ sw $v0, ($v1)
/* D9C80 80143580 24820008 */ addiu $v0, $a0, 8
/* D9C84 80143584 AC600004 */ sw $zero, 4($v1)
/* D9C88 80143588 ACA20000 */ sw $v0, ($a1)
/* D9C8C 8014358C 26C20007 */ addiu $v0, $s6, 7
/* D9C90 80143590 000210C3 */ sra $v0, $v0, 3
/* D9C94 80143594 304201FF */ andi $v0, $v0, 0x1ff
/* D9C98 80143598 00021240 */ sll $v0, $v0, 9
/* D9C9C 8014359C 3C03F568 */ lui $v1, 0xf568
/* D9CA0 801435A0 00431025 */ or $v0, $v0, $v1
/* D9CA4 801435A4 AC820000 */ sw $v0, ($a0)
/* D9CA8 801435A8 24820010 */ addiu $v0, $a0, 0x10
/* D9CAC 801435AC AC800004 */ sw $zero, 4($a0)
/* D9CB0 801435B0 ACA20000 */ sw $v0, ($a1)
/* D9CB4 801435B4 3C02F200 */ lui $v0, 0xf200
/* D9CB8 801435B8 26C3FFFF */ addiu $v1, $s6, -1
/* D9CBC 801435BC 00031880 */ sll $v1, $v1, 2
/* D9CC0 801435C0 30630FFF */ andi $v1, $v1, 0xfff
/* D9CC4 801435C4 AC820008 */ sw $v0, 8($a0)
/* D9CC8 801435C8 8FAD02B8 */ lw $t5, 0x2b8($sp)
/* D9CCC 801435CC 00031B00 */ sll $v1, $v1, 0xc
/* D9CD0 801435D0 25A2FFFF */ addiu $v0, $t5, -1
/* D9CD4 801435D4 00021080 */ sll $v0, $v0, 2
/* D9CD8 801435D8 30420FFF */ andi $v0, $v0, 0xfff
/* D9CDC 801435DC 00621825 */ or $v1, $v1, $v0
/* D9CE0 801435E0 24820018 */ addiu $v0, $a0, 0x18
/* D9CE4 801435E4 AC83000C */ sw $v1, 0xc($a0)
/* D9CE8 801435E8 ACA20000 */ sw $v0, ($a1)
/* D9CEC 801435EC 3C028016 */ lui $v0, %hi(D_80159180)
/* D9CF0 801435F0 8C429180 */ lw $v0, %lo(D_80159180)($v0)
/* D9CF4 801435F4 24830020 */ addiu $v1, $a0, 0x20
/* D9CF8 801435F8 AC860010 */ sw $a2, 0x10($a0)
/* D9CFC 801435FC AC800014 */ sw $zero, 0x14($a0)
/* D9D00 80143600 ACA30000 */ sw $v1, ($a1)
/* D9D04 80143604 AC870018 */ sw $a3, 0x18($a0)
/* D9D08 80143608 00021180 */ sll $v0, $v0, 6
/* D9D0C 8014360C 24420030 */ addiu $v0, $v0, 0x30
/* D9D10 80143610 03C21021 */ addu $v0, $fp, $v0
/* D9D14 80143614 AC82001C */ sw $v0, 0x1c($a0)
/* D9D18 80143618 24820028 */ addiu $v0, $a0, 0x28
/* D9D1C 8014361C ACA20000 */ sw $v0, ($a1)
/* D9D20 80143620 24820030 */ addiu $v0, $a0, 0x30
/* D9D24 80143624 AC880020 */ sw $t0, 0x20($a0)
/* D9D28 80143628 AC800024 */ sw $zero, 0x24($a0)
/* D9D2C 8014362C ACA20000 */ sw $v0, ($a1)
/* D9D30 80143630 AC890028 */ sw $t1, 0x28($a0)
/* D9D34 80143634 AC80002C */ sw $zero, 0x2c($a0)
/* D9D38 80143638 3C03D838 */ lui $v1, 0xd838
.L8014363C:
/* D9D3C 8014363C 3C04800A */ lui $a0, %hi(gMainGfxPos)
/* D9D40 80143640 2484A66C */ addiu $a0, $a0, %lo(gMainGfxPos)
/* D9D44 80143644 8C820000 */ lw $v0, ($a0)
/* D9D48 80143648 34630002 */ ori $v1, $v1, 2
/* D9D4C 8014364C 0040282D */ daddu $a1, $v0, $zero
/* D9D50 80143650 24420008 */ addiu $v0, $v0, 8
/* D9D54 80143654 AC820000 */ sw $v0, ($a0)
/* D9D58 80143658 ACA30000 */ sw $v1, ($a1)
/* D9D5C 8014365C 24030040 */ addiu $v1, $zero, 0x40
/* D9D60 80143660 ACA30004 */ sw $v1, 4($a1)
/* D9D64 80143664 24430008 */ addiu $v1, $v0, 8
/* D9D68 80143668 AC830000 */ sw $v1, ($a0)
/* D9D6C 8014366C 3C03E700 */ lui $v1, 0xe700
/* D9D70 80143670 AC430000 */ sw $v1, ($v0)
/* D9D74 80143674 AC400004 */ sw $zero, 4($v0)
/* D9D78 80143678 8FBF02EC */ lw $ra, 0x2ec($sp)
/* D9D7C 8014367C 8FBE02E8 */ lw $fp, 0x2e8($sp)
/* D9D80 80143680 8FB702E4 */ lw $s7, 0x2e4($sp)
/* D9D84 80143684 8FB602E0 */ lw $s6, 0x2e0($sp)
/* D9D88 80143688 8FB502DC */ lw $s5, 0x2dc($sp)
/* D9D8C 8014368C 8FB402D8 */ lw $s4, 0x2d8($sp)
/* D9D90 80143690 8FB302D4 */ lw $s3, 0x2d4($sp)
/* D9D94 80143694 8FB202D0 */ lw $s2, 0x2d0($sp)
/* D9D98 80143698 8FB102CC */ lw $s1, 0x2cc($sp)
/* D9D9C 8014369C 8FB002C8 */ lw $s0, 0x2c8($sp)
/* D9DA0 801436A0 D7B80300 */ ldc1 $f24, 0x300($sp)
/* D9DA4 801436A4 D7B602F8 */ ldc1 $f22, 0x2f8($sp)
/* D9DA8 801436A8 D7B402F0 */ ldc1 $f20, 0x2f0($sp)
/* D9DAC 801436AC 03E00008 */ jr $ra
/* D9DB0 801436B0 27BD0308 */ addiu $sp, $sp, 0x308