sprite_shading_profiles & obk_07 (#859)

* obk_07 funcs

* 2 mo

* sprite_shading_profiles

* tiny clean

* PR comments
This commit is contained in:
Ethan Roseman 2022-11-15 23:55:59 +09:00 committed by GitHub
parent 57c03b158a
commit f56df3d9f7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
44 changed files with 751 additions and 913 deletions

View File

@ -30,7 +30,9 @@
"./tools"
],
"python.analysis.extraPaths": [
"./tools"
"./tools",
"./tools/build/sprite",
"./tools/splat"
],
"[c]": {
"editor.wordSeparators": "`~!@#%^&*()-=+[{]}\\|;:'\",.<>/?", // no $, for scripts

View File

@ -2802,98 +2802,6 @@ typedef enum ScreenTransition {
TRANSITION_16 = 16,
} ScreenTransition;
enum ShadingProfiles {
SHADING_NONE = 0xFFFFFFFF,
SHADING_TIK_01 = 0x00000000,
SHADING_TIK_02 = 0x00000001,
SHADING_TIK_03 = 0x00000002,
SHADING_TIK_04 = 0x00000003,
SHADING_TIK_05 = 0x00000004,
SHADING_TIK_06 = 0x00000005,
SHADING_TIK_07 = 0x00000006,
SHADING_TIK_08 = 0x00000007,
SHADING_TIK_09 = 0x00000008,
SHADING_TIK_10 = 0x00000009,
SHADING_TIK_12 = 0x0000000A,
SHADING_TIK_14 = 0x0000000B,
SHADING_TIK_15 = 0x0000000C,
SHADING_TIK_18 = 0x0000000D,
SHADING_TIK_20 = 0x0000000E,
SHADING_TIK_21 = 0x0000000F,
SHADING_TIK_22 = 0x00000010,
SHADING_TIK_23 = 0x00000011,
SHADING_TIK_24 = 0x00000012,
SHADING_TIK_25 = 0x00000013,
SHADING_KMR_30 = 0x00010000,
SHADING_ISK_03 = 0x00020000,
SHADING_ISK_04 = 0x00020001,
SHADING_ISK_05 = 0x00020002,
SHADING_ISK_06 = 0x00020003,
SHADING_ISK_07 = 0x00020004,
SHADING_ISK_08 = 0x00020005,
SHADING_ISK_09 = 0x00020006,
SHADING_ISK_10 = 0x00020007,
SHADING_ISK_11 = 0x00020008,
SHADING_ISK_12 = 0x00020009,
SHADING_ISK_13 = 0x0002000A,
SHADING_ISK_14 = 0x0002000B,
SHADING_ISK_16 = 0x0002000C,
SHADING_ISK_18 = 0x0002000E,
SHADING_ISK_19 = 0x0002000F,
SHADING_HOS_01 = 0x00030000,
SHADING_OSR_02 = 0x00040000,
SHADING_KKJ_10 = 0x00050000,
SHADING_KKJ_11 = 0x00050001,
SHADING_KKJ_12 = 0x00050002,
SHADING_KKJ_13 = 0x00050003,
SHADING_KKJ_17 = 0x00050004,
SHADING_KKJ_20 = 0x00050005,
SHADING_KKJ_22 = 0x00050006,
SHADING_KKJ_23 = 0x00050007,
SHADING_KKJ_24 = 0x00050008,
SHADING_KKJ_25 = 0x00050009,
SHADING_KKJ_26 = 0x0005000A,
SHADING_KKJ_27 = 0x0005000B,
SHADING_JAN_17 = 0x00060000,
SHADING_JAN_19 = 0x00060001,
SHADING_MIM_01 = 0x00070000,
SHADING_MIM_02 = 0x00070001,
SHADING_MIM_03 = 0x00070002,
SHADING_MIM_04 = 0x00070003,
SHADING_MIM_05 = 0x00070004,
SHADING_MIM_06 = 0x00070005,
SHADING_MIM_07 = 0x00070006,
SHADING_MIM_08 = 0x00070007,
SHADING_MIM_09 = 0x00070008,
SHADING_MIM_11 = 0x00070009,
SHADING_MIM_12 = 0x0007000A,
SHADING_MGM_01 = 0x00080000,
SHADING_MGM_03 = 0x00080000,
SHADING_ARN_09 = 0x00080000,
SHADING_ARN_10 = 0x00080001,
SHADING_ARN_11 = 0x00080002,
SHADING_ARN_12 = 0x00080003,
SHADING_ARN_13 = 0x00080004,
SHADING_DGB_06 = 0x00090000,
SHADING_KZN_01 = 0x000A0000,
SHADING_KZN_02 = 0x000A0001,
SHADING_KZN_03 = 0x000A0002,
SHADING_KZN_04 = 0x000A0003,
SHADING_KZN_05 = 0x000A0004,
SHADING_KZN_06 = 0x000A0005,
SHADING_KZN_07 = 0x000A0006,
SHADING_KZN_08 = 0x000A0007,
SHADING_KZN_09 = 0x000A0008,
SHADING_KZN_10 = 0x000A0009,
SHADING_KZN_11 = 0x000A000A,
SHADING_KZN_17 = 0x000A000B,
SHADING_KZN_18 = 0x000A000C,
SHADING_KZN_19 = 0x000A000D,
SHADING_KZN_20 = 0x000A000E,
SHADING_KZN_22 = 0x000A000F,
SHADING_KZN_23 = 0x000A0010
};
enum DoorSounds {
DOOR_SOUNDS_BASIC = 0,
DOOR_SOUNDS_METAL = 1,
@ -2904,6 +2812,10 @@ enum DoorSounds {
DOOR_SOUNDS_UNUSED = 6,
};
#ifdef VERSION_US
#include "sprite/sprite_shading_profiles.h"
#endif
enum ActionStates {
ACTION_STATE_IDLE = 0x00000000,
ACTION_STATE_WALK = 0x00000001,

View File

@ -70,6 +70,7 @@ ApiStatus func_80242B0C_825DCC(Evt* script, s32 isInitialCall) {
}
extern s32 mac_02_D_8024E738[];
extern s32 mac_02_D_8024E8A8[];
ApiStatus func_80242BA8_825E68(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
@ -113,17 +114,12 @@ ApiStatus func_80243088_826348(Evt* script, s32 isInitialCall) {
}
ApiStatus func_802430D0_826390(Evt* script, s32 isInitialCall) {
s32 i = 90;
s32* ptr = &D_8024EA10;
s32 val = 218;
s32 i;
while (i >= 0) {
*ptr-- = val;
val--;
i--;
for (i = 0; i < 91; i++) {
mac_02_D_8024E8A8[i] = i + 128;
}
D_8024EA14 = 0;
mac_02_D_8024E8A8[i] = 0;
return ApiStatus_DONE2;
}

View File

@ -1,57 +1,339 @@
#include "obk_07.h"
#include "hud_element.h"
#include "battle/action_cmd.h"
INCLUDE_ASM(s32, "world/area_obk/obk_07/BCF0F0", func_80240500_BCF0F0);
typedef struct UnkObk07 {
/* 0x000 */ s32 unk_00;
/* 0x004 */ s32 unk_04;
/* 0x008 */ s32 unk_08;
/* 0x00C */ s32 unk_0C; // song name
/* 0x010 */ s32 unk_10;
/* 0x014 */ s32 unk_14;
/* 0x018 */ s32 unk_18;
/* 0x01C */ s32 unk_1C;
/* 0x020 */ s32 unk_20;
/* 0x024 */ s32 unk_24;
/* 0x028 */ s32 unk_28;
/* 0x02C */ s32 unk_2C; // entity id
/* 0x030 */ s32 unk_30;
/* 0x034 */ s32 unk_34; // x
/* 0x038 */ s32 unk_38; // y
/* 0x03C */ s32 unk_3C; // entity id
/* 0x040 */ s32 unk_40; // entity id
/* 0x044 */ s32 unk_44; // entity id
/* 0x048 */ char unk_48[0x4];
/* 0x04C */ s32 unk_4C;
/* 0x050 */ s32 unk_50;
/* 0x054 */ s32 unk_54;
/* 0x058 */ s32 unk_58[89];
/* 0x1BC */ s32 unk_1BC;
/* 0x1C0 */ s32 unk_1C0;
/* 0x1C4 */ f32 unk_1C4;
/* 0x1C8 */ f32 unk_1C8;
/* 0x1CC */ f32 unk_1CC;
/* 0x1D0 */ f32 unk_1D0;
/* 0x1D4 */ s32 unk_1D4;
/* 0x1D8 */ s32 unk_1D8;
/* 0x1DC */ s8 unk_1DC;
/* 0x1DD */ char unk_1DD[0x3];
} UnkObk07; // size = 0x1E0
INCLUDE_ASM(s32, "world/area_obk/obk_07/BCF0F0", func_80240540_BCF130);
void func_80240A6C_BCF65C(void);
ApiStatus func_80240500_BCF0F0(Evt* script, s32 isInitialCall) {
evt_set_variable(script, MapVar(6), (s32) heap_malloc(sizeof(UnkObk07)));
return ApiStatus_DONE2;
}
UnkObk07* func_80240540_BCF130(void) {
return (UnkObk07*) evt_get_variable(NULL, MapVar(6));
}
void func_80240564_BCF154(s32, s32, s32);
INCLUDE_ASM(s32, "world/area_obk/obk_07/BCF0F0", func_80240564_BCF154);
INCLUDE_ASM(s32, "world/area_obk/obk_07/BCF0F0", func_80240A10_BCF600);
void func_80240A10_BCF600(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
func_80240540_BCF130()->unk_00 = arg3;
func_80240564_BCF154(arg0, arg1, arg2);
}
INCLUDE_ASM(s32, "world/area_obk/obk_07/BCF0F0", func_80240A6C_BCF65C);
INCLUDE_ASM(s32, "world/area_obk/obk_07/BCF0F0", func_80240EF8_BCFAE8);
ApiStatus func_80240EF8_BCFAE8(Evt* script, s32 isInitialCall) {
UnkObk07* temp_s0 = func_80240540_BCF130();
s32 temp_f6 = script->varTable[0] / 1000;
INCLUDE_ASM(s32, "world/area_obk/obk_07/BCF0F0", func_802410C0_BCFCB0);
temp_f6 = sin_rad(DEG_TO_RAD((temp_f6 * 90) / 50)) * 50.0f;
temp_s0->unk_1C4 = (((100 - temp_f6) * 0.25) / 100.0) + ((2.0 * temp_f6) / 100.0);
func_80055D38(temp_s0->unk_0C, temp_s0->unk_1C4);
get_script_by_id(temp_s0->unk_4C);
set_script_timescale(script, temp_s0->unk_1C4 * 3.0f);
get_script_by_id(temp_s0->unk_50);
set_script_timescale(script, temp_s0->unk_1C4 * 5.0f);
get_script_by_id(temp_s0->unk_54);
set_script_timescale(script, temp_s0->unk_1C4 * 5.0f);
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "world/area_obk/obk_07/BCF0F0", func_80241130_BCFD20);
void func_802410C0_BCFCB0(void) {
UnkObk07* temp_v0 = func_80240540_BCF130();
s32 x, y;
s32 id;
INCLUDE_ASM(s32, "world/area_obk/obk_07/BCF0F0", func_80241168_BCFD58);
hud_element_draw_clipped(temp_v0->unk_3C);
id = temp_v0->unk_40;
hud_element_draw_clipped(id);
hud_element_get_render_pos(id, &x, &y);
func_80240A10_BCF600(x, y, temp_v0->unk_04, 2);
hud_element_draw_clipped(temp_v0->unk_44);
}
INCLUDE_ASM(s32, "world/area_obk/obk_07/BCF0F0", func_8024130C_BCFEFC);
extern s32 D_80243090_BD1C80[];
extern s32 D_80243098_BD1C88[];
INCLUDE_ASM(s32, "world/area_obk/obk_07/BCF0F0", func_80241358_BCFF48);
ApiStatus func_80241130_BCFD20(Evt* script, s32 isInitialCall) {
s32 outVal = 0;
s32* it = D_80243090_BD1C80;
INCLUDE_ASM(s32, "world/area_obk/obk_07/BCF0F0", func_802413D0_BCFFC0);
while (TRUE) {
if (*it == 0) {
outVal = -1;
} else if (*it++ != script->varTable[0]) {
outVal++;
continue;
}
break;
}
script->varTable[0] = outVal;
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "world/area_obk/obk_07/BCF0F0", func_8024143C_BD002C);
ApiStatus func_80241168_BCFD58(Evt* script, s32 isInitialCall) {
UnkObk07* temp_s1 = func_80240540_BCF130();
s32 id;
s32 i;
INCLUDE_ASM(s32, "world/area_obk/obk_07/BCF0F0", func_8024146C_BD005C);
gOverrideFlags |= GLOBAL_OVERRIDES_10;
temp_s1->unk_2C = create_generic_entity_frontUI(func_80240A6C_BCF65C, func_802410C0_BCFCB0);
temp_s1->unk_30 = 0;
temp_s1->unk_04 = 0;
temp_s1->unk_08 = 0;
temp_s1->unk_10 = 0;
temp_s1->unk_14 = 20;
temp_s1->unk_18 = 40;
temp_s1->unk_1C = 60;
temp_s1->unk_20 = 80;
temp_s1->unk_24 = 100;
temp_s1->unk_28 = 5;
INCLUDE_ASM(s32, "world/area_obk/obk_07/BCF0F0", func_802414B4_BD00A4);
for (i = 0; i <= 89; i++) {
temp_s1->unk_58[i] = 0;
}
INCLUDE_ASM(s32, "world/area_obk/obk_07/BCF0F0", func_80241518_BD0108);
temp_s1->unk_34 = -48;
temp_s1->unk_1C0 = 0;
temp_s1->unk_1C8 = 0;
temp_s1->unk_1CC = 0;
temp_s1->unk_38 = 64;
temp_s1->unk_1C4 = 1.0f;
temp_s1->unk_1D0 = 1.0f;
INCLUDE_ASM(s32, "world/area_obk/obk_07/BCF0F0", func_8024157C_BD016C);
temp_s1->unk_3C = id = hud_element_create(&HES_AButton);
hud_element_set_render_pos(id, temp_s1->unk_34, temp_s1->unk_38);
hud_element_set_render_depth(id, 0);
hud_element_set_flags(id, HUD_ELEMENT_FLAGS_80 | HUD_ELEMENT_FLAGS_DISABLED);
INCLUDE_ASM(s32, "world/area_obk/obk_07/BCF0F0", func_802415B8_BD01A8);
temp_s1->unk_40 = id = hud_element_create(&HES_BlueMeter);
hud_element_set_render_pos(id, temp_s1->unk_34, temp_s1->unk_38 + 28);
hud_element_set_render_depth(id, 0);
hud_element_set_flags(id, HUD_ELEMENT_FLAGS_80 | HUD_ELEMENT_FLAGS_DISABLED);
INCLUDE_ASM(s32, "world/area_obk/obk_07/BCF0F0", func_802415F4_BD01E4);
temp_s1->unk_44 = id = hud_element_create(&HES_RunAwayOK);
hud_element_set_render_pos(id, temp_s1->unk_34, temp_s1->unk_38 + 28);
hud_element_set_render_depth(id, 0);
hud_element_set_flags(id, HUD_ELEMENT_FLAGS_80 | HUD_ELEMENT_FLAGS_DISABLED);
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "world/area_obk/obk_07/BCF0F0", func_80241630_BD0220);
ApiStatus func_8024130C_BCFEFC(Evt* script) {
bgm_set_song(0, D_80243098_BD1C88[evt_get_variable(script, GameByte(182))], 0, 500, 8);
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "world/area_obk/obk_07/BCF0F0", func_80241674_BD0264);
ApiStatus func_80241358_BCFF48(Evt* script, s32 isInitialCall) {
UnkObk07* temp_v0 = func_80240540_BCF130();
INCLUDE_ASM(s32, "world/area_obk/obk_07/BCF0F0", func_802416F8_BD02E8);
temp_v0->unk_30 = 10;
temp_v0->unk_4C = evt_get_variable(NULL, MapVar(8));
temp_v0->unk_50 = evt_get_variable(NULL, MapVar(9));
temp_v0->unk_54 = evt_get_variable(NULL, MapVar(10));
temp_v0->unk_0C = gMusicSettings->songName;
return ApiStatus_DONE2;
}
ApiStatus func_802413D0_BCFFC0(Evt* script, s32 isInitialCall) {
UnkObk07* temp_v0 = func_80240540_BCF130();
temp_v0->unk_30 = -1;
gOverrideFlags &= ~GLOBAL_OVERRIDES_10;
hud_element_free(temp_v0->unk_3C);
hud_element_free(temp_v0->unk_40);
hud_element_free(temp_v0->unk_44);
free_generic_entity(temp_v0->unk_2C);
return ApiStatus_DONE2;
}
ApiStatus func_8024143C_BD002C(Evt* script, s32 isInitialCall) {
func_80240540_BCF130();
script->varTable[3] = 150;
return ApiStatus_DONE2;
}
ApiStatus func_8024146C_BD005C(Evt* script, s32 isInitialCall) {
UnkObk07* temp_s0 = func_80240540_BCF130();
temp_s0->unk_1D0 = evt_get_float_variable(script, LocalVar(2));
return ApiStatus_DONE2;
}
ApiStatus func_802414B4_BD00A4(Evt* script, s32 isInitialCall) {
UnkObk07* temp_s1 = func_80240540_BCF130();
temp_s1->unk_1C8 = clamp_angle(evt_get_float_variable(script, LocalVar(0)));
evt_set_float_variable(script, LocalVar(0), temp_s1->unk_1C8);
return ApiStatus_DONE2;
}
ApiStatus func_80241518_BD0108(Evt* script, s32 isInitialCall) {
UnkObk07* temp_s1 = func_80240540_BCF130();
temp_s1->unk_1CC = clamp_angle(evt_get_float_variable(script, LocalVar(0)));
evt_set_float_variable(script, LocalVar(0), temp_s1->unk_1CC);
return ApiStatus_DONE2;
}
ApiStatus func_8024157C_BD016C(Evt* script, s32 isInitialCall) {
evt_set_float_variable(script, LocalVar(0), func_80240540_BCF130()->unk_1D0);
return ApiStatus_DONE2;
}
ApiStatus func_802415B8_BD01A8(Evt* script, s32 isInitialCall) {
evt_set_float_variable(script, LocalVar(0), func_80240540_BCF130()->unk_1C8);
return ApiStatus_DONE2;
}
ApiStatus func_802415F4_BD01E4(Evt* script, s32 isInitialCall) {
evt_set_float_variable(script, LocalVar(0), func_80240540_BCF130()->unk_1CC);
return ApiStatus_DONE2;
}
ApiStatus func_80241630_BD0220(Evt* script, s32 isInitialCall) {
evt_set_float_variable(script, LocalVar(1), evt_get_float_variable(script, LocalVar(0)));
return ApiStatus_DONE2;
}
ApiStatus func_80241674_BD0264(Evt* script, s32 isInitialCall) {
f32 lv0 = evt_get_float_variable(script, LocalVar(0));
f32 lv1 = evt_get_float_variable(script, LocalVar(1));
if (lv1 <= 1.0f && lv0 >= 1.0f) {
script->varTable[2] = 1;
} else {
script->varTable[2] = 0;
}
return ApiStatus_DONE2;
}
ApiStatus func_802416F8_BD02E8(Evt* script, s32 isInitialCall) {
f32 lv0 = evt_get_float_variable(script, LocalVar(0));
f32 lv1 = evt_get_float_variable(script, LocalVar(1));
if (lv1 <= 360.0f && lv0 <= 100.0f) {
script->varTable[2] = 1;
} else {
script->varTable[2] = 0;
}
return ApiStatus_DONE2;
}
ApiStatus N(80241788_BD0378)(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "world/area_obk/obk_07/BCF0F0", func_80241790_BD0380);
#ifdef NON_MATCHING // various issues
ApiStatus func_80241790_BD0380(Evt* script) {
UnkObk07* temp_v0 = func_80240540_BCF130();
s32 temp_v0_2 = abs(temp_v0->unk_04 - 50);
s32 var_a0;
s32 var_v0;
s32 var_v1;
INCLUDE_ASM(s32, "world/area_obk/obk_07/BCF0F0", func_80241898_BD0488);
var_v1 = -temp_v0_2;
if (temp_v0_2 >= 10) {
var_v0 = temp_v0_2 * 4;
} else {
goto moved;
}
after:
temp_v0->unk_1D4 += (var_v0 + var_v1) * 2;
if (temp_v0->unk_04 != 0) {
temp_v0->unk_1DC = 1;
}
if (temp_v0->unk_1DC == 1) {
var_v1 = temp_v0->unk_04;
if (var_v1 <= 0) {
temp_v0->unk_1D8++;
} else {
temp_v0->unk_1D8 = 0;
}
}
if (FALSE) {
moved:
var_v1 = 10;
var_v1 -= temp_v0_2;
var_v0 = var_v1 * 24;
goto after;
}
if (temp_v0->unk_1D4 > 10000) {
temp_v0->unk_1D4 = 10000;
}
if (temp_v0->unk_1D4 < 0) {
temp_v0->unk_1D4 = 0;
}
script->varTable[0] = 0;
if (temp_v0->unk_1D8 >= 46 || (gGameStatusPtr->pressedButtons[0] & B_BUTTON)) {
script->varTable[0] = 1;
return ApiStatus_DONE2;
}
return ApiStatus_DONE2;
}
#else
INCLUDE_ASM(s32, "world/area_obk/obk_07/BCF0F0", func_80241790_BD0380);
#endif
ApiStatus func_80241898_BD0488(Evt* script, s32 isInitialCall) {
UnkObk07* temp_v0 = func_80240540_BCF130();
temp_v0->unk_1D4 = 0;
temp_v0->unk_1D8 = 0;
temp_v0->unk_1DC = 0;
temp_v0->unk_04 = 0;
temp_v0->unk_30 = 0;
script->varTable[10] = 0;
script->varTable[11] = 0;
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "world/area_obk/obk_07/BCF0F0", func_802418E0_BD04D0);
INCLUDE_ASM(s32, "world/area_obk/obk_07/BCF0F0", func_80241B50_BD0740);
ApiStatus func_80241B50_BD0740(Evt* script, s32 isInitialCall) {
Npc* npc = get_npc_unsafe(script->owner2.npcID);
npc->alpha = 180;
npc->renderMode = RENDER_MODE_SURFACE_XLU_LAYER2;
return ApiStatus_DONE2;
}

View File

@ -4,7 +4,15 @@
INCLUDE_ASM(s32, "world/area_obk/obk_08/BD3870", func_802403DC_BD3C4C);
INCLUDE_ASM(s32, "world/area_obk/obk_08/BD3870", func_802404F0_BD3D60);
ApiStatus func_802404F0_BD3D60(Evt* script, s32 isInitialCall) {
UnkEntityStruct* temp_v0 = (UnkEntityStruct*) evt_get_variable(NULL, MapVar(10));
func_8013A854(temp_v0->foldID);
free_generic_entity(temp_v0->entityID);
heap_free(temp_v0);
evt_set_variable(script, MapVar(10), NULL);
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "world/area_obk/obk_08/BD3870", func_8024055C_BD3DCC);

View File

@ -27,6 +27,7 @@ ApiStatus N(ItemChoice_SaveSelected)(Evt* script, s32 isInitialCall) {
}
extern s32 D_80245650[];
extern s32 D_802457C0[];
ApiStatus func_80242204_DB44C4(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
@ -78,4 +79,13 @@ ApiStatus func_80242328_DB45E8(Evt* script, s32 isInitialCall) {
return ApiStatus_BLOCK;
}
INCLUDE_ASM(s32, "world/area_omo/omo_05/DB22C0", func_802423C8_DB4688);
ApiStatus func_802423C8_DB4688(Evt* script, s32 isInitialCall) {
s32 i;
for (i = 0; i < 91; i++) {
D_802457C0[i] = i + 128;
}
D_802457C0[i] = 0;
return ApiStatus_DONE2;
}

View File

@ -8,7 +8,7 @@ INCLUDE_ASM(s32, "world/area_pra/pra_31/D7F270", func_80240894_D7F5F4);
INCLUDE_ASM(s32, "world/area_pra/pra_31/D7F270", func_80240A3C_D7F79C);
INCLUDE_ASM(s32, "world/area_pra/pra_31/D7F270", delete_actor_D7F91C);
INCLUDE_ASM(s32, "world/area_pra/pra_31/D7F270", func_80240BBC_D7F91C);
INCLUDE_ASM(s32, "world/area_pra/pra_31/D7F270", func_80240C70_D7F9D0);

View File

@ -13,7 +13,8 @@ DO_SHA1_CHECK = True
# Paths:
ROOT = Path(__file__).parent.parent.parent
BUILD_TOOLS = (ROOT / "tools" / "build").relative_to(ROOT)
TOOLS = (ROOT / "tools").relative_to(ROOT)
BUILD_TOOLS = TOOLS / "build"
YAY0_COMPRESS_TOOL = f"{BUILD_TOOLS}/yay0/Yay0compress"
CRC_TOOL = f"{BUILD_TOOLS}/rom/n64crc"
@ -160,17 +161,17 @@ def write_ninja_rules(ninja: ninja_syntax.Writer, cpp: str, cppflags: str, extra
ninja.rule("sprite",
description="sprite $sprite_name",
command=f"$python {BUILD_TOOLS}/sprites/sprite.py $out $sprite_dir",
command=f"$python {BUILD_TOOLS}/sprite/sprite.py $out $sprite_dir",
)
ninja.rule("sprite_combine",
description="sprite_combine $in",
command=f"$python {BUILD_TOOLS}/sprites/combine.py $out $in",
command=f"$python {BUILD_TOOLS}/sprite/combine.py $out $in",
)
ninja.rule("sprite_header",
description="sprite_header $sprite_name",
command=f"$python {BUILD_TOOLS}/sprites/header.py $out $sprite_dir $sprite_id",
command=f"$python {BUILD_TOOLS}/sprite/header.py $out $sprite_dir $sprite_id",
)
ninja.rule("msg",
@ -199,6 +200,8 @@ def write_ninja_rules(ninja: ninja_syntax.Writer, cpp: str, cppflags: str, extra
ninja.rule("pm_charset_palettes", command=f"$python {BUILD_TOOLS}/pm_charset_palettes.py $out $in")
ninja.rule("pm_sprite_shading_profiles", command=f"$python {BUILD_TOOLS}/sprite/sprite_shading_profiles.py $in $out $header_path")
with Path("tools/permuter_settings.toml").open("w") as f:
f.write(f"compiler_command = \"{cc} {CPPFLAGS.replace('$version', 'us')} {cflags} -DPERMUTER -fforce-addr\"\n")
f.write(f"assembler_command = \"{cross}as -EB -march=vr4300 -mtune=vr4300 -Iinclude\"\n")
@ -238,7 +241,7 @@ class Configure:
modes = ["ld"]
if assets:
modes.extend(["bin", "Yay0", "img", "vtx", "gfx", "pm_map_data", "pm_msg", "pm_npc_sprites", "pm_charset",
"pm_charset_palettes", "pm_effect_loads", "pm_effect_shims"])
"pm_charset_palettes", "pm_effect_loads", "pm_effect_shims", "pm_sprite_shading_profiles"])
if code:
modes.extend(["code", "c", "data", "rodata"])
@ -313,7 +316,7 @@ class Configure:
built_objects = set()
generated_headers = []
def build(object_paths: Union[Path, List[Path]], src_paths: List[Path], task: str, variables: Dict[str, str] = {}):
def build(object_paths: Union[Path, List[Path]], src_paths: List[Path], task: str, variables: Dict[str, str] = {}, implicit_outputs: List[str] = []):
if not isinstance(object_paths, list):
object_paths = [object_paths]
@ -348,6 +351,7 @@ class Configure:
variables={ "version": self.version, **variables },
implicit=implicit,
order_only=order_only,
implicit_outputs=implicit_outputs
)
# Build objects
@ -646,6 +650,12 @@ class Configure:
build(entry.object_path, [entry.object_path.with_suffix("")], "bin")
elif seg.type in ["pm_effect_loads", "pm_effect_shims"]:
build(entry.object_path, entry.src_paths, "as")
elif seg.type == "pm_sprite_shading_profiles":
header_path = str(self.build_path() / "include/sprite/sprite_shading_profiles.h")
build(entry.object_path.with_suffix(""), entry.src_paths, "pm_sprite_shading_profiles", implicit_outputs=[header_path], variables={
"header_path": header_path,
})
build(entry.object_path, [entry.object_path.with_suffix("")], "bin")
elif seg.type == "linker" or seg.type == "linker_offset":
pass
else:

View File

View File

@ -0,0 +1,167 @@
#!/usr/bin/env python3
from dataclasses import dataclass, field
from enum import Enum
import argparse
import json
from pathlib import Path
import struct
from typing import List, Literal
class LightMode(Enum):
UNIFORM = 0
LINEAR = 4
QUADRATIC = 8
@dataclass
class Light:
flags: int
rgb: List[int]
pos: List[int]
falloff: float
def to_json(self):
d = self.__dict__
d["mode"] = LightMode(d["flags"] - 1).name.lower()
del d["flags"]
return d
@dataclass
class SpriteShadingProfile:
name: str
ambient: List[int]
power: int
lights: List[Light] = field(default_factory=lambda: [])
def to_json(self):
d = self.__dict__
d["lights"] = [light.to_json() for light in self.lights]
return d
@dataclass
class SpriteShadingGroup:
area: str
profiles: List[SpriteShadingProfile] = field(default_factory=lambda: [])
def to_json(self):
d = self.__dict__
d["profiles"] = [profile.to_json() for profile in self.profiles]
return d
def groups_from_json(data) -> List[SpriteShadingGroup]:
groups = []
for group in data:
profiles = []
for profile in group["profiles"]:
lights = []
for light in profile["lights"]:
enabled = light.get("enabled", True)
lights.append(
Light(
flags=LightMode[light["mode"].upper()].value + (1 if enabled else 0),
rgb=light["rgb"],
pos=light["pos"],
falloff=light["falloff"],
)
)
profiles.append(
SpriteShadingProfile(
name=profile["name"],
ambient=profile["ambient"],
power=profile["power"],
lights=lights,
)
)
groups.append(
SpriteShadingGroup(
area=group["area"],
profiles=profiles,
)
)
return groups
def build(input: Path, bin_out: Path, header_out: Path, endian: Literal["big", "little"]="big",
matching: bool = True):
END = ">" if endian == "big" else "<"
with open(input, "r") as f:
json_data = json.load(f)
groups = groups_from_json(json_data)
# Header creation
with open(header_out, "w") as f:
f.write("#ifndef SHADING_PROFILES_H\n")
f.write("#define SHADING_PROFILES_H\n")
f.write(f"/* This file is auto-generated from {input.name}. Do not edit. */\n\n")
f.write("enum ShadingProfile {\n")
f.write(" SHADING_NONE = 0xFFFFFFFF,\n")
for g, group in enumerate(groups):
for i, profile in enumerate(group.profiles):
f.write(f" SHADING_{profile.name.upper()} = 0x{(g << 16) | i:08X},\n")
f.write("};\n")
f.write("#endif // SHADING_PROFILES_H\n")
data_offset = 0
profile_list_offset = len(groups) * 8
offsets_table = bytearray()
profile_lists = bytearray()
data_table = bytearray()
for g, group in enumerate(groups):
offsets_table.extend(struct.pack(END + "i", data_offset))
offsets_table.extend(struct.pack(END + "i", profile_list_offset))
group_data_offset = 0
for profile in group.profiles:
profile_lists.extend(struct.pack(END + "i", group_data_offset))
data_table.extend(struct.pack(END + "B", len(profile.lights)))
data_table.append(0)
data_table.extend(struct.pack(END + "B", profile.ambient[0]))
data_table.extend(struct.pack(END + "B", profile.ambient[1]))
data_table.extend(struct.pack(END + "B", profile.ambient[2]))
data_table.extend(struct.pack(END + "B", profile.power))
group_data_offset += 6
profile_list_offset += 4
for light in profile.lights:
data_table.extend(struct.pack(END + "B", light.flags))
data_table.extend(struct.pack(END + "B", light.rgb[0]))
data_table.extend(struct.pack(END + "B", light.rgb[1]))
data_table.extend(struct.pack(END + "B", light.rgb[2]))
data_table.extend(struct.pack(END + "h", light.pos[0]))
data_table.extend(struct.pack(END + "h", light.pos[1]))
data_table.extend(struct.pack(END + "h", light.pos[2]))
data_table.extend(struct.pack(END + "f", light.falloff))
data_table.append(0)
data_table.append(0)
group_data_offset += 0x10
data_offset += group_data_offset
offsets_table.extend(profile_lists)
if matching:
offsets_table += b'\0' * (0x1D0 - len(offsets_table)) # Pad to 0x1D0
final_data = offsets_table + data_table
if matching:
final_data += b'\0' * (0xE70 - len(final_data)) # Pad to 0xE70
with open(bin_out, "wb") as f:
f.write(final_data)
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Sprite shading profiles")
parser.add_argument("input", type=Path, help="Input JSON file")
parser.add_argument("bin_out", type=Path, help="Output binary file path")
parser.add_argument("header_out", type=Path, help="Output header file path")
parser.add_argument("--endian", choices=["big", "little"], default="big", help="Output endianness")
parser.add_argument("--matching", help="Pad to matching size", default=True)
args = parser.parse_args()
build(args.input, args.bin_out, args.header_out, args.endian, args.matching)

View File

@ -0,0 +1,223 @@
import os
import sys
from pathlib import Path
TOOLS_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(str(Path(TOOLS_DIR) / "build/sprite"))
from sprite_shading_profiles import SpriteShadingGroup, SpriteShadingProfile, Light
import json
import struct
from typing import Literal
from segtypes.n64.segment import N64Segment
from util import options
GROUPS = [
SpriteShadingGroup("TIK"),
SpriteShadingGroup("KMR"),
SpriteShadingGroup("ISK"),
SpriteShadingGroup("HOS"),
SpriteShadingGroup("OSR"),
SpriteShadingGroup("KKJ"),
SpriteShadingGroup("JSN"),
SpriteShadingGroup("MIM"),
SpriteShadingGroup("ARN"),
SpriteShadingGroup("DGB"),
SpriteShadingGroup("KZN"),
SpriteShadingGroup("unused1"),
SpriteShadingGroup("unused2"),
]
def extract(input_data: bytes, endian: Literal["big", "little"] = "big") -> str:
PROFILE_NAMES = [
[
"TIK_01",
"TIK_02",
"TIK_03",
"TIK_04",
"TIK_05",
"TIK_06",
"TIK_07",
"TIK_08",
"TIK_09",
"TIK_10",
"TIK_12",
"TIK_14",
"TIK_15",
"TIK_18",
"TIK_20",
"TIK_21",
"TIK_22",
"TIK_23",
"TIK_24",
"TIK_25",
],
["KMR_30"],
[
"ISK_03",
"ISK_04",
"ISK_05",
"ISK_06",
"ISK_07",
"ISK_08",
"ISK_09",
"ISK_10",
"ISK_11",
"ISK_12",
"ISK_13",
"ISK_14",
"ISK_16",
"ISK_UNUSED",
"ISK_18",
"ISK_19",
],
["HOS_01"],
["OSR_02"],
[
"KKJ_10",
"KKJ_11",
"KKJ_12",
"KKJ_13",
"KKJ_17",
"KKJ_20",
"KKJ_22",
"KKJ_23",
"KKJ_24",
"KKJ_25",
"KKJ_26",
"KKJ_27",
],
["JAN_17", "JAN_19"],
[
"MIM_01",
"MIM_02",
"MIM_03",
"MIM_04",
"MIM_05",
"MIM_06",
"MIM_07",
"MIM_08",
"MIM_09",
"MIM_11",
"MIM_12",
],
["ARN_09", "ARN_10", "ARN_11", "ARN_12", "ARN_13"],
["DGB_06"],
[
"KZN_01",
"KZN_02",
"KZN_03",
"KZN_04",
"KZN_05",
"KZN_06",
"KZN_07",
"KZN_08",
"KZN_09",
"KZN_10",
"KZN_11",
"KZN_17",
"KZN_18",
"KZN_19",
"KZN_20",
"KZN_22",
"KZN_23",
],
["UNUSED1_01"],
["UNUSED2_01"],
]
END = ">" if endian == "big" else "<"
offsets_table = input_data[:0x1D0]
lighting_data = input_data[0x1D0:]
for g, group in enumerate(GROUPS):
b = g * 8
data_offset = struct.unpack(END + "i", offsets_table[b : b + 4])[0]
pl_it = struct.unpack(END + "i", offsets_table[b + 4 : b + 8])[0]
profile_list = []
for _ in range(len(PROFILE_NAMES[g])):
profile_list.append(
struct.unpack(END + "i", offsets_table[pl_it : pl_it + 4])[0]
)
pl_it += 4
for j, pl_offset in enumerate(profile_list):
profile_offset = data_offset + pl_offset
num_lights = lighting_data[profile_offset]
profile = SpriteShadingProfile(
name=PROFILE_NAMES[g][j].lower(),
ambient=[
lighting_data[profile_offset + 2],
lighting_data[profile_offset + 3],
lighting_data[profile_offset + 4],
],
power=lighting_data[profile_offset + 5],
)
profile_offset += 6
for _ in range(num_lights):
profile.lights.append(
Light(
flags=lighting_data[profile_offset],
rgb=[
lighting_data[profile_offset + 1],
lighting_data[profile_offset + 2],
lighting_data[profile_offset + 3],
],
pos=[
struct.unpack(
END + "h",
lighting_data[profile_offset + 4 : profile_offset + 6],
)[0],
struct.unpack(
END + "h",
lighting_data[profile_offset + 6 : profile_offset + 8],
)[0],
struct.unpack(
END + "h",
lighting_data[profile_offset + 8 : profile_offset + 10],
)[0],
],
falloff=struct.unpack(
END + "f",
lighting_data[profile_offset + 10 : profile_offset + 14],
)[0],
)
)
profile_offset += 0x10
group.profiles.append(profile)
return json.dumps(
[g.to_json() for g in GROUPS],
sort_keys=False,
indent=2,
)
class N64SegPm_sprite_shading_profiles(N64Segment):
OUT_DIR: Path = options.opts.asset_path / "sprite"
def scan(self, rom_bytes):
data = rom_bytes[self.rom_start:self.rom_end]
self.json_out = extract(data)
def split(self, rom_bytes):
with open(self.out_path(), "w") as f:
f.write(self.json_out)
def out_path(self) -> Path:
return self.OUT_DIR / f"{self.name}.json"
def get_linker_entries(self):
from segtypes.linker_entry import LinkerEntry
return [
LinkerEntry(
self,
[self.OUT_DIR / f"{self.name}.json"],
options.opts.asset_path / self.dir / f"{self.name}.bin",
self.get_linker_section(),
)
]

View File

@ -18,7 +18,7 @@ dlabel D_80242B40_D818A0
.word 0x0000004D, 0x00000001, 0x00000000, 0x00000043, 0x00000002, func_80240E70_D7FBD0, 0x00000000, 0x00000024, 0x00000002, 0xFD050F86, 0xFE363C82, 0x00000043, 0x00000002, func_80240E70_D7FBD0, 0x00000001, 0x00000024, 0x00000002, 0xFD050F87, 0xFE363C82, 0x00000043, 0x00000002, func_80240E70_D7FBD0, 0x00000002, 0x00000024, 0x00000002, 0xFD050F88, 0xFE363C82, 0x00000005, 0x00000001, 0x00000000, 0x00000043, 0x00000002, func_80240E70_D7FBD0, 0x00000000, 0x00000043, 0x00000005, TranslateGroup, 0x0000003B, 0xFE363C80, 0x00000000, 0xFE363C81, 0x00000043, 0x00000006, RotateGroup, 0x00000038, 0xFD050F86, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000002, func_80240E70_D7FBD0, 0x00000001, 0x00000043, 0x00000005, TranslateGroup, 0x00000043, 0xFE363C80, 0x00000000, 0xFE363C81, 0x00000043, 0x00000006, RotateGroup, 0x00000040, 0xFD050F87, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000002, func_80240E70_D7FBD0, 0x00000002, 0x00000043, 0x00000005, TranslateGroup, 0x0000004B, 0xFE363C80, 0x00000000, 0xFE363C81, 0x00000043, 0x00000006, RotateGroup, 0x00000048, 0xFD050F88, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000002, func_80240F2C_D7FC8C, 0x00000000, 0x00000043, 0x00000005, SetNpcPos, 0x00000000, 0xFE363C80, 0xFFFFFFF6, 0xFE363C81, 0x00000043, 0x00000002, func_80240F2C_D7FC8C, 0x00000001, 0x00000043, 0x00000005, SetNpcPos, 0x00000001, 0xFE363C80, 0xFFFFFFF6, 0xFE363C81, 0x00000043, 0x00000002, func_80240F2C_D7FC8C, 0x00000002, 0x00000043, 0x00000005, SetNpcPos, 0x00000002, 0xFE363C80, 0xFFFFFFF6, 0xFE363C81, 0x00000043, 0x00000002, UpdateColliderTransform, 0x0000001A, 0x00000043, 0x00000002, UpdateColliderTransform, 0x0000001B, 0x00000043, 0x00000002, UpdateColliderTransform, 0x0000001C, 0x00000043, 0x00000002, UpdateColliderTransform, 0x0000001D, 0x00000043, 0x00000002, UpdateColliderTransform, 0x0000001F, 0x00000043, 0x00000002, UpdateColliderTransform, 0x00000020, 0x00000043, 0x00000002, UpdateColliderTransform, 0x00000021, 0x00000043, 0x00000002, UpdateColliderTransform, 0x00000022, 0x00000043, 0x00000002, UpdateColliderTransform, 0x00000024, 0x00000043, 0x00000002, UpdateColliderTransform, 0x00000025, 0x00000043, 0x00000002, UpdateColliderTransform, 0x00000026, 0x00000043, 0x00000002, UpdateColliderTransform, 0x00000027, 0x00000008, 0x00000001, 0x00000001, 0x00000006, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000
dlabel D_80242E04_D81B64
.word 0x00000043, 0x00000002, btl_delete_actor_D7F91C, 0xFE363C8A, 0x00000043, 0x00000003, InterpPlayerYaw, 0xFE363C80, 0x00000000, 0x00000005, 0x00000001, 0x00000014, 0x00000043, 0x00000002, pra_31_UnkFunc11, 0xFE363C89, 0x0000000A, 0x00000002, 0xFE363C80, 0x00000000, 0x00000002, 0x00000000, 0x00000012, 0x00000000, 0x00000043, 0x00000002, SetPlayerActionState, 0x00000014, 0x00000013, 0x00000000, 0x00000008, 0x00000001, 0x00000001, 0x00000006, 0x00000000, 0x00000043, 0x00000002, DisablePlayerInput, 0x00000001, 0x00000056, 0x00000000, 0x00000043, 0x00000002, func_80240C70_D7F9D0, 0xFE363C8A, 0x00000043, 0x00000005, MakeLerp, 0xFE363C83, 0xFE363C84, 0x00000028, 0x00000000, 0x00000005, 0x00000001, 0x00000000, 0x00000043, 0x00000002, SetPlayerActionState, 0x00000014, 0x00000043, 0x00000001, UpdateLerp, 0x00000043, 0x00000001, pra_31_UnkFunc12, 0x00000008, 0x00000001, 0x00000001, 0x0000000A, 0x00000002, 0xFE363C81, 0x00000000, 0x00000007, 0x00000000, 0x00000013, 0x00000000, 0x00000006, 0x00000000, 0x00000057, 0x00000000, 0x00000056, 0x00000000, 0x00000043, 0x00000005, ShakeCam, 0x00000000, 0x00000000, 0x00000028, 0xF24A7BB4, 0x00000057, 0x00000000, 0x00000024, 0x00000002, 0xFD050F82, 0x00000001, 0x00000043, 0x00000004, PlaySoundAtCollider, 0xFE363C89, 0x0000002D, 0x00000000, 0x00000043, 0x00000002, func_80240A3C_D7F79C, 0xFE363C8A, 0x00000008, 0x00000001, 0x00000028, 0x00000024, 0x00000002, 0xFD050F82, 0x00000000, 0x00000043, 0x00000001, func_80240FD0_D7FD30, 0x00000056, 0x00000000, 0x00000043, 0x00000002, DisablePlayerInput, 0x00000000, 0x00000008, 0x00000001, 0x00000002, 0x00000043, 0x00000002, pra_31_UnkFunc11, 0xFE363C89, 0x0000000A, 0x00000002, 0xFE363C80, 0x00000000, 0x00000008, 0x00000001, 0x00000002, 0x00000043, 0x00000002, pra_31_UnkFunc11, 0xFE363C89, 0x0000000A, 0x00000002, 0xFE363C80, 0x00000000, 0x00000043, 0x00000002, SetPlayerActionState, 0x00000000, 0x00000013, 0x00000000, 0x00000013, 0x00000000, 0x00000057, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000
.word 0x00000043, 0x00000002, func_80240BBC_D7F91C, 0xFE363C8A, 0x00000043, 0x00000003, InterpPlayerYaw, 0xFE363C80, 0x00000000, 0x00000005, 0x00000001, 0x00000014, 0x00000043, 0x00000002, pra_31_UnkFunc11, 0xFE363C89, 0x0000000A, 0x00000002, 0xFE363C80, 0x00000000, 0x00000002, 0x00000000, 0x00000012, 0x00000000, 0x00000043, 0x00000002, SetPlayerActionState, 0x00000014, 0x00000013, 0x00000000, 0x00000008, 0x00000001, 0x00000001, 0x00000006, 0x00000000, 0x00000043, 0x00000002, DisablePlayerInput, 0x00000001, 0x00000056, 0x00000000, 0x00000043, 0x00000002, func_80240C70_D7F9D0, 0xFE363C8A, 0x00000043, 0x00000005, MakeLerp, 0xFE363C83, 0xFE363C84, 0x00000028, 0x00000000, 0x00000005, 0x00000001, 0x00000000, 0x00000043, 0x00000002, SetPlayerActionState, 0x00000014, 0x00000043, 0x00000001, UpdateLerp, 0x00000043, 0x00000001, pra_31_UnkFunc12, 0x00000008, 0x00000001, 0x00000001, 0x0000000A, 0x00000002, 0xFE363C81, 0x00000000, 0x00000007, 0x00000000, 0x00000013, 0x00000000, 0x00000006, 0x00000000, 0x00000057, 0x00000000, 0x00000056, 0x00000000, 0x00000043, 0x00000005, ShakeCam, 0x00000000, 0x00000000, 0x00000028, 0xF24A7BB4, 0x00000057, 0x00000000, 0x00000024, 0x00000002, 0xFD050F82, 0x00000001, 0x00000043, 0x00000004, PlaySoundAtCollider, 0xFE363C89, 0x0000002D, 0x00000000, 0x00000043, 0x00000002, func_80240A3C_D7F79C, 0xFE363C8A, 0x00000008, 0x00000001, 0x00000028, 0x00000024, 0x00000002, 0xFD050F82, 0x00000000, 0x00000043, 0x00000001, func_80240FD0_D7FD30, 0x00000056, 0x00000000, 0x00000043, 0x00000002, DisablePlayerInput, 0x00000000, 0x00000008, 0x00000001, 0x00000002, 0x00000043, 0x00000002, pra_31_UnkFunc11, 0xFE363C89, 0x0000000A, 0x00000002, 0xFE363C80, 0x00000000, 0x00000008, 0x00000001, 0x00000002, 0x00000043, 0x00000002, pra_31_UnkFunc11, 0xFE363C89, 0x0000000A, 0x00000002, 0xFE363C80, 0x00000000, 0x00000043, 0x00000002, SetPlayerActionState, 0x00000000, 0x00000013, 0x00000000, 0x00000013, 0x00000000, 0x00000057, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000
dlabel D_80243078_D81DD8
.word 0x0000000F, 0x00000002, 0xF5DE0180, 0x00000055, 0x00000002, 0x00000000, 0x00000013, 0x00000000, 0x00000043, 0x00000002, func_80240894_D7F5F4, 0x00000000, 0x0000000A, 0x00000002, 0xFE363C80, 0x00000001, 0x00000002, 0x00000000, 0x00000013, 0x00000000, 0x00000024, 0x00000002, 0xFE363C8A, 0x00000000, 0x00000024, 0x00000002, 0xFE363C89, 0x0000001B, 0x00000046, 0x00000001, D_80242E04_D81B64, 0x00000002, 0x00000000, 0x00000001, 0x00000000

View File

@ -1,20 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80240500_BCF0F0
/* BCF0F0 80240500 27BDFFE8 */ addiu $sp, $sp, -0x18
/* BCF0F4 80240504 AFB00010 */ sw $s0, 0x10($sp)
/* BCF0F8 80240508 0080802D */ daddu $s0, $a0, $zero
/* BCF0FC 8024050C AFBF0014 */ sw $ra, 0x14($sp)
/* BCF100 80240510 0C00AB39 */ jal heap_malloc
/* BCF104 80240514 240401E0 */ addiu $a0, $zero, 0x1e0
/* BCF108 80240518 0200202D */ daddu $a0, $s0, $zero
/* BCF10C 8024051C 3C05FD05 */ lui $a1, 0xfd05
/* BCF110 80240520 34A50F86 */ ori $a1, $a1, 0xf86
/* BCF114 80240524 0C0B2026 */ jal evt_set_variable
/* BCF118 80240528 0040302D */ daddu $a2, $v0, $zero
/* BCF11C 8024052C 8FBF0014 */ lw $ra, 0x14($sp)
/* BCF120 80240530 8FB00010 */ lw $s0, 0x10($sp)
/* BCF124 80240534 24020002 */ addiu $v0, $zero, 2
/* BCF128 80240538 03E00008 */ jr $ra
/* BCF12C 8024053C 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,13 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80240540_BCF130
/* BCF130 80240540 27BDFFE8 */ addiu $sp, $sp, -0x18
/* BCF134 80240544 3C05FD05 */ lui $a1, 0xfd05
/* BCF138 80240548 34A50F86 */ ori $a1, $a1, 0xf86
/* BCF13C 8024054C AFBF0010 */ sw $ra, 0x10($sp)
/* BCF140 80240550 0C0B1EAF */ jal evt_get_variable
/* BCF144 80240554 0000202D */ daddu $a0, $zero, $zero
/* BCF148 80240558 8FBF0010 */ lw $ra, 0x10($sp)
/* BCF14C 8024055C 03E00008 */ jr $ra
/* BCF150 80240560 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,27 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80240A10_BCF600
/* BCF600 80240A10 27BDFFD8 */ addiu $sp, $sp, -0x28
/* BCF604 80240A14 AFB10014 */ sw $s1, 0x14($sp)
/* BCF608 80240A18 0080882D */ daddu $s1, $a0, $zero
/* BCF60C 80240A1C AFB20018 */ sw $s2, 0x18($sp)
/* BCF610 80240A20 00A0902D */ daddu $s2, $a1, $zero
/* BCF614 80240A24 AFB3001C */ sw $s3, 0x1c($sp)
/* BCF618 80240A28 00C0982D */ daddu $s3, $a2, $zero
/* BCF61C 80240A2C AFB00010 */ sw $s0, 0x10($sp)
/* BCF620 80240A30 AFBF0020 */ sw $ra, 0x20($sp)
/* BCF624 80240A34 0C090150 */ jal func_80240540_BCF130
/* BCF628 80240A38 00E0802D */ daddu $s0, $a3, $zero
/* BCF62C 80240A3C 0220202D */ daddu $a0, $s1, $zero
/* BCF630 80240A40 0240282D */ daddu $a1, $s2, $zero
/* BCF634 80240A44 0260302D */ daddu $a2, $s3, $zero
/* BCF638 80240A48 0C090159 */ jal func_80240564_BCF154
/* BCF63C 80240A4C AC500000 */ sw $s0, ($v0)
/* BCF640 80240A50 8FBF0020 */ lw $ra, 0x20($sp)
/* BCF644 80240A54 8FB3001C */ lw $s3, 0x1c($sp)
/* BCF648 80240A58 8FB20018 */ lw $s2, 0x18($sp)
/* BCF64C 80240A5C 8FB10014 */ lw $s1, 0x14($sp)
/* BCF650 80240A60 8FB00010 */ lw $s0, 0x10($sp)
/* BCF654 80240A64 03E00008 */ jr $ra
/* BCF658 80240A68 27BD0028 */ addiu $sp, $sp, 0x28

View File

@ -1,118 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80240EF8_BCFAE8
/* BCFAE8 80240EF8 27BDFFD8 */ addiu $sp, $sp, -0x28
/* BCFAEC 80240EFC AFB10014 */ sw $s1, 0x14($sp)
/* BCFAF0 80240F00 AFBF0018 */ sw $ra, 0x18($sp)
/* BCFAF4 80240F04 AFB00010 */ sw $s0, 0x10($sp)
/* BCFAF8 80240F08 F7B40020 */ sdc1 $f20, 0x20($sp)
/* BCFAFC 80240F0C 0C090150 */ jal func_80240540_BCF130
/* BCFB00 80240F10 0080882D */ daddu $s1, $a0, $zero
/* BCFB04 80240F14 3C041062 */ lui $a0, 0x1062
/* BCFB08 80240F18 8E230084 */ lw $v1, 0x84($s1)
/* BCFB0C 80240F1C 34844DD3 */ ori $a0, $a0, 0x4dd3
/* BCFB10 80240F20 00640018 */ mult $v1, $a0
/* BCFB14 80240F24 3C0551EB */ lui $a1, 0x51eb
/* BCFB18 80240F28 34A5851F */ ori $a1, $a1, 0x851f
/* BCFB1C 80240F2C 00031FC3 */ sra $v1, $v1, 0x1f
/* BCFB20 80240F30 00003010 */ mfhi $a2
/* BCFB24 80240F34 00062183 */ sra $a0, $a2, 6
/* BCFB28 80240F38 00831823 */ subu $v1, $a0, $v1
/* BCFB2C 80240F3C 00032040 */ sll $a0, $v1, 1
/* BCFB30 80240F40 00832021 */ addu $a0, $a0, $v1
/* BCFB34 80240F44 00041900 */ sll $v1, $a0, 4
/* BCFB38 80240F48 00641823 */ subu $v1, $v1, $a0
/* BCFB3C 80240F4C 00031840 */ sll $v1, $v1, 1
/* BCFB40 80240F50 00650018 */ mult $v1, $a1
/* BCFB44 80240F54 3C0140C9 */ lui $at, 0x40c9
/* BCFB48 80240F58 34210FD0 */ ori $at, $at, 0xfd0
/* BCFB4C 80240F5C 44810000 */ mtc1 $at, $f0
/* BCFB50 80240F60 00031FC3 */ sra $v1, $v1, 0x1f
/* BCFB54 80240F64 00003010 */ mfhi $a2
/* BCFB58 80240F68 00062103 */ sra $a0, $a2, 4
/* BCFB5C 80240F6C 00832023 */ subu $a0, $a0, $v1
/* BCFB60 80240F70 44846000 */ mtc1 $a0, $f12
/* BCFB64 80240F74 00000000 */ nop
/* BCFB68 80240F78 46806320 */ cvt.s.w $f12, $f12
/* BCFB6C 80240F7C 46006302 */ mul.s $f12, $f12, $f0
/* BCFB70 80240F80 00000000 */ nop
/* BCFB74 80240F84 3C0143B4 */ lui $at, 0x43b4
/* BCFB78 80240F88 44810000 */ mtc1 $at, $f0
/* BCFB7C 80240F8C 0040802D */ daddu $s0, $v0, $zero
/* BCFB80 80240F90 0C00A85B */ jal sin_rad
/* BCFB84 80240F94 46006303 */ div.s $f12, $f12, $f0
/* BCFB88 80240F98 3C014248 */ lui $at, 0x4248
/* BCFB8C 80240F9C 44811000 */ mtc1 $at, $f2
/* BCFB90 80240FA0 00000000 */ nop
/* BCFB94 80240FA4 46020002 */ mul.s $f0, $f0, $f2
/* BCFB98 80240FA8 00000000 */ nop
/* BCFB9C 80240FAC 24020064 */ addiu $v0, $zero, 0x64
/* BCFBA0 80240FB0 3C013FD0 */ lui $at, 0x3fd0
/* BCFBA4 80240FB4 44811800 */ mtc1 $at, $f3
/* BCFBA8 80240FB8 44801000 */ mtc1 $zero, $f2
/* BCFBAC 80240FBC 4600018D */ trunc.w.s $f6, $f0
/* BCFBB0 80240FC0 44033000 */ mfc1 $v1, $f6
/* BCFBB4 80240FC4 00000000 */ nop
/* BCFBB8 80240FC8 00431023 */ subu $v0, $v0, $v1
/* BCFBBC 80240FCC 44820000 */ mtc1 $v0, $f0
/* BCFBC0 80240FD0 00000000 */ nop
/* BCFBC4 80240FD4 46800021 */ cvt.d.w $f0, $f0
/* BCFBC8 80240FD8 46220002 */ mul.d $f0, $f0, $f2
/* BCFBCC 80240FDC 00000000 */ nop
/* BCFBD0 80240FE0 44831000 */ mtc1 $v1, $f2
/* BCFBD4 80240FE4 00000000 */ nop
/* BCFBD8 80240FE8 468010A1 */ cvt.d.w $f2, $f2
/* BCFBDC 80240FEC 46221080 */ add.d $f2, $f2, $f2
/* BCFBE0 80240FF0 3C014059 */ lui $at, 0x4059
/* BCFBE4 80240FF4 44812800 */ mtc1 $at, $f5
/* BCFBE8 80240FF8 44802000 */ mtc1 $zero, $f4
/* BCFBEC 80240FFC 00000000 */ nop
/* BCFBF0 80241000 46241083 */ div.d $f2, $f2, $f4
/* BCFBF4 80241004 46240003 */ div.d $f0, $f0, $f4
/* BCFBF8 80241008 46220000 */ add.d $f0, $f0, $f2
/* BCFBFC 8024100C 8E04000C */ lw $a0, 0xc($s0)
/* BCFC00 80241010 46200020 */ cvt.s.d $f0, $f0
/* BCFC04 80241014 44050000 */ mfc1 $a1, $f0
/* BCFC08 80241018 0C01574E */ jal func_80055D38
/* BCFC0C 8024101C AE0501C4 */ sw $a1, 0x1c4($s0)
/* BCFC10 80241020 8E04004C */ lw $a0, 0x4c($s0)
/* BCFC14 80241024 0C0B11EA */ jal get_script_by_id
/* BCFC18 80241028 00000000 */ nop
/* BCFC1C 8024102C C60201C4 */ lwc1 $f2, 0x1c4($s0)
/* BCFC20 80241030 3C014040 */ lui $at, 0x4040
/* BCFC24 80241034 44810000 */ mtc1 $at, $f0
/* BCFC28 80241038 00000000 */ nop
/* BCFC2C 8024103C 46001082 */ mul.s $f2, $f2, $f0
/* BCFC30 80241040 00000000 */ nop
/* BCFC34 80241044 44051000 */ mfc1 $a1, $f2
/* BCFC38 80241048 0C0B1078 */ jal set_script_timescale
/* BCFC3C 8024104C 0220202D */ daddu $a0, $s1, $zero
/* BCFC40 80241050 8E040050 */ lw $a0, 0x50($s0)
/* BCFC44 80241054 0C0B11EA */ jal get_script_by_id
/* BCFC48 80241058 00000000 */ nop
/* BCFC4C 8024105C C60001C4 */ lwc1 $f0, 0x1c4($s0)
/* BCFC50 80241060 3C0140A0 */ lui $at, 0x40a0
/* BCFC54 80241064 4481A000 */ mtc1 $at, $f20
/* BCFC58 80241068 00000000 */ nop
/* BCFC5C 8024106C 46140002 */ mul.s $f0, $f0, $f20
/* BCFC60 80241070 00000000 */ nop
/* BCFC64 80241074 44050000 */ mfc1 $a1, $f0
/* BCFC68 80241078 0C0B1078 */ jal set_script_timescale
/* BCFC6C 8024107C 0220202D */ daddu $a0, $s1, $zero
/* BCFC70 80241080 8E040054 */ lw $a0, 0x54($s0)
/* BCFC74 80241084 0C0B11EA */ jal get_script_by_id
/* BCFC78 80241088 00000000 */ nop
/* BCFC7C 8024108C C60001C4 */ lwc1 $f0, 0x1c4($s0)
/* BCFC80 80241090 46140002 */ mul.s $f0, $f0, $f20
/* BCFC84 80241094 00000000 */ nop
/* BCFC88 80241098 44050000 */ mfc1 $a1, $f0
/* BCFC8C 8024109C 0C0B1078 */ jal set_script_timescale
/* BCFC90 802410A0 0220202D */ daddu $a0, $s1, $zero
/* BCFC94 802410A4 8FBF0018 */ lw $ra, 0x18($sp)
/* BCFC98 802410A8 8FB10014 */ lw $s1, 0x14($sp)
/* BCFC9C 802410AC 8FB00010 */ lw $s0, 0x10($sp)
/* BCFCA0 802410B0 D7B40020 */ ldc1 $f20, 0x20($sp)
/* BCFCA4 802410B4 24020002 */ addiu $v0, $zero, 2
/* BCFCA8 802410B8 03E00008 */ jr $ra
/* BCFCAC 802410BC 27BD0028 */ addiu $sp, $sp, 0x28

View File

@ -1,32 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802410C0_BCFCB0
/* BCFCB0 802410C0 27BDFFD8 */ addiu $sp, $sp, -0x28
/* BCFCB4 802410C4 AFBF0020 */ sw $ra, 0x20($sp)
/* BCFCB8 802410C8 AFB1001C */ sw $s1, 0x1c($sp)
/* BCFCBC 802410CC 0C090150 */ jal func_80240540_BCF130
/* BCFCC0 802410D0 AFB00018 */ sw $s0, 0x18($sp)
/* BCFCC4 802410D4 0040882D */ daddu $s1, $v0, $zero
/* BCFCC8 802410D8 0C0511EA */ jal hud_element_draw_clipped
/* BCFCCC 802410DC 8E24003C */ lw $a0, 0x3c($s1)
/* BCFCD0 802410E0 8E300040 */ lw $s0, 0x40($s1)
/* BCFCD4 802410E4 0C0511EA */ jal hud_element_draw_clipped
/* BCFCD8 802410E8 0200202D */ daddu $a0, $s0, $zero
/* BCFCDC 802410EC 0200202D */ daddu $a0, $s0, $zero
/* BCFCE0 802410F0 27A50010 */ addiu $a1, $sp, 0x10
/* BCFCE4 802410F4 0C05126B */ jal hud_element_get_render_pos
/* BCFCE8 802410F8 27A60014 */ addiu $a2, $sp, 0x14
/* BCFCEC 802410FC 8FA40010 */ lw $a0, 0x10($sp)
/* BCFCF0 80241100 8FA50014 */ lw $a1, 0x14($sp)
/* BCFCF4 80241104 8E260004 */ lw $a2, 4($s1)
/* BCFCF8 80241108 0C090284 */ jal func_80240A10_BCF600
/* BCFCFC 8024110C 24070002 */ addiu $a3, $zero, 2
/* BCFD00 80241110 8E240044 */ lw $a0, 0x44($s1)
/* BCFD04 80241114 0C0511EA */ jal hud_element_draw_clipped
/* BCFD08 80241118 00000000 */ nop
/* BCFD0C 8024111C 8FBF0020 */ lw $ra, 0x20($sp)
/* BCFD10 80241120 8FB1001C */ lw $s1, 0x1c($sp)
/* BCFD14 80241124 8FB00018 */ lw $s0, 0x18($sp)
/* BCFD18 80241128 03E00008 */ jr $ra
/* BCFD1C 8024112C 27BD0028 */ addiu $sp, $sp, 0x28

View File

@ -1,20 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80241130_BCFD20
/* BCFD20 80241130 0000302D */ daddu $a2, $zero, $zero
/* BCFD24 80241134 3C058024 */ lui $a1, %hi(D_80243090_BD1C80)
/* BCFD28 80241138 24A53090 */ addiu $a1, $a1, %lo(D_80243090_BD1C80)
.L8024113C:
/* BCFD2C 8024113C 8CA30000 */ lw $v1, ($a1)
/* BCFD30 80241140 50600006 */ beql $v1, $zero, .L8024115C
/* BCFD34 80241144 2406FFFF */ addiu $a2, $zero, -1
/* BCFD38 80241148 8C820084 */ lw $v0, 0x84($a0)
/* BCFD3C 8024114C 10620003 */ beq $v1, $v0, .L8024115C
/* BCFD40 80241150 24A50004 */ addiu $a1, $a1, 4
/* BCFD44 80241154 0809044F */ j .L8024113C
/* BCFD48 80241158 24C60001 */ addiu $a2, $a2, 1
.L8024115C:
/* BCFD4C 8024115C AC860084 */ sw $a2, 0x84($a0)
/* BCFD50 80241160 03E00008 */ jr $ra
/* BCFD54 80241164 24020002 */ addiu $v0, $zero, 2

View File

@ -1,110 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80241168_BCFD58
/* BCFD58 80241168 27BDFFE0 */ addiu $sp, $sp, -0x20
/* BCFD5C 8024116C AFBF0018 */ sw $ra, 0x18($sp)
/* BCFD60 80241170 AFB10014 */ sw $s1, 0x14($sp)
/* BCFD64 80241174 0C090150 */ jal func_80240540_BCF130
/* BCFD68 80241178 AFB00010 */ sw $s0, 0x10($sp)
/* BCFD6C 8024117C 3C048024 */ lui $a0, %hi(func_80240A6C_BCF65C)
/* BCFD70 80241180 24840A6C */ addiu $a0, $a0, %lo(func_80240A6C_BCF65C)
/* BCFD74 80241184 3C06800A */ lui $a2, %hi(gOverrideFlags)
/* BCFD78 80241188 24C6A650 */ addiu $a2, $a2, %lo(gOverrideFlags)
/* BCFD7C 8024118C 3C058024 */ lui $a1, %hi(func_802410C0_BCFCB0)
/* BCFD80 80241190 24A510C0 */ addiu $a1, $a1, %lo(func_802410C0_BCFCB0)
/* BCFD84 80241194 8CC30000 */ lw $v1, ($a2)
/* BCFD88 80241198 0040882D */ daddu $s1, $v0, $zero
/* BCFD8C 8024119C 34630010 */ ori $v1, $v1, 0x10
/* BCFD90 802411A0 0C048C8F */ jal create_generic_entity_frontUI
/* BCFD94 802411A4 ACC30000 */ sw $v1, ($a2)
/* BCFD98 802411A8 24040059 */ addiu $a0, $zero, 0x59
/* BCFD9C 802411AC 26230164 */ addiu $v1, $s1, 0x164
/* BCFDA0 802411B0 AE22002C */ sw $v0, 0x2c($s1)
/* BCFDA4 802411B4 24020014 */ addiu $v0, $zero, 0x14
/* BCFDA8 802411B8 AE220014 */ sw $v0, 0x14($s1)
/* BCFDAC 802411BC 24020028 */ addiu $v0, $zero, 0x28
/* BCFDB0 802411C0 AE220018 */ sw $v0, 0x18($s1)
/* BCFDB4 802411C4 2402003C */ addiu $v0, $zero, 0x3c
/* BCFDB8 802411C8 AE22001C */ sw $v0, 0x1c($s1)
/* BCFDBC 802411CC 24020050 */ addiu $v0, $zero, 0x50
/* BCFDC0 802411D0 AE220020 */ sw $v0, 0x20($s1)
/* BCFDC4 802411D4 24020064 */ addiu $v0, $zero, 0x64
/* BCFDC8 802411D8 AE220024 */ sw $v0, 0x24($s1)
/* BCFDCC 802411DC 24020005 */ addiu $v0, $zero, 5
/* BCFDD0 802411E0 AE200030 */ sw $zero, 0x30($s1)
/* BCFDD4 802411E4 AE200004 */ sw $zero, 4($s1)
/* BCFDD8 802411E8 AE200008 */ sw $zero, 8($s1)
/* BCFDDC 802411EC AE200010 */ sw $zero, 0x10($s1)
/* BCFDE0 802411F0 AE220028 */ sw $v0, 0x28($s1)
.L802411F4:
/* BCFDE4 802411F4 AC600058 */ sw $zero, 0x58($v1)
/* BCFDE8 802411F8 2484FFFF */ addiu $a0, $a0, -1
/* BCFDEC 802411FC 0481FFFD */ bgez $a0, .L802411F4
/* BCFDF0 80241200 2463FFFC */ addiu $v1, $v1, -4
/* BCFDF4 80241204 3C048011 */ lui $a0, %hi(HES_AButton)
/* BCFDF8 80241208 24848B28 */ addiu $a0, $a0, %lo(HES_AButton)
/* BCFDFC 8024120C 3C013F80 */ lui $at, 0x3f80
/* BCFE00 80241210 44810000 */ mtc1 $at, $f0
/* BCFE04 80241214 2402FFD0 */ addiu $v0, $zero, -0x30
/* BCFE08 80241218 AE220034 */ sw $v0, 0x34($s1)
/* BCFE0C 8024121C 24020040 */ addiu $v0, $zero, 0x40
/* BCFE10 80241220 AE2001C0 */ sw $zero, 0x1c0($s1)
/* BCFE14 80241224 AE2001C8 */ sw $zero, 0x1c8($s1)
/* BCFE18 80241228 AE2001CC */ sw $zero, 0x1cc($s1)
/* BCFE1C 8024122C AE220038 */ sw $v0, 0x38($s1)
/* BCFE20 80241230 E62001C4 */ swc1 $f0, 0x1c4($s1)
/* BCFE24 80241234 0C050529 */ jal hud_element_create
/* BCFE28 80241238 E62001D0 */ swc1 $f0, 0x1d0($s1)
/* BCFE2C 8024123C 0040802D */ daddu $s0, $v0, $zero
/* BCFE30 80241240 8E250034 */ lw $a1, 0x34($s1)
/* BCFE34 80241244 8E260038 */ lw $a2, 0x38($s1)
/* BCFE38 80241248 0200202D */ daddu $a0, $s0, $zero
/* BCFE3C 8024124C 0C051261 */ jal hud_element_set_render_pos
/* BCFE40 80241250 AE30003C */ sw $s0, 0x3c($s1)
/* BCFE44 80241254 0200202D */ daddu $a0, $s0, $zero
/* BCFE48 80241258 0C051277 */ jal hud_element_set_render_depth
/* BCFE4C 8024125C 0000282D */ daddu $a1, $zero, $zero
/* BCFE50 80241260 0200202D */ daddu $a0, $s0, $zero
/* BCFE54 80241264 0C051280 */ jal hud_element_set_flags
/* BCFE58 80241268 24050082 */ addiu $a1, $zero, 0x82
/* BCFE5C 8024126C 3C048011 */ lui $a0, %hi(HES_BlueMeter)
/* BCFE60 80241270 24848AFC */ addiu $a0, $a0, %lo(HES_BlueMeter)
/* BCFE64 80241274 0C050529 */ jal hud_element_create
/* BCFE68 80241278 00000000 */ nop
/* BCFE6C 8024127C 0040802D */ daddu $s0, $v0, $zero
/* BCFE70 80241280 8E250034 */ lw $a1, 0x34($s1)
/* BCFE74 80241284 8E260038 */ lw $a2, 0x38($s1)
/* BCFE78 80241288 0200202D */ daddu $a0, $s0, $zero
/* BCFE7C 8024128C AE300040 */ sw $s0, 0x40($s1)
/* BCFE80 80241290 0C051261 */ jal hud_element_set_render_pos
/* BCFE84 80241294 24C6001C */ addiu $a2, $a2, 0x1c
/* BCFE88 80241298 0200202D */ daddu $a0, $s0, $zero
/* BCFE8C 8024129C 0C051277 */ jal hud_element_set_render_depth
/* BCFE90 802412A0 0000282D */ daddu $a1, $zero, $zero
/* BCFE94 802412A4 0200202D */ daddu $a0, $s0, $zero
/* BCFE98 802412A8 0C051280 */ jal hud_element_set_flags
/* BCFE9C 802412AC 24050082 */ addiu $a1, $zero, 0x82
/* BCFEA0 802412B0 3C048011 */ lui $a0, %hi(HES_RunAwayOK)
/* BCFEA4 802412B4 24849244 */ addiu $a0, $a0, %lo(HES_RunAwayOK)
/* BCFEA8 802412B8 0C050529 */ jal hud_element_create
/* BCFEAC 802412BC 00000000 */ nop
/* BCFEB0 802412C0 0040802D */ daddu $s0, $v0, $zero
/* BCFEB4 802412C4 8E250034 */ lw $a1, 0x34($s1)
/* BCFEB8 802412C8 8E260038 */ lw $a2, 0x38($s1)
/* BCFEBC 802412CC 0200202D */ daddu $a0, $s0, $zero
/* BCFEC0 802412D0 AE300044 */ sw $s0, 0x44($s1)
/* BCFEC4 802412D4 0C051261 */ jal hud_element_set_render_pos
/* BCFEC8 802412D8 24C6001C */ addiu $a2, $a2, 0x1c
/* BCFECC 802412DC 0200202D */ daddu $a0, $s0, $zero
/* BCFED0 802412E0 0C051277 */ jal hud_element_set_render_depth
/* BCFED4 802412E4 0000282D */ daddu $a1, $zero, $zero
/* BCFED8 802412E8 0200202D */ daddu $a0, $s0, $zero
/* BCFEDC 802412EC 0C051280 */ jal hud_element_set_flags
/* BCFEE0 802412F0 24050082 */ addiu $a1, $zero, 0x82
/* BCFEE4 802412F4 8FBF0018 */ lw $ra, 0x18($sp)
/* BCFEE8 802412F8 8FB10014 */ lw $s1, 0x14($sp)
/* BCFEEC 802412FC 8FB00010 */ lw $s0, 0x10($sp)
/* BCFEF0 80241300 24020002 */ addiu $v0, $zero, 2
/* BCFEF4 80241304 03E00008 */ jr $ra
/* BCFEF8 80241308 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,23 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8024130C_BCFEFC
/* BCFEFC 8024130C 27BDFFE0 */ addiu $sp, $sp, -0x20
/* BCFF00 80241310 3C05F5DE */ lui $a1, 0xf5de
/* BCFF04 80241314 AFBF0018 */ sw $ra, 0x18($sp)
/* BCFF08 80241318 0C0B1EAF */ jal evt_get_variable
/* BCFF0C 8024131C 34A50236 */ ori $a1, $a1, 0x236
/* BCFF10 80241320 0000202D */ daddu $a0, $zero, $zero
/* BCFF14 80241324 24030008 */ addiu $v1, $zero, 8
/* BCFF18 80241328 00021080 */ sll $v0, $v0, 2
/* BCFF1C 8024132C 0080302D */ daddu $a2, $a0, $zero
/* BCFF20 80241330 AFA30010 */ sw $v1, 0x10($sp)
/* BCFF24 80241334 3C058024 */ lui $a1, %hi(D_80243098_BD1C88)
/* BCFF28 80241338 00A22821 */ addu $a1, $a1, $v0
/* BCFF2C 8024133C 8CA53098 */ lw $a1, %lo(D_80243098_BD1C88)($a1)
/* BCFF30 80241340 0C052A46 */ jal bgm_set_song
/* BCFF34 80241344 240701F4 */ addiu $a3, $zero, 0x1f4
/* BCFF38 80241348 8FBF0018 */ lw $ra, 0x18($sp)
/* BCFF3C 8024134C 24020002 */ addiu $v0, $zero, 2
/* BCFF40 80241350 03E00008 */ jr $ra
/* BCFF44 80241354 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,34 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80241358_BCFF48
/* BCFF48 80241358 27BDFFE8 */ addiu $sp, $sp, -0x18
/* BCFF4C 8024135C AFBF0014 */ sw $ra, 0x14($sp)
/* BCFF50 80241360 0C090150 */ jal func_80240540_BCF130
/* BCFF54 80241364 AFB00010 */ sw $s0, 0x10($sp)
/* BCFF58 80241368 0000202D */ daddu $a0, $zero, $zero
/* BCFF5C 8024136C 3C05FD05 */ lui $a1, 0xfd05
/* BCFF60 80241370 34A50F88 */ ori $a1, $a1, 0xf88
/* BCFF64 80241374 0040802D */ daddu $s0, $v0, $zero
/* BCFF68 80241378 2402000A */ addiu $v0, $zero, 0xa
/* BCFF6C 8024137C 0C0B1EAF */ jal evt_get_variable
/* BCFF70 80241380 AE020030 */ sw $v0, 0x30($s0)
/* BCFF74 80241384 0000202D */ daddu $a0, $zero, $zero
/* BCFF78 80241388 3C05FD05 */ lui $a1, 0xfd05
/* BCFF7C 8024138C 34A50F89 */ ori $a1, $a1, 0xf89
/* BCFF80 80241390 0C0B1EAF */ jal evt_get_variable
/* BCFF84 80241394 AE02004C */ sw $v0, 0x4c($s0)
/* BCFF88 80241398 0000202D */ daddu $a0, $zero, $zero
/* BCFF8C 8024139C 3C05FD05 */ lui $a1, 0xfd05
/* BCFF90 802413A0 34A50F8A */ ori $a1, $a1, 0xf8a
/* BCFF94 802413A4 0C0B1EAF */ jal evt_get_variable
/* BCFF98 802413A8 AE020050 */ sw $v0, 0x50($s0)
/* BCFF9C 802413AC AE020054 */ sw $v0, 0x54($s0)
/* BCFFA0 802413B0 3C038016 */ lui $v1, %hi(gMusicSettings + 0x18)
/* BCFFA4 802413B4 8C639B08 */ lw $v1, %lo(gMusicSettings + 0x18)($v1)
/* BCFFA8 802413B8 AE03000C */ sw $v1, 0xc($s0)
/* BCFFAC 802413BC 8FBF0014 */ lw $ra, 0x14($sp)
/* BCFFB0 802413C0 8FB00010 */ lw $s0, 0x10($sp)
/* BCFFB4 802413C4 24020002 */ addiu $v0, $zero, 2
/* BCFFB8 802413C8 03E00008 */ jr $ra
/* BCFFBC 802413CC 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,31 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802413D0_BCFFC0
/* BCFFC0 802413D0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* BCFFC4 802413D4 AFBF0014 */ sw $ra, 0x14($sp)
/* BCFFC8 802413D8 0C090150 */ jal func_80240540_BCF130
/* BCFFCC 802413DC AFB00010 */ sw $s0, 0x10($sp)
/* BCFFD0 802413E0 0040802D */ daddu $s0, $v0, $zero
/* BCFFD4 802413E4 2402FFFF */ addiu $v0, $zero, -1
/* BCFFD8 802413E8 3C05800A */ lui $a1, %hi(gOverrideFlags)
/* BCFFDC 802413EC 24A5A650 */ addiu $a1, $a1, %lo(gOverrideFlags)
/* BCFFE0 802413F0 2403FFEF */ addiu $v1, $zero, -0x11
/* BCFFE4 802413F4 AE020030 */ sw $v0, 0x30($s0)
/* BCFFE8 802413F8 8CA20000 */ lw $v0, ($a1)
/* BCFFEC 802413FC 8E04003C */ lw $a0, 0x3c($s0)
/* BCFFF0 80241400 00431024 */ and $v0, $v0, $v1
/* BCFFF4 80241404 0C05123D */ jal hud_element_free
/* BCFFF8 80241408 ACA20000 */ sw $v0, ($a1)
/* BCFFFC 8024140C 8E040040 */ lw $a0, 0x40($s0)
/* BD0000 80241410 0C05123D */ jal hud_element_free
/* BD0004 80241414 00000000 */ nop
/* BD0008 80241418 0C05123D */ jal hud_element_free
/* BD000C 8024141C 8E040044 */ lw $a0, 0x44($s0)
/* BD0010 80241420 0C048D70 */ jal free_generic_entity
/* BD0014 80241424 8E04002C */ lw $a0, 0x2c($s0)
/* BD0018 80241428 8FBF0014 */ lw $ra, 0x14($sp)
/* BD001C 8024142C 8FB00010 */ lw $s0, 0x10($sp)
/* BD0020 80241430 24020002 */ addiu $v0, $zero, 2
/* BD0024 80241434 03E00008 */ jr $ra
/* BD0028 80241438 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,16 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8024143C_BD002C
/* BD002C 8024143C 27BDFFE8 */ addiu $sp, $sp, -0x18
/* BD0030 80241440 AFB00010 */ sw $s0, 0x10($sp)
/* BD0034 80241444 AFBF0014 */ sw $ra, 0x14($sp)
/* BD0038 80241448 0C090150 */ jal func_80240540_BCF130
/* BD003C 8024144C 0080802D */ daddu $s0, $a0, $zero
/* BD0040 80241450 24020096 */ addiu $v0, $zero, 0x96
/* BD0044 80241454 AE020090 */ sw $v0, 0x90($s0)
/* BD0048 80241458 8FBF0014 */ lw $ra, 0x14($sp)
/* BD004C 8024145C 8FB00010 */ lw $s0, 0x10($sp)
/* BD0050 80241460 24020002 */ addiu $v0, $zero, 2
/* BD0054 80241464 03E00008 */ jr $ra
/* BD0058 80241468 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,22 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8024146C_BD005C
/* BD005C 8024146C 27BDFFE0 */ addiu $sp, $sp, -0x20
/* BD0060 80241470 AFB10014 */ sw $s1, 0x14($sp)
/* BD0064 80241474 0080882D */ daddu $s1, $a0, $zero
/* BD0068 80241478 AFBF0018 */ sw $ra, 0x18($sp)
/* BD006C 8024147C 0C090150 */ jal func_80240540_BCF130
/* BD0070 80241480 AFB00010 */ sw $s0, 0x10($sp)
/* BD0074 80241484 3C05FE36 */ lui $a1, 0xfe36
/* BD0078 80241488 34A53C82 */ ori $a1, $a1, 0x3c82
/* BD007C 8024148C 0040802D */ daddu $s0, $v0, $zero
/* BD0080 80241490 0C0B210B */ jal evt_get_float_variable
/* BD0084 80241494 0220202D */ daddu $a0, $s1, $zero
/* BD0088 80241498 E60001D0 */ swc1 $f0, 0x1d0($s0)
/* BD008C 8024149C 8FBF0018 */ lw $ra, 0x18($sp)
/* BD0090 802414A0 8FB10014 */ lw $s1, 0x14($sp)
/* BD0094 802414A4 8FB00010 */ lw $s0, 0x10($sp)
/* BD0098 802414A8 24020002 */ addiu $v0, $zero, 2
/* BD009C 802414AC 03E00008 */ jr $ra
/* BD00A0 802414B0 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,29 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802414B4_BD00A4
/* BD00A4 802414B4 27BDFFE0 */ addiu $sp, $sp, -0x20
/* BD00A8 802414B8 AFB00010 */ sw $s0, 0x10($sp)
/* BD00AC 802414BC 0080802D */ daddu $s0, $a0, $zero
/* BD00B0 802414C0 AFBF0018 */ sw $ra, 0x18($sp)
/* BD00B4 802414C4 0C090150 */ jal func_80240540_BCF130
/* BD00B8 802414C8 AFB10014 */ sw $s1, 0x14($sp)
/* BD00BC 802414CC 0200202D */ daddu $a0, $s0, $zero
/* BD00C0 802414D0 3C05FE36 */ lui $a1, 0xfe36
/* BD00C4 802414D4 34A53C80 */ ori $a1, $a1, 0x3c80
/* BD00C8 802414D8 0C0B210B */ jal evt_get_float_variable
/* BD00CC 802414DC 0040882D */ daddu $s1, $v0, $zero
/* BD00D0 802414E0 0C00A6C9 */ jal clamp_angle
/* BD00D4 802414E4 46000306 */ mov.s $f12, $f0
/* BD00D8 802414E8 0200202D */ daddu $a0, $s0, $zero
/* BD00DC 802414EC 3C05FE36 */ lui $a1, 0xfe36
/* BD00E0 802414F0 44060000 */ mfc1 $a2, $f0
/* BD00E4 802414F4 34A53C80 */ ori $a1, $a1, 0x3c80
/* BD00E8 802414F8 0C0B2190 */ jal evt_set_float_variable
/* BD00EC 802414FC AE2601C8 */ sw $a2, 0x1c8($s1)
/* BD00F0 80241500 8FBF0018 */ lw $ra, 0x18($sp)
/* BD00F4 80241504 8FB10014 */ lw $s1, 0x14($sp)
/* BD00F8 80241508 8FB00010 */ lw $s0, 0x10($sp)
/* BD00FC 8024150C 24020002 */ addiu $v0, $zero, 2
/* BD0100 80241510 03E00008 */ jr $ra
/* BD0104 80241514 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,29 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80241518_BD0108
/* BD0108 80241518 27BDFFE0 */ addiu $sp, $sp, -0x20
/* BD010C 8024151C AFB00010 */ sw $s0, 0x10($sp)
/* BD0110 80241520 0080802D */ daddu $s0, $a0, $zero
/* BD0114 80241524 AFBF0018 */ sw $ra, 0x18($sp)
/* BD0118 80241528 0C090150 */ jal func_80240540_BCF130
/* BD011C 8024152C AFB10014 */ sw $s1, 0x14($sp)
/* BD0120 80241530 0200202D */ daddu $a0, $s0, $zero
/* BD0124 80241534 3C05FE36 */ lui $a1, 0xfe36
/* BD0128 80241538 34A53C80 */ ori $a1, $a1, 0x3c80
/* BD012C 8024153C 0C0B210B */ jal evt_get_float_variable
/* BD0130 80241540 0040882D */ daddu $s1, $v0, $zero
/* BD0134 80241544 0C00A6C9 */ jal clamp_angle
/* BD0138 80241548 46000306 */ mov.s $f12, $f0
/* BD013C 8024154C 0200202D */ daddu $a0, $s0, $zero
/* BD0140 80241550 3C05FE36 */ lui $a1, 0xfe36
/* BD0144 80241554 44060000 */ mfc1 $a2, $f0
/* BD0148 80241558 34A53C80 */ ori $a1, $a1, 0x3c80
/* BD014C 8024155C 0C0B2190 */ jal evt_set_float_variable
/* BD0150 80241560 AE2601CC */ sw $a2, 0x1cc($s1)
/* BD0154 80241564 8FBF0018 */ lw $ra, 0x18($sp)
/* BD0158 80241568 8FB10014 */ lw $s1, 0x14($sp)
/* BD015C 8024156C 8FB00010 */ lw $s0, 0x10($sp)
/* BD0160 80241570 24020002 */ addiu $v0, $zero, 2
/* BD0164 80241574 03E00008 */ jr $ra
/* BD0168 80241578 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,19 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8024157C_BD016C
/* BD016C 8024157C 27BDFFE8 */ addiu $sp, $sp, -0x18
/* BD0170 80241580 AFB00010 */ sw $s0, 0x10($sp)
/* BD0174 80241584 AFBF0014 */ sw $ra, 0x14($sp)
/* BD0178 80241588 0C090150 */ jal func_80240540_BCF130
/* BD017C 8024158C 0080802D */ daddu $s0, $a0, $zero
/* BD0180 80241590 3C05FE36 */ lui $a1, 0xfe36
/* BD0184 80241594 34A53C80 */ ori $a1, $a1, 0x3c80
/* BD0188 80241598 8C4601D0 */ lw $a2, 0x1d0($v0)
/* BD018C 8024159C 0C0B2190 */ jal evt_set_float_variable
/* BD0190 802415A0 0200202D */ daddu $a0, $s0, $zero
/* BD0194 802415A4 8FBF0014 */ lw $ra, 0x14($sp)
/* BD0198 802415A8 8FB00010 */ lw $s0, 0x10($sp)
/* BD019C 802415AC 24020002 */ addiu $v0, $zero, 2
/* BD01A0 802415B0 03E00008 */ jr $ra
/* BD01A4 802415B4 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,19 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802415B8_BD01A8
/* BD01A8 802415B8 27BDFFE8 */ addiu $sp, $sp, -0x18
/* BD01AC 802415BC AFB00010 */ sw $s0, 0x10($sp)
/* BD01B0 802415C0 AFBF0014 */ sw $ra, 0x14($sp)
/* BD01B4 802415C4 0C090150 */ jal func_80240540_BCF130
/* BD01B8 802415C8 0080802D */ daddu $s0, $a0, $zero
/* BD01BC 802415CC 3C05FE36 */ lui $a1, 0xfe36
/* BD01C0 802415D0 34A53C80 */ ori $a1, $a1, 0x3c80
/* BD01C4 802415D4 8C4601C8 */ lw $a2, 0x1c8($v0)
/* BD01C8 802415D8 0C0B2190 */ jal evt_set_float_variable
/* BD01CC 802415DC 0200202D */ daddu $a0, $s0, $zero
/* BD01D0 802415E0 8FBF0014 */ lw $ra, 0x14($sp)
/* BD01D4 802415E4 8FB00010 */ lw $s0, 0x10($sp)
/* BD01D8 802415E8 24020002 */ addiu $v0, $zero, 2
/* BD01DC 802415EC 03E00008 */ jr $ra
/* BD01E0 802415F0 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,19 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802415F4_BD01E4
/* BD01E4 802415F4 27BDFFE8 */ addiu $sp, $sp, -0x18
/* BD01E8 802415F8 AFB00010 */ sw $s0, 0x10($sp)
/* BD01EC 802415FC AFBF0014 */ sw $ra, 0x14($sp)
/* BD01F0 80241600 0C090150 */ jal func_80240540_BCF130
/* BD01F4 80241604 0080802D */ daddu $s0, $a0, $zero
/* BD01F8 80241608 3C05FE36 */ lui $a1, 0xfe36
/* BD01FC 8024160C 34A53C80 */ ori $a1, $a1, 0x3c80
/* BD0200 80241610 8C4601CC */ lw $a2, 0x1cc($v0)
/* BD0204 80241614 0C0B2190 */ jal evt_set_float_variable
/* BD0208 80241618 0200202D */ daddu $a0, $s0, $zero
/* BD020C 8024161C 8FBF0014 */ lw $ra, 0x14($sp)
/* BD0210 80241620 8FB00010 */ lw $s0, 0x10($sp)
/* BD0214 80241624 24020002 */ addiu $v0, $zero, 2
/* BD0218 80241628 03E00008 */ jr $ra
/* BD021C 8024162C 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,21 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80241630_BD0220
/* BD0220 80241630 27BDFFE8 */ addiu $sp, $sp, -0x18
/* BD0224 80241634 AFB00010 */ sw $s0, 0x10($sp)
/* BD0228 80241638 0080802D */ daddu $s0, $a0, $zero
/* BD022C 8024163C 3C05FE36 */ lui $a1, 0xfe36
/* BD0230 80241640 AFBF0014 */ sw $ra, 0x14($sp)
/* BD0234 80241644 0C0B210B */ jal evt_get_float_variable
/* BD0238 80241648 34A53C80 */ ori $a1, $a1, 0x3c80
/* BD023C 8024164C 0200202D */ daddu $a0, $s0, $zero
/* BD0240 80241650 3C05FE36 */ lui $a1, 0xfe36
/* BD0244 80241654 44060000 */ mfc1 $a2, $f0
/* BD0248 80241658 0C0B2190 */ jal evt_set_float_variable
/* BD024C 8024165C 34A53C81 */ ori $a1, $a1, 0x3c81
/* BD0250 80241660 8FBF0014 */ lw $ra, 0x14($sp)
/* BD0254 80241664 8FB00010 */ lw $s0, 0x10($sp)
/* BD0258 80241668 24020002 */ addiu $v0, $zero, 2
/* BD025C 8024166C 03E00008 */ jr $ra
/* BD0260 80241670 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,39 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80241674_BD0264
/* BD0264 80241674 27BDFFE0 */ addiu $sp, $sp, -0x20
/* BD0268 80241678 AFB00010 */ sw $s0, 0x10($sp)
/* BD026C 8024167C 0080802D */ daddu $s0, $a0, $zero
/* BD0270 80241680 3C05FE36 */ lui $a1, 0xfe36
/* BD0274 80241684 AFBF0014 */ sw $ra, 0x14($sp)
/* BD0278 80241688 F7B40018 */ sdc1 $f20, 0x18($sp)
/* BD027C 8024168C 0C0B210B */ jal evt_get_float_variable
/* BD0280 80241690 34A53C80 */ ori $a1, $a1, 0x3c80
/* BD0284 80241694 0200202D */ daddu $a0, $s0, $zero
/* BD0288 80241698 3C05FE36 */ lui $a1, 0xfe36
/* BD028C 8024169C 34A53C81 */ ori $a1, $a1, 0x3c81
/* BD0290 802416A0 0C0B210B */ jal evt_get_float_variable
/* BD0294 802416A4 46000506 */ mov.s $f20, $f0
/* BD0298 802416A8 3C013F80 */ lui $at, 0x3f80
/* BD029C 802416AC 44811000 */ mtc1 $at, $f2
/* BD02A0 802416B0 00000000 */ nop
/* BD02A4 802416B4 4602003E */ c.le.s $f0, $f2
/* BD02A8 802416B8 00000000 */ nop
/* BD02AC 802416BC 45020008 */ bc1fl .L802416E0
/* BD02B0 802416C0 AE00008C */ sw $zero, 0x8c($s0)
/* BD02B4 802416C4 4614103E */ c.le.s $f2, $f20
/* BD02B8 802416C8 00000000 */ nop
/* BD02BC 802416CC 45000003 */ bc1f .L802416DC
/* BD02C0 802416D0 24020001 */ addiu $v0, $zero, 1
/* BD02C4 802416D4 080905B8 */ j .L802416E0
/* BD02C8 802416D8 AE02008C */ sw $v0, 0x8c($s0)
.L802416DC:
/* BD02CC 802416DC AE00008C */ sw $zero, 0x8c($s0)
.L802416E0:
/* BD02D0 802416E0 8FBF0014 */ lw $ra, 0x14($sp)
/* BD02D4 802416E4 8FB00010 */ lw $s0, 0x10($sp)
/* BD02D8 802416E8 D7B40018 */ ldc1 $f20, 0x18($sp)
/* BD02DC 802416EC 24020002 */ addiu $v0, $zero, 2
/* BD02E0 802416F0 03E00008 */ jr $ra
/* BD02E4 802416F4 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,42 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802416F8_BD02E8
/* BD02E8 802416F8 27BDFFE0 */ addiu $sp, $sp, -0x20
/* BD02EC 802416FC AFB00010 */ sw $s0, 0x10($sp)
/* BD02F0 80241700 0080802D */ daddu $s0, $a0, $zero
/* BD02F4 80241704 3C05FE36 */ lui $a1, 0xfe36
/* BD02F8 80241708 AFBF0014 */ sw $ra, 0x14($sp)
/* BD02FC 8024170C F7B40018 */ sdc1 $f20, 0x18($sp)
/* BD0300 80241710 0C0B210B */ jal evt_get_float_variable
/* BD0304 80241714 34A53C80 */ ori $a1, $a1, 0x3c80
/* BD0308 80241718 0200202D */ daddu $a0, $s0, $zero
/* BD030C 8024171C 3C05FE36 */ lui $a1, 0xfe36
/* BD0310 80241720 34A53C81 */ ori $a1, $a1, 0x3c81
/* BD0314 80241724 0C0B210B */ jal evt_get_float_variable
/* BD0318 80241728 46000506 */ mov.s $f20, $f0
/* BD031C 8024172C 3C0143B4 */ lui $at, 0x43b4
/* BD0320 80241730 44811000 */ mtc1 $at, $f2
/* BD0324 80241734 00000000 */ nop
/* BD0328 80241738 4602003E */ c.le.s $f0, $f2
/* BD032C 8024173C 00000000 */ nop
/* BD0330 80241740 4502000B */ bc1fl .L80241770
/* BD0334 80241744 AE00008C */ sw $zero, 0x8c($s0)
/* BD0338 80241748 3C0142C8 */ lui $at, 0x42c8
/* BD033C 8024174C 44810000 */ mtc1 $at, $f0
/* BD0340 80241750 00000000 */ nop
/* BD0344 80241754 4600A03E */ c.le.s $f20, $f0
/* BD0348 80241758 00000000 */ nop
/* BD034C 8024175C 45000003 */ bc1f .L8024176C
/* BD0350 80241760 24020001 */ addiu $v0, $zero, 1
/* BD0354 80241764 080905DC */ j .L80241770
/* BD0358 80241768 AE02008C */ sw $v0, 0x8c($s0)
.L8024176C:
/* BD035C 8024176C AE00008C */ sw $zero, 0x8c($s0)
.L80241770:
/* BD0360 80241770 8FBF0014 */ lw $ra, 0x14($sp)
/* BD0364 80241774 8FB00010 */ lw $s0, 0x10($sp)
/* BD0368 80241778 D7B40018 */ ldc1 $f20, 0x18($sp)
/* BD036C 8024177C 24020002 */ addiu $v0, $zero, 2
/* BD0370 80241780 03E00008 */ jr $ra
/* BD0374 80241784 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,22 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80241898_BD0488
/* BD0488 80241898 27BDFFE8 */ addiu $sp, $sp, -0x18
/* BD048C 8024189C AFB00010 */ sw $s0, 0x10($sp)
/* BD0490 802418A0 AFBF0014 */ sw $ra, 0x14($sp)
/* BD0494 802418A4 0C090150 */ jal func_80240540_BCF130
/* BD0498 802418A8 0080802D */ daddu $s0, $a0, $zero
/* BD049C 802418AC 0040182D */ daddu $v1, $v0, $zero
/* BD04A0 802418B0 AC6001D4 */ sw $zero, 0x1d4($v1)
/* BD04A4 802418B4 AC6001D8 */ sw $zero, 0x1d8($v1)
/* BD04A8 802418B8 A06001DC */ sb $zero, 0x1dc($v1)
/* BD04AC 802418BC AC600004 */ sw $zero, 4($v1)
/* BD04B0 802418C0 AC600030 */ sw $zero, 0x30($v1)
/* BD04B4 802418C4 AE0000AC */ sw $zero, 0xac($s0)
/* BD04B8 802418C8 AE0000B0 */ sw $zero, 0xb0($s0)
/* BD04BC 802418CC 8FBF0014 */ lw $ra, 0x14($sp)
/* BD04C0 802418D0 8FB00010 */ lw $s0, 0x10($sp)
/* BD04C4 802418D4 24020002 */ addiu $v0, $zero, 2
/* BD04C8 802418D8 03E00008 */ jr $ra
/* BD04CC 802418DC 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,20 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80241B50_BD0740
/* BD0740 80241B50 27BDFFE8 */ addiu $sp, $sp, -0x18
/* BD0744 80241B54 AFBF0010 */ sw $ra, 0x10($sp)
/* BD0748 80241B58 0C00EABB */ jal get_npc_unsafe
/* BD074C 80241B5C 8C84014C */ lw $a0, 0x14c($a0)
/* BD0750 80241B60 0040182D */ daddu $v1, $v0, $zero
/* BD0754 80241B64 240400B4 */ addiu $a0, $zero, 0xb4
/* BD0758 80241B68 A06400AC */ sb $a0, 0xac($v1)
/* BD075C 80241B6C 24040016 */ addiu $a0, $zero, 0x16
/* BD0760 80241B70 A06400AA */ sb $a0, 0xaa($v1)
/* BD0764 80241B74 8FBF0010 */ lw $ra, 0x10($sp)
/* BD0768 80241B78 24020002 */ addiu $v0, $zero, 2
/* BD076C 80241B7C 03E00008 */ jr $ra
/* BD0770 80241B80 27BD0018 */ addiu $sp, $sp, 0x18
/* BD0774 80241B84 00000000 */ nop
/* BD0778 80241B88 00000000 */ nop
/* BD077C 80241B8C 00000000 */ nop

View File

@ -1,31 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802404F0_BD3D60
/* BD3D60 802404F0 27BDFFE0 */ addiu $sp, $sp, -0x20
/* BD3D64 802404F4 AFB10014 */ sw $s1, 0x14($sp)
/* BD3D68 802404F8 0080882D */ daddu $s1, $a0, $zero
/* BD3D6C 802404FC 0000202D */ daddu $a0, $zero, $zero
/* BD3D70 80240500 3C05FD05 */ lui $a1, 0xfd05
/* BD3D74 80240504 34A50F8A */ ori $a1, $a1, 0xf8a
/* BD3D78 80240508 AFBF0018 */ sw $ra, 0x18($sp)
/* BD3D7C 8024050C 0C0B1EAF */ jal evt_get_variable
/* BD3D80 80240510 AFB00010 */ sw $s0, 0x10($sp)
/* BD3D84 80240514 0040802D */ daddu $s0, $v0, $zero
/* BD3D88 80240518 0C04EA15 */ jal func_8013A854
/* BD3D8C 8024051C 8E040000 */ lw $a0, ($s0)
/* BD3D90 80240520 0C048D70 */ jal free_generic_entity
/* BD3D94 80240524 8E040004 */ lw $a0, 4($s0)
/* BD3D98 80240528 0C00AB4B */ jal heap_free
/* BD3D9C 8024052C 0200202D */ daddu $a0, $s0, $zero
/* BD3DA0 80240530 0220202D */ daddu $a0, $s1, $zero
/* BD3DA4 80240534 3C05FD05 */ lui $a1, 0xfd05
/* BD3DA8 80240538 34A50F8A */ ori $a1, $a1, 0xf8a
/* BD3DAC 8024053C 0C0B2026 */ jal evt_set_variable
/* BD3DB0 80240540 0000302D */ daddu $a2, $zero, $zero
/* BD3DB4 80240544 8FBF0018 */ lw $ra, 0x18($sp)
/* BD3DB8 80240548 8FB10014 */ lw $s1, 0x14($sp)
/* BD3DBC 8024054C 8FB00010 */ lw $s0, 0x10($sp)
/* BD3DC0 80240550 24020002 */ addiu $v0, $zero, 2
/* BD3DC4 80240554 03E00008 */ jr $ra
/* BD3DC8 80240558 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,19 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802423C8_DB4688
/* DB4688 802423C8 2404005A */ addiu $a0, $zero, 0x5a
/* DB468C 802423CC 3C038024 */ lui $v1, %hi(D_80245928)
/* DB4690 802423D0 24635928 */ addiu $v1, $v1, %lo(D_80245928)
/* DB4694 802423D4 240200DA */ addiu $v0, $zero, 0xda
.L802423D8:
/* DB4698 802423D8 AC620000 */ sw $v0, ($v1)
/* DB469C 802423DC 2463FFFC */ addiu $v1, $v1, -4
/* DB46A0 802423E0 2484FFFF */ addiu $a0, $a0, -1
/* DB46A4 802423E4 0481FFFC */ bgez $a0, .L802423D8
/* DB46A8 802423E8 2442FFFF */ addiu $v0, $v0, -1
/* DB46AC 802423EC 3C018024 */ lui $at, %hi(D_8024592C)
/* DB46B0 802423F0 AC20592C */ sw $zero, %lo(D_8024592C)($at)
/* DB46B4 802423F4 03E00008 */ jr $ra
/* DB46B8 802423F8 24020002 */ addiu $v0, $zero, 2
/* DB46BC 802423FC 00000000 */ nop

View File

@ -1,7 +1,7 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel btl_delete_actor_D7F91C
glabel func_80240BBC_D7F91C
/* D7F91C 80240BBC 27BDFFE0 */ addiu $sp, $sp, -0x20
/* D7F920 80240BC0 AFB10014 */ sw $s1, 0x14($sp)
/* D7F924 80240BC4 0080882D */ daddu $s1, $a0, $zero

View File

@ -2543,6 +2543,7 @@ segments:
- [0x2475F0, ci8, title/bowser_silhouette, 128, 128]
- [0x24B5F0, palette, title/bowser_silhouette]
- [0x24B7F0, bin]
- [0x315B80, pm_sprite_shading_profiles, sprite_shading_profiles]
- type: code
start: 0x3169F0
vram: 0x80200000

View File

@ -24327,7 +24327,7 @@ func_80240510_D7F270 = 0x80240510; // type:func rom:0xD7F270
func_80240818_D7F578 = 0x80240818; // type:func rom:0xD7F578
func_80240894_D7F5F4 = 0x80240894; // type:func rom:0xD7F5F4
func_80240A3C_D7F79C = 0x80240A3C; // type:func rom:0xD7F79C
btl_delete_actor_D7F91C = 0x80240BBC; // type:func rom:0xD7F91C
func_80240BBC_D7F91C = 0x80240BBC; // type:func rom:0xD7F91C
func_80240C70_D7F9D0 = 0x80240C70; // type:func rom:0xD7F9D0
pra_31_UnkFunc12 = 0x80240DBC; // type:func rom:0xD7FB1C
func_80240E70_D7FBD0 = 0x80240E70; // type:func rom:0xD7FBD0

View File

@ -66,6 +66,8 @@ D_80200000 = 0x80200000;
osResetType = 0x8000030C;
osAppNMIBuffer = 0x8000031C;
D_800A08C0 = 0x800A08C0;
D_802457C0 = 0x802457C0;
mac_02_D_8024E8A8 = 0x8024E8A8;
// effect tlb stuff
D_80197000 = 0x80197000;