From e2f17a78f9902a93ca5e798825ff5d85b1dbbc16 Mon Sep 17 00:00:00 2001 From: David Benepe Date: Wed, 23 Feb 2022 10:13:44 -0500 Subject: [PATCH] Decompiled 7 functions from object_functions (#212) * Decompiled 7 functions from object_functions * Applied review suggestions --- README.md | 22 +- asm/non_matchings/game_ui/func_800A277C.s | 4 +- asm/non_matchings/game_ui/func_800AA600.s | 2 +- asm/non_matchings/menu/func_8009C6D4.s | 2 +- .../calc_dynamic_lighting_for_object_1.s | 0 .../calc_env_mapping_for_object.s | 0 .../catmull_rom_interpolation.s | 0 .../decrypt_magic_codes.s | 0 .../func_8000B020.s | 6 +- .../func_8000B290.s | 0 .../func_8000B38C.s | 0 .../func_8000B750.s | 0 .../func_8000BADC.s | 0 .../func_8000C718.s | 0 .../func_8000C8F8.s | 2 +- .../func_8000CBF0.s | 0 .../func_8000CC7C.s | 8 +- .../func_8000E2B4.s | 2 +- .../func_8000E4E8.s | 0 .../func_8000E558.s | 0 .../func_8000E5EC.s | 0 .../func_8000E79C.s | 0 .../func_8000E898.s | 0 .../func_8000F648.s | 0 .../func_8000F758.s | 0 .../func_8000F7EC.s | 0 .../func_8000F99C.s | 0 .../func_8000FAC4.s | 0 .../func_8000FBCC.s | 0 .../func_8000FC6C.s | 0 .../func_8000FD54.s | 0 .../func_800101AC.s | 0 .../func_80010994.s | 0 .../func_80011134.s | 0 .../func_80011264.s | 0 .../func_800113CC.s | 0 .../func_80011570.s | 0 .../func_80011960.s | 0 .../func_80011AD0.s | 0 .../func_80012E28.s | 0 .../func_80012F94.s | 0 .../func_800135B8.s | 0 .../func_800138A8.s | 0 .../func_80013A0C.s | 0 .../func_80013DCC.s | 0 .../func_80014090.s | 0 .../func_800143A8.s | 0 .../func_80014814.s | 0 .../func_80014B50.s | 0 .../func_80015348.s | 0 .../func_800155B8.s | 0 .../func_800159C8.s | 0 .../func_80016500.s | 0 .../func_80016748.s | 0 .../func_80016BC4.s | 0 .../func_80016C68.s | 0 .../func_80016DE8.s | 0 .../func_8001709C.s | 0 .../func_80017248.s | 0 .../func_8001790C.s | 0 .../func_80017978.s | 0 .../func_80017A18.s | 0 .../func_80017E98.s | 0 .../func_800185E4.s | 0 .../func_80018CE0.s | 0 .../func_8001955C.s | 0 .../func_80019808.s | 0 .../func_8001A7D8.s | 0 .../func_8001A8F4.s | 0 .../func_8001AE64.s | 0 .../func_8001B2F0.s | 0 .../func_8001B3C4.s | 0 .../func_8001B4FC.s | 0 .../func_8001B668.s | 0 .../func_8001B7A8.s | 0 .../func_8001B834.s | 0 .../func_8001B974.s | 0 .../func_8001BB18.s | 0 .../func_8001BB68.s | 0 .../func_8001BC54.s | 0 .../func_8001BDD4.s | 0 .../func_8001BF20.s | 0 .../func_8001C418.s | 0 .../func_8001C48C.s | 0 .../func_8001C524.s | 0 .../func_8001C6C4.s | 0 .../func_8001CC48.s | 0 .../func_8001CD28.s | 0 .../func_8001D258.s | 0 .../func_8001D2A0.s | 0 .../func_8001D4B4.s | 0 .../func_8001D5E0.s | 0 .../func_8001E13C.s | 0 .../func_8001E4C4.s | 0 .../func_8001E6EC.s | 0 .../func_8001E89C.s | 0 .../func_8001E93C.s | 0 .../func_8001EE74.s | 0 .../func_8001EFA4.s | 0 .../func_8001F23C.s | 4 +- .../func_8001F3EC.s | 0 .../func_8001F460.s | 0 .../func_80021104.s | 0 .../func_8002125C.s | 0 .../func_80021400.s | 0 .../func_800214E4.s | 0 .../func_80021600.s | 0 .../func_8002263C.s | 0 .../func_8002277C.s | 0 .../func_800228B0.s | 0 .../func_80022948.s | 2 +- .../func_80022CFC.s | 0 .../func_80022E18.s | 0 .../func_800230D0.s | 0 .../func_8002342C.s | 0 .../func_800235DC.s | 0 .../gParticlePtrList_flush.s | 0 .../render_3d_billboard.s | 0 .../render_3d_model.s | 0 .../spawn_object.s} | 2 +- asm/non_matchings/racer/func_8004DE38.s | 2 +- asm/non_matchings/racer/func_80055EC0.s | 2 +- asm/non_matchings/racer/func_800576E0.s | 2 +- .../unknown_032760/func_8003FC44.s | 2 +- .../unknown_032760/obj_init_animation.s | 197 ------- .../unknown_032760/obj_init_audio.s | 103 ---- .../unknown_032760/obj_init_bombexplosion.s | 35 -- .../unknown_032760/obj_init_midifadepoint.s | 107 ---- .../unknown_032760/obj_init_scenery.s | 73 --- .../{obj_loop_coin.s => obj_loop_banana.s} | 2 +- .../unknown_032760/obj_loop_coincreator.s | 83 --- .../unknown_032760/obj_loop_lasergun.s | 2 +- .../unknown_032760/obj_loop_posarrow.s | 45 -- .../unknown_032760/obj_loop_snowball.s | 50 -- .../unknown_032760/obj_loop_treasuresucker.s | 2 +- .../unknown_032760/obj_loop_trophycab.s | 2 +- .../unknown_032760/obj_loop_wizpigship.s | 2 +- .../unknown_05DCD0/func_8005E204.s | 2 +- include/level_object_entries.h | 58 ++ src/audio.h | 1 + src/camera.c | 2 +- src/game.c | 2 +- src/game_text.c | 2 +- src/menu.c | 2 +- src/object_functions.c | 513 +++++++++++++++--- src/object_functions.h | 100 +++- src/{unknown_00BC20.c => objects.c} | 248 ++++----- src/{unknown_00BC20.h => objects.h} | 8 +- src/racer.c | 2 +- src/save_data.c | 2 +- src/thread0_epc.c | 2 +- src/unknown_0255E0.c | 4 +- src/unknown_05CEF0.c | 2 +- 153 files changed, 773 insertions(+), 944 deletions(-) rename asm/non_matchings/{unknown_00BC20 => objects}/calc_dynamic_lighting_for_object_1.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/calc_env_mapping_for_object.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/catmull_rom_interpolation.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/decrypt_magic_codes.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8000B020.s (98%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8000B290.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8000B38C.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8000B750.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8000BADC.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8000C718.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8000C8F8.s (99%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8000CBF0.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8000CC7C.s (99%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8000E2B4.s (99%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8000E4E8.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8000E558.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8000E5EC.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8000E79C.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8000E898.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8000F648.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8000F758.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8000F7EC.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8000F99C.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8000FAC4.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8000FBCC.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8000FC6C.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8000FD54.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_800101AC.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_80010994.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_80011134.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_80011264.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_800113CC.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_80011570.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_80011960.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_80011AD0.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_80012E28.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_80012F94.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_800135B8.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_800138A8.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_80013A0C.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_80013DCC.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_80014090.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_800143A8.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_80014814.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_80014B50.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_80015348.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_800155B8.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_800159C8.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_80016500.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_80016748.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_80016BC4.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_80016C68.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_80016DE8.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001709C.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_80017248.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001790C.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_80017978.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_80017A18.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_80017E98.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_800185E4.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_80018CE0.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001955C.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_80019808.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001A7D8.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001A8F4.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001AE64.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001B2F0.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001B3C4.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001B4FC.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001B668.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001B7A8.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001B834.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001B974.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001BB18.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001BB68.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001BC54.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001BDD4.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001BF20.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001C418.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001C48C.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001C524.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001C6C4.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001CC48.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001CD28.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001D258.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001D2A0.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001D4B4.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001D5E0.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001E13C.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001E4C4.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001E6EC.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001E89C.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001E93C.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001EE74.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001EFA4.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001F23C.s (97%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001F3EC.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8001F460.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_80021104.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8002125C.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_80021400.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_800214E4.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_80021600.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8002263C.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8002277C.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_800228B0.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_80022948.s (99%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_80022CFC.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_80022E18.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_800230D0.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_8002342C.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/func_800235DC.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/gParticlePtrList_flush.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/render_3d_billboard.s (100%) rename asm/non_matchings/{unknown_00BC20 => objects}/render_3d_model.s (100%) rename asm/non_matchings/{unknown_00BC20/func_8000EA54.s => objects/spawn_object.s} (99%) delete mode 100644 asm/non_matchings/unknown_032760/obj_init_animation.s delete mode 100644 asm/non_matchings/unknown_032760/obj_init_audio.s delete mode 100644 asm/non_matchings/unknown_032760/obj_init_bombexplosion.s delete mode 100644 asm/non_matchings/unknown_032760/obj_init_midifadepoint.s delete mode 100644 asm/non_matchings/unknown_032760/obj_init_scenery.s rename asm/non_matchings/unknown_032760/{obj_loop_coin.s => obj_loop_banana.s} (99%) delete mode 100644 asm/non_matchings/unknown_032760/obj_loop_coincreator.s delete mode 100644 asm/non_matchings/unknown_032760/obj_loop_posarrow.s delete mode 100644 asm/non_matchings/unknown_032760/obj_loop_snowball.s rename src/{unknown_00BC20.c => objects.c} (86%) rename src/{unknown_00BC20.h => objects.h} (97%) diff --git a/README.md b/README.md index 07f19056..abc18124 100755 --- a/README.md +++ b/README.md @@ -113,31 +113,31 @@ s32 is_drumstick_unlocked(void) { } ``` -As of Feburary 15th, 2022, this is our current score: +As of Feburary 23rd, 2022, this is our current score: ``` ===================================================================== ADVENTURE ONE (ASM -> C Decompilation) - -------------------------- 20.51% Complete -------------------------- - # Decompiled functions: 1036 - # GLOBAL_ASM remaining: 713 - # NON_MATCHING functions: 4 - # NON_EQUIVALENT WIP functions: 95 + -------------------------- 21.15% Complete -------------------------- + # Decompiled functions: 1048 + # GLOBAL_ASM remaining: 699 + # NON_MATCHING functions: 6 + # NON_EQUIVALENT WIP functions: 91 ---------------------------- Game Status ---------------------------- Balloons: 11/47, Keys: 1/4, Trophies: 0/5 T.T. Amulets: 1/4, Wizpig Amulets: 0/4 --------------------------------------------------------------------- - We are collecting silver coins in Hot Top Volcano. (4/8 silver coins) + We are collecting silver coins in Hot Top Volcano. (8/8 silver coins) ===================================================================== ADVENTURE TWO (Cleanup & Documentation) - -------------------------- 2.54% Complete -------------------------- - # Documented functions: 134 - # Undocumented remaining: 1615 + -------------------------- 2.73% Complete -------------------------- + # Documented functions: 141 + # Undocumented remaining: 1606 ---------------------------- Game Status ---------------------------- Balloons: 1/47, Keys: 0/4, Trophies: 0/5 T.T. Amulets: 0/4, Wizpig Amulets: 0/4 --------------------------------------------------------------------- We are collecting the second balloon on Timber's Island. - ===================================================================== + ===================================================================== ``` --- diff --git a/asm/non_matchings/game_ui/func_800A277C.s b/asm/non_matchings/game_ui/func_800A277C.s index 12dc2f5f..ab75dd5c 100644 --- a/asm/non_matchings/game_ui/func_800A277C.s +++ b/asm/non_matchings/game_ui/func_800A277C.s @@ -55,7 +55,7 @@ glabel func_800A277C /* 0A33DC 800A27DC AFA900A8 */ sw $t1, 0xa8($sp) /* 0A33E0 800A27E0 27A40090 */ addiu $a0, $sp, 0x90 /* 0A33E4 800A27E4 00002825 */ move $a1, $zero -/* 0A33E8 800A27E8 0C003A95 */ jal func_8000EA54 +/* 0A33E8 800A27E8 0C003A95 */ jal spawn_object /* 0A33EC 800A27EC A3AB0090 */ sb $t3, 0x90($sp) /* 0A33F0 800A27F0 8E0D0000 */ lw $t5, ($s0) /* 0A33F4 800A27F4 8FA900A8 */ lw $t1, 0xa8($sp) @@ -90,7 +90,7 @@ glabel func_800A277C /* 0A3464 800A2864 AFA900A8 */ sw $t1, 0xa8($sp) /* 0A3468 800A2868 27A40088 */ addiu $a0, $sp, 0x88 /* 0A346C 800A286C 00002825 */ move $a1, $zero -/* 0A3470 800A2870 0C003A95 */ jal func_8000EA54 +/* 0A3470 800A2870 0C003A95 */ jal spawn_object /* 0A3474 800A2874 A3AB0088 */ sb $t3, 0x88($sp) /* 0A3478 800A2878 8E0D0000 */ lw $t5, ($s0) /* 0A347C 800A287C 8FA900A8 */ lw $t1, 0xa8($sp) diff --git a/asm/non_matchings/game_ui/func_800AA600.s b/asm/non_matchings/game_ui/func_800AA600.s index 16013755..f0e2152d 100644 --- a/asm/non_matchings/game_ui/func_800AA600.s +++ b/asm/non_matchings/game_ui/func_800AA600.s @@ -93,7 +93,7 @@ glabel func_800AA600 /* 0AB33C 800AA73C A3B8009D */ sb $t8, 0x9d($sp) /* 0AB340 800AA740 A7A000A0 */ sh $zero, 0xa0($sp) /* 0AB344 800AA744 A7A000A2 */ sh $zero, 0xa2($sp) -/* 0AB348 800AA748 0C003A95 */ jal func_8000EA54 +/* 0AB348 800AA748 0C003A95 */ jal spawn_object /* 0AB34C 800AA74C 00002825 */ move $a1, $zero /* 0AB350 800AA750 3C098012 */ lui $t1, %hi(D_80126CF4) # $t1, 0x8012 /* 0AB354 800AA754 860B0006 */ lh $t3, 6($s0) diff --git a/asm/non_matchings/menu/func_8009C6D4.s b/asm/non_matchings/menu/func_8009C6D4.s index 1cad26e7..59dffd78 100644 --- a/asm/non_matchings/menu/func_8009C6D4.s +++ b/asm/non_matchings/menu/func_8009C6D4.s @@ -93,7 +93,7 @@ glabel func_8009C6D4 /* 09D428 8009C828 A7A00032 */ sh $zero, 0x32($sp) /* 09D42C 8009C82C 27A4002C */ addiu $a0, $sp, 0x2c /* 09D430 8009C830 00002825 */ move $a1, $zero -/* 09D434 8009C834 0C003A95 */ jal func_8000EA54 +/* 09D434 8009C834 0C003A95 */ jal spawn_object /* 09D438 8009C838 AFA70038 */ sw $a3, 0x38($sp) /* 09D43C 8009C83C 8FA70038 */ lw $a3, 0x38($sp) /* 09D440 8009C840 3C018012 */ lui $at, %hi(D_80126550) # $at, 0x8012 diff --git a/asm/non_matchings/unknown_00BC20/calc_dynamic_lighting_for_object_1.s b/asm/non_matchings/objects/calc_dynamic_lighting_for_object_1.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/calc_dynamic_lighting_for_object_1.s rename to asm/non_matchings/objects/calc_dynamic_lighting_for_object_1.s diff --git a/asm/non_matchings/unknown_00BC20/calc_env_mapping_for_object.s b/asm/non_matchings/objects/calc_env_mapping_for_object.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/calc_env_mapping_for_object.s rename to asm/non_matchings/objects/calc_env_mapping_for_object.s diff --git a/asm/non_matchings/unknown_00BC20/catmull_rom_interpolation.s b/asm/non_matchings/objects/catmull_rom_interpolation.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/catmull_rom_interpolation.s rename to asm/non_matchings/objects/catmull_rom_interpolation.s diff --git a/asm/non_matchings/unknown_00BC20/decrypt_magic_codes.s b/asm/non_matchings/objects/decrypt_magic_codes.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/decrypt_magic_codes.s rename to asm/non_matchings/objects/decrypt_magic_codes.s diff --git a/asm/non_matchings/unknown_00BC20/func_8000B020.s b/asm/non_matchings/objects/func_8000B020.s similarity index 98% rename from asm/non_matchings/unknown_00BC20/func_8000B020.s rename to asm/non_matchings/objects/func_8000B020.s index a94ecd7f..a019d555 100644 --- a/asm/non_matchings/unknown_00BC20/func_8000B020.s +++ b/asm/non_matchings/objects/func_8000B020.s @@ -64,7 +64,7 @@ glabel func_8000B020 /* 00BD14 8000B114 A7A0005E */ sh $zero, 0x5e($sp) /* 00BD18 8000B118 A3B20060 */ sb $s2, 0x60($sp) /* 00BD1C 8000B11C 02E02025 */ move $a0, $s7 -/* 00BD20 8000B120 0C003A95 */ jal func_8000EA54 +/* 00BD20 8000B120 0C003A95 */ jal spawn_object /* 00BD24 8000B124 24050001 */ li $a1, 1 /* 00BD28 8000B128 1040001B */ beqz $v0, .L8000B198 /* 00BD2C 8000B12C AE220000 */ sw $v0, ($s1) @@ -112,7 +112,7 @@ glabel func_8000B020 /* 00BDD0 8000B1D0 A7A0005C */ sh $zero, 0x5c($sp) /* 00BDD4 8000B1D4 A7A0005E */ sh $zero, 0x5e($sp) /* 00BDD8 8000B1D8 02E02025 */ move $a0, $s7 -/* 00BDDC 8000B1DC 0C003A95 */ jal func_8000EA54 +/* 00BDDC 8000B1DC 0C003A95 */ jal spawn_object /* 00BDE0 8000B1E0 00002825 */ move $a1, $zero /* 00BDE4 8000B1E4 3C01800E */ lui $at, %hi(D_800DC75C) # $at, 0x800e /* 00BDE8 8000B1E8 3C108012 */ lui $s0, %hi(D_8011B078) # $s0, 0x8012 @@ -141,7 +141,7 @@ glabel func_8000B020 /* 00BE40 8000B240 A7A0005C */ sh $zero, 0x5c($sp) /* 00BE44 8000B244 A7A0005E */ sh $zero, 0x5e($sp) /* 00BE48 8000B248 02E02025 */ move $a0, $s7 -/* 00BE4C 8000B24C 0C003A95 */ jal func_8000EA54 +/* 00BE4C 8000B24C 0C003A95 */ jal spawn_object /* 00BE50 8000B250 00002825 */ move $a1, $zero /* 00BE54 8000B254 8FBF003C */ lw $ra, 0x3c($sp) /* 00BE58 8000B258 3C01800E */ lui $at, %hi(D_800DC764) # $at, 0x800e diff --git a/asm/non_matchings/unknown_00BC20/func_8000B290.s b/asm/non_matchings/objects/func_8000B290.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8000B290.s rename to asm/non_matchings/objects/func_8000B290.s diff --git a/asm/non_matchings/unknown_00BC20/func_8000B38C.s b/asm/non_matchings/objects/func_8000B38C.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8000B38C.s rename to asm/non_matchings/objects/func_8000B38C.s diff --git a/asm/non_matchings/unknown_00BC20/func_8000B750.s b/asm/non_matchings/objects/func_8000B750.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8000B750.s rename to asm/non_matchings/objects/func_8000B750.s diff --git a/asm/non_matchings/unknown_00BC20/func_8000BADC.s b/asm/non_matchings/objects/func_8000BADC.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8000BADC.s rename to asm/non_matchings/objects/func_8000BADC.s diff --git a/asm/non_matchings/unknown_00BC20/func_8000C718.s b/asm/non_matchings/objects/func_8000C718.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8000C718.s rename to asm/non_matchings/objects/func_8000C718.s diff --git a/asm/non_matchings/unknown_00BC20/func_8000C8F8.s b/asm/non_matchings/objects/func_8000C8F8.s similarity index 99% rename from asm/non_matchings/unknown_00BC20/func_8000C8F8.s rename to asm/non_matchings/objects/func_8000C8F8.s index 0b824aa0..bacc3bdb 100644 --- a/asm/non_matchings/unknown_00BC20/func_8000C8F8.s +++ b/asm/non_matchings/objects/func_8000C8F8.s @@ -141,7 +141,7 @@ glabel func_8000C8F8 /* 00D708 8000CB08 00000000 */ nop .L8000CB0C: /* 00D70C 8000CB0C 8E240000 */ lw $a0, ($s1) -/* 00D710 8000CB10 0C003A95 */ jal func_8000EA54 +/* 00D710 8000CB10 0C003A95 */ jal spawn_object /* 00D714 8000CB14 24050001 */ li $a1, 1 /* 00D718 8000CB18 8E230000 */ lw $v1, ($s1) /* 00D71C 8000CB1C 8E4E0000 */ lw $t6, ($s2) diff --git a/asm/non_matchings/unknown_00BC20/func_8000CBF0.s b/asm/non_matchings/objects/func_8000CBF0.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8000CBF0.s rename to asm/non_matchings/objects/func_8000CBF0.s diff --git a/asm/non_matchings/unknown_00BC20/func_8000CC7C.s b/asm/non_matchings/objects/func_8000CC7C.s similarity index 99% rename from asm/non_matchings/unknown_00BC20/func_8000CC7C.s rename to asm/non_matchings/objects/func_8000CC7C.s index be199e1e..e38304ab 100644 --- a/asm/non_matchings/unknown_00BC20/func_8000CC7C.s +++ b/asm/non_matchings/objects/func_8000CC7C.s @@ -797,7 +797,7 @@ glabel func_8000CC7C /* 00E37C 8000D77C 02C02025 */ move $a0, $s6 /* 00E380 8000D780 02202825 */ move $a1, $s1 /* 00E384 8000D784 AFA60054 */ sw $a2, 0x54($sp) -/* 00E388 8000D788 0C003A95 */ jal func_8000EA54 +/* 00E388 8000D788 0C003A95 */ jal spawn_object /* 00E38C 8000D78C AFA7005C */ sw $a3, 0x5c($sp) /* 00E390 8000D790 8FB80044 */ lw $t8, 0x44($sp) /* 00E394 8000D794 8FA60054 */ lw $a2, 0x54($sp) @@ -1083,7 +1083,7 @@ glabel L8000D98C /* 00E788 8000DB88 00000000 */ nop /* 00E78C 8000DB8C A6CF0006 */ sh $t7, 6($s6) /* 00E790 8000DB90 8FAD0094 */ lw $t5, 0x94($sp) -/* 00E794 8000DB94 0C003A95 */ jal func_8000EA54 +/* 00E794 8000DB94 0C003A95 */ jal spawn_object /* 00E798 8000DB98 A6CD000C */ sh $t5, 0xc($s6) /* 00E79C 8000DB9C 2418003A */ li $t8, 58 /* 00E7A0 8000DBA0 AC40003C */ sw $zero, 0x3c($v0) @@ -1130,7 +1130,7 @@ glabel L8000D98C /* 00E840 8000DC40 00000000 */ nop /* 00E844 8000DC44 A6CF0006 */ sh $t7, 6($s6) /* 00E848 8000DC48 8FAD0094 */ lw $t5, 0x94($sp) -/* 00E84C 8000DC4C 0C003A95 */ jal func_8000EA54 +/* 00E84C 8000DC4C 0C003A95 */ jal spawn_object /* 00E850 8000DC50 A6CD000C */ sh $t5, 0xc($s6) /* 00E854 8000DC54 2418003A */ li $t8, 58 /* 00E858 8000DC58 AC40003C */ sw $zero, 0x3c($v0) @@ -1313,7 +1313,7 @@ glabel L8000D98C /* 00EADC 8000DEDC A6C00004 */ sh $zero, 4($s6) /* 00EAE0 8000DEE0 A6C00006 */ sh $zero, 6($s6) /* 00EAE4 8000DEE4 02C02025 */ move $a0, $s6 -/* 00EAE8 8000DEE8 0C003A95 */ jal func_8000EA54 +/* 00EAE8 8000DEE8 0C003A95 */ jal spawn_object /* 00EAEC 8000DEEC 24050001 */ li $a1, 1 /* 00EAF0 8000DEF0 AC520078 */ sw $s2, 0x78($v0) /* 00EAF4 8000DEF4 26520001 */ addiu $s2, $s2, 1 diff --git a/asm/non_matchings/unknown_00BC20/func_8000E2B4.s b/asm/non_matchings/objects/func_8000E2B4.s similarity index 99% rename from asm/non_matchings/unknown_00BC20/func_8000E2B4.s rename to asm/non_matchings/objects/func_8000E2B4.s index fe152e73..064c2d7f 100644 --- a/asm/non_matchings/unknown_00BC20/func_8000E2B4.s +++ b/asm/non_matchings/objects/func_8000E2B4.s @@ -73,7 +73,7 @@ glabel func_8000E2B4 /* 00EFA8 8000E3A8 0C01486E */ jal func_800521B8 /* 00EFAC 8000E3AC A7AA0038 */ sh $t2, 0x38($sp) /* 00EFB0 8000E3B0 27A4002C */ addiu $a0, $sp, 0x2c -/* 00EFB4 8000E3B4 0C003A95 */ jal func_8000EA54 +/* 00EFB4 8000E3B4 0C003A95 */ jal spawn_object /* 00EFB8 8000E3B8 24050011 */ li $a1, 17 /* 00EFBC 8000E3BC 3C0C8012 */ lui $t4, %hi(gObjectStructArrayPtr) # $t4, 0x8012 /* 00EFC0 8000E3C0 8D8CAEE4 */ lw $t4, %lo(gObjectStructArrayPtr)($t4) diff --git a/asm/non_matchings/unknown_00BC20/func_8000E4E8.s b/asm/non_matchings/objects/func_8000E4E8.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8000E4E8.s rename to asm/non_matchings/objects/func_8000E4E8.s diff --git a/asm/non_matchings/unknown_00BC20/func_8000E558.s b/asm/non_matchings/objects/func_8000E558.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8000E558.s rename to asm/non_matchings/objects/func_8000E558.s diff --git a/asm/non_matchings/unknown_00BC20/func_8000E5EC.s b/asm/non_matchings/objects/func_8000E5EC.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8000E5EC.s rename to asm/non_matchings/objects/func_8000E5EC.s diff --git a/asm/non_matchings/unknown_00BC20/func_8000E79C.s b/asm/non_matchings/objects/func_8000E79C.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8000E79C.s rename to asm/non_matchings/objects/func_8000E79C.s diff --git a/asm/non_matchings/unknown_00BC20/func_8000E898.s b/asm/non_matchings/objects/func_8000E898.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8000E898.s rename to asm/non_matchings/objects/func_8000E898.s diff --git a/asm/non_matchings/unknown_00BC20/func_8000F648.s b/asm/non_matchings/objects/func_8000F648.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8000F648.s rename to asm/non_matchings/objects/func_8000F648.s diff --git a/asm/non_matchings/unknown_00BC20/func_8000F758.s b/asm/non_matchings/objects/func_8000F758.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8000F758.s rename to asm/non_matchings/objects/func_8000F758.s diff --git a/asm/non_matchings/unknown_00BC20/func_8000F7EC.s b/asm/non_matchings/objects/func_8000F7EC.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8000F7EC.s rename to asm/non_matchings/objects/func_8000F7EC.s diff --git a/asm/non_matchings/unknown_00BC20/func_8000F99C.s b/asm/non_matchings/objects/func_8000F99C.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8000F99C.s rename to asm/non_matchings/objects/func_8000F99C.s diff --git a/asm/non_matchings/unknown_00BC20/func_8000FAC4.s b/asm/non_matchings/objects/func_8000FAC4.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8000FAC4.s rename to asm/non_matchings/objects/func_8000FAC4.s diff --git a/asm/non_matchings/unknown_00BC20/func_8000FBCC.s b/asm/non_matchings/objects/func_8000FBCC.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8000FBCC.s rename to asm/non_matchings/objects/func_8000FBCC.s diff --git a/asm/non_matchings/unknown_00BC20/func_8000FC6C.s b/asm/non_matchings/objects/func_8000FC6C.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8000FC6C.s rename to asm/non_matchings/objects/func_8000FC6C.s diff --git a/asm/non_matchings/unknown_00BC20/func_8000FD54.s b/asm/non_matchings/objects/func_8000FD54.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8000FD54.s rename to asm/non_matchings/objects/func_8000FD54.s diff --git a/asm/non_matchings/unknown_00BC20/func_800101AC.s b/asm/non_matchings/objects/func_800101AC.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_800101AC.s rename to asm/non_matchings/objects/func_800101AC.s diff --git a/asm/non_matchings/unknown_00BC20/func_80010994.s b/asm/non_matchings/objects/func_80010994.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_80010994.s rename to asm/non_matchings/objects/func_80010994.s diff --git a/asm/non_matchings/unknown_00BC20/func_80011134.s b/asm/non_matchings/objects/func_80011134.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_80011134.s rename to asm/non_matchings/objects/func_80011134.s diff --git a/asm/non_matchings/unknown_00BC20/func_80011264.s b/asm/non_matchings/objects/func_80011264.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_80011264.s rename to asm/non_matchings/objects/func_80011264.s diff --git a/asm/non_matchings/unknown_00BC20/func_800113CC.s b/asm/non_matchings/objects/func_800113CC.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_800113CC.s rename to asm/non_matchings/objects/func_800113CC.s diff --git a/asm/non_matchings/unknown_00BC20/func_80011570.s b/asm/non_matchings/objects/func_80011570.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_80011570.s rename to asm/non_matchings/objects/func_80011570.s diff --git a/asm/non_matchings/unknown_00BC20/func_80011960.s b/asm/non_matchings/objects/func_80011960.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_80011960.s rename to asm/non_matchings/objects/func_80011960.s diff --git a/asm/non_matchings/unknown_00BC20/func_80011AD0.s b/asm/non_matchings/objects/func_80011AD0.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_80011AD0.s rename to asm/non_matchings/objects/func_80011AD0.s diff --git a/asm/non_matchings/unknown_00BC20/func_80012E28.s b/asm/non_matchings/objects/func_80012E28.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_80012E28.s rename to asm/non_matchings/objects/func_80012E28.s diff --git a/asm/non_matchings/unknown_00BC20/func_80012F94.s b/asm/non_matchings/objects/func_80012F94.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_80012F94.s rename to asm/non_matchings/objects/func_80012F94.s diff --git a/asm/non_matchings/unknown_00BC20/func_800135B8.s b/asm/non_matchings/objects/func_800135B8.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_800135B8.s rename to asm/non_matchings/objects/func_800135B8.s diff --git a/asm/non_matchings/unknown_00BC20/func_800138A8.s b/asm/non_matchings/objects/func_800138A8.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_800138A8.s rename to asm/non_matchings/objects/func_800138A8.s diff --git a/asm/non_matchings/unknown_00BC20/func_80013A0C.s b/asm/non_matchings/objects/func_80013A0C.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_80013A0C.s rename to asm/non_matchings/objects/func_80013A0C.s diff --git a/asm/non_matchings/unknown_00BC20/func_80013DCC.s b/asm/non_matchings/objects/func_80013DCC.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_80013DCC.s rename to asm/non_matchings/objects/func_80013DCC.s diff --git a/asm/non_matchings/unknown_00BC20/func_80014090.s b/asm/non_matchings/objects/func_80014090.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_80014090.s rename to asm/non_matchings/objects/func_80014090.s diff --git a/asm/non_matchings/unknown_00BC20/func_800143A8.s b/asm/non_matchings/objects/func_800143A8.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_800143A8.s rename to asm/non_matchings/objects/func_800143A8.s diff --git a/asm/non_matchings/unknown_00BC20/func_80014814.s b/asm/non_matchings/objects/func_80014814.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_80014814.s rename to asm/non_matchings/objects/func_80014814.s diff --git a/asm/non_matchings/unknown_00BC20/func_80014B50.s b/asm/non_matchings/objects/func_80014B50.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_80014B50.s rename to asm/non_matchings/objects/func_80014B50.s diff --git a/asm/non_matchings/unknown_00BC20/func_80015348.s b/asm/non_matchings/objects/func_80015348.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_80015348.s rename to asm/non_matchings/objects/func_80015348.s diff --git a/asm/non_matchings/unknown_00BC20/func_800155B8.s b/asm/non_matchings/objects/func_800155B8.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_800155B8.s rename to asm/non_matchings/objects/func_800155B8.s diff --git a/asm/non_matchings/unknown_00BC20/func_800159C8.s b/asm/non_matchings/objects/func_800159C8.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_800159C8.s rename to asm/non_matchings/objects/func_800159C8.s diff --git a/asm/non_matchings/unknown_00BC20/func_80016500.s b/asm/non_matchings/objects/func_80016500.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_80016500.s rename to asm/non_matchings/objects/func_80016500.s diff --git a/asm/non_matchings/unknown_00BC20/func_80016748.s b/asm/non_matchings/objects/func_80016748.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_80016748.s rename to asm/non_matchings/objects/func_80016748.s diff --git a/asm/non_matchings/unknown_00BC20/func_80016BC4.s b/asm/non_matchings/objects/func_80016BC4.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_80016BC4.s rename to asm/non_matchings/objects/func_80016BC4.s diff --git a/asm/non_matchings/unknown_00BC20/func_80016C68.s b/asm/non_matchings/objects/func_80016C68.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_80016C68.s rename to asm/non_matchings/objects/func_80016C68.s diff --git a/asm/non_matchings/unknown_00BC20/func_80016DE8.s b/asm/non_matchings/objects/func_80016DE8.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_80016DE8.s rename to asm/non_matchings/objects/func_80016DE8.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001709C.s b/asm/non_matchings/objects/func_8001709C.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001709C.s rename to asm/non_matchings/objects/func_8001709C.s diff --git a/asm/non_matchings/unknown_00BC20/func_80017248.s b/asm/non_matchings/objects/func_80017248.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_80017248.s rename to asm/non_matchings/objects/func_80017248.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001790C.s b/asm/non_matchings/objects/func_8001790C.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001790C.s rename to asm/non_matchings/objects/func_8001790C.s diff --git a/asm/non_matchings/unknown_00BC20/func_80017978.s b/asm/non_matchings/objects/func_80017978.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_80017978.s rename to asm/non_matchings/objects/func_80017978.s diff --git a/asm/non_matchings/unknown_00BC20/func_80017A18.s b/asm/non_matchings/objects/func_80017A18.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_80017A18.s rename to asm/non_matchings/objects/func_80017A18.s diff --git a/asm/non_matchings/unknown_00BC20/func_80017E98.s b/asm/non_matchings/objects/func_80017E98.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_80017E98.s rename to asm/non_matchings/objects/func_80017E98.s diff --git a/asm/non_matchings/unknown_00BC20/func_800185E4.s b/asm/non_matchings/objects/func_800185E4.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_800185E4.s rename to asm/non_matchings/objects/func_800185E4.s diff --git a/asm/non_matchings/unknown_00BC20/func_80018CE0.s b/asm/non_matchings/objects/func_80018CE0.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_80018CE0.s rename to asm/non_matchings/objects/func_80018CE0.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001955C.s b/asm/non_matchings/objects/func_8001955C.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001955C.s rename to asm/non_matchings/objects/func_8001955C.s diff --git a/asm/non_matchings/unknown_00BC20/func_80019808.s b/asm/non_matchings/objects/func_80019808.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_80019808.s rename to asm/non_matchings/objects/func_80019808.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001A7D8.s b/asm/non_matchings/objects/func_8001A7D8.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001A7D8.s rename to asm/non_matchings/objects/func_8001A7D8.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001A8F4.s b/asm/non_matchings/objects/func_8001A8F4.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001A8F4.s rename to asm/non_matchings/objects/func_8001A8F4.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001AE64.s b/asm/non_matchings/objects/func_8001AE64.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001AE64.s rename to asm/non_matchings/objects/func_8001AE64.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001B2F0.s b/asm/non_matchings/objects/func_8001B2F0.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001B2F0.s rename to asm/non_matchings/objects/func_8001B2F0.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001B3C4.s b/asm/non_matchings/objects/func_8001B3C4.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001B3C4.s rename to asm/non_matchings/objects/func_8001B3C4.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001B4FC.s b/asm/non_matchings/objects/func_8001B4FC.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001B4FC.s rename to asm/non_matchings/objects/func_8001B4FC.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001B668.s b/asm/non_matchings/objects/func_8001B668.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001B668.s rename to asm/non_matchings/objects/func_8001B668.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001B7A8.s b/asm/non_matchings/objects/func_8001B7A8.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001B7A8.s rename to asm/non_matchings/objects/func_8001B7A8.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001B834.s b/asm/non_matchings/objects/func_8001B834.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001B834.s rename to asm/non_matchings/objects/func_8001B834.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001B974.s b/asm/non_matchings/objects/func_8001B974.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001B974.s rename to asm/non_matchings/objects/func_8001B974.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001BB18.s b/asm/non_matchings/objects/func_8001BB18.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001BB18.s rename to asm/non_matchings/objects/func_8001BB18.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001BB68.s b/asm/non_matchings/objects/func_8001BB68.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001BB68.s rename to asm/non_matchings/objects/func_8001BB68.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001BC54.s b/asm/non_matchings/objects/func_8001BC54.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001BC54.s rename to asm/non_matchings/objects/func_8001BC54.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001BDD4.s b/asm/non_matchings/objects/func_8001BDD4.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001BDD4.s rename to asm/non_matchings/objects/func_8001BDD4.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001BF20.s b/asm/non_matchings/objects/func_8001BF20.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001BF20.s rename to asm/non_matchings/objects/func_8001BF20.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001C418.s b/asm/non_matchings/objects/func_8001C418.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001C418.s rename to asm/non_matchings/objects/func_8001C418.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001C48C.s b/asm/non_matchings/objects/func_8001C48C.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001C48C.s rename to asm/non_matchings/objects/func_8001C48C.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001C524.s b/asm/non_matchings/objects/func_8001C524.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001C524.s rename to asm/non_matchings/objects/func_8001C524.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001C6C4.s b/asm/non_matchings/objects/func_8001C6C4.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001C6C4.s rename to asm/non_matchings/objects/func_8001C6C4.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001CC48.s b/asm/non_matchings/objects/func_8001CC48.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001CC48.s rename to asm/non_matchings/objects/func_8001CC48.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001CD28.s b/asm/non_matchings/objects/func_8001CD28.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001CD28.s rename to asm/non_matchings/objects/func_8001CD28.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001D258.s b/asm/non_matchings/objects/func_8001D258.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001D258.s rename to asm/non_matchings/objects/func_8001D258.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001D2A0.s b/asm/non_matchings/objects/func_8001D2A0.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001D2A0.s rename to asm/non_matchings/objects/func_8001D2A0.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001D4B4.s b/asm/non_matchings/objects/func_8001D4B4.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001D4B4.s rename to asm/non_matchings/objects/func_8001D4B4.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001D5E0.s b/asm/non_matchings/objects/func_8001D5E0.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001D5E0.s rename to asm/non_matchings/objects/func_8001D5E0.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001E13C.s b/asm/non_matchings/objects/func_8001E13C.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001E13C.s rename to asm/non_matchings/objects/func_8001E13C.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001E4C4.s b/asm/non_matchings/objects/func_8001E4C4.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001E4C4.s rename to asm/non_matchings/objects/func_8001E4C4.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001E6EC.s b/asm/non_matchings/objects/func_8001E6EC.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001E6EC.s rename to asm/non_matchings/objects/func_8001E6EC.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001E89C.s b/asm/non_matchings/objects/func_8001E89C.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001E89C.s rename to asm/non_matchings/objects/func_8001E89C.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001E93C.s b/asm/non_matchings/objects/func_8001E93C.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001E93C.s rename to asm/non_matchings/objects/func_8001E93C.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001EE74.s b/asm/non_matchings/objects/func_8001EE74.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001EE74.s rename to asm/non_matchings/objects/func_8001EE74.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001EFA4.s b/asm/non_matchings/objects/func_8001EFA4.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001EFA4.s rename to asm/non_matchings/objects/func_8001EFA4.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001F23C.s b/asm/non_matchings/objects/func_8001F23C.s similarity index 97% rename from asm/non_matchings/unknown_00BC20/func_8001F23C.s rename to asm/non_matchings/objects/func_8001F23C.s index 5ad0a9e5..7ab76f30 100644 --- a/asm/non_matchings/unknown_00BC20/func_8001F23C.s +++ b/asm/non_matchings/objects/func_8001F23C.s @@ -24,7 +24,7 @@ glabel func_8001F23C /* 01FE94 8001F294 A3AA003D */ sb $t2, 0x3d($sp) /* 01FE98 8001F298 84AB000C */ lh $t3, 0xc($a1) /* 01FE9C 8001F29C 24050001 */ li $a1, 1 -/* 01FEA0 8001F2A0 0C003A95 */ jal func_8000EA54 +/* 01FEA0 8001F2A0 0C003A95 */ jal spawn_object /* 01FEA4 8001F2A4 A3AB003C */ sb $t3, 0x3c($sp) /* 01FEA8 8001F2A8 AE820064 */ sw $v0, 0x64($s4) /* 01FEAC 8001F2AC 1040000D */ beqz $v0, .L8001F2E4 @@ -67,7 +67,7 @@ glabel func_8001F23C /* 01FF38 8001F338 00008025 */ move $s0, $zero /* 01FF3C 8001F33C 02A02025 */ move $a0, $s5 .L8001F340: -/* 01FF40 8001F340 0C003A95 */ jal func_8000EA54 +/* 01FF40 8001F340 0C003A95 */ jal spawn_object /* 01FF44 8001F344 24050001 */ li $a1, 1 /* 01FF48 8001F348 1040000B */ beqz $v0, .L8001F378 /* 01FF4C 8001F34C 00408825 */ move $s1, $v0 diff --git a/asm/non_matchings/unknown_00BC20/func_8001F3EC.s b/asm/non_matchings/objects/func_8001F3EC.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001F3EC.s rename to asm/non_matchings/objects/func_8001F3EC.s diff --git a/asm/non_matchings/unknown_00BC20/func_8001F460.s b/asm/non_matchings/objects/func_8001F460.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8001F460.s rename to asm/non_matchings/objects/func_8001F460.s diff --git a/asm/non_matchings/unknown_00BC20/func_80021104.s b/asm/non_matchings/objects/func_80021104.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_80021104.s rename to asm/non_matchings/objects/func_80021104.s diff --git a/asm/non_matchings/unknown_00BC20/func_8002125C.s b/asm/non_matchings/objects/func_8002125C.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8002125C.s rename to asm/non_matchings/objects/func_8002125C.s diff --git a/asm/non_matchings/unknown_00BC20/func_80021400.s b/asm/non_matchings/objects/func_80021400.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_80021400.s rename to asm/non_matchings/objects/func_80021400.s diff --git a/asm/non_matchings/unknown_00BC20/func_800214E4.s b/asm/non_matchings/objects/func_800214E4.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_800214E4.s rename to asm/non_matchings/objects/func_800214E4.s diff --git a/asm/non_matchings/unknown_00BC20/func_80021600.s b/asm/non_matchings/objects/func_80021600.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_80021600.s rename to asm/non_matchings/objects/func_80021600.s diff --git a/asm/non_matchings/unknown_00BC20/func_8002263C.s b/asm/non_matchings/objects/func_8002263C.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8002263C.s rename to asm/non_matchings/objects/func_8002263C.s diff --git a/asm/non_matchings/unknown_00BC20/func_8002277C.s b/asm/non_matchings/objects/func_8002277C.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8002277C.s rename to asm/non_matchings/objects/func_8002277C.s diff --git a/asm/non_matchings/unknown_00BC20/func_800228B0.s b/asm/non_matchings/objects/func_800228B0.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_800228B0.s rename to asm/non_matchings/objects/func_800228B0.s diff --git a/asm/non_matchings/unknown_00BC20/func_80022948.s b/asm/non_matchings/objects/func_80022948.s similarity index 99% rename from asm/non_matchings/unknown_00BC20/func_80022948.s rename to asm/non_matchings/objects/func_80022948.s index 1c49e0ac..a7fdafbc 100644 --- a/asm/non_matchings/unknown_00BC20/func_80022948.s +++ b/asm/non_matchings/objects/func_80022948.s @@ -164,7 +164,7 @@ glabel func_80022948 /* 0237C4 80022BC4 0C01867D */ jal func_800619F4 /* 0237C8 80022BC8 A7B90064 */ sh $t9, 0x64($sp) /* 0237CC 80022BCC 27A40058 */ addiu $a0, $sp, 0x58 -/* 0237D0 80022BD0 0C003A95 */ jal func_8000EA54 +/* 0237D0 80022BD0 0C003A95 */ jal spawn_object /* 0237D4 80022BD4 24050001 */ li $a1, 1 /* 0237D8 80022BD8 3C0B8012 */ lui $t3, %hi(gObjectStructArrayPtr) # $t3, 0x8012 /* 0237DC 80022BDC 8D6BAEE4 */ lw $t3, %lo(gObjectStructArrayPtr)($t3) diff --git a/asm/non_matchings/unknown_00BC20/func_80022CFC.s b/asm/non_matchings/objects/func_80022CFC.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_80022CFC.s rename to asm/non_matchings/objects/func_80022CFC.s diff --git a/asm/non_matchings/unknown_00BC20/func_80022E18.s b/asm/non_matchings/objects/func_80022E18.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_80022E18.s rename to asm/non_matchings/objects/func_80022E18.s diff --git a/asm/non_matchings/unknown_00BC20/func_800230D0.s b/asm/non_matchings/objects/func_800230D0.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_800230D0.s rename to asm/non_matchings/objects/func_800230D0.s diff --git a/asm/non_matchings/unknown_00BC20/func_8002342C.s b/asm/non_matchings/objects/func_8002342C.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_8002342C.s rename to asm/non_matchings/objects/func_8002342C.s diff --git a/asm/non_matchings/unknown_00BC20/func_800235DC.s b/asm/non_matchings/objects/func_800235DC.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/func_800235DC.s rename to asm/non_matchings/objects/func_800235DC.s diff --git a/asm/non_matchings/unknown_00BC20/gParticlePtrList_flush.s b/asm/non_matchings/objects/gParticlePtrList_flush.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/gParticlePtrList_flush.s rename to asm/non_matchings/objects/gParticlePtrList_flush.s diff --git a/asm/non_matchings/unknown_00BC20/render_3d_billboard.s b/asm/non_matchings/objects/render_3d_billboard.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/render_3d_billboard.s rename to asm/non_matchings/objects/render_3d_billboard.s diff --git a/asm/non_matchings/unknown_00BC20/render_3d_model.s b/asm/non_matchings/objects/render_3d_model.s similarity index 100% rename from asm/non_matchings/unknown_00BC20/render_3d_model.s rename to asm/non_matchings/objects/render_3d_model.s diff --git a/asm/non_matchings/unknown_00BC20/func_8000EA54.s b/asm/non_matchings/objects/spawn_object.s similarity index 99% rename from asm/non_matchings/unknown_00BC20/func_8000EA54.s rename to asm/non_matchings/objects/spawn_object.s index 27b18dad..c44a4aaa 100644 --- a/asm/non_matchings/unknown_00BC20/func_8000EA54.s +++ b/asm/non_matchings/objects/spawn_object.s @@ -3,7 +3,7 @@ glabel jpt_800E51B4 .word L8000ECD8, L8000EDE0, L8000EDE0, L8000EDE0, L8000EDE0, L8000EDE0, L8000EDE0, L8000EDE0, L8000EDE0, L8000EDE0, L8000EDE0, L8000EDE0, L8000EDE0, L8000EDE0, L8000EDE0, L8000ED98, L8000EDE0, L8000EDE0, L8000EDE0, L8000EDE0, L8000EDE0, L8000EDE0, L8000EDE0, L8000EDE0, L8000ECF4, L8000EDE0, L8000EDE0, L8000EDE0, L8000EDE0, L8000ED10, L8000EDE0, L8000EDE0, L8000EDE0, L8000ED40, L8000EDE0, L8000EDE0, L8000EDE0, L8000EDE0, L8000ED54 .text -glabel func_8000EA54 +glabel spawn_object /* 00F654 8000EA54 27BDFF98 */ addiu $sp, $sp, -0x68 /* 00F658 8000EA58 AFBF0024 */ sw $ra, 0x24($sp) /* 00F65C 8000EA5C AFB30020 */ sw $s3, 0x20($sp) diff --git a/asm/non_matchings/racer/func_8004DE38.s b/asm/non_matchings/racer/func_8004DE38.s index 05175cc1..f2d98476 100644 --- a/asm/non_matchings/racer/func_8004DE38.s +++ b/asm/non_matchings/racer/func_8004DE38.s @@ -1282,7 +1282,7 @@ glabel L8004ED88 /* 04FC5C 8004F05C A3AF0065 */ sb $t7, 0x65($sp) /* 04FC60 8004F060 27A40064 */ addiu $a0, $sp, 0x64 /* 04FC64 8004F064 24050001 */ li $a1, 1 -/* 04FC68 8004F068 0C003A95 */ jal func_8000EA54 +/* 04FC68 8004F068 0C003A95 */ jal spawn_object /* 04FC6C 8004F06C AFA20078 */ sw $v0, 0x78($sp) /* 04FC70 8004F070 8FA30078 */ lw $v1, 0x78($sp) /* 04FC74 8004F074 10400005 */ beqz $v0, .L8004F08C diff --git a/asm/non_matchings/racer/func_80055EC0.s b/asm/non_matchings/racer/func_80055EC0.s index c18d64ce..35c2b677 100644 --- a/asm/non_matchings/racer/func_80055EC0.s +++ b/asm/non_matchings/racer/func_80055EC0.s @@ -590,7 +590,7 @@ glabel L80056620 /* 057314 80056714 460021A4 */ cvt.w.s $f6, $f4 /* 057318 80056718 440E3000 */ mfc1 $t6, $f6 /* 05731C 8005671C 44CDF800 */ ctc1 $t5, $31 -/* 057320 80056720 0C003A95 */ jal func_8000EA54 +/* 057320 80056720 0C003A95 */ jal spawn_object /* 057324 80056724 A7AE0086 */ sh $t6, 0x86($sp) /* 057328 80056728 8FA8007C */ lw $t0, 0x7c($sp) /* 05732C 8005672C 8FAA006C */ lw $t2, 0x6c($sp) diff --git a/asm/non_matchings/racer/func_800576E0.s b/asm/non_matchings/racer/func_800576E0.s index 3f7a8d60..dda42a5b 100644 --- a/asm/non_matchings/racer/func_800576E0.s +++ b/asm/non_matchings/racer/func_800576E0.s @@ -106,7 +106,7 @@ glabel func_800576E0 /* 058478 80057878 00000000 */ nop /* 05847C 8005787C 12820033 */ beq $s4, $v0, .L8005794C /* 058480 80057880 02A02025 */ move $a0, $s5 -/* 058484 80057884 0C003A95 */ jal func_8000EA54 +/* 058484 80057884 0C003A95 */ jal spawn_object /* 058488 80057888 02402825 */ move $a1, $s2 /* 05848C 8005788C 1040002F */ beqz $v0, .L8005794C /* 058490 80057890 00000000 */ nop diff --git a/asm/non_matchings/unknown_032760/func_8003FC44.s b/asm/non_matchings/unknown_032760/func_8003FC44.s index 48cbd17f..d3e2321a 100644 --- a/asm/non_matchings/unknown_032760/func_8003FC44.s +++ b/asm/non_matchings/unknown_032760/func_8003FC44.s @@ -38,7 +38,7 @@ glabel func_8003FC44 /* 0408D4 8003FCD4 24050001 */ li $a1, 1 /* 0408D8 8003FCD8 A7AF0026 */ sh $t7, 0x26($sp) /* 0408DC 8003FCDC A3AE002C */ sb $t6, 0x2c($sp) -/* 0408E0 8003FCE0 0C003A95 */ jal func_8000EA54 +/* 0408E0 8003FCE0 0C003A95 */ jal spawn_object /* 0408E4 8003FCE4 A7AC002A */ sh $t4, 0x2a($sp) /* 0408E8 8003FCE8 10400011 */ beqz $v0, .L8003FD30 /* 0408EC 8003FCEC 3C01400C */ li $at, 0x400C0000 # 2.187500 diff --git a/asm/non_matchings/unknown_032760/obj_init_animation.s b/asm/non_matchings/unknown_032760/obj_init_animation.s deleted file mode 100644 index f5b4067c..00000000 --- a/asm/non_matchings/unknown_032760/obj_init_animation.s +++ /dev/null @@ -1,197 +0,0 @@ -glabel obj_init_animation -/* 038618 80037A18 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 03861C 80037A1C AFBF001C */ sw $ra, 0x1c($sp) -/* 038620 80037A20 AFB00018 */ sw $s0, 0x18($sp) -/* 038624 80037A24 AFA60030 */ sw $a2, 0x30($sp) -/* 038628 80037A28 90AF000B */ lbu $t7, 0xb($a1) -/* 03862C 80037A2C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 038630 80037A30 448F2000 */ mtc1 $t7, $f4 -/* 038634 80037A34 44811000 */ mtc1 $at, $f2 -/* 038638 80037A38 46802020 */ cvt.s.w $f0, $f4 -/* 03863C 80037A3C 3C014280 */ li $at, 0x42800000 # 64.000000 -/* 038640 80037A40 44813000 */ mtc1 $at, $f6 -/* 038644 80037A44 4602003C */ c.lt.s $f0, $f2 -/* 038648 80037A48 00808025 */ move $s0, $a0 -/* 03864C 80037A4C 45000002 */ bc1f .L80037A58 -/* 038650 80037A50 00A03825 */ move $a3, $a1 -/* 038654 80037A54 46001006 */ mov.s $f0, $f2 -.L80037A58: -/* 038658 80037A58 00000000 */ nop -/* 03865C 80037A5C 46060003 */ div.s $f0, $f0, $f6 -/* 038660 80037A60 8E180040 */ lw $t8, 0x40($s0) -/* 038664 80037A64 2401FFFE */ li $at, -2 -/* 038668 80037A68 C708000C */ lwc1 $f8, 0xc($t8) -/* 03866C 80037A6C 00000000 */ nop -/* 038670 80037A70 46004282 */ mul.s $f10, $f8, $f0 -/* 038674 80037A74 E60A0008 */ swc1 $f10, 8($s0) -/* 038678 80037A78 90F9000A */ lbu $t9, 0xa($a3) -/* 03867C 80037A7C 00000000 */ nop -/* 038680 80037A80 00194200 */ sll $t0, $t9, 8 -/* 038684 80037A84 A6080000 */ sh $t0, ($s0) -/* 038688 80037A88 90E90009 */ lbu $t1, 9($a3) -/* 03868C 80037A8C 00000000 */ nop -/* 038690 80037A90 00095200 */ sll $t2, $t1, 8 -/* 038694 80037A94 A60A0002 */ sh $t2, 2($s0) -/* 038698 80037A98 90EB0008 */ lbu $t3, 8($a3) -/* 03869C 80037A9C 00000000 */ nop -/* 0386A0 80037AA0 000B6200 */ sll $t4, $t3, 8 -/* 0386A4 80037AA4 A60C0004 */ sh $t4, 4($s0) -/* 0386A8 80037AA8 80E40010 */ lb $a0, 0x10($a3) -/* 0386AC 80037AAC 00000000 */ nop -/* 0386B0 80037AB0 14810006 */ bne $a0, $at, .L80037ACC -/* 0386B4 80037AB4 00000000 */ nop -/* 0386B8 80037AB8 0C007CEE */ jal func_8001F3B8 -/* 0386BC 80037ABC AFA7002C */ sw $a3, 0x2c($sp) -/* 0386C0 80037AC0 8FA7002C */ lw $a3, 0x2c($sp) -/* 0386C4 80037AC4 1000000C */ b .L80037AF8 -/* 0386C8 80037AC8 A0E20010 */ sb $v0, 0x10($a3) -.L80037ACC: -/* 0386CC 80037ACC 04810006 */ bgez $a0, .L80037AE8 -/* 0386D0 80037AD0 2881FFFE */ slti $at, $a0, -2 -/* 0386D4 80037AD4 14200004 */ bnez $at, .L80037AE8 -/* 0386D8 80037AD8 00000000 */ nop -/* 0386DC 80037ADC A0E00010 */ sb $zero, 0x10($a3) -/* 0386E0 80037AE0 80E40010 */ lb $a0, 0x10($a3) -/* 0386E4 80037AE4 00000000 */ nop -.L80037AE8: -/* 0386E8 80037AE8 0C007CF2 */ jal func_8001F3C8 -/* 0386EC 80037AEC AFA7002C */ sw $a3, 0x2c($sp) -/* 0386F0 80037AF0 8FA7002C */ lw $a3, 0x2c($sp) -/* 0386F4 80037AF4 00000000 */ nop -.L80037AF8: -/* 0386F8 80037AF8 80E30021 */ lb $v1, 0x21($a3) -/* 0386FC 80037AFC 2401FFFF */ li $at, -1 -/* 038700 80037B00 14610009 */ bne $v1, $at, .L80037B28 -/* 038704 80037B04 24010014 */ li $at, 20 -/* 038708 80037B08 0C007910 */ jal func_8001E440 -/* 03870C 80037B0C AFA7002C */ sw $a3, 0x2c($sp) -/* 038710 80037B10 8FA7002C */ lw $a3, 0x2c($sp) -/* 038714 80037B14 00000000 */ nop -/* 038718 80037B18 A0E20021 */ sb $v0, 0x21($a3) -/* 03871C 80037B1C 80E30021 */ lb $v1, 0x21($a3) -/* 038720 80037B20 00000000 */ nop -/* 038724 80037B24 24010014 */ li $at, 20 -.L80037B28: -/* 038728 80037B28 14610005 */ bne $v1, $at, .L80037B40 -/* 03872C 80037B2C 00000000 */ nop -/* 038730 80037B30 80ED0010 */ lb $t5, 0x10($a3) -/* 038734 80037B34 00000000 */ nop -/* 038738 80037B38 35AE0080 */ ori $t6, $t5, 0x80 -/* 03873C 80037B3C A0EE0010 */ sb $t6, 0x10($a3) -.L80037B40: -/* 038740 80037B40 80E40010 */ lb $a0, 0x10($a3) -/* 038744 80037B44 0C007CFB */ jal func_8001F3EC -/* 038748 80037B48 AFA7002C */ sw $a3, 0x2c($sp) -/* 03874C 80037B4C 8FA7002C */ lw $a3, 0x2c($sp) -/* 038750 80037B50 2401FFFE */ li $at, -2 -/* 038754 80037B54 80E30011 */ lb $v1, 0x11($a3) -/* 038758 80037B58 00000000 */ nop -/* 03875C 80037B5C 14610008 */ bne $v1, $at, .L80037B80 -/* 038760 80037B60 00000000 */ nop -/* 038764 80037B64 A0E20011 */ sb $v0, 0x11($a3) -/* 038768 80037B68 80EF0011 */ lb $t7, 0x11($a3) -/* 03876C 80037B6C 00000000 */ nop -/* 038770 80037B70 05E1000D */ bgez $t7, .L80037BA8 -/* 038774 80037B74 00000000 */ nop -/* 038778 80037B78 1000000B */ b .L80037BA8 -/* 03877C 80037B7C A0E00011 */ sb $zero, 0x11($a3) -.L80037B80: -/* 038780 80037B80 04400006 */ bltz $v0, .L80037B9C -/* 038784 80037B84 0062082A */ slt $at, $v1, $v0 -/* 038788 80037B88 14200004 */ bnez $at, .L80037B9C -/* 03878C 80037B8C 00000000 */ nop -/* 038790 80037B90 A0E20011 */ sb $v0, 0x11($a3) -/* 038794 80037B94 80E30011 */ lb $v1, 0x11($a3) -/* 038798 80037B98 00000000 */ nop -.L80037B9C: -/* 03879C 80037B9C 04610002 */ bgez $v1, .L80037BA8 -/* 0387A0 80037BA0 00000000 */ nop -/* 0387A4 80037BA4 A0E00011 */ sb $zero, 0x11($a3) -.L80037BA8: -/* 0387A8 80037BA8 0C0044E4 */ jal func_80011390 -/* 0387AC 80037BAC AFA7002C */ sw $a3, 0x2c($sp) -/* 0387B0 80037BB0 8FA7002C */ lw $a3, 0x2c($sp) -/* 0387B4 80037BB4 00002025 */ move $a0, $zero -/* 0387B8 80037BB8 80F80010 */ lb $t8, 0x10($a3) -/* 0387BC 80037BBC 00000000 */ nop -/* 0387C0 80037BC0 AE18007C */ sw $t8, 0x7c($s0) -/* 0387C4 80037BC4 8FB90030 */ lw $t9, 0x30($sp) -/* 0387C8 80037BC8 00000000 */ nop -/* 0387CC 80037BCC AE190078 */ sw $t9, 0x78($s0) -/* 0387D0 80037BD0 8FA80030 */ lw $t0, 0x30($sp) -/* 0387D4 80037BD4 00000000 */ nop -/* 0387D8 80037BD8 11000008 */ beqz $t0, .L80037BFC -/* 0387DC 80037BDC 00000000 */ nop -/* 0387E0 80037BE0 0C01A955 */ jal get_buttons_pressed_from_player -/* 0387E4 80037BE4 AFA7002C */ sw $a3, 0x2c($sp) -/* 0387E8 80037BE8 8FA7002C */ lw $a3, 0x2c($sp) -/* 0387EC 80037BEC 30490001 */ andi $t1, $v0, 1 -/* 0387F0 80037BF0 11200002 */ beqz $t1, .L80037BFC -/* 0387F4 80037BF4 240A0002 */ li $t2, 2 -/* 0387F8 80037BF8 AE0A0078 */ sw $t2, 0x78($s0) -.L80037BFC: -/* 0387FC 80037BFC 0C007910 */ jal func_8001E440 -/* 038800 80037C00 AFA7002C */ sw $a3, 0x2c($sp) -/* 038804 80037C04 8FA7002C */ lw $a3, 0x2c($sp) -/* 038808 80037C08 24010014 */ li $at, 20 -/* 03880C 80037C0C 80E30021 */ lb $v1, 0x21($a3) -/* 038810 80037C10 00000000 */ nop -/* 038814 80037C14 10430003 */ beq $v0, $v1, .L80037C24 -/* 038818 80037C18 00000000 */ nop -/* 03881C 80037C1C 14610012 */ bne $v1, $at, .L80037C68 -/* 038820 80037C20 00000000 */ nop -.L80037C24: -/* 038824 80037C24 8E0B0064 */ lw $t3, 0x64($s0) -/* 038828 80037C28 00000000 */ nop -/* 03882C 80037C2C 1560000E */ bnez $t3, .L80037C68 -/* 038830 80037C30 00000000 */ nop -/* 038834 80037C34 80EC0011 */ lb $t4, 0x11($a3) -/* 038838 80037C38 00000000 */ nop -/* 03883C 80037C3C 1580000A */ bnez $t4, .L80037C68 -/* 038840 80037C40 00000000 */ nop -/* 038844 80037C44 84ED000C */ lh $t5, 0xc($a3) -/* 038848 80037C48 2401FFFF */ li $at, -1 -/* 03884C 80037C4C 11A10006 */ beq $t5, $at, .L80037C68 -/* 038850 80037C50 02002025 */ move $a0, $s0 -/* 038854 80037C54 00E02825 */ move $a1, $a3 -/* 038858 80037C58 0C007C8F */ jal func_8001F23C -/* 03885C 80037C5C AFA7002C */ sw $a3, 0x2c($sp) -/* 038860 80037C60 8FA7002C */ lw $a3, 0x2c($sp) -/* 038864 80037C64 00000000 */ nop -.L80037C68: -/* 038868 80037C68 8E020064 */ lw $v0, 0x64($s0) -/* 03886C 80037C6C 02002025 */ move $a0, $s0 -/* 038870 80037C70 10400012 */ beqz $v0, .L80037CBC -/* 038874 80037C74 00402825 */ move $a1, $v0 -/* 038878 80037C78 AFA20024 */ sw $v0, 0x24($sp) -/* 03887C 80037C7C 0C007BE9 */ jal func_8001EFA4 -/* 038880 80037C80 AFA7002C */ sw $a3, 0x2c($sp) -/* 038884 80037C84 8FA7002C */ lw $a3, 0x2c($sp) -/* 038888 80037C88 8FA50024 */ lw $a1, 0x24($sp) -/* 03888C 80037C8C 80EE0011 */ lb $t6, 0x11($a3) -/* 038890 80037C90 00000000 */ nop -/* 038894 80037C94 15C00006 */ bnez $t6, .L80037CB0 -/* 038898 80037C98 00000000 */ nop -/* 03889C 80037C9C 84EF000C */ lh $t7, 0xc($a3) -/* 0388A0 80037CA0 84B8004A */ lh $t8, 0x4a($a1) -/* 0388A4 80037CA4 00000000 */ nop -/* 0388A8 80037CA8 11F80004 */ beq $t7, $t8, .L80037CBC -/* 0388AC 80037CAC 00000000 */ nop -.L80037CB0: -/* 0388B0 80037CB0 0C003FEE */ jal gParticlePtrList_addObject -/* 0388B4 80037CB4 00A02025 */ move $a0, $a1 -/* 0388B8 80037CB8 AE000064 */ sw $zero, 0x64($s0) -.L80037CBC: -/* 0388BC 80037CBC 8E04007C */ lw $a0, 0x7c($s0) -/* 0388C0 80037CC0 0C008580 */ jal func_80021600 -/* 0388C4 80037CC4 00000000 */ nop -/* 0388C8 80037CC8 10400004 */ beqz $v0, .L80037CDC -/* 0388CC 80037CCC 8FBF001C */ lw $ra, 0x1c($sp) -/* 0388D0 80037CD0 0C007B9D */ jal func_8001EE74 -/* 0388D4 80037CD4 00000000 */ nop -/* 0388D8 80037CD8 8FBF001C */ lw $ra, 0x1c($sp) -.L80037CDC: -/* 0388DC 80037CDC 8FB00018 */ lw $s0, 0x18($sp) -/* 0388E0 80037CE0 03E00008 */ jr $ra -/* 0388E4 80037CE4 27BD0028 */ addiu $sp, $sp, 0x28 - diff --git a/asm/non_matchings/unknown_032760/obj_init_audio.s b/asm/non_matchings/unknown_032760/obj_init_audio.s deleted file mode 100644 index dfcb8d2b..00000000 --- a/asm/non_matchings/unknown_032760/obj_init_audio.s +++ /dev/null @@ -1,103 +0,0 @@ -glabel obj_init_audio -/* 040968 8003FD68 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* 04096C 8003FD6C AFBF003C */ sw $ra, 0x3c($sp) -/* 040970 8003FD70 AFB00038 */ sw $s0, 0x38($sp) -/* 040974 8003FD74 AFA40048 */ sw $a0, 0x48($sp) -/* 040978 8003FD78 8C830064 */ lw $v1, 0x64($a0) -/* 04097C 8003FD7C 94AF0008 */ lhu $t7, 8($a1) -/* 040980 8003FD80 00A08025 */ move $s0, $a1 -/* 040984 8003FD84 A46F0000 */ sh $t7, ($v1) -/* 040988 8003FD88 94B8000A */ lhu $t8, 0xa($a1) -/* 04098C 8003FD8C 31E4FFFF */ andi $a0, $t7, 0xffff -/* 040990 8003FD90 A4780002 */ sh $t8, 2($v1) -/* 040994 8003FD94 90B9000F */ lbu $t9, 0xf($a1) -/* 040998 8003FD98 00000000 */ nop -/* 04099C 8003FD9C A079000C */ sb $t9, 0xc($v1) -/* 0409A0 8003FDA0 90A8000E */ lbu $t0, 0xe($a1) -/* 0409A4 8003FDA4 00000000 */ nop -/* 0409A8 8003FDA8 A0680006 */ sb $t0, 6($v1) -/* 0409AC 8003FDAC 90A9000C */ lbu $t1, 0xc($a1) -/* 0409B0 8003FDB0 00000000 */ nop -/* 0409B4 8003FDB4 A0690004 */ sb $t1, 4($v1) -/* 0409B8 8003FDB8 90AA000D */ lbu $t2, 0xd($a1) -/* 0409BC 8003FDBC 00000000 */ nop -/* 0409C0 8003FDC0 A06A0005 */ sb $t2, 5($v1) -/* 0409C4 8003FDC4 90AB0010 */ lbu $t3, 0x10($a1) -/* 0409C8 8003FDC8 AC600008 */ sw $zero, 8($v1) -/* 0409CC 8003FDCC A06B000D */ sb $t3, 0xd($v1) -/* 0409D0 8003FDD0 0C00086C */ jal ALBankFile_80115D14_GetSoundDecayTime -/* 0409D4 8003FDD4 AFA30044 */ sw $v1, 0x44($sp) -/* 0409D8 8003FDD8 8FA30044 */ lw $v1, 0x44($sp) -/* 0409DC 8003FDDC 10400021 */ beqz $v0, .L8003FE64 -/* 0409E0 8003FDE0 2418000A */ li $t8, 10 -/* 0409E4 8003FDE4 860C0002 */ lh $t4, 2($s0) -/* 0409E8 8003FDE8 860D0004 */ lh $t5, 4($s0) -/* 0409EC 8003FDEC 860E0006 */ lh $t6, 6($s0) -/* 0409F0 8003FDF0 94640000 */ lhu $a0, ($v1) -/* 0409F4 8003FDF4 240F0009 */ li $t7, 9 -/* 0409F8 8003FDF8 AFAF0010 */ sw $t7, 0x10($sp) -/* 0409FC 8003FDFC 90780005 */ lbu $t8, 5($v1) -/* 040A00 8003FE00 448C2000 */ mtc1 $t4, $f4 -/* 040A04 8003FE04 AFB80014 */ sw $t8, 0x14($sp) -/* 040A08 8003FE08 90790004 */ lbu $t9, 4($v1) -/* 040A0C 8003FE0C 448D3000 */ mtc1 $t5, $f6 -/* 040A10 8003FE10 AFB90018 */ sw $t9, 0x18($sp) -/* 040A14 8003FE14 94680002 */ lhu $t0, 2($v1) -/* 040A18 8003FE18 448E4000 */ mtc1 $t6, $f8 -/* 040A1C 8003FE1C AFA8001C */ sw $t0, 0x1c($sp) -/* 040A20 8003FE20 9069000C */ lbu $t1, 0xc($v1) -/* 040A24 8003FE24 46802120 */ cvt.s.w $f4, $f4 -/* 040A28 8003FE28 AFA90020 */ sw $t1, 0x20($sp) -/* 040A2C 8003FE2C 906A0006 */ lbu $t2, 6($v1) -/* 040A30 8003FE30 468031A0 */ cvt.s.w $f6, $f6 -/* 040A34 8003FE34 AFAA0024 */ sw $t2, 0x24($sp) -/* 040A38 8003FE38 906B000D */ lbu $t3, 0xd($v1) -/* 040A3C 8003FE3C 46804220 */ cvt.s.w $f8, $f8 -/* 040A40 8003FE40 44063000 */ mfc1 $a2, $f6 -/* 040A44 8003FE44 44052000 */ mfc1 $a1, $f4 -/* 040A48 8003FE48 44074000 */ mfc1 $a3, $f8 -/* 040A4C 8003FE4C 246C0008 */ addiu $t4, $v1, 8 -/* 040A50 8003FE50 AFAC002C */ sw $t4, 0x2c($sp) -/* 040A54 8003FE54 0C0025D3 */ jal func_8000974C -/* 040A58 8003FE58 AFAB0028 */ sw $t3, 0x28($sp) -/* 040A5C 8003FE5C 1000001F */ b .L8003FEDC -/* 040A60 8003FE60 8FA40048 */ lw $a0, 0x48($sp) -.L8003FE64: -/* 040A64 8003FE64 860D0002 */ lh $t5, 2($s0) -/* 040A68 8003FE68 860E0004 */ lh $t6, 4($s0) -/* 040A6C 8003FE6C 860F0006 */ lh $t7, 6($s0) -/* 040A70 8003FE70 94640000 */ lhu $a0, ($v1) -/* 040A74 8003FE74 AFB80010 */ sw $t8, 0x10($sp) -/* 040A78 8003FE78 90790005 */ lbu $t9, 5($v1) -/* 040A7C 8003FE7C 448D5000 */ mtc1 $t5, $f10 -/* 040A80 8003FE80 AFB90014 */ sw $t9, 0x14($sp) -/* 040A84 8003FE84 90680004 */ lbu $t0, 4($v1) -/* 040A88 8003FE88 448E8000 */ mtc1 $t6, $f16 -/* 040A8C 8003FE8C AFA80018 */ sw $t0, 0x18($sp) -/* 040A90 8003FE90 94690002 */ lhu $t1, 2($v1) -/* 040A94 8003FE94 448F9000 */ mtc1 $t7, $f18 -/* 040A98 8003FE98 AFA9001C */ sw $t1, 0x1c($sp) -/* 040A9C 8003FE9C 906A000C */ lbu $t2, 0xc($v1) -/* 040AA0 8003FEA0 468052A0 */ cvt.s.w $f10, $f10 -/* 040AA4 8003FEA4 AFAA0020 */ sw $t2, 0x20($sp) -/* 040AA8 8003FEA8 906B0006 */ lbu $t3, 6($v1) -/* 040AAC 8003FEAC 46808420 */ cvt.s.w $f16, $f16 -/* 040AB0 8003FEB0 AFAB0024 */ sw $t3, 0x24($sp) -/* 040AB4 8003FEB4 906C000D */ lbu $t4, 0xd($v1) -/* 040AB8 8003FEB8 468094A0 */ cvt.s.w $f18, $f18 -/* 040ABC 8003FEBC 44068000 */ mfc1 $a2, $f16 -/* 040AC0 8003FEC0 44055000 */ mfc1 $a1, $f10 -/* 040AC4 8003FEC4 44079000 */ mfc1 $a3, $f18 -/* 040AC8 8003FEC8 246D0008 */ addiu $t5, $v1, 8 -/* 040ACC 8003FECC AFAD002C */ sw $t5, 0x2c($sp) -/* 040AD0 8003FED0 0C0025D3 */ jal func_8000974C -/* 040AD4 8003FED4 AFAC0028 */ sw $t4, 0x28($sp) -/* 040AD8 8003FED8 8FA40048 */ lw $a0, 0x48($sp) -.L8003FEDC: -/* 040ADC 8003FEDC 0C003FEE */ jal gParticlePtrList_addObject -/* 040AE0 8003FEE0 00000000 */ nop -/* 040AE4 8003FEE4 8FBF003C */ lw $ra, 0x3c($sp) -/* 040AE8 8003FEE8 8FB00038 */ lw $s0, 0x38($sp) -/* 040AEC 8003FEEC 03E00008 */ jr $ra -/* 040AF0 8003FEF0 27BD0048 */ addiu $sp, $sp, 0x48 - diff --git a/asm/non_matchings/unknown_032760/obj_init_bombexplosion.s b/asm/non_matchings/unknown_032760/obj_init_bombexplosion.s deleted file mode 100644 index 8baeaa00..00000000 --- a/asm/non_matchings/unknown_032760/obj_init_bombexplosion.s +++ /dev/null @@ -1,35 +0,0 @@ -glabel obj_init_bombexplosion -/* 039774 80038B74 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 039778 80038B78 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 03977C 80038B7C 44812000 */ mtc1 $at, $f4 -/* 039780 80038B80 AFBF0014 */ sw $ra, 0x14($sp) -/* 039784 80038B84 AFA5001C */ sw $a1, 0x1c($sp) -/* 039788 80038B88 00803025 */ move $a2, $a0 -/* 03978C 80038B8C A4800018 */ sh $zero, 0x18($a0) -/* 039790 80038B90 E4840008 */ swc1 $f4, 8($a0) -/* 039794 80038B94 8CCE0040 */ lw $t6, 0x40($a2) -/* 039798 80038B98 00002025 */ move $a0, $zero -/* 03979C 80038B9C 81C50055 */ lb $a1, 0x55($t6) -/* 0397A0 80038BA0 AFA60018 */ sw $a2, 0x18($sp) -/* 0397A4 80038BA4 0C01BE53 */ jal get_random_number_from_range -/* 0397A8 80038BA8 24A5FFFF */ addiu $a1, $a1, -1 -/* 0397AC 80038BAC 8FA4001C */ lw $a0, 0x1c($sp) -/* 0397B0 80038BB0 8FA60018 */ lw $a2, 0x18($sp) -/* 0397B4 80038BB4 240F00FF */ li $t7, 255 -/* 0397B8 80038BB8 A0C2003A */ sb $v0, 0x3a($a2) -/* 0397BC 80038BBC ACC00078 */ sw $zero, 0x78($a2) -/* 0397C0 80038BC0 ACCF007C */ sw $t7, 0x7c($a2) -/* 0397C4 80038BC4 80830008 */ lb $v1, 8($a0) -/* 0397C8 80038BC8 240A0001 */ li $t2, 1 -/* 0397CC 80038BCC 10600004 */ beqz $v1, .L80038BE0 -/* 0397D0 80038BD0 0003CA00 */ sll $t9, $v1, 8 -/* 0397D4 80038BD4 3328FF00 */ andi $t0, $t9, 0xff00 -/* 0397D8 80038BD8 01E84825 */ or $t1, $t7, $t0 -/* 0397DC 80038BDC ACC9007C */ sw $t1, 0x7c($a2) -.L80038BE0: -/* 0397E0 80038BE0 ACCA0074 */ sw $t2, 0x74($a2) -/* 0397E4 80038BE4 8FBF0014 */ lw $ra, 0x14($sp) -/* 0397E8 80038BE8 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0397EC 80038BEC 03E00008 */ jr $ra -/* 0397F0 80038BF0 00000000 */ nop - diff --git a/asm/non_matchings/unknown_032760/obj_init_midifadepoint.s b/asm/non_matchings/unknown_032760/obj_init_midifadepoint.s deleted file mode 100644 index fe5e581c..00000000 --- a/asm/non_matchings/unknown_032760/obj_init_midifadepoint.s +++ /dev/null @@ -1,107 +0,0 @@ -glabel obj_init_midifadepoint -/* 042A80 80041E80 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 042A84 80041E84 AFBF001C */ sw $ra, 0x1c($sp) -/* 042A88 80041E88 AFB10018 */ sw $s1, 0x18($sp) -/* 042A8C 80041E8C AFB00014 */ sw $s0, 0x14($sp) -/* 042A90 80041E90 8C860064 */ lw $a2, 0x64($a0) -/* 042A94 80041E94 94AE000A */ lhu $t6, 0xa($a1) -/* 042A98 80041E98 00A08025 */ move $s0, $a1 -/* 042A9C 80041E9C A4CE0002 */ sh $t6, 2($a2) -/* 042AA0 80041EA0 94AF0008 */ lhu $t7, 8($a1) -/* 042AA4 80041EA4 31D9FFFF */ andi $t9, $t6, 0xffff -/* 042AA8 80041EA8 A4CF0000 */ sh $t7, ($a2) -/* 042AAC 80041EAC 90B8001C */ lbu $t8, 0x1c($a1) -/* 042AB0 80041EB0 31E2FFFF */ andi $v0, $t7, 0xffff -/* 042AB4 80041EB4 0322082A */ slt $at, $t9, $v0 -/* 042AB8 80041EB8 00808825 */ move $s1, $a0 -/* 042ABC 80041EBC 10200003 */ beqz $at, .L80041ECC -/* 042AC0 80041EC0 A0D8001C */ sb $t8, 0x1c($a2) -/* 042AC4 80041EC4 2448000A */ addiu $t0, $v0, 0xa -/* 042AC8 80041EC8 A4C80002 */ sh $t0, 2($a2) -.L80041ECC: -/* 042ACC 80041ECC A6200004 */ sh $zero, 4($s1) -/* 042AD0 80041ED0 A6200002 */ sh $zero, 2($s1) -/* 042AD4 80041ED4 A6200000 */ sh $zero, ($s1) -/* 042AD8 80041ED8 9209000C */ lbu $t1, 0xc($s0) -/* 042ADC 80041EDC 24040003 */ li $a0, 3 -/* 042AE0 80041EE0 A0C9000C */ sb $t1, 0xc($a2) -/* 042AE4 80041EE4 920A000D */ lbu $t2, 0xd($s0) -/* 042AE8 80041EE8 24C20003 */ addiu $v0, $a2, 3 -/* 042AEC 80041EEC A0CA000D */ sb $t2, 0xd($a2) -/* 042AF0 80041EF0 920B000E */ lbu $t3, 0xe($s0) -/* 042AF4 80041EF4 26030003 */ addiu $v1, $s0, 3 -/* 042AF8 80041EF8 2405000F */ li $a1, 15 -/* 042AFC 80041EFC A0CB000E */ sb $t3, 0xe($a2) -.L80041F00: -/* 042B00 80041F00 906C000C */ lbu $t4, 0xc($v1) -/* 042B04 80041F04 24840004 */ addiu $a0, $a0, 4 -/* 042B08 80041F08 A04C000C */ sb $t4, 0xc($v0) -/* 042B0C 80041F0C 906D000D */ lbu $t5, 0xd($v1) -/* 042B10 80041F10 24420004 */ addiu $v0, $v0, 4 -/* 042B14 80041F14 A04D0009 */ sb $t5, 9($v0) -/* 042B18 80041F18 906E000E */ lbu $t6, 0xe($v1) -/* 042B1C 80041F1C 24630004 */ addiu $v1, $v1, 4 -/* 042B20 80041F20 A04E000A */ sb $t6, 0xa($v0) -/* 042B24 80041F24 906F000B */ lbu $t7, 0xb($v1) -/* 042B28 80041F28 1485FFF5 */ bne $a0, $a1, .L80041F00 -/* 042B2C 80041F2C A04F000B */ sb $t7, 0xb($v0) -/* 042B30 80041F30 8E380068 */ lw $t8, 0x68($s1) -/* 042B34 80041F34 00000000 */ nop -/* 042B38 80041F38 8F030000 */ lw $v1, ($t8) -/* 042B3C 80041F3C 00000000 */ nop -/* 042B40 80041F40 8C640000 */ lw $a0, ($v1) -/* 042B44 80041F44 00000000 */ nop -/* 042B48 80041F48 8C820004 */ lw $v0, 4($a0) -/* 042B4C 80041F4C 00000000 */ nop -/* 042B50 80041F50 8459000A */ lh $t9, 0xa($v0) -/* 042B54 80041F54 8448000C */ lh $t0, 0xc($v0) -/* 042B58 80041F58 44992000 */ mtc1 $t9, $f4 -/* 042B5C 80041F5C 44883000 */ mtc1 $t0, $f6 -/* 042B60 80041F60 46802020 */ cvt.s.w $f0, $f4 -/* 042B64 80041F64 8449000E */ lh $t1, 0xe($v0) -/* 042B68 80041F68 AFA60024 */ sw $a2, 0x24($sp) -/* 042B6C 80041F6C 46000282 */ mul.s $f10, $f0, $f0 -/* 042B70 80041F70 44894000 */ mtc1 $t1, $f8 -/* 042B74 80041F74 2442000A */ addiu $v0, $v0, 0xa -/* 042B78 80041F78 468030A0 */ cvt.s.w $f2, $f6 -/* 042B7C 80041F7C 46021402 */ mul.s $f16, $f2, $f2 -/* 042B80 80041F80 468043A0 */ cvt.s.w $f14, $f8 -/* 042B84 80041F84 460E7102 */ mul.s $f4, $f14, $f14 -/* 042B88 80041F88 46105480 */ add.s $f18, $f10, $f16 -/* 042B8C 80041F8C 0C0326B4 */ jal sqrtf -/* 042B90 80041F90 46049300 */ add.s $f12, $f18, $f4 -/* 042B94 80041F94 960A0008 */ lhu $t2, 8($s0) -/* 042B98 80041F98 8FA60024 */ lw $a2, 0x24($sp) -/* 042B9C 80041F9C 448A3000 */ mtc1 $t2, $f6 -/* 042BA0 80041FA0 05410005 */ bgez $t2, .L80041FB8 -/* 042BA4 80041FA4 46803220 */ cvt.s.w $f8, $f6 -/* 042BA8 80041FA8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 042BAC 80041FAC 44815000 */ mtc1 $at, $f10 -/* 042BB0 80041FB0 00000000 */ nop -/* 042BB4 80041FB4 460A4200 */ add.s $f8, $f8, $f10 -.L80041FB8: -/* 042BB8 80041FB8 00000000 */ nop -/* 042BBC 80041FBC 46004403 */ div.s $f16, $f8, $f0 -/* 042BC0 80041FC0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 042BC4 80041FC4 E4D00004 */ swc1 $f16, 4($a2) -/* 042BC8 80041FC8 960B000A */ lhu $t3, 0xa($s0) -/* 042BCC 80041FCC 00000000 */ nop -/* 042BD0 80041FD0 448B9000 */ mtc1 $t3, $f18 -/* 042BD4 80041FD4 05610004 */ bgez $t3, .L80041FE8 -/* 042BD8 80041FD8 46809120 */ cvt.s.w $f4, $f18 -/* 042BDC 80041FDC 44813000 */ mtc1 $at, $f6 -/* 042BE0 80041FE0 00000000 */ nop -/* 042BE4 80041FE4 46062100 */ add.s $f4, $f4, $f6 -.L80041FE8: -/* 042BE8 80041FE8 00000000 */ nop -/* 042BEC 80041FEC 46002283 */ div.s $f10, $f4, $f0 -/* 042BF0 80041FF0 E4CA0008 */ swc1 $f10, 8($a2) -/* 042BF4 80041FF4 C4C80008 */ lwc1 $f8, 8($a2) -/* 042BF8 80041FF8 00000000 */ nop -/* 042BFC 80041FFC E6280008 */ swc1 $f8, 8($s1) -/* 042C00 80042000 8FBF001C */ lw $ra, 0x1c($sp) -/* 042C04 80042004 8FB10018 */ lw $s1, 0x18($sp) -/* 042C08 80042008 8FB00014 */ lw $s0, 0x14($sp) -/* 042C0C 8004200C 03E00008 */ jr $ra -/* 042C10 80042010 27BD0028 */ addiu $sp, $sp, 0x28 - diff --git a/asm/non_matchings/unknown_032760/obj_init_scenery.s b/asm/non_matchings/unknown_032760/obj_init_scenery.s deleted file mode 100644 index 1dcdd562..00000000 --- a/asm/non_matchings/unknown_032760/obj_init_scenery.s +++ /dev/null @@ -1,73 +0,0 @@ -glabel obj_init_scenery -/* 0348C0 80033CC0 848E0006 */ lh $t6, 6($a0) -/* 0348C4 80033CC4 3C014120 */ li $at, 0x41200000 # 10.000000 -/* 0348C8 80033CC8 35CF0002 */ ori $t7, $t6, 2 -/* 0348CC 80033CCC A48F0006 */ sh $t7, 6($a0) -/* 0348D0 80033CD0 90B90009 */ lbu $t9, 9($a1) -/* 0348D4 80033CD4 44811000 */ mtc1 $at, $f2 -/* 0348D8 80033CD8 44992000 */ mtc1 $t9, $f4 -/* 0348DC 80033CDC 3C014280 */ li $at, 0x42800000 # 64.000000 -/* 0348E0 80033CE0 46802020 */ cvt.s.w $f0, $f4 -/* 0348E4 80033CE4 44813000 */ mtc1 $at, $f6 -/* 0348E8 80033CE8 4602003C */ c.lt.s $f0, $f2 -/* 0348EC 80033CEC 00000000 */ nop -/* 0348F0 80033CF0 45000003 */ bc1f .L80033D00 -/* 0348F4 80033CF4 00000000 */ nop -/* 0348F8 80033CF8 46001006 */ mov.s $f0, $f2 -/* 0348FC 80033CFC 00000000 */ nop -.L80033D00: -/* 034900 80033D00 46060003 */ div.s $f0, $f0, $f6 -/* 034904 80033D04 8C820040 */ lw $v0, 0x40($a0) -/* 034908 80033D08 8C880050 */ lw $t0, 0x50($a0) -/* 03490C 80033D0C C448000C */ lwc1 $f8, 0xc($v0) -/* 034910 80033D10 00000000 */ nop -/* 034914 80033D14 46004282 */ mul.s $f10, $f8, $f0 -/* 034918 80033D18 E48A0008 */ swc1 $f10, 8($a0) -/* 03491C 80033D1C C4500004 */ lwc1 $f16, 4($v0) -/* 034920 80033D20 00000000 */ nop -/* 034924 80033D24 46008482 */ mul.s $f18, $f16, $f0 -/* 034928 80033D28 E5120000 */ swc1 $f18, ($t0) -/* 03492C 80033D2C 90A90008 */ lbu $t1, 8($a1) -/* 034930 80033D30 00000000 */ nop -/* 034934 80033D34 A089003A */ sb $t1, 0x3a($a0) -/* 034938 80033D38 90AB000A */ lbu $t3, 0xa($a1) -/* 03493C 80033D3C 00000000 */ nop -/* 034940 80033D40 000B6280 */ sll $t4, $t3, 0xa -/* 034944 80033D44 A48C0000 */ sh $t4, ($a0) -/* 034948 80033D48 90AD000B */ lbu $t5, 0xb($a1) -/* 03494C 80033D4C 00000000 */ nop -/* 034950 80033D50 11A00014 */ beqz $t5, .L80033DA4 -/* 034954 80033D54 00000000 */ nop -/* 034958 80033D58 8C8F004C */ lw $t7, 0x4c($a0) -/* 03495C 80033D5C 240E0001 */ li $t6, 1 -/* 034960 80033D60 A5EE0014 */ sh $t6, 0x14($t7) -/* 034964 80033D64 8C99004C */ lw $t9, 0x4c($a0) -/* 034968 80033D68 24180001 */ li $t8, 1 -/* 03496C 80033D6C A3380011 */ sb $t8, 0x11($t9) -/* 034970 80033D70 8C89004C */ lw $t1, 0x4c($a0) -/* 034974 80033D74 24080014 */ li $t0, 20 -/* 034978 80033D78 A1280010 */ sb $t0, 0x10($t1) -/* 03497C 80033D7C 8C8A004C */ lw $t2, 0x4c($a0) -/* 034980 80033D80 240BFFFB */ li $t3, -5 -/* 034984 80033D84 A1400012 */ sb $zero, 0x12($t2) -/* 034988 80033D88 8C8C004C */ lw $t4, 0x4c($a0) -/* 03498C 80033D8C 00000000 */ nop -/* 034990 80033D90 A18B0016 */ sb $t3, 0x16($t4) -/* 034994 80033D94 8C8E004C */ lw $t6, 0x4c($a0) -/* 034998 80033D98 90AD000B */ lbu $t5, 0xb($a1) -/* 03499C 80033D9C 00000000 */ nop -/* 0349A0 80033DA0 A1CD0017 */ sb $t5, 0x17($t6) -.L80033DA4: -/* 0349A4 80033DA4 8C980040 */ lw $t8, 0x40($a0) -/* 0349A8 80033DA8 808F003A */ lb $t7, 0x3a($a0) -/* 0349AC 80033DAC 83190055 */ lb $t9, 0x55($t8) -/* 0349B0 80033DB0 00000000 */ nop -/* 0349B4 80033DB4 01F9082A */ slt $at, $t7, $t9 -/* 0349B8 80033DB8 14200002 */ bnez $at, .L80033DC4 -/* 0349BC 80033DBC 00000000 */ nop -/* 0349C0 80033DC0 A080003A */ sb $zero, 0x3a($a0) -.L80033DC4: -/* 0349C4 80033DC4 AC800078 */ sw $zero, 0x78($a0) -/* 0349C8 80033DC8 03E00008 */ jr $ra -/* 0349CC 80033DCC AC80007C */ sw $zero, 0x7c($a0) - diff --git a/asm/non_matchings/unknown_032760/obj_loop_coin.s b/asm/non_matchings/unknown_032760/obj_loop_banana.s similarity index 99% rename from asm/non_matchings/unknown_032760/obj_loop_coin.s rename to asm/non_matchings/unknown_032760/obj_loop_banana.s index 7f427159..116cdf1d 100644 --- a/asm/non_matchings/unknown_032760/obj_loop_coin.s +++ b/asm/non_matchings/unknown_032760/obj_loop_banana.s @@ -7,7 +7,7 @@ glabel D_800E61A0 .float -10000.0 .text -glabel obj_loop_coin +glabel obj_loop_banana /* 03E1A0 8003D5A0 44852000 */ mtc1 $a1, $f4 /* 03E1A4 8003D5A4 3C0F8000 */ lui $t7, %hi(osTvType) # $t7, 0x8000 /* 03E1A8 8003D5A8 468020A0 */ cvt.s.w $f2, $f4 diff --git a/asm/non_matchings/unknown_032760/obj_loop_coincreator.s b/asm/non_matchings/unknown_032760/obj_loop_coincreator.s deleted file mode 100644 index f347fcb6..00000000 --- a/asm/non_matchings/unknown_032760/obj_loop_coincreator.s +++ /dev/null @@ -1,83 +0,0 @@ -glabel obj_loop_coincreator -/* 03DFFC 8003D3FC 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 03E000 8003D400 AFBF002C */ sw $ra, 0x2c($sp) -/* 03E004 8003D404 AFB00028 */ sw $s0, 0x28($sp) -/* 03E008 8003D408 8C8E007C */ lw $t6, 0x7c($a0) -/* 03E00C 8003D40C 00808025 */ move $s0, $a0 -/* 03E010 8003D410 11C00005 */ beqz $t6, .L8003D428 -/* 03E014 8003D414 00000000 */ nop -/* 03E018 8003D418 8C8F0078 */ lw $t7, 0x78($a0) -/* 03E01C 8003D41C 00000000 */ nop -/* 03E020 8003D420 01E5C023 */ subu $t8, $t7, $a1 -/* 03E024 8003D424 AC980078 */ sw $t8, 0x78($a0) -.L8003D428: -/* 03E028 8003D428 8E190078 */ lw $t9, 0x78($s0) -/* 03E02C 8003D42C 00000000 */ nop -/* 03E030 8003D430 1F20003D */ bgtz $t9, .L8003D528 -/* 03E034 8003D434 8FBF002C */ lw $ra, 0x2c($sp) -/* 03E038 8003D438 4448F800 */ cfc1 $t0, $31 -/* 03E03C 8003D43C C604000C */ lwc1 $f4, 0xc($s0) -/* 03E040 8003D440 35010003 */ ori $at, $t0, 3 -/* 03E044 8003D444 38210002 */ xori $at, $at, 2 -/* 03E048 8003D448 44C1F800 */ ctc1 $at, $31 -/* 03E04C 8003D44C 24190008 */ li $t9, 8 -/* 03E050 8003D450 460021A4 */ cvt.w.s $f6, $f4 -/* 03E054 8003D454 27A40038 */ addiu $a0, $sp, 0x38 -/* 03E058 8003D458 44C8F800 */ ctc1 $t0, $31 -/* 03E05C 8003D45C 44093000 */ mfc1 $t1, $f6 -/* 03E060 8003D460 24080053 */ li $t0, 83 -/* 03E064 8003D464 444AF800 */ cfc1 $t2, $31 -/* 03E068 8003D468 A7A9003A */ sh $t1, 0x3a($sp) -/* 03E06C 8003D46C 35410003 */ ori $at, $t2, 3 -/* 03E070 8003D470 38210002 */ xori $at, $at, 2 -/* 03E074 8003D474 44C1F800 */ ctc1 $at, $31 -/* 03E078 8003D478 C6080010 */ lwc1 $f8, 0x10($s0) -/* 03E07C 8003D47C 24050001 */ li $a1, 1 -/* 03E080 8003D480 460042A4 */ cvt.w.s $f10, $f8 -/* 03E084 8003D484 44CAF800 */ ctc1 $t2, $31 -/* 03E088 8003D488 440D5000 */ mfc1 $t5, $f10 -/* 03E08C 8003D48C 00000000 */ nop -/* 03E090 8003D490 444FF800 */ cfc1 $t7, $31 -/* 03E094 8003D494 25AEFFFD */ addiu $t6, $t5, -3 -/* 03E098 8003D498 35E10003 */ ori $at, $t7, 3 -/* 03E09C 8003D49C A7AE003C */ sh $t6, 0x3c($sp) -/* 03E0A0 8003D4A0 38210002 */ xori $at, $at, 2 -/* 03E0A4 8003D4A4 44C1F800 */ ctc1 $at, $31 -/* 03E0A8 8003D4A8 C6100014 */ lwc1 $f16, 0x14($s0) -/* 03E0AC 8003D4AC A3B90039 */ sb $t9, 0x39($sp) -/* 03E0B0 8003D4B0 460084A4 */ cvt.w.s $f18, $f16 -/* 03E0B4 8003D4B4 A3A80038 */ sb $t0, 0x38($sp) -/* 03E0B8 8003D4B8 44189000 */ mfc1 $t8, $f18 -/* 03E0BC 8003D4BC 44CFF800 */ ctc1 $t7, $31 -/* 03E0C0 8003D4C0 0C003A95 */ jal func_8000EA54 -/* 03E0C4 8003D4C4 A7B8003E */ sh $t8, 0x3e($sp) -/* 03E0C8 8003D4C8 24090001 */ li $t1, 1 -/* 03E0CC 8003D4CC 10400013 */ beqz $v0, .L8003D51C -/* 03E0D0 8003D4D0 AE09007C */ sw $t1, 0x7c($s0) -/* 03E0D4 8003D4D4 AC40003C */ sw $zero, 0x3c($v0) -/* 03E0D8 8003D4D8 8C420064 */ lw $v0, 0x64($v0) -/* 03E0DC 8003D4DC 3C014160 */ li $at, 0x41600000 # 14.000000 -/* 03E0E0 8003D4E0 AC500004 */ sw $s0, 4($v0) -/* 03E0E4 8003D4E4 C6040010 */ lwc1 $f4, 0x10($s0) -/* 03E0E8 8003D4E8 44813000 */ mtc1 $at, $f6 -/* 03E0EC 8003D4EC 3C013E80 */ li $at, 0x3E800000 # 0.250000 -/* 03E0F0 8003D4F0 8E060014 */ lw $a2, 0x14($s0) -/* 03E0F4 8003D4F4 C60C000C */ lwc1 $f12, 0xc($s0) -/* 03E0F8 8003D4F8 44814000 */ mtc1 $at, $f8 -/* 03E0FC 8003D4FC 240A0022 */ li $t2, 34 -/* 03E100 8003D500 AFAA0010 */ sw $t2, 0x10($sp) -/* 03E104 8003D504 AFA00018 */ sw $zero, 0x18($sp) -/* 03E108 8003D508 2407002C */ li $a3, 44 -/* 03E10C 8003D50C 46062381 */ sub.s $f14, $f4, $f6 -/* 03E110 8003D510 0C00FF11 */ jal func_8003FC44 -/* 03E114 8003D514 E7A80014 */ swc1 $f8, 0x14($sp) -/* 03E118 8003D518 AE00007C */ sw $zero, 0x7c($s0) -.L8003D51C: -/* 03E11C 8003D51C 240B04B0 */ li $t3, 1200 -/* 03E120 8003D520 AE0B0078 */ sw $t3, 0x78($s0) -/* 03E124 8003D524 8FBF002C */ lw $ra, 0x2c($sp) -.L8003D528: -/* 03E128 8003D528 8FB00028 */ lw $s0, 0x28($sp) -/* 03E12C 8003D52C 03E00008 */ jr $ra -/* 03E130 8003D530 27BD0040 */ addiu $sp, $sp, 0x40 - diff --git a/asm/non_matchings/unknown_032760/obj_loop_lasergun.s b/asm/non_matchings/unknown_032760/obj_loop_lasergun.s index a77ab058..201b65bd 100644 --- a/asm/non_matchings/unknown_032760/obj_loop_lasergun.s +++ b/asm/non_matchings/unknown_032760/obj_loop_lasergun.s @@ -115,7 +115,7 @@ glabel obj_loop_lasergun /* 03535C 8003475C 0C002556 */ jal func_80009558 /* 035360 80034760 AFAB0010 */ sw $t3, 0x10($sp) /* 035364 80034764 27A40048 */ addiu $a0, $sp, 0x48 -/* 035368 80034768 0C003A95 */ jal func_8000EA54 +/* 035368 80034768 0C003A95 */ jal spawn_object /* 03536C 8003476C 24050001 */ li $a1, 1 /* 035370 80034770 1040002B */ beqz $v0, .L80034820 /* 035374 80034774 3C013F80 */ li $at, 0x3F800000 # 1.000000 diff --git a/asm/non_matchings/unknown_032760/obj_loop_posarrow.s b/asm/non_matchings/unknown_032760/obj_loop_posarrow.s deleted file mode 100644 index 515b9cae..00000000 --- a/asm/non_matchings/unknown_032760/obj_loop_posarrow.s +++ /dev/null @@ -1,45 +0,0 @@ -glabel obj_loop_posarrow -/* 03823C 8003763C 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 038240 80037640 AFBF0014 */ sw $ra, 0x14($sp) -/* 038244 80037644 AFA40030 */ sw $a0, 0x30($sp) -/* 038248 80037648 AFA50034 */ sw $a1, 0x34($sp) -/* 03824C 8003764C 848E0006 */ lh $t6, 6($a0) -/* 038250 80037650 00802825 */ move $a1, $a0 -/* 038254 80037654 35CF4000 */ ori $t7, $t6, 0x4000 -/* 038258 80037658 A48F0006 */ sh $t7, 6($a0) -/* 03825C 8003765C AFA50030 */ sw $a1, 0x30($sp) -/* 038260 80037660 0C006EAB */ jal func_8001BAAC -/* 038264 80037664 27A40020 */ addiu $a0, $sp, 0x20 -/* 038268 80037668 8FA50030 */ lw $a1, 0x30($sp) -/* 03826C 8003766C 8FB80020 */ lw $t8, 0x20($sp) -/* 038270 80037670 8CA30078 */ lw $v1, 0x78($a1) -/* 038274 80037674 00000000 */ nop -/* 038278 80037678 0078082A */ slt $at, $v1, $t8 -/* 03827C 8003767C 10200014 */ beqz $at, .L800376D0 -/* 038280 80037680 0003C880 */ sll $t9, $v1, 2 -/* 038284 80037684 00594021 */ addu $t0, $v0, $t9 -/* 038288 80037688 8D040000 */ lw $a0, ($t0) -/* 03828C 8003768C 2401FFFF */ li $at, -1 -/* 038290 80037690 8C860064 */ lw $a2, 0x64($a0) -/* 038294 80037694 00000000 */ nop -/* 038298 80037698 84C90000 */ lh $t1, ($a2) -/* 03829C 8003769C 00000000 */ nop -/* 0382A0 800376A0 15210009 */ bne $t1, $at, .L800376C8 -/* 0382A4 800376A4 000361C0 */ sll $t4, $v1, 7 -/* 0382A8 800376A8 84AA0006 */ lh $t2, 6($a1) -/* 0382AC 800376AC 00000000 */ nop -/* 0382B0 800376B0 314BBFFF */ andi $t3, $t2, 0xbfff -/* 0382B4 800376B4 A4AB0006 */ sh $t3, 6($a1) -/* 0382B8 800376B8 ACC50150 */ sw $a1, 0x150($a2) -/* 0382BC 800376BC 8CA30078 */ lw $v1, 0x78($a1) -/* 0382C0 800376C0 00000000 */ nop -/* 0382C4 800376C4 000361C0 */ sll $t4, $v1, 7 -.L800376C8: -/* 0382C8 800376C8 01836023 */ subu $t4, $t4, $v1 -/* 0382CC 800376CC A4AC0018 */ sh $t4, 0x18($a1) -.L800376D0: -/* 0382D0 800376D0 8FBF0014 */ lw $ra, 0x14($sp) -/* 0382D4 800376D4 27BD0030 */ addiu $sp, $sp, 0x30 -/* 0382D8 800376D8 03E00008 */ jr $ra -/* 0382DC 800376DC 00000000 */ nop - diff --git a/asm/non_matchings/unknown_032760/obj_loop_snowball.s b/asm/non_matchings/unknown_032760/obj_loop_snowball.s deleted file mode 100644 index 12d740d1..00000000 --- a/asm/non_matchings/unknown_032760/obj_loop_snowball.s +++ /dev/null @@ -1,50 +0,0 @@ -glabel obj_loop_snowball -/* 038E7C 8003827C 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 038E80 80038280 AFBF0024 */ sw $ra, 0x24($sp) -/* 038E84 80038284 AFB00020 */ sw $s0, 0x20($sp) -/* 038E88 80038288 AFA5002C */ sw $a1, 0x2c($sp) -/* 038E8C 8003828C 8C820064 */ lw $v0, 0x64($a0) -/* 038E90 80038290 00808025 */ move $s0, $a0 -/* 038E94 80038294 84430024 */ lh $v1, 0x24($v0) -/* 038E98 80038298 00000000 */ nop -/* 038E9C 8003829C 14600008 */ bnez $v1, .L800382C0 -/* 038EA0 800382A0 00000000 */ nop -/* 038EA4 800382A4 80440038 */ lb $a0, 0x38($v0) -/* 038EA8 800382A8 00000000 */ nop -/* 038EAC 800382AC 10800004 */ beqz $a0, .L800382C0 -/* 038EB0 800382B0 308E00FF */ andi $t6, $a0, 0xff -/* 038EB4 800382B4 A44E0024 */ sh $t6, 0x24($v0) -/* 038EB8 800382B8 84430024 */ lh $v1, 0x24($v0) -/* 038EBC 800382BC 00000000 */ nop -.L800382C0: -/* 038EC0 800382C0 10600014 */ beqz $v1, .L80038314 -/* 038EC4 800382C4 8FA5002C */ lw $a1, 0x2c($sp) -/* 038EC8 800382C8 8C480020 */ lw $t0, 0x20($v0) -/* 038ECC 800382CC 3064FFFF */ andi $a0, $v1, 0xffff -/* 038ED0 800382D0 1500000A */ bnez $t0, .L800382FC -/* 038ED4 800382D4 240F0001 */ li $t7, 1 -/* 038ED8 800382D8 8E05000C */ lw $a1, 0xc($s0) -/* 038EDC 800382DC 8E060010 */ lw $a2, 0x10($s0) -/* 038EE0 800382E0 8E070014 */ lw $a3, 0x14($s0) -/* 038EE4 800382E4 24580020 */ addiu $t8, $v0, 0x20 -/* 038EE8 800382E8 AFB80014 */ sw $t8, 0x14($sp) -/* 038EEC 800382EC 0C002556 */ jal func_80009558 -/* 038EF0 800382F0 AFAF0010 */ sw $t7, 0x10($sp) -/* 038EF4 800382F4 10000007 */ b .L80038314 -/* 038EF8 800382F8 8FA5002C */ lw $a1, 0x2c($sp) -.L800382FC: -/* 038EFC 800382FC 8E05000C */ lw $a1, 0xc($s0) -/* 038F00 80038300 8E060010 */ lw $a2, 0x10($s0) -/* 038F04 80038304 8E070014 */ lw $a3, 0x14($s0) -/* 038F08 80038308 0C0025B6 */ jal func_800096D8 -/* 038F0C 8003830C 01002025 */ move $a0, $t0 -/* 038F10 80038310 8FA5002C */ lw $a1, 0x2c($sp) -.L80038314: -/* 038F14 80038314 02002025 */ move $a0, $s0 -/* 038F18 80038318 0C007D18 */ jal func_8001F460 -/* 038F1C 8003831C 02003025 */ move $a2, $s0 -/* 038F20 80038320 8FBF0024 */ lw $ra, 0x24($sp) -/* 038F24 80038324 8FB00020 */ lw $s0, 0x20($sp) -/* 038F28 80038328 03E00008 */ jr $ra -/* 038F2C 8003832C 27BD0028 */ addiu $sp, $sp, 0x28 - diff --git a/asm/non_matchings/unknown_032760/obj_loop_treasuresucker.s b/asm/non_matchings/unknown_032760/obj_loop_treasuresucker.s index a836035e..3a59e628 100644 --- a/asm/non_matchings/unknown_032760/obj_loop_treasuresucker.s +++ b/asm/non_matchings/unknown_032760/obj_loop_treasuresucker.s @@ -109,7 +109,7 @@ glabel obj_loop_treasuresucker /* 03DDE0 8003D1E0 AFA7003C */ sw $a3, 0x3c($sp) /* 03DDE4 8003D1E4 AFA60048 */ sw $a2, 0x48($sp) /* 03DDE8 8003D1E8 AFA30044 */ sw $v1, 0x44($sp) -/* 03DDEC 8003D1EC 0C003A95 */ jal func_8000EA54 +/* 03DDEC 8003D1EC 0C003A95 */ jal spawn_object /* 03DDF0 8003D1F0 A7AB002A */ sh $t3, 0x2a($sp) /* 03DDF4 8003D1F4 8FA30044 */ lw $v1, 0x44($sp) /* 03DDF8 8003D1F8 8FA60048 */ lw $a2, 0x48($sp) diff --git a/asm/non_matchings/unknown_032760/obj_loop_trophycab.s b/asm/non_matchings/unknown_032760/obj_loop_trophycab.s index 25c4cdbc..f0fe83d5 100644 --- a/asm/non_matchings/unknown_032760/obj_loop_trophycab.s +++ b/asm/non_matchings/unknown_032760/obj_loop_trophycab.s @@ -52,7 +52,7 @@ glabel obj_loop_trophycab /* 035B48 80034F48 85390006 */ lh $t9, 6($t1) /* 035B4C 80034F4C A3AA0045 */ sb $t2, 0x45($sp) /* 035B50 80034F50 AFA30054 */ sw $v1, 0x54($sp) -/* 035B54 80034F54 0C003A95 */ jal func_8000EA54 +/* 035B54 80034F54 0C003A95 */ jal spawn_object /* 035B58 80034F58 A7B9004A */ sh $t9, 0x4a($sp) /* 035B5C 80034F5C 8FA30054 */ lw $v1, 0x54($sp) /* 035B60 80034F60 10400005 */ beqz $v0, .L80034F78 diff --git a/asm/non_matchings/unknown_032760/obj_loop_wizpigship.s b/asm/non_matchings/unknown_032760/obj_loop_wizpigship.s index fbdb2039..fe6292d8 100644 --- a/asm/non_matchings/unknown_032760/obj_loop_wizpigship.s +++ b/asm/non_matchings/unknown_032760/obj_loop_wizpigship.s @@ -171,7 +171,7 @@ glabel obj_loop_wizpigship /* 038C10 80038010 A7B80088 */ sh $t8, 0x88($sp) /* 038C14 80038014 440D2000 */ mfc1 $t5, $f4 /* 038C18 80038018 44D9F800 */ ctc1 $t9, $31 -/* 038C1C 8003801C 0C003A95 */ jal func_8000EA54 +/* 038C1C 8003801C 0C003A95 */ jal spawn_object /* 038C20 80038020 A7AD008A */ sh $t5, 0x8a($sp) /* 038C24 80038024 1040001D */ beqz $v0, .L8003809C /* 038C28 80038028 34018000 */ li $at, 32768 diff --git a/asm/non_matchings/unknown_05DCD0/func_8005E204.s b/asm/non_matchings/unknown_05DCD0/func_8005E204.s index 287e4881..2f5e5f4e 100644 --- a/asm/non_matchings/unknown_05DCD0/func_8005E204.s +++ b/asm/non_matchings/unknown_05DCD0/func_8005E204.s @@ -121,7 +121,7 @@ glabel func_8005E204 /* 05EFD8 8005E3D8 15400023 */ bnez $t2, .L8005E468 /* 05EFDC 8005E3DC 27A40064 */ addiu $a0, $sp, 0x64 /* 05EFE0 8005E3E0 AE2B0078 */ sw $t3, 0x78($s1) -/* 05EFE4 8005E3E4 0C003A95 */ jal func_8000EA54 +/* 05EFE4 8005E3E4 0C003A95 */ jal spawn_object /* 05EFE8 8005E3E8 24050001 */ li $a1, 1 /* 05EFEC 8005E3EC 1040001E */ beqz $v0, .L8005E468 /* 05EFF0 8005E3F0 00408025 */ move $s0, $v0 diff --git a/include/level_object_entries.h b/include/level_object_entries.h index 66698a01..d43b6dcb 100644 --- a/include/level_object_entries.h +++ b/include/level_object_entries.h @@ -50,6 +50,13 @@ typedef struct LevelObjectEntry_Exit { typedef struct LevelObjectEntry_Audio { /* 0x00 */ LevelObjectEntryCommon common; + /* 0x08 */ u16 unk8; + /* 0x0A */ u16 unkA; + /* 0x0C */ u8 unkC; + /* 0x0D */ u8 unkD; + /* 0x0E */ u8 unkE; + /* 0x0F */ u8 unkF; + /* 0x10 */ u8 unk10; } LevelObjectEntry_Audio; typedef struct LevelObjectEntry_AudioLine { @@ -134,6 +141,7 @@ typedef struct LevelObjectEntry_AudioSeqLine { typedef struct LevelObjectEntry_BombExplosion { /* 0x00 */ LevelObjectEntryCommon common; + /* 0x08 */ s8 unk8; } LevelObjectEntry_BombExplosion; typedef struct LevelObjectEntry_WBalloonPop { @@ -245,8 +253,45 @@ typedef struct LevelObjectEntry_CharacterFlag { /* 0x0E */ s16 unkE; } LevelObjectEntry_CharacterFlag; +/* + * Note: the member names are just my best guesses. + * Take them with a grain of salt. + */ typedef struct LevelObjectEntry_Animation { /* 0x00 */ LevelObjectEntryCommon common; + /* 0x08 */ u8 z_rotation; + /* 0x09 */ u8 x_rotation; + /* 0x0A */ u8 y_rotation; + /* 0x0B */ u8 scale; + /* 0x0C */ s16 objectIdToSpawn; + /* 0x0E */ s16 animationStartDelay; + /* 0x10 */ s8 actorIndex; + /* 0x11 */ s8 order; + /* 0x12 */ s8 objAnimIndex; + /* 0x13 */ u8 pad13; + /* 0x14 */ s8 nodeSpeed; + /* 0x15 */ u8 pad15[2]; + /* 0x17 */ s8 objAnimSpeed; + /* 0x18 */ u8 objAnimLoopType; // 0 = Loop, 1 = Reverse loop, 2 = Play once, 3 = reverse once then stop. + /* 0x19 */ u8 rotateType; + /* 0x1A */ s8 yawSpinSpeed; + /* 0x1B */ s8 rollSpinSpeed; + /* 0x1C */ s8 pitchSpinSpeed; + /* 0x1D */ u8 goToNode; + /* 0x1E */ u8 pad1E[3]; + /* 0x21 */ s8 channel; + /* 0x22 */ u8 pad22[2]; + /* 0x24 */ s8 pauseFrameCount; + /* 0x25 */ u8 pad25; + /* 0x26 */ u8 specialHide; + /* 0x27 */ u8 messageId; + /* 0x28 */ u8 pad28[3]; + /* 0x2B */ u8 fadeAlpha; + /* 0x2C */ u8 nextAnim; + /* 0x2D */ u8 pad2D; + /* 0x2E */ u8 soundEffect; + /* 0x2F */ u8 fadeOptions; // 1 = Start fading from fadeAlpha, 2 = make visible, 3 = make invisible. + /* 0x30 */ u8 pad30[2]; } LevelObjectEntry_Animation; typedef struct LevelObjectEntry_InfoPoint { @@ -282,6 +327,10 @@ typedef struct LevelObjectEntry_WaveGenerator { typedef struct LevelObjectEntry_Butterfly { /* 0x00 */ LevelObjectEntryCommon common; + /* 0x08 */ u8 unk8; + /* 0x09 */ u8 unk9; + /* 0x0A */ u8 unkA; + /* 0x0B */ u8 unkB; } LevelObjectEntry_Butterfly; typedef struct LevelObjectEntry_Parkwarden { @@ -325,6 +374,11 @@ typedef struct LevelObjectEntry_HitTester { typedef struct LevelObjectEntry_MidiFade { /* 0x00 */ LevelObjectEntryCommon common; + /* 0x08 */ u8 scale; + /* 0x09 */ u8 rotation; + /* 0x0A */ u8 unkA[16]; // Is this 16 bytes or 15 bytes with a padded 0? + /* 0x1A */ u8 unk1A; + /* 0x1B */ u8 unk1B; } LevelObjectEntry_MidiFade; typedef struct LevelObjectEntry_DynamicLightingObject { @@ -458,6 +512,10 @@ typedef struct LevelObjectEntry_TTDoor { typedef struct LevelObjectEntry_MidiFadePoint { /* 0x00 */ LevelObjectEntryCommon common; + /* 0x08 */ u16 unk8; + /* 0x0A */ u16 unkA; + /* 0x0C */ u8 unkC[16]; + /* 0x1C */ u8 unk1C; } LevelObjectEntry_MidiFadePoint; typedef struct LevelObjectEntry_OctoBubble { diff --git a/src/audio.h b/src/audio.h index 20a51d2e..ebbad97f 100644 --- a/src/audio.h +++ b/src/audio.h @@ -134,5 +134,6 @@ void func_8000232C(ALSeqPlayer *seqp, void *ptr, u8 *arg2, ALCSeq *seq); //Non M f32 func_800015F8(void); //Non Matching void func_80001FB8(u16 arg0); //Non Matching void func_80009B7C(s32 *arg0, f32 x, f32 y, f32 z); // Non Matching +void func_8000974C(s32, f32, f32, f32, s32, s32, s32, s32, s32, s32, s32, s32); #endif diff --git a/src/camera.c b/src/camera.c index 71ed06bd..f5ce294f 100644 --- a/src/camera.c +++ b/src/camera.c @@ -3,7 +3,7 @@ #include "camera.h" #include "audio.h" -#include "unknown_00BC20.h" +#include "objects.h" #include "game.h" #include "unknown_0255E0.h" #include "video.h" diff --git a/src/game.c b/src/game.c index 85c23070..c69a0f03 100644 --- a/src/game.c +++ b/src/game.c @@ -22,7 +22,7 @@ #include "thread30.h" #include "unknown_0ABDF0.h" #include "audio.h" -#include "unknown_00BC20.h" +#include "objects.h" #include "camera.h" #include "save_data.h" #include "unknown_078050.h" diff --git a/src/game_text.c b/src/game_text.c index 5644816a..6deb99a2 100644 --- a/src/game_text.c +++ b/src/game_text.c @@ -3,7 +3,7 @@ #include "game_text.h" #include "menu.h" -#include "unknown_00BC20.h" +#include "objects.h" #include "racer.h" #include "game.h" diff --git a/src/menu.c b/src/menu.c index f2403135..0e12c78f 100644 --- a/src/menu.c +++ b/src/menu.c @@ -20,7 +20,7 @@ #include "printf.h" #include "textures_sprites.h" #include "thread30.h" -#include "unknown_00BC20.h" +#include "objects.h" #include "game.h" #include "unknown_078050.h" #include "save_data.h" diff --git a/src/object_functions.c b/src/object_functions.c index 68f12591..7d513522 100644 --- a/src/object_functions.c +++ b/src/object_functions.c @@ -15,7 +15,7 @@ #include "game.h" #include "audio.h" #include "unknown_008C40.h" -#include "unknown_00BC20.h" +#include "objects.h" #include "particles.h" #include "unknown_0255E0.h" #include "font.h" @@ -91,32 +91,27 @@ s8 D_800DCA94[8] = { s8 D_800DCA9C[12] = { 0x00, 0x01, 0x01, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; -u16 D_800DCAA8[64] = { - 0x0000, 0x0301, 0x0000, 0x0000, - 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, - 0x0000, 0x0203, 0x0000, 0x0000, - 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, - 0x0002, 0x0503, 0xFFFF, 0x0000, - 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, - 0x0002, 0x0405, 0xFFFF, 0x0000, - 0x0000, 0x0000, 0x0000, 0xFFFF, - 0x0000, 0x0103, 0x0000, 0x0000, - 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, - 0x0000, 0x0302, 0x0000, 0x0000, - 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, - 0x0002, 0x0305, 0xFFFF, 0x0000, - 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, - 0x0002, 0x0504, 0xFFFF, 0x0000, - 0x0000, 0xFFFF, 0x0000, 0x0000, -}; -u16 D_800DCB28[20] = { - 0xFFC0, 0x0000, 0x0020, 0xFFC0, - 0x0000, 0xFFE0, 0x0000, 0x0000, - 0x0020, 0x0000, 0x0000, 0xFFE0, - 0x0040, 0x0000, 0x0020, 0x0040, - 0x0000, 0xFFE0, 0x0000, 0x0000, + +Triangle D_800DCAA8[8] = { + { 0, 0, 3, 1, 0, 0, -1, -1, 0, -1 }, + { 0, 0, 2, 3, 0, 0, -1, 0, -1, -1 }, + { 0, 2, 5, 3, -1, 0, 0, -1, -1, -1 }, + { 0, 2, 4, 5, -1, 0, 0, 0, 0, -1 }, + { 0, 0, 1, 3, 0, 0, 0, -1, -1, -1 }, + { 0, 0, 3, 2, 0, 0, -1, -1, -1, 0 }, + { 0, 2, 3, 5, -1, 0, -1, -1, 0, -1 }, + { 0, 2, 5, 4, -1, 0, 0, -1, 0, 0 }, }; +VertexPosition D_800DCB28[6] = { + { -64, 0, 32 }, + { -64, 0, -32 }, + { 0, 0, 32 }, + { 0, 0, -32 }, + { 64, 0, 32 }, + { 64, 0, -32 }, +}; + /*******************************/ /************ .bss ************/ @@ -130,11 +125,6 @@ s16 D_8011D4E2; /******************************/ -#ifdef NON_EQUIVALENT -typedef struct Object_50_80033CC0 { - f32 unk0; -} Object_50_80033CC0; - void obj_init_scenery(Object *obj, LevelObjectEntry_Scenery *entry) { f32 phi_f0; obj->unk6 |= 2; @@ -144,14 +134,13 @@ void obj_init_scenery(Object *obj, LevelObjectEntry_Scenery *entry) { } phi_f0 /= 64; obj->scale = obj->header->scale * phi_f0; - ((Object_50_80033CC0 *)obj->unk50)->unk0 = obj->header->unk4 * phi_f0; + ((Object_50_Scenery *)obj->unk50)->unk0 = obj->header->unk4 * phi_f0; obj->unk3A = entry->unk8; obj->y_rotation = entry->unkA << 6 << 4; if (entry->unkB) { - // Regalloc issue here obj->unk4C->unk14 = 1; obj->unk4C->unk11 = 1; - obj->unk4C->unk10 = 0x14; + obj->unk4C->unk10 = 20; obj->unk4C->unk12 = 0; obj->unk4C->unk16 = -5; obj->unk4C->unk17 = entry->unkB; @@ -162,9 +151,6 @@ void obj_init_scenery(Object *obj, LevelObjectEntry_Scenery *entry) { obj->unk78 = 0; obj->unk7C.word = 0; } -#else -GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_init_scenery.s") -#endif void obj_loop_scenery(Object *obj, s32 speed) { Object78_80033DD0 *obj78; @@ -554,7 +540,7 @@ void func_80001D04(u16, s32 *); f32 sqrtf(f32); u32 func_80001C08(void); void func_80001D04(u16, s32 *); -Object *func_8000EA54(unk80027FC4 *, s32); +Object *spawn_object(unk80027FC4 *, s32); void func_8005A3B0(void); void func_8006F254(void); void func_8009CF68(s32 arg0); @@ -613,7 +599,7 @@ void obj_loop_trophycab(Object *obj, s32 speed) { sp44.unk4 = obj->unk3C_a.unk3C->unk4; sp44.unk6 = obj->unk3C_a.unk3C->unk6; sp44.unk1 = 8; - trophyObj = func_8000EA54(&sp44, 1); + trophyObj = spawn_object(&sp44, 1); if (trophyObj) { trophyObj->unk3C_a.unk3C = (void *) 0; trophyObj->y_rotation = obj->y_rotation; @@ -736,7 +722,7 @@ void obj_loop_eggcreator(Object *obj, s32 speed) { sp20.unk6 = obj->z_position; sp20.unk1 = 8; sp20.unk0 = 0x34; - someObj = func_8000EA54(&sp20, 1); + someObj = spawn_object(&sp20, 1); if (someObj != NULL) { Object_64_8003564C *someObj64 = someObj->unk64; someObj64->unk4 = obj; @@ -1043,7 +1029,24 @@ void obj_init_posarrow(Object *obj, LevelObjectEntry_PosArrow *entry) { obj->unk6 |= 0x4000; } -GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_loop_posarrow.s") +void obj_loop_posarrow(Object *obj, s32 speed) { + Object_64_PosArrow *someObj64; + Object **someObjList; + Object *someObj; + s32 numberOfObjects; + + obj->unk6 |= 0x4000; + someObjList = func_8001BAAC(&numberOfObjects); + if (obj->unk78 < numberOfObjects) { + someObj = someObjList[obj->unk78]; + someObj64 = someObj->unk64; + if (someObj64->unk0 == -1) { + obj->unk6 &= ~0x4000; + someObj64->unk150 = obj; + } + obj->unk18 = obj->unk78 * 127; + } +} void obj_init_animator(Object *obj, LevelObjectEntry_Animator *entry, s32 arg2) { Object_64_800376E0 *obj64; @@ -1072,8 +1075,168 @@ void obj_init_animator(Object *obj, LevelObjectEntry_Animator *entry, s32 arg2) obj_loop_animator(obj, 0x20000); } +#ifdef NON_EQUIVALENT + +typedef struct Object_64_Animator { + /* 0x00 */ s16 segmentId; + /* 0x02 */ s16 batchId; + /* 0x04 */ s16 xSpeedFactor; + /* 0x06 */ s16 ySpeedFactor; + /* 0x08 */ s16 xSpeed; + /* 0x0A */ s16 ySpeed; +} Object_64_Animator; + +#define TEX_INDEX_NO_TEXTURE 255 + +// Has minor issues + +void obj_loop_animator(Object* obj, s32 speed) { + Object_64_Animator* obj64; // 3C + s32 sp20; + s32 sp1C; + LevelModel* levelModel; + s32 temp, temp2, segmentId, batchId; + s32 i; + s32 nextFacesOffset; + s32 curFacesOffset; + s32 texUVSpeed; + s32 texIndex; + TextureInfo *texInfo; + TriangleBatchInfo *triangleBatchInfo; + LevelModelSegment *levelModelSegment; + Triangle* triangle; + TextureHeader *tex; + s32 maxSpeed; + + obj64 = (Object_64_Animator*)obj->unk64; + + temp = obj64->xSpeedFactor * speed; + obj64->xSpeed += temp << 4; + sp20 = obj64->xSpeed >> 4; + obj64->xSpeed &= 0xF; + + temp2 = obj64->ySpeedFactor * speed; + obj64->ySpeed += temp2 << 4; + sp1C = obj64->ySpeed >> 4; + obj64->ySpeed &= 0xF; + + segmentId = obj64->segmentId; + + if (obj64->segmentId != -1) { + levelModel = func_8002C7C4(); + levelModelSegment = &levelModel->segments[segmentId]; + batchId = obj64->batchId; + triangleBatchInfo = &levelModelSegment->batches[batchId]; + texIndex = triangleBatchInfo->textureIndex; + curFacesOffset = triangleBatchInfo->facesOffset; + nextFacesOffset = triangleBatchInfo[1].facesOffset; + if (texIndex != TEX_INDEX_NO_TEXTURE) { + texUVSpeed = levelModel->textures[texIndex].texture->width << 7; + maxSpeed = texUVSpeed * 2; + for (i = curFacesOffset; i < nextFacesOffset; i++) { + triangle = &levelModelSegment->triangles[i]; + if (!(triangle->drawBackface & 0x80)) { + if (maxSpeed < triangle->uv0.v) { + triangle->uv0.v -= texUVSpeed; + triangle->uv1.v -= texUVSpeed; + triangle->uv2.v -= texUVSpeed; + } + if (triangle->uv0.v < 0) { + triangle->uv0.v += texUVSpeed; + triangle->uv1.v += texUVSpeed; + triangle->uv2.v += texUVSpeed; + } + if (maxSpeed < triangle->uv0.u) { + triangle->uv0.u -= texUVSpeed; + triangle->uv1.u -= texUVSpeed; + triangle->uv2.u -= texUVSpeed; + } + if (triangle->uv0.u < 0) { + triangle->uv0.u += texUVSpeed; + triangle->uv1.u += texUVSpeed; + triangle->uv2.u += texUVSpeed; + } + triangle->uv0.v += sp1C; + triangle->uv1.v += sp1C; + triangle->uv2.v += sp1C; + triangle->uv0.u += sp20; + triangle->uv1.u += sp20; + triangle->uv2.u += sp20; + } + } + } + } +} + +#else GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_loop_animator.s") -GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_init_animation.s") +#endif + +void obj_init_animation(Object *obj, LevelObjectEntry_Animation *entry, s32 arg2) { + Object_64_Animation* obj64; + Object* sp24; + s8 tempOrderIndex; + f32 scalef; + + scalef = entry->scale & 0xFF; + if (scalef < 1.0f) { + scalef = 1.0f; + } + scalef /= 64; + obj->scale = obj->header->scale * scalef; + obj->y_rotation = entry->y_rotation << 8; + obj->x_rotation = entry->x_rotation << 8; + obj->z_rotation = entry->z_rotation << 8; + if (entry->actorIndex == -2) { + entry->actorIndex = func_8001F3B8(); + } else { + if (entry->actorIndex < 0 && entry->actorIndex >= -2) { + entry->actorIndex = 0; + } + func_8001F3C8(entry->actorIndex); + } + if (entry->channel == -1) { + entry->channel = func_8001E440(); + } + if (entry->channel == 20) { + entry->actorIndex |= 0x80; + } + tempOrderIndex = func_8001F3EC(entry->actorIndex); + if (entry->order == -2) { + entry->order = tempOrderIndex; + if (entry->order < 0) { + entry->order = 0; + } + } else { + if ((tempOrderIndex >= 0) && (entry->order >= tempOrderIndex)) { + entry->order = tempOrderIndex; + } + if (entry->order < 0) { + entry->order = 0; + } + } + func_80011390(); + obj->unk7C.word = entry->actorIndex; + obj->unk78 = arg2; + if (arg2 != 0 && (get_buttons_pressed_from_player(0) & R_CBUTTONS)) { + obj->unk78 = 2; + } + if (((func_8001E440() == entry->channel) || (entry->channel == 20)) && (obj->unk64 == NULL) && (entry->order == 0) && (entry->objectIdToSpawn != -1)) { + func_8001F23C(obj, entry); + } + obj64 = (Object_64_Animation*)obj->unk64; + if (obj->unk64 != 0) { + func_8001EFA4(obj, obj64); + if (entry->order != 0 || obj64->unk4A != entry->objectIdToSpawn) { + gParticlePtrList_addObject(obj64); + obj->unk64 = NULL; + } + } + if (func_80021600(obj->unk7C.word)) { + func_8001EE74(); + } +} + void obj_loop_animobject(Object *obj, s32 speed) { func_8001F460(obj, speed, obj); @@ -1153,10 +1316,8 @@ void obj_init_snowball(Object *obj, LevelObjectEntry_Snowball *entry) { obj->unk4C->unk12 = 0; } -#ifdef NON_EQUIVALENT -// Regalloc issues void obj_loop_snowball(Object *obj, s32 speed) { - Object_64_8003827C *obj64 = obj->unk64; + Object_64_Snowball *obj64 = obj->unk64; if (obj64->unk24 == 0) { if (obj64->unk38 != 0) { obj64->unk24 = (s16)(obj64->unk38 & 0xFF); @@ -1164,7 +1325,7 @@ void obj_loop_snowball(Object *obj, s32 speed) { } if (obj64->unk24 != 0) { if (obj64->unk20 == 0) { - func_80009558(obj64->unk24 & 0xFFFF, obj->x_position, obj->y_position, obj->z_position, 1, &obj64->unk20); + func_80009558(obj64->unk24, obj->x_position, obj->y_position, obj->z_position, 1, &obj64->unk20); } else { func_800096D8(obj64->unk20, obj->x_position, obj->y_position, obj->z_position); } @@ -1172,10 +1333,6 @@ void obj_loop_snowball(Object *obj, s32 speed) { func_8001F460(obj, speed, obj); } -#else -GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_loop_snowball.s") -#endif - // Unused void func_80038330(s32 arg0, s32 arg1) { } @@ -1307,26 +1464,20 @@ void obj_loop_wardensmoke(Object *obj, s32 speed) { } } -#ifdef NON_EQUIVALENT -// regalloc issues -void obj_init_bombexplosion(Object *obj, unk80038B74 *entry) { - s32 temp; +void obj_init_bombexplosion(Object *obj, LevelObjectEntry_BombExplosion *entry) { + LevelObjectEntry_BombExplosion *entry2; obj->unk18 = 0; obj->scale = 0.5f; obj->unk3A = get_random_number_from_range(0, obj->header->numberOfModelIds - 1); + entry2 = entry; // Needed for a match. obj->unk78 = 0; obj->unk7C.word = 0xFF; - temp = entry->unk8; - if (temp != 0) { - obj->unk7C.word |= (temp << 8) & 0xFF00; + if (entry->unk8) { + obj->unk7C.word |= (entry2->unk8 << 8) & 0xFF00; } obj->unk74 = 1; } -#else -GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_init_bombexplosion.s") -#endif - GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_loop_bombexplosion.s") void obj_init_teleport(Object *obj, LevelObjectEntry_Teleport *entry) { @@ -1927,13 +2078,40 @@ void obj_init_flycoin(Object *obj, LevelObjectEntry_FlyCoin *entry) { GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_loop_flycoin.s") -void obj_init_coincreator(Object *obj, LevelObjectEntry_BananaCreator *entry) { - obj->unk18 = 0x64; +void obj_init_bananacreator(Object *obj, LevelObjectEntry_BananaCreator *entry) { + obj->unk18 = 100; } -GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_loop_coincreator.s") +void obj_loop_bananacreator(Object *obj, s32 speed) { + LevelObjectEntryCommon newEntry; + Object *newBananaObj; + Object_64_Banana *newBananaObj64; -void obj_init_coin(Object *obj, LevelObjectEntry_Banana *entry) { + if (obj->unk7C.word != 0) { + obj->unk78 -= speed; + } + + if (obj->unk78 <= 0) { + newEntry.x = (s32) obj->x_position; + newEntry.y = ((s32) ((s16) obj->y_position)) - 3; + newEntry.z = (s32) obj->z_position; + newEntry.size = 8; + newEntry.object_id = 83; + newBananaObj = spawn_object(&newEntry, 1); + obj->unk7C.word = 1; + if (newBananaObj) { + newBananaObj->unk3C_a.unk3C = 0; + newBananaObj64 = (Object_64_Banana *) newBananaObj->unk64; + newBananaObj64->spawner = obj; + func_8003FC44(obj->x_position, obj->y_position - 14.0f, obj->z_position, 44, 34, 0.25f, 0); + obj->unk7C.word = 0; + } + obj->unk78 = TIME_SECONDS(20); // Set delay to respawn banana to 20 seconds. + } +} + + +void obj_init_banana(Object *obj, LevelObjectEntry_Banana *entry) { obj->unk4C->unk14 = 2; obj->unk4C->unk11 = 0; obj->unk4C->unk10 = 0x1E; @@ -1944,7 +2122,7 @@ void obj_init_coin(Object *obj, LevelObjectEntry_Banana *entry) { } } -GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_loop_coin.s") +GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_loop_banana.s") void obj_init_silvercoin_adv2(Object *obj, LevelObjectEntry_SilverCoinAdv2 *entry) { obj->unk4C->unk14 = 2; @@ -2151,7 +2329,7 @@ void func_8003FC44(f32 arg0, f32 arg1, f32 arg2, s32 arg3, s32 arg4, f32 arg5, s sp24.unk0 = arg3; sp24.unk7 = arg6; sp24.unk6 = arg2; - someObj = func_8000EA54(&sp24, 1); + someObj = spawn_object(&sp24, 1); if (someObj != NULL) { someObj->scale *= 3.5 * arg5; someObj->unk3C_a.unk3C = NULL; @@ -2167,7 +2345,29 @@ void func_8003FC44(f32 arg0, f32 arg1, f32 arg2, s32 arg3, s32 arg4, f32 arg5, s GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003FC44.s") #endif -GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_init_audio.s") +void obj_init_audio(Object *obj, LevelObjectEntry_Audio *entry) { + Object_64_Audio *obj64; + + obj64 = (Object_64_Audio*)obj->unk64; + obj64->unk0 = entry->unk8; + obj64->unk2 = entry->unkA; + obj64->unkC = entry->unkF; + obj64->unk6 = entry->unkE; + obj64->unk4 = entry->unkC; + obj64->unk5 = entry->unkD; + obj64->unkD = entry->unk10; + obj64->unk8 = 0; + if (ALBankFile_80115D14_GetSoundDecayTime(obj64->unk0)) { + func_8000974C(obj64->unk0, entry->common.x, entry->common.y, entry->common.z, + 9, obj64->unk5, obj64->unk4, obj64->unk2, obj64->unkC, + obj64->unk6, obj64->unkD, &obj64->unk8); + } else { + func_8000974C(obj64->unk0, entry->common.x, entry->common.y, entry->common.z, + 10, obj64->unk5, obj64->unk4, obj64->unk2, obj64->unkC, + obj64->unk6, obj64->unkD, &obj64->unk8); + } + gParticlePtrList_addObject(obj); +} void obj_init_audioline(Object *obj, LevelObjectEntry_AudioLine *entry) { Object_64_8003FEF4 *obj64; @@ -2269,7 +2469,61 @@ void obj_init_weather(Object *obj, LevelObjectEntry_Weather *entry) { obj->unk78f = temp; } + +#ifdef NON_EQUIVALENT +void func_800ABC5C(s32, s32, s32, s32, s32, s32); /* extern */ + +typedef struct Object_3C_Weather { + u8 pad0[0x2]; + s16 unk2; + s16 unk4; + s16 unk6; + s8 unk8; + u8 unk9; + s16 unkA; + s16 unkC; + s16 unkE; + u8 unk10; + u8 unk11; + s16 unk12; +} Object_3C_Weather; + +// Has stack & regalloc issues. +void obj_loop_weather(Object *obj, s32 speed) { + s32 sp54; + s32 numberOfObjects; + Object_64_Racer *curObj64; + Object **objects; + Object **lastObj; + Object *curObj; + Object_3C_Weather *obj3c; + f32 temp_f0; + f32 new_var; + f32 temp_f2; + s32 i; + s32 temp[3]; + sp54 = func_80066220(); + objects = get_object_struct_array(&numberOfObjects); + if (numberOfObjects != 0) { + lastObj = &objects[numberOfObjects - 1]; + objects--; + do { + curObj = objects[1]; + curObj64 = (Object_64_Racer *) curObj->unk64; + } while (((++objects) < lastObj) && (sp54 != curObj64->unk0)); + temp_f0 = obj->x_position - curObj->x_position; + temp_f2 = obj->z_position - curObj->z_position; + new_var = obj->unk78f; + obj3c = obj->unk3C_a.unk3C; + if (((temp_f0 * temp_f0) + (temp_f2 * temp_f2)) <= (new_var * 1.0f)){ + func_800ABC5C(obj3c->unkA * 256, obj3c->unkC * 256, obj3c->unkE * 256, obj3c->unk10 * 257, obj3c->unk11 * 257, (s32) obj3c->unk12); + } + } +} + +#else GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_loop_weather.s") +#endif void obj_init_lensflare(Object *obj, LevelObjectEntry_LensFlare *entry) { func_800AC8A8(obj); @@ -2285,10 +2539,133 @@ void obj_init_wavegenerator(Object *obj, LevelObjectEntry_WaveGenerator *entry, func_800BF524(obj); //waves.c } +#ifdef NON_EQUIVALENT + +typedef struct Object_64_Butterfly { +/* 0x00 */ Triangle triangles[8]; +/* 0x80 */ Vertex vertices[12]; +/* 0xF8 */ TextureHeader *texture; +/* 0xFC */ u8 unkFC; +/* 0xFD */ u8 unkFD; +/* 0xFE */ u8 unkFE; +/* 0xFF */ u8 unkFF; +/* 0x100 */ s32 unk100; +/* 0x104 */ s16 unk104; +/* 0x106 */ s16 unk106; +/* 0x108 */ f32 unk108; +} Object_64_Butterfly; + +void obj_init_butterfly(Object *obj, LevelObjectEntry_Butterfly *entry, s32 arg2) { + Object_64_Butterfly *obj64; + s32 i, j; + s32 uMask, vMask; + + obj64 = (Object_64_Butterfly*)obj->unk64; + if (arg2 == 0) { + obj->y_velocity = 0.0f; + obj64->unkFE = 0; + obj64->unk100 = 0; + obj64->unk104 = 0; + obj64->unkFD = 0; + obj64->unk106 = 384; + obj64->unk108 = 0.0f; + // This loop is okay + for(i = 0; i < 8; i++) { + obj64->triangles[i].drawBackface = D_800DCAA8[i].drawBackface; + obj64->triangles[i].vi0 = D_800DCAA8[i].vi0; + obj64->triangles[i].vi1 = D_800DCAA8[i].vi1; + obj64->triangles[i].vi2 = D_800DCAA8[i].vi2; + } + // This loop is not. + for(i = 0; i < 6; i++) { + //u32 j = i + 6; + obj64->vertices[i].x = D_800DCB28[i].x; + obj64->vertices[i].y = D_800DCB28[i+1].y; + obj64->vertices[i].z = D_800DCB28[i+1].z; + obj64->vertices[i].r = 255; + obj64->vertices[i].g = 255; + obj64->vertices[i].b = 255; + obj64->vertices[i].a = 255; + obj64->vertices[(u32)(i+6)].x = D_800DCB28[i+1].x; + obj64->vertices[i+6].y = D_800DCB28[i].y; + obj64->vertices[i+6].z = D_800DCB28[i].z; + obj64->vertices[i+6].r = 255; + obj64->vertices[i+6].g = 255; + obj64->vertices[i+6].b = 255; + obj64->vertices[i+6].a = 255; + } + obj64->unkFC = 1; + } + obj->scale = entry->unkB * 0.01f; + if (entry->unkA < obj->header->numberOfModelIds) { + obj64->texture = (TextureHeader*)obj->unk68[entry->unkA]; + } else { + obj64->texture = (TextureHeader*)obj->unk68[0]; + } + + if (obj64->texture) { + uMask = (obj64->texture->width - 1) << 5; + vMask = (obj64->texture->height - 1) << 5; + } else { + uMask = 0; + vMask = 0; + } + for(i = 0; i < 8; i++) { + obj64->triangles[i].uv0.u = D_800DCAA8[i].uv0.u & uMask; + obj64->triangles[i].uv0.v = D_800DCAA8[i].uv0.v & vMask; + obj64->triangles[i].uv1.u = D_800DCAA8[i].uv1.u & uMask; + obj64->triangles[i].uv1.v = D_800DCAA8[i].uv1.v & vMask; + obj64->triangles[i].uv2.u = D_800DCAA8[i].uv2.u & uMask; + obj64->triangles[i].uv2.v = D_800DCAA8[i].uv2.v & vMask; + } +} + + +#else GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_init_butterfly.s") +#endif + GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_loop_butterfly.s") + GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_init_midifade.s") -GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_init_midifadepoint.s") + +void obj_init_midifadepoint(Object *obj, LevelObjectEntry_MidiFadePoint *entry) { + Object_64_MidiFadePoint *obj64; + ObjectModel **models; + ObjectModel *objModel; + Vertex *vertex; + s32 i; + f32 x; + f32 y; + f32 z; + f32 dist; + + obj64 = (LevelObjectEntry_MidiFadePoint *) obj->unk64; + obj64->unk2 = entry->unkA; + obj64->unk0 = entry->unk8; + obj64->unk1C = entry->unk1C; + if (obj64->unk2 < obj64->unk0) { + obj64->unk2 = obj64->unk0 + 10; + } + obj->z_rotation = 0; + obj->x_rotation = 0; + obj->y_rotation = 0; + + for (i = 0; i < 15; i++) { + obj64->unkC[i] = entry->unkC[i]; + } + + models = *((ObjectModel ***) obj->unk68); + objModel = models[0]; + vertex = objModel->vertices + 1; + x = vertex->x; + y = vertex->y; + z = vertex->z; + dist = sqrtf(((x * x) + (y * y)) + (z * z)); + obj64->unk4 = entry->unk8 / dist; + obj64->unk8 = entry->unkA / dist; + obj->scale = obj64->unk8; +} void obj_init_midichset(Object *obj, LevelObjectEntry_Midichset *entry) { unk80042014_arg0_64 *temp = obj->unk64; diff --git a/src/object_functions.h b/src/object_functions.h index 1303ec3a..9fd40a47 100644 --- a/src/object_functions.h +++ b/src/object_functions.h @@ -8,6 +8,9 @@ #define WORLD_KEY_GRAB_CHECK_RADIUS 50 #define SOUND_WORLD_KEY_GRAB 54 +#define TIME_JIFFIES_PER_SECOND 60 +#define TIME_SECONDS(sec) sec * TIME_JIFFIES_PER_SECOND + typedef struct Object78_80033DD0 { s32 *unk0; s16 unk4; @@ -127,13 +130,13 @@ typedef struct Object_60_800380F8 { Object *unkC; } Object_60_800380F8; -typedef struct Object_64_8003827C { +typedef struct Object_64_Snowball { u8 pad0[0x20]; - s32 unk20; + u32 unk20; s16 unk24; u8 pad28[0x12]; s8 unk38; -} Object_64_8003827C; +} Object_64_Snowball; typedef struct Object_64_80038710 { u8 pad0[0x30]; @@ -359,6 +362,10 @@ typedef struct unk80042CD0 { s16 unk18; } unk80042CD0; +typedef struct Object_50_Scenery { + f32 unk0; +} Object_50_Scenery; + //void func_80072348(s16 obj, u8 arg1); typedef struct Object_64_Exit { @@ -450,6 +457,69 @@ typedef struct Object_64_Trigger { s8 unk14; } Object_64_Trigger; +typedef Object Object_64_Animation; + +typedef struct Object_64_Audio { + /* 0x00 */ u16 unk0; + /* 0x02 */ u16 unk2; + /* 0x04 */ u8 unk4; + /* 0x05 */ u8 unk5; + /* 0x06 */ u8 unk6; + /* 0x07 */ u8 unk7; + /* 0x08 */ s32 unk8; + /* 0x0C */ u8 unkC; + /* 0x0D */ u8 unkD; +} Object_64_Audio; + +typedef struct Object_64_MidiFade { + u8 unk0; + u8 unk1; + u8 unk2; + f32 unk4; + f32 unk8; + f32 unkC; + f32 unk10; + f32 unk14; + f32 unk18; + f32 unk1C; + f32 unk20; + f32 unk24; + f32 unk28; + f32 unk2C; + u8 unk2F[16]; + u8 unk40; +} Object_64_MidiFade; + +typedef struct unk80041A90_MidiFade { + s16 unk0; // Y rotation + s16 unk2; // X rotation + s16 unk4; // Z rotation + f32 unk8; + f32 unkC; + f32 unk10; + f32 unk14; +} unk80041A90_MidiFade; + +typedef struct Object_64_MidiFadePoint { + u16 unk0; + u16 unk2; + f32 unk4; + f32 unk8; + u8 unkC[16]; + u8 unk1C; +} Object_64_MidiFadePoint; + +typedef struct Object_64_PosArrow { + s16 unk0; + u8 pad4[0x14E]; + Object *unk150; +} Object_64_PosArrow; + +typedef struct Object_64_Banana { + u8 pad0[4]; + Object *spawner; +} Object_64_Banana; + // Unsure about the signed/unsigned with these arrays. extern u16 D_800DC970[4]; extern u16 D_800DC978[4]; @@ -464,8 +534,15 @@ extern s32 D_800DCA7C[3]; extern s32 D_800DCA88[3]; extern s8 D_800DCA94[8]; extern s8 D_800DCA9C[12]; -extern u16 D_800DCAA8[64]; -extern u16 D_800DCB28[20]; + +typedef struct VertexPosition { +/* 0x00 */ s16 x; +/* 0x02 */ s16 y; +/* 0x04 */ s16 z; +} VertexPosition; + +extern Triangle D_800DCAA8[8]; +extern VertexPosition D_800DCB28[6]; extern u32 osTvType; f32 func_800707C4(s16); // No idea where it's located @@ -548,8 +625,8 @@ void obj_init_ainode(Object *obj, LevelObjectEntry_AiNode *entry); void obj_loop_ainode(Object *obj, s32 speed); void obj_init_treasuresucker(Object *obj, LevelObjectEntry_TreasureSucker *entry); void obj_init_flycoin(Object *obj, LevelObjectEntry_FlyCoin *entry); -void obj_init_coincreator(Object *obj, LevelObjectEntry_BananaCreator *entry); -void obj_init_coin(Object *obj, LevelObjectEntry_Banana *entry); +void obj_init_bananacreator(Object *obj, LevelObjectEntry_BananaCreator *entry); +void obj_init_banana(Object *obj, LevelObjectEntry_Banana *entry); void obj_init_silvercoin_adv2(Object *obj, LevelObjectEntry_SilverCoinAdv2 *entry); void obj_init_silvercoin(Object *obj, LevelObjectEntry_SilverCoin *entry); void obj_init_worldkey(Object *obj, LevelObjectEntry_WorldKey *entry); @@ -593,4 +670,13 @@ s32 func_8001CC48(s32, s32, s32); void func_8001C6C4(Object_64_GoldenBalloon *obj64, Object *obj, f32, f32, s32); void func_8000CBF0(Object*, s32); + +void func_8001EE74(); +void func_8001EFA4(Object*, Object_64_Animation*); +void func_8001F23C(Object *obj, LevelObjectEntry_Animation *entry); +s32 func_8001F3EC(s32); +s32 func_80021600(s32); + +void func_8003FC44(f32, f32, f32, s32, s32, f32, s32); + #endif diff --git a/src/unknown_00BC20.c b/src/objects.c similarity index 86% rename from src/unknown_00BC20.c rename to src/objects.c index 9810a3d8..dbe25c1f 100644 --- a/src/unknown_00BC20.c +++ b/src/objects.c @@ -1,7 +1,7 @@ /* The comment below is needed for this file to be picked up by generate_ld */ /* RAM_POS: 0x8000B020 */ -#include "unknown_00BC20.h" +#include "objects.h" #include "memory.h" #include "types.h" @@ -262,10 +262,10 @@ extern s16 D_8011D5AC; /******************************/ -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8000B020.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8000B020.s") #if 1 -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8000B290.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8000B290.s") #else extern s32 D_800DC754; extern Object *D_800DC75C; @@ -300,9 +300,9 @@ void func_8000B290() { } #endif -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8000B38C.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8000B750.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8000BADC.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8000B38C.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8000B750.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8000BADC.s") Object *func_8000BF44(s32 arg0) { if (arg0 == -1) { @@ -366,7 +366,7 @@ void func_8000BF8C(void) { } #if 1 -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/decrypt_magic_codes.s") +GLOBAL_ASM("asm/non_matchings/objects/decrypt_magic_codes.s") #else // Decrypts cheats void decrypt_magic_codes(u8 *data, s32 length) { @@ -463,7 +463,7 @@ void func_8000C604(void) { free_from_memory_pool(D_8011AEB0[1]); } -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8000C718.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8000C718.s") void func_8000C844(s32 arg0) { if ((*D_8011AE4C)[arg0] != 0) { @@ -482,7 +482,7 @@ s32 func_8000C8B4(s32 arg0) { } } -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8000C8F8.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8000C8F8.s") void func_8000CBC0(void) { s32 i = 0; @@ -493,7 +493,7 @@ void func_8000CBC0(void) { } #if 1 -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8000CBF0.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8000CBF0.s") #else void func_8000CBF0(u32 *arg0, s32 arg1) { u32 **temp = &D_8011AE08[arg1]; @@ -525,7 +525,7 @@ s32 func_8000CC20(u32 *arg0) { } // Has a jump table -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8000CC7C.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8000CC7C.s") u32 func_8000E0B0(void) { switch (D_8011AD38) { @@ -643,7 +643,7 @@ void func_8000E2B4(void) { sp2C.common.z = D_8011AD4A; sp2C.unkC = D_8011AD4C; func_800521B8(1); - player = func_8000EA54(&sp2C, 0x11); + player = spawn_object(&sp2C, 0x11); gObjectCount = 1; (*gObjectStructArrayPtr)[0] = (s32) player; *D_8011AEEC = (s32) player; @@ -666,7 +666,7 @@ void func_8000E2B4(void) { player->y_position = D_8011AD48; } #else -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8000E2B4.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8000E2B4.s") #endif /** @@ -687,11 +687,11 @@ u8 func_8000E4D8(void) { return D_8011AEF5; } -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8000E4E8.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8000E558.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8000E5EC.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8000E79C.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8000E898.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8000E4E8.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8000E558.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8000E5EC.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8000E79C.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8000E898.s") Object *get_object(s32 index) { if (index < 0 || index >= objCount) { @@ -724,14 +724,14 @@ void func_8000E9D0(Object *arg0) { D_8011AE64++; } -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8000EA54.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8000F648.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8000F758.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8000F7EC.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8000F99C.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8000FAC4.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8000FBCC.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8000FC6C.s") +GLOBAL_ASM("asm/non_matchings/objects/spawn_object.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8000F648.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8000F758.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8000F7EC.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8000F99C.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8000FAC4.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8000FBCC.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8000FC6C.s") s32 func_8000FD20(unk8000FD20 *arg0, unk8000FD20_2 *arg1) { arg0->unk4C = arg1; @@ -745,7 +745,7 @@ s32 func_8000FD34(unk8000FD34 *arg0, s32 arg1) { return 0x10C; } -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8000FD54.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8000FD54.s") void gParticlePtrList_addObject(Object *object) { func_800245B4(object->unk4A | 0x8000); @@ -762,7 +762,7 @@ s32 func_80010028(s32 arg0) { } #if 1 -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/gParticlePtrList_flush.s") +GLOBAL_ASM("asm/non_matchings/objects/gParticlePtrList_flush.s") #else //bad regalloc; swap s2 = s3 /*removes objects in particleList from gObjPtrList and frees*/ @@ -797,10 +797,10 @@ void gParticlePtrList_flush(void) { } #endif -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_800101AC.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80010994.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80011134.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80011264.s") +GLOBAL_ASM("asm/non_matchings/objects/func_800101AC.s") +GLOBAL_ASM("asm/non_matchings/objects/func_80010994.s") +GLOBAL_ASM("asm/non_matchings/objects/func_80011134.s") +GLOBAL_ASM("asm/non_matchings/objects/func_80011264.s") void func_80011390(void) { D_8011ADAC = 0; @@ -818,17 +818,17 @@ s32 func_800113BC() { return D_8011ADBC; } -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_800113CC.s") +GLOBAL_ASM("asm/non_matchings/objects/func_800113CC.s") s32 func_80011560(void) { //! @bug The developers probably intended this to be a void function. D_800DC848 = 1; // No return value! } -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80011570.s") +GLOBAL_ASM("asm/non_matchings/objects/func_80011570.s") #if 1 -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80011960.s") +GLOBAL_ASM("asm/non_matchings/objects/func_80011960.s") #else void func_80011960(Object *arg0, s32 arg2, u32 arg3, Object_64 *arg4, u32 arg5, u32 arg6, u32 arg7, u32 arg8, f32 arg9) { @@ -836,7 +836,7 @@ void func_80011960(Object *arg0, s32 arg2, u32 arg3, Object_64 *arg4, #endif #if 1 -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80011AD0.s") +GLOBAL_ASM("asm/non_matchings/objects/func_80011AD0.s") #else extern f32 D_800E5550; void func_80011AD0(Object *this) { @@ -883,8 +883,8 @@ void func_80011AD0(Object *this) { } #endif -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/render_3d_billboard.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/render_3d_model.s") +GLOBAL_ASM("asm/non_matchings/objects/render_3d_billboard.s") +GLOBAL_ASM("asm/non_matchings/objects/render_3d_model.s") void func_80012C30(void) { D_8011ADA4 = 0; @@ -933,7 +933,7 @@ void func_80012D5C(u32 *arg0, u32 *arg1, u32 *arg2, Object *object) { } #if 1 -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80012E28.s") +GLOBAL_ASM("asm/non_matchings/objects/func_80012E28.s") #else void func_80012E28(Object *this) { s32 unused1; @@ -978,7 +978,7 @@ void func_80012F30(Object *arg0) { } } -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80012F94.s") +GLOBAL_ASM("asm/non_matchings/objects/func_80012F94.s") void render_object(Object *this) { func_80012F94(this); @@ -1003,11 +1003,11 @@ void func_80013548(Object *arg0) { } } -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_800135B8.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_800138A8.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80013A0C.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80013DCC.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80014090.s") +GLOBAL_ASM("asm/non_matchings/objects/func_800135B8.s") +GLOBAL_ASM("asm/non_matchings/objects/func_800138A8.s") +GLOBAL_ASM("asm/non_matchings/objects/func_80013A0C.s") +GLOBAL_ASM("asm/non_matchings/objects/func_80013DCC.s") +GLOBAL_ASM("asm/non_matchings/objects/func_80014090.s") void func_800142B8(void) { s32 i = D_8011AE60; @@ -1028,22 +1028,22 @@ void func_800142B8(void) { } } -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_800143A8.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80014814.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80014B50.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80015348.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_800155B8.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_800159C8.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80016500.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80016748.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80016BC4.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80016C68.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80016DE8.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001709C.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80017248.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001790C.s") +GLOBAL_ASM("asm/non_matchings/objects/func_800143A8.s") +GLOBAL_ASM("asm/non_matchings/objects/func_80014814.s") +GLOBAL_ASM("asm/non_matchings/objects/func_80014B50.s") +GLOBAL_ASM("asm/non_matchings/objects/func_80015348.s") +GLOBAL_ASM("asm/non_matchings/objects/func_800155B8.s") +GLOBAL_ASM("asm/non_matchings/objects/func_800159C8.s") +GLOBAL_ASM("asm/non_matchings/objects/func_80016500.s") +GLOBAL_ASM("asm/non_matchings/objects/func_80016748.s") +GLOBAL_ASM("asm/non_matchings/objects/func_80016BC4.s") +GLOBAL_ASM("asm/non_matchings/objects/func_80016C68.s") +GLOBAL_ASM("asm/non_matchings/objects/func_80016DE8.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001709C.s") +GLOBAL_ASM("asm/non_matchings/objects/func_80017248.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001790C.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80017978.s") +GLOBAL_ASM("asm/non_matchings/objects/func_80017978.s") u32 func_800179D0(void) { s16 i = 0; @@ -1056,7 +1056,7 @@ u32 func_800179D0(void) { } } -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80017A18.s") +GLOBAL_ASM("asm/non_matchings/objects/func_80017A18.s") void func_80017E74(s32 arg0) { D_8011AED8 = arg0; @@ -1067,8 +1067,8 @@ s16 func_80017E88(void) { return D_8011AED8; } -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80017E98.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_800185E4.s") +GLOBAL_ASM("asm/non_matchings/objects/func_80017E98.s") +GLOBAL_ASM("asm/non_matchings/objects/func_800185E4.s") Object *func_80018C6C(void) { s32 i; @@ -1081,10 +1081,10 @@ Object *func_80018C6C(void) { return NULL; } -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80018CE0.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001955C.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80019808.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001A7D8.s") +GLOBAL_ASM("asm/non_matchings/objects/func_80018CE0.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001955C.s") +GLOBAL_ASM("asm/non_matchings/objects/func_80019808.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001A7D8.s") void func_8001A8D4(s32 arg0) { D_8011AD4E = 0x12C; @@ -1092,7 +1092,7 @@ void func_8001A8D4(s32 arg0) { D_8011AD52 = arg0; } -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001A8F4.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001A8F4.s") s16 func_8001AE44() { return D_8011AD4E; @@ -1102,7 +1102,7 @@ s32 func_8001AE54() { return D_8011ADC8; } -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001AE64.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001AE64.s") s32 func_8001B288(void) { if (func_800599A8() != func_8006BD88()) { @@ -1120,14 +1120,14 @@ s32 func_8001B2E0() { return D_8011AD34; } -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001B2F0.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001B2F0.s") s32 func_8001B3AC(s32 arg0) { return arg0 == D_800DC718; } -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001B3C4.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001B4FC.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001B3C4.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001B4FC.s") s32 func_8001B640() { return D_800DC718; @@ -1137,7 +1137,7 @@ s32 func_8001B650(void) { return D_800DC738 == 0; } -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001B668.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001B668.s") s32 func_8001B738(s32 controllerIndex) { return func_80059B7C(controllerIndex, func_800599A8(), D_800DC728, D_800DC72C, D_800DC724); @@ -1152,9 +1152,9 @@ void func_8001B790(void) { D_800DC730 = 0; } -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001B7A8.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001B834.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001B974.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001B7A8.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001B834.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001B974.s") // Returns a pointer to some struct that is 0x3C bytes long. unknown8011AECC *func_8001BA00(s32 arg0) { @@ -1183,8 +1183,8 @@ s32 *func_8001BA90(s32 *arg0) { return D_8011AEEC; } -s32 *func_8001BAAC(s32 *arg0) { - *arg0 = gObjectCount; +Object **func_8001BAAC(s32 *numberOfObjects) { + *numberOfObjects = gObjectCount; return D_8011AEE8; } @@ -1198,13 +1198,13 @@ Object *get_object_struct(s32 indx) { return (*gObjectStructArrayPtr)[indx]; } -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001BB18.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001BB68.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001BB18.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001BB68.s") void func_8001BC40(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { } -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001BC54.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001BC54.s") u32 func_8001BD94(s32 arg0) { if (arg0 < 0 || arg0 >= D_8011AEE0) { @@ -1213,14 +1213,14 @@ u32 func_8001BD94(s32 arg0) { return D_8011AEDC[0][arg0]; } -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001BDD4.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001BF20.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001C418.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001C48C.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001C524.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001C6C4.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001CC48.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001CD28.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001BDD4.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001BF20.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001C418.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001C48C.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001C524.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001C6C4.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001CC48.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001CD28.s") void func_8001D1AC(void) { D_8011AF10[0] = 1; @@ -1248,10 +1248,10 @@ u32 func_8001D214(s32 arg0) { void func_8001D23C(s32 arg0, s32 arg1, s32 arg2) { } -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001D258.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001D2A0.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001D4B4.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001D5E0.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001D258.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001D2A0.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001D4B4.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001D5E0.s") void calc_dyn_light_and_env_map_for_object(ObjectModel *model, Object *object, s32 arg2, f32 arg3) { s16 environmentMappingEnabled; @@ -1287,9 +1287,9 @@ void calc_dyn_light_and_env_map_for_object(ObjectModel *model, Object *object, s } } -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/calc_dynamic_lighting_for_object_1.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/calc_env_mapping_for_object.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001E13C.s") +GLOBAL_ASM("asm/non_matchings/objects/calc_dynamic_lighting_for_object_1.s") +GLOBAL_ASM("asm/non_matchings/objects/calc_env_mapping_for_object.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001E13C.s") /** * Returns a pointer to the asset in the misc. section. If index is out of range, then this @@ -1363,13 +1363,13 @@ s32 func_8001E4B4(void) { return D_8011AE60; } -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001E4C4.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001E6EC.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001E89C.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001E93C.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001EE74.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001EFA4.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001F23C.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001E4C4.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001E6EC.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001E89C.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001E93C.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001EE74.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001EFA4.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001F23C.s") s8 func_8001F3B8(void) { return D_8011ADD4; @@ -1382,13 +1382,13 @@ void func_8001F3C8(s32 arg0) { D_8011ADD4 = arg0; } -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001F3EC.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001F3EC.s") void func_8001F450(void) { D_8011AD53 = 1; } -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8001F460.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8001F460.s") s32 func_800210CC(s8 arg0) { if (arg0 >= D_8011AD3D) { @@ -1398,19 +1398,19 @@ s32 func_800210CC(s8 arg0) { return 0; } -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80021104.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8002125C.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80021400.s") +GLOBAL_ASM("asm/non_matchings/objects/func_80021104.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8002125C.s") +GLOBAL_ASM("asm/non_matchings/objects/func_80021400.s") s8 func_800214C4(void) { return D_8011AD22[1 - D_8011AD20[1]]; } -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_800214E4.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80021600.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/catmull_rom_interpolation.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8002263C.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8002277C.s") +GLOBAL_ASM("asm/non_matchings/objects/func_800214E4.s") +GLOBAL_ASM("asm/non_matchings/objects/func_80021600.s") +GLOBAL_ASM("asm/non_matchings/objects/catmull_rom_interpolation.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8002263C.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8002277C.s") f32 lerp(f32 *arg0, u32 arg1, f32 arg2) { f32 result = arg0[arg1 + 1] + ((arg0[arg1 + 2] - arg0[arg1 + 1]) * arg2); @@ -1418,7 +1418,7 @@ f32 lerp(f32 *arg0, u32 arg1, f32 arg2) { } #if 1 -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_800228B0.s") +GLOBAL_ASM("asm/non_matchings/objects/func_800228B0.s") #else f32 func_800228B0(f32 *arg0, u32 arg1, f32 arg2, f32 *arg3) { f32 temp_f12; @@ -1448,16 +1448,16 @@ void func_800228EC(s32 arg0) { func_8006F388(10); } -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80022948.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80022CFC.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_80022E18.s") -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_800230D0.s") +GLOBAL_ASM("asm/non_matchings/objects/func_80022948.s") +GLOBAL_ASM("asm/non_matchings/objects/func_80022CFC.s") +GLOBAL_ASM("asm/non_matchings/objects/func_80022E18.s") +GLOBAL_ASM("asm/non_matchings/objects/func_800230D0.s") s8 func_8002341C(void) { return D_8011AEF6; } #if 1 -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_8002342C.s") +GLOBAL_ASM("asm/non_matchings/objects/func_8002342C.s") #else extern f32 sqrtf(f32); @@ -1507,7 +1507,7 @@ void func_800235D0(s32 arg0) { D_8011ADD5 = arg0; } -GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_800235DC.s") +GLOBAL_ASM("asm/non_matchings/objects/func_800235DC.s") void run_object_init_func(Object *obj, void *entry, s32 arg2) { obj->behaviorId = obj->header->behaviorId; @@ -1599,7 +1599,7 @@ void run_object_init_func(Object *obj, void *entry, s32 arg2) { obj_init_stopwatchman(obj, (LevelObjectEntry_StopWatchMan *)entry); break; case 31: - obj_init_coin(obj, (LevelObjectEntry_Banana *)entry); + obj_init_banana(obj, (LevelObjectEntry_Banana *)entry); break; case 32: obj_init_rgbalight(obj, (LevelObjectEntry_RgbaLight *)entry, arg2); @@ -1666,7 +1666,7 @@ void run_object_init_func(Object *obj, void *entry, s32 arg2) { obj_init_worldkey(obj, (LevelObjectEntry_WorldKey *)entry); break; case 64: - obj_init_coincreator(obj, (LevelObjectEntry_BananaCreator *)entry); + obj_init_bananacreator(obj, (LevelObjectEntry_BananaCreator *)entry); break; case 65: obj_init_treasuresucker(obj, (LevelObjectEntry_TreasureSucker *)entry); @@ -1976,7 +1976,7 @@ void run_object_loop_func(Object *obj, s32 arg1) { obj_loop_stopwatchman(obj, arg1); break; case 32: - obj_loop_coin(obj, arg1); + obj_loop_banana(obj, arg1); break; case 36: obj_loop_buoy_pirateship(obj, arg1); @@ -2052,7 +2052,7 @@ void run_object_loop_func(Object *obj, s32 arg1) { obj_loop_worldkey(obj, arg1); //arg1=speed break; case 65: - obj_loop_coincreator(obj, arg1); + obj_loop_bananacreator(obj, arg1); break; case 66: obj_loop_treasuresucker(obj, arg1); diff --git a/src/unknown_00BC20.h b/src/objects.h similarity index 97% rename from src/unknown_00BC20.h rename to src/objects.h index 530b51ab..367af31a 100644 --- a/src/unknown_00BC20.h +++ b/src/objects.h @@ -1,5 +1,5 @@ -#ifndef _UNKNOWN_00BC20_H_ -#define _UNKNOWN_00BC20_H_ +#ifndef _OBJECTS_H_ +#define _OBJECTS_H_ #include "types.h" #include "structs.h" @@ -182,7 +182,7 @@ unknown8011AECC *func_8001BA1C(s32 arg0, s32 arg1); s32 func_8001BA64(); Object **get_object_struct_array(s32 *cnt); s32 *func_8001BA90(s32 *arg0); -s32 *func_8001BAAC(s32 *arg0); +Object **func_8001BAAC(s32 *numberOfObjects); Object *get_object_struct(s32 indx); void func_8001BC40(s32 arg0, s32 arg1, s32 arg2, s32 arg3); u32 func_8001BD94(s32 arg0); @@ -230,7 +230,7 @@ void func_80012E28(Object *this); void func_8001D5E0(f32 arg0, f32 arg1, f32 arg2); s32 func_80014814(s32 *); void func_80015348(s32, s32); -Object *func_8000EA54(unk80027FC4*, s32); +Object *spawn_object(void *entry, s32); s32 func_8001F460(Object*, s32, Object*); void func_80011570(Object *, f32, f32, f32); s32 func_80016DE8(f32, f32, f32, f32, s32, unk80042178 *); diff --git a/src/racer.c b/src/racer.c index d0cd090a..97373a60 100644 --- a/src/racer.c +++ b/src/racer.c @@ -12,7 +12,7 @@ #include "asset_sections.h" #include "save_data.h" #include "unknown_008C40.h" -#include "unknown_00BC20.h" +#include "objects.h" #include "audio.h" #include "object_functions.h" #include "game.h" diff --git a/src/save_data.c b/src/save_data.c index 40bd21ff..4b9409da 100644 --- a/src/save_data.c +++ b/src/save_data.c @@ -8,7 +8,7 @@ #include "macros.h" #include "structs.h" #include "camera.h" -#include "unknown_00BC20.h" +#include "objects.h" #include "game.h" #include "unknown_0CEC50.h" diff --git a/src/thread0_epc.c b/src/thread0_epc.c index ef23e61c..5fdffca8 100644 --- a/src/thread0_epc.c +++ b/src/thread0_epc.c @@ -7,7 +7,7 @@ #include "menu.h" #include "save_data.h" #include "printf.h" -#include "unknown_00BC20.h" +#include "objects.h" #include "controller.h" #include "game.h" diff --git a/src/unknown_0255E0.c b/src/unknown_0255E0.c index c0de9fea..bcc387aa 100644 --- a/src/unknown_0255E0.c +++ b/src/unknown_0255E0.c @@ -9,7 +9,7 @@ #include "f3ddkr.h" #include "PR/gu.h" #include "textures_sprites.h" -#include "unknown_00BC20.h" +#include "objects.h" #include "game.h" #include "memory.h" #include "racer.h" @@ -288,7 +288,7 @@ void func_80027FC4(s32 arg0) { sp20.unk6 = 0; sp20.unk1 = 8; sp20.unk0 = arg0; - D_8011B0B8 = func_8000EA54(&sp20, 2); + D_8011B0B8 = spawn_object(&sp20, 2); if (D_8011B0B8 != 0) { D_8011B0B8->unk3C_a.unk3C = 0; D_8011B0B8->unk4A = -1; diff --git a/src/unknown_05CEF0.c b/src/unknown_05CEF0.c index d48113ad..d80789be 100644 --- a/src/unknown_05CEF0.c +++ b/src/unknown_05CEF0.c @@ -7,7 +7,7 @@ #include "types.h" #include "macros.h" #include "audio.h" -#include "unknown_00BC20.h" +#include "objects.h" #include "unknown_005740.h" #include "unknown_008C40.h"