From 1173f4c681d64b7ad3d664ef3008f575d44a5b3b Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sat, 7 Nov 2020 14:44:44 -0500 Subject: [PATCH 01/52] :island: --- asm/nonmatchings/code_317020/func_802BD174.s | 9 -- .../dgb_00/BFA100/func_80240060_BFA100.s | 24 ----- .../dgb_01/BFD880/func_80240000_BFD880.s | 20 ---- .../dgb_01/BFD9A0/func_802433BC_C00C3C.s | 17 ---- .../dgb_08/C3FDB0/func_80243B6C_C4391C.s | 15 --- .../dgb_15/C4F510/func_80241760_C50C70.s | 16 --- .../dgb_18/C55F40/func_80240E90_C56DD0.s | 15 --- .../kkj_25/B06A50/func_80240050_B06A50.s | 16 --- .../world/script_api/7E0E80/MakeShopOwner.s | 22 ----- .../world/script_api/7E0E80/func_802803C8.s | 24 ----- .../world/script_api/7E2AA0/func_80282594.s | 4 +- .../7E3700/TeleportPartnerToPlayer.s | 41 -------- .../world/script_api/7E3700/func_80282880.s | 27 ----- .../world/script_api/7E3700/func_80283810.s | 33 ------- .../world/script_api/7E3700/func_80283B88.s | 14 --- .../world/script_api/7E3700/func_80283BB0.s | 12 --- .../world/script_api/7E3700/func_80283BD0.s | 30 ------ include/common.h | 1 + include/common_structs.h | 5 +- include/functions.h | 2 + src/code_102610_len_2330.c | 6 +- src/code_317020.c | 5 +- src/code_838b0_len_5900.c | 2 +- src/code_de740_len_23f0.c | 2 +- src/world/area_dgb/dgb_00/BFA100.c | 7 +- src/world/area_dgb/dgb_01/BFD880.c | 5 +- src/world/area_dgb/dgb_01/BFD9A0.c | 2 +- src/world/area_dgb/dgb_08/C3FDB0.c | 2 +- src/world/area_dgb/dgb_15/C4F510.c | 2 +- src/world/area_dgb/dgb_18/C55F40.c | 2 +- src/world/area_kkj/kkj_25/B06A50.c | 2 +- src/world/area_sbk/sbk_00/929270.c | 58 +++++++++++ src/world/area_sbk/sbk_00/9292B0.c | 68 +++++++++++++ src/world/area_sbk/sbk_00/929A00.bin.c | 8 ++ src/world/area_sbk/sbk_00/sbk_00.h | 2 + src/world/common/UnkFunc1.inc.c | 7 ++ src/world/script_api/7E0E80.c | 24 ++++- src/world/script_api/7E3700.c | 98 +++++++++++++++++-- tools/disasm_script.py | 8 +- tools/splat.yaml | 6 +- tools/symbol_addrs.txt | 4 + 41 files changed, 300 insertions(+), 367 deletions(-) delete mode 100644 asm/nonmatchings/code_317020/func_802BD174.s delete mode 100644 asm/nonmatchings/world/area_dgb/dgb_00/BFA100/func_80240060_BFA100.s delete mode 100644 asm/nonmatchings/world/area_dgb/dgb_01/BFD880/func_80240000_BFD880.s delete mode 100644 asm/nonmatchings/world/area_dgb/dgb_01/BFD9A0/func_802433BC_C00C3C.s delete mode 100644 asm/nonmatchings/world/area_dgb/dgb_08/C3FDB0/func_80243B6C_C4391C.s delete mode 100644 asm/nonmatchings/world/area_dgb/dgb_15/C4F510/func_80241760_C50C70.s delete mode 100644 asm/nonmatchings/world/area_dgb/dgb_18/C55F40/func_80240E90_C56DD0.s delete mode 100644 asm/nonmatchings/world/area_kkj/kkj_25/B06A50/func_80240050_B06A50.s delete mode 100644 asm/nonmatchings/world/script_api/7E0E80/MakeShopOwner.s delete mode 100644 asm/nonmatchings/world/script_api/7E0E80/func_802803C8.s delete mode 100644 asm/nonmatchings/world/script_api/7E3700/TeleportPartnerToPlayer.s delete mode 100644 asm/nonmatchings/world/script_api/7E3700/func_80282880.s delete mode 100644 asm/nonmatchings/world/script_api/7E3700/func_80283810.s delete mode 100644 asm/nonmatchings/world/script_api/7E3700/func_80283B88.s delete mode 100644 asm/nonmatchings/world/script_api/7E3700/func_80283BB0.s delete mode 100644 asm/nonmatchings/world/script_api/7E3700/func_80283BD0.s create mode 100644 src/world/area_sbk/sbk_00/929A00.bin.c create mode 100644 src/world/common/UnkFunc1.inc.c diff --git a/asm/nonmatchings/code_317020/func_802BD174.s b/asm/nonmatchings/code_317020/func_802BD174.s deleted file mode 100644 index eaab83f2f5..0000000000 --- a/asm/nonmatchings/code_317020/func_802BD174.s +++ /dev/null @@ -1,9 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802BD174 -/* 317094 802BD174 24020018 */ addiu $v0, $zero, 0x18 -/* 317098 802BD178 A48200A8 */ sh $v0, 0xa8($a0) -/* 31709C 802BD17C 24020014 */ addiu $v0, $zero, 0x14 -/* 3170A0 802BD180 03E00008 */ jr $ra -/* 3170A4 802BD184 A48200A6 */ sh $v0, 0xa6($a0) diff --git a/asm/nonmatchings/world/area_dgb/dgb_00/BFA100/func_80240060_BFA100.s b/asm/nonmatchings/world/area_dgb/dgb_00/BFA100/func_80240060_BFA100.s deleted file mode 100644 index ff23ced951..0000000000 --- a/asm/nonmatchings/world/area_dgb/dgb_00/BFA100/func_80240060_BFA100.s +++ /dev/null @@ -1,24 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80240060_BFA100 -/* BFA100 80240060 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* BFA104 80240064 AFBF0018 */ sw $ra, 0x18($sp) -/* BFA108 80240068 0C00FB3A */ jal get_enemy -/* BFA10C 8024006C 24040006 */ addiu $a0, $zero, 6 -/* BFA110 80240070 84440008 */ lh $a0, 8($v0) -/* BFA114 80240074 0C00EABB */ jal get_npc_unsafe -/* BFA118 80240078 00000000 */ nop -/* BFA11C 8024007C C4400040 */ lwc1 $f0, 0x40($v0) -/* BFA120 80240080 2404032E */ addiu $a0, $zero, 0x32e -/* BFA124 80240084 E7A00010 */ swc1 $f0, 0x10($sp) -/* BFA128 80240088 8C460038 */ lw $a2, 0x38($v0) -/* BFA12C 8024008C 8C47003C */ lw $a3, 0x3c($v0) -/* BFA130 80240090 0C05267B */ jal func_801499EC -/* BFA134 80240094 0000282D */ daddu $a1, $zero, $zero -/* BFA138 80240098 8FBF0018 */ lw $ra, 0x18($sp) -/* BFA13C 8024009C 24020002 */ addiu $v0, $zero, 2 -/* BFA140 802400A0 03E00008 */ jr $ra -/* BFA144 802400A4 27BD0020 */ addiu $sp, $sp, 0x20 -/* BFA148 802400A8 00000000 */ nop -/* BFA14C 802400AC 00000000 */ nop diff --git a/asm/nonmatchings/world/area_dgb/dgb_01/BFD880/func_80240000_BFD880.s b/asm/nonmatchings/world/area_dgb/dgb_01/BFD880/func_80240000_BFD880.s deleted file mode 100644 index 4516098874..0000000000 --- a/asm/nonmatchings/world/area_dgb/dgb_01/BFD880/func_80240000_BFD880.s +++ /dev/null @@ -1,20 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80240000_BFD880 -/* BFD880 80240000 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* BFD884 80240004 3C0400C2 */ lui $a0, 0xc2 -/* BFD888 80240008 24840F40 */ addiu $a0, $a0, 0xf40 -/* BFD88C 8024000C 3C0500C3 */ lui $a1, 0xc3 -/* BFD890 80240010 24A5EBA0 */ addiu $a1, $a1, -0x1460 -/* BFD894 80240014 3C068020 */ lui $a2, %hi(gBackgroundImage) -/* BFD898 80240018 24C60000 */ addiu $a2, $a2, %lo(gBackgroundImage) -/* BFD89C 8024001C AFBF0010 */ sw $ra, 0x10($sp) -/* BFD8A0 80240020 0C00A5CF */ jal dma_copy -/* BFD8A4 80240024 00000000 */ nop -/* BFD8A8 80240028 8FBF0010 */ lw $ra, 0x10($sp) -/* BFD8AC 8024002C 24020002 */ addiu $v0, $zero, 2 -/* BFD8B0 80240030 03E00008 */ jr $ra -/* BFD8B4 80240034 27BD0018 */ addiu $sp, $sp, 0x18 -/* BFD8B8 80240038 00000000 */ nop -/* BFD8BC 8024003C 00000000 */ nop diff --git a/asm/nonmatchings/world/area_dgb/dgb_01/BFD9A0/func_802433BC_C00C3C.s b/asm/nonmatchings/world/area_dgb/dgb_01/BFD9A0/func_802433BC_C00C3C.s deleted file mode 100644 index 779db28dea..0000000000 --- a/asm/nonmatchings/world/area_dgb/dgb_01/BFD9A0/func_802433BC_C00C3C.s +++ /dev/null @@ -1,17 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802433BC_C00C3C -/* C00C3C 802433BC 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* C00C40 802433C0 AFBF0010 */ sw $ra, 0x10($sp) -/* C00C44 802433C4 0C03A6D5 */ jal increment_status_menu_disabled -/* C00C48 802433C8 00000000 */ nop -/* C00C4C 802433CC 3C05437F */ lui $a1, 0x437f -/* C00C50 802433D0 0C04DF69 */ jal func_80137DA4 -/* C00C54 802433D4 0000202D */ daddu $a0, $zero, $zero -/* C00C58 802433D8 8FBF0010 */ lw $ra, 0x10($sp) -/* C00C5C 802433DC 24020002 */ addiu $v0, $zero, 2 -/* C00C60 802433E0 03E00008 */ jr $ra -/* C00C64 802433E4 27BD0018 */ addiu $sp, $sp, 0x18 -/* C00C68 802433E8 00000000 */ nop -/* C00C6C 802433EC 00000000 */ nop diff --git a/asm/nonmatchings/world/area_dgb/dgb_08/C3FDB0/func_80243B6C_C4391C.s b/asm/nonmatchings/world/area_dgb/dgb_08/C3FDB0/func_80243B6C_C4391C.s deleted file mode 100644 index eb87c275e9..0000000000 --- a/asm/nonmatchings/world/area_dgb/dgb_08/C3FDB0/func_80243B6C_C4391C.s +++ /dev/null @@ -1,15 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80243B6C_C4391C -/* C4391C 80243B6C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* C43920 80243B70 AFBF0010 */ sw $ra, 0x10($sp) -/* C43924 80243B74 0C03A6D5 */ jal increment_status_menu_disabled -/* C43928 80243B78 00000000 */ nop -/* C4392C 80243B7C 3C05437F */ lui $a1, 0x437f -/* C43930 80243B80 0C04DF69 */ jal func_80137DA4 -/* C43934 80243B84 0000202D */ daddu $a0, $zero, $zero -/* C43938 80243B88 8FBF0010 */ lw $ra, 0x10($sp) -/* C4393C 80243B8C 24020002 */ addiu $v0, $zero, 2 -/* C43940 80243B90 03E00008 */ jr $ra -/* C43944 80243B94 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/nonmatchings/world/area_dgb/dgb_15/C4F510/func_80241760_C50C70.s b/asm/nonmatchings/world/area_dgb/dgb_15/C4F510/func_80241760_C50C70.s deleted file mode 100644 index 6930360aea..0000000000 --- a/asm/nonmatchings/world/area_dgb/dgb_15/C4F510/func_80241760_C50C70.s +++ /dev/null @@ -1,16 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80241760_C50C70 -/* C50C70 80241760 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* C50C74 80241764 AFBF0010 */ sw $ra, 0x10($sp) -/* C50C78 80241768 0C03A6D5 */ jal increment_status_menu_disabled -/* C50C7C 8024176C 00000000 */ nop -/* C50C80 80241770 3C05437F */ lui $a1, 0x437f -/* C50C84 80241774 0C04DF69 */ jal func_80137DA4 -/* C50C88 80241778 0000202D */ daddu $a0, $zero, $zero -/* C50C8C 8024177C 8FBF0010 */ lw $ra, 0x10($sp) -/* C50C90 80241780 24020002 */ addiu $v0, $zero, 2 -/* C50C94 80241784 03E00008 */ jr $ra -/* C50C98 80241788 27BD0018 */ addiu $sp, $sp, 0x18 -/* C50C9C 8024178C 00000000 */ nop diff --git a/asm/nonmatchings/world/area_dgb/dgb_18/C55F40/func_80240E90_C56DD0.s b/asm/nonmatchings/world/area_dgb/dgb_18/C55F40/func_80240E90_C56DD0.s deleted file mode 100644 index 4c68fcda40..0000000000 --- a/asm/nonmatchings/world/area_dgb/dgb_18/C55F40/func_80240E90_C56DD0.s +++ /dev/null @@ -1,15 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80240E90_C56DD0 -/* C56DD0 80240E90 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* C56DD4 80240E94 AFBF0010 */ sw $ra, 0x10($sp) -/* C56DD8 80240E98 0C03A6D5 */ jal increment_status_menu_disabled -/* C56DDC 80240E9C 00000000 */ nop -/* C56DE0 80240EA0 3C05437F */ lui $a1, 0x437f -/* C56DE4 80240EA4 0C04DF69 */ jal func_80137DA4 -/* C56DE8 80240EA8 0000202D */ daddu $a0, $zero, $zero -/* C56DEC 80240EAC 8FBF0010 */ lw $ra, 0x10($sp) -/* C56DF0 80240EB0 24020002 */ addiu $v0, $zero, 2 -/* C56DF4 80240EB4 03E00008 */ jr $ra -/* C56DF8 80240EB8 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/nonmatchings/world/area_kkj/kkj_25/B06A50/func_80240050_B06A50.s b/asm/nonmatchings/world/area_kkj/kkj_25/B06A50/func_80240050_B06A50.s deleted file mode 100644 index 07fa0e0388..0000000000 --- a/asm/nonmatchings/world/area_kkj/kkj_25/B06A50/func_80240050_B06A50.s +++ /dev/null @@ -1,16 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80240050_B06A50 -/* B06A50 80240050 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* B06A54 80240054 AFBF0010 */ sw $ra, 0x10($sp) -/* B06A58 80240058 0C03A6D5 */ jal increment_status_menu_disabled -/* B06A5C 8024005C 00000000 */ nop -/* B06A60 80240060 3C05437F */ lui $a1, 0x437f -/* B06A64 80240064 0C04DF69 */ jal func_80137DA4 -/* B06A68 80240068 0000202D */ daddu $a0, $zero, $zero -/* B06A6C 8024006C 8FBF0010 */ lw $ra, 0x10($sp) -/* B06A70 80240070 24020002 */ addiu $v0, $zero, 2 -/* B06A74 80240074 03E00008 */ jr $ra -/* B06A78 80240078 27BD0018 */ addiu $sp, $sp, 0x18 -/* B06A7C 8024007C 00000000 */ nop diff --git a/asm/nonmatchings/world/script_api/7E0E80/MakeShopOwner.s b/asm/nonmatchings/world/script_api/7E0E80/MakeShopOwner.s deleted file mode 100644 index f2774454e3..0000000000 --- a/asm/nonmatchings/world/script_api/7E0E80/MakeShopOwner.s +++ /dev/null @@ -1,22 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel MakeShopOwner -/* 7E2A58 80281BD8 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 7E2A5C 80281BDC AFBF0014 */ sw $ra, 0x14($sp) -/* 7E2A60 80281BE0 AFB00010 */ sw $s0, 0x10($sp) -/* 7E2A64 80281BE4 8C82000C */ lw $v0, 0xc($a0) -/* 7E2A68 80281BE8 3C038007 */ lui $v1, %hi(gGameStatusPtr) -/* 7E2A6C 80281BEC 8C63419C */ lw $v1, %lo(gGameStatusPtr)($v1) -/* 7E2A70 80281BF0 8C450000 */ lw $a1, ($v0) -/* 7E2A74 80281BF4 0C0B1EAF */ jal get_variable -/* 7E2A78 80281BF8 8C700144 */ lw $s0, 0x144($v1) -/* 7E2A7C 80281BFC AE020010 */ sw $v0, 0x10($s0) -/* 7E2A80 80281C00 8FBF0014 */ lw $ra, 0x14($sp) -/* 7E2A84 80281C04 8FB00010 */ lw $s0, 0x10($sp) -/* 7E2A88 80281C08 24020002 */ addiu $v0, $zero, 2 -/* 7E2A8C 80281C0C 03E00008 */ jr $ra -/* 7E2A90 80281C10 27BD0018 */ addiu $sp, $sp, 0x18 -/* 7E2A94 80281C14 00000000 */ nop -/* 7E2A98 80281C18 00000000 */ nop -/* 7E2A9C 80281C1C 00000000 */ nop diff --git a/asm/nonmatchings/world/script_api/7E0E80/func_802803C8.s b/asm/nonmatchings/world/script_api/7E0E80/func_802803C8.s deleted file mode 100644 index 64650b0886..0000000000 --- a/asm/nonmatchings/world/script_api/7E0E80/func_802803C8.s +++ /dev/null @@ -1,24 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802803C8 -/* 7E1248 802803C8 3C058011 */ lui $a1, %hi(gPlayerStatus) -/* 7E124C 802803CC 24A5EFC8 */ addiu $a1, $a1, %lo(gPlayerStatus) -/* 7E1250 802803D0 AC80008C */ sw $zero, 0x8c($a0) -/* 7E1254 802803D4 80A300B4 */ lb $v1, 0xb4($a1) -/* 7E1258 802803D8 24020004 */ addiu $v0, $zero, 4 -/* 7E125C 802803DC 10620008 */ beq $v1, $v0, .L80280400 -/* 7E1260 802803E0 24020008 */ addiu $v0, $zero, 8 -/* 7E1264 802803E4 10620006 */ beq $v1, $v0, .L80280400 -/* 7E1268 802803E8 00000000 */ nop -/* 7E126C 802803EC 8CA20000 */ lw $v0, ($a1) -/* 7E1270 802803F0 30420100 */ andi $v0, $v0, 0x100 -/* 7E1274 802803F4 14400004 */ bnez $v0, .L80280408 -/* 7E1278 802803F8 24020001 */ addiu $v0, $zero, 1 -/* 7E127C 802803FC AC82008C */ sw $v0, 0x8c($a0) -.L80280400: -/* 7E1280 80280400 03E00008 */ jr $ra -/* 7E1284 80280404 24020002 */ addiu $v0, $zero, 2 -.L80280408: -/* 7E1288 80280408 03E00008 */ jr $ra -/* 7E128C 8028040C 24020002 */ addiu $v0, $zero, 2 diff --git a/asm/nonmatchings/world/script_api/7E2AA0/func_80282594.s b/asm/nonmatchings/world/script_api/7E2AA0/func_80282594.s index b0c513c697..2663f990ca 100644 --- a/asm/nonmatchings/world/script_api/7E2AA0/func_80282594.s +++ b/asm/nonmatchings/world/script_api/7E2AA0/func_80282594.s @@ -11,9 +11,9 @@ glabel func_80282594 /* 7E342C 802825AC 3C02800B */ lui $v0, %hi(gCameras) /* 7E3430 802825B0 24421D80 */ addiu $v0, $v0, %lo(gCameras) /* 7E3434 802825B4 44800000 */ mtc1 $zero, $f0 -/* 7E3438 802825B8 00000000 */ nop +/* 7E3438 802825B8 00000000 */ nop /* 7E343C 802825BC 4602003E */ c.le.s $f0, $f2 -/* 7E3440 802825C0 00000000 */ nop +/* 7E3440 802825C0 00000000 */ nop /* 7E3444 802825C4 45000006 */ bc1f .L802825E0 /* 7E3448 802825C8 0040182D */ daddu $v1, $v0, $zero /* 7E344C 802825CC C4400490 */ lwc1 $f0, 0x490($v0) diff --git a/asm/nonmatchings/world/script_api/7E3700/TeleportPartnerToPlayer.s b/asm/nonmatchings/world/script_api/7E3700/TeleportPartnerToPlayer.s deleted file mode 100644 index 3af1e3c00a..0000000000 --- a/asm/nonmatchings/world/script_api/7E3700/TeleportPartnerToPlayer.s +++ /dev/null @@ -1,41 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel TeleportPartnerToPlayer -/* 7E46FC 8028387C 3C028011 */ lui $v0, %hi(gPlayerData+0x12) -/* 7E4700 80283880 8042F2A2 */ lb $v0, %lo(gPlayerData+0x12)($v0) -/* 7E4704 80283884 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 7E4708 80283888 AFB10014 */ sw $s1, 0x14($sp) -/* 7E470C 8028388C 3C118011 */ lui $s1, %hi(gPlayerStatus) -/* 7E4710 80283890 2631EFC8 */ addiu $s1, $s1, %lo(gPlayerStatus) -/* 7E4714 80283894 AFB20018 */ sw $s2, 0x18($sp) -/* 7E4718 80283898 0220902D */ daddu $s2, $s1, $zero -/* 7E471C 8028389C AFBF001C */ sw $ra, 0x1c($sp) -/* 7E4720 802838A0 10400012 */ beqz $v0, .L802838EC -/* 7E4724 802838A4 AFB00010 */ sw $s0, 0x10($sp) -/* 7E4728 802838A8 0C00EABB */ jal get_npc_unsafe -/* 7E472C 802838AC 2404FFFC */ addiu $a0, $zero, -4 -/* 7E4730 802838B0 C6200028 */ lwc1 $f0, 0x28($s1) -/* 7E4734 802838B4 0040802D */ daddu $s0, $v0, $zero -/* 7E4738 802838B8 E6000038 */ swc1 $f0, 0x38($s0) -/* 7E473C 802838BC C6200030 */ lwc1 $f0, 0x30($s1) -/* 7E4740 802838C0 0C03A969 */ jal is_current_partner_flying -/* 7E4744 802838C4 E6000040 */ swc1 $f0, 0x40($s0) -/* 7E4748 802838C8 10400003 */ beqz $v0, .L802838D8 -/* 7E474C 802838CC 00000000 */ nop -/* 7E4750 802838D0 C620002C */ lwc1 $f0, 0x2c($s1) -/* 7E4754 802838D4 E600003C */ swc1 $f0, 0x3c($s0) -.L802838D8: -/* 7E4758 802838D8 8E450080 */ lw $a1, 0x80($s2) -/* 7E475C 802838DC 0C00ECD0 */ jal set_npc_yaw -/* 7E4760 802838E0 0200202D */ daddu $a0, $s0, $zero -/* 7E4764 802838E4 0C03BD17 */ jal clear_partner_move_history -/* 7E4768 802838E8 0200202D */ daddu $a0, $s0, $zero -.L802838EC: -/* 7E476C 802838EC 24020002 */ addiu $v0, $zero, 2 -/* 7E4770 802838F0 8FBF001C */ lw $ra, 0x1c($sp) -/* 7E4774 802838F4 8FB20018 */ lw $s2, 0x18($sp) -/* 7E4778 802838F8 8FB10014 */ lw $s1, 0x14($sp) -/* 7E477C 802838FC 8FB00010 */ lw $s0, 0x10($sp) -/* 7E4780 80283900 03E00008 */ jr $ra -/* 7E4784 80283904 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/nonmatchings/world/script_api/7E3700/func_80282880.s b/asm/nonmatchings/world/script_api/7E3700/func_80282880.s deleted file mode 100644 index f06a66e3ff..0000000000 --- a/asm/nonmatchings/world/script_api/7E3700/func_80282880.s +++ /dev/null @@ -1,27 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80282880 -/* 7E3700 80282880 3C028011 */ lui $v0, %hi(gPlayerStatus) -/* 7E3704 80282884 2442EFC8 */ addiu $v0, $v0, %lo(gPlayerStatus) -/* 7E3708 80282888 C4420028 */ lwc1 $f2, 0x28($v0) -/* 7E370C 8028288C C4800084 */ lwc1 $f0, 0x84($a0) -/* 7E3710 80282890 46800020 */ cvt.s.w $f0, $f0 -/* 7E3714 80282894 46020001 */ sub.s $f0, $f0, $f2 -/* 7E3718 80282898 3C013F00 */ lui $at, 0x3f00 -/* 7E371C 8028289C 44812000 */ mtc1 $at, $f4 -/* 7E3720 802828A0 00000000 */ nop -/* 7E3724 802828A4 46040002 */ mul.s $f0, $f0, $f4 -/* 7E3728 802828A8 00000000 */ nop -/* 7E372C 802828AC 46001080 */ add.s $f2, $f2, $f0 -/* 7E3730 802828B0 E4420028 */ swc1 $f2, 0x28($v0) -/* 7E3734 802828B4 C4420030 */ lwc1 $f2, 0x30($v0) -/* 7E3738 802828B8 C480008C */ lwc1 $f0, 0x8c($a0) -/* 7E373C 802828BC 46800020 */ cvt.s.w $f0, $f0 -/* 7E3740 802828C0 46020001 */ sub.s $f0, $f0, $f2 -/* 7E3744 802828C4 46040002 */ mul.s $f0, $f0, $f4 -/* 7E3748 802828C8 00000000 */ nop -/* 7E374C 802828CC 46001080 */ add.s $f2, $f2, $f0 -/* 7E3750 802828D0 E4420030 */ swc1 $f2, 0x30($v0) -/* 7E3754 802828D4 03E00008 */ jr $ra -/* 7E3758 802828D8 24020002 */ addiu $v0, $zero, 2 diff --git a/asm/nonmatchings/world/script_api/7E3700/func_80283810.s b/asm/nonmatchings/world/script_api/7E3700/func_80283810.s deleted file mode 100644 index 6059f9801d..0000000000 --- a/asm/nonmatchings/world/script_api/7E3700/func_80283810.s +++ /dev/null @@ -1,33 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80283810 -/* 7E4690 80283810 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 7E4694 80283814 AFB00010 */ sw $s0, 0x10($sp) -/* 7E4698 80283818 0080802D */ daddu $s0, $a0, $zero -/* 7E469C 8028381C AFBF0014 */ sw $ra, 0x14($sp) -/* 7E46A0 80283820 0C03AD8E */ jal partner_get_ride_script -/* 7E46A4 80283824 AE0000AC */ sw $zero, 0xac($s0) -/* 7E46A8 80283828 1040000F */ beqz $v0, .L80283868 -/* 7E46AC 8028382C 00000000 */ nop -/* 7E46B0 80283830 3C028011 */ lui $v0, %hi(D_8010EBB0) -/* 7E46B4 80283834 8042EBB0 */ lb $v0, %lo(D_8010EBB0)($v0) -/* 7E46B8 80283838 14400003 */ bnez $v0, .L80283848 -/* 7E46BC 8028383C 24020001 */ addiu $v0, $zero, 1 -/* 7E46C0 80283840 080A0E1A */ j .L80283868 -/* 7E46C4 80283844 AE0000AC */ sw $zero, 0xac($s0) -.L80283848: -/* 7E46C8 80283848 0C03AD8E */ jal partner_get_ride_script -/* 7E46CC 8028384C AE0200AC */ sw $v0, 0xac($s0) -/* 7E46D0 80283850 AE0200B0 */ sw $v0, 0xb0($s0) -/* 7E46D4 80283854 3C028011 */ lui $v0, %hi(gPlayerStatus) -/* 7E46D8 80283858 2442EFC8 */ addiu $v0, $v0, %lo(gPlayerStatus) -/* 7E46DC 8028385C C4400080 */ lwc1 $f0, 0x80($v0) -/* 7E46E0 80283860 4600008D */ trunc.w.s $f2, $f0 -/* 7E46E4 80283864 E60200B8 */ swc1 $f2, 0xb8($s0) -.L80283868: -/* 7E46E8 80283868 8FBF0014 */ lw $ra, 0x14($sp) -/* 7E46EC 8028386C 8FB00010 */ lw $s0, 0x10($sp) -/* 7E46F0 80283870 24020002 */ addiu $v0, $zero, 2 -/* 7E46F4 80283874 03E00008 */ jr $ra -/* 7E46F8 80283878 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/nonmatchings/world/script_api/7E3700/func_80283B88.s b/asm/nonmatchings/world/script_api/7E3700/func_80283B88.s deleted file mode 100644 index 79ef737efa..0000000000 --- a/asm/nonmatchings/world/script_api/7E3700/func_80283B88.s +++ /dev/null @@ -1,14 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80283B88 -/* 7E4A08 80283B88 3C0141A0 */ lui $at, 0x41a0 -/* 7E4A0C 80283B8C 44816000 */ mtc1 $at, $f12 -/* 7E4A10 80283B90 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 7E4A14 80283B94 AFBF0010 */ sw $ra, 0x10($sp) -/* 7E4A18 80283B98 0C03BCE5 */ jal func_800EF394 -/* 7E4A1C 80283B9C 00000000 */ nop -/* 7E4A20 80283BA0 8FBF0010 */ lw $ra, 0x10($sp) -/* 7E4A24 80283BA4 24020002 */ addiu $v0, $zero, 2 -/* 7E4A28 80283BA8 03E00008 */ jr $ra -/* 7E4A2C 80283BAC 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/nonmatchings/world/script_api/7E3700/func_80283BB0.s b/asm/nonmatchings/world/script_api/7E3700/func_80283BB0.s deleted file mode 100644 index ad0f9c2619..0000000000 --- a/asm/nonmatchings/world/script_api/7E3700/func_80283BB0.s +++ /dev/null @@ -1,12 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80283BB0 -/* 7E4A30 80283BB0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 7E4A34 80283BB4 AFBF0010 */ sw $ra, 0x10($sp) -/* 7E4A38 80283BB8 0C03BCE9 */ jal func_800EF3A4 -/* 7E4A3C 80283BBC 00000000 */ nop -/* 7E4A40 80283BC0 8FBF0010 */ lw $ra, 0x10($sp) -/* 7E4A44 80283BC4 24020002 */ addiu $v0, $zero, 2 -/* 7E4A48 80283BC8 03E00008 */ jr $ra -/* 7E4A4C 80283BCC 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/nonmatchings/world/script_api/7E3700/func_80283BD0.s b/asm/nonmatchings/world/script_api/7E3700/func_80283BD0.s deleted file mode 100644 index 3703e72e46..0000000000 --- a/asm/nonmatchings/world/script_api/7E3700/func_80283BD0.s +++ /dev/null @@ -1,30 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80283BD0 -/* 7E4A50 80283BD0 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 7E4A54 80283BD4 AFB00010 */ sw $s0, 0x10($sp) -/* 7E4A58 80283BD8 0080802D */ daddu $s0, $a0, $zero -/* 7E4A5C 80283BDC AFB10014 */ sw $s1, 0x14($sp) -/* 7E4A60 80283BE0 3C118011 */ lui $s1, %hi(gPlayerStatus) -/* 7E4A64 80283BE4 2631EFC8 */ addiu $s1, $s1, %lo(gPlayerStatus) -/* 7E4A68 80283BE8 AFBF0018 */ sw $ra, 0x18($sp) -/* 7E4A6C 80283BEC 10A00008 */ beqz $a1, .L80283C10 -/* 7E4A70 80283BF0 8E02000C */ lw $v0, 0xc($s0) -/* 7E4A74 80283BF4 0C0B1EAF */ jal get_variable -/* 7E4A78 80283BF8 8C450000 */ lw $a1, ($v0) -/* 7E4A7C 80283BFC AE020070 */ sw $v0, 0x70($s0) -/* 7E4A80 80283C00 8E250080 */ lw $a1, 0x80($s1) -/* 7E4A84 80283C04 8E26005C */ lw $a2, 0x5c($s1) -/* 7E4A88 80283C08 0C0389DE */ jal move_player -/* 7E4A8C 80283C0C 0040202D */ daddu $a0, $v0, $zero -.L80283C10: -/* 7E4A90 80283C10 8E030070 */ lw $v1, 0x70($s0) -/* 7E4A94 80283C14 2463FFFF */ addiu $v1, $v1, -1 -/* 7E4A98 80283C18 AE030070 */ sw $v1, 0x70($s0) -/* 7E4A9C 80283C1C 8FBF0018 */ lw $ra, 0x18($sp) -/* 7E4AA0 80283C20 8FB10014 */ lw $s1, 0x14($sp) -/* 7E4AA4 80283C24 8FB00010 */ lw $s0, 0x10($sp) -/* 7E4AA8 80283C28 000317C2 */ srl $v0, $v1, 0x1f -/* 7E4AAC 80283C2C 03E00008 */ jr $ra -/* 7E4AB0 80283C30 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/include/common.h b/include/common.h index 0e3f4293aa..8e785491ea 100644 --- a/include/common.h +++ b/include/common.h @@ -10,5 +10,6 @@ #include "enums.h" #include "si.h" #include "messages.h" +#include "ld_addrs.h" #endif diff --git a/include/common_structs.h b/include/common_structs.h index 86b8fcbf08..db4990fc2e 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -934,7 +934,7 @@ typedef struct GameStatus { /* 0x158 */ UNK_PTR backgroundPalette; /* 0x15C */ s16 unk_15C; /* 0x15E */ char unk_15E[0x2]; - /* 0x160 */ s16 savedPos[3]; + /* 0x160 */ Vec3s savedPos; /* 0x166 */ u8 saveSlot; /* 0x167 */ u8 loadType; /* (0 = from map, 1 = from main menu) */ /* 0x168 */ s32 saveCount; @@ -1129,7 +1129,8 @@ typedef struct DecorationTable { } DecorationTable; // size = 0x8E8 typedef struct Shop { - /* 0x000 */ char unk_00[20]; + /* 0x000 */ char unk_00[16]; + /* 0x010 */ UNK_PTR owner; /* 0x014 */ UNK_PTR staticItemPositions; /* 0x018 */ UNK_PTR staticInventory; /* 0x01C */ UNK_PTR staticPriceList; diff --git a/include/functions.h b/include/functions.h index ce4d9e1a7d..72b99e0f04 100644 --- a/include/functions.h +++ b/include/functions.h @@ -84,6 +84,7 @@ void func_800EBB40(Npc* partner); void enable_partner_walking(Npc* partner, s32 val); void enable_partner_flying(Npc* partner, s32 val); void update_player_move_history(Npc* partner); +s32 is_current_partner_flying(void); void func_800ED5D0(Npc* partner); s32 func_800EF394(f32); @@ -121,6 +122,7 @@ f32 dist2D(f32 ax, f32 ay, f32 bx, f32 by); f32 dist3D(f32 ax, f32 ay, f32 az, f32 bx, f32 by, f32 bz); void add_vec2D_polar(f32* x, f32* y, f32 r, f32 theta); +s32 func_801499EC(s32 soundID, s32 arg1, f32 arg2, f32 arg3, f32 arg4); s32 play_sound_at_position(s32 soundID, s32 value2, f32 posX, f32 posY, f32 posZ); s32 set_music_track(s32 playerIndex, s32 songID, s32 variation, s32 fadeOutTime, s16 volume); diff --git a/src/code_102610_len_2330.c b/src/code_102610_len_2330.c index 79b804e965..75e136b1a3 100644 --- a/src/code_102610_len_2330.c +++ b/src/code_102610_len_2330.c @@ -21,9 +21,9 @@ INCLUDE_ASM(s32, "code_102610_len_2330", func_802E117C); void save_game_at_player_position(void) { GameStatus* gameStatus = GAME_STATUS; - gameStatus->savedPos[0] = gPlayerStatusPtr->position.x; - gameStatus->savedPos[1] = gPlayerStatusPtr->position.y; - gameStatus->savedPos[2] = gPlayerStatusPtr->position.z; + gameStatus->savedPos.x = gPlayerStatusPtr->position.x; + gameStatus->savedPos.y = gPlayerStatusPtr->position.y; + gameStatus->savedPos.z = gPlayerStatusPtr->position.z; fio_save_game(gameStatus->saveSlot); } diff --git a/src/code_317020.c b/src/code_317020.c index 4526348b99..0a99d4d0a4 100644 --- a/src/code_317020.c +++ b/src/code_317020.c @@ -2,7 +2,10 @@ INCLUDE_ASM(s32, "code_317020", func_802BD100); -INCLUDE_ASM(s32, "code_317020", func_802BD174); +void func_802BD174(Npc* npc) { + npc->collisionHeight = 24; + npc->collisionRadius = 20; +} INCLUDE_ASM(s32, "code_317020", func_802BD188); diff --git a/src/code_838b0_len_5900.c b/src/code_838b0_len_5900.c index e55f7cbc49..4198a83d81 100644 --- a/src/code_838b0_len_5900.c +++ b/src/code_838b0_len_5900.c @@ -17,7 +17,7 @@ s32 func_800EA524(void) { INCLUDE_ASM(s32, "code_838b0_len_5900", func_800EA52C); -INCLUDE_ASM(s32, "code_838b0_len_5900", is_current_partner_flying); +INCLUDE_ASM(s32, "code_838b0_len_5900", is_current_partner_flying, void); INCLUDE_ASM(s32, "code_838b0_len_5900", func_800EA5B8); diff --git a/src/code_de740_len_23f0.c b/src/code_de740_len_23f0.c index d804b87a6d..be4225e7e3 100644 --- a/src/code_de740_len_23f0.c +++ b/src/code_de740_len_23f0.c @@ -34,7 +34,7 @@ INCLUDE_ASM(s32, "code_de740_len_23f0", func_80149908); INCLUDE_ASM(s32, "code_de740_len_23f0", func_80149974); -INCLUDE_ASM(s32, "code_de740_len_23f0", func_801499EC); +INCLUDE_ASM(s32, "code_de740_len_23f0", func_801499EC, s32 soundID, s32 arg1, f32 arg2, f32 arg3, f32 arg4); INCLUDE_ASM(s32, "code_de740_len_23f0", func_80149A6C); diff --git a/src/world/area_dgb/dgb_00/BFA100.c b/src/world/area_dgb/dgb_00/BFA100.c index 1cb15313c9..d54066c5c2 100644 --- a/src/world/area_dgb/dgb_00/BFA100.c +++ b/src/world/area_dgb/dgb_00/BFA100.c @@ -1,3 +1,8 @@ #include "dgb_00.h" -INCLUDE_ASM(s32, "world/area_dgb/dgb_00/BFA100", func_80240060_BFA100); +ApiStatus func_80240060_BFA100(ScriptInstance* script, s32 isInitialCall) { + Npc* npc = get_npc_unsafe(get_enemy(6)->npcID); + + func_801499EC(0x32E, 0, npc->pos.x, npc->pos.y, npc->pos.z); + return ApiStatus_DONE2; +} diff --git a/src/world/area_dgb/dgb_01/BFD880.c b/src/world/area_dgb/dgb_01/BFD880.c index 4f4d64fdc5..0404168d14 100644 --- a/src/world/area_dgb/dgb_01/BFD880.c +++ b/src/world/area_dgb/dgb_01/BFD880.c @@ -1,3 +1,6 @@ #include "dgb_01.h" -INCLUDE_ASM(s32, "world/area_dgb/dgb_01/BFD880", func_80240000_BFD880); +ApiStatus func_80240000_BFD880(void) { + dma_copy(&data_C20F40_ROM_START, &data_C20F40_ROM_END, &gBackgroundImage); + return ApiStatus_DONE2; +} diff --git a/src/world/area_dgb/dgb_01/BFD9A0.c b/src/world/area_dgb/dgb_01/BFD9A0.c index a87555d06d..eec46265bb 100644 --- a/src/world/area_dgb/dgb_01/BFD9A0.c +++ b/src/world/area_dgb/dgb_01/BFD9A0.c @@ -68,4 +68,4 @@ INCLUDE_ASM(s32, "world/area_dgb/dgb_01/BFD9A0", func_80243000_C00880); INCLUDE_ASM(s32, "world/area_dgb/dgb_01/BFD9A0", func_802430C0_C00940); -INCLUDE_ASM(s32, "world/area_dgb/dgb_01/BFD9A0", func_802433BC_C00C3C); +#include "world/common/UnkFunc1.inc.c" diff --git a/src/world/area_dgb/dgb_08/C3FDB0.c b/src/world/area_dgb/dgb_08/C3FDB0.c index b9eef566fa..fca917271e 100644 --- a/src/world/area_dgb/dgb_08/C3FDB0.c +++ b/src/world/area_dgb/dgb_08/C3FDB0.c @@ -82,7 +82,7 @@ INCLUDE_ASM(s32, "world/area_dgb/dgb_08/C3FDB0", func_802435D8_C43388); INCLUDE_ASM(s32, "world/area_dgb/dgb_08/C3FDB0", func_802438F0_C436A0); -INCLUDE_ASM(s32, "world/area_dgb/dgb_08/C3FDB0", func_80243B6C_C4391C); +#include "world/common/UnkFunc1.inc.c" INCLUDE_ASM(s32, "world/area_dgb/dgb_08/C3FDB0", func_80243B98_C43948); diff --git a/src/world/area_dgb/dgb_15/C4F510.c b/src/world/area_dgb/dgb_15/C4F510.c index 5a24da4b04..b9815b6a64 100644 --- a/src/world/area_dgb/dgb_15/C4F510.c +++ b/src/world/area_dgb/dgb_15/C4F510.c @@ -38,4 +38,4 @@ INCLUDE_ASM(s32, "world/area_dgb/dgb_15/C4F510", func_802413A4_C508B4); INCLUDE_ASM(s32, "world/area_dgb/dgb_15/C4F510", func_80241464_C50974); -INCLUDE_ASM(s32, "world/area_dgb/dgb_15/C4F510", func_80241760_C50C70); +#include "world/common/UnkFunc1.inc.c" diff --git a/src/world/area_dgb/dgb_18/C55F40.c b/src/world/area_dgb/dgb_18/C55F40.c index d31ab0bd06..90666b9955 100644 --- a/src/world/area_dgb/dgb_18/C55F40.c +++ b/src/world/area_dgb/dgb_18/C55F40.c @@ -24,6 +24,6 @@ INCLUDE_ASM(s32, "world/area_dgb/dgb_18/C55F40", func_80240AD4_C56A14); INCLUDE_ASM(s32, "world/area_dgb/dgb_18/C55F40", func_80240B94_C56AD4); -INCLUDE_ASM(s32, "world/area_dgb/dgb_18/C55F40", func_80240E90_C56DD0); +#include "world/common/UnkFunc1.inc.c" INCLUDE_ASM(s32, "world/area_dgb/dgb_18/C55F40", func_80240EBC_C56DFC); diff --git a/src/world/area_kkj/kkj_25/B06A50.c b/src/world/area_kkj/kkj_25/B06A50.c index 97c35f2795..21206915a5 100644 --- a/src/world/area_kkj/kkj_25/B06A50.c +++ b/src/world/area_kkj/kkj_25/B06A50.c @@ -1,3 +1,3 @@ #include "kkj_25.h" -INCLUDE_ASM(s32, "world/area_kkj/kkj_25/B06A50", func_80240050_B06A50); +#include "world/common/UnkFunc1.inc.c" diff --git a/src/world/area_sbk/sbk_00/929270.c b/src/world/area_sbk/sbk_00/929270.c index 4789aeb107..57540c174e 100644 --- a/src/world/area_sbk/sbk_00/929270.c +++ b/src/world/area_sbk/sbk_00/929270.c @@ -1,2 +1,60 @@ #include "sbk_00.h" + #include "world/common/SpawnSunEffect.inc.c" + +Script M(Main); +s32 M(npcGroupList_80240768)[]; + +EntryList M(entryList) = { + { -475.0f, 0.0f, 0.0f, 90.0f }, + { 475.0f, 0.0f, 0.0f, 270.0f }, + { 0.0f, 0.0f, -475.0f, 180.0f }, + { 0.0f, 0.0f, 475.0f, 0.0f }, +}; + +MapConfig M(config) = { + .main = M(Main), + .entryList = M(entryList), + .entryCount = ENTRY_COUNT(M(entryList)), + .background = &gBackgroundImage, + .tattle = 0x190060, +}; + +Script M(ExitWalk_802400E0) = SCRIPT({ + group 27 + UseExitHeading(60, 1) + spawn ExitWalk + GotoMap("sbk_01", 0) + sleep 100 +}); + +Script M(ExitWalk_8024013C) = SCRIPT({ + group 27 + UseExitHeading(60, 3) + spawn ExitWalk + GotoMap("sbk_10", 2) + sleep 100 +}); + +Script M(Script_80240198) = SCRIPT({ + bind M(ExitWalk_802400E0) to 524288 3 + bind M(ExitWalk_8024013C) to 524288 6 +}); + +Script M(Main) = SCRIPT({ + SI_SAVE_VAR(425) = 10 + SetSpriteShading(-1) + if SI_SAVE_VAR(0) == 0xFFFFFFC1 { + DisablePulseStone(0) + } + SetCamPerspective(0, 3, 25, 16, 4096) + SetCamBGColor(0, 0, 0, 0) + SetCamEnabled(0, 1) + SetCamLeadPlayer(0, 0) + MakeNpcs(0, M(npcGroupList_80240768)) + await M(MakeEntities) + SpawnSunEffect() + SetMusicTrack(0, 23, 0, 8) + SI_VAR(0) = M(Script_80240198) + spawn EnterWalk +}); diff --git a/src/world/area_sbk/sbk_00/9292B0.c b/src/world/area_sbk/sbk_00/9292B0.c index d550a00288..fe21eb0d8f 100644 --- a/src/world/area_sbk/sbk_00/9292B0.c +++ b/src/world/area_sbk/sbk_00/9292B0.c @@ -1,2 +1,70 @@ #include "sbk_00.h" + #include "world/common/SetNpcB5_3.inc.c" + +s32 M(aISettings_80240300)[] = { + 0x3FE66666, 0x00000032, 0x0000000A, 0x437A0000, 0x00000000, 0x00000002, 0x40600000, 0x0000002D, + 0x00000006, 0x43960000, 0x00000000, 0x00000001, +}; + +Script M(NpcAI_80240330) = SCRIPT({ + SetNpcB5_3() + DoBasicAI(M(aISettings_80240300)) +}); + +s32 M(npcSettings_8024035C)[] = { + 0x00000000, 0x0048000F, 0x00000000, 0x00000000, M(NpcAI_80240330), 0x80077F70, 0x00000000, 0x8007809C, + 0x00000000, 0x00000000, 0x00090000, +}; + +s32 M(npcGroup_80240388)[] = { + 0x00000000, M(npcSettings_8024035C), 0xC2200000, 0x00000000, 0x43200000, 0x00000800, 0x00000000, 0x00000000, + 0x00000000, 0x0000005A, 0x800F00A8, 0x00090000, 0x00890001, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001999, 0x59980002, + 0x3FFF2666, 0x4CCC0002, 0x3FFF3FFF, 0x3FFF0002, 0x33326665, 0x33320002, 0x33327FFF, 0x26660002, + 0x26660000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001999, 0x3FFF0002, + 0x33322666, 0x33320002, 0x33323FFF, 0x33320002, 0x33326665, 0x33320002, 0x33327FFF, 0x26660002, + 0x33320000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010000, + 0xFFFFFFD8, 0x00000000, 0x000000A0, 0x00000064, 0x00000000, 0xFFFF8001, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x000003E8, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00310004, 0x00310008, 0x00310008, 0x00310008, 0x00310004, 0x00310004, 0x0031000C, 0x0031000C, + 0x00310008, 0x00310008, 0x00310008, 0x00310008, 0x00310008, 0x00310008, 0x00310008, 0x00310008, + 0x00000001, 0x00000000, 0x00000000, 0x00000000, +}; + +s32 M(npcGroup_80240578)[] = { + 0x00000001, M(npcSettings_8024035C), 0x43750000, 0x00000000, 0x42960000, 0x00000800, 0x00000000, 0x00000000, + 0x00000000, 0x0000010E, 0x800F00A8, 0x00090000, 0x00890001, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001999, 0x59980002, + 0x3FFF2666, 0x4CCC0002, 0x3FFF3FFF, 0x3FFF0002, 0x33326665, 0x33320002, 0x33327FFF, 0x26660002, + 0x26660000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001999, 0x3FFF0002, + 0x33322666, 0x33320002, 0x33323FFF, 0x33320002, 0x33326665, 0x33320002, 0x33327FFF, 0x26660002, + 0x33320000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010000, + 0x000000F5, 0x00000000, 0x0000004B, 0x00000064, 0x00000000, 0xFFFF8001, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x000003E8, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00310004, 0x00310008, 0x00310008, 0x00310008, 0x00310004, 0x00310004, 0x0031000C, 0x0031000C, + 0x00310008, 0x00310008, 0x00310008, 0x00310008, 0x00310008, 0x00310008, 0x00310008, 0x00310008, + 0x00000001, 0x00000000, 0x00000000, 0x00000000, +}; + +s32 M(npcGroupList_80240768)[] = { + 0x00000001, M(npcGroup_80240388), 0x0A000001, 0x00000001, M(npcGroup_80240578), 0x0A010001, 0x00000000, 0x00000000, + 0x00000000, +}; + +static s32 padding = 0; + +Script M(MakeEntities) = SCRIPT({ + MakeEntity(0x802EA564, 0xFFFFFF1A, 0, 155, 0, 152, 0x80000000) + AssignBlockFlag(SI_SAVE_FLAG(797)) + MakeEntity(0x802EA564, 160, 0, 205, 0, 343, 0x80000000) + AssignBlockFlag(SI_SAVE_FLAG(798)) +}); diff --git a/src/world/area_sbk/sbk_00/929A00.bin.c b/src/world/area_sbk/sbk_00/929A00.bin.c new file mode 100644 index 0000000000..84bf640361 --- /dev/null +++ b/src/world/area_sbk/sbk_00/929A00.bin.c @@ -0,0 +1,8 @@ +#include "sbk_00.h" + +Script M(MakeEntities) = SCRIPT({ + MakeEntity(0x802EA564, 0xFFFFFF1A, 0, 155, 0, 152, 0x80000000) + AssignBlockFlag(SI_SAVE_FLAG(797)) + MakeEntity(0x802EA564, 160, 0, 205, 0, 343, 0x80000000) + AssignBlockFlag(SI_SAVE_FLAG(798)) +}); diff --git a/src/world/area_sbk/sbk_00/sbk_00.h b/src/world/area_sbk/sbk_00/sbk_00.h index 75efd5a290..9d1f153ac5 100644 --- a/src/world/area_sbk/sbk_00/sbk_00.h +++ b/src/world/area_sbk/sbk_00/sbk_00.h @@ -2,3 +2,5 @@ #include "map.h" #define MAP_NAME sbk_00 + +Script M(MakeEntities); diff --git a/src/world/common/UnkFunc1.inc.c b/src/world/common/UnkFunc1.inc.c new file mode 100644 index 0000000000..8290cef1f7 --- /dev/null +++ b/src/world/common/UnkFunc1.inc.c @@ -0,0 +1,7 @@ +#include "common.h" + +static ApiStatus UnkFunc1(ScriptInstance* script, s32 isInitialCall) { + increment_status_menu_disabled(); + func_80137DA4(0, 255.0f); + return ApiStatus_DONE2; +} diff --git a/src/world/script_api/7E0E80.c b/src/world/script_api/7E0E80.c index 2f02eeb2ae..27e0d65082 100644 --- a/src/world/script_api/7E0E80.c +++ b/src/world/script_api/7E0E80.c @@ -12,7 +12,22 @@ INCLUDE_ASM(s32, "world/script_api/7E0E80", func_802802D0); INCLUDE_ASM(s32, "world/script_api/7E0E80", func_8028035C); -INCLUDE_ASM(s32, "world/script_api/7E0E80", func_802803C8); +ApiStatus func_802803C8(ScriptInstance *script, s32 isInitialCall) { + PlayerStatus* playerStatus = PLAYER_STATUS; + + script->varTable[2] = FALSE; + + if (playerStatus->actionState == 4 || playerStatus->actionState == 8) { + return ApiStatus_DONE2; + } + + if ((playerStatus->flags & 0x100)) { + return ApiStatus_DONE2; + } + + script->varTable[2] = TRUE; + return ApiStatus_DONE2; +} INCLUDE_ASM(s32, "world/script_api/7E0E80", func_80280410); @@ -36,4 +51,9 @@ INCLUDE_ASM(s32, "world/script_api/7E0E80", draw_shop_items); INCLUDE_ASM(s32, "world/script_api/7E0E80", MakeShop); -INCLUDE_ASM(s32, "world/script_api/7E0E80", MakeShopOwner); +ApiStatus MakeShopOwner(ScriptInstance *script, s32 isInitialCall) { + Shop* mapShop = GAME_STATUS->mapShop; + + mapShop->owner = get_variable(script, *script->ptrReadPos); + return ApiStatus_DONE2; +} diff --git a/src/world/script_api/7E3700.c b/src/world/script_api/7E3700.c index e0f3b56f63..25139f6c99 100644 --- a/src/world/script_api/7E3700.c +++ b/src/world/script_api/7E3700.c @@ -1,6 +1,13 @@ #include "common.h" -INCLUDE_ASM(s32, "world/script_api/7E3700", func_80282880); +ApiStatus func_80282880(ScriptInstance* script, s32 isInitialCall) { + PlayerStatus* playerStatus = PLAYER_STATUS; + + playerStatus->position.x += (script->varTable[0] - playerStatus->position.x) / 2; + playerStatus->position.z += (script->varTable[2] - playerStatus->position.z) / 2; + + return ApiStatus_DONE2; +} INCLUDE_ASM(s32, "world/script_api/7E3700", func_802828DC); @@ -33,19 +40,98 @@ INCLUDE_ASM(s32, "world/script_api/7E3700", GetGridIndexFromPos); INCLUDE_ASM(s32, "world/script_api/7E3700", SetPushBlockFallEffect); -INCLUDE_ASM(s32, "world/script_api/7E3700", func_80283810); +ApiStatus func_80283810(ScriptInstance* script, s32 isInitialCall) { + PlayerStatus* playerStatus = PLAYER_STATUS; -INCLUDE_ASM(s32, "world/script_api/7E3700", TeleportPartnerToPlayer); + script->varTable[10] = 0; + if (partner_get_ride_script() != NULL) { + if (D_8010EBB0[0] == 0) { + script->varTable[10] = 0; + } else { + script->varTable[10] = 1; + script->varTable[11] = partner_get_ride_script(); + script->varTable[13] = playerStatus->targetYaw; + } + } + return ApiStatus_DONE2; +} + +ApiStatus TeleportPartnerToPlayer(ScriptInstance* script, s32 isInitialCall) { + PlayerStatus* playerStatus = PLAYER_STATUS; + PlayerStatus* playerStatus2 = PLAYER_STATUS; + Npc *partner; + + if (PLAYER_DATA->currentPartner == PartnerId_NONE) { + return ApiStatus_DONE2; + } + + partner = get_npc_unsafe(NpcId_PARTNER); + partner->pos.x = playerStatus->position.x; + partner->pos.z = playerStatus->position.z; + + if (is_current_partner_flying()) { + partner->pos.y = playerStatus->position.y; + } + + set_npc_yaw(partner, playerStatus2->targetYaw); + clear_partner_move_history(partner); + return ApiStatus_DONE2; +} + +#ifdef NON_MATCHING +ApiStatus func_80283908(ScriptInstance* script, s32 isInitialCall) { + PlayerStatus* playerStatus = PLAYER_STATUS; + Camera* camera = CURRENT_CAM; + + playerStatus->position.x = GAME_STATUS->savedPos.x; + playerStatus->position.y = GAME_STATUS->savedPos.y; + playerStatus->position.z = GAME_STATUS->savedPos.z; + + if (PLAYER_DATA->currentPartner != PartnerId_NONE) { + Npc* partner = get_npc_unsafe(NpcId_PARTNER); + f32 angle = clamp_angle(playerStatus->spriteFacingAngle < 180.0f ? 90.0f : -90.0f); + + partner->pos.x = playerStatus->position.x; + partner->pos.y = playerStatus->position.y; + partner->pos.z = playerStatus->position.z; + + add_vec2D_polar(&partner->pos, &partner->pos.z, playerStatus->colliderDiameter + 5, angle); + enable_partner_ai(); + } + + camera->unk_08 = 1; + + return ApiStatus_DONE2; +} +#else INCLUDE_ASM(s32, "world/script_api/7E3700", func_80283908); +#endif INCLUDE_ASM(s32, "world/script_api/7E3700", func_80283A50); -INCLUDE_ASM(s32, "world/script_api/7E3700", func_80283B88); +ApiStatus func_80283B88(ScriptInstance* script, s32 isInitialCall) { + func_800EF394(20.0f); + return ApiStatus_DONE2; +} -INCLUDE_ASM(s32, "world/script_api/7E3700", func_80283BB0); +ApiStatus func_80283BB0(ScriptInstance* script, s32 isInitialCall) { + func_800EF3A4(); + return ApiStatus_DONE2; +} -INCLUDE_ASM(s32, "world/script_api/7E3700", func_80283BD0); +ApiStatus func_80283BD0(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + PlayerStatus* playerStatus = PLAYER_STATUS; + + if (isInitialCall) { + script->functionTemp[0].s = get_variable(script, *args++); + move_player(script->functionTemp[0].s, playerStatus->targetYaw, playerStatus->runSpeed); + } + + script->functionTemp[0].s--; + return script->functionTemp[0].s < 0; +} INCLUDE_ASM(s32, "world/script_api/7E3700", func_80283C34); diff --git a/tools/disasm_script.py b/tools/disasm_script.py index 0c5ffc9ac4..2a789dc408 100755 --- a/tools/disasm_script.py +++ b/tools/disasm_script.py @@ -38,10 +38,10 @@ def script_lib(): # symbol_addrs.txt with open(Path(path.dirname(__file__), "symbol_addrs.txt"), "r") as file: for line in file.readlines(): - s = line.split(";") - name = s[0] - addr = s[1] - _script_lib[int(addr, 16)] = name + s = line.split("=") + name = s[0].strip() + addr = int(s[1].strip()[0:10], 0) + _script_lib[addr] = name return _script_lib diff --git a/tools/splat.yaml b/tools/splat.yaml index 05f6c75512..6f807a6ab2 100644 --- a/tools/splat.yaml +++ b/tools/splat.yaml @@ -1743,9 +1743,9 @@ segments: files: - [0x929270, "c"] - [0x9292B0, "c"] - - [0x9292D0, "bin"] - - [0x929A00, "bin"] - - [0x929A80, "bin"] # rodata + - [0x9292D0, ".data", "world/area_sbk/sbk_00/929270"] + - [0x929A00, ".data", "world/area_sbk/sbk_00/9292B0"] + - [0x929A80, ".rodata", "world/area_sbk/sbk_00/929270"] - name: world/area_sbk/sbk_01/ type: code overlay: True diff --git a/tools/symbol_addrs.txt b/tools/symbol_addrs.txt index 7d8ed28671..f8674c5488 100644 --- a/tools/symbol_addrs.txt +++ b/tools/symbol_addrs.txt @@ -1890,6 +1890,10 @@ gGlobalTimeSpace = 0x802D9CA8; ShakeCam1 = 0x802D9CB0; ShakeCamX = 0x802D9CE8; D_802D9D50 = 0x802D9D50; +gWorldMapFlags = 0x802DBC70; // size:0xC +gWorldMapVars = 0x802DBCA8; // size:0x40 +gBattleMapVars = 0x802DBCE8; // size:0x40 +gBattleMapFlags = 0x802DBD34; // size:0xC spr_appendMDL_component = 0x802DC8F4; spr_transform_point = 0x802DCD00; spr_draw_component = 0x802DCEDC; From 1588ca006124b5e6af04aa31c04ec6f123ddfabc Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sat, 7 Nov 2020 15:23:28 -0500 Subject: [PATCH 02/52] format --- src/world/script_api/7E0E80.c | 4 ++-- src/world/script_api/7E3700.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/world/script_api/7E0E80.c b/src/world/script_api/7E0E80.c index 27e0d65082..53e3974083 100644 --- a/src/world/script_api/7E0E80.c +++ b/src/world/script_api/7E0E80.c @@ -12,7 +12,7 @@ INCLUDE_ASM(s32, "world/script_api/7E0E80", func_802802D0); INCLUDE_ASM(s32, "world/script_api/7E0E80", func_8028035C); -ApiStatus func_802803C8(ScriptInstance *script, s32 isInitialCall) { +ApiStatus func_802803C8(ScriptInstance* script, s32 isInitialCall) { PlayerStatus* playerStatus = PLAYER_STATUS; script->varTable[2] = FALSE; @@ -51,7 +51,7 @@ INCLUDE_ASM(s32, "world/script_api/7E0E80", draw_shop_items); INCLUDE_ASM(s32, "world/script_api/7E0E80", MakeShop); -ApiStatus MakeShopOwner(ScriptInstance *script, s32 isInitialCall) { +ApiStatus MakeShopOwner(ScriptInstance* script, s32 isInitialCall) { Shop* mapShop = GAME_STATUS->mapShop; mapShop->owner = get_variable(script, *script->ptrReadPos); diff --git a/src/world/script_api/7E3700.c b/src/world/script_api/7E3700.c index 25139f6c99..1c19bb54ca 100644 --- a/src/world/script_api/7E3700.c +++ b/src/world/script_api/7E3700.c @@ -60,7 +60,7 @@ ApiStatus func_80283810(ScriptInstance* script, s32 isInitialCall) { ApiStatus TeleportPartnerToPlayer(ScriptInstance* script, s32 isInitialCall) { PlayerStatus* playerStatus = PLAYER_STATUS; PlayerStatus* playerStatus2 = PLAYER_STATUS; - Npc *partner; + Npc* partner; if (PLAYER_DATA->currentPartner == PartnerId_NONE) { return ApiStatus_DONE2; From 24558d98d68155e4fe4b38b344fab611c966d221 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sat, 7 Nov 2020 15:50:39 -0500 Subject: [PATCH 03/52] sbk_01 --- src/world/area_sbk/sbk_00/929A00.bin.c | 8 ---- src/world/area_sbk/sbk_01/929A90.c | 66 ++++++++++++++++++++++++++ src/world/area_sbk/sbk_01/929AD0.c | 59 +++++++++++++++++++++++ tools/splat.yaml | 7 ++- 4 files changed, 128 insertions(+), 12 deletions(-) delete mode 100644 src/world/area_sbk/sbk_00/929A00.bin.c diff --git a/src/world/area_sbk/sbk_00/929A00.bin.c b/src/world/area_sbk/sbk_00/929A00.bin.c deleted file mode 100644 index 84bf640361..0000000000 --- a/src/world/area_sbk/sbk_00/929A00.bin.c +++ /dev/null @@ -1,8 +0,0 @@ -#include "sbk_00.h" - -Script M(MakeEntities) = SCRIPT({ - MakeEntity(0x802EA564, 0xFFFFFF1A, 0, 155, 0, 152, 0x80000000) - AssignBlockFlag(SI_SAVE_FLAG(797)) - MakeEntity(0x802EA564, 160, 0, 205, 0, 343, 0x80000000) - AssignBlockFlag(SI_SAVE_FLAG(798)) -}); diff --git a/src/world/area_sbk/sbk_01/929A90.c b/src/world/area_sbk/sbk_01/929A90.c index 19966e4fdd..ebc318b699 100644 --- a/src/world/area_sbk/sbk_01/929A90.c +++ b/src/world/area_sbk/sbk_01/929A90.c @@ -1,2 +1,68 @@ #include "sbk_01.h" + #include "world/common/SpawnSunEffect.inc.c" + +Script M(Main); +s32 M(npcGroupList_802407D8)[]; + +EntryList M(entryList) = { + { -475.0f, 0.0f, 0.0f, 90.0f }, + { 475.0f, 0.0f, 0.0f, 270.0f }, + { 0.0f, 0.0f, -475.0f, 180.0f }, + { 0.0f, 0.0f, 475.0f, 0.0f }, +}; + +MapConfig M(config) = { + .main = M(Main), + .entryList = M(entryList), + .entryCount = ENTRY_COUNT(M(entryList)), + .background = &gBackgroundImage, + .tattle = 0x190061, +}; + +Script M(ExitWalk_802400E0) = SCRIPT({ + group 27 + UseExitHeading(60, 0) + spawn ExitWalk + GotoMap("sbk_00", 1) + sleep 100 +}); + +Script M(ExitWalk_8024013C) = SCRIPT({ + group 27 + UseExitHeading(60, 1) + spawn ExitWalk + GotoMap("sbk_02", 0) + sleep 100 +}); + +Script M(ExitWalk_80240198) = SCRIPT({ + group 27 + UseExitHeading(60, 3) + spawn ExitWalk + GotoMap("sbk_11", 2) + sleep 100 +}); + +Script M(Script_802401F4) = SCRIPT({ + bind M(ExitWalk_802400E0) to 524288 7 + bind M(ExitWalk_8024013C) to 524288 3 + bind M(ExitWalk_80240198) to 524288 5 +}); + +Script M(Main) = SCRIPT({ + SI_SAVE_VAR(425) = 10 + SetSpriteShading(-1) + if SI_SAVE_VAR(0) == 0xFFFFFFC1 { + DisablePulseStone(0) + } + SetCamPerspective(0, 3, 25, 16, 4096) + SetCamBGColor(0, 0, 0, 0) + SetCamEnabled(0, 1) + SetCamLeadPlayer(0, 0) + MakeNpcs(0, M(npcGroupList_802407D8)) + SpawnSunEffect() + SetMusicTrack(0, 23, 0, 8) + SI_VAR(0) = M(Script_802401F4) + spawn EnterWalk +}); diff --git a/src/world/area_sbk/sbk_01/929AD0.c b/src/world/area_sbk/sbk_01/929AD0.c index da47b1f75f..7edd7b76f2 100644 --- a/src/world/area_sbk/sbk_01/929AD0.c +++ b/src/world/area_sbk/sbk_01/929AD0.c @@ -1,2 +1,61 @@ #include "sbk_01.h" + #include "world/common/SetNpcB5_3.inc.c" + +s32 M(aISettings_80240370)[] = { + 0x3FE66666, 0x00000032, 0x0000000A, 0x437A0000, 0x00000000, 0x00000002, 0x40600000, 0x0000002D, + 0x00000006, 0x43960000, 0x00000000, 0x00000001, +}; + +Script M(NpcAI_802403A0) = SCRIPT({ + SetNpcB5_3() + DoBasicAI(M(aISettings_80240370)) +}); + +s32 M(npcSettings_802403CC)[] = { + 0x00000000, 0x0048000F, 0x00000000, 0x00000000, M(NpcAI_802403A0), 0x80077F70, 0x00000000, 0x8007809C, + 0x00000000, 0x00000000, 0x00090000, +}; + +s32 M(npcGroup_802403F8)[] = { + 0x00000000, M(npcSettings_802403CC), 0x434D0000, 0x00000000, 0xC2700000, 0x00002C00, 0x00000000, 0x00000000, + 0x00000000, 0x0000005A, 0x800F00A8, 0x00090000, 0x00890001, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001999, 0x59980002, + 0x3FFF2666, 0x4CCC0002, 0x3FFF3FFF, 0x3FFF0002, 0x33326665, 0x33320002, 0x33327FFF, 0x26660002, + 0x26660000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001999, 0x3FFF0002, + 0x33322666, 0x33320002, 0x33323FFF, 0x33320002, 0x33326665, 0x33320002, 0x33327FFF, 0x26660002, + 0x33320000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010000, + 0x000000CD, 0x00000000, 0xFFFFFFC4, 0x00000064, 0x00000000, 0xFFFF8001, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x000003E8, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00310004, 0x00310008, 0x00310008, 0x00310008, 0x00310004, 0x00310004, 0x0031000C, 0x0031000C, + 0x00310008, 0x00310008, 0x00310008, 0x00310008, 0x00310008, 0x00310008, 0x00310008, 0x00310008, + 0x00000001, 0x00000000, 0x00000000, 0x00000000, +}; + +s32 M(npcGroup_802405E8)[] = { + 0x00000001, M(npcSettings_802403CC), 0xC3480000, 0x00000000, 0x43340000, 0x00002C00, 0x00000000, 0x00000000, + 0x00000000, 0x0000010E, 0x800F00A8, 0x00090000, 0x00890001, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001999, 0x59980002, + 0x3FFF2666, 0x4CCC0002, 0x3FFF3FFF, 0x3FFF0002, 0x33326665, 0x33320002, 0x33327FFF, 0x26660002, + 0x26660000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001999, 0x3FFF0002, + 0x33322666, 0x33320002, 0x33323FFF, 0x33320002, 0x33326665, 0x33320002, 0x33327FFF, 0x26660002, + 0x33320000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010000, + 0xFFFFFF38, 0x00000000, 0x000000B4, 0x00000064, 0x00000000, 0xFFFF8001, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x000003E8, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00310004, 0x00310008, 0x00310008, 0x00310008, 0x00310004, 0x00310004, 0x0031000C, 0x0031000C, + 0x00310008, 0x00310008, 0x00310008, 0x00310008, 0x00310008, 0x00310008, 0x00310008, 0x00310008, + 0x00000001, 0x00000000, 0x00000000, 0x00000000, +}; + +s32 M(npcGroupList_802407D8)[] = { + 0x00000001, M(npcGroup_802403F8), 0x0A030001, 0x00000001, M(npcGroup_802405E8), 0x0A010001, 0x00000000, 0x00000000, + 0x00000000, +}; diff --git a/tools/splat.yaml b/tools/splat.yaml index 9130248cde..79dbc8d832 100644 --- a/tools/splat.yaml +++ b/tools/splat.yaml @@ -2033,10 +2033,9 @@ segments: files: - [0x929A90, "c"] - [0x929AD0, "c"] - - [0x929AF0, "bin"] - - [0x929E00, "bin"] - - [0x92A290, "bin"] # rodata - - [0x92A2B0, "bin"] # rodata + - [0x929AF0, ".data", "world/area_sbk/sbk_01/929A90"] + - [0x929E00, ".data", "world/area_sbk/sbk_01/929AD0"] + - [0x92A290, ".rodata", "world/area_sbk/sbk_01/929A90"] - name: world/area_sbk/sbk_02/ type: code overlay: True From 72f4a180f2f5b4ffa76a464eb8a322813ff44ba7 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sat, 7 Nov 2020 23:33:15 -0500 Subject: [PATCH 04/52] SetNpcFlagBits --- .../code_f2470_len_27f0/SetNpcFlagBits.s | 44 ------------------- include/common_structs.h | 10 ++++- include/variables.h | 3 ++ src/code_f2470_len_27f0.c | 20 ++++++++- tools/symbol_addrs.txt | 1 + undefined_syms.txt | 3 ++ 6 files changed, 35 insertions(+), 46 deletions(-) delete mode 100644 asm/nonmatchings/code_f2470_len_27f0/SetNpcFlagBits.s diff --git a/asm/nonmatchings/code_f2470_len_27f0/SetNpcFlagBits.s b/asm/nonmatchings/code_f2470_len_27f0/SetNpcFlagBits.s deleted file mode 100644 index ddf80a0c93..0000000000 --- a/asm/nonmatchings/code_f2470_len_27f0/SetNpcFlagBits.s +++ /dev/null @@ -1,44 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel SetNpcFlagBits -/* F3A10 802CF060 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* F3A14 802CF064 AFB10014 */ sw $s1, 0x14($sp) -/* F3A18 802CF068 0080882D */ daddu $s1, $a0, $zero -/* F3A1C 802CF06C AFBF001C */ sw $ra, 0x1c($sp) -/* F3A20 802CF070 AFB20018 */ sw $s2, 0x18($sp) -/* F3A24 802CF074 AFB00010 */ sw $s0, 0x10($sp) -/* F3A28 802CF078 8E30000C */ lw $s0, 0xc($s1) -/* F3A2C 802CF07C 8E050000 */ lw $a1, ($s0) -/* F3A30 802CF080 0C0B1EAF */ jal get_variable -/* F3A34 802CF084 26100004 */ addiu $s0, $s0, 4 -/* F3A38 802CF088 0220202D */ daddu $a0, $s1, $zero -/* F3A3C 802CF08C 8E050004 */ lw $a1, 4($s0) -/* F3A40 802CF090 8E100000 */ lw $s0, ($s0) -/* F3A44 802CF094 0C0B1EAF */ jal get_variable -/* F3A48 802CF098 0040902D */ daddu $s2, $v0, $zero -/* F3A4C 802CF09C 0220202D */ daddu $a0, $s1, $zero -/* F3A50 802CF0A0 0240282D */ daddu $a1, $s2, $zero -/* F3A54 802CF0A4 0C0B36B0 */ jal resolve_npc -/* F3A58 802CF0A8 0040882D */ daddu $s1, $v0, $zero -/* F3A5C 802CF0AC 0040202D */ daddu $a0, $v0, $zero -/* F3A60 802CF0B0 5080000A */ beql $a0, $zero, .L802CF0DC -/* F3A64 802CF0B4 24020002 */ addiu $v0, $zero, 2 -/* F3A68 802CF0B8 12200004 */ beqz $s1, .L802CF0CC -/* F3A6C 802CF0BC 00101827 */ nor $v1, $zero, $s0 -/* F3A70 802CF0C0 8C820000 */ lw $v0, ($a0) -/* F3A74 802CF0C4 080B3C35 */ j .L802CF0D4 -/* F3A78 802CF0C8 00501025 */ or $v0, $v0, $s0 -.L802CF0CC: -/* F3A7C 802CF0CC 8C820000 */ lw $v0, ($a0) -/* F3A80 802CF0D0 00431024 */ and $v0, $v0, $v1 -.L802CF0D4: -/* F3A84 802CF0D4 AC820000 */ sw $v0, ($a0) -/* F3A88 802CF0D8 24020002 */ addiu $v0, $zero, 2 -.L802CF0DC: -/* F3A8C 802CF0DC 8FBF001C */ lw $ra, 0x1c($sp) -/* F3A90 802CF0E0 8FB20018 */ lw $s2, 0x18($sp) -/* F3A94 802CF0E4 8FB10014 */ lw $s1, 0x14($sp) -/* F3A98 802CF0E8 8FB00010 */ lw $s0, 0x10($sp) -/* F3A9C 802CF0EC 03E00008 */ jr $ra -/* F3AA0 802CF0F0 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/include/common_structs.h b/include/common_structs.h index db4990fc2e..eff0633cb3 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -942,7 +942,15 @@ typedef struct GameStatus { } GameStatus; // size = 0x178 typedef struct PartnerAnimations { - /* 0x00 */ char unk_00[36]; + /* 0x00 */ UNK_PTR standard; // should be "default" but that's a keyword + /* 0x04 */ UNK_PTR walk; + /* 0x08 */ UNK_PTR jump; + /* 0x0C */ UNK_PTR fall; + /* 0x10 */ UNK_PTR fly; + /* 0x14 */ UNK_PTR idle; + /* 0x18 */ UNK_PTR run; + /* 0x1C */ UNK_PTR talk; + /* 0x20 */ UNK_PTR hurt; } PartnerAnimations; // size = 0x24 typedef struct Shadow { diff --git a/include/variables.h b/include/variables.h index ef0f80e341..99f0f47f87 100644 --- a/include/variables.h +++ b/include/variables.h @@ -86,6 +86,9 @@ extern PrintContext* gCurrentPrintContext; extern s32 D_802DB264; extern PrintContext* D_802DB268; +// Animation related +extern PartnerAnimations gPartnerAnimations[12]; + // Triggers extern s16 gTriggerCount; extern TriggerList gTriggerList1; diff --git a/src/code_f2470_len_27f0.c b/src/code_f2470_len_27f0.c index 1bfc9e392e..e723a572a6 100644 --- a/src/code_f2470_len_27f0.c +++ b/src/code_f2470_len_27f0.c @@ -242,7 +242,25 @@ INCLUDE_ASM(s32, "code_f2470_len_27f0", NpcFacePlayer, ScriptInstance* script, s INCLUDE_ASM(s32, "code_f2470_len_27f0", NpcFaceNpc, ScriptInstance* script, s32 isInitialCall); -INCLUDE_ASM(s32, "code_f2470_len_27f0", SetNpcFlagBits, ScriptInstance* script, s32 isInitialCall); +ApiStatus SetNpcFlagBits(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + NpcId npcID = get_variable(script, *args++); + s32 flagBits = *args++; + s32 var1 = get_variable(script, *args++); + Npc* npc = resolve_npc(script, npcID); + + if (npc == NULL) { + return ApiStatus_DONE2; + } + + if (var1) { + npc->flags |= flagBits; + } else { + npc->flags &= ~flagBits; + } + + return ApiStatus_DONE2; +} ApiStatus GetNpcPos(ScriptInstance* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; diff --git a/tools/symbol_addrs.txt b/tools/symbol_addrs.txt index f8674c5488..8f95a5a907 100644 --- a/tools/symbol_addrs.txt +++ b/tools/symbol_addrs.txt @@ -694,6 +694,7 @@ enable_partner_ai = 0x800EF328; clear_partner_move_history = 0x800EF45C; draw_submenu_title = 0x800F4648; draw_box = 0x800F52E0; +gPartnerAnimations = 0x800F8348; // size:0x1B0 gPlayerStatus = 0x8010EFC8; // size:0x288 gPlayerData = 0x8010F290; // size:0x340 update_entities = 0x8010F6D0; diff --git a/undefined_syms.txt b/undefined_syms.txt index 96ea163fdd..05a40653d2 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -44,6 +44,9 @@ D_800A0963 = 0x800A0963; D_800A0964 = 0x800A0964; D_800E92D8 = 0x800E92D8; + +gPartnerAnimations = 0x800F8348; + D_80147474 = 0x80147474; D_80109270 = 0x80109270; D_80108558 = 0x80108558; From b1ee019af289995eb5b5fae318aba170e7672b17 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sat, 7 Nov 2020 23:36:45 -0500 Subject: [PATCH 05/52] asm update --- .../enable_partner_flying.s | 4 +- .../enable_partner_walking.s | 4 +- .../code_838b0_len_5900/func_800EA6CC.s | 4 +- .../code_838b0_len_5900/func_800EBC74.s | 76 +++++++++---------- .../code_838b0_len_5900/func_800ED9F8.s | 44 +++++------ .../code_838b0_len_5900/func_800EE9B8.s | 12 +-- .../code_838b0_len_5900/func_800EECE8.s | 8 +- .../code_838b0_len_5900/func_800EF82C.s | 20 ++--- .../code_f2470_len_27f0/BringPartnerOut.s | 16 ++-- .../code_f2470_len_27f0/PutPartnerAway.s | 12 +-- .../code_f2470_len_27f0/set_npc_animation.s | 4 +- 11 files changed, 102 insertions(+), 102 deletions(-) diff --git a/asm/nonmatchings/code_838b0_len_5900/enable_partner_flying.s b/asm/nonmatchings/code_838b0_len_5900/enable_partner_flying.s index 25198e1280..a1f7bf8af5 100644 --- a/asm/nonmatchings/code_838b0_len_5900/enable_partner_flying.s +++ b/asm/nonmatchings/code_838b0_len_5900/enable_partner_flying.s @@ -94,9 +94,9 @@ glabel enable_partner_flying /* 86908 800ED458 000310C0 */ sll $v0, $v1, 3 /* 8690C 800ED45C 00431021 */ addu $v0, $v0, $v1 /* 86910 800ED460 00021080 */ sll $v0, $v0, 2 -/* 86914 800ED464 3C038010 */ lui $v1, 0x8010 +/* 86914 800ED464 3C038010 */ lui $v1, %hi(gPartnerAnimations+0x14) /* 86918 800ED468 00621821 */ addu $v1, $v1, $v0 -/* 8691C 800ED46C 8C63835C */ lw $v1, -0x7ca4($v1) +/* 8691C 800ED46C 8C63835C */ lw $v1, %lo(gPartnerAnimations+0x14)($v1) /* 86920 800ED470 24020010 */ addiu $v0, $zero, 0x10 /* 86924 800ED474 3C018010 */ lui $at, 0x8010 /* 86928 800ED478 AC22802C */ sw $v0, -0x7fd4($at) diff --git a/asm/nonmatchings/code_838b0_len_5900/enable_partner_walking.s b/asm/nonmatchings/code_838b0_len_5900/enable_partner_walking.s index bf808bad50..95a32f0923 100644 --- a/asm/nonmatchings/code_838b0_len_5900/enable_partner_walking.s +++ b/asm/nonmatchings/code_838b0_len_5900/enable_partner_walking.s @@ -83,9 +83,9 @@ glabel enable_partner_walking /* 84E78 800EB9C8 000310C0 */ sll $v0, $v1, 3 /* 84E7C 800EB9CC 00431021 */ addu $v0, $v0, $v1 /* 84E80 800EB9D0 00021080 */ sll $v0, $v0, 2 -/* 84E84 800EB9D4 3C038010 */ lui $v1, 0x8010 +/* 84E84 800EB9D4 3C038010 */ lui $v1, %hi(gPartnerAnimations+0x14) /* 84E88 800EB9D8 00621821 */ addu $v1, $v1, $v0 -/* 84E8C 800EB9DC 8C63835C */ lw $v1, -0x7ca4($v1) +/* 84E8C 800EB9DC 8C63835C */ lw $v1, %lo(gPartnerAnimations+0x14)($v1) /* 84E90 800EB9E0 24020010 */ addiu $v0, $zero, 0x10 /* 84E94 800EB9E4 3C018010 */ lui $at, 0x8010 /* 84E98 800EB9E8 AC22802C */ sw $v0, -0x7fd4($at) diff --git a/asm/nonmatchings/code_838b0_len_5900/func_800EA6CC.s b/asm/nonmatchings/code_838b0_len_5900/func_800EA6CC.s index 749afb5ebb..7360f53ed7 100644 --- a/asm/nonmatchings/code_838b0_len_5900/func_800EA6CC.s +++ b/asm/nonmatchings/code_838b0_len_5900/func_800EA6CC.s @@ -537,9 +537,9 @@ glabel func_800EA6CC /* 84374 800EAEC4 00431021 */ addu $v0, $v0, $v1 /* 84378 800EAEC8 00021080 */ sll $v0, $v0, 2 /* 8437C 800EAECC 8CA30000 */ lw $v1, ($a1) -/* 84380 800EAED0 3C018010 */ lui $at, 0x8010 +/* 84380 800EAED0 3C018010 */ lui $at, %hi(gPartnerAnimations+0x10) /* 84384 800EAED4 00220821 */ addu $at, $at, $v0 -/* 84388 800EAED8 8C228358 */ lw $v0, -0x7ca8($at) +/* 84388 800EAED8 8C228358 */ lw $v0, %lo(gPartnerAnimations+0x10)($at) /* 8438C 800EAEDC 3C018011 */ lui $at, 0x8011 /* 84390 800EAEE0 AC30CD30 */ sw $s0, -0x32d0($at) /* 84394 800EAEE4 0C038069 */ jal enable_player_input diff --git a/asm/nonmatchings/code_838b0_len_5900/func_800EBC74.s b/asm/nonmatchings/code_838b0_len_5900/func_800EBC74.s index 74a3fe073e..ae470cf992 100644 --- a/asm/nonmatchings/code_838b0_len_5900/func_800EBC74.s +++ b/asm/nonmatchings/code_838b0_len_5900/func_800EBC74.s @@ -36,9 +36,9 @@ glabel func_800EBC74 /* 8519C 800EBCEC 000310C0 */ sll $v0, $v1, 3 /* 851A0 800EBCF0 00431021 */ addu $v0, $v0, $v1 /* 851A4 800EBCF4 00021080 */ sll $v0, $v0, 2 -/* 851A8 800EBCF8 3C038010 */ lui $v1, 0x8010 +/* 851A8 800EBCF8 3C038010 */ lui $v1, %hi(gPartnerAnimations+0x14) /* 851AC 800EBCFC 00621821 */ addu $v1, $v1, $v0 -/* 851B0 800EBD00 8C63835C */ lw $v1, -0x7ca4($v1) +/* 851B0 800EBD00 8C63835C */ lw $v1, %lo(gPartnerAnimations+0x14)($v1) /* 851B4 800EBD04 24020005 */ addiu $v0, $zero, 5 /* 851B8 800EBD08 3C018011 */ lui $at, 0x8011 /* 851BC 800EBD0C A422CFC8 */ sh $v0, -0x3038($at) @@ -105,8 +105,8 @@ glabel func_800EBC74 .L800EBDFC: /* 852AC 800EBDFC 3C038011 */ lui $v1, 0x8011 /* 852B0 800EBE00 8C63CFD8 */ lw $v1, -0x3028($v1) -/* 852B4 800EBE04 3C048010 */ lui $a0, 0x8010 -/* 852B8 800EBE08 24848348 */ addiu $a0, $a0, -0x7cb8 +/* 852B4 800EBE04 3C048010 */ lui $a0, %hi(gPartnerAnimations) +/* 852B8 800EBE08 24848348 */ addiu $a0, $a0, %lo(gPartnerAnimations) /* 852BC 800EBE0C 000310C0 */ sll $v0, $v1, 3 /* 852C0 800EBE10 00431021 */ addu $v0, $v0, $v1 /* 852C4 800EBE14 00021080 */ sll $v0, $v0, 2 @@ -506,9 +506,9 @@ glabel func_800EBC74 /* 85898 800EC3E8 000218C0 */ sll $v1, $v0, 3 /* 8589C 800EC3EC 00621821 */ addu $v1, $v1, $v0 /* 858A0 800EC3F0 00031880 */ sll $v1, $v1, 2 -/* 858A4 800EC3F4 3C028010 */ lui $v0, 0x8010 +/* 858A4 800EC3F4 3C028010 */ lui $v0, %hi(gPartnerAnimations+0x8) /* 858A8 800EC3F8 00431021 */ addu $v0, $v0, $v1 -/* 858AC 800EC3FC 8C428350 */ lw $v0, -0x7cb0($v0) +/* 858AC 800EC3FC 8C428350 */ lw $v0, %lo(gPartnerAnimations+0x8)($v0) /* 858B0 800EC400 0803B10B */ j .L800EC42C /* 858B4 800EC404 AE220028 */ sw $v0, 0x28($s1) .L800EC408: @@ -517,9 +517,9 @@ glabel func_800EBC74 /* 858C0 800EC410 000218C0 */ sll $v1, $v0, 3 /* 858C4 800EC414 00621821 */ addu $v1, $v1, $v0 /* 858C8 800EC418 00031880 */ sll $v1, $v1, 2 -/* 858CC 800EC41C 3C028010 */ lui $v0, 0x8010 +/* 858CC 800EC41C 3C028010 */ lui $v0, %hi(gPartnerAnimations+0x20) /* 858D0 800EC420 00431021 */ addu $v0, $v0, $v1 -/* 858D4 800EC424 8C428368 */ lw $v0, -0x7c98($v0) +/* 858D4 800EC424 8C428368 */ lw $v0, %lo(gPartnerAnimations+0x20)($v0) /* 858D8 800EC428 AE220028 */ sw $v0, 0x28($s1) .L800EC42C: /* 858DC 800EC42C C6200038 */ lwc1 $f0, 0x38($s1) @@ -550,9 +550,9 @@ glabel func_800EBC74 /* 85940 800EC490 000218C0 */ sll $v1, $v0, 3 /* 85944 800EC494 00621821 */ addu $v1, $v1, $v0 /* 85948 800EC498 00031880 */ sll $v1, $v1, 2 -/* 8594C 800EC49C 3C028010 */ lui $v0, 0x8010 +/* 8594C 800EC49C 3C028010 */ lui $v0, %hi(gPartnerAnimations+0xC) /* 85950 800EC4A0 00431021 */ addu $v0, $v0, $v1 -/* 85954 800EC4A4 8C428354 */ lw $v0, -0x7cac($v0) +/* 85954 800EC4A4 8C428354 */ lw $v0, %lo(gPartnerAnimations+0xC)($v0) /* 85958 800EC4A8 AE220028 */ sw $v0, 0x28($s1) .L800EC4AC: /* 8595C 800EC4AC C622003C */ lwc1 $f2, 0x3c($s1) @@ -571,9 +571,9 @@ glabel func_800EBC74 /* 85990 800EC4E0 00621821 */ addu $v1, $v1, $v0 /* 85994 800EC4E4 00031880 */ sll $v1, $v1, 2 /* 85998 800EC4E8 8E220000 */ lw $v0, ($s1) -/* 8599C 800EC4EC 3C018010 */ lui $at, 0x8010 +/* 8599C 800EC4EC 3C018010 */ lui $at, %hi(gPartnerAnimations+0x10) /* 859A0 800EC4F0 00230821 */ addu $at, $at, $v1 -/* 859A4 800EC4F4 8C238358 */ lw $v1, -0x7ca8($at) +/* 859A4 800EC4F4 8C238358 */ lw $v1, %lo(gPartnerAnimations+0x10)($at) /* 859A8 800EC4F8 E634001C */ swc1 $f20, 0x1c($s1) /* 859AC 800EC4FC 00441024 */ and $v0, $v0, $a0 /* 859B0 800EC500 AE220000 */ sw $v0, ($s1) @@ -642,9 +642,9 @@ glabel func_800EBC74 /* 85AA8 800EC5F8 000310C0 */ sll $v0, $v1, 3 /* 85AAC 800EC5FC 00431021 */ addu $v0, $v0, $v1 /* 85AB0 800EC600 00021080 */ sll $v0, $v0, 2 -/* 85AB4 800EC604 3C048010 */ lui $a0, 0x8010 +/* 85AB4 800EC604 3C048010 */ lui $a0, %hi(gPartnerAnimations+0x10) /* 85AB8 800EC608 00822021 */ addu $a0, $a0, $v0 -/* 85ABC 800EC60C 8C848358 */ lw $a0, -0x7ca8($a0) +/* 85ABC 800EC60C 8C848358 */ lw $a0, %lo(gPartnerAnimations+0x10)($a0) /* 85AC0 800EC610 8E220000 */ lw $v0, ($s1) /* 85AC4 800EC614 2403F7FF */ addiu $v1, $zero, -0x801 /* 85AC8 800EC618 E634001C */ swc1 $f20, 0x1c($s1) @@ -744,9 +744,9 @@ glabel func_800EBC74 /* 85C3C 800EC78C 000310C0 */ sll $v0, $v1, 3 /* 85C40 800EC790 00431021 */ addu $v0, $v0, $v1 /* 85C44 800EC794 00021080 */ sll $v0, $v0, 2 -/* 85C48 800EC798 3C018010 */ lui $at, 0x8010 +/* 85C48 800EC798 3C018010 */ lui $at, %hi(gPartnerAnimations+0x14) /* 85C4C 800EC79C 00220821 */ addu $at, $at, $v0 -/* 85C50 800EC7A0 8C22835C */ lw $v0, -0x7ca4($at) +/* 85C50 800EC7A0 8C22835C */ lw $v0, %lo(gPartnerAnimations+0x14)($at) /* 85C54 800EC7A4 AE220028 */ sw $v0, 0x28($s1) /* 85C58 800EC7A8 826300B4 */ lb $v1, 0xb4($s3) /* 85C5C 800EC7AC 2402000C */ addiu $v0, $zero, 0xc @@ -813,8 +813,8 @@ glabel func_800EBC74 /* 85D44 800EC894 E6220018 */ swc1 $f2, 0x18($s1) /* 85D48 800EC898 3C038011 */ lui $v1, 0x8011 /* 85D4C 800EC89C 8C63CFD8 */ lw $v1, -0x3028($v1) -/* 85D50 800EC8A0 3C048010 */ lui $a0, 0x8010 -/* 85D54 800EC8A4 24848348 */ addiu $a0, $a0, -0x7cb8 +/* 85D50 800EC8A0 3C048010 */ lui $a0, %hi(gPartnerAnimations) +/* 85D54 800EC8A4 24848348 */ addiu $a0, $a0, %lo(gPartnerAnimations) /* 85D58 800EC8A8 E634000C */ swc1 $f20, 0xc($s1) /* 85D5C 800EC8AC 000310C0 */ sll $v0, $v1, 3 /* 85D60 800EC8B0 00431021 */ addu $v0, $v0, $v1 @@ -860,9 +860,9 @@ glabel func_800EBC74 /* 85DF8 800EC948 000310C0 */ sll $v0, $v1, 3 /* 85DFC 800EC94C 00431021 */ addu $v0, $v0, $v1 /* 85E00 800EC950 00021080 */ sll $v0, $v0, 2 -/* 85E04 800EC954 3C018010 */ lui $at, 0x8010 +/* 85E04 800EC954 3C018010 */ lui $at, %hi(gPartnerAnimations+0x14) /* 85E08 800EC958 00220821 */ addu $at, $at, $v0 -/* 85E0C 800EC95C 8C22835C */ lw $v0, -0x7ca4($at) +/* 85E0C 800EC95C 8C22835C */ lw $v0, %lo(gPartnerAnimations+0x14)($at) .L800EC960: /* 85E10 800EC960 3C048011 */ lui $a0, 0x8011 /* 85E14 800EC964 2484CFCA */ addiu $a0, $a0, -0x3036 @@ -949,9 +949,9 @@ glabel func_800EBC74 /* 85F4C 800ECA9C 000310C0 */ sll $v0, $v1, 3 /* 85F50 800ECAA0 00431021 */ addu $v0, $v0, $v1 /* 85F54 800ECAA4 00021080 */ sll $v0, $v0, 2 -/* 85F58 800ECAA8 3C018010 */ lui $at, 0x8010 +/* 85F58 800ECAA8 3C018010 */ lui $at, %hi(gPartnerAnimations+0x14) /* 85F5C 800ECAAC 00220821 */ addu $at, $at, $v0 -/* 85F60 800ECAB0 8C22835C */ lw $v0, -0x7ca4($at) +/* 85F60 800ECAB0 8C22835C */ lw $v0, %lo(gPartnerAnimations+0x14)($at) /* 85F64 800ECAB4 3C048011 */ lui $a0, 0x8011 /* 85F68 800ECAB8 2484CFCA */ addiu $a0, $a0, -0x3036 /* 85F6C 800ECABC AE220028 */ sw $v0, 0x28($s1) @@ -1164,8 +1164,8 @@ glabel func_800EBC74 .L800ECDC4: /* 86274 800ECDC4 24430004 */ addiu $v1, $v0, 4 .L800ECDC8: -/* 86278 800ECDC8 3C028010 */ lui $v0, 0x8010 -/* 8627C 800ECDCC 24428348 */ addiu $v0, $v0, -0x7cb8 +/* 86278 800ECDC8 3C028010 */ lui $v0, %hi(gPartnerAnimations) +/* 8627C 800ECDCC 24428348 */ addiu $v0, $v0, %lo(gPartnerAnimations) /* 86280 800ECDD0 00431021 */ addu $v0, $v0, $v1 /* 86284 800ECDD4 8C420000 */ lw $v0, ($v0) /* 86288 800ECDD8 AC820000 */ sw $v0, ($a0) @@ -1210,9 +1210,9 @@ glabel func_800EBC74 /* 86320 800ECE70 000218C0 */ sll $v1, $v0, 3 /* 86324 800ECE74 00621821 */ addu $v1, $v1, $v0 /* 86328 800ECE78 00031880 */ sll $v1, $v1, 2 -/* 8632C 800ECE7C 3C028010 */ lui $v0, 0x8010 +/* 8632C 800ECE7C 3C028010 */ lui $v0, %hi(gPartnerAnimations+0xC) /* 86330 800ECE80 00431021 */ addu $v0, $v0, $v1 -/* 86334 800ECE84 8C428354 */ lw $v0, -0x7cac($v0) +/* 86334 800ECE84 8C428354 */ lw $v0, %lo(gPartnerAnimations+0xC)($v0) /* 86338 800ECE88 AE220028 */ sw $v0, 0x28($s1) .L800ECE8C: /* 8633C 800ECE8C C624001C */ lwc1 $f4, 0x1c($s1) @@ -1275,8 +1275,8 @@ glabel func_800EBC74 .L800ECF70: /* 86420 800ECF70 24430004 */ addiu $v1, $v0, 4 .L800ECF74: -/* 86424 800ECF74 3C028010 */ lui $v0, 0x8010 -/* 86428 800ECF78 24428348 */ addiu $v0, $v0, -0x7cb8 +/* 86424 800ECF74 3C028010 */ lui $v0, %hi(gPartnerAnimations) +/* 86428 800ECF78 24428348 */ addiu $v0, $v0, %lo(gPartnerAnimations) /* 8642C 800ECF7C 00431021 */ addu $v0, $v0, $v1 /* 86430 800ECF80 8C420000 */ lw $v0, ($v0) /* 86434 800ECF84 C7A0002C */ lwc1 $f0, 0x2c($sp) @@ -1326,9 +1326,9 @@ glabel func_800EBC74 /* 864D8 800ED028 000310C0 */ sll $v0, $v1, 3 /* 864DC 800ED02C 00431021 */ addu $v0, $v0, $v1 /* 864E0 800ED030 00021080 */ sll $v0, $v0, 2 -/* 864E4 800ED034 3C018010 */ lui $at, 0x8010 +/* 864E4 800ED034 3C018010 */ lui $at, %hi(gPartnerAnimations+0x14) /* 864E8 800ED038 00220821 */ addu $at, $at, $v0 -/* 864EC 800ED03C 8C22835C */ lw $v0, -0x7ca4($at) +/* 864EC 800ED03C 8C22835C */ lw $v0, %lo(gPartnerAnimations+0x14)($at) /* 864F0 800ED040 AE220028 */ sw $v0, 0x28($s1) /* 864F4 800ED044 C6AC006C */ lwc1 $f12, 0x6c($s5) /* 864F8 800ED048 46006300 */ add.s $f12, $f12, $f0 @@ -1378,9 +1378,9 @@ glabel func_800EBC74 /* 8659C 800ED0EC 000310C0 */ sll $v0, $v1, 3 /* 865A0 800ED0F0 00431021 */ addu $v0, $v0, $v1 /* 865A4 800ED0F4 00021080 */ sll $v0, $v0, 2 -/* 865A8 800ED0F8 3C038010 */ lui $v1, 0x8010 +/* 865A8 800ED0F8 3C038010 */ lui $v1, %hi(gPartnerAnimations+0x14) /* 865AC 800ED0FC 00621821 */ addu $v1, $v1, $v0 -/* 865B0 800ED100 8C63835C */ lw $v1, -0x7ca4($v1) +/* 865B0 800ED100 8C63835C */ lw $v1, %lo(gPartnerAnimations+0x14)($v1) /* 865B4 800ED104 24020032 */ addiu $v0, $zero, 0x32 /* 865B8 800ED108 3C018011 */ lui $at, 0x8011 /* 865BC 800ED10C A422CFC8 */ sh $v0, -0x3038($at) @@ -1404,9 +1404,9 @@ glabel func_800EBC74 /* 86600 800ED150 000218C0 */ sll $v1, $v0, 3 /* 86604 800ED154 00621821 */ addu $v1, $v1, $v0 /* 86608 800ED158 00031880 */ sll $v1, $v1, 2 -/* 8660C 800ED15C 3C028010 */ lui $v0, 0x8010 +/* 8660C 800ED15C 3C028010 */ lui $v0, %hi(gPartnerAnimations+0xC) /* 86610 800ED160 00431021 */ addu $v0, $v0, $v1 -/* 86614 800ED164 8C428354 */ lw $v0, -0x7cac($v0) +/* 86614 800ED164 8C428354 */ lw $v0, %lo(gPartnerAnimations+0xC)($v0) /* 86618 800ED168 AE220028 */ sw $v0, 0x28($s1) .L800ED16C: /* 8661C 800ED16C C622003C */ lwc1 $f2, 0x3c($s1) @@ -1425,9 +1425,9 @@ glabel func_800EBC74 /* 86650 800ED1A0 00621821 */ addu $v1, $v1, $v0 /* 86654 800ED1A4 00031880 */ sll $v1, $v1, 2 /* 86658 800ED1A8 8E220000 */ lw $v0, ($s1) -/* 8665C 800ED1AC 3C018010 */ lui $at, 0x8010 +/* 8665C 800ED1AC 3C018010 */ lui $at, %hi(gPartnerAnimations+0x14) /* 86660 800ED1B0 00230821 */ addu $at, $at, $v1 -/* 86664 800ED1B4 8C23835C */ lw $v1, -0x7ca4($at) +/* 86664 800ED1B4 8C23835C */ lw $v1, %lo(gPartnerAnimations+0x14)($at) /* 86668 800ED1B8 E634001C */ swc1 $f20, 0x1c($s1) /* 8666C 800ED1BC 00441024 */ and $v0, $v0, $a0 /* 86670 800ED1C0 AE220000 */ sw $v0, ($s1) @@ -1485,9 +1485,9 @@ glabel func_800EBC74 /* 86738 800ED288 000310C0 */ sll $v0, $v1, 3 /* 8673C 800ED28C 00431021 */ addu $v0, $v0, $v1 /* 86740 800ED290 00021080 */ sll $v0, $v0, 2 -/* 86744 800ED294 3C048010 */ lui $a0, 0x8010 +/* 86744 800ED294 3C048010 */ lui $a0, %hi(gPartnerAnimations+0x14) /* 86748 800ED298 00822021 */ addu $a0, $a0, $v0 -/* 8674C 800ED29C 8C84835C */ lw $a0, -0x7ca4($a0) +/* 8674C 800ED29C 8C84835C */ lw $a0, %lo(gPartnerAnimations+0x14)($a0) /* 86750 800ED2A0 8E220000 */ lw $v0, ($s1) /* 86754 800ED2A4 2403F7FF */ addiu $v1, $zero, -0x801 /* 86758 800ED2A8 E634001C */ swc1 $f20, 0x1c($s1) diff --git a/asm/nonmatchings/code_838b0_len_5900/func_800ED9F8.s b/asm/nonmatchings/code_838b0_len_5900/func_800ED9F8.s index cae6784bcb..45a8472a69 100644 --- a/asm/nonmatchings/code_838b0_len_5900/func_800ED9F8.s +++ b/asm/nonmatchings/code_838b0_len_5900/func_800ED9F8.s @@ -120,9 +120,9 @@ glabel func_800ED9F8 /* 87064 800EDBB4 000218C0 */ sll $v1, $v0, 3 /* 87068 800EDBB8 00621821 */ addu $v1, $v1, $v0 /* 8706C 800EDBBC 00031880 */ sll $v1, $v1, 2 -/* 87070 800EDBC0 3C028010 */ lui $v0, 0x8010 +/* 87070 800EDBC0 3C028010 */ lui $v0, %hi(gPartnerAnimations+0x14) /* 87074 800EDBC4 00431021 */ addu $v0, $v0, $v1 -/* 87078 800EDBC8 8C42835C */ lw $v0, -0x7ca4($v0) +/* 87078 800EDBC8 8C42835C */ lw $v0, %lo(gPartnerAnimations+0x14)($v0) /* 8707C 800EDBCC 0803B76E */ j .L800EDDB8 /* 87080 800EDBD0 AE220028 */ sw $v0, 0x28($s1) .L800EDBD4: @@ -134,9 +134,9 @@ glabel func_800ED9F8 /* 87098 800EDBE8 000310C0 */ sll $v0, $v1, 3 /* 8709C 800EDBEC 00431021 */ addu $v0, $v0, $v1 /* 870A0 800EDBF0 00021080 */ sll $v0, $v0, 2 -/* 870A4 800EDBF4 3C038010 */ lui $v1, 0x8010 +/* 870A4 800EDBF4 3C038010 */ lui $v1, %hi(gPartnerAnimations+0x14) /* 870A8 800EDBF8 00621821 */ addu $v1, $v1, $v0 -/* 870AC 800EDBFC 8C63835C */ lw $v1, -0x7ca4($v1) +/* 870AC 800EDBFC 8C63835C */ lw $v1, %lo(gPartnerAnimations+0x14)($v1) /* 870B0 800EDC00 24020005 */ addiu $v0, $zero, 5 /* 870B4 800EDC04 3C018011 */ lui $at, 0x8011 /* 870B8 800EDC08 A422CFC8 */ sh $v0, -0x3038($at) @@ -429,9 +429,9 @@ glabel func_800ED9F8 /* 874F0 800EE040 000310C0 */ sll $v0, $v1, 3 /* 874F4 800EE044 00431021 */ addu $v0, $v0, $v1 /* 874F8 800EE048 00021080 */ sll $v0, $v0, 2 -/* 874FC 800EE04C 3C038010 */ lui $v1, 0x8010 +/* 874FC 800EE04C 3C038010 */ lui $v1, %hi(gPartnerAnimations+0x8) /* 87500 800EE050 00621821 */ addu $v1, $v1, $v0 -/* 87504 800EE054 8C638350 */ lw $v1, -0x7cb0($v1) +/* 87504 800EE054 8C638350 */ lw $v1, %lo(gPartnerAnimations+0x8)($v1) /* 87508 800EE058 24020002 */ addiu $v0, $zero, 2 /* 8750C 800EE05C 3C018011 */ lui $at, 0x8011 /* 87510 800EE060 A422CFC8 */ sh $v0, -0x3038($at) @@ -456,9 +456,9 @@ glabel func_800ED9F8 /* 8755C 800EE0AC 000218C0 */ sll $v1, $v0, 3 /* 87560 800EE0B0 00621821 */ addu $v1, $v1, $v0 /* 87564 800EE0B4 00031880 */ sll $v1, $v1, 2 -/* 87568 800EE0B8 3C028010 */ lui $v0, 0x8010 +/* 87568 800EE0B8 3C028010 */ lui $v0, %hi(gPartnerAnimations+0xC) /* 8756C 800EE0BC 00431021 */ addu $v0, $v0, $v1 -/* 87570 800EE0C0 8C428354 */ lw $v0, -0x7cac($v0) +/* 87570 800EE0C0 8C428354 */ lw $v0, %lo(gPartnerAnimations+0xC)($v0) /* 87574 800EE0C4 AE220028 */ sw $v0, 0x28($s1) .L800EE0C8: /* 87578 800EE0C8 8E250018 */ lw $a1, 0x18($s1) @@ -483,9 +483,9 @@ glabel func_800ED9F8 /* 875C4 800EE114 000310C0 */ sll $v0, $v1, 3 /* 875C8 800EE118 00431021 */ addu $v0, $v0, $v1 /* 875CC 800EE11C 00021080 */ sll $v0, $v0, 2 -/* 875D0 800EE120 3C018010 */ lui $at, 0x8010 +/* 875D0 800EE120 3C018010 */ lui $at, %hi(gPartnerAnimations+0x10) /* 875D4 800EE124 00220821 */ addu $at, $at, $v0 -/* 875D8 800EE128 8C228358 */ lw $v0, -0x7ca8($at) +/* 875D8 800EE128 8C228358 */ lw $v0, %lo(gPartnerAnimations+0x10)($at) /* 875DC 800EE12C E634001C */ swc1 $f20, 0x1c($s1) /* 875E0 800EE130 E620003C */ swc1 $f0, 0x3c($s1) /* 875E4 800EE134 AE220028 */ sw $v0, 0x28($s1) @@ -573,9 +573,9 @@ glabel func_800ED9F8 /* 8772C 800EE27C AE200014 */ sw $zero, 0x14($s1) /* 87730 800EE280 462010A0 */ cvt.s.d $f2, $f2 /* 87734 800EE284 E622003C */ swc1 $f2, 0x3c($s1) -/* 87738 800EE288 3C018010 */ lui $at, 0x8010 +/* 87738 800EE288 3C018010 */ lui $at, %hi(gPartnerAnimations+0x14) /* 8773C 800EE28C 00220821 */ addu $at, $at, $v0 -/* 87740 800EE290 8C22835C */ lw $v0, -0x7ca4($at) +/* 87740 800EE290 8C22835C */ lw $v0, %lo(gPartnerAnimations+0x14)($at) /* 87744 800EE294 E7A20024 */ swc1 $f2, 0x24($sp) /* 87748 800EE298 AE220028 */ sw $v0, 0x28($s1) /* 8774C 800EE29C 826300B4 */ lb $v1, 0xb4($s3) @@ -635,8 +635,8 @@ glabel func_800ED9F8 /* 8781C 800EE36C E6220018 */ swc1 $f2, 0x18($s1) /* 87820 800EE370 3C038011 */ lui $v1, 0x8011 /* 87824 800EE374 8C63CFD8 */ lw $v1, -0x3028($v1) -/* 87828 800EE378 3C048010 */ lui $a0, 0x8010 -/* 8782C 800EE37C 24848348 */ addiu $a0, $a0, -0x7cb8 +/* 87828 800EE378 3C048010 */ lui $a0, %hi(gPartnerAnimations) +/* 8782C 800EE37C 24848348 */ addiu $a0, $a0, %lo(gPartnerAnimations) /* 87830 800EE380 E634000C */ swc1 $f20, 0xc($s1) /* 87834 800EE384 000310C0 */ sll $v0, $v1, 3 /* 87838 800EE388 00431021 */ addu $v0, $v0, $v1 @@ -682,9 +682,9 @@ glabel func_800ED9F8 /* 878D0 800EE420 000310C0 */ sll $v0, $v1, 3 /* 878D4 800EE424 00431021 */ addu $v0, $v0, $v1 /* 878D8 800EE428 00021080 */ sll $v0, $v0, 2 -/* 878DC 800EE42C 3C018010 */ lui $at, 0x8010 +/* 878DC 800EE42C 3C018010 */ lui $at, %hi(gPartnerAnimations+0x14) /* 878E0 800EE430 00220821 */ addu $at, $at, $v0 -/* 878E4 800EE434 8C22835C */ lw $v0, -0x7ca4($at) +/* 878E4 800EE434 8C22835C */ lw $v0, %lo(gPartnerAnimations+0x14)($at) .L800EE438: /* 878E8 800EE438 3C048011 */ lui $a0, 0x8011 /* 878EC 800EE43C 2484CFCA */ addiu $a0, $a0, -0x3036 @@ -836,8 +836,8 @@ glabel func_800ED9F8 .L800EE668: /* 87B18 800EE668 24430018 */ addiu $v1, $v0, 0x18 .L800EE66C: -/* 87B1C 800EE66C 3C028010 */ lui $v0, 0x8010 -/* 87B20 800EE670 24428348 */ addiu $v0, $v0, -0x7cb8 +/* 87B1C 800EE66C 3C028010 */ lui $v0, %hi(gPartnerAnimations) +/* 87B20 800EE670 24428348 */ addiu $v0, $v0, %lo(gPartnerAnimations) /* 87B24 800EE674 00431021 */ addu $v0, $v0, $v1 /* 87B28 800EE678 8C420000 */ lw $v0, ($v0) /* 87B2C 800EE67C AC820000 */ sw $v0, ($a0) @@ -1001,9 +1001,9 @@ glabel func_800ED9F8 /* 87D90 800EE8E0 000310C0 */ sll $v0, $v1, 3 /* 87D94 800EE8E4 00431021 */ addu $v0, $v0, $v1 /* 87D98 800EE8E8 00021080 */ sll $v0, $v0, 2 -/* 87D9C 800EE8EC 3C018010 */ lui $at, 0x8010 +/* 87D9C 800EE8EC 3C018010 */ lui $at, %hi(gPartnerAnimations+0x14) /* 87DA0 800EE8F0 00220821 */ addu $at, $at, $v0 -/* 87DA4 800EE8F4 8C22835C */ lw $v0, -0x7ca4($at) +/* 87DA4 800EE8F4 8C22835C */ lw $v0, %lo(gPartnerAnimations+0x14)($at) /* 87DA8 800EE8F8 AE220028 */ sw $v0, 0x28($s1) /* 87DAC 800EE8FC C64C006C */ lwc1 $f12, 0x6c($s2) /* 87DB0 800EE900 46006300 */ add.s $f12, $f12, $f0 @@ -1028,9 +1028,9 @@ glabel func_800ED9F8 /* 87DFC 800EE94C 000218C0 */ sll $v1, $v0, 3 /* 87E00 800EE950 00621821 */ addu $v1, $v1, $v0 /* 87E04 800EE954 00031880 */ sll $v1, $v1, 2 -/* 87E08 800EE958 3C028010 */ lui $v0, 0x8010 +/* 87E08 800EE958 3C028010 */ lui $v0, %hi(gPartnerAnimations+0x14) /* 87E0C 800EE95C 00431021 */ addu $v0, $v0, $v1 -/* 87E10 800EE960 8C42835C */ lw $v0, -0x7ca4($v0) +/* 87E10 800EE960 8C42835C */ lw $v0, %lo(gPartnerAnimations+0x14)($v0) /* 87E14 800EE964 AE220028 */ sw $v0, 0x28($s1) .L800EE968: /* 87E18 800EE968 8FBF0044 */ lw $ra, 0x44($sp) diff --git a/asm/nonmatchings/code_838b0_len_5900/func_800EE9B8.s b/asm/nonmatchings/code_838b0_len_5900/func_800EE9B8.s index 800bfad17c..1814b5fa3d 100644 --- a/asm/nonmatchings/code_838b0_len_5900/func_800EE9B8.s +++ b/asm/nonmatchings/code_838b0_len_5900/func_800EE9B8.s @@ -113,9 +113,9 @@ glabel func_800EE9B8 /* 88010 800EEB60 E6040018 */ swc1 $f4, 0x18($s0) /* 88014 800EEB64 4606A503 */ div.s $f20, $f20, $f6 /* 88018 800EEB68 E614001C */ swc1 $f20, 0x1c($s0) -/* 8801C 800EEB6C 3C018010 */ lui $at, 0x8010 +/* 8801C 800EEB6C 3C018010 */ lui $at, %hi(gPartnerAnimations+0x8) /* 88020 800EEB70 00220821 */ addu $at, $at, $v0 -/* 88024 800EEB74 8C228350 */ lw $v0, -0x7cb0($at) +/* 88024 800EEB74 8C228350 */ lw $v0, %lo(gPartnerAnimations+0x8)($at) /* 88028 800EEB78 0200202D */ daddu $a0, $s0, $zero /* 8802C 800EEB7C 0C00EB49 */ jal enable_npc_blur /* 88030 800EEB80 AC820028 */ sw $v0, 0x28($a0) @@ -140,9 +140,9 @@ glabel func_800EE9B8 /* 88078 800EEBC8 000218C0 */ sll $v1, $v0, 3 /* 8807C 800EEBCC 00621821 */ addu $v1, $v1, $v0 /* 88080 800EEBD0 00031880 */ sll $v1, $v1, 2 -/* 88084 800EEBD4 3C028010 */ lui $v0, 0x8010 +/* 88084 800EEBD4 3C028010 */ lui $v0, %hi(gPartnerAnimations+0xC) /* 88088 800EEBD8 00431021 */ addu $v0, $v0, $v1 -/* 8808C 800EEBDC 8C428354 */ lw $v0, -0x7cac($v0) +/* 8808C 800EEBDC 8C428354 */ lw $v0, %lo(gPartnerAnimations+0xC)($v0) /* 88090 800EEBE0 AE020028 */ sw $v0, 0x28($s0) .L800EEBE4: /* 88094 800EEBE4 8E06000C */ lw $a2, 0xc($s0) @@ -181,9 +181,9 @@ glabel func_800EE9B8 /* 88110 800EEC60 000310C0 */ sll $v0, $v1, 3 /* 88114 800EEC64 00431021 */ addu $v0, $v0, $v1 /* 88118 800EEC68 00021080 */ sll $v0, $v0, 2 -/* 8811C 800EEC6C 3C018010 */ lui $at, 0x8010 +/* 8811C 800EEC6C 3C018010 */ lui $at, %hi(gPartnerAnimations+0x10) /* 88120 800EEC70 00220821 */ addu $at, $at, $v0 -/* 88124 800EEC74 8C228358 */ lw $v0, -0x7ca8($at) +/* 88124 800EEC74 8C228358 */ lw $v0, %lo(gPartnerAnimations+0x10)($at) /* 88128 800EEC78 AC80001C */ sw $zero, 0x1c($a0) /* 8812C 800EEC7C E480003C */ swc1 $f0, 0x3c($a0) /* 88130 800EEC80 0C00EB6B */ jal disable_npc_blur diff --git a/asm/nonmatchings/code_838b0_len_5900/func_800EECE8.s b/asm/nonmatchings/code_838b0_len_5900/func_800EECE8.s index b6909360a0..0f669fe2f2 100644 --- a/asm/nonmatchings/code_838b0_len_5900/func_800EECE8.s +++ b/asm/nonmatchings/code_838b0_len_5900/func_800EECE8.s @@ -263,9 +263,9 @@ glabel func_800EECE8 /* 88580 800EF0D0 00021080 */ sll $v0, $v0, 2 /* 88584 800EF0D4 46040003 */ div.s $f0, $f0, $f4 /* 88588 800EF0D8 E600001C */ swc1 $f0, 0x1c($s0) -/* 8858C 800EF0DC 3C038010 */ lui $v1, 0x8010 +/* 8858C 800EF0DC 3C038010 */ lui $v1, %hi(gPartnerAnimations+0x8) /* 88590 800EF0E0 00621821 */ addu $v1, $v1, $v0 -/* 88594 800EF0E4 8C638350 */ lw $v1, -0x7cb0($v1) +/* 88594 800EF0E4 8C638350 */ lw $v1, %lo(gPartnerAnimations+0x8)($v1) /* 88598 800EF0E8 24020001 */ addiu $v0, $zero, 1 /* 8859C 800EF0EC 3C018011 */ lui $at, 0x8011 /* 885A0 800EF0F0 A422CFC8 */ sh $v0, -0x3038($at) @@ -307,9 +307,9 @@ glabel func_800EECE8 /* 88628 800EF178 000218C0 */ sll $v1, $v0, 3 /* 8862C 800EF17C 00621821 */ addu $v1, $v1, $v0 /* 88630 800EF180 00031880 */ sll $v1, $v1, 2 -/* 88634 800EF184 3C028010 */ lui $v0, 0x8010 +/* 88634 800EF184 3C028010 */ lui $v0, %hi(gPartnerAnimations+0xC) /* 88638 800EF188 00431021 */ addu $v0, $v0, $v1 -/* 8863C 800EF18C 8C428354 */ lw $v0, -0x7cac($v0) +/* 8863C 800EF18C 8C428354 */ lw $v0, %lo(gPartnerAnimations+0xC)($v0) /* 88640 800EF190 AE020028 */ sw $v0, 0x28($s0) .L800EF194: /* 88644 800EF194 8E050018 */ lw $a1, 0x18($s0) diff --git a/asm/nonmatchings/code_838b0_len_5900/func_800EF82C.s b/asm/nonmatchings/code_838b0_len_5900/func_800EF82C.s index 3a518c1b93..025c33a92e 100644 --- a/asm/nonmatchings/code_838b0_len_5900/func_800EF82C.s +++ b/asm/nonmatchings/code_838b0_len_5900/func_800EF82C.s @@ -84,8 +84,8 @@ glabel func_800EF82C .L800EF968: /* 88E18 800EF968 24430004 */ addiu $v1, $v0, 4 .L800EF96C: -/* 88E1C 800EF96C 3C028010 */ lui $v0, 0x8010 -/* 88E20 800EF970 24428348 */ addiu $v0, $v0, -0x7cb8 +/* 88E1C 800EF96C 3C028010 */ lui $v0, %hi(gPartnerAnimations) +/* 88E20 800EF970 24428348 */ addiu $v0, $v0, %lo(gPartnerAnimations) /* 88E24 800EF974 00431021 */ addu $v0, $v0, $v1 /* 88E28 800EF978 8C420000 */ lw $v0, ($v0) /* 88E2C 800EF97C AC820000 */ sw $v0, ($a0) @@ -125,9 +125,9 @@ glabel func_800EF82C /* 88EAC 800EF9FC 000218C0 */ sll $v1, $v0, 3 /* 88EB0 800EFA00 00621821 */ addu $v1, $v1, $v0 /* 88EB4 800EFA04 00031880 */ sll $v1, $v1, 2 -/* 88EB8 800EFA08 3C028010 */ lui $v0, 0x8010 +/* 88EB8 800EFA08 3C028010 */ lui $v0, %hi(gPartnerAnimations+0xC) /* 88EBC 800EFA0C 00431021 */ addu $v0, $v0, $v1 -/* 88EC0 800EFA10 8C428354 */ lw $v0, -0x7cac($v0) +/* 88EC0 800EFA10 8C428354 */ lw $v0, %lo(gPartnerAnimations+0xC)($v0) /* 88EC4 800EFA14 AE420028 */ sw $v0, 0x28($s2) .L800EFA18: /* 88EC8 800EFA18 C642001C */ lwc1 $f2, 0x1c($s2) @@ -196,8 +196,8 @@ glabel func_800EF82C .L800EFB14: /* 88FC4 800EFB14 24430004 */ addiu $v1, $v0, 4 .L800EFB18: -/* 88FC8 800EFB18 3C028010 */ lui $v0, 0x8010 -/* 88FCC 800EFB1C 24428348 */ addiu $v0, $v0, -0x7cb8 +/* 88FC8 800EFB18 3C028010 */ lui $v0, %hi(gPartnerAnimations) +/* 88FCC 800EFB1C 24428348 */ addiu $v0, $v0, %lo(gPartnerAnimations) /* 88FD0 800EFB20 00431021 */ addu $v0, $v0, $v1 /* 88FD4 800EFB24 8C420000 */ lw $v0, ($v0) /* 88FD8 800EFB28 C7A00024 */ lwc1 $f0, 0x24($sp) @@ -240,8 +240,8 @@ glabel func_800EF82C .L800EFBB8: /* 89068 800EFBB8 24630004 */ addiu $v1, $v1, 4 .L800EFBBC: -/* 8906C 800EFBBC 3C028010 */ lui $v0, 0x8010 -/* 89070 800EFBC0 24428348 */ addiu $v0, $v0, -0x7cb8 +/* 8906C 800EFBBC 3C028010 */ lui $v0, %hi(gPartnerAnimations) +/* 89070 800EFBC0 24428348 */ addiu $v0, $v0, %lo(gPartnerAnimations) /* 89074 800EFBC4 00431021 */ addu $v0, $v0, $v1 /* 89078 800EFBC8 8C420000 */ lw $v0, ($v0) /* 8907C 800EFBCC 0240202D */ daddu $a0, $s2, $zero @@ -310,9 +310,9 @@ glabel func_800EF82C /* 89164 800EFCB4 2484CFCE */ addiu $a0, $a0, -0x3032 /* 89168 800EFCB8 AE420000 */ sw $v0, ($s2) /* 8916C 800EFCBC 94820000 */ lhu $v0, ($a0) -/* 89170 800EFCC0 3C018010 */ lui $at, 0x8010 +/* 89170 800EFCC0 3C018010 */ lui $at, %hi(gPartnerAnimations+0x14) /* 89174 800EFCC4 00230821 */ addu $at, $at, $v1 -/* 89178 800EFCC8 8C23835C */ lw $v1, -0x7ca4($at) +/* 89178 800EFCC8 8C23835C */ lw $v1, %lo(gPartnerAnimations+0x14)($at) /* 8917C 800EFCCC 24420001 */ addiu $v0, $v0, 1 /* 89180 800EFCD0 A4820000 */ sh $v0, ($a0) /* 89184 800EFCD4 AE430028 */ sw $v1, 0x28($s2) diff --git a/asm/nonmatchings/code_f2470_len_27f0/BringPartnerOut.s b/asm/nonmatchings/code_f2470_len_27f0/BringPartnerOut.s index 59c7f53ec5..60ca81e8dd 100644 --- a/asm/nonmatchings/code_f2470_len_27f0/BringPartnerOut.s +++ b/asm/nonmatchings/code_f2470_len_27f0/BringPartnerOut.s @@ -45,9 +45,9 @@ glabel BringPartnerOut /* F4004 802CF654 000310C0 */ sll $v0, $v1, 3 /* F4008 802CF658 00431021 */ addu $v0, $v0, $v1 /* F400C 802CF65C 00021080 */ sll $v0, $v0, 2 -/* F4010 802CF660 3C018010 */ lui $at, 0x8010 +/* F4010 802CF660 3C018010 */ lui $at, %hi(gPartnerAnimations+0x10) /* F4014 802CF664 00220821 */ addu $at, $at, $v0 -/* F4018 802CF668 8C228358 */ lw $v0, -0x7ca8($at) +/* F4018 802CF668 8C228358 */ lw $v0, %lo(gPartnerAnimations+0x10)($at) /* F401C 802CF66C 0220202D */ daddu $a0, $s1, $zero /* F4020 802CF670 AFA00018 */ sw $zero, 0x18($sp) /* F4024 802CF674 AFA0001C */ sw $zero, 0x1c($sp) @@ -111,8 +111,8 @@ glabel BringPartnerOut /* F410C 802CF75C E6200010 */ swc1 $f0, 0x10($s1) /* F4110 802CF760 C6220010 */ lwc1 $f2, 0x10($s1) /* F4114 802CF764 C6240018 */ lwc1 $f4, 0x18($s1) -/* F4118 802CF768 3C108010 */ lui $s0, 0x8010 -/* F411C 802CF76C 26108348 */ addiu $s0, $s0, -0x7cb8 +/* F4118 802CF768 3C108010 */ lui $s0, %hi(gPartnerAnimations) +/* F411C 802CF76C 26108348 */ addiu $s0, $s0, %lo(gPartnerAnimations) /* F4120 802CF770 E620000C */ swc1 $f0, 0xc($s1) /* F4124 802CF774 46041083 */ div.s $f2, $f2, $f4 /* F4128 802CF778 4600118D */ trunc.w.s $f6, $f2 @@ -180,9 +180,9 @@ glabel BringPartnerOut /* F4218 802CF868 000218C0 */ sll $v1, $v0, 3 /* F421C 802CF86C 00621821 */ addu $v1, $v1, $v0 /* F4220 802CF870 00031880 */ sll $v1, $v1, 2 -/* F4224 802CF874 3C028010 */ lui $v0, 0x8010 +/* F4224 802CF874 3C028010 */ lui $v0, %hi(gPartnerAnimations+0x8) /* F4228 802CF878 00431021 */ addu $v0, $v0, $v1 -/* F422C 802CF87C 8C428350 */ lw $v0, -0x7cb0($v0) +/* F422C 802CF87C 8C428350 */ lw $v0, %lo(gPartnerAnimations+0x8)($v0) /* F4230 802CF880 AE220028 */ sw $v0, 0x28($s1) .L802CF884: /* F4234 802CF884 8E250018 */ lw $a1, 0x18($s1) @@ -225,9 +225,9 @@ glabel BringPartnerOut /* F42C0 802CF910 000310C0 */ sll $v0, $v1, 3 /* F42C4 802CF914 00431021 */ addu $v0, $v0, $v1 /* F42C8 802CF918 00021080 */ sll $v0, $v0, 2 -/* F42CC 802CF91C 3C018010 */ lui $at, 0x8010 +/* F42CC 802CF91C 3C018010 */ lui $at, %hi(gPartnerAnimations+0x14) /* F42D0 802CF920 00220821 */ addu $at, $at, $v0 -/* F42D4 802CF924 8C22835C */ lw $v0, -0x7ca4($at) +/* F42D4 802CF924 8C22835C */ lw $v0, %lo(gPartnerAnimations+0x14)($at) /* F42D8 802CF928 460C1300 */ add.s $f12, $f2, $f12 /* F42DC 802CF92C E634001C */ swc1 $f20, 0x1c($s1) /* F42E0 802CF930 E624003C */ swc1 $f4, 0x3c($s1) diff --git a/asm/nonmatchings/code_f2470_len_27f0/PutPartnerAway.s b/asm/nonmatchings/code_f2470_len_27f0/PutPartnerAway.s index 30eddb4f3a..48b6a12c49 100644 --- a/asm/nonmatchings/code_f2470_len_27f0/PutPartnerAway.s +++ b/asm/nonmatchings/code_f2470_len_27f0/PutPartnerAway.s @@ -108,9 +108,9 @@ glabel PutPartnerAway /* F44D0 802CFB20 00021080 */ sll $v0, $v0, 2 /* F44D4 802CFB24 46040003 */ div.s $f0, $f0, $f4 /* F44D8 802CFB28 E620001C */ swc1 $f0, 0x1c($s1) -/* F44DC 802CFB2C 3C038010 */ lui $v1, 0x8010 +/* F44DC 802CFB2C 3C038010 */ lui $v1, %hi(gPartnerAnimations+0x4) /* F44E0 802CFB30 00621821 */ addu $v1, $v1, $v0 -/* F44E4 802CFB34 8C63834C */ lw $v1, -0x7cb4($v1) +/* F44E4 802CFB34 8C63834C */ lw $v1, %lo(gPartnerAnimations+0x4)($v1) /* F44E8 802CFB38 0000102D */ daddu $v0, $zero, $zero /* F44EC 802CFB3C 080B3F12 */ j .L802CFC48 /* F44F0 802CFB40 AE230028 */ sw $v1, 0x28($s1) @@ -131,9 +131,9 @@ glabel PutPartnerAway /* F4528 802CFB78 000218C0 */ sll $v1, $v0, 3 /* F452C 802CFB7C 00621821 */ addu $v1, $v1, $v0 /* F4530 802CFB80 00031880 */ sll $v1, $v1, 2 -/* F4534 802CFB84 3C028010 */ lui $v0, 0x8010 +/* F4534 802CFB84 3C028010 */ lui $v0, %hi(gPartnerAnimations+0x8) /* F4538 802CFB88 00431021 */ addu $v0, $v0, $v1 -/* F453C 802CFB8C 8C428350 */ lw $v0, -0x7cb0($v0) +/* F453C 802CFB8C 8C428350 */ lw $v0, %lo(gPartnerAnimations+0x8)($v0) /* F4540 802CFB90 AE220028 */ sw $v0, 0x28($s1) .L802CFB94: /* F4544 802CFB94 8E26000C */ lw $a2, 0xc($s1) @@ -170,9 +170,9 @@ glabel PutPartnerAway /* F45BC 802CFC0C 000310C0 */ sll $v0, $v1, 3 /* F45C0 802CFC10 00431021 */ addu $v0, $v0, $v1 /* F45C4 802CFC14 00021080 */ sll $v0, $v0, 2 -/* F45C8 802CFC18 3C018010 */ lui $at, 0x8010 +/* F45C8 802CFC18 3C018010 */ lui $at, %hi(gPartnerAnimations+0xC) /* F45CC 802CFC1C 00220821 */ addu $at, $at, $v0 -/* F45D0 802CFC20 8C228354 */ lw $v0, -0x7cac($at) +/* F45D0 802CFC20 8C228354 */ lw $v0, %lo(gPartnerAnimations+0xC)($at) /* F45D4 802CFC24 E634001C */ swc1 $f20, 0x1c($s1) /* F45D8 802CFC28 E620003C */ swc1 $f0, 0x3c($s1) /* F45DC 802CFC2C 0C00E228 */ jal free_npc_by_index diff --git a/asm/nonmatchings/code_f2470_len_27f0/set_npc_animation.s b/asm/nonmatchings/code_f2470_len_27f0/set_npc_animation.s index c10fd87c14..41013a8ad2 100644 --- a/asm/nonmatchings/code_f2470_len_27f0/set_npc_animation.s +++ b/asm/nonmatchings/code_f2470_len_27f0/set_npc_animation.s @@ -18,9 +18,9 @@ glabel set_npc_animation /* F24F0 802CDB40 00431021 */ addu $v0, $v0, $v1 /* F24F4 802CDB44 00441021 */ addu $v0, $v0, $a0 /* F24F8 802CDB48 00021080 */ sll $v0, $v0, 2 -/* F24FC 802CDB4C 3C018010 */ lui $at, 0x8010 +/* F24FC 802CDB4C 3C018010 */ lui $at, %hi(gPartnerAnimations) /* F2500 802CDB50 00220821 */ addu $at, $at, $v0 -/* F2504 802CDB54 8C228348 */ lw $v0, -0x7cb8($at) +/* F2504 802CDB54 8C228348 */ lw $v0, %lo(gPartnerAnimations)($at) /* F2508 802CDB58 080B36E4 */ j .L802CDB90 /* F250C 802CDB5C AE220028 */ sw $v0, 0x28($s1) .L802CDB60: From 7614b51d701f40db1fa6eb272b54d94ace941565 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sun, 8 Nov 2020 01:12:12 -0500 Subject: [PATCH 06/52] ED510 stuff --- .../code_ED510/PlaySoundAtCollider.s | 47 ------- .../code_ED510/PlaySoundAtModel.s | 51 ------- asm/nonmatchings/code_ED510/RotateModel.s | 79 ----------- asm/nonmatchings/code_ED510/SetTexPanOffset.s | 55 -------- src/code_ED510.c | 127 ++++++++++++++++-- src/code_f2470_len_27f0.c | 2 +- 6 files changed, 118 insertions(+), 243 deletions(-) delete mode 100644 asm/nonmatchings/code_ED510/PlaySoundAtCollider.s delete mode 100644 asm/nonmatchings/code_ED510/PlaySoundAtModel.s delete mode 100644 asm/nonmatchings/code_ED510/RotateModel.s delete mode 100644 asm/nonmatchings/code_ED510/SetTexPanOffset.s diff --git a/asm/nonmatchings/code_ED510/PlaySoundAtCollider.s b/asm/nonmatchings/code_ED510/PlaySoundAtCollider.s deleted file mode 100644 index 9e2baac4ce..0000000000 --- a/asm/nonmatchings/code_ED510/PlaySoundAtCollider.s +++ /dev/null @@ -1,47 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel PlaySoundAtCollider -/* EEFC4 802CA614 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* EEFC8 802CA618 AFB1002C */ sw $s1, 0x2c($sp) -/* EEFCC 802CA61C 0080882D */ daddu $s1, $a0, $zero -/* EEFD0 802CA620 AFBF0034 */ sw $ra, 0x34($sp) -/* EEFD4 802CA624 AFB20030 */ sw $s2, 0x30($sp) -/* EEFD8 802CA628 AFB00028 */ sw $s0, 0x28($sp) -/* EEFDC 802CA62C 8E30000C */ lw $s0, 0xc($s1) -/* EEFE0 802CA630 8E050000 */ lw $a1, ($s0) -/* EEFE4 802CA634 0C0B1EAF */ jal get_variable -/* EEFE8 802CA638 26100004 */ addiu $s0, $s0, 4 -/* EEFEC 802CA63C 8E050000 */ lw $a1, ($s0) -/* EEFF0 802CA640 26100004 */ addiu $s0, $s0, 4 -/* EEFF4 802CA644 0220202D */ daddu $a0, $s1, $zero -/* EEFF8 802CA648 0C0B1EAF */ jal get_variable -/* EEFFC 802CA64C 0040902D */ daddu $s2, $v0, $zero -/* EF000 802CA650 0220202D */ daddu $a0, $s1, $zero -/* EF004 802CA654 8E050000 */ lw $a1, ($s0) -/* EF008 802CA658 0C0B1EAF */ jal get_variable -/* EF00C 802CA65C 0040802D */ daddu $s0, $v0, $zero -/* EF010 802CA660 0240202D */ daddu $a0, $s2, $zero -/* EF014 802CA664 27A50018 */ addiu $a1, $sp, 0x18 -/* EF018 802CA668 27A6001C */ addiu $a2, $sp, 0x1c -/* EF01C 802CA66C 27A70020 */ addiu $a3, $sp, 0x20 -/* EF020 802CA670 0C016F84 */ jal get_collider_center -/* EF024 802CA674 0040882D */ daddu $s1, $v0, $zero -/* EF028 802CA678 0200202D */ daddu $a0, $s0, $zero -/* EF02C 802CA67C C7A00018 */ lwc1 $f0, 0x18($sp) -/* EF030 802CA680 C7A2001C */ lwc1 $f2, 0x1c($sp) -/* EF034 802CA684 44060000 */ mfc1 $a2, $f0 -/* EF038 802CA688 44071000 */ mfc1 $a3, $f2 -/* EF03C 802CA68C C7A00020 */ lwc1 $f0, 0x20($sp) -/* EF040 802CA690 0220282D */ daddu $a1, $s1, $zero -/* EF044 802CA694 0C052757 */ jal play_sound_at_position -/* EF048 802CA698 E7A00010 */ swc1 $f0, 0x10($sp) -/* EF04C 802CA69C 8FBF0034 */ lw $ra, 0x34($sp) -/* EF050 802CA6A0 8FB20030 */ lw $s2, 0x30($sp) -/* EF054 802CA6A4 8FB1002C */ lw $s1, 0x2c($sp) -/* EF058 802CA6A8 8FB00028 */ lw $s0, 0x28($sp) -/* EF05C 802CA6AC 24020002 */ addiu $v0, $zero, 2 -/* EF060 802CA6B0 03E00008 */ jr $ra -/* EF064 802CA6B4 27BD0038 */ addiu $sp, $sp, 0x38 -/* EF068 802CA6B8 00000000 */ nop -/* EF06C 802CA6BC 00000000 */ nop diff --git a/asm/nonmatchings/code_ED510/PlaySoundAtModel.s b/asm/nonmatchings/code_ED510/PlaySoundAtModel.s deleted file mode 100644 index 62e72a9965..0000000000 --- a/asm/nonmatchings/code_ED510/PlaySoundAtModel.s +++ /dev/null @@ -1,51 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel PlaySoundAtModel -/* EEF08 802CA558 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* EEF0C 802CA55C AFB1003C */ sw $s1, 0x3c($sp) -/* EEF10 802CA560 0080882D */ daddu $s1, $a0, $zero -/* EEF14 802CA564 AFBF0044 */ sw $ra, 0x44($sp) -/* EEF18 802CA568 AFB20040 */ sw $s2, 0x40($sp) -/* EEF1C 802CA56C AFB00038 */ sw $s0, 0x38($sp) -/* EEF20 802CA570 8E30000C */ lw $s0, 0xc($s1) -/* EEF24 802CA574 8E050000 */ lw $a1, ($s0) -/* EEF28 802CA578 0C0B1EAF */ jal get_variable -/* EEF2C 802CA57C 26100004 */ addiu $s0, $s0, 4 -/* EEF30 802CA580 8E050000 */ lw $a1, ($s0) -/* EEF34 802CA584 26100004 */ addiu $s0, $s0, 4 -/* EEF38 802CA588 0220202D */ daddu $a0, $s1, $zero -/* EEF3C 802CA58C 0C0B1EAF */ jal get_variable -/* EEF40 802CA590 0040902D */ daddu $s2, $v0, $zero -/* EEF44 802CA594 0220202D */ daddu $a0, $s1, $zero -/* EEF48 802CA598 8E050000 */ lw $a1, ($s0) -/* EEF4C 802CA59C 0C0B1EAF */ jal get_variable -/* EEF50 802CA5A0 0040882D */ daddu $s1, $v0, $zero -/* EEF54 802CA5A4 3244FFFF */ andi $a0, $s2, 0xffff -/* EEF58 802CA5A8 27A50020 */ addiu $a1, $sp, 0x20 -/* EEF5C 802CA5AC 27A60024 */ addiu $a2, $sp, 0x24 -/* EEF60 802CA5B0 27A70028 */ addiu $a3, $sp, 0x28 -/* EEF64 802CA5B4 27A3002C */ addiu $v1, $sp, 0x2c -/* EEF68 802CA5B8 AFA30010 */ sw $v1, 0x10($sp) -/* EEF6C 802CA5BC 27A30030 */ addiu $v1, $sp, 0x30 -/* EEF70 802CA5C0 AFA30014 */ sw $v1, 0x14($sp) -/* EEF74 802CA5C4 27A30034 */ addiu $v1, $sp, 0x34 -/* EEF78 802CA5C8 0040802D */ daddu $s0, $v0, $zero -/* EEF7C 802CA5CC 0C046C3B */ jal get_model_center_and_size -/* EEF80 802CA5D0 AFA30018 */ sw $v1, 0x18($sp) -/* EEF84 802CA5D4 0220202D */ daddu $a0, $s1, $zero -/* EEF88 802CA5D8 C7A00020 */ lwc1 $f0, 0x20($sp) -/* EEF8C 802CA5DC C7A20024 */ lwc1 $f2, 0x24($sp) -/* EEF90 802CA5E0 44060000 */ mfc1 $a2, $f0 -/* EEF94 802CA5E4 44071000 */ mfc1 $a3, $f2 -/* EEF98 802CA5E8 C7A00028 */ lwc1 $f0, 0x28($sp) -/* EEF9C 802CA5EC 0200282D */ daddu $a1, $s0, $zero -/* EEFA0 802CA5F0 0C052757 */ jal play_sound_at_position -/* EEFA4 802CA5F4 E7A00010 */ swc1 $f0, 0x10($sp) -/* EEFA8 802CA5F8 8FBF0044 */ lw $ra, 0x44($sp) -/* EEFAC 802CA5FC 8FB20040 */ lw $s2, 0x40($sp) -/* EEFB0 802CA600 8FB1003C */ lw $s1, 0x3c($sp) -/* EEFB4 802CA604 8FB00038 */ lw $s0, 0x38($sp) -/* EEFB8 802CA608 24020002 */ addiu $v0, $zero, 2 -/* EEFBC 802CA60C 03E00008 */ jr $ra -/* EEFC0 802CA610 27BD0048 */ addiu $sp, $sp, 0x48 diff --git a/asm/nonmatchings/code_ED510/RotateModel.s b/asm/nonmatchings/code_ED510/RotateModel.s deleted file mode 100644 index 7a18742363..0000000000 --- a/asm/nonmatchings/code_ED510/RotateModel.s +++ /dev/null @@ -1,79 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel RotateModel -/* ED614 802C8C64 27BDFF78 */ addiu $sp, $sp, -0x88 -/* ED618 802C8C68 AFB1005C */ sw $s1, 0x5c($sp) -/* ED61C 802C8C6C 0080882D */ daddu $s1, $a0, $zero -/* ED620 802C8C70 AFBF0064 */ sw $ra, 0x64($sp) -/* ED624 802C8C74 AFB20060 */ sw $s2, 0x60($sp) -/* ED628 802C8C78 AFB00058 */ sw $s0, 0x58($sp) -/* ED62C 802C8C7C F7BA0080 */ sdc1 $f26, 0x80($sp) -/* ED630 802C8C80 F7B80078 */ sdc1 $f24, 0x78($sp) -/* ED634 802C8C84 F7B60070 */ sdc1 $f22, 0x70($sp) -/* ED638 802C8C88 F7B40068 */ sdc1 $f20, 0x68($sp) -/* ED63C 802C8C8C 8E30000C */ lw $s0, 0xc($s1) -/* ED640 802C8C90 8E050000 */ lw $a1, ($s0) -/* ED644 802C8C94 0C0B1EAF */ jal get_variable -/* ED648 802C8C98 26100004 */ addiu $s0, $s0, 4 -/* ED64C 802C8C9C 0C046C04 */ jal get_model_list_index_from_tree_index -/* ED650 802C8CA0 0040202D */ daddu $a0, $v0, $zero -/* ED654 802C8CA4 8E050000 */ lw $a1, ($s0) -/* ED658 802C8CA8 26100004 */ addiu $s0, $s0, 4 -/* ED65C 802C8CAC 0220202D */ daddu $a0, $s1, $zero -/* ED660 802C8CB0 0C0B210B */ jal get_float_variable -/* ED664 802C8CB4 0040902D */ daddu $s2, $v0, $zero -/* ED668 802C8CB8 8E050000 */ lw $a1, ($s0) -/* ED66C 802C8CBC 26100004 */ addiu $s0, $s0, 4 -/* ED670 802C8CC0 0220202D */ daddu $a0, $s1, $zero -/* ED674 802C8CC4 0C0B210B */ jal get_float_variable -/* ED678 802C8CC8 46000686 */ mov.s $f26, $f0 -/* ED67C 802C8CCC 8E050000 */ lw $a1, ($s0) -/* ED680 802C8CD0 26100004 */ addiu $s0, $s0, 4 -/* ED684 802C8CD4 0220202D */ daddu $a0, $s1, $zero -/* ED688 802C8CD8 0C0B210B */ jal get_float_variable -/* ED68C 802C8CDC 46000606 */ mov.s $f24, $f0 -/* ED690 802C8CE0 0220202D */ daddu $a0, $s1, $zero -/* ED694 802C8CE4 8E050000 */ lw $a1, ($s0) -/* ED698 802C8CE8 0C0B210B */ jal get_float_variable -/* ED69C 802C8CEC 46000506 */ mov.s $f20, $f0 -/* ED6A0 802C8CF0 0240202D */ daddu $a0, $s2, $zero -/* ED6A4 802C8CF4 0C046B4C */ jal get_model_from_list_index -/* ED6A8 802C8CF8 46000586 */ mov.s $f22, $f0 -/* ED6AC 802C8CFC 0040802D */ daddu $s0, $v0, $zero -/* ED6B0 802C8D00 96020000 */ lhu $v0, ($s0) -/* ED6B4 802C8D04 30420400 */ andi $v0, $v0, 0x400 -/* ED6B8 802C8D08 1440000B */ bnez $v0, .L802C8D38 -/* ED6BC 802C8D0C 27A40018 */ addiu $a0, $sp, 0x18 -/* ED6C0 802C8D10 4405D000 */ mfc1 $a1, $f26 -/* ED6C4 802C8D14 4406C000 */ mfc1 $a2, $f24 -/* ED6C8 802C8D18 4407A000 */ mfc1 $a3, $f20 -/* ED6CC 802C8D1C 26040058 */ addiu $a0, $s0, 0x58 -/* ED6D0 802C8D20 0C019EC8 */ jal guRotateF -/* ED6D4 802C8D24 E7B60010 */ swc1 $f22, 0x10($sp) -/* ED6D8 802C8D28 96020000 */ lhu $v0, ($s0) -/* ED6DC 802C8D2C 34421400 */ ori $v0, $v0, 0x1400 -/* ED6E0 802C8D30 080B2357 */ j .L802C8D5C -/* ED6E4 802C8D34 A6020000 */ sh $v0, ($s0) -.L802C8D38: -/* ED6E8 802C8D38 4405D000 */ mfc1 $a1, $f26 -/* ED6EC 802C8D3C 4406C000 */ mfc1 $a2, $f24 -/* ED6F0 802C8D40 4407A000 */ mfc1 $a3, $f20 -/* ED6F4 802C8D44 0C019EC8 */ jal guRotateF -/* ED6F8 802C8D48 E7B60010 */ swc1 $f22, 0x10($sp) -/* ED6FC 802C8D4C 27A40018 */ addiu $a0, $sp, 0x18 -/* ED700 802C8D50 26050058 */ addiu $a1, $s0, 0x58 -/* ED704 802C8D54 0C019D80 */ jal guMtxCatF -/* ED708 802C8D58 00A0302D */ daddu $a2, $a1, $zero -.L802C8D5C: -/* ED70C 802C8D5C 8FBF0064 */ lw $ra, 0x64($sp) -/* ED710 802C8D60 8FB20060 */ lw $s2, 0x60($sp) -/* ED714 802C8D64 8FB1005C */ lw $s1, 0x5c($sp) -/* ED718 802C8D68 8FB00058 */ lw $s0, 0x58($sp) -/* ED71C 802C8D6C D7BA0080 */ ldc1 $f26, 0x80($sp) -/* ED720 802C8D70 D7B80078 */ ldc1 $f24, 0x78($sp) -/* ED724 802C8D74 D7B60070 */ ldc1 $f22, 0x70($sp) -/* ED728 802C8D78 D7B40068 */ ldc1 $f20, 0x68($sp) -/* ED72C 802C8D7C 24020002 */ addiu $v0, $zero, 2 -/* ED730 802C8D80 03E00008 */ jr $ra -/* ED734 802C8D84 27BD0088 */ addiu $sp, $sp, 0x88 diff --git a/asm/nonmatchings/code_ED510/SetTexPanOffset.s b/asm/nonmatchings/code_ED510/SetTexPanOffset.s deleted file mode 100644 index 415fda012c..0000000000 --- a/asm/nonmatchings/code_ED510/SetTexPanOffset.s +++ /dev/null @@ -1,55 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel SetTexPanOffset -/* EDD14 802C9364 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* EDD18 802C9368 AFB10014 */ sw $s1, 0x14($sp) -/* EDD1C 802C936C 0080882D */ daddu $s1, $a0, $zero -/* EDD20 802C9370 AFBF0020 */ sw $ra, 0x20($sp) -/* EDD24 802C9374 AFB3001C */ sw $s3, 0x1c($sp) -/* EDD28 802C9378 AFB20018 */ sw $s2, 0x18($sp) -/* EDD2C 802C937C AFB00010 */ sw $s0, 0x10($sp) -/* EDD30 802C9380 8E30000C */ lw $s0, 0xc($s1) -/* EDD34 802C9384 8E050000 */ lw $a1, ($s0) -/* EDD38 802C9388 0C0B1EAF */ jal get_variable -/* EDD3C 802C938C 26100004 */ addiu $s0, $s0, 4 -/* EDD40 802C9390 8E050000 */ lw $a1, ($s0) -/* EDD44 802C9394 26100004 */ addiu $s0, $s0, 4 -/* EDD48 802C9398 0220202D */ daddu $a0, $s1, $zero -/* EDD4C 802C939C 0C0B1EAF */ jal get_variable -/* EDD50 802C93A0 0040982D */ daddu $s3, $v0, $zero -/* EDD54 802C93A4 8E050000 */ lw $a1, ($s0) -/* EDD58 802C93A8 26100004 */ addiu $s0, $s0, 4 -/* EDD5C 802C93AC 0220202D */ daddu $a0, $s1, $zero -/* EDD60 802C93B0 0C0B1EAF */ jal get_variable -/* EDD64 802C93B4 0040902D */ daddu $s2, $v0, $zero -/* EDD68 802C93B8 0220202D */ daddu $a0, $s1, $zero -/* EDD6C 802C93BC 8E050000 */ lw $a1, ($s0) -/* EDD70 802C93C0 0C0B1EAF */ jal get_variable -/* EDD74 802C93C4 0040802D */ daddu $s0, $v0, $zero -/* EDD78 802C93C8 16400009 */ bnez $s2, .L802C93F0 -/* EDD7C 802C93CC 0040882D */ daddu $s1, $v0, $zero -/* EDD80 802C93D0 0260202D */ daddu $a0, $s3, $zero -/* EDD84 802C93D4 0C046F07 */ jal set_main_pan_u -/* EDD88 802C93D8 0200282D */ daddu $a1, $s0, $zero -/* EDD8C 802C93DC 0260202D */ daddu $a0, $s3, $zero -/* EDD90 802C93E0 0C046F0D */ jal set_main_pan_v -/* EDD94 802C93E4 0220282D */ daddu $a1, $s1, $zero -/* EDD98 802C93E8 080B2502 */ j .L802C9408 -/* EDD9C 802C93EC 00000000 */ nop -.L802C93F0: -/* EDDA0 802C93F0 0260202D */ daddu $a0, $s3, $zero -/* EDDA4 802C93F4 0C046F13 */ jal set_aux_pan_u -/* EDDA8 802C93F8 0200282D */ daddu $a1, $s0, $zero -/* EDDAC 802C93FC 0260202D */ daddu $a0, $s3, $zero -/* EDDB0 802C9400 0C046F19 */ jal set_aux_pan_v -/* EDDB4 802C9404 0220282D */ daddu $a1, $s1, $zero -.L802C9408: -/* EDDB8 802C9408 8FBF0020 */ lw $ra, 0x20($sp) -/* EDDBC 802C940C 8FB3001C */ lw $s3, 0x1c($sp) -/* EDDC0 802C9410 8FB20018 */ lw $s2, 0x18($sp) -/* EDDC4 802C9414 8FB10014 */ lw $s1, 0x14($sp) -/* EDDC8 802C9418 8FB00010 */ lw $s0, 0x10($sp) -/* EDDCC 802C941C 24020002 */ addiu $v0, $zero, 2 -/* EDDD0 802C9420 03E00008 */ jr $ra -/* EDDD4 802C9424 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/src/code_ED510.c b/src/code_ED510.c index b5e6188435..5e01933cf2 100644 --- a/src/code_ED510.c +++ b/src/code_ED510.c @@ -1,10 +1,81 @@ #include "common.h" +// Works to set model->flags & 0x400 to modelListIndex, but that seems wrong and misleading (fake match) +#ifdef NON_MATCHING +ApiStatus TranslateModel(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 var1 = get_variable(script, *args++); + s32 modelListIndex = get_model_list_index_from_tree_index(var1); + f32 x = get_float_variable(script, *args++); + f32 y = get_float_variable(script, *args++); + f32 z = get_float_variable(script, *args++); + Model* model = get_model_from_list_index(modelListIndex); + + if ((model->flags & 0x400) == 0) { + guTranslateF(&model->transformMatrix, x, y, z); + model->flags |= 0x1400; + } else { + Matrix4f mtx; + + guTranslateF(&mtx, x, y, z); + guMtxCatF(&mtx, &model->transformMatrix, &model->transformMatrix); + } + + return ApiStatus_DONE2; +} +#else INCLUDE_ASM(s32, "code_ED510", TranslateModel, ScriptInstance* script, s32 isInitialCall); +#endif -INCLUDE_ASM(s32, "code_ED510", RotateModel, ScriptInstance* script, s32 isInitialCall); +ApiStatus RotateModel(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 var1 = get_variable(script, *args++); + s32 modelListIndex = get_model_list_index_from_tree_index(var1); + f32 a = get_float_variable(script, *args++); + f32 x = get_float_variable(script, *args++); + f32 y = get_float_variable(script, *args++); + f32 z = get_float_variable(script, *args++); + Model* model = get_model_from_list_index(modelListIndex); + if ((model->flags & 0x400) == 0) { + guRotateF(&model->transformMatrix, a, x, y, z); + model->flags |= 0x1400; + } else { + Matrix4f mtx; + + guRotateF(&mtx, a, x, y, z); + guMtxCatF(&mtx, &model->transformMatrix, &model->transformMatrix); + } + + return ApiStatus_DONE2; +} + +// Same as TranslateModel above +#ifdef NON_MATCHING +ApiStatus ScaleModel(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 var1 = get_variable(script, *args++); + s32 modelListIndex = get_model_list_index_from_tree_index(var1); + f32 x = get_float_variable(script, *args++); + f32 y = get_float_variable(script, *args++); + f32 z = get_float_variable(script, *args++); + Model* model = get_model_from_list_index(modelListIndex); + + if ((model->flags & 0x400) == 0) { + guScaleF(&model->transformMatrix, x, y, z); + model->flags |= 0x1400; + } else { + Matrix4f mtx; + + guScaleF(&mtx, x, y, z); + guMtxCatF(&mtx, &model->transformMatrix, &model->transformMatrix); + } + + return ApiStatus_DONE2; +} +#else INCLUDE_ASM(s32, "code_ED510", ScaleModel, ScriptInstance* script, s32 isInitialCall); +#endif ApiStatus GetModelIndex(ScriptInstance* script, s32 isInitialCall) { Bytecode* thisPos = script->ptrReadPos; @@ -139,7 +210,23 @@ ApiStatus SetGroupEnabled(ScriptInstance* script, s32 isInitialCall) { return ApiStatus_DONE2; } -INCLUDE_ASM(s32, "code_ED510", SetTexPanOffset, ScriptInstance* script, s32 isInitialCall); +ApiStatus SetTexPanOffset(ScriptInstance* script, s32 isInitialCall) { + Bytecode* thisPos = script->ptrReadPos; + Bytecode var1 = get_variable(script, *thisPos++); + Bytecode var2 = get_variable(script, *thisPos++); + Bytecode var3 = get_variable(script, *thisPos++); + Bytecode var4 = get_variable(script, *thisPos++); + + if (var2 == 0) { + set_main_pan_u(var1, var3); + set_main_pan_v(var1, var4); + } else { + set_aux_pan_u(var1, var3); + set_aux_pan_v(var1, var4); + } + + return ApiStatus_DONE2; +} ApiStatus func_802C9428(ScriptInstance* script, s32 isInitialCall) { Bytecode* thisPos = script->ptrReadPos; @@ -167,13 +254,10 @@ ApiStatus SetModelFlags(ScriptInstance* script, s32 isInitialCall) { s32 treeIndex = get_variable(script, *args++); s32 listIndex = get_model_list_index_from_tree_index(treeIndex); s32 a1 = *args++; - s32 var2; - Model* model; + s32 var2 = get_variable(script, *args++); + Model* model = get_model_from_list_index(listIndex); - var2 = get_variable(script, *args); - model = get_model_from_list_index(listIndex); - - if (var2 != 0) { + if (var2) { model->flags |= a1; } else { model->flags &= ~a1; @@ -315,6 +399,29 @@ ApiStatus SetRenderMode(ScriptInstance* script, s32 isInitialCall) { return ApiStatus_DONE2; } -INCLUDE_ASM(s32, "code_ED510", PlaySoundAtModel, ScriptInstance* script, s32 isInitialCall); +ApiStatus PlaySoundAtModel(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 modelID = get_variable(script, *args++); + SoundId soundID = get_variable(script, *args++); + s32 var3 = get_variable(script, *args++); + f32 x, y, z; + f32 n1, n2, n3; -INCLUDE_ASM(s32, "code_ED510", PlaySoundAtCollider, ScriptInstance* script, s32 isInitialCall); + get_model_center_and_size((u16)modelID, &x, &y, &z, &n1, &n2, &n3); + play_sound_at_position(soundID, var3, x, y, z); + + return ApiStatus_DONE2; +} + +ApiStatus PlaySoundAtCollider(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 colliderID = get_variable(script, *args++); + SoundId soundID = get_variable(script, *args++); + s32 var3 = get_variable(script, *args++); + f32 x, y, z; + + get_collider_center(colliderID, &x, &y, &z); + play_sound_at_position(soundID, var3, x, y, z); + + return ApiStatus_DONE2; +} diff --git a/src/code_f2470_len_27f0.c b/src/code_f2470_len_27f0.c index e723a572a6..a28aa4ce57 100644 --- a/src/code_f2470_len_27f0.c +++ b/src/code_f2470_len_27f0.c @@ -10,7 +10,7 @@ Npc* resolve_npc(ScriptInstance* script, NpcId npcIdOrPtr) { } } -INCLUDE_ASM(s32, "code_f2470_len_27f0", set_npc_animation); +INCLUDE_ASM(void, "code_f2470_len_27f0", set_npc_animation, Npc* npc, u32 arg1); INCLUDE_ASM(s32, "code_f2470_len_27f0", CreateNpc); From 5890d885ee98051335fb27ca74543289c6ba0413 Mon Sep 17 00:00:00 2001 From: Alex Bates <16batesa@gmail.com> Date: Sun, 8 Nov 2020 10:28:08 +0000 Subject: [PATCH 07/52] update disasm_script.py for new symbol_addrs.txt format --- tools/disasm_script.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/disasm_script.py b/tools/disasm_script.py index 0c5ffc9ac4..2fa10eedb3 100755 --- a/tools/disasm_script.py +++ b/tools/disasm_script.py @@ -38,7 +38,9 @@ def script_lib(): # symbol_addrs.txt with open(Path(path.dirname(__file__), "symbol_addrs.txt"), "r") as file: for line in file.readlines(): - s = line.split(";") + line = line.split(";")[0] + + s = [s.strip() for s in line.split("=", 1)] name = s[0] addr = s[1] _script_lib[int(addr, 16)] = name From 6ecf63e9921ead29a29ea436800feadfbff8ba21 Mon Sep 17 00:00:00 2001 From: Alex Bates <16batesa@gmail.com> Date: Sun, 8 Nov 2020 12:16:10 +0000 Subject: [PATCH 08/52] add match dsl syntax --- format.sh | 2 + src/world/area_kmr/kmr_12/header.c | 8 +- tools/compile_dsl_macros.py | 88 ++++++++++++++++++---- tools/disasm_script.py | 117 +++++++++++++++++------------ 4 files changed, 150 insertions(+), 65 deletions(-) diff --git a/format.sh b/format.sh index 7cb8d8430e..adfc96b84e 100755 --- a/format.sh +++ b/format.sh @@ -28,6 +28,8 @@ astyle ${FILES} \ --indent-labels \ --pad-oper --pad-comma --pad-header --unpad-paren \ --attach-return-type \ + --keep-one-line-blocks \ + --keep-one-line-statements # add newline at eof find ${FILES} -exec sed -i -e '$a\' {} \; diff --git a/src/world/area_kmr/kmr_12/header.c b/src/world/area_kmr/kmr_12/header.c index 5d9a96fdf0..7541f47bc7 100644 --- a/src/world/area_kmr/kmr_12/header.c +++ b/src/world/area_kmr/kmr_12/header.c @@ -13,11 +13,9 @@ MapConfig M(config) = { .tattle = MessageID_TATTLE_KMR_12, }; -Script M(PlayMusic) = { - SI_CALL(SetMusicTrack, 0, Song_PLEASANT_PATH, 0, 8), - SI_RETURN(), - SI_END(), -}; +Script M(PlayMusic) = SCRIPT({ + SetMusicTrack(0, Song_PLEASANT_PATH, 0, 8) +}); ApiStatus GetGoomba(ScriptInstance* script, s32 isInitialCall) { script->varTable[0] = get_enemy_safe(NpcId_GOOMBA); diff --git a/tools/compile_dsl_macros.py b/tools/compile_dsl_macros.py index fa759bd752..d6a4f463c4 100755 --- a/tools/compile_dsl_macros.py +++ b/tools/compile_dsl_macros.py @@ -5,6 +5,8 @@ from lark import Lark, exceptions, Tree, Transformer, Visitor, v_args, Token from lark.visitors import Discard import traceback +DEBUG_OUTPUT = None + def eprint(*args, **kwargs): print(*args, file=stderr, **kwargs) @@ -14,6 +16,9 @@ def write(s): #write_buf += s print(s, end="") + if DEBUG_OUTPUT: + print(s, file=DEBUG_OUTPUT, end="") + ANSI_RED = "\033[1;31;40m" ANSI_RESET = "\u001b[0m" @@ -26,12 +31,16 @@ def pairs(seq): script_parser = Lark(r""" - block: "{" NEWLINE* (stmt STMT_SEP)* NEWLINE* "}" + block: "{" NEWLINE* (_block STMT_SEP*)? "}" + + _block: stmt STMT_SEP _block + | stmt ?stmt: call | label ":" [stmt] -> label_decl | "goto" label -> label_goto | if_stmt + | match_stmt | "return" -> return_stmt | "break" -> break_stmt | "sleep" expr -> sleep_stmt @@ -40,7 +49,6 @@ script_parser = Lark(r""" | "await" expr -> await_stmt | lhs "=" "spawn" expr -> spawn_set_stmt | lhs set_op expr -> set_stmt - | "const" lhs set_op expr -> set_const_stmt | bind_stmt | bind_set_stmt | "unbind" -> unbind_stmt @@ -64,6 +72,18 @@ script_parser = Lark(r""" | ">=" -> if_op_ge | "<=" -> if_op_le + match_stmt: "match" expr "{" NEWLINE* (match_block STMT_SEP*)? "}" + match_block: match_case STMT_SEP match_block + | match_case + match_case: "else" block -> case_else + | "=="? expr block -> case_eq + | "!=" expr block -> case_ne + | ">" expr block -> case_gt + | "<" expr block -> case_lt + | ">=" expr block -> case_gt + | "<=" expr block -> case_lt + | "?" expr block -> case_flag + suspend_stmt: "suspend" control_type expr ("," control_type expr)* [","] resume_stmt: "resume" control_type expr ("," control_type expr)* [","] kill_stmt: "kill" control_type expr ("," control_type expr)* [","] @@ -94,9 +114,6 @@ script_parser = Lark(r""" | "%=" -> set_op_mod | "&=" -> set_op_and | "|=" -> set_op_or - | ":=" -> set_op_eq_const - | ":&=" -> set_op_and_const - | ":|=" -> set_op_or_const c_const_expr: c_const_expr_internal c_const_expr_internal: "(" (c_const_expr_internal | NOT_PARENS)+ ")" @@ -176,7 +193,7 @@ class RootCtx(CmdCtx): class IfCtx(CmdCtx): pass -class SwitchCtx(CmdCtx): +class MatchCtx(CmdCtx): def break_opcode(self, meta): return 0x22 @@ -262,7 +279,7 @@ class Compile(Transformer): # flatten children list flat = [] for node in tree.children: - if type(node) == list: + if type(node) is list: flat += node elif isinstance(node, BaseCmd): flat.append(node) @@ -271,6 +288,11 @@ class Compile(Transformer): else: raise Exception(f"block statment {type(node)} is not a BaseCmd: {node}") return flat + def _block(self, tree): + if len(tree.children) == 1: + return [tree.children[0]] + else: + return [tree.children[0], *tree.children[2]] def call(self, tree): # TODO: type checking etc @@ -289,6 +311,43 @@ class Compile(Transformer): def if_op_le(self, tree): return 0x0E def if_op_ge(self, tree): return 0x0F + def match_stmt(self, tree): + expr = tree.children[0] + + cases = [] + for node in tree.children[1:]: + if type(node) is list: + for el in node: + if type(el) is list: + cases += el + else: + cases.append(el) + + for cmd in cases: + if isinstance(cmd, BaseCmd): + cmd.add_context(MatchCtx()) + else: + raise Exception(f"uncompiled match case: {cmd}") + + return [ + Cmd(0x14, expr, meta=tree.meta), + *cases, + Cmd(0x24), + ] + def match_block(self, tree): + if len(tree.children) == 1: + return [tree.children[0]] + else: + return [tree.children[0], *tree.children[2]] + def case_eq(self, tree): return [Cmd(0x16, tree.children[0]), *tree.children[1]] + def case_ne(self, tree): return [Cmd(0x17, tree.children[0]), *tree.children[1]] + def case_lt(self, tree): return [Cmd(0x18, tree.children[0]), *tree.children[1]] + def case_gt(self, tree): return [Cmd(0x19, tree.children[0]), *tree.children[1]] + def case_le(self, tree): return [Cmd(0x1A, tree.children[0]), *tree.children[1]] + def case_ge(self, tree): return [Cmd(0x1B, tree.children[0]), *tree.children[1]] + def case_else(self, tree): return [Cmd(0x1C), *tree.children[0]] + def case_flag(self, tree): return [Cmd(0x1F, tree.children[0]), *tree.children[1]] + def loop_stmt(self, tree): expr = tree.children.pop(0) if len(tree.children) > 1 else 0 block = tree.children[0] @@ -400,12 +459,12 @@ class Compile(Transformer): if not opcode: raise CompileError(f"operation `{opcodes['__op__']}' not supported for ints", tree.meta) return Cmd(opcode, lhs, rhs) - def set_const_stmt(self, tree): - lhs, opcodes, rhs = tree.children - opcode = opcodes.get("const", None) - if not opcode: - raise CompileError(f"operation `{opcodes['__op__']}' not supported for consts", tree.meta) - return Cmd(opcode, lhs, rhs) + # def set_const_stmt(self, tree): + # lhs, opcodes, rhs = tree.children + # opcode = opcodes.get("const", None) + # if not opcode: + # raise CompileError(f"operation `{opcodes['__op__']}' not supported for consts", tree.meta) + # return Cmd(opcode, lhs, rhs) def set_op_eq(self, tree): return { "__op__": "=", @@ -581,6 +640,9 @@ def gen_line_map(source, source_line_no = 1): # Expects output from C preprocessor on argv if __name__ == "__main__": + if DEBUG_OUTPUT is not None: + DEBUG_OUTPUT = open(DEBUG_OUTPUT, "w") + line_no = 1 char_no = 1 file_info = [] diff --git a/tools/disasm_script.py b/tools/disasm_script.py index 2fa10eedb3..4ca4210a27 100755 --- a/tools/disasm_script.py +++ b/tools/disasm_script.py @@ -326,6 +326,11 @@ class UnsupportedScript(Exception): pass class ScriptDSLDisassembler(ScriptDisassembler): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + self.in_case = False + def var(self, arg): if arg in self.symbol_map: return self.symbol_map[arg] @@ -414,63 +419,81 @@ class ScriptDSLDisassembler(ScriptDisassembler): elif opcode == 0x13: self.indent -= 1 self.write_line("}") - # elif opcode == 0x14: - # self.write_line(f"SI_SWITCH({self.var(argv[0])}),") - # self.indent += 2 + elif opcode == 0x14: + self.write_line(f"match {self.var(argv[0])} {{") + self.indent += 2 + self.in_case = False # elif opcode == 0x15: # self.write_line(f"SI_SWITCH_CONST(0x{argv[0]:X}),") # self.indent += 2 - # elif opcode == 0x16: - # self.indent -= 1 - # self.write_line(f"SI_CASE_EQ({self.var(argv[0])}),") - # self.indent += 1 - # elif opcode == 0x17: - # self.indent -= 1 - # self.write_line(f"SI_CASE_NE({self.var(argv[0])}),") - # self.indent += 1 - # elif opcode == 0x18: - # self.indent -= 1 - # self.write_line(f"SI_CASE_LT({self.var(argv[0])}),") - # self.indent += 1 - # elif opcode == 0x19: - # self.indent -= 1 - # self.write_line(f"SI_CASE_GT({self.var(argv[0])}),") - # self.indent += 1 - # elif opcode == 0x1A: - # self.indent -= 1 - # self.write_line(f"SI_CASE_LE({self.var(argv[0])}),") - # self.indent += 1 - # elif opcode == 0x1B: - # self.indent -= 1 - # self.write_line(f"SI_CASE_GE({self.var(argv[0])}),") - # self.indent += 1 - # elif opcode == 0x1C: - # self.indent -= 1 - # self.write_line(f"SI_CASE_DEFAULT(),") - # self.indent += 1 + elif opcode == 0x16: + self.indent -= 1 + if self.in_case: self.write_line("}") + self.in_case = True + self.write_line(f"{self.var(argv[0])} {{") + self.indent += 1 + elif opcode == 0x17: + self.indent -= 1 + if self.in_case: self.write_line("}") + self.in_case = True + self.write_line(f"!= {self.var(argv[0])} {{") + self.indent += 1 + elif opcode == 0x18: + self.indent -= 1 + if self.in_case: self.write_line("}") + self.in_case = True + self.write_line(f"< {self.var(argv[0])} {{") + self.indent += 1 + elif opcode == 0x19: + self.indent -= 1 + if self.in_case: self.write_line("}") + self.in_case = True + self.write_line(f"> {self.var(argv[0])} {{") + self.indent += 1 + elif opcode == 0x1A: + self.indent -= 1 + if self.in_case: self.write_line("}") + self.in_case = True + self.write_line(f"<= {self.var(argv[0])} {{") + self.indent += 1 + elif opcode == 0x1B: + self.indent -= 1 + if self.in_case: self.write_line("}") + self.in_case = True + self.write_line(f">= {self.var(argv[0])} {{") + self.indent += 1 + elif opcode == 0x1C: + self.indent -= 1 + if self.in_case: self.write_line("}") + self.in_case = True + self.write_line(f"else {{") + self.indent += 1 # elif opcode == 0x1D: # self.indent -= 1 # self.write_line(f"SI_CASE_OR_EQ({self.var(argv[0])}),") # self.indent += 1 - # # opcode 0x1E? - # elif opcode == 0x1F: - # self.indent -= 1 - # self.write_line(f"SI_CASE_BITS_ON({self.var(argv[0])}),") - # self.indent += 1 + # opcode 0x1E? + elif opcode == 0x1F: + self.indent -= 1 + self.write_line(f"& {self.var(argv[0])}") + self.indent += 1 # elif opcode == 0x20: # self.indent -= 1 # self.write_line(f"SI_END_MULTI_CASE(),") # self.indent += 1 - # elif opcode == 0x21: - # self.indent -= 1 - # self.write_line(f"case {self.var(argv[0])}..{self.var(argv[1])}:") - # self.indent += 1 - # elif opcode == 0x22: self.write_line("break") - # elif opcode == 0x23: - # self.indent -= 2 - # self.write_line("}") + elif opcode == 0x21: + self.indent -= 1 + self.write_line(f"{self.var(argv[0])}..{self.var(argv[1])} {{") + self.indent += 1 + elif opcode == 0x22: self.write_line("break") + elif opcode == 0x23: + self.indent -= 1 + if self.in_case: self.write_line("}") + self.in_case = False + self.indent -= 1 + self.write_line("}") elif opcode == 0x24: self.write_line(f"{self.var(argv[0])} = {self.var(argv[1])}") - elif opcode == 0x25: self.write_line(f"const {self.var(argv[0])} = 0x{argv[1]:X}") + #elif opcode == 0x25: self.write_line(f"{self.var(argv[0])} #= 0x{argv[1]:X}") elif opcode == 0x26: self.write_line(f"{self.var(argv[0])} = {self.verify_float(self.var(argv[1]))}") elif opcode == 0x27: self.write_line(f"{self.var(argv[0])} += {self.var(argv[1])}") elif opcode == 0x28: self.write_line(f"{self.var(argv[0])} -= {self.var(argv[1])}") @@ -483,8 +506,8 @@ class ScriptDSLDisassembler(ScriptDisassembler): elif opcode == 0x2F: self.write_line(f"{self.var(argv[0])} /= {self.verify_float(self.var(argv[1]))}") elif opcode == 0x3F: self.write_line(f"{self.var(argv[0])} &= {self.var(argv[1])}") elif opcode == 0x40: self.write_line(f"{self.var(argv[0])} |= {self.var(argv[1])}") - elif opcode == 0x41: self.write_line(f"const {self.var(argv[0])} &= {argv[1]:X})") - elif opcode == 0x42: self.write_line(f"const {self.var(argv[0])} |= {argv[1]:X})") + #elif opcode == 0x41: self.write_line(f"{self.var(argv[0])} #&= {argv[1]:X})") + #elif opcode == 0x42: self.write_line(f"{self.var(argv[0])} #|= {argv[1]:X})") elif opcode == 0x43: argv_str = ", ".join(self.var(arg) for arg in argv[1:]) self.write_line(f"{self.addr_ref(argv[0])}({argv_str})") From 5d3696088321a4464e779be3113a6efb8a3bf248 Mon Sep 17 00:00:00 2001 From: Alex Bates <16batesa@gmail.com> Date: Sun, 8 Nov 2020 14:00:53 +0000 Subject: [PATCH 09/52] add support for multi-cases and range cases --- tools/compile_dsl_macros.py | 87 ++++++++++++++++++++++--------------- tools/disasm_script.py | 2 +- 2 files changed, 53 insertions(+), 36 deletions(-) diff --git a/tools/compile_dsl_macros.py b/tools/compile_dsl_macros.py index d6a4f463c4..4224e1d99c 100755 --- a/tools/compile_dsl_macros.py +++ b/tools/compile_dsl_macros.py @@ -64,25 +64,24 @@ script_parser = Lark(r""" call: CNAME "(" [expr ("," expr)* [","]] ")" - if_stmt: "if" expr if_op expr block ["else" block] - ?if_op: "==" -> if_op_eq - | "!=" -> if_op_ne - | ">" -> if_op_gt - | "<" -> if_op_lt - | ">=" -> if_op_ge - | "<=" -> if_op_le + if_stmt: "if" expr cond_op expr block ["else" block] - match_stmt: "match" expr "{" NEWLINE* (match_block STMT_SEP*)? "}" - match_block: match_case STMT_SEP match_block + ?cond_op: "==" -> cond_op_eq + | "!=" -> cond_op_ne + | ">" -> cond_op_gt + | "<" -> cond_op_lt + | ">=" -> cond_op_ge + | "<=" -> cond_op_le + | "?" -> cond_op_flag + + match_stmt: "match" expr "{" NEWLINE* (match_cases STMT_SEP*)? "}" + match_cases: match_case STMT_SEP* match_cases | match_case - match_case: "else" block -> case_else - | "=="? expr block -> case_eq - | "!=" expr block -> case_ne - | ">" expr block -> case_gt - | "<" expr block -> case_lt - | ">=" expr block -> case_gt - | "<=" expr block -> case_lt - | "?" expr block -> case_flag + ?match_case: "else" block -> case_else + | cond_op expr ["," multi_case] block -> case_op + | expr ".." expr ["," multi_case] block -> case_range + | multi_case block -> case_multi + multi_case: expr ("," expr)* suspend_stmt: "suspend" control_type expr ("," control_type expr)* [","] resume_stmt: "resume" control_type expr ("," control_type expr)* [","] @@ -95,7 +94,7 @@ script_parser = Lark(r""" bind_set_stmt: lhs "=" "bind" expr "to" expr expr loop_stmt: "loop" [expr] block - loop_until_stmt: "loop" block "until" expr if_op expr + loop_until_stmt: "loop" block "until" expr cond_op expr ?expr: c_const_expr | ESCAPED_STRING @@ -303,13 +302,15 @@ class Compile(Transformer): for cmd in block: if isinstance(cmd, BaseCmd): cmd.add_context(IfCtx()) - return [ Cmd(op, a, b, meta=tree.meta), *block, Cmd(0x13) ] - def if_op_eq(self, tree): return 0x0A - def if_op_ne(self, tree): return 0x0B - def if_op_lt(self, tree): return 0x0C - def if_op_gt(self, tree): return 0x0D - def if_op_le(self, tree): return 0x0E - def if_op_ge(self, tree): return 0x0F + return [ Cmd(op["if"], a, b, meta=tree.meta), *block, Cmd(0x13) ] + + def cond_op_eq(self, tree): return { "if": 0x0A, "case": 0x16 } + def cond_op_ne(self, tree): return { "if": 0x0B, "case": 0x17 } + def cond_op_lt(self, tree): return { "if": 0x0C, "case": 0x18 } + def cond_op_gt(self, tree): return { "if": 0x0D, "case": 0x19 } + def cond_op_le(self, tree): return { "if": 0x0E, "case": 0x1A } + def cond_op_ge(self, tree): return { "if": 0x0F, "case": 0x1B } + def cond_op_flag(self, tree): return { "if": 0x10, "case": 0x1F } def match_stmt(self, tree): expr = tree.children[0] @@ -318,6 +319,7 @@ class Compile(Transformer): for node in tree.children[1:]: if type(node) is list: for el in node: + eprint(el) if type(el) is list: cases += el else: @@ -334,19 +336,34 @@ class Compile(Transformer): *cases, Cmd(0x24), ] - def match_block(self, tree): + def match_cases(self, tree): if len(tree.children) == 1: return [tree.children[0]] else: return [tree.children[0], *tree.children[2]] - def case_eq(self, tree): return [Cmd(0x16, tree.children[0]), *tree.children[1]] - def case_ne(self, tree): return [Cmd(0x17, tree.children[0]), *tree.children[1]] - def case_lt(self, tree): return [Cmd(0x18, tree.children[0]), *tree.children[1]] - def case_gt(self, tree): return [Cmd(0x19, tree.children[0]), *tree.children[1]] - def case_le(self, tree): return [Cmd(0x1A, tree.children[0]), *tree.children[1]] - def case_ge(self, tree): return [Cmd(0x1B, tree.children[0]), *tree.children[1]] - def case_else(self, tree): return [Cmd(0x1C), *tree.children[0]] - def case_flag(self, tree): return [Cmd(0x1F, tree.children[0]), *tree.children[1]] + + def case_else(self, tree): + return [Cmd(0x1C), *tree.children[0]] + def case_op(self, tree): + if len(tree.children) == 4: + op, expr, multi_case, block = tree.children + return [Cmd(op["case"], expr), *multi_case, *block, Cmd(0x20)] + else: + op, expr, block = tree.children + return [Cmd(op["case"], expr), *block] + def case_range(self, tree): + if len(tree.children) == 4: + a, b, multi_case, block = tree.children + return [Cmd(0x21, a, b), *multi_case, *block, Cmd(0x20)] + else: + a, b, block = tree.children + return [Cmd(0x21, a, b), *block] + def case_multi(self, tree): + multi_case, block = tree.children + return [*multi_case, *block, Cmd(0x20)] + + def multi_case(self, tree): + return [Cmd(0x1D, expr) for expr in tree.children] def loop_stmt(self, tree): expr = tree.children.pop(0) if len(tree.children) > 1 else 0 @@ -371,7 +388,7 @@ class Compile(Transformer): return [ Cmd(0x03, label, meta=tree.meta), # label: *block, - Cmd(op, a, b, meta=tree.meta), # if a op b + Cmd(op["if"], a, b, meta=tree.meta), # if a op b Cmd(0x04, label, meta=tree.meta), # goto label Cmd(0x13, meta=tree.meta), # end if ] diff --git a/tools/disasm_script.py b/tools/disasm_script.py index 4ca4210a27..6de84cbd47 100755 --- a/tools/disasm_script.py +++ b/tools/disasm_script.py @@ -475,7 +475,7 @@ class ScriptDSLDisassembler(ScriptDisassembler): # opcode 0x1E? elif opcode == 0x1F: self.indent -= 1 - self.write_line(f"& {self.var(argv[0])}") + self.write_line(f"? {self.var(argv[0])}") self.indent += 1 # elif opcode == 0x20: # self.indent -= 1 From d11595684e32e41519846dd4f277218ba16fd855 Mon Sep 17 00:00:00 2001 From: Alex Bates <16batesa@gmail.com> Date: Sun, 8 Nov 2020 14:57:58 +0000 Subject: [PATCH 10/52] disassemble complex match statements --- tools/compile_dsl_macros.py | 1 + tools/disasm_map.py | 6 +- tools/disasm_script.py | 109 ++++++++++++++++++++++++------------ 3 files changed, 77 insertions(+), 39 deletions(-) diff --git a/tools/compile_dsl_macros.py b/tools/compile_dsl_macros.py index 4224e1d99c..8169bd1d79 100755 --- a/tools/compile_dsl_macros.py +++ b/tools/compile_dsl_macros.py @@ -239,6 +239,7 @@ class LabelAllocation(Visitor): self.labels = [] def label_decl(self, tree): + # TODO: int labels name = tree.children[0].children[0] if name in self.labels: raise CompileError(f"label `{name}' already declared", tree.meta) diff --git a/tools/disasm_map.py b/tools/disasm_map.py index 3c3bbb993a..d0ffe9b910 100755 --- a/tools/disasm_map.py +++ b/tools/disasm_map.py @@ -16,8 +16,6 @@ def disassemble(bytes, offset, midx, symbol_map = {}, map_name = "map"): struct = midx.pop(0) name = struct["name"] - print(name) - if name == "Script_Main": name = f"M(Main)" #print(f"{offset:X} ({name}, start = {struct['start']:X}, len = {struct['length']:X})") @@ -35,6 +33,8 @@ def disassemble(bytes, offset, midx, symbol_map = {}, map_name = "map"): try: out += disasm_script.ScriptDSLDisassembler(bytes, f"M({name})", symbol_map).disassemble() except disasm_script.UnsupportedScript as e: + print(f"Unable to use DSL for {struct['name']}: {e}") + bytes.seek(pos) out += disasm_script.ScriptDisassembler(bytes, f"M({name})", symbol_map).disassemble() elif struct["type"] == "Padding": @@ -222,6 +222,8 @@ if __name__ == "__main__": if filetype == "bin": with open(f"{bin_dir}/{rom_addr:X}.bin", "rb") as bytes: + print(f"Disassembling {rom_addr:X}") + disasm = disassemble(bytes, rom_addr - rom_start, midx, symbol_map, map_name) if len(disasm.strip()) > 0: diff --git a/tools/disasm_script.py b/tools/disasm_script.py index 6de84cbd47..36db39638d 100755 --- a/tools/disasm_script.py +++ b/tools/disasm_script.py @@ -78,12 +78,15 @@ class ScriptDisassembler: if self.done: return self.prefix + self.out - def write_line(self, line): + def write(self, line): if self.indent < 0: self.indent = 0 if self.indent > 1: self.indent_used = True self.out += " " * self.indent self.out += line + + def write_line(self, line): + self.write(line) self.out += "\n" def prefix_line(self, line): @@ -329,7 +332,17 @@ class ScriptDSLDisassembler(ScriptDisassembler): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) - self.in_case = False + # False: not in case + # True: in case block + # CASES: in condition, but { not written yet + # MULTI: in ',' condition(s), but { not written yet + self.case_stack = [] + + self.was_multi_case = False + + @property + def in_case(self): + return self.case_stack[-1] if self.case_stack else False def var(self, arg): if arg in self.symbol_map: @@ -366,6 +379,27 @@ class ScriptDSLDisassembler(ScriptDisassembler): return var def disassemble_command(self, opcode, argc, argv): + # write case block braces + if self.in_case == "CASES" or self.in_case == "MULTI": + if opcode == 0x1D: # multi case + pass + elif 0x16 <= opcode <= 0x21: # standard case conditions + # open and close empty case + self.case_stack.pop() + self.case_stack.append(False) + else: + # open case + self.out += " {\n" + self.was_multi_case = self.in_case == "MULTI" + + self.case_stack.pop() + self.case_stack.append(True) + elif self.in_case is True and 0x16 <= opcode <= 0x21: # new case + self.case_stack.pop() + self.indent -= 1 + self.write_line("}") + self.indent += 1 + if opcode == 0x01: if self.out.endswith("return\n"): # implicit return; break @@ -380,8 +414,8 @@ class ScriptDSLDisassembler(ScriptDisassembler): self.done = True elif opcode == 0x02: self.write_line(f"return") - elif opcode == 0x03: self.write_line(f"lbl{self.var(argv[0])}:") - elif opcode == 0x04: self.write_line(f"goto lbl{self.var(argv[0])}") + elif opcode == 0x03: self.write_line(f"{self.var(argv[0])}:") + elif opcode == 0x04: self.write_line(f"goto {self.var(argv[0])}") elif opcode == 0x05: if argv[0] == 0: self.write_line("loop {") @@ -412,6 +446,9 @@ class ScriptDSLDisassembler(ScriptDisassembler): elif opcode == 0x0F: self.write_line(f"if {self.var(argv[0])} >= {self.var(argv[1])} {{") self.indent += 1 + elif opcode == 0x10: + self.write_line(f"if {self.var(argv[0])} ? {self.var(argv[1])} {{") + self.indent += 1 elif opcode == 0x12: self.indent -= 1 self.write_line("} else {") @@ -422,65 +459,61 @@ class ScriptDSLDisassembler(ScriptDisassembler): elif opcode == 0x14: self.write_line(f"match {self.var(argv[0])} {{") self.indent += 2 - self.in_case = False + self.case_stack.append(False) # elif opcode == 0x15: # self.write_line(f"SI_SWITCH_CONST(0x{argv[0]:X}),") # self.indent += 2 elif opcode == 0x16: self.indent -= 1 - if self.in_case: self.write_line("}") - self.in_case = True - self.write_line(f"{self.var(argv[0])} {{") + self.case_stack.append("CASES") + self.write(f"== {self.var(argv[0])}") self.indent += 1 elif opcode == 0x17: self.indent -= 1 - if self.in_case: self.write_line("}") - self.in_case = True - self.write_line(f"!= {self.var(argv[0])} {{") + self.case_stack.append("CASES") + self.write(f"!= {self.var(argv[0])}") self.indent += 1 elif opcode == 0x18: self.indent -= 1 - if self.in_case: self.write_line("}") - self.in_case = True - self.write_line(f"< {self.var(argv[0])} {{") + self.case_stack.append("CASES") + self.write(f"< {self.var(argv[0])}") self.indent += 1 elif opcode == 0x19: self.indent -= 1 - if self.in_case: self.write_line("}") - self.in_case = True - self.write_line(f"> {self.var(argv[0])} {{") + self.case_stack.append("CASES") + self.write(f"> {self.var(argv[0])}") self.indent += 1 elif opcode == 0x1A: self.indent -= 1 - if self.in_case: self.write_line("}") - self.in_case = True - self.write_line(f"<= {self.var(argv[0])} {{") + self.case_stack.append("CASES") + self.write(f"<= {self.var(argv[0])}") self.indent += 1 elif opcode == 0x1B: self.indent -= 1 - if self.in_case: self.write_line("}") - self.in_case = True - self.write_line(f">= {self.var(argv[0])} {{") + self.case_stack.append("CASES") + self.write(f">= {self.var(argv[0])}") self.indent += 1 elif opcode == 0x1C: self.indent -= 1 - if self.in_case: self.write_line("}") - self.in_case = True - self.write_line(f"else {{") + self.case_stack.append("CASES") + self.write(f"else") + self.indent += 1 + elif opcode == 0x1D: + self.indent -= 1 + if self.in_case == "CASES" or self.in_case == "MULTI": + self.out += f", {self.var(argv[0])}" + else: + self.write(f"{self.var(argv[0])}") + self.case_stack.append("MULTI") self.indent += 1 - # elif opcode == 0x1D: - # self.indent -= 1 - # self.write_line(f"SI_CASE_OR_EQ({self.var(argv[0])}),") - # self.indent += 1 # opcode 0x1E? elif opcode == 0x1F: self.indent -= 1 self.write_line(f"? {self.var(argv[0])}") self.indent += 1 - # elif opcode == 0x20: - # self.indent -= 1 - # self.write_line(f"SI_END_MULTI_CASE(),") - # self.indent += 1 + elif opcode == 0x20 and self.was_multi_case: + self.indent -= 1 + self.indent += 1 elif opcode == 0x21: self.indent -= 1 self.write_line(f"{self.var(argv[0])}..{self.var(argv[1])} {{") @@ -488,8 +521,10 @@ class ScriptDSLDisassembler(ScriptDisassembler): elif opcode == 0x22: self.write_line("break") elif opcode == 0x23: self.indent -= 1 - if self.in_case: self.write_line("}") - self.in_case = False + if self.in_case: + self.write_line("}") + self.case_stack.pop() + self.case_stack.pop() self.indent -= 1 self.write_line("}") elif opcode == 0x24: self.write_line(f"{self.var(argv[0])} = {self.var(argv[1])}") @@ -542,7 +577,7 @@ class ScriptDSLDisassembler(ScriptDisassembler): self.indent -= 1 self.write_line("}") else: - raise UnsupportedScript(f"DSL does not support script opcode {opcode:X}") + raise UnsupportedScript(f"DSL does not support script opcode 0x{opcode:X}") if __name__ == "__main__": if len(sys.argv) <= 1: From f811ed0b924999b0c1e688b0b61a631f375a02e0 Mon Sep 17 00:00:00 2001 From: Alex Bates <16batesa@gmail.com> Date: Sun, 8 Nov 2020 15:35:41 +0000 Subject: [PATCH 11/52] add explicit const/float DSL commands, improve match disassembly --- tools/compile_dsl_macros.py | 29 +++++-- tools/disasm_script.py | 150 +++++++++++++++++++++--------------- 2 files changed, 107 insertions(+), 72 deletions(-) diff --git a/tools/compile_dsl_macros.py b/tools/compile_dsl_macros.py index 8169bd1d79..1355e6107f 100755 --- a/tools/compile_dsl_macros.py +++ b/tools/compile_dsl_macros.py @@ -49,6 +49,8 @@ script_parser = Lark(r""" | "await" expr -> await_stmt | lhs "=" "spawn" expr -> spawn_set_stmt | lhs set_op expr -> set_stmt + | lhs set_op "f" expr -> set_float_stmt + | lhs set_op "c" expr -> set_const_stmt | bind_stmt | bind_set_stmt | "unbind" -> unbind_stmt @@ -75,6 +77,7 @@ script_parser = Lark(r""" | "?" -> cond_op_flag match_stmt: "match" expr "{" NEWLINE* (match_cases STMT_SEP*)? "}" + match_const_stmt: "matchc" expr "{" NEWLINE* (match_cases STMT_SEP*)? "}" match_cases: match_case STMT_SEP* match_cases | match_case ?match_case: "else" block -> case_else @@ -337,6 +340,10 @@ class Compile(Transformer): *cases, Cmd(0x24), ] + def match_const_stmt(self, tree): + commands = self.match_stmt(tree) + commands[0].opcode = 0x15 + return commands def match_cases(self, tree): if len(tree.children) == 1: return [tree.children[0]] @@ -471,18 +478,24 @@ class Compile(Transformer): if is_fixed_var(rhs): opcode = opcodes.get("float", None) if not opcode: - raise CompileError(f"operation `{opcodes['__op__']}' not supported for floats", tree.meta) + raise CompileError(f"float operation `{opcodes['__op__']}' not supported", tree.meta) else: opcode = opcodes.get("int", None) if not opcode: - raise CompileError(f"operation `{opcodes['__op__']}' not supported for ints", tree.meta) + raise CompileError(f"int operation `{opcodes['__op__']}' not supported", tree.meta) + return Cmd(opcode, lhs, rhs) + def set_float_stmt(self, tree): + lhs, opcodes, rhs = tree.children + opcode = opcodes.get("float", None) + if not opcode: + raise CompileError(f"float operation `{opcodes['__op__']}' not supported", tree.meta) + return Cmd(opcode, lhs, rhs) + def set_const_stmt(self, tree): + lhs, opcodes, rhs = tree.children + opcode = opcodes.get("const", None) + if not opcode: + raise CompileError(f"const operation `{opcodes['__op__']}' not supported", tree.meta) return Cmd(opcode, lhs, rhs) - # def set_const_stmt(self, tree): - # lhs, opcodes, rhs = tree.children - # opcode = opcodes.get("const", None) - # if not opcode: - # raise CompileError(f"operation `{opcodes['__op__']}' not supported for consts", tree.meta) - # return Cmd(opcode, lhs, rhs) def set_op_eq(self, tree): return { "__op__": "=", diff --git a/tools/disasm_script.py b/tools/disasm_script.py index 36db39638d..ca0b8da6ba 100755 --- a/tools/disasm_script.py +++ b/tools/disasm_script.py @@ -332,10 +332,10 @@ class ScriptDSLDisassembler(ScriptDisassembler): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) - # False: not in case - # True: in case block - # CASES: in condition, but { not written yet - # MULTI: in ',' condition(s), but { not written yet + # True: case block + # CASE: single condition + # MULTI: multi-condition(s) + # MATCH: match block self.case_stack = [] self.was_multi_case = False @@ -369,36 +369,40 @@ class ScriptDSLDisassembler(ScriptDisassembler): else: return f"{arg}" - def verify_float(self, var): + def is_float(self, var): try: float(var) + return True except Exception: - # not a float! - raise UnsupportedScript("non-float used in float command") - - return var + return False def disassemble_command(self, opcode, argc, argv): # write case block braces - if self.in_case == "CASES" or self.in_case == "MULTI": + if self.in_case == "CASE" or self.in_case == "MULTI": if opcode == 0x1D: # multi case pass elif 0x16 <= opcode <= 0x21: # standard case conditions # open and close empty case + self.out += " {}\n" + self.case_stack.pop() - self.case_stack.append(False) + assert self.in_case == "MATCH" + + self.was_multi_case = False else: # open case self.out += " {\n" - self.was_multi_case = self.in_case == "MULTI" - self.case_stack.pop() self.case_stack.append(True) - elif self.in_case is True and 0x16 <= opcode <= 0x21: # new case - self.case_stack.pop() + + self.indent += 1 + elif self.in_case != "MATCH" and 0x16 <= opcode <= 0x21: # new case, not including the first + assert self.case_stack.pop() == True + self.was_multi_case = self.case_stack.pop() == "MULTI" + assert self.in_case == "MATCH" + self.indent -= 1 self.write_line("}") - self.indent += 1 if opcode == 0x01: if self.out.endswith("return\n"): @@ -458,91 +462,109 @@ class ScriptDSLDisassembler(ScriptDisassembler): self.write_line("}") elif opcode == 0x14: self.write_line(f"match {self.var(argv[0])} {{") - self.indent += 2 - self.case_stack.append(False) - # elif opcode == 0x15: - # self.write_line(f"SI_SWITCH_CONST(0x{argv[0]:X}),") - # self.indent += 2 + self.indent += 1 + self.case_stack.append("MATCH") + elif opcode == 0x15: + self.write_line(f"matchc {self.var(argv[0])} {{") + self.indent += 1 + self.case_stack.append("MATCH") elif opcode == 0x16: - self.indent -= 1 - self.case_stack.append("CASES") + self.case_stack.append("CASE") self.write(f"== {self.var(argv[0])}") - self.indent += 1 elif opcode == 0x17: - self.indent -= 1 - self.case_stack.append("CASES") + self.case_stack.append("CASE") self.write(f"!= {self.var(argv[0])}") - self.indent += 1 elif opcode == 0x18: - self.indent -= 1 - self.case_stack.append("CASES") + self.case_stack.append("CASE") self.write(f"< {self.var(argv[0])}") - self.indent += 1 elif opcode == 0x19: - self.indent -= 1 - self.case_stack.append("CASES") + self.case_stack.append("CASE") self.write(f"> {self.var(argv[0])}") - self.indent += 1 elif opcode == 0x1A: - self.indent -= 1 - self.case_stack.append("CASES") + self.case_stack.append("CASE") self.write(f"<= {self.var(argv[0])}") - self.indent += 1 elif opcode == 0x1B: - self.indent -= 1 - self.case_stack.append("CASES") + self.case_stack.append("CASE") self.write(f">= {self.var(argv[0])}") - self.indent += 1 elif opcode == 0x1C: - self.indent -= 1 - self.case_stack.append("CASES") + self.case_stack.append("CASE") self.write(f"else") - self.indent += 1 elif opcode == 0x1D: - self.indent -= 1 - if self.in_case == "CASES" or self.in_case == "MULTI": + if self.in_case == "CASE" or self.in_case == "MULTI": self.out += f", {self.var(argv[0])}" + + # replace(!) CASE with MULTI + self.case_stack.pop() + self.case_stack.append("MULTI") else: self.write(f"{self.var(argv[0])}") - self.case_stack.append("MULTI") - self.indent += 1 + self.case_stack.append("MULTI") # opcode 0x1E? elif opcode == 0x1F: - self.indent -= 1 + self.case_stack.append("CASE") self.write_line(f"? {self.var(argv[0])}") - self.indent += 1 - elif opcode == 0x20 and self.was_multi_case: - self.indent -= 1 - self.indent += 1 + elif opcode == 0x20: + if not self.was_multi_case: + raise UnsupportedScript("unexpected SI_END_MULTI_CASE") elif opcode == 0x21: self.indent -= 1 - self.write_line(f"{self.var(argv[0])}..{self.var(argv[1])} {{") + self.write_line(f"{self.var(argv[0])}..{self.var(argv[1])}") self.indent += 1 elif opcode == 0x22: self.write_line("break") elif opcode == 0x23: - self.indent -= 1 - if self.in_case: + # close open case if needed + if self.in_case != "MATCH": + self.case_stack.pop() == True + self.case_stack.pop() in ["MULTI", "CASE"] + + self.indent -= 1 self.write_line("}") - self.case_stack.pop() - self.case_stack.pop() + + assert self.case_stack.pop() == "MATCH" + self.indent -= 1 self.write_line("}") elif opcode == 0x24: self.write_line(f"{self.var(argv[0])} = {self.var(argv[1])}") - #elif opcode == 0x25: self.write_line(f"{self.var(argv[0])} #= 0x{argv[1]:X}") - elif opcode == 0x26: self.write_line(f"{self.var(argv[0])} = {self.verify_float(self.var(argv[1]))}") + elif opcode == 0x25: self.write_line(f"{self.var(argv[0])} =c 0x{argv[1]:X}") + elif opcode == 0x26: + lhs = self.var(argv[1]) + if self.is_float(lhs): + self.write_line(f"{self.var(argv[0])} = {lhs}") + else: + self.write_line(f"{self.var(argv[0])} =f {lhs}") elif opcode == 0x27: self.write_line(f"{self.var(argv[0])} += {self.var(argv[1])}") elif opcode == 0x28: self.write_line(f"{self.var(argv[0])} -= {self.var(argv[1])}") elif opcode == 0x29: self.write_line(f"{self.var(argv[0])} *= {self.var(argv[1])}") elif opcode == 0x2A: self.write_line(f"{self.var(argv[0])} /= {self.var(argv[1])}") elif opcode == 0x2B: self.write_line(f"{self.var(argv[0])} %= {self.var(argv[1])}") - elif opcode == 0x2C: self.write_line(f"{self.var(argv[0])} += {self.verify_float(self.var(argv[1]))}") - elif opcode == 0x2D: self.write_line(f"{self.var(argv[0])} -= {self.verify_float(self.var(argv[1]))}") - elif opcode == 0x2E: self.write_line(f"{self.var(argv[0])} *= {self.verify_float(self.var(argv[1]))}") - elif opcode == 0x2F: self.write_line(f"{self.var(argv[0])} /= {self.verify_float(self.var(argv[1]))}") + elif opcode == 0x2C: + lhs = self.var(argv[1]) + if self.is_float(lhs): + self.write_line(f"{self.var(argv[0])} += {lhs}") + else: + self.write_line(f"{self.var(argv[0])} +=f {lhs}") + elif opcode == 0x2D: + lhs = self.var(argv[1]) + if self.is_float(lhs): + self.write_line(f"{self.var(argv[0])} -= {lhs}") + else: + self.write_line(f"{self.var(argv[0])} -=f {lhs}") + elif opcode == 0x2E: + lhs = self.var(argv[1]) + if self.is_float(lhs): + self.write_line(f"{self.var(argv[0])} *= {lhs}") + else: + self.write_line(f"{self.var(argv[0])} *=f {lhs}") + elif opcode == 0x2F: + lhs = self.var(argv[1]) + if self.is_float(lhs): + self.write_line(f"{self.var(argv[0])} /= {lhs}") + else: + self.write_line(f"{self.var(argv[0])} /=f {lhs}") elif opcode == 0x3F: self.write_line(f"{self.var(argv[0])} &= {self.var(argv[1])}") elif opcode == 0x40: self.write_line(f"{self.var(argv[0])} |= {self.var(argv[1])}") - #elif opcode == 0x41: self.write_line(f"{self.var(argv[0])} #&= {argv[1]:X})") - #elif opcode == 0x42: self.write_line(f"{self.var(argv[0])} #|= {argv[1]:X})") + elif opcode == 0x41: self.write_line(f"{self.var(argv[0])} &=c {argv[1]:X}") + elif opcode == 0x42: self.write_line(f"{self.var(argv[0])} |=c {argv[1]:X}") elif opcode == 0x43: argv_str = ", ".join(self.var(arg) for arg in argv[1:]) self.write_line(f"{self.addr_ref(argv[0])}({argv_str})") From c794134d08d4584ccc7cc739a045554aae1e1074 Mon Sep 17 00:00:00 2001 From: Alex Bates <16batesa@gmail.com> Date: Sun, 8 Nov 2020 15:45:15 +0000 Subject: [PATCH 12/52] allow user-controlled label allocation Required to match some scripts --- tools/compile_dsl_macros.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/tools/compile_dsl_macros.py b/tools/compile_dsl_macros.py index 1355e6107f..fd3722c74e 100755 --- a/tools/compile_dsl_macros.py +++ b/tools/compile_dsl_macros.py @@ -154,7 +154,7 @@ class BaseCmd(): self.context.insert(0, ctx) # must be overloaded - def opcode(): + def opcode(self): raise Exception() def to_bytecode(self): @@ -242,11 +242,19 @@ class LabelAllocation(Visitor): self.labels = [] def label_decl(self, tree): - # TODO: int labels name = tree.children[0].children[0] if name in self.labels: raise CompileError(f"label `{name}' already declared", tree.meta) - self.labels.append(name) + + try: + label_idx = int(name, base=0) + + while len(self.labels) < label_idx: + self.labels.append(None) + + self.labels.insert(label_idx, name) + except ValueError: + self.labels.append(name) def gen_label(self): self.labels.append("$generated") @@ -546,7 +554,7 @@ class Compile(Transformer): } def label_decl(self, tree): - if len(tree.children) == 0: + if len(tree.children) == 1: label = tree.children[0] return Cmd(0x03, label, meta=tree.meta) else: From 680cead360d84a2c9b93941500769e11a736ad7c Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sun, 8 Nov 2020 13:39:23 -0500 Subject: [PATCH 13/52] gAnimatedMeshesPtr --- .../AddAnimModelPosition.s | 4 +- .../ChangeModelAnimation.s | 4 +- .../GetAnimModelPosition.s | 4 +- .../code_ef070_len_3400/LoadModelAnimation.s | 4 +- .../code_ef070_len_3400/PlayModelAnimation.s | 4 +- .../SetAnimModelPosition.s | 4 +- .../SetAnimModelRotation.s | 4 +- .../code_ef070_len_3400/SetAnimModelScale.s | 4 +- .../code_ef070_len_3400/draw_anim_models.s | 4 +- .../code_ef070_len_3400/func_802CA988.s | 105 ------------------ .../code_ef070_len_3400/func_802CCAC0.s | 4 +- .../code_ef070_len_3400/func_802CCCB0.s | 4 +- .../code_ef070_len_3400/func_802CCDAC.s | 4 +- .../code_ef070_len_3400/func_802CCEDC.s | 4 +- .../code_ef070_len_3400/func_802CD348.s | 4 +- .../code_ef070_len_3400/func_802CD3C0.s | 4 +- .../code_ef070_len_3400/func_802CD418.s | 4 +- .../code_ef070_len_3400/func_802CD4B4.s | 12 +- .../code_ef070_len_3400/func_802CD57C.s | 8 +- .../code_ef070_len_3400/func_802CD5C0.s | 4 +- .../code_ef070_len_3400/func_802CD6E0.s | 4 +- .../code_ef070_len_3400/func_802CD7D8.s | 4 +- .../code_ef070_len_3400/func_802CD8F8.s | 4 +- .../code_ef070_len_3400/func_802CD9F0.s | 4 +- include/variables.h | 1 + src/code_ED510.c | 4 +- src/code_ef070_len_3400.c | 17 ++- tools/symbol_addrs.txt | 1 + undefined_syms.txt | 1 + 29 files changed, 63 insertions(+), 170 deletions(-) delete mode 100644 asm/nonmatchings/code_ef070_len_3400/func_802CA988.s diff --git a/asm/nonmatchings/code_ef070_len_3400/AddAnimModelPosition.s b/asm/nonmatchings/code_ef070_len_3400/AddAnimModelPosition.s index b3b3c73154..0ac33d097c 100644 --- a/asm/nonmatchings/code_ef070_len_3400/AddAnimModelPosition.s +++ b/asm/nonmatchings/code_ef070_len_3400/AddAnimModelPosition.s @@ -28,8 +28,8 @@ glabel AddAnimModelPosition /* F1B38 802CD188 8E050000 */ lw $a1, ($s0) /* F1B3C 802CD18C 0C0B210B */ jal get_float_variable /* F1B40 802CD190 46000506 */ mov.s $f20, $f0 -/* F1B44 802CD194 3C02802E */ lui $v0, 0x802e -/* F1B48 802CD198 8C42AE30 */ lw $v0, -0x51d0($v0) +/* F1B44 802CD194 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) +/* F1B48 802CD198 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) /* F1B4C 802CD19C 00118880 */ sll $s1, $s1, 2 /* F1B50 802CD1A0 02228821 */ addu $s1, $s1, $v0 /* F1B54 802CD1A4 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/ChangeModelAnimation.s b/asm/nonmatchings/code_ef070_len_3400/ChangeModelAnimation.s index 0f3cc62d3c..506cfc35ec 100644 --- a/asm/nonmatchings/code_ef070_len_3400/ChangeModelAnimation.s +++ b/asm/nonmatchings/code_ef070_len_3400/ChangeModelAnimation.s @@ -15,8 +15,8 @@ glabel ChangeModelAnimation /* F1944 802CCF94 8E050000 */ lw $a1, ($s0) /* F1948 802CCF98 0C0B1EAF */ jal get_variable /* F194C 802CCF9C 0040802D */ daddu $s0, $v0, $zero -/* F1950 802CCFA0 3C03802E */ lui $v1, 0x802e -/* F1954 802CCFA4 8C63AE30 */ lw $v1, -0x51d0($v1) +/* F1950 802CCFA0 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) +/* F1954 802CCFA4 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) /* F1958 802CCFA8 00108080 */ sll $s0, $s0, 2 /* F195C 802CCFAC 02038021 */ addu $s0, $s0, $v1 /* F1960 802CCFB0 8E100000 */ lw $s0, ($s0) diff --git a/asm/nonmatchings/code_ef070_len_3400/GetAnimModelPosition.s b/asm/nonmatchings/code_ef070_len_3400/GetAnimModelPosition.s index 8bce268b25..ca442837e9 100644 --- a/asm/nonmatchings/code_ef070_len_3400/GetAnimModelPosition.s +++ b/asm/nonmatchings/code_ef070_len_3400/GetAnimModelPosition.s @@ -15,8 +15,8 @@ glabel GetAnimModelPosition /* F1A68 802CD0B8 26100004 */ addiu $s0, $s0, 4 /* F1A6C 802CD0BC 8E050000 */ lw $a1, ($s0) /* F1A70 802CD0C0 26100004 */ addiu $s0, $s0, 4 -/* F1A74 802CD0C4 3C03802E */ lui $v1, 0x802e -/* F1A78 802CD0C8 8C63AE30 */ lw $v1, -0x51d0($v1) +/* F1A74 802CD0C4 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) +/* F1A78 802CD0C8 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) /* F1A7C 802CD0CC 00021080 */ sll $v0, $v0, 2 /* F1A80 802CD0D0 00431021 */ addu $v0, $v0, $v1 /* F1A84 802CD0D4 8C510000 */ lw $s1, ($v0) diff --git a/asm/nonmatchings/code_ef070_len_3400/LoadModelAnimation.s b/asm/nonmatchings/code_ef070_len_3400/LoadModelAnimation.s index 5b04945c29..8dfce044bb 100644 --- a/asm/nonmatchings/code_ef070_len_3400/LoadModelAnimation.s +++ b/asm/nonmatchings/code_ef070_len_3400/LoadModelAnimation.s @@ -17,8 +17,8 @@ glabel LoadModelAnimation /* F16CC 802CCD1C 0C0B1EAF */ jal get_variable /* F16D0 802CCD20 0040802D */ daddu $s0, $v0, $zero /* F16D4 802CCD24 0040902D */ daddu $s2, $v0, $zero -/* F16D8 802CCD28 3C02802E */ lui $v0, 0x802e -/* F16DC 802CCD2C 8C42AE30 */ lw $v0, -0x51d0($v0) +/* F16D8 802CCD28 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) +/* F16DC 802CCD2C 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) /* F16E0 802CCD30 00108080 */ sll $s0, $s0, 2 /* F16E4 802CCD34 02028021 */ addu $s0, $s0, $v0 /* F16E8 802CCD38 8E100000 */ lw $s0, ($s0) diff --git a/asm/nonmatchings/code_ef070_len_3400/PlayModelAnimation.s b/asm/nonmatchings/code_ef070_len_3400/PlayModelAnimation.s index 43da86fe35..689c4fce49 100644 --- a/asm/nonmatchings/code_ef070_len_3400/PlayModelAnimation.s +++ b/asm/nonmatchings/code_ef070_len_3400/PlayModelAnimation.s @@ -15,8 +15,8 @@ glabel PlayModelAnimation /* F1844 802CCE94 8E050000 */ lw $a1, ($s0) /* F1848 802CCE98 0C0B1EAF */ jal get_variable /* F184C 802CCE9C 0040802D */ daddu $s0, $v0, $zero -/* F1850 802CCEA0 3C03802E */ lui $v1, 0x802e -/* F1854 802CCEA4 8C63AE30 */ lw $v1, -0x51d0($v1) +/* F1850 802CCEA0 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) +/* F1854 802CCEA4 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) /* F1858 802CCEA8 00108080 */ sll $s0, $s0, 2 /* F185C 802CCEAC 02038021 */ addu $s0, $s0, $v1 /* F1860 802CCEB0 8E030000 */ lw $v1, ($s0) diff --git a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelPosition.s b/asm/nonmatchings/code_ef070_len_3400/SetAnimModelPosition.s index 555a2456d2..f4c9789ee1 100644 --- a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelPosition.s +++ b/asm/nonmatchings/code_ef070_len_3400/SetAnimModelPosition.s @@ -28,8 +28,8 @@ glabel SetAnimModelPosition /* F19F0 802CD040 8E050000 */ lw $a1, ($s0) /* F19F4 802CD044 0C0B210B */ jal get_float_variable /* F19F8 802CD048 46000506 */ mov.s $f20, $f0 -/* F19FC 802CD04C 3C02802E */ lui $v0, 0x802e -/* F1A00 802CD050 8C42AE30 */ lw $v0, -0x51d0($v0) +/* F19FC 802CD04C 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) +/* F1A00 802CD050 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) /* F1A04 802CD054 00118880 */ sll $s1, $s1, 2 /* F1A08 802CD058 02228821 */ addu $s1, $s1, $v0 /* F1A0C 802CD05C 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelRotation.s b/asm/nonmatchings/code_ef070_len_3400/SetAnimModelRotation.s index 18827ada1e..515d4a83a5 100644 --- a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelRotation.s +++ b/asm/nonmatchings/code_ef070_len_3400/SetAnimModelRotation.s @@ -28,8 +28,8 @@ glabel SetAnimModelRotation /* F1BFC 802CD24C 8E050000 */ lw $a1, ($s0) /* F1C00 802CD250 0C0B210B */ jal get_float_variable /* F1C04 802CD254 46000506 */ mov.s $f20, $f0 -/* F1C08 802CD258 3C02802E */ lui $v0, 0x802e -/* F1C0C 802CD25C 8C42AE30 */ lw $v0, -0x51d0($v0) +/* F1C08 802CD258 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) +/* F1C0C 802CD25C 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) /* F1C10 802CD260 00118880 */ sll $s1, $s1, 2 /* F1C14 802CD264 02228821 */ addu $s1, $s1, $v0 /* F1C18 802CD268 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelScale.s b/asm/nonmatchings/code_ef070_len_3400/SetAnimModelScale.s index b0d82161d0..d344d5709f 100644 --- a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelScale.s +++ b/asm/nonmatchings/code_ef070_len_3400/SetAnimModelScale.s @@ -28,8 +28,8 @@ glabel SetAnimModelScale /* F1CA8 802CD2F8 8E050000 */ lw $a1, ($s0) /* F1CAC 802CD2FC 0C0B210B */ jal get_float_variable /* F1CB0 802CD300 46000506 */ mov.s $f20, $f0 -/* F1CB4 802CD304 3C02802E */ lui $v0, 0x802e -/* F1CB8 802CD308 8C42AE30 */ lw $v0, -0x51d0($v0) +/* F1CB4 802CD304 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) +/* F1CB8 802CD308 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) /* F1CBC 802CD30C 00118880 */ sll $s1, $s1, 2 /* F1CC0 802CD310 02228821 */ addu $s1, $s1, $v0 /* F1CC4 802CD314 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/draw_anim_models.s b/asm/nonmatchings/code_ef070_len_3400/draw_anim_models.s index ffdc2de8a0..bfe5be11ce 100644 --- a/asm/nonmatchings/code_ef070_len_3400/draw_anim_models.s +++ b/asm/nonmatchings/code_ef070_len_3400/draw_anim_models.s @@ -28,8 +28,8 @@ glabel draw_anim_models /* F1524 802CCB74 AFB00220 */ sw $s0, 0x220($sp) /* F1528 802CCB78 AFA80218 */ sw $t0, 0x218($sp) .L802CCB7C: -/* F152C 802CCB7C 3C02802E */ lui $v0, 0x802e -/* F1530 802CCB80 8C42AE30 */ lw $v0, -0x51d0($v0) +/* F152C 802CCB7C 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) +/* F1530 802CCB80 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) /* F1534 802CCB84 00131880 */ sll $v1, $s3, 2 /* F1538 802CCB88 00621821 */ addu $v1, $v1, $v0 /* F153C 802CCB8C 8C710000 */ lw $s1, ($v1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CA988.s b/asm/nonmatchings/code_ef070_len_3400/func_802CA988.s deleted file mode 100644 index 359ea0efd3..0000000000 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CA988.s +++ /dev/null @@ -1,105 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802CA988 -/* EF338 802CA988 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* EF33C 802CA98C AFB20018 */ sw $s2, 0x18($sp) -/* EF340 802CA990 0080902D */ daddu $s2, $a0, $zero -/* EF344 802CA994 AFBF0028 */ sw $ra, 0x28($sp) -/* EF348 802CA998 AFB50024 */ sw $s5, 0x24($sp) -/* EF34C 802CA99C AFB40020 */ sw $s4, 0x20($sp) -/* EF350 802CA9A0 AFB3001C */ sw $s3, 0x1c($sp) -/* EF354 802CA9A4 AFB10014 */ sw $s1, 0x14($sp) -/* EF358 802CA9A8 AFB00010 */ sw $s0, 0x10($sp) -/* EF35C 802CA9AC 8E50000C */ lw $s0, 0xc($s2) -/* EF360 802CA9B0 8E050000 */ lw $a1, ($s0) -/* EF364 802CA9B4 0C0B1EAF */ jal get_variable -/* EF368 802CA9B8 26100004 */ addiu $s0, $s0, 4 -/* EF36C 802CA9BC 8E140000 */ lw $s4, ($s0) -/* EF370 802CA9C0 26100004 */ addiu $s0, $s0, 4 -/* EF374 802CA9C4 8E150000 */ lw $s5, ($s0) -/* EF378 802CA9C8 26100004 */ addiu $s0, $s0, 4 -/* EF37C 802CA9CC 3C04800B */ lui $a0, %hi(gCameras) -/* EF380 802CA9D0 24841D80 */ addiu $a0, $a0, %lo(gCameras) -/* EF384 802CA9D4 00021880 */ sll $v1, $v0, 2 -/* EF388 802CA9D8 00621821 */ addu $v1, $v1, $v0 -/* EF38C 802CA9DC 00031880 */ sll $v1, $v1, 2 -/* EF390 802CA9E0 00621823 */ subu $v1, $v1, $v0 -/* EF394 802CA9E4 000310C0 */ sll $v0, $v1, 3 -/* EF398 802CA9E8 00621821 */ addu $v1, $v1, $v0 -/* EF39C 802CA9EC 000318C0 */ sll $v1, $v1, 3 -/* EF3A0 802CA9F0 00648821 */ addu $s1, $v1, $a0 -/* EF3A4 802CA9F4 C62C0094 */ lwc1 $f12, 0x94($s1) -/* EF3A8 802CA9F8 8E130000 */ lw $s3, ($s0) -/* EF3AC 802CA9FC 8E100004 */ lw $s0, 4($s0) -/* EF3B0 802CAA00 24020002 */ addiu $v0, $zero, 2 -/* EF3B4 802CAA04 A6220004 */ sh $v0, 4($s1) -/* EF3B8 802CAA08 0C00A6B1 */ jal round -/* EF3BC 802CAA0C A6200006 */ sh $zero, 6($s1) -/* EF3C0 802CAA10 C6220048 */ lwc1 $f2, 0x48($s1) -/* EF3C4 802CAA14 C620003C */ lwc1 $f0, 0x3c($s1) -/* EF3C8 802CAA18 46001081 */ sub.s $f2, $f2, $f0 -/* EF3CC 802CAA1C 46021082 */ mul.s $f2, $f2, $f2 -/* EF3D0 802CAA20 00000000 */ nop -/* EF3D4 802CAA24 C624004C */ lwc1 $f4, 0x4c($s1) -/* EF3D8 802CAA28 C6200040 */ lwc1 $f0, 0x40($s1) -/* EF3DC 802CAA2C 46002101 */ sub.s $f4, $f4, $f0 -/* EF3E0 802CAA30 46042102 */ mul.s $f4, $f4, $f4 -/* EF3E4 802CAA34 00000000 */ nop -/* EF3E8 802CAA38 C6260050 */ lwc1 $f6, 0x50($s1) -/* EF3EC 802CAA3C C6200044 */ lwc1 $f0, 0x44($s1) -/* EF3F0 802CAA40 46003181 */ sub.s $f6, $f6, $f0 -/* EF3F4 802CAA44 46063182 */ mul.s $f6, $f6, $f6 -/* EF3F8 802CAA48 00000000 */ nop -/* EF3FC 802CAA4C C6200090 */ lwc1 $f0, 0x90($s1) -/* EF400 802CAA50 46041080 */ add.s $f2, $f2, $f4 -/* EF404 802CAA54 00021023 */ negu $v0, $v0 -/* EF408 802CAA58 A622001C */ sh $v0, 0x1c($s1) -/* EF40C 802CAA5C 46000007 */ neg.s $f0, $f0 -/* EF410 802CAA60 46061300 */ add.s $f12, $f2, $f6 -/* EF414 802CAA64 4600020D */ trunc.w.s $f8, $f0 -/* EF418 802CAA68 44024000 */ mfc1 $v0, $f8 -/* EF41C 802CAA6C 46006004 */ sqrt.s $f0, $f12 -/* EF420 802CAA70 46000032 */ c.eq.s $f0, $f0 -/* EF424 802CAA74 00000000 */ nop -/* EF428 802CAA78 45010003 */ bc1t .L802CAA88 -/* EF42C 802CAA7C A622001E */ sh $v0, 0x1e($s1) -/* EF430 802CAA80 0C0187BC */ jal sqrtf -/* EF434 802CAA84 00000000 */ nop -.L802CAA88: -/* EF438 802CAA88 0C00A6B1 */ jal round -/* EF43C 802CAA8C 46000306 */ mov.s $f12, $f0 -/* EF440 802CAA90 0240202D */ daddu $a0, $s2, $zero -/* EF444 802CAA94 8626001C */ lh $a2, 0x1c($s1) -/* EF448 802CAA98 C6200048 */ lwc1 $f0, 0x48($s1) -/* EF44C 802CAA9C C622004C */ lwc1 $f2, 0x4c($s1) -/* EF450 802CAAA0 C6240050 */ lwc1 $f4, 0x50($s1) -/* EF454 802CAAA4 0280282D */ daddu $a1, $s4, $zero -/* EF458 802CAAA8 A6220020 */ sh $v0, 0x20($s1) -/* EF45C 802CAAAC A6200022 */ sh $zero, 0x22($s1) -/* EF460 802CAAB0 E6200054 */ swc1 $f0, 0x54($s1) -/* EF464 802CAAB4 E6220058 */ swc1 $f2, 0x58($s1) -/* EF468 802CAAB8 0C0B2026 */ jal set_variable -/* EF46C 802CAABC E624005C */ swc1 $f4, 0x5c($s1) -/* EF470 802CAAC0 0240202D */ daddu $a0, $s2, $zero -/* EF474 802CAAC4 8626001E */ lh $a2, 0x1e($s1) -/* EF478 802CAAC8 0C0B2026 */ jal set_variable -/* EF47C 802CAACC 02A0282D */ daddu $a1, $s5, $zero -/* EF480 802CAAD0 0240202D */ daddu $a0, $s2, $zero -/* EF484 802CAAD4 86260020 */ lh $a2, 0x20($s1) -/* EF488 802CAAD8 0C0B2026 */ jal set_variable -/* EF48C 802CAADC 0260282D */ daddu $a1, $s3, $zero -/* EF490 802CAAE0 0240202D */ daddu $a0, $s2, $zero -/* EF494 802CAAE4 86260022 */ lh $a2, 0x22($s1) -/* EF498 802CAAE8 0C0B2026 */ jal set_variable -/* EF49C 802CAAEC 0200282D */ daddu $a1, $s0, $zero -/* EF4A0 802CAAF0 8FBF0028 */ lw $ra, 0x28($sp) -/* EF4A4 802CAAF4 8FB50024 */ lw $s5, 0x24($sp) -/* EF4A8 802CAAF8 8FB40020 */ lw $s4, 0x20($sp) -/* EF4AC 802CAAFC 8FB3001C */ lw $s3, 0x1c($sp) -/* EF4B0 802CAB00 8FB20018 */ lw $s2, 0x18($sp) -/* EF4B4 802CAB04 8FB10014 */ lw $s1, 0x14($sp) -/* EF4B8 802CAB08 8FB00010 */ lw $s0, 0x10($sp) -/* EF4BC 802CAB0C 24020002 */ addiu $v0, $zero, 2 -/* EF4C0 802CAB10 03E00008 */ jr $ra -/* EF4C4 802CAB14 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CCAC0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CCAC0.s index d1db5a17bb..415a1da8fb 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CCAC0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CCAC0.s @@ -7,8 +7,8 @@ glabel func_802CCAC0 /* F1478 802CCAC8 0000802D */ daddu $s0, $zero, $zero /* F147C 802CCACC AFBF0014 */ sw $ra, 0x14($sp) .L802CCAD0: -/* F1480 802CCAD0 3C03802E */ lui $v1, 0x802e -/* F1484 802CCAD4 8C63AE30 */ lw $v1, -0x51d0($v1) +/* F1480 802CCAD0 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) +/* F1484 802CCAD4 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) /* F1488 802CCAD8 00101080 */ sll $v0, $s0, 2 /* F148C 802CCADC 00431021 */ addu $v0, $v0, $v1 /* F1490 802CCAE0 8C420000 */ lw $v0, ($v0) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CCCB0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CCCB0.s index f00a0d1c95..843e352f97 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CCCB0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CCCB0.s @@ -15,7 +15,7 @@ glabel func_802CCCB0 /* F1684 802CCCD4 3C02802E */ lui $v0, 0x802e /* F1688 802CCCD8 2442ADB0 */ addiu $v0, $v0, -0x5250 .L802CCCDC: -/* F168C 802CCCDC 3C01802E */ lui $at, 0x802e -/* F1690 802CCCE0 AC22AE30 */ sw $v0, -0x51d0($at) +/* F168C 802CCCDC 3C01802E */ lui $at, %hi(gAnimatedMeshesPtr) +/* F1690 802CCCE0 AC22AE30 */ sw $v0, %lo(gAnimatedMeshesPtr)($at) /* F1694 802CCCE4 03E00008 */ jr $ra /* F1698 802CCCE8 24020002 */ addiu $v0, $zero, 2 diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CCDAC.s b/asm/nonmatchings/code_ef070_len_3400/func_802CCDAC.s index a9adf9aae4..190f75001e 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CCDAC.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CCDAC.s @@ -17,8 +17,8 @@ glabel func_802CCDAC /* F178C 802CCDDC 0C0B1EAF */ jal get_variable /* F1790 802CCDE0 0040802D */ daddu $s0, $v0, $zero /* F1794 802CCDE4 0040902D */ daddu $s2, $v0, $zero -/* F1798 802CCDE8 3C02802E */ lui $v0, 0x802e -/* F179C 802CCDEC 8C42AE30 */ lw $v0, -0x51d0($v0) +/* F1798 802CCDE8 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) +/* F179C 802CCDEC 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) /* F17A0 802CCDF0 00108080 */ sll $s0, $s0, 2 /* F17A4 802CCDF4 02028021 */ addu $s0, $s0, $v0 /* F17A8 802CCDF8 8E100000 */ lw $s0, ($s0) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CCEDC.s b/asm/nonmatchings/code_ef070_len_3400/func_802CCEDC.s index 97776038fc..3ad5040621 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CCEDC.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CCEDC.s @@ -21,8 +21,8 @@ glabel func_802CCEDC /* F18CC 802CCF1C 8E050000 */ lw $a1, ($s0) /* F18D0 802CCF20 0C0B1EAF */ jal get_variable /* F18D4 802CCF24 0040802D */ daddu $s0, $v0, $zero -/* F18D8 802CCF28 3C03802E */ lui $v1, 0x802e -/* F18DC 802CCF2C 8C63AE30 */ lw $v1, -0x51d0($v1) +/* F18D8 802CCF28 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) +/* F18DC 802CCF2C 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) /* F18E0 802CCF30 00118880 */ sll $s1, $s1, 2 /* F18E4 802CCF34 02238821 */ addu $s1, $s1, $v1 /* F18E8 802CCF38 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD348.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD348.s index d1933ca720..5de604dcfb 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD348.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD348.s @@ -15,8 +15,8 @@ glabel func_802CD348 /* F1D20 802CD370 8E050000 */ lw $a1, ($s0) /* F1D24 802CD374 0C0B210B */ jal get_float_variable /* F1D28 802CD378 0040802D */ daddu $s0, $v0, $zero -/* F1D2C 802CD37C 3C02802E */ lui $v0, 0x802e -/* F1D30 802CD380 8C42AE30 */ lw $v0, -0x51d0($v0) +/* F1D2C 802CD37C 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) +/* F1D30 802CD380 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) /* F1D34 802CD384 00108080 */ sll $s0, $s0, 2 /* F1D38 802CD388 02028021 */ addu $s0, $s0, $v0 /* F1D3C 802CD38C 8E020000 */ lw $v0, ($s0) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD3C0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD3C0.s index b7ccfc4097..99c9f226a4 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD3C0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD3C0.s @@ -8,8 +8,8 @@ glabel func_802CD3C0 /* F1D7C 802CD3CC 8C82000C */ lw $v0, 0xc($a0) /* F1D80 802CD3D0 0C0B1EAF */ jal get_variable /* F1D84 802CD3D4 8C450000 */ lw $a1, ($v0) -/* F1D88 802CD3D8 3C03802E */ lui $v1, 0x802e -/* F1D8C 802CD3DC 8C63AE30 */ lw $v1, -0x51d0($v1) +/* F1D88 802CD3D8 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) +/* F1D8C 802CD3DC 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) /* F1D90 802CD3E0 00021080 */ sll $v0, $v0, 2 /* F1D94 802CD3E4 00431021 */ addu $v0, $v0, $v1 /* F1D98 802CD3E8 8C500000 */ lw $s0, ($v0) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD418.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD418.s index 98299832db..6b7ec0c39a 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD418.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD418.s @@ -17,8 +17,8 @@ glabel func_802CD418 /* F1DF8 802CD448 8E120000 */ lw $s2, ($s0) /* F1DFC 802CD44C 0C0B1EAF */ jal get_variable /* F1E00 802CD450 0040882D */ daddu $s1, $v0, $zero -/* F1E04 802CD454 3C03802E */ lui $v1, 0x802e -/* F1E08 802CD458 8C63AE30 */ lw $v1, -0x51d0($v1) +/* F1E04 802CD454 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) +/* F1E08 802CD458 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) /* F1E0C 802CD45C 00118880 */ sll $s1, $s1, 2 /* F1E10 802CD460 02238821 */ addu $s1, $s1, $v1 /* F1E14 802CD464 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD4B4.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD4B4.s index c06a97357c..17fac9a61d 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD4B4.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD4B4.s @@ -20,16 +20,16 @@ glabel func_802CD4B4 /* F1E9C 802CD4EC 3C02802E */ lui $v0, 0x802e /* F1EA0 802CD4F0 2442ADB0 */ addiu $v0, $v0, -0x5250 .L802CD4F4: -/* F1EA4 802CD4F4 3C01802E */ lui $at, 0x802e -/* F1EA8 802CD4F8 AC22AE30 */ sw $v0, -0x51d0($at) +/* F1EA4 802CD4F4 3C01802E */ lui $at, %hi(gAnimatedMeshesPtr) +/* F1EA8 802CD4F8 AC22AE30 */ sw $v0, %lo(gAnimatedMeshesPtr)($at) /* F1EAC 802CD4FC 0000882D */ daddu $s1, $zero, $zero /* F1EB0 802CD500 2412FFFF */ addiu $s2, $zero, -1 /* F1EB4 802CD504 0220802D */ daddu $s0, $s1, $zero .L802CD508: /* F1EB8 802CD508 0C00AB39 */ jal heap_malloc /* F1EBC 802CD50C 24040070 */ addiu $a0, $zero, 0x70 -/* F1EC0 802CD510 3C03802E */ lui $v1, 0x802e -/* F1EC4 802CD514 8C63AE30 */ lw $v1, -0x51d0($v1) +/* F1EC0 802CD510 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) +/* F1EC4 802CD514 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) /* F1EC8 802CD518 02031821 */ addu $v1, $s0, $v1 /* F1ECC 802CD51C 14400003 */ bnez $v0, .L802CD52C /* F1ED0 802CD520 AC620000 */ sw $v0, ($v1) @@ -37,8 +37,8 @@ glabel func_802CD4B4 /* F1ED4 802CD524 080B3549 */ j .L802CD524 /* F1ED8 802CD528 00000000 */ nop .L802CD52C: -/* F1EDC 802CD52C 3C02802E */ lui $v0, 0x802e -/* F1EE0 802CD530 8C42AE30 */ lw $v0, -0x51d0($v0) +/* F1EDC 802CD52C 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) +/* F1EE0 802CD530 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) /* F1EE4 802CD534 26310001 */ addiu $s1, $s1, 1 /* F1EE8 802CD538 02021021 */ addu $v0, $s0, $v0 /* F1EEC 802CD53C 8C420000 */ lw $v0, ($v0) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD57C.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD57C.s index cdfdf8596f..f7a235528e 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD57C.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD57C.s @@ -9,14 +9,14 @@ glabel func_802CD57C /* F1F3C 802CD58C 00000000 */ nop /* F1F40 802CD590 3C02802E */ lui $v0, 0x802e /* F1F44 802CD594 2442ADF0 */ addiu $v0, $v0, -0x5210 -/* F1F48 802CD598 3C01802E */ lui $at, 0x802e -/* F1F4C 802CD59C AC22AE30 */ sw $v0, -0x51d0($at) +/* F1F48 802CD598 3C01802E */ lui $at, %hi(gAnimatedMeshesPtr) +/* F1F4C 802CD59C AC22AE30 */ sw $v0, %lo(gAnimatedMeshesPtr)($at) /* F1F50 802CD5A0 03E00008 */ jr $ra /* F1F54 802CD5A4 00000000 */ nop .L802CD5A8: /* F1F58 802CD5A8 3C02802E */ lui $v0, 0x802e /* F1F5C 802CD5AC 2442ADB0 */ addiu $v0, $v0, -0x5250 -/* F1F60 802CD5B0 3C01802E */ lui $at, 0x802e -/* F1F64 802CD5B4 AC22AE30 */ sw $v0, -0x51d0($at) +/* F1F60 802CD5B0 3C01802E */ lui $at, %hi(gAnimatedMeshesPtr) +/* F1F64 802CD5B4 AC22AE30 */ sw $v0, %lo(gAnimatedMeshesPtr)($at) /* F1F68 802CD5B8 03E00008 */ jr $ra /* F1F6C 802CD5BC 00000000 */ nop diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD5C0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD5C0.s index 72d6462d46..85b1d66239 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD5C0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD5C0.s @@ -23,8 +23,8 @@ glabel func_802CD5C0 /* F1FB8 802CD608 00118880 */ sll $s1, $s1, 2 /* F1FBC 802CD60C 8E140000 */ lw $s4, ($s0) /* F1FC0 802CD610 26100004 */ addiu $s0, $s0, 4 -/* F1FC4 802CD614 3C03802E */ lui $v1, 0x802e -/* F1FC8 802CD618 8C63AE30 */ lw $v1, -0x51d0($v1) +/* F1FC4 802CD614 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) +/* F1FC8 802CD618 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) /* F1FCC 802CD61C 8E150000 */ lw $s5, ($s0) /* F1FD0 802CD620 02238821 */ addu $s1, $s1, $v1 /* F1FD4 802CD624 8E330000 */ lw $s3, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD6E0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD6E0.s index f4abed9e66..6f0d7dca0f 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD6E0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD6E0.s @@ -23,8 +23,8 @@ glabel func_802CD6E0 /* F20D8 802CD728 00118880 */ sll $s1, $s1, 2 /* F20DC 802CD72C 8E130000 */ lw $s3, ($s0) /* F20E0 802CD730 26100004 */ addiu $s0, $s0, 4 -/* F20E4 802CD734 3C03802E */ lui $v1, 0x802e -/* F20E8 802CD738 8C63AE30 */ lw $v1, -0x51d0($v1) +/* F20E4 802CD734 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) +/* F20E8 802CD738 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) /* F20EC 802CD73C 8E140000 */ lw $s4, ($s0) /* F20F0 802CD740 02238821 */ addu $s1, $s1, $v1 /* F20F4 802CD744 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD7D8.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD7D8.s index 740e3a17aa..631537bc1c 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD7D8.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD7D8.s @@ -23,8 +23,8 @@ glabel func_802CD7D8 /* F21D0 802CD820 00118880 */ sll $s1, $s1, 2 /* F21D4 802CD824 8E140000 */ lw $s4, ($s0) /* F21D8 802CD828 26100004 */ addiu $s0, $s0, 4 -/* F21DC 802CD82C 3C03802E */ lui $v1, 0x802e -/* F21E0 802CD830 8C63AE30 */ lw $v1, -0x51d0($v1) +/* F21DC 802CD82C 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) +/* F21E0 802CD830 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) /* F21E4 802CD834 8E150000 */ lw $s5, ($s0) /* F21E8 802CD838 02238821 */ addu $s1, $s1, $v1 /* F21EC 802CD83C 8E330000 */ lw $s3, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD8F8.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD8F8.s index d0293261a4..575f1f4f91 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD8F8.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD8F8.s @@ -23,8 +23,8 @@ glabel func_802CD8F8 /* F22F0 802CD940 00118880 */ sll $s1, $s1, 2 /* F22F4 802CD944 8E130000 */ lw $s3, ($s0) /* F22F8 802CD948 26100004 */ addiu $s0, $s0, 4 -/* F22FC 802CD94C 3C03802E */ lui $v1, 0x802e -/* F2300 802CD950 8C63AE30 */ lw $v1, -0x51d0($v1) +/* F22FC 802CD94C 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) +/* F2300 802CD950 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) /* F2304 802CD954 8E140000 */ lw $s4, ($s0) /* F2308 802CD958 02238821 */ addu $s1, $s1, $v1 /* F230C 802CD95C 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s index 29f3168982..a1dd7b41ef 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s @@ -23,8 +23,8 @@ glabel func_802CD9F0 /* F23E8 802CDA38 8E130000 */ lw $s3, ($s0) /* F23EC 802CDA3C 0C0B1EAF */ jal get_variable /* F23F0 802CDA40 0040902D */ daddu $s2, $v0, $zero -/* F23F4 802CDA44 3C03802E */ lui $v1, 0x802e -/* F23F8 802CDA48 8C63AE30 */ lw $v1, -0x51d0($v1) +/* F23F4 802CDA44 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) +/* F23F8 802CDA48 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) /* F23FC 802CDA4C 00118880 */ sll $s1, $s1, 2 /* F2400 802CDA50 02238821 */ addu $s1, $s1, $v1 /* F2404 802CDA54 8E230000 */ lw $v1, ($s1) diff --git a/include/variables.h b/include/variables.h index 99f0f47f87..e18c758128 100644 --- a/include/variables.h +++ b/include/variables.h @@ -88,6 +88,7 @@ extern PrintContext* D_802DB268; // Animation related extern PartnerAnimations gPartnerAnimations[12]; +extern AnimatedModel** gAnimatedMeshesPtr; // Triggers extern s16 gTriggerCount; diff --git a/src/code_ED510.c b/src/code_ED510.c index 5e01933cf2..2d5371141c 100644 --- a/src/code_ED510.c +++ b/src/code_ED510.c @@ -325,9 +325,7 @@ INCLUDE_ASM(s32, "code_ED510", ResetFromLava, ScriptInstance* script, s32 isInit INCLUDE_ASM(s32, "code_ED510", func_802C9FD4); ApiStatus GetColliderCenter(ScriptInstance* script, s32 initialCall) { - f32 x; - f32 y; - f32 z; + f32 x, y, z; get_collider_center(get_variable(script, *script->ptrReadPos), &x, &y, &z); diff --git a/src/code_ef070_len_3400.c b/src/code_ef070_len_3400.c index c145c181f3..9f892bd319 100644 --- a/src/code_ef070_len_3400.c +++ b/src/code_ef070_len_3400.c @@ -57,15 +57,13 @@ ApiStatus func_802CA90C(ScriptInstance* script, s32 isInitialCall) { return ApiStatus_DONE2; } -INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CA988, ScriptInstance* script, s32 isInitialCall); -/* ApiStatus func_802CA988(ScriptInstance* script, s32 isInitialCall) { - Bytecode* ptrReadPos = script->ptrReadPos; - Bytecode id = get_variable(script, *ptrReadPos++); - Bytecode outVar1 = *ptrReadPos++; - Bytecode outVar2 = *ptrReadPos++; - Bytecode outVar3 = *ptrReadPos++; - Bytecode outVar4 = *ptrReadPos++; + Bytecode* args = script->ptrReadPos; + Bytecode id = get_variable(script, *args++); + Bytecode outVar1 = *args++; + Bytecode outVar2 = *args++; + Bytecode outVar3 = *args++; + Bytecode outVar4 = *args++; f32 temp1, temp2, temp3; CAM(id)->mode = 2; @@ -77,7 +75,7 @@ ApiStatus func_802CA988(ScriptInstance* script, s32 isInitialCall) { temp2 = CAM(id)->lookAt_obj.y - CAM(id)->lookAt_eye[1]; temp3 = CAM(id)->lookAt_obj.z - CAM(id)->lookAt_eye[2]; - CAM(id)->unk_20 = round(sqrtf((temp1 * temp1) + (temp2 * temp2) + (temp3 * temp3))); + CAM(id)->unk_20 = round(sqrtf(SQ(temp1) + SQ(temp2) + SQ(temp3))); CAM(id)->unk_22 = 0; CAM(id)->unk_54 = CAM(id)->lookAt_obj.x; CAM(id)->unk_58 = CAM(id)->lookAt_obj.y; @@ -89,7 +87,6 @@ ApiStatus func_802CA988(ScriptInstance* script, s32 isInitialCall) { set_variable(script, outVar4, CAM(id)->unk_22); return ApiStatus_DONE2; } -*/ ApiStatus SetCamViewport(ScriptInstance* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; diff --git a/tools/symbol_addrs.txt b/tools/symbol_addrs.txt index 8f95a5a907..d8d888cc08 100644 --- a/tools/symbol_addrs.txt +++ b/tools/symbol_addrs.txt @@ -1891,6 +1891,7 @@ gGlobalTimeSpace = 0x802D9CA8; ShakeCam1 = 0x802D9CB0; ShakeCamX = 0x802D9CE8; D_802D9D50 = 0x802D9D50; +gAnimatedMeshesPtr = 0x802DAE30; gWorldMapFlags = 0x802DBC70; // size:0xC gWorldMapVars = 0x802DBCA8; // size:0x40 gBattleMapVars = 0x802DBCE8; // size:0x40 diff --git a/undefined_syms.txt b/undefined_syms.txt index 05a40653d2..eb8954ce0c 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -229,6 +229,7 @@ gCurrentSaveFile = 0x800DACC0; gMapFlags = 0x802DA480; gMapVars = 0x802DA484; +gAnimatedMeshesPtr = 0x802DAE30; gEffectTable = 0x8007F214; From 9b26bd68ad1c79badce3acaf47fff2016c52fd2f Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sun, 8 Nov 2020 14:02:08 -0500 Subject: [PATCH 14/52] more syms --- .../AddAnimModelPosition.s | 4 +-- .../ChangeModelAnimation.s | 4 +-- .../GetAnimModelPosition.s | 4 +-- .../code_ef070_len_3400/LoadModelAnimation.s | 4 +-- .../code_ef070_len_3400/PlayModelAnimation.s | 4 +-- .../SetAnimModelPosition.s | 4 +-- .../SetAnimModelRotation.s | 4 +-- .../code_ef070_len_3400/SetAnimModelScale.s | 4 +-- .../code_ef070_len_3400/draw_anim_models.s | 4 +-- .../code_ef070_len_3400/func_802CCAC0.s | 4 +-- .../code_ef070_len_3400/func_802CCCB0.s | 12 ++++----- .../code_ef070_len_3400/func_802CCDAC.s | 4 +-- .../code_ef070_len_3400/func_802CCEDC.s | 4 +-- .../code_ef070_len_3400/func_802CD348.s | 4 +-- .../code_ef070_len_3400/func_802CD3C0.s | 26 ------------------- .../code_ef070_len_3400/func_802CD418.s | 4 +-- .../code_ef070_len_3400/func_802CD4B4.s | 20 +++++++------- .../code_ef070_len_3400/func_802CD57C.s | 16 ++++++------ .../code_ef070_len_3400/func_802CD5C0.s | 4 +-- .../code_ef070_len_3400/func_802CD6E0.s | 4 +-- .../code_ef070_len_3400/func_802CD7D8.s | 4 +-- .../code_ef070_len_3400/func_802CD8F8.s | 4 +-- .../code_ef070_len_3400/func_802CD9F0.s | 4 +-- include/variables.h | 4 ++- src/code_ef070_len_3400.c | 8 +++++- tools/symbol_addrs.txt | 4 ++- undefined_syms.txt | 5 +++- 27 files changed, 79 insertions(+), 92 deletions(-) delete mode 100644 asm/nonmatchings/code_ef070_len_3400/func_802CD3C0.s diff --git a/asm/nonmatchings/code_ef070_len_3400/AddAnimModelPosition.s b/asm/nonmatchings/code_ef070_len_3400/AddAnimModelPosition.s index 0ac33d097c..e15b9635a8 100644 --- a/asm/nonmatchings/code_ef070_len_3400/AddAnimModelPosition.s +++ b/asm/nonmatchings/code_ef070_len_3400/AddAnimModelPosition.s @@ -28,8 +28,8 @@ glabel AddAnimModelPosition /* F1B38 802CD188 8E050000 */ lw $a1, ($s0) /* F1B3C 802CD18C 0C0B210B */ jal get_float_variable /* F1B40 802CD190 46000506 */ mov.s $f20, $f0 -/* F1B44 802CD194 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) -/* F1B48 802CD198 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) +/* F1B44 802CD194 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) +/* F1B48 802CD198 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) /* F1B4C 802CD19C 00118880 */ sll $s1, $s1, 2 /* F1B50 802CD1A0 02228821 */ addu $s1, $s1, $v0 /* F1B54 802CD1A4 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/ChangeModelAnimation.s b/asm/nonmatchings/code_ef070_len_3400/ChangeModelAnimation.s index 506cfc35ec..95501cdc38 100644 --- a/asm/nonmatchings/code_ef070_len_3400/ChangeModelAnimation.s +++ b/asm/nonmatchings/code_ef070_len_3400/ChangeModelAnimation.s @@ -15,8 +15,8 @@ glabel ChangeModelAnimation /* F1944 802CCF94 8E050000 */ lw $a1, ($s0) /* F1948 802CCF98 0C0B1EAF */ jal get_variable /* F194C 802CCF9C 0040802D */ daddu $s0, $v0, $zero -/* F1950 802CCFA0 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) -/* F1954 802CCFA4 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) +/* F1950 802CCFA0 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) +/* F1954 802CCFA4 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) /* F1958 802CCFA8 00108080 */ sll $s0, $s0, 2 /* F195C 802CCFAC 02038021 */ addu $s0, $s0, $v1 /* F1960 802CCFB0 8E100000 */ lw $s0, ($s0) diff --git a/asm/nonmatchings/code_ef070_len_3400/GetAnimModelPosition.s b/asm/nonmatchings/code_ef070_len_3400/GetAnimModelPosition.s index ca442837e9..0e0531b8cb 100644 --- a/asm/nonmatchings/code_ef070_len_3400/GetAnimModelPosition.s +++ b/asm/nonmatchings/code_ef070_len_3400/GetAnimModelPosition.s @@ -15,8 +15,8 @@ glabel GetAnimModelPosition /* F1A68 802CD0B8 26100004 */ addiu $s0, $s0, 4 /* F1A6C 802CD0BC 8E050000 */ lw $a1, ($s0) /* F1A70 802CD0C0 26100004 */ addiu $s0, $s0, 4 -/* F1A74 802CD0C4 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) -/* F1A78 802CD0C8 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) +/* F1A74 802CD0C4 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) +/* F1A78 802CD0C8 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) /* F1A7C 802CD0CC 00021080 */ sll $v0, $v0, 2 /* F1A80 802CD0D0 00431021 */ addu $v0, $v0, $v1 /* F1A84 802CD0D4 8C510000 */ lw $s1, ($v0) diff --git a/asm/nonmatchings/code_ef070_len_3400/LoadModelAnimation.s b/asm/nonmatchings/code_ef070_len_3400/LoadModelAnimation.s index 8dfce044bb..e90ceb5086 100644 --- a/asm/nonmatchings/code_ef070_len_3400/LoadModelAnimation.s +++ b/asm/nonmatchings/code_ef070_len_3400/LoadModelAnimation.s @@ -17,8 +17,8 @@ glabel LoadModelAnimation /* F16CC 802CCD1C 0C0B1EAF */ jal get_variable /* F16D0 802CCD20 0040802D */ daddu $s0, $v0, $zero /* F16D4 802CCD24 0040902D */ daddu $s2, $v0, $zero -/* F16D8 802CCD28 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) -/* F16DC 802CCD2C 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) +/* F16D8 802CCD28 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) +/* F16DC 802CCD2C 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) /* F16E0 802CCD30 00108080 */ sll $s0, $s0, 2 /* F16E4 802CCD34 02028021 */ addu $s0, $s0, $v0 /* F16E8 802CCD38 8E100000 */ lw $s0, ($s0) diff --git a/asm/nonmatchings/code_ef070_len_3400/PlayModelAnimation.s b/asm/nonmatchings/code_ef070_len_3400/PlayModelAnimation.s index 689c4fce49..97ef37dc7d 100644 --- a/asm/nonmatchings/code_ef070_len_3400/PlayModelAnimation.s +++ b/asm/nonmatchings/code_ef070_len_3400/PlayModelAnimation.s @@ -15,8 +15,8 @@ glabel PlayModelAnimation /* F1844 802CCE94 8E050000 */ lw $a1, ($s0) /* F1848 802CCE98 0C0B1EAF */ jal get_variable /* F184C 802CCE9C 0040802D */ daddu $s0, $v0, $zero -/* F1850 802CCEA0 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) -/* F1854 802CCEA4 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) +/* F1850 802CCEA0 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) +/* F1854 802CCEA4 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) /* F1858 802CCEA8 00108080 */ sll $s0, $s0, 2 /* F185C 802CCEAC 02038021 */ addu $s0, $s0, $v1 /* F1860 802CCEB0 8E030000 */ lw $v1, ($s0) diff --git a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelPosition.s b/asm/nonmatchings/code_ef070_len_3400/SetAnimModelPosition.s index f4c9789ee1..97a00c7918 100644 --- a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelPosition.s +++ b/asm/nonmatchings/code_ef070_len_3400/SetAnimModelPosition.s @@ -28,8 +28,8 @@ glabel SetAnimModelPosition /* F19F0 802CD040 8E050000 */ lw $a1, ($s0) /* F19F4 802CD044 0C0B210B */ jal get_float_variable /* F19F8 802CD048 46000506 */ mov.s $f20, $f0 -/* F19FC 802CD04C 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) -/* F1A00 802CD050 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) +/* F19FC 802CD04C 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) +/* F1A00 802CD050 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) /* F1A04 802CD054 00118880 */ sll $s1, $s1, 2 /* F1A08 802CD058 02228821 */ addu $s1, $s1, $v0 /* F1A0C 802CD05C 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelRotation.s b/asm/nonmatchings/code_ef070_len_3400/SetAnimModelRotation.s index 515d4a83a5..30fe94eae5 100644 --- a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelRotation.s +++ b/asm/nonmatchings/code_ef070_len_3400/SetAnimModelRotation.s @@ -28,8 +28,8 @@ glabel SetAnimModelRotation /* F1BFC 802CD24C 8E050000 */ lw $a1, ($s0) /* F1C00 802CD250 0C0B210B */ jal get_float_variable /* F1C04 802CD254 46000506 */ mov.s $f20, $f0 -/* F1C08 802CD258 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) -/* F1C0C 802CD25C 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) +/* F1C08 802CD258 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) +/* F1C0C 802CD25C 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) /* F1C10 802CD260 00118880 */ sll $s1, $s1, 2 /* F1C14 802CD264 02228821 */ addu $s1, $s1, $v0 /* F1C18 802CD268 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelScale.s b/asm/nonmatchings/code_ef070_len_3400/SetAnimModelScale.s index d344d5709f..4284ac469a 100644 --- a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelScale.s +++ b/asm/nonmatchings/code_ef070_len_3400/SetAnimModelScale.s @@ -28,8 +28,8 @@ glabel SetAnimModelScale /* F1CA8 802CD2F8 8E050000 */ lw $a1, ($s0) /* F1CAC 802CD2FC 0C0B210B */ jal get_float_variable /* F1CB0 802CD300 46000506 */ mov.s $f20, $f0 -/* F1CB4 802CD304 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) -/* F1CB8 802CD308 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) +/* F1CB4 802CD304 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) +/* F1CB8 802CD308 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) /* F1CBC 802CD30C 00118880 */ sll $s1, $s1, 2 /* F1CC0 802CD310 02228821 */ addu $s1, $s1, $v0 /* F1CC4 802CD314 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/draw_anim_models.s b/asm/nonmatchings/code_ef070_len_3400/draw_anim_models.s index bfe5be11ce..6fbf7df9e1 100644 --- a/asm/nonmatchings/code_ef070_len_3400/draw_anim_models.s +++ b/asm/nonmatchings/code_ef070_len_3400/draw_anim_models.s @@ -28,8 +28,8 @@ glabel draw_anim_models /* F1524 802CCB74 AFB00220 */ sw $s0, 0x220($sp) /* F1528 802CCB78 AFA80218 */ sw $t0, 0x218($sp) .L802CCB7C: -/* F152C 802CCB7C 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) -/* F1530 802CCB80 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) +/* F152C 802CCB7C 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) +/* F1530 802CCB80 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) /* F1534 802CCB84 00131880 */ sll $v1, $s3, 2 /* F1538 802CCB88 00621821 */ addu $v1, $v1, $v0 /* F153C 802CCB8C 8C710000 */ lw $s1, ($v1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CCAC0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CCAC0.s index 415a1da8fb..01562b94be 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CCAC0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CCAC0.s @@ -7,8 +7,8 @@ glabel func_802CCAC0 /* F1478 802CCAC8 0000802D */ daddu $s0, $zero, $zero /* F147C 802CCACC AFBF0014 */ sw $ra, 0x14($sp) .L802CCAD0: -/* F1480 802CCAD0 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) -/* F1484 802CCAD4 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) +/* F1480 802CCAD0 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) +/* F1484 802CCAD4 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) /* F1488 802CCAD8 00101080 */ sll $v0, $s0, 2 /* F148C 802CCADC 00431021 */ addu $v0, $v0, $v1 /* F1490 802CCAE0 8C420000 */ lw $v0, ($v0) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CCCB0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CCCB0.s index 843e352f97..fc4a3981d0 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CCCB0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CCCB0.s @@ -7,15 +7,15 @@ glabel func_802CCCB0 /* F1668 802CCCB8 80420070 */ lb $v0, 0x70($v0) /* F166C 802CCCBC 14400005 */ bnez $v0, .L802CCCD4 /* F1670 802CCCC0 00000000 */ nop -/* F1674 802CCCC4 3C02802E */ lui $v0, 0x802e -/* F1678 802CCCC8 2442ADF0 */ addiu $v0, $v0, -0x5210 +/* F1674 802CCCC4 3C02802E */ lui $v0, %hi(gWorldMeshAnimations) +/* F1678 802CCCC8 2442ADF0 */ addiu $v0, $v0, %lo(gWorldMeshAnimations) /* F167C 802CCCCC 080B3337 */ j .L802CCCDC /* F1680 802CCCD0 00000000 */ nop .L802CCCD4: -/* F1684 802CCCD4 3C02802E */ lui $v0, 0x802e -/* F1688 802CCCD8 2442ADB0 */ addiu $v0, $v0, -0x5250 +/* F1684 802CCCD4 3C02802E */ lui $v0, %hi(gBattleMeshAnimations) +/* F1688 802CCCD8 2442ADB0 */ addiu $v0, $v0, %lo(gBattleMeshAnimations) .L802CCCDC: -/* F168C 802CCCDC 3C01802E */ lui $at, %hi(gAnimatedMeshesPtr) -/* F1690 802CCCE0 AC22AE30 */ sw $v0, %lo(gAnimatedMeshesPtr)($at) +/* F168C 802CCCDC 3C01802E */ lui $at, %hi(gMeshAnimationsPtr) +/* F1690 802CCCE0 AC22AE30 */ sw $v0, %lo(gMeshAnimationsPtr)($at) /* F1694 802CCCE4 03E00008 */ jr $ra /* F1698 802CCCE8 24020002 */ addiu $v0, $zero, 2 diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CCDAC.s b/asm/nonmatchings/code_ef070_len_3400/func_802CCDAC.s index 190f75001e..92ccddbbba 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CCDAC.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CCDAC.s @@ -17,8 +17,8 @@ glabel func_802CCDAC /* F178C 802CCDDC 0C0B1EAF */ jal get_variable /* F1790 802CCDE0 0040802D */ daddu $s0, $v0, $zero /* F1794 802CCDE4 0040902D */ daddu $s2, $v0, $zero -/* F1798 802CCDE8 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) -/* F179C 802CCDEC 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) +/* F1798 802CCDE8 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) +/* F179C 802CCDEC 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) /* F17A0 802CCDF0 00108080 */ sll $s0, $s0, 2 /* F17A4 802CCDF4 02028021 */ addu $s0, $s0, $v0 /* F17A8 802CCDF8 8E100000 */ lw $s0, ($s0) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CCEDC.s b/asm/nonmatchings/code_ef070_len_3400/func_802CCEDC.s index 3ad5040621..cd06f9f31f 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CCEDC.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CCEDC.s @@ -21,8 +21,8 @@ glabel func_802CCEDC /* F18CC 802CCF1C 8E050000 */ lw $a1, ($s0) /* F18D0 802CCF20 0C0B1EAF */ jal get_variable /* F18D4 802CCF24 0040802D */ daddu $s0, $v0, $zero -/* F18D8 802CCF28 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) -/* F18DC 802CCF2C 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) +/* F18D8 802CCF28 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) +/* F18DC 802CCF2C 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) /* F18E0 802CCF30 00118880 */ sll $s1, $s1, 2 /* F18E4 802CCF34 02238821 */ addu $s1, $s1, $v1 /* F18E8 802CCF38 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD348.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD348.s index 5de604dcfb..ebb2f3d1cc 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD348.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD348.s @@ -15,8 +15,8 @@ glabel func_802CD348 /* F1D20 802CD370 8E050000 */ lw $a1, ($s0) /* F1D24 802CD374 0C0B210B */ jal get_float_variable /* F1D28 802CD378 0040802D */ daddu $s0, $v0, $zero -/* F1D2C 802CD37C 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) -/* F1D30 802CD380 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) +/* F1D2C 802CD37C 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) +/* F1D30 802CD380 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) /* F1D34 802CD384 00108080 */ sll $s0, $s0, 2 /* F1D38 802CD388 02028021 */ addu $s0, $s0, $v0 /* F1D3C 802CD38C 8E020000 */ lw $v0, ($s0) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD3C0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD3C0.s deleted file mode 100644 index 99c9f226a4..0000000000 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD3C0.s +++ /dev/null @@ -1,26 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802CD3C0 -/* F1D70 802CD3C0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* F1D74 802CD3C4 AFBF0014 */ sw $ra, 0x14($sp) -/* F1D78 802CD3C8 AFB00010 */ sw $s0, 0x10($sp) -/* F1D7C 802CD3CC 8C82000C */ lw $v0, 0xc($a0) -/* F1D80 802CD3D0 0C0B1EAF */ jal get_variable -/* F1D84 802CD3D4 8C450000 */ lw $a1, ($v0) -/* F1D88 802CD3D8 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) -/* F1D8C 802CD3DC 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) -/* F1D90 802CD3E0 00021080 */ sll $v0, $v0, 2 -/* F1D94 802CD3E4 00431021 */ addu $v0, $v0, $v1 -/* F1D98 802CD3E8 8C500000 */ lw $s0, ($v0) -/* F1D9C 802CD3EC 0C047FF8 */ jal func_8011FFE0 -/* F1DA0 802CD3F0 8E040000 */ lw $a0, ($s0) -/* F1DA4 802CD3F4 0C04790E */ jal func_8011E438 -/* F1DA8 802CD3F8 0040202D */ daddu $a0, $v0, $zero -/* F1DAC 802CD3FC 2403FFFF */ addiu $v1, $zero, -1 -/* F1DB0 802CD400 AE030000 */ sw $v1, ($s0) -/* F1DB4 802CD404 8FBF0014 */ lw $ra, 0x14($sp) -/* F1DB8 802CD408 8FB00010 */ lw $s0, 0x10($sp) -/* F1DBC 802CD40C 24020002 */ addiu $v0, $zero, 2 -/* F1DC0 802CD410 03E00008 */ jr $ra -/* F1DC4 802CD414 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD418.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD418.s index 6b7ec0c39a..56eaf7f3f8 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD418.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD418.s @@ -17,8 +17,8 @@ glabel func_802CD418 /* F1DF8 802CD448 8E120000 */ lw $s2, ($s0) /* F1DFC 802CD44C 0C0B1EAF */ jal get_variable /* F1E00 802CD450 0040882D */ daddu $s1, $v0, $zero -/* F1E04 802CD454 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) -/* F1E08 802CD458 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) +/* F1E04 802CD454 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) +/* F1E08 802CD458 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) /* F1E0C 802CD45C 00118880 */ sll $s1, $s1, 2 /* F1E10 802CD460 02238821 */ addu $s1, $s1, $v1 /* F1E14 802CD464 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD4B4.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD4B4.s index 17fac9a61d..ff00bc5b1b 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD4B4.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD4B4.s @@ -12,24 +12,24 @@ glabel func_802CD4B4 /* F1E80 802CD4D0 80420070 */ lb $v0, 0x70($v0) /* F1E84 802CD4D4 14400005 */ bnez $v0, .L802CD4EC /* F1E88 802CD4D8 00000000 */ nop -/* F1E8C 802CD4DC 3C02802E */ lui $v0, 0x802e -/* F1E90 802CD4E0 2442ADF0 */ addiu $v0, $v0, -0x5210 +/* F1E8C 802CD4DC 3C02802E */ lui $v0, %hi(gWorldMeshAnimations) +/* F1E90 802CD4E0 2442ADF0 */ addiu $v0, $v0, %lo(gWorldMeshAnimations) /* F1E94 802CD4E4 080B353D */ j .L802CD4F4 /* F1E98 802CD4E8 00000000 */ nop .L802CD4EC: -/* F1E9C 802CD4EC 3C02802E */ lui $v0, 0x802e -/* F1EA0 802CD4F0 2442ADB0 */ addiu $v0, $v0, -0x5250 +/* F1E9C 802CD4EC 3C02802E */ lui $v0, %hi(gBattleMeshAnimations) +/* F1EA0 802CD4F0 2442ADB0 */ addiu $v0, $v0, %lo(gBattleMeshAnimations) .L802CD4F4: -/* F1EA4 802CD4F4 3C01802E */ lui $at, %hi(gAnimatedMeshesPtr) -/* F1EA8 802CD4F8 AC22AE30 */ sw $v0, %lo(gAnimatedMeshesPtr)($at) +/* F1EA4 802CD4F4 3C01802E */ lui $at, %hi(gMeshAnimationsPtr) +/* F1EA8 802CD4F8 AC22AE30 */ sw $v0, %lo(gMeshAnimationsPtr)($at) /* F1EAC 802CD4FC 0000882D */ daddu $s1, $zero, $zero /* F1EB0 802CD500 2412FFFF */ addiu $s2, $zero, -1 /* F1EB4 802CD504 0220802D */ daddu $s0, $s1, $zero .L802CD508: /* F1EB8 802CD508 0C00AB39 */ jal heap_malloc /* F1EBC 802CD50C 24040070 */ addiu $a0, $zero, 0x70 -/* F1EC0 802CD510 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) -/* F1EC4 802CD514 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) +/* F1EC0 802CD510 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) +/* F1EC4 802CD514 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) /* F1EC8 802CD518 02031821 */ addu $v1, $s0, $v1 /* F1ECC 802CD51C 14400003 */ bnez $v0, .L802CD52C /* F1ED0 802CD520 AC620000 */ sw $v0, ($v1) @@ -37,8 +37,8 @@ glabel func_802CD4B4 /* F1ED4 802CD524 080B3549 */ j .L802CD524 /* F1ED8 802CD528 00000000 */ nop .L802CD52C: -/* F1EDC 802CD52C 3C02802E */ lui $v0, %hi(gAnimatedMeshesPtr) -/* F1EE0 802CD530 8C42AE30 */ lw $v0, %lo(gAnimatedMeshesPtr)($v0) +/* F1EDC 802CD52C 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) +/* F1EE0 802CD530 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) /* F1EE4 802CD534 26310001 */ addiu $s1, $s1, 1 /* F1EE8 802CD538 02021021 */ addu $v0, $s0, $v0 /* F1EEC 802CD53C 8C420000 */ lw $v0, ($v0) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD57C.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD57C.s index f7a235528e..ef7a07845b 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD57C.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD57C.s @@ -7,16 +7,16 @@ glabel func_802CD57C /* F1F34 802CD584 80420070 */ lb $v0, 0x70($v0) /* F1F38 802CD588 14400007 */ bnez $v0, .L802CD5A8 /* F1F3C 802CD58C 00000000 */ nop -/* F1F40 802CD590 3C02802E */ lui $v0, 0x802e -/* F1F44 802CD594 2442ADF0 */ addiu $v0, $v0, -0x5210 -/* F1F48 802CD598 3C01802E */ lui $at, %hi(gAnimatedMeshesPtr) -/* F1F4C 802CD59C AC22AE30 */ sw $v0, %lo(gAnimatedMeshesPtr)($at) +/* F1F40 802CD590 3C02802E */ lui $v0, %hi(gWorldMeshAnimations) +/* F1F44 802CD594 2442ADF0 */ addiu $v0, $v0, %lo(gWorldMeshAnimations) +/* F1F48 802CD598 3C01802E */ lui $at, %hi(gMeshAnimationsPtr) +/* F1F4C 802CD59C AC22AE30 */ sw $v0, %lo(gMeshAnimationsPtr)($at) /* F1F50 802CD5A0 03E00008 */ jr $ra /* F1F54 802CD5A4 00000000 */ nop .L802CD5A8: -/* F1F58 802CD5A8 3C02802E */ lui $v0, 0x802e -/* F1F5C 802CD5AC 2442ADB0 */ addiu $v0, $v0, -0x5250 -/* F1F60 802CD5B0 3C01802E */ lui $at, %hi(gAnimatedMeshesPtr) -/* F1F64 802CD5B4 AC22AE30 */ sw $v0, %lo(gAnimatedMeshesPtr)($at) +/* F1F58 802CD5A8 3C02802E */ lui $v0, %hi(gBattleMeshAnimations) +/* F1F5C 802CD5AC 2442ADB0 */ addiu $v0, $v0, %lo(gBattleMeshAnimations) +/* F1F60 802CD5B0 3C01802E */ lui $at, %hi(gMeshAnimationsPtr) +/* F1F64 802CD5B4 AC22AE30 */ sw $v0, %lo(gMeshAnimationsPtr)($at) /* F1F68 802CD5B8 03E00008 */ jr $ra /* F1F6C 802CD5BC 00000000 */ nop diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD5C0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD5C0.s index 85b1d66239..e30d159494 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD5C0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD5C0.s @@ -23,8 +23,8 @@ glabel func_802CD5C0 /* F1FB8 802CD608 00118880 */ sll $s1, $s1, 2 /* F1FBC 802CD60C 8E140000 */ lw $s4, ($s0) /* F1FC0 802CD610 26100004 */ addiu $s0, $s0, 4 -/* F1FC4 802CD614 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) -/* F1FC8 802CD618 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) +/* F1FC4 802CD614 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) +/* F1FC8 802CD618 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) /* F1FCC 802CD61C 8E150000 */ lw $s5, ($s0) /* F1FD0 802CD620 02238821 */ addu $s1, $s1, $v1 /* F1FD4 802CD624 8E330000 */ lw $s3, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD6E0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD6E0.s index 6f0d7dca0f..fe83bbbae9 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD6E0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD6E0.s @@ -23,8 +23,8 @@ glabel func_802CD6E0 /* F20D8 802CD728 00118880 */ sll $s1, $s1, 2 /* F20DC 802CD72C 8E130000 */ lw $s3, ($s0) /* F20E0 802CD730 26100004 */ addiu $s0, $s0, 4 -/* F20E4 802CD734 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) -/* F20E8 802CD738 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) +/* F20E4 802CD734 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) +/* F20E8 802CD738 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) /* F20EC 802CD73C 8E140000 */ lw $s4, ($s0) /* F20F0 802CD740 02238821 */ addu $s1, $s1, $v1 /* F20F4 802CD744 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD7D8.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD7D8.s index 631537bc1c..03323eca79 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD7D8.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD7D8.s @@ -23,8 +23,8 @@ glabel func_802CD7D8 /* F21D0 802CD820 00118880 */ sll $s1, $s1, 2 /* F21D4 802CD824 8E140000 */ lw $s4, ($s0) /* F21D8 802CD828 26100004 */ addiu $s0, $s0, 4 -/* F21DC 802CD82C 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) -/* F21E0 802CD830 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) +/* F21DC 802CD82C 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) +/* F21E0 802CD830 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) /* F21E4 802CD834 8E150000 */ lw $s5, ($s0) /* F21E8 802CD838 02238821 */ addu $s1, $s1, $v1 /* F21EC 802CD83C 8E330000 */ lw $s3, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD8F8.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD8F8.s index 575f1f4f91..358262361b 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD8F8.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD8F8.s @@ -23,8 +23,8 @@ glabel func_802CD8F8 /* F22F0 802CD940 00118880 */ sll $s1, $s1, 2 /* F22F4 802CD944 8E130000 */ lw $s3, ($s0) /* F22F8 802CD948 26100004 */ addiu $s0, $s0, 4 -/* F22FC 802CD94C 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) -/* F2300 802CD950 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) +/* F22FC 802CD94C 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) +/* F2300 802CD950 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) /* F2304 802CD954 8E140000 */ lw $s4, ($s0) /* F2308 802CD958 02238821 */ addu $s1, $s1, $v1 /* F230C 802CD95C 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s index a1dd7b41ef..bafc068c6b 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s @@ -23,8 +23,8 @@ glabel func_802CD9F0 /* F23E8 802CDA38 8E130000 */ lw $s3, ($s0) /* F23EC 802CDA3C 0C0B1EAF */ jal get_variable /* F23F0 802CDA40 0040902D */ daddu $s2, $v0, $zero -/* F23F4 802CDA44 3C03802E */ lui $v1, %hi(gAnimatedMeshesPtr) -/* F23F8 802CDA48 8C63AE30 */ lw $v1, %lo(gAnimatedMeshesPtr)($v1) +/* F23F4 802CDA44 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) +/* F23F8 802CDA48 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) /* F23FC 802CDA4C 00118880 */ sll $s1, $s1, 2 /* F2400 802CDA50 02238821 */ addu $s1, $s1, $v1 /* F2404 802CDA54 8E230000 */ lw $v1, ($s1) diff --git a/include/variables.h b/include/variables.h index e18c758128..cdd6635377 100644 --- a/include/variables.h +++ b/include/variables.h @@ -88,7 +88,9 @@ extern PrintContext* D_802DB268; // Animation related extern PartnerAnimations gPartnerAnimations[12]; -extern AnimatedModel** gAnimatedMeshesPtr; +extern AnimatedModel* gBattleMeshAnimations[16]; +extern AnimatedModel* gWorldMeshAnimations[16]; +extern AnimatedModel** gMeshAnimationsPtr; // Triggers extern s16 gTriggerCount; diff --git a/src/code_ef070_len_3400.c b/src/code_ef070_len_3400.c index 9f892bd319..d9de3affac 100644 --- a/src/code_ef070_len_3400.c +++ b/src/code_ef070_len_3400.c @@ -493,7 +493,13 @@ INCLUDE_ASM(s32, "code_ef070_len_3400", SetAnimModelScale); INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CD348); -INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CD3C0); +ApiStatus func_802CD3C0(ScriptInstance* script, s32 isInitialCall) { + AnimatedModel* model = gMeshAnimationsPtr[get_variable(script, *script->ptrReadPos)]; + + func_8011E438(func_8011FFE0(model->animModelID)); + model->animModelID = -1; + return ApiStatus_DONE2; +} INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CD418); diff --git a/tools/symbol_addrs.txt b/tools/symbol_addrs.txt index d8d888cc08..342a89fc97 100644 --- a/tools/symbol_addrs.txt +++ b/tools/symbol_addrs.txt @@ -1891,7 +1891,9 @@ gGlobalTimeSpace = 0x802D9CA8; ShakeCam1 = 0x802D9CB0; ShakeCamX = 0x802D9CE8; D_802D9D50 = 0x802D9D50; -gAnimatedMeshesPtr = 0x802DAE30; +gBattleMeshAnimations = 0x802DADB0; // size:0x40 +gWorldMeshAnimations = 0x802DADF0; // size:0x40 +gMeshAnimationsPtr = 0x802DAE30; gWorldMapFlags = 0x802DBC70; // size:0xC gWorldMapVars = 0x802DBCA8; // size:0x40 gBattleMapVars = 0x802DBCE8; // size:0x40 diff --git a/undefined_syms.txt b/undefined_syms.txt index eb8954ce0c..fc123c5c23 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -229,7 +229,10 @@ gCurrentSaveFile = 0x800DACC0; gMapFlags = 0x802DA480; gMapVars = 0x802DA484; -gAnimatedMeshesPtr = 0x802DAE30; + +gBattleMeshAnimations = 0x802DADB0; +gWorldMeshAnimations = 0x802DADF0; +gMeshAnimationsPtr = 0x802DAE30; gEffectTable = 0x8007F214; From c13ca4392be4c3c26ccfcd763412ef6627f7d6fa Mon Sep 17 00:00:00 2001 From: Alex Bates <16batesa@gmail.com> Date: Sun, 8 Nov 2020 19:07:10 +0000 Subject: [PATCH 15/52] use ScriptOpcode enum instead of macros --- include/si.h | 198 ++++++------- src/world/area_kmr/kmr_03/8C7F90.c | 8 +- src/world/area_kmr/kmr_03/8C8140.c | 451 ++++++++++++++--------------- src/world/area_kmr/kmr_03/8C83A0.c | 399 +++++++++++++------------ src/world/area_kmr/kmr_03/8C85E0.c | 172 ++++++----- src/world/area_kmr/kmr_03/kmr_03.h | 2 +- tools/compile_dsl_macros.py | 160 +++++----- tools/disasm_script.py | 204 +++++++------ 8 files changed, 789 insertions(+), 805 deletions(-) diff --git a/include/si.h b/include/si.h index 9fab7e9dae..409a69c074 100644 --- a/include/si.h +++ b/include/si.h @@ -6,6 +6,99 @@ typedef s32 Bytecode; typedef s32 ScriptID; +typedef enum ScriptOpcode { + ScriptOpcode_END = 0x01, + ScriptOpcode_RETURN, + ScriptOpcode_LABEL, ///< Args: index + ScriptOpcode_GOTO, ///< Args: index + ScriptOpcode_LOOP, ///< Args: number of repeats (0 = infinite) + ScriptOpcode_END_LOOP, + ScriptOpcode_BREAK_LOOP, + ScriptOpcode_SLEEP_FRAMES, + ScriptOpcode_SLEEP_SECS, + ScriptOpcode_IF_EQ, ///< Args: a, b + ScriptOpcode_IF_NE, ///< Args: a, b + ScriptOpcode_IF_LT, ///< Args: a, b + ScriptOpcode_IF_GT, ///< Args: a, b + ScriptOpcode_IF_LE, ///< Args: a, b + ScriptOpcode_IF_GE, ///< Args: a, b + ScriptOpcode_IF_FLAG, ///< Args: a, b + ScriptOpcode_IF_NOT_FLAG, ///< Args: a, b + ScriptOpcode_ELSE, + ScriptOpcode_END_IF, + ScriptOpcode_MATCH, ///< Args: expression to test against + ScriptOpcode_MATCH_CONST, ///< Args: value to test against + ScriptOpcode_CASE_EQ, ///< Args: expression to test for + ScriptOpcode_CASE_NE, ///< Args: expression to test for + ScriptOpcode_CASE_LT, ///< Args: expression to test for + ScriptOpcode_CASE_GT, ///< Args: expression to test for + ScriptOpcode_CASE_LE, ///< Args: expression to test for + ScriptOpcode_CASE_GE, ///< Args: expression to test for + ScriptOpcode_CASE_ELSE, + ScriptOpcode_CASE_MULTI_EQ, ///< Args: expression to test for + ScriptOpcode_CASE_MULTI_NE, ///< Args: expression to test for + ScriptOpcode_CASE_FLAG, ///< Args: expression to test for + ScriptOpcode_END_CASE_MULTI, ///< Ends the case block of ScriptOpcode_CASE_MULTI_OR_EQ condition(s). + ScriptOpcode_CASE_RANGE, ///< Args: from, to + ScriptOpcode_BREAK_MATCH, + ScriptOpcode_END_MATCH, + ScriptOpcode_SET, ///< Args: container, expression + ScriptOpcode_SET_CONST, ///< Args: container, value + ScriptOpcode_SET_F, ///< Args: container, expression + ScriptOpcode_ADD, ///< Args: container, expression to increment by + ScriptOpcode_SUB, ///< Args: container, expression to decrement by + ScriptOpcode_MUL, ///< Args: container, expression to multiply by + ScriptOpcode_DIV, ///< Integer division. Args: container, expression to divide by + ScriptOpcode_MOD, ///< Args: container, expression to divide by + ScriptOpcode_ADD_F, ///< Args: container, expression to increment by + ScriptOpcode_SUB_F, ///< Args: container, expression to decrement by + ScriptOpcode_MUL_F, ///< Args: container, expression to multiply by + ScriptOpcode_DIV_F, ///< Args: container, expression to divide by + ScriptOpcode_USE_BUFFER, ///< Args: s32* + ScriptOpcode_BUFFER_READ_1, /// Args: container + ScriptOpcode_BUFFER_READ_2, /// Args: container, container + ScriptOpcode_BUFFER_READ_3, /// Args: container, container, container + ScriptOpcode_BUFFER_READ_4, /// Args: container, container, container, container + ScriptOpcode_BUFFER_PEEK, ///< Args: index, container + ScriptOpcode_USE_BUFFER_F, ///< Identical to USE_BUFFER. Args: f32* + ScriptOpcode_BUFFER_READ_1_F, /// Args: container + ScriptOpcode_BUFFER_READ_2_F, /// Args: container, container + ScriptOpcode_BUFFER_READ_3_F, /// Args: container, container, container + ScriptOpcode_BUFFER_READ_4_F, /// Args: container, container, container, container + ScriptOpcode_BUFFER_PEEK_F, ///< Args: index, container + ScriptOpcode_USE_ARRAY, ///< Args: *s32 + ScriptOpcode_USE_FLAGS, ///< Args: *s32 + ScriptOpcode_NEW_ARRAY, ///< Allocates a new array. Args: length, s32* + ScriptOpcode_AND, ///< Args: container, expression to bitwise AND with + ScriptOpcode_AND_CONST, ///< Args: container, value to bitwise AND with + ScriptOpcode_OR, ///< Args: container, expression to bitwise OR with + ScriptOpcode_OR_CONST, ///< Args: container, value to bitwise OR with + ScriptOpcode_CALL, ///< Args: *function, ... + ScriptOpcode_SPAWN_SCRIPT, ///< Args: Script* + ScriptOpcode_SPAWN_SCRIPT_GET_ID, ///< Args: Script*, container + ScriptOpcode_AWAIT_SCRIPT, ///< Spawns a script and waits for it to return before continuing. Args: Script* + ScriptOpcode_BIND_TRIGGER, ///< Args: Script*, trigger flags, s32 target, 1, Trigger* + ScriptOpcode_UNBIND, ///< Unbinds any triggers bound to this script. + ScriptOpcode_KILL_SCRIPT, ///< Args: ScriptID + ScriptOpcode_JUMP, ///< Args: Script* + ScriptOpcode_SET_PRIORITY, ///< Args: priority + ScriptOpcode_SET_TIMESCALE, ///< Args: timescale + ScriptOpcode_SET_GROUP, ///< Args: group + ScriptOpcode_BIND_PADLOCK, ///< Args: Script*, trigger flags, s32 target, ItemList*, 0, 1 + ScriptOpcode_SUSPEND_GROUP, ///< Args: group + ScriptOpcode_RESUME_GROUP, ///< Args: group + ScriptOpcode_SUSPEND_OTHERS, ///< Args: group + ScriptOpcode_RESUME_OTHERS, ///< Args: group + ScriptOpcode_SUSPEND_SCRIPT, ///< Args: ScriptID + ScriptOpcode_RESUME_SCRIPT, ///< Args: ScriptID + ScriptOpcode_SCRIPT_EXISTS, ///< Args: ScriptID, container + ScriptOpcode_SPAWN_THREAD, + ScriptOpcode_END_SPAWN_THREAD, + ScriptOpcode_PARALLEL_THREAD, ///< Parallel threads are killed as soon as the parent script returns. + ScriptOpcode_END_PARALLEL_THREAD, + ScriptOpcode_DEBUG_PRINT = 0x5B, ///< Args: expression +} ScriptOpcode; + #define SI_VAR(v) (v - 30000000) #define SI_MAP_VAR(v) (v - 50000000) #define SI_FLAG(v) (v - 70000000) @@ -36,111 +129,6 @@ typedef s32 ApiStatus; /* argc */ (sizeof((Bytecode[]){argv})/sizeof(Bytecode)), \ ##argv -#define SI_END() SI_CMD(0x01) -#define SI_RETURN() SI_CMD(0x02) - -#define SI_LABEL(i) SI_CMD(0x03, i) -#define SI_GOTO(i) SI_CMD(0x04, i) - -#define SI_LOOP(i) SI_CMD(0x05, i) -#define SI_END_LOOP() SI_CMD(0x06) -#define SI_BREAK_LOOP() SI_CMD(0x07) - -#define SI_WAIT_FRAMES(i) SI_CMD(0x08, i) -#define SI_WAIT_SECS(i) SI_CMD(0x09, i) - -#define SI_IF_EQ(a, b) SI_CMD(0x0A, a, b) -#define SI_IF_NE(a, b) SI_CMD(0x0B, a, b) -#define SI_IF_LT(a, b) SI_CMD(0x0C, a, b) -#define SI_IF_GT(a, b) SI_CMD(0x0D, a, b) -#define SI_IF_LE(a, b) SI_CMD(0x0E, a, b) -#define SI_IF_GE(a, b) SI_CMD(0x0F, a, b) -#define SI_IF_BITS_ON(a, b) SI_CMD(0x10, a, b) -#define SI_IF_BITS_OFF(a, b) SI_CMD(0x11, a, b) -#define SI_ELSE() SI_CMD(0x12) -#define SI_END_IF() SI_CMD(0x13) - -#define SI_SWITCH(a) SI_CMD(0x14, a) -#define SI_SWITCH_CONST(a) SI_CMD(0x15, a) // Does not get_variable -#define SI_CASE_EQ(b) SI_CMD(0x16, b) -#define SI_CASE_NE(b) SI_CMD(0x17, b) -#define SI_CASE_LT(b) SI_CMD(0x18, b) -#define SI_CASE_GT(b) SI_CMD(0x19, b) -#define SI_CASE_LE(b) SI_CMD(0x1A, b) -#define SI_CASE_GE(b) SI_CMD(0x1B, b) -#define SI_CASE_DEFAULT() SI_CMD(0x1C) -#define SI_CASE_OR_EQ(b) SI_CMD(0x1D, b) -#define SI_CASE_BITS_ON(b) SI_CMD(0x1F, b) -#define SI_END_MULTI_CASE() SI_CMD(0x20) -#define SI_CASE_RANGE(from, to) SI_CMD(0x21, from, to) -#define SI_BREAK_CASE() SI_CMD(0x22) -#define SI_END_SWITCH() SI_CMD(0x23) - -#define SI_SET(varA, varB) SI_CMD(0x24, varA, varB) -#define SI_SET_CONST(var, value) SI_CMD(0x25, var, value) // Does not get_variable -#define SI_ADD(a, b) SI_CMD(0x27, a, b) // += -#define SI_SUB(a, b) SI_CMD(0x28, a, b) // -= -#define SI_MUL(a, b) SI_CMD(0x29, a, b) // *= -#define SI_DIV(a, b) SI_CMD(0x2A, a, b) // /= -#define SI_MOD(a, b) SI_CMD(0x2B, a, b) // %= - -#define SI_SET_F(var, value) SI_CMD(0x26, var, value) -#define SI_ADD_F(a, b) SI_CMD(0x2C, a, b) // += -#define SI_SUB_F(a, b) SI_CMD(0x2D, a, b) // -= -#define SI_MUL_F(a, b) SI_CMD(0x2E, a, b) // *= -#define SI_DIV_F(a, b) SI_CMD(0x2F, a, b) // /= - -// BUF_READ and BUF_READ_F take 1..4 args only -#define SI_USE_BUFFER(buf_ptr) SI_CMD(0x30, buf_ptr) -#define SI_BUF_READ(vars...) SI_CMD( \ - 0x30 + (sizeof((Bytecode[]){vars})/sizeof(Bytecode)), \ - vars) -#define SI_BUF_PEEK(n, var) SI_CMD(0x35, n, var) -#define SI_USE_BUFFER_F(buf_ptr) SI_CMD(0x36, buf_ptr) -#define SI_BUF_READ_F(vars...) SI_CMD( \ - 0x36 + (sizeof((Bytecode[]){vars})/sizeof(Bytecode)), \ - vars) -#define SI_BUF_PEEK_F(n, var) SI_CMD(0x3B, n, var) - -#define SI_USE_ARRAY(arrPtr) SI_CMD(0x3C, arrPtr) -#define SI_NEW_ARRAY(len, arrPtr) SI_CMD(0x3D, len, arrPtr) -#define SI_USE_FLAGS(arrPtr) SI_CMD(0x3E, arrPtr) - -#define SI_AND(varA, varB) SI_CMD(0x3F, varA, varB) // &= -#define SI_AND_CONST(var, value) SI_CMD(0x40, var, value) // &= -#define SI_OR(varA, varB) SI_CMD(0x41, varA, varB) // |= -#define SI_OR_CONST(var, value) SI_CMD(0x41, var, value) // |= - -#define SI_CALL(func, argv...) SI_CMD(0x43, func, ##argv) -#define SI_EXEC(script) SI_CMD(0x44, script) -#define SI_EXEC_GET_ID(script, outScriptID) SI_CMD(0x45, script, outScriptID) -#define SI_EXEC_WAIT(script) SI_CMD(0x46, script) -#define SI_JUMP(script) SI_CMD(0x4A, script) - -#define SI_BIND(script, trigger, target, outTriggerPtr) SI_CMD(0x47, script, trigger, target, 1, outTriggerPtr) -#define SI_BIND_PADLOCK(script, trigger, target, itemList) SI_CMD(0x4E, script, trigger, target, itemList, 0, 1) -#define SI_UNBIND_ME() SI_CMD(0x48) - -#define SI_PRIORITY(p) SI_CMD(0x4B, p) -#define SI_TIMESCALE(t) SI_CMD(0x4C, t) -#define SI_GROUP(g) SI_CMD(0x4D, g) - -#define SI_SUSPEND_GROUP(group) SI_CMD(0x4F, group) -#define SI_RESUME_GROUP(group) SI_CMD(0x50, group) -#define SI_SUSPEND_GROUP_NOT_ME(group) SI_CMD(0x51, group) -#define SI_RESUME_GROUP_NOT_ME(group) SI_CMD(0x52, group) - -#define SI_KILL(scriptID) SI_CMD(0x49, scriptID) -#define SI_SUSPEND(scriptID) SI_CMD(0x53, scriptID) -#define SI_RESUME(scriptID) SI_CMD(0x54, scriptID) -#define SI_EXISTS(scriptID) SI_CMD(0x55, scriptID) - -#define SI_THREAD() SI_CMD(0x56) -#define SI_END_THREAD() SI_CMD(0x57) - -#define SI_CHILD_THREAD() SI_CMD(0x58) -#define SI_END_CHILD_THREAD() SI_CMD(0x59) - #define EXIT_WALK_SCRIPT(walkDistance, exitIdx, map, entryIdx) \ SCRIPT({ \ group 0x1B; \ diff --git a/src/world/area_kmr/kmr_03/8C7F90.c b/src/world/area_kmr/kmr_03/8C7F90.c index 2a88dc5cc8..c3221df9b2 100644 --- a/src/world/area_kmr/kmr_03/8C7F90.c +++ b/src/world/area_kmr/kmr_03/8C7F90.c @@ -64,8 +64,6 @@ MapConfig M(config) = { .tattle = MessageID_TATTLE_KMR_03, }; -Script M(script_802406C0) = { - SI_CALL(SetMusicTrack, 0, 17, 0, 8), - SI_RETURN(), - SI_END(), -}; +Script M(Script_802406C0) = SCRIPT({ + SetMusicTrack(0, 17, 0, 8) +}); diff --git a/src/world/area_kmr/kmr_03/8C8140.c b/src/world/area_kmr/kmr_03/8C8140.c index 331f63b956..ff5d97df29 100644 --- a/src/world/area_kmr/kmr_03/8C8140.c +++ b/src/world/area_kmr/kmr_03/8C8140.c @@ -1,9 +1,9 @@ #include "kmr_03.h" s32 M(npcGroupList_80241450)[]; -Script M(script_MakeEntities); -Script M(script_802422B8); -Script M(script_80242340); +Script M(MakeEntities); +Script M(Script_802422B8); +Script M(Script_80242340); ApiStatus func_802401B0_8C8140(ScriptInstance* script, s32 isInitialCall) { Npc* npc = get_npc_unsafe(0); @@ -15,7 +15,7 @@ ApiStatus func_802401B0_8C8140(ScriptInstance* script, s32 isInitialCall) { #include "world/common/UnkPositionFunc.inc.c" // 8C8680 -Script M(script_ExitWalk_802406F0) = { +Script M(ExitWalk_802406F0) = /*{ SI_GROUP(27), SI_CALL(0x802D216C, 60, 0), SI_EXEC(0x80285CF4), @@ -23,9 +23,9 @@ Script M(script_ExitWalk_802406F0) = { SI_WAIT_FRAMES(100), SI_RETURN(), SI_END(), -}; +};*/EXIT_WALK_SCRIPT(60, 0, "kmr_04", 0); -Script M(script_ExitWalk_8024074C) = { +Script M(ExitWalk_8024074C) = /*{ SI_GROUP(27), SI_CALL(0x802D216C, 60, 1), SI_EXEC(0x80285CF4), @@ -33,42 +33,36 @@ Script M(script_ExitWalk_8024074C) = { SI_WAIT_FRAMES(100), SI_RETURN(), SI_END(), -}; +};*/EXIT_WALK_SCRIPT(60, 1, "kmr_05", 0); -Script M(script_802407A8) = { - SI_BIND(M(script_ExitWalk_802406F0), 524288, 3, NULL), - SI_BIND(M(script_ExitWalk_8024074C), 524288, 5, NULL), - SI_RETURN(), - SI_END(), -}; +Script M(Script_802407A8) = SCRIPT({ + bind M(ExitWalk_802406F0) to 0x80000 3 + bind M(ExitWalk_8024074C) to 0x80000 5 +}); -// *INDENT-OFF* -Script M(Main) = { - SI_SET(SI_SAVE_VAR(425), 30), - SI_CALL(0x802D9700, -1), - SI_CALL(0x802CA828, 0, 3, 25, 16, 4096), - SI_CALL(0x802CAD98, 0, 0, 0, 0), - SI_CALL(0x802CA6C0, 0, 1), - SI_CALL(0x802CB680, 0, 0), - SI_SET(SI_AREA_FLAG(8), 0), - SI_CALL(0x80044298, 0, M(npcGroupList_80241450)), - SI_CALL(0x80045640), - SI_EXEC_WAIT(M(script_MakeEntities)), - SI_EXEC_WAIT(M(script_802422B8)), - SI_EXEC(M(script_802406C0)), - SI_CALL(0x802CA460, SI_VAR(0)), - SI_IF_NE(SI_VAR(0), 2), - SI_SET(SI_VAR(0), M(script_802407A8)), - SI_EXEC(0x80285960), - SI_ELSE(), - SI_EXEC(M(script_802407A8)), - SI_EXEC(M(script_80242340)), - SI_END_IF(), - SI_WAIT_FRAMES(1), - SI_RETURN(), - SI_END(), -}; -// *INDENT-ON* +Script M(Main) = SCRIPT({ + SI_SAVE_VAR(425) = 30 + SetSpriteShading(-1) + SetCamPerspective(0, 3, 25, 16, 4096) + SetCamBGColor(0, 0, 0, 0) + SetCamEnabled(0, 1) + SetCamLeadPlayer(0, 0) + SI_AREA_FLAG(8) = 0 + MakeNpcs(0, M(npcGroupList_80241450)) + ClearDefeatedEnemies() + await M(MakeEntities) + await M(Script_802422B8) + spawn M(Script_802406C0) + GetEntryID(SI_VAR(0)) + if SI_VAR(0) != 2 { + SI_VAR(0) = M(Script_802407A8) + spawn EnterWalk + } else { + spawn M(Script_802407A8) + spawn M(Script_80242340) + } + sleep 1 +}); s32 padding[] = {0, 0}; @@ -78,159 +72,147 @@ s32 M(npcSettings_80240950)[] = { 0x00000000, 0x00000000, 0x00630010, }; -// *INDENT-OFF* -Script M(script_8024097C) = { - SI_LABEL(1), - SI_IF_EQ(SI_AREA_FLAG(8), 1), - SI_LABEL(100), - SI_CALL(0x802D4A5C, 294, 123, 170), - SI_CALL(0x80044CF0, 0, 0), - SI_CALL(0x802D0E28, 1), - SI_CALL(0x802CE01C, 0, SI_FIXED(4.0f)), - SI_CALL(0x802CE0F4, 0, 0x9D0003), - SI_CALL(func_802401B0_8C8140), - SI_CALL(0x802D4830, 0, SI_VAR(2)), - SI_LOOP(SI_VAR(1)), - SI_CALL(0x802CF0F4, 0, SI_VAR(7), SI_VAR(8), SI_VAR(9)), - SI_CALL(0x802D4B14, SI_VAR(7), SI_VAR(9), SI_FIXED(4.0f), SI_VAR(2)), - SI_CALL(0x802CDCB0, 0, SI_VAR(7), SI_VAR(8), SI_VAR(9)), - SI_WAIT_FRAMES(1), - SI_END_LOOP(), - SI_CALL(0x802D1B04, 0, 3), - SI_CALL(0x802D1024, SI_FIXED(3.0f)), - SI_CALL(0x802D1134, 243, 243, 0), - SI_CALL(0x80045320, 0, 0, 1), - SI_CALL(0x80044CF0, 0, 1), - SI_CALL(0x802D0E28, 0), - SI_GOTO(100), - SI_END_IF(), - SI_WAIT_FRAMES(1), - SI_GOTO(1), - SI_RETURN(), - SI_END(), -}; -// *INDENT-ON* +Script M(Script_8024097C) = SCRIPT({ + 1: + if SI_AREA_FLAG(8) == 1 { + 100: + AwaitPlayerLeave(294, 123, 170) + EnableNpcAI(0, 0) + DisablePlayerInput(1) + SetNpcSpeed(0, 4.0) + SetNpcAnimation(0, 0x9D0003) + func_802401B0_8C8140() + GetAngleToPlayer(0, SI_VAR(2)) + loop SI_VAR(1) { + GetNpcPos(0, SI_VAR(7), SI_VAR(8), SI_VAR(9)) + AddVectorPolar(SI_VAR(7), SI_VAR(9), 4.0, SI_VAR(2)) + SetNpcPos(0, SI_VAR(7), SI_VAR(8), SI_VAR(9)) + sleep 1 + } + PlayerFaceNpc(0, 3) + SetPlayerSpeed(3.0) + PlayerMoveTo(243, 243, 0) + SetNpcVar(0, 0, 1) + EnableNpcAI(0, 1) + DisablePlayerInput(0) + goto 100 + } + sleep 1 + goto 1 +}); -// *INDENT-OFF* -Script M(script_NpcAI_80240B50) = { - SI_LABEL(1), - SI_SWITCH(SI_SAVE_VAR(0)), - SI_CASE_EQ(0xFFFFFF86), - SI_LABEL(89), - SI_CALL(UnkPositionFunc, 0xFFFFFF8A, 86, 0xFFFFFFBA, 0xFFFFFFF1), - SI_WAIT_FRAMES(1), - SI_IF_EQ(SI_VAR(0), 0), - SI_GOTO(89), - SI_END_IF(), - SI_CALL(0x802D0E28, 1), - SI_CALL(0x80044DA4, 0, 0), - SI_CALL(0x802D01AC, 0, 610, 0), - SI_CALL(0x802D78A0, 0, 0, 45, 15, 1, 0, 0, 0, 0), - SI_WAIT_FRAMES(15), - SI_CALL(0x802CECC8, -1, 5), - SI_WAIT_FRAMES(10), - SI_CALL(0x802D02B0, 0, 0x9D0008, 0x9D0001, 0, 0xB00A6), - SI_CALL(0x802CB860, 0, 0xFFFFFF24, 20, 0xFFFFFFB8), - SI_CALL(0x802CBE2C, 0, 0xFFFFFFEC, 0, 68), - SI_CALL(0x802CBB48, 0, SI_FIXED(15.0f), SI_FIXED(-8.5f)), - SI_CALL(0x802CBBE4, 0, 275), - SI_CALL(0x802CBEF0, 0, SI_FIXED(1.5f)), - SI_CALL(0x802CB79C, 0, 0, 1), - SI_THREAD(), - SI_WAIT_FRAMES(20), - SI_CALL(0x802D1024, SI_FIXED(2.0f)), - SI_CALL(0x802D1134, 0xFFFFFFDA, 68, 0), - SI_END_THREAD(), - SI_CALL(0x802CF0F4, 0, SI_VAR(7), SI_VAR(8), SI_VAR(9)), - SI_CALL(0x802CE01C, 0, SI_FIXED(4.0f)), - SI_CALL(0x802CE0F4, 0, 0x9D0003), - SI_CALL(0x802CE22C, 0, 0, 70, 0), - SI_CALL(0x802CE0F4, 0, 0x9D0001), - SI_CALL(0x802CEB04, 0, 276, 20), - SI_WAIT_FRAMES(30), - SI_CALL(0x802D02B0, 0, 0x9D0008, 0x9D0001, 0, 0xB00A7), - SI_WAIT_FRAMES(5), - SI_CALL(0x802D1084, 0x80007), - SI_WAIT_FRAMES(30), - SI_CALL(0x802D02B0, 0, 0x9D0008, 0x9D0001, 0, 0xB00A8), - SI_CALL(func_80240000_8C7F90, 0, 5), - SI_SET(SI_SAVE_VAR(0), 0xFFFFFF87), - SI_CALL(0x802CB860, 0, 0xFFFFFF24, 20, 0xFFFFFFB8), - SI_CALL(0x802D1DFC, SI_VAR(0), SI_VAR(1), SI_VAR(2)), - SI_CALL(0x802CBE2C, 0, SI_VAR(0), SI_VAR(1), SI_VAR(2)), - SI_CALL(0x802CBEF0, 0, SI_FIXED(3.0f)), - SI_CALL(0x802CB79C, 0, 0, 1), - SI_CALL(0x802CC354, 0, SI_FIXED(1.0f)), - SI_CALL(0x802CB79C, 0, 0, 0), - SI_CALL(0x802CF52C), - SI_CALL(0x802D0E28, 0), - SI_WAIT_FRAMES(1), - SI_END_SWITCH(), - SI_RETURN(), - SI_END(), -}; -// *INDENT-ON* +Script M(NpcAI_80240B50) = SCRIPT({ + 1: + match SI_SAVE_VAR(0) { + == 0xFFFFFF86 { + 89: + UnkPositionFunc(0xFFFFFF8A, 86, 0xFFFFFFBA, 0xFFFFFFF1) + sleep 1 + if SI_VAR(0) == 0 { + goto 89 + } + DisablePlayerInput(1) + SetNpcAux(0, 0) + PlaySoundAtNpc(0, 610, 0) + ShowEmote(0, 0, 45, 15, 1, 0, 0, 0, 0) + sleep 15 + NpcFacePlayer(-1, 5) + sleep 10 + SpeakToPlayer(0, 0x9D0008, 0x9D0001, 0, 0xB00A6) + UseSettingsFrom(0, 0xFFFFFF24, 20, 0xFFFFFFB8) + SetPanTarget(0, 0xFFFFFFEC, 0, 68) + SetCamPitch(0, 15.0, -8.5) + SetCamDistance(0, 275) + SetCamSpeed(0, 1.5) + PanToTarget(0, 0, 1) + spawn { + sleep 20 + SetPlayerSpeed(2.0) + PlayerMoveTo(0xFFFFFFDA, 68, 0) + } + GetNpcPos(0, SI_VAR(7), SI_VAR(8), SI_VAR(9)) + SetNpcSpeed(0, 4.0) + SetNpcAnimation(0, 0x9D0003) + NpcMoveTo(0, 0, 70, 0) + SetNpcAnimation(0, 0x9D0001) + InterpNpcYaw(0, 276, 20) + sleep 30 + SpeakToPlayer(0, 0x9D0008, 0x9D0001, 0, 0xB00A7) + sleep 5 + SetPlayerAnimation(0x80007) + sleep 30 + SpeakToPlayer(0, 0x9D0008, 0x9D0001, 0, 0xB00A8) + func_80240000_8C7F90(0, 5) + SI_SAVE_VAR(0) = 0xFFFFFF87 + UseSettingsFrom(0, 0xFFFFFF24, 20, 0xFFFFFFB8) + GetPlayerPos(SI_VAR(0), SI_VAR(1), SI_VAR(2)) + SetPanTarget(0, SI_VAR(0), SI_VAR(1), SI_VAR(2)) + SetCamSpeed(0, 3.0) + PanToTarget(0, 0, 1) + WaitForCam(0, 1.0) + PanToTarget(0, 0, 0) + EnablePartnerAI() + DisablePlayerInput(0) + sleep 1 + } + } +}); -// *INDENT-OFF* -Script M(script_Hit_80240F64) = { - SI_CALL(0x802CE0F4, -1, 0x9D0007), - SI_WAIT_FRAMES(10), - SI_CALL(0x802CE0F4, -1, 0x9D0001), - SI_ADD(SI_MAP_VAR(0), 1), - SI_IF_LT(SI_MAP_VAR(0), 3), - SI_CALL(0x80044600, SI_VAR(0)), - SI_SWITCH(SI_VAR(0)), - SI_CASE_EQ(2), - SI_CALL(0x80045320, 0, 0, 1), - SI_IF_EQ(SI_AREA_FLAG(6), 1), - SI_ELSE(), - SI_SET(SI_AREA_FLAG(6), 1), - SI_SET(SI_AREA_FLAG(7), 0), - SI_END_IF(), - SI_CASE_EQ(4), - SI_CALL(0x80045320, 0, 0, 1), - SI_IF_EQ(SI_AREA_FLAG(7), 1), - SI_ELSE(), - SI_SET(SI_AREA_FLAG(6), 0), - SI_SET(SI_AREA_FLAG(7), 1), - SI_END_IF(), - SI_END_SWITCH(), - SI_WAIT_FRAMES(10), - SI_CALL(0x802CE0F4, -1, 0x9D0003), - SI_ELSE(), - SI_WAIT_FRAMES(10), - SI_CALL(0x802CF0F4, 0, SI_VAR(0), SI_VAR(1), SI_VAR(2)), - SI_CALL(0x802CDCB0, 0xFFFFFFFC, SI_VAR(0), SI_VAR(1), SI_VAR(2)), - SI_CALL(0x802CF060, 0xFFFFFFFC, 512, 1), - SI_CALL(0x802CDCB0, 0, 0, 0xFFFFFC18, 0), - SI_CALL(0x802CF060, 0, 256, 0), - SI_CALL(0x802CF52C), - SI_CALL(0x80044DA4, -1, M(script_8024097C)), - SI_CALL(0x80044A78, -1, M(script_NpcAI_80240B50)), - SI_END_IF(), - SI_RETURN(), - SI_END(), -}; -// *INDENT-ON* +Script M(Hit_80240F64) = SCRIPT({ + SetNpcAnimation(-1, 0x9D0007) + sleep 10 + SetNpcAnimation(-1, 0x9D0001) + SI_MAP_VAR(0) += 1 + if SI_MAP_VAR(0) < 3 { + GetOwnerEncounterTrigger(SI_VAR(0)) + match SI_VAR(0) { + == 2 { + SetNpcVar(0, 0, 1) + if SI_AREA_FLAG(6) == 1 { + } else { + SI_AREA_FLAG(6) = 1 + SI_AREA_FLAG(7) = 0 + } + } + == 4 { + SetNpcVar(0, 0, 1) + if SI_AREA_FLAG(7) == 1 { + } else { + SI_AREA_FLAG(6) = 0 + SI_AREA_FLAG(7) = 1 + } + } + } + sleep 10 + SetNpcAnimation(-1, 0x9D0003) + } else { + sleep 10 + GetNpcPos(0, SI_VAR(0), SI_VAR(1), SI_VAR(2)) + SetNpcPos(0xFFFFFFFC, SI_VAR(0), SI_VAR(1), SI_VAR(2)) + SetNpcFlagBits(0xFFFFFFFC, 512, 1) + SetNpcPos(0, 0, 0xFFFFFC18, 0) + SetNpcFlagBits(0, 256, 0) + EnablePartnerAI() + SetNpcAux(-1, M(Script_8024097C)) + BindNpcAI(-1, M(NpcAI_80240B50)) + } +}); -// *INDENT-OFF* -Script M(script_Init_802411A8) = { - SI_CALL(0x80044BAC, -1, M(script_NpcAI_80240B50)), - SI_CALL(0x80044EB8, -1, M(script_8024097C)), - SI_CALL(0x80045140, -1, M(script_Hit_80240F64)), - SI_SWITCH(SI_SAVE_VAR(0)), - SI_CASE_GE(0xFFFFFF87), - SI_CALL(0x802CF060, -1, 512, 0), - SI_CALL(0x802CF060, -1, 8, 1), - SI_CALL(0x802CDCB0, -1, 0, 0xFFFFFC18, 0), - SI_END_SWITCH(), - SI_RETURN(), - SI_END(), -}; -// *INDENT-ON* +Script M(Init_802411A8) = SCRIPT({ + BindNpcIdle(-1, M(NpcAI_80240B50)) + BindNpcAux(-1, M(Script_8024097C)) + BindNpcHit(-1, M(Hit_80240F64)) + match SI_SAVE_VAR(0) { + >= 0xFFFFFF87 { + SetNpcFlagBits(-1, 512, 0) + SetNpcFlagBits(-1, 8, 1) + SetNpcPos(-1, 0, 0xFFFFFC18, 0) + } + } +}); s32 M(npcGroup_80241260)[] = { - 0x00000000, M(npcSettings_80240950), 0xC2480000, 0x00000000, 0x42A00000, 0x00400105, M(script_Init_802411A8), 0x00000000, + 0x00000000, M(npcSettings_80240950), 0xC2480000, 0x00000000, 0x42A00000, 0x00400105, M(Init_802411A8), 0x00000000, 0x00000000, 0x0000002D, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00007FFF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, @@ -254,59 +236,48 @@ s32 M(npcGroupList_80241450)[] = { s32 padding2[] = {0, 0}; -// 8C9400 -Script M(script_80241470) = { - SI_CALL(0x802C9DCC, 0, 9, 0x7FFFFE00), - SI_SET(SI_SAVE_VAR(0), 0xFFFFFF8B), - SI_RETURN(), - SI_END(), -}; +Script M(Script_80241470) = SCRIPT({ + ModifyColliderFlags(0, 9, 0x7FFFFE00) + SI_SAVE_VAR(0) = 0xFFFFFF8B +}); -Script M(script_802414A8) = { - SI_SET(SI_SAVE_FLAG(54), 1), - SI_RETURN(), - SI_END(), -}; +Script M(Script_802414A8) = SCRIPT({ + SI_SAVE_FLAG(54) = 1 +}); -Script M(script_802414C8) = { - SI_LABEL(0), - SI_CALL(0x802D1DFC, SI_VAR(0), SI_VAR(1), SI_VAR(2)), - SI_CALL(0x802CAF2C, 0, SI_VAR(0), SI_VAR(1), SI_VAR(2)), - SI_WAIT_FRAMES(1), - SI_GOTO(0), - SI_RETURN(), - SI_END(), -}; +Script M(Script_802414C8) = SCRIPT({ + 0: + GetPlayerPos(SI_VAR(0), SI_VAR(1), SI_VAR(2)) + SetCamTarget(0, SI_VAR(0), SI_VAR(1), SI_VAR(2)) + sleep 1 + goto 0 +}); -// *INDENT-OFF* -Script M(script_MakeEntities) = { - SI_IF_LT(SI_SAVE_VAR(0), 0xFFFFFF8B), - SI_CALL(0x80111D38, 0x802EA10C, 45, 0, 70, 15, 0x80000000), - SI_CALL(0x80111FB0, M(script_80241470)), - SI_ELSE(), - SI_CALL(0x802C9DCC, 0, 9, 0x7FFFFE00), - SI_END_IF(), - SI_IF_EQ(SI_SAVE_FLAG(54), 0), - SI_CALL(0x80111D38, 0x802EA19C, 230, 0, 310, 15, 0x80000000), - SI_CALL(0x80111FB0, M(script_802414A8)), - SI_END_IF(), - SI_CALL(0x80111D38, 0x802EA588, 230, 60, 310, 15, 151, 0x80000000), - SI_CALL(0x8011206C, SI_SAVE_FLAG(52)), - SI_CALL(0x80111D38, 0x802EA0C4, 230, 50, 0xFFFFFF60, 15, 0x80000000), - SI_CALL(0x80111D38, 0x802EA0C4, 165, 0, 380, 20, 0x80000000), - SI_CALL(0x80111D38, 0x802EA564, 0xFFFFFF56, 0, 370, 43, 343, 0x80000000), - SI_CALL(0x8011206C, SI_SAVE_FLAG(50)), - SI_CALL(0x80111D38, 0x802EAA54, 345, 75, 0xFFFFFF06, 0, 100, 0x80000000), - SI_CALL(0x802D6CC0, 343, 345, 205, 0xFFFFFF06, 17, SI_SAVE_FLAG(56)), - SI_CALL(0x802D6CC0, 343, 345, 230, 0xFFFFFF06, 17, SI_SAVE_FLAG(57)), - SI_CALL(0x802D6CC0, 343, 345, 255, 0xFFFFFF06, 17, SI_SAVE_FLAG(58)), - SI_CALL(0x802D6CC0, 343, 345, 280, 0xFFFFFF06, 17, SI_SAVE_FLAG(59)), - SI_CALL(0x802D6CC0, 128, 229, 250, 0xFFFFFF64, 17, SI_SAVE_FLAG(49)), - SI_CALL(0x80111D38, 0x802EAB04, 300, 0, 150, 0, 18, 0x80000000), - SI_CALL(0x80112114, SI_SAVE_FLAG(88)), - SI_CALL(0x80111D38, 0x802EA7E0, 130, 60, 0, 0, 0x80000000), - SI_RETURN(), - SI_END(), -}; -// *INDENT-ON* +Script M(MakeEntities) = SCRIPT({ + if SI_SAVE_VAR(0) < 0xFFFFFF8B { + MakeEntity(0x802EA10C, 45, 0, 70, 15, 0x80000000) + AssignScript(M(Script_80241470)) + } else { + ModifyColliderFlags(0, 9, 0x7FFFFE00) + } + if SI_SAVE_FLAG(54) == 0 { + MakeEntity(0x802EA19C, 230, 0, 310, 15, 0x80000000) + AssignScript(M(Script_802414A8)) + } + MakeEntity(0x802EA588, 230, 60, 310, 15, 151, 0x80000000) + AssignBlockFlag(SI_SAVE_FLAG(52)) + MakeEntity(0x802EA0C4, 230, 50, 0xFFFFFF60, 15, 0x80000000) + MakeEntity(0x802EA0C4, 165, 0, 380, 20, 0x80000000) + MakeEntity(0x802EA564, 0xFFFFFF56, 0, 370, 43, 343, 0x80000000) + AssignBlockFlag(SI_SAVE_FLAG(50)) + MakeEntity(0x802EAA54, 345, 75, 0xFFFFFF06, 0, 100, 0x80000000) + MakeItemEntity(343, 345, 205, 0xFFFFFF06, 17, SI_SAVE_FLAG(56)) + MakeItemEntity(343, 345, 230, 0xFFFFFF06, 17, SI_SAVE_FLAG(57)) + MakeItemEntity(343, 345, 255, 0xFFFFFF06, 17, SI_SAVE_FLAG(58)) + MakeItemEntity(343, 345, 280, 0xFFFFFF06, 17, SI_SAVE_FLAG(59)) + MakeItemEntity(128, 229, 250, 0xFFFFFF64, 17, SI_SAVE_FLAG(49)) + MakeEntity(0x802EAB04, 300, 0, 150, 0, 18, 0x80000000) + AssignPanelFlag(SI_SAVE_FLAG(88)) + MakeEntity(0x802EA7E0, 130, 60, 0, 0, 0x80000000) +}); diff --git a/src/world/area_kmr/kmr_03/8C83A0.c b/src/world/area_kmr/kmr_03/8C83A0.c index de44b33c5e..1e2f655be9 100644 --- a/src/world/area_kmr/kmr_03/8C83A0.c +++ b/src/world/area_kmr/kmr_03/8C83A0.c @@ -3,181 +3,179 @@ #include "world/common/SomeMatrixOperations.inc.c" // *INDENT-OFF* -Script M(script_SearchBush_802417F0) = { - SI_USE_BUFFER(SI_VAR(0)), - SI_CMD(0x34, 0xFE363C81, 0xFE363C82, 0xFE363C83, 0xFE363C84), - SI_CALL(0x802D1DFC, SI_VAR(5), SI_VAR(15), SI_VAR(7)), - SI_THREAD(), - SI_SET(SI_FLAG(0), 0), - SI_IF_NE(SI_VAR(1), 0), - SI_LOOP(5), - SI_USE_BUFFER(SI_VAR(1)), - SI_CMD(0x31, 0xFE363C82), - SI_LOOP(SI_VAR(2)), - SI_CMD(0x31, 0xFE363C83), - SI_CALL(SomeMatrixOperation2, SI_VAR(3), SI_FIXED(0.1), 1, SI_VAR(15), 0), - SI_IF_EQ(SI_FLAG(0), 0), - SI_SET(SI_FLAG(0), 1), - SI_CALL(0x802CA558, SI_VAR(3), 339, 0), - SI_END_IF(), - SI_END_LOOP(), - SI_WAIT_FRAMES(1), - SI_USE_BUFFER(SI_VAR(1)), - SI_CMD(0x31, 0xFE363C82), - SI_LOOP(SI_VAR(2)), - SI_CMD(0x31, 0xFE363C83), - SI_CALL(SomeMatrixOperation2, SI_VAR(3), SI_FIXED(0.1), -1, SI_VAR(15), 0), - SI_END_LOOP(), - SI_WAIT_FRAMES(1), - SI_END_LOOP(), - SI_USE_BUFFER(SI_VAR(1)), - SI_CMD(0x31, 0xFE363C82), - SI_LOOP(SI_VAR(2)), - SI_CMD(0x31, 0xFE363C83), - SI_CALL(0x802C8B60, SI_VAR(3), 0, 0, 0), - SI_END_LOOP(), - SI_WAIT_FRAMES(1), - SI_END_IF(), - SI_END_THREAD(), - SI_THREAD(), - SI_IF_NE(SI_VAR(2), 0), - SI_USE_BUFFER(SI_VAR(2)), - SI_CMD(0x31, 0xFE363C83), - SI_LOOP(SI_VAR(3)), - SI_CMD(0x31, 0xFE363C84), - SI_CMD(0x33, 0xFE363C85, 0xFE363C86, 0xFE363C87), - SI_CMD(0x33, 0xFE363C88, 0xFE363C89, 0xFE363C8A), - SI_IF_EQ(SI_VAR(10), 0), - SI_CALL(0x802D6DC0, SI_VAR(4), SI_VAR(5), SI_VAR(6), SI_VAR(7), SI_VAR(8), SI_VAR(9)), - SI_ELSE(), - SI_CALL(0x802D593C, SI_VAR(10), SI_VAR(11)), - SI_IF_EQ(SI_VAR(11), 0), - SI_CALL(0x802D58E0, SI_VAR(10), 1), - SI_CALL(0x802D6DC0, SI_VAR(4), SI_VAR(5), SI_VAR(6), SI_VAR(7), SI_VAR(8), SI_VAR(9)), - SI_END_IF(), - SI_END_IF(), - SI_END_LOOP(), - SI_END_IF(), - SI_END_THREAD(), - SI_WAIT_FRAMES(15), - SI_IF_NE(SI_VAR(4), 0), - SI_EXEC_WAIT(0xFE363C84), - SI_END_IF(), - SI_RETURN(), - SI_END(), +Script M(SearchBush_802417F0) = { + SI_CMD(ScriptOpcode_USE_BUFFER, SI_VAR(0)), + SI_CMD(ScriptOpcode_BUFFER_READ_4, SI_VAR(1), SI_VAR(2), SI_VAR(3), SI_VAR(4)), + SI_CMD(ScriptOpcode_CALL, GetPlayerPos, SI_VAR(5), SI_VAR(15), SI_VAR(7)), + SI_CMD(ScriptOpcode_SPAWN_THREAD), + SI_CMD(ScriptOpcode_SET, SI_FLAG(0), 0), + SI_CMD(ScriptOpcode_IF_NE, SI_VAR(1), 0), + SI_CMD(ScriptOpcode_LOOP, 5), + SI_CMD(ScriptOpcode_USE_BUFFER, SI_VAR(1)), + SI_CMD(ScriptOpcode_BUFFER_READ_1, SI_VAR(2)), + SI_CMD(ScriptOpcode_LOOP, SI_VAR(2)), + SI_CMD(ScriptOpcode_BUFFER_READ_1, SI_VAR(3)), + SI_CMD(ScriptOpcode_CALL, SomeMatrixOperation2, SI_VAR(3), SI_FIXED(0.1005859375), 1, SI_VAR(15), 0), + SI_CMD(ScriptOpcode_IF_EQ, SI_FLAG(0), 0), + SI_CMD(ScriptOpcode_SET, SI_FLAG(0), 1), + SI_CMD(ScriptOpcode_CALL, PlaySoundAtModel, SI_VAR(3), 339, 0), + SI_CMD(ScriptOpcode_END_IF), + SI_CMD(ScriptOpcode_END_LOOP), + SI_CMD(ScriptOpcode_SLEEP_FRAMES, 1), + SI_CMD(ScriptOpcode_USE_BUFFER, SI_VAR(1)), + SI_CMD(ScriptOpcode_BUFFER_READ_1, SI_VAR(2)), + SI_CMD(ScriptOpcode_LOOP, SI_VAR(2)), + SI_CMD(ScriptOpcode_BUFFER_READ_1, SI_VAR(3)), + SI_CMD(ScriptOpcode_CALL, SomeMatrixOperation2, SI_VAR(3), SI_FIXED(0.1005859375), -1, SI_VAR(15), 0), + SI_CMD(ScriptOpcode_END_LOOP), + SI_CMD(ScriptOpcode_SLEEP_FRAMES, 1), + SI_CMD(ScriptOpcode_END_LOOP), + SI_CMD(ScriptOpcode_USE_BUFFER, SI_VAR(1)), + SI_CMD(ScriptOpcode_BUFFER_READ_1, SI_VAR(2)), + SI_CMD(ScriptOpcode_LOOP, SI_VAR(2)), + SI_CMD(ScriptOpcode_BUFFER_READ_1, SI_VAR(3)), + SI_CMD(ScriptOpcode_CALL, TranslateModel, SI_VAR(3), 0, 0, 0), + SI_CMD(ScriptOpcode_END_LOOP), + SI_CMD(ScriptOpcode_SLEEP_FRAMES, 1), + SI_CMD(ScriptOpcode_END_IF), + SI_CMD(ScriptOpcode_END_SPAWN_THREAD), + SI_CMD(ScriptOpcode_SPAWN_THREAD), + SI_CMD(ScriptOpcode_IF_NE, SI_VAR(2), 0), + SI_CMD(ScriptOpcode_USE_BUFFER, SI_VAR(2)), + SI_CMD(ScriptOpcode_BUFFER_READ_1, SI_VAR(3)), + SI_CMD(ScriptOpcode_LOOP, SI_VAR(3)), + SI_CMD(ScriptOpcode_BUFFER_READ_1, SI_VAR(4)), + SI_CMD(ScriptOpcode_BUFFER_READ_3, SI_VAR(5), SI_VAR(6), SI_VAR(7)), + SI_CMD(ScriptOpcode_BUFFER_READ_3, SI_VAR(8), SI_VAR(9), SI_VAR(10)), + SI_CMD(ScriptOpcode_IF_EQ, SI_VAR(10), 0), + SI_CMD(ScriptOpcode_CALL, DropItemEntity, SI_VAR(4), SI_VAR(5), SI_VAR(6), SI_VAR(7), SI_VAR(8), SI_VAR(9)), + SI_CMD(ScriptOpcode_ELSE), + SI_CMD(ScriptOpcode_CALL, GetValueByRef, SI_VAR(10), SI_VAR(11)), + SI_CMD(ScriptOpcode_IF_EQ, SI_VAR(11), 0), + SI_CMD(ScriptOpcode_CALL, SetValueByRef, SI_VAR(10), 1), + SI_CMD(ScriptOpcode_CALL, DropItemEntity, SI_VAR(4), SI_VAR(5), SI_VAR(6), SI_VAR(7), SI_VAR(8), SI_VAR(9)), + SI_CMD(ScriptOpcode_END_IF), + SI_CMD(ScriptOpcode_END_IF), + SI_CMD(ScriptOpcode_END_LOOP), + SI_CMD(ScriptOpcode_END_IF), + SI_CMD(ScriptOpcode_END_SPAWN_THREAD), + SI_CMD(ScriptOpcode_SLEEP_FRAMES, 15), + SI_CMD(ScriptOpcode_IF_NE, SI_VAR(4), 0), + SI_CMD(ScriptOpcode_AWAIT_SCRIPT, 0xFE363C84), + SI_CMD(ScriptOpcode_END_IF), + SI_CMD(ScriptOpcode_RETURN), + SI_CMD(ScriptOpcode_END) }; -// *INDENT-ON* -// *INDENT-OFF* -Script M(script_ShakeTree_80241B50) = { - SI_TIMESCALE(SI_FIXED(2.0f)), - SI_USE_BUFFER(SI_VAR(0)), - SI_CMD(0x34, 0xFE363C81, 0xFE363C82, 0xFE363C83, 0xFE363C84), - SI_CMD(0x31, 0xFE363C85), - SI_CALL(0x802D1DFC, SI_VAR(6), SI_VAR(15), SI_VAR(8)), - SI_CALL(0x802D6150, 357), - SI_CALL(0x802D6150, 358), - SI_THREAD(), - SI_SET(SI_FLAG(0), 0), - SI_IF_NE(SI_VAR(1), 0), - SI_WAIT_FRAMES(1), - SI_LOOP(5), - SI_USE_BUFFER(SI_VAR(1)), - SI_CMD(0x31, 0xFE363C82), - SI_LOOP(SI_VAR(2)), - SI_CMD(0x31, 0xFE363C83), - SI_CALL(SomeMatrixOperation2, SI_VAR(3), SI_FIXED(0.1), SI_FIXED(0.2), SI_VAR(15), 0), - SI_IF_EQ(SI_FLAG(0), 0), - SI_SET(SI_FLAG(0), 1), - SI_CALL(0x802CA558, SI_VAR(3), 358, 0), - SI_END_IF(), - SI_END_LOOP(), - SI_WAIT_FRAMES(1), - SI_USE_BUFFER(SI_VAR(1)), - SI_CMD(0x31, 0xFE363C82), - SI_LOOP(SI_VAR(2)), - SI_CMD(0x31, 0xFE363C83), - SI_CALL(SomeMatrixOperation2, SI_VAR(3), SI_FIXED(0.1), SI_FIXED(-0.2), SI_VAR(15), 0), - SI_END_LOOP(), - SI_WAIT_FRAMES(1), - SI_END_LOOP(), - SI_USE_BUFFER(SI_VAR(1)), - SI_CMD(0x31, 0xFE363C82), - SI_LOOP(SI_VAR(2)), - SI_CMD(0x31, 0xFE363C83), - SI_CALL(0x802C8B60, SI_VAR(3), 0, 0, 0), - SI_END_LOOP(), - SI_WAIT_FRAMES(1), - SI_END_IF(), - SI_END_THREAD(), - SI_THREAD(), - SI_SET(SI_FLAG(0), 0), - SI_IF_NE(SI_VAR(2), 0), - SI_LOOP(5), - SI_USE_BUFFER(SI_VAR(2)), - SI_CMD(0x31, 0xFE363C83), - SI_LOOP(SI_VAR(3)), - SI_CMD(0x31, 0xFE363C84), - SI_CALL(SomeMatrixOperation2, SI_VAR(4), SI_FIXED(0.1), SI_FIXED(0.2), SI_VAR(15), 0), - SI_IF_EQ(SI_FLAG(0), 0), - SI_SET(SI_FLAG(0), 1), - SI_CALL(0x802CA558, SI_VAR(4), 357, 0), - SI_END_IF(), - SI_END_LOOP(), - SI_WAIT_FRAMES(1), - SI_USE_BUFFER(SI_VAR(2)), - SI_CMD(0x31, 0xFE363C83), - SI_LOOP(SI_VAR(3)), - SI_CMD(0x31, 0xFE363C84), - SI_CALL(SomeMatrixOperation2, SI_VAR(4), SI_FIXED(0.1), SI_FIXED(-0.2), SI_VAR(15), 0), - SI_END_LOOP(), - SI_WAIT_FRAMES(1), - SI_END_LOOP(), - SI_USE_BUFFER(SI_VAR(2)), - SI_CMD(0x31, 0xFE363C83), - SI_LOOP(SI_VAR(3)), - SI_CMD(0x31, 0xFE363C84), - SI_CALL(0x802C8B60, SI_VAR(4), 0, 0, 0), - SI_END_LOOP(), - SI_WAIT_FRAMES(1), - SI_END_IF(), - SI_END_THREAD(), - SI_THREAD(), - SI_IF_NE(SI_VAR(3), 0), - SI_USE_BUFFER(SI_VAR(3)), - SI_CMD(0x31, 0xFE363C84), - SI_LOOP(SI_VAR(4)), - SI_CMD(0x31, 0xFE363C85), - SI_CMD(0x33, 0xFE363C86, 0xFE363C87, 0xFE363C88), - SI_CMD(0x33, 0xFE363C89, 0xFE363C8A, 0xFE363C8B), - SI_IF_EQ(SI_VAR(11), 0), - SI_CALL(0x802D6DC0, SI_VAR(5), SI_VAR(6), SI_VAR(7), SI_VAR(8), SI_VAR(9), SI_VAR(10)), - SI_ELSE(), - SI_CALL(0x802D593C, SI_VAR(11), SI_VAR(12)), - SI_IF_EQ(SI_VAR(12), 0), - SI_CALL(0x802D58E0, SI_VAR(11), 1), - SI_CALL(0x802D6DC0, SI_VAR(5), SI_VAR(6), SI_VAR(7), SI_VAR(8), SI_VAR(9), SI_VAR(10)), - SI_END_IF(), - SI_END_IF(), - SI_END_LOOP(), - SI_END_IF(), - SI_END_THREAD(), - SI_THREAD(), - SI_IF_NE(SI_VAR(4), 0), - SI_USE_BUFFER(SI_VAR(4)), - SI_CMD(0x31, 0xFE363C85), - SI_LOOP(SI_VAR(5)), - SI_CMD(0x33, 0xFE363C86, 0xFE363C87, 0xFE363C88), - SI_CALL(0x802D829C, 20, 0, SI_VAR(6), SI_VAR(7), SI_VAR(8), 100, 0, 0, 0, 0, 0, 0, 0, 0), - SI_END_LOOP(), - SI_END_IF(), - SI_END_THREAD(), - SI_IF_NE(SI_VAR(5), 0), - SI_EXEC_WAIT(0xFE363C85), - SI_END_IF(), - SI_WAIT_FRAMES(15), - SI_RETURN(), - SI_END(), +Script M(ShakeTree_80241B50) = { + SI_CMD(ScriptOpcode_SET_TIMESCALE, SI_FIXED(2.0)), + SI_CMD(ScriptOpcode_USE_BUFFER, SI_VAR(0)), + SI_CMD(ScriptOpcode_BUFFER_READ_4, SI_VAR(1), SI_VAR(2), SI_VAR(3), SI_VAR(4)), + SI_CMD(ScriptOpcode_BUFFER_READ_1, SI_VAR(5)), + SI_CMD(ScriptOpcode_CALL, GetPlayerPos, SI_VAR(6), SI_VAR(15), SI_VAR(8)), + SI_CMD(ScriptOpcode_CALL, PlaySound, 357), + SI_CMD(ScriptOpcode_CALL, PlaySound, 358), + SI_CMD(ScriptOpcode_SPAWN_THREAD), + SI_CMD(ScriptOpcode_SET, SI_FLAG(0), 0), + SI_CMD(ScriptOpcode_IF_NE, SI_VAR(1), 0), + SI_CMD(ScriptOpcode_SLEEP_FRAMES, 1), + SI_CMD(ScriptOpcode_LOOP, 5), + SI_CMD(ScriptOpcode_USE_BUFFER, SI_VAR(1)), + SI_CMD(ScriptOpcode_BUFFER_READ_1, SI_VAR(2)), + SI_CMD(ScriptOpcode_LOOP, SI_VAR(2)), + SI_CMD(ScriptOpcode_BUFFER_READ_1, SI_VAR(3)), + SI_CMD(ScriptOpcode_CALL, SomeMatrixOperation2, SI_VAR(3), SI_FIXED(0.1005859375), SI_FIXED(0.2001953125), SI_VAR(15), 0), + SI_CMD(ScriptOpcode_IF_EQ, SI_FLAG(0), 0), + SI_CMD(ScriptOpcode_SET, SI_FLAG(0), 1), + SI_CMD(ScriptOpcode_CALL, PlaySoundAtModel, SI_VAR(3), 358, 0), + SI_CMD(ScriptOpcode_END_IF), + SI_CMD(ScriptOpcode_END_LOOP), + SI_CMD(ScriptOpcode_SLEEP_FRAMES, 1), + SI_CMD(ScriptOpcode_USE_BUFFER, SI_VAR(1)), + SI_CMD(ScriptOpcode_BUFFER_READ_1, SI_VAR(2)), + SI_CMD(ScriptOpcode_LOOP, SI_VAR(2)), + SI_CMD(ScriptOpcode_BUFFER_READ_1, SI_VAR(3)), + SI_CMD(ScriptOpcode_CALL, SomeMatrixOperation2, SI_VAR(3), SI_FIXED(0.1005859375), SI_FIXED(-0.19921875), SI_VAR(15), 0), + SI_CMD(ScriptOpcode_END_LOOP), + SI_CMD(ScriptOpcode_SLEEP_FRAMES, 1), + SI_CMD(ScriptOpcode_END_LOOP), + SI_CMD(ScriptOpcode_USE_BUFFER, SI_VAR(1)), + SI_CMD(ScriptOpcode_BUFFER_READ_1, SI_VAR(2)), + SI_CMD(ScriptOpcode_LOOP, SI_VAR(2)), + SI_CMD(ScriptOpcode_BUFFER_READ_1, SI_VAR(3)), + SI_CMD(ScriptOpcode_CALL, TranslateModel, SI_VAR(3), 0, 0, 0), + SI_CMD(ScriptOpcode_END_LOOP), + SI_CMD(ScriptOpcode_SLEEP_FRAMES, 1), + SI_CMD(ScriptOpcode_END_IF), + SI_CMD(ScriptOpcode_END_SPAWN_THREAD), + SI_CMD(ScriptOpcode_SPAWN_THREAD), + SI_CMD(ScriptOpcode_SET, SI_FLAG(0), 0), + SI_CMD(ScriptOpcode_IF_NE, SI_VAR(2), 0), + SI_CMD(ScriptOpcode_LOOP, 5), + SI_CMD(ScriptOpcode_USE_BUFFER, SI_VAR(2)), + SI_CMD(ScriptOpcode_BUFFER_READ_1, SI_VAR(3)), + SI_CMD(ScriptOpcode_LOOP, SI_VAR(3)), + SI_CMD(ScriptOpcode_BUFFER_READ_1, SI_VAR(4)), + SI_CMD(ScriptOpcode_CALL, SomeMatrixOperation2, SI_VAR(4), SI_FIXED(0.1005859375), SI_FIXED(0.2001953125), SI_VAR(15), 0), + SI_CMD(ScriptOpcode_IF_EQ, SI_FLAG(0), 0), + SI_CMD(ScriptOpcode_SET, SI_FLAG(0), 1), + SI_CMD(ScriptOpcode_CALL, PlaySoundAtModel, SI_VAR(4), 357, 0), + SI_CMD(ScriptOpcode_END_IF), + SI_CMD(ScriptOpcode_END_LOOP), + SI_CMD(ScriptOpcode_SLEEP_FRAMES, 1), + SI_CMD(ScriptOpcode_USE_BUFFER, SI_VAR(2)), + SI_CMD(ScriptOpcode_BUFFER_READ_1, SI_VAR(3)), + SI_CMD(ScriptOpcode_LOOP, SI_VAR(3)), + SI_CMD(ScriptOpcode_BUFFER_READ_1, SI_VAR(4)), + SI_CMD(ScriptOpcode_CALL, SomeMatrixOperation2, SI_VAR(4), SI_FIXED(0.1005859375), SI_FIXED(-0.19921875), SI_VAR(15), 0), + SI_CMD(ScriptOpcode_END_LOOP), + SI_CMD(ScriptOpcode_SLEEP_FRAMES, 1), + SI_CMD(ScriptOpcode_END_LOOP), + SI_CMD(ScriptOpcode_USE_BUFFER, SI_VAR(2)), + SI_CMD(ScriptOpcode_BUFFER_READ_1, SI_VAR(3)), + SI_CMD(ScriptOpcode_LOOP, SI_VAR(3)), + SI_CMD(ScriptOpcode_BUFFER_READ_1, SI_VAR(4)), + SI_CMD(ScriptOpcode_CALL, TranslateModel, SI_VAR(4), 0, 0, 0), + SI_CMD(ScriptOpcode_END_LOOP), + SI_CMD(ScriptOpcode_SLEEP_FRAMES, 1), + SI_CMD(ScriptOpcode_END_IF), + SI_CMD(ScriptOpcode_END_SPAWN_THREAD), + SI_CMD(ScriptOpcode_SPAWN_THREAD), + SI_CMD(ScriptOpcode_IF_NE, SI_VAR(3), 0), + SI_CMD(ScriptOpcode_USE_BUFFER, SI_VAR(3)), + SI_CMD(ScriptOpcode_BUFFER_READ_1, SI_VAR(4)), + SI_CMD(ScriptOpcode_LOOP, SI_VAR(4)), + SI_CMD(ScriptOpcode_BUFFER_READ_1, SI_VAR(5)), + SI_CMD(ScriptOpcode_BUFFER_READ_3, SI_VAR(6), SI_VAR(7), SI_VAR(8)), + SI_CMD(ScriptOpcode_BUFFER_READ_3, SI_VAR(9), SI_VAR(10), SI_VAR(11)), + SI_CMD(ScriptOpcode_IF_EQ, SI_VAR(11), 0), + SI_CMD(ScriptOpcode_CALL, DropItemEntity, SI_VAR(5), SI_VAR(6), SI_VAR(7), SI_VAR(8), SI_VAR(9), SI_VAR(10)), + SI_CMD(ScriptOpcode_ELSE), + SI_CMD(ScriptOpcode_CALL, GetValueByRef, SI_VAR(11), SI_VAR(12)), + SI_CMD(ScriptOpcode_IF_EQ, SI_VAR(12), 0), + SI_CMD(ScriptOpcode_CALL, SetValueByRef, SI_VAR(11), 1), + SI_CMD(ScriptOpcode_CALL, DropItemEntity, SI_VAR(5), SI_VAR(6), SI_VAR(7), SI_VAR(8), SI_VAR(9), SI_VAR(10)), + SI_CMD(ScriptOpcode_END_IF), + SI_CMD(ScriptOpcode_END_IF), + SI_CMD(ScriptOpcode_END_LOOP), + SI_CMD(ScriptOpcode_END_IF), + SI_CMD(ScriptOpcode_END_SPAWN_THREAD), + SI_CMD(ScriptOpcode_SPAWN_THREAD), + SI_CMD(ScriptOpcode_IF_NE, SI_VAR(4), 0), + SI_CMD(ScriptOpcode_USE_BUFFER, SI_VAR(4)), + SI_CMD(ScriptOpcode_BUFFER_READ_1, SI_VAR(5)), + SI_CMD(ScriptOpcode_LOOP, SI_VAR(5)), + SI_CMD(ScriptOpcode_BUFFER_READ_3, SI_VAR(6), SI_VAR(7), SI_VAR(8)), + SI_CMD(ScriptOpcode_CALL, PlayEffect, 20, 0, SI_VAR(6), SI_VAR(7), SI_VAR(8), 100, 0, 0, 0, 0, 0, 0, 0, 0), + SI_CMD(ScriptOpcode_END_LOOP), + SI_CMD(ScriptOpcode_END_IF), + SI_CMD(ScriptOpcode_END_SPAWN_THREAD), + SI_CMD(ScriptOpcode_IF_NE, SI_VAR(5), 0), + SI_CMD(ScriptOpcode_AWAIT_SCRIPT, 0xFE363C85), + SI_CMD(ScriptOpcode_END_IF), + SI_CMD(ScriptOpcode_SLEEP_FRAMES, 15), + SI_CMD(ScriptOpcode_RETURN), + SI_CMD(ScriptOpcode_END) }; // *INDENT-ON* @@ -205,41 +203,36 @@ s32 M(treeEffectVectors_Tree1)[] = { 0x00000002, 0xFFFFFFB0, 0x00000082, 0x00000012, 0x0000001C, 0x00000082, 0x00000027, }; -// *INDENT-OFF* -Script M(script_Tree1_Callback) = { - SI_IF_EQ(SI_SAVE_FLAG(53), 1), - SI_RETURN(), - SI_END_IF(), - SI_IF_EQ(SI_MAP_FLAG(10), 1), - SI_RETURN(), - SI_END_IF(), - SI_WAIT_FRAMES(10), - SI_CALL(0x802D1DFC, SI_VAR(0), SI_VAR(1), SI_VAR(2)), - SI_IF_LT(SI_VAR(0), 0xFFFFFFE2), - SI_CALL(0x802D6CC0, 138, 0xFFFFFFE9, 100, 35, 13, SI_SAVE_FLAG(53)), - SI_ELSE(), - SI_CALL(0x802D6CC0, 138, 0xFFFFFFAB, 100, 16, 13, SI_SAVE_FLAG(53)), - SI_END_IF(), - SI_SET(SI_MAP_FLAG(10), 1), - SI_RETURN(), - SI_END(), -}; -// *INDENT-ON* +Script M(Tree1_Callback) = SCRIPT({ + if SI_SAVE_FLAG(53) == 1 { + return + } + if SI_MAP_FLAG(10) == 1 { + return + } + sleep 10 + GetPlayerPos(SI_VAR(0), SI_VAR(1), SI_VAR(2)) + if SI_VAR(0) < 0xFFFFFFE2 { + MakeItemEntity(138, 0xFFFFFFE9, 100, 35, 13, SI_SAVE_FLAG(53)) + } else { + MakeItemEntity(138, 0xFFFFFFAB, 100, 16, 13, SI_SAVE_FLAG(53)) + } + SI_MAP_FLAG(10) = 1 +}); s32 M(shakeTreeEvent_Tree1)[] = { - M(treeModelList_Tree1_Leaves), M(treeModelList_Tree1_Trunk), 0x00000000, M(treeEffectVectors_Tree1), M(script_Tree1_Callback), + M(treeModelList_Tree1_Leaves), M(treeModelList_Tree1_Trunk), 0x00000000, M(treeEffectVectors_Tree1), M(Tree1_Callback), }; s32 M(triggerCoord_802422A8)[] = { 0xC2280000, 0x00000000, 0xC1500000, 0x00000000, }; -Script M(script_802422B8) = { - SI_SET(SI_VAR(0), M(searchBushEvent_Bush1)), - SI_BIND(M(script_SearchBush_802417F0), TriggerFlag_WALL_INTERACT, 53, NULL), - SI_SET(SI_VAR(0), M(shakeTreeEvent_Tree1)), - SI_BIND(M(script_ShakeTree_80241B50), TriggerFlag_WALL_HAMMER, 52, NULL), - SI_BIND(M(script_ShakeTree_80241B50), TriggerFlag_BOMB, M(triggerCoord_802422A8), NULL), - SI_RETURN(), - SI_END(), -}; +Script M(Script_802422B8) = SCRIPT({ + SI_VAR(0) = M(searchBushEvent_Bush1) + bind M(SearchBush_802417F0) to TriggerFlag_WALL_INTERACT 53 + SI_VAR(0) = M(shakeTreeEvent_Tree1) + bind M(ShakeTree_80241B50) to TriggerFlag_WALL_HAMMER 52 + bind M(ShakeTree_80241B50) to TriggerFlag_BOMB M(triggerCoord_802422A8) +}); + diff --git a/src/world/area_kmr/kmr_03/8C85E0.c b/src/world/area_kmr/kmr_03/8C85E0.c index b2a4a3b6b1..d22e50d611 100644 --- a/src/world/area_kmr/kmr_03/8C85E0.c +++ b/src/world/area_kmr/kmr_03/8C85E0.c @@ -1,90 +1,86 @@ #include "kmr_03.h" -// *INDENT-OFF* -Script M(script_80242340) = { - SI_CALL(0x802CB860, 0, 0xFFFFFEF2, 20, 0xFFFFFFB0), - SI_CALL(0x802CBE2C, 0, 0xFFFFFEF2, 20, 0xFFFFFFB0), - SI_CALL(0x802CBBE4, 0, SI_FIXED(700.0f)), - SI_CALL(0x802CBEF0, 0, SI_FIXED(90.0f)), - SI_CALL(0x802CB79C, 0, 0, 1), - SI_IF_GE(SI_SAVE_VAR(0), 0xFFFFFF89), - SI_CALL(0x802D0EF0, 0, 0xFFFFFC18, 0), - SI_CALL(0x802D0E28, 1), - SI_CALL(0x802D0EF0, 0xFFFFFF20, 20, 0xFFFFFFB0), - SI_CALL(0x802CDCB0, 0xFFFFFFFC, 0xFFFFFF20, 20, 0xFFFFFFB0), - SI_WAIT_FRAMES(20), - SI_CALL(0x802CBEF0, 0, SI_FIXED(3.0f)), - SI_CALL(0x802D1DFC, SI_VAR(0), SI_VAR(1), SI_VAR(2)), - SI_CALL(0x802CB860, 0, SI_VAR(0), SI_VAR(1), SI_VAR(2)), - SI_CALL(0x802CBE2C, 0, SI_VAR(0), SI_VAR(1), SI_VAR(2)), - SI_CALL(0x802CB79C, 0, 0, 1), - SI_CALL(0x802CC354, 0, SI_FIXED(1.0f)), - SI_CALL(0x802CB79C, 0, 0, 0), - SI_CALL(0x802D0E28, 0), - SI_RETURN(), - SI_END_IF(), - SI_CALL(0x802D0E28, 1), - SI_CALL(0x802D0DE4, 1), - SI_CALL(0x802D1DFC, SI_VAR(0), SI_VAR(1), SI_VAR(2)), - SI_CALL(0x802D0EF0, SI_VAR(0), 0xFFFFFC18, SI_VAR(2)), - SI_WAIT_FRAMES(30), - SI_CALL(0x802CBBE4, 0, 220), - SI_CALL(0x802CBEF0, 0, SI_FIXED(1.0f)), - SI_CALL(0x802CB79C, 0, 0, 1), - SI_CALL(0x802CC354, 0, SI_FIXED(1.0f)), - SI_THREAD(), - SI_WAIT_FRAMES(18), - SI_CALL(0x802D2CD8, 373, 0), - SI_WAIT_FRAMES(30), - SI_CALL(0x802D2CD8, 374, 0), - SI_WAIT_FRAMES(28), - SI_CALL(0x802D2CD8, 373, 0), - SI_END_THREAD(), - SI_CALL(0x802D0DA0, 1), - SI_CALL(0x802D1084, 0x10002), - SI_CALL(0x802D0EF0, 0xFFFFFF20, 120, 0xFFFFFFB0), - SI_CALL(0x802D193C, 90, 0), - SI_LABEL(0), - SI_WAIT_FRAMES(1), - SI_CALL(0x802D1DFC, SI_VAR(0), SI_VAR(1), SI_VAR(2)), - SI_ADD(SI_VAR(1), 0xFFFFFFFE), - SI_CALL(0x802D0EF0, SI_VAR(0), SI_VAR(1), SI_VAR(2)), - SI_IF_GT(SI_VAR(1), 86), - SI_GOTO(0), - SI_END_IF(), - SI_CALL(0x802D0EF0, 0xFFFFFECA, 20, 0xFFFFFFB0), - SI_THREAD(), - SI_WAIT_FRAMES(20), - SI_CALL(0x802CBE2C, 0, 0xFFFFFECA, 20, 0xFFFFFFB0), - SI_CALL(0x802CBEF0, 0, SI_FIXED(0.2)), - SI_CALL(0x802CB79C, 0, 0, 1), - SI_END_THREAD(), - SI_CALL(0x802D286C, 0x2800), - SI_CALL(0x802D2520, 0x10002, 5, 5, 1, 1, 0), - SI_WAIT_FRAMES(100), - SI_CALL(0x802CC354, 0, SI_FIXED(1.0f)), - SI_CALL(0x802D2520, 0x10002, 0, 0, 0, 0, 0), - SI_CALL(0x802D0DA0, 0), - SI_CALL(0x802D1084, 0x10006), - SI_WAIT_FRAMES(10), - SI_CALL(0x802D1084, 0x10007), - SI_CALL(0x802D1DFC, SI_VAR(0), SI_VAR(1), SI_VAR(2)), - SI_CALL(0x802D1054, SI_FIXED(1.0f)), - SI_CALL(0x802D18E8, SI_VAR(0), SI_VAR(1), SI_VAR(2), 10), - SI_CALL(0x802D1084, 0x10002), - SI_THREAD(), - SI_CALL(0x802CBEF0, 0, SI_FIXED(3.0f)), - SI_CALL(0x802D1DFC, SI_VAR(0), SI_VAR(1), SI_VAR(2)), - SI_CALL(0x802CB860, 0, SI_VAR(0), SI_VAR(1), SI_VAR(2)), - SI_CALL(0x802CBE2C, 0, SI_VAR(0), SI_VAR(1), SI_VAR(2)), - SI_CALL(0x802CB79C, 0, 0, 1), - SI_CALL(0x802CC354, 0, SI_FIXED(1.0f)), - SI_CALL(0x802CB79C, 0, 0, 0), - SI_END_THREAD(), - SI_WAIT_FRAMES(30), - SI_CALL(0x802D0DE4, 0), - SI_CALL(0x802D0E28, 0), - SI_RETURN(), - SI_END(), -}; -// *INDENT-ON* +Script M(Script_80242340) = SCRIPT({ + UseSettingsFrom(0, 0xFFFFFEF2, 20, 0xFFFFFFB0) + SetPanTarget(0, 0xFFFFFEF2, 20, 0xFFFFFFB0) + SetCamDistance(0, 700.0) + SetCamSpeed(0, 90.0) + PanToTarget(0, 0, 1) + if SI_SAVE_VAR(0) >= 0xFFFFFF89 { + SetPlayerPos(0, 0xFFFFFC18, 0) + DisablePlayerInput(1) + SetPlayerPos(0xFFFFFF20, 20, 0xFFFFFFB0) + SetNpcPos(0xFFFFFFFC, 0xFFFFFF20, 20, 0xFFFFFFB0) + sleep 20 + SetCamSpeed(0, 3.0) + GetPlayerPos(SI_VAR(0), SI_VAR(1), SI_VAR(2)) + UseSettingsFrom(0, SI_VAR(0), SI_VAR(1), SI_VAR(2)) + SetPanTarget(0, SI_VAR(0), SI_VAR(1), SI_VAR(2)) + PanToTarget(0, 0, 1) + WaitForCam(0, 1.0) + PanToTarget(0, 0, 0) + DisablePlayerInput(0) + return + } + DisablePlayerInput(1) + DisablePlayerPhysics(1) + GetPlayerPos(SI_VAR(0), SI_VAR(1), SI_VAR(2)) + SetPlayerPos(SI_VAR(0), 0xFFFFFC18, SI_VAR(2)) + sleep 30 + SetCamDistance(0, 220) + SetCamSpeed(0, 1.0) + PanToTarget(0, 0, 1) + WaitForCam(0, 1.0) + spawn { + sleep 18 + PlaySoundAtPlayer(373, 0) + sleep 30 + PlaySoundAtPlayer(374, 0) + sleep 28 + PlaySoundAtPlayer(373, 0) + } + HidePlayerShadow(1) + SetPlayerAnimation(0x10002) + SetPlayerPos(0xFFFFFF20, 120, 0xFFFFFFB0) + InterpPlayerYaw(90, 0) + 0: + sleep 1 + GetPlayerPos(SI_VAR(0), SI_VAR(1), SI_VAR(2)) + SI_VAR(1) += 0xFFFFFFFE + SetPlayerPos(SI_VAR(0), SI_VAR(1), SI_VAR(2)) + if SI_VAR(1) > 86 { + goto 0 + } + SetPlayerPos(0xFFFFFECA, 20, 0xFFFFFFB0) + spawn { + sleep 20 + SetPanTarget(0, 0xFFFFFECA, 20, 0xFFFFFFB0) + SetCamSpeed(0, 0.2001953125) + PanToTarget(0, 0, 1) + } + 0x802D286C(0x2800) + 0x802D2520(0x10002, 5, 5, 1, 1, 0) + sleep 100 + WaitForCam(0, 1.0) + 0x802D2520(0x10002, 0, 0, 0, 0, 0) + HidePlayerShadow(0) + SetPlayerAnimation(0x10006) + sleep 10 + SetPlayerAnimation(0x10007) + GetPlayerPos(SI_VAR(0), SI_VAR(1), SI_VAR(2)) + SetPlayerJumpscale(1.0) + PlayerJump(SI_VAR(0), SI_VAR(1), SI_VAR(2), 10) + SetPlayerAnimation(0x10002) + spawn { + SetCamSpeed(0, 3.0) + GetPlayerPos(SI_VAR(0), SI_VAR(1), SI_VAR(2)) + UseSettingsFrom(0, SI_VAR(0), SI_VAR(1), SI_VAR(2)) + SetPanTarget(0, SI_VAR(0), SI_VAR(1), SI_VAR(2)) + PanToTarget(0, 0, 1) + WaitForCam(0, 1.0) + PanToTarget(0, 0, 0) + } + sleep 30 + DisablePlayerPhysics(0) + DisablePlayerInput(0) +}); diff --git a/src/world/area_kmr/kmr_03/kmr_03.h b/src/world/area_kmr/kmr_03/kmr_03.h index 2e655ab085..34fd49c070 100644 --- a/src/world/area_kmr/kmr_03/kmr_03.h +++ b/src/world/area_kmr/kmr_03/kmr_03.h @@ -5,4 +5,4 @@ ApiStatus func_80240000_8C7F90(ScriptInstance* script, s32 isInitialCall); Script M(Main); -Script M(script_802406C0); +Script M(Script_802406C0); diff --git a/tools/compile_dsl_macros.py b/tools/compile_dsl_macros.py index fd3722c74e..3a09151895 100755 --- a/tools/compile_dsl_macros.py +++ b/tools/compile_dsl_macros.py @@ -5,7 +5,7 @@ from lark import Lark, exceptions, Tree, Transformer, Visitor, v_args, Token from lark.visitors import Discard import traceback -DEBUG_OUTPUT = None +DEBUG_OUTPUT = "debug.i" def eprint(*args, **kwargs): print(*args, file=stderr, **kwargs) @@ -64,7 +64,7 @@ script_parser = Lark(r""" | "spawn" block -> spawn_block_stmt | "parallel" block -> parallel_block_stmt - call: CNAME "(" [expr ("," expr)* [","]] ")" + call: (CNAME | HEX_INT) "(" [expr ("," expr)* [","]] ")" if_stmt: "if" expr cond_op expr block ["else" block] @@ -102,7 +102,7 @@ script_parser = Lark(r""" ?expr: c_const_expr | ESCAPED_STRING | SIGNED_INT - | DECIMAL + | SIGNED_DECIMAL | HEX_INT | CNAME @@ -131,6 +131,7 @@ script_parser = Lark(r""" %import common.HEXDIGIT %import common.ESCAPED_STRING + SIGNED_DECIMAL: ["+"|"-"] DECIMAL HEX_INT: ["+"|"-"] "0x" HEXDIGIT+ LINE_COMMENT: "//" /[^\n]*/ NEWLINE @@ -190,18 +191,18 @@ class CmdCtx(): class RootCtx(CmdCtx): def break_opcode(self, meta): - return 0x01 + return "ScriptOpcode_END" class IfCtx(CmdCtx): pass class MatchCtx(CmdCtx): def break_opcode(self, meta): - return 0x22 + return "ScriptOpcode_BREAK_MATCH" class LoopCtx(CmdCtx): def break_opcode(self, meta): - return 0x07 + return "ScriptOpcode_BREAK_LOOP" class LoopUntilCtx(CmdCtx): def break_opcode(self, meta): @@ -282,7 +283,7 @@ class Compile(Transformer): def c_const_expr(self, tree): return f"(Bytecode){tree.children[0]}" - def DECIMAL(self, v): + def SIGNED_DECIMAL(self, v): # fixed-point return int((float(v) * 1024) - 230000000) @@ -307,22 +308,32 @@ class Compile(Transformer): def call(self, tree): # TODO: type checking etc - return Cmd(0x43, *tree.children, meta=tree.meta) + return Cmd("ScriptOpcode_CALL", *tree.children, meta=tree.meta) def if_stmt(self, tree): - a, op, b, block = tree.children - for cmd in block: - if isinstance(cmd, BaseCmd): - cmd.add_context(IfCtx()) - return [ Cmd(op["if"], a, b, meta=tree.meta), *block, Cmd(0x13) ] + if len(tree.children) == 4: # no else + a, op, b, block = tree.children + for cmd in block: + if isinstance(cmd, BaseCmd): + cmd.add_context(IfCtx()) + return [ Cmd(op["if"], a, b, meta=tree.meta), *block, Cmd("ScriptOpcode_END_IF") ] + else: + a, op, b, block, else_block = tree.children + for cmd in block: + if isinstance(cmd, BaseCmd): + cmd.add_context(IfCtx()) + for cmd in else_block: + if isinstance(cmd, BaseCmd): + cmd.add_context(IfCtx()) + return [ Cmd(op["if"], a, b, meta=tree.meta), *block, Cmd("ScriptOpcode_ELSE"), *else_block, Cmd("ScriptOpcode_END_IF") ] - def cond_op_eq(self, tree): return { "if": 0x0A, "case": 0x16 } - def cond_op_ne(self, tree): return { "if": 0x0B, "case": 0x17 } - def cond_op_lt(self, tree): return { "if": 0x0C, "case": 0x18 } - def cond_op_gt(self, tree): return { "if": 0x0D, "case": 0x19 } - def cond_op_le(self, tree): return { "if": 0x0E, "case": 0x1A } - def cond_op_ge(self, tree): return { "if": 0x0F, "case": 0x1B } - def cond_op_flag(self, tree): return { "if": 0x10, "case": 0x1F } + def cond_op_eq(self, tree): return { "if": "ScriptOpcode_IF_EQ", "case": "ScriptOpcode_CASE_EQ" } + def cond_op_ne(self, tree): return { "if": "ScriptOpcode_IF_NE", "case": "ScriptOpcode_CASE_NE" } + def cond_op_lt(self, tree): return { "if": "ScriptOpcode_IF_LT", "case": "ScriptOpcode_CASE_LT" } + def cond_op_gt(self, tree): return { "if": "ScriptOpcode_IF_GT", "case": "ScriptOpcode_CASE_GT" } + def cond_op_le(self, tree): return { "if": "ScriptOpcode_IF_LE", "case": "ScriptOpcode_CASE_LE" } + def cond_op_ge(self, tree): return { "if": "ScriptOpcode_IF_GE", "case": "ScriptOpcode_CASE_GE" } + def cond_op_flag(self, tree): return { "if": "ScriptOpcode_IF_FLAG", "case": "ScriptOpcode_CASE_FLAG" } def match_stmt(self, tree): expr = tree.children[0] @@ -331,7 +342,6 @@ class Compile(Transformer): for node in tree.children[1:]: if type(node) is list: for el in node: - eprint(el) if type(el) is list: cases += el else: @@ -344,13 +354,13 @@ class Compile(Transformer): raise Exception(f"uncompiled match case: {cmd}") return [ - Cmd(0x14, expr, meta=tree.meta), + Cmd("ScriptOpcode_MATCH", expr, meta=tree.meta), *cases, - Cmd(0x24), + Cmd("ScriptOpcode_END_MATCH"), ] def match_const_stmt(self, tree): commands = self.match_stmt(tree) - commands[0].opcode = 0x15 + commands[0].opcode = "ScriptOpcode_MATCH_CONST" return commands def match_cases(self, tree): if len(tree.children) == 1: @@ -359,27 +369,27 @@ class Compile(Transformer): return [tree.children[0], *tree.children[2]] def case_else(self, tree): - return [Cmd(0x1C), *tree.children[0]] + return [Cmd("ScriptOpcode_ELSE"), *tree.children[0]] def case_op(self, tree): if len(tree.children) == 4: op, expr, multi_case, block = tree.children - return [Cmd(op["case"], expr), *multi_case, *block, Cmd(0x20)] + return [Cmd(op["case"], expr), *multi_case, *block, Cmd("ScriptOpcode_END_CASE_MULTI")] else: op, expr, block = tree.children return [Cmd(op["case"], expr), *block] def case_range(self, tree): if len(tree.children) == 4: a, b, multi_case, block = tree.children - return [Cmd(0x21, a, b), *multi_case, *block, Cmd(0x20)] + return [Cmd("ScriptOpcode_CASE_RANGE", a, b), *multi_case, *block, Cmd("ScriptOpcode_END_CASE_MULTI")] else: a, b, block = tree.children - return [Cmd(0x21, a, b), *block] + return [Cmd("ScriptOpcode_CASE_RANGE", a, b), *block] def case_multi(self, tree): multi_case, block = tree.children - return [*multi_case, *block, Cmd(0x20)] + return [*multi_case, *block, Cmd("ScriptOpcode_END_CASE_MULTI")] def multi_case(self, tree): - return [Cmd(0x1D, expr) for expr in tree.children] + return [Cmd("ScriptOpcode_CASE_MULTI_EQ", expr) for expr in tree.children] def loop_stmt(self, tree): expr = tree.children.pop(0) if len(tree.children) > 1 else 0 @@ -389,7 +399,7 @@ class Compile(Transformer): if isinstance(cmd, BaseCmd): cmd.add_context(LoopCtx()) - return [ Cmd(0x05, expr, meta=tree.meta), *block, Cmd(0x06) ] + return [ Cmd("ScriptOpcode_LOOP", expr, meta=tree.meta), *block, Cmd("ScriptOpcode_END_LOOP") ] # loop..until pseudoinstruction def loop_until_stmt(self, tree): @@ -402,21 +412,21 @@ class Compile(Transformer): label = self.alloc.gen_label() return [ - Cmd(0x03, label, meta=tree.meta), # label: + Cmd("ScriptOpcode_LABEL", label, meta=tree.meta), *block, - Cmd(op["if"], a, b, meta=tree.meta), # if a op b - Cmd(0x04, label, meta=tree.meta), # goto label - Cmd(0x13, meta=tree.meta), # end if + Cmd(op["if"], a, b, meta=tree.meta), + Cmd("ScriptOpcode_GOTO", label, meta=tree.meta), + Cmd("ScriptOpcode_END_IF", meta=tree.meta), ] def return_stmt(self, tree): - return Cmd(0x02, meta=tree.meta) + return Cmd("ScriptOpcode_RETURN", meta=tree.meta) def break_stmt(self, tree): return BreakCmd(meta=tree.meta) def set_group(self, tree): - return Cmd(0x4D, tree.children[0], meta=tree.meta) + return Cmd("ScriptOpcode_SET_GROUP", tree.children[0], meta=tree.meta) def suspend_stmt(self, tree): commands = [] @@ -442,44 +452,44 @@ class Compile(Transformer): def control_type_group(self, tree): return { "__control_type__": "group", - "suspend": 0x4F, - "resume": 0x50, + "suspend": "ScriptOpcode_SUSPEND_GROUP", + "resume": "ScriptOpcode_RESUME_GROUP", } def control_type_others(self, tree): return { "__control_type__": "others", - "suspend": 0x51, - "resume": 0x52, + "suspend": "ScriptOpcode_SUSPEND_OTHERS", + "resume": "ScriptOpcode_RESUME_OTHERS", } def control_type_script(self, tree): return { "__control_type__": "script", - "suspend": 0x53, - "resume": 0x54, - "kill": 0x49, + "suspend": "ScriptOpcode_SUSPEND_SCRIPT", + "resume": "ScriptOpcode_RESUME_SCRIPT", + "kill": "ScriptOpcode_KILL_SCRIPT", } def sleep_stmt(self, tree): - return Cmd(0x08, tree.children[0], meta=tree.meta) + return Cmd("ScriptOpcode_SLEEP_FRAMES", tree.children[0], meta=tree.meta) def sleep_secs_stmt(self, tree): - return Cmd(0x09, tree.children[0], meta=tree.meta) + return Cmd("ScriptOpcode_SLEEP_SECS", tree.children[0], meta=tree.meta) def bind_stmt(self, tree): script, trigger, target = tree.children - return Cmd(0x47, script, trigger, target, 1, 0, meta=tree.meta) + return Cmd("ScriptOpcode_BIND_TRIGGER", script, trigger, target, 1, 0, meta=tree.meta) def bind_set_stmt(self, tree): ret, script, trigger, target = tree.children - return Cmd(0x47, script, trigger, target, 1, ret, meta=tree.meta) + return Cmd("ScriptOpcode_BIND_TRIGGER", script, trigger, target, 1, ret, meta=tree.meta) def unbind_stmt(self, tree): - return Cmd(0x48, meta=tree.meta) + return Cmd("ScriptOpcode_UNBIND", meta=tree.meta) def spawn_stmt(self, tree): - return Cmd(0x44, tree.children[0], meta=tree.meta) + return Cmd("ScriptOpcode_SPAWN_SCRIPT", tree.children[0], meta=tree.meta) def spawn_set_stmt(self, tree): lhs, script = tree.children - return Cmd(0x45, script, lhs, meta=tree.meta) + return Cmd("ScriptOpcode_SPAWN_SCRIPT_GET_ID", script, lhs, meta=tree.meta) def await_stmt(self, tree): - return Cmd(0x46, tree.children[0], meta=tree.meta) + return Cmd("ScriptOpcode_AWAIT_SCRIPT", tree.children[0], meta=tree.meta) def set_stmt(self, tree): lhs, opcodes, rhs = tree.children @@ -507,56 +517,56 @@ class Compile(Transformer): def set_op_eq(self, tree): return { "__op__": "=", - "int": 0x24, - "const": 0x25, - "float": 0x26, + "int": "ScriptOpcode_SET", + "const": "ScriptOpcode_SET_CONST", + "float": "ScriptOpcode_SET_F", } def set_op_add(self, tree): return { "__op__": "+", - "int": 0x27, - "float": 0x2C, + "int": "ScriptOpcode_ADD", + "float": "ScriptOpcode_ADD_F", } def set_op_sub(self, tree): return { "__op__": "-", - "int": 0x28, - "float": 0x2D, + "int": "ScriptOpcode_SUB", + "float": "ScriptOpcode_SUB_F", } def set_op_mul(self, tree): return { "__op__": "*", - "int": 0x29, - "float": 0x2E, + "int": "ScriptOpcode_MUL", + "float": "ScriptOpcode_MUL_F", } def set_op_div(self, tree): return { "__op__": "/", - "int": 0x2A, - "float": 0x2F, + "int": "ScriptOpcode_DIV", + "float": "ScriptOpcode_DIV_F", } def set_op_mod(self, tree): return { "__op__": "%", - "int": 0x2B, + "int": "ScriptOpcode_MOD", } def set_op_and(self, tree): return { "__op__": "&", - "int": 0x3F, - "const": 0x41, + "int": "ScriptOpcode_AND", + "const": "ScriptOpcode_AND_CONST", } def set_op_or(self, tree): return { "__op__": "|", - "int": 0x40, - "const": 0x42, + "int": "ScriptOpcode_OR", + "const": "ScriptOpcode_OR_CONST", } def label_decl(self, tree): if len(tree.children) == 1: label = tree.children[0] - return Cmd(0x03, label, meta=tree.meta) + return Cmd("ScriptOpcode_LABEL", label, meta=tree.meta) else: label, cmd_or_block = tree.children @@ -568,12 +578,12 @@ class Compile(Transformer): cmd.add_context(LabelCtx(label)) return [ - Cmd(0x03, label, meta=tree.meta), + Cmd("ScriptOpcode_LABEL", label, meta=tree.meta), *cmd_or_block ] def label_goto(self, tree): label = tree.children[0] - return Cmd(0x04, label, meta=tree.meta) + return Cmd("ScriptOpcode_GOTO", label, meta=tree.meta) def label(self, tree): name = tree.children[0] if name in self.alloc.labels: @@ -591,13 +601,13 @@ class Compile(Transformer): for cmd in block: if isinstance(cmd, BaseCmd): cmd.add_context(SpawnCtx()) - return [ Cmd(0x56, meta=tree.meta), *block, Cmd(0x57) ] + return [ Cmd("ScriptOpcode_SPAWN_THREAD", meta=tree.meta), *block, Cmd("ScriptOpcode_END_SPAWN_THREAD") ] def parallel_block_stmt(self, tree): block, = tree.children for cmd in block: if isinstance(cmd, BaseCmd): cmd.add_context(ParallelCtx()) - return [ Cmd(0x58, meta=tree.meta), *block, Cmd(0x59) ] + return [ Cmd("ScriptOpcode_PARALLEL_THREAD", meta=tree.meta), *block, Cmd("ScriptOpcode_END_PARALLEL_THREAD") ] def compile_script(s): tree = script_parser.parse(s) @@ -607,8 +617,8 @@ def compile_script(s): commands = Compile().transform(tree) # add RETURN END if no explicit END (top-level `break') was given - if next((cmd for cmd in commands if cmd.opcode() == 0x01), None) == None: - commands += (Cmd(0x02), Cmd(0x01)) + if next((cmd for cmd in commands if cmd.opcode() == "ScriptOpcode_END"), None) == None: + commands += (Cmd("ScriptOpcode_RETURN"), Cmd("ScriptOpcode_END")) return commands diff --git a/tools/disasm_script.py b/tools/disasm_script.py index ca0b8da6ba..436152bdf2 100755 --- a/tools/disasm_script.py +++ b/tools/disasm_script.py @@ -136,14 +136,14 @@ class ScriptDisassembler: if trigger == 0x00010000: trigger = "TriggerFlag_SAVE_FLAG_SET" if trigger == 0x00020000: trigger = "TriggerFlag_AREA_FLAG_SET" if trigger == 0x00100000: trigger = "TriggerFlag_BOMB" - return trigger + return f"0x{trigger:X}" if type(trigger) is int else trigger def read_word(self): return int.from_bytes(self.bytes.read(4), byteorder="big") def disassemble_command(self, opcode, argc, argv): if opcode == 0x01: - self.write_line("SI_END(),") + self.write_line("SI_CMD(ScriptOpcode_END)") self.indent -= 1 if self.indent_used: @@ -156,167 +156,195 @@ class ScriptDisassembler: self.write_line("};") self.done = True - elif opcode == 0x02: self.write_line(f"SI_RETURN(),") - elif opcode == 0x03: self.write_line(f"SI_LABEL({self.var(argv[0])}),") - elif opcode == 0x04: self.write_line(f"SI_GOTO({self.var(argv[0])}),") + elif opcode == 0x02: self.write_line(f"SI_CMD(ScriptOpcode_RETURN),") + elif opcode == 0x03: self.write_line(f"SI_CMD(ScriptOpcode_LABEL, {self.var(argv[0])}),") + elif opcode == 0x04: self.write_line(f"SI_CMD(ScriptOpcode_GOTO, {self.var(argv[0])}),") elif opcode == 0x05: - self.write_line(f"SI_LOOP({self.var(argv[0])}),") + self.write_line(f"SI_CMD(ScriptOpcode_LOOP, {self.var(argv[0])}),") self.indent += 1 elif opcode == 0x06: self.indent -= 1 - self.write_line("SI_END_LOOP(),") - elif opcode == 0x07: self.write_line(f"SI_BREAK_LOOP(),") - elif opcode == 0x08: self.write_line(f"SI_WAIT_FRAMES({self.var(argv[0])}),") - elif opcode == 0x09: self.write_line(f"SI_WAIT_SECS({self.var(argv[0])}),") + self.write_line("SI_CMD(ScriptOpcode_END_LOOP),") + elif opcode == 0x07: self.write_line(f"SI_CMD(ScriptOpcode_BREAK_LOOP),") + elif opcode == 0x08: self.write_line(f"SI_CMD(ScriptOpcode_SLEEP_FRAMES, {self.var(argv[0])}),") + elif opcode == 0x09: self.write_line(f"SI_CMD(ScriptOpcode_SLEEP_SECS, {self.var(argv[0])}),") elif opcode == 0x0A: - self.write_line(f"SI_IF_EQ({self.var(argv[0])}, {self.var(argv[1])}),") + self.write_line(f"SI_CMD(ScriptOpcode_IF_EQ, {self.var(argv[0])}, {self.var(argv[1])}),") self.indent += 1 elif opcode == 0x0B: - self.write_line(f"SI_IF_NE({self.var(argv[0])}, {self.var(argv[1])}),") + self.write_line(f"SI_CMD(ScriptOpcode_IF_NE, {self.var(argv[0])}, {self.var(argv[1])}),") self.indent += 1 elif opcode == 0x0C: - self.write_line(f"SI_IF_LT({self.var(argv[0])}, {self.var(argv[1])}),") + self.write_line(f"SI_CMD(ScriptOpcode_IF_LT, {self.var(argv[0])}, {self.var(argv[1])}),") self.indent += 1 elif opcode == 0x0D: - self.write_line(f"SI_IF_GT({self.var(argv[0])}, {self.var(argv[1])}),") + self.write_line(f"SI_CMD(ScriptOpcode_IF_GT, {self.var(argv[0])}, {self.var(argv[1])}),") self.indent += 1 elif opcode == 0x0E: - self.write_line(f"SI_IF_LE({self.var(argv[0])}, {self.var(argv[1])}),") + self.write_line(f"SI_CMD(ScriptOpcode_IF_LE, {self.var(argv[0])}, {self.var(argv[1])}),") self.indent += 1 elif opcode == 0x0F: - self.write_line(f"SI_IF_GE({self.var(argv[0])}, {self.var(argv[1])}),") + self.write_line(f"SI_CMD(ScriptOpcode_IF_GE, {self.var(argv[0])}, {self.var(argv[1])}),") self.indent += 1 elif opcode == 0x10: - self.write_line(f"SI_IF_BITS_ON({self.var(argv[0])}, {self.var(argv[1])}),") + self.write_line(f"SI_CMD(ScriptOpcode_IF_FLAG, {self.var(argv[0])}, {self.var(argv[1])}),") self.indent += 1 elif opcode == 0x11: - self.write_line(f"SI_IF_BITS_OFF({self.var(argv[0])}, {self.var(argv[1])}),") + self.write_line(f"SI_CMD(ScriptOpcode_IF_NOT_FLAG, ({self.var(argv[0])}, {self.var(argv[1])}),") self.indent += 1 elif opcode == 0x12: self.indent -= 1 - self.write_line(f"SI_ELSE(),") + self.write_line(f"SI_CMD(ScriptOpcode_ELSE),") self.indent += 1 elif opcode == 0x13: self.indent -= 1 - self.write_line(f"SI_END_IF(),") + self.write_line(f"SI_CMD(ScriptOpcode_END_IF),") elif opcode == 0x14: - self.write_line(f"SI_SWITCH({self.var(argv[0])}),") + self.write_line(f"SI_CMD(ScriptOpcode_MATCH, {self.var(argv[0])}),") self.indent += 2 elif opcode == 0x15: - self.write_line(f"SI_SWITCH_CONST(0x{argv[0]:X}),") + self.write_line(f"SI_CMD(ScriptOpcode_MATCH_CONST, 0x{argv[0]:X}),") self.indent += 2 elif opcode == 0x16: self.indent -= 1 - self.write_line(f"SI_CASE_EQ({self.var(argv[0])}),") + self.write_line(f"SI_CMD(ScriptOpcode_CASE_EQ, {self.var(argv[0])}),") self.indent += 1 elif opcode == 0x17: self.indent -= 1 - self.write_line(f"SI_CASE_NE({self.var(argv[0])}),") + self.write_line(f"SI_CMD(ScriptOpcode_CASE_NE, {self.var(argv[0])}),") self.indent += 1 elif opcode == 0x18: self.indent -= 1 - self.write_line(f"SI_CASE_LT({self.var(argv[0])}),") + self.write_line(f"SI_CMD(ScriptOpcode_CASE_LT, {self.var(argv[0])}),") self.indent += 1 elif opcode == 0x19: self.indent -= 1 - self.write_line(f"SI_CASE_GT({self.var(argv[0])}),") + self.write_line(f"SI_CMD(ScriptOpcode_CASE_GT, {self.var(argv[0])}),") self.indent += 1 elif opcode == 0x1A: self.indent -= 1 - self.write_line(f"SI_CASE_LE({self.var(argv[0])}),") + self.write_line(f"SI_CMD(ScriptOpcode_CASE_LE, {self.var(argv[0])}),") self.indent += 1 elif opcode == 0x1B: self.indent -= 1 - self.write_line(f"SI_CASE_GE({self.var(argv[0])}),") + self.write_line(f"SI_CMD(ScriptOpcode_CASE_GE, {self.var(argv[0])}),") self.indent += 1 elif opcode == 0x1C: self.indent -= 1 - self.write_line(f"SI_CASE_DEFAULT(),") + self.write_line(f"SI_CMD(ScriptOpcode_CASE_ELSE),") self.indent += 1 elif opcode == 0x1D: self.indent -= 1 - self.write_line(f"SI_CASE_OR_EQ({self.var(argv[0])}),") + self.write_line(f"SI_CMD(ScriptOpcode_CASE_MULTI_EQ, {self.var(argv[0])}),") + self.indent += 1 + elif opcode == 0x1E: + self.indent -= 1 + self.write_line(f"SI_CMD(ScriptOpcode_CASE_MULTI_NE, {self.var(argv[0])}),") self.indent += 1 - # opcode 0x1E? elif opcode == 0x1F: self.indent -= 1 - self.write_line(f"SI_CASE_BITS_ON({self.var(argv[0])}),") + self.write_line(f"SI_CMD(ScriptOpcode_CASE_FLAG, {self.var(argv[0])}),") self.indent += 1 elif opcode == 0x20: self.indent -= 1 - self.write_line(f"SI_END_MULTI_CASE(),") + self.write_line(f"SI_CMD(ScriptOpcode_END_CASE_MULTI),") self.indent += 1 elif opcode == 0x21: self.indent -= 1 - self.write_line(f"SI_CASE_RANGE({self.var(argv[0])}, {self.var(argv[1])}),") + self.write_line(f"SI_CMD(ScriptOpcode_CASE_RANGE, {self.var(argv[0])}, {self.var(argv[1])}),") self.indent += 1 - elif opcode == 0x22: self.write_line(f"SI_BREAK_CASE(),") + elif opcode == 0x22: self.write_line(f"SI_CMD(ScriptOpcode_BREAK_CASE),") elif opcode == 0x23: self.indent -= 2 - self.write_line(f"SI_END_SWITCH(),") - elif opcode == 0x24: self.write_line(f"SI_SET({self.var(argv[0])}, {self.var(argv[1])}),") - elif opcode == 0x25: self.write_line(f"SI_SET_CONST({self.var(argv[0])}, 0x{argv[1]:X}),") - elif opcode == 0x26: self.write_line(f"SI_SET_F({self.var(argv[0])}, {self.var(argv[1])}),") - elif opcode == 0x27: self.write_line(f"SI_ADD({self.var(argv[0])}, {self.var(argv[1])}),") - elif opcode == 0x28: self.write_line(f"SI_SUB({self.var(argv[0])}, {self.var(argv[1])}),") - elif opcode == 0x29: self.write_line(f"SI_MUL({self.var(argv[0])}, {self.var(argv[1])}),") - elif opcode == 0x2A: self.write_line(f"SI_DIV({self.var(argv[0])}, {self.var(argv[1])}),") - elif opcode == 0x2B: self.write_line(f"SI_MOD({self.var(argv[0])}, {self.var(argv[1])}),") - elif opcode == 0x2C: self.write_line(f"SI_ADD_F({self.var(argv[0])}, {self.var(argv[1])}),") - elif opcode == 0x2D: self.write_line(f"SI_SUB_F({self.var(argv[0])}, {self.var(argv[1])}),") - elif opcode == 0x2E: self.write_line(f"SI_MUL_F({self.var(argv[0])}, {self.var(argv[1])}),") - elif opcode == 0x2F: self.write_line(f"SI_DIV_F({self.var(argv[0])}, {self.var(argv[1])}),") - elif opcode == 0x30: self.write_line(f"SI_USE_BUFFER({self.var(argv[0])}),") - # TODO: SI_BUF commands - elif opcode == 0x3C: self.write_line(f"SI_USE_ARRAY({self.var(argv[0])}),") - elif opcode == 0x3D: self.write_line(f"SI_NEW_ARRAY({self.var(argv[0])}, {self.var(argv[1])}),") - elif opcode == 0x3E: self.write_line(f"SI_USE_FLAGS({self.var(argv[0])}),") - elif opcode == 0x3F: self.write_line(f"SI_AND({self.var(argv[0])}, {self.var(argv[1])}),") - elif opcode == 0x40: self.write_line(f"SI_OR({self.var(argv[0])}, {self.var(argv[1])}),") - elif opcode == 0x41: self.write_line(f"SI_AND_CONST({self.var(argv[0])}, 0x{argv[1]:X})") - elif opcode == 0x42: self.write_line(f"SI_OR_CONST({self.var(argv[0])}, 0x{argv[1]:X})") + self.write_line(f"SI_CMD(ScriptOpcode_END_MATCH),") + elif opcode == 0x24: self.write_line(f"SI_CMD(ScriptOpcode_SET, {self.var(argv[0])}, {self.var(argv[1])}),") + elif opcode == 0x25: self.write_line(f"SI_CMD(ScriptOpcode_SET_CONST, {self.var(argv[0])}, 0x{argv[1]:X}),") + elif opcode == 0x26: self.write_line(f"SI_CMD(ScriptOpcode_SET_F, {self.var(argv[0])}, {self.var(argv[1])}),") + elif opcode == 0x27: self.write_line(f"SI_CMD(ScriptOpcode_ADD, {self.var(argv[0])}, {self.var(argv[1])}),") + elif opcode == 0x28: self.write_line(f"SI_CMD(ScriptOpcode_SUB, {self.var(argv[0])}, {self.var(argv[1])}),") + elif opcode == 0x29: self.write_line(f"SI_CMD(ScriptOpcode_MUL, {self.var(argv[0])}, {self.var(argv[1])}),") + elif opcode == 0x2A: self.write_line(f"SI_CMD(ScriptOpcode_DIV, {self.var(argv[0])}, {self.var(argv[1])}),") + elif opcode == 0x2B: self.write_line(f"SI_CMD(ScriptOpcode_MOD, {self.var(argv[0])}, {self.var(argv[1])}),") + elif opcode == 0x2C: self.write_line(f"SI_CMD(ScriptOpcode_ADD_F, {self.var(argv[0])}, {self.var(argv[1])}),") + elif opcode == 0x2D: self.write_line(f"SI_CMD(ScriptOpcode_SUB_F, {self.var(argv[0])}, {self.var(argv[1])}),") + elif opcode == 0x2E: self.write_line(f"SI_CMD(ScriptOpcode_MUL_F, {self.var(argv[0])}, {self.var(argv[1])}),") + elif opcode == 0x2F: self.write_line(f"SI_CMD(ScriptOpcode_DIV_F, {self.var(argv[0])}, {self.var(argv[1])}),") + elif opcode == 0x30: self.write_line(f"SI_CMD(ScriptOpcode_USE_BUFFER, {self.var(argv[0])}),") + elif opcode == 0x31: + args = ["ScriptOpcode_BUFFER_READ_1",*map(self.var, argv)] + self.write_line(f"SI_CMD({', '.join(args)}),") + elif opcode == 0x32: + args = ["ScriptOpcode_BUFFER_READ_2",*map(self.var, argv)] + self.write_line(f"SI_CMD({', '.join(args)}),") + elif opcode == 0x33: + args = ["ScriptOpcode_BUFFER_READ_3",*map(self.var, argv)] + self.write_line(f"SI_CMD({', '.join(args)}),") + elif opcode == 0x34: + args = ["ScriptOpcode_BUFFER_READ_4",*map(self.var, argv)] + self.write_line(f"SI_CMD({', '.join(args)}),") + elif opcode == 0x35: + args = ["ScriptOpcode_BUFFER_PEEK",*map(self.var, argv)] + self.write_line(f"SI_CMD({', '.join(args)}),") + elif opcode == 0x36: self.write_line(f"SI_CMD(ScriptOpcode_USE_BUFFER_f, {self.var(argv[0])}),") + elif opcode == 0x37: + args = ["ScriptOpcode_BUFFER_READ_1_F",*map(self.var, argv)] + self.write_line(f"SI_CMD({', '.join(args)}),") + elif opcode == 0x38: + args = ["ScriptOpcode_BUFFER_READ_2_F",*map(self.var, argv)] + self.write_line(f"SI_CMD({', '.join(args)}),") + elif opcode == 0x39: + args = ["ScriptOpcode_BUFFER_READ_3_F",*map(self.var, argv)] + self.write_line(f"SI_CMD({', '.join(args)}),") + elif opcode == 0x3A: + args = ["ScriptOpcode_BUFFER_READ_4_F",*map(self.var, argv)] + self.write_line(f"SI_CMD({', '.join(args)}),") + elif opcode == 0x3B: + args = ["ScriptOpcode_BUFFER_PEEK_F",*map(self.var, argv)] + self.write_line(f"SI_CMD({', '.join(args)}),") + elif opcode == 0x3C: self.write_line(f"SI_CMD(ScriptOpcode_USE_ARRAY, {self.var(argv[0])}),") + elif opcode == 0x3D: self.write_line(f"SI_CMD(ScriptOpcode_NEW_ARRAY, {self.var(argv[0])}, {self.var(argv[1])}),") + elif opcode == 0x3E: self.write_line(f"SI_CMD(ScriptOpcode_USE_FLAGS, {self.var(argv[0])}),") + elif opcode == 0x3F: self.write_line(f"SI_CMD(ScriptOpcode_AND, {self.var(argv[0])}, {self.var(argv[1])}),") + elif opcode == 0x40: self.write_line(f"SI_CMD(ScriptOpcode_OR, {self.var(argv[0])}, {self.var(argv[1])}),") + elif opcode == 0x41: self.write_line(f"SI_CMD(ScriptOpcode_AND_CONST, {self.var(argv[0])}, 0x{argv[1]:X})") + elif opcode == 0x42: self.write_line(f"SI_CMD(ScriptOpcode_OR_CONST, {self.var(argv[0])}, 0x{argv[1]:X})") elif opcode == 0x43: - argv_str = "" - for arg in argv[1:]: - argv_str += ", " - argv_str += self.var(arg) - - self.write_line(f"SI_CALL({self.addr_ref(argv[0])}{argv_str}),") - elif opcode == 0x44: self.write_line(f"SI_EXEC({self.addr_ref(argv[0])}),") - elif opcode == 0x45: self.write_line(f"SI_EXEC_GET_ID({self.addr_ref(argv[0])}, {self.var(argv[1])}),") - elif opcode == 0x46: self.write_line(f"SI_EXEC_WAIT({self.addr_ref(argv[0])}),") + args = ["ScriptOpcode_CALL", self.addr_ref(argv[0]), *map(self.var, argv[1:])] + self.write_line(f"SI_CMD({', '.join(args)}),") + elif opcode == 0x44: self.write_line(f"SI_CMD(ScriptOpcode_SPAWN, {self.addr_ref(argv[0])}),") + elif opcode == 0x45: self.write_line(f"SI_CMD(ScriptOpcode_SPAWN_GET_ID, {self.addr_ref(argv[0])}, {self.var(argv[1])}),") + elif opcode == 0x46: self.write_line(f"SI_CMD(ScriptOpcode_AWAIT_SCRIPT, {self.addr_ref(argv[0])}),") elif opcode == 0x47: - assert argv[3] == 1 - self.write_line(f"SI_BIND({self.addr_ref(argv[0])}, {self.trigger(argv[1])}, {self.var(argv[2])}, {'NULL' if argv[4] == 0 else self.var(argv[4])}),") - elif opcode == 0x48: self.write_line(f"SI_UNBIND_ME(),") - elif opcode == 0x49: self.write_line(f"SI_KILL({self.var(argv[0])}),") - elif opcode == 0x4A: self.write_line(f"SI_JUMP({self.var(argv[0])}),") - elif opcode == 0x4B: self.write_line(f"SI_PRIORITY({self.var(argv[0])}),") - elif opcode == 0x4C: self.write_line(f"SI_TIMESCALE({self.var(argv[0])}),") - elif opcode == 0x4D: self.write_line(f"SI_GROUP({self.var(argv[0])}),") + args = ["ScriptOpcode_BIND_TRIGGER", self.addr_ref(argv[0]), self.trigger(argv[1]), *map(self.var, argv[2:])] + self.write_line(f"SI_CMD({', '.join(args)}),") + elif opcode == 0x48: self.write_line(f"SI_CMD(ScriptOpcode_UNBIND),") + elif opcode == 0x49: self.write_line(f"SI_CMD(ScriptOpcode_KILL_SCRIPT, {self.var(argv[0])}),") + elif opcode == 0x4A: self.write_line(f"SI_CMD(ScriptOpcode_JUMP, {self.var(argv[0])}),") + elif opcode == 0x4B: self.write_line(f"SI_CMD(ScriptOpcode_SET_PRIORITY, {self.var(argv[0])}),") + elif opcode == 0x4C: self.write_line(f"SI_CMD(ScriptOpcode_SET_TIMESCALE, {self.var(argv[0])}),") + elif opcode == 0x4D: self.write_line(f"SI_CMD(ScriptOpcode_SET_GROUP, {self.var(argv[0])}),") elif opcode == 0x4E: - assert argv[4] == 0 - assert argv[5] == 1 - self.write_line(f"SI_BIND_PADLOCK({self.addr_ref(argv[0])}, {self.trigger(argv[1])}, {self.var(argv[2])}, {self.var(argv[3])}),") - elif opcode == 0x4F: self.write_line(f"SI_SUSPEND_GROUP({self.var(argv[0])}),") - elif opcode == 0x50: self.write_line(f"SI_RESUME_GROUP({self.var(argv[0])}),") - elif opcode == 0x51: self.write_line(f"SI_SUSPEND_GROUP_NOT_ME({self.var(argv[0])}),") - elif opcode == 0x52: self.write_line(f"SI_RESUME_GROUP_NOT_ME({self.var(argv[0])}),") - elif opcode == 0x53: self.write_line(f"SI_SUSPEND({self.var(argv[0])}),") - elif opcode == 0x54: self.write_line(f"SI_RESUME({self.var(argv[0])}),") - elif opcode == 0x55: self.write_line(f"SI_EXISTS({self.var(argv[0])}),") + args = ["ScriptOpcode_BIND_TRIGGER", self.addr_ref(argv[0]), self.trigger(argv[1]), *map(self.var, argv[2:])] + self.write_line(f"SI_CMD({', '.join(args)}),") + elif opcode == 0x4F: self.write_line(f"SI_CMD(ScriptOpcode_SUSPEND_GROUP, {self.var(argv[0])}),") + elif opcode == 0x50: self.write_line(f"SI_CMD(ScriptOpcode_RESUME_GROUP, {self.var(argv[0])}),") + elif opcode == 0x51: self.write_line(f"SI_CMD(ScriptOpcode_SUSPEND_OTHERS, {self.var(argv[0])}),") + elif opcode == 0x52: self.write_line(f"SI_CMD(ScriptOpcode_RESUME_OTHERS, {self.var(argv[0])}),") + elif opcode == 0x53: self.write_line(f"SI_CMD(ScriptOpcode_SUSPEND_SCRIPT, {self.var(argv[0])}),") + elif opcode == 0x54: self.write_line(f"SI_CMD(ScriptOpcode_RESUME_SCRIPT, {self.var(argv[0])}),") + elif opcode == 0x55: self.write_line(f"SI_CMD(ScriptOpcode_SCRIPT_EXISTS, {self.var(argv[0])}, {self.var(argv[1])}),") elif opcode == 0x56: - self.write_line("SI_THREAD(),") + self.write_line("SI_CMD(ScriptOpcode_SPAWN_THREAD),") self.indent += 1 elif opcode == 0x57: self.indent -= 1 - self.write_line("SI_END_THREAD(),") + self.write_line("SI_CMD(ScriptOpcode_END_SPAWN_THREAD),") elif opcode == 0x58: - self.write_line("SI_CHILD_THREAD(),") + self.write_line("SI_CMD(ScriptOpcode_PARALLEL_THREAD),") self.indent += 1 elif opcode == 0x59: self.indent -= 1 - self.write_line("SI_END_CHILD_THREAD(),") + self.write_line("SI_CMD(ScriptOpcode_END_PARALLEL_THREAD),") else: # unknown opcode argv_str = "" From 70032a112369f196e29f2919c8ab9e9ca82f73cb Mon Sep 17 00:00:00 2001 From: Alex Bates <16batesa@gmail.com> Date: Sun, 8 Nov 2020 19:20:09 +0000 Subject: [PATCH 16/52] rename si funcs --- asm/nonmatchings/si/si_execute_next_command.s | 56 +++++++++---------- ...d_thread.s => si_handle_parallel_thread.s} | 2 +- ...ndle_thread.s => si_handle_spawn_thread.s} | 2 +- include/si.h | 4 +- src/si.c | 48 ++++++++-------- tools/compile_dsl_macros.py | 4 +- tools/disasm_script.py | 4 +- tools/symbol_addrs.txt | 48 ++++++++-------- 8 files changed, 84 insertions(+), 84 deletions(-) rename asm/nonmatchings/si/{si_handle_child_thread.s => si_handle_parallel_thread.s} (98%) rename asm/nonmatchings/si/{si_handle_thread.s => si_handle_spawn_thread.s} (99%) diff --git a/asm/nonmatchings/si/si_execute_next_command.s b/asm/nonmatchings/si/si_execute_next_command.s index c5f4ae4cb5..63c0d201bd 100644 --- a/asm/nonmatchings/si/si_execute_next_command.s +++ b/asm/nonmatchings/si/si_execute_next_command.s @@ -16,7 +16,7 @@ glabel si_execute_next_command /* EBDDC 802C742C 00220821 */ addu $at, $at, $v0 /* EBDE0 802C7430 8C229F20 */ lw $v0, -0x60e0($at) /* EBDE4 802C7434 00400008 */ jr $v0 -/* EBDE8 802C7438 00000000 */ nop +/* EBDE8 802C7438 00000000 */ nop /* EBDEC 802C743C 8E030008 */ lw $v1, 8($s0) /* EBDF0 802C7440 24050003 */ addiu $a1, $zero, 3 /* EBDF4 802C7444 0060102D */ daddu $v0, $v1, $zero @@ -57,11 +57,11 @@ glabel si_execute_next_command /* EBE80 802C74D0 0200202D */ daddu $a0, $s0, $zero /* EBE84 802C74D4 080B1E95 */ j .L802C7A54 /* EBE88 802C74D8 0040282D */ daddu $a1, $v0, $zero -/* EBE8C 802C74DC 0C0B12D7 */ jal si_handle_wait +/* EBE8C 802C74DC 0C0B12D7 */ jal si_handle_sleep_frames /* EBE90 802C74E0 0200202D */ daddu $a0, $s0, $zero /* EBE94 802C74E4 080B1E95 */ j .L802C7A54 /* EBE98 802C74E8 0040282D */ daddu $a1, $v0, $zero -/* EBE9C 802C74EC 0C0B12EE */ jal si_handle_wait_seconds +/* EBE9C 802C74EC 0C0B12EE */ jal si_handle_sleep_seconds /* EBEA0 802C74F0 0200202D */ daddu $a0, $s0, $zero /* EBEA4 802C74F4 080B1E95 */ j .L802C7A54 /* EBEA8 802C74F8 0040282D */ daddu $a1, $v0, $zero @@ -89,11 +89,11 @@ glabel si_execute_next_command /* EBF00 802C7550 0200202D */ daddu $a0, $s0, $zero /* EBF04 802C7554 080B1E95 */ j .L802C7A54 /* EBF08 802C7558 0040282D */ daddu $a1, $v0, $zero -/* EBF0C 802C755C 0C0B13A4 */ jal si_handle_if_AND +/* EBF0C 802C755C 0C0B13A4 */ jal si_handle_if_flag /* EBF10 802C7560 0200202D */ daddu $a0, $s0, $zero /* EBF14 802C7564 080B1E95 */ j .L802C7A54 /* EBF18 802C7568 0040282D */ daddu $a1, $v0, $zero -/* EBF1C 802C756C 0C0B13BA */ jal si_handle_if_not_AND +/* EBF1C 802C756C 0C0B13BA */ jal si_handle_if_not_flag /* EBF20 802C7570 0200202D */ daddu $a0, $s0, $zero /* EBF24 802C7574 080B1E95 */ j .L802C7A54 /* EBF28 802C7578 0040282D */ daddu $a1, $v0, $zero @@ -105,11 +105,11 @@ glabel si_execute_next_command /* EBF40 802C7590 0200202D */ daddu $a0, $s0, $zero /* EBF44 802C7594 080B1E95 */ j .L802C7A54 /* EBF48 802C7598 0040282D */ daddu $a1, $v0, $zero -/* EBF4C 802C759C 0C0B13DD */ jal si_handle_switch +/* EBF4C 802C759C 0C0B13DD */ jal si_handle_match /* EBF50 802C75A0 0200202D */ daddu $a0, $s0, $zero /* EBF54 802C75A4 080B1E95 */ j .L802C7A54 /* EBF58 802C75A8 0040282D */ daddu $a1, $v0, $zero -/* EBF5C 802C75AC 0C0B13F9 */ jal si_handle_switch_const +/* EBF5C 802C75AC 0C0B13F9 */ jal si_handle_match_const /* EBF60 802C75B0 0200202D */ daddu $a0, $s0, $zero /* EBF64 802C75B4 080B1E95 */ j .L802C7A54 /* EBF68 802C75B8 0040282D */ daddu $a1, $v0, $zero @@ -137,27 +137,27 @@ glabel si_execute_next_command /* EBFC0 802C7610 0200202D */ daddu $a0, $s0, $zero /* EBFC4 802C7614 080B1E95 */ j .L802C7A54 /* EBFC8 802C7618 0040282D */ daddu $a1, $v0, $zero -/* EBFCC 802C761C 0C0B1511 */ jal si_handle_case_default +/* EBFCC 802C761C 0C0B1511 */ jal si_handle_case_else /* EBFD0 802C7620 0200202D */ daddu $a0, $s0, $zero /* EBFD4 802C7624 080B1E95 */ j .L802C7A54 /* EBFD8 802C7628 0040282D */ daddu $a1, $v0, $zero -/* EBFDC 802C762C 0C0B15B5 */ jal si_handle_break_case +/* EBFDC 802C762C 0C0B15B5 */ jal si_handle_break_match /* EBFE0 802C7630 0200202D */ daddu $a0, $s0, $zero /* EBFE4 802C7634 080B1E95 */ j .L802C7A54 /* EBFE8 802C7638 0040282D */ daddu $a1, $v0, $zero -/* EBFEC 802C763C 0C0B1546 */ jal si_handle_case_equal_OR +/* EBFEC 802C763C 0C0B1546 */ jal si_handle_case_multi_or_equal /* EBFF0 802C7640 0200202D */ daddu $a0, $s0, $zero /* EBFF4 802C7644 080B1E95 */ j .L802C7A54 /* EBFF8 802C7648 0040282D */ daddu $a1, $v0, $zero -/* EBFFC 802C764C 0C0B1597 */ jal si_handle_end_case_group +/* EBFFC 802C764C 0C0B1597 */ jal si_handle_end_case_multi /* EC000 802C7650 0200202D */ daddu $a0, $s0, $zero /* EC004 802C7654 080B1E95 */ j .L802C7A54 /* EC008 802C7658 0040282D */ daddu $a1, $v0, $zero -/* EC00C 802C765C 0C0B156E */ jal si_handle_case_equal_AND +/* EC00C 802C765C 0C0B156E */ jal si_handle_case_multi_and_equal /* EC010 802C7660 0200202D */ daddu $a0, $s0, $zero /* EC014 802C7664 080B1E95 */ j .L802C7A54 /* EC018 802C7668 0040282D */ daddu $a1, $v0, $zero -/* EC01C 802C766C 0C0B1527 */ jal si_handle_case_AND +/* EC01C 802C766C 0C0B1527 */ jal si_handle_case_flag /* EC020 802C7670 0200202D */ daddu $a0, $s0, $zero /* EC024 802C7674 080B1E95 */ j .L802C7A54 /* EC028 802C7678 0040282D */ daddu $a1, $v0, $zero @@ -165,7 +165,7 @@ glabel si_execute_next_command /* EC030 802C7680 0200202D */ daddu $a0, $s0, $zero /* EC034 802C7684 080B1E95 */ j .L802C7A54 /* EC038 802C7688 0040282D */ daddu $a1, $v0, $zero -/* EC03C 802C768C 0C0B15C6 */ jal si_handle_end_switch +/* EC03C 802C768C 0C0B15C6 */ jal si_handle_end_match /* EC040 802C7690 0200202D */ daddu $a0, $s0, $zero /* EC044 802C7694 080B1E95 */ j .L802C7A54 /* EC048 802C7698 0040282D */ daddu $a1, $v0, $zero @@ -277,7 +277,7 @@ glabel si_execute_next_command /* EC1F0 802C7840 0200202D */ daddu $a0, $s0, $zero /* EC1F4 802C7844 080B1E95 */ j .L802C7A54 /* EC1F8 802C7848 0040282D */ daddu $a1, $v0, $zero -/* EC1FC 802C784C 0C0B1A1C */ jal si_handle_kill +/* EC1FC 802C784C 0C0B1A1C */ jal si_handle_kill_script /* EC200 802C7850 0200202D */ daddu $a0, $s0, $zero /* EC204 802C7854 080B1E95 */ j .L802C7A54 /* EC208 802C7858 0040282D */ daddu $a1, $v0, $zero @@ -301,19 +301,19 @@ glabel si_execute_next_command /* EC250 802C78A0 0200202D */ daddu $a0, $s0, $zero /* EC254 802C78A4 080B1E95 */ j .L802C7A54 /* EC258 802C78A8 0040282D */ daddu $a1, $v0, $zero -/* EC25C 802C78AC 0C0B191B */ jal si_handle_exec1 +/* EC25C 802C78AC 0C0B191B */ jal si_handle_spawn_script /* EC260 802C78B0 0200202D */ daddu $a0, $s0, $zero /* EC264 802C78B4 080B1E95 */ j .L802C7A54 /* EC268 802C78B8 0040282D */ daddu $a1, $v0, $zero -/* EC26C 802C78BC 0C0B1949 */ jal si_handle_exec2 +/* EC26C 802C78BC 0C0B1949 */ jal si_handle_spawn_script_get_id /* EC270 802C78C0 0200202D */ daddu $a0, $s0, $zero /* EC274 802C78C4 080B1E95 */ j .L802C7A54 /* EC278 802C78C8 0040282D */ daddu $a1, $v0, $zero -/* EC27C 802C78CC 0C0B197F */ jal si_handle_exec_wait +/* EC27C 802C78CC 0C0B197F */ jal si_handle_await_script /* EC280 802C78D0 0200202D */ daddu $a0, $s0, $zero /* EC284 802C78D4 080B1E95 */ j .L802C7A54 /* EC288 802C78D8 0040282D */ daddu $a1, $v0, $zero -/* EC28C 802C78DC 0C0B19C5 */ jal si_handle_bind +/* EC28C 802C78DC 0C0B19C5 */ jal si_handle_bind_trigger /* EC290 802C78E0 0200202D */ daddu $a0, $s0, $zero /* EC294 802C78E4 080B1E95 */ j .L802C7A54 /* EC298 802C78E8 0040282D */ daddu $a1, $v0, $zero @@ -357,11 +357,11 @@ glabel si_execute_next_command /* EC330 802C7980 0200202D */ daddu $a0, $s0, $zero /* EC334 802C7984 080B1E95 */ j .L802C7A54 /* EC338 802C7988 0040282D */ daddu $a1, $v0, $zero -/* EC33C 802C798C 0C0B1A88 */ jal si_handle_suspend +/* EC33C 802C798C 0C0B1A88 */ jal si_handle_suspend_script /* EC340 802C7990 0200202D */ daddu $a0, $s0, $zero /* EC344 802C7994 080B1E95 */ j .L802C7A54 /* EC348 802C7998 0040282D */ daddu $a1, $v0, $zero -/* EC34C 802C799C 0C0B1A93 */ jal si_handle_resume +/* EC34C 802C799C 0C0B1A93 */ jal si_handle_resume_script /* EC350 802C79A0 0200202D */ daddu $a0, $s0, $zero /* EC354 802C79A4 080B1E95 */ j .L802C7A54 /* EC358 802C79A8 0040282D */ daddu $a1, $v0, $zero @@ -369,19 +369,19 @@ glabel si_execute_next_command /* EC360 802C79B0 0200202D */ daddu $a0, $s0, $zero /* EC364 802C79B4 080B1E95 */ j .L802C7A54 /* EC368 802C79B8 0040282D */ daddu $a1, $v0, $zero -/* EC36C 802C79BC 0C0B1B1E */ jal si_handle_thread +/* EC36C 802C79BC 0C0B1B1E */ jal si_handle_spawn_thread /* EC370 802C79C0 0200202D */ daddu $a0, $s0, $zero /* EC374 802C79C4 080B1E95 */ j .L802C7A54 /* EC378 802C79C8 0040282D */ daddu $a1, $v0, $zero -/* EC37C 802C79CC 0C0B1B53 */ jal si_handle_end_thread +/* EC37C 802C79CC 0C0B1B53 */ jal si_handle_end_spawn_thread /* EC380 802C79D0 0200202D */ daddu $a0, $s0, $zero /* EC384 802C79D4 080B1E95 */ j .L802C7A54 /* EC388 802C79D8 0040282D */ daddu $a1, $v0, $zero -/* EC38C 802C79DC 0C0B1B5B */ jal si_handle_child_thread +/* EC38C 802C79DC 0C0B1B5B */ jal si_handle_parallel_thread /* EC390 802C79E0 0200202D */ daddu $a0, $s0, $zero /* EC394 802C79E4 080B1E95 */ j .L802C7A54 /* EC398 802C79E8 0040282D */ daddu $a1, $v0, $zero -/* EC39C 802C79EC 0C0B1B7D */ jal si_handle_end_child_thread +/* EC39C 802C79EC 0C0B1B7D */ jal si_handle_end_parallel_thread /* EC3A0 802C79F0 0200202D */ daddu $a0, $s0, $zero /* EC3A4 802C79F4 080B1E95 */ j .L802C7A54 /* EC3A8 802C79F8 0040282D */ daddu $a1, $v0, $zero @@ -407,7 +407,7 @@ glabel si_execute_next_command /* EC3F8 802C7A48 0040282D */ daddu $a1, $v0, $zero .L802C7A4C: /* EC3FC 802C7A4C 080B1E93 */ j .L802C7A4C -/* EC400 802C7A50 00000000 */ nop +/* EC400 802C7A50 00000000 */ nop .L802C7A54: /* EC404 802C7A54 24020003 */ addiu $v0, $zero, 3 /* EC408 802C7A58 10A2FE6E */ beq $a1, $v0, .L802C7414 @@ -424,13 +424,13 @@ glabel si_execute_next_command /* EC434 802C7A84 A2000002 */ sb $zero, 2($s0) .L802C7A88: /* EC438 802C7A88 14A2FE62 */ bne $a1, $v0, .L802C7414 -/* EC43C 802C7A8C 00000000 */ nop +/* EC43C 802C7A8C 00000000 */ nop /* EC440 802C7A90 A2000002 */ sb $zero, 2($s0) /* EC444 802C7A94 3C028007 */ lui $v0, %hi(gGameStatusPtr) /* EC448 802C7A98 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0) /* EC44C 802C7A9C 80420078 */ lb $v0, 0x78($v0) /* EC450 802C7AA0 1445FE5C */ bne $v0, $a1, .L802C7414 -/* EC454 802C7AA4 00000000 */ nop +/* EC454 802C7AA4 00000000 */ nop .L802C7AA8: /* EC458 802C7AA8 0000102D */ daddu $v0, $zero, $zero .L802C7AAC: diff --git a/asm/nonmatchings/si/si_handle_child_thread.s b/asm/nonmatchings/si/si_handle_parallel_thread.s similarity index 98% rename from asm/nonmatchings/si/si_handle_child_thread.s rename to asm/nonmatchings/si/si_handle_parallel_thread.s index b64104d3a3..37ff838d73 100644 --- a/asm/nonmatchings/si/si_handle_child_thread.s +++ b/asm/nonmatchings/si/si_handle_parallel_thread.s @@ -1,7 +1,7 @@ .set noat # allow manual use of $at .set noreorder # don't insert nops after branches -glabel si_handle_child_thread +glabel si_handle_parallel_thread /* EB71C 802C6D6C 27BDFFE8 */ addiu $sp, $sp, -0x18 /* EB720 802C6D70 AFB00010 */ sw $s0, 0x10($sp) /* EB724 802C6D74 0080802D */ daddu $s0, $a0, $zero diff --git a/asm/nonmatchings/si/si_handle_thread.s b/asm/nonmatchings/si/si_handle_spawn_thread.s similarity index 99% rename from asm/nonmatchings/si/si_handle_thread.s rename to asm/nonmatchings/si/si_handle_spawn_thread.s index af61337469..80a2c50ff6 100644 --- a/asm/nonmatchings/si/si_handle_thread.s +++ b/asm/nonmatchings/si/si_handle_spawn_thread.s @@ -1,7 +1,7 @@ .set noat # allow manual use of $at .set noreorder # don't insert nops after branches -glabel si_handle_thread +glabel si_handle_spawn_thread /* EB628 802C6C78 27BDFFE8 */ addiu $sp, $sp, -0x18 /* EB62C 802C6C7C AFB00010 */ sw $s0, 0x10($sp) /* EB630 802C6C80 0080802D */ daddu $s0, $a0, $zero diff --git a/include/si.h b/include/si.h index 409a69c074..798d5d6b18 100644 --- a/include/si.h +++ b/include/si.h @@ -35,8 +35,8 @@ typedef enum ScriptOpcode { ScriptOpcode_CASE_LE, ///< Args: expression to test for ScriptOpcode_CASE_GE, ///< Args: expression to test for ScriptOpcode_CASE_ELSE, - ScriptOpcode_CASE_MULTI_EQ, ///< Args: expression to test for - ScriptOpcode_CASE_MULTI_NE, ///< Args: expression to test for + ScriptOpcode_CASE_MULTI_OR_EQ, ///< Args: expression to test for + ScriptOpcode_CASE_MULTI_AND_EQ, ///< Args: expression to test for ScriptOpcode_CASE_FLAG, ///< Args: expression to test for ScriptOpcode_END_CASE_MULTI, ///< Ends the case block of ScriptOpcode_CASE_MULTI_OR_EQ condition(s). ScriptOpcode_CASE_RANGE, ///< Args: from, to diff --git a/src/si.c b/src/si.c index 397b434d5c..2c06e25f40 100644 --- a/src/si.c +++ b/src/si.c @@ -84,7 +84,7 @@ ApiStatus si_handle_break_loop(ScriptInstance* script) { return ApiStatus_DONE2; } -ApiStatus si_handle_wait(ScriptInstance* script) { +ApiStatus si_handle_sleep_frames(ScriptInstance* script) { Bytecode* ptrReadPos = script->ptrReadPos; if (!script->blocked) { @@ -102,7 +102,7 @@ ApiStatus si_handle_wait(ScriptInstance* script) { return ApiStatus_DONE2; } -ApiStatus si_handle_wait_seconds(ScriptInstance* script) { +ApiStatus si_handle_sleep_seconds(ScriptInstance* script) { Bytecode* ptrReadPos = script->ptrReadPos; if (!script->blocked) { @@ -180,7 +180,7 @@ ApiStatus si_handle_if_greater_equal(ScriptInstance* script) { return ApiStatus_DONE2; } -ApiStatus si_handle_if_AND(ScriptInstance* script) { +ApiStatus si_handle_if_flag(ScriptInstance* script) { Bytecode* args = script->ptrReadPos; Bytecode var = *args++; @@ -191,7 +191,7 @@ ApiStatus si_handle_if_AND(ScriptInstance* script) { return ApiStatus_DONE2; } -ApiStatus si_handle_if_not_AND(ScriptInstance* script) { +ApiStatus si_handle_if_not_flag(ScriptInstance* script) { Bytecode* args = script->ptrReadPos; Bytecode var = *args++; @@ -211,7 +211,7 @@ ApiStatus si_handle_end_if(ScriptInstance* script) { return ApiStatus_DONE2; } -ApiStatus si_handle_switch(ScriptInstance* script) { +ApiStatus si_handle_match(ScriptInstance* script) { Bytecode value = get_variable(script, *script->ptrReadPos); s32 switchDepth = ++script->switchDepth; @@ -223,7 +223,7 @@ ApiStatus si_handle_switch(ScriptInstance* script) { return ApiStatus_DONE2; } -ApiStatus si_handle_switch_const(ScriptInstance* script) { +ApiStatus si_handle_match_const(ScriptInstance* script) { Bytecode* args = *script->ptrReadPos; s32 switchDepth = ++script->switchDepth; @@ -399,7 +399,7 @@ ApiStatus si_handle_case_range(ScriptInstance* script) { do {} while (0); // Necessary to match } -ApiStatus si_handle_case_default(ScriptInstance* script) { +ApiStatus si_handle_case_else(ScriptInstance* script) { s32 switchDepth = script->switchDepth; ASSERT(switchDepth >= 0); @@ -413,7 +413,7 @@ ApiStatus si_handle_case_default(ScriptInstance* script) { do {} while (0); // Necessary to match } -ApiStatus si_handle_case_AND(ScriptInstance* script) { +ApiStatus si_handle_case_flag(ScriptInstance* script) { Bytecode* args = script->ptrReadPos; s32 switchDepth = script->switchDepth; s32 var; @@ -438,7 +438,7 @@ ApiStatus si_handle_case_AND(ScriptInstance* script) { do {} while (0); // Necessary to match } -ApiStatus si_handle_case_equal_OR(ScriptInstance* script) { +ApiStatus si_handle_case_multi_or_equal(ScriptInstance* script) { Bytecode* args = script->ptrReadPos; s32 switchDepth = script->switchDepth; s32 var; @@ -463,7 +463,7 @@ ApiStatus si_handle_case_equal_OR(ScriptInstance* script) { do {} while (0); // Necessary to match } -ApiStatus si_handle_case_equal_AND(ScriptInstance* script) { +ApiStatus si_handle_case_multi_and_equal(ScriptInstance* script) { Bytecode* args = script->ptrReadPos; s32 switchDepth = script->switchDepth; s32 var; @@ -491,7 +491,7 @@ ApiStatus si_handle_case_equal_AND(ScriptInstance* script) { do {} while (0); // Necessary to match } -ApiStatus si_handle_end_case_group(ScriptInstance* script) { +ApiStatus si_handle_end_case_multi(ScriptInstance* script) { ASSERT(script->switchDepth >= 0); if (script->switchBlockState[script->switchDepth] == 0) { @@ -509,13 +509,13 @@ ApiStatus si_handle_end_case_group(ScriptInstance* script) { do {} while (0); // Necessary to match } -ApiStatus si_handle_break_case(ScriptInstance* script) { +ApiStatus si_handle_break_match(ScriptInstance* script) { ASSERT(script->switchDepth >= 0); script->ptrNextLine = si_goto_end_case(script); return ApiStatus_DONE2; } -ApiStatus si_handle_end_switch(ScriptInstance* script) { +ApiStatus si_handle_end_match(ScriptInstance* script) { s32 switchDepth = script->switchDepth; ASSERT(switchDepth >= 0); @@ -898,7 +898,7 @@ ApiStatus si_handle_call(ScriptInstance* script) { return func(newScript, isInitialCall); // todo fake match } -ApiStatus si_handle_exec1(ScriptInstance* script) { +ApiStatus si_handle_spawn_script(ScriptInstance* script) { ScriptInstance* newScript; s32 i; @@ -924,7 +924,7 @@ ApiStatus si_handle_exec1(ScriptInstance* script) { return ApiStatus_DONE2; } -ApiStatus si_handle_exec2(ScriptInstance* script) { +ApiStatus si_handle_spawn_script_get_id(ScriptInstance* script) { Bytecode* args = script->ptrReadPos; ScriptInstance* var = (ScriptInstance*)get_variable(script, *args++); Bytecode arg2 = *args++; @@ -952,7 +952,7 @@ ApiStatus si_handle_exec2(ScriptInstance* script) { return ApiStatus_DONE2; } -ApiStatus si_handle_exec_wait(ScriptInstance* script) { +ApiStatus si_handle_await_script(ScriptInstance* script) { start_child_script(script, get_variable(script, *script->ptrReadPos), 0); script->currentOpcode = 0; return ApiStatus_FINISH; @@ -991,7 +991,7 @@ s32 _bound_script_trigger_handler(Trigger* trigger) { return 1; } -ApiStatus si_handle_bind(ScriptInstance* script) { +ApiStatus si_handle_bind_trigger(ScriptInstance* script) { Bytecode* args = script->ptrReadPos; Trigger* trigger; Bytecode* triggerScript = get_variable(script, *args++); @@ -1033,7 +1033,7 @@ ApiStatus si_handle_unbind(ScriptInstance* script) { return ApiStatus_DONE2; } -ApiStatus si_handle_kill(ScriptInstance* script) { +ApiStatus si_handle_kill_script(ScriptInstance* script) { kill_script_by_ID(get_variable(script, *script->ptrReadPos)); return ApiStatus_DONE2; } @@ -1073,12 +1073,12 @@ ApiStatus si_handle_resume_others(ScriptInstance* script) { return ApiStatus_DONE2; } -ApiStatus si_handle_suspend(ScriptInstance* script) { +ApiStatus si_handle_suspend_script(ScriptInstance* script) { suspend_all_script(get_variable(script, *script->ptrReadPos)); return ApiStatus_DONE2; } -ApiStatus si_handle_resume(ScriptInstance* script) { +ApiStatus si_handle_resume_script(ScriptInstance* script) { resume_all_script(get_variable(script, *script->ptrReadPos)); return ApiStatus_DONE2; } @@ -1139,16 +1139,16 @@ ApiStatus si_handle_bind_lock(ScriptInstance* script) { return ApiStatus_DONE2; } -INCLUDE_ASM(s32, "si", si_handle_thread, ScriptInstance* script, s32 isInitialCall); +INCLUDE_ASM(s32, "si", si_handle_spawn_thread, ScriptInstance* script, s32 isInitialCall); -ApiStatus si_handle_end_thread(ScriptInstance* script) { +ApiStatus si_handle_end_spawn_thread(ScriptInstance* script) { kill_script(script); return ApiStatus_FINISH; } -INCLUDE_ASM(s32, "si", si_handle_child_thread, ScriptInstance* script, s32 isInitialCall); +INCLUDE_ASM(s32, "si", si_handle_parallel_thread, ScriptInstance* script, s32 isInitialCall); -ApiStatus si_handle_end_child_thread(ScriptInstance* script) { +ApiStatus si_handle_end_parallel_thread(ScriptInstance* script) { kill_script(script); return ApiStatus_BLOCK; } diff --git a/tools/compile_dsl_macros.py b/tools/compile_dsl_macros.py index 3a09151895..e471d2ba43 100755 --- a/tools/compile_dsl_macros.py +++ b/tools/compile_dsl_macros.py @@ -5,7 +5,7 @@ from lark import Lark, exceptions, Tree, Transformer, Visitor, v_args, Token from lark.visitors import Discard import traceback -DEBUG_OUTPUT = "debug.i" +DEBUG_OUTPUT = None def eprint(*args, **kwargs): print(*args, file=stderr, **kwargs) @@ -389,7 +389,7 @@ class Compile(Transformer): return [*multi_case, *block, Cmd("ScriptOpcode_END_CASE_MULTI")] def multi_case(self, tree): - return [Cmd("ScriptOpcode_CASE_MULTI_EQ", expr) for expr in tree.children] + return [Cmd("ScriptOpcode_CASE_MULTI_OR_EQ", expr) for expr in tree.children] def loop_stmt(self, tree): expr = tree.children.pop(0) if len(tree.children) > 1 else 0 diff --git a/tools/disasm_script.py b/tools/disasm_script.py index 436152bdf2..6950269df1 100755 --- a/tools/disasm_script.py +++ b/tools/disasm_script.py @@ -235,11 +235,11 @@ class ScriptDisassembler: self.indent += 1 elif opcode == 0x1D: self.indent -= 1 - self.write_line(f"SI_CMD(ScriptOpcode_CASE_MULTI_EQ, {self.var(argv[0])}),") + self.write_line(f"SI_CMD(ScriptOpcode_CASE_MULTI_OR_EQ, {self.var(argv[0])}),") self.indent += 1 elif opcode == 0x1E: self.indent -= 1 - self.write_line(f"SI_CMD(ScriptOpcode_CASE_MULTI_NE, {self.var(argv[0])}),") + self.write_line(f"SI_CMD(ScriptOpcode_CASE_MULTI_AND_EQ, {self.var(argv[0])}),") self.indent += 1 elif opcode == 0x1F: self.indent -= 1 diff --git a/tools/symbol_addrs.txt b/tools/symbol_addrs.txt index 7d8ed28671..c735cfc36a 100644 --- a/tools/symbol_addrs.txt +++ b/tools/symbol_addrs.txt @@ -1555,20 +1555,20 @@ si_handle_goto = 0x802C49C0; si_handle_loop = 0x802C4A00; si_handle_end_loop = 0x802C4A48; si_handle_break_loop = 0x802C4B0C; -si_handle_wait = 0x802C4B5C; -si_handle_wait_seconds = 0x802C4BB8; +si_handle_sleep_frames = 0x802C4B5C; +si_handle_sleep_seconds = 0x802C4BB8; si_handle_if_equal = 0x802C4C40; si_handle_if_not_equal = 0x802C4CA0; si_handle_if_less = 0x802C4D00; si_handle_if_greater = 0x802C4D64; si_handle_if_less_equal = 0x802C4DC8; si_handle_if_greater_equal = 0x802C4E2C; -si_handle_if_AND = 0x802C4E90; -si_handle_if_not_AND = 0x802C4EE8; +si_handle_if_flag = 0x802C4E90; +si_handle_if_not_flag = 0x802C4EE8; si_handle_else = 0x802C4F40; si_handle_end_if = 0x802C4F6C; -si_handle_switch = 0x802C4F74; -si_handle_switch_const = 0x802C4FE4; +si_handle_match = 0x802C4F74; +si_handle_match_const = 0x802C4FE4; si_handle_case_equal = 0x802C5030; si_handle_case_not_equal = 0x802C50BC; si_handle_case_less = 0x802C5148; @@ -1576,13 +1576,13 @@ si_handle_case_less_equal = 0x802C51D8; si_handle_case_greater = 0x802C5268; si_handle_case_greater_equal = 0x802C52F8; si_handle_case_range = 0x802C5388; -si_handle_case_default = 0x802C5444; -si_handle_case_AND = 0x802C549C; -si_handle_case_equal_OR = 0x802C5518; -si_handle_case_equal_AND = 0x802C55B8; -si_handle_end_case_group = 0x802C565C; -si_handle_break_case = 0x802C56D4; -si_handle_end_switch = 0x802C5718; +si_handle_case_else = 0x802C5444; +si_handle_case_flag = 0x802C549C; +si_handle_case_multi_or_equal = 0x802C5518; +si_handle_case_multi_and_equal = 0x802C55B8; +si_handle_end_case_multi = 0x802C565C; +si_handle_break_match = 0x802C56D4; +si_handle_end_match = 0x802C5718; si_handle_set_var = 0x802C5744; si_handle_set_const = 0x802C5790; si_handle_set_float = 0x802C57B8; @@ -1615,15 +1615,15 @@ si_handle_AND_const = 0x802C62D4; si_handle_OR = 0x802C632C; si_handle_OR_const = 0x802C6390; si_handle_call = 0x802C63E8; -si_handle_exec1 = 0x802C646C; -si_handle_exec2 = 0x802C6524; -si_handle_exec_wait = 0x802C65FC; +si_handle_spawn_script = 0x802C646C; +si_handle_spawn_script_get_id = 0x802C6524; +si_handle_await_script = 0x802C65FC; si_handle_jump = 0x802C6640; _bound_script_trigger_handler = 0x802C667C; -si_handle_bind = 0x802C6714; +si_handle_bind_trigger = 0x802C6714; DeleteTrigger = 0x802C6824; si_handle_unbind = 0x802C6850; -si_handle_kill = 0x802C6870; +si_handle_kill_script = 0x802C6870; si_handle_set_priority = 0x802C689C; si_handle_set_timescale = 0x802C68D8; si_handle_set_group = 0x802C6914; @@ -1631,15 +1631,15 @@ si_handle_suspend_all = 0x802C6950; si_handle_resume_all = 0x802C697C; si_handle_suspend_others = 0x802C69A8; si_handle_resume_others = 0x802C69E4; -si_handle_suspend = 0x802C6A20; -si_handle_resume = 0x802C6A4C; +si_handle_suspend_script = 0x802C6A20; +si_handle_resume_script = 0x802C6A4C; si_handle_does_script_exist = 0x802C6A78; si_standard_trigger_executor = 0x802C6AD0; si_handle_bind_lock = 0x802C6B54; -si_handle_thread = 0x802C6C78; -si_handle_end_thread = 0x802C6D4C; -si_handle_child_thread = 0x802C6D6C; -si_handle_end_child_thread = 0x802C6DF4; +si_handle_spawn_thread = 0x802C6C78; +si_handle_end_spawn_thread = 0x802C6D4C; +si_handle_parallel_thread = 0x802C6D6C; +si_handle_end_parallel_thread = 0x802C6DF4; si_handle_print_debug_var = 0x802C6E1C; si_execute_next_command = 0x802C7404; get_variable = 0x802C7ABC; From 29177030b0b1a2c9795b7bd80e3a7215a3e5e938 Mon Sep 17 00:00:00 2001 From: Alex Bates <16batesa@gmail.com> Date: Sun, 8 Nov 2020 19:22:00 +0000 Subject: [PATCH 17/52] format --- format.sh | 1 - src/world/area_kmr/kmr_03/8C8140.c | 30 +++++++----------------------- src/world/area_kmr/kmr_03/8C85E0.c | 2 +- 3 files changed, 8 insertions(+), 25 deletions(-) diff --git a/format.sh b/format.sh index adfc96b84e..7ce4d215ff 100755 --- a/format.sh +++ b/format.sh @@ -25,7 +25,6 @@ astyle ${FILES} \ --style=attach \ --align-pointer=type --align-reference=name \ --indent-switches \ - --indent-labels \ --pad-oper --pad-comma --pad-header --unpad-paren \ --attach-return-type \ --keep-one-line-blocks \ diff --git a/src/world/area_kmr/kmr_03/8C8140.c b/src/world/area_kmr/kmr_03/8C8140.c index ff5d97df29..e7b2158b10 100644 --- a/src/world/area_kmr/kmr_03/8C8140.c +++ b/src/world/area_kmr/kmr_03/8C8140.c @@ -15,25 +15,9 @@ ApiStatus func_802401B0_8C8140(ScriptInstance* script, s32 isInitialCall) { #include "world/common/UnkPositionFunc.inc.c" // 8C8680 -Script M(ExitWalk_802406F0) = /*{ - SI_GROUP(27), - SI_CALL(0x802D216C, 60, 0), - SI_EXEC(0x80285CF4), - SI_CALL(0x802CA400, "kmr_04", 0), - SI_WAIT_FRAMES(100), - SI_RETURN(), - SI_END(), -};*/EXIT_WALK_SCRIPT(60, 0, "kmr_04", 0); +Script M(ExitWalk_802406F0) = EXIT_WALK_SCRIPT(60, 0, "kmr_04", 0); -Script M(ExitWalk_8024074C) = /*{ - SI_GROUP(27), - SI_CALL(0x802D216C, 60, 1), - SI_EXEC(0x80285CF4), - SI_CALL(0x802CA400, "kmr_05", 0), - SI_WAIT_FRAMES(100), - SI_RETURN(), - SI_END(), -};*/EXIT_WALK_SCRIPT(60, 1, "kmr_05", 0); +Script M(ExitWalk_8024074C) = EXIT_WALK_SCRIPT(60, 1, "kmr_05", 0); Script M(Script_802407A8) = SCRIPT({ bind M(ExitWalk_802406F0) to 0x80000 3 @@ -73,9 +57,9 @@ s32 M(npcSettings_80240950)[] = { }; Script M(Script_8024097C) = SCRIPT({ - 1: +1: if SI_AREA_FLAG(8) == 1 { - 100: +100: AwaitPlayerLeave(294, 123, 170) EnableNpcAI(0, 0) DisablePlayerInput(1) @@ -102,10 +86,10 @@ Script M(Script_8024097C) = SCRIPT({ }); Script M(NpcAI_80240B50) = SCRIPT({ - 1: +1: match SI_SAVE_VAR(0) { == 0xFFFFFF86 { - 89: +89: UnkPositionFunc(0xFFFFFF8A, 86, 0xFFFFFFBA, 0xFFFFFFF1) sleep 1 if SI_VAR(0) == 0 { @@ -246,7 +230,7 @@ Script M(Script_802414A8) = SCRIPT({ }); Script M(Script_802414C8) = SCRIPT({ - 0: +0: GetPlayerPos(SI_VAR(0), SI_VAR(1), SI_VAR(2)) SetCamTarget(0, SI_VAR(0), SI_VAR(1), SI_VAR(2)) sleep 1 diff --git a/src/world/area_kmr/kmr_03/8C85E0.c b/src/world/area_kmr/kmr_03/8C85E0.c index d22e50d611..891b9090f3 100644 --- a/src/world/area_kmr/kmr_03/8C85E0.c +++ b/src/world/area_kmr/kmr_03/8C85E0.c @@ -43,7 +43,7 @@ Script M(Script_80242340) = SCRIPT({ SetPlayerAnimation(0x10002) SetPlayerPos(0xFFFFFF20, 120, 0xFFFFFFB0) InterpPlayerYaw(90, 0) - 0: +0: sleep 1 GetPlayerPos(SI_VAR(0), SI_VAR(1), SI_VAR(2)) SI_VAR(1) += 0xFFFFFFFE From b7726af819009eb50a3da81627496c90fa3e1a4d Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sun, 8 Nov 2020 15:24:39 -0500 Subject: [PATCH 18/52] EF070 stuff --- .../ChangeModelAnimation.s | 35 ----- .../GetAnimModelPosition.s | 43 ------ .../code_ef070_len_3400/PlayModelAnimation.s | 32 ----- .../SetAnimModelPosition.s | 47 ------- .../SetAnimModelRotation.s | 47 ------- .../code_ef070_len_3400/SetAnimModelScale.s | 47 ------- .../code_ef070_len_3400/func_802CCAC0.s | 28 ---- .../code_ef070_len_3400/func_802CCCB0.s | 21 --- .../code_ef070_len_3400/func_802CCEDC.s | 40 ------ .../code_ef070_len_3400/func_802CD57C.s | 22 --- src/code_ef070_len_3400.c | 131 ++++++++++++++++-- 11 files changed, 121 insertions(+), 372 deletions(-) delete mode 100644 asm/nonmatchings/code_ef070_len_3400/ChangeModelAnimation.s delete mode 100644 asm/nonmatchings/code_ef070_len_3400/GetAnimModelPosition.s delete mode 100644 asm/nonmatchings/code_ef070_len_3400/PlayModelAnimation.s delete mode 100644 asm/nonmatchings/code_ef070_len_3400/SetAnimModelPosition.s delete mode 100644 asm/nonmatchings/code_ef070_len_3400/SetAnimModelRotation.s delete mode 100644 asm/nonmatchings/code_ef070_len_3400/SetAnimModelScale.s delete mode 100644 asm/nonmatchings/code_ef070_len_3400/func_802CCAC0.s delete mode 100644 asm/nonmatchings/code_ef070_len_3400/func_802CCCB0.s delete mode 100644 asm/nonmatchings/code_ef070_len_3400/func_802CCEDC.s delete mode 100644 asm/nonmatchings/code_ef070_len_3400/func_802CD57C.s diff --git a/asm/nonmatchings/code_ef070_len_3400/ChangeModelAnimation.s b/asm/nonmatchings/code_ef070_len_3400/ChangeModelAnimation.s deleted file mode 100644 index 95501cdc38..0000000000 --- a/asm/nonmatchings/code_ef070_len_3400/ChangeModelAnimation.s +++ /dev/null @@ -1,35 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel ChangeModelAnimation -/* F191C 802CCF6C 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* F1920 802CCF70 AFB10014 */ sw $s1, 0x14($sp) -/* F1924 802CCF74 0080882D */ daddu $s1, $a0, $zero -/* F1928 802CCF78 AFBF0018 */ sw $ra, 0x18($sp) -/* F192C 802CCF7C AFB00010 */ sw $s0, 0x10($sp) -/* F1930 802CCF80 8E30000C */ lw $s0, 0xc($s1) -/* F1934 802CCF84 8E050000 */ lw $a1, ($s0) -/* F1938 802CCF88 0C0B1EAF */ jal get_variable -/* F193C 802CCF8C 26100004 */ addiu $s0, $s0, 4 -/* F1940 802CCF90 0220202D */ daddu $a0, $s1, $zero -/* F1944 802CCF94 8E050000 */ lw $a1, ($s0) -/* F1948 802CCF98 0C0B1EAF */ jal get_variable -/* F194C 802CCF9C 0040802D */ daddu $s0, $v0, $zero -/* F1950 802CCFA0 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) -/* F1954 802CCFA4 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) -/* F1958 802CCFA8 00108080 */ sll $s0, $s0, 2 -/* F195C 802CCFAC 02038021 */ addu $s0, $s0, $v1 -/* F1960 802CCFB0 8E100000 */ lw $s0, ($s0) -/* F1964 802CCFB4 8E030068 */ lw $v1, 0x68($s0) -/* F1968 802CCFB8 10620004 */ beq $v1, $v0, .L802CCFCC -/* F196C 802CCFBC 0040282D */ daddu $a1, $v0, $zero -/* F1970 802CCFC0 8E040000 */ lw $a0, ($s0) -/* F1974 802CCFC4 0C048052 */ jal play_model_animation -/* F1978 802CCFC8 AE050068 */ sw $a1, 0x68($s0) -.L802CCFCC: -/* F197C 802CCFCC 24020002 */ addiu $v0, $zero, 2 -/* F1980 802CCFD0 8FBF0018 */ lw $ra, 0x18($sp) -/* F1984 802CCFD4 8FB10014 */ lw $s1, 0x14($sp) -/* F1988 802CCFD8 8FB00010 */ lw $s0, 0x10($sp) -/* F198C 802CCFDC 03E00008 */ jr $ra -/* F1990 802CCFE0 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/nonmatchings/code_ef070_len_3400/GetAnimModelPosition.s b/asm/nonmatchings/code_ef070_len_3400/GetAnimModelPosition.s deleted file mode 100644 index 0e0531b8cb..0000000000 --- a/asm/nonmatchings/code_ef070_len_3400/GetAnimModelPosition.s +++ /dev/null @@ -1,43 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel GetAnimModelPosition -/* F1A40 802CD090 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* F1A44 802CD094 AFB20018 */ sw $s2, 0x18($sp) -/* F1A48 802CD098 0080902D */ daddu $s2, $a0, $zero -/* F1A4C 802CD09C AFBF0020 */ sw $ra, 0x20($sp) -/* F1A50 802CD0A0 AFB3001C */ sw $s3, 0x1c($sp) -/* F1A54 802CD0A4 AFB10014 */ sw $s1, 0x14($sp) -/* F1A58 802CD0A8 AFB00010 */ sw $s0, 0x10($sp) -/* F1A5C 802CD0AC 8E50000C */ lw $s0, 0xc($s2) -/* F1A60 802CD0B0 8E050000 */ lw $a1, ($s0) -/* F1A64 802CD0B4 0C0B1EAF */ jal get_variable -/* F1A68 802CD0B8 26100004 */ addiu $s0, $s0, 4 -/* F1A6C 802CD0BC 8E050000 */ lw $a1, ($s0) -/* F1A70 802CD0C0 26100004 */ addiu $s0, $s0, 4 -/* F1A74 802CD0C4 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) -/* F1A78 802CD0C8 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) -/* F1A7C 802CD0CC 00021080 */ sll $v0, $v0, 2 -/* F1A80 802CD0D0 00431021 */ addu $v0, $v0, $v1 -/* F1A84 802CD0D4 8C510000 */ lw $s1, ($v0) -/* F1A88 802CD0D8 8E130000 */ lw $s3, ($s0) -/* F1A8C 802CD0DC 8E260004 */ lw $a2, 4($s1) -/* F1A90 802CD0E0 8E100004 */ lw $s0, 4($s0) -/* F1A94 802CD0E4 0C0B2190 */ jal set_float_variable -/* F1A98 802CD0E8 0240202D */ daddu $a0, $s2, $zero -/* F1A9C 802CD0EC 0240202D */ daddu $a0, $s2, $zero -/* F1AA0 802CD0F0 8E260008 */ lw $a2, 8($s1) -/* F1AA4 802CD0F4 0C0B2190 */ jal set_float_variable -/* F1AA8 802CD0F8 0260282D */ daddu $a1, $s3, $zero -/* F1AAC 802CD0FC 0240202D */ daddu $a0, $s2, $zero -/* F1AB0 802CD100 8E26000C */ lw $a2, 0xc($s1) -/* F1AB4 802CD104 0C0B2190 */ jal set_float_variable -/* F1AB8 802CD108 0200282D */ daddu $a1, $s0, $zero -/* F1ABC 802CD10C 8FBF0020 */ lw $ra, 0x20($sp) -/* F1AC0 802CD110 8FB3001C */ lw $s3, 0x1c($sp) -/* F1AC4 802CD114 8FB20018 */ lw $s2, 0x18($sp) -/* F1AC8 802CD118 8FB10014 */ lw $s1, 0x14($sp) -/* F1ACC 802CD11C 8FB00010 */ lw $s0, 0x10($sp) -/* F1AD0 802CD120 24020002 */ addiu $v0, $zero, 2 -/* F1AD4 802CD124 03E00008 */ jr $ra -/* F1AD8 802CD128 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/asm/nonmatchings/code_ef070_len_3400/PlayModelAnimation.s b/asm/nonmatchings/code_ef070_len_3400/PlayModelAnimation.s deleted file mode 100644 index 97ef37dc7d..0000000000 --- a/asm/nonmatchings/code_ef070_len_3400/PlayModelAnimation.s +++ /dev/null @@ -1,32 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel PlayModelAnimation -/* F181C 802CCE6C 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* F1820 802CCE70 AFB10014 */ sw $s1, 0x14($sp) -/* F1824 802CCE74 0080882D */ daddu $s1, $a0, $zero -/* F1828 802CCE78 AFBF0018 */ sw $ra, 0x18($sp) -/* F182C 802CCE7C AFB00010 */ sw $s0, 0x10($sp) -/* F1830 802CCE80 8E30000C */ lw $s0, 0xc($s1) -/* F1834 802CCE84 8E050000 */ lw $a1, ($s0) -/* F1838 802CCE88 0C0B1EAF */ jal get_variable -/* F183C 802CCE8C 26100004 */ addiu $s0, $s0, 4 -/* F1840 802CCE90 0220202D */ daddu $a0, $s1, $zero -/* F1844 802CCE94 8E050000 */ lw $a1, ($s0) -/* F1848 802CCE98 0C0B1EAF */ jal get_variable -/* F184C 802CCE9C 0040802D */ daddu $s0, $v0, $zero -/* F1850 802CCEA0 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) -/* F1854 802CCEA4 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) -/* F1858 802CCEA8 00108080 */ sll $s0, $s0, 2 -/* F185C 802CCEAC 02038021 */ addu $s0, $s0, $v1 -/* F1860 802CCEB0 8E030000 */ lw $v1, ($s0) -/* F1864 802CCEB4 8C640000 */ lw $a0, ($v1) -/* F1868 802CCEB8 0040282D */ daddu $a1, $v0, $zero -/* F186C 802CCEBC 0C048052 */ jal play_model_animation -/* F1870 802CCEC0 AC650068 */ sw $a1, 0x68($v1) -/* F1874 802CCEC4 8FBF0018 */ lw $ra, 0x18($sp) -/* F1878 802CCEC8 8FB10014 */ lw $s1, 0x14($sp) -/* F187C 802CCECC 8FB00010 */ lw $s0, 0x10($sp) -/* F1880 802CCED0 24020002 */ addiu $v0, $zero, 2 -/* F1884 802CCED4 03E00008 */ jr $ra -/* F1888 802CCED8 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelPosition.s b/asm/nonmatchings/code_ef070_len_3400/SetAnimModelPosition.s deleted file mode 100644 index 97a00c7918..0000000000 --- a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelPosition.s +++ /dev/null @@ -1,47 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel SetAnimModelPosition -/* F1994 802CCFE4 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* F1998 802CCFE8 AFB20018 */ sw $s2, 0x18($sp) -/* F199C 802CCFEC 0080902D */ daddu $s2, $a0, $zero -/* F19A0 802CCFF0 AFBF001C */ sw $ra, 0x1c($sp) -/* F19A4 802CCFF4 AFB10014 */ sw $s1, 0x14($sp) -/* F19A8 802CCFF8 AFB00010 */ sw $s0, 0x10($sp) -/* F19AC 802CCFFC F7B60028 */ sdc1 $f22, 0x28($sp) -/* F19B0 802CD000 F7B40020 */ sdc1 $f20, 0x20($sp) -/* F19B4 802CD004 8E50000C */ lw $s0, 0xc($s2) -/* F19B8 802CD008 8E050000 */ lw $a1, ($s0) -/* F19BC 802CD00C 0C0B1EAF */ jal get_variable -/* F19C0 802CD010 26100004 */ addiu $s0, $s0, 4 -/* F19C4 802CD014 8E050000 */ lw $a1, ($s0) -/* F19C8 802CD018 26100004 */ addiu $s0, $s0, 4 -/* F19CC 802CD01C 0240202D */ daddu $a0, $s2, $zero -/* F19D0 802CD020 0C0B210B */ jal get_float_variable -/* F19D4 802CD024 0040882D */ daddu $s1, $v0, $zero -/* F19D8 802CD028 8E050000 */ lw $a1, ($s0) -/* F19DC 802CD02C 26100004 */ addiu $s0, $s0, 4 -/* F19E0 802CD030 0240202D */ daddu $a0, $s2, $zero -/* F19E4 802CD034 0C0B210B */ jal get_float_variable -/* F19E8 802CD038 46000586 */ mov.s $f22, $f0 -/* F19EC 802CD03C 0240202D */ daddu $a0, $s2, $zero -/* F19F0 802CD040 8E050000 */ lw $a1, ($s0) -/* F19F4 802CD044 0C0B210B */ jal get_float_variable -/* F19F8 802CD048 46000506 */ mov.s $f20, $f0 -/* F19FC 802CD04C 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) -/* F1A00 802CD050 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) -/* F1A04 802CD054 00118880 */ sll $s1, $s1, 2 -/* F1A08 802CD058 02228821 */ addu $s1, $s1, $v0 -/* F1A0C 802CD05C 8E230000 */ lw $v1, ($s1) -/* F1A10 802CD060 E4760004 */ swc1 $f22, 4($v1) -/* F1A14 802CD064 E4740008 */ swc1 $f20, 8($v1) -/* F1A18 802CD068 E460000C */ swc1 $f0, 0xc($v1) -/* F1A1C 802CD06C 8FBF001C */ lw $ra, 0x1c($sp) -/* F1A20 802CD070 8FB20018 */ lw $s2, 0x18($sp) -/* F1A24 802CD074 8FB10014 */ lw $s1, 0x14($sp) -/* F1A28 802CD078 8FB00010 */ lw $s0, 0x10($sp) -/* F1A2C 802CD07C D7B60028 */ ldc1 $f22, 0x28($sp) -/* F1A30 802CD080 D7B40020 */ ldc1 $f20, 0x20($sp) -/* F1A34 802CD084 24020002 */ addiu $v0, $zero, 2 -/* F1A38 802CD088 03E00008 */ jr $ra -/* F1A3C 802CD08C 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelRotation.s b/asm/nonmatchings/code_ef070_len_3400/SetAnimModelRotation.s deleted file mode 100644 index 30fe94eae5..0000000000 --- a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelRotation.s +++ /dev/null @@ -1,47 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel SetAnimModelRotation -/* F1BA0 802CD1F0 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* F1BA4 802CD1F4 AFB20018 */ sw $s2, 0x18($sp) -/* F1BA8 802CD1F8 0080902D */ daddu $s2, $a0, $zero -/* F1BAC 802CD1FC AFBF001C */ sw $ra, 0x1c($sp) -/* F1BB0 802CD200 AFB10014 */ sw $s1, 0x14($sp) -/* F1BB4 802CD204 AFB00010 */ sw $s0, 0x10($sp) -/* F1BB8 802CD208 F7B60028 */ sdc1 $f22, 0x28($sp) -/* F1BBC 802CD20C F7B40020 */ sdc1 $f20, 0x20($sp) -/* F1BC0 802CD210 8E50000C */ lw $s0, 0xc($s2) -/* F1BC4 802CD214 8E050000 */ lw $a1, ($s0) -/* F1BC8 802CD218 0C0B1EAF */ jal get_variable -/* F1BCC 802CD21C 26100004 */ addiu $s0, $s0, 4 -/* F1BD0 802CD220 8E050000 */ lw $a1, ($s0) -/* F1BD4 802CD224 26100004 */ addiu $s0, $s0, 4 -/* F1BD8 802CD228 0240202D */ daddu $a0, $s2, $zero -/* F1BDC 802CD22C 0C0B210B */ jal get_float_variable -/* F1BE0 802CD230 0040882D */ daddu $s1, $v0, $zero -/* F1BE4 802CD234 8E050000 */ lw $a1, ($s0) -/* F1BE8 802CD238 26100004 */ addiu $s0, $s0, 4 -/* F1BEC 802CD23C 0240202D */ daddu $a0, $s2, $zero -/* F1BF0 802CD240 0C0B210B */ jal get_float_variable -/* F1BF4 802CD244 46000586 */ mov.s $f22, $f0 -/* F1BF8 802CD248 0240202D */ daddu $a0, $s2, $zero -/* F1BFC 802CD24C 8E050000 */ lw $a1, ($s0) -/* F1C00 802CD250 0C0B210B */ jal get_float_variable -/* F1C04 802CD254 46000506 */ mov.s $f20, $f0 -/* F1C08 802CD258 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) -/* F1C0C 802CD25C 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) -/* F1C10 802CD260 00118880 */ sll $s1, $s1, 2 -/* F1C14 802CD264 02228821 */ addu $s1, $s1, $v0 -/* F1C18 802CD268 8E230000 */ lw $v1, ($s1) -/* F1C1C 802CD26C E4760010 */ swc1 $f22, 0x10($v1) -/* F1C20 802CD270 E4740014 */ swc1 $f20, 0x14($v1) -/* F1C24 802CD274 E4600018 */ swc1 $f0, 0x18($v1) -/* F1C28 802CD278 8FBF001C */ lw $ra, 0x1c($sp) -/* F1C2C 802CD27C 8FB20018 */ lw $s2, 0x18($sp) -/* F1C30 802CD280 8FB10014 */ lw $s1, 0x14($sp) -/* F1C34 802CD284 8FB00010 */ lw $s0, 0x10($sp) -/* F1C38 802CD288 D7B60028 */ ldc1 $f22, 0x28($sp) -/* F1C3C 802CD28C D7B40020 */ ldc1 $f20, 0x20($sp) -/* F1C40 802CD290 24020002 */ addiu $v0, $zero, 2 -/* F1C44 802CD294 03E00008 */ jr $ra -/* F1C48 802CD298 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelScale.s b/asm/nonmatchings/code_ef070_len_3400/SetAnimModelScale.s deleted file mode 100644 index 4284ac469a..0000000000 --- a/asm/nonmatchings/code_ef070_len_3400/SetAnimModelScale.s +++ /dev/null @@ -1,47 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel SetAnimModelScale -/* F1C4C 802CD29C 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* F1C50 802CD2A0 AFB20018 */ sw $s2, 0x18($sp) -/* F1C54 802CD2A4 0080902D */ daddu $s2, $a0, $zero -/* F1C58 802CD2A8 AFBF001C */ sw $ra, 0x1c($sp) -/* F1C5C 802CD2AC AFB10014 */ sw $s1, 0x14($sp) -/* F1C60 802CD2B0 AFB00010 */ sw $s0, 0x10($sp) -/* F1C64 802CD2B4 F7B60028 */ sdc1 $f22, 0x28($sp) -/* F1C68 802CD2B8 F7B40020 */ sdc1 $f20, 0x20($sp) -/* F1C6C 802CD2BC 8E50000C */ lw $s0, 0xc($s2) -/* F1C70 802CD2C0 8E050000 */ lw $a1, ($s0) -/* F1C74 802CD2C4 0C0B1EAF */ jal get_variable -/* F1C78 802CD2C8 26100004 */ addiu $s0, $s0, 4 -/* F1C7C 802CD2CC 8E050000 */ lw $a1, ($s0) -/* F1C80 802CD2D0 26100004 */ addiu $s0, $s0, 4 -/* F1C84 802CD2D4 0240202D */ daddu $a0, $s2, $zero -/* F1C88 802CD2D8 0C0B210B */ jal get_float_variable -/* F1C8C 802CD2DC 0040882D */ daddu $s1, $v0, $zero -/* F1C90 802CD2E0 8E050000 */ lw $a1, ($s0) -/* F1C94 802CD2E4 26100004 */ addiu $s0, $s0, 4 -/* F1C98 802CD2E8 0240202D */ daddu $a0, $s2, $zero -/* F1C9C 802CD2EC 0C0B210B */ jal get_float_variable -/* F1CA0 802CD2F0 46000586 */ mov.s $f22, $f0 -/* F1CA4 802CD2F4 0240202D */ daddu $a0, $s2, $zero -/* F1CA8 802CD2F8 8E050000 */ lw $a1, ($s0) -/* F1CAC 802CD2FC 0C0B210B */ jal get_float_variable -/* F1CB0 802CD300 46000506 */ mov.s $f20, $f0 -/* F1CB4 802CD304 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) -/* F1CB8 802CD308 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) -/* F1CBC 802CD30C 00118880 */ sll $s1, $s1, 2 -/* F1CC0 802CD310 02228821 */ addu $s1, $s1, $v0 -/* F1CC4 802CD314 8E230000 */ lw $v1, ($s1) -/* F1CC8 802CD318 E476001C */ swc1 $f22, 0x1c($v1) -/* F1CCC 802CD31C E4740020 */ swc1 $f20, 0x20($v1) -/* F1CD0 802CD320 E4600024 */ swc1 $f0, 0x24($v1) -/* F1CD4 802CD324 8FBF001C */ lw $ra, 0x1c($sp) -/* F1CD8 802CD328 8FB20018 */ lw $s2, 0x18($sp) -/* F1CDC 802CD32C 8FB10014 */ lw $s1, 0x14($sp) -/* F1CE0 802CD330 8FB00010 */ lw $s0, 0x10($sp) -/* F1CE4 802CD334 D7B60028 */ ldc1 $f22, 0x28($sp) -/* F1CE8 802CD338 D7B40020 */ ldc1 $f20, 0x20($sp) -/* F1CEC 802CD33C 24020002 */ addiu $v0, $zero, 2 -/* F1CF0 802CD340 03E00008 */ jr $ra -/* F1CF4 802CD344 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CCAC0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CCAC0.s deleted file mode 100644 index 01562b94be..0000000000 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CCAC0.s +++ /dev/null @@ -1,28 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802CCAC0 -/* F1470 802CCAC0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* F1474 802CCAC4 AFB00010 */ sw $s0, 0x10($sp) -/* F1478 802CCAC8 0000802D */ daddu $s0, $zero, $zero -/* F147C 802CCACC AFBF0014 */ sw $ra, 0x14($sp) -.L802CCAD0: -/* F1480 802CCAD0 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) -/* F1484 802CCAD4 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) -/* F1488 802CCAD8 00101080 */ sll $v0, $s0, 2 -/* F148C 802CCADC 00431021 */ addu $v0, $v0, $v1 -/* F1490 802CCAE0 8C420000 */ lw $v0, ($v0) -/* F1494 802CCAE4 8C440000 */ lw $a0, ($v0) -/* F1498 802CCAE8 04820004 */ bltzl $a0, .L802CCAFC -/* F149C 802CCAEC 26100001 */ addiu $s0, $s0, 1 -/* F14A0 802CCAF0 0C047A95 */ jal func_8011EA54 -/* F14A4 802CCAF4 24450028 */ addiu $a1, $v0, 0x28 -/* F14A8 802CCAF8 26100001 */ addiu $s0, $s0, 1 -.L802CCAFC: -/* F14AC 802CCAFC 2A020010 */ slti $v0, $s0, 0x10 -/* F14B0 802CCB00 1440FFF3 */ bnez $v0, .L802CCAD0 -/* F14B4 802CCB04 00000000 */ nop -/* F14B8 802CCB08 8FBF0014 */ lw $ra, 0x14($sp) -/* F14BC 802CCB0C 8FB00010 */ lw $s0, 0x10($sp) -/* F14C0 802CCB10 03E00008 */ jr $ra -/* F14C4 802CCB14 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CCCB0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CCCB0.s deleted file mode 100644 index fc4a3981d0..0000000000 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CCCB0.s +++ /dev/null @@ -1,21 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802CCCB0 -/* F1660 802CCCB0 3C028007 */ lui $v0, %hi(gGameStatusPtr) -/* F1664 802CCCB4 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0) -/* F1668 802CCCB8 80420070 */ lb $v0, 0x70($v0) -/* F166C 802CCCBC 14400005 */ bnez $v0, .L802CCCD4 -/* F1670 802CCCC0 00000000 */ nop -/* F1674 802CCCC4 3C02802E */ lui $v0, %hi(gWorldMeshAnimations) -/* F1678 802CCCC8 2442ADF0 */ addiu $v0, $v0, %lo(gWorldMeshAnimations) -/* F167C 802CCCCC 080B3337 */ j .L802CCCDC -/* F1680 802CCCD0 00000000 */ nop -.L802CCCD4: -/* F1684 802CCCD4 3C02802E */ lui $v0, %hi(gBattleMeshAnimations) -/* F1688 802CCCD8 2442ADB0 */ addiu $v0, $v0, %lo(gBattleMeshAnimations) -.L802CCCDC: -/* F168C 802CCCDC 3C01802E */ lui $at, %hi(gMeshAnimationsPtr) -/* F1690 802CCCE0 AC22AE30 */ sw $v0, %lo(gMeshAnimationsPtr)($at) -/* F1694 802CCCE4 03E00008 */ jr $ra -/* F1698 802CCCE8 24020002 */ addiu $v0, $zero, 2 diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CCEDC.s b/asm/nonmatchings/code_ef070_len_3400/func_802CCEDC.s deleted file mode 100644 index cd06f9f31f..0000000000 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CCEDC.s +++ /dev/null @@ -1,40 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802CCEDC -/* F188C 802CCEDC 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* F1890 802CCEE0 AFB20018 */ sw $s2, 0x18($sp) -/* F1894 802CCEE4 0080902D */ daddu $s2, $a0, $zero -/* F1898 802CCEE8 AFBF001C */ sw $ra, 0x1c($sp) -/* F189C 802CCEEC AFB10014 */ sw $s1, 0x14($sp) -/* F18A0 802CCEF0 AFB00010 */ sw $s0, 0x10($sp) -/* F18A4 802CCEF4 8E50000C */ lw $s0, 0xc($s2) -/* F18A8 802CCEF8 8E050000 */ lw $a1, ($s0) -/* F18AC 802CCEFC 0C0B1EAF */ jal get_variable -/* F18B0 802CCF00 26100004 */ addiu $s0, $s0, 4 -/* F18B4 802CCF04 8E050000 */ lw $a1, ($s0) -/* F18B8 802CCF08 26100004 */ addiu $s0, $s0, 4 -/* F18BC 802CCF0C 0240202D */ daddu $a0, $s2, $zero -/* F18C0 802CCF10 0C0B1EAF */ jal get_variable -/* F18C4 802CCF14 0040882D */ daddu $s1, $v0, $zero -/* F18C8 802CCF18 0240202D */ daddu $a0, $s2, $zero -/* F18CC 802CCF1C 8E050000 */ lw $a1, ($s0) -/* F18D0 802CCF20 0C0B1EAF */ jal get_variable -/* F18D4 802CCF24 0040802D */ daddu $s0, $v0, $zero -/* F18D8 802CCF28 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) -/* F18DC 802CCF2C 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) -/* F18E0 802CCF30 00118880 */ sll $s1, $s1, 2 -/* F18E4 802CCF34 02238821 */ addu $s1, $s1, $v1 -/* F18E8 802CCF38 8E230000 */ lw $v1, ($s1) -/* F18EC 802CCF3C 0200282D */ daddu $a1, $s0, $zero -/* F18F0 802CCF40 8C640000 */ lw $a0, ($v1) -/* F18F4 802CCF44 0040302D */ daddu $a2, $v0, $zero -/* F18F8 802CCF48 0C048066 */ jal func_80120198 -/* F18FC 802CCF4C AC650068 */ sw $a1, 0x68($v1) -/* F1900 802CCF50 8FBF001C */ lw $ra, 0x1c($sp) -/* F1904 802CCF54 8FB20018 */ lw $s2, 0x18($sp) -/* F1908 802CCF58 8FB10014 */ lw $s1, 0x14($sp) -/* F190C 802CCF5C 8FB00010 */ lw $s0, 0x10($sp) -/* F1910 802CCF60 24020002 */ addiu $v0, $zero, 2 -/* F1914 802CCF64 03E00008 */ jr $ra -/* F1918 802CCF68 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD57C.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD57C.s deleted file mode 100644 index ef7a07845b..0000000000 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD57C.s +++ /dev/null @@ -1,22 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802CD57C -/* F1F2C 802CD57C 3C028007 */ lui $v0, %hi(gGameStatusPtr) -/* F1F30 802CD580 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0) -/* F1F34 802CD584 80420070 */ lb $v0, 0x70($v0) -/* F1F38 802CD588 14400007 */ bnez $v0, .L802CD5A8 -/* F1F3C 802CD58C 00000000 */ nop -/* F1F40 802CD590 3C02802E */ lui $v0, %hi(gWorldMeshAnimations) -/* F1F44 802CD594 2442ADF0 */ addiu $v0, $v0, %lo(gWorldMeshAnimations) -/* F1F48 802CD598 3C01802E */ lui $at, %hi(gMeshAnimationsPtr) -/* F1F4C 802CD59C AC22AE30 */ sw $v0, %lo(gMeshAnimationsPtr)($at) -/* F1F50 802CD5A0 03E00008 */ jr $ra -/* F1F54 802CD5A4 00000000 */ nop -.L802CD5A8: -/* F1F58 802CD5A8 3C02802E */ lui $v0, %hi(gBattleMeshAnimations) -/* F1F5C 802CD5AC 2442ADB0 */ addiu $v0, $v0, %lo(gBattleMeshAnimations) -/* F1F60 802CD5B0 3C01802E */ lui $at, %hi(gMeshAnimationsPtr) -/* F1F64 802CD5B4 AC22AE30 */ sw $v0, %lo(gMeshAnimationsPtr)($at) -/* F1F68 802CD5B8 03E00008 */ jr $ra -/* F1F6C 802CD5BC 00000000 */ nop diff --git a/src/code_ef070_len_3400.c b/src/code_ef070_len_3400.c index d9de3affac..aaeef39ad4 100644 --- a/src/code_ef070_len_3400.c +++ b/src/code_ef070_len_3400.c @@ -465,31 +465,136 @@ INCLUDE_ASM(s32, "code_ef070_len_3400", AdjustCam, ScriptInstance* script, s32 i INCLUDE_ASM(s32, "code_ef070_len_3400", ResetCam, ScriptInstance* script, s32 isInitialCall); -INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CCAC0); +void func_802CCAC0(void) { + s32 i; + + //todo fix type + for (i = 0; i < 0x10; i++) { + AnimatedModel* anim = gMeshAnimationsPtr[i]; + + if (anim->animModelID >= 0) { + func_8011EA54(anim->animModelID, &anim->mtx); + } + } +} INCLUDE_ASM(s32, "code_ef070_len_3400", draw_anim_models); -INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CCCB0); +ApiStatus func_802CCCB0(ScriptInstance* script, s32 isInitialCall) { + if (!GAME_STATUS->isBattle) { + gMeshAnimationsPtr = &gWorldMeshAnimations; + } else { + gMeshAnimationsPtr = &gBattleMeshAnimations; + } + + return ApiStatus_DONE2; +} INCLUDE_ASM(s32, "code_ef070_len_3400", LoadModelAnimation); INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CCDAC); -INCLUDE_ASM(s32, "code_ef070_len_3400", PlayModelAnimation); +ApiStatus PlayModelAnimation(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 index = get_variable(script, *args++); + s32 var2 = get_variable(script, *args++); + AnimatedModel* model = gMeshAnimationsPtr[index]; -INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CCEDC); + model->currentAnimData = var2; + play_model_animation(model->animModelID, var2); -INCLUDE_ASM(s32, "code_ef070_len_3400", ChangeModelAnimation); + return ApiStatus_DONE2; +} -INCLUDE_ASM(s32, "code_ef070_len_3400", SetAnimModelPosition); +ApiStatus func_802CCEDC(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 index = get_variable(script, *args++); + s32 var2 = get_variable(script, *args++); + s32 var3 = get_variable(script, *args++); + AnimatedModel* model = gMeshAnimationsPtr[index]; -INCLUDE_ASM(s32, "code_ef070_len_3400", GetAnimModelPosition); + model->currentAnimData = var2; + func_80120198(model->animModelID, var2, var3); + + return ApiStatus_DONE2; +} + +ApiStatus ChangeModelAnimation(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 index = get_variable(script, *args++); + s32 var2 = get_variable(script, *args++); + AnimatedModel* model = gMeshAnimationsPtr[index]; + + if (model->currentAnimData == var2) { + return ApiStatus_DONE2; + } + + model->currentAnimData = var2; + play_model_animation(model->animModelID, var2); + return ApiStatus_DONE2; +} + +ApiStatus SetAnimModelPosition(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 index = get_variable(script, *args++); + f32 x = get_float_variable(script, *args++); + f32 y = get_float_variable(script, *args++); + f32 z = get_float_variable(script, *args++); + AnimatedModel* model = gMeshAnimationsPtr[index]; + + model->pos.x = x; + model->pos.y = y; + model->pos.z = z; + + return ApiStatus_DONE2; +} + +ApiStatus GetAnimModelPosition(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 index = get_variable(script, *args++); + s32 outX = *args++; + s32 outY = *args++; + s32 outZ = *args++; + AnimatedModel* model = gMeshAnimationsPtr[index]; + + set_float_variable(script, outX, model->pos.x); + set_float_variable(script, outY, model->pos.y); + set_float_variable(script, outZ, model->pos.z); + + return ApiStatus_DONE2; +} INCLUDE_ASM(s32, "code_ef070_len_3400", AddAnimModelPosition); -INCLUDE_ASM(s32, "code_ef070_len_3400", SetAnimModelRotation); +ApiStatus SetAnimModelRotation(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 index = get_variable(script, *args++); + f32 x = get_float_variable(script, *args++); + f32 y = get_float_variable(script, *args++); + f32 z = get_float_variable(script, *args++); + AnimatedModel* model = gMeshAnimationsPtr[index]; -INCLUDE_ASM(s32, "code_ef070_len_3400", SetAnimModelScale); + model->rot.x = x; + model->rot.y = y; + model->rot.z = z; + + return ApiStatus_DONE2; +} + +ApiStatus SetAnimModelScale(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 index = get_variable(script, *args++); + f32 x = get_float_variable(script, *args++); + f32 y = get_float_variable(script, *args++); + f32 z = get_float_variable(script, *args++); + AnimatedModel* model = gMeshAnimationsPtr[index]; + + model->scale.x = x; + model->scale.y = y; + model->scale.z = z; + + return ApiStatus_DONE2; +} INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CD348); @@ -505,7 +610,13 @@ INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CD418); INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CD4B4); -INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CD57C); +void func_802CD57C(void) { + if (!GAME_STATUS->isBattle) { + gMeshAnimationsPtr = &gWorldMeshAnimations; + } else { + gMeshAnimationsPtr = &gBattleMeshAnimations; + } +} INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CD5C0); From cdd2d6bd153692b350913637fae99561ccf3008d Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sun, 8 Nov 2020 15:40:26 -0500 Subject: [PATCH 19/52] ASM update and types --- .../code_a5dd0_len_114e0/clear_model_data.s | 4 +-- .../code_a5dd0_len_114e0/func_8011E224.s | 12 ++++---- .../code_a5dd0_len_114e0/func_8011E310.s | 4 +-- .../code_a5dd0_len_114e0/func_8011E438.s | 4 +-- .../code_a5dd0_len_114e0/func_8011E4B8.s | 8 ++--- .../code_a5dd0_len_114e0/func_8011E5E0.s | 8 ++--- .../code_a5dd0_len_114e0/func_8011E8BC.s | 4 +-- .../code_a5dd0_len_114e0/func_8011EA54.s | 4 +-- .../code_a5dd0_len_114e0/func_8011F304.s | 4 +-- .../code_a5dd0_len_114e0/func_8011F3E8.s | 4 +-- .../code_a5dd0_len_114e0/func_8011FFE0.s | 4 +-- .../code_a5dd0_len_114e0/func_80120000.s | 4 +-- .../code_a5dd0_len_114e0/func_801200EC.s | 4 +-- .../code_a5dd0_len_114e0/func_80120118.s | 4 +-- .../code_a5dd0_len_114e0/func_80120198.s | 4 +-- .../code_a5dd0_len_114e0/func_801203AC.s | 4 +-- .../code_a5dd0_len_114e0/func_80120474.s | 4 +-- .../code_a5dd0_len_114e0/init_model_data.s | 4 +-- .../play_model_animation.s | 4 +-- .../AddAnimModelPosition.s | 4 +-- .../code_ef070_len_3400/LoadModelAnimation.s | 4 +-- .../code_ef070_len_3400/draw_anim_models.s | 4 +-- .../code_ef070_len_3400/func_802CCDAC.s | 4 +-- .../code_ef070_len_3400/func_802CD348.s | 4 +-- .../code_ef070_len_3400/func_802CD418.s | 4 +-- .../code_ef070_len_3400/func_802CD4B4.s | 20 ++++++------- .../code_ef070_len_3400/func_802CD5C0.s | 4 +-- .../code_ef070_len_3400/func_802CD6E0.s | 4 +-- .../code_ef070_len_3400/func_802CD7D8.s | 4 +-- .../code_ef070_len_3400/func_802CD8F8.s | 4 +-- .../code_ef070_len_3400/func_802CD9F0.s | 4 +-- include/common_structs.h | 4 +++ include/macros.h | 2 ++ include/variables.h | 9 ++++-- src/code_ef070_len_3400.c | 29 +++++++++---------- tools/symbol_addrs.txt | 7 +++-- undefined_syms.txt | 12 ++++---- 37 files changed, 115 insertions(+), 104 deletions(-) diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/clear_model_data.s b/asm/nonmatchings/code_a5dd0_len_114e0/clear_model_data.s index 46232c5431..94323ff27c 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/clear_model_data.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/clear_model_data.s @@ -15,8 +15,8 @@ glabel clear_model_data /* AC46C 80115D6C 24421F70 */ addiu $v0, $v0, 0x1f70 /* AC470 80115D70 3C018015 */ lui $at, 0x8015 /* AC474 80115D74 AC2212E0 */ sw $v0, 0x12e0($at) -/* AC478 80115D78 3C028015 */ lui $v0, 0x8015 -/* AC47C 80115D7C 24421F90 */ addiu $v0, $v0, 0x1f90 +/* AC478 80115D78 3C028015 */ lui $v0, %hi(gWorldModelSpecialDls) +/* AC47C 80115D7C 24421F90 */ addiu $v0, $v0, %lo(gWorldModelSpecialDls) /* AC480 80115D80 3C018015 */ lui $at, %hi(gCurrentModelSpecialDlsPtr) /* AC484 80115D84 AC2212E8 */ sw $v0, %lo(gCurrentModelSpecialDlsPtr)($at) /* AC488 80115D88 3C028015 */ lui $v0, 0x8015 diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E224.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E224.s index 872c5ecf9d..32da325a2c 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E224.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E224.s @@ -9,8 +9,8 @@ glabel func_8011E224 /* B4934 8011E234 2404FFFF */ addiu $a0, $zero, -1 /* B4938 8011E238 3C028015 */ lui $v0, 0x8015 /* B493C 8011E23C 244239C0 */ addiu $v0, $v0, 0x39c0 -/* B4940 8011E240 3C018015 */ lui $at, 0x8015 -/* B4944 8011E244 AC223A40 */ sw $v0, 0x3a40($at) +/* B4940 8011E240 3C018015 */ lui $at, %hi(gCurrentAnimMeshListPtr) +/* B4944 8011E244 AC223A40 */ sw $v0, %lo(gCurrentAnimMeshListPtr)($at) /* B4948 8011E248 2403005F */ addiu $v1, $zero, 0x5f /* B494C 8011E24C 3C028015 */ lui $v0, 0x8015 /* B4950 8011E250 244236B8 */ addiu $v0, $v0, 0x36b8 @@ -33,11 +33,11 @@ glabel func_8011E224 .L8011E28C: /* B498C 8011E28C 3C028015 */ lui $v0, 0x8015 /* B4990 8011E290 24423A00 */ addiu $v0, $v0, 0x3a00 -/* B4994 8011E294 3C018015 */ lui $at, 0x8015 -/* B4998 8011E298 AC223A40 */ sw $v0, 0x3a40($at) +/* B4994 8011E294 3C018015 */ lui $at, %hi(gCurrentAnimMeshListPtr) +/* B4998 8011E298 AC223A40 */ sw $v0, %lo(gCurrentAnimMeshListPtr)($at) .L8011E29C: -/* B499C 8011E29C 3C028015 */ lui $v0, 0x8015 -/* B49A0 8011E2A0 8C423A40 */ lw $v0, 0x3a40($v0) +/* B499C 8011E29C 3C028015 */ lui $v0, %hi(gCurrentAnimMeshListPtr) +/* B49A0 8011E2A0 8C423A40 */ lw $v0, %lo(gCurrentAnimMeshListPtr)($v0) /* B49A4 8011E2A4 2403000F */ addiu $v1, $zero, 0xf /* B49A8 8011E2A8 2442003C */ addiu $v0, $v0, 0x3c .L8011E2AC: diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E310.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E310.s index a9740098d5..5c4aee6771 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E310.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E310.s @@ -15,8 +15,8 @@ glabel func_8011E310 /* B4A34 8011E334 3C028015 */ lui $v0, 0x8015 /* B4A38 8011E338 24423A00 */ addiu $v0, $v0, 0x3a00 .L8011E33C: -/* B4A3C 8011E33C 3C018015 */ lui $at, 0x8015 -/* B4A40 8011E340 AC223A40 */ sw $v0, 0x3a40($at) +/* B4A3C 8011E33C 3C018015 */ lui $at, %hi(gCurrentAnimMeshListPtr) +/* B4A40 8011E340 AC223A40 */ sw $v0, %lo(gCurrentAnimMeshListPtr)($at) /* B4A44 8011E344 2402000A */ addiu $v0, $zero, 0xa /* B4A48 8011E348 3C018015 */ lui $at, 0x8015 /* B4A4C 8011E34C AC223A48 */ sw $v0, 0x3a48($at) diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E438.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E438.s index af8b649804..38cb6446df 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E438.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E438.s @@ -11,8 +11,8 @@ glabel func_8011E438 /* B4B50 8011E450 A2000014 */ sb $zero, 0x14($s0) /* B4B54 8011E454 0C0478E6 */ jal func_8011E398 /* B4B58 8011E458 00000000 */ nop -/* B4B5C 8011E45C 3C038015 */ lui $v1, 0x8015 -/* B4B60 8011E460 8C633A40 */ lw $v1, 0x3a40($v1) +/* B4B5C 8011E45C 3C038015 */ lui $v1, %hi(gCurrentAnimMeshListPtr) +/* B4B60 8011E460 8C633A40 */ lw $v1, %lo(gCurrentAnimMeshListPtr)($v1) /* B4B64 8011E464 0000202D */ daddu $a0, $zero, $zero /* B4B68 8011E468 AE000010 */ sw $zero, 0x10($s0) .L8011E46C: diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E4B8.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E4B8.s index 46028d9f65..65639b9f22 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E4B8.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E4B8.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel func_8011E4B8 -/* B4BB8 8011E4B8 3C038015 */ lui $v1, 0x8015 -/* B4BBC 8011E4BC 8C633A40 */ lw $v1, 0x3a40($v1) +/* B4BB8 8011E4B8 3C038015 */ lui $v1, %hi(gCurrentAnimMeshListPtr) +/* B4BBC 8011E4BC 8C633A40 */ lw $v1, %lo(gCurrentAnimMeshListPtr)($v1) /* B4BC0 8011E4C0 27BDFFE0 */ addiu $sp, $sp, -0x20 /* B4BC4 8011E4C4 AFB10014 */ sw $s1, 0x14($sp) /* B4BC8 8011E4C8 0080882D */ daddu $s1, $a0, $zero @@ -29,8 +29,8 @@ glabel func_8011E4B8 /* B4C08 8011E508 0C00AB39 */ jal heap_malloc /* B4C0C 8011E50C 240402E0 */ addiu $a0, $zero, 0x2e0 /* B4C10 8011E510 00102080 */ sll $a0, $s0, 2 -/* B4C14 8011E514 3C038015 */ lui $v1, 0x8015 -/* B4C18 8011E518 8C633A40 */ lw $v1, 0x3a40($v1) +/* B4C14 8011E514 3C038015 */ lui $v1, %hi(gCurrentAnimMeshListPtr) +/* B4C18 8011E518 8C633A40 */ lw $v1, %lo(gCurrentAnimMeshListPtr)($v1) /* B4C1C 8011E51C 3C058015 */ lui $a1, 0x8015 /* B4C20 8011E520 24A512D4 */ addiu $a1, $a1, 0x12d4 /* B4C24 8011E524 00832021 */ addu $a0, $a0, $v1 diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E5E0.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E5E0.s index 219e8030cc..50bb059d0f 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E5E0.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E5E0.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel func_8011E5E0 -/* B4CE0 8011E5E0 3C038015 */ lui $v1, 0x8015 -/* B4CE4 8011E5E4 8C633A40 */ lw $v1, 0x3a40($v1) +/* B4CE0 8011E5E0 3C038015 */ lui $v1, %hi(gCurrentAnimMeshListPtr) +/* B4CE4 8011E5E4 8C633A40 */ lw $v1, %lo(gCurrentAnimMeshListPtr)($v1) /* B4CE8 8011E5E8 27BDFFE0 */ addiu $sp, $sp, -0x20 /* B4CEC 8011E5EC AFB10014 */ sw $s1, 0x14($sp) /* B4CF0 8011E5F0 0080882D */ daddu $s1, $a0, $zero @@ -31,8 +31,8 @@ glabel func_8011E5E0 /* B4D38 8011E638 0C00AB39 */ jal heap_malloc /* B4D3C 8011E63C 240402E0 */ addiu $a0, $zero, 0x2e0 /* B4D40 8011E640 00102080 */ sll $a0, $s0, 2 -/* B4D44 8011E644 3C038015 */ lui $v1, 0x8015 -/* B4D48 8011E648 8C633A40 */ lw $v1, 0x3a40($v1) +/* B4D44 8011E644 3C038015 */ lui $v1, %hi(gCurrentAnimMeshListPtr) +/* B4D48 8011E648 8C633A40 */ lw $v1, %lo(gCurrentAnimMeshListPtr)($v1) /* B4D4C 8011E64C 3C058015 */ lui $a1, 0x8015 /* B4D50 8011E650 24A512D4 */ addiu $a1, $a1, 0x12d4 /* B4D54 8011E654 00832021 */ addu $a0, $a0, $v1 diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E8BC.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E8BC.s index d9f7c98be9..21acb862e5 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E8BC.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011E8BC.s @@ -17,8 +17,8 @@ glabel func_8011E8BC .L8011E8EC: /* B4FEC 8011E8EC 2402F7FF */ addiu $v0, $zero, -0x801 /* B4FF0 8011E8F0 00822024 */ and $a0, $a0, $v0 -/* B4FF4 8011E8F4 3C038015 */ lui $v1, 0x8015 -/* B4FF8 8011E8F8 8C633A40 */ lw $v1, 0x3a40($v1) +/* B4FF4 8011E8F4 3C038015 */ lui $v1, %hi(gCurrentAnimMeshListPtr) +/* B4FF8 8011E8F8 8C633A40 */ lw $v1, %lo(gCurrentAnimMeshListPtr)($v1) /* B4FFC 8011E8FC 00041080 */ sll $v0, $a0, 2 /* B5000 8011E900 00431021 */ addu $v0, $v0, $v1 /* B5004 8011E904 8C500000 */ lw $s0, ($v0) diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011EA54.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011EA54.s index 26cbea428a..e606b6da6d 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011EA54.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011EA54.s @@ -18,8 +18,8 @@ glabel func_8011EA54 .L8011EA88: /* B5188 8011EA88 2402F7FF */ addiu $v0, $zero, -0x801 /* B518C 8011EA8C 00822024 */ and $a0, $a0, $v0 -/* B5190 8011EA90 3C038015 */ lui $v1, 0x8015 -/* B5194 8011EA94 8C633A40 */ lw $v1, 0x3a40($v1) +/* B5190 8011EA90 3C038015 */ lui $v1, %hi(gCurrentAnimMeshListPtr) +/* B5194 8011EA94 8C633A40 */ lw $v1, %lo(gCurrentAnimMeshListPtr)($v1) /* B5198 8011EA98 00041080 */ sll $v0, $a0, 2 /* B519C 8011EA9C 00431021 */ addu $v0, $v0, $v1 /* B51A0 8011EAA0 8C500000 */ lw $s0, ($v0) diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011F304.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011F304.s index 63fb282b0e..edb58da4a1 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011F304.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011F304.s @@ -15,8 +15,8 @@ glabel func_8011F304 .L8011F32C: /* B5A2C 8011F32C 2402F7FF */ addiu $v0, $zero, -0x801 /* B5A30 8011F330 00822024 */ and $a0, $a0, $v0 -/* B5A34 8011F334 3C038015 */ lui $v1, 0x8015 -/* B5A38 8011F338 8C633A40 */ lw $v1, 0x3a40($v1) +/* B5A34 8011F334 3C038015 */ lui $v1, %hi(gCurrentAnimMeshListPtr) +/* B5A38 8011F338 8C633A40 */ lw $v1, %lo(gCurrentAnimMeshListPtr)($v1) /* B5A3C 8011F33C 00041080 */ sll $v0, $a0, 2 /* B5A40 8011F340 00431021 */ addu $v0, $v0, $v1 /* B5A44 8011F344 8C470000 */ lw $a3, ($v0) diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011F3E8.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011F3E8.s index e5fd74d3bf..c947596a52 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011F3E8.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011F3E8.s @@ -15,8 +15,8 @@ glabel func_8011F3E8 .L8011F410: /* B5B10 8011F410 2402F7FF */ addiu $v0, $zero, -0x801 /* B5B14 8011F414 00822024 */ and $a0, $a0, $v0 -/* B5B18 8011F418 3C038015 */ lui $v1, 0x8015 -/* B5B1C 8011F41C 8C633A40 */ lw $v1, 0x3a40($v1) +/* B5B18 8011F418 3C038015 */ lui $v1, %hi(gCurrentAnimMeshListPtr) +/* B5B1C 8011F41C 8C633A40 */ lw $v1, %lo(gCurrentAnimMeshListPtr)($v1) /* B5B20 8011F420 00041080 */ sll $v0, $a0, 2 /* B5B24 8011F424 00431021 */ addu $v0, $v0, $v1 /* B5B28 8011F428 8C490000 */ lw $t1, ($v0) diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011FFE0.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011FFE0.s index 7f6d056168..1b9217c601 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011FFE0.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011FFE0.s @@ -4,8 +4,8 @@ glabel func_8011FFE0 /* B66E0 8011FFE0 2402F7FF */ addiu $v0, $zero, -0x801 /* B66E4 8011FFE4 00822024 */ and $a0, $a0, $v0 -/* B66E8 8011FFE8 3C028015 */ lui $v0, 0x8015 -/* B66EC 8011FFEC 8C423A40 */ lw $v0, 0x3a40($v0) +/* B66E8 8011FFE8 3C028015 */ lui $v0, %hi(gCurrentAnimMeshListPtr) +/* B66EC 8011FFEC 8C423A40 */ lw $v0, %lo(gCurrentAnimMeshListPtr)($v0) /* B66F0 8011FFF0 00042080 */ sll $a0, $a0, 2 /* B66F4 8011FFF4 00822021 */ addu $a0, $a0, $v0 /* B66F8 8011FFF8 03E00008 */ jr $ra diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_80120000.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_80120000.s index 6978358df2..675bb6219d 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_80120000.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/func_80120000.s @@ -4,8 +4,8 @@ glabel func_80120000 /* B6700 80120000 2402F7FF */ addiu $v0, $zero, -0x801 /* B6704 80120004 00822024 */ and $a0, $a0, $v0 -/* B6708 80120008 3C028015 */ lui $v0, 0x8015 -/* B670C 8012000C 8C423A40 */ lw $v0, 0x3a40($v0) +/* B6708 80120008 3C028015 */ lui $v0, %hi(gCurrentAnimMeshListPtr) +/* B670C 8012000C 8C423A40 */ lw $v0, %lo(gCurrentAnimMeshListPtr)($v0) /* B6710 80120010 00042080 */ sll $a0, $a0, 2 /* B6714 80120014 00822021 */ addu $a0, $a0, $v0 /* B6718 80120018 8C820000 */ lw $v0, ($a0) diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_801200EC.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_801200EC.s index 9ac3a3d20f..950fa70a50 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_801200EC.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/func_801200EC.s @@ -4,8 +4,8 @@ glabel func_801200EC /* B67EC 801200EC 2402F7FF */ addiu $v0, $zero, -0x801 /* B67F0 801200F0 00822024 */ and $a0, $a0, $v0 -/* B67F4 801200F4 3C028015 */ lui $v0, 0x8015 -/* B67F8 801200F8 8C423A40 */ lw $v0, 0x3a40($v0) +/* B67F4 801200F4 3C028015 */ lui $v0, %hi(gCurrentAnimMeshListPtr) +/* B67F8 801200F8 8C423A40 */ lw $v0, %lo(gCurrentAnimMeshListPtr)($v0) /* B67FC 801200FC 00042080 */ sll $a0, $a0, 2 /* B6800 80120100 00822021 */ addu $a0, $a0, $v0 /* B6804 80120104 8C830000 */ lw $v1, ($a0) diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_80120118.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_80120118.s index 36f5aa2b97..f2dcece28e 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_80120118.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/func_80120118.s @@ -4,8 +4,8 @@ glabel func_80120118 /* B6818 80120118 2402F7FF */ addiu $v0, $zero, -0x801 /* B681C 8012011C 00822024 */ and $a0, $a0, $v0 -/* B6820 80120120 3C028015 */ lui $v0, 0x8015 -/* B6824 80120124 8C423A40 */ lw $v0, 0x3a40($v0) +/* B6820 80120120 3C028015 */ lui $v0, %hi(gCurrentAnimMeshListPtr) +/* B6824 80120124 8C423A40 */ lw $v0, %lo(gCurrentAnimMeshListPtr)($v0) /* B6828 80120128 00042080 */ sll $a0, $a0, 2 /* B682C 8012012C 00822021 */ addu $a0, $a0, $v0 /* B6830 80120130 8C830000 */ lw $v1, ($a0) diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_80120198.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_80120198.s index 980690f243..57a0520eee 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_80120198.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/func_80120198.s @@ -6,8 +6,8 @@ glabel func_80120198 /* B689C 8012019C 2402F7FF */ addiu $v0, $zero, -0x801 /* B68A0 801201A0 AFB10014 */ sw $s1, 0x14($sp) /* B68A4 801201A4 00828824 */ and $s1, $a0, $v0 -/* B68A8 801201A8 3C038015 */ lui $v1, 0x8015 -/* B68AC 801201AC 8C633A40 */ lw $v1, 0x3a40($v1) +/* B68A8 801201A8 3C038015 */ lui $v1, %hi(gCurrentAnimMeshListPtr) +/* B68AC 801201AC 8C633A40 */ lw $v1, %lo(gCurrentAnimMeshListPtr)($v1) /* B68B0 801201B0 00111080 */ sll $v0, $s1, 2 /* B68B4 801201B4 AFBF001C */ sw $ra, 0x1c($sp) /* B68B8 801201B8 AFB20018 */ sw $s2, 0x18($sp) diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_801203AC.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_801203AC.s index 800531754b..0d7e2b5115 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_801203AC.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/func_801203AC.s @@ -5,8 +5,8 @@ glabel func_801203AC /* B6AAC 801203AC 27BDFE00 */ addiu $sp, $sp, -0x200 /* B6AB0 801203B0 2402F7FF */ addiu $v0, $zero, -0x801 /* B6AB4 801203B4 00822024 */ and $a0, $a0, $v0 -/* B6AB8 801203B8 3C028015 */ lui $v0, 0x8015 -/* B6ABC 801203BC 8C423A40 */ lw $v0, 0x3a40($v0) +/* B6AB8 801203B8 3C028015 */ lui $v0, %hi(gCurrentAnimMeshListPtr) +/* B6ABC 801203BC 8C423A40 */ lw $v0, %lo(gCurrentAnimMeshListPtr)($v0) /* B6AC0 801203C0 00042080 */ sll $a0, $a0, 2 /* B6AC4 801203C4 AFBF01FC */ sw $ra, 0x1fc($sp) /* B6AC8 801203C8 AFB001F8 */ sw $s0, 0x1f8($sp) diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_80120474.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_80120474.s index 442bc0e678..4e13e0a6ff 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_80120474.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/func_80120474.s @@ -5,8 +5,8 @@ glabel func_80120474 /* B6B74 80120474 27BDFE00 */ addiu $sp, $sp, -0x200 /* B6B78 80120478 2402F7FF */ addiu $v0, $zero, -0x801 /* B6B7C 8012047C 00822024 */ and $a0, $a0, $v0 -/* B6B80 80120480 3C038015 */ lui $v1, 0x8015 -/* B6B84 80120484 8C633A40 */ lw $v1, 0x3a40($v1) +/* B6B80 80120480 3C038015 */ lui $v1, %hi(gCurrentAnimMeshListPtr) +/* B6B84 80120484 8C633A40 */ lw $v1, %lo(gCurrentAnimMeshListPtr)($v1) /* B6B88 80120488 00041080 */ sll $v0, $a0, 2 /* B6B8C 8012048C AFBF01FC */ sw $ra, 0x1fc($sp) /* B6B90 80120490 AFB001F8 */ sw $s0, 0x1f8($sp) diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/init_model_data.s b/asm/nonmatchings/code_a5dd0_len_114e0/init_model_data.s index 9e5f7ada64..2fa2d2d7d7 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/init_model_data.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/init_model_data.s @@ -15,8 +15,8 @@ glabel init_model_data /* AC710 80116010 24421F70 */ addiu $v0, $v0, 0x1f70 /* AC714 80116014 3C018015 */ lui $at, 0x8015 /* AC718 80116018 AC2212E0 */ sw $v0, 0x12e0($at) -/* AC71C 8011601C 3C028015 */ lui $v0, 0x8015 -/* AC720 80116020 24421F90 */ addiu $v0, $v0, 0x1f90 +/* AC71C 8011601C 3C028015 */ lui $v0, %hi(gWorldModelSpecialDls) +/* AC720 80116020 24421F90 */ addiu $v0, $v0, %lo(gWorldModelSpecialDls) /* AC724 80116024 3C018015 */ lui $at, %hi(gCurrentModelSpecialDlsPtr) /* AC728 80116028 AC2212E8 */ sw $v0, %lo(gCurrentModelSpecialDlsPtr)($at) /* AC72C 8011602C 3C028015 */ lui $v0, 0x8015 diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/play_model_animation.s b/asm/nonmatchings/code_a5dd0_len_114e0/play_model_animation.s index 37da73a5e1..a6e58b2ce2 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/play_model_animation.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/play_model_animation.s @@ -4,8 +4,8 @@ glabel play_model_animation /* B6848 80120148 2402F7FF */ addiu $v0, $zero, -0x801 /* B684C 8012014C 00822024 */ and $a0, $a0, $v0 -/* B6850 80120150 3C028015 */ lui $v0, 0x8015 -/* B6854 80120154 8C423A40 */ lw $v0, 0x3a40($v0) +/* B6850 80120150 3C028015 */ lui $v0, %hi(gCurrentAnimMeshListPtr) +/* B6854 80120154 8C423A40 */ lw $v0, %lo(gCurrentAnimMeshListPtr)($v0) /* B6858 80120158 00042080 */ sll $a0, $a0, 2 /* B685C 8012015C 00822021 */ addu $a0, $a0, $v0 /* B6860 80120160 8C840000 */ lw $a0, ($a0) diff --git a/asm/nonmatchings/code_ef070_len_3400/AddAnimModelPosition.s b/asm/nonmatchings/code_ef070_len_3400/AddAnimModelPosition.s index e15b9635a8..114cefa93f 100644 --- a/asm/nonmatchings/code_ef070_len_3400/AddAnimModelPosition.s +++ b/asm/nonmatchings/code_ef070_len_3400/AddAnimModelPosition.s @@ -28,8 +28,8 @@ glabel AddAnimModelPosition /* F1B38 802CD188 8E050000 */ lw $a1, ($s0) /* F1B3C 802CD18C 0C0B210B */ jal get_float_variable /* F1B40 802CD190 46000506 */ mov.s $f20, $f0 -/* F1B44 802CD194 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) -/* F1B48 802CD198 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) +/* F1B44 802CD194 3C02802E */ lui $v0, %hi(gCurrentMeshAnimationListPtr) +/* F1B48 802CD198 8C42AE30 */ lw $v0, %lo(gCurrentMeshAnimationListPtr)($v0) /* F1B4C 802CD19C 00118880 */ sll $s1, $s1, 2 /* F1B50 802CD1A0 02228821 */ addu $s1, $s1, $v0 /* F1B54 802CD1A4 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/LoadModelAnimation.s b/asm/nonmatchings/code_ef070_len_3400/LoadModelAnimation.s index e90ceb5086..ac3a426a16 100644 --- a/asm/nonmatchings/code_ef070_len_3400/LoadModelAnimation.s +++ b/asm/nonmatchings/code_ef070_len_3400/LoadModelAnimation.s @@ -17,8 +17,8 @@ glabel LoadModelAnimation /* F16CC 802CCD1C 0C0B1EAF */ jal get_variable /* F16D0 802CCD20 0040802D */ daddu $s0, $v0, $zero /* F16D4 802CCD24 0040902D */ daddu $s2, $v0, $zero -/* F16D8 802CCD28 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) -/* F16DC 802CCD2C 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) +/* F16D8 802CCD28 3C02802E */ lui $v0, %hi(gCurrentMeshAnimationListPtr) +/* F16DC 802CCD2C 8C42AE30 */ lw $v0, %lo(gCurrentMeshAnimationListPtr)($v0) /* F16E0 802CCD30 00108080 */ sll $s0, $s0, 2 /* F16E4 802CCD34 02028021 */ addu $s0, $s0, $v0 /* F16E8 802CCD38 8E100000 */ lw $s0, ($s0) diff --git a/asm/nonmatchings/code_ef070_len_3400/draw_anim_models.s b/asm/nonmatchings/code_ef070_len_3400/draw_anim_models.s index 6fbf7df9e1..66fa0e9529 100644 --- a/asm/nonmatchings/code_ef070_len_3400/draw_anim_models.s +++ b/asm/nonmatchings/code_ef070_len_3400/draw_anim_models.s @@ -28,8 +28,8 @@ glabel draw_anim_models /* F1524 802CCB74 AFB00220 */ sw $s0, 0x220($sp) /* F1528 802CCB78 AFA80218 */ sw $t0, 0x218($sp) .L802CCB7C: -/* F152C 802CCB7C 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) -/* F1530 802CCB80 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) +/* F152C 802CCB7C 3C02802E */ lui $v0, %hi(gCurrentMeshAnimationListPtr) +/* F1530 802CCB80 8C42AE30 */ lw $v0, %lo(gCurrentMeshAnimationListPtr)($v0) /* F1534 802CCB84 00131880 */ sll $v1, $s3, 2 /* F1538 802CCB88 00621821 */ addu $v1, $v1, $v0 /* F153C 802CCB8C 8C710000 */ lw $s1, ($v1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CCDAC.s b/asm/nonmatchings/code_ef070_len_3400/func_802CCDAC.s index 92ccddbbba..8aa048d12c 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CCDAC.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CCDAC.s @@ -17,8 +17,8 @@ glabel func_802CCDAC /* F178C 802CCDDC 0C0B1EAF */ jal get_variable /* F1790 802CCDE0 0040802D */ daddu $s0, $v0, $zero /* F1794 802CCDE4 0040902D */ daddu $s2, $v0, $zero -/* F1798 802CCDE8 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) -/* F179C 802CCDEC 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) +/* F1798 802CCDE8 3C02802E */ lui $v0, %hi(gCurrentMeshAnimationListPtr) +/* F179C 802CCDEC 8C42AE30 */ lw $v0, %lo(gCurrentMeshAnimationListPtr)($v0) /* F17A0 802CCDF0 00108080 */ sll $s0, $s0, 2 /* F17A4 802CCDF4 02028021 */ addu $s0, $s0, $v0 /* F17A8 802CCDF8 8E100000 */ lw $s0, ($s0) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD348.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD348.s index ebb2f3d1cc..b8575a3b17 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD348.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD348.s @@ -15,8 +15,8 @@ glabel func_802CD348 /* F1D20 802CD370 8E050000 */ lw $a1, ($s0) /* F1D24 802CD374 0C0B210B */ jal get_float_variable /* F1D28 802CD378 0040802D */ daddu $s0, $v0, $zero -/* F1D2C 802CD37C 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) -/* F1D30 802CD380 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) +/* F1D2C 802CD37C 3C02802E */ lui $v0, %hi(gCurrentMeshAnimationListPtr) +/* F1D30 802CD380 8C42AE30 */ lw $v0, %lo(gCurrentMeshAnimationListPtr)($v0) /* F1D34 802CD384 00108080 */ sll $s0, $s0, 2 /* F1D38 802CD388 02028021 */ addu $s0, $s0, $v0 /* F1D3C 802CD38C 8E020000 */ lw $v0, ($s0) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD418.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD418.s index 56eaf7f3f8..07b97bfebc 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD418.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD418.s @@ -17,8 +17,8 @@ glabel func_802CD418 /* F1DF8 802CD448 8E120000 */ lw $s2, ($s0) /* F1DFC 802CD44C 0C0B1EAF */ jal get_variable /* F1E00 802CD450 0040882D */ daddu $s1, $v0, $zero -/* F1E04 802CD454 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) -/* F1E08 802CD458 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) +/* F1E04 802CD454 3C03802E */ lui $v1, %hi(gCurrentMeshAnimationListPtr) +/* F1E08 802CD458 8C63AE30 */ lw $v1, %lo(gCurrentMeshAnimationListPtr)($v1) /* F1E0C 802CD45C 00118880 */ sll $s1, $s1, 2 /* F1E10 802CD460 02238821 */ addu $s1, $s1, $v1 /* F1E14 802CD464 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD4B4.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD4B4.s index ff00bc5b1b..3afb237f93 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD4B4.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD4B4.s @@ -12,24 +12,24 @@ glabel func_802CD4B4 /* F1E80 802CD4D0 80420070 */ lb $v0, 0x70($v0) /* F1E84 802CD4D4 14400005 */ bnez $v0, .L802CD4EC /* F1E88 802CD4D8 00000000 */ nop -/* F1E8C 802CD4DC 3C02802E */ lui $v0, %hi(gWorldMeshAnimations) -/* F1E90 802CD4E0 2442ADF0 */ addiu $v0, $v0, %lo(gWorldMeshAnimations) +/* F1E8C 802CD4DC 3C02802E */ lui $v0, %hi(gWorldMeshAnimationList) +/* F1E90 802CD4E0 2442ADF0 */ addiu $v0, $v0, %lo(gWorldMeshAnimationList) /* F1E94 802CD4E4 080B353D */ j .L802CD4F4 /* F1E98 802CD4E8 00000000 */ nop .L802CD4EC: -/* F1E9C 802CD4EC 3C02802E */ lui $v0, %hi(gBattleMeshAnimations) -/* F1EA0 802CD4F0 2442ADB0 */ addiu $v0, $v0, %lo(gBattleMeshAnimations) +/* F1E9C 802CD4EC 3C02802E */ lui $v0, %hi(gBattleMeshAnimationList) +/* F1EA0 802CD4F0 2442ADB0 */ addiu $v0, $v0, %lo(gBattleMeshAnimationList) .L802CD4F4: -/* F1EA4 802CD4F4 3C01802E */ lui $at, %hi(gMeshAnimationsPtr) -/* F1EA8 802CD4F8 AC22AE30 */ sw $v0, %lo(gMeshAnimationsPtr)($at) +/* F1EA4 802CD4F4 3C01802E */ lui $at, %hi(gCurrentMeshAnimationListPtr) +/* F1EA8 802CD4F8 AC22AE30 */ sw $v0, %lo(gCurrentMeshAnimationListPtr)($at) /* F1EAC 802CD4FC 0000882D */ daddu $s1, $zero, $zero /* F1EB0 802CD500 2412FFFF */ addiu $s2, $zero, -1 /* F1EB4 802CD504 0220802D */ daddu $s0, $s1, $zero .L802CD508: /* F1EB8 802CD508 0C00AB39 */ jal heap_malloc /* F1EBC 802CD50C 24040070 */ addiu $a0, $zero, 0x70 -/* F1EC0 802CD510 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) -/* F1EC4 802CD514 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) +/* F1EC0 802CD510 3C03802E */ lui $v1, %hi(gCurrentMeshAnimationListPtr) +/* F1EC4 802CD514 8C63AE30 */ lw $v1, %lo(gCurrentMeshAnimationListPtr)($v1) /* F1EC8 802CD518 02031821 */ addu $v1, $s0, $v1 /* F1ECC 802CD51C 14400003 */ bnez $v0, .L802CD52C /* F1ED0 802CD520 AC620000 */ sw $v0, ($v1) @@ -37,8 +37,8 @@ glabel func_802CD4B4 /* F1ED4 802CD524 080B3549 */ j .L802CD524 /* F1ED8 802CD528 00000000 */ nop .L802CD52C: -/* F1EDC 802CD52C 3C02802E */ lui $v0, %hi(gMeshAnimationsPtr) -/* F1EE0 802CD530 8C42AE30 */ lw $v0, %lo(gMeshAnimationsPtr)($v0) +/* F1EDC 802CD52C 3C02802E */ lui $v0, %hi(gCurrentMeshAnimationListPtr) +/* F1EE0 802CD530 8C42AE30 */ lw $v0, %lo(gCurrentMeshAnimationListPtr)($v0) /* F1EE4 802CD534 26310001 */ addiu $s1, $s1, 1 /* F1EE8 802CD538 02021021 */ addu $v0, $s0, $v0 /* F1EEC 802CD53C 8C420000 */ lw $v0, ($v0) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD5C0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD5C0.s index e30d159494..659a0dc841 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD5C0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD5C0.s @@ -23,8 +23,8 @@ glabel func_802CD5C0 /* F1FB8 802CD608 00118880 */ sll $s1, $s1, 2 /* F1FBC 802CD60C 8E140000 */ lw $s4, ($s0) /* F1FC0 802CD610 26100004 */ addiu $s0, $s0, 4 -/* F1FC4 802CD614 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) -/* F1FC8 802CD618 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) +/* F1FC4 802CD614 3C03802E */ lui $v1, %hi(gCurrentMeshAnimationListPtr) +/* F1FC8 802CD618 8C63AE30 */ lw $v1, %lo(gCurrentMeshAnimationListPtr)($v1) /* F1FCC 802CD61C 8E150000 */ lw $s5, ($s0) /* F1FD0 802CD620 02238821 */ addu $s1, $s1, $v1 /* F1FD4 802CD624 8E330000 */ lw $s3, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD6E0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD6E0.s index fe83bbbae9..d5f620f9be 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD6E0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD6E0.s @@ -23,8 +23,8 @@ glabel func_802CD6E0 /* F20D8 802CD728 00118880 */ sll $s1, $s1, 2 /* F20DC 802CD72C 8E130000 */ lw $s3, ($s0) /* F20E0 802CD730 26100004 */ addiu $s0, $s0, 4 -/* F20E4 802CD734 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) -/* F20E8 802CD738 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) +/* F20E4 802CD734 3C03802E */ lui $v1, %hi(gCurrentMeshAnimationListPtr) +/* F20E8 802CD738 8C63AE30 */ lw $v1, %lo(gCurrentMeshAnimationListPtr)($v1) /* F20EC 802CD73C 8E140000 */ lw $s4, ($s0) /* F20F0 802CD740 02238821 */ addu $s1, $s1, $v1 /* F20F4 802CD744 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD7D8.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD7D8.s index 03323eca79..20f51a62a8 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD7D8.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD7D8.s @@ -23,8 +23,8 @@ glabel func_802CD7D8 /* F21D0 802CD820 00118880 */ sll $s1, $s1, 2 /* F21D4 802CD824 8E140000 */ lw $s4, ($s0) /* F21D8 802CD828 26100004 */ addiu $s0, $s0, 4 -/* F21DC 802CD82C 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) -/* F21E0 802CD830 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) +/* F21DC 802CD82C 3C03802E */ lui $v1, %hi(gCurrentMeshAnimationListPtr) +/* F21E0 802CD830 8C63AE30 */ lw $v1, %lo(gCurrentMeshAnimationListPtr)($v1) /* F21E4 802CD834 8E150000 */ lw $s5, ($s0) /* F21E8 802CD838 02238821 */ addu $s1, $s1, $v1 /* F21EC 802CD83C 8E330000 */ lw $s3, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD8F8.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD8F8.s index 358262361b..3e409569e9 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD8F8.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD8F8.s @@ -23,8 +23,8 @@ glabel func_802CD8F8 /* F22F0 802CD940 00118880 */ sll $s1, $s1, 2 /* F22F4 802CD944 8E130000 */ lw $s3, ($s0) /* F22F8 802CD948 26100004 */ addiu $s0, $s0, 4 -/* F22FC 802CD94C 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) -/* F2300 802CD950 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) +/* F22FC 802CD94C 3C03802E */ lui $v1, %hi(gCurrentMeshAnimationListPtr) +/* F2300 802CD950 8C63AE30 */ lw $v1, %lo(gCurrentMeshAnimationListPtr)($v1) /* F2304 802CD954 8E140000 */ lw $s4, ($s0) /* F2308 802CD958 02238821 */ addu $s1, $s1, $v1 /* F230C 802CD95C 8E230000 */ lw $v1, ($s1) diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s index bafc068c6b..7799c63cce 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s @@ -23,8 +23,8 @@ glabel func_802CD9F0 /* F23E8 802CDA38 8E130000 */ lw $s3, ($s0) /* F23EC 802CDA3C 0C0B1EAF */ jal get_variable /* F23F0 802CDA40 0040902D */ daddu $s2, $v0, $zero -/* F23F4 802CDA44 3C03802E */ lui $v1, %hi(gMeshAnimationsPtr) -/* F23F8 802CDA48 8C63AE30 */ lw $v1, %lo(gMeshAnimationsPtr)($v1) +/* F23F4 802CDA44 3C03802E */ lui $v1, %hi(gCurrentMeshAnimationListPtr) +/* F23F8 802CDA48 8C63AE30 */ lw $v1, %lo(gCurrentMeshAnimationListPtr)($v1) /* F23FC 802CDA4C 00118880 */ sll $s1, $s1, 2 /* F2400 802CDA50 02238821 */ addu $s1, $s1, $v1 /* F2404 802CDA54 8E230000 */ lw $v1, ($s1) diff --git a/include/common_structs.h b/include/common_structs.h index eff0633cb3..5822802726 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -716,6 +716,8 @@ typedef struct AnimatedMesh { /* 0x2D0 */ char unk_2D0[16]; } AnimatedMesh; // size = 0x2E0 +typedef AnimatedMesh* AnimatedMeshList[MAX_ANIMATED_MESHES]; + typedef struct PrintHandle { /* 0x000 */ char unk_00[16]; /* 0x010 */ s8* printbuf; /* Created by retype action */ @@ -1170,6 +1172,8 @@ typedef struct AnimatedModel { /* 0x6C */ char unk_6C[4]; } AnimatedModel; // size = 0x70 +typedef AnimatedModel* AnimatedModelList[MAX_ANIMATED_MODELS]; + typedef struct CollisionHeader { /* 0x00 */ s16 numColliders; /* 0x02 */ char unk_02[2]; diff --git a/include/macros.h b/include/macros.h index 9c633e9a76..20d9536c34 100644 --- a/include/macros.h +++ b/include/macros.h @@ -26,6 +26,8 @@ #define MAX_MAPVARS 16 #define MAX_MAPFLAGS 3 +#define MAX_ANIMATED_MODELS 16 +#define MAX_ANIMATED_MESHES 16 #define MAX_MODELS 256 #define MAX_SCRIPTS 128 #define MAX_NPCS 64 diff --git a/include/variables.h b/include/variables.h index cdd6635377..17fc8fb3d1 100644 --- a/include/variables.h +++ b/include/variables.h @@ -87,10 +87,13 @@ extern s32 D_802DB264; extern PrintContext* D_802DB268; // Animation related +extern AnimatedMeshList* gCurrentAnimMeshListPtr; + extern PartnerAnimations gPartnerAnimations[12]; -extern AnimatedModel* gBattleMeshAnimations[16]; -extern AnimatedModel* gWorldMeshAnimations[16]; -extern AnimatedModel** gMeshAnimationsPtr; + +extern AnimatedModelList gBattleMeshAnimationList; +extern AnimatedModelList gWorldMeshAnimationList; +extern AnimatedModelList* gCurrentMeshAnimationListPtr; // Triggers extern s16 gTriggerCount; diff --git a/src/code_ef070_len_3400.c b/src/code_ef070_len_3400.c index aaeef39ad4..f04ec53b35 100644 --- a/src/code_ef070_len_3400.c +++ b/src/code_ef070_len_3400.c @@ -468,9 +468,8 @@ INCLUDE_ASM(s32, "code_ef070_len_3400", ResetCam, ScriptInstance* script, s32 is void func_802CCAC0(void) { s32 i; - //todo fix type - for (i = 0; i < 0x10; i++) { - AnimatedModel* anim = gMeshAnimationsPtr[i]; + for (i = 0; i < MAX_ANIMATED_MODELS; i++) { + AnimatedModel* anim = (*gCurrentMeshAnimationListPtr)[i]; if (anim->animModelID >= 0) { func_8011EA54(anim->animModelID, &anim->mtx); @@ -482,9 +481,9 @@ INCLUDE_ASM(s32, "code_ef070_len_3400", draw_anim_models); ApiStatus func_802CCCB0(ScriptInstance* script, s32 isInitialCall) { if (!GAME_STATUS->isBattle) { - gMeshAnimationsPtr = &gWorldMeshAnimations; + gCurrentMeshAnimationListPtr = &gWorldMeshAnimationList; } else { - gMeshAnimationsPtr = &gBattleMeshAnimations; + gCurrentMeshAnimationListPtr = &gBattleMeshAnimationList; } return ApiStatus_DONE2; @@ -498,7 +497,7 @@ ApiStatus PlayModelAnimation(ScriptInstance* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; s32 index = get_variable(script, *args++); s32 var2 = get_variable(script, *args++); - AnimatedModel* model = gMeshAnimationsPtr[index]; + AnimatedModel* model = (*gCurrentMeshAnimationListPtr)[index]; model->currentAnimData = var2; play_model_animation(model->animModelID, var2); @@ -511,7 +510,7 @@ ApiStatus func_802CCEDC(ScriptInstance* script, s32 isInitialCall) { s32 index = get_variable(script, *args++); s32 var2 = get_variable(script, *args++); s32 var3 = get_variable(script, *args++); - AnimatedModel* model = gMeshAnimationsPtr[index]; + AnimatedModel* model = (*gCurrentMeshAnimationListPtr)[index]; model->currentAnimData = var2; func_80120198(model->animModelID, var2, var3); @@ -523,7 +522,7 @@ ApiStatus ChangeModelAnimation(ScriptInstance* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; s32 index = get_variable(script, *args++); s32 var2 = get_variable(script, *args++); - AnimatedModel* model = gMeshAnimationsPtr[index]; + AnimatedModel* model = (*gCurrentMeshAnimationListPtr)[index]; if (model->currentAnimData == var2) { return ApiStatus_DONE2; @@ -540,7 +539,7 @@ ApiStatus SetAnimModelPosition(ScriptInstance* script, s32 isInitialCall) { f32 x = get_float_variable(script, *args++); f32 y = get_float_variable(script, *args++); f32 z = get_float_variable(script, *args++); - AnimatedModel* model = gMeshAnimationsPtr[index]; + AnimatedModel* model = (*gCurrentMeshAnimationListPtr)[index]; model->pos.x = x; model->pos.y = y; @@ -555,7 +554,7 @@ ApiStatus GetAnimModelPosition(ScriptInstance* script, s32 isInitialCall) { s32 outX = *args++; s32 outY = *args++; s32 outZ = *args++; - AnimatedModel* model = gMeshAnimationsPtr[index]; + AnimatedModel* model = (*gCurrentMeshAnimationListPtr)[index]; set_float_variable(script, outX, model->pos.x); set_float_variable(script, outY, model->pos.y); @@ -572,7 +571,7 @@ ApiStatus SetAnimModelRotation(ScriptInstance* script, s32 isInitialCall) { f32 x = get_float_variable(script, *args++); f32 y = get_float_variable(script, *args++); f32 z = get_float_variable(script, *args++); - AnimatedModel* model = gMeshAnimationsPtr[index]; + AnimatedModel* model = (*gCurrentMeshAnimationListPtr)[index]; model->rot.x = x; model->rot.y = y; @@ -587,7 +586,7 @@ ApiStatus SetAnimModelScale(ScriptInstance* script, s32 isInitialCall) { f32 x = get_float_variable(script, *args++); f32 y = get_float_variable(script, *args++); f32 z = get_float_variable(script, *args++); - AnimatedModel* model = gMeshAnimationsPtr[index]; + AnimatedModel* model = (*gCurrentMeshAnimationListPtr)[index]; model->scale.x = x; model->scale.y = y; @@ -599,7 +598,7 @@ ApiStatus SetAnimModelScale(ScriptInstance* script, s32 isInitialCall) { INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CD348); ApiStatus func_802CD3C0(ScriptInstance* script, s32 isInitialCall) { - AnimatedModel* model = gMeshAnimationsPtr[get_variable(script, *script->ptrReadPos)]; + AnimatedModel* model = (*gCurrentMeshAnimationListPtr)[get_variable(script, *script->ptrReadPos)]; func_8011E438(func_8011FFE0(model->animModelID)); model->animModelID = -1; @@ -612,9 +611,9 @@ INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CD4B4); void func_802CD57C(void) { if (!GAME_STATUS->isBattle) { - gMeshAnimationsPtr = &gWorldMeshAnimations; + gCurrentMeshAnimationListPtr = &gWorldMeshAnimationList; } else { - gMeshAnimationsPtr = &gBattleMeshAnimations; + gCurrentMeshAnimationListPtr = &gBattleMeshAnimationList; } } diff --git a/tools/symbol_addrs.txt b/tools/symbol_addrs.txt index 342a89fc97..d41b15cb25 100644 --- a/tools/symbol_addrs.txt +++ b/tools/symbol_addrs.txt @@ -891,6 +891,7 @@ _set_music_track = 0x8014A7E0; set_music_track = 0x8014A918; transition_music_volume_to = 0x8014AC84; gSongArray = 0x8014F720; +gCurrentAnimMeshListPtr = 0x80153A40; D_80156954 = 0x80156954; gMusicUnkVolume = 0x80159AE0; gMusicTargetVolume = 0x80159AE2; @@ -1891,9 +1892,9 @@ gGlobalTimeSpace = 0x802D9CA8; ShakeCam1 = 0x802D9CB0; ShakeCamX = 0x802D9CE8; D_802D9D50 = 0x802D9D50; -gBattleMeshAnimations = 0x802DADB0; // size:0x40 -gWorldMeshAnimations = 0x802DADF0; // size:0x40 -gMeshAnimationsPtr = 0x802DAE30; +gBattleMeshAnimationList = 0x802DADB0; // size:0x40 +gWorldMeshAnimationList = 0x802DADF0; // size:0x40 +gCurrentMeshAnimationListPtr = 0x802DAE30; gWorldMapFlags = 0x802DBC70; // size:0xC gWorldMapVars = 0x802DBCA8; // size:0x40 gBattleMapVars = 0x802DBCE8; // size:0x40 diff --git a/undefined_syms.txt b/undefined_syms.txt index fc123c5c23..8ab053d88f 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -194,9 +194,11 @@ gWorldModelList = 0x80151770; gBattleModelList = 0x80151B70; gCurrentModelListPtr = 0x801512CC; -gWorldModelSpecialDls = 0x8015F90; -gBattleModelSpecialDls = 0x80152010; +gCurrentAnimMeshListPtr = 0x80153A40; + gCurrentModelSpecialDlsPtr = 0x801512E8; +gWorldModelSpecialDls = 0x80151F90; +gBattleModelSpecialDls = 0x80152010; gWorldEntityList = 0x80151380; gBattleEntityList = 0x801513F8; @@ -230,9 +232,9 @@ gCurrentSaveFile = 0x800DACC0; gMapFlags = 0x802DA480; gMapVars = 0x802DA484; -gBattleMeshAnimations = 0x802DADB0; -gWorldMeshAnimations = 0x802DADF0; -gMeshAnimationsPtr = 0x802DAE30; +gBattleMeshAnimationList = 0x802DADB0; +gWorldMeshAnimationList = 0x802DADF0; +gCurrentMeshAnimationListPtr = 0x802DAE30; gEffectTable = 0x8007F214; From f55cace9a35fe30556257111f964687c614a9afc Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sun, 8 Nov 2020 16:05:39 -0500 Subject: [PATCH 20/52] more EF070 --- .../code_105700_len_2130/func_802E46BC.s | 4 +- .../code_a5dd0_len_114e0/delete_entity.s | 14 +-- .../delete_entity_and_unload_data.s | 16 ++-- .../code_a5dd0_len_114e0/func_8011FFE0.s | 12 --- .../AddAnimModelPosition.s | 53 ----------- .../code_ef070_len_3400/LoadModelAnimation.s | 52 ----------- .../code_ef070_len_3400/func_802CCDAC.s | 52 ----------- .../code_ef070_len_3400/func_802CD348.s | 34 ------- .../code_ef070_len_3400/func_802CD418.s | 45 ---------- .../code_ef070_len_3400/func_802CD5C0.s | 2 +- .../code_ef070_len_3400/func_802CD6E0.s | 2 +- .../code_ef070_len_3400/func_802CD7D8.s | 2 +- .../code_ef070_len_3400/func_802CD8F8.s | 2 +- .../code_ef070_len_3400/func_802CD9F0.s | 8 +- include/functions.h | 1 + src/code_a5dd0_len_114e0.c | 4 +- src/code_ef070_len_3400.c | 90 +++++++++++++++++-- tools/symbol_addrs.txt | 1 + 18 files changed, 114 insertions(+), 280 deletions(-) delete mode 100644 asm/nonmatchings/code_a5dd0_len_114e0/func_8011FFE0.s delete mode 100644 asm/nonmatchings/code_ef070_len_3400/AddAnimModelPosition.s delete mode 100644 asm/nonmatchings/code_ef070_len_3400/LoadModelAnimation.s delete mode 100644 asm/nonmatchings/code_ef070_len_3400/func_802CCDAC.s delete mode 100644 asm/nonmatchings/code_ef070_len_3400/func_802CD348.s delete mode 100644 asm/nonmatchings/code_ef070_len_3400/func_802CD418.s diff --git a/asm/nonmatchings/code_105700_len_2130/func_802E46BC.s b/asm/nonmatchings/code_105700_len_2130/func_802E46BC.s index 6abe7d351b..fcf27d10f7 100644 --- a/asm/nonmatchings/code_105700_len_2130/func_802E46BC.s +++ b/asm/nonmatchings/code_105700_len_2130/func_802E46BC.s @@ -10,7 +10,7 @@ glabel func_802E46BC /* 105F50 802E46D0 86040014 */ lh $a0, 0x14($s0) /* 105F54 802E46D4 3C02802E */ lui $v0, 0x802e /* 105F58 802E46D8 2442455C */ addiu $v0, $v0, 0x455c -/* 105F5C 802E46DC 0C047FF8 */ jal func_8011FFE0 +/* 105F5C 802E46DC 0C047FF8 */ jal get_anim_mesh /* 105F60 802E46E0 AE02003C */ sw $v0, 0x3c($s0) /* 105F64 802E46E4 24030011 */ addiu $v1, $zero, 0x11 /* 105F68 802E46E8 A0430004 */ sb $v1, 4($v0) @@ -22,4 +22,4 @@ glabel func_802E46BC /* 105F80 802E4700 8FB00010 */ lw $s0, 0x10($sp) /* 105F84 802E4704 03E00008 */ jr $ra /* 105F88 802E4708 27BD0018 */ addiu $sp, $sp, 0x18 -/* 105F8C 802E470C 00000000 */ nop +/* 105F8C 802E470C 00000000 */ nop diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/delete_entity.s b/asm/nonmatchings/code_a5dd0_len_114e0/delete_entity.s index 2d1c527840..ab36887ff1 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/delete_entity.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/delete_entity.s @@ -11,29 +11,29 @@ glabel delete_entity /* A6DE8 801106E8 0040882D */ daddu $s1, $v0, $zero /* A6DEC 801106EC 8E240040 */ lw $a0, 0x40($s1) /* A6DF0 801106F0 10800003 */ beqz $a0, .L80110700 -/* A6DF4 801106F4 00000000 */ nop +/* A6DF4 801106F4 00000000 */ nop /* A6DF8 801106F8 0C00AB4B */ jal heap_free -/* A6DFC 801106FC 00000000 */ nop +/* A6DFC 801106FC 00000000 */ nop .L80110700: /* A6E00 80110700 8E220000 */ lw $v0, ($s1) /* A6E04 80110704 30420008 */ andi $v0, $v0, 8 /* A6E08 80110708 14400005 */ bnez $v0, .L80110720 -/* A6E0C 8011070C 00000000 */ nop +/* A6E0C 8011070C 00000000 */ nop /* A6E10 80110710 0C048B7F */ jal func_80122DFC /* A6E14 80110714 86240014 */ lh $a0, 0x14($s1) /* A6E18 80110718 080441CC */ j .L80110730 -/* A6E1C 8011071C 00000000 */ nop +/* A6E1C 8011071C 00000000 */ nop .L80110720: -/* A6E20 80110720 0C047FF8 */ jal func_8011FFE0 +/* A6E20 80110720 0C047FF8 */ jal get_anim_mesh /* A6E24 80110724 86240014 */ lh $a0, 0x14($s1) /* A6E28 80110728 0C04790E */ jal func_8011E438 /* A6E2C 8011072C 0040202D */ daddu $a0, $v0, $zero .L80110730: /* A6E30 80110730 86240016 */ lh $a0, 0x16($s1) /* A6E34 80110734 04800007 */ bltz $a0, .L80110754 -/* A6E38 80110738 00000000 */ nop +/* A6E38 80110738 00000000 */ nop /* A6E3C 8011073C 0C044181 */ jal get_shadow_by_index -/* A6E40 80110740 00000000 */ nop +/* A6E40 80110740 00000000 */ nop /* A6E44 80110744 8C430000 */ lw $v1, ($v0) /* A6E48 80110748 3C041000 */ lui $a0, 0x1000 /* A6E4C 8011074C 00641825 */ or $v1, $v1, $a0 diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/delete_entity_and_unload_data.s b/asm/nonmatchings/code_a5dd0_len_114e0/delete_entity_and_unload_data.s index c0d34fef62..779fe58e5c 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/delete_entity_and_unload_data.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/delete_entity_and_unload_data.s @@ -11,32 +11,32 @@ glabel delete_entity_and_unload_data /* A6EA8 801107A8 0040882D */ daddu $s1, $v0, $zero /* A6EAC 801107AC 8E240040 */ lw $a0, 0x40($s1) /* A6EB0 801107B0 10800003 */ beqz $a0, .L801107C0 -/* A6EB4 801107B4 00000000 */ nop +/* A6EB4 801107B4 00000000 */ nop /* A6EB8 801107B8 0C00AB4B */ jal heap_free -/* A6EBC 801107BC 00000000 */ nop +/* A6EBC 801107BC 00000000 */ nop .L801107C0: /* A6EC0 801107C0 8E220000 */ lw $v0, ($s1) /* A6EC4 801107C4 30420008 */ andi $v0, $v0, 8 /* A6EC8 801107C8 14400005 */ bnez $v0, .L801107E0 -/* A6ECC 801107CC 00000000 */ nop +/* A6ECC 801107CC 00000000 */ nop /* A6ED0 801107D0 0C048B7F */ jal func_80122DFC /* A6ED4 801107D4 86240014 */ lh $a0, 0x14($s1) /* A6ED8 801107D8 080441FC */ j .L801107F0 -/* A6EDC 801107DC 00000000 */ nop +/* A6EDC 801107DC 00000000 */ nop .L801107E0: -/* A6EE0 801107E0 0C047FF8 */ jal func_8011FFE0 +/* A6EE0 801107E0 0C047FF8 */ jal get_anim_mesh /* A6EE4 801107E4 86240014 */ lh $a0, 0x14($s1) /* A6EE8 801107E8 0C04790E */ jal func_8011E438 /* A6EEC 801107EC 0040202D */ daddu $a0, $v0, $zero .L801107F0: /* A6EF0 801107F0 8E240038 */ lw $a0, 0x38($s1) /* A6EF4 801107F4 0C0445F7 */ jal func_801117DC -/* A6EF8 801107F8 00000000 */ nop +/* A6EF8 801107F8 00000000 */ nop /* A6EFC 801107FC 86240016 */ lh $a0, 0x16($s1) /* A6F00 80110800 04800007 */ bltz $a0, .L80110820 -/* A6F04 80110804 00000000 */ nop +/* A6F04 80110804 00000000 */ nop /* A6F08 80110808 0C044181 */ jal get_shadow_by_index -/* A6F0C 8011080C 00000000 */ nop +/* A6F0C 8011080C 00000000 */ nop /* A6F10 80110810 8C430000 */ lw $v1, ($v0) /* A6F14 80110814 3C041000 */ lui $a0, 0x1000 /* A6F18 80110818 00641825 */ or $v1, $v1, $a0 diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011FFE0.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_8011FFE0.s deleted file mode 100644 index 1b9217c601..0000000000 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_8011FFE0.s +++ /dev/null @@ -1,12 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_8011FFE0 -/* B66E0 8011FFE0 2402F7FF */ addiu $v0, $zero, -0x801 -/* B66E4 8011FFE4 00822024 */ and $a0, $a0, $v0 -/* B66E8 8011FFE8 3C028015 */ lui $v0, %hi(gCurrentAnimMeshListPtr) -/* B66EC 8011FFEC 8C423A40 */ lw $v0, %lo(gCurrentAnimMeshListPtr)($v0) -/* B66F0 8011FFF0 00042080 */ sll $a0, $a0, 2 -/* B66F4 8011FFF4 00822021 */ addu $a0, $a0, $v0 -/* B66F8 8011FFF8 03E00008 */ jr $ra -/* B66FC 8011FFFC 8C820000 */ lw $v0, ($a0) diff --git a/asm/nonmatchings/code_ef070_len_3400/AddAnimModelPosition.s b/asm/nonmatchings/code_ef070_len_3400/AddAnimModelPosition.s deleted file mode 100644 index 114cefa93f..0000000000 --- a/asm/nonmatchings/code_ef070_len_3400/AddAnimModelPosition.s +++ /dev/null @@ -1,53 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel AddAnimModelPosition -/* F1ADC 802CD12C 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* F1AE0 802CD130 AFB20018 */ sw $s2, 0x18($sp) -/* F1AE4 802CD134 0080902D */ daddu $s2, $a0, $zero -/* F1AE8 802CD138 AFBF001C */ sw $ra, 0x1c($sp) -/* F1AEC 802CD13C AFB10014 */ sw $s1, 0x14($sp) -/* F1AF0 802CD140 AFB00010 */ sw $s0, 0x10($sp) -/* F1AF4 802CD144 F7B60028 */ sdc1 $f22, 0x28($sp) -/* F1AF8 802CD148 F7B40020 */ sdc1 $f20, 0x20($sp) -/* F1AFC 802CD14C 8E50000C */ lw $s0, 0xc($s2) -/* F1B00 802CD150 8E050000 */ lw $a1, ($s0) -/* F1B04 802CD154 0C0B1EAF */ jal get_variable -/* F1B08 802CD158 26100004 */ addiu $s0, $s0, 4 -/* F1B0C 802CD15C 8E050000 */ lw $a1, ($s0) -/* F1B10 802CD160 26100004 */ addiu $s0, $s0, 4 -/* F1B14 802CD164 0240202D */ daddu $a0, $s2, $zero -/* F1B18 802CD168 0C0B210B */ jal get_float_variable -/* F1B1C 802CD16C 0040882D */ daddu $s1, $v0, $zero -/* F1B20 802CD170 8E050000 */ lw $a1, ($s0) -/* F1B24 802CD174 26100004 */ addiu $s0, $s0, 4 -/* F1B28 802CD178 0240202D */ daddu $a0, $s2, $zero -/* F1B2C 802CD17C 0C0B210B */ jal get_float_variable -/* F1B30 802CD180 46000586 */ mov.s $f22, $f0 -/* F1B34 802CD184 0240202D */ daddu $a0, $s2, $zero -/* F1B38 802CD188 8E050000 */ lw $a1, ($s0) -/* F1B3C 802CD18C 0C0B210B */ jal get_float_variable -/* F1B40 802CD190 46000506 */ mov.s $f20, $f0 -/* F1B44 802CD194 3C02802E */ lui $v0, %hi(gCurrentMeshAnimationListPtr) -/* F1B48 802CD198 8C42AE30 */ lw $v0, %lo(gCurrentMeshAnimationListPtr)($v0) -/* F1B4C 802CD19C 00118880 */ sll $s1, $s1, 2 -/* F1B50 802CD1A0 02228821 */ addu $s1, $s1, $v0 -/* F1B54 802CD1A4 8E230000 */ lw $v1, ($s1) -/* F1B58 802CD1A8 C4660004 */ lwc1 $f6, 4($v1) -/* F1B5C 802CD1AC 46163180 */ add.s $f6, $f6, $f22 -/* F1B60 802CD1B0 C4640008 */ lwc1 $f4, 8($v1) -/* F1B64 802CD1B4 46142100 */ add.s $f4, $f4, $f20 -/* F1B68 802CD1B8 C462000C */ lwc1 $f2, 0xc($v1) -/* F1B6C 802CD1BC 46001080 */ add.s $f2, $f2, $f0 -/* F1B70 802CD1C0 E4660004 */ swc1 $f6, 4($v1) -/* F1B74 802CD1C4 E4640008 */ swc1 $f4, 8($v1) -/* F1B78 802CD1C8 E462000C */ swc1 $f2, 0xc($v1) -/* F1B7C 802CD1CC 8FBF001C */ lw $ra, 0x1c($sp) -/* F1B80 802CD1D0 8FB20018 */ lw $s2, 0x18($sp) -/* F1B84 802CD1D4 8FB10014 */ lw $s1, 0x14($sp) -/* F1B88 802CD1D8 8FB00010 */ lw $s0, 0x10($sp) -/* F1B8C 802CD1DC D7B60028 */ ldc1 $f22, 0x28($sp) -/* F1B90 802CD1E0 D7B40020 */ ldc1 $f20, 0x20($sp) -/* F1B94 802CD1E4 24020002 */ addiu $v0, $zero, 2 -/* F1B98 802CD1E8 03E00008 */ jr $ra -/* F1B9C 802CD1EC 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/asm/nonmatchings/code_ef070_len_3400/LoadModelAnimation.s b/asm/nonmatchings/code_ef070_len_3400/LoadModelAnimation.s deleted file mode 100644 index ac3a426a16..0000000000 --- a/asm/nonmatchings/code_ef070_len_3400/LoadModelAnimation.s +++ /dev/null @@ -1,52 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel LoadModelAnimation -/* F169C 802CCCEC 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* F16A0 802CCCF0 AFB10014 */ sw $s1, 0x14($sp) -/* F16A4 802CCCF4 0080882D */ daddu $s1, $a0, $zero -/* F16A8 802CCCF8 AFBF001C */ sw $ra, 0x1c($sp) -/* F16AC 802CCCFC AFB20018 */ sw $s2, 0x18($sp) -/* F16B0 802CCD00 AFB00010 */ sw $s0, 0x10($sp) -/* F16B4 802CCD04 8E30000C */ lw $s0, 0xc($s1) -/* F16B8 802CCD08 8E050000 */ lw $a1, ($s0) -/* F16BC 802CCD0C 0C0B1EAF */ jal get_variable -/* F16C0 802CCD10 26100004 */ addiu $s0, $s0, 4 -/* F16C4 802CCD14 0220202D */ daddu $a0, $s1, $zero -/* F16C8 802CCD18 8E050000 */ lw $a1, ($s0) -/* F16CC 802CCD1C 0C0B1EAF */ jal get_variable -/* F16D0 802CCD20 0040802D */ daddu $s0, $v0, $zero -/* F16D4 802CCD24 0040902D */ daddu $s2, $v0, $zero -/* F16D8 802CCD28 3C02802E */ lui $v0, %hi(gCurrentMeshAnimationListPtr) -/* F16DC 802CCD2C 8C42AE30 */ lw $v0, %lo(gCurrentMeshAnimationListPtr)($v0) -/* F16E0 802CCD30 00108080 */ sll $s0, $s0, 2 -/* F16E4 802CCD34 02028021 */ addu $s0, $s0, $v0 -/* F16E8 802CCD38 8E100000 */ lw $s0, ($s0) -/* F16EC 802CCD3C 0C04792E */ jal func_8011E4B8 -/* F16F0 802CCD40 0000202D */ daddu $a0, $zero, $zero -/* F16F4 802CCD44 0040882D */ daddu $s1, $v0, $zero -/* F16F8 802CCD48 0220202D */ daddu $a0, $s1, $zero -/* F16FC 802CCD4C 0C0480EB */ jal func_801203AC -/* F1700 802CCD50 0240282D */ daddu $a1, $s2, $zero -/* F1704 802CCD54 3C013F80 */ lui $at, 0x3f80 -/* F1708 802CCD58 44810000 */ mtc1 $at, $f0 -/* F170C 802CCD5C 26040028 */ addiu $a0, $s0, 0x28 -/* F1710 802CCD60 AE110000 */ sw $s1, ($s0) -/* F1714 802CCD64 AE000004 */ sw $zero, 4($s0) -/* F1718 802CCD68 AE000008 */ sw $zero, 8($s0) -/* F171C 802CCD6C AE00000C */ sw $zero, 0xc($s0) -/* F1720 802CCD70 AE000010 */ sw $zero, 0x10($s0) -/* F1724 802CCD74 AE000014 */ sw $zero, 0x14($s0) -/* F1728 802CCD78 AE000018 */ sw $zero, 0x18($s0) -/* F172C 802CCD7C E600001C */ swc1 $f0, 0x1c($s0) -/* F1730 802CCD80 E6000020 */ swc1 $f0, 0x20($s0) -/* F1734 802CCD84 E6000024 */ swc1 $f0, 0x24($s0) -/* F1738 802CCD88 0C019D10 */ jal guMtxIdent -/* F173C 802CCD8C AE000068 */ sw $zero, 0x68($s0) -/* F1740 802CCD90 8FBF001C */ lw $ra, 0x1c($sp) -/* F1744 802CCD94 8FB20018 */ lw $s2, 0x18($sp) -/* F1748 802CCD98 8FB10014 */ lw $s1, 0x14($sp) -/* F174C 802CCD9C 8FB00010 */ lw $s0, 0x10($sp) -/* F1750 802CCDA0 24020002 */ addiu $v0, $zero, 2 -/* F1754 802CCDA4 03E00008 */ jr $ra -/* F1758 802CCDA8 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CCDAC.s b/asm/nonmatchings/code_ef070_len_3400/func_802CCDAC.s deleted file mode 100644 index 8aa048d12c..0000000000 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CCDAC.s +++ /dev/null @@ -1,52 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802CCDAC -/* F175C 802CCDAC 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* F1760 802CCDB0 AFB10014 */ sw $s1, 0x14($sp) -/* F1764 802CCDB4 0080882D */ daddu $s1, $a0, $zero -/* F1768 802CCDB8 AFBF001C */ sw $ra, 0x1c($sp) -/* F176C 802CCDBC AFB20018 */ sw $s2, 0x18($sp) -/* F1770 802CCDC0 AFB00010 */ sw $s0, 0x10($sp) -/* F1774 802CCDC4 8E30000C */ lw $s0, 0xc($s1) -/* F1778 802CCDC8 8E050000 */ lw $a1, ($s0) -/* F177C 802CCDCC 0C0B1EAF */ jal get_variable -/* F1780 802CCDD0 26100004 */ addiu $s0, $s0, 4 -/* F1784 802CCDD4 0220202D */ daddu $a0, $s1, $zero -/* F1788 802CCDD8 8E050000 */ lw $a1, ($s0) -/* F178C 802CCDDC 0C0B1EAF */ jal get_variable -/* F1790 802CCDE0 0040802D */ daddu $s0, $v0, $zero -/* F1794 802CCDE4 0040902D */ daddu $s2, $v0, $zero -/* F1798 802CCDE8 3C02802E */ lui $v0, %hi(gCurrentMeshAnimationListPtr) -/* F179C 802CCDEC 8C42AE30 */ lw $v0, %lo(gCurrentMeshAnimationListPtr)($v0) -/* F17A0 802CCDF0 00108080 */ sll $s0, $s0, 2 -/* F17A4 802CCDF4 02028021 */ addu $s0, $s0, $v0 -/* F17A8 802CCDF8 8E100000 */ lw $s0, ($s0) -/* F17AC 802CCDFC 0C04792E */ jal func_8011E4B8 -/* F17B0 802CCE00 0000202D */ daddu $a0, $zero, $zero -/* F17B4 802CCE04 0040882D */ daddu $s1, $v0, $zero -/* F17B8 802CCE08 0220202D */ daddu $a0, $s1, $zero -/* F17BC 802CCE0C 0C04811D */ jal func_80120474 -/* F17C0 802CCE10 0240282D */ daddu $a1, $s2, $zero -/* F17C4 802CCE14 3C013F80 */ lui $at, 0x3f80 -/* F17C8 802CCE18 44810000 */ mtc1 $at, $f0 -/* F17CC 802CCE1C 26040028 */ addiu $a0, $s0, 0x28 -/* F17D0 802CCE20 AE110000 */ sw $s1, ($s0) -/* F17D4 802CCE24 AE000004 */ sw $zero, 4($s0) -/* F17D8 802CCE28 AE000008 */ sw $zero, 8($s0) -/* F17DC 802CCE2C AE00000C */ sw $zero, 0xc($s0) -/* F17E0 802CCE30 AE000010 */ sw $zero, 0x10($s0) -/* F17E4 802CCE34 AE000014 */ sw $zero, 0x14($s0) -/* F17E8 802CCE38 AE000018 */ sw $zero, 0x18($s0) -/* F17EC 802CCE3C E600001C */ swc1 $f0, 0x1c($s0) -/* F17F0 802CCE40 E6000020 */ swc1 $f0, 0x20($s0) -/* F17F4 802CCE44 E6000024 */ swc1 $f0, 0x24($s0) -/* F17F8 802CCE48 0C019D10 */ jal guMtxIdent -/* F17FC 802CCE4C AE000068 */ sw $zero, 0x68($s0) -/* F1800 802CCE50 8FBF001C */ lw $ra, 0x1c($sp) -/* F1804 802CCE54 8FB20018 */ lw $s2, 0x18($sp) -/* F1808 802CCE58 8FB10014 */ lw $s1, 0x14($sp) -/* F180C 802CCE5C 8FB00010 */ lw $s0, 0x10($sp) -/* F1810 802CCE60 24020002 */ addiu $v0, $zero, 2 -/* F1814 802CCE64 03E00008 */ jr $ra -/* F1818 802CCE68 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD348.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD348.s deleted file mode 100644 index b8575a3b17..0000000000 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD348.s +++ /dev/null @@ -1,34 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802CD348 -/* F1CF8 802CD348 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* F1CFC 802CD34C AFB10014 */ sw $s1, 0x14($sp) -/* F1D00 802CD350 0080882D */ daddu $s1, $a0, $zero -/* F1D04 802CD354 AFBF0018 */ sw $ra, 0x18($sp) -/* F1D08 802CD358 AFB00010 */ sw $s0, 0x10($sp) -/* F1D0C 802CD35C 8E30000C */ lw $s0, 0xc($s1) -/* F1D10 802CD360 8E050000 */ lw $a1, ($s0) -/* F1D14 802CD364 0C0B1EAF */ jal get_variable -/* F1D18 802CD368 26100004 */ addiu $s0, $s0, 4 -/* F1D1C 802CD36C 0220202D */ daddu $a0, $s1, $zero -/* F1D20 802CD370 8E050000 */ lw $a1, ($s0) -/* F1D24 802CD374 0C0B210B */ jal get_float_variable -/* F1D28 802CD378 0040802D */ daddu $s0, $v0, $zero -/* F1D2C 802CD37C 3C02802E */ lui $v0, %hi(gCurrentMeshAnimationListPtr) -/* F1D30 802CD380 8C42AE30 */ lw $v0, %lo(gCurrentMeshAnimationListPtr)($v0) -/* F1D34 802CD384 00108080 */ sll $s0, $s0, 2 -/* F1D38 802CD388 02028021 */ addu $s0, $s0, $v0 -/* F1D3C 802CD38C 8E020000 */ lw $v0, ($s0) -/* F1D40 802CD390 8C440000 */ lw $a0, ($v0) -/* F1D44 802CD394 4600008D */ trunc.w.s $f2, $f0 -/* F1D48 802CD398 44101000 */ mfc1 $s0, $f2 -/* F1D4C 802CD39C 0C047FF8 */ jal func_8011FFE0 -/* F1D50 802CD3A0 00000000 */ nop -/* F1D54 802CD3A4 A0500004 */ sb $s0, 4($v0) -/* F1D58 802CD3A8 8FBF0018 */ lw $ra, 0x18($sp) -/* F1D5C 802CD3AC 8FB10014 */ lw $s1, 0x14($sp) -/* F1D60 802CD3B0 8FB00010 */ lw $s0, 0x10($sp) -/* F1D64 802CD3B4 24020002 */ addiu $v0, $zero, 2 -/* F1D68 802CD3B8 03E00008 */ jr $ra -/* F1D6C 802CD3BC 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD418.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD418.s deleted file mode 100644 index 07b97bfebc..0000000000 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD418.s +++ /dev/null @@ -1,45 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802CD418 -/* F1DC8 802CD418 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* F1DCC 802CD41C AFB10014 */ sw $s1, 0x14($sp) -/* F1DD0 802CD420 0080882D */ daddu $s1, $a0, $zero -/* F1DD4 802CD424 AFBF001C */ sw $ra, 0x1c($sp) -/* F1DD8 802CD428 AFB20018 */ sw $s2, 0x18($sp) -/* F1DDC 802CD42C AFB00010 */ sw $s0, 0x10($sp) -/* F1DE0 802CD430 8E30000C */ lw $s0, 0xc($s1) -/* F1DE4 802CD434 8E050000 */ lw $a1, ($s0) -/* F1DE8 802CD438 0C0B1EAF */ jal get_variable -/* F1DEC 802CD43C 26100004 */ addiu $s0, $s0, 4 -/* F1DF0 802CD440 0220202D */ daddu $a0, $s1, $zero -/* F1DF4 802CD444 8E050004 */ lw $a1, 4($s0) -/* F1DF8 802CD448 8E120000 */ lw $s2, ($s0) -/* F1DFC 802CD44C 0C0B1EAF */ jal get_variable -/* F1E00 802CD450 0040882D */ daddu $s1, $v0, $zero -/* F1E04 802CD454 3C03802E */ lui $v1, %hi(gCurrentMeshAnimationListPtr) -/* F1E08 802CD458 8C63AE30 */ lw $v1, %lo(gCurrentMeshAnimationListPtr)($v1) -/* F1E0C 802CD45C 00118880 */ sll $s1, $s1, 2 -/* F1E10 802CD460 02238821 */ addu $s1, $s1, $v1 -/* F1E14 802CD464 8E230000 */ lw $v1, ($s1) -/* F1E18 802CD468 8C640000 */ lw $a0, ($v1) -/* F1E1C 802CD46C 0C047FF8 */ jal func_8011FFE0 -/* F1E20 802CD470 0040802D */ daddu $s0, $v0, $zero -/* F1E24 802CD474 12000004 */ beqz $s0, .L802CD488 -/* F1E28 802CD478 0040202D */ daddu $a0, $v0, $zero -/* F1E2C 802CD47C 8C820000 */ lw $v0, ($a0) -/* F1E30 802CD480 080B3525 */ j .L802CD494 -/* F1E34 802CD484 00521025 */ or $v0, $v0, $s2 -.L802CD488: -/* F1E38 802CD488 8C820000 */ lw $v0, ($a0) -/* F1E3C 802CD48C 00121827 */ nor $v1, $zero, $s2 -/* F1E40 802CD490 00431024 */ and $v0, $v0, $v1 -.L802CD494: -/* F1E44 802CD494 AC820000 */ sw $v0, ($a0) -/* F1E48 802CD498 8FBF001C */ lw $ra, 0x1c($sp) -/* F1E4C 802CD49C 8FB20018 */ lw $s2, 0x18($sp) -/* F1E50 802CD4A0 8FB10014 */ lw $s1, 0x14($sp) -/* F1E54 802CD4A4 8FB00010 */ lw $s0, 0x10($sp) -/* F1E58 802CD4A8 24020002 */ addiu $v0, $zero, 2 -/* F1E5C 802CD4AC 03E00008 */ jr $ra -/* F1E60 802CD4B0 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD5C0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD5C0.s index 659a0dc841..9439fcef3b 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD5C0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD5C0.s @@ -30,7 +30,7 @@ glabel func_802CD5C0 /* F1FD4 802CD624 8E330000 */ lw $s3, ($s1) /* F1FD8 802CD628 8E100004 */ lw $s0, 4($s0) /* F1FDC 802CD62C 8E640000 */ lw $a0, ($s3) -/* F1FE0 802CD630 0C047FF8 */ jal func_8011FFE0 +/* F1FE0 802CD630 0C047FF8 */ jal get_anim_mesh /* F1FE4 802CD634 0040882D */ daddu $s1, $v0, $zero /* F1FE8 802CD638 0040202D */ daddu $a0, $v0, $zero /* F1FEC 802CD63C 0C047FE6 */ jal func_8011FF98 diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD6E0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD6E0.s index d5f620f9be..dabe2b3bf9 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD6E0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD6E0.s @@ -30,7 +30,7 @@ glabel func_802CD6E0 /* F20F4 802CD744 8E230000 */ lw $v1, ($s1) /* F20F8 802CD748 8E150004 */ lw $s5, 4($s0) /* F20FC 802CD74C 8C640000 */ lw $a0, ($v1) -/* F2100 802CD750 0C047FF8 */ jal func_8011FFE0 +/* F2100 802CD750 0C047FF8 */ jal get_anim_mesh /* F2104 802CD754 0040882D */ daddu $s1, $v0, $zero /* F2108 802CD758 0040202D */ daddu $a0, $v0, $zero /* F210C 802CD75C 0C047FE6 */ jal func_8011FF98 diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD7D8.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD7D8.s index 20f51a62a8..f03ca9a136 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD7D8.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD7D8.s @@ -30,7 +30,7 @@ glabel func_802CD7D8 /* F21EC 802CD83C 8E330000 */ lw $s3, ($s1) /* F21F0 802CD840 8E100004 */ lw $s0, 4($s0) /* F21F4 802CD844 8E640000 */ lw $a0, ($s3) -/* F21F8 802CD848 0C047FF8 */ jal func_8011FFE0 +/* F21F8 802CD848 0C047FF8 */ jal get_anim_mesh /* F21FC 802CD84C 0040882D */ daddu $s1, $v0, $zero /* F2200 802CD850 0040202D */ daddu $a0, $v0, $zero /* F2204 802CD854 0C047FDD */ jal func_8011FF74 diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD8F8.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD8F8.s index 3e409569e9..1ffc08f192 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD8F8.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD8F8.s @@ -30,7 +30,7 @@ glabel func_802CD8F8 /* F230C 802CD95C 8E230000 */ lw $v1, ($s1) /* F2310 802CD960 8E150004 */ lw $s5, 4($s0) /* F2314 802CD964 8C640000 */ lw $a0, ($v1) -/* F2318 802CD968 0C047FF8 */ jal func_8011FFE0 +/* F2318 802CD968 0C047FF8 */ jal get_anim_mesh /* F231C 802CD96C 0040882D */ daddu $s1, $v0, $zero /* F2320 802CD970 0040202D */ daddu $a0, $v0, $zero /* F2324 802CD974 0C047FDD */ jal func_8011FF74 diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s index 7799c63cce..5d2f82702b 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s @@ -29,7 +29,7 @@ glabel func_802CD9F0 /* F2400 802CDA50 02238821 */ addu $s1, $s1, $v1 /* F2404 802CDA54 8E230000 */ lw $v1, ($s1) /* F2408 802CDA58 8C640000 */ lw $a0, ($v1) -/* F240C 802CDA5C 0C047FF8 */ jal func_8011FFE0 +/* F240C 802CDA5C 0C047FF8 */ jal get_anim_mesh /* F2410 802CDA60 0040802D */ daddu $s0, $v0, $zero /* F2414 802CDA64 0040202D */ daddu $a0, $v0, $zero /* F2418 802CDA68 0C047FE6 */ jal func_8011FF98 @@ -53,6 +53,6 @@ glabel func_802CD9F0 /* F2458 802CDAA8 24020002 */ addiu $v0, $zero, 2 /* F245C 802CDAAC 03E00008 */ jr $ra /* F2460 802CDAB0 27BD0028 */ addiu $sp, $sp, 0x28 -/* F2464 802CDAB4 00000000 */ nop -/* F2468 802CDAB8 00000000 */ nop -/* F246C 802CDABC 00000000 */ nop +/* F2464 802CDAB4 00000000 */ nop +/* F2468 802CDAB8 00000000 */ nop +/* F246C 802CDABC 00000000 */ nop diff --git a/include/functions.h b/include/functions.h index 72b99e0f04..1a190d84ca 100644 --- a/include/functions.h +++ b/include/functions.h @@ -93,6 +93,7 @@ ScriptInstance* start_script(Bytecode* initialLine, s32 priority, s32 initialSta ScriptInstance* start_script_in_group(Bytecode* initialLine, u8 priority, u8 initialState, u8 groupFlags); void func_8011B7C0(u16, s32, s32); +AnimatedMesh* get_anim_mesh(s32 arg0); void func_80137D88(s32, f32); void func_80137DA4(s32, f32); s32 func_80137E10(s32, u8, u8, u8); diff --git a/src/code_a5dd0_len_114e0.c b/src/code_a5dd0_len_114e0.c index 26d7166ec7..8f0eced19a 100644 --- a/src/code_a5dd0_len_114e0.c +++ b/src/code_a5dd0_len_114e0.c @@ -387,7 +387,9 @@ INCLUDE_ASM(s32, "code_a5dd0_len_114e0", func_8011FF98); INCLUDE_ASM(s32, "code_a5dd0_len_114e0", func_8011FFB4); -INCLUDE_ASM(s32, "code_a5dd0_len_114e0", func_8011FFE0); +AnimatedMesh* get_anim_mesh(s32 animModelID) { + return (*gCurrentAnimMeshListPtr)[animModelID & ~0x800]; +} INCLUDE_ASM(s32, "code_a5dd0_len_114e0", func_80120000); diff --git a/src/code_ef070_len_3400.c b/src/code_ef070_len_3400.c index f04ec53b35..f21ea4917f 100644 --- a/src/code_ef070_len_3400.c +++ b/src/code_ef070_len_3400.c @@ -489,9 +489,53 @@ ApiStatus func_802CCCB0(ScriptInstance* script, s32 isInitialCall) { return ApiStatus_DONE2; } -INCLUDE_ASM(s32, "code_ef070_len_3400", LoadModelAnimation); +ApiStatus LoadModelAnimation(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 index = get_variable(script, *args++); + s32 var1 = get_variable(script, *args++); + AnimatedModel* animModel = (*gCurrentMeshAnimationListPtr)[index]; + s32 animModelID = func_8011E4B8(0); -INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CCDAC); + func_801203AC(animModelID, var1); + animModel->animModelID = animModelID; + animModel->pos.x = 0; + animModel->pos.y = 0; + animModel->pos.z = 0; + animModel->rot.x = 0; + animModel->rot.y = 0; + animModel->rot.z = 0; + animModel->scale.x = 1.0f; + animModel->scale.y = 1.0f; + animModel->scale.z = 1.0f; + animModel->currentAnimData = NULL; + guMtxIdent(&animModel->mtx); + + return ApiStatus_DONE2; +} + +ApiStatus func_802CCDAC(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 index = get_variable(script, *args++); + s32 var1 = get_variable(script, *args++); + AnimatedModel* animModel = (*gCurrentMeshAnimationListPtr)[index]; + s32 animModelID = func_8011E4B8(0); + + func_80120474(animModelID, var1); + animModel->animModelID = animModelID; + animModel->pos.x = 0; + animModel->pos.y = 0; + animModel->pos.z = 0; + animModel->rot.x = 0; + animModel->rot.y = 0; + animModel->rot.z = 0; + animModel->scale.x = 1.0f; + animModel->scale.y = 1.0f; + animModel->scale.z = 1.0f; + animModel->currentAnimData = NULL; + guMtxIdent(&animModel->mtx); + + return ApiStatus_DONE2; +} ApiStatus PlayModelAnimation(ScriptInstance* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; @@ -563,7 +607,20 @@ ApiStatus GetAnimModelPosition(ScriptInstance* script, s32 isInitialCall) { return ApiStatus_DONE2; } -INCLUDE_ASM(s32, "code_ef070_len_3400", AddAnimModelPosition); +ApiStatus AddAnimModelPosition(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 index = get_variable(script, *args++); + f32 x = get_float_variable(script, *args++); + f32 y = get_float_variable(script, *args++); + f32 z = get_float_variable(script, *args++); + AnimatedModel* model = (*gCurrentMeshAnimationListPtr)[index]; + + model->pos.x += x; + model->pos.y += y; + model->pos.z += z; + + return ApiStatus_DONE2; +} ApiStatus SetAnimModelRotation(ScriptInstance* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; @@ -595,17 +652,38 @@ ApiStatus SetAnimModelScale(ScriptInstance* script, s32 isInitialCall) { return ApiStatus_DONE2; } -INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CD348); +ApiStatus func_802CD348(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 index = get_variable(script, *args++); + s32 renderMode = get_float_variable(script, *args++); + + get_anim_mesh((*gCurrentMeshAnimationListPtr)[index]->animModelID)->renderMode = renderMode; + return ApiStatus_DONE2; +} ApiStatus func_802CD3C0(ScriptInstance* script, s32 isInitialCall) { AnimatedModel* model = (*gCurrentMeshAnimationListPtr)[get_variable(script, *script->ptrReadPos)]; - func_8011E438(func_8011FFE0(model->animModelID)); + func_8011E438(get_anim_mesh(model->animModelID)); model->animModelID = -1; return ApiStatus_DONE2; } -INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CD418); +ApiStatus func_802CD418(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + s32 index = get_variable(script, *args++); + s32 a1 = *args++; + s32 var2 = get_variable(script, *args++); + AnimatedMesh* animMesh = get_anim_mesh((*gCurrentMeshAnimationListPtr)[index]->animModelID); + + if (var2) { + animMesh->flags |= a1; + } else { + animMesh->flags &= ~a1; + } + + return ApiStatus_DONE2; +} INCLUDE_ASM(s32, "code_ef070_len_3400", func_802CD4B4); diff --git a/tools/symbol_addrs.txt b/tools/symbol_addrs.txt index d41b15cb25..2ebd814720 100644 --- a/tools/symbol_addrs.txt +++ b/tools/symbol_addrs.txt @@ -768,6 +768,7 @@ set_aux_pan_v = 0x8011BC64; set_background_color_blend = 0x8011BE5C; get_background_color_blend = 0x8011BE80; queue_render_task = 0x8011D910; +get_anim_mesh = 8011FFE0; play_model_animation = 0x80120148; clear_virtual_models = 0x80120BB0; init_virtual_models = 0x80120C58; From 0628fac4a2755efa2017a22ffd10610eff08f44f Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sun, 8 Nov 2020 16:11:02 -0500 Subject: [PATCH 21/52] fix offset --- tools/symbol_addrs.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/symbol_addrs.txt b/tools/symbol_addrs.txt index 2ebd814720..be53038f32 100644 --- a/tools/symbol_addrs.txt +++ b/tools/symbol_addrs.txt @@ -768,7 +768,7 @@ set_aux_pan_v = 0x8011BC64; set_background_color_blend = 0x8011BE5C; get_background_color_blend = 0x8011BE80; queue_render_task = 0x8011D910; -get_anim_mesh = 8011FFE0; +get_anim_mesh = 0x8011FFE0; play_model_animation = 0x80120148; clear_virtual_models = 0x80120BB0; init_virtual_models = 0x80120C58; From a4bdc90eac1d4de27f106b40d3f6004c63d306f3 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sun, 8 Nov 2020 17:38:16 -0500 Subject: [PATCH 22/52] PR comments --- include/common.h | 1 - include/common_structs.h | 2 +- src/code_ED510.c | 8 ++++---- src/code_ef070_len_3400.c | 4 ++-- src/code_f2470_len_27f0.c | 4 ++-- src/world/area_dgb/dgb_01/BFD880.c | 1 + src/world/script_api/7E0E80.c | 3 ++- 7 files changed, 12 insertions(+), 11 deletions(-) diff --git a/include/common.h b/include/common.h index 8e785491ea..0e3f4293aa 100644 --- a/include/common.h +++ b/include/common.h @@ -10,6 +10,5 @@ #include "enums.h" #include "si.h" #include "messages.h" -#include "ld_addrs.h" #endif diff --git a/include/common_structs.h b/include/common_structs.h index 5822802726..afedf91338 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -944,7 +944,7 @@ typedef struct GameStatus { } GameStatus; // size = 0x178 typedef struct PartnerAnimations { - /* 0x00 */ UNK_PTR standard; // should be "default" but that's a keyword + /* 0x00 */ UNK_PTR still; /* 0x04 */ UNK_PTR walk; /* 0x08 */ UNK_PTR jump; /* 0x0C */ UNK_PTR fall; diff --git a/src/code_ED510.c b/src/code_ED510.c index 2d5371141c..0a11b5af52 100644 --- a/src/code_ED510.c +++ b/src/code_ED510.c @@ -135,10 +135,10 @@ ApiStatus SetTexPanner(ScriptInstance* script, s32 isInitialCall) { ApiStatus SetModelFlag10(ScriptInstance* script, s32 isInitialCall) { Bytecode* thisPos = script->ptrReadPos; Bytecode treeIndex = get_variable(script, *thisPos++); - Bytecode var2 = get_variable(script, *thisPos++); + Bytecode enable = get_variable(script, *thisPos++); Model* model = get_model_from_list_index(get_model_list_index_from_tree_index(treeIndex)); - if (var2 != 0) { + if (enable) { model->flags |= 0x10; } else { model->flags &= ~0x10; @@ -254,10 +254,10 @@ ApiStatus SetModelFlags(ScriptInstance* script, s32 isInitialCall) { s32 treeIndex = get_variable(script, *args++); s32 listIndex = get_model_list_index_from_tree_index(treeIndex); s32 a1 = *args++; - s32 var2 = get_variable(script, *args++); + s32 enable = get_variable(script, *args++); Model* model = get_model_from_list_index(listIndex); - if (var2) { + if (enable) { model->flags |= a1; } else { model->flags &= ~a1; diff --git a/src/code_ef070_len_3400.c b/src/code_ef070_len_3400.c index f21ea4917f..541b4ce8c6 100644 --- a/src/code_ef070_len_3400.c +++ b/src/code_ef070_len_3400.c @@ -673,10 +673,10 @@ ApiStatus func_802CD418(ScriptInstance* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; s32 index = get_variable(script, *args++); s32 a1 = *args++; - s32 var2 = get_variable(script, *args++); + s32 enable = get_variable(script, *args++); AnimatedMesh* animMesh = get_anim_mesh((*gCurrentMeshAnimationListPtr)[index]->animModelID); - if (var2) { + if (enable) { animMesh->flags |= a1; } else { animMesh->flags &= ~a1; diff --git a/src/code_f2470_len_27f0.c b/src/code_f2470_len_27f0.c index a28aa4ce57..2dedc37e82 100644 --- a/src/code_f2470_len_27f0.c +++ b/src/code_f2470_len_27f0.c @@ -246,14 +246,14 @@ ApiStatus SetNpcFlagBits(ScriptInstance* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; NpcId npcID = get_variable(script, *args++); s32 flagBits = *args++; - s32 var1 = get_variable(script, *args++); + s32 enable = get_variable(script, *args++); Npc* npc = resolve_npc(script, npcID); if (npc == NULL) { return ApiStatus_DONE2; } - if (var1) { + if (enable) { npc->flags |= flagBits; } else { npc->flags &= ~flagBits; diff --git a/src/world/area_dgb/dgb_01/BFD880.c b/src/world/area_dgb/dgb_01/BFD880.c index 0404168d14..db728f8bcf 100644 --- a/src/world/area_dgb/dgb_01/BFD880.c +++ b/src/world/area_dgb/dgb_01/BFD880.c @@ -1,4 +1,5 @@ #include "dgb_01.h" +#include "ld_addrs.h" ApiStatus func_80240000_BFD880(void) { dma_copy(&data_C20F40_ROM_START, &data_C20F40_ROM_END, &gBackgroundImage); diff --git a/src/world/script_api/7E0E80.c b/src/world/script_api/7E0E80.c index 53e3974083..9844e20b5f 100644 --- a/src/world/script_api/7E0E80.c +++ b/src/world/script_api/7E0E80.c @@ -17,7 +17,8 @@ ApiStatus func_802803C8(ScriptInstance* script, s32 isInitialCall) { script->varTable[2] = FALSE; - if (playerStatus->actionState == 4 || playerStatus->actionState == 8) { + if (playerStatus->actionState == ActionState_BOUNCE || + playerStatus->actionState == ActionState_FALLING) { return ApiStatus_DONE2; } From 2bf94376911059bb1a87978f9518cc4fcff26437 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sun, 8 Nov 2020 18:26:29 -0500 Subject: [PATCH 23/52] PR comments --- include/functions.h | 1 + src/code_838b0_len_5900.c | 2 +- src/world/script_api/7E3700.c | 18 +++++++++--------- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/include/functions.h b/include/functions.h index 1a190d84ca..ec6c3e77fc 100644 --- a/include/functions.h +++ b/include/functions.h @@ -81,6 +81,7 @@ PlayerData* get_player_data(void); // Partner void func_800EBA3C(Npc* partner); void func_800EBB40(Npc* partner); +void enable_partner_ai(void); void enable_partner_walking(Npc* partner, s32 val); void enable_partner_flying(Npc* partner, s32 val); void update_player_move_history(Npc* partner); diff --git a/src/code_838b0_len_5900.c b/src/code_838b0_len_5900.c index 4198a83d81..77ffeafbab 100644 --- a/src/code_838b0_len_5900.c +++ b/src/code_838b0_len_5900.c @@ -85,7 +85,7 @@ INCLUDE_ASM(s32, "code_838b0_len_5900", func_800EF300); INCLUDE_ASM(s32, "code_838b0_len_5900", func_800EF314); -INCLUDE_ASM(s32, "code_838b0_len_5900", enable_partner_ai); +INCLUDE_ASM(void, "code_838b0_len_5900", enable_partner_ai, void); INCLUDE_ASM(s32, "code_838b0_len_5900", func_800EF394, f32 arg0); diff --git a/src/world/script_api/7E3700.c b/src/world/script_api/7E3700.c index 1c19bb54ca..dc0334f9e7 100644 --- a/src/world/script_api/7E3700.c +++ b/src/world/script_api/7E3700.c @@ -79,29 +79,29 @@ ApiStatus TeleportPartnerToPlayer(ScriptInstance* script, s32 isInitialCall) { return ApiStatus_DONE2; } +// currentPartner is being loaded as unsigned instead of signed #ifdef NON_MATCHING ApiStatus func_80283908(ScriptInstance* script, s32 isInitialCall) { PlayerStatus* playerStatus = PLAYER_STATUS; + PlayerStatus* playerStatus2 = PLAYER_STATUS; Camera* camera = CURRENT_CAM; + s8 currentPartner = PLAYER_DATA->currentPartner; playerStatus->position.x = GAME_STATUS->savedPos.x; playerStatus->position.y = GAME_STATUS->savedPos.y; playerStatus->position.z = GAME_STATUS->savedPos.z; - if (PLAYER_DATA->currentPartner != PartnerId_NONE) { + if (currentPartner != PartnerId_NONE) { Npc* partner = get_npc_unsafe(NpcId_PARTNER); - f32 angle = clamp_angle(playerStatus->spriteFacingAngle < 180.0f ? 90.0f : -90.0f); - - partner->pos.x = playerStatus->position.x; - partner->pos.y = playerStatus->position.y; - partner->pos.z = playerStatus->position.z; - - add_vec2D_polar(&partner->pos, &partner->pos.z, playerStatus->colliderDiameter + 5, angle); + f32 angle = clamp_angle((playerStatus2->spriteFacingAngle < 180.0f) ? (90.0f) : (-90.0f)); + partner->pos.x = playerStatus2->position.x; + partner->pos.y = playerStatus2->position.y; + partner->pos.z = playerStatus2->position.z; + add_vec2D_polar(&partner->pos.x, &partner->pos.z, playerStatus2->colliderDiameter + 5, angle); enable_partner_ai(); } camera->unk_08 = 1; - return ApiStatus_DONE2; } #else From e1626030ff72848369d0e74b21beba0a7ca3bb42 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Mon, 9 Nov 2020 21:51:33 -0500 Subject: [PATCH 24/52] some libultra organization --- .vscode/settings.json | 1 + .../code_a5dd0_len_114e0/func_80120000.s | 14 - .../osEPiWriteIo.s | 4 +- .../code_3bd20_len_c0 => os}/osSetIntMask.s | 12 +- include/common_structs.h | 5 +- src/code_a5dd0_len_114e0.c | 8 +- src/os/code_3bd20_len_c0.c | 2 - src/os/code_3bde0_len_3e0.c | 2 - src/os/osEPiWriteIo.c | 15 + tools/assist.py | 4 +- tools/splat.yaml | 2366 +++++++++-------- 11 files changed, 1224 insertions(+), 1209 deletions(-) delete mode 100644 asm/nonmatchings/code_a5dd0_len_114e0/func_80120000.s rename asm/nonmatchings/os/{code_3bde0_len_3e0 => osEPiWriteIo}/osEPiWriteIo.s (94%) rename asm/{nonmatchings/os/code_3bd20_len_c0 => os}/osSetIntMask.s (90%) create mode 100644 src/os/osEPiWriteIo.c diff --git a/.vscode/settings.json b/.vscode/settings.json index c2b3c50402..8e1ee5da6b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -15,4 +15,5 @@ "build": true, "docs/doxygen": true, }, + "python.pythonPath": "/usr/bin/python3", } diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/func_80120000.s b/asm/nonmatchings/code_a5dd0_len_114e0/func_80120000.s deleted file mode 100644 index 675bb6219d..0000000000 --- a/asm/nonmatchings/code_a5dd0_len_114e0/func_80120000.s +++ /dev/null @@ -1,14 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80120000 -/* B6700 80120000 2402F7FF */ addiu $v0, $zero, -0x801 -/* B6704 80120004 00822024 */ and $a0, $a0, $v0 -/* B6708 80120008 3C028015 */ lui $v0, %hi(gCurrentAnimMeshListPtr) -/* B670C 8012000C 8C423A40 */ lw $v0, %lo(gCurrentAnimMeshListPtr)($v0) -/* B6710 80120010 00042080 */ sll $a0, $a0, 2 -/* B6714 80120014 00822021 */ addu $a0, $a0, $v0 -/* B6718 80120018 8C820000 */ lw $v0, ($a0) -/* B671C 8012001C AC4602D4 */ sw $a2, 0x2d4($v0) -/* B6720 80120020 03E00008 */ jr $ra -/* B6724 80120024 AC4502D8 */ sw $a1, 0x2d8($v0) diff --git a/asm/nonmatchings/os/code_3bde0_len_3e0/osEPiWriteIo.s b/asm/nonmatchings/os/osEPiWriteIo/osEPiWriteIo.s similarity index 94% rename from asm/nonmatchings/os/code_3bde0_len_3e0/osEPiWriteIo.s rename to asm/nonmatchings/os/osEPiWriteIo/osEPiWriteIo.s index d3ba4f78f6..eb1c0453af 100644 --- a/asm/nonmatchings/os/code_3bde0_len_3e0/osEPiWriteIo.s +++ b/asm/nonmatchings/os/osEPiWriteIo/osEPiWriteIo.s @@ -24,5 +24,5 @@ glabel osEPiWriteIo /* 3C1AC 80060DAC 8FB00010 */ lw $s0, 0x10($sp) /* 3C1B0 80060DB0 03E00008 */ jr $ra /* 3C1B4 80060DB4 27BD0020 */ addiu $sp, $sp, 0x20 -/* 3C1B8 80060DB8 00000000 */ nop -/* 3C1BC 80060DBC 00000000 */ nop +/* 3C1B8 80060DB8 00000000 */ nop +/* 3C1BC 80060DBC 00000000 */ nop diff --git a/asm/nonmatchings/os/code_3bd20_len_c0/osSetIntMask.s b/asm/os/osSetIntMask.s similarity index 90% rename from asm/nonmatchings/os/code_3bd20_len_c0/osSetIntMask.s rename to asm/os/osSetIntMask.s index 400a32855f..d5f5a38446 100644 --- a/asm/nonmatchings/os/code_3bd20_len_c0/osSetIntMask.s +++ b/asm/os/osSetIntMask.s @@ -1,5 +1,11 @@ +.include "macro.inc" + +# assembler directives .set noat # allow manual use of $at .set noreorder # don't insert nops after branches +.set gp=64 # allow use of 64-bit general purpose registers + +.section .text, "ax" glabel osSetIntMask /* 3BD40 80060940 400C6000 */ mfc0 $t4, $12 @@ -39,7 +45,7 @@ glabel osSetIntMask /* 3BDC4 800609C4 01816024 */ and $t4, $t4, $at /* 3BDC8 800609C8 01886025 */ or $t4, $t4, $t0 /* 3BDCC 800609CC 408C6000 */ mtc0 $t4, $12 -/* 3BDD0 800609D0 00000000 */ nop -/* 3BDD4 800609D4 00000000 */ nop +/* 3BDD0 800609D0 00000000 */ nop +/* 3BDD4 800609D4 00000000 */ nop /* 3BDD8 800609D8 03E00008 */ jr $ra -/* 3BDDC 800609DC 00000000 */ nop +/* 3BDDC 800609DC 00000000 */ nop diff --git a/include/common_structs.h b/include/common_structs.h index afedf91338..45d67fafd4 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -713,7 +713,10 @@ typedef struct AnimatedMesh { /* 0x098 */ struct Matrix4s mtx; /* 0x0D8 */ char unk_D8[500]; /* 0x2CC */ s32 time; - /* 0x2D0 */ char unk_2D0[16]; + /* 0x2D0 */ char unk_2D0[4]; + /* 0x2D4 */ s32 unk_2D4; + /* 0x2D8 */ s32 unk_2D8; + /* 0x2DC */ char unk_2DC[4]; } AnimatedMesh; // size = 0x2E0 typedef AnimatedMesh* AnimatedMeshList[MAX_ANIMATED_MESHES]; diff --git a/src/code_a5dd0_len_114e0.c b/src/code_a5dd0_len_114e0.c index 8f0eced19a..ad8083acd9 100644 --- a/src/code_a5dd0_len_114e0.c +++ b/src/code_a5dd0_len_114e0.c @@ -391,7 +391,13 @@ AnimatedMesh* get_anim_mesh(s32 animModelID) { return (*gCurrentAnimMeshListPtr)[animModelID & ~0x800]; } -INCLUDE_ASM(s32, "code_a5dd0_len_114e0", func_80120000); +AnimatedMesh* func_80120000(s32 animModelID, s32 arg1, s32 arg2) { + AnimatedMesh* ret = (*gCurrentAnimMeshListPtr)[animModelID & ~0x800]; + + ret->unk_2D4 = arg2; + ret->unk_2D8 = arg1; + return ret; +} INCLUDE_ASM(s32, "code_a5dd0_len_114e0", func_80120028); diff --git a/src/os/code_3bd20_len_c0.c b/src/os/code_3bd20_len_c0.c index aaccf25932..cf221c270f 100644 --- a/src/os/code_3bd20_len_c0.c +++ b/src/os/code_3bd20_len_c0.c @@ -1,5 +1,3 @@ #include "common.h" INCLUDE_ASM(s32, "os/code_3bd20_len_c0", nuContQueryRead); - -INCLUDE_ASM(OSIntMask, "os/code_3bd20_len_c0", osSetIntMask, OSIntMask mask); diff --git a/src/os/code_3bde0_len_3e0.c b/src/os/code_3bde0_len_3e0.c index 7f1ae70a31..858d9dcdee 100644 --- a/src/os/code_3bde0_len_3e0.c +++ b/src/os/code_3bde0_len_3e0.c @@ -3,5 +3,3 @@ INCLUDE_ASM(void, "os/code_3bde0_len_3e0", osCreatePiManager, OSPri prio, OSMesgQueue* queue, OSMesg* mesg, s32 unk); INCLUDE_ASM(s32, "os/code_3bde0_len_3e0", osEPiRawStartDma); - -INCLUDE_ASM(s32, "os/code_3bde0_len_3e0", osEPiWriteIo, OSPiHandle* handle, u32 unk1, u32 unk2); diff --git a/src/os/osEPiWriteIo.c b/src/os/osEPiWriteIo.c new file mode 100644 index 0000000000..66513822e3 --- /dev/null +++ b/src/os/osEPiWriteIo.c @@ -0,0 +1,15 @@ +#include "common.h" + +#ifdef MOVE_ISSUE +s32 osEPiWriteIo(OSPiHandle* handle, u32 devAddr, u32 data) { + register s32 ret; + + osPiGetAccess(); + ret = osEPiRawWriteIo(handle, devAddr, data); + osPiRelAccess(); + + return ret; +} +#else +INCLUDE_ASM(s32, "os/osEPiWriteIo", osEPiWriteIo, OSPiHandle* handle, u32 devAddr, u32 data); +#endif diff --git a/tools/assist.py b/tools/assist.py index e4a58ca5fb..7318638f25 100755 --- a/tools/assist.py +++ b/tools/assist.py @@ -110,9 +110,9 @@ def diff_syms(qb, tb): else: larger = tb smaller = qb - + len_ratio = len(smaller) / len(larger) - + if abs(len(larger) - len(smaller)) < 16 and is_zeros(larger[len(smaller):]): len_ratio = 1 diff --git a/tools/splat.yaml b/tools/splat.yaml index 79dbc8d832..f6319a7f05 100644 --- a/tools/splat.yaml +++ b/tools/splat.yaml @@ -24,179 +24,181 @@ segments: start: 0x1000 vram: 0x80025C00 files: - - [0x1000, "c", "code_1000_len_60"] - - [0x1060, "c", "code_1060_len_310"] - - [0x1370, "c", "code_1370_len_7d0"] - - [0x1b40, "c", "code_1b40_len_20b0"] - - [0x3bf0, "c", "code_3bf0_len_6f0"] - - [0x42e0, "c", "code_42e0_len_1f60"] - - [0x6000, "c", "code_6000"] - - [0x6240, "c", "code_6240_len_c00"] - - [0x6e40, "c", "code_6e40_len_500"] - - [0x7340, "c", "code_7340_len_b00"] - - [0x7e40, "c", "os/code_7e40_len_3f0"] - - [0x8230, "c", "os/nusys/nuSiMgr"] - - [0x8560, "c"] - - [0x9d10, "c", "code_9d10_len_1080"] - - [0xad90, "c", "code_ad90_len_2880"] - - [0xd610, "c", "code_d610_len_1330"] - - [0xe940, "c", "code_e940_len_290"] - - [0xebd0, "c", "code_ebd0_len_6a0"] - - [0xf270, "c", "code_f270_len_1190"] - - [0x10400, "c", "code_10400_len_d30"] - - [0x11130, "c", "code_11130_len_c0"] - - [0x111f0, "c", "code_111f0_len_860"] - - [0x11a50, "c", "code_11a50_len_7a0"] - - [0x121f0, "c", "code_121f0_len_1290"] - - [0x13480, "c", "code_13480_len_3f0"] - - [0x13870, "c", "code_13870_len_6980"] - - [0x1a1f0, "c", "code_1a1f0_len_5390"] - - [0x1f580, "c", "code_1f580_len_1940"] - - [0x20ec0, "c", "code_20ec0_len_5040"] - - [0x25f00, "c", "code_25f00_len_940"] - - [0x26840, "c", "code_26840_len_20d0"] - - [0x28910, "c", "code_28910_len_5090"] - - [0x2d9a0, "c", "code_2d9a0_len_890"] - - [0x2e230, "c", "code_2e230_len_2190"] - - [0x303c0, "c", "code_303c0_len_3e10"] - - [0x341d0, "c", "world/world"] - - [0x362a0, "c", "code_362a0_len_2f70"] - - [0x39210, "c", "code_39210_len_aa0"] - - [0x39cb0, "c", "os/code_39cb0_len_100"] - - [0x39db0, "c", "os/nusys/nuSched"] - - [0x3a650, "c", "os/nusys/nuGfxFuncSet"] - - [0x3a690, "c", "os/nusys/nuGfxPreNMIFuncSet"] - - [0x3a6d0, "c", "os/nusys/nuGfxTaskAllEndWait"] - - [0x3a6f0, "c", "os/nusys/nuGfxSetCfb"] - - [0x3a800, "c", "os/nusys/nuGfxDisplayOff"] - - [0x3a830, "c", "os/nusys/nuGfxDisplayOn"] - - [0x3a850, "c", "os/nusys/nuPiInit"] - - [0x3a890, "c", "os/nusys/nuPiReadRom"] - - [0x3a960, "c", "os/nusys/nuGfxInit"] - - [0x3aa10, "c", "os/nusys/nuContInit"] - - [0x3aa50, "c", "os/nusys/nuContDataGet"] - - [0x3aab0, "c", "os/nusys/nuContPakMgr"] - - [0x3af10, "c", "os/nusys/nuContRmbMgr"] - - [0x3b290, "c", "os/nusys/nuContRmbStart"] - - [0x3b2f0, "c", "os/nusys/nuContRmbCheck"] - - [0x3b390, "c", "os/code_3b390_len_110"] - - [0x3b4a0, "c", "os/code_3b4a0_len_270"] - - [0x3b710, "c", "os/code_3b710_len_40"] - - [0x3b750, "c", "code_3b750_len_20"] - - [0x3b770, "c", "os/code_3b770_len_80"] - - [0x3b7f0, "c", "os/code_3b7f0_len_120"] - - [0x3b910, "c", "os/code_3b910_len_410"] - - [0x3bd20, "c", "os/code_3bd20_len_c0"] - - [0x3bde0, "c", "os/code_3bde0_len_3e0"] - - [0x3c1c0, "c", "os/code_3c1c0_len_60"] - - [0x3c220, "c", "os/code_3c220_len_a0"] - - [0x3c2c0, "c", "os/code_3c2c0_len_50"] - - [0x3c310, "c", "os/code_3c310_len_180"] - - [0x3c490, "c", "os/code_3c490_len_3c0"] - - [0x3c850, "c", "os/code_3c850_len_f0"] - - [0x3c940, "c", "os/code_3c940_len_140"] - - [0x3ca80, "c", "os/code_3ca80_len_a0"] - - [0x3cb20, "c", "os/code_3cb20_len_130"] - - [0x3cc50, "c", "os/code_3cc50_len_80"] - - [0x3ccd0, "c", "os/code_3ccd0_len_30"] - - [0x3cd00, "c", "os/code_3cd00_len_5f0"] - - [0x3d2f0, "c", "os/code_3d2f0_len_10"] - - [0x3d300, "c", "os/code_3d300_len_30"] - - [0x3d330, "c", "os/code_3d330_len_990"] - - [0x3dcc0, "c", "os/code_3dcc0_len_a60"] - - [0x3e720, "c", "os/code_3e720_len_5f0"] - - [0x3ed10, "c", "guOrtho"] - - [0x3ef90, "c", "os/code_3ef90_len_600"] - - [0x3f310, "c", "os/code_3f310_len_3c0"] - - [0x3f6d0, "c", "os/code_3f6d0_len_320"] - - [0x3f9f0, "c", "os/code_3f9f0_len_60"] - - [0x3fa50, "c", "os/code_3fa50_len_f60"] - - [0x409b0, "c", "os/code_409b0_len_140"] - - [0x40af0, "c", "os/code_40af0_len_130"] - - [0x40c20, "c", "os/code_40c20_len_1f0"] - - [0x40e10, "c", "os/code_40e10_len_240"] - - [0x41050, "c", "os/code_41050_len_120"] - - [0x41170, "c", "os/code_41170_len_f0"] - - [0x41260, "c", "os/osCreateThread"] - - [0x41330, "c", "os/osGetThreadPri"] - - [0x41350, "c", "os/code_41350_len_d0"] - - [0x41420, "c", "os/code_41420_len_120"] - - [0x41540, "c", "os/code_41540_len_c0"] - - [0x41600, "c", "os/code_41600_len_40"] - - [0x41640, "c", "os/code_41640_len_50"] - - [0x41690, "c", "os/code_41690_len_10"] - - [0x416a0, "c", "os/code_416a0_len_90"] - - [0x41730, "c", "os/code_41730_len_20"] - - [0x41750, "c", "os/code_41750_len_450"] - - [0x41ba0, "c", "os/code_41ba0_len_c0"] - - [0x41c60, "c", "os/code_41c60_len_c0"] - - [0x41d20, "c", "os/code_41d20_len_40"] - - [0x41d60, "c", "os/code_41d60_len_50"] - - [0x41db0, "c", "os/code_41db0_len_40"] - - [0x41df0, "c", "os/code_41df0_len_40"] - - [0x41e30, "c", "os/code_41e30_len_40"] - - [0x41e70, "c", "os/code_41e70_len_340"] - - [0x421b0, "c", "os/code_421b0_len_60"] - - [0x42210, "c", "os/code_42210_len_50"] - - [0x42260, "c", "os/code_42260_len_170"] - - [0x423d0, "c", "os/code_423d0_len_50"] - - [0x42420, "c", "os/code_42420_len_50"] - - [0x42470, "c", "os/code_42470_len_310"] - - [0x42780, "c", "os/code_42780_len_120"] - - [0x428a0, "c", "os/guMtxIdentF"] - - [0x42900, "c", "os/code_42900_len_80"] - - [0x42980, "c", "os/code_42980_len_80"] - - [0x42a00, "c", "os/code_42a00_len_100"] - - [0x42b00, "c", "os/code_42b00_len_c0"] - - [0x42bc0, "c", "os/code_42bc0_len_60"] - - [0x42c20, "c", "os/code_42c20_len_e0"] - - [0x42d00, "c", "os/code_42d00_len_60"] - - [0x42d60, "c", "os/code_42d60_len_80"] - - [0x42de0, "c", "os/code_42de0_len_90"] - - [0x42e70, "c", "os/code_42e70_len_390"] - - [0x43200, "c", "os/code_43200_len_7c0"] - - [0x439c0, "c", "os/code_439c0_len_220"] - - [0x43be0, "c", "os/code_43be0_len_5e0"] - - [0x441c0, "c", "os/code_441c0_len_1c0"] - - [0x44380, "c", "os/code_44380_len_4e0"] - - [0x44860, "c", "os/code_44860_len_60"] - - [0x448c0, "c", "os/code_448c0_len_210"] - - [0x44ad0, "c", "os/code_44ad0_len_70"] - - [0x44b40, "c", "os/code_44b40_len_a90"] - - [0x455d0, "c", "os/code_455d0_len_1f0"] - - [0x457c0, "c", "os/code_457c0_len_270"] - - [0x45a30, "c", "os/code_45a30_len_20"] - - [0x45a50, "c", "os/code_45a50_len_3a0"] - - [0x45df0, "hasm", "os/code_45df0_len_970"] - - [0x46760, "c", "os/code_46760_len_90"] - - [0x467f0, "c", "os/code_467f0_len_90"] - - [0x46880, "c", "os/code_46880_len_260"] - - [0x46ae0, "c", "os/code_46ae0_len_170"] - - [0x46c50, "c", "os/code_46c50_len_20"] - - [0x46c70, "c", "os/code_46c70_len_e00"] - - [0x47a70, "c", "os/code_47a70_len_10"] - - [0x47a80, "c", "os/code_47a80_len_10"] - - [0x47a90, "c", "os/code_47a90_len_50"] - - [0x47ae0, "c", "os/code_47ae0_len_e0"] - - [0x47bc0, "c", "os/code_47bc0_len_50"] - - [0x47c10, "c", "os/code_47c10_len_50"] - - [0x47c60, "c", "os/code_47c60_len_f0"] - - [0x47d50, "c", "os/code_47d50_len_e0"] - - [0x47e30, "c", "os/code_47e30_len_60"] - - [0x47e90, "c", "os/code_47e90_len_110"] - - [0x47fa0, "c", "os/code_47fa0_len_20"] - - [0x47fc0, "c", "os/code_47fc0_len_60"] - - [0x48020, "c", "os/code_48020_len_a00"] - - [0x48a20, "c", "os/code_48a20_len_1c0"] - - [0x48be0, "c", "os/code_48be0_len_20"] - - [0x48c00, "c", "os/code_48c00_len_5c0"] - - [0x491c0, "c", "os/code_491c0_len_f80"] - - [0x49C70, "c", "os/code_49C70"] - - [0x4a140, "c", "os/code_4a140_len_70"] - - [0x4a1b0, "c", "os/code_4a1b0_len_40"] - - [0x4a1f0, "c", "os/code_4a1f0_len_170"] - - [0x4a360, "c", "os/code_4a360_len_930"] - - [0x4ac90, "c", "os/code_4ac90_len_3910"] + - [0x1000, c, "code_1000_len_60"] + - [0x1060, c, "code_1060_len_310"] + - [0x1370, c, "code_1370_len_7d0"] + - [0x1b40, c, "code_1b40_len_20b0"] + - [0x3bf0, c, "code_3bf0_len_6f0"] + - [0x42e0, c, "code_42e0_len_1f60"] + - [0x6000, c, "code_6000"] + - [0x6240, c, "code_6240_len_c00"] + - [0x6e40, c, "code_6e40_len_500"] + - [0x7340, c, "code_7340_len_b00"] + - [0x7e40, c, "os/code_7e40_len_3f0"] + - [0x8230, c, "os/nusys/nuSiMgr"] + - [0x8560, c] + - [0x9d10, c, "code_9d10_len_1080"] + - [0xad90, c, "code_ad90_len_2880"] + - [0xd610, c, "code_d610_len_1330"] + - [0xe940, c, "code_e940_len_290"] + - [0xebd0, c, "code_ebd0_len_6a0"] + - [0xf270, c, "code_f270_len_1190"] + - [0x10400, c, "code_10400_len_d30"] + - [0x11130, c, "code_11130_len_c0"] + - [0x111f0, c, "code_111f0_len_860"] + - [0x11a50, c, "code_11a50_len_7a0"] + - [0x121f0, c, "code_121f0_len_1290"] + - [0x13480, c, "code_13480_len_3f0"] + - [0x13870, c, "code_13870_len_6980"] + - [0x1a1f0, c, "code_1a1f0_len_5390"] + - [0x1f580, c, "code_1f580_len_1940"] + - [0x20ec0, c, "code_20ec0_len_5040"] + - [0x25f00, c, "code_25f00_len_940"] + - [0x26840, c, "code_26840_len_20d0"] + - [0x28910, c, "code_28910_len_5090"] + - [0x2d9a0, c, "code_2d9a0_len_890"] + - [0x2e230, c, "code_2e230_len_2190"] + - [0x303c0, c, "code_303c0_len_3e10"] + - [0x341d0, c, "world/world"] + - [0x362a0, c, "code_362a0_len_2f70"] + - [0x39210, c, "code_39210_len_aa0"] + - [0x39cb0, c, "os/code_39cb0_len_100"] + - [0x39db0, c, "os/nusys/nuSched"] + - [0x3a650, c, "os/nusys/nuGfxFuncSet"] + - [0x3a690, c, "os/nusys/nuGfxPreNMIFuncSet"] + - [0x3a6d0, c, "os/nusys/nuGfxTaskAllEndWait"] + - [0x3a6f0, c, "os/nusys/nuGfxSetCfb"] + - [0x3a800, c, "os/nusys/nuGfxDisplayOff"] + - [0x3a830, c, "os/nusys/nuGfxDisplayOn"] + - [0x3a850, c, "os/nusys/nuPiInit"] + - [0x3a890, c, "os/nusys/nuPiReadRom"] + - [0x3a960, c, "os/nusys/nuGfxInit"] + - [0x3aa10, c, "os/nusys/nuContInit"] + - [0x3aa50, c, "os/nusys/nuContDataGet"] + - [0x3aab0, c, "os/nusys/nuContPakMgr"] + - [0x3af10, c, "os/nusys/nuContRmbMgr"] + - [0x3b290, c, "os/nusys/nuContRmbStart"] + - [0x3b2f0, c, "os/nusys/nuContRmbCheck"] + - [0x3b390, c, "os/code_3b390_len_110"] + - [0x3b4a0, c, "os/code_3b4a0_len_270"] + - [0x3b710, c, "os/code_3b710_len_40"] + - [0x3b750, c, "code_3b750_len_20"] + - [0x3b770, c, "os/code_3b770_len_80"] + - [0x3b7f0, c, "os/code_3b7f0_len_120"] + - [0x3b910, c, "os/code_3b910_len_410"] + - [0x3bd20, c, "os/code_3bd20_len_c0"] + - [0x3BD40, hasm, os/osSetIntMask] + - [0x3bde0, c, "os/code_3bde0_len_3e0"] + - [0x3C160, c, os/osEPiWriteIo] + - [0x3c1c0, c, "os/code_3c1c0_len_60"] + - [0x3c220, c, "os/code_3c220_len_a0"] + - [0x3c2c0, c, "os/code_3c2c0_len_50"] + - [0x3c310, c, "os/code_3c310_len_180"] + - [0x3c490, c, "os/code_3c490_len_3c0"] + - [0x3c850, c, "os/code_3c850_len_f0"] + - [0x3c940, c, "os/code_3c940_len_140"] + - [0x3ca80, c, "os/code_3ca80_len_a0"] + - [0x3cb20, c, "os/code_3cb20_len_130"] + - [0x3cc50, c, "os/code_3cc50_len_80"] + - [0x3ccd0, c, "os/code_3ccd0_len_30"] + - [0x3cd00, c, "os/code_3cd00_len_5f0"] + - [0x3d2f0, c, "os/code_3d2f0_len_10"] + - [0x3d300, c, "os/code_3d300_len_30"] + - [0x3d330, c, "os/code_3d330_len_990"] + - [0x3dcc0, c, "os/code_3dcc0_len_a60"] + - [0x3e720, c, "os/code_3e720_len_5f0"] + - [0x3ed10, c, "guOrtho"] + - [0x3ef90, c, "os/code_3ef90_len_600"] + - [0x3f310, c, "os/code_3f310_len_3c0"] + - [0x3f6d0, c, "os/code_3f6d0_len_320"] + - [0x3f9f0, c, "os/code_3f9f0_len_60"] + - [0x3fa50, c, "os/code_3fa50_len_f60"] + - [0x409b0, c, "os/code_409b0_len_140"] + - [0x40af0, c, "os/code_40af0_len_130"] + - [0x40c20, c, "os/code_40c20_len_1f0"] + - [0x40e10, c, "os/code_40e10_len_240"] + - [0x41050, c, "os/code_41050_len_120"] + - [0x41170, c, "os/code_41170_len_f0"] + - [0x41260, c, "os/osCreateThread"] + - [0x41330, c, "os/osGetThreadPri"] + - [0x41350, c, "os/code_41350_len_d0"] + - [0x41420, c, "os/code_41420_len_120"] + - [0x41540, c, "os/code_41540_len_c0"] + - [0x41600, c, "os/code_41600_len_40"] + - [0x41640, c, "os/code_41640_len_50"] + - [0x41690, c, "os/code_41690_len_10"] + - [0x416a0, c, "os/code_416a0_len_90"] + - [0x41730, c, "os/code_41730_len_20"] + - [0x41750, c, "os/code_41750_len_450"] + - [0x41ba0, c, "os/code_41ba0_len_c0"] + - [0x41c60, c, "os/code_41c60_len_c0"] + - [0x41d20, c, "os/code_41d20_len_40"] + - [0x41d60, c, "os/code_41d60_len_50"] + - [0x41db0, c, "os/code_41db0_len_40"] + - [0x41df0, c, "os/code_41df0_len_40"] + - [0x41e30, c, "os/code_41e30_len_40"] + - [0x41e70, c, "os/code_41e70_len_340"] + - [0x421b0, c, "os/code_421b0_len_60"] + - [0x42210, c, "os/code_42210_len_50"] + - [0x42260, c, "os/code_42260_len_170"] + - [0x423d0, c, "os/code_423d0_len_50"] + - [0x42420, c, "os/code_42420_len_50"] + - [0x42470, c, "os/code_42470_len_310"] + - [0x42780, c, "os/code_42780_len_120"] + - [0x428a0, c, "os/guMtxIdentF"] + - [0x42900, c, "os/code_42900_len_80"] + - [0x42980, c, "os/code_42980_len_80"] + - [0x42a00, c, "os/code_42a00_len_100"] + - [0x42b00, c, "os/code_42b00_len_c0"] + - [0x42bc0, c, "os/code_42bc0_len_60"] + - [0x42c20, c, "os/code_42c20_len_e0"] + - [0x42d00, c, "os/code_42d00_len_60"] + - [0x42d60, c, "os/code_42d60_len_80"] + - [0x42de0, c, "os/code_42de0_len_90"] + - [0x42e70, c, "os/code_42e70_len_390"] + - [0x43200, c, "os/code_43200_len_7c0"] + - [0x439c0, c, "os/code_439c0_len_220"] + - [0x43be0, c, "os/code_43be0_len_5e0"] + - [0x441c0, c, "os/code_441c0_len_1c0"] + - [0x44380, c, "os/code_44380_len_4e0"] + - [0x44860, c, "os/code_44860_len_60"] + - [0x448c0, c, "os/code_448c0_len_210"] + - [0x44ad0, c, "os/code_44ad0_len_70"] + - [0x44b40, c, "os/code_44b40_len_a90"] + - [0x455d0, c, "os/code_455d0_len_1f0"] + - [0x457c0, c, "os/code_457c0_len_270"] + - [0x45a30, c, "os/code_45a30_len_20"] + - [0x45a50, c, "os/code_45a50_len_3a0"] + - [0x45df0, hasm, "os/code_45df0_len_970"] + - [0x46760, c, "os/code_46760_len_90"] + - [0x467f0, c, "os/code_467f0_len_90"] + - [0x46880, c, "os/code_46880_len_260"] + - [0x46ae0, c, "os/code_46ae0_len_170"] + - [0x46c50, c, "os/code_46c50_len_20"] + - [0x46c70, c, "os/code_46c70_len_e00"] + - [0x47a70, c, "os/code_47a70_len_10"] + - [0x47a80, c, "os/code_47a80_len_10"] + - [0x47a90, c, "os/code_47a90_len_50"] + - [0x47ae0, c, "os/code_47ae0_len_e0"] + - [0x47bc0, c, "os/code_47bc0_len_50"] + - [0x47c10, c, "os/code_47c10_len_50"] + - [0x47c60, c, "os/code_47c60_len_f0"] + - [0x47d50, c, "os/code_47d50_len_e0"] + - [0x47e30, c, "os/code_47e30_len_60"] + - [0x47e90, c, "os/code_47e90_len_110"] + - [0x47fa0, c, "os/code_47fa0_len_20"] + - [0x47fc0, c, "os/code_47fc0_len_60"] + - [0x48020, c, "os/code_48020_len_a00"] + - [0x48a20, c, "os/code_48a20_len_1c0"] + - [0x48be0, c, "os/code_48be0_len_20"] + - [0x48c00, c, "os/code_48c00_len_5c0"] + - [0x491c0, c, "os/code_491c0_len_f80"] + - [0x49C70, c, "os/code_49C70"] + - [0x4a140, c, "os/code_4a140_len_70"] + - [0x4a1b0, c, "os/code_4a1b0_len_40"] + - [0x4a1f0, c, "os/code_4a1f0_len_170"] + - [0x4a360, c, "os/code_4a360_len_930"] + - [0x4ac90, c, "os/code_4ac90_len_3910"] - [0x4E5A0, "bin"] - [0x52D50, "bin"] - [0x6B450, .data, world/world] @@ -209,15 +211,15 @@ segments: start: 0x759B0 vram: 0x800DC500 files: - - [0x759b0, "c", "code_759b0_len_61b0"] - - [0x7bb60, "c", "code_7bb60_len_41b0"] - - [0x7fd10, "c", "code_7fd10_len_b40"] - - [0x80850, "c", "code_80850_len_3060"] - - [0x838b0, "c", "code_838b0_len_5900"] - - [0x891b0, "c", "code_891b0_len_fb0"] - - [0x8a160, "c", "code_8a160_len_700"] - - [0x8a860, "c", "code_8a860_len_3f30"] - - [0x8e790, "c", "code_8e790_len_2850"] + - [0x759b0, c, "code_759b0_len_61b0"] + - [0x7bb60, c, "code_7bb60_len_41b0"] + - [0x7fd10, c, "code_7fd10_len_b40"] + - [0x80850, c, "code_80850_len_3060"] + - [0x838b0, c, "code_838b0_len_5900"] + - [0x891b0, c, "code_891b0_len_fb0"] + - [0x8a160, c, "code_8a160_len_700"] + - [0x8a860, c, "code_8a860_len_3f30"] + - [0x8e790, c, "code_8e790_len_2850"] - [0x90fe0, "bin"] - [0x93CD0, ci4, ui/hammer, 32, 32] - [0x93ED0, palette, ui/hammer] @@ -231,18 +233,18 @@ segments: start: 0xA5DD0 vram: 0x8010F6D0 files: - - [0xa5dd0, "c", "code_a5dd0_len_114e0"] - - [0xb72b0, "c", "code_b72b0_len_15ed0"] - - [0xcd180, "c", "code_cd180_len_38f0"] - - [0xd0a70, "c", "code_d0a70_len_4fe0"] - - [0xd5a50, "c", "code_d5a50_len_5fd0"] - - [0xdba20, "c", "code_dba20_len_350"] - - [0xdbd70, "c", "code_dbd70_len_700"] - - [0xdc470, "c", "code_dc470_len_14c0"] - - [0xdd930, "c", "code_dd930_len_1c0"] - - [0xddaf0, "c", "code_ddaf0_len_c50"] - - [0xde740, "c", "code_de740_len_23f0"] - - [0xe0b30, "c", "code_e0b30_len_b80"] + - [0xa5dd0, c, "code_a5dd0_len_114e0"] + - [0xb72b0, c, "code_b72b0_len_15ed0"] + - [0xcd180, c, "code_cd180_len_38f0"] + - [0xd0a70, c, "code_d0a70_len_4fe0"] + - [0xd5a50, c, "code_d5a50_len_5fd0"] + - [0xdba20, c, "code_dba20_len_350"] + - [0xdbd70, c, "code_dbd70_len_700"] + - [0xdc470, c, "code_dc470_len_14c0"] + - [0xdd930, c, "code_dd930_len_1c0"] + - [0xddaf0, c, "code_ddaf0_len_c50"] + - [0xde740, c, "code_de740_len_23f0"] + - [0xe0b30, c, "code_e0b30_len_b80"] - [0xe16b0, "bin"] - [0xE5820, ".data", "code_dc470_len_14c0"] - [0xE5830, "bin"] @@ -250,17 +252,17 @@ segments: start: 0xE79B0 vram: 0x802C3000 files: - - [0xe79b0, "c", "code_e79b0_len_1920"] - - [0xe92d0, "c", "si"] - - [0xED510, "c", "code_ED510"] - - [0xef070, "c", "code_ef070_len_3400"] - - [0xf2470, "c", "code_f2470_len_27f0"] - - [0xf4c60, "c", "code_f4c60_len_4300"] - - [0xf5750, "c", "code_F5750"] - - [0xf8f60, "c", "code_f8f60_len_1560"] - - [0xfa4c0, "c", "code_fa4c0_len_3bf0"] - - [0xFBE10, "c"] - - [0xfe0b0, "c", "code_fe0b0_len_5a0"] + - [0xe79b0, c, "code_e79b0_len_1920"] + - [0xe92d0, c, "si"] + - [0xED510, c, "code_ED510"] + - [0xef070, c, "code_ef070_len_3400"] + - [0xf2470, c, "code_f2470_len_27f0"] + - [0xf4c60, c, "code_f4c60_len_4300"] + - [0xf5750, c, "code_F5750"] + - [0xf8f60, c, "code_f8f60_len_1560"] + - [0xfa4c0, c, "code_fa4c0_len_3bf0"] + - [0xFBE10, c] + - [0xfe0b0, c, "code_fe0b0_len_5a0"] - [0xFE650, ".data", "code_e79b0_len_1920"] - [0xFE660, "bin"] - [0xFE730, ".rodata", "code_e79b0_len_1920"] @@ -269,20 +271,20 @@ segments: start: 0xFEE30 vram: 0x802DBD40 files: - - [0xfee30, "c", "code_fee30_len_2d60"] - - [0x101b90, "c", "code_101b90_len_8f0"] + - [0xfee30, c, "code_fee30_len_2d60"] + - [0x101b90, c, "code_101b90_len_8f0"] - [0x102480, "bin"] - type: code start: 0x102610 vram: 0x802E0D90 files: - - [0x102610, "c", "code_102610_len_2330"] - - [0x104940, "c", "code_104940_len_dc0"] - - [0x105700, "c", "code_105700_len_2130"] - - [0x107830, "c", "code_107830_len_e70"] - - [0x1086a0, "c", "code_1086a0_len_fc0"] - - [0x109660, "c", "code_109660_len_1270"] - - [0x10A8D0, "c", "code_10A8D0"] + - [0x102610, c, "code_102610_len_2330"] + - [0x104940, c, "code_104940_len_dc0"] + - [0x105700, c, "code_105700_len_2130"] + - [0x107830, c, "code_107830_len_e70"] + - [0x1086a0, c, "code_1086a0_len_fc0"] + - [0x109660, c, "code_109660_len_1270"] + - [0x10A8D0, c, "code_10A8D0"] - [0x10A9F0, i4, shadow/square, 16, 16] - [0x10AA70, i4, shadow/circle, 16, 16] - [0x10AAF0, bin] @@ -298,11 +300,11 @@ segments: start: 0x135EE0 vram: 0x80242BA0 files: - - [0x135EE0, "c"] - - [0x13CAF0, "c"] - - [0x13FD40, "c"] - - [0x140C70, "c"] - - [0x1421C0, "c"] + - [0x135EE0, c] + - [0x13CAF0, c] + - [0x13FD40, c] + - [0x140C70, c] + - [0x1421C0, c] - [0x1422A0, "bin"] - [0x1443F0, ci8, pause/world_map, 320, 320] - [0x15D3F0, palette, pause/world_map] @@ -330,33 +332,33 @@ segments: start: 0x163400 vram: 0x80242BA0 files: - - [0x163400, "c"] - - [0x165490, "c"] - - [0x167570, "c"] - - [0x168590, "c"] - - [0x169BE0, "c"] + - [0x163400, c] + - [0x165490, c] + - [0x167570, c] + - [0x168590, c] + - [0x169BE0, c] - [0x16A3E0, "bin"] - type: code start: 0x16C8E0 vram: 0x8023E000 files: - - [0x16C8E0, "c", "code_16c8e0"] - - [0x16F740, "c"] - - [0x1776B0, "c"] - - [0x17D6A0, "c"] - - [0x17FEB0, "c"] - - [0x181810, "c"] - - [0x182B30, "c"] - - [0x18C790, "c"] - - [0x18F340, "c"] - - [0x190B20, "c"] - - [0x1967B0, "c"] - - [0x196AA0, "c"] - - [0x197F40, "c"] - - [0x1A5830, "c"] - - [0x1AC760, "c"] - - [0x1AF120, "c"] - - [0x1AF230, "c"] + - [0x16C8E0, c, "code_16c8e0"] + - [0x16F740, c] + - [0x1776B0, c] + - [0x17D6A0, c] + - [0x17FEB0, c] + - [0x181810, c] + - [0x182B30, c] + - [0x18C790, c] + - [0x18F340, c] + - [0x190B20, c] + - [0x1967B0, c] + - [0x196AA0, c] + - [0x197F40, c] + - [0x1A5830, c] + - [0x1AC760, c] + - [0x1AF120, c] + - [0x1AF230, c] - [0x1AF2D0, "bin"] - [0x1CC310, "bin"] # icon images and palettes, vram unknown - [0x1FE1B0, rgba16, title/logo_n64, 128, 112] @@ -378,117 +380,117 @@ segments: start: 0x3169F0 vram: 0x80200000 files: - - [0x3169f0, "c", "code_3169f0"] - - [0x316a70, "c", "code_316a70"] + - [0x3169f0, c, "code_3169f0"] + - [0x316a70, c, "code_316a70"] - [0x316c00, "bin"] # 0x802AE000 - type: code start: 0x316D90 vram: 0x802AE000 files: - - [0x316d90, "c", "code_316d90"] + - [0x316d90, c, "code_316d90"] - type: code start: 0x316f30 vram: 0x802B2000 files: - - [0x316f30, "c", "code_316f30"] + - [0x316f30, c, "code_316f30"] - type: code start: 0x317020 vram: 0x802BD100 files: - - [0x317020, "c"] + - [0x317020, c] - [0x317b60, "bin"] - type: code start: 0x317e50 vram: 0x802BD100 files: - - [0x317e50, "c"] + - [0x317e50, c] - [0x3195d0, "bin"] - type: code start: 0x319670 vram: 0x802BD100 files: - - [0x319670, "c"] + - [0x319670, c] - [0x31b000, "bin"] - type: code start: 0x31b120 vram: 0x802BD100 files: - - [0x31b120, "c"] + - [0x31b120, c] - [0x31cb60, "bin"] - type: code start: 0x31cc70 vram: 0x802BD100 files: - - [0x31cc70, "c"] + - [0x31cc70, c] - [0x31ddc0, "bin"] - type: code start: 0x31de70 vram: 0x802BD100 files: - - [0x31de70, "c"] + - [0x31de70, c] - [0x320b20, "bin"] - type: code start: 0x320c50 vram: 0x802BD100 files: - - [0x320c50, "c"] + - [0x320c50, c] - [0x3239b0, "bin"] - type: code start: 0x323A50 vram: 0x802BD100 files: - - [0x323A50, "c"] + - [0x323A50, c] - [0x324930, "bin"] - type: code start: 0x324a10 vram: 0x802BD100 files: - - [0x324a10, "c", "world_goompa"] + - [0x324a10, c, "world_goompa"] - [0x324e80, "bin"] - type: code start: 0x324f10 vram: 0x802BD100 files: - - [0x324f10, "c", "world_goombaria"] + - [0x324f10, c, "world_goombaria"] - [0x325000, "bin"] - type: code start: 0x325070 vram: 0x802BD100 files: - - [0x325070, "c", "world_twink"] + - [0x325070, c, "world_twink"] - [0x325160, "bin"] - type: code start: 0x3251d0 vram: 0x802BD100 files: - - [0x3251d0, "c"] + - [0x3251d0, c] - [0x3255e0, "bin"] - type: code start: 0x325ad0 vram: 0xE0200000 files: - - [0x325ad0, "c"] - - [0x325ee0, "c"] + - [0x325ad0, c] + - [0x325ee0, c] - [0x326160, "bin"] - [0x326410, "bin"] - type: code start: 0x3278f0 vram: 0xE0002000 files: - - [0x3278f0, "c"] + - [0x3278f0, c] - [0x328050, "bin"] - type: code start: 0x328110 vram: 0xE000C000 files: - - [0x328110, "c"] + - [0x328110, c] - [0x328d20, "bin"] - [0x328EA0, "bin"] - type: code start: 0x32C110 vram: 0xE000E000 files: - - [0x32C110, "c"] + - [0x32C110, c] - [0x32c770, "bin"] - [0x32c7a0, "bin"] # code, unknown VRAM addr. Leaving as bin for now. - [0x32ceb0, "bin"] # data/rodata section for above. @@ -506,156 +508,156 @@ segments: start: 0x331940 vram: 0xE001E000 files: - - [0x331940, "c"] + - [0x331940, c] - [0x332690, "bin"] - [0x3326A0, "bin"] - type: code start: 0x333ec0 vram: 0xE0020000 files: - - [0x333ec0, "c"] + - [0x333ec0, c] - [0x334b50, "bin"] - [0x334C70, "bin"] - type: code start: 0x337240 vram: 0xE0022000 files: - - [0x337240, "c"] + - [0x337240, c] - [0x337f10, "bin"] - [0x337FC0, "bin"] - type: code start: 0x339250 vram: 0xE0024000 files: - - [0x339250, "c"] + - [0x339250, c] - [0x339f10, "bin"] - [0x339F60, "bin"] - type: code start: 0x33B180 vram: 0xE0026000 files: - - [0x33B180, "c"] + - [0x33B180, c] - [0x33bb70, "bin"] - [0x33BBD0, "bin"] - type: code start: 0x33CDF0 vram: 0xE0028000 files: - - [0x33CDF0, "c"] + - [0x33CDF0, c] - [0x33d5d0, "bin"] - [0x33D610, "bin"] - type: code start: 0x33E8C0 vram: 0xE002A000 files: - - [0x33E8C0, "c"] + - [0x33E8C0, c] - [0x33efe0, "bin"] - type: code start: 0x33FE80 vram: 0xE002C000 files: - - [0x33FE80, "c"] + - [0x33FE80, c] - [0x3407c0, "bin"] - [0x340880, "bin"] - type: code start: 0x3419E0 vram: 0xE002E000 files: - - [0x3419E0, "c"] + - [0x3419E0, c] - [0x342120, "bin"] - type: code start: 0x342140 vram: 0xE0030000 files: - - [0x342140, "c"] + - [0x342140, c] - [0x342fd0, "bin"] - [0x343040, "bin"] - type: code start: 0x343680 vram: 0xE0032000 files: - - [0x343680, "c"] + - [0x343680, c] - [0x343f30, "bin"] - [0x343F70, "bin"] - type: code start: 0x344a10 vram: 0xE0034000 files: - - [0x344a10, "c"] + - [0x344a10, c] - [0x345190, "bin"] - [0x3451E0, "bin"] - type: code start: 0x3454E0 vram: 0xE0036000 files: - - [0x3454E0, "c"] + - [0x3454E0, c] - [0x345b10, "bin"] - [0x345B40, "bin"] - type: code start: 0x34EC80 vram: 0xE003A000 files: - - [0x34EC80, "c"] + - [0x34EC80, c] - [0x34f480, "bin"] - type: code start: 0x34F4C0 vram: 0xE003C000 files: - - [0x34F4C0, "c"] + - [0x34F4C0, c] - [0x350160, "bin"] - [0x350220, "bin"] - type: code start: 0x352440 vram: 0xE003E000 files: - - [0x352440, "c"] + - [0x352440, c] - [0x352cb0, "bin"] - [0x352CE0, "bin"] - type: code start: 0x354F60 vram: 0xE0044000 files: - - [0x354F60, "c"] + - [0x354F60, c] - [0x355d10, "bin"] - type: code start: 0x355EE0 vram: 0xE0046000 files: - - [0x355EE0, "c"] + - [0x355EE0, c] - [0x3564e0, "bin"] - [0x356530, "bin"] - type: code start: 0x356980 vram: 0xE0048000 files: - - [0x356980, "c"] + - [0x356980, c] - [0x357380, "bin"] - [0x3573A0, "bin"] - type: code start: 0x3584C0 vram: 0xE004A000 files: - - [0x3584C0, "c"] + - [0x3584C0, c] - [0x359320, "bin"] - [0x3593B0, "bin"] - type: code start: 0x35B9D0 vram: 0xE004E000 files: - - [0x35B9D0, "c"] + - [0x35B9D0, c] - [0x35bfb0, "bin"] - type: code start: 0x35BFD0 vram: 0xE0050000 files: - - [0x35BFD0, "c"] + - [0x35BFD0, c] - [0x35c530, "bin"] - [0x35C550, "bin"] - type: code start: 0x3602C0 vram: 0xE005A000 files: - - [0x3602C0, "c"] + - [0x3602C0, c] - [0x360a10, "bin"] - [0x360A30, "bin"] - [0x360f40, "bin"] # code, unknown VRAM addr. Leaving as bin for now. @@ -672,68 +674,68 @@ segments: start: 0x366030 vram: 0xE0066000 files: - - [0x366030, "c"] + - [0x366030, c] - [0x366c80, "bin"] - [0x366D60, "bin"] - type: code start: 0x36A8D0 vram: 0xE0068000 files: - - [0x36A8D0, "c"] + - [0x36A8D0, c] - [0x36ae80, "bin"] - [0x36AEE0, "bin"] - type: code start: 0x36D020 vram: 0xE006A000 files: - - [0x36D020, "c"] + - [0x36D020, c] - [0x36de10, "bin"] - [0x36DF90, "bin"] - type: code start: 0x36E1D0 vram: 0xE006C000 files: - - [0x36E1D0, "c"] + - [0x36E1D0, c] - [0x36ed30, "bin"] - [0x36ED60, "bin"] - type: code start: 0x372790 vram: 0xE006E000 files: - - [0x372790, "c"] + - [0x372790, c] - [0x373390, "bin"] - [0x3733E0, "bin"] - type: code start: 0x3740B0 vram: 0xE0070000 files: - - [0x3740B0, "c"] + - [0x3740B0, c] - [0x374d80, "bin"] - type: code start: 0x374E50 vram: 0xE0072000 files: - - [0x374E50, "c"] + - [0x374E50, c] - [0x375500, "bin"] - [0x375510, "bin"] - type: code start: 0x376460 vram: 0xE0074000 files: - - [0x376460, "c"] + - [0x376460, c] - [0x376fc0, "bin"] - type: code start: 0x377070 vram: 0xE0076000 files: - - [0x377070, "c"] + - [0x377070, c] - [0x377f00, "bin"] - [0x377F80, "bin"] - type: code start: 0x37A3F0 vram: 0xE0078000 files: - - [0x37A3F0, "c"] + - [0x37A3F0, c] - [0x37acf0, "bin"] - [0x37ADD0, "bin"] - [0x37D9D0, "bin"] @@ -741,55 +743,55 @@ segments: start: 0x37F720 vram: 0xE007E000 files: - - [0x37F720, "c"] + - [0x37F720, c] - [0x380350, "bin"] - [0x3803A0, "bin"] - type: code start: 0x3812C0 vram: 0xE0080000 files: - - [0x3812C0, "c"] + - [0x3812C0, c] - [0x381d80, "bin"] - [0x381E00, "bin"] - type: code start: 0x385640 vram: 0xE0082000 files: - - [0x385640, "c"] + - [0x385640, c] - [0x386340, "bin"] - [0x3863B0, "bin"] - type: code start: 0x3889D0 vram: 0xE0084000 files: - - [0x3889D0, "c"] + - [0x3889D0, c] - [0x3897e0, "bin"] - type: code start: 0x389850 vram: 0xE0086000 files: - - [0x389850, "c"] + - [0x389850, c] - [0x38a2f0, "bin"] - [0x38A350, "bin"] - type: code start: 0x38ADF0 vram: 0xE0088000 files: - - [0x38ADF0, "c"] + - [0x38ADF0, c] - [0x38bab0, "bin"] - [0x38BBA0, "bin"] - type: code start: 0x38EE60 vram: 0xE008E000 files: - - [0x38EE60, "c"] + - [0x38EE60, c] - [0x38f6f0, "bin"] - [0x38F710, "bin"] - type: code start: 0x38F900 vram: 0xE0090000 files: - - [0x38F900, "c"] + - [0x38F900, c] - [0x390340, "bin"] - [0x3903D0, "bin"] - start: 0x390810 @@ -803,14 +805,14 @@ segments: start: 0x391D30 vram: 0xE0092000 files: - - [0x391D30, "c"] + - [0x391D30, c] - [0x3923c0, "bin"] - [0x392440, "bin"] - type: code start: 0x3928D0 vram: 0xE0094000 files: - - [0x3928D0, "c"] + - [0x3928D0, c] - [0x393080, "bin"] - [0x3930A0, "bin"] - [0x394280, "bin"] # code, unknown VRAM addr. Leaving as bin for now. @@ -831,55 +833,55 @@ segments: start: 0x3A37E0 vram: 0xE00A4000 files: - - [0x3A37E0, "c"] + - [0x3A37E0, c] - [0x3a42b0, "bin"] - [0x3A4320, "bin"] - type: code start: 0x3A70F0 vram: 0xE00A8000 files: - - [0x3A70F0, "c"] + - [0x3A70F0, c] - [0x3A7710, "bin"] - [0x3A77A0, "bin"] # split further - type: code start: 0x3AA920 vram: 0xE00AA000 files: - - [0x3AA920, "c"] + - [0x3AA920, c] - [0x3AAFE0, "bin"] - [0x3AB030, "bin"] # todo split this further - type: code start: 0x3AEE20 vram: 0xE00AC000 files: - - [0x3AEE20, "c"] + - [0x3AEE20, c] - [0x3AF5D0, "bin"] - [0x3AF700, "bin"] # todo split this further - type: code start: 0x3B2350 vram: 0xE00AE000 files: - - [0x3B2350, "c"] + - [0x3B2350, c] - [0x3B2D90, "bin"] # todo split this further - type: code start: 0x3B3EB0 vram: 0xE00B0000 files: - - [0x3B3EB0, "c"] + - [0x3B3EB0, c] - [0x3B4690, "bin"] - [0x3B46A0, "bin"] # todo split this further - type: code start: 0x3B7B80 vram: 0xE00B8000 files: - - [0x3B7B80, "c"] + - [0x3B7B80, c] - [0x3B8470, "bin"] - [0x3B8860, "bin"] # todo split this further - type: code start: 0x3BA030 vram: 0xE00BC000 files: - - [0x3BA030, "c"] + - [0x3BA030, c] - [0x3BAC60, "bin"] - [0x3BAEA0, "bin"] # todo split this further ADD STUFF AFTER HERE - [0x3ED4E0, "ia8", "world/text_chapter", 128, 38] @@ -888,7 +890,7 @@ segments: start: 0x415D90 vram: 0x802A1000 files: - - [0x415D90, "c"] + - [0x415D90, c] - [0x4200C0, "bin"] # todo split this further - name: battle/section_0/ type: code @@ -1173,9 +1175,9 @@ segments: start: 0x7E0E80 vram: 0x80280000 files: - - [0x7e0e80, "c"] - - [0x7E2AA0, "c"] - - [0x7E3700, "c"] + - [0x7e0e80, c] + - [0x7E2AA0, c] + - [0x7E3700, c] - [0x7e4d00, "bin"] - name: world/area_mac/machi/ type: code @@ -1183,9 +1185,9 @@ segments: start: 0x7E73A0 vram: 0x80240000 files: - - [0x7E73A0, "c"] - - [0x7E7550, "c"] - - [0x7E7850, "c"] + - [0x7E73A0, c] + - [0x7E7550, c] + - [0x7E7850, c] - [0x7E7A30, "bin"] - [0x7E8470, "bin"] - [0x7EA340, "bin"] @@ -1198,10 +1200,10 @@ segments: start: 0x7EAD10 vram: 0x80240000 files: - - [0x7EAD10, "c"] - - [0x7EB340, "c"] - - [0x7ECFD0, "c"] - - [0x7ED280, "c"] + - [0x7EAD10, c] + - [0x7EB340, c] + - [0x7ECFD0, c] + - [0x7ED280, c] - [0x7EE870, "bin"] - [0x7F0A20, "bin"] - [0x7F8F20, "bin"] @@ -1222,12 +1224,12 @@ segments: start: 0x800880 vram: 0x80240000 files: - - [0x800880, "c"] - - [0x800C40, "c"] - - [0x801700, "c"] - - [0x8017D0, "c"] - - [0x805DD0, "c"] - - [0x806D10, "c"] + - [0x800880, c] + - [0x800C40, c] + - [0x801700, c] + - [0x8017D0, c] + - [0x805DD0, c] + - [0x806D10, c] - [0x806F50, "bin"] - [0x807C00, "bin"] - [0x808680, "bin"] @@ -1244,11 +1246,11 @@ segments: start: 0x8232C0 vram: 0x80240000 files: - - [0x8232C0, "c"] - - [0x8238B0, "c"] - - [0x823970, "c"] - - [0x823BB0, "c"] - - [0x823BF0, "c"] + - [0x8232C0, c] + - [0x8238B0, c] + - [0x823970, c] + - [0x823BB0, c] + - [0x823BF0, c] - [0x8267E0, "bin"] - [0x8268F0, "bin"] - [0x827E70, "bin"] @@ -1262,10 +1264,10 @@ segments: start: 0x831800 vram: 0x80240000 files: - - [0x831800, "c"] - - [0x831B20, "c"] - - [0x833500, "c"] - - [0x833740, "c"] + - [0x831800, c] + - [0x831B20, c] + - [0x833500, c] + - [0x833740, c] - [0x834070, "bin"] - [0x834170, "bin"] - [0x835370, "bin"] @@ -1280,13 +1282,13 @@ segments: start: 0x842BD0 vram: 0x80240000 files: - - [0x842BD0, "c"] - - [0x842C20, "c"] - - [0x842D90, "c"] - - [0x842DF0, "c"] - - [0x843030, "c"] - - [0x844860, "c"] - - [0x844AC0, "c"] + - [0x842BD0, c] + - [0x842C20, c] + - [0x842D90, c] + - [0x842DF0, c] + - [0x843030, c] + - [0x844860, c] + - [0x844AC0, c] - [0x844BF0, "bin"] - [0x844D50, "bin"] - [0x845280, "bin"] @@ -1305,9 +1307,9 @@ segments: start: 0x852170 vram: 0x80240000 files: - - [0x852170, "c"] - - [0x855560, "c"] - - [0x855F20, "c"] + - [0x852170, c] + - [0x855560, c] + - [0x855F20, c] - [0x8562D0, "bin"] - [0x8564E0, "bin"] - [0x856650, "bin"] @@ -1324,9 +1326,9 @@ segments: start: 0x864B40 vram: 0x80240000 files: - - [0x864B40, "c"] - - [0x865000, "c"] - - [0x8659C0, "c"] + - [0x864B40, c] + - [0x865000, c] + - [0x8659C0, c] - [0x8661D0, "bin"] - [0x8666A0, "bin"] - [0x867EF0, "bin"] @@ -1338,9 +1340,9 @@ segments: start: 0x8694B0 vram: 0x80240000 files: - - [0x8694B0, "c"] - - [0x869AA0, "c"] - - [0x869EE0, "c"] + - [0x8694B0, c] + - [0x869AA0, c] + - [0x869EE0, c] - [0x869F40, "bin"] - [0x86A030, "bin"] - [0x86B350, "bin"] @@ -1353,9 +1355,9 @@ segments: start: 0x86C740 vram: 0x80240000 files: - - [0x86C740, "c"] - - [0x86CA50, "c"] - - [0x86CD10, "c"] + - [0x86C740, c] + - [0x86CA50, c] + - [0x86CD10, c] - [0x86D0E0, "bin"] - [0x86D190, "bin"] - [0x86D800, "bin"] @@ -1368,8 +1370,8 @@ segments: start: 0x86EB00 vram: 0x80240000 files: - - [0x86EB00, "c"] - - [0x86F0F0, "c"] + - [0x86EB00, c] + - [0x86F0F0, c] - [0x86F5D0, "bin"] - [0x86F670, "bin"] - [0x870B60, "bin"] @@ -1384,8 +1386,8 @@ segments: start: 0x871A30 vram: 0x80240000 files: - - [0x871A30, "c"] - - [0x872020, "c"] + - [0x871A30, c] + - [0x872020, c] - [0x8726A0, "bin"] - [0x872750, "bin"] - [0x8739F0, "bin"] @@ -1398,8 +1400,8 @@ segments: start: 0x874DC0 vram: 0x80240000 files: - - [0x874DC0, "c"] - - [0x8750D0, "c"] + - [0x874DC0, c] + - [0x8750D0, c] - [0x875810, "bin"] - [0x8758C0, "bin"] - [0x875D10, "bin"] @@ -1413,8 +1415,8 @@ segments: start: 0x876EE0 vram: 0x80240000 files: - - [0x876EE0, "c"] - - [0x8774D0, "c"] + - [0x876EE0, c] + - [0x8774D0, c] - [0x877840, "bin"] - [0x8778F0, "bin"] - [0x878F90, "bin"] @@ -1427,8 +1429,8 @@ segments: start: 0x879BE0 vram: 0x80240000 files: - - [0x879BE0, "c"] - - [0x87AC00, "c"] + - [0x879BE0, c] + - [0x87AC00, c] - [0x87C4D0, "bin"] - [0x87C570, "bin"] - [0x87D5D0, "bin"] @@ -1442,9 +1444,9 @@ segments: start: 0x87EDF0 vram: 0x80240000 files: - - [0x87EDF0, "c"] - - [0x87F3E0, "c"] - - [0x87F820, "c"] + - [0x87EDF0, c] + - [0x87F3E0, c] + - [0x87F820, c] - [0x87F8B0, "bin"] - [0x87F9A0, "bin"] - [0x881770, "bin"] @@ -1456,9 +1458,9 @@ segments: start: 0x8821C0 vram: 0x80240000 files: - - [0x8821C0, "c"] - - [0x8827B0, "c"] - - [0x882BF0, "c"] + - [0x8821C0, c] + - [0x8827B0, c] + - [0x882BF0, c] - [0x883460, "bin"] - [0x883500, "bin"] - [0x8856E0, "bin"] @@ -1472,8 +1474,8 @@ segments: start: 0x8863C0 vram: 0x80240000 files: - - [0x8863C0, "c"] - - [0x8866D0, "c"] + - [0x8863C0, c] + - [0x8866D0, c] - [0x887780, "bin"] - [0x887800, "bin"] - [0x887B20, "bin"] @@ -1486,9 +1488,9 @@ segments: start: 0x888BD0 vram: 0x80240000 files: - - [0x888BD0, "c"] - - [0x8891C0, "c"] - - [0x88A530, "c"] + - [0x888BD0, c] + - [0x8891C0, c] + - [0x88A530, c] - [0x88AE20, "bin"] - [0x88AEA0, "bin"] - [0x88BF60, "bin"] @@ -1502,8 +1504,8 @@ segments: start: 0x88D600 vram: 0x80240000 files: - - [0x88D600, "c"] - - [0x88DBF0, "c"] + - [0x88D600, c] + - [0x88DBF0, c] - [0x88DF60, "bin"] - [0x88DFF0, "bin"] - [0x88F180, "bin"] @@ -1515,8 +1517,8 @@ segments: start: 0x88FBA0 vram: 0x80240000 files: - - [0x88FBA0, "c"] - - [0x890190, "c"] + - [0x88FBA0, c] + - [0x890190, c] - [0x8906B0, "bin"] - [0x890740, "bin"] - [0x891890, "bin"] @@ -1528,9 +1530,9 @@ segments: start: 0x892A20 vram: 0x80240000 files: - - [0x892A20, "c"] - - [0x892A50, "c"] - - [0x893790, "c"] + - [0x892A20, c] + - [0x892A50, c] + - [0x893790, c] - [0x893D80, "bin"] - [0x893E40, "bin"] - [0x8944F0, "bin"] @@ -1542,8 +1544,8 @@ segments: start: 0x8956E0 vram: 0x80240000 files: - - [0x8956E0, "c"] - - [0x8959F0, "c"] + - [0x8956E0, c] + - [0x8959F0, c] - [0x895D90, "bin"] - [0x895E20, "bin"] - [0x896CA0, "bin"] @@ -1555,8 +1557,8 @@ segments: start: 0x8975E0 vram: 0x80240000 files: - - [0x8975E0, "c"] - - [0x897BD0, "c"] + - [0x8975E0, c] + - [0x897BD0, c] - [0x898910, "bin"] - [0x898990, "bin"] - [0x899C90, "bin"] @@ -1568,8 +1570,8 @@ segments: start: 0x89A350 vram: 0x80240000 files: - - [0x89A350, "c"] - - [0x89ACB0, "c"] + - [0x89A350, c] + - [0x89ACB0, c] - [0x89B490, "bin"] - [0x89B530, "bin"] - [0x89D200, "bin"] @@ -1582,7 +1584,7 @@ segments: start: 0x89D7A0 vram: 0x80240000 files: - - [0x89D7A0, "c"] + - [0x89D7A0, c] - [0x89E100, "bin"] - [0x89E1A0, "bin"] - [0x89FD70, "bin"] @@ -1594,8 +1596,8 @@ segments: start: 0x89FEC0 vram: 0x80240000 files: - - [0x89FEC0, "c"] - - [0x89FEF0, "c"] + - [0x89FEC0, c] + - [0x89FEF0, c] - [0x8A0870, "bin"] - [0x8A0930, "bin"] - [0x8A23C0, "bin"] # rodata @@ -1605,8 +1607,8 @@ segments: start: 0x8A23D0 vram: 0x80240000 files: - - [0x8A23D0, "c"] - - [0x8A2D30, "c"] + - [0x8A23D0, c] + - [0x8A2D30, c] - [0x8A3510, "bin"] - [0x8A35A0, "bin"] - [0x8A5340, "bin"] @@ -1618,9 +1620,9 @@ segments: start: 0x8A5A80 vram: 0x80240000 files: - - [0x8A5A80, "c"] - - [0x8A5AD0, "c"] - - [0x8A5DE0, "c"] + - [0x8A5A80, c] + - [0x8A5AD0, c] + - [0x8A5DE0, c] - [0x8A6930, "bin"] - [0x8A69C0, "bin"] - [0x8A7810, "bin"] @@ -1634,8 +1636,8 @@ segments: start: 0x8A7F80 vram: 0x80240000 files: - - [0x8A7F80, "c"] - - [0x8A8600, "c"] + - [0x8A7F80, c] + - [0x8A8600, c] - [0x8A8740, "bin"] - [0x8A8800, "bin"] - [0x8A93D0, "bin"] @@ -1647,8 +1649,8 @@ segments: start: 0x8A9A10 vram: 0x80240000 files: - - [0x8A9A10, "c"] - - [0x8A9B70, "c"] + - [0x8A9A10, c] + - [0x8A9B70, c] - [0x8A9F30, "bin"] - [0x8AA1D0, "bin"] - [0x8AA310, "bin"] @@ -1659,9 +1661,9 @@ segments: start: 0x8AA450 vram: 0x80240000 files: - - [0x8AA450, "c"] - - [0x8AA5B0, "c"] - - [0x8AAB80, "c"] + - [0x8AA450, c] + - [0x8AA5B0, c] + - [0x8AAB80, c] - [0x8AABD0, "bin"] - [0x8AADC0, "bin"] - [0x8ABE60, "bin"] @@ -1672,7 +1674,7 @@ segments: start: 0x8ABF90 vram: 0x80240000 files: - - [0x8ABF90, "c"] + - [0x8ABF90, c] - [0x8ACD00, "bin"] - [0x8ACDB0, "bin"] - [0x8ACFE0, "bin"] @@ -1685,11 +1687,11 @@ segments: start: 0x8B0070 vram: 0x80240000 files: - - [0x8B0070, "c"] - - [0x8B30E0, "c"] - - [0x8B36B0, "c"] - - [0x8B37D0, "c"] - - [0x8B3A10, "c"] + - [0x8B0070, c] + - [0x8B30E0, c] + - [0x8B36B0, c] + - [0x8B37D0, c] + - [0x8B3A10, c] - [0x8B3AB0, "bin"] - [0x8B3D10, "bin"] - [0x8B5640, "bin"] @@ -1707,11 +1709,11 @@ segments: start: 0x8C7F90 vram: 0x80240000 files: - - [0x8C7F90, "c"] - - [0x8C8140, "c"] - - [0x8C82B0, "c"] - - [0x8C83A0, "c"] - - [0x8C85E0, "c"] + - [0x8C7F90, c] + - [0x8C8140, c] + - [0x8C82B0, c] + - [0x8C83A0, c] + - [0x8C85E0, c] - [0x8C85E0, ".data", "world/area_kmr/kmr_03/8C7F90"] - [0x8C8680, ".data", "world/area_kmr/kmr_03/8C8140"] - [0x8C88E0, ".data", "world/area_kmr/kmr_03/8C82B0"] @@ -1725,8 +1727,8 @@ segments: start: 0x8CA900 vram: 0x80240000 files: - - [0x8CA900, "c"] - - [0x8CA960, "c"] + - [0x8CA900, c] + - [0x8CA960, c] - [0x8CAD70, "bin"] - [0x8CAF00, "bin"] - [0x8CB160, "bin"] @@ -1740,8 +1742,8 @@ segments: start: 0x8CE070 vram: 0x80240000 files: - - [0x8CE070, "c"] - - [0x8CF570, "c"] + - [0x8CE070, c] + - [0x8CF570, c] - [0x8CF7F0, "bin"] - [0x8CF880, "bin"] - [0x8D0900, "bin"] @@ -1754,8 +1756,8 @@ segments: start: 0x8D1510 vram: 0x80240000 files: - - [0x8D1510, "c"] - - [0x8D2A10, "c"] + - [0x8D1510, c] + - [0x8D2A10, c] - [0x8D32B0, "bin"] - [0x8D3340, "bin"] - [0x8D3AC0, "bin"] @@ -1768,7 +1770,7 @@ segments: start: 0x8D3DC0 vram: 0x80240000 files: - - [0x8D3DC0, "c"] + - [0x8D3DC0, c] - [0x8D4880, "bin"] - [0x8D49A0, "bin"] - [0x8D5C40, "bin"] # rodata @@ -1779,7 +1781,7 @@ segments: start: 0x8D5E00 vram: 0x80240000 files: - - [0x8D5E00, "c"] + - [0x8D5E00, c] - [0x8D7330, "bin"] - [0x8D73C0, "bin"] - [0x8D83B0, "bin"] @@ -1791,8 +1793,8 @@ segments: start: 0x8D84D0 vram: 0x80240000 files: - - [0x8D84D0, "c"] - - [0x8D88A0, "c"] + - [0x8D84D0, c] + - [0x8D88A0, c] - [0x8D8AE0, "bin"] - [0x8D8B80, "bin"] - [0x8D8E60, "bin"] @@ -1804,10 +1806,10 @@ segments: start: 0x8DA100 vram: 0x80240000 files: - - [0x8DA100, "c"] - - [0x8DA3A0, "c"] - - [0x8DAFC0, "c"] - - [0x8DB020, "c"] + - [0x8DA100, c] + - [0x8DA3A0, c] + - [0x8DAFC0, c] + - [0x8DB020, c] - [0x8DB260, "bin"] - [0x8DB2F0, "bin"] - [0x8DC270, "bin"] @@ -1824,7 +1826,7 @@ segments: start: 0x8EB360 vram: 0x80240000 files: - - [0x8EB360, "c", "world/area_kmr/kmr_12/header"] + - [0x8EB360, c, "world/area_kmr/kmr_12/header"] - [0x8EB390, ".data", "world/area_kmr/kmr_12/header"] - [0x8EB420, ".data", "world/area_kmr/kmr_12/events"] - [0x8EBE10, ".rodata", "world/area_kmr/kmr_12/events"] @@ -1834,16 +1836,16 @@ segments: start: 0x8EBE20 vram: 0x80240000 files: - - [0x8EBE20, "c"] - - [0x8EBE50, "c"] - - [0x8ECBF0, "c"] - - [0x8ECC40, "c"] - - [0x8ECE80, "c"] - - [0x8ED0C0, "c"] - - [0x8ED440, "c"] - - [0x8ED5A0, "c"] - - [0x8EDB70, "c"] - - [0x8EDFC0, "c"] + - [0x8EBE20, c] + - [0x8EBE50, c] + - [0x8ECBF0, c] + - [0x8ECC40, c] + - [0x8ECE80, c] + - [0x8ED0C0, c] + - [0x8ED440, c] + - [0x8ED5A0, c] + - [0x8EDB70, c] + - [0x8EDFC0, c] - [0x8EE9D0, "bin"] - [0x8EEBC0, "bin"] - [0x8EFDA0, "bin"] @@ -1864,8 +1866,8 @@ segments: start: 0x8FEE80 vram: 0x80240000 files: - - [0x8FEE80, "c"] - - [0x8FEE90, "c"] + - [0x8FEE80, c] + - [0x8FEE90, c] - [0x8FF160, "bin"] - [0x8FF650, "bin"] # rodata - [0x8FF670, "bin"] # rodata @@ -1875,9 +1877,9 @@ segments: start: 0x8FF670 vram: 0x80240000 files: - - [0x8FF670, "c"] - - [0x8FF680, "c"] - - [0x8FF8B0, "c"] + - [0x8FF670, c] + - [0x8FF680, c] + - [0x8FF8B0, c] - [0x900380, "bin"] - [0x900A80, "bin"] - [0x9079D0, "bin"] # rodata @@ -1889,8 +1891,8 @@ segments: start: 0x907A30 vram: 0x80240000 files: - - [0x907A30, "c"] - - [0x907A40, "c"] + - [0x907A30, c] + - [0x907A40, c] - [0x908B00, "bin"] - [0x90B210, "bin"] # rodata - [0x90B240, "bin"] # rodata @@ -1900,8 +1902,8 @@ segments: start: 0x90B240 vram: 0x80240000 files: - - [0x90B240, "c"] - - [0x90B250, "c"] + - [0x90B240, c] + - [0x90B250, c] - [0x90B350, "bin"] - [0x90B6C0, "bin"] # rodata - [0x90B6D0, "bin"] # rodata @@ -1911,8 +1913,8 @@ segments: start: 0x90B6D0 vram: 0x80240000 files: - - [0x90B6D0, "c"] - - [0x90B9E0, "c"] + - [0x90B6D0, c] + - [0x90B9E0, c] - [0x90BBB0, "bin"] - [0x90BDB0, "bin"] - [0x90BFF0, "bin"] @@ -1922,8 +1924,8 @@ segments: start: 0x90CC40 vram: 0x80240000 files: - - [0x90CC40, "c"] - - [0x90CEF0, "c"] + - [0x90CC40, c] + - [0x90CEF0, c] - [0x90CF20, "bin"] - [0x90F6A0, "bin"] # rodata - name: world/area_iwa/iwa_01/ @@ -1932,9 +1934,9 @@ segments: start: 0x90F6B0 vram: 0x80240000 files: - - [0x90F6B0, "c"] - - [0x90FBD0, "c"] - - [0x912960, "c"] + - [0x90F6B0, c] + - [0x90FBD0, c] + - [0x912960, c] - [0x912990, "bin"] - [0x913070, "bin"] - [0x9135D0, "bin"] @@ -1949,7 +1951,7 @@ segments: start: 0x915D70 vram: 0x80240000 files: - - [0x915D70, "c"] + - [0x915D70, c] - [0x916E70, "bin"] - [0x917170, "bin"] - [0x917220, "bin"] @@ -1961,8 +1963,8 @@ segments: start: 0x918BB0 vram: 0x80240000 files: - - [0x918BB0, "c"] - - [0x918EF0, "c"] + - [0x918BB0, c] + - [0x918EF0, c] - [0x919F00, "bin"] - [0x91A6B0, "bin"] - [0x91B510, "bin"] @@ -1975,7 +1977,7 @@ segments: start: 0x91B8E0 vram: 0x80240000 files: - - [0x91B8E0, "c"] + - [0x91B8E0, c] - [0x91C9C0, "bin"] - [0x91CA50, "bin"] - [0x91CFA0, "bin"] @@ -1987,12 +1989,12 @@ segments: start: 0x91E570 vram: 0x80240000 files: - - [0x91E570, "c"] - - [0x91E5B0, "c"] - - [0x91E6D0, "c"] - - [0x91F5A0, "c"] - - [0x91FA80, "c"] - - [0x91FB20, "c"] + - [0x91E570, c] + - [0x91E5B0, c] + - [0x91E6D0, c] + - [0x91F5A0, c] + - [0x91FA80, c] + - [0x91FB20, c] - [0x91FD60, "bin"] - [0x91FE80, "bin"] - [0x920280, "bin"] @@ -2006,9 +2008,9 @@ segments: start: 0x9269F0 vram: 0x80240000 files: - - [0x9269F0, "c"] - - [0x926A10, "c"] - - [0x926C70, "c"] + - [0x9269F0, c] + - [0x926A10, c] + - [0x926C70, c] - [0x926D00, "bin"] - [0x926D90, "bin"] - [0x927030, "bin"] @@ -2020,8 +2022,8 @@ segments: start: 0x929270 vram: 0x80240000 files: - - [0x929270, "c"] - - [0x9292B0, "c"] + - [0x929270, c] + - [0x9292B0, c] - [0x9292D0, ".data", "world/area_sbk/sbk_00/929270"] - [0x929A00, ".data", "world/area_sbk/sbk_00/9292B0"] - [0x929A80, ".rodata", "world/area_sbk/sbk_00/929270"] @@ -2031,8 +2033,8 @@ segments: start: 0x929A90 vram: 0x80240000 files: - - [0x929A90, "c"] - - [0x929AD0, "c"] + - [0x929A90, c] + - [0x929AD0, c] - [0x929AF0, ".data", "world/area_sbk/sbk_01/929A90"] - [0x929E00, ".data", "world/area_sbk/sbk_01/929AD0"] - [0x92A290, ".rodata", "world/area_sbk/sbk_01/929A90"] @@ -2042,8 +2044,8 @@ segments: start: 0x92A2B0 vram: 0x80240000 files: - - [0x92A2B0, "c"] - - [0x92A9A0, "c"] + - [0x92A2B0, c] + - [0x92A9A0, c] - [0x92AEB0, "bin"] - [0x92AFF0, "bin"] - [0x92B500, "bin"] @@ -2057,8 +2059,8 @@ segments: start: 0x92F8B0 vram: 0x80240000 files: - - [0x92F8B0, "c"] - - [0x92F8F0, "c"] + - [0x92F8B0, c] + - [0x92F8F0, c] - [0x92F910, "bin"] - [0x92FC20, "bin"] - [0x9304B0, "bin"] # rodata @@ -2069,8 +2071,8 @@ segments: start: 0x9304D0 vram: 0x80240000 files: - - [0x9304D0, "c"] - - [0x930510, "c"] + - [0x9304D0, c] + - [0x930510, c] - [0x930530, "bin"] - [0x930840, "bin"] - [0x930CD0, "bin"] # rodata @@ -2081,8 +2083,8 @@ segments: start: 0x930CF0 vram: 0x80240000 files: - - [0x930CF0, "c"] - - [0x930D30, "c"] + - [0x930CF0, c] + - [0x930D30, c] - [0x930D50, "bin"] - [0x9310F0, "bin"] - [0x931130, "bin"] @@ -2094,8 +2096,8 @@ segments: start: 0x9325C0 vram: 0x80240000 files: - - [0x9325C0, "c"] - - [0x932600, "c"] + - [0x9325C0, c] + - [0x932600, c] - [0x932940, "bin"] - [0x932BF0, "bin"] - [0x933160, "bin"] @@ -2106,7 +2108,7 @@ segments: start: 0x933C80 vram: 0x80240000 files: - - [0x933C80, "c"] + - [0x933C80, c] - [0x933CC0, "bin"] - [0x933FD0, "bin"] - [0x934020, "bin"] # rodata @@ -2117,8 +2119,8 @@ segments: start: 0x934040 vram: 0x80240000 files: - - [0x934040, "c"] - - [0x934080, "c"] + - [0x934040, c] + - [0x934080, c] - [0x9341A0, "bin"] - [0x934530, "bin"] - [0x934D20, "bin"] # rodata @@ -2128,8 +2130,8 @@ segments: start: 0x934D40 vram: 0x80240000 files: - - [0x934D40, "c"] - - [0x934D80, "c"] + - [0x934D40, c] + - [0x934D80, c] - [0x934DA0, "bin"] - [0x935130, "bin"] - [0x9357C0, "bin"] # rodata @@ -2139,8 +2141,8 @@ segments: start: 0x9357E0 vram: 0x80240000 files: - - [0x9357E0, "c"] - - [0x935820, "c"] + - [0x9357E0, c] + - [0x935820, c] - [0x935940, "bin"] - [0x935CD0, "bin"] - [0x9366C0, "bin"] # rodata @@ -2150,7 +2152,7 @@ segments: start: 0x9366E0 vram: 0x80240000 files: - - [0x9366E0, "c"] + - [0x9366E0, c] - [0x936720, "bin"] - [0x936B20, "bin"] - [0x936CA0, "bin"] # rodata @@ -2161,8 +2163,8 @@ segments: start: 0x936CD0 vram: 0x80240000 files: - - [0x936CD0, "c"] - - [0x936D10, "c"] + - [0x936CD0, c] + - [0x936D10, c] - [0x936D30, "bin"] - [0x9370C0, "bin"] - [0x937550, "bin"] # rodata @@ -2172,8 +2174,8 @@ segments: start: 0x937570 vram: 0x80240000 files: - - [0x937570, "c"] - - [0x9375B0, "c"] + - [0x937570, c] + - [0x9375B0, c] - [0x9377F0, "bin"] - [0x937B00, "bin"] - [0x938570, "bin"] # rodata @@ -2184,8 +2186,8 @@ segments: start: 0x938590 vram: 0x80240000 files: - - [0x938590, "c"] - - [0x9385D0, "c"] + - [0x938590, c] + - [0x9385D0, c] - [0x9386D0, "bin"] - [0x9389F0, "bin"] - [0x938DD0, "bin"] @@ -2197,7 +2199,7 @@ segments: start: 0x939560 vram: 0x80240000 files: - - [0x939560, "c"] + - [0x939560, c] - [0x9395A0, "bin"] - [0x939910, "bin"] # rodata - name: world/area_sbk/sbk_22/ @@ -2206,8 +2208,8 @@ segments: start: 0x939930 vram: 0x80240000 files: - - [0x939930, "c"] - - [0x939970, "c"] + - [0x939930, c] + - [0x939970, c] - [0x939A90, "bin"] - [0x93A610, "bin"] - [0x93A740, "bin"] # rodata @@ -2217,7 +2219,7 @@ segments: start: 0x93A760 vram: 0x80240000 files: - - [0x93A760, "c"] + - [0x93A760, c] - [0x93A7A0, "bin"] - [0x93AB20, "bin"] - [0x93AC00, "bin"] # rodata @@ -2228,8 +2230,8 @@ segments: start: 0x93AC30 vram: 0x80240000 files: - - [0x93AC30, "c"] - - [0x93AC70, "c"] + - [0x93AC30, c] + - [0x93AC70, c] - [0x93AFB0, "bin"] - [0x93B3C0, "bin"] - [0x93B770, "bin"] @@ -2240,8 +2242,8 @@ segments: start: 0x93C280 vram: 0x80240000 files: - - [0x93C280, "c"] - - [0x93C2C0, "c"] + - [0x93C280, c] + - [0x93C2C0, c] - [0x93C600, "bin"] - [0x93C9A0, "bin"] - [0x93D110, "bin"] @@ -2253,9 +2255,9 @@ segments: start: 0x93DCD0 vram: 0x80240000 files: - - [0x93DCD0, "c"] - - [0x93DD10, "c"] - - [0x93DE30, "c"] + - [0x93DCD0, c] + - [0x93DD10, c] + - [0x93DE30, c] - [0x93E070, "bin"] - [0x93E390, "bin"] - [0x93EB80, "bin"] @@ -2267,7 +2269,7 @@ segments: start: 0x93F5B0 vram: 0x80240000 files: - - [0x93F5B0, "c"] + - [0x93F5B0, c] - [0x940DC0, "bin"] - [0x943E20, "bin"] # rodata - [0x943E50, "bin"] # rodata @@ -2278,8 +2280,8 @@ segments: start: 0x944000 vram: 0x80240000 files: - - [0x944000, "c"] - - [0x944040, "c"] + - [0x944000, c] + - [0x944040, c] - [0x944140, "bin"] - [0x9444D0, "bin"] - [0x944A40, "bin"] # rodata @@ -2289,8 +2291,8 @@ segments: start: 0x944A60 vram: 0x80240000 files: - - [0x944A60, "c"] - - [0x944AA0, "c"] + - [0x944A60, c] + - [0x944AA0, c] - [0x944BC0, "bin"] - [0x9459B0, "bin"] # rodata - name: world/area_sbk/sbk_33/ @@ -2299,7 +2301,7 @@ segments: start: 0x9459D0 vram: 0x80240000 files: - - [0x9459D0, "c"] + - [0x9459D0, c] - [0x945A10, "bin"] - [0x945BA0, "bin"] - [0x945EA0, "bin"] # rodata @@ -2310,9 +2312,9 @@ segments: start: 0x945ED0 vram: 0x80240000 files: - - [0x945ED0, "c"] - - [0x945F10, "c"] - - [0x946670, "c"] + - [0x945ED0, c] + - [0x945F10, c] + - [0x946670, c] - [0x9468B0, "bin"] - [0x947C80, "bin"] - [0x948690, "bin"] # rodata @@ -2322,8 +2324,8 @@ segments: start: 0x9486B0 vram: 0x80240000 files: - - [0x9486B0, "c"] - - [0x9486F0, "c"] + - [0x9486B0, c] + - [0x9486F0, c] - [0x948A30, "bin"] - [0x949330, "bin"] - [0x949E40, "bin"] # rodata @@ -2333,8 +2335,8 @@ segments: start: 0x949E60 vram: 0x80240000 files: - - [0x949E60, "c"] - - [0x949EA0, "c"] + - [0x949E60, c] + - [0x949EA0, c] - [0x94A0E0, "bin"] - [0x94A470, "bin"] - [0x94B380, "bin"] # rodata @@ -2344,8 +2346,8 @@ segments: start: 0x94B3A0 vram: 0x80240000 files: - - [0x94B3A0, "c"] - - [0x94B3E0, "c"] + - [0x94B3A0, c] + - [0x94B3E0, c] - [0x94B4E0, "bin"] - [0x94B800, "bin"] - [0x94BF70, "bin"] @@ -2357,7 +2359,7 @@ segments: start: 0x94C040 vram: 0x80240000 files: - - [0x94C040, "c"] + - [0x94C040, c] - [0x94C080, "bin"] - [0x94C400, "bin"] - [0x94C4E0, "bin"] # rodata @@ -2368,8 +2370,8 @@ segments: start: 0x94C510 vram: 0x80240000 files: - - [0x94C510, "c"] - - [0x94C550, "c"] + - [0x94C510, c] + - [0x94C550, c] - [0x94C650, "bin"] - [0x94C9E0, "bin"] - [0x94D150, "bin"] # rodata @@ -2379,7 +2381,7 @@ segments: start: 0x94D170 vram: 0x80240000 files: - - [0x94D170, "c"] + - [0x94D170, c] - [0x94D1B0, "bin"] - [0x94D530, "bin"] - [0x94D580, "bin"] # rodata @@ -2389,8 +2391,8 @@ segments: start: 0x94D5A0 vram: 0x80240000 files: - - [0x94D5A0, "c"] - - [0x94D5E0, "c"] + - [0x94D5A0, c] + - [0x94D5E0, c] - [0x94D700, "bin"] - [0x94DA90, "bin"] - [0x94E480, "bin"] # rodata @@ -2400,7 +2402,7 @@ segments: start: 0x94E4A0 vram: 0x80240000 files: - - [0x94E4A0, "c"] + - [0x94E4A0, c] - [0x94E4E0, "bin"] - [0x94E8E0, "bin"] - [0x94E980, "bin"] # rodata @@ -2410,9 +2412,9 @@ segments: start: 0x94E9A0 vram: 0x80240000 files: - - [0x94E9A0, "c"] - - [0x94E9E0, "c"] - - [0x94EB00, "c"] + - [0x94E9A0, c] + - [0x94E9E0, c] + - [0x94EB00, c] - [0x94ED40, "bin"] - [0x94F070, "bin"] - [0x94FA60, "bin"] @@ -2425,7 +2427,7 @@ segments: start: 0x950610 vram: 0x80240000 files: - - [0x950610, "c"] + - [0x950610, c] - [0x950650, "bin"] - [0x950950, "bin"] # rodata - [0x950970, "bin"] # rodata @@ -2435,8 +2437,8 @@ segments: start: 0x950970 vram: 0x80240000 files: - - [0x950970, "c"] - - [0x9509B0, "c"] + - [0x950970, c] + - [0x9509B0, c] - [0x950AD0, "bin"] - [0x950E60, "bin"] - [0x951650, "bin"] # rodata @@ -2446,7 +2448,7 @@ segments: start: 0x951670 vram: 0x80240000 files: - - [0x951670, "c"] + - [0x951670, c] - [0x9516B0, "bin"] - [0x951A30, "bin"] - [0x951AC0, "bin"] # rodata @@ -2456,8 +2458,8 @@ segments: start: 0x951AE0 vram: 0x80240000 files: - - [0x951AE0, "c"] - - [0x951B20, "c"] + - [0x951AE0, c] + - [0x951B20, c] - [0x951B40, "bin"] - [0x951ED0, "bin"] - [0x952560, "bin"] # rodata @@ -2467,7 +2469,7 @@ segments: start: 0x952580 vram: 0x80240000 files: - - [0x952580, "c"] + - [0x952580, c] - [0x9525C0, "bin"] - [0x952940, "bin"] - [0x952A20, "bin"] # rodata @@ -2478,9 +2480,9 @@ segments: start: 0x952A50 vram: 0x80240000 files: - - [0x952A50, "c"] - - [0x952A90, "c"] - - [0x952AB0, "c"] + - [0x952A50, c] + - [0x952A90, c] + - [0x952AB0, c] - [0x952CF0, "bin"] - [0x953090, "bin"] - [0x953520, "bin"] @@ -2491,8 +2493,8 @@ segments: start: 0x953FC0 vram: 0x80240000 files: - - [0x953FC0, "c"] - - [0x954D80, "c"] + - [0x953FC0, c] + - [0x954D80, c] - [0x954FC0, "bin"] - [0x9553F0, "bin"] - [0x9569D0, "bin"] # rodata @@ -2503,8 +2505,8 @@ segments: start: 0x9569F0 vram: 0x80240000 files: - - [0x9569F0, "c"] - - [0x956A30, "c"] + - [0x9569F0, c] + - [0x956A30, c] - [0x956A50, "bin"] - [0x956CF0, "bin"] - [0x956F80, "bin"] # rodata @@ -2514,7 +2516,7 @@ segments: start: 0x956F90 vram: 0x80240000 files: - - [0x956F90, "c"] + - [0x956F90, c] - [0x956FD0, "bin"] - [0x9572E0, "bin"] - [0x957330, "bin"] # rodata @@ -2525,8 +2527,8 @@ segments: start: 0x957350 vram: 0x80240000 files: - - [0x957350, "c"] - - [0x957390, "c"] + - [0x957350, c] + - [0x957390, c] - [0x9573B0, "bin"] - [0x9576C0, "bin"] - [0x957D50, "bin"] # rodata @@ -2537,8 +2539,8 @@ segments: start: 0x957D70 vram: 0x80240000 files: - - [0x957D70, "c"] - - [0x957DB0, "c"] + - [0x957D70, c] + - [0x957DB0, c] - [0x957DD0, "bin"] - [0x9580E0, "bin"] - [0x958570, "bin"] # rodata @@ -2549,7 +2551,7 @@ segments: start: 0x958590 vram: 0x80240000 files: - - [0x958590, "c"] + - [0x958590, c] - [0x9585D0, "bin"] - [0x9588E0, "bin"] - [0x958930, "bin"] # rodata @@ -2560,7 +2562,7 @@ segments: start: 0x958950 vram: 0x80240000 files: - - [0x958950, "c"] + - [0x958950, c] - [0x958990, "bin"] - [0x958C90, "bin"] # rodata - [0x958CB0, "bin"] # rodata @@ -2570,8 +2572,8 @@ segments: start: 0x958CB0 vram: 0x80240000 files: - - [0x958CB0, "c"] - - [0x958CF0, "c"] + - [0x958CB0, c] + - [0x958CF0, c] - [0x959030, "bin"] - [0x9592E0, "bin"] - [0x95A240, "bin"] @@ -2592,10 +2594,10 @@ segments: start: 0x95B200 vram: 0x80240000 files: - - [0x95B200, "c"] - - [0x95B7E0, "c"] - - [0x95E660, "c"] - - [0x95E7A0, "c"] + - [0x95B200, c] + - [0x95B7E0, c] + - [0x95E660, c] + - [0x95E7A0, c] - [0x95ECC0, "bin"] - [0x960210, "bin"] - [0x966CA0, "bin"] @@ -2611,8 +2613,8 @@ segments: start: 0x9691C0 vram: 0x80240000 files: - - [0x9691C0, "c"] - - [0x9694C0, "c"] + - [0x9691C0, c] + - [0x9694C0, c] - [0x96CC30, "bin"] - [0x96CD90, "bin"] - [0x96CE00, "bin"] @@ -2635,9 +2637,9 @@ segments: start: 0x978710 vram: 0x80240000 files: - - [0x978710, "c"] - - [0x978750, "c"] - - [0x978800, "c"] + - [0x978710, c] + - [0x978750, c] + - [0x978800, c] - [0x978820, "bin"] - [0x978B80, "bin"] - [0x978DE0, "bin"] @@ -2660,9 +2662,9 @@ segments: start: 0x97B630 vram: 0x80240000 files: - - [0x97B630, "c"] - - [0x97B670, "c"] - - [0x97BF60, "c"] + - [0x97B630, c] + - [0x97B670, c] + - [0x97BF60, c] - [0x97C0A0, "bin"] - [0x97C300, "bin"] - [0x97CA70, "bin"] @@ -2677,7 +2679,7 @@ segments: start: 0x97DAD0 vram: 0x80240000 files: - - [0x97DAD0, "c"] + - [0x97DAD0, c] - [0x97F990, "bin"] - [0x97FCE0, "bin"] - [0x97FE50, "bin"] @@ -2703,9 +2705,9 @@ segments: start: 0x982440 vram: 0x80240000 files: - - [0x982440, "c"] - - [0x9824F0, "c"] - - [0x982530, "c"] + - [0x982440, c] + - [0x9824F0, c] + - [0x982530, c] - [0x982550, "bin"] - [0x982860, "bin"] - [0x982CA0, "bin"] @@ -2719,7 +2721,7 @@ segments: start: 0x984E30 vram: 0x80240000 files: - - [0x984E30, "c"] + - [0x984E30, c] - [0x985720, "bin"] - [0x985B00, "bin"] - [0x986090, "bin"] @@ -2731,8 +2733,8 @@ segments: start: 0x9864E0 vram: 0x80240000 files: - - [0x9864E0, "c"] - - [0x9867D0, "c"] + - [0x9864E0, c] + - [0x9867D0, c] - [0x986810, "bin"] - [0x986A60, "bin"] - [0x986BD0, "bin"] @@ -2746,7 +2748,7 @@ segments: start: 0x988B60 vram: 0x80240000 files: - - [0x988B60, "c"] + - [0x988B60, c] - [0x989910, "bin"] - [0x98A580, "bin"] - [0x98A9E0, "bin"] # rodata @@ -2757,9 +2759,9 @@ segments: start: 0x98AA10 vram: 0x80240000 files: - - [0x98AA10, "c"] - - [0x98AAC0, "c"] - - [0x98AB30, "c"] + - [0x98AA10, c] + - [0x98AAC0, c] + - [0x98AB30, c] - [0x98AB70, "bin"] - [0x98ADB0, "bin"] - [0x98B330, "bin"] @@ -2785,7 +2787,7 @@ segments: start: 0x98F7E0 vram: 0x80240000 files: - - [0x98F7E0, "c"] + - [0x98F7E0, c] - [0x991850, "bin"] - [0x991A90, "bin"] - [0x992680, "bin"] # rodata @@ -2799,7 +2801,7 @@ segments: start: 0x992730 vram: 0x80240000 files: - - [0x992730, "c"] + - [0x992730, c] - [0x994490, "bin"] - [0x9946D0, "bin"] - [0x994860, "bin"] @@ -2813,8 +2815,8 @@ segments: start: 0x9951F0 vram: 0x80240000 files: - - [0x9951F0, "c"] - - [0x9959F0, "c"] + - [0x9951F0, c] + - [0x9959F0, c] - [0x995CF0, "bin"] - [0x996410, "bin"] - [0x996C40, "bin"] @@ -2827,7 +2829,7 @@ segments: start: 0x997F70 vram: 0x80240000 files: - - [0x997F70, "c"] + - [0x997F70, c] - [0x998860, "bin"] - [0x998B90, "bin"] - [0x999520, "bin"] @@ -2849,9 +2851,9 @@ segments: start: 0x999C70 vram: 0x80240000 files: - - [0x999C70, "c"] - - [0x999F80, "c"] - - [0x99A240, "c"] + - [0x999C70, c] + - [0x999F80, c] + - [0x99A240, c] - [0x99A2A0, "bin"] - [0x99A410, "bin"] - [0x99AFB0, "bin"] @@ -2864,9 +2866,9 @@ segments: start: 0x99C990 vram: 0x80240000 files: - - [0x99C990, "c"] - - [0x99CCA0, "c"] - - [0x99CD80, "c"] + - [0x99C990, c] + - [0x99CCA0, c] + - [0x99CD80, c] - [0x99E050, "bin"] - [0x99E110, "bin"] - [0x99F960, "bin"] @@ -2881,8 +2883,8 @@ segments: start: 0x9A0FE0 vram: 0x80240000 files: - - [0x9A0FE0, "c"] - - [0x9A10C0, "c"] + - [0x9A0FE0, c] + - [0x9A10C0, c] - [0x9A2A30, "bin"] - [0x9A2B00, "bin"] - [0x9A3870, "bin"] @@ -2895,9 +2897,9 @@ segments: start: 0x9A4650 vram: 0x80240000 files: - - [0x9A4650, "c"] - - [0x9A46F0, "c"] - - [0x9A4ED0, "c"] + - [0x9A4650, c] + - [0x9A46F0, c] + - [0x9A4ED0, c] - [0x9A5040, "bin"] - [0x9A51A0, "bin"] - [0x9A5FF0, "bin"] @@ -2910,9 +2912,9 @@ segments: start: 0x9A83F0 vram: 0x80240000 files: - - [0x9A83F0, "c"] - - [0x9A8700, "c"] - - [0x9A88A0, "c"] + - [0x9A83F0, c] + - [0x9A8700, c] + - [0x9A88A0, c] - [0x9ABC90, "bin"] - [0x9ABD70, "bin"] - [0x9AD960, "bin"] @@ -2926,8 +2928,8 @@ segments: start: 0x9AE700 vram: 0x80240000 files: - - [0x9AE700, "c"] - - [0x9AEE20, "c"] + - [0x9AE700, c] + - [0x9AEE20, c] - [0x9AEE70, "bin"] - [0x9AEFC0, "bin"] - [0x9AF7C0, "bin"] @@ -2940,10 +2942,10 @@ segments: start: 0x9B1790 vram: 0x80240000 files: - - [0x9B1790, "c"] - - [0x9B1AA0, "c"] - - [0x9B2280, "c"] - - [0x9B2410, "c"] + - [0x9B1790, c] + - [0x9B1AA0, c] + - [0x9B2280, c] + - [0x9B2410, c] - [0x9B24B0, "bin"] - [0x9B2610, "bin"] - [0x9B5FC0, "bin"] @@ -2955,8 +2957,8 @@ segments: start: 0x9B6980 vram: 0x80240000 files: - - [0x9B6980, "c"] - - [0x9B6C90, "c"] + - [0x9B6980, c] + - [0x9B6C90, c] - [0x9B9270, "bin"] - [0x9B9310, "bin"] - [0x9B9760, "bin"] @@ -2971,8 +2973,8 @@ segments: start: 0x9BB2A0 vram: 0x80240000 files: - - [0x9BB2A0, "c"] - - [0x9BB5B0, "c"] + - [0x9BB2A0, c] + - [0x9BB5B0, c] - [0x9BBCC0, "bin"] - [0x9BBD50, "bin"] - [0x9BC1A0, "bin"] @@ -2984,8 +2986,8 @@ segments: start: 0x9BD660 vram: 0x80240000 files: - - [0x9BD660, "c"] - - [0x9BD720, "c"] + - [0x9BD660, c] + - [0x9BD720, c] - [0x9BD830, "bin"] - [0x9BD960, "bin"] - [0x9BDD80, "bin"] @@ -2999,8 +3001,8 @@ segments: start: 0x9C2910 vram: 0x80240000 files: - - [0x9C2910, "c"] - - [0x9C3130, "c"] + - [0x9C2910, c] + - [0x9C3130, c] - [0x9C3160, "bin"] - [0x9C3A30, "bin"] - [0x9C4FC0, "bin"] @@ -3012,8 +3014,8 @@ segments: start: 0x9C53E0 vram: 0x80240000 files: - - [0x9C53E0, "c"] - - [0x9C7D10, "c"] + - [0x9C53E0, c] + - [0x9C7D10, c] - [0x9C7F50, "bin"] - [0x9C8350, "bin"] - [0x9C8920, "bin"] @@ -3031,12 +3033,12 @@ segments: start: 0x9D7020 vram: 0x80240000 files: - - [0x9D7020, "c"] - - [0x9D7770, "c"] - - [0x9D7990, "c"] - - [0x9D7AA0, "c"] - - [0x9DA8F0, "c"] - - [0x9DB380, "c"] + - [0x9D7020, c] + - [0x9D7770, c] + - [0x9D7990, c] + - [0x9D7AA0, c] + - [0x9DA8F0, c] + - [0x9DB380, c] - [0x9DB5C0, "bin"] - [0x9DB6C0, "bin"] - [0x9DCD20, "bin"] @@ -3055,7 +3057,7 @@ segments: start: 0x9EB7F0 vram: 0x80240000 files: - - [0x9EB7F0, "c"] + - [0x9EB7F0, c] - [0x9EC610, "bin"] - [0x9EC700, "bin"] - [0x9ECBD0, "bin"] @@ -3067,8 +3069,8 @@ segments: start: 0x9EDBF0 vram: 0x80240000 files: - - [0x9EDBF0, "c"] - - [0x9EEA80, "c"] + - [0x9EDBF0, c] + - [0x9EEA80, c] - [0x9EEB20, "bin"] - [0x9EEC40, "bin"] - [0x9EEEB0, "bin"] @@ -3082,7 +3084,7 @@ segments: start: 0x9F4A40 vram: 0x80240000 files: - - [0x9F4A40, "c"] + - [0x9F4A40, c] - [0x9F6990, "bin"] - [0x9F6A50, "bin"] - [0x9F7180, "bin"] @@ -3095,12 +3097,12 @@ segments: start: 0x9FA7F0 vram: 0x80240000 files: - - [0x9FA7F0, "c"] - - [0x9FA970, "c"] - - [0x9FAAE0, "c"] - - [0x9FAB20, "c"] - - [0x9FAD60, "c"] - - [0x9FC6D0, "c"] + - [0x9FA7F0, c] + - [0x9FA970, c] + - [0x9FAAE0, c] + - [0x9FAB20, c] + - [0x9FAD60, c] + - [0x9FC6D0, c] - [0x9FC8B0, "bin"] - [0x9FC970, "bin"] - [0x9FD410, "bin"] @@ -3115,8 +3117,8 @@ segments: start: 0xA00600 vram: 0x80240000 files: - - [0xA00600, "c"] - - [0xA01420, "c"] + - [0xA00600, c] + - [0xA01420, c] - [0xA01A90, "bin"] - [0xA01B40, "bin"] - [0xA02040, "bin"] @@ -3132,9 +3134,9 @@ segments: start: 0xA02840 vram: 0x80240000 files: - - [0xA02840, "c"] - - [0xA029C0, "c"] - - [0xA02A00, "c"] + - [0xA02840, c] + - [0xA029C0, c] + - [0xA02A00, c] - [0xA04C60, "bin"] - [0xA04D00, "bin"] - [0xA052F0, "bin"] @@ -3150,8 +3152,8 @@ segments: start: 0xA06F00 vram: 0x80240000 files: - - [0xA06F00, "c"] - - [0xA09440, "c"] + - [0xA06F00, c] + - [0xA09440, c] - [0xA09680, "bin"] - [0xA09750, "bin"] - [0xA0AB50, "bin"] @@ -3167,11 +3169,11 @@ segments: start: 0xA0BCF0 vram: 0x80240000 files: - - [0xA0BCF0, "c"] - - [0xA0BD40, "c"] - - [0xA0C4B0, "c"] - - [0xA0C4E0, "c"] - - [0xA0C930, "c"] + - [0xA0BCF0, c] + - [0xA0BD40, c] + - [0xA0C4B0, c] + - [0xA0C4E0, c] + - [0xA0C930, c] - [0xA0CA00, "bin"] - [0xA0D720, "bin"] - [0xA0D7A0, "bin"] @@ -3187,9 +3189,9 @@ segments: start: 0xA10880 vram: 0x80240000 files: - - [0xA10880, "c"] - - [0xA11020, "c"] - - [0xA11650, "c"] + - [0xA10880, c] + - [0xA11020, c] + - [0xA11650, c] - [0xA116A0, "bin"] - [0xA11760, "bin"] - [0xA12E00, "bin"] @@ -3202,8 +3204,8 @@ segments: start: 0xA16220 vram: 0x80240000 files: - - [0xA16220, "c"] - - [0xA17210, "c"] + - [0xA16220, c] + - [0xA17210, c] - [0xA18D00, "bin"] - [0xA18E50, "bin"] - [0xA19530, "bin"] @@ -3218,10 +3220,10 @@ segments: start: 0xA1B100 vram: 0x80240000 files: - - [0xA1B100, "c"] - - [0xA1B130, "c"] - - [0xA1BB70, "c"] - - [0xA1BDB0, "c"] + - [0xA1B100, c] + - [0xA1B130, c] + - [0xA1BB70, c] + - [0xA1BDB0, c] - [0xA1E640, "bin"] - [0xA1E790, "bin"] - [0xA1EC30, "bin"] @@ -3238,11 +3240,11 @@ segments: start: 0xA26ED0 vram: 0x80240000 files: - - [0xA26ED0, "c"] - - [0xA27490, "c"] - - [0xA274B0, "c"] - - [0xA27A30, "c"] - - [0xA27AA0, "c"] + - [0xA26ED0, c] + - [0xA27490, c] + - [0xA274B0, c] + - [0xA27A30, c] + - [0xA27AA0, c] - [0xA27D60, "bin"] - [0xA27F20, "bin"] - [0xA285C0, "bin"] @@ -3261,11 +3263,11 @@ segments: start: 0xA2A240 vram: 0x80240000 files: - - [0xA2A240, "c"] - - [0xA2AA70, "c"] - - [0xA2AAC0, "c"] - - [0xA2EC30, "c"] - - [0xA2EF00, "c"] + - [0xA2A240, c] + - [0xA2AA70, c] + - [0xA2AAC0, c] + - [0xA2EC30, c] + - [0xA2EF00, c] - [0xA2FAA0, "bin"] - [0xA2FCD0, "bin"] - [0xA30810, "bin"] @@ -3282,11 +3284,11 @@ segments: start: 0xA394E0 vram: 0x80240000 files: - - [0xA394E0, "c"] - - [0xA397F0, "c"] - - [0xA3A210, "c"] - - [0xA3A230, "c"] - - [0xA3B4B0, "c"] + - [0xA394E0, c] + - [0xA397F0, c] + - [0xA3A210, c] + - [0xA3A230, c] + - [0xA3B4B0, c] - [0xA3BA40, "bin"] - [0xA3BAE0, "bin"] - [0xA3C090, "bin"] @@ -3299,10 +3301,10 @@ segments: start: 0xA3F740 vram: 0x80240000 files: - - [0xA3F740, "c"] - - [0xA3F760, "c"] - - [0xA3FBA0, "c"] - - [0xA3FEB0, "c"] + - [0xA3F740, c] + - [0xA3F760, c] + - [0xA3FBA0, c] + - [0xA3FEB0, c] - [0xA403C0, "bin"] - [0xA40540, "bin"] - [0xA42DA0, "bin"] @@ -3315,8 +3317,8 @@ segments: start: 0xA45930 vram: 0x80240000 files: - - [0xA45930, "c"] - - [0xA45C40, "c"] + - [0xA45930, c] + - [0xA45C40, c] - [0xA45C90, "bin"] - [0xA46350, "bin"] - [0xA46F40, "bin"] # rodata @@ -3326,8 +3328,8 @@ segments: start: 0xA46F60 vram: 0x80240000 files: - - [0xA46F60, "c"] - - [0xA470C0, "c"] + - [0xA46F60, c] + - [0xA470C0, c] - [0xA479B0, "bin"] - [0xA47A60, "bin"] - [0xA47D70, "bin"] @@ -3340,9 +3342,9 @@ segments: start: 0xA485C0 vram: 0x80240000 files: - - [0xA485C0, "c"] - - [0xA48720, "c"] - - [0xA4A410, "c"] + - [0xA485C0, c] + - [0xA48720, c] + - [0xA4A410, c] - [0xA4A480, "bin"] - [0xA4A520, "bin"] - [0xA4A750, "bin"] @@ -3356,7 +3358,7 @@ segments: start: 0xA4BF60 vram: 0x80240000 files: - - [0xA4BF60, "c"] + - [0xA4BF60, c] - [0xA4C0D0, "bin"] - [0xA4C1A0, "bin"] - [0xA4CA10, "bin"] # rodata @@ -3366,8 +3368,8 @@ segments: start: 0xA4CA20 vram: 0x80240000 files: - - [0xA4CA20, "c"] - - [0xA4CAC0, "c"] + - [0xA4CA20, c] + - [0xA4CAC0, c] - [0xA4DEC0, "bin"] - [0xA4DF90, "bin"] - [0xA4E250, "bin"] @@ -3381,8 +3383,8 @@ segments: start: 0xA4F000 vram: 0x80240000 files: - - [0xA4F000, "c"] - - [0xA4F0A0, "c"] + - [0xA4F000, c] + - [0xA4F0A0, c] - [0xA502F0, "bin"] - [0xA503C0, "bin"] - [0xA506D0, "bin"] @@ -3395,7 +3397,7 @@ segments: start: 0xA51980 vram: 0x80240000 files: - - [0xA51980, "c"] + - [0xA51980, c] - [0xA51C90, "bin"] - [0xA51D90, "bin"] - [0xA528A0, "bin"] # rodata @@ -3406,8 +3408,8 @@ segments: start: 0xA528C0 vram: 0x80240000 files: - - [0xA528C0, "c"] - - [0xA52BD0, "c"] + - [0xA528C0, c] + - [0xA52BD0, c] - [0xA533B0, "bin"] - [0xA534C0, "bin"] - [0xA53D80, "bin"] @@ -3421,9 +3423,9 @@ segments: start: 0xA54950 vram: 0x80240000 files: - - [0xA54950, "c"] - - [0xA54990, "c"] - - [0xA54CA0, "c"] + - [0xA54950, c] + - [0xA54990, c] + - [0xA54CA0, c] - [0xA54DC0, "bin"] - [0xA55620, "bin"] - [0xA55F00, "bin"] # rodata @@ -3434,9 +3436,9 @@ segments: start: 0xA55F20 vram: 0x80240000 files: - - [0xA55F20, "c"] - - [0xA55F60, "c"] - - [0xA56270, "c"] + - [0xA55F20, c] + - [0xA55F60, c] + - [0xA56270, c] - [0xA56390, "bin"] - [0xA56BD0, "bin"] - [0xA56CA0, "bin"] @@ -3448,9 +3450,9 @@ segments: start: 0xA574B0 vram: 0x80240000 files: - - [0xA574B0, "c"] - - [0xA574F0, "c"] - - [0xA57830, "c"] + - [0xA574B0, c] + - [0xA574F0, c] + - [0xA57830, c] - [0xA57D20, "bin"] - [0xA57E40, "bin"] - [0xA58DB0, "bin"] @@ -3463,8 +3465,8 @@ segments: start: 0xA59390 vram: 0x80240000 files: - - [0xA59390, "c"] - - [0xA596A0, "c"] + - [0xA59390, c] + - [0xA596A0, c] - [0xA59960, "bin"] - [0xA59E30, "bin"] - [0xA5A020, "bin"] # rodata @@ -3475,8 +3477,8 @@ segments: start: 0xA5A030 vram: 0x80240000 files: - - [0xA5A030, "c"] - - [0xA5A340, "c"] + - [0xA5A030, c] + - [0xA5A340, c] - [0xA5A3D0, "bin"] - [0xA5B180, "bin"] - [0xA5CA10, "bin"] # rodata @@ -3498,7 +3500,7 @@ segments: start: 0xA5E0C0 vram: 0x80240000 files: - - [0xA5E0C0, "c"] + - [0xA5E0C0, c] - [0xA5E3D0, "bin"] - [0xA5E4C0, "bin"] - [0xA5E500, "bin"] @@ -3509,7 +3511,7 @@ segments: start: 0xA5F080 vram: 0x80240000 files: - - [0xA5F080, "c"] + - [0xA5F080, c] - [0xA5F390, "bin"] - [0xA5F480, "bin"] - [0xA5F4C0, "bin"] @@ -3540,7 +3542,7 @@ segments: start: 0xA609D0 vram: 0x80240000 files: - - [0xA609D0, "c"] + - [0xA609D0, c] - [0xA623F0, "bin"] - [0xA624D0, "bin"] - [0xA63E60, "bin"] # rodata @@ -3551,8 +3553,8 @@ segments: start: 0xA64090 vram: 0x80240000 files: - - [0xA64090, "c"] - - [0xA640E0, "c"] + - [0xA64090, c] + - [0xA640E0, c] - [0xA65CB0, "bin"] - [0xA65D80, "bin"] - [0xA660E0, "bin"] @@ -3567,8 +3569,8 @@ segments: start: 0xA67100 vram: 0x80240000 files: - - [0xA67100, "c"] - - [0xA671E0, "c"] + - [0xA67100, c] + - [0xA671E0, c] - [0xA68430, "bin"] - [0xA68510, "bin"] - [0xA68710, "bin"] @@ -3582,7 +3584,7 @@ segments: start: 0xA6ACA0 vram: 0x80240000 files: - - [0xA6ACA0, "c"] + - [0xA6ACA0, c] - [0xA6AE10, "bin"] - [0xA6AEE0, "bin"] - [0xA6B270, "bin"] @@ -3596,8 +3598,8 @@ segments: start: 0xA6CB00 vram: 0x80240000 files: - - [0xA6CB00, "c"] - - [0xA6CBE0, "c"] + - [0xA6CB00, c] + - [0xA6CBE0, c] - [0xA6CEF0, "bin"] - [0xA6E3A0, "bin"] # rodata - [0xA6E3E0, "bin"] # rodata @@ -3607,8 +3609,8 @@ segments: start: 0xA6E3E0 vram: 0x80240000 files: - - [0xA6E3E0, "c"] - - [0xA6E6F0, "c"] + - [0xA6E3E0, c] + - [0xA6E6F0, c] - [0xA70720, "bin"] - [0xA707F0, "bin"] - [0xA70FE0, "bin"] @@ -3623,8 +3625,8 @@ segments: start: 0xA72220 vram: 0x80240000 files: - - [0xA72220, "c"] - - [0xA72300, "c"] + - [0xA72220, c] + - [0xA72300, c] - [0xA72610, "bin"] - [0xA72740, "bin"] - [0xA73590, "bin"] # rodata @@ -3634,7 +3636,7 @@ segments: start: 0xA735B0 vram: 0x80240000 files: - - [0xA735B0, "c"] + - [0xA735B0, c] - [0xA73740, "bin"] - [0xA738E0, "bin"] - [0xA73920, "bin"] @@ -3646,8 +3648,8 @@ segments: start: 0xA74870 vram: 0x80240000 files: - - [0xA74870, "c"] - - [0xA74B80, "c"] + - [0xA74870, c] + - [0xA74B80, c] - [0xA75360, "bin"] - [0xA75440, "bin"] - [0xA75B70, "bin"] @@ -3659,8 +3661,8 @@ segments: start: 0xA784C0 vram: 0x80240000 files: - - [0xA784C0, "c"] - - [0xA78510, "c"] + - [0xA784C0, c] + - [0xA78510, c] - [0xA78900, "bin"] - [0xA789F0, "bin"] - [0xA79200, "bin"] @@ -3672,8 +3674,8 @@ segments: start: 0xA7A500 vram: 0x80240000 files: - - [0xA7A500, "c"] - - [0xA7A550, "c"] + - [0xA7A500, c] + - [0xA7A550, c] - [0xA7A940, "bin"] - [0xA7AA10, "bin"] - [0xA7AF80, "bin"] @@ -3685,8 +3687,8 @@ segments: start: 0xA83490 vram: 0x80240000 files: - - [0xA83490, "c"] - - [0xA834E0, "c"] + - [0xA83490, c] + - [0xA834E0, c] - [0xA83500, "bin"] - [0xA835D0, "bin"] - [0xA83AC0, "bin"] @@ -3707,8 +3709,8 @@ segments: start: 0xA86A50 vram: 0x80240000 files: - - [0xA86A50, "c"] - - [0xA88280, "c"] + - [0xA86A50, c] + - [0xA88280, c] - [0xA88360, "bin"] - [0xA88420, "bin"] - [0xA88730, "bin"] @@ -3731,8 +3733,8 @@ segments: start: 0xA8CA80 vram: 0x80240000 files: - - [0xA8CA80, "c"] - - [0xA8CB60, "c"] + - [0xA8CA80, c] + - [0xA8CB60, c] - [0xA8E390, "bin"] - [0xA8E450, "bin"] - [0xA8E690, "bin"] @@ -3746,7 +3748,7 @@ segments: start: 0xA927C0 vram: 0x80240000 files: - - [0xA927C0, "c"] + - [0xA927C0, c] - [0xA927F0, "bin"] - [0xA928B0, "bin"] - [0xA93150, "bin"] # rodata @@ -3757,7 +3759,7 @@ segments: start: 0xA93160 vram: 0x80240000 files: - - [0xA93160, "c"] + - [0xA93160, c] - [0xA931B0, "bin"] - [0xA93270, "bin"] - [0xA933D0, "bin"] @@ -3769,7 +3771,7 @@ segments: start: 0xA93440 vram: 0x80240000 files: - - [0xA93440, "c"] + - [0xA93440, c] - [0xA93490, "bin"] - [0xA93550, "bin"] - [0xA936D0, "bin"] @@ -3781,8 +3783,8 @@ segments: start: 0xA93740 vram: 0x80240000 files: - - [0xA93740, "c"] - - [0xA93A50, "c"] + - [0xA93740, c] + - [0xA93A50, c] - [0xA96CD0, "bin"] - [0xA96DA0, "bin"] - [0xA97690, "bin"] @@ -3796,7 +3798,7 @@ segments: start: 0xA99590 vram: 0x80240000 files: - - [0xA99590, "c"] + - [0xA99590, c] - [0xA9A950, "bin"] - [0xA9AA20, "bin"] - [0xA9ACF0, "bin"] @@ -3818,8 +3820,8 @@ segments: start: 0xA9CC30 vram: 0x80240000 files: - - [0xA9CC30, "c"] - - [0xA9CC70, "c"] + - [0xA9CC30, c] + - [0xA9CC70, c] - [0xA9D6D0, "bin"] - [0xA9D7B0, "bin"] - [0xA9DA60, "bin"] @@ -3833,7 +3835,7 @@ segments: start: 0xA9E980 vram: 0x80240000 files: - - [0xA9E980, "c"] + - [0xA9E980, c] - [0xA9E9D0, "bin"] - [0xA9EAA0, "bin"] - [0xA9ED10, "bin"] # rodata @@ -3844,7 +3846,7 @@ segments: start: 0xA9ED40 vram: 0x80240000 files: - - [0xA9ED40, "c"] + - [0xA9ED40, c] - [0xAA0100, "bin"] - [0xAA01E0, "bin"] - [0xAA0430, "bin"] @@ -3906,7 +3908,7 @@ segments: start: 0xAA2D20 vram: 0x80240000 files: - - [0xAA2D20, "c"] + - [0xAA2D20, c] - [0xAA3460, "bin"] - [0xAA3530, "bin"] - [0xAA3870, "bin"] @@ -3917,8 +3919,8 @@ segments: start: 0xAA7480 vram: 0x80240000 files: - - [0xAA7480, "c"] - - [0xAA7790, "c"] + - [0xAA7480, c] + - [0xAA7790, c] - [0xAA78F0, "bin"] - [0xAA79E0, "bin"] - [0xAA8290, "bin"] @@ -3931,9 +3933,9 @@ segments: start: 0xAA8FA0 vram: 0x80240000 files: - - [0xAA8FA0, "c"] - - [0xAA92B0, "c"] - - [0xAA94B0, "c"] + - [0xAA8FA0, c] + - [0xAA92B0, c] + - [0xAA94B0, c] - [0xAA96A0, "bin"] - [0xAA9790, "bin"] - [0xAAA060, "bin"] @@ -3946,8 +3948,8 @@ segments: start: 0xAAC830 vram: 0x80240000 files: - - [0xAAC830, "c"] - - [0xAACBB0, "c"] + - [0xAAC830, c] + - [0xAACBB0, c] - [0xAACFC0, "bin"] - [0xAAD790, "bin"] - [0xAAFFD0, "bin"] # rodata @@ -3957,9 +3959,9 @@ segments: start: 0xAAFFF0 vram: 0x80240000 files: - - [0xAAFFF0, "c"] - - [0xAB0040, "c"] - - [0xAB0350, "c"] + - [0xAAFFF0, c] + - [0xAB0040, c] + - [0xAB0350, c] - [0xAB0AB0, "bin"] - [0xAB0C10, "bin"] - [0xAB1150, "bin"] @@ -3970,10 +3972,10 @@ segments: start: 0xAB2170 vram: 0x80240000 files: - - [0xAB2170, "c"] - - [0xAB2190, "c"] - - [0xAB21D0, "c"] - - [0xAB2290, "c"] + - [0xAB2170, c] + - [0xAB2190, c] + - [0xAB21D0, c] + - [0xAB2290, c] - [0xAB22C0, "bin"] - [0xAB2B00, "bin"] - [0xAB2BB0, "bin"] @@ -3986,8 +3988,8 @@ segments: start: 0xAB6290 vram: 0x80240000 files: - - [0xAB6290, "c"] - - [0xAB62B0, "c"] + - [0xAB6290, c] + - [0xAB62B0, c] - [0xAB6610, "bin"] - [0xAB6DB0, "bin"] - [0xAB7E20, "bin"] @@ -4001,7 +4003,7 @@ segments: start: 0xAB92B0 vram: 0x80240000 files: - - [0xAB92B0, "c"] + - [0xAB92B0, c] - [0xAB9370, "bin"] - [0xAB95D0, "bin"] - [0xABB260, "bin"] # rodata @@ -4012,8 +4014,8 @@ segments: start: 0xABB290 vram: 0x80240000 files: - - [0xABB290, "c"] - - [0xABB340, "c"] + - [0xABB290, c] + - [0xABB340, c] - [0xABC250, "bin"] - [0xABC3D0, "bin"] - [0xABEC70, "bin"] @@ -4027,7 +4029,7 @@ segments: start: 0xAC5170 vram: 0x80240000 files: - - [0xAC5170, "c"] + - [0xAC5170, c] - [0xAC6000, "bin"] - [0xAC6140, "bin"] - [0xAC67E0, "bin"] @@ -4049,8 +4051,8 @@ segments: start: 0xAC9710 vram: 0x80240000 files: - - [0xAC9710, "c"] - - [0xAC9730, "c"] + - [0xAC9710, c] + - [0xAC9730, c] - [0xAC9A40, "bin"] - [0xAC9C00, "bin"] - [0xACA010, "bin"] @@ -4063,10 +4065,10 @@ segments: start: 0xACAB20 vram: 0x80240000 files: - - [0xACAB20, "c"] - - [0xACAB90, "c"] - - [0xACABD0, "c"] - - [0xACB3C0, "c"] + - [0xACAB20, c] + - [0xACAB90, c] + - [0xACABD0, c] + - [0xACB3C0, c] - [0xACBBF0, "bin"] - [0xACC510, "bin"] - [0xACC700, "bin"] @@ -4077,10 +4079,10 @@ segments: start: 0xACE140 vram: 0x80240000 files: - - [0xACE140, "c"] - - [0xACE1B0, "c"] - - [0xACE1F0, "c"] - - [0xACE9E0, "c"] + - [0xACE140, c] + - [0xACE1B0, c] + - [0xACE1F0, c] + - [0xACE9E0, c] - [0xACF210, "bin"] - [0xACFD40, "bin"] - [0xACFF30, "bin"] @@ -4093,8 +4095,8 @@ segments: start: 0xAD4090 vram: 0x80240000 files: - - [0xAD4090, "c"] - - [0xAD4100, "c"] + - [0xAD4090, c] + - [0xAD4100, c] - [0xAD4940, "bin"] - [0xAD5EA0, "bin"] # rodata - name: world/area_kkj/kkj_13/ @@ -4103,9 +4105,9 @@ segments: start: 0xAD5ED0 vram: 0x80240000 files: - - [0xAD5ED0, "c"] - - [0xAD5EF0, "c"] - - [0xAD6200, "c"] + - [0xAD5ED0, c] + - [0xAD5EF0, c] + - [0xAD6200, c] - [0xAD6630, "bin"] - [0xAD6780, "bin"] - [0xAD6820, "bin"] @@ -4119,8 +4121,8 @@ segments: start: 0xADAEA0 vram: 0x80240000 files: - - [0xADAEA0, "c"] - - [0xADAEF0, "c"] + - [0xADAEA0, c] + - [0xADAEF0, c] - [0xADB360, "bin"] - [0xADB5C0, "bin"] - [0xADC0F0, "bin"] @@ -4142,10 +4144,10 @@ segments: start: 0xAE5590 vram: 0x80240000 files: - - [0xAE5590, "c"] - - [0xAE58D0, "c"] - - [0xAE5A90, "c"] - - [0xAE5B60, "c"] + - [0xAE5590, c] + - [0xAE58D0, c] + - [0xAE5A90, c] + - [0xAE5B60, c] - [0xAE5BA0, "bin"] - [0xAE5CE0, "bin"] - [0xAE5D80, "bin"] @@ -4164,8 +4166,8 @@ segments: start: 0xAED410 vram: 0x80240000 files: - - [0xAED410, "c"] - - [0xAEDC60, "c"] + - [0xAED410, c] + - [0xAEDC60, c] - [0xAEE490, "bin"] - [0xAEE7F0, "bin"] - [0xAF09D0, "bin"] @@ -4177,7 +4179,7 @@ segments: start: 0xAF1C60 vram: 0x80240000 files: - - [0xAF1C60, "c"] + - [0xAF1C60, c] - [0xAF2200, "bin"] - [0xAF2440, "bin"] - [0xAF2520, "bin"] @@ -4189,8 +4191,8 @@ segments: start: 0xAF2CA0 vram: 0x80240000 files: - - [0xAF2CA0, "c"] - - [0xAF2FE0, "c"] + - [0xAF2CA0, c] + - [0xAF2FE0, c] - [0xAF34C0, "bin"] - [0xAF3560, "bin"] - [0xAF3600, "bin"] @@ -4205,8 +4207,8 @@ segments: start: 0xAF7950 vram: 0x80240000 files: - - [0xAF7950, "c"] - - [0xAF7C00, "c"] + - [0xAF7950, c] + - [0xAF7C00, c] - [0xAF8660, "bin"] - [0xAF8808, "bin"] - [0xAF8B40, "bin"] @@ -4220,8 +4222,8 @@ segments: start: 0xAFDB40 vram: 0x80240000 files: - - [0xAFDB40, "c"] - - [0xAFDE00, "c"] + - [0xAFDB40, c] + - [0xAFDE00, c] - [0xAFE130, "bin"] - [0xAFE1E0, "bin"] - [0xAFE3C0, "bin"] @@ -4252,9 +4254,9 @@ segments: start: 0xB02880 vram: 0x80240000 files: - - [0xB02880, "c"] - - [0xB028A0, "c"] - - [0xB03190, "c"] + - [0xB02880, c] + - [0xB028A0, c] + - [0xB03190, c] - [0xB03250, "bin"] - [0xB03300, "bin"] - [0xB036B0, "bin"] @@ -4268,7 +4270,7 @@ segments: start: 0xB06570 vram: 0x80240000 files: - - [0xB06570, "c"] + - [0xB06570, c] - [0xB06590, "bin"] - [0xB06640, "bin"] - [0xB069B0, "bin"] @@ -4279,11 +4281,11 @@ segments: start: 0xB06A00 vram: 0x80240000 files: - - [0xB06A00, "c"] - - [0xB06A20, "c"] - - [0xB06A50, "c"] - - [0xB06A80, "c"] - - [0xB06D10, "c"] + - [0xB06A00, c] + - [0xB06A20, c] + - [0xB06A50, c] + - [0xB06A80, c] + - [0xB06D10, c] - [0xB07940, "bin"] - [0xB081C0, "bin"] - [0xB0B310, "bin"] @@ -4296,7 +4298,7 @@ segments: start: 0xB13120 vram: 0x80240000 files: - - [0xB13120, "c"] + - [0xB13120, c] - [0xB13150, "bin"] - [0xB13500, "bin"] - [0xB13A40, "bin"] @@ -4307,8 +4309,8 @@ segments: start: 0xB13D70 vram: 0x80240000 files: - - [0xB13D70, "c"] - - [0xB14080, "c"] + - [0xB13D70, c] + - [0xB14080, c] - [0xB14210, "bin"] - [0xB14340, "bin"] - [0xB143E0, "bin"] @@ -4328,8 +4330,8 @@ segments: start: 0xB150B0 vram: 0x80240000 files: - - [0xB150B0, "c"] - - [0xB150E0, "c"] + - [0xB150B0, c] + - [0xB150E0, c] - [0xB15120, "bin"] - [0xB15410, "bin"] - [0xB15DA0, "bin"] @@ -4367,8 +4369,8 @@ segments: start: 0xB1B570 vram: 0x80240000 files: - - [0xB1B570, "c"] - - [0xB1BBD0, "c"] + - [0xB1B570, c] + - [0xB1BBD0, c] - [0xB1BC00, "bin"] - [0xB1C1E0, "bin"] - [0xB1C220, "bin"] @@ -4391,7 +4393,7 @@ segments: start: 0xB1CA50 vram: 0x80240000 files: - - [0xB1CA50, "c"] + - [0xB1CA50, c] - [0xB1D1C0, "bin"] - [0xB1D2A0, "bin"] - [0xB1D2F0, "bin"] @@ -4409,7 +4411,7 @@ segments: start: 0xB1D760 vram: 0x80240000 files: - - [0xB1D760, "c"] + - [0xB1D760, c] - [0xB1DB20, "bin"] - [0xB20460, "bin"] # rodata - [0xB20470, "bin"] # rodata @@ -4426,9 +4428,9 @@ segments: start: 0xB20540 vram: 0x80240000 files: - - [0xB20540, "c"] - - [0xB216E0, "c"] - - [0xB21EA0, "c"] + - [0xB20540, c] + - [0xB216E0, c] + - [0xB21EA0, c] - [0xB220E0, "bin"] - [0xB22190, "bin"] - [0xB226D0, "bin"] @@ -4442,8 +4444,8 @@ segments: start: 0xB28030 vram: 0x80240000 files: - - [0xB28030, "c"] - - [0xB291C0, "c"] + - [0xB28030, c] + - [0xB291C0, c] - [0xB29400, "bin"] - [0xB294A0, "bin"] - [0xB299B0, "bin"] @@ -4457,10 +4459,10 @@ segments: start: 0xB2C470 vram: 0x80240000 files: - - [0xB2C470, "c"] - - [0xB2C4A0, "c"] - - [0xB2C8A0, "c"] - - [0xB2EB50, "c"] + - [0xB2C470, c] + - [0xB2C4A0, c] + - [0xB2C8A0, c] + - [0xB2EB50, c] - [0xB2ED90, "bin"] - [0xB2EEA0, "bin"] - [0xB2F410, "bin"] @@ -4473,9 +4475,9 @@ segments: start: 0xB34BD0 vram: 0x80240000 files: - - [0xB34BD0, "c"] - - [0xB37B70, "c"] - - [0xB37C20, "c"] + - [0xB34BD0, c] + - [0xB37B70, c] + - [0xB37C20, c] - [0xB37E60, "bin"] - [0xB39530, "bin"] - [0xB435D0, "bin"] @@ -4490,14 +4492,14 @@ segments: start: 0xB44770 vram: 0x80240000 files: - - [0xB44770, "c"] - - [0xB447B0, "c"] - - [0xB44AC0, "c"] - - [0xB44D80, "c"] - - [0xB44F10, "c"] - - [0xB45150, "c"] - - [0xB451F0, "c"] - - [0xB45730, "c"] + - [0xB44770, c] + - [0xB447B0, c] + - [0xB44AC0, c] + - [0xB44D80, c] + - [0xB44F10, c] + - [0xB45150, c] + - [0xB451F0, c] + - [0xB45730, c] - [0xB45860, "bin"] - [0xB45A20, "bin"] - [0xB461B0, "bin"] @@ -4516,11 +4518,11 @@ segments: start: 0xB4AA70 vram: 0x80240000 files: - - [0xB4AA70, "c"] - - [0xB4AAB0, "c"] - - [0xB4ADC0, "c"] - - [0xB4AF10, "c"] - - [0xB4B260, "c"] + - [0xB4AA70, c] + - [0xB4AAB0, c] + - [0xB4ADC0, c] + - [0xB4AF10, c] + - [0xB4B260, c] - [0xB4D140, "bin"] - [0xB4D200, "bin"] - [0xB4D7A0, "bin"] @@ -4538,11 +4540,11 @@ segments: start: 0xB52830 vram: 0x80240000 files: - - [0xB52830, "c"] - - [0xB52B40, "c"] - - [0xB52BE0, "c"] - - [0xB52D30, "c"] - - [0xB52F70, "c"] + - [0xB52830, c] + - [0xB52B40, c] + - [0xB52BE0, c] + - [0xB52D30, c] + - [0xB52F70, c] - [0xB54E10, "bin"] - [0xB55860, "bin"] - [0xB55F40, "bin"] @@ -4559,9 +4561,9 @@ segments: start: 0xB59870 vram: 0x80240000 files: - - [0xB59870, "c"] - - [0xB5A610, "c"] - - [0xB5A850, "c"] + - [0xB59870, c] + - [0xB5A610, c] + - [0xB5A850, c] - [0xB5AA90, "bin"] - [0xB5AB20, "bin"] - [0xB5ACA0, "bin"] @@ -4575,11 +4577,11 @@ segments: start: 0xB5E2B0 vram: 0x80240000 files: - - [0xB5E2B0, "c"] - - [0xB5E5C0, "c"] - - [0xB5E910, "c"] - - [0xB5F650, "c"] - - [0xB604A0, "c"] + - [0xB5E2B0, c] + - [0xB5E5C0, c] + - [0xB5E910, c] + - [0xB5F650, c] + - [0xB604A0, c] - [0xB606E0, "bin"] - [0xB60790, "bin"] - [0xB620B0, "bin"] @@ -4594,10 +4596,10 @@ segments: start: 0xB65AB0 vram: 0x80240000 files: - - [0xB65AB0, "c"] - - [0xB660A0, "c"] - - [0xB663F0, "c"] - - [0xB67190, "c"] + - [0xB65AB0, c] + - [0xB660A0, c] + - [0xB663F0, c] + - [0xB67190, c] - [0xB673D0, "bin"] - [0xB687D0, "bin"] - [0xB6B400, "bin"] @@ -4610,11 +4612,11 @@ segments: start: 0xB6C390 vram: 0x80240000 files: - - [0xB6C390, "c"] - - [0xB6C6A0, "c"] - - [0xB6D4C0, "c"] - - [0xB6D610, "c"] - - [0xB6D890, "c"] + - [0xB6C390, c] + - [0xB6C6A0, c] + - [0xB6D4C0, c] + - [0xB6D610, c] + - [0xB6D890, c] - [0xB6DAD0, "bin"] - [0xB6DB60, "bin"] - [0xB6F1D0, "bin"] @@ -4629,8 +4631,8 @@ segments: start: 0xB70860 vram: 0x80240000 files: - - [0xB70860, "c"] - - [0xB71010, "c"] + - [0xB70860, c] + - [0xB71010, c] - [0xB71060, "bin"] - [0xB710F0, "bin"] - [0xB728B0, "bin"] @@ -4642,8 +4644,8 @@ segments: start: 0xB730B0 vram: 0x80240000 files: - - [0xB730B0, "c"] - - [0xB73570, "c"] + - [0xB730B0, c] + - [0xB73570, c] - [0xB74310, "bin"] - [0xB75250, "bin"] - [0xB75D30, "bin"] @@ -4655,7 +4657,7 @@ segments: start: 0xB767B0 vram: 0x80240000 files: - - [0xB767B0, "c"] + - [0xB767B0, c] - [0xB76D80, "bin"] - [0xB77000, "bin"] - [0xB794C0, "bin"] @@ -4667,8 +4669,8 @@ segments: start: 0xB7A050 vram: 0x80240000 files: - - [0xB7A050, "c"] - - [0xB7A510, "c"] + - [0xB7A050, c] + - [0xB7A510, c] - [0xB7B330, "bin"] - [0xB7B5C0, "bin"] - [0xB7C630, "bin"] @@ -4682,8 +4684,8 @@ segments: start: 0xB7D920 vram: 0x80240000 files: - - [0xB7D920, "c"] - - [0xB7D9E0, "c"] + - [0xB7D920, c] + - [0xB7D9E0, c] - [0xB7DC20, "bin"] - [0xB7DEE0, "bin"] - [0xB7F4A0, "bin"] @@ -4695,8 +4697,8 @@ segments: start: 0xB80000 vram: 0x80240000 files: - - [0xB80000, "c"] - - [0xB80300, "c"] + - [0xB80000, c] + - [0xB80300, c] - [0xB80540, "bin"] - [0xB82C70, "bin"] - [0xB82CD0, "bin"] @@ -4708,7 +4710,7 @@ segments: start: 0xB837C0 vram: 0x80240000 files: - - [0xB837C0, "c"] + - [0xB837C0, c] - [0xB837E0, "bin"] - [0xB838C0, "bin"] - [0xB83B20, "bin"] @@ -4728,7 +4730,7 @@ segments: start: 0xB83E60 vram: 0x80240000 files: - - [0xB83E60, "c"] + - [0xB83E60, c] - [0xB83E80, "bin"] - [0xB84110, "bin"] - [0xB84170, "bin"] # rodata @@ -4738,9 +4740,9 @@ segments: start: 0xB84180 vram: 0x80240000 files: - - [0xB84180, "c"] - - [0xB851A0, "c"] - - [0xB858A0, "c"] + - [0xB84180, c] + - [0xB851A0, c] + - [0xB858A0, c] - [0xB85AE0, "bin"] - [0xB8D910, "bin"] - [0xB8E200, "bin"] @@ -4762,9 +4764,9 @@ segments: start: 0xB93440 vram: 0x80240000 files: - - [0xB93440, "c"] - - [0xB934B0, "c"] - - [0xB93940, "c"] + - [0xB93440, c] + - [0xB934B0, c] + - [0xB93940, c] - [0xB952F0, "bin"] - [0xB953B0, "bin"] - [0xB957E0, "bin"] @@ -4778,8 +4780,8 @@ segments: start: 0xB97C00 vram: 0x80240000 files: - - [0xB97C00, "c"] - - [0xB97C70, "c"] + - [0xB97C00, c] + - [0xB97C70, c] - [0xB98DE0, "bin"] - [0xB98EA0, "bin"] - [0xB9A390, "bin"] @@ -4792,7 +4794,7 @@ segments: start: 0xB9B480 vram: 0x80240000 files: - - [0xB9B480, "c"] + - [0xB9B480, c] - [0xB9B9B0, "bin"] - [0xB9BA70, "bin"] - [0xB9BE30, "bin"] @@ -4805,9 +4807,9 @@ segments: start: 0xB9D960 vram: 0x80240000 files: - - [0xB9D960, "c"] - - [0xB9D9D0, "c"] - - [0xB9DB60, "c"] + - [0xB9D960, c] + - [0xB9D9D0, c] + - [0xB9DB60, c] - [0xB9EA90, "bin"] - [0xB9EB50, "bin"] - [0xB9F020, "bin"] @@ -4821,8 +4823,8 @@ segments: start: 0xBA0730 vram: 0x80240000 files: - - [0xBA0730, "c"] - - [0xBA07A0, "c"] + - [0xBA0730, c] + - [0xBA07A0, c] - [0xBA2150, "bin"] - [0xBA2210, "bin"] - [0xBA3A80, "bin"] @@ -4834,9 +4836,9 @@ segments: start: 0xBA4780 vram: 0x80240000 files: - - [0xBA4780, "c"] - - [0xBA47F0, "c"] - - [0xBA4CF0, "c"] + - [0xBA4780, c] + - [0xBA47F0, c] + - [0xBA4CF0, c] - [0xBA74B0, "bin"] - [0xBA7570, "bin"] - [0xBA82F0, "bin"] @@ -4850,9 +4852,9 @@ segments: start: 0xBAA140 vram: 0x80240000 files: - - [0xBAA140, "c"] - - [0xBAA1B0, "c"] - - [0xBAA3B0, "c"] + - [0xBAA140, c] + - [0xBAA1B0, c] + - [0xBAA3B0, c] - [0xBAB1D0, "bin"] - [0xBAB2C0, "bin"] - [0xBAB6D0, "bin"] @@ -4867,7 +4869,7 @@ segments: start: 0xBAD940 vram: 0x80240000 files: - - [0xBAD940, "c"] + - [0xBAD940, c] - [0xBB0880, "bin"] - [0xBB0940, "bin"] - [0xBB0E30, "bin"] @@ -4881,7 +4883,7 @@ segments: start: 0xBB2E00 vram: 0x80240000 files: - - [0xBB2E00, "c"] + - [0xBB2E00, c] - [0xBB3CC0, "bin"] - [0xBB3D80, "bin"] - [0xBB4130, "bin"] @@ -4895,7 +4897,7 @@ segments: start: 0xBB59E0 vram: 0x80240000 files: - - [0xBB59E0, "c"] + - [0xBB59E0, c] - [0xBB5B70, "bin"] - [0xBB5EB0, "bin"] - [0xBB5EF0, "bin"] @@ -4908,9 +4910,9 @@ segments: start: 0xBB7070 vram: 0x80240000 files: - - [0xBB7070, "c"] - - [0xBB7940, "c"] - - [0xBB79F0, "c"] + - [0xBB7070, c] + - [0xBB7940, c] + - [0xBB79F0, c] - [0xBB7C30, "bin"] - [0xBBA180, "bin"] - [0xBBA2E0, "bin"] @@ -4922,7 +4924,7 @@ segments: start: 0xBBB380 vram: 0x80240000 files: - - [0xBBB380, "c"] + - [0xBBB380, c] - [0xBBB960, "bin"] - [0xBBBB90, "bin"] - [0xBBBE60, "bin"] @@ -4934,8 +4936,8 @@ segments: start: 0xBBD1A0 vram: 0x80240000 files: - - [0xBBD1A0, "c"] - - [0xBBD980, "c"] + - [0xBBD1A0, c] + - [0xBBD980, c] - [0xBBE2E0, "bin"] - [0xBBE410, "bin"] - [0xBC0100, "bin"] @@ -4947,8 +4949,8 @@ segments: start: 0xBC2A90 vram: 0x80240000 files: - - [0xBC2A90, "c"] - - [0xBC2CD0, "c"] + - [0xBC2A90, c] + - [0xBC2CD0, c] - [0xBC2D40, "bin"] - [0xBC2E20, "bin"] - [0xBC3720, "bin"] @@ -4962,9 +4964,9 @@ segments: start: 0xBC4280 vram: 0x80240000 files: - - [0xBC4280, "c"] - - [0xBC43F0, "c"] - - [0xBC4B50, "c"] + - [0xBC4280, c] + - [0xBC43F0, c] + - [0xBC4B50, c] - [0xBC5270, "bin"] - [0xBC5350, "bin"] - [0xBC5770, "bin"] @@ -4979,8 +4981,8 @@ segments: start: 0xBC7E60 vram: 0x80240000 files: - - [0xBC7E60, "c"] - - [0xBC7EB0, "c"] + - [0xBC7E60, c] + - [0xBC7EB0, c] - [0xBC8CE0, "bin"] - [0xBC8DE0, "bin"] - [0xBC9020, "bin"] @@ -4994,8 +4996,8 @@ segments: start: 0xBCD060 vram: 0x80240000 files: - - [0xBCD060, "c"] - - [0xBCD7D0, "c"] + - [0xBCD060, c] + - [0xBCD7D0, c] - [0xBCDA40, "bin"] - [0xBCDB00, "bin"] - [0xBCDFF0, "bin"] @@ -5018,9 +5020,9 @@ segments: start: 0xBCEBF0 vram: 0x80240000 files: - - [0xBCEBF0, "c"] - - [0xBCEEB0, "c"] - - [0xBCF0F0, "c"] + - [0xBCEBF0, c] + - [0xBCEEB0, c] + - [0xBCF0F0, c] - [0xBD0780, "bin"] - [0xBD0840, "bin"] - [0xBD0BA0, "bin"] @@ -5035,10 +5037,10 @@ segments: start: 0xBD3870 vram: 0x80240000 files: - - [0xBD3870, "c"] - - [0xBD40B0, "c"] - - [0xBD4110, "c"] - - [0xBD4A90, "c"] + - [0xBD3870, c] + - [0xBD40B0, c] + - [0xBD4110, c] + - [0xBD4A90, c] - [0xBD5010, "bin"] - [0xBD50D0, "bin"] - [0xBD64D0, "bin"] @@ -5051,10 +5053,10 @@ segments: start: 0xBDA7B0 vram: 0x80240000 files: - - [0xBDA7B0, "c"] - - [0xBDA940, "c"] - - [0xBDAB00, "c"] - - [0xBDABA0, "c"] + - [0xBDA7B0, c] + - [0xBDA940, c] + - [0xBDAB00, c] + - [0xBDABA0, c] - [0xBDABE0, "bin"] - [0xBDB140, "bin"] - [0xBDCE10, "bin"] @@ -5066,7 +5068,7 @@ segments: start: 0xBDD1B0 vram: 0x80240000 files: - - [0xBDD1B0, "c"] + - [0xBDD1B0, c] - [0xBDE190, "bin"] - [0xBDE2A0, "bin"] - [0xBDE480, "bin"] @@ -5078,7 +5080,7 @@ segments: start: 0xBDED90 vram: 0x80240000 files: - - [0xBDED90, "c"] + - [0xBDED90, c] - [0xBE04B0, "bin"] - [0xBE05C0, "bin"] - [0xBE0950, "bin"] @@ -5091,7 +5093,7 @@ segments: start: 0xBE37B0 vram: 0x80240000 files: - - [0xBE37B0, "c"] + - [0xBE37B0, c] - [0xBE6B20, "bin"] - [0xBE6C30, "bin"] - [0xBE6E10, "bin"] @@ -5105,7 +5107,7 @@ segments: start: 0xBE7BE0 vram: 0x80240000 files: - - [0xBE7BE0, "c"] + - [0xBE7BE0, c] - [0xBE8EE0, "bin"] - [0xBE9290, "bin"] - [0xBECBE0, "bin"] @@ -5117,10 +5119,10 @@ segments: start: 0xBECDF0 vram: 0x80240000 files: - - [0xBECDF0, "c"] - - [0xBED5F0, "c"] - - [0xBED660, "c"] - - [0xBED740, "c"] + - [0xBECDF0, c] + - [0xBED5F0, c] + - [0xBED660, c] + - [0xBED740, c] - [0xBEEC80, "bin"] - [0xBEEE30, "bin"] - [0xBF0580, "bin"] @@ -5134,8 +5136,8 @@ segments: start: 0xBF47A0 vram: 0x80240000 files: - - [0xBF47A0, "c"] - - [0xBF4860, "c"] + - [0xBF47A0, c] + - [0xBF4860, c] - [0xBF4A30, "bin"] - [0xBF4B50, "bin"] - [0xBF5210, "bin"] @@ -5151,7 +5153,7 @@ segments: start: 0xBF6060 vram: 0x80240000 files: - - [0xBF6060, "c"] + - [0xBF6060, c] - [0xBF60A0, "bin"] - [0xBF61A0, "bin"] - [0xBF6400, "bin"] @@ -5206,8 +5208,8 @@ segments: start: 0xBFA0A0 vram: 0x80240000 files: - - [0xBFA0A0, "c"] - - [0xBFA100, "c"] + - [0xBFA0A0, c] + - [0xBFA100, c] - [0xBFA150, "bin"] - [0xBFA260, "bin"] - [0xBFD800, "bin"] @@ -5219,9 +5221,9 @@ segments: start: 0xBFD880 vram: 0x80240000 files: - - [0xBFD880, "c"] - - [0xBFD8C0, "c"] - - [0xBFD9A0, "c"] + - [0xBFD880, c] + - [0xBFD8C0, c] + - [0xBFD9A0, c] - [0xC00C70, "bin"] - [0xC00DD0, "bin"] - [0xC01770, "bin"] @@ -5235,7 +5237,7 @@ segments: start: 0xC2EBA0 vram: 0x80240000 files: - - [0xC2EBA0, "c"] + - [0xC2EBA0, c] - [0xC2FFD0, "bin"] - [0xC300F0, "bin"] - [0xC30650, "bin"] @@ -5246,8 +5248,8 @@ segments: start: 0xC314E0 vram: 0x80240000 files: - - [0xC314E0, "c"] - - [0xC31730, "c"] + - [0xC314E0, c] + - [0xC31730, c] - [0xC33CB0, "bin"] - [0xC33DF0, "bin"] - [0xC345C0, "bin"] @@ -5260,7 +5262,7 @@ segments: start: 0xC36530 vram: 0x80240000 files: - - [0xC36530, "c"] + - [0xC36530, c] - [0xC39640, "bin"] - [0xC39740, "bin"] - [0xC39A90, "bin"] @@ -5272,7 +5274,7 @@ segments: start: 0xC3AA10 vram: 0x80240000 files: - - [0xC3AA10, "c"] + - [0xC3AA10, c] - [0xC3BEA0, "bin"] - [0xC3BF90, "bin"] - [0xC3C200, "bin"] @@ -5285,7 +5287,7 @@ segments: start: 0xC3D080 vram: 0x80240000 files: - - [0xC3D080, "c"] + - [0xC3D080, c] - [0xC3D340, "bin"] - [0xC3D440, "bin"] - [0xC3D8C0, "bin"] @@ -5297,7 +5299,7 @@ segments: start: 0xC3DBF0 vram: 0x80240000 files: - - [0xC3DBF0, "c"] + - [0xC3DBF0, c] - [0xC3F020, "bin"] - [0xC3F120, "bin"] - [0xC3F3E0, "bin"] @@ -5309,7 +5311,7 @@ segments: start: 0xC3FDB0 vram: 0x80240000 files: - - [0xC3FDB0, "c"] + - [0xC3FDB0, c] - [0xC43A40, "bin"] - [0xC43B40, "bin"] - [0xC43EB0, "bin"] @@ -5323,7 +5325,7 @@ segments: start: 0xC46BE0 vram: 0x80240000 files: - - [0xC46BE0, "c"] + - [0xC46BE0, c] - [0xC4A3E0, "bin"] - [0xC4A500, "bin"] - [0xC4AA30, "bin"] @@ -5336,7 +5338,7 @@ segments: start: 0xC4C390 vram: 0x80240000 files: - - [0xC4C390, "c"] + - [0xC4C390, c] - [0xC4C580, "bin"] - [0xC4C680, "bin"] - [0xC4CA00, "bin"] @@ -5348,7 +5350,7 @@ segments: start: 0xC4D3E0 vram: 0x80240000 files: - - [0xC4D3E0, "c"] + - [0xC4D3E0, c] - [0xC4D430, "bin"] - [0xC4D550, "bin"] - [0xC4D950, "bin"] @@ -5359,7 +5361,7 @@ segments: start: 0xC4DEF0 vram: 0x80240000 files: - - [0xC4DEF0, "c"] + - [0xC4DEF0, c] - [0xC4E1B0, "bin"] - [0xC4E2A0, "bin"] - [0xC4E760, "bin"] @@ -5392,8 +5394,8 @@ segments: start: 0xC4F510 vram: 0x80240000 files: - - [0xC4F510, "c"] - - [0xC50CA0, "c"] + - [0xC4F510, c] + - [0xC50CA0, c] - [0xC50D80, "bin"] - [0xC50ED0, "bin"] - [0xC513B0, "bin"] @@ -5406,7 +5408,7 @@ segments: start: 0xC52540 vram: 0x80240000 files: - - [0xC52540, "c"] + - [0xC52540, c] - [0xC53970, "bin"] - [0xC53A60, "bin"] - [0xC53CC0, "bin"] @@ -5428,8 +5430,8 @@ segments: start: 0xC55F40 vram: 0x80240000 files: - - [0xC55F40, "c"] - - [0xC56EF0, "c"] + - [0xC55F40, c] + - [0xC56EF0, c] - [0xC571B0, "bin"] - [0xC572A0, "bin"] - [0xC574C0, "bin"] @@ -5443,7 +5445,7 @@ segments: start: 0xC599D0 vram: 0x80240000 files: - - [0xC599D0, "c"] + - [0xC599D0, c] - [0xC59CE0, "bin"] - [0xC5A730, "bin"] # rodata - name: world/area_kzn/kzn_02/ @@ -5452,10 +5454,10 @@ segments: start: 0xC5A740 vram: 0x80240000 files: - - [0xC5A740, "c"] - - [0xC5AA50, "c"] - - [0xC5AC20, "c"] - - [0xC5CE70, "c"] + - [0xC5A740, c] + - [0xC5AA50, c] + - [0xC5AC20, c] + - [0xC5CE70, c] - [0xC5CF60, "bin"] - [0xC5D9B0, "bin"] - [0xC609C0, "bin"] @@ -5469,9 +5471,9 @@ segments: start: 0xC60D10 vram: 0x80240000 files: - - [0xC60D10, "c"] - - [0xC61020, "c"] - - [0xC63A10, "c"] + - [0xC60D10, c] + - [0xC61020, c] + - [0xC63A10, c] - [0xC63DA0, "bin"] - [0xC647B0, "bin"] - [0xC66FC0, "bin"] @@ -5486,9 +5488,9 @@ segments: start: 0xC68130 vram: 0x80240000 files: - - [0xC68130, "c"] - - [0xC68440, "c"] - - [0xC69180, "c"] + - [0xC68130, c] + - [0xC68440, c] + - [0xC69180, c] - [0xC69890, "bin"] - [0xC69D70, "bin"] - [0xC6A420, "bin"] @@ -5500,7 +5502,7 @@ segments: start: 0xC6C0D0 vram: 0x80240000 files: - - [0xC6C0D0, "c"] + - [0xC6C0D0, c] - [0xC6C3E0, "bin"] - [0xC6C910, "bin"] # rodata - name: world/area_kzn/kzn_06/ @@ -5509,9 +5511,9 @@ segments: start: 0xC6C920 vram: 0x80240000 files: - - [0xC6C920, "c"] - - [0xC6CC30, "c"] - - [0xC6CD10, "c"] + - [0xC6C920, c] + - [0xC6CC30, c] + - [0xC6CD10, c] - [0xC6D390, "bin"] - [0xC6E300, "bin"] # rodata - [0xC6E320, "bin"] # rodata @@ -5522,8 +5524,8 @@ segments: start: 0xC6E330 vram: 0x80240000 files: - - [0xC6E330, "c"] - - [0xC6EA50, "c"] + - [0xC6E330, c] + - [0xC6EA50, c] - [0xC70640, "bin"] - [0xC70710, "bin"] - [0xC70C60, "bin"] @@ -5537,9 +5539,9 @@ segments: start: 0xC71480 vram: 0x80240000 files: - - [0xC71480, "c"] - - [0xC71C10, "c"] - - [0xC71ED0, "c"] + - [0xC71480, c] + - [0xC71C10, c] + - [0xC71ED0, c] - [0xC755A0, "bin"] - [0xC76030, "bin"] - [0xC76A50, "bin"] # rodata @@ -5551,9 +5553,9 @@ segments: start: 0xC76CE0 vram: 0x80240000 files: - - [0xC76CE0, "c"] - - [0xC77A20, "c"] - - [0xC77D00, "c"] + - [0xC76CE0, c] + - [0xC77A20, c] + - [0xC77D00, c] - [0xC7A6F0, "bin"] - [0xC7A9E0, "bin"] - [0xC7B0D0, "bin"] @@ -5565,8 +5567,8 @@ segments: start: 0xC7E180 vram: 0x80240000 files: - - [0xC7E180, "c"] - - [0xC7E4B0, "c"] + - [0xC7E180, c] + - [0xC7E4B0, c] - [0xC7E850, "bin"] - [0xC7EE90, "bin"] - [0xC80170, "bin"] # rodata @@ -5577,9 +5579,9 @@ segments: start: 0xC801A0 vram: 0x80240000 files: - - [0xC801A0, "c"] - - [0xC804B0, "c"] - - [0xC80600, "c"] + - [0xC801A0, c] + - [0xC804B0, c] + - [0xC80600, c] - [0xC82800, "bin"] - [0xC83180, "bin"] - [0xC83870, "bin"] @@ -5592,9 +5594,9 @@ segments: start: 0xC85AB0 vram: 0x80240000 files: - - [0xC85AB0, "c"] - - [0xC85DC0, "c"] - - [0xC887B0, "c"] + - [0xC85AB0, c] + - [0xC85DC0, c] + - [0xC887B0, c] - [0xC88B50, "bin"] - [0xC89450, "bin"] - [0xC8BE40, "bin"] # rodata @@ -5605,9 +5607,9 @@ segments: start: 0xC8C0A0 vram: 0x80240000 files: - - [0xC8C0A0, "c"] - - [0xC8C0E0, "c"] - - [0xC8C3F0, "c"] + - [0xC8C0A0, c] + - [0xC8C0E0, c] + - [0xC8C3F0, c] - [0xC8C460, "bin"] - [0xC8DBA0, "bin"] # rodata - name: world/area_kzn/kzn_19/ @@ -5616,7 +5618,7 @@ segments: start: 0xC8DBB0 vram: 0x80240000 files: - - [0xC8DBB0, "c"] + - [0xC8DBB0, c] - [0xC8F8E0, "bin"] - [0xC8FA40, "bin"] - [0xC90B10, "bin"] @@ -5632,8 +5634,8 @@ segments: start: 0xC95F30 vram: 0x80240000 files: - - [0xC95F30, "c"] - - [0xC96240, "c"] + - [0xC95F30, c] + - [0xC96240, c] - [0xC969F0, "bin"] - [0xC97600, "bin"] - [0xC9A1F0, "bin"] # rodata @@ -5643,8 +5645,8 @@ segments: start: 0xC9A200 vram: 0x80240000 files: - - [0xC9A200, "c"] - - [0xC9A540, "c"] + - [0xC9A200, c] + - [0xC9A540, c] - [0xC9A590, "bin"] - [0xC9A650, "bin"] - [0xC9B120, "bin"] @@ -5655,8 +5657,8 @@ segments: start: 0xC9C300 vram: 0x80240000 files: - - [0xC9C300, "c"] - - [0xC9C610, "c"] + - [0xC9C300, c] + - [0xC9C610, c] - [0xC9C920, "bin"] - [0xC9C9B0, "bin"] - [0xC9D020, "bin"] @@ -5667,9 +5669,9 @@ segments: start: 0xC9DF20 vram: 0x80240000 files: - - [0xC9DF20, "c"] - - [0xC9DF60, "c"] - - [0xC9EE30, "c"] + - [0xC9DF20, c] + - [0xC9DF60, c] + - [0xC9EE30, c] - [0xC9F300, "bin"] - [0xC9F5E0, "bin"] - [0xCA3D50, "bin"] @@ -5684,8 +5686,8 @@ segments: start: 0xCA72A0 vram: 0x80240000 files: - - [0xCA72A0, "c"] - - [0xCA72E0, "c"] + - [0xCA72A0, c] + - [0xCA72E0, c] - [0xCA78D0, "bin"] - [0xCA8150, "bin"] - [0xCAC170, "bin"] @@ -5696,8 +5698,8 @@ segments: start: 0xCAC1F0 vram: 0x80240000 files: - - [0xCAC1F0, "c"] - - [0xCAC5D0, "c"] + - [0xCAC1F0, c] + - [0xCAC5D0, c] - [0xCAC930, "bin"] - [0xCACAC0, "bin"] - [0xCAD410, "bin"] @@ -5709,10 +5711,10 @@ segments: start: 0xCAED40 vram: 0x80240000 files: - - [0xCAED40, "c"] - - [0xCAFA80, "c"] - - [0xCAFAC0, "c"] - - [0xCB0B80, "c"] + - [0xCAED40, c] + - [0xCAFA80, c] + - [0xCAFAC0, c] + - [0xCB0B80, c] - [0xCB0C20, "bin"] - [0xCB1BF0, "bin"] - [0xCB3C80, "bin"] @@ -5724,10 +5726,10 @@ segments: start: 0xCB5000 vram: 0x80240000 files: - - [0xCB5000, "c"] - - [0xCB5040, "c"] - - [0xCB50E0, "c"] - - [0xCB5320, "c"] + - [0xCB5000, c] + - [0xCB5040, c] + - [0xCB50E0, c] + - [0xCB5320, c] - [0xCB6820, "bin"] - [0xCB7010, "bin"] - [0xCB7880, "bin"] @@ -5739,11 +5741,11 @@ segments: start: 0xCB9200 vram: 0x80240000 files: - - [0xCB9200, "c"] - - [0xCB9240, "c"] - - [0xCB9280, "c"] - - [0xCB96B0, "c"] - - [0xCBA430, "c"] + - [0xCB9200, c] + - [0xCB9240, c] + - [0xCB9280, c] + - [0xCB96B0, c] + - [0xCBA430, c] - [0xCBA670, "bin"] - [0xCBA830, "bin"] - [0xCBA880, "bin"] @@ -5759,7 +5761,7 @@ segments: start: 0xCBDCD0 vram: 0x80240000 files: - - [0xCBDCD0, "c"] + - [0xCBDCD0, c] - [0xCBDFF0, "bin"] - [0xCBF790, "bin"] - [0xCC0DC0, "bin"] @@ -5771,8 +5773,8 @@ segments: start: 0xCC0E30 vram: 0x80240000 files: - - [0xCC0E30, "c"] - - [0xCC0E70, "c"] + - [0xCC0E30, c] + - [0xCC0E70, c] - [0xCC1520, "bin"] - [0xCC16A0, "bin"] - [0xCC1C60, "bin"] @@ -5783,9 +5785,9 @@ segments: start: 0xCC3810 vram: 0x80240000 files: - - [0xCC3810, "c"] - - [0xCC3850, "c"] - - [0xCC6DE0, "c"] + - [0xCC3810, c] + - [0xCC3850, c] + - [0xCC6DE0, c] - [0xCC6E80, "bin"] - [0xCC7160, "bin"] - [0xCC7250, "bin"] @@ -5798,9 +5800,9 @@ segments: start: 0xCCB310 vram: 0x80240000 files: - - [0xCCB310, "c"] - - [0xCCBE20, "c"] - - [0xCCD670, "c"] + - [0xCCB310, c] + - [0xCCBE20, c] + - [0xCCD670, c] - [0xCCD6A0, "bin"] - [0xCCDF10, "bin"] - [0xCCF7D0, "bin"] @@ -5826,11 +5828,11 @@ segments: start: 0xCD1E30 vram: 0x80240000 files: - - [0xCD1E30, "c"] - - [0xCD1E70, "c"] - - [0xCD1F10, "c"] - - [0xCD2C80, "c"] - - [0xCD4770, "c"] + - [0xCD1E30, c] + - [0xCD1E70, c] + - [0xCD1F10, c] + - [0xCD2C80, c] + - [0xCD4770, c] - [0xCD47A0, "bin"] - [0xCD5530, "bin"] - [0xCD5E40, "bin"] @@ -5844,9 +5846,9 @@ segments: start: 0xCD72E0 vram: 0x80240000 files: - - [0xCD72E0, "c"] - - [0xCD7320, "c"] - - [0xCD7350, "c"] + - [0xCD72E0, c] + - [0xCD7320, c] + - [0xCD7350, c] - [0xCDA500, "bin"] - [0xCDB2B0, "bin"] - [0xCDC560, "bin"] @@ -5859,9 +5861,9 @@ segments: start: 0xCDC6A0 vram: 0x80240000 files: - - [0xCDC6A0, "c"] - - [0xCDCBD0, "c"] - - [0xCDCC30, "c"] + - [0xCDC6A0, c] + - [0xCDCBD0, c] + - [0xCDCC30, c] - [0xCDCE70, "bin"] - [0xCDCF60, "bin"] - [0xCDD530, "bin"] @@ -5873,7 +5875,7 @@ segments: start: 0xCE36F0 vram: 0x80240000 files: - - [0xCE36F0, "c"] + - [0xCE36F0, c] - [0xCE4030, "bin"] - [0xCE41B0, "bin"] - [0xCE41F0, "bin"] @@ -5886,8 +5888,8 @@ segments: start: 0xCE6700 vram: 0x80240000 files: - - [0xCE6700, "c"] - - [0xCE7240, "c"] + - [0xCE6700, c] + - [0xCE7240, c] - [0xCE73F0, "bin"] - [0xCE7EC0, "bin"] - [0xCEC210, "bin"] # rodata @@ -5898,9 +5900,9 @@ segments: start: 0xCEC240 vram: 0x80240000 files: - - [0xCEC240, "c"] - - [0xCEC280, "c"] - - [0xCEC290, "c"] + - [0xCEC240, c] + - [0xCEC280, c] + - [0xCEC290, c] - [0xCEC4D0, "bin"] - [0xCEC760, "bin"] - [0xCED050, "bin"] @@ -5913,8 +5915,8 @@ segments: start: 0xCEE260 vram: 0x80240000 files: - - [0xCEE260, "c"] - - [0xCEE2A0, "c"] + - [0xCEE260, c] + - [0xCEE2A0, c] - [0xCEEF30, "bin"] - [0xCEF540, "bin"] - [0xCF0800, "bin"] @@ -5926,9 +5928,9 @@ segments: start: 0xCF0940 vram: 0x80240000 files: - - [0xCF0940, "c"] - - [0xCF0980, "c"] - - [0xCF0BC0, "c"] + - [0xCF0940, c] + - [0xCF0980, c] + - [0xCF0BC0, c] - [0xCF0ED0, "bin"] - [0xCF1680, "bin"] - [0xCF2AF0, "bin"] @@ -5940,10 +5942,10 @@ segments: start: 0xCF2BD0 vram: 0x80240000 files: - - [0xCF2BD0, "c"] - - [0xCF2C10, "c"] - - [0xCF4BC0, "c"] - - [0xCF4E00, "c"] + - [0xCF2BD0, c] + - [0xCF2C10, c] + - [0xCF4BC0, c] + - [0xCF4E00, c] - [0xCF4EA0, "bin"] - [0xCF6860, "bin"] - [0xCF68B0, "bin"] @@ -5957,8 +5959,8 @@ segments: start: 0xCF7B70 vram: 0x80240000 files: - - [0xCF7B70, "c"] - - [0xCF7E80, "c"] + - [0xCF7B70, c] + - [0xCF7E80, c] - [0xCF9AC0, "bin"] - [0xCF9BC0, "bin"] - [0xD01D90, "bin"] @@ -5971,8 +5973,8 @@ segments: start: 0xD05730 vram: 0x80240000 files: - - [0xD05730, "c"] - - [0xD05F60, "c"] + - [0xD05730, c] + - [0xD05F60, c] - [0xD072F0, "bin"] - [0xD07440, "bin"] - [0xD09570, "bin"] @@ -5987,7 +5989,7 @@ segments: start: 0xD110C0 vram: 0x80240000 files: - - [0xD110C0, "c"] + - [0xD110C0, c] - [0xD119E0, "bin"] - [0xD11A70, "bin"] - [0xD11D40, "bin"] @@ -5999,9 +6001,9 @@ segments: start: 0xD135D0 vram: 0x80240000 files: - - [0xD135D0, "c"] - - [0xD13810, "c"] - - [0xD138E0, "c"] + - [0xD135D0, c] + - [0xD13810, c] + - [0xD138E0, c] - [0xD13CD0, "bin"] - [0xD13D80, "bin"] - [0xD15010, "bin"] @@ -6015,7 +6017,7 @@ segments: start: 0xD187E0 vram: 0x80240000 files: - - [0xD187E0, "c"] + - [0xD187E0, c] - [0xD1A520, "bin"] - [0xD1A5B0, "bin"] - [0xD1A890, "bin"] @@ -6029,8 +6031,8 @@ segments: start: 0xD1FE90 vram: 0x80240000 files: - - [0xD1FE90, "c"] - - [0xD203E0, "c"] + - [0xD1FE90, c] + - [0xD203E0, c] - [0xD224B0, "bin"] - [0xD22560, "bin"] - [0xD23E50, "bin"] @@ -6044,7 +6046,7 @@ segments: start: 0xD2BD30 vram: 0x80240000 files: - - [0xD2BD30, "c"] + - [0xD2BD30, c] - [0xD2DD30, "bin"] - [0xD2DDC0, "bin"] - [0xD2E0B0, "bin"] @@ -6058,8 +6060,8 @@ segments: start: 0xD2FC80 vram: 0x80240000 files: - - [0xD2FC80, "c"] - - [0xD309C0, "c"] + - [0xD2FC80, c] + - [0xD309C0, c] - [0xD31430, "bin"] - [0xD314C0, "bin"] - [0xD31E80, "bin"] @@ -6072,7 +6074,7 @@ segments: start: 0xD362F0 vram: 0x80240000 files: - - [0xD362F0, "c"] + - [0xD362F0, c] - [0xD366F0, "bin"] - [0xD36780, "bin"] - [0xD369A0, "bin"] @@ -6083,8 +6085,8 @@ segments: start: 0xD37800 vram: 0x80240000 files: - - [0xD37800, "c"] - - [0xD37BD0, "c"] + - [0xD37800, c] + - [0xD37BD0, c] - [0xD384A0, "bin"] - [0xD38550, "bin"] - [0xD38840, "bin"] @@ -6097,11 +6099,11 @@ segments: start: 0xD3A5D0 vram: 0x80240000 files: - - [0xD3A5D0, "c"] - - [0xD3A610, "c"] - - [0xD3A850, "c"] - - [0xD3A930, "c"] - - [0xD3ADA0, "c"] + - [0xD3A5D0, c] + - [0xD3A610, c] + - [0xD3A850, c] + - [0xD3A930, c] + - [0xD3ADA0, c] - [0xD3C740, "bin"] - [0xD3C850, "bin"] - [0xD3D900, "bin"] @@ -6116,8 +6118,8 @@ segments: start: 0xD4BA20 vram: 0x80240000 files: - - [0xD4BA20, "c"] - - [0xD4BAB0, "c"] + - [0xD4BA20, c] + - [0xD4BAB0, c] - [0xD4BDC0, "bin"] - [0xD4BE40, "bin"] - [0xD4BFE0, "bin"] @@ -6131,8 +6133,8 @@ segments: start: 0xD4D040 vram: 0x80240000 files: - - [0xD4D040, "c"] - - [0xD4D060, "c"] + - [0xD4D040, c] + - [0xD4D060, c] - [0xD4E3F0, "bin"] - [0xD4E500, "bin"] - [0xD4EF50, "bin"] @@ -6145,8 +6147,8 @@ segments: start: 0xD4FFF0 vram: 0x80240000 files: - - [0xD4FFF0, "c"] - - [0xD50010, "c"] + - [0xD4FFF0, c] + - [0xD50010, c] - [0xD51650, "bin"] - [0xD51720, "bin"] - [0xD52A80, "bin"] @@ -6159,8 +6161,8 @@ segments: start: 0xD53CB0 vram: 0x80240000 files: - - [0xD53CB0, "c"] - - [0xD53CD0, "c"] + - [0xD53CB0, c] + - [0xD53CD0, c] - [0xD53E60, "bin"] - [0xD53F10, "bin"] - [0xD543C0, "bin"] @@ -6172,9 +6174,9 @@ segments: start: 0xD54690 vram: 0x80240000 files: - - [0xD54690, "c"] - - [0xD546B0, "c"] - - [0xD54840, "c"] + - [0xD54690, c] + - [0xD546B0, c] + - [0xD54840, c] - [0xD54FD0, "bin"] - [0xD55080, "bin"] - [0xD554E0, "bin"] @@ -6187,8 +6189,8 @@ segments: start: 0xD55BB0 vram: 0x80240000 files: - - [0xD55BB0, "c"] - - [0xD55BD0, "c"] + - [0xD55BB0, c] + - [0xD55BD0, c] - [0xD56D90, "bin"] - [0xD56E20, "bin"] - [0xD57420, "bin"] # rodata @@ -6199,7 +6201,7 @@ segments: start: 0xD57430 vram: 0x80240000 files: - - [0xD57430, "c"] + - [0xD57430, c] - [0xD58380, "bin"] - [0xD58410, "bin"] - [0xD58860, "bin"] # rodata @@ -6210,8 +6212,8 @@ segments: start: 0xD58890 vram: 0x80240000 files: - - [0xD58890, "c"] - - [0xD588B0, "c"] + - [0xD58890, c] + - [0xD588B0, c] - [0xD59EE0, "bin"] - [0xD59F80, "bin"] - [0xD5F2A0, "bin"] # rodata @@ -6221,8 +6223,8 @@ segments: start: 0xD5F2B0 vram: 0x80240000 files: - - [0xD5F2B0, "c"] - - [0xD5F2D0, "c"] + - [0xD5F2B0, c] + - [0xD5F2D0, c] - [0xD60960, "bin"] - [0xD60A00, "bin"] - [0xD614A0, "bin"] # rodata @@ -6232,8 +6234,8 @@ segments: start: 0xD61500 vram: 0x80240000 files: - - [0xD61500, "c"] - - [0xD61520, "c"] + - [0xD61500, c] + - [0xD61520, c] - [0xD626E0, "bin"] - [0xD62770, "bin"] - [0xD62B10, "bin"] @@ -6245,7 +6247,7 @@ segments: start: 0xD62D10 vram: 0x80240000 files: - - [0xD62D10, "c"] + - [0xD62D10, c] - [0xD63F20, "bin"] - [0xD63FB0, "bin"] - [0xD645B0, "bin"] # rodata @@ -6256,8 +6258,8 @@ segments: start: 0xD645E0 vram: 0x80240000 files: - - [0xD645E0, "c"] - - [0xD64600, "c"] + - [0xD645E0, c] + - [0xD64600, c] - [0xD65BC0, "bin"] - [0xD65C70, "bin"] - [0xD66880, "bin"] @@ -6268,8 +6270,8 @@ segments: start: 0xD67D00 vram: 0x80240000 files: - - [0xD67D00, "c"] - - [0xD67D20, "c"] + - [0xD67D00, c] + - [0xD67D20, c] - [0xD68EE0, "bin"] - [0xD68F80, "bin"] - [0xD69630, "bin"] @@ -6281,8 +6283,8 @@ segments: start: 0xD69810 vram: 0x80240000 files: - - [0xD69810, "c"] - - [0xD69830, "c"] + - [0xD69810, c] + - [0xD69830, c] - [0xD69850, "bin"] - [0xD698E0, "bin"] - [0xD69AD0, "bin"] @@ -6294,8 +6296,8 @@ segments: start: 0xD69B20 vram: 0x80240000 files: - - [0xD69B20, "c"] - - [0xD69B40, "c"] + - [0xD69B20, c] + - [0xD69B40, c] - [0xD6AA40, "bin"] - [0xD6AAF0, "bin"] - [0xD6B610, "bin"] # rodata @@ -6305,8 +6307,8 @@ segments: start: 0xD6B620 vram: 0x80240000 files: - - [0xD6B620, "c"] - - [0xD6B640, "c"] + - [0xD6B620, c] + - [0xD6B640, c] - [0xD6C540, "bin"] - [0xD6C5F0, "bin"] - [0xD6CF60, "bin"] @@ -6317,8 +6319,8 @@ segments: start: 0xD6E9B0 vram: 0x80240000 files: - - [0xD6E9B0, "c"] - - [0xD6E9D0, "c"] + - [0xD6E9B0, c] + - [0xD6E9D0, c] - [0xD70360, "bin"] - [0xD70400, "bin"] - [0xD70A70, "bin"] @@ -6329,8 +6331,8 @@ segments: start: 0xD763A0 vram: 0x80240000 files: - - [0xD763A0, "c"] - - [0xD763C0, "c"] + - [0xD763A0, c] + - [0xD763C0, c] - [0xD772C0, "bin"] - [0xD77390, "bin"] - [0xD77F00, "bin"] # rodata @@ -6340,8 +6342,8 @@ segments: start: 0xD77F20 vram: 0x80240000 files: - - [0xD77F20, "c"] - - [0xD77F40, "c"] + - [0xD77F20, c] + - [0xD77F40, c] - [0xD78040, "bin"] - [0xD780E0, "bin"] - [0xD78540, "bin"] @@ -6352,8 +6354,8 @@ segments: start: 0xD78880 vram: 0x80240000 files: - - [0xD78880, "c"] - - [0xD788A0, "c"] + - [0xD78880, c] + - [0xD788A0, c] - [0xD78B50, "bin"] - [0xD78BF0, "bin"] - [0xD796B0, "bin"] @@ -6364,7 +6366,7 @@ segments: start: 0xD799F0 vram: 0x80240000 files: - - [0xD799F0, "c"] + - [0xD799F0, c] - [0xD7AC00, "bin"] - [0xD7AC90, "bin"] - [0xD7B080, "bin"] @@ -6376,7 +6378,7 @@ segments: start: 0xD7B2A0 vram: 0x80240000 files: - - [0xD7B2A0, "c"] + - [0xD7B2A0, c] - [0xD7C4B0, "bin"] - [0xD7C540, "bin"] - [0xD7C930, "bin"] @@ -6388,8 +6390,8 @@ segments: start: 0xD7CB50 vram: 0x80240000 files: - - [0xD7CB50, "c"] - - [0xD7CB70, "c"] + - [0xD7CB50, c] + - [0xD7CB70, c] - [0xD7DDD0, "bin"] - [0xD7DE90, "bin"] - [0xD7E9B0, "bin"] @@ -6400,9 +6402,9 @@ segments: start: 0xD7ED60 vram: 0x80240000 files: - - [0xD7ED60, "c"] - - [0xD7ED80, "c"] - - [0xD7F270, "c"] + - [0xD7ED60, c] + - [0xD7ED80, c] + - [0xD7F270, c] - [0xD7FE10, "bin"] - [0xD7FEC0, "bin"] - [0xD80E20, "bin"] @@ -6415,8 +6417,8 @@ segments: start: 0xD86A00 vram: 0x80240000 files: - - [0xD86A00, "c"] - - [0xD86A20, "c"] + - [0xD86A00, c] + - [0xD86A20, c] - [0xD87240, "bin"] - [0xD87DF0, "bin"] - [0xD896B0, "bin"] # rodata @@ -6427,8 +6429,8 @@ segments: start: 0xD896E0 vram: 0x80240000 files: - - [0xD896E0, "c"] - - [0xD89700, "c"] + - [0xD896E0, c] + - [0xD89700, c] - [0xD8A770, "bin"] - [0xD8A820, "bin"] - [0xD8B060, "bin"] @@ -6439,8 +6441,8 @@ segments: start: 0xD8B3B0 vram: 0x80240000 files: - - [0xD8B3B0, "c"] - - [0xD8B3D0, "c"] + - [0xD8B3B0, c] + - [0xD8B3D0, c] - [0xD8C3B0, "bin"] - [0xD8C470, "bin"] - [0xD8D130, "bin"] @@ -6451,9 +6453,9 @@ segments: start: 0xD8D250 vram: 0x80240000 files: - - [0xD8D250, "c"] - - [0xD8D270, "c"] - - [0xD8FBA0, "c"] + - [0xD8D250, c] + - [0xD8D270, c] + - [0xD8FBA0, c] - [0xD8FE60, "bin"] - [0xD8FF10, "bin"] - [0xD90700, "bin"] @@ -6466,7 +6468,7 @@ segments: start: 0xD91700 vram: 0x80240000 files: - - [0xD91700, "c"] + - [0xD91700, c] - [0xD92650, "bin"] - [0xD926F0, "bin"] - [0xD92F10, "bin"] # rodata @@ -6477,7 +6479,7 @@ segments: start: 0xD92F40 vram: 0x80240000 files: - - [0xD92F40, "c"] + - [0xD92F40, c] - [0xD94760, "bin"] - [0xD94800, "bin"] - [0xD95420, "bin"] # rodata @@ -6489,7 +6491,7 @@ segments: start: 0xD955F0 vram: 0x80240000 files: - - [0xD955F0, "c"] + - [0xD955F0, c] - [0xD96CD0, "bin"] - [0xD96D70, "bin"] - [0xD97810, "bin"] # rodata @@ -6500,7 +6502,7 @@ segments: start: 0xD97890 vram: 0x80240000 files: - - [0xD97890, "c"] + - [0xD97890, c] - [0xD98F70, "bin"] - [0xD99010, "bin"] - [0xD99930, "bin"] # rodata @@ -6511,8 +6513,8 @@ segments: start: 0xD999B0 vram: 0x80240000 files: - - [0xD999B0, "c"] - - [0xD999D0, "c"] + - [0xD999B0, c] + - [0xD999D0, c] - [0xD9A8D0, "bin"] - [0xD9A970, "bin"] - [0xD9AE80, "bin"] @@ -6523,8 +6525,8 @@ segments: start: 0xD9AEF0 vram: 0x80240000 files: - - [0xD9AEF0, "c"] - - [0xD9B150, "c"] + - [0xD9AEF0, c] + - [0xD9B150, c] - [0xD9BB20, "bin"] - [0xD9BBA0, "bin"] - [0xD9BD50, "bin"] @@ -6538,8 +6540,8 @@ segments: start: 0xD9D4D0 vram: 0x80240000 files: - - [0xD9D4D0, "c"] - - [0xD9D510, "c"] + - [0xD9D4D0, c] + - [0xD9D510, c] - [0xDA0080, "bin"] - [0xDA0110, "bin"] - [0xDA0300, "bin"] @@ -6553,8 +6555,8 @@ segments: start: 0xDA5240 vram: 0x80240000 files: - - [0xDA5240, "c"] - - [0xDA5260, "c"] + - [0xDA5240, c] + - [0xDA5260, c] - [0xDA5AD0, "bin"] - [0xDA6050, "bin"] - [0xDA8190, "bin"] @@ -6565,8 +6567,8 @@ segments: start: 0xDAD400 vram: 0x80240000 files: - - [0xDAD400, "c"] - - [0xDAF240, "c"] + - [0xDAD400, c] + - [0xDAF240, c] - [0xDAF320, "bin"] - [0xDAF3E0, "bin"] - [0xDB20A0, "bin"] # rodata @@ -6580,7 +6582,7 @@ segments: start: 0xDB22C0 vram: 0x80240000 files: - - [0xDB22C0, "c"] + - [0xDB22C0, c] - [0xDB46C0, "bin"] - [0xDB4770, "bin"] - [0xDB7410, "bin"] @@ -6593,8 +6595,8 @@ segments: start: 0xDB7910 vram: 0x80240000 files: - - [0xDB7910, "c"] - - [0xDB8180, "c"] + - [0xDB7910, c] + - [0xDB8180, c] - [0xDB8440, "bin"] - [0xDB88E0, "bin"] - [0xDB9060, "bin"] @@ -6607,9 +6609,9 @@ segments: start: 0xDBD2B0 vram: 0x80240000 files: - - [0xDBD2B0, "c"] - - [0xDC01D0, "c"] - - [0xDC04D0, "c"] + - [0xDBD2B0, c] + - [0xDC01D0, c] + - [0xDC04D0, c] - [0xDC05B0, "bin"] - [0xDC0670, "bin"] - [0xDC0910, "bin"] @@ -6626,8 +6628,8 @@ segments: start: 0xDC43D0 vram: 0x80240000 files: - - [0xDC43D0, "c"] - - [0xDC4C40, "c"] + - [0xDC43D0, c] + - [0xDC4C40, c] - [0xDC51B0, "bin"] - [0xDC52F0, "bin"] - [0xDC8100, "bin"] @@ -6639,12 +6641,12 @@ segments: start: 0xDCCCD0 vram: 0x80240000 files: - - [0xDCCCD0, "c"] - - [0xDCCFA0, "c"] - - [0xDCD3B0, "c"] - - [0xDCD3F0, "c"] - - [0xDCD6B0, "c"] - - [0xDD02E0, "c"] + - [0xDCCCD0, c] + - [0xDCCFA0, c] + - [0xDCD3B0, c] + - [0xDCD3F0, c] + - [0xDCD6B0, c] + - [0xDD02E0, c] - [0xDD03C0, "bin"] - [0xDD0480, "bin"] - [0xDD0750, "bin"] @@ -6662,7 +6664,7 @@ segments: start: 0xDD79B0 vram: 0x80240000 files: - - [0xDD79B0, "c"] + - [0xDD79B0, c] - [0xDD8220, "bin"] - [0xDD8640, "bin"] - [0xDD8A60, "bin"] @@ -6675,8 +6677,8 @@ segments: start: 0xDDC830 vram: 0x80240000 files: - - [0xDDC830, "c"] - - [0xDDCFC0, "c"] + - [0xDDC830, c] + - [0xDDCFC0, c] - [0xDDDD00, "bin"] - [0xDDDD90, "bin"] - [0xDDEE80, "bin"] @@ -6687,8 +6689,8 @@ segments: start: 0xDDF310 vram: 0x80240000 files: - - [0xDDF310, "c"] - - [0xDDF730, "c"] + - [0xDDF310, c] + - [0xDDF730, c] - [0xDDF7D0, "bin"] - [0xDDF960, "bin"] - [0xDDFB60, "bin"] @@ -6699,9 +6701,9 @@ segments: start: 0xDE2490 vram: 0x80240000 files: - - [0xDE2490, "c"] - - [0xDE2710, "c"] - - [0xDE36C0, "c"] + - [0xDE2490, c] + - [0xDE2710, c] + - [0xDE36C0, c] - [0xDE3980, "bin"] - [0xDE3A10, "bin"] - [0xDE3F70, "bin"] @@ -6713,8 +6715,8 @@ segments: start: 0xDE56B0 vram: 0x80240000 files: - - [0xDE56B0, "c"] - - [0xDE5810, "c"] + - [0xDE56B0, c] + - [0xDE5810, c] - [0xDE5C70, "bin"] - [0xDE5D00, "bin"] - [0xDE5FA0, "bin"] @@ -6725,7 +6727,7 @@ segments: start: 0xDE8770 vram: 0x80240000 files: - - [0xDE8770, "c"] + - [0xDE8770, c] - [0xDE8F70, "bin"] - [0xDE9670, "bin"] - [0xDEBEA0, "bin"] # rodata @@ -6736,7 +6738,7 @@ segments: start: 0xDEBED0 vram: 0x80240000 files: - - [0xDEBED0, "c"] + - [0xDEBED0, c] - [0xDEC4D0, "bin"] - [0xDEC600, "bin"] - [0xDEEC30, "bin"] @@ -6747,8 +6749,8 @@ segments: start: 0xDEEEA0 vram: 0x80240000 files: - - [0xDEEEA0, "c"] - - [0xDEF400, "c"] + - [0xDEEEA0, c] + - [0xDEF400, c] - [0xDF25B0, "bin"] - [0xDF29A0, "bin"] - [0xDF2C90, "bin"] @@ -6764,10 +6766,10 @@ segments: start: 0xDF6A00 vram: 0x80240000 files: - - [0xDF6A00, "c"] - - [0xDF6A20, "c"] - - [0xDF9300, "c"] - - [0xDF9510, "c"] + - [0xDF6A00, c] + - [0xDF6A20, c] + - [0xDF9300, c] + - [0xDF9510, c] - [0xDF9540, "bin"] - [0xDFB0B0, "bin"] - [0xDFE5B0, "bin"] @@ -6781,11 +6783,11 @@ segments: start: 0xE05360 vram: 0x80240000 files: - - [0xE05360, "c"] - - [0xE05370, "c"] - - [0xE05390, "c"] - - [0xE07C20, "c"] - - [0xE08050, "c"] + - [0xE05360, c] + - [0xE05370, c] + - [0xE05390, c] + - [0xE07C20, c] + - [0xE08050, c] - [0xE08350, "bin"] - [0xE08470, "bin"] - [0xE0B5F0, "bin"] @@ -6799,8 +6801,8 @@ segments: start: 0xE0E7A0 vram: 0x80240000 files: - - [0xE0E7A0, "c"] - - [0xE0F980, "c"] + - [0xE0E7A0, c] + - [0xE0F980, c] - [0xE0FF60, "bin"] - [0xE111A0, "bin"] - [0xE123E0, "bin"] @@ -6813,8 +6815,8 @@ segments: start: 0xE12760 vram: 0x80240000 files: - - [0xE12760, "c"] - - [0xE12930, "c"] + - [0xE12760, c] + - [0xE12930, c] - [0xE13F10, "bin"] - [0xE141D0, "bin"] - [0xE15440, "bin"] @@ -6826,8 +6828,8 @@ segments: start: 0xE15D80 vram: 0x80240000 files: - - [0xE15D80, "c"] - - [0xE18150, "c"] + - [0xE15D80, c] + - [0xE18150, c] - [0xE18180, "bin"] - [0xE183D0, "bin"] - [0xE1E020, "bin"] @@ -6847,7 +6849,7 @@ segments: start: 0xE1E460 vram: 0x80240000 files: - - [0xE1E460, "c"] + - [0xE1E460, c] - [0xE1EC20, "bin"] - [0xE20110, "bin"] - type: code @@ -6855,14 +6857,14 @@ segments: start: 0xE20EB0 vram: 0x802B7000 files: - - [0xe20eb0, "c", "code_e20eb0"] + - [0xe20eb0, c, "code_e20eb0"] - [0xE215C0, "bin"] - type: code overlay: True start: 0xE21870 vram: 0x802B7000 files: - - [0xE21870, "c"] + - [0xE21870, c] - [0xE21EB0, "bin"] - [0xE225B0, "bin"] - [0xF007C0, "bin", "Battle_Fanfare_02"] # BGM start From b78de19ffb2103c31c2f7c48a664f3ec28f2bf72 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Mon, 9 Nov 2020 22:48:47 -0500 Subject: [PATCH 25/52] random progress --- asm/nonmatchings/code_FBE10/func_802D7BA4.s | 94 ------------------- .../code_fee30_len_2d60/func_802DDA60.s | 13 --- include/variables.h | 1 + src/code_FBE10.c | 31 +++++- src/code_fee30_len_2d60.c | 5 +- src/si.c | 2 +- tools/assist.py | 18 ++++ undefined_syms.txt | 3 + 8 files changed, 57 insertions(+), 110 deletions(-) delete mode 100644 asm/nonmatchings/code_FBE10/func_802D7BA4.s delete mode 100644 asm/nonmatchings/code_fee30_len_2d60/func_802DDA60.s diff --git a/asm/nonmatchings/code_FBE10/func_802D7BA4.s b/asm/nonmatchings/code_FBE10/func_802D7BA4.s deleted file mode 100644 index 93c4893800..0000000000 --- a/asm/nonmatchings/code_FBE10/func_802D7BA4.s +++ /dev/null @@ -1,94 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802D7BA4 -/* FC554 802D7BA4 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* FC558 802D7BA8 AFB00018 */ sw $s0, 0x18($sp) -/* FC55C 802D7BAC 0080802D */ daddu $s0, $a0, $zero -/* FC560 802D7BB0 AFBF0034 */ sw $ra, 0x34($sp) -/* FC564 802D7BB4 AFB60030 */ sw $s6, 0x30($sp) -/* FC568 802D7BB8 AFB5002C */ sw $s5, 0x2c($sp) -/* FC56C 802D7BBC AFB40028 */ sw $s4, 0x28($sp) -/* FC570 802D7BC0 AFB30024 */ sw $s3, 0x24($sp) -/* FC574 802D7BC4 AFB20020 */ sw $s2, 0x20($sp) -/* FC578 802D7BC8 AFB1001C */ sw $s1, 0x1c($sp) -/* FC57C 802D7BCC 8E130088 */ lw $s3, 0x88($s0) -/* FC580 802D7BD0 8E14008C */ lw $s4, 0x8c($s0) -/* FC584 802D7BD4 8E150090 */ lw $s5, 0x90($s0) -/* FC588 802D7BD8 8E160094 */ lw $s6, 0x94($s0) -/* FC58C 802D7BDC 8E120098 */ lw $s2, 0x98($s0) -/* FC590 802D7BE0 8E11009C */ lw $s1, 0x9c($s0) -/* FC594 802D7BE4 10A00012 */ beqz $a1, .L802D7C30 -/* FC598 802D7BE8 27A50010 */ addiu $a1, $sp, 0x10 -/* FC59C 802D7BEC 24040001 */ addiu $a0, $zero, 1 -/* FC5A0 802D7BF0 27A60014 */ addiu $a2, $sp, 0x14 -/* FC5A4 802D7BF4 0C04DF70 */ jal func_80137DC0 -/* FC5A8 802D7BF8 AE110070 */ sw $s1, 0x70($s0) -/* FC5AC 802D7BFC 24040001 */ addiu $a0, $zero, 1 -/* FC5B0 802D7C00 0000282D */ daddu $a1, $zero, $zero -/* FC5B4 802D7C04 0260302D */ daddu $a2, $s3, $zero -/* FC5B8 802D7C08 C7A00014 */ lwc1 $f0, 0x14($sp) -/* FC5BC 802D7C0C 4600008D */ trunc.w.s $f2, $f0 -/* FC5C0 802D7C10 E6020074 */ swc1 $f2, 0x74($s0) -/* FC5C4 802D7C14 0C04DF93 */ jal func_80137E4C -/* FC5C8 802D7C18 0280382D */ daddu $a3, $s4, $zero -/* FC5CC 802D7C1C 24040001 */ addiu $a0, $zero, 1 -/* FC5D0 802D7C20 0080282D */ daddu $a1, $a0, $zero -/* FC5D4 802D7C24 02A0302D */ daddu $a2, $s5, $zero -/* FC5D8 802D7C28 0C04DF93 */ jal func_80137E4C -/* FC5DC 802D7C2C 02C0382D */ daddu $a3, $s6, $zero -.L802D7C30: -/* FC5E0 802D7C30 24040001 */ addiu $a0, $zero, 1 -/* FC5E4 802D7C34 27A50010 */ addiu $a1, $sp, 0x10 -/* FC5E8 802D7C38 0C04DF70 */ jal func_80137DC0 -/* FC5EC 802D7C3C 27A60014 */ addiu $a2, $sp, 0x14 -/* FC5F0 802D7C40 8E020074 */ lw $v0, 0x74($s0) -/* FC5F4 802D7C44 8E030070 */ lw $v1, 0x70($s0) -/* FC5F8 802D7C48 00521023 */ subu $v0, $v0, $s2 -/* FC5FC 802D7C4C 00430018 */ mult $v0, $v1 -/* FC600 802D7C50 00001812 */ mflo $v1 -/* FC604 802D7C54 00000000 */ nop -/* FC608 802D7C58 16200002 */ bnez $s1, .L802D7C64 -/* FC60C 802D7C5C 0071001A */ div $zero, $v1, $s1 -/* FC610 802D7C60 0007000D */ break 7 -.L802D7C64: -/* FC614 802D7C64 2401FFFF */ addiu $at, $zero, -1 -/* FC618 802D7C68 16210004 */ bne $s1, $at, .L802D7C7C -/* FC61C 802D7C6C 3C018000 */ lui $at, 0x8000 -/* FC620 802D7C70 14610002 */ bne $v1, $at, .L802D7C7C -/* FC624 802D7C74 00000000 */ nop -/* FC628 802D7C78 0006000D */ break 6 -.L802D7C7C: -/* FC62C 802D7C7C 00001012 */ mflo $v0 -/* FC630 802D7C80 00521021 */ addu $v0, $v0, $s2 -/* FC634 802D7C84 44821000 */ mtc1 $v0, $f2 -/* FC638 802D7C88 00000000 */ nop -/* FC63C 802D7C8C 468010A0 */ cvt.s.w $f2, $f2 -/* FC640 802D7C90 44051000 */ mfc1 $a1, $f2 -/* FC644 802D7C94 0C04DF69 */ jal func_80137DA4 -/* FC648 802D7C98 2404000C */ addiu $a0, $zero, 0xc -/* FC64C 802D7C9C 8E020070 */ lw $v0, 0x70($s0) -/* FC650 802D7CA0 2442FFFF */ addiu $v0, $v0, -1 -/* FC654 802D7CA4 04400003 */ bltz $v0, .L802D7CB4 -/* FC658 802D7CA8 AE020070 */ sw $v0, 0x70($s0) -/* FC65C 802D7CAC 080B5F34 */ j .L802D7CD0 -/* FC660 802D7CB0 0000102D */ daddu $v0, $zero, $zero -.L802D7CB4: -/* FC664 802D7CB4 44921000 */ mtc1 $s2, $f2 -/* FC668 802D7CB8 00000000 */ nop -/* FC66C 802D7CBC 468010A0 */ cvt.s.w $f2, $f2 -/* FC670 802D7CC0 44051000 */ mfc1 $a1, $f2 -/* FC674 802D7CC4 0C04DF69 */ jal func_80137DA4 -/* FC678 802D7CC8 2404000C */ addiu $a0, $zero, 0xc -/* FC67C 802D7CCC 24020002 */ addiu $v0, $zero, 2 -.L802D7CD0: -/* FC680 802D7CD0 8FBF0034 */ lw $ra, 0x34($sp) -/* FC684 802D7CD4 8FB60030 */ lw $s6, 0x30($sp) -/* FC688 802D7CD8 8FB5002C */ lw $s5, 0x2c($sp) -/* FC68C 802D7CDC 8FB40028 */ lw $s4, 0x28($sp) -/* FC690 802D7CE0 8FB30024 */ lw $s3, 0x24($sp) -/* FC694 802D7CE4 8FB20020 */ lw $s2, 0x20($sp) -/* FC698 802D7CE8 8FB1001C */ lw $s1, 0x1c($sp) -/* FC69C 802D7CEC 8FB00018 */ lw $s0, 0x18($sp) -/* FC6A0 802D7CF0 03E00008 */ jr $ra -/* FC6A4 802D7CF4 27BD0038 */ addiu $sp, $sp, 0x38 diff --git a/asm/nonmatchings/code_fee30_len_2d60/func_802DDA60.s b/asm/nonmatchings/code_fee30_len_2d60/func_802DDA60.s deleted file mode 100644 index e7f539e4ca..0000000000 --- a/asm/nonmatchings/code_fee30_len_2d60/func_802DDA60.s +++ /dev/null @@ -1,13 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802DDA60 -/* 100B50 802DDA60 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 100B54 802DDA64 AFBF0010 */ sw $ra, 0x10($sp) -/* 100B58 802DDA68 0C0B7BED */ jal func_802DEFB4 -/* 100B5C 802DDA6C 00000000 */ nop -/* 100B60 802DDA70 0C0B6FF0 */ jal func_802DBFC0 -/* 100B64 802DDA74 00000000 */ nop -/* 100B68 802DDA78 8FBF0010 */ lw $ra, 0x10($sp) -/* 100B6C 802DDA7C 03E00008 */ jr $ra -/* 100B70 802DDA80 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/include/variables.h b/include/variables.h index 17fc8fb3d1..5377a30a3a 100644 --- a/include/variables.h +++ b/include/variables.h @@ -121,6 +121,7 @@ extern s32 D_800A0964; // Pause extern s32 gPauseMenuStrings[348]; +extern s32 gPauseMenuCursorTargetOpacity; extern s32 gGameState; extern s32 D_8009A650[1]; diff --git a/src/code_FBE10.c b/src/code_FBE10.c index 374adb7b5c..fb113c49b1 100644 --- a/src/code_FBE10.c +++ b/src/code_FBE10.c @@ -65,7 +65,36 @@ ApiStatus func_802D7B74(ScriptInstance* script, s32 isInitialCall) { return ApiStatus_DONE2; } -INCLUDE_ASM(s32, "code_FBE10", func_802D7BA4); +ApiStatus func_802D7BA4(ScriptInstance* script, s32 isInitialCall) { + s32 var1 = script->varTable[1]; + s32 var2 = script->varTable[2]; + s32 var3 = script->varTable[3]; + s32 var4 = script->varTable[4]; + s32 var5 = script->varTable[5]; + s32 var6 = script->varTable[6]; + s32 temp; + s32 t0; + f32 t1; + + if (isInitialCall) { + script->functionTemp[0].s = var6; + func_80137DC0(1, &t0, &t1); + script->functionTemp[1].s = t1; + func_80137E4C(1, 0, var1, var2); + func_80137E4C(1, 1, var3, var4); + } + + func_80137DC0(1, &t0, &t1); + temp = (script->functionTemp[1].s - var5) * script->functionTemp[0].s; + func_80137DA4(12, (temp / var6) + var5); + + script->functionTemp[0].s--; + if (script->functionTemp[0].s < 0) { + func_80137DA4(12, var5); + return ApiStatus_DONE2; + } + return ApiStatus_BLOCK; +} ApiStatus Spawn802D9D50(ScriptInstance* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; diff --git a/src/code_fee30_len_2d60.c b/src/code_fee30_len_2d60.c index f2996bcd25..c6f44f7130 100644 --- a/src/code_fee30_len_2d60.c +++ b/src/code_fee30_len_2d60.c @@ -54,7 +54,10 @@ INCLUDE_ASM(s32, "code_fee30_len_2d60", func_802DD89C); INCLUDE_ASM(s32, "code_fee30_len_2d60", func_802DD8F8); -INCLUDE_ASM(s32, "code_fee30_len_2d60", func_802DDA60); +void func_802DDA60(void) { + func_802DEFB4(); + func_802DBFC0(); +} s32 func_802DDA84(void) { return 0; diff --git a/src/si.c b/src/si.c index 2c06e25f40..884debba91 100644 --- a/src/si.c +++ b/src/si.c @@ -17,7 +17,7 @@ f32 fixed_var_to_float(Bytecode scriptVar) { } Bytecode float_to_fixed_var(f32 value) { - return (s32)(value * 1024.0f) - 230000000; + return (s32)(value * 1024.0f) + -230000000; } ApiStatus si_handle_return(ScriptInstance* script) { diff --git a/tools/assist.py b/tools/assist.py index 7318638f25..78151c3222 100755 --- a/tools/assist.py +++ b/tools/assist.py @@ -34,6 +34,10 @@ def get_all_s_files(): return ret +def get_symbol_length(sym_name): + return map_offsets[sym_name]["end"] - map_offsets[sym_name]["start"] + + def get_symbol_bytes(offsets, func): if func not in offsets or "start" not in offsets[func] or "end" not in offsets[func]: return None @@ -171,6 +175,18 @@ def do_query(query): i += 1 print() + +def do_cross_query(): + clusters = [] + + for sym_name in map_syms: + sym = map_syms[sym_name] + if get_symbol_length(sym_name) > 8: + cluster_match = False + for cluster in clusters: + pass # todo do + + parser = argparse.ArgumentParser(description="Tools to assist with decomp") parser.add_argument("query", help="function or file") parser.add_argument("--threshold", help="score threshold between 0 and 1 (higher is more restrictive)", type=float, default=0.95, required=False) @@ -191,4 +207,6 @@ if query_dir is not None: for f_name in files: do_query(f_name[:-2]) else: + if args.query == "cross": + do_cross_query() do_query(args.query) diff --git a/undefined_syms.txt b/undefined_syms.txt index 8ab053d88f..b1a9e4e7f7 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -145,6 +145,9 @@ D_800DC500 = 0x800DC500; D_8010F6D0 = 0x8010F6D0; gBackgroundImage = 0x80200000; + +gPauseMenuCursorTargetOpacity = 0x8024EFB0; + D_802C3000 = 0x802C3000; D_802DBD40 = 0x802DBD40; gCurrentPrintContext = 0x802DB260; From 3dab89bb72ca89eaa6758717ca2ae3816557b585 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Mon, 9 Nov 2020 22:51:52 -0500 Subject: [PATCH 26/52] asm update --- .../code_105700_len_2130/func_802E46BC.s | 2 +- asm/nonmatchings/code_135EE0/pause_interp_cursor.s | 8 ++++---- .../code_135EE0/pause_set_cursor_opacity.s | 4 ++-- .../code_a5dd0_len_114e0/delete_entity.s | 12 ++++++------ .../delete_entity_and_unload_data.s | 14 +++++++------- .../code_ef070_len_3400/func_802CD9F0.s | 6 +++--- asm/nonmatchings/si/si_execute_next_command.s | 8 ++++---- 7 files changed, 27 insertions(+), 27 deletions(-) diff --git a/asm/nonmatchings/code_105700_len_2130/func_802E46BC.s b/asm/nonmatchings/code_105700_len_2130/func_802E46BC.s index fcf27d10f7..16bfbf3007 100644 --- a/asm/nonmatchings/code_105700_len_2130/func_802E46BC.s +++ b/asm/nonmatchings/code_105700_len_2130/func_802E46BC.s @@ -22,4 +22,4 @@ glabel func_802E46BC /* 105F80 802E4700 8FB00010 */ lw $s0, 0x10($sp) /* 105F84 802E4704 03E00008 */ jr $ra /* 105F88 802E4708 27BD0018 */ addiu $sp, $sp, 0x18 -/* 105F8C 802E470C 00000000 */ nop +/* 105F8C 802E470C 00000000 */ nop diff --git a/asm/nonmatchings/code_135EE0/pause_interp_cursor.s b/asm/nonmatchings/code_135EE0/pause_interp_cursor.s index 05d3d97965..f0d7dab02a 100644 --- a/asm/nonmatchings/code_135EE0/pause_interp_cursor.s +++ b/asm/nonmatchings/code_135EE0/pause_interp_cursor.s @@ -51,8 +51,8 @@ glabel pause_interp_cursor /* 13625C 80242F1C 3C038025 */ lui $v1, 0x8025 /* 136260 80242F20 2463EFA0 */ addiu $v1, $v1, -0x1060 /* 136264 80242F24 8C620000 */ lw $v0, ($v1) -/* 136268 80242F28 3C048025 */ lui $a0, 0x8025 -/* 13626C 80242F2C 8C84EFB0 */ lw $a0, -0x1050($a0) +/* 136268 80242F28 3C048025 */ lui $a0, %hi(gPauseMenuCursorTargetOpacity) +/* 13626C 80242F2C 8C84EFB0 */ lw $a0, %lo(gPauseMenuCursorTargetOpacity)($a0) /* 136270 80242F30 00481021 */ addu $v0, $v0, $t0 /* 136274 80242F34 14800009 */ bnez $a0, .L80242F5C /* 136278 80242F38 AC620000 */ sw $v0, ($v1) @@ -77,6 +77,6 @@ glabel pause_interp_cursor .L80242F80: /* 1362C0 80242F80 240200FF */ addiu $v0, $zero, 0xff .L80242F84: -/* 1362C4 80242F84 3C018025 */ lui $at, 0x8025 +/* 1362C4 80242F84 3C018025 */ lui $at, %hi(gPauseMenuCursorTargetOpacity) /* 1362C8 80242F88 03E00008 */ jr $ra -/* 1362CC 80242F8C AC22EFB0 */ sw $v0, -0x1050($at) +/* 1362CC 80242F8C AC22EFB0 */ sw $v0, %lo(gPauseMenuCursorTargetOpacity)($at) diff --git a/asm/nonmatchings/code_135EE0/pause_set_cursor_opacity.s b/asm/nonmatchings/code_135EE0/pause_set_cursor_opacity.s index 73e48463f8..eaad7e22ff 100644 --- a/asm/nonmatchings/code_135EE0/pause_set_cursor_opacity.s +++ b/asm/nonmatchings/code_135EE0/pause_set_cursor_opacity.s @@ -2,6 +2,6 @@ .set noreorder # don't insert nops after branches glabel pause_set_cursor_opacity -/* 135EE0 80242BA0 3C018025 */ lui $at, 0x8025 +/* 135EE0 80242BA0 3C018025 */ lui $at, %hi(gPauseMenuCursorTargetOpacity) /* 135EE4 80242BA4 03E00008 */ jr $ra -/* 135EE8 80242BA8 AC24EFB0 */ sw $a0, -0x1050($at) +/* 135EE8 80242BA8 AC24EFB0 */ sw $a0, %lo(gPauseMenuCursorTargetOpacity)($at) diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/delete_entity.s b/asm/nonmatchings/code_a5dd0_len_114e0/delete_entity.s index ab36887ff1..3d9337d706 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/delete_entity.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/delete_entity.s @@ -11,18 +11,18 @@ glabel delete_entity /* A6DE8 801106E8 0040882D */ daddu $s1, $v0, $zero /* A6DEC 801106EC 8E240040 */ lw $a0, 0x40($s1) /* A6DF0 801106F0 10800003 */ beqz $a0, .L80110700 -/* A6DF4 801106F4 00000000 */ nop +/* A6DF4 801106F4 00000000 */ nop /* A6DF8 801106F8 0C00AB4B */ jal heap_free -/* A6DFC 801106FC 00000000 */ nop +/* A6DFC 801106FC 00000000 */ nop .L80110700: /* A6E00 80110700 8E220000 */ lw $v0, ($s1) /* A6E04 80110704 30420008 */ andi $v0, $v0, 8 /* A6E08 80110708 14400005 */ bnez $v0, .L80110720 -/* A6E0C 8011070C 00000000 */ nop +/* A6E0C 8011070C 00000000 */ nop /* A6E10 80110710 0C048B7F */ jal func_80122DFC /* A6E14 80110714 86240014 */ lh $a0, 0x14($s1) /* A6E18 80110718 080441CC */ j .L80110730 -/* A6E1C 8011071C 00000000 */ nop +/* A6E1C 8011071C 00000000 */ nop .L80110720: /* A6E20 80110720 0C047FF8 */ jal get_anim_mesh /* A6E24 80110724 86240014 */ lh $a0, 0x14($s1) @@ -31,9 +31,9 @@ glabel delete_entity .L80110730: /* A6E30 80110730 86240016 */ lh $a0, 0x16($s1) /* A6E34 80110734 04800007 */ bltz $a0, .L80110754 -/* A6E38 80110738 00000000 */ nop +/* A6E38 80110738 00000000 */ nop /* A6E3C 8011073C 0C044181 */ jal get_shadow_by_index -/* A6E40 80110740 00000000 */ nop +/* A6E40 80110740 00000000 */ nop /* A6E44 80110744 8C430000 */ lw $v1, ($v0) /* A6E48 80110748 3C041000 */ lui $a0, 0x1000 /* A6E4C 8011074C 00641825 */ or $v1, $v1, $a0 diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/delete_entity_and_unload_data.s b/asm/nonmatchings/code_a5dd0_len_114e0/delete_entity_and_unload_data.s index 779fe58e5c..ac9e63b8f2 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/delete_entity_and_unload_data.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/delete_entity_and_unload_data.s @@ -11,18 +11,18 @@ glabel delete_entity_and_unload_data /* A6EA8 801107A8 0040882D */ daddu $s1, $v0, $zero /* A6EAC 801107AC 8E240040 */ lw $a0, 0x40($s1) /* A6EB0 801107B0 10800003 */ beqz $a0, .L801107C0 -/* A6EB4 801107B4 00000000 */ nop +/* A6EB4 801107B4 00000000 */ nop /* A6EB8 801107B8 0C00AB4B */ jal heap_free -/* A6EBC 801107BC 00000000 */ nop +/* A6EBC 801107BC 00000000 */ nop .L801107C0: /* A6EC0 801107C0 8E220000 */ lw $v0, ($s1) /* A6EC4 801107C4 30420008 */ andi $v0, $v0, 8 /* A6EC8 801107C8 14400005 */ bnez $v0, .L801107E0 -/* A6ECC 801107CC 00000000 */ nop +/* A6ECC 801107CC 00000000 */ nop /* A6ED0 801107D0 0C048B7F */ jal func_80122DFC /* A6ED4 801107D4 86240014 */ lh $a0, 0x14($s1) /* A6ED8 801107D8 080441FC */ j .L801107F0 -/* A6EDC 801107DC 00000000 */ nop +/* A6EDC 801107DC 00000000 */ nop .L801107E0: /* A6EE0 801107E0 0C047FF8 */ jal get_anim_mesh /* A6EE4 801107E4 86240014 */ lh $a0, 0x14($s1) @@ -31,12 +31,12 @@ glabel delete_entity_and_unload_data .L801107F0: /* A6EF0 801107F0 8E240038 */ lw $a0, 0x38($s1) /* A6EF4 801107F4 0C0445F7 */ jal func_801117DC -/* A6EF8 801107F8 00000000 */ nop +/* A6EF8 801107F8 00000000 */ nop /* A6EFC 801107FC 86240016 */ lh $a0, 0x16($s1) /* A6F00 80110800 04800007 */ bltz $a0, .L80110820 -/* A6F04 80110804 00000000 */ nop +/* A6F04 80110804 00000000 */ nop /* A6F08 80110808 0C044181 */ jal get_shadow_by_index -/* A6F0C 8011080C 00000000 */ nop +/* A6F0C 8011080C 00000000 */ nop /* A6F10 80110810 8C430000 */ lw $v1, ($v0) /* A6F14 80110814 3C041000 */ lui $a0, 0x1000 /* A6F18 80110818 00641825 */ or $v1, $v1, $a0 diff --git a/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s b/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s index 5d2f82702b..89bbe70493 100644 --- a/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s +++ b/asm/nonmatchings/code_ef070_len_3400/func_802CD9F0.s @@ -53,6 +53,6 @@ glabel func_802CD9F0 /* F2458 802CDAA8 24020002 */ addiu $v0, $zero, 2 /* F245C 802CDAAC 03E00008 */ jr $ra /* F2460 802CDAB0 27BD0028 */ addiu $sp, $sp, 0x28 -/* F2464 802CDAB4 00000000 */ nop -/* F2468 802CDAB8 00000000 */ nop -/* F246C 802CDABC 00000000 */ nop +/* F2464 802CDAB4 00000000 */ nop +/* F2468 802CDAB8 00000000 */ nop +/* F246C 802CDABC 00000000 */ nop diff --git a/asm/nonmatchings/si/si_execute_next_command.s b/asm/nonmatchings/si/si_execute_next_command.s index 63c0d201bd..3365ba3b2d 100644 --- a/asm/nonmatchings/si/si_execute_next_command.s +++ b/asm/nonmatchings/si/si_execute_next_command.s @@ -16,7 +16,7 @@ glabel si_execute_next_command /* EBDDC 802C742C 00220821 */ addu $at, $at, $v0 /* EBDE0 802C7430 8C229F20 */ lw $v0, -0x60e0($at) /* EBDE4 802C7434 00400008 */ jr $v0 -/* EBDE8 802C7438 00000000 */ nop +/* EBDE8 802C7438 00000000 */ nop /* EBDEC 802C743C 8E030008 */ lw $v1, 8($s0) /* EBDF0 802C7440 24050003 */ addiu $a1, $zero, 3 /* EBDF4 802C7444 0060102D */ daddu $v0, $v1, $zero @@ -407,7 +407,7 @@ glabel si_execute_next_command /* EC3F8 802C7A48 0040282D */ daddu $a1, $v0, $zero .L802C7A4C: /* EC3FC 802C7A4C 080B1E93 */ j .L802C7A4C -/* EC400 802C7A50 00000000 */ nop +/* EC400 802C7A50 00000000 */ nop .L802C7A54: /* EC404 802C7A54 24020003 */ addiu $v0, $zero, 3 /* EC408 802C7A58 10A2FE6E */ beq $a1, $v0, .L802C7414 @@ -424,13 +424,13 @@ glabel si_execute_next_command /* EC434 802C7A84 A2000002 */ sb $zero, 2($s0) .L802C7A88: /* EC438 802C7A88 14A2FE62 */ bne $a1, $v0, .L802C7414 -/* EC43C 802C7A8C 00000000 */ nop +/* EC43C 802C7A8C 00000000 */ nop /* EC440 802C7A90 A2000002 */ sb $zero, 2($s0) /* EC444 802C7A94 3C028007 */ lui $v0, %hi(gGameStatusPtr) /* EC448 802C7A98 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0) /* EC44C 802C7A9C 80420078 */ lb $v0, 0x78($v0) /* EC450 802C7AA0 1445FE5C */ bne $v0, $a1, .L802C7414 -/* EC454 802C7AA4 00000000 */ nop +/* EC454 802C7AA4 00000000 */ nop .L802C7AA8: /* EC458 802C7AA8 0000102D */ daddu $v0, $zero, $zero .L802C7AAC: From 954eae1e2fe568fd121f8ac100c8835baecc9d7b Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Mon, 9 Nov 2020 23:23:01 -0500 Subject: [PATCH 27/52] some pause stuff --- .../code_135EE0/pause_badges_draw_contents.s | 8 ++++---- .../code_135EE0/pause_badges_is_visible.s | 15 --------------- .../code_135EE0/pause_badges_load_badges.s | 8 ++++---- .../pause_badges_scroll_offset_y.s | 8 -------- .../code_135EE0/pause_badges_update.s | 8 ++++---- include/common_structs.h | 9 +++++++++ include/variables.h | 6 ++++++ src/code_135EE0.c | 19 +++++++++++++++++-- undefined_syms.txt | 5 +++++ 9 files changed, 49 insertions(+), 37 deletions(-) delete mode 100644 asm/nonmatchings/code_135EE0/pause_badges_is_visible.s delete mode 100644 asm/nonmatchings/code_135EE0/pause_badges_scroll_offset_y.s diff --git a/asm/nonmatchings/code_135EE0/pause_badges_draw_contents.s b/asm/nonmatchings/code_135EE0/pause_badges_draw_contents.s index 16a96ab4e8..c8057bab5d 100644 --- a/asm/nonmatchings/code_135EE0/pause_badges_draw_contents.s +++ b/asm/nonmatchings/code_135EE0/pause_badges_draw_contents.s @@ -1524,10 +1524,10 @@ glabel pause_badges_draw_contents /* 13BED8 80248B98 50400001 */ beql $v0, $zero, .L80248BA0 /* 13BEDC 80248B9C 24060070 */ addiu $a2, $zero, 0x70 .L80248BA0: -/* 13BEE0 80248BA0 3C038027 */ lui $v1, 0x8027 -/* 13BEE4 80248BA4 8C63038C */ lw $v1, 0x38c($v1) -/* 13BEE8 80248BA8 3C028027 */ lui $v0, 0x8027 -/* 13BEEC 80248BAC 8C420390 */ lw $v0, 0x390($v0) +/* 13BEE0 80248BA0 3C038027 */ lui $v1, %hi(gBadgeMenuCurrentScrollPos) +/* 13BEE4 80248BA4 8C63038C */ lw $v1, %lo(gBadgeMenuCurrentScrollPos)($v1) +/* 13BEE8 80248BA8 3C028027 */ lui $v0, %hi(gBadgeMenuTargetScrollPos) +/* 13BEEC 80248BAC 8C420390 */ lw $v0, %lo(gBadgeMenuTargetScrollPos)($v0) /* 13BEF0 80248BB0 1062000A */ beq $v1, $v0, .L80248BDC /* 13BEF4 80248BB4 24040020 */ addiu $a0, $zero, 0x20 /* 13BEF8 80248BB8 2605005D */ addiu $a1, $s0, 0x5d diff --git a/asm/nonmatchings/code_135EE0/pause_badges_is_visible.s b/asm/nonmatchings/code_135EE0/pause_badges_is_visible.s deleted file mode 100644 index 48aaffa8cb..0000000000 --- a/asm/nonmatchings/code_135EE0/pause_badges_is_visible.s +++ /dev/null @@ -1,15 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel pause_badges_is_visible -/* 13A5B0 80247270 3C038027 */ lui $v1, 0x8027 -/* 13A5B4 80247274 8C63038C */ lw $v1, 0x38c($v1) -/* 13A5B8 80247278 2462FFE0 */ addiu $v0, $v1, -0x20 -/* 13A5BC 8024727C 0082102A */ slt $v0, $a0, $v0 -/* 13A5C0 80247280 14400003 */ bnez $v0, .L80247290 -/* 13A5C4 80247284 24620080 */ addiu $v0, $v1, 0x80 -/* 13A5C8 80247288 03E00008 */ jr $ra -/* 13A5CC 8024728C 0082102A */ slt $v0, $a0, $v0 -.L80247290: -/* 13A5D0 80247290 03E00008 */ jr $ra -/* 13A5D4 80247294 0000102D */ daddu $v0, $zero, $zero diff --git a/asm/nonmatchings/code_135EE0/pause_badges_load_badges.s b/asm/nonmatchings/code_135EE0/pause_badges_load_badges.s index be4c72fa82..999381cb60 100644 --- a/asm/nonmatchings/code_135EE0/pause_badges_load_badges.s +++ b/asm/nonmatchings/code_135EE0/pause_badges_load_badges.s @@ -153,9 +153,9 @@ glabel pause_badges_load_badges /* 13C2DC 80248F9C 8FBF0018 */ lw $ra, 0x18($sp) /* 13C2E0 80248FA0 8FB10014 */ lw $s1, 0x14($sp) /* 13C2E4 80248FA4 8FB00010 */ lw $s0, 0x10($sp) -/* 13C2E8 80248FA8 3C018027 */ lui $at, 0x8027 -/* 13C2EC 80248FAC AC22038C */ sw $v0, 0x38c($at) -/* 13C2F0 80248FB0 3C018027 */ lui $at, 0x8027 -/* 13C2F4 80248FB4 AC220390 */ sw $v0, 0x390($at) +/* 13C2E8 80248FA8 3C018027 */ lui $at, %hi(gBadgeMenuCurrentScrollPos) +/* 13C2EC 80248FAC AC22038C */ sw $v0, %lo(gBadgeMenuCurrentScrollPos)($at) +/* 13C2F0 80248FB0 3C018027 */ lui $at, %hi(gBadgeMenuTargetScrollPos) +/* 13C2F4 80248FB4 AC220390 */ sw $v0, %lo(gBadgeMenuTargetScrollPos)($at) /* 13C2F8 80248FB8 03E00008 */ jr $ra /* 13C2FC 80248FBC 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/nonmatchings/code_135EE0/pause_badges_scroll_offset_y.s b/asm/nonmatchings/code_135EE0/pause_badges_scroll_offset_y.s deleted file mode 100644 index dc29a67550..0000000000 --- a/asm/nonmatchings/code_135EE0/pause_badges_scroll_offset_y.s +++ /dev/null @@ -1,8 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel pause_badges_scroll_offset_y -/* 13A5D8 80247298 3C028027 */ lui $v0, 0x8027 -/* 13A5DC 8024729C 8C42038C */ lw $v0, 0x38c($v0) -/* 13A5E0 802472A0 03E00008 */ jr $ra -/* 13A5E4 802472A4 00821023 */ subu $v0, $a0, $v0 diff --git a/asm/nonmatchings/code_135EE0/pause_badges_update.s b/asm/nonmatchings/code_135EE0/pause_badges_update.s index e46f40219e..9b32fddcaf 100644 --- a/asm/nonmatchings/code_135EE0/pause_badges_update.s +++ b/asm/nonmatchings/code_135EE0/pause_badges_update.s @@ -74,11 +74,11 @@ glabel pause_badges_update /* 13CA54 80249714 00002812 */ mflo $a1 /* 13CA58 80249718 0C091C5A */ jal pause_badges_get_pos_y /* 13CA5C 8024971C 00000000 */ nop -/* 13CA60 80249720 3C108027 */ lui $s0, 0x8027 -/* 13CA64 80249724 2610038C */ addiu $s0, $s0, 0x38c +/* 13CA60 80249720 3C108027 */ lui $s0, %hi(gBadgeMenuCurrentScrollPos) +/* 13CA64 80249724 2610038C */ addiu $s0, $s0, %lo(gBadgeMenuCurrentScrollPos) /* 13CA68 80249728 8E040000 */ lw $a0, ($s0) -/* 13CA6C 8024972C 3C018027 */ lui $at, 0x8027 -/* 13CA70 80249730 AC220390 */ sw $v0, 0x390($at) +/* 13CA6C 8024972C 3C018027 */ lui $at, %hi(gBadgeMenuTargetScrollPos) +/* 13CA70 80249730 AC220390 */ sw $v0, %lo(gBadgeMenuTargetScrollPos)($at) /* 13CA74 80249734 0C090D1B */ jal pause_interp_vertical_scroll /* 13CA78 80249738 00442023 */ subu $a0, $v0, $a0 /* 13CA7C 8024973C 8E030000 */ lw $v1, ($s0) diff --git a/include/common_structs.h b/include/common_structs.h index 45d67fafd4..ca148061b6 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -1533,4 +1533,13 @@ typedef struct { /* 0x18 */ s32 easingType; } Path; // size = 0x1C +typedef struct { + /* 0x00 */ s8 enabled; + /* 0x01 */ s8 listStart; + /* 0x02 */ s8 numCols; + /* 0x03 */ s8 numRows; + /* 0x04 */ s32 startIndex; + /* 0x08 */ s32 count; +} PauseItemPage; // size = 0xC + #endif diff --git a/include/variables.h b/include/variables.h index 5377a30a3a..02959ac219 100644 --- a/include/variables.h +++ b/include/variables.h @@ -120,9 +120,15 @@ extern s32 D_800A0960; extern s32 D_800A0964; // Pause +extern PauseItemPage gItemMenuPages[20]; extern s32 gPauseMenuStrings[348]; extern s32 gPauseMenuCursorTargetOpacity; +// Badges +extern PauseItemPage gBadgeMenuPages[20]; +extern s32 gBadgeMenuCurrentScrollPos; +extern s32 gBadgeMenuTargetScrollPos; + extern s32 gGameState; extern s32 D_8009A650[1]; extern u16 D_8009A6A0; diff --git a/src/code_135EE0.c b/src/code_135EE0.c index 3ce4094fd3..91b568609f 100644 --- a/src/code_135EE0.c +++ b/src/code_135EE0.c @@ -1,6 +1,13 @@ #include "common.h" +// Need data segment and vars declared above +#ifdef NON_MATCHING +void pause_set_cursor_opacity(s32 val) { + gPauseMenuCursorTargetOpacity = val; +} +#else INCLUDE_ASM(s32, "code_135EE0", pause_set_cursor_opacity); +#endif INCLUDE_ASM(s32, "code_135EE0", func_80242BAC); @@ -100,9 +107,17 @@ INCLUDE_ASM(s32, "code_135EE0", pause_badges_get_column); INCLUDE_ASM(s32, "code_135EE0", pause_badges_get_row); -INCLUDE_ASM(s32, "code_135EE0", pause_badges_is_visible); +s32 pause_badges_is_visible(s32 y) { + if (y < gBadgeMenuCurrentScrollPos - 32) { + return FALSE; + } else { + return y < gBadgeMenuCurrentScrollPos + 128; + } +} -INCLUDE_ASM(s32, "code_135EE0", pause_badges_scroll_offset_y); +s32 pause_badges_scroll_offset_y(s32 offset) { + return offset - gBadgeMenuCurrentScrollPos; +} s32 pause_badges_scroll_offset_x(s32 x) { return x; diff --git a/undefined_syms.txt b/undefined_syms.txt index b1a9e4e7f7..50bcdba354 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -148,6 +148,11 @@ gBackgroundImage = 0x80200000; gPauseMenuCursorTargetOpacity = 0x8024EFB0; +gBadgeMenuPages = 0x80270288; +gBadgeMenuCurrentScrollPos = 0x8027038C; +gBadgeMenuTargetScrollPos = 0x80270390; +gPauseItemPages = 0x802704D0; + D_802C3000 = 0x802C3000; D_802DBD40 = 0x802DBD40; gCurrentPrintContext = 0x802DB260; From 323127d90e2328bdcf261bf79d07feed86b055a7 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Mon, 9 Nov 2020 23:28:45 -0500 Subject: [PATCH 28/52] asm update --- .../code_135EE0/pause_badges_draw_contents.s | 16 ++++++++-------- .../code_135EE0/pause_badges_get_pos_y.s | 4 ++-- .../code_135EE0/pause_badges_get_row.s | 4 ++-- .../code_135EE0/pause_badges_handle_input.s | 8 ++++---- .../code_135EE0/pause_badges_load_badges.s | 4 ++-- .../code_135EE0/pause_badges_update.s | 4 ++-- .../code_13CAF0/pause_items_draw_contents.s | 16 ++++++++-------- .../code_13CAF0/pause_items_get_pos_y.s | 4 ++-- .../code_13CAF0/pause_items_get_row.s | 4 ++-- .../code_13CAF0/pause_items_handle_input.s | 8 ++++---- .../code_13CAF0/pause_items_load_items.s | 4 ++-- .../code_13CAF0/pause_items_update.s | 4 ++-- 12 files changed, 40 insertions(+), 40 deletions(-) diff --git a/asm/nonmatchings/code_135EE0/pause_badges_draw_contents.s b/asm/nonmatchings/code_135EE0/pause_badges_draw_contents.s index c8057bab5d..78ef3a0ee8 100644 --- a/asm/nonmatchings/code_135EE0/pause_badges_draw_contents.s +++ b/asm/nonmatchings/code_135EE0/pause_badges_draw_contents.s @@ -6,8 +6,8 @@ glabel pause_badges_draw_contents /* 13A84C 8024750C 240A0001 */ addiu $t2, $zero, 1 /* 13A850 80247510 3C028027 */ lui $v0, 0x8027 /* 13A854 80247514 8C420280 */ lw $v0, 0x280($v0) -/* 13A858 80247518 3C038027 */ lui $v1, 0x8027 -/* 13A85C 8024751C 24630288 */ addiu $v1, $v1, 0x288 +/* 13A858 80247518 3C038027 */ lui $v1, %hi(gBadgeMenuPages) +/* 13A85C 8024751C 24630288 */ addiu $v1, $v1, %lo(gBadgeMenuPages) /* 13A860 80247520 AFBF00BC */ sw $ra, 0xbc($sp) /* 13A864 80247524 AFBE00B8 */ sw $fp, 0xb8($sp) /* 13A868 80247528 AFB700B4 */ sw $s7, 0xb4($sp) @@ -187,8 +187,8 @@ glabel pause_badges_draw_contents /* 13AB04 802477C4 AFA00050 */ sw $zero, 0x50($sp) .L802477C8: /* 13AB08 802477C8 8FAB0050 */ lw $t3, 0x50($sp) -/* 13AB0C 802477CC 3C028027 */ lui $v0, 0x8027 -/* 13AB10 802477D0 24420288 */ addiu $v0, $v0, 0x288 +/* 13AB0C 802477CC 3C028027 */ lui $v0, %hi(gBadgeMenuPages) +/* 13AB10 802477D0 24420288 */ addiu $v0, $v0, %lo(gBadgeMenuPages) /* 13AB14 802477D4 000B1840 */ sll $v1, $t3, 1 /* 13AB18 802477D8 006B1821 */ addu $v1, $v1, $t3 /* 13AB1C 802477DC 00031880 */ sll $v1, $v1, 2 @@ -967,9 +967,9 @@ glabel pause_badges_draw_contents /* 13B684 80248344 00021840 */ sll $v1, $v0, 1 /* 13B688 80248348 00621821 */ addu $v1, $v1, $v0 /* 13B68C 8024834C 00031880 */ sll $v1, $v1, 2 -/* 13B690 80248350 3C028027 */ lui $v0, 0x8027 +/* 13B690 80248350 3C028027 */ lui $v0, %hi(gBadgeMenuPages) /* 13B694 80248354 00431021 */ addu $v0, $v0, $v1 -/* 13B698 80248358 90420288 */ lbu $v0, 0x288($v0) +/* 13B698 80248358 90420288 */ lbu $v0, %lo(gBadgeMenuPages)($v0) /* 13B69C 8024835C 1040000C */ beqz $v0, .L80248390 /* 13B6A0 80248360 00000000 */ nop /* 13B6A4 80248364 3C108027 */ lui $s0, 0x8027 @@ -1481,8 +1481,8 @@ glabel pause_badges_draw_contents /* 13BE30 80248AF0 3C118027 */ lui $s1, 0x8027 /* 13BE34 80248AF4 26310280 */ addiu $s1, $s1, 0x280 /* 13BE38 80248AF8 8E240000 */ lw $a0, ($s1) -/* 13BE3C 80248AFC 3C128027 */ lui $s2, 0x8027 -/* 13BE40 80248B00 26520288 */ addiu $s2, $s2, 0x288 +/* 13BE3C 80248AFC 3C128027 */ lui $s2, %hi(gBadgeMenuPages) +/* 13BE40 80248B00 26520288 */ addiu $s2, $s2, %lo(gBadgeMenuPages) /* 13BE44 80248B04 00041040 */ sll $v0, $a0, 1 /* 13BE48 80248B08 00441021 */ addu $v0, $v0, $a0 /* 13BE4C 80248B0C 00021080 */ sll $v0, $v0, 2 diff --git a/asm/nonmatchings/code_135EE0/pause_badges_get_pos_y.s b/asm/nonmatchings/code_135EE0/pause_badges_get_pos_y.s index a87b92a026..64c9d805a5 100644 --- a/asm/nonmatchings/code_135EE0/pause_badges_get_pos_y.s +++ b/asm/nonmatchings/code_135EE0/pause_badges_get_pos_y.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel pause_badges_get_pos_y -/* 13A4A8 80247168 3C028027 */ lui $v0, 0x8027 -/* 13A4AC 8024716C 24420288 */ addiu $v0, $v0, 0x288 +/* 13A4A8 80247168 3C028027 */ lui $v0, %hi(gBadgeMenuPages) +/* 13A4AC 8024716C 24420288 */ addiu $v0, $v0, %lo(gBadgeMenuPages) /* 13A4B0 80247170 00041840 */ sll $v1, $a0, 1 /* 13A4B4 80247174 00641821 */ addu $v1, $v1, $a0 /* 13A4B8 80247178 00031880 */ sll $v1, $v1, 2 diff --git a/asm/nonmatchings/code_135EE0/pause_badges_get_row.s b/asm/nonmatchings/code_135EE0/pause_badges_get_row.s index b5310adf95..cc5019da62 100644 --- a/asm/nonmatchings/code_135EE0/pause_badges_get_row.s +++ b/asm/nonmatchings/code_135EE0/pause_badges_get_row.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel pause_badges_get_row -/* 13A560 80247220 3C038027 */ lui $v1, 0x8027 -/* 13A564 80247224 24630288 */ addiu $v1, $v1, 0x288 +/* 13A560 80247220 3C038027 */ lui $v1, %hi(gBadgeMenuPages) +/* 13A564 80247224 24630288 */ addiu $v1, $v1, %lo(gBadgeMenuPages) /* 13A568 80247228 00041040 */ sll $v0, $a0, 1 /* 13A56C 8024722C 00441021 */ addu $v0, $v0, $a0 /* 13A570 80247230 00021080 */ sll $v0, $v0, 2 diff --git a/asm/nonmatchings/code_135EE0/pause_badges_handle_input.s b/asm/nonmatchings/code_135EE0/pause_badges_handle_input.s index c26ba78cc6..79fa4d49bc 100644 --- a/asm/nonmatchings/code_135EE0/pause_badges_handle_input.s +++ b/asm/nonmatchings/code_135EE0/pause_badges_handle_input.s @@ -201,8 +201,8 @@ glabel pause_badges_handle_input /* 13C6B0 80249370 3C068027 */ lui $a2, 0x8027 /* 13C6B4 80249374 24C60280 */ addiu $a2, $a2, 0x280 /* 13C6B8 80249378 8CC40000 */ lw $a0, ($a2) -/* 13C6BC 8024937C 3C078027 */ lui $a3, 0x8027 -/* 13C6C0 80249380 24E70288 */ addiu $a3, $a3, 0x288 +/* 13C6BC 8024937C 3C078027 */ lui $a3, %hi(gBadgeMenuPages) +/* 13C6C0 80249380 24E70288 */ addiu $a3, $a3, %lo(gBadgeMenuPages) /* 13C6C4 80249384 00041040 */ sll $v0, $a0, 1 /* 13C6C8 80249388 00441021 */ addu $v0, $v0, $a0 /* 13C6CC 8024938C 00021080 */ sll $v0, $v0, 2 @@ -229,8 +229,8 @@ glabel pause_badges_handle_input /* 13C71C 802493DC 3C068027 */ lui $a2, 0x8027 /* 13C720 802493E0 24C60280 */ addiu $a2, $a2, 0x280 /* 13C724 802493E4 8CC70000 */ lw $a3, ($a2) -/* 13C728 802493E8 3C048027 */ lui $a0, 0x8027 -/* 13C72C 802493EC 24840288 */ addiu $a0, $a0, 0x288 +/* 13C728 802493E8 3C048027 */ lui $a0, %hi(gBadgeMenuPages) +/* 13C72C 802493EC 24840288 */ addiu $a0, $a0, %lo(gBadgeMenuPages) /* 13C730 802493F0 24E30001 */ addiu $v1, $a3, 1 /* 13C734 802493F4 00031040 */ sll $v0, $v1, 1 /* 13C738 802493F8 00431021 */ addu $v0, $v0, $v1 diff --git a/asm/nonmatchings/code_135EE0/pause_badges_load_badges.s b/asm/nonmatchings/code_135EE0/pause_badges_load_badges.s index 999381cb60..b4b5c071d1 100644 --- a/asm/nonmatchings/code_135EE0/pause_badges_load_badges.s +++ b/asm/nonmatchings/code_135EE0/pause_badges_load_badges.s @@ -76,8 +76,8 @@ glabel pause_badges_load_badges /* 13C1C8 80248E88 1440FFFC */ bnez $v0, .L80248E7C /* 13C1CC 80248E8C 24630002 */ addiu $v1, $v1, 2 .L80248E90: -/* 13C1D0 80248E90 3C058027 */ lui $a1, 0x8027 -/* 13C1D4 80248E94 24A50288 */ addiu $a1, $a1, 0x288 +/* 13C1D0 80248E90 3C058027 */ lui $a1, %hi(gBadgeMenuPages) +/* 13C1D4 80248E94 24A50288 */ addiu $a1, $a1, %lo(gBadgeMenuPages) /* 13C1D8 80248E98 0000202D */ daddu $a0, $zero, $zero /* 13C1DC 80248E9C 3C078027 */ lui $a3, 0x8027 /* 13C1E0 80248EA0 24E70384 */ addiu $a3, $a3, 0x384 diff --git a/asm/nonmatchings/code_135EE0/pause_badges_update.s b/asm/nonmatchings/code_135EE0/pause_badges_update.s index 9b32fddcaf..77faa596ef 100644 --- a/asm/nonmatchings/code_135EE0/pause_badges_update.s +++ b/asm/nonmatchings/code_135EE0/pause_badges_update.s @@ -5,8 +5,8 @@ glabel pause_badges_update /* 13C95C 8024961C 27BDFFE8 */ addiu $sp, $sp, -0x18 /* 13C960 80249620 3C038027 */ lui $v1, 0x8027 /* 13C964 80249624 8C630280 */ lw $v1, 0x280($v1) -/* 13C968 80249628 3C048027 */ lui $a0, 0x8027 -/* 13C96C 8024962C 24840288 */ addiu $a0, $a0, 0x288 +/* 13C968 80249628 3C048027 */ lui $a0, %hi(gBadgeMenuPages) +/* 13C96C 8024962C 24840288 */ addiu $a0, $a0, %lo(gBadgeMenuPages) /* 13C970 80249630 AFBF0014 */ sw $ra, 0x14($sp) /* 13C974 80249634 AFB00010 */ sw $s0, 0x10($sp) /* 13C978 80249638 00031040 */ sll $v0, $v1, 1 diff --git a/asm/nonmatchings/code_13CAF0/pause_items_draw_contents.s b/asm/nonmatchings/code_13CAF0/pause_items_draw_contents.s index 4c62abbdaf..b06757b1a4 100644 --- a/asm/nonmatchings/code_13CAF0/pause_items_draw_contents.s +++ b/asm/nonmatchings/code_13CAF0/pause_items_draw_contents.s @@ -74,8 +74,8 @@ glabel pause_items_draw_contents /* 13CDBC 80249A7C AFAA005C */ sw $t2, 0x5c($sp) /* 13CDC0 80249A80 0C03D4B8 */ jal draw_box /* 13CDC4 80249A84 AFAB0058 */ sw $t3, 0x58($sp) -/* 13CDC8 80249A88 3C108027 */ lui $s0, 0x8027 -/* 13CDCC 80249A8C 261004D0 */ addiu $s0, $s0, 0x4d0 +/* 13CDC8 80249A88 3C108027 */ lui $s0, %hi(gPauseItemPages) +/* 13CDCC 80249A8C 261004D0 */ addiu $s0, $s0, %lo(gPauseItemPages) /* 13CDD0 80249A90 8FAB00B0 */ lw $t3, 0xb0($sp) /* 13CDD4 80249A94 8FAA00AC */ lw $t2, 0xac($sp) /* 13CDD8 80249A98 25660007 */ addiu $a2, $t3, 7 @@ -169,8 +169,8 @@ glabel pause_items_draw_contents /* 13CF28 80249BE8 ACA20004 */ sw $v0, 4($a1) .L80249BEC: /* 13CF2C 80249BEC 0000F02D */ daddu $fp, $zero, $zero -/* 13CF30 80249BF0 3C0B8027 */ lui $t3, 0x8027 -/* 13CF34 80249BF4 256B04D0 */ addiu $t3, $t3, 0x4d0 +/* 13CF30 80249BF0 3C0B8027 */ lui $t3, %hi(gPauseItemPages) +/* 13CF34 80249BF4 256B04D0 */ addiu $t3, $t3, %lo(gPauseItemPages) /* 13CF38 80249BF8 AFAB007C */ sw $t3, 0x7c($sp) .L80249BFC: /* 13CF3C 80249BFC 8FAA007C */ lw $t2, 0x7c($sp) @@ -541,9 +541,9 @@ glabel pause_items_draw_contents /* 13D4A0 8024A160 00021840 */ sll $v1, $v0, 1 /* 13D4A4 8024A164 00621821 */ addu $v1, $v1, $v0 /* 13D4A8 8024A168 00031880 */ sll $v1, $v1, 2 -/* 13D4AC 8024A16C 3C028027 */ lui $v0, 0x8027 +/* 13D4AC 8024A16C 3C028027 */ lui $v0, %hi(gPauseItemPages) /* 13D4B0 8024A170 00431021 */ addu $v0, $v0, $v1 -/* 13D4B4 8024A174 904204D0 */ lbu $v0, 0x4d0($v0) +/* 13D4B4 8024A174 904204D0 */ lbu $v0, %lo(gPauseItemPages)($v0) /* 13D4B8 8024A178 1040000C */ beqz $v0, .L8024A1AC /* 13D4BC 8024A17C 00000000 */ nop /* 13D4C0 8024A180 3C108027 */ lui $s0, 0x8027 @@ -698,8 +698,8 @@ glabel pause_items_draw_contents /* 13D6E4 8024A3A4 3C118027 */ lui $s1, 0x8027 /* 13D6E8 8024A3A8 263104C8 */ addiu $s1, $s1, 0x4c8 /* 13D6EC 8024A3AC 8E240000 */ lw $a0, ($s1) -/* 13D6F0 8024A3B0 3C128027 */ lui $s2, 0x8027 -/* 13D6F4 8024A3B4 265204D0 */ addiu $s2, $s2, 0x4d0 +/* 13D6F0 8024A3B0 3C128027 */ lui $s2, %hi(gPauseItemPages) +/* 13D6F4 8024A3B4 265204D0 */ addiu $s2, $s2, %lo(gPauseItemPages) /* 13D6F8 8024A3B8 00041040 */ sll $v0, $a0, 1 /* 13D6FC 8024A3BC 00441021 */ addu $v0, $v0, $a0 /* 13D700 8024A3C0 00021080 */ sll $v0, $v0, 2 diff --git a/asm/nonmatchings/code_13CAF0/pause_items_get_pos_y.s b/asm/nonmatchings/code_13CAF0/pause_items_get_pos_y.s index ecf4885fbb..1489add115 100644 --- a/asm/nonmatchings/code_13CAF0/pause_items_get_pos_y.s +++ b/asm/nonmatchings/code_13CAF0/pause_items_get_pos_y.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel pause_items_get_pos_y -/* 13CB68 80249828 3C028027 */ lui $v0, 0x8027 -/* 13CB6C 8024982C 244204D0 */ addiu $v0, $v0, 0x4d0 +/* 13CB68 80249828 3C028027 */ lui $v0, %hi(gPauseItemPages) +/* 13CB6C 8024982C 244204D0 */ addiu $v0, $v0, %lo(gPauseItemPages) /* 13CB70 80249830 00041840 */ sll $v1, $a0, 1 /* 13CB74 80249834 00641821 */ addu $v1, $v1, $a0 /* 13CB78 80249838 00031880 */ sll $v1, $v1, 2 diff --git a/asm/nonmatchings/code_13CAF0/pause_items_get_row.s b/asm/nonmatchings/code_13CAF0/pause_items_get_row.s index 7eb6613add..07afba9d65 100644 --- a/asm/nonmatchings/code_13CAF0/pause_items_get_row.s +++ b/asm/nonmatchings/code_13CAF0/pause_items_get_row.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel pause_items_get_row -/* 13CC20 802498E0 3C038027 */ lui $v1, 0x8027 -/* 13CC24 802498E4 246304D0 */ addiu $v1, $v1, 0x4d0 +/* 13CC20 802498E0 3C038027 */ lui $v1, %hi(gPauseItemPages) +/* 13CC24 802498E4 246304D0 */ addiu $v1, $v1, %lo(gPauseItemPages) /* 13CC28 802498E8 00041040 */ sll $v0, $a0, 1 /* 13CC2C 802498EC 00441021 */ addu $v0, $v0, $a0 /* 13CC30 802498F0 00021080 */ sll $v0, $v0, 2 diff --git a/asm/nonmatchings/code_13CAF0/pause_items_handle_input.s b/asm/nonmatchings/code_13CAF0/pause_items_handle_input.s index 99608f669f..48dfc5c8ac 100644 --- a/asm/nonmatchings/code_13CAF0/pause_items_handle_input.s +++ b/asm/nonmatchings/code_13CAF0/pause_items_handle_input.s @@ -141,8 +141,8 @@ glabel pause_items_handle_input /* 13DD10 8024A9D0 3C068027 */ lui $a2, 0x8027 /* 13DD14 8024A9D4 24C604C8 */ addiu $a2, $a2, 0x4c8 /* 13DD18 8024A9D8 8CC40000 */ lw $a0, ($a2) -/* 13DD1C 8024A9DC 3C078027 */ lui $a3, 0x8027 -/* 13DD20 8024A9E0 24E704D0 */ addiu $a3, $a3, 0x4d0 +/* 13DD1C 8024A9DC 3C078027 */ lui $a3, %hi(gPauseItemPages) +/* 13DD20 8024A9E0 24E704D0 */ addiu $a3, $a3, %lo(gPauseItemPages) /* 13DD24 8024A9E4 00041040 */ sll $v0, $a0, 1 /* 13DD28 8024A9E8 00441021 */ addu $v0, $v0, $a0 /* 13DD2C 8024A9EC 00021080 */ sll $v0, $v0, 2 @@ -169,8 +169,8 @@ glabel pause_items_handle_input /* 13DD7C 8024AA3C 3C068027 */ lui $a2, 0x8027 /* 13DD80 8024AA40 24C604C8 */ addiu $a2, $a2, 0x4c8 /* 13DD84 8024AA44 8CC70000 */ lw $a3, ($a2) -/* 13DD88 8024AA48 3C048027 */ lui $a0, 0x8027 -/* 13DD8C 8024AA4C 248404D0 */ addiu $a0, $a0, 0x4d0 +/* 13DD88 8024AA48 3C048027 */ lui $a0, %hi(gPauseItemPages) +/* 13DD8C 8024AA4C 248404D0 */ addiu $a0, $a0, %lo(gPauseItemPages) /* 13DD90 8024AA50 24E30001 */ addiu $v1, $a3, 1 /* 13DD94 8024AA54 00031040 */ sll $v0, $v1, 1 /* 13DD98 8024AA58 00431021 */ addu $v0, $v0, $v1 diff --git a/asm/nonmatchings/code_13CAF0/pause_items_load_items.s b/asm/nonmatchings/code_13CAF0/pause_items_load_items.s index e89c3d6663..d25ce4eb6c 100644 --- a/asm/nonmatchings/code_13CAF0/pause_items_load_items.s +++ b/asm/nonmatchings/code_13CAF0/pause_items_load_items.s @@ -79,8 +79,8 @@ glabel pause_items_load_items /* 13D920 8024A5E0 1440FFFC */ bnez $v0, .L8024A5D4 /* 13D924 8024A5E4 24630002 */ addiu $v1, $v1, 2 .L8024A5E8: -/* 13D928 8024A5E8 3C058027 */ lui $a1, 0x8027 -/* 13D92C 8024A5EC 24A504D0 */ addiu $a1, $a1, 0x4d0 +/* 13D928 8024A5E8 3C058027 */ lui $a1, %hi(gPauseItemPages) +/* 13D92C 8024A5EC 24A504D0 */ addiu $a1, $a1, %lo(gPauseItemPages) /* 13D930 8024A5F0 0000202D */ daddu $a0, $zero, $zero /* 13D934 8024A5F4 3C078027 */ lui $a3, 0x8027 /* 13D938 8024A5F8 24E705CC */ addiu $a3, $a3, 0x5cc diff --git a/asm/nonmatchings/code_13CAF0/pause_items_update.s b/asm/nonmatchings/code_13CAF0/pause_items_update.s index 0784b03337..5e71100e51 100644 --- a/asm/nonmatchings/code_13CAF0/pause_items_update.s +++ b/asm/nonmatchings/code_13CAF0/pause_items_update.s @@ -5,8 +5,8 @@ glabel pause_items_update /* 13DF94 8024AC54 27BDFFE8 */ addiu $sp, $sp, -0x18 /* 13DF98 8024AC58 3C038027 */ lui $v1, 0x8027 /* 13DF9C 8024AC5C 8C6304C8 */ lw $v1, 0x4c8($v1) -/* 13DFA0 8024AC60 3C048027 */ lui $a0, 0x8027 -/* 13DFA4 8024AC64 248404D0 */ addiu $a0, $a0, 0x4d0 +/* 13DFA0 8024AC60 3C048027 */ lui $a0, %hi(gPauseItemPages) +/* 13DFA4 8024AC64 248404D0 */ addiu $a0, $a0, %lo(gPauseItemPages) /* 13DFA8 8024AC68 AFBF0014 */ sw $ra, 0x14($sp) /* 13DFAC 8024AC6C AFB00010 */ sw $s0, 0x10($sp) /* 13DFB0 8024AC70 00031040 */ sll $v0, $v1, 1 From 0499f2d722d3e9f6ca96acfeeee6781681daee6a Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Tue, 10 Nov 2020 00:08:44 -0500 Subject: [PATCH 29/52] more syms --- .../code_135EE0/pause_badges_draw_contents.s | 20 ++++----- .../code_135EE0/pause_badges_get_column.s | 24 ---------- .../code_135EE0/pause_badges_handle_input.s | 44 +++++++++---------- .../code_135EE0/pause_badges_init.s | 4 +- .../code_135EE0/pause_badges_load_badges.s | 20 ++++----- .../code_135EE0/pause_badges_update.s | 8 ++-- .../code_135EE0/pause_stats_cleanup.s | 4 +- .../code_135EE0/pause_stats_draw_contents.s | 8 ++-- .../code_135EE0/pause_stats_init.s | 4 +- include/common_structs.h | 2 +- include/variables.h | 6 +++ src/code_135EE0.c | 4 +- undefined_syms.txt | 3 ++ 13 files changed, 69 insertions(+), 82 deletions(-) delete mode 100644 asm/nonmatchings/code_135EE0/pause_badges_get_column.s diff --git a/asm/nonmatchings/code_135EE0/pause_badges_draw_contents.s b/asm/nonmatchings/code_135EE0/pause_badges_draw_contents.s index 78ef3a0ee8..425aee68a3 100644 --- a/asm/nonmatchings/code_135EE0/pause_badges_draw_contents.s +++ b/asm/nonmatchings/code_135EE0/pause_badges_draw_contents.s @@ -4,8 +4,8 @@ glabel pause_badges_draw_contents /* 13A848 80247508 27BDFF40 */ addiu $sp, $sp, -0xc0 /* 13A84C 8024750C 240A0001 */ addiu $t2, $zero, 1 -/* 13A850 80247510 3C028027 */ lui $v0, 0x8027 -/* 13A854 80247514 8C420280 */ lw $v0, 0x280($v0) +/* 13A850 80247510 3C028027 */ lui $v0, %hi(gBadgeMenuCurrentPage) +/* 13A854 80247514 8C420280 */ lw $v0, %lo(gBadgeMenuCurrentPage)($v0) /* 13A858 80247518 3C038027 */ lui $v1, %hi(gBadgeMenuPages) /* 13A85C 8024751C 24630288 */ addiu $v1, $v1, %lo(gBadgeMenuPages) /* 13A860 80247520 AFBF00BC */ sw $ra, 0xbc($sp) @@ -219,12 +219,12 @@ glabel pause_badges_draw_contents /* 13AB7C 8024783C AFA0008C */ sw $zero, 0x8c($sp) /* 13AB80 80247840 005E1021 */ addu $v0, $v0, $fp /* 13AB84 80247844 00021040 */ sll $v0, $v0, 1 -/* 13AB88 80247848 3C118027 */ lui $s1, 0x8027 +/* 13AB88 80247848 3C118027 */ lui $s1, %hi(gBadgeMenuItemIDs) /* 13AB8C 8024784C 02228821 */ addu $s1, $s1, $v0 -/* 13AB90 80247850 86310180 */ lh $s1, 0x180($s1) -/* 13AB94 80247854 3C138027 */ lui $s3, 0x8027 +/* 13AB90 80247850 86310180 */ lh $s1, %lo(gBadgeMenuItemIDs)($s1) +/* 13AB94 80247854 3C138027 */ lui $s3, %hi(gBadgeMenuItemIDs) /* 13AB98 80247858 02629821 */ addu $s3, $s3, $v0 -/* 13AB9C 8024785C 96730180 */ lhu $s3, 0x180($s3) +/* 13AB9C 8024785C 96730180 */ lhu $s3, %lo(gBadgeMenuItemIDs)($s3) /* 13ABA0 80247860 12230239 */ beq $s1, $v1, .L80248148 /* 13ABA4 80247864 0000A82D */ daddu $s5, $zero, $zero /* 13ABA8 80247868 8FA40050 */ lw $a0, 0x50($sp) @@ -945,8 +945,8 @@ glabel pause_badges_draw_contents /* 13B630 802482F0 8C630398 */ lw $v1, 0x398($v1) /* 13B634 802482F4 14620026 */ bne $v1, $v0, .L80248390 /* 13B638 802482F8 00000000 */ nop -/* 13B63C 802482FC 3C118027 */ lui $s1, 0x8027 -/* 13B640 80248300 26310280 */ addiu $s1, $s1, 0x280 +/* 13B63C 802482FC 3C118027 */ lui $s1, %hi(gBadgeMenuCurrentPage) +/* 13B640 80248300 26310280 */ addiu $s1, $s1, %lo(gBadgeMenuCurrentPage) /* 13B644 80248304 8E220000 */ lw $v0, ($s1) /* 13B648 80248308 1840000E */ blez $v0, .L80248344 /* 13B64C 8024830C 24420001 */ addiu $v0, $v0, 1 @@ -1478,8 +1478,8 @@ glabel pause_badges_draw_contents /* 13BE28 80248AE8 080922FD */ j .L80248BF4 /* 13BE2C 80248AEC 01663021 */ addu $a2, $t3, $a2 .L80248AF0: -/* 13BE30 80248AF0 3C118027 */ lui $s1, 0x8027 -/* 13BE34 80248AF4 26310280 */ addiu $s1, $s1, 0x280 +/* 13BE30 80248AF0 3C118027 */ lui $s1, %hi(gBadgeMenuCurrentPage) +/* 13BE34 80248AF4 26310280 */ addiu $s1, $s1, %lo(gBadgeMenuCurrentPage) /* 13BE38 80248AF8 8E240000 */ lw $a0, ($s1) /* 13BE3C 80248AFC 3C128027 */ lui $s2, %hi(gBadgeMenuPages) /* 13BE40 80248B00 26520288 */ addiu $s2, $s2, %lo(gBadgeMenuPages) diff --git a/asm/nonmatchings/code_135EE0/pause_badges_get_column.s b/asm/nonmatchings/code_135EE0/pause_badges_get_column.s deleted file mode 100644 index 768be0698f..0000000000 --- a/asm/nonmatchings/code_135EE0/pause_badges_get_column.s +++ /dev/null @@ -1,24 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel pause_badges_get_column -/* 13A518 802471D8 00041040 */ sll $v0, $a0, 1 -/* 13A51C 802471DC 00441021 */ addu $v0, $v0, $a0 -/* 13A520 802471E0 00021080 */ sll $v0, $v0, 2 -/* 13A524 802471E4 3C018027 */ lui $at, 0x8027 -/* 13A528 802471E8 00220821 */ addu $at, $at, $v0 -/* 13A52C 802471EC 9022028A */ lbu $v0, 0x28a($at) -/* 13A530 802471F0 14400002 */ bnez $v0, .L802471FC -/* 13A534 802471F4 00A2001A */ div $zero, $a1, $v0 -/* 13A538 802471F8 0007000D */ break 7 -.L802471FC: -/* 13A53C 802471FC 2401FFFF */ addiu $at, $zero, -1 -/* 13A540 80247200 14410004 */ bne $v0, $at, .L80247214 -/* 13A544 80247204 3C018000 */ lui $at, 0x8000 -/* 13A548 80247208 14A10002 */ bne $a1, $at, .L80247214 -/* 13A54C 8024720C 00000000 */ nop -/* 13A550 80247210 0006000D */ break 6 -.L80247214: -/* 13A554 80247214 00001010 */ mfhi $v0 -/* 13A558 80247218 03E00008 */ jr $ra -/* 13A55C 8024721C 00000000 */ nop diff --git a/asm/nonmatchings/code_135EE0/pause_badges_handle_input.s b/asm/nonmatchings/code_135EE0/pause_badges_handle_input.s index 79fa4d49bc..6c86613f8c 100644 --- a/asm/nonmatchings/code_135EE0/pause_badges_handle_input.s +++ b/asm/nonmatchings/code_135EE0/pause_badges_handle_input.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel pause_badges_handle_input -/* 13C3E8 802490A8 3C038027 */ lui $v1, 0x8027 -/* 13C3EC 802490AC 8C630280 */ lw $v1, 0x280($v1) +/* 13C3E8 802490A8 3C038027 */ lui $v1, %hi(gBadgeMenuCurrentPage) +/* 13C3EC 802490AC 8C630280 */ lw $v1, %lo(gBadgeMenuCurrentPage)($v1) /* 13C3F0 802490B0 3C098027 */ lui $t1, 0x8027 /* 13C3F4 802490B4 8D290378 */ lw $t1, 0x378($t1) /* 13C3F8 802490B8 27BDFFE0 */ addiu $sp, $sp, -0x20 @@ -48,9 +48,9 @@ glabel pause_badges_handle_input /* 13C488 80249148 8C820000 */ lw $v0, ($a0) /* 13C48C 8024914C 14400010 */ bnez $v0, .L80249190 /* 13C490 80249150 00091040 */ sll $v0, $t1, 1 -/* 13C494 80249154 3C038027 */ lui $v1, 0x8027 +/* 13C494 80249154 3C038027 */ lui $v1, %hi(gBadgeMenuItemIDs) /* 13C498 80249158 00621821 */ addu $v1, $v1, $v0 -/* 13C49C 8024915C 84630180 */ lh $v1, 0x180($v1) +/* 13C49C 8024915C 84630180 */ lh $v1, %lo(gBadgeMenuItemIDs)($v1) /* 13C4A0 80249160 24027FFE */ addiu $v0, $zero, 0x7ffe /* 13C4A4 80249164 14620005 */ bne $v1, $v0, .L8024917C /* 13C4A8 80249168 24020001 */ addiu $v0, $zero, 1 @@ -65,9 +65,9 @@ glabel pause_badges_handle_input /* 13C4C8 80249188 08092581 */ j .L80249604 /* 13C4CC 8024918C 00000000 */ nop .L80249190: -/* 13C4D0 80249190 3C118027 */ lui $s1, 0x8027 +/* 13C4D0 80249190 3C118027 */ lui $s1, %hi(gBadgeMenuItemIDs) /* 13C4D4 80249194 02228821 */ addu $s1, $s1, $v0 -/* 13C4D8 80249198 86310180 */ lh $s1, 0x180($s1) +/* 13C4D8 80249198 86310180 */ lh $s1, %lo(gBadgeMenuItemIDs)($s1) /* 13C4DC 8024919C 0C091CCE */ jal pause_badges_try_equip /* 13C4E0 802491A0 0220202D */ daddu $a0, $s1, $zero /* 13C4E4 802491A4 0040802D */ daddu $s0, $v0, $zero @@ -157,8 +157,8 @@ glabel pause_badges_handle_input /* 13C610 802492D0 04A20001 */ bltzl $a1, .L802492D8 /* 13C614 802492D4 0000282D */ daddu $a1, $zero, $zero .L802492D8: -/* 13C618 802492D8 3C048027 */ lui $a0, 0x8027 -/* 13C61C 802492DC 24840280 */ addiu $a0, $a0, 0x280 +/* 13C618 802492D8 3C048027 */ lui $a0, %hi(gBadgeMenuCurrentPage) +/* 13C61C 802492DC 24840280 */ addiu $a0, $a0, %lo(gBadgeMenuCurrentPage) /* 13C620 802492E0 8C830000 */ lw $v1, ($a0) /* 13C624 802492E4 00031040 */ sll $v0, $v1, 1 /* 13C628 802492E8 00431021 */ addu $v0, $v0, $v1 @@ -172,8 +172,8 @@ glabel pause_badges_handle_input /* 13C648 80249308 080924D2 */ j .L80249348 /* 13C64C 8024930C AC820000 */ sw $v0, ($a0) .L80249310: -/* 13C650 80249310 3C038027 */ lui $v1, 0x8027 -/* 13C654 80249314 24630280 */ addiu $v1, $v1, 0x280 +/* 13C650 80249310 3C038027 */ lui $v1, %hi(gBadgeMenuCurrentPage) +/* 13C654 80249314 24630280 */ addiu $v1, $v1, %lo(gBadgeMenuCurrentPage) /* 13C658 80249318 8C620000 */ lw $v0, ($v1) /* 13C65C 8024931C 2442FFFF */ addiu $v0, $v0, -1 /* 13C660 80249320 04410002 */ bgez $v0, .L8024932C @@ -198,8 +198,8 @@ glabel pause_badges_handle_input /* 13C6A4 80249364 00621024 */ and $v0, $v1, $v0 /* 13C6A8 80249368 1040001C */ beqz $v0, .L802493DC /* 13C6AC 8024936C 00000000 */ nop -/* 13C6B0 80249370 3C068027 */ lui $a2, 0x8027 -/* 13C6B4 80249374 24C60280 */ addiu $a2, $a2, 0x280 +/* 13C6B0 80249370 3C068027 */ lui $a2, %hi(gBadgeMenuCurrentPage) +/* 13C6B4 80249374 24C60280 */ addiu $a2, $a2, %lo(gBadgeMenuCurrentPage) /* 13C6B8 80249378 8CC40000 */ lw $a0, ($a2) /* 13C6BC 8024937C 3C078027 */ lui $a3, %hi(gBadgeMenuPages) /* 13C6C0 80249380 24E70288 */ addiu $a3, $a3, %lo(gBadgeMenuPages) @@ -226,8 +226,8 @@ glabel pause_badges_handle_input /* 13C714 802493D4 08092508 */ j .L80249420 /* 13C718 802493D8 24A5FFFF */ addiu $a1, $a1, -1 .L802493DC: -/* 13C71C 802493DC 3C068027 */ lui $a2, 0x8027 -/* 13C720 802493E0 24C60280 */ addiu $a2, $a2, 0x280 +/* 13C71C 802493DC 3C068027 */ lui $a2, %hi(gBadgeMenuCurrentPage) +/* 13C720 802493E0 24C60280 */ addiu $a2, $a2, %lo(gBadgeMenuCurrentPage) /* 13C724 802493E4 8CC70000 */ lw $a3, ($a2) /* 13C728 802493E8 3C048027 */ lui $a0, %hi(gBadgeMenuPages) /* 13C72C 802493EC 24840288 */ addiu $a0, $a0, %lo(gBadgeMenuPages) @@ -245,8 +245,8 @@ glabel pause_badges_handle_input .L8024941C: /* 13C75C 8024941C 90650001 */ lbu $a1, 1($v1) .L80249420: -/* 13C760 80249420 3C038027 */ lui $v1, 0x8027 -/* 13C764 80249424 8C630280 */ lw $v1, 0x280($v1) +/* 13C760 80249420 3C038027 */ lui $v1, %hi(gBadgeMenuCurrentPage) +/* 13C764 80249424 8C630280 */ lw $v1, %lo(gBadgeMenuCurrentPage)($v1) /* 13C768 80249428 00031040 */ sll $v0, $v1, 1 /* 13C76C 8024942C 00431021 */ addu $v0, $v0, $v1 /* 13C770 80249430 00021080 */ sll $v0, $v0, 2 @@ -256,9 +256,9 @@ glabel pause_badges_handle_input /* 13C780 80249440 00A40018 */ mult $a1, $a0 /* 13C784 80249444 00005012 */ mflo $t2 /* 13C788 80249448 000A1040 */ sll $v0, $t2, 1 -/* 13C78C 8024944C 3C038027 */ lui $v1, 0x8027 +/* 13C78C 8024944C 3C038027 */ lui $v1, %hi(gBadgeMenuItemIDs) /* 13C790 80249450 00621821 */ addu $v1, $v1, $v0 -/* 13C794 80249454 84630180 */ lh $v1, 0x180($v1) +/* 13C794 80249454 84630180 */ lh $v1, %lo(gBadgeMenuItemIDs)($v1) /* 13C798 80249458 24027FFE */ addiu $v0, $zero, 0x7ffe /* 13C79C 8024945C 10620012 */ beq $v1, $v0, .L802494A8 /* 13C7A0 80249460 3C020004 */ lui $v0, 4 @@ -283,8 +283,8 @@ glabel pause_badges_handle_input .L802494A8: /* 13C7E8 802494A8 0000402D */ daddu $t0, $zero, $zero .L802494AC: -/* 13C7EC 802494AC 3C038027 */ lui $v1, 0x8027 -/* 13C7F0 802494B0 8C630280 */ lw $v1, 0x280($v1) +/* 13C7EC 802494AC 3C038027 */ lui $v1, %hi(gBadgeMenuCurrentPage) +/* 13C7F0 802494B0 8C630280 */ lw $v1, %lo(gBadgeMenuCurrentPage)($v1) /* 13C7F4 802494B4 00031040 */ sll $v0, $v1, 1 /* 13C7F8 802494B8 00431021 */ addu $v0, $v0, $v1 /* 13C7FC 802494BC 00021080 */ sll $v0, $v0, 2 @@ -303,9 +303,9 @@ glabel pause_badges_handle_input .L802494F0: /* 13C830 802494F0 8E020000 */ lw $v0, ($s0) /* 13C834 802494F4 00021040 */ sll $v0, $v0, 1 -/* 13C838 802494F8 3C018027 */ lui $at, 0x8027 +/* 13C838 802494F8 3C018027 */ lui $at, %hi(gBadgeMenuItemIDs) /* 13C83C 802494FC 00220821 */ addu $at, $at, $v0 -/* 13C840 80249500 84220180 */ lh $v0, 0x180($at) +/* 13C840 80249500 84220180 */ lh $v0, %lo(gBadgeMenuItemIDs)($at) /* 13C844 80249504 3C018027 */ lui $at, 0x8027 /* 13C848 80249508 AC220380 */ sw $v0, 0x380($at) .L8024950C: diff --git a/asm/nonmatchings/code_135EE0/pause_badges_init.s b/asm/nonmatchings/code_135EE0/pause_badges_init.s index 8c64abe0f8..6fab790ae7 100644 --- a/asm/nonmatchings/code_135EE0/pause_badges_init.s +++ b/asm/nonmatchings/code_135EE0/pause_badges_init.s @@ -18,8 +18,8 @@ glabel pause_badges_init /* 13C334 80248FF4 AC2003A0 */ sw $zero, 0x3a0($at) /* 13C338 80248FF8 0C092363 */ jal pause_badges_load_badges /* 13C33C 80248FFC 0000202D */ daddu $a0, $zero, $zero -/* 13C340 80249000 3C038027 */ lui $v1, 0x8027 -/* 13C344 80249004 84630180 */ lh $v1, 0x180($v1) +/* 13C340 80249000 3C038027 */ lui $v1, %hi(gBadgeMenuItemIDs) +/* 13C344 80249004 84630180 */ lh $v1, %lo(gBadgeMenuItemIDs)($v1) /* 13C348 80249008 24027FFE */ addiu $v0, $zero, 0x7ffe /* 13C34C 8024900C 14620003 */ bne $v1, $v0, .L8024901C /* 13C350 80249010 0000802D */ daddu $s0, $zero, $zero diff --git a/asm/nonmatchings/code_135EE0/pause_badges_load_badges.s b/asm/nonmatchings/code_135EE0/pause_badges_load_badges.s index b4b5c071d1..c01fb56fa6 100644 --- a/asm/nonmatchings/code_135EE0/pause_badges_load_badges.s +++ b/asm/nonmatchings/code_135EE0/pause_badges_load_badges.s @@ -14,8 +14,8 @@ glabel pause_badges_load_badges /* 13C0F0 80248DB0 0000802D */ daddu $s0, $zero, $zero /* 13C0F4 80248DB4 0200202D */ daddu $a0, $s0, $zero /* 13C0F8 80248DB8 0220302D */ daddu $a2, $s1, $zero -/* 13C0FC 80248DBC 3C058027 */ lui $a1, 0x8027 -/* 13C100 80248DC0 24A50180 */ addiu $a1, $a1, 0x180 +/* 13C0FC 80248DBC 3C058027 */ lui $a1, %hi(gBadgeMenuItemIDs) +/* 13C100 80248DC0 24A50180 */ addiu $a1, $a1, %lo(gBadgeMenuItemIDs) .L80248DC4: /* 13C104 80248DC4 84C200B4 */ lh $v0, 0xb4($a2) /* 13C108 80248DC8 94C300B4 */ lhu $v1, 0xb4($a2) @@ -38,8 +38,8 @@ glabel pause_badges_load_badges /* 13C144 80248E04 00000000 */ nop /* 13C148 80248E08 26260208 */ addiu $a2, $s1, 0x208 /* 13C14C 80248E0C 0000202D */ daddu $a0, $zero, $zero -/* 13C150 80248E10 3C058027 */ lui $a1, 0x8027 -/* 13C154 80248E14 24A50180 */ addiu $a1, $a1, 0x180 +/* 13C150 80248E10 3C058027 */ lui $a1, %hi(gBadgeMenuItemIDs) +/* 13C154 80248E14 24A50180 */ addiu $a1, $a1, %lo(gBadgeMenuItemIDs) .L80248E18: /* 13C158 80248E18 84C20000 */ lh $v0, ($a2) /* 13C15C 80248E1C 94C30000 */ lhu $v1, ($a2) @@ -55,8 +55,8 @@ glabel pause_badges_load_badges .L80248E40: /* 13C180 80248E40 16000004 */ bnez $s0, .L80248E54 /* 13C184 80248E44 24027FFE */ addiu $v0, $zero, 0x7ffe -/* 13C188 80248E48 3C018027 */ lui $at, 0x8027 -/* 13C18C 80248E4C A4220180 */ sh $v0, 0x180($at) +/* 13C188 80248E48 3C018027 */ lui $at, %hi(gBadgeMenuItemIDs) +/* 13C18C 80248E4C A4220180 */ sh $v0, %lo(gBadgeMenuItemIDs)($at) /* 13C190 80248E50 24100001 */ addiu $s0, $zero, 1 .L80248E54: /* 13C194 80248E54 3C018027 */ lui $at, 0x8027 @@ -65,8 +65,8 @@ glabel pause_badges_load_badges /* 13C1A0 80248E60 28820080 */ slti $v0, $a0, 0x80 /* 13C1A4 80248E64 1040000A */ beqz $v0, .L80248E90 /* 13C1A8 80248E68 24057FFF */ addiu $a1, $zero, 0x7fff -/* 13C1AC 80248E6C 3C038027 */ lui $v1, 0x8027 -/* 13C1B0 80248E70 24630180 */ addiu $v1, $v1, 0x180 +/* 13C1AC 80248E6C 3C038027 */ lui $v1, %hi(gBadgeMenuItemIDs) +/* 13C1B0 80248E70 24630180 */ addiu $v1, $v1, %lo(gBadgeMenuItemIDs) /* 13C1B4 80248E74 00041040 */ sll $v0, $a0, 1 /* 13C1B8 80248E78 00431821 */ addu $v1, $v0, $v1 .L80248E7C: @@ -93,8 +93,8 @@ glabel pause_badges_load_badges /* 13C208 80248EC8 AC20037C */ sw $zero, 0x37c($at) /* 13C20C 80248ECC 3C018027 */ lui $at, 0x8027 /* 13C210 80248ED0 AC200394 */ sw $zero, 0x394($at) -/* 13C214 80248ED4 3C018027 */ lui $at, 0x8027 -/* 13C218 80248ED8 AC200280 */ sw $zero, 0x280($at) +/* 13C214 80248ED4 3C018027 */ lui $at, %hi(gBadgeMenuCurrentPage) +/* 13C218 80248ED8 AC200280 */ sw $zero, %lo(gBadgeMenuCurrentPage)($at) .L80248EDC: /* 13C21C 80248EDC 84E20000 */ lh $v0, ($a3) /* 13C220 80248EE0 04420001 */ bltzl $v0, .L80248EE8 diff --git a/asm/nonmatchings/code_135EE0/pause_badges_update.s b/asm/nonmatchings/code_135EE0/pause_badges_update.s index 77faa596ef..13f8001375 100644 --- a/asm/nonmatchings/code_135EE0/pause_badges_update.s +++ b/asm/nonmatchings/code_135EE0/pause_badges_update.s @@ -3,8 +3,8 @@ glabel pause_badges_update /* 13C95C 8024961C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 13C960 80249620 3C038027 */ lui $v1, 0x8027 -/* 13C964 80249624 8C630280 */ lw $v1, 0x280($v1) +/* 13C960 80249620 3C038027 */ lui $v1, %hi(gBadgeMenuCurrentPage) +/* 13C964 80249624 8C630280 */ lw $v1, %lo(gBadgeMenuCurrentPage)($v1) /* 13C968 80249628 3C048027 */ lui $a0, %hi(gBadgeMenuPages) /* 13C96C 8024962C 24840288 */ addiu $a0, $a0, %lo(gBadgeMenuPages) /* 13C970 80249630 AFBF0014 */ sw $ra, 0x14($sp) @@ -69,8 +69,8 @@ glabel pause_badges_update /* 13CA40 80249700 3C058027 */ lui $a1, 0x8027 /* 13CA44 80249704 8CA50394 */ lw $a1, 0x394($a1) /* 13CA48 80249708 00A20018 */ mult $a1, $v0 -/* 13CA4C 8024970C 3C048027 */ lui $a0, 0x8027 -/* 13CA50 80249710 8C840280 */ lw $a0, 0x280($a0) +/* 13CA4C 8024970C 3C048027 */ lui $a0, %hi(gBadgeMenuCurrentPage) +/* 13CA50 80249710 8C840280 */ lw $a0, %lo(gBadgeMenuCurrentPage)($a0) /* 13CA54 80249714 00002812 */ mflo $a1 /* 13CA58 80249718 0C091C5A */ jal pause_badges_get_pos_y /* 13CA5C 8024971C 00000000 */ nop diff --git a/asm/nonmatchings/code_135EE0/pause_stats_cleanup.s b/asm/nonmatchings/code_135EE0/pause_stats_cleanup.s index 9f386fe612..8866b2d763 100644 --- a/asm/nonmatchings/code_135EE0/pause_stats_cleanup.s +++ b/asm/nonmatchings/code_135EE0/pause_stats_cleanup.s @@ -6,8 +6,8 @@ glabel pause_stats_cleanup /* 13A2D8 80246F98 AFB10014 */ sw $s1, 0x14($sp) /* 13A2DC 80246F9C 0000882D */ daddu $s1, $zero, $zero /* 13A2E0 80246FA0 AFB00010 */ sw $s0, 0x10($sp) -/* 13A2E4 80246FA4 3C108027 */ lui $s0, 0x8027 -/* 13A2E8 80246FA8 26100150 */ addiu $s0, $s0, 0x150 +/* 13A2E4 80246FA4 3C108027 */ lui $s0, %hi(gStatsMenuIconIDs) +/* 13A2E8 80246FA8 26100150 */ addiu $s0, $s0, %lo(gStatsMenuIconIDs) /* 13A2EC 80246FAC AFBF0018 */ sw $ra, 0x18($sp) .L80246FB0: /* 13A2F0 80246FB0 8E040000 */ lw $a0, ($s0) diff --git a/asm/nonmatchings/code_135EE0/pause_stats_draw_contents.s b/asm/nonmatchings/code_135EE0/pause_stats_draw_contents.s index 27f6124019..c4a93901c7 100644 --- a/asm/nonmatchings/code_135EE0/pause_stats_draw_contents.s +++ b/asm/nonmatchings/code_135EE0/pause_stats_draw_contents.s @@ -9,8 +9,8 @@ glabel pause_stats_draw_contents /* 138CD0 80245990 24A8008F */ addiu $t0, $a1, 0x8f /* 138CD4 80245994 0100282D */ daddu $a1, $t0, $zero /* 138CD8 80245998 AFB1005C */ sw $s1, 0x5c($sp) -/* 138CDC 8024599C 3C118027 */ lui $s1, 0x8027 -/* 138CE0 802459A0 26310150 */ addiu $s1, $s1, 0x150 +/* 138CDC 8024599C 3C118027 */ lui $s1, %hi(gStatsMenuIconIDs) +/* 138CE0 802459A0 26310150 */ addiu $s1, $s1, %lo(gStatsMenuIconIDs) /* 138CE4 802459A4 AFBF007C */ sw $ra, 0x7c($sp) /* 138CE8 802459A8 AFB70074 */ sw $s7, 0x74($sp) /* 138CEC 802459AC AFB60070 */ sw $s6, 0x70($sp) @@ -468,8 +468,8 @@ glabel pause_stats_draw_contents /* 1393F0 802460B0 AFA20048 */ sw $v0, 0x48($sp) /* 1393F4 802460B4 0C03D4B8 */ jal draw_box /* 1393F8 802460B8 AFA0004C */ sw $zero, 0x4c($sp) -/* 1393FC 802460BC 3C168027 */ lui $s6, 0x8027 -/* 139400 802460C0 26D60150 */ addiu $s6, $s6, 0x150 +/* 1393FC 802460BC 3C168027 */ lui $s6, %hi(gStatsMenuIconIDs) +/* 139400 802460C0 26D60150 */ addiu $s6, $s6, %lo(gStatsMenuIconIDs) /* 139404 802460C4 27C60015 */ addiu $a2, $fp, 0x15 /* 139408 802460C8 8FA80084 */ lw $t0, 0x84($sp) /* 13940C 802460CC 8EC40000 */ lw $a0, ($s6) diff --git a/asm/nonmatchings/code_135EE0/pause_stats_init.s b/asm/nonmatchings/code_135EE0/pause_stats_init.s index 28150a4fd6..c8727f798c 100644 --- a/asm/nonmatchings/code_135EE0/pause_stats_init.s +++ b/asm/nonmatchings/code_135EE0/pause_stats_init.s @@ -8,8 +8,8 @@ glabel pause_stats_init /* 139E14 80246AD4 AFB00010 */ sw $s0, 0x10($sp) /* 139E18 80246AD8 0000802D */ daddu $s0, $zero, $zero /* 139E1C 80246ADC AFB20018 */ sw $s2, 0x18($sp) -/* 139E20 80246AE0 3C128027 */ lui $s2, 0x8027 -/* 139E24 80246AE4 26520150 */ addiu $s2, $s2, 0x150 +/* 139E20 80246AE0 3C128027 */ lui $s2, %hi(gStatsMenuIconIDs) +/* 139E24 80246AE4 26520150 */ addiu $s2, $s2, %lo(gStatsMenuIconIDs) /* 139E28 80246AE8 AFB10014 */ sw $s1, 0x14($sp) /* 139E2C 80246AEC 3C118025 */ lui $s1, 0x8025 /* 139E30 80246AF0 2631F330 */ addiu $s1, $s1, -0xcd0 diff --git a/include/common_structs.h b/include/common_structs.h index ca148061b6..11157ccca3 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -1536,7 +1536,7 @@ typedef struct { typedef struct { /* 0x00 */ s8 enabled; /* 0x01 */ s8 listStart; - /* 0x02 */ s8 numCols; + /* 0x02 */ u8 numCols; /* 0x03 */ s8 numRows; /* 0x04 */ s32 startIndex; /* 0x08 */ s32 count; diff --git a/include/variables.h b/include/variables.h index 02959ac219..55782e59b6 100644 --- a/include/variables.h +++ b/include/variables.h @@ -128,6 +128,12 @@ extern s32 gPauseMenuCursorTargetOpacity; extern PauseItemPage gBadgeMenuPages[20]; extern s32 gBadgeMenuCurrentScrollPos; extern s32 gBadgeMenuTargetScrollPos; +extern ItemId gBadgeMenuItemIDs[128]; +extern s32 gBadgeMenuCurrentPage; + +// Stats +extern s32 gStatsMenuIconIDs[12]; + extern s32 gGameState; extern s32 D_8009A650[1]; diff --git a/src/code_135EE0.c b/src/code_135EE0.c index 91b568609f..2d5a70d30a 100644 --- a/src/code_135EE0.c +++ b/src/code_135EE0.c @@ -103,7 +103,9 @@ INCLUDE_ASM(s32, "code_135EE0", pause_badges_get_pos_x); INCLUDE_ASM(s32, "code_135EE0", pause_badges_get_pos_y); -INCLUDE_ASM(s32, "code_135EE0", pause_badges_get_column); +s32 pause_badges_get_column(s32 page, s32 itemIdx) { + return itemIdx % gBadgeMenuPages[page].numCols; +} INCLUDE_ASM(s32, "code_135EE0", pause_badges_get_row); diff --git a/undefined_syms.txt b/undefined_syms.txt index 50bcdba354..89b1d53c75 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -148,6 +148,9 @@ gBackgroundImage = 0x80200000; gPauseMenuCursorTargetOpacity = 0x8024EFB0; +gStatsMenuIconIDs = 0x80270150; +gBadgeMenuItemIDs = 0x80270180; +gBadgeMenuCurrentPage = 0x80270280; gBadgeMenuPages = 0x80270288; gBadgeMenuCurrentScrollPos = 0x8027038C; gBadgeMenuTargetScrollPos = 0x80270390; From 43f11633a3e35a71a79b700c96fa4e5b536b203e Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Tue, 10 Nov 2020 10:11:43 -0500 Subject: [PATCH 30/52] more syms, file split --- asm/nonmatchings/code_135EE0/func_80242BAC.s | 8 +-- asm/nonmatchings/code_135EE0/func_80242D04.s | 12 ++-- asm/nonmatchings/code_135EE0/pause_cleanup.s | 4 +- .../code_135EE0/pause_handle_input.s | 8 +-- asm/nonmatchings/code_135EE0/pause_init.s | 12 ++-- .../code_135EE0/pause_interp_cursor.s | 20 +++--- .../code_135EE0/pause_interp_text_scroll.s | 4 +- .../pause_interp_vertical_scroll.s | 4 +- .../code_135EE0/pause_stats_cleanup.s | 24 ------- .../code_135EE0/pause_tabs_cleanup.s | 25 ------- .../code_135EE0/pause_tabs_draw_badges.s | 12 ++-- .../code_135EE0/pause_tabs_draw_items.s | 12 ++-- .../code_135EE0/pause_tabs_draw_map.s | 12 ++-- .../code_135EE0/pause_tabs_draw_party.s | 12 ++-- .../code_135EE0/pause_tabs_draw_spirits.s | 12 ++-- .../code_135EE0/pause_tabs_draw_stats.s | 12 ++-- .../code_135EE0/pause_tabs_handle_input.s | 12 ++-- .../code_135EE0/pause_tabs_init.s | 4 +- .../code_135EE0/pause_tabs_update.s | 8 +-- .../code_135EE0/pause_update_cursor.s | 8 +-- .../pause_badges_cleanup.s | 0 .../pause_badges_comparator.s | 0 .../pause_badges_count_all.s | 0 .../pause_badges_count_equipped.s | 0 .../pause_badges_draw_bp_orbs.s | 0 .../pause_badges_draw_contents.s | 0 .../pause_badges_get_pos_x.s | 0 .../pause_badges_get_pos_y.s | 0 .../pause_badges_get_row.s | 0 .../pause_badges_handle_input.s | 0 .../pause_badges_init.s | 0 .../pause_badges_load_badges.s | 0 .../pause_badges_try_equip.s | 0 .../pause_badges_try_remove.s | 0 .../pause_badges_update.s | 0 .../pause_stats_draw_contents.s | 0 .../pause_stats_handle_input.s | 0 .../pause_stats_init.s | 0 include/common_structs.h | 9 +++ include/variables.h | 8 +++ src/code_135EE0.c | 61 ++--------------- src/code_138CC0.c | 66 +++++++++++++++++++ tools/splat.yaml | 1 + undefined_syms.txt | 9 +++ 44 files changed, 186 insertions(+), 193 deletions(-) delete mode 100644 asm/nonmatchings/code_135EE0/pause_stats_cleanup.s delete mode 100644 asm/nonmatchings/code_135EE0/pause_tabs_cleanup.s rename asm/nonmatchings/{code_135EE0 => code_138CC0}/pause_badges_cleanup.s (100%) rename asm/nonmatchings/{code_135EE0 => code_138CC0}/pause_badges_comparator.s (100%) rename asm/nonmatchings/{code_135EE0 => code_138CC0}/pause_badges_count_all.s (100%) rename asm/nonmatchings/{code_135EE0 => code_138CC0}/pause_badges_count_equipped.s (100%) rename asm/nonmatchings/{code_135EE0 => code_138CC0}/pause_badges_draw_bp_orbs.s (100%) rename asm/nonmatchings/{code_135EE0 => code_138CC0}/pause_badges_draw_contents.s (100%) rename asm/nonmatchings/{code_135EE0 => code_138CC0}/pause_badges_get_pos_x.s (100%) rename asm/nonmatchings/{code_135EE0 => code_138CC0}/pause_badges_get_pos_y.s (100%) rename asm/nonmatchings/{code_135EE0 => code_138CC0}/pause_badges_get_row.s (100%) rename asm/nonmatchings/{code_135EE0 => code_138CC0}/pause_badges_handle_input.s (100%) rename asm/nonmatchings/{code_135EE0 => code_138CC0}/pause_badges_init.s (100%) rename asm/nonmatchings/{code_135EE0 => code_138CC0}/pause_badges_load_badges.s (100%) rename asm/nonmatchings/{code_135EE0 => code_138CC0}/pause_badges_try_equip.s (100%) rename asm/nonmatchings/{code_135EE0 => code_138CC0}/pause_badges_try_remove.s (100%) rename asm/nonmatchings/{code_135EE0 => code_138CC0}/pause_badges_update.s (100%) rename asm/nonmatchings/{code_135EE0 => code_138CC0}/pause_stats_draw_contents.s (100%) rename asm/nonmatchings/{code_135EE0 => code_138CC0}/pause_stats_handle_input.s (100%) rename asm/nonmatchings/{code_135EE0 => code_138CC0}/pause_stats_init.s (100%) create mode 100644 src/code_138CC0.c diff --git a/asm/nonmatchings/code_135EE0/func_80242BAC.s b/asm/nonmatchings/code_135EE0/func_80242BAC.s index 90a8f02ff0..fe54f18160 100644 --- a/asm/nonmatchings/code_135EE0/func_80242BAC.s +++ b/asm/nonmatchings/code_135EE0/func_80242BAC.s @@ -80,10 +80,10 @@ glabel func_80242BAC /* 135FFC 80242CBC 14400009 */ bnez $v0, .L80242CE4 /* 136000 80242CC0 00000000 */ nop .L80242CC4: -/* 136004 80242CC4 3C018025 */ lui $at, 0x8025 -/* 136008 80242CC8 AC31EFA8 */ sw $s1, -0x1058($at) -/* 13600C 80242CCC 3C018025 */ lui $at, 0x8025 -/* 136010 80242CD0 AC31EF9C */ sw $s1, -0x1064($at) +/* 136004 80242CC4 3C018025 */ lui $at, %hi(gPauseMenuTargetPos) +/* 136008 80242CC8 AC31EFA8 */ sw $s1, %lo(gPauseMenuTargetPos)($at) +/* 13600C 80242CCC 3C018025 */ lui $at, %hi(gPauseMenuCursorPos) +/* 136010 80242CD0 AC31EF9C */ sw $s1, %lo(gPauseMenuCursorPos)($at) /* 136014 80242CD4 3C018025 */ lui $at, 0x8025 /* 136018 80242CD8 AC33EFAC */ sw $s3, -0x1054($at) /* 13601C 80242CDC 3C018025 */ lui $at, 0x8025 diff --git a/asm/nonmatchings/code_135EE0/func_80242D04.s b/asm/nonmatchings/code_135EE0/func_80242D04.s index 1a84a1331e..90ba1238ee 100644 --- a/asm/nonmatchings/code_135EE0/func_80242D04.s +++ b/asm/nonmatchings/code_135EE0/func_80242D04.s @@ -66,10 +66,10 @@ glabel func_80242D04 /* 136120 80242DE0 3C018025 */ lui $at, 0x8025 /* 136124 80242DE4 AC20EFB4 */ sw $zero, -0x104c($at) .L80242DE8: -/* 136128 80242DE8 3C018025 */ lui $at, 0x8025 -/* 13612C 80242DEC AC32EFA8 */ sw $s2, -0x1058($at) -/* 136130 80242DF0 3C018025 */ lui $at, 0x8025 -/* 136134 80242DF4 AC32EF9C */ sw $s2, -0x1064($at) +/* 136128 80242DE8 3C018025 */ lui $at, %hi(gPauseMenuTargetPos) +/* 13612C 80242DEC AC32EFA8 */ sw $s2, %lo(gPauseMenuTargetPos)($at) +/* 136130 80242DF0 3C018025 */ lui $at, %hi(gPauseMenuCursorPos) +/* 136134 80242DF4 AC32EF9C */ sw $s2, %lo(gPauseMenuCursorPos)($at) /* 136138 80242DF8 3C018025 */ lui $at, 0x8025 /* 13613C 80242DFC AC33EFAC */ sw $s3, -0x1054($at) /* 136140 80242E00 3C018025 */ lui $at, 0x8025 @@ -89,8 +89,8 @@ glabel func_80242D04 /* 136174 80242E34 14400005 */ bnez $v0, .L80242E4C /* 136178 80242E38 00000000 */ nop .L80242E3C: -/* 13617C 80242E3C 3C018025 */ lui $at, 0x8025 -/* 136180 80242E40 AC32EFA8 */ sw $s2, -0x1058($at) +/* 13617C 80242E3C 3C018025 */ lui $at, %hi(gPauseMenuTargetPos) +/* 136180 80242E40 AC32EFA8 */ sw $s2, %lo(gPauseMenuTargetPos)($at) /* 136184 80242E44 3C018025 */ lui $at, 0x8025 /* 136188 80242E48 AC33EFAC */ sw $s3, -0x1054($at) .L80242E4C: diff --git a/asm/nonmatchings/code_135EE0/pause_cleanup.s b/asm/nonmatchings/code_135EE0/pause_cleanup.s index bfcc4b13cb..3060008bb7 100644 --- a/asm/nonmatchings/code_135EE0/pause_cleanup.s +++ b/asm/nonmatchings/code_135EE0/pause_cleanup.s @@ -33,8 +33,8 @@ glabel pause_cleanup /* 137AB0 80244770 1440FFFA */ bnez $v0, .L8024475C /* 137AB4 80244774 00000000 */ nop .L80244778: -/* 137AB8 80244778 3C118025 */ lui $s1, 0x8025 -/* 137ABC 8024477C 2631EF80 */ addiu $s1, $s1, -0x1080 +/* 137AB8 80244778 3C118025 */ lui $s1, %hi(gPauseMenuTabs) +/* 137ABC 8024477C 2631EF80 */ addiu $s1, $s1, %lo(gPauseMenuTabs) /* 137AC0 80244780 0000802D */ daddu $s0, $zero, $zero .L80244784: /* 137AC4 80244784 8E240000 */ lw $a0, ($s1) diff --git a/asm/nonmatchings/code_135EE0/pause_handle_input.s b/asm/nonmatchings/code_135EE0/pause_handle_input.s index 14e3ec898c..3240a5e1d2 100644 --- a/asm/nonmatchings/code_135EE0/pause_handle_input.s +++ b/asm/nonmatchings/code_135EE0/pause_handle_input.s @@ -20,9 +20,9 @@ glabel pause_handle_input /* 1377A0 80244460 AFB10034 */ sw $s1, 0x34($sp) /* 1377A4 80244464 AFB00030 */ sw $s0, 0x30($sp) /* 1377A8 80244468 00021080 */ sll $v0, $v0, 2 -/* 1377AC 8024446C 3C148025 */ lui $s4, 0x8025 +/* 1377AC 8024446C 3C148025 */ lui $s4, %hi(gPauseMenuTabs) /* 1377B0 80244470 0282A021 */ addu $s4, $s4, $v0 -/* 1377B4 80244474 8E94EF80 */ lw $s4, -0x1080($s4) +/* 1377B4 80244474 8E94EF80 */ lw $s4, %lo(gPauseMenuTabs)($s4) /* 1377B8 80244478 0C0B1EAF */ jal get_variable /* 1377BC 8024447C 34A55BDE */ ori $a1, $a1, 0x5bde /* 1377C0 80244480 1040000F */ beqz $v0, .L802444C0 @@ -174,8 +174,8 @@ glabel pause_handle_input /* 1379DC 8024469C 0040F809 */ jalr $v0 /* 1379E0 802446A0 0280202D */ daddu $a0, $s4, $zero .L802446A4: -/* 1379E4 802446A4 3C118025 */ lui $s1, 0x8025 -/* 1379E8 802446A8 2631EF80 */ addiu $s1, $s1, -0x1080 +/* 1379E4 802446A4 3C118025 */ lui $s1, %hi(gPauseMenuTabs) +/* 1379E8 802446A8 2631EF80 */ addiu $s1, $s1, %lo(gPauseMenuTabs) /* 1379EC 802446AC 0000802D */ daddu $s0, $zero, $zero .L802446B0: /* 1379F0 802446B0 8E240000 */ lw $a0, ($s1) diff --git a/asm/nonmatchings/code_135EE0/pause_init.s b/asm/nonmatchings/code_135EE0/pause_init.s index d408c67985..a0a9bb3829 100644 --- a/asm/nonmatchings/code_135EE0/pause_init.s +++ b/asm/nonmatchings/code_135EE0/pause_init.s @@ -20,8 +20,8 @@ glabel pause_init /* 1373DC 8024409C 0000882D */ daddu $s1, $zero, $zero /* 1373E0 802440A0 3C138024 */ lui $s3, 0x8024 /* 1373E4 802440A4 26731ECC */ addiu $s3, $s3, 0x1ecc -/* 1373E8 802440A8 3C108025 */ lui $s0, 0x8025 -/* 1373EC 802440AC 2610EF60 */ addiu $s0, $s0, -0x10a0 +/* 1373E8 802440A8 3C108025 */ lui $s0, %hi(gPauseMenuIconScripts) +/* 1373EC 802440AC 2610EF60 */ addiu $s0, $s0, %lo(gPauseMenuIconScripts) /* 1373F0 802440B0 3C128027 */ lui $s2, 0x8027 /* 1373F4 802440B4 265200E8 */ addiu $s2, $s2, 0xe8 .L802440B8: @@ -44,8 +44,8 @@ glabel pause_init /* 137434 802440F4 3C048025 */ lui $a0, 0x8025 /* 137438 802440F8 2484F114 */ addiu $a0, $a0, -0xeec /* 13743C 802440FC 24050004 */ addiu $a1, $zero, 4 -/* 137440 80244100 3C108025 */ lui $s0, 0x8025 -/* 137444 80244104 2610EF80 */ addiu $s0, $s0, -0x1080 +/* 137440 80244100 3C108025 */ lui $s0, %hi(gPauseMenuTabs) +/* 137444 80244104 2610EF80 */ addiu $s0, $s0, %lo(gPauseMenuTabs) /* 137448 80244108 3C028027 */ lui $v0, 0x8027 /* 13744C 8024410C 8C4200E8 */ lw $v0, 0xe8($v0) /* 137450 80244110 3C018027 */ lui $at, 0x8027 @@ -107,8 +107,8 @@ glabel pause_init /* 13751C 802441DC 2631FFFF */ addiu $s1, $s1, -1 /* 137520 802441E0 1E20FFF0 */ bgtz $s1, .L802441A4 /* 137524 802441E4 2610FFFC */ addiu $s0, $s0, -4 -/* 137528 802441E8 3C028025 */ lui $v0, 0x8025 -/* 13752C 802441EC 8C42EF80 */ lw $v0, -0x1080($v0) +/* 137528 802441E8 3C028025 */ lui $v0, %hi(gPauseMenuTabs) +/* 13752C 802441EC 8C42EF80 */ lw $v0, %lo(gPauseMenuTabs)($v0) /* 137530 802441F0 0000202D */ daddu $a0, $zero, $zero /* 137534 802441F4 80420001 */ lb $v0, 1($v0) /* 137538 802441F8 3C05F840 */ lui $a1, 0xf840 diff --git a/asm/nonmatchings/code_135EE0/pause_interp_cursor.s b/asm/nonmatchings/code_135EE0/pause_interp_cursor.s index f0d7dab02a..7511dfa480 100644 --- a/asm/nonmatchings/code_135EE0/pause_interp_cursor.s +++ b/asm/nonmatchings/code_135EE0/pause_interp_cursor.s @@ -2,10 +2,10 @@ .set noreorder # don't insert nops after branches glabel pause_interp_cursor -/* 1361AC 80242E6C 3C0A8025 */ lui $t2, 0x8025 -/* 1361B0 80242E70 254AEF9C */ addiu $t2, $t2, -0x1064 -/* 1361B4 80242E74 3C058025 */ lui $a1, 0x8025 -/* 1361B8 80242E78 8CA5EFA8 */ lw $a1, -0x1058($a1) +/* 1361AC 80242E6C 3C0A8025 */ lui $t2, %hi(gPauseMenuCursorPos) +/* 1361B0 80242E70 254AEF9C */ addiu $t2, $t2, %lo(gPauseMenuCursorPos) +/* 1361B4 80242E74 3C058025 */ lui $a1, %hi(gPauseMenuTargetPos) +/* 1361B8 80242E78 8CA5EFA8 */ lw $a1, %lo(gPauseMenuTargetPos)($a1) /* 1361BC 80242E7C 8D430000 */ lw $v1, ($t2) /* 1361C0 80242E80 3C013FE0 */ lui $at, 0x3fe0 /* 1361C4 80242E84 44812800 */ mtc1 $at, $f5 @@ -43,8 +43,8 @@ glabel pause_interp_cursor /* 136240 80242F00 AD450000 */ sw $a1, ($t2) /* 136244 80242F04 AD240000 */ sw $a0, ($t1) .L80242F08: -/* 136248 80242F08 3C038025 */ lui $v1, 0x8025 -/* 13624C 80242F0C 2463EF9C */ addiu $v1, $v1, -0x1064 +/* 136248 80242F08 3C038025 */ lui $v1, %hi(gPauseMenuCursorPos) +/* 13624C 80242F0C 2463EF9C */ addiu $v1, $v1, %lo(gPauseMenuCursorPos) /* 136250 80242F10 8C620000 */ lw $v0, ($v1) /* 136254 80242F14 00471021 */ addu $v0, $v0, $a3 /* 136258 80242F18 AC620000 */ sw $v0, ($v1) @@ -56,8 +56,8 @@ glabel pause_interp_cursor /* 136270 80242F30 00481021 */ addu $v0, $v0, $t0 /* 136274 80242F34 14800009 */ bnez $a0, .L80242F5C /* 136278 80242F38 AC620000 */ sw $v0, ($v1) -/* 13627C 80242F3C 3C038025 */ lui $v1, 0x8025 -/* 136280 80242F40 2463EFA4 */ addiu $v1, $v1, -0x105c +/* 13627C 80242F3C 3C038025 */ lui $v1, %hi(gPauseMenuCursorOpacity) +/* 136280 80242F40 2463EFA4 */ addiu $v1, $v1, %lo(gPauseMenuCursorOpacity) /* 136284 80242F44 8C620000 */ lw $v0, ($v1) /* 136288 80242F48 2442FF80 */ addiu $v0, $v0, -0x80 /* 13628C 80242F4C 0441000C */ bgez $v0, .L80242F80 @@ -65,8 +65,8 @@ glabel pause_interp_cursor /* 136294 80242F54 08090BE0 */ j .L80242F80 /* 136298 80242F58 AC600000 */ sw $zero, ($v1) .L80242F5C: -/* 13629C 80242F5C 3C038025 */ lui $v1, 0x8025 -/* 1362A0 80242F60 2463EFA4 */ addiu $v1, $v1, -0x105c +/* 13629C 80242F5C 3C038025 */ lui $v1, %hi(gPauseMenuCursorOpacity) +/* 1362A0 80242F60 2463EFA4 */ addiu $v1, $v1, %lo(gPauseMenuCursorOpacity) /* 1362A4 80242F64 8C620000 */ lw $v0, ($v1) /* 1362A8 80242F68 24420020 */ addiu $v0, $v0, 0x20 /* 1362AC 80242F6C AC620000 */ sw $v0, ($v1) diff --git a/asm/nonmatchings/code_135EE0/pause_interp_text_scroll.s b/asm/nonmatchings/code_135EE0/pause_interp_text_scroll.s index c616ee62d7..af9dda7eb9 100644 --- a/asm/nonmatchings/code_135EE0/pause_interp_text_scroll.s +++ b/asm/nonmatchings/code_135EE0/pause_interp_text_scroll.s @@ -15,9 +15,9 @@ glabel pause_interp_text_scroll /* 13677C 8024343C 2A020010 */ slti $v0, $s0, 0x10 /* 136780 80243440 10400004 */ beqz $v0, .L80243454 /* 136784 80243444 24020008 */ addiu $v0, $zero, 8 -/* 136788 80243448 3C028025 */ lui $v0, 0x8025 +/* 136788 80243448 3C028025 */ lui $v0, %hi(gPauseMenuTextScrollInterpEasingLUT) /* 13678C 8024344C 00501021 */ addu $v0, $v0, $s0 -/* 136790 80243450 9042F0AC */ lbu $v0, -0xf54($v0) +/* 136790 80243450 9042F0AC */ lbu $v0, %lo(gPauseMenuTextScrollInterpEasingLUT)($v0) .L80243454: /* 136794 80243454 00430018 */ mult $v0, $v1 /* 136798 80243458 8FBF0014 */ lw $ra, 0x14($sp) diff --git a/asm/nonmatchings/code_135EE0/pause_interp_vertical_scroll.s b/asm/nonmatchings/code_135EE0/pause_interp_vertical_scroll.s index eaf1743174..709e6df799 100644 --- a/asm/nonmatchings/code_135EE0/pause_interp_vertical_scroll.s +++ b/asm/nonmatchings/code_135EE0/pause_interp_vertical_scroll.s @@ -23,9 +23,9 @@ glabel pause_interp_vertical_scroll /* 1367F0 802434B0 08090D32 */ j .L802434C8 /* 1367F4 802434B4 00830018 */ mult $a0, $v1 .L802434B8: -/* 1367F8 802434B8 3C048025 */ lui $a0, 0x8025 +/* 1367F8 802434B8 3C048025 */ lui $a0, %hi(gPauseMenuPageScrollInterpEasingLUT) /* 1367FC 802434BC 00902021 */ addu $a0, $a0, $s0 -/* 136800 802434C0 9084F0BC */ lbu $a0, -0xf44($a0) +/* 136800 802434C0 9084F0BC */ lbu $a0, %lo(gPauseMenuPageScrollInterpEasingLUT)($a0) .L802434C4: /* 136804 802434C4 00830018 */ mult $a0, $v1 .L802434C8: diff --git a/asm/nonmatchings/code_135EE0/pause_stats_cleanup.s b/asm/nonmatchings/code_135EE0/pause_stats_cleanup.s deleted file mode 100644 index 8866b2d763..0000000000 --- a/asm/nonmatchings/code_135EE0/pause_stats_cleanup.s +++ /dev/null @@ -1,24 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel pause_stats_cleanup -/* 13A2D4 80246F94 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 13A2D8 80246F98 AFB10014 */ sw $s1, 0x14($sp) -/* 13A2DC 80246F9C 0000882D */ daddu $s1, $zero, $zero -/* 13A2E0 80246FA0 AFB00010 */ sw $s0, 0x10($sp) -/* 13A2E4 80246FA4 3C108027 */ lui $s0, %hi(gStatsMenuIconIDs) -/* 13A2E8 80246FA8 26100150 */ addiu $s0, $s0, %lo(gStatsMenuIconIDs) -/* 13A2EC 80246FAC AFBF0018 */ sw $ra, 0x18($sp) -.L80246FB0: -/* 13A2F0 80246FB0 8E040000 */ lw $a0, ($s0) -/* 13A2F4 80246FB4 26100004 */ addiu $s0, $s0, 4 -/* 13A2F8 80246FB8 0C05123D */ jal free_icon -/* 13A2FC 80246FBC 26310001 */ addiu $s1, $s1, 1 -/* 13A300 80246FC0 2A22000C */ slti $v0, $s1, 0xc -/* 13A304 80246FC4 1440FFFA */ bnez $v0, .L80246FB0 -/* 13A308 80246FC8 00000000 */ nop -/* 13A30C 80246FCC 8FBF0018 */ lw $ra, 0x18($sp) -/* 13A310 80246FD0 8FB10014 */ lw $s1, 0x14($sp) -/* 13A314 80246FD4 8FB00010 */ lw $s0, 0x10($sp) -/* 13A318 80246FD8 03E00008 */ jr $ra -/* 13A31C 80246FDC 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/nonmatchings/code_135EE0/pause_tabs_cleanup.s b/asm/nonmatchings/code_135EE0/pause_tabs_cleanup.s deleted file mode 100644 index 5ffac8deec..0000000000 --- a/asm/nonmatchings/code_135EE0/pause_tabs_cleanup.s +++ /dev/null @@ -1,25 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel pause_tabs_cleanup -/* 138C70 80245930 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 138C74 80245934 AFB10014 */ sw $s1, 0x14($sp) -/* 138C78 80245938 0000882D */ daddu $s1, $zero, $zero -/* 138C7C 8024593C AFB00010 */ sw $s0, 0x10($sp) -/* 138C80 80245940 3C108027 */ lui $s0, 0x8027 -/* 138C84 80245944 26100130 */ addiu $s0, $s0, 0x130 -/* 138C88 80245948 AFBF0018 */ sw $ra, 0x18($sp) -.L8024594C: -/* 138C8C 8024594C 8E040000 */ lw $a0, ($s0) -/* 138C90 80245950 26100004 */ addiu $s0, $s0, 4 -/* 138C94 80245954 0C05123D */ jal free_icon -/* 138C98 80245958 26310001 */ addiu $s1, $s1, 1 -/* 138C9C 8024595C 2A220006 */ slti $v0, $s1, 6 -/* 138CA0 80245960 1440FFFA */ bnez $v0, .L8024594C -/* 138CA4 80245964 00000000 */ nop -/* 138CA8 80245968 8FBF0018 */ lw $ra, 0x18($sp) -/* 138CAC 8024596C 8FB10014 */ lw $s1, 0x14($sp) -/* 138CB0 80245970 8FB00010 */ lw $s0, 0x10($sp) -/* 138CB4 80245974 03E00008 */ jr $ra -/* 138CB8 80245978 27BD0020 */ addiu $sp, $sp, 0x20 -/* 138CBC 8024597C 00000000 */ nop diff --git a/asm/nonmatchings/code_135EE0/pause_tabs_draw_badges.s b/asm/nonmatchings/code_135EE0/pause_tabs_draw_badges.s index 69b241315f..4fb718f660 100644 --- a/asm/nonmatchings/code_135EE0/pause_tabs_draw_badges.s +++ b/asm/nonmatchings/code_135EE0/pause_tabs_draw_badges.s @@ -14,8 +14,8 @@ glabel pause_tabs_draw_badges /* 138024 80244CE4 AFBF0024 */ sw $ra, 0x24($sp) /* 138028 80244CE8 12200016 */ beqz $s1, .L80244D44 /* 13802C 80244CEC AFB00010 */ sw $s0, 0x10($sp) -/* 138030 80244CF0 3C108027 */ lui $s0, 0x8027 -/* 138034 80244CF4 26100130 */ addiu $s0, $s0, 0x130 +/* 138030 80244CF0 3C108027 */ lui $s0, %hi(gPauseMenuTabIconIDs) +/* 138034 80244CF4 26100130 */ addiu $s0, $s0, %lo(gPauseMenuTabIconIDs) /* 138038 80244CF8 8E040004 */ lw $a0, 4($s0) /* 13803C 80244CFC 0C051280 */ jal set_icon_flags /* 138040 80244D00 24050020 */ addiu $a1, $zero, 0x20 @@ -36,8 +36,8 @@ glabel pause_tabs_draw_badges /* 13807C 80244D3C 08091358 */ j .L80244D60 /* 138080 80244D40 00000000 */ nop .L80244D44: -/* 138084 80244D44 3C108027 */ lui $s0, 0x8027 -/* 138088 80244D48 26100130 */ addiu $s0, $s0, 0x130 +/* 138084 80244D44 3C108027 */ lui $s0, %hi(gPauseMenuTabIconIDs) +/* 138088 80244D48 26100130 */ addiu $s0, $s0, %lo(gPauseMenuTabIconIDs) /* 13808C 80244D4C 8E040004 */ lw $a0, 4($s0) /* 138090 80244D50 0C05128B */ jal clear_icon_flags /* 138094 80244D54 24050020 */ addiu $a1, $zero, 0x20 @@ -47,8 +47,8 @@ glabel pause_tabs_draw_badges /* 1380A0 80244D60 0C0513AC */ jal icon_set_opacity /* 1380A4 80244D64 00000000 */ nop /* 1380A8 80244D68 26450016 */ addiu $a1, $s2, 0x16 -/* 1380AC 80244D6C 3C108027 */ lui $s0, 0x8027 -/* 1380B0 80244D70 26100130 */ addiu $s0, $s0, 0x130 +/* 1380AC 80244D6C 3C108027 */ lui $s0, %hi(gPauseMenuTabIconIDs) +/* 1380B0 80244D70 26100130 */ addiu $s0, $s0, %lo(gPauseMenuTabIconIDs) /* 1380B4 80244D74 8E040004 */ lw $a0, 4($s0) /* 1380B8 80244D78 0C051261 */ jal set_icon_render_pos /* 1380BC 80244D7C 26660007 */ addiu $a2, $s3, 7 diff --git a/asm/nonmatchings/code_135EE0/pause_tabs_draw_items.s b/asm/nonmatchings/code_135EE0/pause_tabs_draw_items.s index 739c2e0f05..87de13af01 100644 --- a/asm/nonmatchings/code_135EE0/pause_tabs_draw_items.s +++ b/asm/nonmatchings/code_135EE0/pause_tabs_draw_items.s @@ -14,8 +14,8 @@ glabel pause_tabs_draw_items /* 13814C 80244E0C AFBF0024 */ sw $ra, 0x24($sp) /* 138150 80244E10 12200016 */ beqz $s1, .L80244E6C /* 138154 80244E14 AFB00010 */ sw $s0, 0x10($sp) -/* 138158 80244E18 3C108027 */ lui $s0, 0x8027 -/* 13815C 80244E1C 26100130 */ addiu $s0, $s0, 0x130 +/* 138158 80244E18 3C108027 */ lui $s0, %hi(gPauseMenuTabIconIDs) +/* 13815C 80244E1C 26100130 */ addiu $s0, $s0, %lo(gPauseMenuTabIconIDs) /* 138160 80244E20 8E040008 */ lw $a0, 8($s0) /* 138164 80244E24 0C051280 */ jal set_icon_flags /* 138168 80244E28 24050020 */ addiu $a1, $zero, 0x20 @@ -36,8 +36,8 @@ glabel pause_tabs_draw_items /* 1381A4 80244E64 080913A2 */ j .L80244E88 /* 1381A8 80244E68 00000000 */ nop .L80244E6C: -/* 1381AC 80244E6C 3C108027 */ lui $s0, 0x8027 -/* 1381B0 80244E70 26100130 */ addiu $s0, $s0, 0x130 +/* 1381AC 80244E6C 3C108027 */ lui $s0, %hi(gPauseMenuTabIconIDs) +/* 1381B0 80244E70 26100130 */ addiu $s0, $s0, %lo(gPauseMenuTabIconIDs) /* 1381B4 80244E74 8E040008 */ lw $a0, 8($s0) /* 1381B8 80244E78 0C05128B */ jal clear_icon_flags /* 1381BC 80244E7C 24050020 */ addiu $a1, $zero, 0x20 @@ -47,8 +47,8 @@ glabel pause_tabs_draw_items /* 1381C8 80244E88 0C0513AC */ jal icon_set_opacity /* 1381CC 80244E8C 00000000 */ nop /* 1381D0 80244E90 26450016 */ addiu $a1, $s2, 0x16 -/* 1381D4 80244E94 3C108027 */ lui $s0, 0x8027 -/* 1381D8 80244E98 26100130 */ addiu $s0, $s0, 0x130 +/* 1381D4 80244E94 3C108027 */ lui $s0, %hi(gPauseMenuTabIconIDs) +/* 1381D8 80244E98 26100130 */ addiu $s0, $s0, %lo(gPauseMenuTabIconIDs) /* 1381DC 80244E9C 8E040008 */ lw $a0, 8($s0) /* 1381E0 80244EA0 0C051261 */ jal set_icon_render_pos /* 1381E4 80244EA4 26660007 */ addiu $a2, $s3, 7 diff --git a/asm/nonmatchings/code_135EE0/pause_tabs_draw_map.s b/asm/nonmatchings/code_135EE0/pause_tabs_draw_map.s index 4c52bac22c..71875acb18 100644 --- a/asm/nonmatchings/code_135EE0/pause_tabs_draw_map.s +++ b/asm/nonmatchings/code_135EE0/pause_tabs_draw_map.s @@ -14,8 +14,8 @@ glabel pause_tabs_draw_map /* 1384C4 80245184 AFBF0024 */ sw $ra, 0x24($sp) /* 1384C8 80245188 12200016 */ beqz $s1, .L802451E4 /* 1384CC 8024518C AFB00010 */ sw $s0, 0x10($sp) -/* 1384D0 80245190 3C108027 */ lui $s0, 0x8027 -/* 1384D4 80245194 26100130 */ addiu $s0, $s0, 0x130 +/* 1384D0 80245190 3C108027 */ lui $s0, %hi(gPauseMenuTabIconIDs) +/* 1384D4 80245194 26100130 */ addiu $s0, $s0, %lo(gPauseMenuTabIconIDs) /* 1384D8 80245198 8E040014 */ lw $a0, 0x14($s0) /* 1384DC 8024519C 0C051280 */ jal set_icon_flags /* 1384E0 802451A0 24050020 */ addiu $a1, $zero, 0x20 @@ -36,8 +36,8 @@ glabel pause_tabs_draw_map /* 13851C 802451DC 08091480 */ j .L80245200 /* 138520 802451E0 00000000 */ nop .L802451E4: -/* 138524 802451E4 3C108027 */ lui $s0, 0x8027 -/* 138528 802451E8 26100130 */ addiu $s0, $s0, 0x130 +/* 138524 802451E4 3C108027 */ lui $s0, %hi(gPauseMenuTabIconIDs) +/* 138528 802451E8 26100130 */ addiu $s0, $s0, %lo(gPauseMenuTabIconIDs) /* 13852C 802451EC 8E040014 */ lw $a0, 0x14($s0) /* 138530 802451F0 0C05128B */ jal clear_icon_flags /* 138534 802451F4 24050020 */ addiu $a1, $zero, 0x20 @@ -47,8 +47,8 @@ glabel pause_tabs_draw_map /* 138540 80245200 0C0513AC */ jal icon_set_opacity /* 138544 80245204 00000000 */ nop /* 138548 80245208 26450017 */ addiu $a1, $s2, 0x17 -/* 13854C 8024520C 3C108027 */ lui $s0, 0x8027 -/* 138550 80245210 26100130 */ addiu $s0, $s0, 0x130 +/* 13854C 8024520C 3C108027 */ lui $s0, %hi(gPauseMenuTabIconIDs) +/* 138550 80245210 26100130 */ addiu $s0, $s0, %lo(gPauseMenuTabIconIDs) /* 138554 80245214 8E040014 */ lw $a0, 0x14($s0) /* 138558 80245218 0C051261 */ jal set_icon_render_pos /* 13855C 8024521C 26660007 */ addiu $a2, $s3, 7 diff --git a/asm/nonmatchings/code_135EE0/pause_tabs_draw_party.s b/asm/nonmatchings/code_135EE0/pause_tabs_draw_party.s index 5b5d5b866a..2e1c4098ca 100644 --- a/asm/nonmatchings/code_135EE0/pause_tabs_draw_party.s +++ b/asm/nonmatchings/code_135EE0/pause_tabs_draw_party.s @@ -14,8 +14,8 @@ glabel pause_tabs_draw_party /* 138274 80244F34 AFBF0024 */ sw $ra, 0x24($sp) /* 138278 80244F38 12200016 */ beqz $s1, .L80244F94 /* 13827C 80244F3C AFB00010 */ sw $s0, 0x10($sp) -/* 138280 80244F40 3C108027 */ lui $s0, 0x8027 -/* 138284 80244F44 26100130 */ addiu $s0, $s0, 0x130 +/* 138280 80244F40 3C108027 */ lui $s0, %hi(gPauseMenuTabIconIDs) +/* 138284 80244F44 26100130 */ addiu $s0, $s0, %lo(gPauseMenuTabIconIDs) /* 138288 80244F48 8E04000C */ lw $a0, 0xc($s0) /* 13828C 80244F4C 0C051280 */ jal set_icon_flags /* 138290 80244F50 24050020 */ addiu $a1, $zero, 0x20 @@ -36,8 +36,8 @@ glabel pause_tabs_draw_party /* 1382CC 80244F8C 080913EC */ j .L80244FB0 /* 1382D0 80244F90 00000000 */ nop .L80244F94: -/* 1382D4 80244F94 3C108027 */ lui $s0, 0x8027 -/* 1382D8 80244F98 26100130 */ addiu $s0, $s0, 0x130 +/* 1382D4 80244F94 3C108027 */ lui $s0, %hi(gPauseMenuTabIconIDs) +/* 1382D8 80244F98 26100130 */ addiu $s0, $s0, %lo(gPauseMenuTabIconIDs) /* 1382DC 80244F9C 8E04000C */ lw $a0, 0xc($s0) /* 1382E0 80244FA0 0C05128B */ jal clear_icon_flags /* 1382E4 80244FA4 24050020 */ addiu $a1, $zero, 0x20 @@ -47,8 +47,8 @@ glabel pause_tabs_draw_party /* 1382F0 80244FB0 0C0513AC */ jal icon_set_opacity /* 1382F4 80244FB4 00000000 */ nop /* 1382F8 80244FB8 26450016 */ addiu $a1, $s2, 0x16 -/* 1382FC 80244FBC 3C108027 */ lui $s0, 0x8027 -/* 138300 80244FC0 26100130 */ addiu $s0, $s0, 0x130 +/* 1382FC 80244FBC 3C108027 */ lui $s0, %hi(gPauseMenuTabIconIDs) +/* 138300 80244FC0 26100130 */ addiu $s0, $s0, %lo(gPauseMenuTabIconIDs) /* 138304 80244FC4 8E04000C */ lw $a0, 0xc($s0) /* 138308 80244FC8 0C051261 */ jal set_icon_render_pos /* 13830C 80244FCC 26660007 */ addiu $a2, $s3, 7 diff --git a/asm/nonmatchings/code_135EE0/pause_tabs_draw_spirits.s b/asm/nonmatchings/code_135EE0/pause_tabs_draw_spirits.s index 8cbc8be82c..7b8638806a 100644 --- a/asm/nonmatchings/code_135EE0/pause_tabs_draw_spirits.s +++ b/asm/nonmatchings/code_135EE0/pause_tabs_draw_spirits.s @@ -14,8 +14,8 @@ glabel pause_tabs_draw_spirits /* 13839C 8024505C AFBF0024 */ sw $ra, 0x24($sp) /* 1383A0 80245060 12200016 */ beqz $s1, .L802450BC /* 1383A4 80245064 AFB00010 */ sw $s0, 0x10($sp) -/* 1383A8 80245068 3C108027 */ lui $s0, 0x8027 -/* 1383AC 8024506C 26100130 */ addiu $s0, $s0, 0x130 +/* 1383A8 80245068 3C108027 */ lui $s0, %hi(gPauseMenuTabIconIDs) +/* 1383AC 8024506C 26100130 */ addiu $s0, $s0, %lo(gPauseMenuTabIconIDs) /* 1383B0 80245070 8E040010 */ lw $a0, 0x10($s0) /* 1383B4 80245074 0C051280 */ jal set_icon_flags /* 1383B8 80245078 24050020 */ addiu $a1, $zero, 0x20 @@ -36,8 +36,8 @@ glabel pause_tabs_draw_spirits /* 1383F4 802450B4 08091436 */ j .L802450D8 /* 1383F8 802450B8 00000000 */ nop .L802450BC: -/* 1383FC 802450BC 3C108027 */ lui $s0, 0x8027 -/* 138400 802450C0 26100130 */ addiu $s0, $s0, 0x130 +/* 1383FC 802450BC 3C108027 */ lui $s0, %hi(gPauseMenuTabIconIDs) +/* 138400 802450C0 26100130 */ addiu $s0, $s0, %lo(gPauseMenuTabIconIDs) /* 138404 802450C4 8E040010 */ lw $a0, 0x10($s0) /* 138408 802450C8 0C05128B */ jal clear_icon_flags /* 13840C 802450CC 24050020 */ addiu $a1, $zero, 0x20 @@ -47,8 +47,8 @@ glabel pause_tabs_draw_spirits /* 138418 802450D8 0C0513AC */ jal icon_set_opacity /* 13841C 802450DC 00000000 */ nop /* 138420 802450E0 26450016 */ addiu $a1, $s2, 0x16 -/* 138424 802450E4 3C108027 */ lui $s0, 0x8027 -/* 138428 802450E8 26100130 */ addiu $s0, $s0, 0x130 +/* 138424 802450E4 3C108027 */ lui $s0, %hi(gPauseMenuTabIconIDs) +/* 138428 802450E8 26100130 */ addiu $s0, $s0, %lo(gPauseMenuTabIconIDs) /* 13842C 802450EC 8E040010 */ lw $a0, 0x10($s0) /* 138430 802450F0 0C051261 */ jal set_icon_render_pos /* 138434 802450F4 26660007 */ addiu $a2, $s3, 7 diff --git a/asm/nonmatchings/code_135EE0/pause_tabs_draw_stats.s b/asm/nonmatchings/code_135EE0/pause_tabs_draw_stats.s index 2aaf1ea3e2..5cfc3212ba 100644 --- a/asm/nonmatchings/code_135EE0/pause_tabs_draw_stats.s +++ b/asm/nonmatchings/code_135EE0/pause_tabs_draw_stats.s @@ -14,8 +14,8 @@ glabel pause_tabs_draw_stats /* 137EFC 80244BBC AFBF0024 */ sw $ra, 0x24($sp) /* 137F00 80244BC0 12200016 */ beqz $s1, .L80244C1C /* 137F04 80244BC4 AFB00010 */ sw $s0, 0x10($sp) -/* 137F08 80244BC8 3C108027 */ lui $s0, 0x8027 -/* 137F0C 80244BCC 26100130 */ addiu $s0, $s0, 0x130 +/* 137F08 80244BC8 3C108027 */ lui $s0, %hi(gPauseMenuTabIconIDs) +/* 137F0C 80244BCC 26100130 */ addiu $s0, $s0, %lo(gPauseMenuTabIconIDs) /* 137F10 80244BD0 8E040000 */ lw $a0, ($s0) /* 137F14 80244BD4 0C051280 */ jal set_icon_flags /* 137F18 80244BD8 24050020 */ addiu $a1, $zero, 0x20 @@ -36,8 +36,8 @@ glabel pause_tabs_draw_stats /* 137F54 80244C14 0809130E */ j .L80244C38 /* 137F58 80244C18 00000000 */ nop .L80244C1C: -/* 137F5C 80244C1C 3C108027 */ lui $s0, 0x8027 -/* 137F60 80244C20 26100130 */ addiu $s0, $s0, 0x130 +/* 137F5C 80244C1C 3C108027 */ lui $s0, %hi(gPauseMenuTabIconIDs) +/* 137F60 80244C20 26100130 */ addiu $s0, $s0, %lo(gPauseMenuTabIconIDs) /* 137F64 80244C24 8E040000 */ lw $a0, ($s0) /* 137F68 80244C28 0C05128B */ jal clear_icon_flags /* 137F6C 80244C2C 24050020 */ addiu $a1, $zero, 0x20 @@ -47,8 +47,8 @@ glabel pause_tabs_draw_stats /* 137F78 80244C38 0C0513AC */ jal icon_set_opacity /* 137F7C 80244C3C 00000000 */ nop /* 137F80 80244C40 26450016 */ addiu $a1, $s2, 0x16 -/* 137F84 80244C44 3C108027 */ lui $s0, 0x8027 -/* 137F88 80244C48 26100130 */ addiu $s0, $s0, 0x130 +/* 137F84 80244C44 3C108027 */ lui $s0, %hi(gPauseMenuTabIconIDs) +/* 137F88 80244C48 26100130 */ addiu $s0, $s0, %lo(gPauseMenuTabIconIDs) /* 137F8C 80244C4C 8E040000 */ lw $a0, ($s0) /* 137F90 80244C50 0C051261 */ jal set_icon_render_pos /* 137F94 80244C54 26660007 */ addiu $a2, $s3, 7 diff --git a/asm/nonmatchings/code_135EE0/pause_tabs_handle_input.s b/asm/nonmatchings/code_135EE0/pause_tabs_handle_input.s index d4792e02e9..e1c2c16eb8 100644 --- a/asm/nonmatchings/code_135EE0/pause_tabs_handle_input.s +++ b/asm/nonmatchings/code_135EE0/pause_tabs_handle_input.s @@ -16,8 +16,8 @@ glabel pause_tabs_handle_input /* 1386C0 80245380 24070005 */ addiu $a3, $zero, 5 /* 1386C4 80245384 3C048027 */ lui $a0, 0x8027 /* 1386C8 80245388 2484014C */ addiu $a0, $a0, 0x14c -/* 1386CC 8024538C 3C068025 */ lui $a2, 0x8025 -/* 1386D0 80245390 24C6EF80 */ addiu $a2, $a2, -0x1080 +/* 1386CC 8024538C 3C068025 */ lui $a2, %hi(gPauseMenuTabs) +/* 1386D0 80245390 24C6EF80 */ addiu $a2, $a2, %lo(gPauseMenuTabs) /* 1386D4 80245394 3C058025 */ lui $a1, 0x8025 /* 1386D8 80245398 24A5F1D0 */ addiu $a1, $a1, -0xe30 .L8024539C: @@ -53,8 +53,8 @@ glabel pause_tabs_handle_input /* 138748 80245408 00000000 */ nop /* 13874C 8024540C 3C038027 */ lui $v1, 0x8027 /* 138750 80245410 2463014C */ addiu $v1, $v1, 0x14c -/* 138754 80245414 3C058025 */ lui $a1, 0x8025 -/* 138758 80245418 24A5EF80 */ addiu $a1, $a1, -0x1080 +/* 138754 80245414 3C058025 */ lui $a1, %hi(gPauseMenuTabs) +/* 138758 80245418 24A5EF80 */ addiu $a1, $a1, %lo(gPauseMenuTabs) /* 13875C 8024541C 3C048025 */ lui $a0, 0x8025 /* 138760 80245420 2484F1D0 */ addiu $a0, $a0, -0xe30 .L80245424: @@ -132,9 +132,9 @@ glabel pause_tabs_handle_input /* 138874 80245534 00220821 */ addu $at, $at, $v0 /* 138878 80245538 9022F1D0 */ lbu $v0, -0xe30($at) /* 13887C 8024553C 00021080 */ sll $v0, $v0, 2 -/* 138880 80245540 3C018025 */ lui $at, 0x8025 +/* 138880 80245540 3C018025 */ lui $at, %hi(gPauseMenuTabs) /* 138884 80245544 00220821 */ addu $at, $at, $v0 -/* 138888 80245548 8C22EF80 */ lw $v0, -0x1080($at) +/* 138888 80245548 8C22EF80 */ lw $v0, %lo(gPauseMenuTabs)($at) /* 13888C 8024554C 3C118025 */ lui $s1, 0x8025 /* 138890 80245550 2631F1D0 */ addiu $s1, $s1, -0xe30 /* 138894 80245554 90430000 */ lbu $v1, ($v0) diff --git a/asm/nonmatchings/code_135EE0/pause_tabs_init.s b/asm/nonmatchings/code_135EE0/pause_tabs_init.s index e00c15b923..2cadcd3595 100644 --- a/asm/nonmatchings/code_135EE0/pause_tabs_init.s +++ b/asm/nonmatchings/code_135EE0/pause_tabs_init.s @@ -8,8 +8,8 @@ glabel pause_tabs_init /* 1385D4 80245294 AFB00010 */ sw $s0, 0x10($sp) /* 1385D8 80245298 0000802D */ daddu $s0, $zero, $zero /* 1385DC 8024529C AFB20018 */ sw $s2, 0x18($sp) -/* 1385E0 802452A0 3C128027 */ lui $s2, 0x8027 -/* 1385E4 802452A4 26520130 */ addiu $s2, $s2, 0x130 +/* 1385E0 802452A0 3C128027 */ lui $s2, %hi(gPauseMenuTabIconIDs) +/* 1385E4 802452A4 26520130 */ addiu $s2, $s2, %lo(gPauseMenuTabIconIDs) /* 1385E8 802452A8 AFB10014 */ sw $s1, 0x14($sp) /* 1385EC 802452AC 3C118025 */ lui $s1, 0x8025 /* 1385F0 802452B0 2631F1B0 */ addiu $s1, $s1, -0xe50 diff --git a/asm/nonmatchings/code_135EE0/pause_tabs_update.s b/asm/nonmatchings/code_135EE0/pause_tabs_update.s index 2c019dbf61..96339aac45 100644 --- a/asm/nonmatchings/code_135EE0/pause_tabs_update.s +++ b/asm/nonmatchings/code_135EE0/pause_tabs_update.s @@ -110,8 +110,8 @@ glabel pause_tabs_update /* 138A84 80245744 0000202D */ daddu $a0, $zero, $zero .L80245748: /* 138A88 80245748 0080802D */ daddu $s0, $a0, $zero -/* 138A8C 8024574C 3C078025 */ lui $a3, 0x8025 -/* 138A90 80245750 24E7EF80 */ addiu $a3, $a3, -0x1080 +/* 138A8C 8024574C 3C078025 */ lui $a3, %hi(gPauseMenuTabs) +/* 138A90 80245750 24E7EF80 */ addiu $a3, $a3, %lo(gPauseMenuTabs) /* 138A94 80245754 3C068025 */ lui $a2, 0x8025 /* 138A98 80245758 24C6F1D0 */ addiu $a2, $a2, -0xe30 /* 138A9C 8024575C 3C058016 */ lui $a1, %hi(D_80159D50) @@ -156,8 +156,8 @@ glabel pause_tabs_update /* 138B28 802457E8 2508F1D0 */ addiu $t0, $t0, -0xe30 /* 138B2C 802457EC 02081021 */ addu $v0, $s0, $t0 /* 138B30 802457F0 90420000 */ lbu $v0, ($v0) -/* 138B34 802457F4 3C088025 */ lui $t0, 0x8025 -/* 138B38 802457F8 2508EF80 */ addiu $t0, $t0, -0x1080 +/* 138B34 802457F4 3C088025 */ lui $t0, %hi(gPauseMenuTabs) +/* 138B38 802457F8 2508EF80 */ addiu $t0, $t0, %lo(gPauseMenuTabs) /* 138B3C 802457FC 00021080 */ sll $v0, $v0, 2 /* 138B40 80245800 00481021 */ addu $v0, $v0, $t0 /* 138B44 80245804 8C420000 */ lw $v0, ($v0) diff --git a/asm/nonmatchings/code_135EE0/pause_update_cursor.s b/asm/nonmatchings/code_135EE0/pause_update_cursor.s index 2e6bb288f2..0a75d3c1d9 100644 --- a/asm/nonmatchings/code_135EE0/pause_update_cursor.s +++ b/asm/nonmatchings/code_135EE0/pause_update_cursor.s @@ -10,8 +10,8 @@ glabel pause_update_cursor /* 136830 802434F0 AFBF001C */ sw $ra, 0x1c($sp) /* 136834 802434F4 0C090B9B */ jal pause_interp_cursor /* 136838 802434F8 AFB00010 */ sw $s0, 0x10($sp) -/* 13683C 802434FC 3C058025 */ lui $a1, 0x8025 -/* 136840 80243500 8CA5EFA4 */ lw $a1, -0x105c($a1) +/* 13683C 802434FC 3C058025 */ lui $a1, %hi(gPauseMenuCursorOpacity) +/* 136840 80243500 8CA5EFA4 */ lw $a1, %lo(gPauseMenuCursorOpacity)($a1) /* 136844 80243504 18A00012 */ blez $a1, .L80243550 /* 136848 80243508 28A20100 */ slti $v0, $a1, 0x100 /* 13684C 8024350C 50400001 */ beql $v0, $zero, .L80243514 @@ -22,8 +22,8 @@ glabel pause_update_cursor /* 13685C 8024351C 0C0513AC */ jal icon_set_opacity /* 136860 80243520 8E040000 */ lw $a0, ($s0) /* 136864 80243524 8E040000 */ lw $a0, ($s0) -/* 136868 80243528 3C058025 */ lui $a1, 0x8025 -/* 13686C 8024352C 8CA5EF9C */ lw $a1, -0x1064($a1) +/* 136868 80243528 3C058025 */ lui $a1, %hi(gPauseMenuCursorPos) +/* 13686C 8024352C 8CA5EF9C */ lw $a1, %lo(gPauseMenuCursorPos)($a1) /* 136870 80243530 3C068025 */ lui $a2, 0x8025 /* 136874 80243534 8CC6EFA0 */ lw $a2, -0x1060($a2) /* 136878 80243538 02252821 */ addu $a1, $s1, $a1 diff --git a/asm/nonmatchings/code_135EE0/pause_badges_cleanup.s b/asm/nonmatchings/code_138CC0/pause_badges_cleanup.s similarity index 100% rename from asm/nonmatchings/code_135EE0/pause_badges_cleanup.s rename to asm/nonmatchings/code_138CC0/pause_badges_cleanup.s diff --git a/asm/nonmatchings/code_135EE0/pause_badges_comparator.s b/asm/nonmatchings/code_138CC0/pause_badges_comparator.s similarity index 100% rename from asm/nonmatchings/code_135EE0/pause_badges_comparator.s rename to asm/nonmatchings/code_138CC0/pause_badges_comparator.s diff --git a/asm/nonmatchings/code_135EE0/pause_badges_count_all.s b/asm/nonmatchings/code_138CC0/pause_badges_count_all.s similarity index 100% rename from asm/nonmatchings/code_135EE0/pause_badges_count_all.s rename to asm/nonmatchings/code_138CC0/pause_badges_count_all.s diff --git a/asm/nonmatchings/code_135EE0/pause_badges_count_equipped.s b/asm/nonmatchings/code_138CC0/pause_badges_count_equipped.s similarity index 100% rename from asm/nonmatchings/code_135EE0/pause_badges_count_equipped.s rename to asm/nonmatchings/code_138CC0/pause_badges_count_equipped.s diff --git a/asm/nonmatchings/code_135EE0/pause_badges_draw_bp_orbs.s b/asm/nonmatchings/code_138CC0/pause_badges_draw_bp_orbs.s similarity index 100% rename from asm/nonmatchings/code_135EE0/pause_badges_draw_bp_orbs.s rename to asm/nonmatchings/code_138CC0/pause_badges_draw_bp_orbs.s diff --git a/asm/nonmatchings/code_135EE0/pause_badges_draw_contents.s b/asm/nonmatchings/code_138CC0/pause_badges_draw_contents.s similarity index 100% rename from asm/nonmatchings/code_135EE0/pause_badges_draw_contents.s rename to asm/nonmatchings/code_138CC0/pause_badges_draw_contents.s diff --git a/asm/nonmatchings/code_135EE0/pause_badges_get_pos_x.s b/asm/nonmatchings/code_138CC0/pause_badges_get_pos_x.s similarity index 100% rename from asm/nonmatchings/code_135EE0/pause_badges_get_pos_x.s rename to asm/nonmatchings/code_138CC0/pause_badges_get_pos_x.s diff --git a/asm/nonmatchings/code_135EE0/pause_badges_get_pos_y.s b/asm/nonmatchings/code_138CC0/pause_badges_get_pos_y.s similarity index 100% rename from asm/nonmatchings/code_135EE0/pause_badges_get_pos_y.s rename to asm/nonmatchings/code_138CC0/pause_badges_get_pos_y.s diff --git a/asm/nonmatchings/code_135EE0/pause_badges_get_row.s b/asm/nonmatchings/code_138CC0/pause_badges_get_row.s similarity index 100% rename from asm/nonmatchings/code_135EE0/pause_badges_get_row.s rename to asm/nonmatchings/code_138CC0/pause_badges_get_row.s diff --git a/asm/nonmatchings/code_135EE0/pause_badges_handle_input.s b/asm/nonmatchings/code_138CC0/pause_badges_handle_input.s similarity index 100% rename from asm/nonmatchings/code_135EE0/pause_badges_handle_input.s rename to asm/nonmatchings/code_138CC0/pause_badges_handle_input.s diff --git a/asm/nonmatchings/code_135EE0/pause_badges_init.s b/asm/nonmatchings/code_138CC0/pause_badges_init.s similarity index 100% rename from asm/nonmatchings/code_135EE0/pause_badges_init.s rename to asm/nonmatchings/code_138CC0/pause_badges_init.s diff --git a/asm/nonmatchings/code_135EE0/pause_badges_load_badges.s b/asm/nonmatchings/code_138CC0/pause_badges_load_badges.s similarity index 100% rename from asm/nonmatchings/code_135EE0/pause_badges_load_badges.s rename to asm/nonmatchings/code_138CC0/pause_badges_load_badges.s diff --git a/asm/nonmatchings/code_135EE0/pause_badges_try_equip.s b/asm/nonmatchings/code_138CC0/pause_badges_try_equip.s similarity index 100% rename from asm/nonmatchings/code_135EE0/pause_badges_try_equip.s rename to asm/nonmatchings/code_138CC0/pause_badges_try_equip.s diff --git a/asm/nonmatchings/code_135EE0/pause_badges_try_remove.s b/asm/nonmatchings/code_138CC0/pause_badges_try_remove.s similarity index 100% rename from asm/nonmatchings/code_135EE0/pause_badges_try_remove.s rename to asm/nonmatchings/code_138CC0/pause_badges_try_remove.s diff --git a/asm/nonmatchings/code_135EE0/pause_badges_update.s b/asm/nonmatchings/code_138CC0/pause_badges_update.s similarity index 100% rename from asm/nonmatchings/code_135EE0/pause_badges_update.s rename to asm/nonmatchings/code_138CC0/pause_badges_update.s diff --git a/asm/nonmatchings/code_135EE0/pause_stats_draw_contents.s b/asm/nonmatchings/code_138CC0/pause_stats_draw_contents.s similarity index 100% rename from asm/nonmatchings/code_135EE0/pause_stats_draw_contents.s rename to asm/nonmatchings/code_138CC0/pause_stats_draw_contents.s diff --git a/asm/nonmatchings/code_135EE0/pause_stats_handle_input.s b/asm/nonmatchings/code_138CC0/pause_stats_handle_input.s similarity index 100% rename from asm/nonmatchings/code_135EE0/pause_stats_handle_input.s rename to asm/nonmatchings/code_138CC0/pause_stats_handle_input.s diff --git a/asm/nonmatchings/code_135EE0/pause_stats_init.s b/asm/nonmatchings/code_138CC0/pause_stats_init.s similarity index 100% rename from asm/nonmatchings/code_135EE0/pause_stats_init.s rename to asm/nonmatchings/code_138CC0/pause_stats_init.s diff --git a/include/common_structs.h b/include/common_structs.h index 11157ccca3..0c76d0a20b 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -1542,4 +1542,13 @@ typedef struct { /* 0x08 */ s32 count; } PauseItemPage; // size = 0xC +typedef struct { + /* 0x00 */ char unk_00[8]; + /* 0x08 */ s8* unk_08; + /* 0x0C */ void* fpInit; + /* 0x10 */ void* fpHandleInput; + /* 0x14 */ void* fpUpdate; + /* 0x18 */ void* fpCleanup; +} MenuTab; // size = 0x1C + #endif diff --git a/include/variables.h b/include/variables.h index 55782e59b6..d33e05c6a5 100644 --- a/include/variables.h +++ b/include/variables.h @@ -120,9 +120,17 @@ extern s32 D_800A0960; extern s32 D_800A0964; // Pause +extern s32 gPauseMenuTabIconIDs[6]; extern PauseItemPage gItemMenuPages[20]; extern s32 gPauseMenuStrings[348]; +extern s32 gPauseMenuIconScripts[8]; +extern MenuTab* gPauseMenuTabs[7]; +extern s32 gPauseMenuCursorPos[2]; +extern s32 gPauseMenuCursorOpacity; +extern s32 gPauseMenuTargetPos[2]; extern s32 gPauseMenuCursorTargetOpacity; +extern s8 gPauseMenuTextScrollInterpEasingLUT[16]; +extern s8 gPauseMenuPageScrollInterpEasingLUT[16]; // Badges extern PauseItemPage gBadgeMenuPages[20]; diff --git a/src/code_135EE0.c b/src/code_135EE0.c index 2d5a70d30a..1e0b0a33da 100644 --- a/src/code_135EE0.c +++ b/src/code_135EE0.c @@ -83,62 +83,11 @@ INCLUDE_ASM(s32, "code_135EE0", pause_tabs_handle_input); INCLUDE_ASM(s32, "code_135EE0", pause_tabs_update); -INCLUDE_ASM(s32, "code_135EE0", pause_tabs_cleanup); +void pause_tabs_cleanup(void) { + s32* iconIDs = gPauseMenuTabIconIDs; + s32 i; -INCLUDE_ASM(s32, "code_135EE0", pause_stats_draw_contents); - -INCLUDE_ASM(s32, "code_135EE0", pause_stats_init); - -INCLUDE_ASM(s32, "code_135EE0", pause_stats_handle_input); - -INCLUDE_ASM(s32, "code_135EE0", pause_stats_cleanup); - -INCLUDE_ASM(s32, "code_135EE0", pause_badges_comparator); - -INCLUDE_ASM(s32, "code_135EE0", pause_badges_count_all); - -INCLUDE_ASM(s32, "code_135EE0", pause_badges_count_equipped); - -INCLUDE_ASM(s32, "code_135EE0", pause_badges_get_pos_x); - -INCLUDE_ASM(s32, "code_135EE0", pause_badges_get_pos_y); - -s32 pause_badges_get_column(s32 page, s32 itemIdx) { - return itemIdx % gBadgeMenuPages[page].numCols; -} - -INCLUDE_ASM(s32, "code_135EE0", pause_badges_get_row); - -s32 pause_badges_is_visible(s32 y) { - if (y < gBadgeMenuCurrentScrollPos - 32) { - return FALSE; - } else { - return y < gBadgeMenuCurrentScrollPos + 128; + for (i = 0; i < ARRAY_COUNT(gPauseMenuTabIconIDs); i++) { + free_icon(iconIDs[i]); } } - -s32 pause_badges_scroll_offset_y(s32 offset) { - return offset - gBadgeMenuCurrentScrollPos; -} - -s32 pause_badges_scroll_offset_x(s32 x) { - return x; -} - -INCLUDE_ASM(s32, "code_135EE0", pause_badges_try_remove); - -INCLUDE_ASM(s32, "code_135EE0", pause_badges_try_equip); - -INCLUDE_ASM(s32, "code_135EE0", pause_badges_draw_bp_orbs); - -INCLUDE_ASM(s32, "code_135EE0", pause_badges_draw_contents); - -INCLUDE_ASM(s32, "code_135EE0", pause_badges_load_badges); - -INCLUDE_ASM(s32, "code_135EE0", pause_badges_init); - -INCLUDE_ASM(s32, "code_135EE0", pause_badges_handle_input); - -INCLUDE_ASM(s32, "code_135EE0", pause_badges_update); - -INCLUDE_ASM(s32, "code_135EE0", pause_badges_cleanup); diff --git a/src/code_138CC0.c b/src/code_138CC0.c new file mode 100644 index 0000000000..43e3d02653 --- /dev/null +++ b/src/code_138CC0.c @@ -0,0 +1,66 @@ +#include "common.h" + +INCLUDE_ASM(s32, "code_138CC0", pause_stats_draw_contents); + +INCLUDE_ASM(s32, "code_138CC0", pause_stats_init); + +INCLUDE_ASM(s32, "code_138CC0", pause_stats_handle_input); + +void pause_stats_cleanup(void) { + s32* iconIDs = gStatsMenuIconIDs; + s32 i; + + for (i = 0; i < ARRAY_COUNT(gStatsMenuIconIDs); i++) { + free_icon(iconIDs[i]); + } +} + +INCLUDE_ASM(s32, "code_138CC0", pause_badges_comparator); + +INCLUDE_ASM(s32, "code_138CC0", pause_badges_count_all); + +INCLUDE_ASM(s32, "code_138CC0", pause_badges_count_equipped); + +INCLUDE_ASM(s32, "code_138CC0", pause_badges_get_pos_x); + +INCLUDE_ASM(s32, "code_138CC0", pause_badges_get_pos_y); + +s32 pause_badges_get_column(s32 page, s32 itemIdx) { + return itemIdx % gBadgeMenuPages[page].numCols; +} + +INCLUDE_ASM(s32, "code_138CC0", pause_badges_get_row); + +s32 pause_badges_is_visible(s32 y) { + if (y < gBadgeMenuCurrentScrollPos - 32) { + return FALSE; + } else { + return y < gBadgeMenuCurrentScrollPos + 128; + } +} + +s32 pause_badges_scroll_offset_y(s32 offset) { + return offset - gBadgeMenuCurrentScrollPos; +} + +s32 pause_badges_scroll_offset_x(s32 x) { + return x; +} + +INCLUDE_ASM(s32, "code_138CC0", pause_badges_try_remove); + +INCLUDE_ASM(s32, "code_138CC0", pause_badges_try_equip); + +INCLUDE_ASM(s32, "code_138CC0", pause_badges_draw_bp_orbs); + +INCLUDE_ASM(s32, "code_138CC0", pause_badges_draw_contents); + +INCLUDE_ASM(s32, "code_138CC0", pause_badges_load_badges); + +INCLUDE_ASM(s32, "code_138CC0", pause_badges_init); + +INCLUDE_ASM(s32, "code_138CC0", pause_badges_handle_input); + +INCLUDE_ASM(s32, "code_138CC0", pause_badges_update); + +INCLUDE_ASM(s32, "code_138CC0", pause_badges_cleanup); diff --git a/tools/splat.yaml b/tools/splat.yaml index f6319a7f05..09cd98c3b2 100644 --- a/tools/splat.yaml +++ b/tools/splat.yaml @@ -301,6 +301,7 @@ segments: vram: 0x80242BA0 files: - [0x135EE0, c] + - [0x138CC0, c] - [0x13CAF0, c] - [0x13FD40, c] - [0x140C70, c] diff --git a/undefined_syms.txt b/undefined_syms.txt index 89b1d53c75..2f3720a6ff 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -146,8 +146,17 @@ D_8010F6D0 = 0x8010F6D0; gBackgroundImage = 0x80200000; +gPauseMenuIconScripts = 0x8024EF60; +gPauseMenuTabs = 0x8024EF80; +gPauseMenuCursorPos = 0x8024EF9C; +gPauseMenuCursorOpacity = 0x8024EFA4; +gPauseMenuTargetPos = 0x8024EFA8; gPauseMenuCursorTargetOpacity = 0x8024EFB0; +gPauseMenuTextScrollInterpEasingLUT = 0x8024F0AC; +gPauseMenuPageScrollInterpEasingLUT = 0x8024F0BC; + +gPauseMenuTabIconIDs = 0x80270130; gStatsMenuIconIDs = 0x80270150; gBadgeMenuItemIDs = 0x80270180; gBadgeMenuCurrentPage = 0x80270280; From c61554b7e9d538f1b35e9476a558033f14519e76 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Tue, 10 Nov 2020 11:27:02 -0500 Subject: [PATCH 31/52] asm update --- asm/nonmatchings/code_135EE0/pause_cleanup.s | 4 +- .../code_135EE0/pause_handle_input.s | 32 ++++++------- asm/nonmatchings/code_135EE0/pause_init.s | 20 ++++---- .../code_135EE0/pause_tabs_draw_badges.s | 4 +- .../code_135EE0/pause_tabs_draw_items.s | 4 +- .../code_135EE0/pause_tabs_draw_map.s | 4 +- .../code_135EE0/pause_tabs_draw_party.s | 4 +- .../code_135EE0/pause_tabs_draw_spirits.s | 4 +- .../code_135EE0/pause_tabs_draw_stats.s | 4 +- .../code_135EE0/pause_tabs_handle_input.s | 24 +++++----- .../code_135EE0/pause_textbox_draw_contents.s | 12 ++--- .../pause_tutorial_draw_contents.s | 20 ++++---- .../code_135EE0/pause_update_cursor.s | 4 +- .../code_138CC0/pause_badges_draw_contents.s | 16 +++---- .../code_138CC0/pause_badges_handle_input.s | 48 +++++++++---------- .../code_138CC0/pause_stats_draw_contents.s | 4 +- .../code_138CC0/pause_stats_handle_input.s | 32 ++++++------- .../code_13CAF0/pause_items_draw_contents.s | 16 +++---- .../code_13CAF0/pause_items_handle_input.s | 44 ++++++++--------- .../pause_partners_draw_contents.s | 4 +- .../pause_partners_draw_movelist.s | 4 +- .../code_13CAF0/pause_partners_handle_input.s | 32 ++++++------- .../code_13FD40/pause_spirits_draw_contents.s | 4 +- .../code_13FD40/pause_spirits_draw_title.s | 4 +- .../code_13FD40/pause_spirits_handle_input.s | 32 ++++++------- .../code_13FD40/pause_spirits_update.s | 4 +- .../code_140C70/pause_map_draw_contents.s | 4 +- .../code_140C70/pause_map_draw_title.s | 4 +- .../code_140C70/pause_map_handle_input.s | 20 ++++---- include/functions.h | 1 + include/variables.h | 10 +++- src/code_135EE0.c | 27 +++++++++++ undefined_syms.txt | 7 +++ 33 files changed, 249 insertions(+), 208 deletions(-) diff --git a/asm/nonmatchings/code_135EE0/pause_cleanup.s b/asm/nonmatchings/code_135EE0/pause_cleanup.s index 3060008bb7..8f8ea16df0 100644 --- a/asm/nonmatchings/code_135EE0/pause_cleanup.s +++ b/asm/nonmatchings/code_135EE0/pause_cleanup.s @@ -6,8 +6,8 @@ glabel pause_cleanup /* 137A4C 8024470C AFB00010 */ sw $s0, 0x10($sp) /* 137A50 80244710 0000802D */ daddu $s0, $zero, $zero /* 137A54 80244714 AFB10014 */ sw $s1, 0x14($sp) -/* 137A58 80244718 3C118027 */ lui $s1, 0x8027 -/* 137A5C 8024471C 263100E8 */ addiu $s1, $s1, 0xe8 +/* 137A58 80244718 3C118027 */ lui $s1, %hi(gPauseMenuCommonIconIDs) +/* 137A5C 8024471C 263100E8 */ addiu $s1, $s1, %lo(gPauseMenuCommonIconIDs) /* 137A60 80244720 AFBF0018 */ sw $ra, 0x18($sp) .L80244724: /* 137A64 80244724 8E240000 */ lw $a0, ($s1) diff --git a/asm/nonmatchings/code_135EE0/pause_handle_input.s b/asm/nonmatchings/code_135EE0/pause_handle_input.s index 3240a5e1d2..8f8c161801 100644 --- a/asm/nonmatchings/code_135EE0/pause_handle_input.s +++ b/asm/nonmatchings/code_135EE0/pause_handle_input.s @@ -8,12 +8,12 @@ glabel pause_handle_input /* 137770 80244430 AFB60048 */ sw $s6, 0x48($sp) /* 137774 80244434 00A0B02D */ daddu $s6, $a1, $zero /* 137778 80244438 0000202D */ daddu $a0, $zero, $zero -/* 13777C 8024443C 3C028027 */ lui $v0, 0x8027 -/* 137780 80244440 804200D4 */ lb $v0, 0xd4($v0) +/* 13777C 8024443C 3C028027 */ lui $v0, %hi(gPauseMenuCurrentTab) +/* 137780 80244440 804200D4 */ lb $v0, %lo(gPauseMenuCurrentTab)($v0) /* 137784 80244444 3C05F840 */ lui $a1, 0xf840 /* 137788 80244448 AFB3003C */ sw $s3, 0x3c($sp) -/* 13778C 8024444C 3C138027 */ lui $s3, 0x8027 -/* 137790 80244450 8E7300C8 */ lw $s3, 0xc8($s3) +/* 13778C 8024444C 3C138027 */ lui $s3, %hi(gPauseMenuCurrentDescString) +/* 137790 80244450 8E7300C8 */ lw $s3, %lo(gPauseMenuCurrentDescString)($s3) /* 137794 80244454 AFBF004C */ sw $ra, 0x4c($sp) /* 137798 80244458 AFB40040 */ sw $s4, 0x40($sp) /* 13779C 8024445C AFB20038 */ sw $s2, 0x38($sp) @@ -46,10 +46,10 @@ glabel pause_handle_input /* 137800 802444C0 0000202D */ daddu $a0, $zero, $zero /* 137804 802444C4 3C05F840 */ lui $a1, 0xf840 /* 137808 802444C8 34A55BDE */ ori $a1, $a1, 0x5bde -/* 13780C 802444CC 3C108027 */ lui $s0, 0x8027 -/* 137810 802444D0 261000C4 */ addiu $s0, $s0, 0xc4 -/* 137814 802444D4 3C118027 */ lui $s1, 0x8027 -/* 137818 802444D8 263100C0 */ addiu $s1, $s1, 0xc0 +/* 13780C 802444CC 3C108027 */ lui $s0, %hi(gPauseMenuPressedButtons) +/* 137810 802444D0 261000C4 */ addiu $s0, $s0, %lo(gPauseMenuPressedButtons) +/* 137814 802444D4 3C118027 */ lui $s1, %hi(gPauseMenuHeldButtons) +/* 137818 802444D8 263100C0 */ addiu $s1, $s1, %lo(gPauseMenuHeldButtons) /* 13781C 802444DC AE150000 */ sw $s5, ($s0) /* 137820 802444E0 0C0B1EAF */ jal get_variable /* 137824 802444E4 AE360000 */ sw $s6, ($s1) @@ -62,8 +62,8 @@ glabel pause_handle_input /* 13783C 802444FC 30821000 */ andi $v0, $a0, 0x1000 /* 137840 80244500 14400007 */ bnez $v0, .L80244520 /* 137844 80244504 00000000 */ nop -/* 137848 80244508 3C028027 */ lui $v0, 0x8027 -/* 13784C 8024450C 804200D4 */ lb $v0, 0xd4($v0) +/* 137848 80244508 3C028027 */ lui $v0, %hi(gPauseMenuCurrentTab) +/* 13784C 8024450C 804200D4 */ lb $v0, %lo(gPauseMenuCurrentTab)($v0) /* 137850 80244510 1440000B */ bnez $v0, .L80244540 /* 137854 80244514 30824000 */ andi $v0, $a0, 0x4000 /* 137858 80244518 10400009 */ beqz $v0, .L80244540 @@ -80,8 +80,8 @@ glabel pause_handle_input .L80244540: /* 137880 80244540 3C048027 */ lui $a0, 0x8027 /* 137884 80244544 24840118 */ addiu $a0, $a0, 0x118 -/* 137888 80244548 3C038027 */ lui $v1, 0x8027 -/* 13788C 8024454C 8C6300CC */ lw $v1, 0xcc($v1) +/* 137888 80244548 3C038027 */ lui $v1, %hi(gPauseMenuCurrentDescIconScript) +/* 13788C 8024454C 8C6300CC */ lw $v1, %lo(gPauseMenuCurrentDescIconScript)($v1) /* 137890 80244550 8C820000 */ lw $v0, ($a0) /* 137894 80244554 54620001 */ bnel $v1, $v0, .L8024455C /* 137898 80244558 AC830000 */ sw $v1, ($a0) @@ -125,8 +125,8 @@ glabel pause_handle_input /* 137924 802445E4 3C018027 */ lui $at, 0x8027 /* 137928 802445E8 AC20010C */ sw $zero, 0x10c($at) .L802445EC: -/* 13792C 802445EC 3C028027 */ lui $v0, 0x8027 -/* 137930 802445F0 8C4200C0 */ lw $v0, 0xc0($v0) +/* 13792C 802445EC 3C028027 */ lui $v0, %hi(gPauseMenuHeldButtons) +/* 137930 802445F0 8C4200C0 */ lw $v0, %lo(gPauseMenuHeldButtons)($v0) /* 137934 802445F4 30420008 */ andi $v0, $v0, 8 /* 137938 802445F8 10400008 */ beqz $v0, .L8024461C /* 13793C 802445FC 00000000 */ nop @@ -138,8 +138,8 @@ glabel pause_handle_input /* 137954 80244614 AC620000 */ sw $v0, ($v1) /* 137958 80244618 AC600000 */ sw $zero, ($v1) .L8024461C: -/* 13795C 8024461C 3C028027 */ lui $v0, 0x8027 -/* 137960 80244620 8C4200C0 */ lw $v0, 0xc0($v0) +/* 13795C 8024461C 3C028027 */ lui $v0, %hi(gPauseMenuHeldButtons) +/* 137960 80244620 8C4200C0 */ lw $v0, %lo(gPauseMenuHeldButtons)($v0) /* 137964 80244624 30420004 */ andi $v0, $v0, 4 /* 137968 80244628 1040000B */ beqz $v0, .L80244658 /* 13796C 8024462C 00000000 */ nop diff --git a/asm/nonmatchings/code_135EE0/pause_init.s b/asm/nonmatchings/code_135EE0/pause_init.s index a0a9bb3829..c02f453902 100644 --- a/asm/nonmatchings/code_135EE0/pause_init.s +++ b/asm/nonmatchings/code_135EE0/pause_init.s @@ -22,8 +22,8 @@ glabel pause_init /* 1373E4 802440A4 26731ECC */ addiu $s3, $s3, 0x1ecc /* 1373E8 802440A8 3C108025 */ lui $s0, %hi(gPauseMenuIconScripts) /* 1373EC 802440AC 2610EF60 */ addiu $s0, $s0, %lo(gPauseMenuIconScripts) -/* 1373F0 802440B0 3C128027 */ lui $s2, 0x8027 -/* 1373F4 802440B4 265200E8 */ addiu $s2, $s2, 0xe8 +/* 1373F0 802440B0 3C128027 */ lui $s2, %hi(gPauseMenuCommonIconIDs) +/* 1373F4 802440B4 265200E8 */ addiu $s2, $s2, %lo(gPauseMenuCommonIconIDs) .L802440B8: /* 1373F8 802440B8 0C050529 */ jal create_icon /* 1373FC 802440BC 8E040000 */ lw $a0, ($s0) @@ -46,8 +46,8 @@ glabel pause_init /* 13743C 802440FC 24050004 */ addiu $a1, $zero, 4 /* 137440 80244100 3C108025 */ lui $s0, %hi(gPauseMenuTabs) /* 137444 80244104 2610EF80 */ addiu $s0, $s0, %lo(gPauseMenuTabs) -/* 137448 80244108 3C028027 */ lui $v0, 0x8027 -/* 13744C 8024410C 8C4200E8 */ lw $v0, 0xe8($v0) +/* 137448 80244108 3C028027 */ lui $v0, %hi(gPauseMenuCommonIconIDs) +/* 13744C 8024410C 8C4200E8 */ lw $v0, %lo(gPauseMenuCommonIconIDs)($v0) /* 137450 80244110 3C018027 */ lui $at, 0x8027 /* 137454 80244114 AC2200D0 */ sw $v0, 0xd0($at) /* 137458 80244118 0C051FCC */ jal func_80147F30 @@ -62,12 +62,12 @@ glabel pause_init /* 13747C 8024413C AC20010C */ sw $zero, 0x10c($at) /* 137480 80244140 3C018027 */ lui $at, 0x8027 /* 137484 80244144 AC200118 */ sw $zero, 0x118($at) -/* 137488 80244148 3C018027 */ lui $at, 0x8027 -/* 13748C 8024414C AC2000C8 */ sw $zero, 0xc8($at) -/* 137490 80244150 3C018027 */ lui $at, 0x8027 -/* 137494 80244154 AC2000CC */ sw $zero, 0xcc($at) -/* 137498 80244158 3C018027 */ lui $at, 0x8027 -/* 13749C 8024415C A02000D4 */ sb $zero, 0xd4($at) +/* 137488 80244148 3C018027 */ lui $at, %hi(gPauseMenuCurrentDescString) +/* 13748C 8024414C AC2000C8 */ sw $zero, %lo(gPauseMenuCurrentDescString)($at) +/* 137490 80244150 3C018027 */ lui $at, %hi(gPauseMenuCurrentDescIconScript) +/* 137494 80244154 AC2000CC */ sw $zero, %lo(gPauseMenuCurrentDescIconScript)($at) +/* 137498 80244158 3C018027 */ lui $at, %hi(gPauseMenuCurrentTab) +/* 13749C 8024415C A02000D4 */ sb $zero, %lo(gPauseMenuCurrentTab)($at) .L80244160: /* 1374A0 80244160 8E040000 */ lw $a0, ($s0) /* 1374A4 80244164 8C82000C */ lw $v0, 0xc($a0) diff --git a/asm/nonmatchings/code_135EE0/pause_tabs_draw_badges.s b/asm/nonmatchings/code_135EE0/pause_tabs_draw_badges.s index 4fb718f660..899dc3bac3 100644 --- a/asm/nonmatchings/code_135EE0/pause_tabs_draw_badges.s +++ b/asm/nonmatchings/code_135EE0/pause_tabs_draw_badges.s @@ -55,8 +55,8 @@ glabel pause_tabs_draw_badges /* 1380C0 80244D80 8E040004 */ lw $a0, 4($s0) /* 1380C4 80244D84 0C0511F8 */ jal draw_icon_2 /* 1380C8 80244D88 00000000 */ nop -/* 1380CC 80244D8C 3C028027 */ lui $v0, 0x8027 -/* 1380D0 80244D90 804200D4 */ lb $v0, 0xd4($v0) +/* 1380CC 80244D8C 3C028027 */ lui $v0, %hi(gPauseMenuCurrentTab) +/* 1380D0 80244D90 804200D4 */ lb $v0, %lo(gPauseMenuCurrentTab)($v0) /* 1380D4 80244D94 1440000C */ bnez $v0, .L80244DC8 /* 1380D8 80244D98 00000000 */ nop /* 1380DC 80244D9C 82830001 */ lb $v1, 1($s4) diff --git a/asm/nonmatchings/code_135EE0/pause_tabs_draw_items.s b/asm/nonmatchings/code_135EE0/pause_tabs_draw_items.s index 87de13af01..e79a8aef5d 100644 --- a/asm/nonmatchings/code_135EE0/pause_tabs_draw_items.s +++ b/asm/nonmatchings/code_135EE0/pause_tabs_draw_items.s @@ -55,8 +55,8 @@ glabel pause_tabs_draw_items /* 1381E8 80244EA8 8E040008 */ lw $a0, 8($s0) /* 1381EC 80244EAC 0C0511F8 */ jal draw_icon_2 /* 1381F0 80244EB0 00000000 */ nop -/* 1381F4 80244EB4 3C028027 */ lui $v0, 0x8027 -/* 1381F8 80244EB8 804200D4 */ lb $v0, 0xd4($v0) +/* 1381F4 80244EB4 3C028027 */ lui $v0, %hi(gPauseMenuCurrentTab) +/* 1381F8 80244EB8 804200D4 */ lb $v0, %lo(gPauseMenuCurrentTab)($v0) /* 1381FC 80244EBC 1440000C */ bnez $v0, .L80244EF0 /* 138200 80244EC0 00000000 */ nop /* 138204 80244EC4 82830001 */ lb $v1, 1($s4) diff --git a/asm/nonmatchings/code_135EE0/pause_tabs_draw_map.s b/asm/nonmatchings/code_135EE0/pause_tabs_draw_map.s index 71875acb18..ad4d693453 100644 --- a/asm/nonmatchings/code_135EE0/pause_tabs_draw_map.s +++ b/asm/nonmatchings/code_135EE0/pause_tabs_draw_map.s @@ -55,8 +55,8 @@ glabel pause_tabs_draw_map /* 138560 80245220 8E040014 */ lw $a0, 0x14($s0) /* 138564 80245224 0C0511F8 */ jal draw_icon_2 /* 138568 80245228 00000000 */ nop -/* 13856C 8024522C 3C028027 */ lui $v0, 0x8027 -/* 138570 80245230 804200D4 */ lb $v0, 0xd4($v0) +/* 13856C 8024522C 3C028027 */ lui $v0, %hi(gPauseMenuCurrentTab) +/* 138570 80245230 804200D4 */ lb $v0, %lo(gPauseMenuCurrentTab)($v0) /* 138574 80245234 1440000C */ bnez $v0, .L80245268 /* 138578 80245238 00000000 */ nop /* 13857C 8024523C 82830001 */ lb $v1, 1($s4) diff --git a/asm/nonmatchings/code_135EE0/pause_tabs_draw_party.s b/asm/nonmatchings/code_135EE0/pause_tabs_draw_party.s index 2e1c4098ca..82b900ce90 100644 --- a/asm/nonmatchings/code_135EE0/pause_tabs_draw_party.s +++ b/asm/nonmatchings/code_135EE0/pause_tabs_draw_party.s @@ -55,8 +55,8 @@ glabel pause_tabs_draw_party /* 138310 80244FD0 8E04000C */ lw $a0, 0xc($s0) /* 138314 80244FD4 0C0511F8 */ jal draw_icon_2 /* 138318 80244FD8 00000000 */ nop -/* 13831C 80244FDC 3C028027 */ lui $v0, 0x8027 -/* 138320 80244FE0 804200D4 */ lb $v0, 0xd4($v0) +/* 13831C 80244FDC 3C028027 */ lui $v0, %hi(gPauseMenuCurrentTab) +/* 138320 80244FE0 804200D4 */ lb $v0, %lo(gPauseMenuCurrentTab)($v0) /* 138324 80244FE4 1440000C */ bnez $v0, .L80245018 /* 138328 80244FE8 00000000 */ nop /* 13832C 80244FEC 82830001 */ lb $v1, 1($s4) diff --git a/asm/nonmatchings/code_135EE0/pause_tabs_draw_spirits.s b/asm/nonmatchings/code_135EE0/pause_tabs_draw_spirits.s index 7b8638806a..42ec5778b4 100644 --- a/asm/nonmatchings/code_135EE0/pause_tabs_draw_spirits.s +++ b/asm/nonmatchings/code_135EE0/pause_tabs_draw_spirits.s @@ -55,8 +55,8 @@ glabel pause_tabs_draw_spirits /* 138438 802450F8 8E040010 */ lw $a0, 0x10($s0) /* 13843C 802450FC 0C0511F8 */ jal draw_icon_2 /* 138440 80245100 00000000 */ nop -/* 138444 80245104 3C028027 */ lui $v0, 0x8027 -/* 138448 80245108 804200D4 */ lb $v0, 0xd4($v0) +/* 138444 80245104 3C028027 */ lui $v0, %hi(gPauseMenuCurrentTab) +/* 138448 80245108 804200D4 */ lb $v0, %lo(gPauseMenuCurrentTab)($v0) /* 13844C 8024510C 1440000C */ bnez $v0, .L80245140 /* 138450 80245110 00000000 */ nop /* 138454 80245114 82830001 */ lb $v1, 1($s4) diff --git a/asm/nonmatchings/code_135EE0/pause_tabs_draw_stats.s b/asm/nonmatchings/code_135EE0/pause_tabs_draw_stats.s index 5cfc3212ba..ca3867420f 100644 --- a/asm/nonmatchings/code_135EE0/pause_tabs_draw_stats.s +++ b/asm/nonmatchings/code_135EE0/pause_tabs_draw_stats.s @@ -55,8 +55,8 @@ glabel pause_tabs_draw_stats /* 137F98 80244C58 8E040000 */ lw $a0, ($s0) /* 137F9C 80244C5C 0C0511F8 */ jal draw_icon_2 /* 137FA0 80244C60 00000000 */ nop -/* 137FA4 80244C64 3C028027 */ lui $v0, 0x8027 -/* 137FA8 80244C68 804200D4 */ lb $v0, 0xd4($v0) +/* 137FA4 80244C64 3C028027 */ lui $v0, %hi(gPauseMenuCurrentTab) +/* 137FA8 80244C68 804200D4 */ lb $v0, %lo(gPauseMenuCurrentTab)($v0) /* 137FAC 80244C6C 1440000C */ bnez $v0, .L80244CA0 /* 137FB0 80244C70 00000000 */ nop /* 137FB4 80244C74 82830001 */ lb $v1, 1($s4) diff --git a/asm/nonmatchings/code_135EE0/pause_tabs_handle_input.s b/asm/nonmatchings/code_135EE0/pause_tabs_handle_input.s index e1c2c16eb8..a5312b924d 100644 --- a/asm/nonmatchings/code_135EE0/pause_tabs_handle_input.s +++ b/asm/nonmatchings/code_135EE0/pause_tabs_handle_input.s @@ -6,8 +6,8 @@ glabel pause_tabs_handle_input /* 138698 80245358 AFB00010 */ sw $s0, 0x10($sp) /* 13869C 8024535C 0080802D */ daddu $s0, $a0, $zero /* 1386A0 80245360 3C030004 */ lui $v1, 4 -/* 1386A4 80245364 3C028027 */ lui $v0, 0x8027 -/* 1386A8 80245368 8C4200C0 */ lw $v0, 0xc0($v0) +/* 1386A4 80245364 3C028027 */ lui $v0, %hi(gPauseMenuHeldButtons) +/* 1386A8 80245368 8C4200C0 */ lw $v0, %lo(gPauseMenuHeldButtons)($v0) /* 1386AC 8024536C 34632000 */ ori $v1, $v1, 0x2000 /* 1386B0 80245370 AFBF0018 */ sw $ra, 0x18($sp) /* 1386B4 80245374 00431024 */ and $v0, $v0, $v1 @@ -45,8 +45,8 @@ glabel pause_tabs_handle_input /* 13872C 802453EC 00000000 */ nop .L802453F0: /* 138730 802453F0 3C030008 */ lui $v1, 8 -/* 138734 802453F4 3C028027 */ lui $v0, 0x8027 -/* 138738 802453F8 8C4200C0 */ lw $v0, 0xc0($v0) +/* 138734 802453F4 3C028027 */ lui $v0, %hi(gPauseMenuHeldButtons) +/* 138738 802453F8 8C4200C0 */ lw $v0, %lo(gPauseMenuHeldButtons)($v0) /* 13873C 802453FC 34630010 */ ori $v1, $v1, 0x10 /* 138740 80245400 00431024 */ and $v0, $v0, $v1 /* 138744 80245404 1040001D */ beqz $v0, .L8024547C @@ -122,8 +122,8 @@ glabel pause_tabs_handle_input /* 138850 80245510 0C05272D */ jal play_sound /* 138854 80245514 AE220000 */ sw $v0, ($s1) .L80245518: -/* 138858 80245518 3C028027 */ lui $v0, 0x8027 -/* 13885C 8024551C 8C4200C4 */ lw $v0, 0xc4($v0) +/* 138858 80245518 3C028027 */ lui $v0, %hi(gPauseMenuPressedButtons) +/* 13885C 8024551C 8C4200C4 */ lw $v0, %lo(gPauseMenuPressedButtons)($v0) /* 138860 80245520 30428000 */ andi $v0, $v0, 0x8000 /* 138864 80245524 10400016 */ beqz $v0, .L80245580 /* 138868 80245528 00000000 */ nop @@ -146,8 +146,8 @@ glabel pause_tabs_handle_input /* 1388AC 8024556C 82020001 */ lb $v0, 1($s0) /* 1388B0 80245570 00511021 */ addu $v0, $v0, $s1 /* 1388B4 80245574 90420000 */ lbu $v0, ($v0) -/* 1388B8 80245578 3C018027 */ lui $at, 0x8027 -/* 1388BC 8024557C A02200D4 */ sb $v0, 0xd4($at) +/* 1388B8 80245578 3C018027 */ lui $at, %hi(gPauseMenuCurrentTab) +/* 1388BC 8024557C A02200D4 */ sb $v0, %lo(gPauseMenuCurrentTab)($at) .L80245580: /* 1388C0 80245580 82020001 */ lb $v0, 1($s0) /* 1388C4 80245584 00021080 */ sll $v0, $v0, 2 @@ -158,9 +158,9 @@ glabel pause_tabs_handle_input /* 1388D8 80245598 8FBF0018 */ lw $ra, 0x18($sp) /* 1388DC 8024559C 8FB10014 */ lw $s1, 0x14($sp) /* 1388E0 802455A0 8FB00010 */ lw $s0, 0x10($sp) -/* 1388E4 802455A4 3C018027 */ lui $at, 0x8027 -/* 1388E8 802455A8 AC2200C8 */ sw $v0, 0xc8($at) -/* 1388EC 802455AC 3C018027 */ lui $at, 0x8027 -/* 1388F0 802455B0 AC2000CC */ sw $zero, 0xcc($at) +/* 1388E4 802455A4 3C018027 */ lui $at, %hi(gPauseMenuCurrentDescString) +/* 1388E8 802455A8 AC2200C8 */ sw $v0, %lo(gPauseMenuCurrentDescString)($at) +/* 1388EC 802455AC 3C018027 */ lui $at, %hi(gPauseMenuCurrentDescIconScript) +/* 1388F0 802455B0 AC2000CC */ sw $zero, %lo(gPauseMenuCurrentDescIconScript)($at) /* 1388F4 802455B4 03E00008 */ jr $ra /* 1388F8 802455B8 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/nonmatchings/code_135EE0/pause_textbox_draw_contents.s b/asm/nonmatchings/code_135EE0/pause_textbox_draw_contents.s index 5834a86f3f..d76b2171ff 100644 --- a/asm/nonmatchings/code_135EE0/pause_textbox_draw_contents.s +++ b/asm/nonmatchings/code_135EE0/pause_textbox_draw_contents.s @@ -24,8 +24,8 @@ glabel pause_textbox_draw_contents /* 1368FC 802435BC 1040000B */ beqz $v0, .L802435EC /* 136900 802435C0 02752821 */ addu $a1, $s3, $s5 /* 136904 802435C4 24A5FFFC */ addiu $a1, $a1, -4 -/* 136908 802435C8 3C108027 */ lui $s0, 0x8027 -/* 13690C 802435CC 261000E8 */ addiu $s0, $s0, 0xe8 +/* 136908 802435C8 3C108027 */ lui $s0, %hi(gPauseMenuCommonIconIDs) +/* 13690C 802435CC 261000E8 */ addiu $s0, $s0, %lo(gPauseMenuCommonIconIDs) /* 136910 802435D0 8E040004 */ lw $a0, 4($s0) /* 136914 802435D4 0C051261 */ jal set_icon_render_pos /* 136918 802435D8 26860004 */ addiu $a2, $s4, 4 @@ -40,8 +40,8 @@ glabel pause_textbox_draw_contents /* 136938 802435F8 1040000B */ beqz $v0, .L80243628 /* 13693C 802435FC 02752821 */ addu $a1, $s3, $s5 /* 136940 80243600 24A5FFFC */ addiu $a1, $a1, -4 -/* 136944 80243604 3C108027 */ lui $s0, 0x8027 -/* 136948 80243608 261000E8 */ addiu $s0, $s0, 0xe8 +/* 136944 80243604 3C108027 */ lui $s0, %hi(gPauseMenuCommonIconIDs) +/* 136948 80243608 261000E8 */ addiu $s0, $s0, %lo(gPauseMenuCommonIconIDs) /* 13694C 8024360C 02963021 */ addu $a2, $s4, $s6 /* 136950 80243610 8E040008 */ lw $a0, 8($s0) /* 136954 80243614 0C051261 */ jal set_icon_render_pos @@ -134,8 +134,8 @@ glabel pause_textbox_draw_contents /* 136AAC 8024376C 26860010 */ addiu $a2, $s4, 0x10 /* 136AB0 80243770 0060102D */ daddu $v0, $v1, $zero /* 136AB4 80243774 AC500000 */ sw $s0, ($v0) -/* 136AB8 80243778 3C108027 */ lui $s0, 0x8027 -/* 136ABC 8024377C 261000E8 */ addiu $s0, $s0, 0xe8 +/* 136AB8 80243778 3C108027 */ lui $s0, %hi(gPauseMenuCommonIconIDs) +/* 136ABC 8024377C 261000E8 */ addiu $s0, $s0, %lo(gPauseMenuCommonIconIDs) /* 136AC0 80243780 AC440004 */ sw $a0, 4($v0) /* 136AC4 80243784 8E04000C */ lw $a0, 0xc($s0) /* 136AC8 80243788 24630008 */ addiu $v1, $v1, 8 diff --git a/asm/nonmatchings/code_135EE0/pause_tutorial_draw_contents.s b/asm/nonmatchings/code_135EE0/pause_tutorial_draw_contents.s index 2461dc0a4d..36bb57576d 100644 --- a/asm/nonmatchings/code_135EE0/pause_tutorial_draw_contents.s +++ b/asm/nonmatchings/code_135EE0/pause_tutorial_draw_contents.s @@ -460,9 +460,9 @@ glabel pause_tutorial_draw_contents /* 13723C 80243EFC 8C42F090 */ lw $v0, -0xf70($v0) /* 137240 80243F00 8FAE0128 */ lw $t6, 0x128($sp) /* 137244 80243F04 00021080 */ sll $v0, $v0, 2 -/* 137248 80243F08 3C048027 */ lui $a0, 0x8027 +/* 137248 80243F08 3C048027 */ lui $a0, %hi(gPauseMenuCommonIconIDs) /* 13724C 80243F0C 00822021 */ addu $a0, $a0, $v0 -/* 137250 80243F10 8C8400E8 */ lw $a0, 0xe8($a0) +/* 137250 80243F10 8C8400E8 */ lw $a0, %lo(gPauseMenuCommonIconIDs)($a0) /* 137254 80243F14 0C051261 */ jal set_icon_render_pos /* 137258 80243F18 25C60034 */ addiu $a2, $t6, 0x34 /* 13725C 80243F1C 8EA20000 */ lw $v0, ($s5) @@ -471,9 +471,9 @@ glabel pause_tutorial_draw_contents /* 137268 80243F28 00220821 */ addu $at, $at, $v0 /* 13726C 80243F2C 8C22F090 */ lw $v0, -0xf70($at) /* 137270 80243F30 00021080 */ sll $v0, $v0, 2 -/* 137274 80243F34 3C048027 */ lui $a0, 0x8027 +/* 137274 80243F34 3C048027 */ lui $a0, %hi(gPauseMenuCommonIconIDs) /* 137278 80243F38 00822021 */ addu $a0, $a0, $v0 -/* 13727C 80243F3C 8C8400E8 */ lw $a0, 0xe8($a0) +/* 13727C 80243F3C 8C8400E8 */ lw $a0, %lo(gPauseMenuCommonIconIDs)($a0) /* 137280 80243F40 0C051280 */ jal set_icon_flags /* 137284 80243F44 34058000 */ ori $a1, $zero, 0x8000 /* 137288 80243F48 8EA20000 */ lw $v0, ($s5) @@ -483,9 +483,9 @@ glabel pause_tutorial_draw_contents /* 137298 80243F58 8C22F090 */ lw $v0, -0xf70($at) /* 13729C 80243F5C 3C053F00 */ lui $a1, 0x3f00 /* 1372A0 80243F60 00021080 */ sll $v0, $v0, 2 -/* 1372A4 80243F64 3C048027 */ lui $a0, 0x8027 +/* 1372A4 80243F64 3C048027 */ lui $a0, %hi(gPauseMenuCommonIconIDs) /* 1372A8 80243F68 00822021 */ addu $a0, $a0, $v0 -/* 1372AC 80243F6C 8C8400E8 */ lw $a0, 0xe8($a0) +/* 1372AC 80243F6C 8C8400E8 */ lw $a0, %lo(gPauseMenuCommonIconIDs)($a0) /* 1372B0 80243F70 0C051308 */ jal func_80144C20 /* 1372B4 80243F74 00000000 */ nop /* 1372B8 80243F78 8EA20000 */ lw $v0, ($s5) @@ -494,14 +494,14 @@ glabel pause_tutorial_draw_contents /* 1372C4 80243F84 00220821 */ addu $at, $at, $v0 /* 1372C8 80243F88 8C22F090 */ lw $v0, -0xf70($at) /* 1372CC 80243F8C 00021080 */ sll $v0, $v0, 2 -/* 1372D0 80243F90 3C048027 */ lui $a0, 0x8027 +/* 1372D0 80243F90 3C048027 */ lui $a0, %hi(gPauseMenuCommonIconIDs) /* 1372D4 80243F94 00822021 */ addu $a0, $a0, $v0 -/* 1372D8 80243F98 8C8400E8 */ lw $a0, 0xe8($a0) +/* 1372D8 80243F98 8C8400E8 */ lw $a0, %lo(gPauseMenuCommonIconIDs)($a0) /* 1372DC 80243F9C 0C0511F8 */ jal draw_icon_2 /* 1372E0 80243FA0 00000000 */ nop /* 1372E4 80243FA4 8EA20000 */ lw $v0, ($s5) -/* 1372E8 80243FA8 3C108027 */ lui $s0, 0x8027 -/* 1372EC 80243FAC 261000E8 */ addiu $s0, $s0, 0xe8 +/* 1372E8 80243FA8 3C108027 */ lui $s0, %hi(gPauseMenuCommonIconIDs) +/* 1372EC 80243FAC 261000E8 */ addiu $s0, $s0, %lo(gPauseMenuCommonIconIDs) /* 1372F0 80243FB0 00021080 */ sll $v0, $v0, 2 /* 1372F4 80243FB4 3C038025 */ lui $v1, 0x8025 /* 1372F8 80243FB8 00621821 */ addu $v1, $v1, $v0 diff --git a/asm/nonmatchings/code_135EE0/pause_update_cursor.s b/asm/nonmatchings/code_135EE0/pause_update_cursor.s index 0a75d3c1d9..464327baf7 100644 --- a/asm/nonmatchings/code_135EE0/pause_update_cursor.s +++ b/asm/nonmatchings/code_135EE0/pause_update_cursor.s @@ -17,8 +17,8 @@ glabel pause_update_cursor /* 13684C 8024350C 50400001 */ beql $v0, $zero, .L80243514 /* 136850 80243510 240500FF */ addiu $a1, $zero, 0xff .L80243514: -/* 136854 80243514 3C108027 */ lui $s0, 0x8027 -/* 136858 80243518 261000E8 */ addiu $s0, $s0, 0xe8 +/* 136854 80243514 3C108027 */ lui $s0, %hi(gPauseMenuCommonIconIDs) +/* 136858 80243518 261000E8 */ addiu $s0, $s0, %lo(gPauseMenuCommonIconIDs) /* 13685C 8024351C 0C0513AC */ jal icon_set_opacity /* 136860 80243520 8E040000 */ lw $a0, ($s0) /* 136864 80243524 8E040000 */ lw $a0, ($s0) diff --git a/asm/nonmatchings/code_138CC0/pause_badges_draw_contents.s b/asm/nonmatchings/code_138CC0/pause_badges_draw_contents.s index 425aee68a3..278f61d7a3 100644 --- a/asm/nonmatchings/code_138CC0/pause_badges_draw_contents.s +++ b/asm/nonmatchings/code_138CC0/pause_badges_draw_contents.s @@ -248,8 +248,8 @@ glabel pause_badges_draw_contents /* 13ABEC 802478AC 1440FFFB */ bnez $v0, .L8024789C /* 13ABF0 802478B0 26520002 */ addiu $s2, $s2, 2 .L802478B4: -/* 13ABF4 802478B4 3C038027 */ lui $v1, 0x8027 -/* 13ABF8 802478B8 806300D4 */ lb $v1, 0xd4($v1) +/* 13ABF4 802478B4 3C038027 */ lui $v1, %hi(gPauseMenuCurrentTab) +/* 13ABF8 802478B8 806300D4 */ lb $v1, %lo(gPauseMenuCurrentTab)($v1) /* 13ABFC 802478BC 24020002 */ addiu $v0, $zero, 2 /* 13AC00 802478C0 14620029 */ bne $v1, $v0, .L80247968 /* 13AC04 802478C4 24020001 */ addiu $v0, $zero, 1 @@ -518,8 +518,8 @@ glabel pause_badges_draw_contents /* 13AFEC 80247CAC 000210C0 */ sll $v0, $v0, 3 /* 13AFF0 80247CB0 004A1021 */ addu $v0, $v0, $t2 /* 13AFF4 80247CB4 8C420000 */ lw $v0, ($v0) -/* 13AFF8 80247CB8 3C018027 */ lui $at, 0x8027 -/* 13AFFC 80247CBC AC2200CC */ sw $v0, 0xcc($at) +/* 13AFF8 80247CB8 3C018027 */ lui $at, %hi(gPauseMenuCurrentDescIconScript) +/* 13AFFC 80247CBC AC2200CC */ sw $v0, %lo(gPauseMenuCurrentDescIconScript)($at) .L80247CC0: /* 13B000 80247CC0 8FAB0084 */ lw $t3, 0x84($sp) /* 13B004 80247CC4 1560000F */ bnez $t3, .L80247D04 @@ -935,8 +935,8 @@ glabel pause_badges_draw_contents /* 13B608 802482C8 00000000 */ nop /* 13B60C 802482CC 30630FFF */ andi $v1, $v1, 0xfff /* 13B610 802482D0 00431025 */ or $v0, $v0, $v1 -/* 13B614 802482D4 3C038027 */ lui $v1, 0x8027 -/* 13B618 802482D8 806300D4 */ lb $v1, 0xd4($v1) +/* 13B614 802482D4 3C038027 */ lui $v1, %hi(gPauseMenuCurrentTab) +/* 13B618 802482D8 806300D4 */ lb $v1, %lo(gPauseMenuCurrentTab)($v1) /* 13B61C 802482DC ACA20004 */ sw $v0, 4($a1) /* 13B620 802482E0 24020002 */ addiu $v0, $zero, 2 /* 13B624 802482E4 1462002A */ bne $v1, $v0, .L80248390 @@ -1460,8 +1460,8 @@ glabel pause_badges_draw_contents /* 13BDE0 80248AA0 AFA00010 */ sw $zero, 0x10($sp) /* 13BDE4 80248AA4 0C04993B */ jal draw_string /* 13BDE8 80248AA8 AFB00014 */ sw $s0, 0x14($sp) -/* 13BDEC 80248AAC 3C038027 */ lui $v1, 0x8027 -/* 13BDF0 80248AB0 806300D4 */ lb $v1, 0xd4($v1) +/* 13BDEC 80248AAC 3C038027 */ lui $v1, %hi(gPauseMenuCurrentTab) +/* 13BDF0 80248AB0 806300D4 */ lb $v1, %lo(gPauseMenuCurrentTab)($v1) /* 13BDF4 80248AB4 24020002 */ addiu $v0, $zero, 2 /* 13BDF8 80248AB8 14620050 */ bne $v1, $v0, .L80248BFC /* 13BDFC 80248ABC 00000000 */ nop diff --git a/asm/nonmatchings/code_138CC0/pause_badges_handle_input.s b/asm/nonmatchings/code_138CC0/pause_badges_handle_input.s index 6c86613f8c..725d458a3d 100644 --- a/asm/nonmatchings/code_138CC0/pause_badges_handle_input.s +++ b/asm/nonmatchings/code_138CC0/pause_badges_handle_input.s @@ -17,8 +17,8 @@ glabel pause_badges_handle_input /* 13C418 802490D8 3C018027 */ lui $at, 0x8027 /* 13C41C 802490DC 00220821 */ addu $at, $at, $v0 /* 13C420 802490E0 9022028A */ lbu $v0, 0x28a($at) -/* 13C424 802490E4 3C038027 */ lui $v1, 0x8027 -/* 13C428 802490E8 8C6300C4 */ lw $v1, 0xc4($v1) +/* 13C424 802490E4 3C038027 */ lui $v1, %hi(gPauseMenuPressedButtons) +/* 13C428 802490E8 8C6300C4 */ lw $v1, %lo(gPauseMenuPressedButtons)($v1) /* 13C42C 802490EC 14400002 */ bnez $v0, .L802490F8 /* 13C430 802490F0 0122001A */ div $zero, $t1, $v0 /* 13C434 802490F4 0007000D */ break 7 @@ -107,8 +107,8 @@ glabel pause_badges_handle_input .L8024921C: /* 13C55C 8024921C 14600005 */ bnez $v1, .L80249234 /* 13C560 80249220 00000000 */ nop -/* 13C564 80249224 3C028027 */ lui $v0, 0x8027 -/* 13C568 80249228 8C4200C0 */ lw $v0, 0xc0($v0) +/* 13C564 80249224 3C028027 */ lui $v0, %hi(gPauseMenuHeldButtons) +/* 13C568 80249228 8C4200C0 */ lw $v0, %lo(gPauseMenuHeldButtons)($v0) /* 13C56C 8024922C 10400003 */ beqz $v0, .L8024923C /* 13C570 80249230 00000000 */ nop .L80249234: @@ -125,8 +125,8 @@ glabel pause_badges_handle_input /* 13C598 80249258 3C020001 */ lui $v0, 1 /* 13C59C 8024925C 3C108027 */ lui $s0, 0x8027 /* 13C5A0 80249260 2610039C */ addiu $s0, $s0, 0x39c -/* 13C5A4 80249264 3C028027 */ lui $v0, 0x8027 -/* 13C5A8 80249268 8C4200C0 */ lw $v0, 0xc0($v0) +/* 13C5A4 80249264 3C028027 */ lui $v0, %hi(gPauseMenuHeldButtons) +/* 13C5A8 80249268 8C4200C0 */ lw $v0, %lo(gPauseMenuHeldButtons)($v0) /* 13C5AC 8024926C 3C030003 */ lui $v1, 3 /* 13C5B0 80249270 00431024 */ and $v0, $v0, $v1 /* 13C5B4 80249274 8E030000 */ lw $v1, ($s0) @@ -145,8 +145,8 @@ glabel pause_badges_handle_input /* 13C5E4 802492A4 08092543 */ j .L8024950C /* 13C5E8 802492A8 00000000 */ nop .L802492AC: -/* 13C5EC 802492AC 3C038027 */ lui $v1, 0x8027 -/* 13C5F0 802492B0 8C6300C0 */ lw $v1, 0xc0($v1) +/* 13C5EC 802492AC 3C038027 */ lui $v1, %hi(gPauseMenuHeldButtons) +/* 13C5F0 802492B0 8C6300C0 */ lw $v1, %lo(gPauseMenuHeldButtons)($v1) /* 13C5F4 802492B4 34422000 */ ori $v0, $v0, 0x2000 /* 13C5F8 802492B8 00621024 */ and $v0, $v1, $v0 /* 13C5FC 802492BC 10400022 */ beqz $v0, .L80249348 @@ -189,8 +189,8 @@ glabel pause_badges_handle_input /* 13C684 80249344 90A50289 */ lbu $a1, 0x289($a1) .L80249348: /* 13C688 80249348 3C020002 */ lui $v0, 2 -/* 13C68C 8024934C 3C038027 */ lui $v1, 0x8027 -/* 13C690 80249350 8C6300C0 */ lw $v1, 0xc0($v1) +/* 13C68C 8024934C 3C038027 */ lui $v1, %hi(gPauseMenuHeldButtons) +/* 13C690 80249350 8C6300C0 */ lw $v1, %lo(gPauseMenuHeldButtons)($v1) /* 13C694 80249354 34420010 */ ori $v0, $v0, 0x10 /* 13C698 80249358 00621024 */ and $v0, $v1, $v0 /* 13C69C 8024935C 10400030 */ beqz $v0, .L80249420 @@ -262,8 +262,8 @@ glabel pause_badges_handle_input /* 13C798 80249458 24027FFE */ addiu $v0, $zero, 0x7ffe /* 13C79C 8024945C 10620012 */ beq $v1, $v0, .L802494A8 /* 13C7A0 80249460 3C020004 */ lui $v0, 4 -/* 13C7A4 80249464 3C038027 */ lui $v1, 0x8027 -/* 13C7A8 80249468 8C6300C0 */ lw $v1, 0xc0($v1) +/* 13C7A4 80249464 3C038027 */ lui $v1, %hi(gPauseMenuHeldButtons) +/* 13C7A8 80249468 8C6300C0 */ lw $v1, %lo(gPauseMenuHeldButtons)($v1) /* 13C7AC 8024946C 00621024 */ and $v0, $v1, $v0 /* 13C7B0 80249470 10400006 */ beqz $v0, .L8024948C /* 13C7B4 80249474 3C020008 */ lui $v0, 8 @@ -325,13 +325,13 @@ glabel pause_badges_handle_input /* 13C880 80249540 3C018008 */ lui $at, %hi(gItemTable+0x10) /* 13C884 80249544 00220821 */ addu $at, $at, $v0 /* 13C888 80249548 8C2278F0 */ lw $v0, %lo(gItemTable+0x10)($at) -/* 13C88C 8024954C 3C018027 */ lui $at, 0x8027 -/* 13C890 80249550 AC2200C8 */ sw $v0, 0xc8($at) +/* 13C88C 8024954C 3C018027 */ lui $at, %hi(gPauseMenuCurrentDescString) +/* 13C890 80249550 AC2200C8 */ sw $v0, %lo(gPauseMenuCurrentDescString)($at) /* 13C894 80249554 08092566 */ j .L80249598 /* 13C898 80249558 00000000 */ nop .L8024955C: -/* 13C89C 8024955C 3C018027 */ lui $at, 0x8027 -/* 13C8A0 80249560 AC2000C8 */ sw $zero, 0xc8($at) +/* 13C89C 8024955C 3C018027 */ lui $at, %hi(gPauseMenuCurrentDescString) +/* 13C8A0 80249560 AC2000C8 */ sw $zero, %lo(gPauseMenuCurrentDescString)($at) /* 13C8A4 80249564 08092564 */ j .L80249590 /* 13C8A8 80249568 00000000 */ nop .L8024956C: @@ -343,14 +343,14 @@ glabel pause_badges_handle_input .L80249580: /* 13C8C0 80249580 0C093BA0 */ jal pause_get_menu_string /* 13C8C4 80249584 00000000 */ nop -/* 13C8C8 80249588 3C018027 */ lui $at, 0x8027 -/* 13C8CC 8024958C AC2200C8 */ sw $v0, 0xc8($at) +/* 13C8C8 80249588 3C018027 */ lui $at, %hi(gPauseMenuCurrentDescString) +/* 13C8CC 8024958C AC2200C8 */ sw $v0, %lo(gPauseMenuCurrentDescString)($at) .L80249590: -/* 13C8D0 80249590 3C018027 */ lui $at, 0x8027 -/* 13C8D4 80249594 AC2000CC */ sw $zero, 0xcc($at) +/* 13C8D0 80249590 3C018027 */ lui $at, %hi(gPauseMenuCurrentDescIconScript) +/* 13C8D4 80249594 AC2000CC */ sw $zero, %lo(gPauseMenuCurrentDescIconScript)($at) .L80249598: -/* 13C8D8 80249598 3C028027 */ lui $v0, 0x8027 -/* 13C8DC 8024959C 8C4200C4 */ lw $v0, 0xc4($v0) +/* 13C8D8 80249598 3C028027 */ lui $v0, %hi(gPauseMenuPressedButtons) +/* 13C8DC 8024959C 8C4200C4 */ lw $v0, %lo(gPauseMenuPressedButtons)($v0) /* 13C8E0 802495A0 30424000 */ andi $v0, $v0, 0x4000 /* 13C8E4 802495A4 10400017 */ beqz $v0, .L80249604 /* 13C8E8 802495A8 00000000 */ nop @@ -361,8 +361,8 @@ glabel pause_badges_handle_input /* 13C8FC 802495BC 00000000 */ nop /* 13C900 802495C0 0C05272D */ jal play_sound /* 13C904 802495C4 240400CA */ addiu $a0, $zero, 0xca -/* 13C908 802495C8 3C018027 */ lui $at, 0x8027 -/* 13C90C 802495CC A02000D4 */ sb $zero, 0xd4($at) +/* 13C908 802495C8 3C018027 */ lui $at, %hi(gPauseMenuCurrentTab) +/* 13C90C 802495CC A02000D4 */ sb $zero, %lo(gPauseMenuCurrentTab)($at) /* 13C910 802495D0 08092581 */ j .L80249604 /* 13C914 802495D4 00000000 */ nop .L802495D8: diff --git a/asm/nonmatchings/code_138CC0/pause_stats_draw_contents.s b/asm/nonmatchings/code_138CC0/pause_stats_draw_contents.s index c4a93901c7..2eb767e180 100644 --- a/asm/nonmatchings/code_138CC0/pause_stats_draw_contents.s +++ b/asm/nonmatchings/code_138CC0/pause_stats_draw_contents.s @@ -1130,8 +1130,8 @@ glabel pause_stats_draw_contents /* 139D84 80246A44 080919BF */ j .L802466FC /* 139D88 80246A48 26100014 */ addiu $s0, $s0, 0x14 .L80246A4C: -/* 139D8C 80246A4C 3C038027 */ lui $v1, 0x8027 -/* 139D90 80246A50 806300D4 */ lb $v1, 0xd4($v1) +/* 139D8C 80246A4C 3C038027 */ lui $v1, %hi(gPauseMenuCurrentTab) +/* 139D90 80246A50 806300D4 */ lb $v1, %lo(gPauseMenuCurrentTab)($v1) /* 139D94 80246A54 24020001 */ addiu $v0, $zero, 1 /* 139D98 80246A58 1462000F */ bne $v1, $v0, .L80246A98 /* 139D9C 80246A5C 2404001F */ addiu $a0, $zero, 0x1f diff --git a/asm/nonmatchings/code_138CC0/pause_stats_handle_input.s b/asm/nonmatchings/code_138CC0/pause_stats_handle_input.s index 264ce0f42c..65fac1cc04 100644 --- a/asm/nonmatchings/code_138CC0/pause_stats_handle_input.s +++ b/asm/nonmatchings/code_138CC0/pause_stats_handle_input.s @@ -5,8 +5,8 @@ glabel pause_stats_handle_input /* 139EB4 80246B74 27BDFFE0 */ addiu $sp, $sp, -0x20 /* 139EB8 80246B78 AFB00010 */ sw $s0, 0x10($sp) /* 139EBC 80246B7C 0080802D */ daddu $s0, $a0, $zero -/* 139EC0 80246B80 3C028027 */ lui $v0, 0x8027 -/* 139EC4 80246B84 8C4200C0 */ lw $v0, 0xc0($v0) +/* 139EC0 80246B80 3C028027 */ lui $v0, %hi(gPauseMenuHeldButtons) +/* 139EC4 80246B84 8C4200C0 */ lw $v0, %lo(gPauseMenuHeldButtons)($v0) /* 139EC8 80246B88 3C030004 */ lui $v1, 4 /* 139ECC 80246B8C AFBF0018 */ sw $ra, 0x18($sp) /* 139ED0 80246B90 AFB10014 */ sw $s1, 0x14($sp) @@ -43,8 +43,8 @@ glabel pause_stats_handle_input /* 139F48 80246C08 1082FFE6 */ beq $a0, $v0, .L80246BA4 /* 139F4C 80246C0C 00000000 */ nop .L80246C10: -/* 139F50 80246C10 3C028027 */ lui $v0, 0x8027 -/* 139F54 80246C14 8C4200C0 */ lw $v0, 0xc0($v0) +/* 139F50 80246C10 3C028027 */ lui $v0, %hi(gPauseMenuHeldButtons) +/* 139F54 80246C14 8C4200C0 */ lw $v0, %lo(gPauseMenuHeldButtons)($v0) /* 139F58 80246C18 3C030008 */ lui $v1, 8 /* 139F5C 80246C1C 00431024 */ and $v0, $v0, $v1 /* 139F60 80246C20 1040001E */ beqz $v0, .L80246C9C @@ -80,8 +80,8 @@ glabel pause_stats_handle_input /* 139FD4 80246C94 1082FFE6 */ beq $a0, $v0, .L80246C30 /* 139FD8 80246C98 00000000 */ nop .L80246C9C: -/* 139FDC 80246C9C 3C028027 */ lui $v0, 0x8027 -/* 139FE0 80246CA0 8C4200C0 */ lw $v0, 0xc0($v0) +/* 139FDC 80246C9C 3C028027 */ lui $v0, %hi(gPauseMenuHeldButtons) +/* 139FE0 80246CA0 8C4200C0 */ lw $v0, %lo(gPauseMenuHeldButtons)($v0) /* 139FE4 80246CA4 3C030001 */ lui $v1, 1 /* 139FE8 80246CA8 00431024 */ and $v0, $v0, $v1 /* 139FEC 80246CAC 1040001D */ beqz $v0, .L80246D24 @@ -116,8 +116,8 @@ glabel pause_stats_handle_input /* 13A05C 80246D1C 1082FFE5 */ beq $a0, $v0, .L80246CB4 /* 13A060 80246D20 00000000 */ nop .L80246D24: -/* 13A064 80246D24 3C028027 */ lui $v0, 0x8027 -/* 13A068 80246D28 8C4200C0 */ lw $v0, 0xc0($v0) +/* 13A064 80246D24 3C028027 */ lui $v0, %hi(gPauseMenuHeldButtons) +/* 13A068 80246D28 8C4200C0 */ lw $v0, %lo(gPauseMenuHeldButtons)($v0) /* 13A06C 80246D2C 3C030002 */ lui $v1, 2 /* 13A070 80246D30 00431024 */ and $v0, $v0, $v1 /* 13A074 80246D34 10400020 */ beqz $v0, .L80246DB8 @@ -268,19 +268,19 @@ glabel pause_stats_handle_input /* 13A280 80246F40 8C84F3B8 */ lw $a0, -0xc48($a0) /* 13A284 80246F44 0C093BA0 */ jal pause_get_menu_string /* 13A288 80246F48 00912021 */ addu $a0, $a0, $s1 -/* 13A28C 80246F4C 3C038027 */ lui $v1, 0x8027 -/* 13A290 80246F50 8C6300C4 */ lw $v1, 0xc4($v1) -/* 13A294 80246F54 3C018027 */ lui $at, 0x8027 -/* 13A298 80246F58 AC2200C8 */ sw $v0, 0xc8($at) -/* 13A29C 80246F5C 3C018027 */ lui $at, 0x8027 -/* 13A2A0 80246F60 AC2000CC */ sw $zero, 0xcc($at) +/* 13A28C 80246F4C 3C038027 */ lui $v1, %hi(gPauseMenuPressedButtons) +/* 13A290 80246F50 8C6300C4 */ lw $v1, %lo(gPauseMenuPressedButtons)($v1) +/* 13A294 80246F54 3C018027 */ lui $at, %hi(gPauseMenuCurrentDescString) +/* 13A298 80246F58 AC2200C8 */ sw $v0, %lo(gPauseMenuCurrentDescString)($at) +/* 13A29C 80246F5C 3C018027 */ lui $at, %hi(gPauseMenuCurrentDescIconScript) +/* 13A2A0 80246F60 AC2000CC */ sw $zero, %lo(gPauseMenuCurrentDescIconScript)($at) /* 13A2A4 80246F64 30634000 */ andi $v1, $v1, 0x4000 /* 13A2A8 80246F68 10600005 */ beqz $v1, .L80246F80 /* 13A2AC 80246F6C 00000000 */ nop /* 13A2B0 80246F70 0C05272D */ jal play_sound /* 13A2B4 80246F74 240400CA */ addiu $a0, $zero, 0xca -/* 13A2B8 80246F78 3C018027 */ lui $at, 0x8027 -/* 13A2BC 80246F7C A02000D4 */ sb $zero, 0xd4($at) +/* 13A2B8 80246F78 3C018027 */ lui $at, %hi(gPauseMenuCurrentTab) +/* 13A2BC 80246F7C A02000D4 */ sb $zero, %lo(gPauseMenuCurrentTab)($at) .L80246F80: /* 13A2C0 80246F80 8FBF0018 */ lw $ra, 0x18($sp) /* 13A2C4 80246F84 8FB10014 */ lw $s1, 0x14($sp) diff --git a/asm/nonmatchings/code_13CAF0/pause_items_draw_contents.s b/asm/nonmatchings/code_13CAF0/pause_items_draw_contents.s index b06757b1a4..a5be0a7576 100644 --- a/asm/nonmatchings/code_13CAF0/pause_items_draw_contents.s +++ b/asm/nonmatchings/code_13CAF0/pause_items_draw_contents.s @@ -212,8 +212,8 @@ glabel pause_items_draw_contents /* 13CFC8 80249C88 AFA20068 */ sw $v0, 0x68($sp) /* 13CFCC 80249C8C 0040B82D */ daddu $s7, $v0, $zero /* 13CFD0 80249C90 3A027FFE */ xori $v0, $s0, 0x7ffe -/* 13CFD4 80249C94 3C038027 */ lui $v1, 0x8027 -/* 13CFD8 80249C98 806300D4 */ lb $v1, 0xd4($v1) +/* 13CFD4 80249C94 3C038027 */ lui $v1, %hi(gPauseMenuCurrentTab) +/* 13CFD8 80249C98 806300D4 */ lb $v1, %lo(gPauseMenuCurrentTab)($v1) /* 13CFDC 80249C9C 2C420001 */ sltiu $v0, $v0, 1 /* 13CFE0 80249CA0 AFA20074 */ sw $v0, 0x74($sp) /* 13CFE4 80249CA4 24020003 */ addiu $v0, $zero, 3 @@ -348,8 +348,8 @@ glabel pause_items_draw_contents /* 13D1CC 80249E8C 000210C0 */ sll $v0, $v0, 3 /* 13D1D0 80249E90 004B1021 */ addu $v0, $v0, $t3 /* 13D1D4 80249E94 8C420000 */ lw $v0, ($v0) -/* 13D1D8 80249E98 3C018027 */ lui $at, 0x8027 -/* 13D1DC 80249E9C AC2200CC */ sw $v0, 0xcc($at) +/* 13D1D8 80249E98 3C018027 */ lui $at, %hi(gPauseMenuCurrentDescIconScript) +/* 13D1DC 80249E9C AC2200CC */ sw $v0, %lo(gPauseMenuCurrentDescIconScript)($at) .L80249EA0: /* 13D1E0 80249EA0 00161400 */ sll $v0, $s6, 0x10 /* 13D1E4 80249EA4 000212C3 */ sra $v0, $v0, 0xb @@ -509,8 +509,8 @@ glabel pause_items_draw_contents /* 13D424 8024A0E4 00000000 */ nop /* 13D428 8024A0E8 30630FFF */ andi $v1, $v1, 0xfff /* 13D42C 8024A0EC 00431025 */ or $v0, $v0, $v1 -/* 13D430 8024A0F0 3C038027 */ lui $v1, 0x8027 -/* 13D434 8024A0F4 806300D4 */ lb $v1, 0xd4($v1) +/* 13D430 8024A0F0 3C038027 */ lui $v1, %hi(gPauseMenuCurrentTab) +/* 13D434 8024A0F4 806300D4 */ lb $v1, %lo(gPauseMenuCurrentTab)($v1) /* 13D438 8024A0F8 ACA20004 */ sw $v0, 4($a1) /* 13D43C 8024A0FC 24020003 */ addiu $v0, $zero, 3 /* 13D440 8024A100 1462002A */ bne $v1, $v0, .L8024A1AC @@ -678,8 +678,8 @@ glabel pause_items_draw_contents /* 13D698 8024A358 AFA00010 */ sw $zero, 0x10($sp) /* 13D69C 8024A35C 0C04993B */ jal draw_string /* 13D6A0 8024A360 AFA80014 */ sw $t0, 0x14($sp) -/* 13D6A4 8024A364 3C038027 */ lui $v1, 0x8027 -/* 13D6A8 8024A368 806300D4 */ lb $v1, 0xd4($v1) +/* 13D6A4 8024A364 3C038027 */ lui $v1, %hi(gPauseMenuCurrentTab) +/* 13D6A8 8024A368 806300D4 */ lb $v1, %lo(gPauseMenuCurrentTab)($v1) /* 13D6AC 8024A36C 24020003 */ addiu $v0, $zero, 3 /* 13D6B0 8024A370 1462004E */ bne $v1, $v0, .L8024A4AC /* 13D6B4 8024A374 00000000 */ nop diff --git a/asm/nonmatchings/code_13CAF0/pause_items_handle_input.s b/asm/nonmatchings/code_13CAF0/pause_items_handle_input.s index 48dfc5c8ac..07b6c0feca 100644 --- a/asm/nonmatchings/code_13CAF0/pause_items_handle_input.s +++ b/asm/nonmatchings/code_13CAF0/pause_items_handle_input.s @@ -13,8 +13,8 @@ glabel pause_items_handle_input /* 13DB38 8024A7F8 3C038027 */ lui $v1, 0x8027 /* 13DB3C 8024A7FC 00621821 */ addu $v1, $v1, $v0 /* 13DB40 8024A800 906304D2 */ lbu $v1, 0x4d2($v1) -/* 13DB44 8024A804 3C028027 */ lui $v0, 0x8027 -/* 13DB48 8024A808 8C4200C4 */ lw $v0, 0xc4($v0) +/* 13DB44 8024A804 3C028027 */ lui $v0, %hi(gPauseMenuPressedButtons) +/* 13DB48 8024A808 8C4200C4 */ lw $v0, %lo(gPauseMenuPressedButtons)($v0) /* 13DB4C 8024A80C 3C098027 */ lui $t1, 0x8027 /* 13DB50 8024A810 8D2905C0 */ lw $t1, 0x5c0($t1) /* 13DB54 8024A814 30428000 */ andi $v0, $v0, 0x8000 @@ -65,8 +65,8 @@ glabel pause_items_handle_input /* 13DBF8 8024A8B8 3C020001 */ lui $v0, 1 /* 13DBFC 8024A8BC 3C108027 */ lui $s0, 0x8027 /* 13DC00 8024A8C0 261005E4 */ addiu $s0, $s0, 0x5e4 -/* 13DC04 8024A8C4 3C028027 */ lui $v0, 0x8027 -/* 13DC08 8024A8C8 8C4200C0 */ lw $v0, 0xc0($v0) +/* 13DC04 8024A8C4 3C028027 */ lui $v0, %hi(gPauseMenuHeldButtons) +/* 13DC08 8024A8C8 8C4200C0 */ lw $v0, %lo(gPauseMenuHeldButtons)($v0) /* 13DC0C 8024A8CC 3C030003 */ lui $v1, 3 /* 13DC10 8024A8D0 00431024 */ and $v0, $v0, $v1 /* 13DC14 8024A8D4 8E030000 */ lw $v1, ($s0) @@ -85,8 +85,8 @@ glabel pause_items_handle_input /* 13DC44 8024A904 08092ADB */ j .L8024AB6C /* 13DC48 8024A908 00000000 */ nop .L8024A90C: -/* 13DC4C 8024A90C 3C038027 */ lui $v1, 0x8027 -/* 13DC50 8024A910 8C6300C0 */ lw $v1, 0xc0($v1) +/* 13DC4C 8024A90C 3C038027 */ lui $v1, %hi(gPauseMenuHeldButtons) +/* 13DC50 8024A910 8C6300C0 */ lw $v1, %lo(gPauseMenuHeldButtons)($v1) /* 13DC54 8024A914 34422000 */ ori $v0, $v0, 0x2000 /* 13DC58 8024A918 00621024 */ and $v0, $v1, $v0 /* 13DC5C 8024A91C 10400022 */ beqz $v0, .L8024A9A8 @@ -129,8 +129,8 @@ glabel pause_items_handle_input /* 13DCE4 8024A9A4 90A504D1 */ lbu $a1, 0x4d1($a1) .L8024A9A8: /* 13DCE8 8024A9A8 3C020002 */ lui $v0, 2 -/* 13DCEC 8024A9AC 3C038027 */ lui $v1, 0x8027 -/* 13DCF0 8024A9B0 8C6300C0 */ lw $v1, 0xc0($v1) +/* 13DCEC 8024A9AC 3C038027 */ lui $v1, %hi(gPauseMenuHeldButtons) +/* 13DCF0 8024A9B0 8C6300C0 */ lw $v1, %lo(gPauseMenuHeldButtons)($v1) /* 13DCF4 8024A9B4 34420010 */ ori $v0, $v0, 0x10 /* 13DCF8 8024A9B8 00621024 */ and $v0, $v1, $v0 /* 13DCFC 8024A9BC 10400030 */ beqz $v0, .L8024AA80 @@ -202,8 +202,8 @@ glabel pause_items_handle_input /* 13DDF8 8024AAB8 24027FFE */ addiu $v0, $zero, 0x7ffe /* 13DDFC 8024AABC 10620012 */ beq $v1, $v0, .L8024AB08 /* 13DE00 8024AAC0 3C020004 */ lui $v0, 4 -/* 13DE04 8024AAC4 3C038027 */ lui $v1, 0x8027 -/* 13DE08 8024AAC8 8C6300C0 */ lw $v1, 0xc0($v1) +/* 13DE04 8024AAC4 3C038027 */ lui $v1, %hi(gPauseMenuHeldButtons) +/* 13DE08 8024AAC8 8C6300C0 */ lw $v1, %lo(gPauseMenuHeldButtons)($v1) /* 13DE0C 8024AACC 00621024 */ and $v0, $v1, $v0 /* 13DE10 8024AAD0 10400006 */ beqz $v0, .L8024AAEC /* 13DE14 8024AAD4 3C020008 */ lui $v0, 8 @@ -265,13 +265,13 @@ glabel pause_items_handle_input /* 13DEE0 8024ABA0 3C018008 */ lui $at, %hi(gItemTable+0x10) /* 13DEE4 8024ABA4 00220821 */ addu $at, $at, $v0 /* 13DEE8 8024ABA8 8C2278F0 */ lw $v0, %lo(gItemTable+0x10)($at) -/* 13DEEC 8024ABAC 3C018027 */ lui $at, 0x8027 -/* 13DEF0 8024ABB0 AC2200C8 */ sw $v0, 0xc8($at) +/* 13DEEC 8024ABAC 3C018027 */ lui $at, %hi(gPauseMenuCurrentDescString) +/* 13DEF0 8024ABB0 AC2200C8 */ sw $v0, %lo(gPauseMenuCurrentDescString)($at) /* 13DEF4 8024ABB4 08092AFE */ j .L8024ABF8 /* 13DEF8 8024ABB8 00000000 */ nop .L8024ABBC: -/* 13DEFC 8024ABBC 3C018027 */ lui $at, 0x8027 -/* 13DF00 8024ABC0 AC2000C8 */ sw $zero, 0xc8($at) +/* 13DEFC 8024ABBC 3C018027 */ lui $at, %hi(gPauseMenuCurrentDescString) +/* 13DF00 8024ABC0 AC2000C8 */ sw $zero, %lo(gPauseMenuCurrentDescString)($at) /* 13DF04 8024ABC4 08092AFC */ j .L8024ABF0 /* 13DF08 8024ABC8 00000000 */ nop .L8024ABCC: @@ -283,14 +283,14 @@ glabel pause_items_handle_input .L8024ABE0: /* 13DF20 8024ABE0 0C093BA0 */ jal pause_get_menu_string /* 13DF24 8024ABE4 00000000 */ nop -/* 13DF28 8024ABE8 3C018027 */ lui $at, 0x8027 -/* 13DF2C 8024ABEC AC2200C8 */ sw $v0, 0xc8($at) +/* 13DF28 8024ABE8 3C018027 */ lui $at, %hi(gPauseMenuCurrentDescString) +/* 13DF2C 8024ABEC AC2200C8 */ sw $v0, %lo(gPauseMenuCurrentDescString)($at) .L8024ABF0: -/* 13DF30 8024ABF0 3C018027 */ lui $at, 0x8027 -/* 13DF34 8024ABF4 AC2000CC */ sw $zero, 0xcc($at) +/* 13DF30 8024ABF0 3C018027 */ lui $at, %hi(gPauseMenuCurrentDescIconScript) +/* 13DF34 8024ABF4 AC2000CC */ sw $zero, %lo(gPauseMenuCurrentDescIconScript)($at) .L8024ABF8: -/* 13DF38 8024ABF8 3C028027 */ lui $v0, 0x8027 -/* 13DF3C 8024ABFC 8C4200C4 */ lw $v0, 0xc4($v0) +/* 13DF38 8024ABF8 3C028027 */ lui $v0, %hi(gPauseMenuPressedButtons) +/* 13DF3C 8024ABFC 8C4200C4 */ lw $v0, %lo(gPauseMenuPressedButtons)($v0) /* 13DF40 8024AC00 30424000 */ andi $v0, $v0, 0x4000 /* 13DF44 8024AC04 1040000F */ beqz $v0, .L8024AC44 /* 13DF48 8024AC08 00000000 */ nop @@ -301,8 +301,8 @@ glabel pause_items_handle_input /* 13DF5C 8024AC1C 00000000 */ nop /* 13DF60 8024AC20 0C05272D */ jal play_sound /* 13DF64 8024AC24 240400CA */ addiu $a0, $zero, 0xca -/* 13DF68 8024AC28 3C018027 */ lui $at, 0x8027 -/* 13DF6C 8024AC2C A02000D4 */ sb $zero, 0xd4($at) +/* 13DF68 8024AC28 3C018027 */ lui $at, %hi(gPauseMenuCurrentTab) +/* 13DF6C 8024AC2C A02000D4 */ sb $zero, %lo(gPauseMenuCurrentTab)($at) /* 13DF70 8024AC30 08092B11 */ j .L8024AC44 /* 13DF74 8024AC34 00000000 */ nop .L8024AC38: diff --git a/asm/nonmatchings/code_13CAF0/pause_partners_draw_contents.s b/asm/nonmatchings/code_13CAF0/pause_partners_draw_contents.s index 498edba18b..1a16cfbcf0 100644 --- a/asm/nonmatchings/code_13CAF0/pause_partners_draw_contents.s +++ b/asm/nonmatchings/code_13CAF0/pause_partners_draw_contents.s @@ -366,8 +366,8 @@ glabel pause_partners_draw_contents /* 13E7A8 8024B468 2463A66C */ addiu $v1, $v1, -0x5994 /* 13E7AC 8024B46C 34A50002 */ ori $a1, $a1, 2 /* 13E7B0 8024B470 8C620000 */ lw $v0, ($v1) -/* 13E7B4 8024B474 3C128027 */ lui $s2, 0x8027 -/* 13E7B8 8024B478 265200D4 */ addiu $s2, $s2, 0xd4 +/* 13E7B4 8024B474 3C128027 */ lui $s2, %hi(gPauseMenuCurrentTab) +/* 13E7B8 8024B478 265200D4 */ addiu $s2, $s2, %lo(gPauseMenuCurrentTab) /* 13E7BC 8024B47C 0040202D */ daddu $a0, $v0, $zero /* 13E7C0 8024B480 24420008 */ addiu $v0, $v0, 8 /* 13E7C4 8024B484 AC620000 */ sw $v0, ($v1) diff --git a/asm/nonmatchings/code_13CAF0/pause_partners_draw_movelist.s b/asm/nonmatchings/code_13CAF0/pause_partners_draw_movelist.s index 321e33284e..a01c3bedad 100644 --- a/asm/nonmatchings/code_13CAF0/pause_partners_draw_movelist.s +++ b/asm/nonmatchings/code_13CAF0/pause_partners_draw_movelist.s @@ -175,8 +175,8 @@ glabel pause_partners_draw_movelist /* 13F2FC 8024BFBC 2A420004 */ slti $v0, $s2, 4 /* 13F300 8024BFC0 1440FF8B */ bnez $v0, .L8024BDF0 /* 13F304 8024BFC4 26730001 */ addiu $s3, $s3, 1 -/* 13F308 8024BFC8 3C038027 */ lui $v1, 0x8027 -/* 13F30C 8024BFCC 806300D4 */ lb $v1, 0xd4($v1) +/* 13F308 8024BFC8 3C038027 */ lui $v1, %hi(gPauseMenuCurrentTab) +/* 13F30C 8024BFCC 806300D4 */ lb $v1, %lo(gPauseMenuCurrentTab)($v1) /* 13F310 8024BFD0 24020004 */ addiu $v0, $zero, 4 /* 13F314 8024BFD4 14620010 */ bne $v1, $v0, .L8024C018 /* 13F318 8024BFD8 24020001 */ addiu $v0, $zero, 1 diff --git a/asm/nonmatchings/code_13CAF0/pause_partners_handle_input.s b/asm/nonmatchings/code_13CAF0/pause_partners_handle_input.s index 8553444ef1..2ad72a7770 100644 --- a/asm/nonmatchings/code_13CAF0/pause_partners_handle_input.s +++ b/asm/nonmatchings/code_13CAF0/pause_partners_handle_input.s @@ -16,14 +16,14 @@ glabel pause_partners_handle_input /* 13F6A4 8024C364 8C4206AC */ lw $v0, 0x6ac($v0) /* 13F6A8 8024C368 10400006 */ beqz $v0, .L8024C384 /* 13F6AC 8024C36C 00000000 */ nop -/* 13F6B0 8024C370 3C028027 */ lui $v0, 0x8027 -/* 13F6B4 8024C374 8C4200C0 */ lw $v0, 0xc0($v0) +/* 13F6B0 8024C370 3C028027 */ lui $v0, %hi(gPauseMenuHeldButtons) +/* 13F6B4 8024C374 8C4200C0 */ lw $v0, %lo(gPauseMenuHeldButtons)($v0) /* 13F6B8 8024C378 30422010 */ andi $v0, $v0, 0x2010 /* 13F6BC 8024C37C 1040003E */ beqz $v0, .L8024C478 /* 13F6C0 8024C380 00000000 */ nop .L8024C384: -/* 13F6C4 8024C384 3C038027 */ lui $v1, 0x8027 -/* 13F6C8 8024C388 8C6300C0 */ lw $v1, 0xc0($v1) +/* 13F6C4 8024C384 3C038027 */ lui $v1, %hi(gPauseMenuHeldButtons) +/* 13F6C8 8024C388 8C6300C0 */ lw $v1, %lo(gPauseMenuHeldButtons)($v1) /* 13F6CC 8024C38C 3C020004 */ lui $v0, 4 /* 13F6D0 8024C390 00621024 */ and $v0, $v1, $v0 /* 13F6D4 8024C394 10400002 */ beqz $v0, .L8024C3A0 @@ -162,8 +162,8 @@ glabel pause_partners_handle_input /* 13F8B8 8024C578 50800001 */ beql $a0, $zero, .L8024C580 /* 13F8BC 8024C57C 24040002 */ addiu $a0, $zero, 2 .L8024C580: -/* 13F8C0 8024C580 3C058027 */ lui $a1, 0x8027 -/* 13F8C4 8024C584 24A500C0 */ addiu $a1, $a1, 0xc0 +/* 13F8C0 8024C580 3C058027 */ lui $a1, %hi(gPauseMenuHeldButtons) +/* 13F8C4 8024C584 24A500C0 */ addiu $a1, $a1, %lo(gPauseMenuHeldButtons) /* 13F8C8 8024C588 8CA20000 */ lw $v0, ($a1) /* 13F8CC 8024C58C 3C030001 */ lui $v1, 1 /* 13F8D0 8024C590 00431024 */ and $v0, $v0, $v1 @@ -205,8 +205,8 @@ glabel pause_partners_handle_input /* 13F950 8024C610 0C05272D */ jal play_sound /* 13F954 8024C614 240400C7 */ addiu $a0, $zero, 0xc7 .L8024C618: -/* 13F958 8024C618 3C028027 */ lui $v0, 0x8027 -/* 13F95C 8024C61C 8C4200C4 */ lw $v0, 0xc4($v0) +/* 13F958 8024C618 3C028027 */ lui $v0, %hi(gPauseMenuPressedButtons) +/* 13F95C 8024C61C 8C4200C4 */ lw $v0, %lo(gPauseMenuPressedButtons)($v0) /* 13F960 8024C620 30428000 */ andi $v0, $v0, 0x8000 /* 13F964 8024C624 1040000E */ beqz $v0, .L8024C660 /* 13F968 8024C628 00000000 */ nop @@ -224,8 +224,8 @@ glabel pause_partners_handle_input /* 13F998 8024C658 080931E4 */ j .L8024C790 /* 13F99C 8024C65C 00000000 */ nop .L8024C660: -/* 13F9A0 8024C660 3C028027 */ lui $v0, 0x8027 -/* 13F9A4 8024C664 8C4200C4 */ lw $v0, 0xc4($v0) +/* 13F9A0 8024C660 3C028027 */ lui $v0, %hi(gPauseMenuPressedButtons) +/* 13F9A4 8024C664 8C4200C4 */ lw $v0, %lo(gPauseMenuPressedButtons)($v0) /* 13F9A8 8024C668 30424000 */ andi $v0, $v0, 0x4000 /* 13F9AC 8024C66C 10400013 */ beqz $v0, .L8024C6BC /* 13F9B0 8024C670 00000000 */ nop @@ -234,8 +234,8 @@ glabel pause_partners_handle_input /* 13F9BC 8024C67C 8C620000 */ lw $v0, ($v1) /* 13F9C0 8024C680 54400007 */ bnel $v0, $zero, .L8024C6A0 /* 13F9C4 8024C684 AC600000 */ sw $zero, ($v1) -/* 13F9C8 8024C688 3C018027 */ lui $at, 0x8027 -/* 13F9CC 8024C68C A02000D4 */ sb $zero, 0xd4($at) +/* 13F9C8 8024C688 3C018027 */ lui $at, %hi(gPauseMenuCurrentTab) +/* 13F9CC 8024C68C A02000D4 */ sb $zero, %lo(gPauseMenuCurrentTab)($at) /* 13F9D0 8024C690 0C05272D */ jal play_sound /* 13F9D4 8024C694 240400CA */ addiu $a0, $zero, 0xca /* 13F9D8 8024C698 080931E4 */ j .L8024C790 @@ -251,8 +251,8 @@ glabel pause_partners_handle_input .L8024C6BC: /* 13F9FC 8024C6BC 3C028027 */ lui $v0, 0x8027 /* 13FA00 8024C6C0 8C4206AC */ lw $v0, 0x6ac($v0) -/* 13FA04 8024C6C4 3C018027 */ lui $at, 0x8027 -/* 13FA08 8024C6C8 AC2000CC */ sw $zero, 0xcc($at) +/* 13FA04 8024C6C4 3C018027 */ lui $at, %hi(gPauseMenuCurrentDescIconScript) +/* 13FA08 8024C6C8 AC2000CC */ sw $zero, %lo(gPauseMenuCurrentDescIconScript)($at) /* 13FA0C 8024C6CC 1440000C */ bnez $v0, .L8024C700 /* 13FA10 8024C6D0 00000000 */ nop /* 13FA14 8024C6D4 3C028027 */ lui $v0, 0x8027 @@ -304,8 +304,8 @@ glabel pause_partners_handle_input /* 13FAC0 8024C780 00220821 */ addu $at, $at, $v0 /* 13FAC4 8024C784 8C22F06C */ lw $v0, -0xf94($at) .L8024C788: -/* 13FAC8 8024C788 3C018027 */ lui $at, 0x8027 -/* 13FACC 8024C78C AC2200C8 */ sw $v0, 0xc8($at) +/* 13FAC8 8024C788 3C018027 */ lui $at, %hi(gPauseMenuCurrentDescString) +/* 13FACC 8024C78C AC2200C8 */ sw $v0, %lo(gPauseMenuCurrentDescString)($at) .L8024C790: /* 13FAD0 8024C790 8FBF0018 */ lw $ra, 0x18($sp) /* 13FAD4 8024C794 8FB10014 */ lw $s1, 0x14($sp) diff --git a/asm/nonmatchings/code_13FD40/pause_spirits_draw_contents.s b/asm/nonmatchings/code_13FD40/pause_spirits_draw_contents.s index 636ce760b8..b448eb16bc 100644 --- a/asm/nonmatchings/code_13FD40/pause_spirits_draw_contents.s +++ b/asm/nonmatchings/code_13FD40/pause_spirits_draw_contents.s @@ -525,8 +525,8 @@ glabel pause_spirits_draw_contents /* 140538 8024D1F8 AFB80044 */ sw $t8, 0x44($sp) /* 14053C 8024D1FC 0C03D4B8 */ jal draw_box /* 140540 8024D200 AFA20048 */ sw $v0, 0x48($sp) -/* 140544 8024D204 3C038027 */ lui $v1, 0x8027 -/* 140548 8024D208 806300D4 */ lb $v1, 0xd4($v1) +/* 140544 8024D204 3C038027 */ lui $v1, %hi(gPauseMenuCurrentTab) +/* 140548 8024D208 806300D4 */ lb $v1, %lo(gPauseMenuCurrentTab)($v1) /* 14054C 8024D20C 24020005 */ addiu $v0, $zero, 5 /* 140550 8024D210 1462000E */ bne $v1, $v0, .L8024D24C /* 140554 8024D214 24040027 */ addiu $a0, $zero, 0x27 diff --git a/asm/nonmatchings/code_13FD40/pause_spirits_draw_title.s b/asm/nonmatchings/code_13FD40/pause_spirits_draw_title.s index c6207f1345..14a1168cfb 100644 --- a/asm/nonmatchings/code_13FD40/pause_spirits_draw_title.s +++ b/asm/nonmatchings/code_13FD40/pause_spirits_draw_title.s @@ -14,8 +14,8 @@ glabel pause_spirits_draw_title /* 1405F8 8024D2B8 0C039D59 */ jal get_player_data /* 1405FC 8024D2BC 00E0882D */ daddu $s1, $a3, $zero /* 140600 8024D2C0 0040202D */ daddu $a0, $v0, $zero -/* 140604 8024D2C4 3C038027 */ lui $v1, 0x8027 -/* 140608 8024D2C8 806300D4 */ lb $v1, 0xd4($v1) +/* 140604 8024D2C4 3C038027 */ lui $v1, %hi(gPauseMenuCurrentTab) +/* 140608 8024D2C8 806300D4 */ lb $v1, %lo(gPauseMenuCurrentTab)($v1) /* 14060C 8024D2CC 24020005 */ addiu $v0, $zero, 5 /* 140610 8024D2D0 1462001C */ bne $v1, $v0, .L8024D344 /* 140614 8024D2D4 00000000 */ nop diff --git a/asm/nonmatchings/code_13FD40/pause_spirits_handle_input.s b/asm/nonmatchings/code_13FD40/pause_spirits_handle_input.s index 785615b775..127d19e117 100644 --- a/asm/nonmatchings/code_13FD40/pause_spirits_handle_input.s +++ b/asm/nonmatchings/code_13FD40/pause_spirits_handle_input.s @@ -5,8 +5,8 @@ glabel pause_spirits_handle_input /* 14078C 8024D44C 27BDFFE8 */ addiu $sp, $sp, -0x18 /* 140790 8024D450 AFB00010 */ sw $s0, 0x10($sp) /* 140794 8024D454 0080802D */ daddu $s0, $a0, $zero -/* 140798 8024D458 3C028027 */ lui $v0, 0x8027 -/* 14079C 8024D45C 8C4200C0 */ lw $v0, 0xc0($v0) +/* 140798 8024D458 3C028027 */ lui $v0, %hi(gPauseMenuHeldButtons) +/* 14079C 8024D45C 8C4200C0 */ lw $v0, %lo(gPauseMenuHeldButtons)($v0) /* 1407A0 8024D460 3C030004 */ lui $v1, 4 /* 1407A4 8024D464 AFBF0014 */ sw $ra, 0x14($sp) /* 1407A8 8024D468 92070003 */ lbu $a3, 3($s0) @@ -42,8 +42,8 @@ glabel pause_spirits_handle_input /* 14081C 8024D4DC 1082FFE6 */ beq $a0, $v0, .L8024D478 /* 140820 8024D4E0 00000000 */ nop .L8024D4E4: -/* 140824 8024D4E4 3C028027 */ lui $v0, 0x8027 -/* 140828 8024D4E8 8C4200C0 */ lw $v0, 0xc0($v0) +/* 140824 8024D4E4 3C028027 */ lui $v0, %hi(gPauseMenuHeldButtons) +/* 140828 8024D4E8 8C4200C0 */ lw $v0, %lo(gPauseMenuHeldButtons)($v0) /* 14082C 8024D4EC 3C030008 */ lui $v1, 8 /* 140830 8024D4F0 00431024 */ and $v0, $v0, $v1 /* 140834 8024D4F4 1040001E */ beqz $v0, .L8024D570 @@ -79,8 +79,8 @@ glabel pause_spirits_handle_input /* 1408A8 8024D568 1082FFE6 */ beq $a0, $v0, .L8024D504 /* 1408AC 8024D56C 00000000 */ nop .L8024D570: -/* 1408B0 8024D570 3C028027 */ lui $v0, 0x8027 -/* 1408B4 8024D574 8C4200C0 */ lw $v0, 0xc0($v0) +/* 1408B0 8024D570 3C028027 */ lui $v0, %hi(gPauseMenuHeldButtons) +/* 1408B4 8024D574 8C4200C0 */ lw $v0, %lo(gPauseMenuHeldButtons)($v0) /* 1408B8 8024D578 3C030001 */ lui $v1, 1 /* 1408BC 8024D57C 00431024 */ and $v0, $v0, $v1 /* 1408C0 8024D580 10400029 */ beqz $v0, .L8024D628 @@ -130,8 +130,8 @@ glabel pause_spirits_handle_input /* 140960 8024D620 1082FFE5 */ beq $a0, $v0, .L8024D5B8 /* 140964 8024D624 00000000 */ nop .L8024D628: -/* 140968 8024D628 3C028027 */ lui $v0, 0x8027 -/* 14096C 8024D62C 8C4200C0 */ lw $v0, 0xc0($v0) +/* 140968 8024D628 3C028027 */ lui $v0, %hi(gPauseMenuHeldButtons) +/* 14096C 8024D62C 8C4200C0 */ lw $v0, %lo(gPauseMenuHeldButtons)($v0) /* 140970 8024D630 3C030002 */ lui $v1, 2 /* 140974 8024D634 00431024 */ and $v0, $v0, $v1 /* 140978 8024D638 1040002F */ beqz $v0, .L8024D6F8 @@ -219,20 +219,20 @@ glabel pause_spirits_handle_input /* 140AA8 8024D768 0C05272D */ jal play_sound /* 140AAC 8024D76C 240400C7 */ addiu $a0, $zero, 0xc7 .L8024D770: -/* 140AB0 8024D770 3C028027 */ lui $v0, 0x8027 -/* 140AB4 8024D774 8C4200C4 */ lw $v0, 0xc4($v0) +/* 140AB0 8024D770 3C028027 */ lui $v0, %hi(gPauseMenuPressedButtons) +/* 140AB4 8024D774 8C4200C4 */ lw $v0, %lo(gPauseMenuPressedButtons)($v0) /* 140AB8 8024D778 30424000 */ andi $v0, $v0, 0x4000 /* 140ABC 8024D77C 10400007 */ beqz $v0, .L8024D79C /* 140AC0 8024D780 00000000 */ nop -/* 140AC4 8024D784 3C018027 */ lui $at, 0x8027 -/* 140AC8 8024D788 A02000D4 */ sb $zero, 0xd4($at) +/* 140AC4 8024D784 3C018027 */ lui $at, %hi(gPauseMenuCurrentTab) +/* 140AC8 8024D788 A02000D4 */ sb $zero, %lo(gPauseMenuCurrentTab)($at) /* 140ACC 8024D78C 0C05272D */ jal play_sound /* 140AD0 8024D790 240400CA */ addiu $a0, $zero, 0xca /* 140AD4 8024D794 080935FC */ j .L8024D7F0 /* 140AD8 8024D798 00000000 */ nop .L8024D79C: -/* 140ADC 8024D79C 3C018027 */ lui $at, 0x8027 -/* 140AE0 8024D7A0 AC2000CC */ sw $zero, 0xcc($at) +/* 140ADC 8024D79C 3C018027 */ lui $at, %hi(gPauseMenuCurrentDescIconScript) +/* 140AE0 8024D7A0 AC2000CC */ sw $zero, %lo(gPauseMenuCurrentDescIconScript)($at) /* 140AE4 8024D7A4 0C039D59 */ jal get_player_data /* 140AE8 8024D7A8 00000000 */ nop /* 140AEC 8024D7AC 92030003 */ lbu $v1, 3($s0) @@ -252,8 +252,8 @@ glabel pause_spirits_handle_input /* 140B20 8024D7E0 34420031 */ ori $v0, $v0, 0x31 /* 140B24 8024D7E4 00621021 */ addu $v0, $v1, $v0 .L8024D7E8: -/* 140B28 8024D7E8 3C018027 */ lui $at, 0x8027 -/* 140B2C 8024D7EC AC2200C8 */ sw $v0, 0xc8($at) +/* 140B28 8024D7E8 3C018027 */ lui $at, %hi(gPauseMenuCurrentDescString) +/* 140B2C 8024D7EC AC2200C8 */ sw $v0, %lo(gPauseMenuCurrentDescString)($at) .L8024D7F0: /* 140B30 8024D7F0 8FBF0014 */ lw $ra, 0x14($sp) /* 140B34 8024D7F4 8FB00010 */ lw $s0, 0x10($sp) diff --git a/asm/nonmatchings/code_13FD40/pause_spirits_update.s b/asm/nonmatchings/code_13FD40/pause_spirits_update.s index 9a51641da8..4e3055fac4 100644 --- a/asm/nonmatchings/code_13FD40/pause_spirits_update.s +++ b/asm/nonmatchings/code_13FD40/pause_spirits_update.s @@ -27,8 +27,8 @@ glabel pause_spirits_update /* 140B94 8024D854 0242102A */ slt $v0, $s2, $v0 /* 140B98 8024D858 1040000B */ beqz $v0, .L8024D888 /* 140B9C 8024D85C 00000000 */ nop -/* 140BA0 8024D860 3C028027 */ lui $v0, 0x8027 -/* 140BA4 8024D864 804200D4 */ lb $v0, 0xd4($v0) +/* 140BA0 8024D860 3C028027 */ lui $v0, %hi(gPauseMenuCurrentTab) +/* 140BA4 8024D864 804200D4 */ lb $v0, %lo(gPauseMenuCurrentTab)($v0) /* 140BA8 8024D868 14540007 */ bne $v0, $s4, .L8024D888 /* 140BAC 8024D86C 00000000 */ nop /* 140BB0 8024D870 92A20003 */ lbu $v0, 3($s5) diff --git a/asm/nonmatchings/code_140C70/pause_map_draw_contents.s b/asm/nonmatchings/code_140C70/pause_map_draw_contents.s index 67317cdd5d..0f5eac7f07 100644 --- a/asm/nonmatchings/code_140C70/pause_map_draw_contents.s +++ b/asm/nonmatchings/code_140C70/pause_map_draw_contents.s @@ -414,8 +414,8 @@ glabel pause_map_draw_contents /* 14148C 8024E14C 8E040000 */ lw $a0, ($s0) /* 141490 8024E150 0C0511F8 */ jal draw_icon_2 /* 141494 8024E154 00000000 */ nop -/* 141498 8024E158 3C138027 */ lui $s3, 0x8027 -/* 14149C 8024E15C 267300D4 */ addiu $s3, $s3, 0xd4 +/* 141498 8024E158 3C138027 */ lui $s3, %hi(gPauseMenuCurrentTab) +/* 14149C 8024E15C 267300D4 */ addiu $s3, $s3, %lo(gPauseMenuCurrentTab) /* 1414A0 8024E160 82700000 */ lb $s0, ($s3) /* 1414A4 8024E164 24020006 */ addiu $v0, $zero, 6 /* 1414A8 8024E168 16020081 */ bne $s0, $v0, .L8024E370 diff --git a/asm/nonmatchings/code_140C70/pause_map_draw_title.s b/asm/nonmatchings/code_140C70/pause_map_draw_title.s index b574f3ba24..a94d2fbb47 100644 --- a/asm/nonmatchings/code_140C70/pause_map_draw_title.s +++ b/asm/nonmatchings/code_140C70/pause_map_draw_title.s @@ -9,8 +9,8 @@ glabel pause_map_draw_title /* 14189C 8024E55C 00C0A02D */ daddu $s4, $a2, $zero /* 1418A0 8024E560 AFB20020 */ sw $s2, 0x20($sp) /* 1418A4 8024E564 00E0902D */ daddu $s2, $a3, $zero -/* 1418A8 8024E568 3C038027 */ lui $v1, 0x8027 -/* 1418AC 8024E56C 806300D4 */ lb $v1, 0xd4($v1) +/* 1418A8 8024E568 3C038027 */ lui $v1, %hi(gPauseMenuCurrentTab) +/* 1418AC 8024E56C 806300D4 */ lb $v1, %lo(gPauseMenuCurrentTab)($v1) /* 1418B0 8024E570 24020006 */ addiu $v0, $zero, 6 /* 1418B4 8024E574 AFBF002C */ sw $ra, 0x2c($sp) /* 1418B8 8024E578 AFB1001C */ sw $s1, 0x1c($sp) diff --git a/asm/nonmatchings/code_140C70/pause_map_handle_input.s b/asm/nonmatchings/code_140C70/pause_map_handle_input.s index 1950bd0313..d12b557ea5 100644 --- a/asm/nonmatchings/code_140C70/pause_map_handle_input.s +++ b/asm/nonmatchings/code_140C70/pause_map_handle_input.s @@ -234,27 +234,27 @@ glabel pause_map_handle_input /* 141F1C 8024EBDC 45030001 */ bc1tl .L8024EBE4 /* 141F20 8024EBE0 E4A20000 */ swc1 $f2, ($a1) .L8024EBE4: -/* 141F24 8024EBE4 3C028027 */ lui $v0, 0x8027 -/* 141F28 8024EBE8 8C4200C4 */ lw $v0, 0xc4($v0) +/* 141F24 8024EBE4 3C028027 */ lui $v0, %hi(gPauseMenuPressedButtons) +/* 141F28 8024EBE8 8C4200C4 */ lw $v0, %lo(gPauseMenuPressedButtons)($v0) /* 141F2C 8024EBEC 30424000 */ andi $v0, $v0, 0x4000 /* 141F30 8024EBF0 10400007 */ beqz $v0, .L8024EC10 /* 141F34 8024EBF4 2402FFFF */ addiu $v0, $zero, -1 /* 141F38 8024EBF8 0C05272D */ jal play_sound /* 141F3C 8024EBFC 240400CA */ addiu $a0, $zero, 0xca -/* 141F40 8024EC00 3C018027 */ lui $at, 0x8027 -/* 141F44 8024EC04 A02000D4 */ sb $zero, 0xd4($at) +/* 141F40 8024EC00 3C018027 */ lui $at, %hi(gPauseMenuCurrentTab) +/* 141F44 8024EC04 A02000D4 */ sb $zero, %lo(gPauseMenuCurrentTab)($at) /* 141F48 8024EC08 08093B27 */ j .L8024EC9C /* 141F4C 8024EC0C 00000000 */ nop .L8024EC10: /* 141F50 8024EC10 3C118027 */ lui $s1, 0x8027 /* 141F54 8024EC14 2631071C */ addiu $s1, $s1, 0x71c -/* 141F58 8024EC18 3C018027 */ lui $at, 0x8027 -/* 141F5C 8024EC1C AC2000CC */ sw $zero, 0xcc($at) +/* 141F58 8024EC18 3C018027 */ lui $at, %hi(gPauseMenuCurrentDescIconScript) +/* 141F5C 8024EC1C AC2000CC */ sw $zero, %lo(gPauseMenuCurrentDescIconScript)($at) /* 141F60 8024EC20 8E260000 */ lw $a2, ($s1) /* 141F64 8024EC24 14C20005 */ bne $a2, $v0, .L8024EC3C /* 141F68 8024EC28 3C03001D */ lui $v1, 0x1d -/* 141F6C 8024EC2C 3C018027 */ lui $at, 0x8027 -/* 141F70 8024EC30 AC2000C8 */ sw $zero, 0xc8($at) +/* 141F6C 8024EC2C 3C018027 */ lui $at, %hi(gPauseMenuCurrentDescString) +/* 141F70 8024EC30 AC2000C8 */ sw $zero, %lo(gPauseMenuCurrentDescString)($at) /* 141F74 8024EC34 08093B27 */ j .L8024EC9C /* 141F78 8024EC38 00000000 */ nop .L8024EC3C: @@ -262,8 +262,8 @@ glabel pause_map_handle_input /* 141F80 8024EC40 0000202D */ daddu $a0, $zero, $zero /* 141F84 8024EC44 3C05F5DE */ lui $a1, 0xf5de /* 141F88 8024EC48 34A50180 */ ori $a1, $a1, 0x180 -/* 141F8C 8024EC4C 3C108027 */ lui $s0, 0x8027 -/* 141F90 8024EC50 261000C8 */ addiu $s0, $s0, 0xc8 +/* 141F8C 8024EC4C 3C108027 */ lui $s0, %hi(gPauseMenuCurrentDescString) +/* 141F90 8024EC50 261000C8 */ addiu $s0, $s0, %lo(gPauseMenuCurrentDescString) /* 141F94 8024EC54 00061040 */ sll $v0, $a2, 1 /* 141F98 8024EC58 00461021 */ addu $v0, $v0, $a2 /* 141F9C 8024EC5C 00431021 */ addu $v0, $v0, $v1 diff --git a/include/functions.h b/include/functions.h index ec6c3e77fc..ecbedf85a7 100644 --- a/include/functions.h +++ b/include/functions.h @@ -61,6 +61,7 @@ f32 cos_rad(f32 x); s16 round(f32); f32 atan2(f32 startX, f32 startZ, f32 endX, f32 endZ); f32 clamp_angle(f32 theta); +s32 sign(s32 value); s32 func_80055448(s32); s32 func_80055464(s32, s32); s32 func_800554A4(s32, s32); diff --git a/include/variables.h b/include/variables.h index d33e05c6a5..b3db69fe8c 100644 --- a/include/variables.h +++ b/include/variables.h @@ -120,6 +120,12 @@ extern s32 D_800A0960; extern s32 D_800A0964; // Pause +extern s32 gPauseMenuHeldButtons; +extern s32 gPauseMenuPressedButtons; +extern s32 gPauseMenuCurrentDescString; +extern Bytecode* gPauseMenuCurrentDescIconScript; +extern s8 gPauseMenuCurrentTab; +extern s32 gPauseMenuCommonIconIDs[8]; extern s32 gPauseMenuTabIconIDs[6]; extern PauseItemPage gItemMenuPages[20]; extern s32 gPauseMenuStrings[348]; @@ -129,8 +135,8 @@ extern s32 gPauseMenuCursorPos[2]; extern s32 gPauseMenuCursorOpacity; extern s32 gPauseMenuTargetPos[2]; extern s32 gPauseMenuCursorTargetOpacity; -extern s8 gPauseMenuTextScrollInterpEasingLUT[16]; -extern s8 gPauseMenuPageScrollInterpEasingLUT[16]; +extern u8 gPauseMenuTextScrollInterpEasingLUT[16]; +extern u8 gPauseMenuPageScrollInterpEasingLUT[16]; // Badges extern PauseItemPage gBadgeMenuPages[20]; diff --git a/src/code_135EE0.c b/src/code_135EE0.c index 1e0b0a33da..cd03e8a2d2 100644 --- a/src/code_135EE0.c +++ b/src/code_135EE0.c @@ -37,7 +37,34 @@ INCLUDE_ASM(s32, "code_135EE0", func_80243388); INCLUDE_ASM(s32, "code_135EE0", pause_interp_text_scroll); +// Slight ordering issue with the sign flip at the beginning +#ifdef NON_MATCHING +s32 pause_interp_vertical_scroll(s32 deltaBefore) { + s32 val; + s32 s; + s32 db; + + db = deltaBefore; + if (deltaBefore < 0) { + db = -deltaBefore; + } + + s = sign(deltaBefore); + + if (db >= 16) { + val = db / 2; + if (val > 20) { + val = 20; + } + } else { + val = gPauseMenuPageScrollInterpEasingLUT[db]; + } + + return val * s; +} +#else INCLUDE_ASM(s32, "code_135EE0", pause_interp_vertical_scroll); +#endif INCLUDE_ASM(s32, "code_135EE0", pause_update_cursor); diff --git a/undefined_syms.txt b/undefined_syms.txt index 2f3720a6ff..ec059907f0 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -156,6 +156,13 @@ gPauseMenuCursorTargetOpacity = 0x8024EFB0; gPauseMenuTextScrollInterpEasingLUT = 0x8024F0AC; gPauseMenuPageScrollInterpEasingLUT = 0x8024F0BC; +gPauseMenuHeldButtons = 0x802700C0; +gPauseMenuPressedButtons = 0x802700C4; +gPauseMenuCurrentDescString = 0x802700C8; +gPauseMenuCurrentDescIconScript = 0x802700CC; +gPauseMenuCurrentTab = 0x802700D4; +gPauseMenuCommonIconIDs = 0x802700E8; + gPauseMenuTabIconIDs = 0x80270130; gStatsMenuIconIDs = 0x80270150; gBadgeMenuItemIDs = 0x80270180; From 012dd951e165f792db5722fc3414cef8ee656b41 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Tue, 10 Nov 2020 13:38:00 -0500 Subject: [PATCH 32/52] progress --- .../dro_02/9694C0/func_8024240C_96B5CC.s | 8 +-- src/code_135EE0.c | 54 +++++++++++++++++++ 2 files changed, 58 insertions(+), 4 deletions(-) diff --git a/asm/nonmatchings/world/area_dro/dro_02/9694C0/func_8024240C_96B5CC.s b/asm/nonmatchings/world/area_dro/dro_02/9694C0/func_8024240C_96B5CC.s index 7edca873aa..127319bffa 100644 --- a/asm/nonmatchings/world/area_dro/dro_02/9694C0/func_8024240C_96B5CC.s +++ b/asm/nonmatchings/world/area_dro/dro_02/9694C0/func_8024240C_96B5CC.s @@ -463,8 +463,8 @@ glabel func_8024240C_96B5CC /* 96BCDC 80242B1C 3C013F80 */ lui $at, 0x3f80 /* 96BCE0 80242B20 44810000 */ mtc1 $at, $f0 /* 96BCE4 80242B24 27A20054 */ addiu $v0, $sp, 0x54 -/* 96BCE8 80242B28 3C018025 */ lui $at, 0x8025 -/* 96BCEC 80242B2C AC20EF80 */ sw $zero, -0x1080($at) +/* 96BCE8 80242B28 3C018025 */ lui $at, %hi(gPauseMenuTabs) +/* 96BCEC 80242B2C AC20EF80 */ sw $zero, %lo(gPauseMenuTabs)($at) /* 96BCF0 80242B30 AFA20010 */ sw $v0, 0x10($sp) /* 96BCF4 80242B34 3C018025 */ lui $at, 0x8025 /* 96BCF8 80242B38 E420EF84 */ swc1 $f0, -0x107c($at) @@ -611,8 +611,8 @@ glabel func_8024240C_96B5CC /* 96BF10 80242D50 00000000 */ nop /* 96BF14 80242D54 3C108025 */ lui $s0, 0x8025 /* 96BF18 80242D58 2610F010 */ addiu $s0, $s0, -0xff0 -/* 96BF1C 80242D5C 3C048025 */ lui $a0, 0x8025 -/* 96BF20 80242D60 2484EF80 */ addiu $a0, $a0, -0x1080 +/* 96BF1C 80242D5C 3C048025 */ lui $a0, %hi(gPauseMenuTabs) +/* 96BF20 80242D60 2484EF80 */ addiu $a0, $a0, %lo(gPauseMenuTabs) /* 96BF24 80242D64 3C038025 */ lui $v1, 0x8025 /* 96BF28 80242D68 2463EF84 */ addiu $v1, $v1, -0x107c /* 96BF2C 80242D6C 3C078025 */ lui $a3, 0x8025 diff --git a/src/code_135EE0.c b/src/code_135EE0.c index cd03e8a2d2..565a40f337 100644 --- a/src/code_135EE0.c +++ b/src/code_135EE0.c @@ -14,6 +14,46 @@ INCLUDE_ASM(s32, "code_135EE0", func_80242BAC); INCLUDE_ASM(s32, "code_135EE0", func_80242D04); INCLUDE_ASM(s32, "code_135EE0", pause_interp_cursor); +// void pause_interp_cursor(void) { +// s32 targetPosX; +// s32 posX; +// s32 targetPosY; +// s32 posY; +// s32 xDelta; +// s32 yDelta; +// s32 temp_v0; +// s32 temp_v0_2; + +// targetPosX = gPauseMenuTargetPos[0]; +// posX = gPauseMenuCursorPos[0]; +// targetPosY = gPauseMenuTargetPos[1]; +// posY = gPauseMenuCursorPos[1]; +// xDelta = (targetPosX - posX) * 0.5; +// yDelta = (targetPosY - posY) * 0.5; + +// if ((targetPosX != posX) || (targetPosY != posY)) { +// if ((xDelta == 0) && (yDelta == 0)) { +// gPauseMenuCursorPos[0] = targetPosX; +// gPauseMenuCursorPos[1] = targetPosY; +// } +// } + +// gPauseMenuCursorPos[0] += xDelta; +// gPauseMenuCursorPos[1] += yDelta; + +// if (gPauseMenuCursorTargetOpacity == 0) { +// gPauseMenuCursorOpacity -= 128; +// if (gPauseMenuCursorOpacity < 0) { +// gPauseMenuCursorOpacity = 0; +// } +// } else { +// gPauseMenuCursorOpacity += 32; +// if (gPauseMenuCursorOpacity > 255) { +// gPauseMenuCursorOpacity = 255; +// } +// } +// gPauseMenuCursorTargetOpacity = 255; +// } INCLUDE_ASM(s32, "code_135EE0", func_80242F90); @@ -67,6 +107,20 @@ INCLUDE_ASM(s32, "code_135EE0", pause_interp_vertical_scroll); #endif INCLUDE_ASM(s32, "code_135EE0", pause_update_cursor); +/*void pause_update_cursor(s32 arg0, s32 offsetX, s32 offsetY) { + s32 opacity; + + pause_interp_cursor(); + opacity = gPauseMenuCursorOpacity; + if (opacity > 0) { + if (opacity > 255) { + opacity = 255; + } + icon_set_opacity(gPauseMenuCommonIconIDs[0], opacity); + set_icon_render_pos(gPauseMenuCommonIconIDs[0], offsetX + gPauseMenuCursorPos[0], offsetY + gPauseMenuCursorPos[1]); + draw_icon_2(gPauseMenuCommonIconIDs[0]); + } +}*/ void func_80243568(void) { } From 7392e2ca3b63d2c14acbf5b7e330dbc7ae2dfeed Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Tue, 10 Nov 2020 14:43:24 -0500 Subject: [PATCH 33/52] more progress --- asm/nonmatchings/code_135EE0/func_80242BAC.s | 16 +-- asm/nonmatchings/code_135EE0/func_80242D04.s | 24 ++--- .../code_135EE0/pause_interp_cursor.s | 24 ++--- .../code_135EE0/pause_update_cursor.s | 41 -------- .../dro_02/9694C0/func_80240C88_969E48.s | 4 +- .../dro_02/9694C0/func_80241364_96A524.s | 4 +- include/variables.h | 6 +- src/code_135EE0.c | 99 ++++++++++--------- undefined_syms.txt | 6 +- 9 files changed, 99 insertions(+), 125 deletions(-) delete mode 100644 asm/nonmatchings/code_135EE0/pause_update_cursor.s diff --git a/asm/nonmatchings/code_135EE0/func_80242BAC.s b/asm/nonmatchings/code_135EE0/func_80242BAC.s index fe54f18160..eb69024480 100644 --- a/asm/nonmatchings/code_135EE0/func_80242BAC.s +++ b/asm/nonmatchings/code_135EE0/func_80242BAC.s @@ -80,14 +80,14 @@ glabel func_80242BAC /* 135FFC 80242CBC 14400009 */ bnez $v0, .L80242CE4 /* 136000 80242CC0 00000000 */ nop .L80242CC4: -/* 136004 80242CC4 3C018025 */ lui $at, %hi(gPauseMenuTargetPos) -/* 136008 80242CC8 AC31EFA8 */ sw $s1, %lo(gPauseMenuTargetPos)($at) -/* 13600C 80242CCC 3C018025 */ lui $at, %hi(gPauseMenuCursorPos) -/* 136010 80242CD0 AC31EF9C */ sw $s1, %lo(gPauseMenuCursorPos)($at) -/* 136014 80242CD4 3C018025 */ lui $at, 0x8025 -/* 136018 80242CD8 AC33EFAC */ sw $s3, -0x1054($at) -/* 13601C 80242CDC 3C018025 */ lui $at, 0x8025 -/* 136020 80242CE0 AC33EFA0 */ sw $s3, -0x1060($at) +/* 136004 80242CC4 3C018025 */ lui $at, %hi(gPauseMenuTargetPosX) +/* 136008 80242CC8 AC31EFA8 */ sw $s1, %lo(gPauseMenuTargetPosX)($at) +/* 13600C 80242CCC 3C018025 */ lui $at, %hi(gPauseMenuCursorPosX) +/* 136010 80242CD0 AC31EF9C */ sw $s1, %lo(gPauseMenuCursorPosX)($at) +/* 136014 80242CD4 3C018025 */ lui $at, %hi(gPauseMenuTargetPosY) +/* 136018 80242CD8 AC33EFAC */ sw $s3, %lo(gPauseMenuTargetPosY)($at) +/* 13601C 80242CDC 3C018025 */ lui $at, %hi(gPauseMenuCursorPosY) +/* 136020 80242CE0 AC33EFA0 */ sw $s3, %lo(gPauseMenuCursorPosY)($at) .L80242CE4: /* 136024 80242CE4 8FBF0024 */ lw $ra, 0x24($sp) /* 136028 80242CE8 8FB40020 */ lw $s4, 0x20($sp) diff --git a/asm/nonmatchings/code_135EE0/func_80242D04.s b/asm/nonmatchings/code_135EE0/func_80242D04.s index 90ba1238ee..3179810463 100644 --- a/asm/nonmatchings/code_135EE0/func_80242D04.s +++ b/asm/nonmatchings/code_135EE0/func_80242D04.s @@ -66,15 +66,15 @@ glabel func_80242D04 /* 136120 80242DE0 3C018025 */ lui $at, 0x8025 /* 136124 80242DE4 AC20EFB4 */ sw $zero, -0x104c($at) .L80242DE8: -/* 136128 80242DE8 3C018025 */ lui $at, %hi(gPauseMenuTargetPos) -/* 13612C 80242DEC AC32EFA8 */ sw $s2, %lo(gPauseMenuTargetPos)($at) -/* 136130 80242DF0 3C018025 */ lui $at, %hi(gPauseMenuCursorPos) -/* 136134 80242DF4 AC32EF9C */ sw $s2, %lo(gPauseMenuCursorPos)($at) -/* 136138 80242DF8 3C018025 */ lui $at, 0x8025 -/* 13613C 80242DFC AC33EFAC */ sw $s3, -0x1054($at) -/* 136140 80242E00 3C018025 */ lui $at, 0x8025 +/* 136128 80242DE8 3C018025 */ lui $at, %hi(gPauseMenuTargetPosX) +/* 13612C 80242DEC AC32EFA8 */ sw $s2, %lo(gPauseMenuTargetPosX)($at) +/* 136130 80242DF0 3C018025 */ lui $at, %hi(gPauseMenuCursorPosX) +/* 136134 80242DF4 AC32EF9C */ sw $s2, %lo(gPauseMenuCursorPosX)($at) +/* 136138 80242DF8 3C018025 */ lui $at, %hi(gPauseMenuTargetPosY) +/* 13613C 80242DFC AC33EFAC */ sw $s3, %lo(gPauseMenuTargetPosY)($at) +/* 136140 80242E00 3C018025 */ lui $at, %hi(gPauseMenuCursorPosY) /* 136144 80242E04 08090B93 */ j .L80242E4C -/* 136148 80242E08 AC33EFA0 */ sw $s3, -0x1060($at) +/* 136148 80242E08 AC33EFA0 */ sw $s3, %lo(gPauseMenuCursorPosY)($at) .L80242E0C: /* 13614C 80242E0C 92020000 */ lbu $v0, ($s0) /* 136150 80242E10 30420008 */ andi $v0, $v0, 8 @@ -89,10 +89,10 @@ glabel func_80242D04 /* 136174 80242E34 14400005 */ bnez $v0, .L80242E4C /* 136178 80242E38 00000000 */ nop .L80242E3C: -/* 13617C 80242E3C 3C018025 */ lui $at, %hi(gPauseMenuTargetPos) -/* 136180 80242E40 AC32EFA8 */ sw $s2, %lo(gPauseMenuTargetPos)($at) -/* 136184 80242E44 3C018025 */ lui $at, 0x8025 -/* 136188 80242E48 AC33EFAC */ sw $s3, -0x1054($at) +/* 13617C 80242E3C 3C018025 */ lui $at, %hi(gPauseMenuTargetPosX) +/* 136180 80242E40 AC32EFA8 */ sw $s2, %lo(gPauseMenuTargetPosX)($at) +/* 136184 80242E44 3C018025 */ lui $at, %hi(gPauseMenuTargetPosY) +/* 136188 80242E48 AC33EFAC */ sw $s3, %lo(gPauseMenuTargetPosY)($at) .L80242E4C: /* 13618C 80242E4C 8FBF0024 */ lw $ra, 0x24($sp) /* 136190 80242E50 8FB40020 */ lw $s4, 0x20($sp) diff --git a/asm/nonmatchings/code_135EE0/pause_interp_cursor.s b/asm/nonmatchings/code_135EE0/pause_interp_cursor.s index 7511dfa480..8daf0e4558 100644 --- a/asm/nonmatchings/code_135EE0/pause_interp_cursor.s +++ b/asm/nonmatchings/code_135EE0/pause_interp_cursor.s @@ -2,10 +2,10 @@ .set noreorder # don't insert nops after branches glabel pause_interp_cursor -/* 1361AC 80242E6C 3C0A8025 */ lui $t2, %hi(gPauseMenuCursorPos) -/* 1361B0 80242E70 254AEF9C */ addiu $t2, $t2, %lo(gPauseMenuCursorPos) -/* 1361B4 80242E74 3C058025 */ lui $a1, %hi(gPauseMenuTargetPos) -/* 1361B8 80242E78 8CA5EFA8 */ lw $a1, %lo(gPauseMenuTargetPos)($a1) +/* 1361AC 80242E6C 3C0A8025 */ lui $t2, %hi(gPauseMenuCursorPosX) +/* 1361B0 80242E70 254AEF9C */ addiu $t2, $t2, %lo(gPauseMenuCursorPosX) +/* 1361B4 80242E74 3C058025 */ lui $a1, %hi(gPauseMenuTargetPosX) +/* 1361B8 80242E78 8CA5EFA8 */ lw $a1, %lo(gPauseMenuTargetPosX)($a1) /* 1361BC 80242E7C 8D430000 */ lw $v1, ($t2) /* 1361C0 80242E80 3C013FE0 */ lui $at, 0x3fe0 /* 1361C4 80242E84 44812800 */ mtc1 $at, $f5 @@ -16,10 +16,10 @@ glabel pause_interp_cursor /* 1361D8 80242E98 468010A1 */ cvt.d.w $f2, $f2 /* 1361DC 80242E9C 46241082 */ mul.d $f2, $f2, $f4 /* 1361E0 80242EA0 00000000 */ nop -/* 1361E4 80242EA4 3C098025 */ lui $t1, 0x8025 -/* 1361E8 80242EA8 2529EFA0 */ addiu $t1, $t1, -0x1060 -/* 1361EC 80242EAC 3C048025 */ lui $a0, 0x8025 -/* 1361F0 80242EB0 8C84EFAC */ lw $a0, -0x1054($a0) +/* 1361E4 80242EA4 3C098025 */ lui $t1, %hi(gPauseMenuCursorPosY) +/* 1361E8 80242EA8 2529EFA0 */ addiu $t1, $t1, %lo(gPauseMenuCursorPosY) +/* 1361EC 80242EAC 3C048025 */ lui $a0, %hi(gPauseMenuTargetPosY) +/* 1361F0 80242EB0 8C84EFAC */ lw $a0, %lo(gPauseMenuTargetPosY)($a0) /* 1361F4 80242EB4 8D260000 */ lw $a2, ($t1) /* 1361F8 80242EB8 00861023 */ subu $v0, $a0, $a2 /* 1361FC 80242EBC 44820000 */ mtc1 $v0, $f0 @@ -43,13 +43,13 @@ glabel pause_interp_cursor /* 136240 80242F00 AD450000 */ sw $a1, ($t2) /* 136244 80242F04 AD240000 */ sw $a0, ($t1) .L80242F08: -/* 136248 80242F08 3C038025 */ lui $v1, %hi(gPauseMenuCursorPos) -/* 13624C 80242F0C 2463EF9C */ addiu $v1, $v1, %lo(gPauseMenuCursorPos) +/* 136248 80242F08 3C038025 */ lui $v1, %hi(gPauseMenuCursorPosX) +/* 13624C 80242F0C 2463EF9C */ addiu $v1, $v1, %lo(gPauseMenuCursorPosX) /* 136250 80242F10 8C620000 */ lw $v0, ($v1) /* 136254 80242F14 00471021 */ addu $v0, $v0, $a3 /* 136258 80242F18 AC620000 */ sw $v0, ($v1) -/* 13625C 80242F1C 3C038025 */ lui $v1, 0x8025 -/* 136260 80242F20 2463EFA0 */ addiu $v1, $v1, -0x1060 +/* 13625C 80242F1C 3C038025 */ lui $v1, %hi(gPauseMenuCursorPosY) +/* 136260 80242F20 2463EFA0 */ addiu $v1, $v1, %lo(gPauseMenuCursorPosY) /* 136264 80242F24 8C620000 */ lw $v0, ($v1) /* 136268 80242F28 3C048025 */ lui $a0, %hi(gPauseMenuCursorTargetOpacity) /* 13626C 80242F2C 8C84EFB0 */ lw $a0, %lo(gPauseMenuCursorTargetOpacity)($a0) diff --git a/asm/nonmatchings/code_135EE0/pause_update_cursor.s b/asm/nonmatchings/code_135EE0/pause_update_cursor.s deleted file mode 100644 index 464327baf7..0000000000 --- a/asm/nonmatchings/code_135EE0/pause_update_cursor.s +++ /dev/null @@ -1,41 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel pause_update_cursor -/* 13681C 802434DC 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 136820 802434E0 AFB10014 */ sw $s1, 0x14($sp) -/* 136824 802434E4 00A0882D */ daddu $s1, $a1, $zero -/* 136828 802434E8 AFB20018 */ sw $s2, 0x18($sp) -/* 13682C 802434EC 00C0902D */ daddu $s2, $a2, $zero -/* 136830 802434F0 AFBF001C */ sw $ra, 0x1c($sp) -/* 136834 802434F4 0C090B9B */ jal pause_interp_cursor -/* 136838 802434F8 AFB00010 */ sw $s0, 0x10($sp) -/* 13683C 802434FC 3C058025 */ lui $a1, %hi(gPauseMenuCursorOpacity) -/* 136840 80243500 8CA5EFA4 */ lw $a1, %lo(gPauseMenuCursorOpacity)($a1) -/* 136844 80243504 18A00012 */ blez $a1, .L80243550 -/* 136848 80243508 28A20100 */ slti $v0, $a1, 0x100 -/* 13684C 8024350C 50400001 */ beql $v0, $zero, .L80243514 -/* 136850 80243510 240500FF */ addiu $a1, $zero, 0xff -.L80243514: -/* 136854 80243514 3C108027 */ lui $s0, %hi(gPauseMenuCommonIconIDs) -/* 136858 80243518 261000E8 */ addiu $s0, $s0, %lo(gPauseMenuCommonIconIDs) -/* 13685C 8024351C 0C0513AC */ jal icon_set_opacity -/* 136860 80243520 8E040000 */ lw $a0, ($s0) -/* 136864 80243524 8E040000 */ lw $a0, ($s0) -/* 136868 80243528 3C058025 */ lui $a1, %hi(gPauseMenuCursorPos) -/* 13686C 8024352C 8CA5EF9C */ lw $a1, %lo(gPauseMenuCursorPos)($a1) -/* 136870 80243530 3C068025 */ lui $a2, 0x8025 -/* 136874 80243534 8CC6EFA0 */ lw $a2, -0x1060($a2) -/* 136878 80243538 02252821 */ addu $a1, $s1, $a1 -/* 13687C 8024353C 0C051261 */ jal set_icon_render_pos -/* 136880 80243540 02463021 */ addu $a2, $s2, $a2 -/* 136884 80243544 8E040000 */ lw $a0, ($s0) -/* 136888 80243548 0C0511F8 */ jal draw_icon_2 -/* 13688C 8024354C 00000000 */ nop -.L80243550: -/* 136890 80243550 8FBF001C */ lw $ra, 0x1c($sp) -/* 136894 80243554 8FB20018 */ lw $s2, 0x18($sp) -/* 136898 80243558 8FB10014 */ lw $s1, 0x14($sp) -/* 13689C 8024355C 8FB00010 */ lw $s0, 0x10($sp) -/* 1368A0 80243560 03E00008 */ jr $ra -/* 1368A4 80243564 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/nonmatchings/world/area_dro/dro_02/9694C0/func_80240C88_969E48.s b/asm/nonmatchings/world/area_dro/dro_02/9694C0/func_80240C88_969E48.s index b04b4d2e2b..773104b695 100644 --- a/asm/nonmatchings/world/area_dro/dro_02/9694C0/func_80240C88_969E48.s +++ b/asm/nonmatchings/world/area_dro/dro_02/9694C0/func_80240C88_969E48.s @@ -41,8 +41,8 @@ glabel func_80240C88_969E48 .L80240D14: /* 969ED4 80240D14 0C016914 */ jal remove_effect /* 969ED8 80240D18 ACA00018 */ sw $zero, 0x18($a1) -/* 969EDC 80240D1C 3C048025 */ lui $a0, 0x8025 -/* 969EE0 80240D20 8C84EFA0 */ lw $a0, -0x1060($a0) +/* 969EDC 80240D1C 3C048025 */ lui $a0, %hi(gPauseMenuCursorPosY) +/* 969EE0 80240D20 8C84EFA0 */ lw $a0, %lo(gPauseMenuCursorPosY)($a0) /* 969EE4 80240D24 0C048D70 */ jal func_801235C0 /* 969EE8 80240D28 00000000 */ nop /* 969EEC 80240D2C 24020002 */ addiu $v0, $zero, 2 diff --git a/asm/nonmatchings/world/area_dro/dro_02/9694C0/func_80241364_96A524.s b/asm/nonmatchings/world/area_dro/dro_02/9694C0/func_80241364_96A524.s index 87ece7f871..f6624d8174 100644 --- a/asm/nonmatchings/world/area_dro/dro_02/9694C0/func_80241364_96A524.s +++ b/asm/nonmatchings/world/area_dro/dro_02/9694C0/func_80241364_96A524.s @@ -9,8 +9,8 @@ glabel func_80241364_96A524 /* 96A534 80241374 0C048C8F */ jal bind_dynamic_entity_7 /* 96A538 80241378 0000202D */ daddu $a0, $zero, $zero /* 96A53C 8024137C 8FBF0010 */ lw $ra, 0x10($sp) -/* 96A540 80241380 3C018025 */ lui $at, 0x8025 -/* 96A544 80241384 AC22EFA0 */ sw $v0, -0x1060($at) +/* 96A540 80241380 3C018025 */ lui $at, %hi(gPauseMenuCursorPosY) +/* 96A544 80241384 AC22EFA0 */ sw $v0, %lo(gPauseMenuCursorPosY)($at) /* 96A548 80241388 24020002 */ addiu $v0, $zero, 2 /* 96A54C 8024138C 03E00008 */ jr $ra /* 96A550 80241390 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/include/variables.h b/include/variables.h index b3db69fe8c..161014267a 100644 --- a/include/variables.h +++ b/include/variables.h @@ -131,9 +131,11 @@ extern PauseItemPage gItemMenuPages[20]; extern s32 gPauseMenuStrings[348]; extern s32 gPauseMenuIconScripts[8]; extern MenuTab* gPauseMenuTabs[7]; -extern s32 gPauseMenuCursorPos[2]; +extern s32 gPauseMenuCursorPosX; +extern s32 gPauseMenuCursorPosY; extern s32 gPauseMenuCursorOpacity; -extern s32 gPauseMenuTargetPos[2]; +extern s32 gPauseMenuTargetPosX; +extern s32 gPauseMenuTargetPosY; extern s32 gPauseMenuCursorTargetOpacity; extern u8 gPauseMenuTextScrollInterpEasingLUT[16]; extern u8 gPauseMenuPageScrollInterpEasingLUT[16]; diff --git a/src/code_135EE0.c b/src/code_135EE0.c index 565a40f337..ee427836e6 100644 --- a/src/code_135EE0.c +++ b/src/code_135EE0.c @@ -13,47 +13,58 @@ INCLUDE_ASM(s32, "code_135EE0", func_80242BAC); INCLUDE_ASM(s32, "code_135EE0", func_80242D04); +// Delay slot issue with gPauseMenuCursorTargetOpacity (needs .data) +#ifdef NON_MATCHING +void pause_interp_cursor(void) { + s32* posX = &gPauseMenuCursorPosX; + s32* posY = &gPauseMenuCursorPosY; + s32* targetPosX = &gPauseMenuTargetPosX; + s32* targetPosY = &gPauseMenuTargetPosY; + s32 xDelta; + s32 yDelta; + s32* opacity; + + xDelta = (*targetPosX - *posX) * 0.5; + yDelta = (*targetPosY - *posY) * 0.5; + + if ((*targetPosX != *posX) || (*targetPosY != *posY)) { + if ((xDelta == 0) && (yDelta == 0)) { + *posX = *targetPosX; + *posY = *targetPosY; + } + } + + // Macros? something strange + { + s32* posX = &gPauseMenuCursorPosX; + *posX += xDelta; + } + + { + s32* posY = &gPauseMenuCursorPosY; + *posY += yDelta; + } + + if (gPauseMenuCursorTargetOpacity == 0) { + opacity= &gPauseMenuCursorOpacity; + + *opacity -= 128; + if (*opacity < 0) { + *opacity = 0; + } + } else { + opacity = &gPauseMenuCursorOpacity; + + *opacity += 32; + if (*opacity > 255) { + *opacity = 255; + } + } + gPauseMenuCursorTargetOpacity = 255; +} +#else INCLUDE_ASM(s32, "code_135EE0", pause_interp_cursor); -// void pause_interp_cursor(void) { -// s32 targetPosX; -// s32 posX; -// s32 targetPosY; -// s32 posY; -// s32 xDelta; -// s32 yDelta; -// s32 temp_v0; -// s32 temp_v0_2; - -// targetPosX = gPauseMenuTargetPos[0]; -// posX = gPauseMenuCursorPos[0]; -// targetPosY = gPauseMenuTargetPos[1]; -// posY = gPauseMenuCursorPos[1]; -// xDelta = (targetPosX - posX) * 0.5; -// yDelta = (targetPosY - posY) * 0.5; - -// if ((targetPosX != posX) || (targetPosY != posY)) { -// if ((xDelta == 0) && (yDelta == 0)) { -// gPauseMenuCursorPos[0] = targetPosX; -// gPauseMenuCursorPos[1] = targetPosY; -// } -// } - -// gPauseMenuCursorPos[0] += xDelta; -// gPauseMenuCursorPos[1] += yDelta; - -// if (gPauseMenuCursorTargetOpacity == 0) { -// gPauseMenuCursorOpacity -= 128; -// if (gPauseMenuCursorOpacity < 0) { -// gPauseMenuCursorOpacity = 0; -// } -// } else { -// gPauseMenuCursorOpacity += 32; -// if (gPauseMenuCursorOpacity > 255) { -// gPauseMenuCursorOpacity = 255; -// } -// } -// gPauseMenuCursorTargetOpacity = 255; -// } +#endif INCLUDE_ASM(s32, "code_135EE0", func_80242F90); @@ -106,8 +117,8 @@ s32 pause_interp_vertical_scroll(s32 deltaBefore) { INCLUDE_ASM(s32, "code_135EE0", pause_interp_vertical_scroll); #endif -INCLUDE_ASM(s32, "code_135EE0", pause_update_cursor); -/*void pause_update_cursor(s32 arg0, s32 offsetX, s32 offsetY) { +//INCLUDE_ASM(s32, "code_135EE0", pause_update_cursor); +void pause_update_cursor(s32 arg0, s32 offsetX, s32 offsetY) { s32 opacity; pause_interp_cursor(); @@ -117,10 +128,10 @@ INCLUDE_ASM(s32, "code_135EE0", pause_update_cursor); opacity = 255; } icon_set_opacity(gPauseMenuCommonIconIDs[0], opacity); - set_icon_render_pos(gPauseMenuCommonIconIDs[0], offsetX + gPauseMenuCursorPos[0], offsetY + gPauseMenuCursorPos[1]); + set_icon_render_pos(gPauseMenuCommonIconIDs[0], offsetX + gPauseMenuCursorPosX, offsetY + gPauseMenuCursorPosY); draw_icon_2(gPauseMenuCommonIconIDs[0]); } -}*/ +} void func_80243568(void) { } diff --git a/undefined_syms.txt b/undefined_syms.txt index ec059907f0..347c7102d8 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -148,9 +148,11 @@ gBackgroundImage = 0x80200000; gPauseMenuIconScripts = 0x8024EF60; gPauseMenuTabs = 0x8024EF80; -gPauseMenuCursorPos = 0x8024EF9C; +gPauseMenuCursorPosX = 0x8024EF9C; +gPauseMenuCursorPosY = 0x8024EFA0; gPauseMenuCursorOpacity = 0x8024EFA4; -gPauseMenuTargetPos = 0x8024EFA8; +gPauseMenuTargetPosX = 0x8024EFA8; +gPauseMenuTargetPosY = 0x8024EFAC; gPauseMenuCursorTargetOpacity = 0x8024EFB0; gPauseMenuTextScrollInterpEasingLUT = 0x8024F0AC; From 9f69203bb3f17ef571ea65e9711face33b4ec1c1 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Tue, 10 Nov 2020 15:21:37 -0500 Subject: [PATCH 34/52] badge work --- .../code_138CC0/pause_badges_count_all.s | 29 ----------- .../code_138CC0/pause_badges_count_equipped.s | 29 ----------- .../code_138CC0/pause_badges_get_pos_x.s | 29 ----------- .../code_138CC0/pause_badges_get_pos_y.s | 34 ------------- .../code_138CC0/pause_badges_get_row.s | 26 ---------- include/common_structs.h | 2 +- include/macros.h | 2 + src/code_135EE0.c | 1 - src/code_138CC0.c | 48 +++++++++++++++---- 9 files changed, 43 insertions(+), 157 deletions(-) delete mode 100644 asm/nonmatchings/code_138CC0/pause_badges_count_all.s delete mode 100644 asm/nonmatchings/code_138CC0/pause_badges_count_equipped.s delete mode 100644 asm/nonmatchings/code_138CC0/pause_badges_get_pos_x.s delete mode 100644 asm/nonmatchings/code_138CC0/pause_badges_get_pos_y.s delete mode 100644 asm/nonmatchings/code_138CC0/pause_badges_get_row.s diff --git a/asm/nonmatchings/code_138CC0/pause_badges_count_all.s b/asm/nonmatchings/code_138CC0/pause_badges_count_all.s deleted file mode 100644 index 1cfabf6433..0000000000 --- a/asm/nonmatchings/code_138CC0/pause_badges_count_all.s +++ /dev/null @@ -1,29 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel pause_badges_count_all -/* 13A394 80247054 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 13A398 80247058 AFB00010 */ sw $s0, 0x10($sp) -/* 13A39C 8024705C 3C108011 */ lui $s0, %hi(gPlayerData) -/* 13A3A0 80247060 2610F290 */ addiu $s0, $s0, %lo(gPlayerData) -/* 13A3A4 80247064 260400B4 */ addiu $a0, $s0, 0xb4 -/* 13A3A8 80247068 3C068024 */ lui $a2, %hi(pause_badges_comparator) -/* 13A3AC 8024706C 24C66FE0 */ addiu $a2, $a2, %lo(pause_badges_comparator) -/* 13A3B0 80247070 AFBF0014 */ sw $ra, 0x14($sp) -/* 13A3B4 80247074 0C091293 */ jal pause_sort_item_list -/* 13A3B8 80247078 24050080 */ addiu $a1, $zero, 0x80 -/* 13A3BC 8024707C 0000182D */ daddu $v1, $zero, $zero -.L80247080: -/* 13A3C0 80247080 860200B4 */ lh $v0, 0xb4($s0) -/* 13A3C4 80247084 10400005 */ beqz $v0, .L8024709C -/* 13A3C8 80247088 00000000 */ nop -/* 13A3CC 8024708C 24630001 */ addiu $v1, $v1, 1 -/* 13A3D0 80247090 28620080 */ slti $v0, $v1, 0x80 -/* 13A3D4 80247094 1440FFFA */ bnez $v0, .L80247080 -/* 13A3D8 80247098 26100002 */ addiu $s0, $s0, 2 -.L8024709C: -/* 13A3DC 8024709C 8FBF0014 */ lw $ra, 0x14($sp) -/* 13A3E0 802470A0 8FB00010 */ lw $s0, 0x10($sp) -/* 13A3E4 802470A4 0060102D */ daddu $v0, $v1, $zero -/* 13A3E8 802470A8 03E00008 */ jr $ra -/* 13A3EC 802470AC 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/nonmatchings/code_138CC0/pause_badges_count_equipped.s b/asm/nonmatchings/code_138CC0/pause_badges_count_equipped.s deleted file mode 100644 index 64e295f392..0000000000 --- a/asm/nonmatchings/code_138CC0/pause_badges_count_equipped.s +++ /dev/null @@ -1,29 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel pause_badges_count_equipped -/* 13A3F0 802470B0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 13A3F4 802470B4 AFB00010 */ sw $s0, 0x10($sp) -/* 13A3F8 802470B8 3C108011 */ lui $s0, %hi(gPlayerData) -/* 13A3FC 802470BC 2610F290 */ addiu $s0, $s0, %lo(gPlayerData) -/* 13A400 802470C0 26040208 */ addiu $a0, $s0, 0x208 -/* 13A404 802470C4 3C068024 */ lui $a2, %hi(pause_badges_comparator) -/* 13A408 802470C8 24C66FE0 */ addiu $a2, $a2, %lo(pause_badges_comparator) -/* 13A40C 802470CC AFBF0014 */ sw $ra, 0x14($sp) -/* 13A410 802470D0 0C091293 */ jal pause_sort_item_list -/* 13A414 802470D4 24050040 */ addiu $a1, $zero, 0x40 -/* 13A418 802470D8 0000182D */ daddu $v1, $zero, $zero -.L802470DC: -/* 13A41C 802470DC 86020208 */ lh $v0, 0x208($s0) -/* 13A420 802470E0 10400005 */ beqz $v0, .L802470F8 -/* 13A424 802470E4 00000000 */ nop -/* 13A428 802470E8 24630001 */ addiu $v1, $v1, 1 -/* 13A42C 802470EC 28620040 */ slti $v0, $v1, 0x40 -/* 13A430 802470F0 1440FFFA */ bnez $v0, .L802470DC -/* 13A434 802470F4 26100002 */ addiu $s0, $s0, 2 -.L802470F8: -/* 13A438 802470F8 8FBF0014 */ lw $ra, 0x14($sp) -/* 13A43C 802470FC 8FB00010 */ lw $s0, 0x10($sp) -/* 13A440 80247100 0060102D */ daddu $v0, $v1, $zero -/* 13A444 80247104 03E00008 */ jr $ra -/* 13A448 80247108 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/nonmatchings/code_138CC0/pause_badges_get_pos_x.s b/asm/nonmatchings/code_138CC0/pause_badges_get_pos_x.s deleted file mode 100644 index 0476d5b384..0000000000 --- a/asm/nonmatchings/code_138CC0/pause_badges_get_pos_x.s +++ /dev/null @@ -1,29 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel pause_badges_get_pos_x -/* 13A44C 8024710C 00041040 */ sll $v0, $a0, 1 -/* 13A450 80247110 00441021 */ addu $v0, $v0, $a0 -/* 13A454 80247114 00021080 */ sll $v0, $v0, 2 -/* 13A458 80247118 3C018027 */ lui $at, 0x8027 -/* 13A45C 8024711C 00220821 */ addu $at, $at, $v0 -/* 13A460 80247120 9022028A */ lbu $v0, 0x28a($at) -/* 13A464 80247124 14400002 */ bnez $v0, .L80247130 -/* 13A468 80247128 00A2001A */ div $zero, $a1, $v0 -/* 13A46C 8024712C 0007000D */ break 7 -.L80247130: -/* 13A470 80247130 2401FFFF */ addiu $at, $zero, -1 -/* 13A474 80247134 14410004 */ bne $v0, $at, .L80247148 -/* 13A478 80247138 3C018000 */ lui $at, 0x8000 -/* 13A47C 8024713C 14A10002 */ bne $a1, $at, .L80247148 -/* 13A480 80247140 00000000 */ nop -/* 13A484 80247144 0006000D */ break 6 -.L80247148: -/* 13A488 80247148 00001810 */ mfhi $v1 -/* 13A48C 8024714C 000310C0 */ sll $v0, $v1, 3 -/* 13A490 80247150 00431021 */ addu $v0, $v0, $v1 -/* 13A494 80247154 00021080 */ sll $v0, $v0, 2 -/* 13A498 80247158 00431023 */ subu $v0, $v0, $v1 -/* 13A49C 8024715C 00021080 */ sll $v0, $v0, 2 -/* 13A4A0 80247160 03E00008 */ jr $ra -/* 13A4A4 80247164 00431021 */ addu $v0, $v0, $v1 diff --git a/asm/nonmatchings/code_138CC0/pause_badges_get_pos_y.s b/asm/nonmatchings/code_138CC0/pause_badges_get_pos_y.s deleted file mode 100644 index 64c9d805a5..0000000000 --- a/asm/nonmatchings/code_138CC0/pause_badges_get_pos_y.s +++ /dev/null @@ -1,34 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel pause_badges_get_pos_y -/* 13A4A8 80247168 3C028027 */ lui $v0, %hi(gBadgeMenuPages) -/* 13A4AC 8024716C 24420288 */ addiu $v0, $v0, %lo(gBadgeMenuPages) -/* 13A4B0 80247170 00041840 */ sll $v1, $a0, 1 -/* 13A4B4 80247174 00641821 */ addu $v1, $v1, $a0 -/* 13A4B8 80247178 00031880 */ sll $v1, $v1, 2 -/* 13A4BC 8024717C 00621821 */ addu $v1, $v1, $v0 -/* 13A4C0 80247180 90620002 */ lbu $v0, 2($v1) -/* 13A4C4 80247184 14400002 */ bnez $v0, .L80247190 -/* 13A4C8 80247188 00A2001A */ div $zero, $a1, $v0 -/* 13A4CC 8024718C 0007000D */ break 7 -.L80247190: -/* 13A4D0 80247190 2401FFFF */ addiu $at, $zero, -1 -/* 13A4D4 80247194 14410004 */ bne $v0, $at, .L802471A8 -/* 13A4D8 80247198 3C018000 */ lui $at, 0x8000 -/* 13A4DC 8024719C 14A10002 */ bne $a1, $at, .L802471A8 -/* 13A4E0 802471A0 00000000 */ nop -/* 13A4E4 802471A4 0006000D */ break 6 -.L802471A8: -/* 13A4E8 802471A8 00002812 */ mflo $a1 -/* 13A4EC 802471AC 24840001 */ addiu $a0, $a0, 1 -/* 13A4F0 802471B0 90630001 */ lbu $v1, 1($v1) -/* 13A4F4 802471B4 00041040 */ sll $v0, $a0, 1 -/* 13A4F8 802471B8 00441021 */ addu $v0, $v0, $a0 -/* 13A4FC 802471BC 00021080 */ sll $v0, $v0, 2 -/* 13A500 802471C0 00441023 */ subu $v0, $v0, $a0 -/* 13A504 802471C4 00031900 */ sll $v1, $v1, 4 -/* 13A508 802471C8 00431021 */ addu $v0, $v0, $v1 -/* 13A50C 802471CC 00052900 */ sll $a1, $a1, 4 -/* 13A510 802471D0 03E00008 */ jr $ra -/* 13A514 802471D4 00451021 */ addu $v0, $v0, $a1 diff --git a/asm/nonmatchings/code_138CC0/pause_badges_get_row.s b/asm/nonmatchings/code_138CC0/pause_badges_get_row.s deleted file mode 100644 index cc5019da62..0000000000 --- a/asm/nonmatchings/code_138CC0/pause_badges_get_row.s +++ /dev/null @@ -1,26 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel pause_badges_get_row -/* 13A560 80247220 3C038027 */ lui $v1, %hi(gBadgeMenuPages) -/* 13A564 80247224 24630288 */ addiu $v1, $v1, %lo(gBadgeMenuPages) -/* 13A568 80247228 00041040 */ sll $v0, $a0, 1 -/* 13A56C 8024722C 00441021 */ addu $v0, $v0, $a0 -/* 13A570 80247230 00021080 */ sll $v0, $v0, 2 -/* 13A574 80247234 00431021 */ addu $v0, $v0, $v1 -/* 13A578 80247238 90430002 */ lbu $v1, 2($v0) -/* 13A57C 8024723C 14600002 */ bnez $v1, .L80247248 -/* 13A580 80247240 00A3001A */ div $zero, $a1, $v1 -/* 13A584 80247244 0007000D */ break 7 -.L80247248: -/* 13A588 80247248 2401FFFF */ addiu $at, $zero, -1 -/* 13A58C 8024724C 14610004 */ bne $v1, $at, .L80247260 -/* 13A590 80247250 3C018000 */ lui $at, 0x8000 -/* 13A594 80247254 14A10002 */ bne $a1, $at, .L80247260 -/* 13A598 80247258 00000000 */ nop -/* 13A59C 8024725C 0006000D */ break 6 -.L80247260: -/* 13A5A0 80247260 00002812 */ mflo $a1 -/* 13A5A4 80247264 90420001 */ lbu $v0, 1($v0) -/* 13A5A8 80247268 03E00008 */ jr $ra -/* 13A5AC 8024726C 00451021 */ addu $v0, $v0, $a1 diff --git a/include/common_structs.h b/include/common_structs.h index 0c76d0a20b..55c0498715 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -1535,7 +1535,7 @@ typedef struct { typedef struct { /* 0x00 */ s8 enabled; - /* 0x01 */ s8 listStart; + /* 0x01 */ u8 listStart; /* 0x02 */ u8 numCols; /* 0x03 */ s8 numRows; /* 0x04 */ s32 startIndex; diff --git a/include/macros.h b/include/macros.h index 20d9536c34..5dc8a24c15 100644 --- a/include/macros.h +++ b/include/macros.h @@ -23,6 +23,8 @@ #define CAM(id) (&gCameras[id]) #define CURRENT_CAM (&gCameras[gCurrentCameraID]) +#define BADGE_MENU_PAGE(index) (&gBadgeMenuPages[index]) + #define MAX_MAPVARS 16 #define MAX_MAPFLAGS 3 diff --git a/src/code_135EE0.c b/src/code_135EE0.c index ee427836e6..7fc2605c1d 100644 --- a/src/code_135EE0.c +++ b/src/code_135EE0.c @@ -117,7 +117,6 @@ s32 pause_interp_vertical_scroll(s32 deltaBefore) { INCLUDE_ASM(s32, "code_135EE0", pause_interp_vertical_scroll); #endif -//INCLUDE_ASM(s32, "code_135EE0", pause_update_cursor); void pause_update_cursor(s32 arg0, s32 offsetX, s32 offsetY) { s32 opacity; diff --git a/src/code_138CC0.c b/src/code_138CC0.c index 43e3d02653..0947744d10 100644 --- a/src/code_138CC0.c +++ b/src/code_138CC0.c @@ -17,19 +17,51 @@ void pause_stats_cleanup(void) { INCLUDE_ASM(s32, "code_138CC0", pause_badges_comparator); -INCLUDE_ASM(s32, "code_138CC0", pause_badges_count_all); +s32 pause_badges_count_all(void) { + PlayerData* playerData = PLAYER_DATA; + s32 i; -INCLUDE_ASM(s32, "code_138CC0", pause_badges_count_equipped); + pause_sort_item_list(playerData->badges, ARRAY_COUNT(playerData->badges), &pause_badges_comparator); -INCLUDE_ASM(s32, "code_138CC0", pause_badges_get_pos_x); + for (i = 0; i < ARRAY_COUNT(playerData->badges); i++) { + if (playerData->badges[i] == 0) { + break; + } + } -INCLUDE_ASM(s32, "code_138CC0", pause_badges_get_pos_y); - -s32 pause_badges_get_column(s32 page, s32 itemIdx) { - return itemIdx % gBadgeMenuPages[page].numCols; + return i; } -INCLUDE_ASM(s32, "code_138CC0", pause_badges_get_row); +s32 pause_badges_count_equipped(void) { + PlayerData* playerData = PLAYER_DATA; + s32 i; + + pause_sort_item_list(playerData->equippedBadges, ARRAY_COUNT(playerData->equippedBadges), &pause_badges_comparator); + + for (i = 0; i < ARRAY_COUNT(playerData->equippedBadges); i++) { + if (playerData->equippedBadges[i] == 0) { + break; + } + } + + return i; +} + +s32 pause_badges_get_pos_x(s32 page, s32 itemIndex) { + return (itemIndex % BADGE_MENU_PAGE(page)->numCols) * 141; +} + +s32 pause_badges_get_pos_y(s32 page, s32 itemIndex) { + return ((page + 1) * 11) + (BADGE_MENU_PAGE(page)->listStart * 16) + ((itemIndex / BADGE_MENU_PAGE(page)->numCols) * 16); +} + +s32 pause_badges_get_column(s32 page, s32 itemIdx) { + return itemIdx % BADGE_MENU_PAGE(page)->numCols; +} + +s32 pause_badges_get_row(s32 page, s32 itemIdx) { + return BADGE_MENU_PAGE(page)->listStart + (itemIdx / BADGE_MENU_PAGE(page)->numCols); +} s32 pause_badges_is_visible(s32 y) { if (y < gBadgeMenuCurrentScrollPos - 32) { From b13edadd9964612e9c4395eff60df75ebfe344c3 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Tue, 10 Nov 2020 15:24:09 -0500 Subject: [PATCH 35/52] revert settings change --- .vscode/settings.json | 1 - 1 file changed, 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 8e1ee5da6b..c2b3c50402 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -15,5 +15,4 @@ "build": true, "docs/doxygen": true, }, - "python.pythonPath": "/usr/bin/python3", } From b71ff4bbc2c0756a1c69553215293e4eba70e618 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Tue, 10 Nov 2020 15:33:36 -0500 Subject: [PATCH 36/52] format --- src/code_135EE0.c | 2 +- src/code_138CC0.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/code_135EE0.c b/src/code_135EE0.c index 7fc2605c1d..90f19f5fc9 100644 --- a/src/code_135EE0.c +++ b/src/code_135EE0.c @@ -46,7 +46,7 @@ void pause_interp_cursor(void) { } if (gPauseMenuCursorTargetOpacity == 0) { - opacity= &gPauseMenuCursorOpacity; + opacity = &gPauseMenuCursorOpacity; *opacity -= 128; if (*opacity < 0) { diff --git a/src/code_138CC0.c b/src/code_138CC0.c index 0947744d10..4818d3286c 100644 --- a/src/code_138CC0.c +++ b/src/code_138CC0.c @@ -52,7 +52,8 @@ s32 pause_badges_get_pos_x(s32 page, s32 itemIndex) { } s32 pause_badges_get_pos_y(s32 page, s32 itemIndex) { - return ((page + 1) * 11) + (BADGE_MENU_PAGE(page)->listStart * 16) + ((itemIndex / BADGE_MENU_PAGE(page)->numCols) * 16); + return ((page + 1) * 11) + (BADGE_MENU_PAGE(page)->listStart * 16) + ((itemIndex / BADGE_MENU_PAGE( + page)->numCols) * 16); } s32 pause_badges_get_column(s32 page, s32 itemIdx) { From 698f1feee9a807e5a7039fa9da64e43c876f40a2 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Tue, 10 Nov 2020 15:54:36 -0500 Subject: [PATCH 37/52] :( --- tools/assist.py | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/tools/assist.py b/tools/assist.py index 78151c3222..7318638f25 100755 --- a/tools/assist.py +++ b/tools/assist.py @@ -34,10 +34,6 @@ def get_all_s_files(): return ret -def get_symbol_length(sym_name): - return map_offsets[sym_name]["end"] - map_offsets[sym_name]["start"] - - def get_symbol_bytes(offsets, func): if func not in offsets or "start" not in offsets[func] or "end" not in offsets[func]: return None @@ -175,18 +171,6 @@ def do_query(query): i += 1 print() - -def do_cross_query(): - clusters = [] - - for sym_name in map_syms: - sym = map_syms[sym_name] - if get_symbol_length(sym_name) > 8: - cluster_match = False - for cluster in clusters: - pass # todo do - - parser = argparse.ArgumentParser(description="Tools to assist with decomp") parser.add_argument("query", help="function or file") parser.add_argument("--threshold", help="score threshold between 0 and 1 (higher is more restrictive)", type=float, default=0.95, required=False) @@ -207,6 +191,4 @@ if query_dir is not None: for f_name in files: do_query(f_name[:-2]) else: - if args.query == "cross": - do_cross_query() do_query(args.query) From 76134074aba42e8da70f7743971c7644f549c7f2 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Wed, 11 Nov 2020 16:21:25 -0500 Subject: [PATCH 38/52] n64splat extensions --- tools/n64splat | 2 +- tools/splat.yaml | 1 + tools/splat_ext/PaperMarioMapFS.py | 67 ++++ tools/splat_ext/PaperMarioMessages.py | 430 ++++++++++++++++++++++++++ tools/splat_ext/__init__.py | 0 5 files changed, 499 insertions(+), 1 deletion(-) create mode 100644 tools/splat_ext/PaperMarioMapFS.py create mode 100644 tools/splat_ext/PaperMarioMessages.py create mode 100644 tools/splat_ext/__init__.py diff --git a/tools/n64splat b/tools/n64splat index 6106762b05..8e424ae728 160000 --- a/tools/n64splat +++ b/tools/n64splat @@ -1 +1 @@ -Subproject commit 6106762b0561e40a640c11852a17bb87963c7ba8 +Subproject commit 8e424ae728e9f8c05ea3d81af85a4f995bb29915 diff --git a/tools/splat.yaml b/tools/splat.yaml index 79dbc8d832..3b973d06b1 100644 --- a/tools/splat.yaml +++ b/tools/splat.yaml @@ -6,6 +6,7 @@ options: mnemonic_ljust: 10 ld_o_replace_extension: False ld_addrs_header: include/ld_addrs.h + extensions: splat_ext segments: - name: header type: header diff --git a/tools/splat_ext/PaperMarioMapFS.py b/tools/splat_ext/PaperMarioMapFS.py new file mode 100644 index 0000000000..2fc070e7c9 --- /dev/null +++ b/tools/splat_ext/PaperMarioMapFS.py @@ -0,0 +1,67 @@ +import os +from segtypes.segment import N64Segment +from pathlib import Path +from util import Yay0decompress + + +def decode_null_terminated_ascii(data): + length = 0 + for byte in data: + if byte == 0: + break + length += 1 + + return data[:length].decode('ascii') + + +class N64SegPaperMarioMapFS(N64Segment): + def __init__(self, segment, next_segment, options): + super().__init__(segment, next_segment, options) + + def split(self, rom_bytes, base_path): + bin_dir = self.create_split_dir(base_path, "bin/assets") + + data = rom_bytes[self.rom_start: self.rom_end] + + asset_idx = 0 + while True: + asset_data = data[0x20 + asset_idx * 0x1C:] + + name = decode_null_terminated_ascii(asset_data[0:]) + offset = int.from_bytes(asset_data[0x10:0x14], byteorder="big") + size = int.from_bytes(asset_data[0x14:0x18], byteorder="big") + decompressed_size = int.from_bytes( + asset_data[0x18:0x1C], byteorder="big") + + is_compressed = size != decompressed_size + + if offset == 0: + path = None + else: + path = "{}.bin".format(name) + self.create_parent_dir(bin_dir, path) + + if name == "end_data": + break + + with open(os.path.join(bin_dir, path), "wb") as f: + bytes = rom_bytes[self.rom_start + 0x20 + + offset: self.rom_start + 0x20 + offset + size] + + if is_compressed: + self.log(f"Decompressing {name}...") + bytes = Yay0decompress.decompress_yay0(bytes) + + f.write(bytes) + self.log(f"Wrote {name} to {Path(bin_dir, path)}") + + asset_idx += 1 + + + def get_ld_files(self): + return [("bin/assets", self.name, ".data")] + + + @staticmethod + def get_default_name(addr): + return "assets" diff --git a/tools/splat_ext/PaperMarioMessages.py b/tools/splat_ext/PaperMarioMessages.py new file mode 100644 index 0000000000..6a52397584 --- /dev/null +++ b/tools/splat_ext/PaperMarioMessages.py @@ -0,0 +1,430 @@ +from segtypes.segment import N64Segment +from pathlib import Path + +CHARSET = { + 0x00: "𝅘𝅥𝅮", + 0x01: "!", + 0x02: '"', + 0x03: "#", + 0x04: "$", + 0x05: "%", + 0x06: "&", + 0x07: "'", + 0x08: "(", + 0x09: ")", + 0x0A: "*", + 0x0B: "+", + 0x0C: ",", + 0x0D: "-", + 0x0E: ".", + 0x0F: "/", + 0x10: "0", + 0x11: "1", + 0x12: "2", + 0x13: "3", + 0x14: "4", + 0x15: "5", + 0x16: "6", + 0x17: "7", + 0x18: "8", + 0x19: "9", + 0x1A: ":", + 0x1B: ";", + 0x1C: "<", + 0x1D: "=", + 0x1E: ">", + 0x1F: "?", + 0x20: "@", + 0x21: "A", + 0x22: "B", + 0x23: "C", + 0x24: "D", + 0x25: "E", + 0x26: "F", + 0x27: "G", + 0x28: "H", + 0x29: "I", + 0x2A: "J", + 0x2B: "K", + 0x2C: "L", + 0x2D: "M", + 0x2E: "N", + 0x2F: "O", + 0x30: "P", + 0x31: "Q", + 0x32: "R", + 0x33: "S", + 0x34: "T", + 0x35: "U", + 0x36: "V", + 0x37: "W", + 0x38: "X", + 0x39: "Y", + 0x3A: "Z", + 0x3B: "\\[", + 0x3C: "¥", + 0x3D: "]", + 0x3E: "^", + 0x3F: "_", + 0x40: "`", + 0x41: "a", + 0x42: "b", + 0x43: "c", + 0x44: "d", + 0x45: "e", + 0x46: "f", + 0x47: "g", + 0x48: "h", + 0x49: "i", + 0x4A: "j", + 0x4B: "k", + 0x4C: "l", + 0x4D: "m", + 0x4E: "n", + 0x4F: "o", + 0x50: "p", + 0x51: "q", + 0x52: "r", + 0x53: "s", + 0x54: "t", + 0x55: "u", + 0x56: "v", + 0x57: "w", + 0x58: "x", + 0x59: "y", + 0x5A: "z", + 0x5B: "{", + 0x5C: "|", + 0x5D: "}", + 0x5E: "~", + 0x5F: "°", + 0x60: "À", + 0x61: "Á", + 0x62: "Â", + 0x63: "Ä", + 0x64: "Ç", + 0x65: "È", + 0x66: "É", + 0x67: "Ê", + 0x68: "Ë", + 0x69: "Ì", + 0x6A: "Í", + 0x6B: "Î", + 0x6C: "Ï", + 0x6D: "Ñ", + 0x6E: "Ò", + 0x6F: "Ó", + 0x70: "Ô", + 0x71: "Ö", + 0x72: "Ù", + 0x73: "Ú", + 0x74: "Û", + 0x75: "Ü", + 0x76: "ß", + 0x77: "à", + 0x78: "á", + 0x79: "â", + 0x7A: "ä", + 0x7B: "ç", + 0x7C: "è", + 0x7D: "é", + 0x7E: "ê", + 0x7F: "ë", + 0x80: "ì", + 0x81: "í", + 0x82: "î", + 0x83: "ï", + 0x84: "ñ", + 0x85: "ò", + 0x86: "ó", + 0x87: "ô", + 0x88: "ö", + 0x89: "ù", + 0x8A: "ú", + 0x8B: "û", + 0x8C: "ü", + 0x8D: "¡", + 0x8E: "¿", + 0x8F: "ª", + 0x90: "♥", + 0x91: "★", + 0x92: "↑", + 0x93: "↓", + 0x94: "←", + 0x95: "→", + 0x96: "●", + 0x97: "✖", + 0xA2: "“", + 0xA3: "”", + 0xA4: "‘", + 0xA5: "’", + 0xF7: " ", + 0xF0: "[br]\n", + 0xF1: "[prompt]", + 0xF2: {None: lambda d: (f"[sleep {d[0]}]", 1)}, + 0xFB: "[next]\n", + 0xFC: { + 0x01: "[style=right]\n", + 0x02: "[style=left]\n", + 0x03: "[style=center]\n", + 0x04: "[style=tattle]\n", + 0x05: {None: lambda d: (f"[style=choice x={d[1]} y={d[3]} w={d[0]} h={d[2]}]\n", 4)}, + 0x06: "[style=inspect]\n", + 0x07: "[style=sign]\n", + 0x08: "[style=lamppost]\n", + 0x09: "[style=postcard]\n", + 0x0A: "[style=popup]\n", + 0x0C: {None: lambda d: (f"[style=upgrade x={d[1]} y={d[3]} w={d[0]} h={d[2]}]\n", 4)}, + 0x0D: "[style=narrate]\n", + 0x0E: "[style=epilogue]\n", + }, + 0xFF: { + 0x00: { + 0: "[font=normal]", + 3: "[font=title]\n", + 4: "[font=subtitle]\n", + }, + 0x05: { + 0x0A: "[color=normal]", + 0x20: "[color=red]", + 0x21: "[color=pink]", + 0x22: "[color=purple]", + 0x23: "[color=blue]", + 0x24: "[color=cyan]", + 0x25: "[color=green]", + 0x26: "[color=yellow]", + + 0x00: "[color=normal ctx=diary]", + 0x07: "[color=red ctx=diary]", + + 0x17: "[color=dark ctx=inspect]", + + 0x18: "[color=normal ctx=sign]", + 0x19: "[color=red ctx=sign]", + 0x1A: "[color=blue ctx=sign]", + 0x1B: "[color=green ctx=sign]", + + 0x28: "[color=red ctx=popup]", + 0x29: "[color=pink ctx=popup]", + 0x2A: "[color=purple ctx=popup]", + 0x2B: "[color=blue ctx=popup]", + 0x2C: "[color=teal ctx=popup]", + 0x2D: "[color=green ctx=popup]", + 0x2E: "[color=yellow ctx=popup]", + 0x2F: "[color=normal ctx=popup]", + }, + 0x07: "[noskip]\n", + 0x08: "[/noskip]\n", + 0x09: "[instant]\n", + 0x0A: "[/instant]\n", + 0x0B: {None: lambda d: (f"[kerning={d[0]}]", 1)}, + 0x0C: {None: lambda d: (f"[scroll {d[0]}]", 1)}, + 0x0D: {None: lambda d: (f"[size x={d[0]} y={d[0]}]\n", 2)}, + 0x0E: "[/size]\n", + 0x0F: {None: lambda d: (f"[speed delay={d[0]} chars={d[1]}]", 2)}, + 0x10: {None: lambda d: (f"[pos x={d[0]} y={d[1]}]", 2)}, + 0x11: {None: lambda d: (f"[pos y={d[0]}]", 1)}, + 0x12: {None: lambda d: (f"[indent {d[0]}]", 1)}, + 0x13: {None: lambda d: (f"[down {d[0]}]", 1)}, + 0x14: {None: lambda d: (f"[up {d[0]}]", 1)}, + 0x15: {None: lambda d: (f"[image {d[0]}]\n", 1)}, + 0x16: {None: lambda d: (f"[sprite {d[0]} {d[1]} {d[2]}]\n", 3)}, + 0x17: {None: lambda d: (f"[item {d[0]} {d[1]}]\n", 2)}, + 0x18: {None: lambda d: (f"[image {d[0]} {d[1]} {d[2]} {d[3]} {d[4]} {d[5]} {d[6]}]\n", 7)}, + 0x1E: {None: lambda d: (f"[cursor {d[0]}]", 1)}, + 0x1F: {None: lambda d: (f"[choicecount={d[0]}]", 1)}, + 0x20: {None: lambda d: (f"[cancel={d[0]}]", 1)}, + 0x21: {None: lambda d: (f"[option {d[0]}]", 1)}, + 0x24: {0xFF: {0x05: { + 0x10: {0x98: {0xFF: {0x25: "Ⓐ"}}}, + 0x11: {0x99: {0xFF: {0x25: "Ⓑ"}}}, + 0x12: {0xA1: {0xFF: {0x25: "Ⓢ"}}}, + 0x13: { + 0x9D: {0xFF: {0x25: "▲"}}, + 0x9E: {0xFF: {0x25: "▼"}}, + 0x9F: {0xFF: {0x25: "◀"}}, + 0xA0: {0xFF: {0x25: "▶"}}, + }, + 0x14: {0x9C: {0xFF: {0x25: "Ⓩ"}}}, + }}}, + 0x26: { + 0x00: "[shaky]", + 0x01: "[wavy]", + 0x03: {None: lambda d: (f"[noise fade={d[0]}]", 1)}, + 0x05: {None: lambda d: (f"[faded-shaky fade={d[0]}]", 1)}, + 0x07: {None: lambda d: (f"[fade={d[0]}]", 1)}, + 0x0A: "[shout]", + 0x0B: "[whisper]", + 0x0C: "[scream]", + 0x0D: "[chortle]", + 0x0E: "[shadow]", + }, + 0x27: { + 0x00: "[/shaky]", + 0x01: "[/wavy]", + 0x03: "[/noise]", + 0x05: "[/faded-shaky]", + 0x07: "[/fade]", + 0x0A: "[/shout]", + 0x0B: "[/whisper]", + 0x0C: "[/scream]", + 0x0D: "[/chortle]", + 0x0E: "[/shadow]", + }, + 0x28: {None: lambda d: (f"[var {d[0]}]", 1)}, + 0x29: {None: lambda d: (f"[center {d[0]}]", 1)}, + 0x2E: {None: lambda d: (f"[volume={d[0]}]", 1)}, + 0x2F: { + 1: "[sound=bowser]\n", + 2: "[sound=spirit]\n", + None: lambda d: (f"[sound={d[0]}]\n", 1), + }, + None: lambda d: (f"[func 0x{d[0]:X}]", 1), + }, + None: lambda d: (f"[raw 0x{d[0]:02X}]", 1), +} + +CHARSET_CREDITS = { + **CHARSET, + 0x00: "A", + 0x01: "B", + 0x02: "C", + 0x03: "D", + 0x04: "E", + 0x05: "F", + 0x06: "G", + 0x07: "H", + 0x08: "I", + 0x09: "J", + 0x0A: "K", + 0x0B: "L", + 0x0C: "M", + 0x0D: "N", + 0x0E: "O", + 0x0F: "P", + 0x10: "Q", + 0x11: "R", + 0x12: "S", + 0x13: "T", + 0x14: "U", + 0x15: "V", + 0x16: "W", + 0x17: "X", + 0x18: "Y", + 0x19: "Z", + 0x1A: "'", + 0x1B: ".", + 0x1C: ",", + 0x1D: "0", + 0x1E: "1", + 0x1F: "2", + 0x20: "3", + 0x21: "4", + 0x22: "5", + 0x23: "6", + 0x24: "7", + 0x25: "8", + 0x26: "9", + 0x27: "©", + 0x28: "&", + 0xF7: " ", +} + +class N64SegPaperMarioMessages(N64Segment): + def __init__(self, segment, next_segment, options): + super().__init__(segment, next_segment, options) + self.files = segment.get("files", []) if type(segment) is dict else [] + + def split(self, rom_bytes, base_path): + data = rom_bytes[self.rom_start: self.rom_end] + + section_offsets = [] + pos = 0 + while True: + offset = int.from_bytes(data[pos:pos+4], byteorder="big") + + if offset == 0: + break + + section_offsets.append(offset) + pos += 4 + + for i, section_offset in enumerate(section_offsets): + name = f"{i:02X}" + if len(self.files) >= i: + name = self.files[i] + + msg_offsets = [] + pos = section_offset + while True: + offset = int.from_bytes(data[pos:pos+4], byteorder="big") + + if offset == section_offset: + break + + msg_offsets.append(offset) + pos += 4 + + self.log(f"Reading {len(msg_offsets)} messages in section {name} (0x{i:02X})") + + path = Path(base_path, self.name, name + ".msg") + path.parent.mkdir(parents=True, exist_ok=True) + with open(path, "w") as f: + for j, msg_offset in enumerate(msg_offsets): + if j != 0: + f.write("\n") + f.write(f"[message section=0x{i:02X} index={j}]\n") + self.write_message_markup(data[msg_offset:], f) + f.write("\n[/message]\n") + + def get_ld_files(self): + return [("", self.name, ".data")] + + @staticmethod + def get_default_name(addr): + return "msg" + + def write_message_markup(self, data, f): + pos = 0 + font = CHARSET + + while data[pos] != 0xFD: + markup, delta = self.char_to_markup(data[pos:], charset=font) + + f.write(markup) + pos += delta + + if markup == "[font=title]\n" or markup == "[font=subtitle]\n": + font = CHARSET_CREDITS + elif markup == "[font=normal]": + font = CHARSET + + def char_to_markup(self, data, charset=CHARSET): + value = None + char = int(data[0]) + + if char in charset: + value = charset[char] + elif None in charset: + value = charset[None] + + if type(value) is str: + return value, 1 + if callable(value): + return value(data) + if type(value) is dict: + markup, delta = self.char_to_markup(data[1:], charset=value) + + if markup is None: + if None in charset: + value = charset[None] + + if callable(value): + return value(data) + + return value, 1 + else: + return markup, delta + 1 + + + return None, 0 diff --git a/tools/splat_ext/__init__.py b/tools/splat_ext/__init__.py new file mode 100644 index 0000000000..e69de29bb2 From d0ae1ed6bfc859c88ec110588b94b327a0bb9154 Mon Sep 17 00:00:00 2001 From: Lavos1 Date: Thu, 12 Nov 2020 00:42:34 +0000 Subject: [PATCH 39/52] Fix a few functions --- src/code_190B20.c | 25 +++++++++---------------- src/code_e79b0_len_1920.c | 8 ++------ 2 files changed, 11 insertions(+), 22 deletions(-) diff --git a/src/code_190B20.c b/src/code_190B20.c index d529a73fd5..f28b96e7d9 100644 --- a/src/code_190B20.c +++ b/src/code_190B20.c @@ -93,7 +93,6 @@ INCLUDE_ASM(s32, "code_190B20", func_80265CE8); INCLUDE_ASM(s32, "code_190B20", func_80265D44); -#ifdef NON_MATCHING typedef struct { Element element; s32 defense; @@ -103,22 +102,20 @@ s32 lookup_defense(DefenseTableEntry* defenseTable, Element elementKey) { DefenseTableEntry* row; s32 normalDefense = 0; - for (row = defenseTable; row->element != Element_END; row++) { + for (row = defenseTable; row->element != Element_END; row++, defenseTable++) { if (row->element == Element_NORMAL) { - normalDefense = row->defense; + normalDefense = defenseTable->defense; } if (row->element == elementKey) { - return row->defense; + normalDefense = defenseTable->defense; + break; } } // Fall back to normal defense if given element is not specified in table return normalDefense; } -#else -INCLUDE_ASM(s32, "code_190B20", lookup_defense); -#endif INCLUDE_ASM(s32, "code_190B20", lookup_status_chance); // exactly (?) the same as lookup_defense @@ -284,23 +281,19 @@ INCLUDE_ASM(s32, "code_190B20", func_8026709C); INCLUDE_ASM(s32, "code_190B20", func_802670C8); -#ifdef NON_MATCHING -// Register allocation issues (decorationIndex is placed in s2 for seemingly no reason?). -// Should be easy to clean up once DecorationTable is more understood void add_part_decoration(ActorPart* part, s32 decorationIndex, DecorationId decorationType) { - if (part->idleAnimations && (part->flags & 2) == 0) { - DecorationTable* decoration = &part->decorationTable->unk_00[decorationIndex]; + if ((part->idleAnimations) && !(part->flags & 2)) { + char* decorationTable = part->decorationTable->unk_00; + DecorationTable* decoration; + _remove_part_decoration(part, decorationIndex); + decoration = decorationTable + decorationIndex; decoration->decorationType[0] = decorationType; decoration->unk_8BA = 1; decoration->unk_8BC = 0; func_8025CEC8(part); } } -#else -INCLUDE_ASM(void, "code_190B20", add_part_decoration, ActorPart* part, s32 decorationIndex, - DecorationId decorationType); -#endif void add_actor_decoration(Actor* actor, s32 decorationIndex, DecorationId decorationType) { ActorPart* part; diff --git a/src/code_e79b0_len_1920.c b/src/code_e79b0_len_1920.c index aa25db64af..4d11e63300 100644 --- a/src/code_e79b0_len_1920.c +++ b/src/code_e79b0_len_1920.c @@ -52,8 +52,6 @@ void sort_scripts(void) { INCLUDE_ASM(s32, "code_e79b0_len_1920", sort_scripts); #endif -#ifdef NON_MATCHING -// Very close. Reordering/branch likely issues void find_script_labels(ScriptInstance* script) { Bytecode* curLine; s32 type; @@ -69,7 +67,7 @@ void find_script_labels(ScriptInstance* script) { j = 0; curLine = script->ptrNextLine; - for (j = 0; j < ARRAY_COUNT(script->labelIndices); j++) { + while (j < ARRAY_COUNT(script->labelIndices)) { type = *curLine++; numArgs = *curLine++; label = *curLine; @@ -82,13 +80,11 @@ void find_script_labels(ScriptInstance* script) { if (type == 3) { script->labelIndices[j] = label; script->labelPositions[j] = curLine; + j++; } } PANIC(); } -#else -INCLUDE_ASM(void, "code_e79b0_len_1920", find_script_labels); -#endif void clear_script_list(void) { s32 i; From 124a5170b7553d4fb2be26f20d9afbe349fbf420 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Thu, 12 Nov 2020 00:18:35 -0500 Subject: [PATCH 40/52] more pause decomp --- .../code_138CC0/pause_badges_comparator.s | 39 -------- .../code_138CC0/pause_badges_draw_contents.s | 8 +- .../code_138CC0/pause_badges_handle_input.s | 20 ++--- .../code_138CC0/pause_badges_load_badges.s | 20 ++--- .../code_138CC0/pause_badges_update.s | 90 ------------------- include/common_structs.h | 2 +- include/functions.h | 4 + include/variables.h | 12 ++- src/code_135EE0.c | 4 +- src/code_138CC0.c | 54 ++++++++++- undefined_syms.txt | 11 +++ 11 files changed, 104 insertions(+), 160 deletions(-) delete mode 100644 asm/nonmatchings/code_138CC0/pause_badges_comparator.s delete mode 100644 asm/nonmatchings/code_138CC0/pause_badges_update.s diff --git a/asm/nonmatchings/code_138CC0/pause_badges_comparator.s b/asm/nonmatchings/code_138CC0/pause_badges_comparator.s deleted file mode 100644 index 71523184a5..0000000000 --- a/asm/nonmatchings/code_138CC0/pause_badges_comparator.s +++ /dev/null @@ -1,39 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel pause_badges_comparator -/* 13A320 80246FE0 84820000 */ lh $v0, ($a0) -/* 13A324 80246FE4 14400003 */ bnez $v0, .L80246FF4 -/* 13A328 80246FE8 00021140 */ sll $v0, $v0, 5 -/* 13A32C 80246FEC 08091C00 */ j .L80247000 -/* 13A330 80246FF0 24037FFF */ addiu $v1, $zero, 0x7fff -.L80246FF4: -/* 13A334 80246FF4 3C038008 */ lui $v1, %hi(gItemTable+0x6) -/* 13A338 80246FF8 00621821 */ addu $v1, $v1, $v0 -/* 13A33C 80246FFC 946378E6 */ lhu $v1, %lo(gItemTable+0x6)($v1) -.L80247000: -/* 13A340 80247000 84A20000 */ lh $v0, ($a1) -/* 13A344 80247004 14400003 */ bnez $v0, .L80247014 -/* 13A348 80247008 00021140 */ sll $v0, $v0, 5 -/* 13A34C 8024700C 08091C08 */ j .L80247020 -/* 13A350 80247010 24047FFF */ addiu $a0, $zero, 0x7fff -.L80247014: -/* 13A354 80247014 3C048008 */ lui $a0, %hi(gItemTable+0x6) -/* 13A358 80247018 00822021 */ addu $a0, $a0, $v0 -/* 13A35C 8024701C 948478E6 */ lhu $a0, %lo(gItemTable+0x6)($a0) -.L80247020: -/* 13A360 80247020 00031400 */ sll $v0, $v1, 0x10 -/* 13A364 80247024 00021C03 */ sra $v1, $v0, 0x10 -/* 13A368 80247028 00041400 */ sll $v0, $a0, 0x10 -/* 13A36C 8024702C 00022403 */ sra $a0, $v0, 0x10 -/* 13A370 80247030 10640005 */ beq $v1, $a0, .L80247048 -/* 13A374 80247034 0064182A */ slt $v1, $v1, $a0 -/* 13A378 80247038 14600004 */ bnez $v1, .L8024704C -/* 13A37C 8024703C 2402FFFF */ addiu $v0, $zero, -1 -/* 13A380 80247040 03E00008 */ jr $ra -/* 13A384 80247044 24020001 */ addiu $v0, $zero, 1 -.L80247048: -/* 13A388 80247048 0000102D */ daddu $v0, $zero, $zero -.L8024704C: -/* 13A38C 8024704C 03E00008 */ jr $ra -/* 13A390 80247050 00000000 */ nop diff --git a/asm/nonmatchings/code_138CC0/pause_badges_draw_contents.s b/asm/nonmatchings/code_138CC0/pause_badges_draw_contents.s index 278f61d7a3..3dd1a70d41 100644 --- a/asm/nonmatchings/code_138CC0/pause_badges_draw_contents.s +++ b/asm/nonmatchings/code_138CC0/pause_badges_draw_contents.s @@ -42,8 +42,8 @@ glabel pause_badges_draw_contents /* 13A8DC 8024759C AFA30044 */ sw $v1, 0x44($sp) /* 13A8E0 802475A0 240300F0 */ addiu $v1, $zero, 0xf0 /* 13A8E4 802475A4 AFA30048 */ sw $v1, 0x48($sp) -/* 13A8E8 802475A8 3C038027 */ lui $v1, 0x8027 -/* 13A8EC 802475AC 8C630378 */ lw $v1, 0x378($v1) +/* 13A8E8 802475A8 3C038027 */ lui $v1, %hi(gBadgeMenuSelectedIndex) +/* 13A8EC 802475AC 8C630378 */ lw $v1, %lo(gBadgeMenuSelectedIndex)($v1) /* 13A8F0 802475B0 AFAB0018 */ sw $t3, 0x18($sp) /* 13A8F4 802475B4 15200002 */ bnez $t1, .L802475C0 /* 13A8F8 802475B8 0069001A */ div $zero, $v1, $t1 @@ -1490,8 +1490,8 @@ glabel pause_badges_draw_contents /* 13BE54 80248B14 90430001 */ lbu $v1, 1($v0) /* 13BE58 80248B18 90420002 */ lbu $v0, 2($v0) /* 13BE5C 80248B1C 00620018 */ mult $v1, $v0 -/* 13BE60 80248B20 3C108027 */ lui $s0, 0x8027 -/* 13BE64 80248B24 26100378 */ addiu $s0, $s0, 0x378 +/* 13BE60 80248B20 3C108027 */ lui $s0, %hi(gBadgeMenuSelectedIndex) +/* 13BE64 80248B24 26100378 */ addiu $s0, $s0, %lo(gBadgeMenuSelectedIndex) /* 13BE68 80248B28 8E050000 */ lw $a1, ($s0) /* 13BE6C 80248B2C 00005012 */ mflo $t2 /* 13BE70 80248B30 0C091C43 */ jal pause_badges_get_pos_x diff --git a/asm/nonmatchings/code_138CC0/pause_badges_handle_input.s b/asm/nonmatchings/code_138CC0/pause_badges_handle_input.s index 725d458a3d..79b3ac964b 100644 --- a/asm/nonmatchings/code_138CC0/pause_badges_handle_input.s +++ b/asm/nonmatchings/code_138CC0/pause_badges_handle_input.s @@ -4,8 +4,8 @@ glabel pause_badges_handle_input /* 13C3E8 802490A8 3C038027 */ lui $v1, %hi(gBadgeMenuCurrentPage) /* 13C3EC 802490AC 8C630280 */ lw $v1, %lo(gBadgeMenuCurrentPage)($v1) -/* 13C3F0 802490B0 3C098027 */ lui $t1, 0x8027 -/* 13C3F4 802490B4 8D290378 */ lw $t1, 0x378($t1) +/* 13C3F0 802490B0 3C098027 */ lui $t1, %hi(gBadgeMenuSelectedIndex) +/* 13C3F4 802490B4 8D290378 */ lw $t1, %lo(gBadgeMenuSelectedIndex)($t1) /* 13C3F8 802490B8 27BDFFE0 */ addiu $sp, $sp, -0x20 /* 13C3FC 802490BC AFBF001C */ sw $ra, 0x1c($sp) /* 13C400 802490C0 AFB20018 */ sw $s2, 0x18($sp) @@ -115,8 +115,8 @@ glabel pause_badges_handle_input /* 13C574 80249234 3C018027 */ lui $at, 0x8027 /* 13C578 80249238 AC2003A0 */ sw $zero, 0x3a0($at) .L8024923C: -/* 13C57C 8024923C 3C028027 */ lui $v0, 0x8027 -/* 13C580 80249240 84420384 */ lh $v0, 0x384($v0) +/* 13C57C 8024923C 3C028027 */ lui $v0, %hi(gBadgeMenuNumItems) +/* 13C580 80249240 84420384 */ lh $v0, %lo(gBadgeMenuNumItems)($v0) /* 13C584 80249244 104000B1 */ beqz $v0, .L8024950C /* 13C588 80249248 00000000 */ nop /* 13C58C 8024924C 3C028027 */ lui $v0, 0x8027 @@ -292,8 +292,8 @@ glabel pause_badges_handle_input /* 13C804 802494C4 00220821 */ addu $at, $at, $v0 /* 13C808 802494C8 9022028A */ lbu $v0, 0x28a($at) /* 13C80C 802494CC 00A20018 */ mult $a1, $v0 -/* 13C810 802494D0 3C108027 */ lui $s0, 0x8027 -/* 13C814 802494D4 26100378 */ addiu $s0, $s0, 0x378 +/* 13C810 802494D0 3C108027 */ lui $s0, %hi(gBadgeMenuSelectedIndex) +/* 13C814 802494D4 26100378 */ addiu $s0, $s0, %lo(gBadgeMenuSelectedIndex) /* 13C818 802494D8 00005012 */ mflo $t2 /* 13C81C 802494DC 010A1021 */ addu $v0, $t0, $t2 /* 13C820 802494E0 10490003 */ beq $v0, $t1, .L802494F0 @@ -306,16 +306,16 @@ glabel pause_badges_handle_input /* 13C838 802494F8 3C018027 */ lui $at, %hi(gBadgeMenuItemIDs) /* 13C83C 802494FC 00220821 */ addu $at, $at, $v0 /* 13C840 80249500 84220180 */ lh $v0, %lo(gBadgeMenuItemIDs)($at) -/* 13C844 80249504 3C018027 */ lui $at, 0x8027 -/* 13C848 80249508 AC220380 */ sw $v0, 0x380($at) +/* 13C844 80249504 3C018027 */ lui $at, %hi(gBadgeMenuSelectedItemID) +/* 13C848 80249508 AC220380 */ sw $v0, %lo(gBadgeMenuSelectedItemID)($at) .L8024950C: /* 13C84C 8024950C 3C038027 */ lui $v1, 0x8027 /* 13C850 80249510 8C630398 */ lw $v1, 0x398($v1) /* 13C854 80249514 24020001 */ addiu $v0, $zero, 1 /* 13C858 80249518 14620014 */ bne $v1, $v0, .L8024956C /* 13C85C 8024951C 00000000 */ nop -/* 13C860 80249520 3C038027 */ lui $v1, 0x8027 -/* 13C864 80249524 8C630380 */ lw $v1, 0x380($v1) +/* 13C860 80249520 3C038027 */ lui $v1, %hi(gBadgeMenuSelectedItemID) +/* 13C864 80249524 8C630380 */ lw $v1, %lo(gBadgeMenuSelectedItemID)($v1) /* 13C868 80249528 24628002 */ addiu $v0, $v1, -0x7ffe /* 13C86C 8024952C 2C420002 */ sltiu $v0, $v0, 2 /* 13C870 80249530 1440000A */ bnez $v0, .L8024955C diff --git a/asm/nonmatchings/code_138CC0/pause_badges_load_badges.s b/asm/nonmatchings/code_138CC0/pause_badges_load_badges.s index c01fb56fa6..9100708353 100644 --- a/asm/nonmatchings/code_138CC0/pause_badges_load_badges.s +++ b/asm/nonmatchings/code_138CC0/pause_badges_load_badges.s @@ -8,8 +8,8 @@ glabel pause_badges_load_badges /* 13C0D8 80248D98 3C118011 */ lui $s1, %hi(gPlayerData) /* 13C0DC 80248D9C 2631F290 */ addiu $s1, $s1, %lo(gPlayerData) /* 13C0E0 80248DA0 AFBF0018 */ sw $ra, 0x18($sp) -/* 13C0E4 80248DA4 3C018027 */ lui $at, 0x8027 -/* 13C0E8 80248DA8 AC200388 */ sw $zero, 0x388($at) +/* 13C0E4 80248DA4 3C018027 */ lui $at, %hi(D_80270388) +/* 13C0E8 80248DA8 AC200388 */ sw $zero, %lo(D_80270388)($at) /* 13C0EC 80248DAC 14800014 */ bnez $a0, .L80248E00 /* 13C0F0 80248DB0 0000802D */ daddu $s0, $zero, $zero /* 13C0F4 80248DB4 0200202D */ daddu $a0, $s0, $zero @@ -59,8 +59,8 @@ glabel pause_badges_load_badges /* 13C18C 80248E4C A4220180 */ sh $v0, %lo(gBadgeMenuItemIDs)($at) /* 13C190 80248E50 24100001 */ addiu $s0, $zero, 1 .L80248E54: -/* 13C194 80248E54 3C018027 */ lui $at, 0x8027 -/* 13C198 80248E58 A4300384 */ sh $s0, 0x384($at) +/* 13C194 80248E54 3C018027 */ lui $at, %hi(gBadgeMenuNumItems) +/* 13C198 80248E58 A4300384 */ sh $s0, %lo(gBadgeMenuNumItems)($at) /* 13C19C 80248E5C 0200202D */ daddu $a0, $s0, $zero /* 13C1A0 80248E60 28820080 */ slti $v0, $a0, 0x80 /* 13C1A4 80248E64 1040000A */ beqz $v0, .L80248E90 @@ -79,16 +79,16 @@ glabel pause_badges_load_badges /* 13C1D0 80248E90 3C058027 */ lui $a1, %hi(gBadgeMenuPages) /* 13C1D4 80248E94 24A50288 */ addiu $a1, $a1, %lo(gBadgeMenuPages) /* 13C1D8 80248E98 0000202D */ daddu $a0, $zero, $zero -/* 13C1DC 80248E9C 3C078027 */ lui $a3, 0x8027 -/* 13C1E0 80248EA0 24E70384 */ addiu $a3, $a3, 0x384 +/* 13C1DC 80248E9C 3C078027 */ lui $a3, %hi(gBadgeMenuNumItems) +/* 13C1E0 80248EA0 24E70384 */ addiu $a3, $a3, %lo(gBadgeMenuNumItems) /* 13C1E4 80248EA4 24060001 */ addiu $a2, $zero, 1 /* 13C1E8 80248EA8 24090008 */ addiu $t1, $zero, 8 /* 13C1EC 80248EAC 24080008 */ addiu $t0, $zero, 8 /* 13C1F0 80248EB0 00A81821 */ addu $v1, $a1, $t0 -/* 13C1F4 80248EB4 3C018027 */ lui $at, 0x8027 -/* 13C1F8 80248EB8 AC200378 */ sw $zero, 0x378($at) -/* 13C1FC 80248EBC 3C018027 */ lui $at, 0x8027 -/* 13C200 80248EC0 AC200380 */ sw $zero, 0x380($at) +/* 13C1F4 80248EB4 3C018027 */ lui $at, %hi(gBadgeMenuSelectedIndex) +/* 13C1F8 80248EB8 AC200378 */ sw $zero, %lo(gBadgeMenuSelectedIndex)($at) +/* 13C1FC 80248EBC 3C018027 */ lui $at, %hi(gBadgeMenuSelectedItemID) +/* 13C200 80248EC0 AC200380 */ sw $zero, %lo(gBadgeMenuSelectedItemID)($at) /* 13C204 80248EC4 3C018027 */ lui $at, 0x8027 /* 13C208 80248EC8 AC20037C */ sw $zero, 0x37c($at) /* 13C20C 80248ECC 3C018027 */ lui $at, 0x8027 diff --git a/asm/nonmatchings/code_138CC0/pause_badges_update.s b/asm/nonmatchings/code_138CC0/pause_badges_update.s deleted file mode 100644 index 13f8001375..0000000000 --- a/asm/nonmatchings/code_138CC0/pause_badges_update.s +++ /dev/null @@ -1,90 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel pause_badges_update -/* 13C95C 8024961C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 13C960 80249620 3C038027 */ lui $v1, %hi(gBadgeMenuCurrentPage) -/* 13C964 80249624 8C630280 */ lw $v1, %lo(gBadgeMenuCurrentPage)($v1) -/* 13C968 80249628 3C048027 */ lui $a0, %hi(gBadgeMenuPages) -/* 13C96C 8024962C 24840288 */ addiu $a0, $a0, %lo(gBadgeMenuPages) -/* 13C970 80249630 AFBF0014 */ sw $ra, 0x14($sp) -/* 13C974 80249634 AFB00010 */ sw $s0, 0x10($sp) -/* 13C978 80249638 00031040 */ sll $v0, $v1, 1 -/* 13C97C 8024963C 00431021 */ addu $v0, $v0, $v1 -/* 13C980 80249640 00021080 */ sll $v0, $v0, 2 -/* 13C984 80249644 00443021 */ addu $a2, $v0, $a0 -/* 13C988 80249648 90C30002 */ lbu $v1, 2($a2) -/* 13C98C 8024964C 3C028027 */ lui $v0, 0x8027 -/* 13C990 80249650 8C420378 */ lw $v0, 0x378($v0) -/* 13C994 80249654 14600002 */ bnez $v1, .L80249660 -/* 13C998 80249658 0043001A */ div $zero, $v0, $v1 -/* 13C99C 8024965C 0007000D */ break 7 -.L80249660: -/* 13C9A0 80249660 2401FFFF */ addiu $at, $zero, -1 -/* 13C9A4 80249664 14610004 */ bne $v1, $at, .L80249678 -/* 13C9A8 80249668 3C018000 */ lui $at, 0x8000 -/* 13C9AC 8024966C 14410002 */ bne $v0, $at, .L80249678 -/* 13C9B0 80249670 00000000 */ nop -/* 13C9B4 80249674 0006000D */ break 6 -.L80249678: -/* 13C9B8 80249678 00001012 */ mflo $v0 -/* 13C9BC 8024967C 90C30001 */ lbu $v1, 1($a2) -/* 13C9C0 80249680 00432023 */ subu $a0, $v0, $v1 -/* 13C9C4 80249684 28820002 */ slti $v0, $a0, 2 -/* 13C9C8 80249688 14400005 */ bnez $v0, .L802496A0 -/* 13C9CC 8024968C 00000000 */ nop -/* 13C9D0 80249690 90C20003 */ lbu $v0, 3($a2) -/* 13C9D4 80249694 2C420009 */ sltiu $v0, $v0, 9 -/* 13C9D8 80249698 10400005 */ beqz $v0, .L802496B0 -/* 13C9DC 8024969C 00000000 */ nop -.L802496A0: -/* 13C9E0 802496A0 3C018027 */ lui $at, 0x8027 -/* 13C9E4 802496A4 AC200394 */ sw $zero, 0x394($at) -/* 13C9E8 802496A8 080925BF */ j .L802496FC -/* 13C9EC 802496AC 00000000 */ nop -.L802496B0: -/* 13C9F0 802496B0 90C30003 */ lbu $v1, 3($a2) -/* 13C9F4 802496B4 2462FFFE */ addiu $v0, $v1, -2 -/* 13C9F8 802496B8 0082102A */ slt $v0, $a0, $v0 -/* 13C9FC 802496BC 14400005 */ bnez $v0, .L802496D4 -/* 13CA00 802496C0 2462FFF8 */ addiu $v0, $v1, -8 -/* 13CA04 802496C4 3C018027 */ lui $at, 0x8027 -/* 13CA08 802496C8 AC220394 */ sw $v0, 0x394($at) -/* 13CA0C 802496CC 080925BF */ j .L802496FC -/* 13CA10 802496D0 00000000 */ nop -.L802496D4: -/* 13CA14 802496D4 3C058027 */ lui $a1, 0x8027 -/* 13CA18 802496D8 24A50394 */ addiu $a1, $a1, 0x394 -/* 13CA1C 802496DC 8CA20000 */ lw $v0, ($a1) -/* 13CA20 802496E0 00821823 */ subu $v1, $a0, $v0 -/* 13CA24 802496E4 28620007 */ slti $v0, $v1, 7 -/* 13CA28 802496E8 10400003 */ beqz $v0, .L802496F8 -/* 13CA2C 802496EC 2482FFFA */ addiu $v0, $a0, -6 -/* 13CA30 802496F0 1C600002 */ bgtz $v1, .L802496FC -/* 13CA34 802496F4 2482FFFF */ addiu $v0, $a0, -1 -.L802496F8: -/* 13CA38 802496F8 ACA20000 */ sw $v0, ($a1) -.L802496FC: -/* 13CA3C 802496FC 90C20002 */ lbu $v0, 2($a2) -/* 13CA40 80249700 3C058027 */ lui $a1, 0x8027 -/* 13CA44 80249704 8CA50394 */ lw $a1, 0x394($a1) -/* 13CA48 80249708 00A20018 */ mult $a1, $v0 -/* 13CA4C 8024970C 3C048027 */ lui $a0, %hi(gBadgeMenuCurrentPage) -/* 13CA50 80249710 8C840280 */ lw $a0, %lo(gBadgeMenuCurrentPage)($a0) -/* 13CA54 80249714 00002812 */ mflo $a1 -/* 13CA58 80249718 0C091C5A */ jal pause_badges_get_pos_y -/* 13CA5C 8024971C 00000000 */ nop -/* 13CA60 80249720 3C108027 */ lui $s0, %hi(gBadgeMenuCurrentScrollPos) -/* 13CA64 80249724 2610038C */ addiu $s0, $s0, %lo(gBadgeMenuCurrentScrollPos) -/* 13CA68 80249728 8E040000 */ lw $a0, ($s0) -/* 13CA6C 8024972C 3C018027 */ lui $at, %hi(gBadgeMenuTargetScrollPos) -/* 13CA70 80249730 AC220390 */ sw $v0, %lo(gBadgeMenuTargetScrollPos)($at) -/* 13CA74 80249734 0C090D1B */ jal pause_interp_vertical_scroll -/* 13CA78 80249738 00442023 */ subu $a0, $v0, $a0 -/* 13CA7C 8024973C 8E030000 */ lw $v1, ($s0) -/* 13CA80 80249740 00621821 */ addu $v1, $v1, $v0 -/* 13CA84 80249744 AE030000 */ sw $v1, ($s0) -/* 13CA88 80249748 8FBF0014 */ lw $ra, 0x14($sp) -/* 13CA8C 8024974C 8FB00010 */ lw $s0, 0x10($sp) -/* 13CA90 80249750 03E00008 */ jr $ra -/* 13CA94 80249754 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/include/common_structs.h b/include/common_structs.h index 55c0498715..1a9f77a631 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -1537,7 +1537,7 @@ typedef struct { /* 0x00 */ s8 enabled; /* 0x01 */ u8 listStart; /* 0x02 */ u8 numCols; - /* 0x03 */ s8 numRows; + /* 0x03 */ u8 numRows; /* 0x04 */ s32 startIndex; /* 0x08 */ s32 count; } PauseItemPage; // size = 0xC diff --git a/include/functions.h b/include/functions.h index ecbedf85a7..8681adcc8f 100644 --- a/include/functions.h +++ b/include/functions.h @@ -79,6 +79,10 @@ s32 func_800EB168(s32); PlayerData* get_player_data(void); +// Pause +s32 pause_interp_vertical_scroll(s32 deltaBefore); +void pause_draw_rect(s32 ulx, s32 uly, s32 lrx, s32 lry, s32 tileDescriptor, s32 uls, s32 ult, s32 dsdx, s32 dtdy); + // Partner void func_800EBA3C(Npc* partner); void func_800EBB40(Npc* partner); diff --git a/include/variables.h b/include/variables.h index 161014267a..e18ae7a35d 100644 --- a/include/variables.h +++ b/include/variables.h @@ -141,11 +141,21 @@ extern u8 gPauseMenuTextScrollInterpEasingLUT[16]; extern u8 gPauseMenuPageScrollInterpEasingLUT[16]; // Badges -extern PauseItemPage gBadgeMenuPages[20]; extern s32 gBadgeMenuCurrentScrollPos; extern s32 gBadgeMenuTargetScrollPos; extern ItemId gBadgeMenuItemIDs[128]; extern s32 gBadgeMenuCurrentPage; +extern PauseItemPage gBadgeMenuPages[20]; +extern s32 gBadgeMenuSelectedIndex; +extern s32 gBadgeMenuSelectedItemID; +extern s16 gBadgeMenuNumItems; +extern s32 D_80270388; +extern s32 D_80270394; +extern s32 gBadgeMenuLevel; +extern s32 gBadgeMenuCurrentTab; +extern s32 gBadgeMenuBShowNotEnoughBP; +extern s32 D_802703A4; +extern s32 D_802703A8; // Stats extern s32 gStatsMenuIconIDs[12]; diff --git a/src/code_135EE0.c b/src/code_135EE0.c index 90f19f5fc9..b04277de28 100644 --- a/src/code_135EE0.c +++ b/src/code_135EE0.c @@ -114,7 +114,7 @@ s32 pause_interp_vertical_scroll(s32 deltaBefore) { return val * s; } #else -INCLUDE_ASM(s32, "code_135EE0", pause_interp_vertical_scroll); +INCLUDE_ASM(s32, "code_135EE0", pause_interp_vertical_scroll, s32 deltaBefore); #endif void pause_update_cursor(s32 arg0, s32 offsetX, s32 offsetY) { @@ -149,7 +149,7 @@ INCLUDE_ASM(s32, "code_135EE0", pause_cleanup); INCLUDE_ASM(s32, "code_135EE0", pause_get_total_equipped_bp_cost); -INCLUDE_ASM(s32, "code_135EE0", pause_draw_rect); +INCLUDE_ASM(void, "code_135EE0", pause_draw_rect, s32 ulx, s32 uly, s32 lrx, s32 lry, s32 tileDescriptor, s32 uls, s32 ult, s32 dsdx, s32 dtdy); INCLUDE_ASM(s32, "code_135EE0", pause_sort_item_list); diff --git a/src/code_138CC0.c b/src/code_138CC0.c index 4818d3286c..a41cb78856 100644 --- a/src/code_138CC0.c +++ b/src/code_138CC0.c @@ -15,13 +15,36 @@ void pause_stats_cleanup(void) { } } -INCLUDE_ASM(s32, "code_138CC0", pause_badges_comparator); +s32 pause_badges_comparator(s16* a, s16* b) { + s16 aVal; + s16 bVal; + + if (*a == 0) { + aVal = ~0x8000; + } else { + aVal = gItemTable[*a].badgeSortPriority; + } + + if (*b == 0) { + bVal = ~0x8000; + } else { + bVal = gItemTable[*b].badgeSortPriority; + } + + if (aVal == bVal) { + return 0; + } else if (aVal < bVal) { + return -1; + } else { + return 1; + } +} s32 pause_badges_count_all(void) { PlayerData* playerData = PLAYER_DATA; s32 i; - pause_sort_item_list(playerData->badges, ARRAY_COUNT(playerData->badges), &pause_badges_comparator); + pause_sort_item_list(playerData->badges, ARRAY_COUNT(playerData->badges), pause_badges_comparator); for (i = 0; i < ARRAY_COUNT(playerData->badges); i++) { if (playerData->badges[i] == 0) { @@ -94,6 +117,31 @@ INCLUDE_ASM(s32, "code_138CC0", pause_badges_init); INCLUDE_ASM(s32, "code_138CC0", pause_badges_handle_input); -INCLUDE_ASM(s32, "code_138CC0", pause_badges_update); +void pause_badges_update(void) { + PauseItemPage* menuPages = gBadgeMenuPages; + PauseItemPage* currentMenuPage = &menuPages[gBadgeMenuCurrentPage]; + s32 temp = (gBadgeMenuSelectedIndex / currentMenuPage->numCols) - currentMenuPage->listStart; + s32* currentScrollPos; + + if ((temp < 2) || currentMenuPage->numRows < 9) { + D_80270394 = 0; + } else if (temp >= currentMenuPage->numRows - 2) { + D_80270394 = currentMenuPage->numRows - 8; + } else { + s32* unkSym = &D_80270394; + + if (temp - *unkSym >= 7) { + *unkSym = temp - 6; + } else { + if (temp - *unkSym <= 0) { + *unkSym = temp - 1; + } + } + } + + currentScrollPos = &gBadgeMenuCurrentScrollPos; + gBadgeMenuTargetScrollPos = pause_badges_get_pos_y(gBadgeMenuCurrentPage, D_80270394 * currentMenuPage->numCols); + *currentScrollPos += pause_interp_vertical_scroll(gBadgeMenuTargetScrollPos - *currentScrollPos); +} INCLUDE_ASM(s32, "code_138CC0", pause_badges_cleanup); diff --git a/undefined_syms.txt b/undefined_syms.txt index 347c7102d8..d0b1dfad47 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -170,8 +170,19 @@ gStatsMenuIconIDs = 0x80270150; gBadgeMenuItemIDs = 0x80270180; gBadgeMenuCurrentPage = 0x80270280; gBadgeMenuPages = 0x80270288; +gBadgeMenuSelectedIndex = 0x80270378; +gBadgeMenuSelectedItemID = 0x80270380; +gBadgeMenuNumItems = 0x80270384; +D_80270388 = 0x80270388; gBadgeMenuCurrentScrollPos = 0x8027038C; gBadgeMenuTargetScrollPos = 0x80270390; +D_80270394 = 0x80270394; +gBadgeMenuLevel = 0x80270398; +gBadgeMenuCurrentTab = 0x8027039C; +gBadgeMenuBShowNotEnoughBP = 0x802703A0; +D_802703A4 = 0x802703A4; +D_802703A8 = 0x802703A8; + gPauseItemPages = 0x802704D0; D_802C3000 = 0x802C3000; From 89132f5cc1a99a50d610a6b928343f0db5b7c61c Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Thu, 12 Nov 2020 00:22:50 -0500 Subject: [PATCH 41/52] partner c file --- .../pause_partners_cleanup.s | 8 +++---- .../pause_partners_draw_contents.s | 0 .../pause_partners_draw_movelist.s | 0 .../pause_partners_draw_movelist_flower.s | 0 .../pause_partners_draw_movelist_title.s | 0 .../pause_partners_draw_title.s | 0 .../pause_partners_handle_input.s | 0 .../pause_partners_init.s | 0 .../pause_partners_load_portrait.s | 0 .../pause_partners_update.s | 0 src/code_13CAF0.c | 20 ------------------ src/code_13E120.c | 21 +++++++++++++++++++ tools/splat.yaml | 1 + 13 files changed, 26 insertions(+), 24 deletions(-) rename asm/nonmatchings/{code_13CAF0 => code_13E120}/pause_partners_cleanup.s (90%) rename asm/nonmatchings/{code_13CAF0 => code_13E120}/pause_partners_draw_contents.s (100%) rename asm/nonmatchings/{code_13CAF0 => code_13E120}/pause_partners_draw_movelist.s (100%) rename asm/nonmatchings/{code_13CAF0 => code_13E120}/pause_partners_draw_movelist_flower.s (100%) rename asm/nonmatchings/{code_13CAF0 => code_13E120}/pause_partners_draw_movelist_title.s (100%) rename asm/nonmatchings/{code_13CAF0 => code_13E120}/pause_partners_draw_title.s (100%) rename asm/nonmatchings/{code_13CAF0 => code_13E120}/pause_partners_handle_input.s (100%) rename asm/nonmatchings/{code_13CAF0 => code_13E120}/pause_partners_init.s (100%) rename asm/nonmatchings/{code_13CAF0 => code_13E120}/pause_partners_load_portrait.s (100%) rename asm/nonmatchings/{code_13CAF0 => code_13E120}/pause_partners_update.s (100%) create mode 100644 src/code_13E120.c diff --git a/asm/nonmatchings/code_13CAF0/pause_partners_cleanup.s b/asm/nonmatchings/code_13E120/pause_partners_cleanup.s similarity index 90% rename from asm/nonmatchings/code_13CAF0/pause_partners_cleanup.s rename to asm/nonmatchings/code_13E120/pause_partners_cleanup.s index eec12563dd..6461cd8429 100644 --- a/asm/nonmatchings/code_13CAF0/pause_partners_cleanup.s +++ b/asm/nonmatchings/code_13E120/pause_partners_cleanup.s @@ -16,7 +16,7 @@ glabel pause_partners_cleanup /* 13FCEC 8024C9AC 26100001 */ addiu $s0, $s0, 1 /* 13FCF0 8024C9B0 2A020008 */ slti $v0, $s0, 8 /* 13FCF4 8024C9B4 1440FFFA */ bnez $v0, .L8024C9A0 -/* 13FCF8 8024C9B8 00000000 */ nop +/* 13FCF8 8024C9B8 00000000 */ nop /* 13FCFC 8024C9BC 0000802D */ daddu $s0, $zero, $zero /* 13FD00 8024C9C0 3C118027 */ lui $s1, 0x8027 /* 13FD04 8024C9C4 26310660 */ addiu $s1, $s1, 0x660 @@ -27,11 +27,11 @@ glabel pause_partners_cleanup /* 13FD14 8024C9D4 26100001 */ addiu $s0, $s0, 1 /* 13FD18 8024C9D8 2A020008 */ slti $v0, $s0, 8 /* 13FD1C 8024C9DC 1440FFFA */ bnez $v0, .L8024C9C8 -/* 13FD20 8024C9E0 00000000 */ nop +/* 13FD20 8024C9E0 00000000 */ nop /* 13FD24 8024C9E4 8FBF0018 */ lw $ra, 0x18($sp) /* 13FD28 8024C9E8 8FB10014 */ lw $s1, 0x14($sp) /* 13FD2C 8024C9EC 8FB00010 */ lw $s0, 0x10($sp) /* 13FD30 8024C9F0 03E00008 */ jr $ra /* 13FD34 8024C9F4 27BD0020 */ addiu $sp, $sp, 0x20 -/* 13FD38 8024C9F8 00000000 */ nop -/* 13FD3C 8024C9FC 00000000 */ nop +/* 13FD38 8024C9F8 00000000 */ nop +/* 13FD3C 8024C9FC 00000000 */ nop diff --git a/asm/nonmatchings/code_13CAF0/pause_partners_draw_contents.s b/asm/nonmatchings/code_13E120/pause_partners_draw_contents.s similarity index 100% rename from asm/nonmatchings/code_13CAF0/pause_partners_draw_contents.s rename to asm/nonmatchings/code_13E120/pause_partners_draw_contents.s diff --git a/asm/nonmatchings/code_13CAF0/pause_partners_draw_movelist.s b/asm/nonmatchings/code_13E120/pause_partners_draw_movelist.s similarity index 100% rename from asm/nonmatchings/code_13CAF0/pause_partners_draw_movelist.s rename to asm/nonmatchings/code_13E120/pause_partners_draw_movelist.s diff --git a/asm/nonmatchings/code_13CAF0/pause_partners_draw_movelist_flower.s b/asm/nonmatchings/code_13E120/pause_partners_draw_movelist_flower.s similarity index 100% rename from asm/nonmatchings/code_13CAF0/pause_partners_draw_movelist_flower.s rename to asm/nonmatchings/code_13E120/pause_partners_draw_movelist_flower.s diff --git a/asm/nonmatchings/code_13CAF0/pause_partners_draw_movelist_title.s b/asm/nonmatchings/code_13E120/pause_partners_draw_movelist_title.s similarity index 100% rename from asm/nonmatchings/code_13CAF0/pause_partners_draw_movelist_title.s rename to asm/nonmatchings/code_13E120/pause_partners_draw_movelist_title.s diff --git a/asm/nonmatchings/code_13CAF0/pause_partners_draw_title.s b/asm/nonmatchings/code_13E120/pause_partners_draw_title.s similarity index 100% rename from asm/nonmatchings/code_13CAF0/pause_partners_draw_title.s rename to asm/nonmatchings/code_13E120/pause_partners_draw_title.s diff --git a/asm/nonmatchings/code_13CAF0/pause_partners_handle_input.s b/asm/nonmatchings/code_13E120/pause_partners_handle_input.s similarity index 100% rename from asm/nonmatchings/code_13CAF0/pause_partners_handle_input.s rename to asm/nonmatchings/code_13E120/pause_partners_handle_input.s diff --git a/asm/nonmatchings/code_13CAF0/pause_partners_init.s b/asm/nonmatchings/code_13E120/pause_partners_init.s similarity index 100% rename from asm/nonmatchings/code_13CAF0/pause_partners_init.s rename to asm/nonmatchings/code_13E120/pause_partners_init.s diff --git a/asm/nonmatchings/code_13CAF0/pause_partners_load_portrait.s b/asm/nonmatchings/code_13E120/pause_partners_load_portrait.s similarity index 100% rename from asm/nonmatchings/code_13CAF0/pause_partners_load_portrait.s rename to asm/nonmatchings/code_13E120/pause_partners_load_portrait.s diff --git a/asm/nonmatchings/code_13CAF0/pause_partners_update.s b/asm/nonmatchings/code_13E120/pause_partners_update.s similarity index 100% rename from asm/nonmatchings/code_13CAF0/pause_partners_update.s rename to asm/nonmatchings/code_13E120/pause_partners_update.s diff --git a/src/code_13CAF0.c b/src/code_13CAF0.c index d3cb67d706..fc0856706e 100644 --- a/src/code_13CAF0.c +++ b/src/code_13CAF0.c @@ -29,23 +29,3 @@ INCLUDE_ASM(s32, "code_13CAF0", pause_items_handle_input); INCLUDE_ASM(s32, "code_13CAF0", pause_items_update); INCLUDE_ASM(s32, "code_13CAF0", pause_items_cleanup); - -INCLUDE_ASM(s32, "code_13CAF0", pause_partners_load_portrait); - -INCLUDE_ASM(s32, "code_13CAF0", pause_partners_draw_contents); - -INCLUDE_ASM(s32, "code_13CAF0", pause_partners_draw_title); - -INCLUDE_ASM(s32, "code_13CAF0", pause_partners_draw_movelist); - -INCLUDE_ASM(s32, "code_13CAF0", pause_partners_draw_movelist_title); - -INCLUDE_ASM(s32, "code_13CAF0", pause_partners_draw_movelist_flower); - -INCLUDE_ASM(s32, "code_13CAF0", pause_partners_init); - -INCLUDE_ASM(s32, "code_13CAF0", pause_partners_handle_input); - -INCLUDE_ASM(s32, "code_13CAF0", pause_partners_update); - -INCLUDE_ASM(s32, "code_13CAF0", pause_partners_cleanup); diff --git a/src/code_13E120.c b/src/code_13E120.c new file mode 100644 index 0000000000..032bc7145f --- /dev/null +++ b/src/code_13E120.c @@ -0,0 +1,21 @@ +#include "common.h" + +INCLUDE_ASM(s32, "code_13E120", pause_partners_load_portrait); + +INCLUDE_ASM(s32, "code_13E120", pause_partners_draw_contents); + +INCLUDE_ASM(s32, "code_13E120", pause_partners_draw_title); + +INCLUDE_ASM(s32, "code_13E120", pause_partners_draw_movelist); + +INCLUDE_ASM(s32, "code_13E120", pause_partners_draw_movelist_title); + +INCLUDE_ASM(s32, "code_13E120", pause_partners_draw_movelist_flower); + +INCLUDE_ASM(s32, "code_13E120", pause_partners_init); + +INCLUDE_ASM(s32, "code_13E120", pause_partners_handle_input); + +INCLUDE_ASM(s32, "code_13E120", pause_partners_update); + +INCLUDE_ASM(s32, "code_13E120", pause_partners_cleanup); diff --git a/tools/splat.yaml b/tools/splat.yaml index 403d2610d8..eb9530570c 100644 --- a/tools/splat.yaml +++ b/tools/splat.yaml @@ -304,6 +304,7 @@ segments: - [0x135EE0, c] - [0x138CC0, c] - [0x13CAF0, c] + - [0x13E120, c] - [0x13FD40, c] - [0x140C70, c] - [0x1421C0, c] From af1a04b44002932e2764acca0fe1bf0ea1e38662 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Thu, 12 Nov 2020 00:32:25 -0500 Subject: [PATCH 42/52] pause item syms --- .../code_138CC0/pause_badges_cleanup.s | 4 +- .../code_138CC0/pause_badges_draw_contents.s | 48 +++++----- .../code_138CC0/pause_badges_handle_input.s | 36 ++++---- .../code_138CC0/pause_badges_init.s | 16 ++-- .../code_138CC0/pause_badges_load_badges.s | 4 +- .../code_13CAF0/pause_items_draw_contents.s | 72 +++++++-------- .../code_13CAF0/pause_items_get_pos_y.s | 4 +- .../code_13CAF0/pause_items_get_row.s | 4 +- .../code_13CAF0/pause_items_handle_input.s | 92 +++++++++---------- .../code_13CAF0/pause_items_init.s | 8 +- .../code_13CAF0/pause_items_is_visible.s | 4 +- .../code_13CAF0/pause_items_load_items.s | 60 ++++++------ .../code_13CAF0/pause_items_scroll_offset_y.s | 4 +- .../code_13CAF0/pause_items_update.s | 40 ++++---- .../code_13E120/pause_partners_cleanup.s | 8 +- include/variables.h | 16 +++- undefined_syms.txt | 14 ++- 17 files changed, 230 insertions(+), 204 deletions(-) diff --git a/asm/nonmatchings/code_138CC0/pause_badges_cleanup.s b/asm/nonmatchings/code_138CC0/pause_badges_cleanup.s index 822fa55d64..2bae2f6b40 100644 --- a/asm/nonmatchings/code_138CC0/pause_badges_cleanup.s +++ b/asm/nonmatchings/code_138CC0/pause_badges_cleanup.s @@ -6,8 +6,8 @@ glabel pause_badges_cleanup /* 13CA9C 8024975C AFB10014 */ sw $s1, 0x14($sp) /* 13CAA0 80249760 0000882D */ daddu $s1, $zero, $zero /* 13CAA4 80249764 AFB00010 */ sw $s0, 0x10($sp) -/* 13CAA8 80249768 3C108027 */ lui $s0, 0x8027 -/* 13CAAC 8024976C 261003A8 */ addiu $s0, $s0, 0x3a8 +/* 13CAA8 80249768 3C108027 */ lui $s0, %hi(D_802703A8) +/* 13CAAC 8024976C 261003A8 */ addiu $s0, $s0, %lo(D_802703A8) /* 13CAB0 80249770 AFBF0018 */ sw $ra, 0x18($sp) .L80249774: /* 13CAB4 80249774 8E040000 */ lw $a0, ($s0) diff --git a/asm/nonmatchings/code_138CC0/pause_badges_draw_contents.s b/asm/nonmatchings/code_138CC0/pause_badges_draw_contents.s index 3dd1a70d41..ddfc870904 100644 --- a/asm/nonmatchings/code_138CC0/pause_badges_draw_contents.s +++ b/asm/nonmatchings/code_138CC0/pause_badges_draw_contents.s @@ -80,8 +80,8 @@ glabel pause_badges_draw_contents /* 13A96C 8024762C AFAA0060 */ sw $t2, 0x60($sp) /* 13A970 80247630 0C03D4B8 */ jal draw_box /* 13A974 80247634 AFAB005C */ sw $t3, 0x5c($sp) -/* 13A978 80247638 3C108027 */ lui $s0, 0x8027 -/* 13A97C 8024763C 261003A8 */ addiu $s0, $s0, 0x3a8 +/* 13A978 80247638 3C108027 */ lui $s0, %hi(D_802703A8) +/* 13A97C 8024763C 261003A8 */ addiu $s0, $s0, %lo(D_802703A8) /* 13A980 80247640 8FAA00C4 */ lw $t2, 0xc4($sp) /* 13A984 80247644 8E040050 */ lw $a0, 0x50($s0) /* 13A988 80247648 8FAB00C8 */ lw $t3, 0xc8($sp) @@ -253,8 +253,8 @@ glabel pause_badges_draw_contents /* 13ABFC 802478BC 24020002 */ addiu $v0, $zero, 2 /* 13AC00 802478C0 14620029 */ bne $v1, $v0, .L80247968 /* 13AC04 802478C4 24020001 */ addiu $v0, $zero, 1 -/* 13AC08 802478C8 3C038027 */ lui $v1, 0x8027 -/* 13AC0C 802478CC 8C630398 */ lw $v1, 0x398($v1) +/* 13AC08 802478C8 3C038027 */ lui $v1, %hi(gBadgeMenuLevel) +/* 13AC0C 802478CC 8C630398 */ lw $v1, %lo(gBadgeMenuLevel)($v1) /* 13AC10 802478D0 14620025 */ bne $v1, $v0, .L80247968 /* 13AC14 802478D4 00000000 */ nop /* 13AC18 802478D8 8FA40050 */ lw $a0, 0x50($sp) @@ -486,8 +486,8 @@ glabel pause_badges_draw_contents /* 13AF70 80247C30 3C052000 */ lui $a1, 0x2000 /* 13AF74 80247C34 8FAA0058 */ lw $t2, 0x58($sp) /* 13AF78 80247C38 000A1080 */ sll $v0, $t2, 2 -/* 13AF7C 80247C3C 3C0B8027 */ lui $t3, 0x8027 -/* 13AF80 80247C40 256B03A8 */ addiu $t3, $t3, 0x3a8 +/* 13AF7C 80247C3C 3C0B8027 */ lui $t3, %hi(D_802703A8) +/* 13AF80 80247C40 256B03A8 */ addiu $t3, $t3, %lo(D_802703A8) /* 13AF84 80247C44 004B1021 */ addu $v0, $v0, $t3 /* 13AF88 80247C48 8C510000 */ lw $s1, ($v0) /* 13AF8C 80247C4C 0C05128B */ jal clear_icon_flags @@ -941,8 +941,8 @@ glabel pause_badges_draw_contents /* 13B620 802482E0 24020002 */ addiu $v0, $zero, 2 /* 13B624 802482E4 1462002A */ bne $v1, $v0, .L80248390 /* 13B628 802482E8 24020001 */ addiu $v0, $zero, 1 -/* 13B62C 802482EC 3C038027 */ lui $v1, 0x8027 -/* 13B630 802482F0 8C630398 */ lw $v1, 0x398($v1) +/* 13B62C 802482EC 3C038027 */ lui $v1, %hi(gBadgeMenuLevel) +/* 13B630 802482F0 8C630398 */ lw $v1, %lo(gBadgeMenuLevel)($v1) /* 13B634 802482F4 14620026 */ bne $v1, $v0, .L80248390 /* 13B638 802482F8 00000000 */ nop /* 13B63C 802482FC 3C118027 */ lui $s1, %hi(gBadgeMenuCurrentPage) @@ -950,8 +950,8 @@ glabel pause_badges_draw_contents /* 13B644 80248304 8E220000 */ lw $v0, ($s1) /* 13B648 80248308 1840000E */ blez $v0, .L80248344 /* 13B64C 8024830C 24420001 */ addiu $v0, $v0, 1 -/* 13B650 80248310 3C108027 */ lui $s0, 0x8027 -/* 13B654 80248314 261003A8 */ addiu $s0, $s0, 0x3a8 +/* 13B650 80248310 3C108027 */ lui $s0, %hi(D_802703A8) +/* 13B654 80248314 261003A8 */ addiu $s0, $s0, %lo(D_802703A8) /* 13B658 80248318 8FAB00C4 */ lw $t3, 0xc4($sp) /* 13B65C 8024831C 8E040044 */ lw $a0, 0x44($s0) /* 13B660 80248320 8FAA00C8 */ lw $t2, 0xc8($sp) @@ -972,8 +972,8 @@ glabel pause_badges_draw_contents /* 13B698 80248358 90420288 */ lbu $v0, %lo(gBadgeMenuPages)($v0) /* 13B69C 8024835C 1040000C */ beqz $v0, .L80248390 /* 13B6A0 80248360 00000000 */ nop -/* 13B6A4 80248364 3C108027 */ lui $s0, 0x8027 -/* 13B6A8 80248368 261003A8 */ addiu $s0, $s0, 0x3a8 +/* 13B6A4 80248364 3C108027 */ lui $s0, %hi(D_802703A8) +/* 13B6A8 80248368 261003A8 */ addiu $s0, $s0, %lo(D_802703A8) /* 13B6AC 8024836C 8FAB00C4 */ lw $t3, 0xc4($sp) /* 13B6B0 80248370 8E040048 */ lw $a0, 0x48($s0) /* 13B6B4 80248374 8FAA00C8 */ lw $t2, 0xc8($sp) @@ -984,8 +984,8 @@ glabel pause_badges_draw_contents /* 13B6C8 80248388 0C0511F8 */ jal draw_icon_2 /* 13B6CC 8024838C 00000000 */ nop .L80248390: -/* 13B6D0 80248390 3C108027 */ lui $s0, 0x8027 -/* 13B6D4 80248394 261003A8 */ addiu $s0, $s0, 0x3a8 +/* 13B6D0 80248390 3C108027 */ lui $s0, %hi(D_802703A8) +/* 13B6D4 80248394 261003A8 */ addiu $s0, $s0, %lo(D_802703A8) /* 13B6D8 80248398 8FAB00C4 */ lw $t3, 0xc4($sp) /* 13B6DC 8024839C 8E040040 */ lw $a0, 0x40($s0) /* 13B6E0 802483A0 8FAA00C8 */ lw $t2, 0xc8($sp) @@ -1322,8 +1322,8 @@ glabel pause_badges_draw_contents /* 13BBE8 802488A8 3C02E700 */ lui $v0, 0xe700 /* 13BBEC 802488AC AC820000 */ sw $v0, ($a0) /* 13BBF0 802488B0 AC800004 */ sw $zero, 4($a0) -/* 13BBF4 802488B4 3C038027 */ lui $v1, 0x8027 -/* 13BBF8 802488B8 8C63039C */ lw $v1, 0x39c($v1) +/* 13BBF4 802488B4 3C038027 */ lui $v1, %hi(gBadgeMenuCurrentTab) +/* 13BBF8 802488B8 8C63039C */ lw $v1, %lo(gBadgeMenuCurrentTab)($v1) /* 13BBFC 802488BC 8FA600C4 */ lw $a2, 0xc4($sp) /* 13BC00 802488C0 50600001 */ beql $v1, $zero, .L802488C8 /* 13BC04 802488C4 24C60009 */ addiu $a2, $a2, 9 @@ -1364,8 +1364,8 @@ glabel pause_badges_draw_contents /* 13BC84 80248944 AFA0004C */ sw $zero, 0x4c($sp) /* 13BC88 80248948 0C093BA0 */ jal pause_get_menu_string /* 13BC8C 8024894C 24040047 */ addiu $a0, $zero, 0x47 -/* 13BC90 80248950 3C118027 */ lui $s1, 0x8027 -/* 13BC94 80248954 2631039C */ addiu $s1, $s1, 0x39c +/* 13BC90 80248950 3C118027 */ lui $s1, %hi(gBadgeMenuCurrentTab) +/* 13BC94 80248954 2631039C */ addiu $s1, $s1, %lo(gBadgeMenuCurrentTab) /* 13BC98 80248958 8FAB00C4 */ lw $t3, 0xc4($sp) /* 13BC9C 8024895C 8E230000 */ lw $v1, ($s1) /* 13BCA0 80248960 14600002 */ bnez $v1, .L8024896C @@ -1423,8 +1423,8 @@ glabel pause_badges_draw_contents /* 13BD5C 80248A1C AFA0004C */ sw $zero, 0x4c($sp) /* 13BD60 80248A20 0C093BA0 */ jal pause_get_menu_string /* 13BD64 80248A24 24040048 */ addiu $a0, $zero, 0x48 -/* 13BD68 80248A28 3C118027 */ lui $s1, 0x8027 -/* 13BD6C 80248A2C 2631039C */ addiu $s1, $s1, 0x39c +/* 13BD68 80248A28 3C118027 */ lui $s1, %hi(gBadgeMenuCurrentTab) +/* 13BD6C 80248A2C 2631039C */ addiu $s1, $s1, %lo(gBadgeMenuCurrentTab) /* 13BD70 80248A30 24100001 */ addiu $s0, $zero, 1 /* 13BD74 80248A34 8FAA00C4 */ lw $t2, 0xc4($sp) /* 13BD78 80248A38 8E230000 */ lw $v1, ($s1) @@ -1465,8 +1465,8 @@ glabel pause_badges_draw_contents /* 13BDF4 80248AB4 24020002 */ addiu $v0, $zero, 2 /* 13BDF8 80248AB8 14620050 */ bne $v1, $v0, .L80248BFC /* 13BDFC 80248ABC 00000000 */ nop -/* 13BE00 80248AC0 3C028027 */ lui $v0, 0x8027 -/* 13BE04 80248AC4 8C420398 */ lw $v0, 0x398($v0) +/* 13BE00 80248AC0 3C028027 */ lui $v0, %hi(gBadgeMenuLevel) +/* 13BE04 80248AC4 8C420398 */ lw $v0, %lo(gBadgeMenuLevel)($v0) /* 13BE08 80248AC8 14400009 */ bnez $v0, .L80248AF0 /* 13BE0C 80248ACC 24040020 */ addiu $a0, $zero, 0x20 /* 13BE10 80248AD0 8E260000 */ lw $a2, ($s1) @@ -1550,8 +1550,8 @@ glabel pause_badges_draw_contents /* 13BF34 80248BF4 0C090B41 */ jal func_80242D04 /* 13BF38 80248BF8 00000000 */ nop .L80248BFC: -/* 13BF3C 80248BFC 3C108027 */ lui $s0, 0x8027 -/* 13BF40 80248C00 261003A0 */ addiu $s0, $s0, 0x3a0 +/* 13BF3C 80248BFC 3C108027 */ lui $s0, %hi(gBadgeMenuBShowNotEnoughBP) +/* 13BF40 80248C00 261003A0 */ addiu $s0, $s0, %lo(gBadgeMenuBShowNotEnoughBP) /* 13BF44 80248C04 8E020000 */ lw $v0, ($s0) /* 13BF48 80248C08 10400054 */ beqz $v0, .L80248D5C /* 13BF4C 80248C0C 00000000 */ nop diff --git a/asm/nonmatchings/code_138CC0/pause_badges_handle_input.s b/asm/nonmatchings/code_138CC0/pause_badges_handle_input.s index 79b3ac964b..41f546e5e5 100644 --- a/asm/nonmatchings/code_138CC0/pause_badges_handle_input.s +++ b/asm/nonmatchings/code_138CC0/pause_badges_handle_input.s @@ -35,16 +35,16 @@ glabel pause_badges_handle_input /* 13C458 80249118 30628000 */ andi $v0, $v1, 0x8000 /* 13C45C 8024911C 1040003F */ beqz $v0, .L8024921C /* 13C460 80249120 00000000 */ nop -/* 13C464 80249124 3C128027 */ lui $s2, 0x8027 -/* 13C468 80249128 265203A0 */ addiu $s2, $s2, 0x3a0 +/* 13C464 80249124 3C128027 */ lui $s2, %hi(gBadgeMenuBShowNotEnoughBP) +/* 13C468 80249128 265203A0 */ addiu $s2, $s2, %lo(gBadgeMenuBShowNotEnoughBP) /* 13C46C 8024912C 8E420000 */ lw $v0, ($s2) /* 13C470 80249130 10400003 */ beqz $v0, .L80249140 /* 13C474 80249134 00000000 */ nop /* 13C478 80249138 08092581 */ j .L80249604 /* 13C47C 8024913C AE400000 */ sw $zero, ($s2) .L80249140: -/* 13C480 80249140 3C048027 */ lui $a0, 0x8027 -/* 13C484 80249144 24840398 */ addiu $a0, $a0, 0x398 +/* 13C480 80249140 3C048027 */ lui $a0, %hi(gBadgeMenuLevel) +/* 13C484 80249144 24840398 */ addiu $a0, $a0, %lo(gBadgeMenuLevel) /* 13C488 80249148 8C820000 */ lw $v0, ($a0) /* 13C48C 8024914C 14400010 */ bnez $v0, .L80249190 /* 13C490 80249150 00091040 */ sll $v0, $t1, 1 @@ -112,19 +112,19 @@ glabel pause_badges_handle_input /* 13C56C 8024922C 10400003 */ beqz $v0, .L8024923C /* 13C570 80249230 00000000 */ nop .L80249234: -/* 13C574 80249234 3C018027 */ lui $at, 0x8027 -/* 13C578 80249238 AC2003A0 */ sw $zero, 0x3a0($at) +/* 13C574 80249234 3C018027 */ lui $at, %hi(gBadgeMenuBShowNotEnoughBP) +/* 13C578 80249238 AC2003A0 */ sw $zero, %lo(gBadgeMenuBShowNotEnoughBP)($at) .L8024923C: /* 13C57C 8024923C 3C028027 */ lui $v0, %hi(gBadgeMenuNumItems) /* 13C580 80249240 84420384 */ lh $v0, %lo(gBadgeMenuNumItems)($v0) /* 13C584 80249244 104000B1 */ beqz $v0, .L8024950C /* 13C588 80249248 00000000 */ nop -/* 13C58C 8024924C 3C028027 */ lui $v0, 0x8027 -/* 13C590 80249250 8C420398 */ lw $v0, 0x398($v0) +/* 13C58C 8024924C 3C028027 */ lui $v0, %hi(gBadgeMenuLevel) +/* 13C590 80249250 8C420398 */ lw $v0, %lo(gBadgeMenuLevel)($v0) /* 13C594 80249254 14400015 */ bnez $v0, .L802492AC /* 13C598 80249258 3C020001 */ lui $v0, 1 -/* 13C59C 8024925C 3C108027 */ lui $s0, 0x8027 -/* 13C5A0 80249260 2610039C */ addiu $s0, $s0, 0x39c +/* 13C59C 8024925C 3C108027 */ lui $s0, %hi(gBadgeMenuCurrentTab) +/* 13C5A0 80249260 2610039C */ addiu $s0, $s0, %lo(gBadgeMenuCurrentTab) /* 13C5A4 80249264 3C028027 */ lui $v0, %hi(gPauseMenuHeldButtons) /* 13C5A8 80249268 8C4200C0 */ lw $v0, %lo(gPauseMenuHeldButtons)($v0) /* 13C5AC 8024926C 3C030003 */ lui $v1, 3 @@ -309,8 +309,8 @@ glabel pause_badges_handle_input /* 13C844 80249504 3C018027 */ lui $at, %hi(gBadgeMenuSelectedItemID) /* 13C848 80249508 AC220380 */ sw $v0, %lo(gBadgeMenuSelectedItemID)($at) .L8024950C: -/* 13C84C 8024950C 3C038027 */ lui $v1, 0x8027 -/* 13C850 80249510 8C630398 */ lw $v1, 0x398($v1) +/* 13C84C 8024950C 3C038027 */ lui $v1, %hi(gBadgeMenuLevel) +/* 13C850 80249510 8C630398 */ lw $v1, %lo(gBadgeMenuLevel)($v1) /* 13C854 80249514 24020001 */ addiu $v0, $zero, 1 /* 13C858 80249518 14620014 */ bne $v1, $v0, .L8024956C /* 13C85C 8024951C 00000000 */ nop @@ -335,8 +335,8 @@ glabel pause_badges_handle_input /* 13C8A4 80249564 08092564 */ j .L80249590 /* 13C8A8 80249568 00000000 */ nop .L8024956C: -/* 13C8AC 8024956C 3C028027 */ lui $v0, 0x8027 -/* 13C8B0 80249570 8C42039C */ lw $v0, 0x39c($v0) +/* 13C8AC 8024956C 3C028027 */ lui $v0, %hi(gBadgeMenuCurrentTab) +/* 13C8B0 80249570 8C42039C */ lw $v0, %lo(gBadgeMenuCurrentTab)($v0) /* 13C8B4 80249574 14400002 */ bnez $v0, .L80249580 /* 13C8B8 80249578 2404004D */ addiu $a0, $zero, 0x4d /* 13C8BC 8024957C 2404004C */ addiu $a0, $zero, 0x4c @@ -354,8 +354,8 @@ glabel pause_badges_handle_input /* 13C8E0 802495A0 30424000 */ andi $v0, $v0, 0x4000 /* 13C8E4 802495A4 10400017 */ beqz $v0, .L80249604 /* 13C8E8 802495A8 00000000 */ nop -/* 13C8EC 802495AC 3C108027 */ lui $s0, 0x8027 -/* 13C8F0 802495B0 26100398 */ addiu $s0, $s0, 0x398 +/* 13C8EC 802495AC 3C108027 */ lui $s0, %hi(gBadgeMenuLevel) +/* 13C8F0 802495B0 26100398 */ addiu $s0, $s0, %lo(gBadgeMenuLevel) /* 13C8F4 802495B4 8E020000 */ lw $v0, ($s0) /* 13C8F8 802495B8 14400007 */ bnez $v0, .L802495D8 /* 13C8FC 802495BC 00000000 */ nop @@ -370,8 +370,8 @@ glabel pause_badges_handle_input /* 13C91C 802495DC 240400CA */ addiu $a0, $zero, 0xca /* 13C920 802495E0 0C039E1B */ jal enforce_hpfp_limits /* 13C924 802495E4 AE000000 */ sw $zero, ($s0) -/* 13C928 802495E8 3C038027 */ lui $v1, 0x8027 -/* 13C92C 802495EC 8C63039C */ lw $v1, 0x39c($v1) +/* 13C928 802495E8 3C038027 */ lui $v1, %hi(gBadgeMenuCurrentTab) +/* 13C92C 802495EC 8C63039C */ lw $v1, %lo(gBadgeMenuCurrentTab)($v1) /* 13C930 802495F0 24020001 */ addiu $v0, $zero, 1 /* 13C934 802495F4 14620003 */ bne $v1, $v0, .L80249604 /* 13C938 802495F8 00000000 */ nop diff --git a/asm/nonmatchings/code_138CC0/pause_badges_init.s b/asm/nonmatchings/code_138CC0/pause_badges_init.s index 6fab790ae7..c66a25fc25 100644 --- a/asm/nonmatchings/code_138CC0/pause_badges_init.s +++ b/asm/nonmatchings/code_138CC0/pause_badges_init.s @@ -10,12 +10,12 @@ glabel pause_badges_init /* 13C314 80248FD4 AFB10014 */ sw $s1, 0x14($sp) /* 13C318 80248FD8 0C091C15 */ jal pause_badges_count_all /* 13C31C 80248FDC AFB00010 */ sw $s0, 0x10($sp) -/* 13C320 80248FE0 3C018027 */ lui $at, 0x8027 -/* 13C324 80248FE4 AC200398 */ sw $zero, 0x398($at) -/* 13C328 80248FE8 3C018027 */ lui $at, 0x8027 -/* 13C32C 80248FEC AC20039C */ sw $zero, 0x39c($at) -/* 13C330 80248FF0 3C018027 */ lui $at, 0x8027 -/* 13C334 80248FF4 AC2003A0 */ sw $zero, 0x3a0($at) +/* 13C320 80248FE0 3C018027 */ lui $at, %hi(gBadgeMenuLevel) +/* 13C324 80248FE4 AC200398 */ sw $zero, %lo(gBadgeMenuLevel)($at) +/* 13C328 80248FE8 3C018027 */ lui $at, %hi(gBadgeMenuCurrentTab) +/* 13C32C 80248FEC AC20039C */ sw $zero, %lo(gBadgeMenuCurrentTab)($at) +/* 13C330 80248FF0 3C018027 */ lui $at, %hi(gBadgeMenuBShowNotEnoughBP) +/* 13C334 80248FF4 AC2003A0 */ sw $zero, %lo(gBadgeMenuBShowNotEnoughBP)($at) /* 13C338 80248FF8 0C092363 */ jal pause_badges_load_badges /* 13C33C 80248FFC 0000202D */ daddu $a0, $zero, $zero /* 13C340 80249000 3C038027 */ lui $v1, %hi(gBadgeMenuItemIDs) @@ -26,8 +26,8 @@ glabel pause_badges_init /* 13C354 80249014 08092423 */ j .L8024908C /* 13C358 80249018 A2600000 */ sb $zero, ($s3) .L8024901C: -/* 13C35C 8024901C 3C128027 */ lui $s2, 0x8027 -/* 13C360 80249020 265203A8 */ addiu $s2, $s2, 0x3a8 +/* 13C35C 8024901C 3C128027 */ lui $s2, %hi(D_802703A8) +/* 13C360 80249020 265203A8 */ addiu $s2, $s2, %lo(D_802703A8) /* 13C364 80249024 3C118025 */ lui $s1, 0x8025 /* 13C368 80249028 2631F4D0 */ addiu $s1, $s1, -0xb30 .L8024902C: diff --git a/asm/nonmatchings/code_138CC0/pause_badges_load_badges.s b/asm/nonmatchings/code_138CC0/pause_badges_load_badges.s index 9100708353..fd6e75227c 100644 --- a/asm/nonmatchings/code_138CC0/pause_badges_load_badges.s +++ b/asm/nonmatchings/code_138CC0/pause_badges_load_badges.s @@ -91,8 +91,8 @@ glabel pause_badges_load_badges /* 13C200 80248EC0 AC200380 */ sw $zero, %lo(gBadgeMenuSelectedItemID)($at) /* 13C204 80248EC4 3C018027 */ lui $at, 0x8027 /* 13C208 80248EC8 AC20037C */ sw $zero, 0x37c($at) -/* 13C20C 80248ECC 3C018027 */ lui $at, 0x8027 -/* 13C210 80248ED0 AC200394 */ sw $zero, 0x394($at) +/* 13C20C 80248ECC 3C018027 */ lui $at, %hi(D_80270394) +/* 13C210 80248ED0 AC200394 */ sw $zero, %lo(D_80270394)($at) /* 13C214 80248ED4 3C018027 */ lui $at, %hi(gBadgeMenuCurrentPage) /* 13C218 80248ED8 AC200280 */ sw $zero, %lo(gBadgeMenuCurrentPage)($at) .L80248EDC: diff --git a/asm/nonmatchings/code_13CAF0/pause_items_draw_contents.s b/asm/nonmatchings/code_13CAF0/pause_items_draw_contents.s index a5be0a7576..a499e1f3e6 100644 --- a/asm/nonmatchings/code_13CAF0/pause_items_draw_contents.s +++ b/asm/nonmatchings/code_13CAF0/pause_items_draw_contents.s @@ -3,8 +3,8 @@ glabel pause_items_draw_contents /* 13CCB0 80249970 27BDFF58 */ addiu $sp, $sp, -0xa8 -/* 13CCB4 80249974 3C038027 */ lui $v1, 0x8027 -/* 13CCB8 80249978 8C6304C8 */ lw $v1, 0x4c8($v1) +/* 13CCB4 80249974 3C038027 */ lui $v1, %hi(gItemMenuCurrentPage) +/* 13CCB8 80249978 8C6304C8 */ lw $v1, %lo(gItemMenuCurrentPage)($v1) /* 13CCBC 8024997C 240A0001 */ addiu $t2, $zero, 1 /* 13CCC0 80249980 AFA500AC */ sw $a1, 0xac($sp) /* 13CCC4 80249984 AFAA0060 */ sw $t2, 0x60($sp) @@ -48,8 +48,8 @@ glabel pause_items_draw_contents /* 13CD5C 80249A1C AFA0003C */ sw $zero, 0x3c($sp) /* 13CD60 80249A20 AFAA0018 */ sw $t2, 0x18($sp) /* 13CD64 80249A24 AFA00040 */ sw $zero, 0x40($sp) -/* 13CD68 80249A28 3C038027 */ lui $v1, 0x8027 -/* 13CD6C 80249A2C 8C6305C0 */ lw $v1, 0x5c0($v1) +/* 13CD68 80249A28 3C038027 */ lui $v1, %hi(gItemMenuSelectedIndex) +/* 13CD6C 80249A2C 8C6305C0 */ lw $v1, %lo(gItemMenuSelectedIndex)($v1) /* 13CD70 80249A30 15000002 */ bnez $t0, .L80249A3C /* 13CD74 80249A34 0068001A */ div $zero, $v1, $t0 /* 13CD78 80249A38 0007000D */ break 7 @@ -74,8 +74,8 @@ glabel pause_items_draw_contents /* 13CDBC 80249A7C AFAA005C */ sw $t2, 0x5c($sp) /* 13CDC0 80249A80 0C03D4B8 */ jal draw_box /* 13CDC4 80249A84 AFAB0058 */ sw $t3, 0x58($sp) -/* 13CDC8 80249A88 3C108027 */ lui $s0, %hi(gPauseItemPages) -/* 13CDCC 80249A8C 261004D0 */ addiu $s0, $s0, %lo(gPauseItemPages) +/* 13CDC8 80249A88 3C108027 */ lui $s0, %hi(gItemMenuPages) +/* 13CDCC 80249A8C 261004D0 */ addiu $s0, $s0, %lo(gItemMenuPages) /* 13CDD0 80249A90 8FAB00B0 */ lw $t3, 0xb0($sp) /* 13CDD4 80249A94 8FAA00AC */ lw $t2, 0xac($sp) /* 13CDD8 80249A98 25660007 */ addiu $a2, $t3, 7 @@ -169,8 +169,8 @@ glabel pause_items_draw_contents /* 13CF28 80249BE8 ACA20004 */ sw $v0, 4($a1) .L80249BEC: /* 13CF2C 80249BEC 0000F02D */ daddu $fp, $zero, $zero -/* 13CF30 80249BF0 3C0B8027 */ lui $t3, %hi(gPauseItemPages) -/* 13CF34 80249BF4 256B04D0 */ addiu $t3, $t3, %lo(gPauseItemPages) +/* 13CF30 80249BF0 3C0B8027 */ lui $t3, %hi(gItemMenuPages) +/* 13CF34 80249BF4 256B04D0 */ addiu $t3, $t3, %lo(gItemMenuPages) /* 13CF38 80249BF8 AFAB007C */ sw $t3, 0x7c($sp) .L80249BFC: /* 13CF3C 80249BFC 8FAA007C */ lw $t2, 0x7c($sp) @@ -192,8 +192,8 @@ glabel pause_items_draw_contents /* 13CF7C 80249C3C AFAB0078 */ sw $t3, 0x78($sp) .L80249C40: /* 13CF80 80249C40 8FAA007C */ lw $t2, 0x7c($sp) -/* 13CF84 80249C44 3C0B8027 */ lui $t3, 0x8027 -/* 13CF88 80249C48 256B0400 */ addiu $t3, $t3, 0x400 +/* 13CF84 80249C44 3C0B8027 */ lui $t3, %hi(gItemMenuItemIDs) +/* 13CF88 80249C48 256B0400 */ addiu $t3, $t3, %lo(gItemMenuItemIDs) /* 13CF8C 80249C4C 8D420004 */ lw $v0, 4($t2) /* 13CF90 80249C50 24037FFF */ addiu $v1, $zero, 0x7fff /* 13CF94 80249C54 00521021 */ addu $v0, $v0, $s2 @@ -219,8 +219,8 @@ glabel pause_items_draw_contents /* 13CFE4 80249CA4 24020003 */ addiu $v0, $zero, 3 /* 13CFE8 80249CA8 14620012 */ bne $v1, $v0, .L80249CF4 /* 13CFEC 80249CAC 0000A02D */ daddu $s4, $zero, $zero -/* 13CFF0 80249CB0 3C028027 */ lui $v0, 0x8027 -/* 13CFF4 80249CB4 8C4205E0 */ lw $v0, 0x5e0($v0) +/* 13CFF0 80249CB0 3C028027 */ lui $v0, %hi(gItemMenuLevel) +/* 13CFF4 80249CB4 8C4205E0 */ lw $v0, %lo(gItemMenuLevel)($v0) /* 13CFF8 80249CB8 240A0001 */ addiu $t2, $zero, 1 /* 13CFFC 80249CBC 144A000D */ bne $v0, $t2, .L80249CF4 /* 13D000 80249CC0 03C0202D */ daddu $a0, $fp, $zero @@ -515,12 +515,12 @@ glabel pause_items_draw_contents /* 13D43C 8024A0FC 24020003 */ addiu $v0, $zero, 3 /* 13D440 8024A100 1462002A */ bne $v1, $v0, .L8024A1AC /* 13D444 8024A104 24020001 */ addiu $v0, $zero, 1 -/* 13D448 8024A108 3C038027 */ lui $v1, 0x8027 -/* 13D44C 8024A10C 8C6305E0 */ lw $v1, 0x5e0($v1) +/* 13D448 8024A108 3C038027 */ lui $v1, %hi(gItemMenuLevel) +/* 13D44C 8024A10C 8C6305E0 */ lw $v1, %lo(gItemMenuLevel)($v1) /* 13D450 8024A110 14620026 */ bne $v1, $v0, .L8024A1AC /* 13D454 8024A114 00000000 */ nop -/* 13D458 8024A118 3C118027 */ lui $s1, 0x8027 -/* 13D45C 8024A11C 263104C8 */ addiu $s1, $s1, 0x4c8 +/* 13D458 8024A118 3C118027 */ lui $s1, %hi(gItemMenuCurrentPage) +/* 13D45C 8024A11C 263104C8 */ addiu $s1, $s1, %lo(gItemMenuCurrentPage) /* 13D460 8024A120 8E220000 */ lw $v0, ($s1) /* 13D464 8024A124 1840000E */ blez $v0, .L8024A160 /* 13D468 8024A128 24420001 */ addiu $v0, $v0, 1 @@ -541,9 +541,9 @@ glabel pause_items_draw_contents /* 13D4A0 8024A160 00021840 */ sll $v1, $v0, 1 /* 13D4A4 8024A164 00621821 */ addu $v1, $v1, $v0 /* 13D4A8 8024A168 00031880 */ sll $v1, $v1, 2 -/* 13D4AC 8024A16C 3C028027 */ lui $v0, %hi(gPauseItemPages) +/* 13D4AC 8024A16C 3C028027 */ lui $v0, %hi(gItemMenuPages) /* 13D4B0 8024A170 00431021 */ addu $v0, $v0, $v1 -/* 13D4B4 8024A174 904204D0 */ lbu $v0, %lo(gPauseItemPages)($v0) +/* 13D4B4 8024A174 904204D0 */ lbu $v0, %lo(gItemMenuPages)($v0) /* 13D4B8 8024A178 1040000C */ beqz $v0, .L8024A1AC /* 13D4BC 8024A17C 00000000 */ nop /* 13D4C0 8024A180 3C108027 */ lui $s0, 0x8027 @@ -558,8 +558,8 @@ glabel pause_items_draw_contents /* 13D4E4 8024A1A4 0C0511F8 */ jal draw_icon_2 /* 13D4E8 8024A1A8 00000000 */ nop .L8024A1AC: -/* 13D4EC 8024A1AC 3C038027 */ lui $v1, 0x8027 -/* 13D4F0 8024A1B0 8C6305E4 */ lw $v1, 0x5e4($v1) +/* 13D4EC 8024A1AC 3C038027 */ lui $v1, %hi(gItemMenuCurrentTab) +/* 13D4F0 8024A1B0 8C6305E4 */ lw $v1, %lo(gItemMenuCurrentTab)($v1) /* 13D4F4 8024A1B4 8FA600AC */ lw $a2, 0xac($sp) /* 13D4F8 8024A1B8 50600001 */ beql $v1, $zero, .L8024A1C0 /* 13D4FC 8024A1BC 24C60009 */ addiu $a2, $a2, 9 @@ -600,8 +600,8 @@ glabel pause_items_draw_contents /* 13D57C 8024A23C AFA0004C */ sw $zero, 0x4c($sp) /* 13D580 8024A240 0C093BA0 */ jal pause_get_menu_string /* 13D584 8024A244 2404004F */ addiu $a0, $zero, 0x4f -/* 13D588 8024A248 3C118027 */ lui $s1, 0x8027 -/* 13D58C 8024A24C 263105E4 */ addiu $s1, $s1, 0x5e4 +/* 13D588 8024A248 3C118027 */ lui $s1, %hi(gItemMenuCurrentTab) +/* 13D58C 8024A24C 263105E4 */ addiu $s1, $s1, %lo(gItemMenuCurrentTab) /* 13D590 8024A250 8FAA00AC */ lw $t2, 0xac($sp) /* 13D594 8024A254 8E230000 */ lw $v1, ($s1) /* 13D598 8024A258 14600002 */ bnez $v1, .L8024A264 @@ -659,8 +659,8 @@ glabel pause_items_draw_contents /* 13D654 8024A314 AFA0004C */ sw $zero, 0x4c($sp) /* 13D658 8024A318 0C093BA0 */ jal pause_get_menu_string /* 13D65C 8024A31C 24040050 */ addiu $a0, $zero, 0x50 -/* 13D660 8024A320 3C108027 */ lui $s0, 0x8027 -/* 13D664 8024A324 261005E4 */ addiu $s0, $s0, 0x5e4 +/* 13D660 8024A320 3C108027 */ lui $s0, %hi(gItemMenuCurrentTab) +/* 13D664 8024A324 261005E4 */ addiu $s0, $s0, %lo(gItemMenuCurrentTab) /* 13D668 8024A328 24080001 */ addiu $t0, $zero, 1 /* 13D66C 8024A32C 8FAB00AC */ lw $t3, 0xac($sp) /* 13D670 8024A330 8E030000 */ lw $v1, ($s0) @@ -683,8 +683,8 @@ glabel pause_items_draw_contents /* 13D6AC 8024A36C 24020003 */ addiu $v0, $zero, 3 /* 13D6B0 8024A370 1462004E */ bne $v1, $v0, .L8024A4AC /* 13D6B4 8024A374 00000000 */ nop -/* 13D6B8 8024A378 3C028027 */ lui $v0, 0x8027 -/* 13D6BC 8024A37C 8C4205E0 */ lw $v0, 0x5e0($v0) +/* 13D6B8 8024A378 3C028027 */ lui $v0, %hi(gItemMenuLevel) +/* 13D6BC 8024A37C 8C4205E0 */ lw $v0, %lo(gItemMenuLevel)($v0) /* 13D6C0 8024A380 14400008 */ bnez $v0, .L8024A3A4 /* 13D6C4 8024A384 24040021 */ addiu $a0, $zero, 0x21 /* 13D6C8 8024A388 8E060000 */ lw $a2, ($s0) @@ -695,11 +695,11 @@ glabel pause_items_draw_contents /* 13D6DC 8024A39C 08092929 */ j .L8024A4A4 /* 13D6E0 8024A3A0 24C6001A */ addiu $a2, $a2, 0x1a .L8024A3A4: -/* 13D6E4 8024A3A4 3C118027 */ lui $s1, 0x8027 -/* 13D6E8 8024A3A8 263104C8 */ addiu $s1, $s1, 0x4c8 +/* 13D6E4 8024A3A4 3C118027 */ lui $s1, %hi(gItemMenuCurrentPage) +/* 13D6E8 8024A3A8 263104C8 */ addiu $s1, $s1, %lo(gItemMenuCurrentPage) /* 13D6EC 8024A3AC 8E240000 */ lw $a0, ($s1) -/* 13D6F0 8024A3B0 3C128027 */ lui $s2, %hi(gPauseItemPages) -/* 13D6F4 8024A3B4 265204D0 */ addiu $s2, $s2, %lo(gPauseItemPages) +/* 13D6F0 8024A3B0 3C128027 */ lui $s2, %hi(gItemMenuPages) +/* 13D6F4 8024A3B4 265204D0 */ addiu $s2, $s2, %lo(gItemMenuPages) /* 13D6F8 8024A3B8 00041040 */ sll $v0, $a0, 1 /* 13D6FC 8024A3BC 00441021 */ addu $v0, $v0, $a0 /* 13D700 8024A3C0 00021080 */ sll $v0, $v0, 2 @@ -707,8 +707,8 @@ glabel pause_items_draw_contents /* 13D708 8024A3C8 90430001 */ lbu $v1, 1($v0) /* 13D70C 8024A3CC 90420002 */ lbu $v0, 2($v0) /* 13D710 8024A3D0 00620018 */ mult $v1, $v0 -/* 13D714 8024A3D4 3C108027 */ lui $s0, 0x8027 -/* 13D718 8024A3D8 261005C0 */ addiu $s0, $s0, 0x5c0 +/* 13D714 8024A3D4 3C108027 */ lui $s0, %hi(gItemMenuSelectedIndex) +/* 13D718 8024A3D8 261005C0 */ addiu $s0, $s0, %lo(gItemMenuSelectedIndex) /* 13D71C 8024A3DC 8E050000 */ lw $a1, ($s0) /* 13D720 8024A3E0 00005012 */ mflo $t2 /* 13D724 8024A3E4 0C0925F4 */ jal pause_items_get_pos_x @@ -741,10 +741,10 @@ glabel pause_items_draw_contents /* 13D78C 8024A44C 50400001 */ beql $v0, $zero, .L8024A454 /* 13D790 8024A450 24060070 */ addiu $a2, $zero, 0x70 .L8024A454: -/* 13D794 8024A454 3C038027 */ lui $v1, 0x8027 -/* 13D798 8024A458 8C6305D4 */ lw $v1, 0x5d4($v1) -/* 13D79C 8024A45C 3C028027 */ lui $v0, 0x8027 -/* 13D7A0 8024A460 8C4205D8 */ lw $v0, 0x5d8($v0) +/* 13D794 8024A454 3C038027 */ lui $v1, %hi(gItemMenuCurrentScrollPos) +/* 13D798 8024A458 8C6305D4 */ lw $v1, %lo(gItemMenuCurrentScrollPos)($v1) +/* 13D79C 8024A45C 3C028027 */ lui $v0, %hi(gItemMenuTargetScrollPos) +/* 13D7A0 8024A460 8C4205D8 */ lw $v0, %lo(gItemMenuTargetScrollPos)($v0) /* 13D7A4 8024A464 1062000A */ beq $v1, $v0, .L8024A490 /* 13D7A8 8024A468 24040021 */ addiu $a0, $zero, 0x21 /* 13D7AC 8024A46C 26050055 */ addiu $a1, $s0, 0x55 diff --git a/asm/nonmatchings/code_13CAF0/pause_items_get_pos_y.s b/asm/nonmatchings/code_13CAF0/pause_items_get_pos_y.s index 1489add115..6b1c236cd6 100644 --- a/asm/nonmatchings/code_13CAF0/pause_items_get_pos_y.s +++ b/asm/nonmatchings/code_13CAF0/pause_items_get_pos_y.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel pause_items_get_pos_y -/* 13CB68 80249828 3C028027 */ lui $v0, %hi(gPauseItemPages) -/* 13CB6C 8024982C 244204D0 */ addiu $v0, $v0, %lo(gPauseItemPages) +/* 13CB68 80249828 3C028027 */ lui $v0, %hi(gItemMenuPages) +/* 13CB6C 8024982C 244204D0 */ addiu $v0, $v0, %lo(gItemMenuPages) /* 13CB70 80249830 00041840 */ sll $v1, $a0, 1 /* 13CB74 80249834 00641821 */ addu $v1, $v1, $a0 /* 13CB78 80249838 00031880 */ sll $v1, $v1, 2 diff --git a/asm/nonmatchings/code_13CAF0/pause_items_get_row.s b/asm/nonmatchings/code_13CAF0/pause_items_get_row.s index 07afba9d65..6e2446ee0b 100644 --- a/asm/nonmatchings/code_13CAF0/pause_items_get_row.s +++ b/asm/nonmatchings/code_13CAF0/pause_items_get_row.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel pause_items_get_row -/* 13CC20 802498E0 3C038027 */ lui $v1, %hi(gPauseItemPages) -/* 13CC24 802498E4 246304D0 */ addiu $v1, $v1, %lo(gPauseItemPages) +/* 13CC20 802498E0 3C038027 */ lui $v1, %hi(gItemMenuPages) +/* 13CC24 802498E4 246304D0 */ addiu $v1, $v1, %lo(gItemMenuPages) /* 13CC28 802498E8 00041040 */ sll $v0, $a0, 1 /* 13CC2C 802498EC 00441021 */ addu $v0, $v0, $a0 /* 13CC30 802498F0 00021080 */ sll $v0, $v0, 2 diff --git a/asm/nonmatchings/code_13CAF0/pause_items_handle_input.s b/asm/nonmatchings/code_13CAF0/pause_items_handle_input.s index 07b6c0feca..85ab2d3824 100644 --- a/asm/nonmatchings/code_13CAF0/pause_items_handle_input.s +++ b/asm/nonmatchings/code_13CAF0/pause_items_handle_input.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel pause_items_handle_input -/* 13DB18 8024A7D8 3C038027 */ lui $v1, 0x8027 -/* 13DB1C 8024A7DC 8C6304C8 */ lw $v1, 0x4c8($v1) +/* 13DB18 8024A7D8 3C038027 */ lui $v1, %hi(gItemMenuCurrentPage) +/* 13DB1C 8024A7DC 8C6304C8 */ lw $v1, %lo(gItemMenuCurrentPage)($v1) /* 13DB20 8024A7E0 27BDFFE8 */ addiu $sp, $sp, -0x18 /* 13DB24 8024A7E4 AFBF0014 */ sw $ra, 0x14($sp) /* 13DB28 8024A7E8 AFB00010 */ sw $s0, 0x10($sp) @@ -15,8 +15,8 @@ glabel pause_items_handle_input /* 13DB40 8024A800 906304D2 */ lbu $v1, 0x4d2($v1) /* 13DB44 8024A804 3C028027 */ lui $v0, %hi(gPauseMenuPressedButtons) /* 13DB48 8024A808 8C4200C4 */ lw $v0, %lo(gPauseMenuPressedButtons)($v0) -/* 13DB4C 8024A80C 3C098027 */ lui $t1, 0x8027 -/* 13DB50 8024A810 8D2905C0 */ lw $t1, 0x5c0($t1) +/* 13DB4C 8024A80C 3C098027 */ lui $t1, %hi(gItemMenuSelectedIndex) +/* 13DB50 8024A810 8D2905C0 */ lw $t1, %lo(gItemMenuSelectedIndex)($t1) /* 13DB54 8024A814 30428000 */ andi $v0, $v0, 0x8000 /* 13DB58 8024A818 14600002 */ bnez $v1, .L8024A824 /* 13DB5C 8024A81C 0123001A */ div $zero, $t1, $v1 @@ -33,14 +33,14 @@ glabel pause_items_handle_input /* 13DB80 8024A840 00004010 */ mfhi $t0 /* 13DB84 8024A844 10400015 */ beqz $v0, .L8024A89C /* 13DB88 8024A848 00000000 */ nop -/* 13DB8C 8024A84C 3C048027 */ lui $a0, 0x8027 -/* 13DB90 8024A850 248405E0 */ addiu $a0, $a0, 0x5e0 +/* 13DB8C 8024A84C 3C048027 */ lui $a0, %hi(gItemMenuLevel) +/* 13DB90 8024A850 248405E0 */ addiu $a0, $a0, %lo(gItemMenuLevel) /* 13DB94 8024A854 8C820000 */ lw $v0, ($a0) /* 13DB98 8024A858 14400010 */ bnez $v0, .L8024A89C /* 13DB9C 8024A85C 00091040 */ sll $v0, $t1, 1 -/* 13DBA0 8024A860 3C038027 */ lui $v1, 0x8027 +/* 13DBA0 8024A860 3C038027 */ lui $v1, %hi(gItemMenuItemIDs) /* 13DBA4 8024A864 00621821 */ addu $v1, $v1, $v0 -/* 13DBA8 8024A868 84630400 */ lh $v1, 0x400($v1) +/* 13DBA8 8024A868 84630400 */ lh $v1, %lo(gItemMenuItemIDs)($v1) /* 13DBAC 8024A86C 24027FFE */ addiu $v0, $zero, 0x7ffe /* 13DBB0 8024A870 14620005 */ bne $v1, $v0, .L8024A888 /* 13DBB4 8024A874 24020001 */ addiu $v0, $zero, 1 @@ -55,16 +55,16 @@ glabel pause_items_handle_input /* 13DBD4 8024A894 08092B11 */ j .L8024AC44 /* 13DBD8 8024A898 00000000 */ nop .L8024A89C: -/* 13DBDC 8024A89C 3C028027 */ lui $v0, 0x8027 -/* 13DBE0 8024A8A0 844205CC */ lh $v0, 0x5cc($v0) +/* 13DBDC 8024A89C 3C028027 */ lui $v0, %hi(gItemMenuNumItems) +/* 13DBE0 8024A8A0 844205CC */ lh $v0, %lo(gItemMenuNumItems)($v0) /* 13DBE4 8024A8A4 104000B1 */ beqz $v0, .L8024AB6C /* 13DBE8 8024A8A8 00000000 */ nop -/* 13DBEC 8024A8AC 3C028027 */ lui $v0, 0x8027 -/* 13DBF0 8024A8B0 8C4205E0 */ lw $v0, 0x5e0($v0) +/* 13DBEC 8024A8AC 3C028027 */ lui $v0, %hi(gItemMenuLevel) +/* 13DBF0 8024A8B0 8C4205E0 */ lw $v0, %lo(gItemMenuLevel)($v0) /* 13DBF4 8024A8B4 14400015 */ bnez $v0, .L8024A90C /* 13DBF8 8024A8B8 3C020001 */ lui $v0, 1 -/* 13DBFC 8024A8BC 3C108027 */ lui $s0, 0x8027 -/* 13DC00 8024A8C0 261005E4 */ addiu $s0, $s0, 0x5e4 +/* 13DBFC 8024A8BC 3C108027 */ lui $s0, %hi(gItemMenuCurrentTab) +/* 13DC00 8024A8C0 261005E4 */ addiu $s0, $s0, %lo(gItemMenuCurrentTab) /* 13DC04 8024A8C4 3C028027 */ lui $v0, %hi(gPauseMenuHeldButtons) /* 13DC08 8024A8C8 8C4200C0 */ lw $v0, %lo(gPauseMenuHeldButtons)($v0) /* 13DC0C 8024A8CC 3C030003 */ lui $v1, 3 @@ -97,8 +97,8 @@ glabel pause_items_handle_input /* 13DC70 8024A930 04A20001 */ bltzl $a1, .L8024A938 /* 13DC74 8024A934 0000282D */ daddu $a1, $zero, $zero .L8024A938: -/* 13DC78 8024A938 3C048027 */ lui $a0, 0x8027 -/* 13DC7C 8024A93C 248404C8 */ addiu $a0, $a0, 0x4c8 +/* 13DC78 8024A938 3C048027 */ lui $a0, %hi(gItemMenuCurrentPage) +/* 13DC7C 8024A93C 248404C8 */ addiu $a0, $a0, %lo(gItemMenuCurrentPage) /* 13DC80 8024A940 8C830000 */ lw $v1, ($a0) /* 13DC84 8024A944 00031040 */ sll $v0, $v1, 1 /* 13DC88 8024A948 00431021 */ addu $v0, $v0, $v1 @@ -112,8 +112,8 @@ glabel pause_items_handle_input /* 13DCA8 8024A968 08092A6A */ j .L8024A9A8 /* 13DCAC 8024A96C AC820000 */ sw $v0, ($a0) .L8024A970: -/* 13DCB0 8024A970 3C038027 */ lui $v1, 0x8027 -/* 13DCB4 8024A974 246304C8 */ addiu $v1, $v1, 0x4c8 +/* 13DCB0 8024A970 3C038027 */ lui $v1, %hi(gItemMenuCurrentPage) +/* 13DCB4 8024A974 246304C8 */ addiu $v1, $v1, %lo(gItemMenuCurrentPage) /* 13DCB8 8024A978 8C620000 */ lw $v0, ($v1) /* 13DCBC 8024A97C 2442FFFF */ addiu $v0, $v0, -1 /* 13DCC0 8024A980 04410002 */ bgez $v0, .L8024A98C @@ -138,11 +138,11 @@ glabel pause_items_handle_input /* 13DD04 8024A9C4 00621024 */ and $v0, $v1, $v0 /* 13DD08 8024A9C8 1040001C */ beqz $v0, .L8024AA3C /* 13DD0C 8024A9CC 00000000 */ nop -/* 13DD10 8024A9D0 3C068027 */ lui $a2, 0x8027 -/* 13DD14 8024A9D4 24C604C8 */ addiu $a2, $a2, 0x4c8 +/* 13DD10 8024A9D0 3C068027 */ lui $a2, %hi(gItemMenuCurrentPage) +/* 13DD14 8024A9D4 24C604C8 */ addiu $a2, $a2, %lo(gItemMenuCurrentPage) /* 13DD18 8024A9D8 8CC40000 */ lw $a0, ($a2) -/* 13DD1C 8024A9DC 3C078027 */ lui $a3, %hi(gPauseItemPages) -/* 13DD20 8024A9E0 24E704D0 */ addiu $a3, $a3, %lo(gPauseItemPages) +/* 13DD1C 8024A9DC 3C078027 */ lui $a3, %hi(gItemMenuPages) +/* 13DD20 8024A9E0 24E704D0 */ addiu $a3, $a3, %lo(gItemMenuPages) /* 13DD24 8024A9E4 00041040 */ sll $v0, $a0, 1 /* 13DD28 8024A9E8 00441021 */ addu $v0, $v0, $a0 /* 13DD2C 8024A9EC 00021080 */ sll $v0, $v0, 2 @@ -166,11 +166,11 @@ glabel pause_items_handle_input /* 13DD74 8024AA34 08092AA0 */ j .L8024AA80 /* 13DD78 8024AA38 24A5FFFF */ addiu $a1, $a1, -1 .L8024AA3C: -/* 13DD7C 8024AA3C 3C068027 */ lui $a2, 0x8027 -/* 13DD80 8024AA40 24C604C8 */ addiu $a2, $a2, 0x4c8 +/* 13DD7C 8024AA3C 3C068027 */ lui $a2, %hi(gItemMenuCurrentPage) +/* 13DD80 8024AA40 24C604C8 */ addiu $a2, $a2, %lo(gItemMenuCurrentPage) /* 13DD84 8024AA44 8CC70000 */ lw $a3, ($a2) -/* 13DD88 8024AA48 3C048027 */ lui $a0, %hi(gPauseItemPages) -/* 13DD8C 8024AA4C 248404D0 */ addiu $a0, $a0, %lo(gPauseItemPages) +/* 13DD88 8024AA48 3C048027 */ lui $a0, %hi(gItemMenuPages) +/* 13DD8C 8024AA4C 248404D0 */ addiu $a0, $a0, %lo(gItemMenuPages) /* 13DD90 8024AA50 24E30001 */ addiu $v1, $a3, 1 /* 13DD94 8024AA54 00031040 */ sll $v0, $v1, 1 /* 13DD98 8024AA58 00431021 */ addu $v0, $v0, $v1 @@ -185,8 +185,8 @@ glabel pause_items_handle_input .L8024AA7C: /* 13DDBC 8024AA7C 90650001 */ lbu $a1, 1($v1) .L8024AA80: -/* 13DDC0 8024AA80 3C038027 */ lui $v1, 0x8027 -/* 13DDC4 8024AA84 8C6304C8 */ lw $v1, 0x4c8($v1) +/* 13DDC0 8024AA80 3C038027 */ lui $v1, %hi(gItemMenuCurrentPage) +/* 13DDC4 8024AA84 8C6304C8 */ lw $v1, %lo(gItemMenuCurrentPage)($v1) /* 13DDC8 8024AA88 00031040 */ sll $v0, $v1, 1 /* 13DDCC 8024AA8C 00431021 */ addu $v0, $v0, $v1 /* 13DDD0 8024AA90 00021080 */ sll $v0, $v0, 2 @@ -196,9 +196,9 @@ glabel pause_items_handle_input /* 13DDE0 8024AAA0 00A40018 */ mult $a1, $a0 /* 13DDE4 8024AAA4 00005012 */ mflo $t2 /* 13DDE8 8024AAA8 000A1040 */ sll $v0, $t2, 1 -/* 13DDEC 8024AAAC 3C038027 */ lui $v1, 0x8027 +/* 13DDEC 8024AAAC 3C038027 */ lui $v1, %hi(gItemMenuItemIDs) /* 13DDF0 8024AAB0 00621821 */ addu $v1, $v1, $v0 -/* 13DDF4 8024AAB4 84630400 */ lh $v1, 0x400($v1) +/* 13DDF4 8024AAB4 84630400 */ lh $v1, %lo(gItemMenuItemIDs)($v1) /* 13DDF8 8024AAB8 24027FFE */ addiu $v0, $zero, 0x7ffe /* 13DDFC 8024AABC 10620012 */ beq $v1, $v0, .L8024AB08 /* 13DE00 8024AAC0 3C020004 */ lui $v0, 4 @@ -223,8 +223,8 @@ glabel pause_items_handle_input .L8024AB08: /* 13DE48 8024AB08 0000402D */ daddu $t0, $zero, $zero .L8024AB0C: -/* 13DE4C 8024AB0C 3C038027 */ lui $v1, 0x8027 -/* 13DE50 8024AB10 8C6304C8 */ lw $v1, 0x4c8($v1) +/* 13DE4C 8024AB0C 3C038027 */ lui $v1, %hi(gItemMenuCurrentPage) +/* 13DE50 8024AB10 8C6304C8 */ lw $v1, %lo(gItemMenuCurrentPage)($v1) /* 13DE54 8024AB14 00031040 */ sll $v0, $v1, 1 /* 13DE58 8024AB18 00431021 */ addu $v0, $v0, $v1 /* 13DE5C 8024AB1C 00021080 */ sll $v0, $v0, 2 @@ -232,8 +232,8 @@ glabel pause_items_handle_input /* 13DE64 8024AB24 00220821 */ addu $at, $at, $v0 /* 13DE68 8024AB28 902204D2 */ lbu $v0, 0x4d2($at) /* 13DE6C 8024AB2C 00A20018 */ mult $a1, $v0 -/* 13DE70 8024AB30 3C108027 */ lui $s0, 0x8027 -/* 13DE74 8024AB34 261005C0 */ addiu $s0, $s0, 0x5c0 +/* 13DE70 8024AB30 3C108027 */ lui $s0, %hi(gItemMenuSelectedIndex) +/* 13DE74 8024AB34 261005C0 */ addiu $s0, $s0, %lo(gItemMenuSelectedIndex) /* 13DE78 8024AB38 00005012 */ mflo $t2 /* 13DE7C 8024AB3C 010A1021 */ addu $v0, $t0, $t2 /* 13DE80 8024AB40 10490003 */ beq $v0, $t1, .L8024AB50 @@ -243,19 +243,19 @@ glabel pause_items_handle_input .L8024AB50: /* 13DE90 8024AB50 8E020000 */ lw $v0, ($s0) /* 13DE94 8024AB54 00021040 */ sll $v0, $v0, 1 -/* 13DE98 8024AB58 3C018027 */ lui $at, 0x8027 +/* 13DE98 8024AB58 3C018027 */ lui $at, %hi(gItemMenuItemIDs) /* 13DE9C 8024AB5C 00220821 */ addu $at, $at, $v0 -/* 13DEA0 8024AB60 84220400 */ lh $v0, 0x400($at) -/* 13DEA4 8024AB64 3C018027 */ lui $at, 0x8027 -/* 13DEA8 8024AB68 AC2205C8 */ sw $v0, 0x5c8($at) +/* 13DEA0 8024AB60 84220400 */ lh $v0, %lo(gItemMenuItemIDs)($at) +/* 13DEA4 8024AB64 3C018027 */ lui $at, %hi(gItemMenuSelectedItemID) +/* 13DEA8 8024AB68 AC2205C8 */ sw $v0, %lo(gItemMenuSelectedItemID)($at) .L8024AB6C: -/* 13DEAC 8024AB6C 3C028027 */ lui $v0, 0x8027 -/* 13DEB0 8024AB70 8C4205E0 */ lw $v0, 0x5e0($v0) +/* 13DEAC 8024AB6C 3C028027 */ lui $v0, %hi(gItemMenuLevel) +/* 13DEB0 8024AB70 8C4205E0 */ lw $v0, %lo(gItemMenuLevel)($v0) /* 13DEB4 8024AB74 24030001 */ addiu $v1, $zero, 1 /* 13DEB8 8024AB78 14430014 */ bne $v0, $v1, .L8024ABCC /* 13DEBC 8024AB7C 00000000 */ nop -/* 13DEC0 8024AB80 3C038027 */ lui $v1, 0x8027 -/* 13DEC4 8024AB84 8C6305C8 */ lw $v1, 0x5c8($v1) +/* 13DEC0 8024AB80 3C038027 */ lui $v1, %hi(gItemMenuSelectedItemID) +/* 13DEC4 8024AB84 8C6305C8 */ lw $v1, %lo(gItemMenuSelectedItemID)($v1) /* 13DEC8 8024AB88 24628002 */ addiu $v0, $v1, -0x7ffe /* 13DECC 8024AB8C 2C420002 */ sltiu $v0, $v0, 2 /* 13DED0 8024AB90 1440000A */ bnez $v0, .L8024ABBC @@ -275,8 +275,8 @@ glabel pause_items_handle_input /* 13DF04 8024ABC4 08092AFC */ j .L8024ABF0 /* 13DF08 8024ABC8 00000000 */ nop .L8024ABCC: -/* 13DF0C 8024ABCC 3C028027 */ lui $v0, 0x8027 -/* 13DF10 8024ABD0 8C4205E4 */ lw $v0, 0x5e4($v0) +/* 13DF0C 8024ABCC 3C028027 */ lui $v0, %hi(gItemMenuCurrentTab) +/* 13DF10 8024ABD0 8C4205E4 */ lw $v0, %lo(gItemMenuCurrentTab)($v0) /* 13DF14 8024ABD4 14430002 */ bne $v0, $v1, .L8024ABE0 /* 13DF18 8024ABD8 24040052 */ addiu $a0, $zero, 0x52 /* 13DF1C 8024ABDC 24040051 */ addiu $a0, $zero, 0x51 @@ -294,8 +294,8 @@ glabel pause_items_handle_input /* 13DF40 8024AC00 30424000 */ andi $v0, $v0, 0x4000 /* 13DF44 8024AC04 1040000F */ beqz $v0, .L8024AC44 /* 13DF48 8024AC08 00000000 */ nop -/* 13DF4C 8024AC0C 3C108027 */ lui $s0, 0x8027 -/* 13DF50 8024AC10 261005E0 */ addiu $s0, $s0, 0x5e0 +/* 13DF4C 8024AC0C 3C108027 */ lui $s0, %hi(gItemMenuLevel) +/* 13DF50 8024AC10 261005E0 */ addiu $s0, $s0, %lo(gItemMenuLevel) /* 13DF54 8024AC14 8E020000 */ lw $v0, ($s0) /* 13DF58 8024AC18 14400007 */ bnez $v0, .L8024AC38 /* 13DF5C 8024AC1C 00000000 */ nop diff --git a/asm/nonmatchings/code_13CAF0/pause_items_init.s b/asm/nonmatchings/code_13CAF0/pause_items_init.s index 0540fa72bf..823b9e2d8f 100644 --- a/asm/nonmatchings/code_13CAF0/pause_items_init.s +++ b/asm/nonmatchings/code_13CAF0/pause_items_init.s @@ -9,10 +9,10 @@ glabel pause_items_init /* 13DA64 8024A724 AFB20018 */ sw $s2, 0x18($sp) /* 13DA68 8024A728 AFB10014 */ sw $s1, 0x14($sp) /* 13DA6C 8024A72C AFB00010 */ sw $s0, 0x10($sp) -/* 13DA70 8024A730 3C018027 */ lui $at, 0x8027 -/* 13DA74 8024A734 AC2005E0 */ sw $zero, 0x5e0($at) -/* 13DA78 8024A738 3C018027 */ lui $at, 0x8027 -/* 13DA7C 8024A73C AC2005E4 */ sw $zero, 0x5e4($at) +/* 13DA70 8024A730 3C018027 */ lui $at, %hi(gItemMenuLevel) +/* 13DA74 8024A734 AC2005E0 */ sw $zero, %lo(gItemMenuLevel)($at) +/* 13DA78 8024A738 3C018027 */ lui $at, %hi(gItemMenuCurrentTab) +/* 13DA7C 8024A73C AC2005E4 */ sw $zero, %lo(gItemMenuCurrentTab)($at) /* 13DA80 8024A740 0C092937 */ jal pause_items_load_items /* 13DA84 8024A744 0000202D */ daddu $a0, $zero, $zero /* 13DA88 8024A748 0000802D */ daddu $s0, $zero, $zero diff --git a/asm/nonmatchings/code_13CAF0/pause_items_is_visible.s b/asm/nonmatchings/code_13CAF0/pause_items_is_visible.s index 50824a1281..3ccac10346 100644 --- a/asm/nonmatchings/code_13CAF0/pause_items_is_visible.s +++ b/asm/nonmatchings/code_13CAF0/pause_items_is_visible.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel pause_items_is_visible -/* 13CC70 80249930 3C038027 */ lui $v1, 0x8027 -/* 13CC74 80249934 8C6305D4 */ lw $v1, 0x5d4($v1) +/* 13CC70 80249930 3C038027 */ lui $v1, %hi(gItemMenuCurrentScrollPos) +/* 13CC74 80249934 8C6305D4 */ lw $v1, %lo(gItemMenuCurrentScrollPos)($v1) /* 13CC78 80249938 2462FFE0 */ addiu $v0, $v1, -0x20 /* 13CC7C 8024993C 0082102A */ slt $v0, $a0, $v0 /* 13CC80 80249940 14400003 */ bnez $v0, .L80249950 diff --git a/asm/nonmatchings/code_13CAF0/pause_items_load_items.s b/asm/nonmatchings/code_13CAF0/pause_items_load_items.s index d25ce4eb6c..30151dab09 100644 --- a/asm/nonmatchings/code_13CAF0/pause_items_load_items.s +++ b/asm/nonmatchings/code_13CAF0/pause_items_load_items.s @@ -8,14 +8,14 @@ glabel pause_items_load_items /* 13D828 8024A4E8 2463F290 */ addiu $v1, $v1, %lo(gPlayerData) /* 13D82C 8024A4EC 24020001 */ addiu $v0, $zero, 1 /* 13D830 8024A4F0 AFBF0014 */ sw $ra, 0x14($sp) -/* 13D834 8024A4F4 3C018027 */ lui $at, 0x8027 -/* 13D838 8024A4F8 AC2005D0 */ sw $zero, 0x5d0($at) +/* 13D834 8024A4F4 3C018027 */ lui $at, %hi(D_802705D0) +/* 13D838 8024A4F8 AC2005D0 */ sw $zero, %lo(D_802705D0)($at) /* 13D83C 8024A4FC 14820011 */ bne $a0, $v0, .L8024A544 /* 13D840 8024A500 0000802D */ daddu $s0, $zero, $zero /* 13D844 8024A504 0200202D */ daddu $a0, $s0, $zero /* 13D848 8024A508 0060302D */ daddu $a2, $v1, $zero -/* 13D84C 8024A50C 3C058027 */ lui $a1, 0x8027 -/* 13D850 8024A510 24A50400 */ addiu $a1, $a1, 0x400 +/* 13D84C 8024A50C 3C058027 */ lui $a1, %hi(gItemMenuItemIDs) +/* 13D850 8024A510 24A50400 */ addiu $a1, $a1, %lo(gItemMenuItemIDs) .L8024A514: /* 13D854 8024A514 84C201B4 */ lh $v0, 0x1b4($a2) /* 13D858 8024A518 94C301B4 */ lhu $v1, 0x1b4($a2) @@ -33,8 +33,8 @@ glabel pause_items_load_items .L8024A544: /* 13D884 8024A544 0000202D */ daddu $a0, $zero, $zero /* 13D888 8024A548 0060302D */ daddu $a2, $v1, $zero -/* 13D88C 8024A54C 3C058027 */ lui $a1, 0x8027 -/* 13D890 8024A550 24A50400 */ addiu $a1, $a1, 0x400 +/* 13D88C 8024A54C 3C058027 */ lui $a1, %hi(gItemMenuItemIDs) +/* 13D890 8024A550 24A50400 */ addiu $a1, $a1, %lo(gItemMenuItemIDs) .L8024A554: /* 13D894 8024A554 84C20074 */ lh $v0, 0x74($a2) /* 13D898 8024A558 94C30074 */ lhu $v1, 0x74($a2) @@ -50,26 +50,26 @@ glabel pause_items_load_items .L8024A57C: /* 13D8BC 8024A57C 16000005 */ bnez $s0, .L8024A594 /* 13D8C0 8024A580 24027FFE */ addiu $v0, $zero, 0x7ffe -/* 13D8C4 8024A584 3C018027 */ lui $at, 0x8027 -/* 13D8C8 8024A588 A4220400 */ sh $v0, 0x400($at) +/* 13D8C4 8024A584 3C018027 */ lui $at, %hi(gItemMenuItemIDs) +/* 13D8C8 8024A588 A4220400 */ sh $v0, %lo(gItemMenuItemIDs)($at) /* 13D8CC 8024A58C 0809296B */ j .L8024A5AC /* 13D8D0 8024A590 24100001 */ addiu $s0, $zero, 1 .L8024A594: -/* 13D8D4 8024A594 3C048027 */ lui $a0, 0x8027 -/* 13D8D8 8024A598 24840400 */ addiu $a0, $a0, 0x400 +/* 13D8D4 8024A594 3C048027 */ lui $a0, %hi(gItemMenuItemIDs) +/* 13D8D8 8024A598 24840400 */ addiu $a0, $a0, %lo(gItemMenuItemIDs) /* 13D8DC 8024A59C 3C068025 */ lui $a2, %hi(pause_items_comparator) /* 13D8E0 8024A5A0 24C697B0 */ addiu $a2, $a2, %lo(pause_items_comparator) /* 13D8E4 8024A5A4 0C091293 */ jal pause_sort_item_list /* 13D8E8 8024A5A8 0200282D */ daddu $a1, $s0, $zero .L8024A5AC: -/* 13D8EC 8024A5AC 3C018027 */ lui $at, 0x8027 -/* 13D8F0 8024A5B0 A43005CC */ sh $s0, 0x5cc($at) +/* 13D8EC 8024A5AC 3C018027 */ lui $at, %hi(gItemMenuNumItems) +/* 13D8F0 8024A5B0 A43005CC */ sh $s0, %lo(gItemMenuNumItems)($at) /* 13D8F4 8024A5B4 0200202D */ daddu $a0, $s0, $zero /* 13D8F8 8024A5B8 28820064 */ slti $v0, $a0, 0x64 /* 13D8FC 8024A5BC 1040000A */ beqz $v0, .L8024A5E8 /* 13D900 8024A5C0 24057FFF */ addiu $a1, $zero, 0x7fff -/* 13D904 8024A5C4 3C038027 */ lui $v1, 0x8027 -/* 13D908 8024A5C8 24630400 */ addiu $v1, $v1, 0x400 +/* 13D904 8024A5C4 3C038027 */ lui $v1, %hi(gItemMenuItemIDs) +/* 13D908 8024A5C8 24630400 */ addiu $v1, $v1, %lo(gItemMenuItemIDs) /* 13D90C 8024A5CC 00041040 */ sll $v0, $a0, 1 /* 13D910 8024A5D0 00431821 */ addu $v1, $v0, $v1 .L8024A5D4: @@ -79,25 +79,25 @@ glabel pause_items_load_items /* 13D920 8024A5E0 1440FFFC */ bnez $v0, .L8024A5D4 /* 13D924 8024A5E4 24630002 */ addiu $v1, $v1, 2 .L8024A5E8: -/* 13D928 8024A5E8 3C058027 */ lui $a1, %hi(gPauseItemPages) -/* 13D92C 8024A5EC 24A504D0 */ addiu $a1, $a1, %lo(gPauseItemPages) +/* 13D928 8024A5E8 3C058027 */ lui $a1, %hi(gItemMenuPages) +/* 13D92C 8024A5EC 24A504D0 */ addiu $a1, $a1, %lo(gItemMenuPages) /* 13D930 8024A5F0 0000202D */ daddu $a0, $zero, $zero -/* 13D934 8024A5F4 3C078027 */ lui $a3, 0x8027 -/* 13D938 8024A5F8 24E705CC */ addiu $a3, $a3, 0x5cc +/* 13D934 8024A5F4 3C078027 */ lui $a3, %hi(gItemMenuNumItems) +/* 13D938 8024A5F8 24E705CC */ addiu $a3, $a3, %lo(gItemMenuNumItems) /* 13D93C 8024A5FC 24060001 */ addiu $a2, $zero, 1 /* 13D940 8024A600 24090008 */ addiu $t1, $zero, 8 /* 13D944 8024A604 24080008 */ addiu $t0, $zero, 8 /* 13D948 8024A608 00A81821 */ addu $v1, $a1, $t0 -/* 13D94C 8024A60C 3C018027 */ lui $at, 0x8027 -/* 13D950 8024A610 AC2005C0 */ sw $zero, 0x5c0($at) -/* 13D954 8024A614 3C018027 */ lui $at, 0x8027 -/* 13D958 8024A618 AC2005C8 */ sw $zero, 0x5c8($at) +/* 13D94C 8024A60C 3C018027 */ lui $at, %hi(gItemMenuSelectedIndex) +/* 13D950 8024A610 AC2005C0 */ sw $zero, %lo(gItemMenuSelectedIndex)($at) +/* 13D954 8024A614 3C018027 */ lui $at, %hi(gItemMenuSelectedItemID) +/* 13D958 8024A618 AC2005C8 */ sw $zero, %lo(gItemMenuSelectedItemID)($at) /* 13D95C 8024A61C 3C018027 */ lui $at, 0x8027 /* 13D960 8024A620 AC2005C4 */ sw $zero, 0x5c4($at) -/* 13D964 8024A624 3C018027 */ lui $at, 0x8027 -/* 13D968 8024A628 AC2005DC */ sw $zero, 0x5dc($at) -/* 13D96C 8024A62C 3C018027 */ lui $at, 0x8027 -/* 13D970 8024A630 AC2004C8 */ sw $zero, 0x4c8($at) +/* 13D964 8024A624 3C018027 */ lui $at, %hi(D_802705DC) +/* 13D968 8024A628 AC2005DC */ sw $zero, %lo(D_802705DC)($at) +/* 13D96C 8024A62C 3C018027 */ lui $at, %hi(gItemMenuCurrentPage) +/* 13D970 8024A630 AC2004C8 */ sw $zero, %lo(gItemMenuCurrentPage)($at) .L8024A634: /* 13D974 8024A634 84E20000 */ lh $v0, ($a3) /* 13D978 8024A638 04420001 */ bltzl $v0, .L8024A640 @@ -155,9 +155,9 @@ glabel pause_items_load_items /* 13DA30 8024A6F0 0080282D */ daddu $a1, $a0, $zero /* 13DA34 8024A6F4 8FBF0014 */ lw $ra, 0x14($sp) /* 13DA38 8024A6F8 8FB00010 */ lw $s0, 0x10($sp) -/* 13DA3C 8024A6FC 3C018027 */ lui $at, 0x8027 -/* 13DA40 8024A700 AC2205D4 */ sw $v0, 0x5d4($at) -/* 13DA44 8024A704 3C018027 */ lui $at, 0x8027 -/* 13DA48 8024A708 AC2205D8 */ sw $v0, 0x5d8($at) +/* 13DA3C 8024A6FC 3C018027 */ lui $at, %hi(gItemMenuCurrentScrollPos) +/* 13DA40 8024A700 AC2205D4 */ sw $v0, %lo(gItemMenuCurrentScrollPos)($at) +/* 13DA44 8024A704 3C018027 */ lui $at, %hi(gItemMenuTargetScrollPos) +/* 13DA48 8024A708 AC2205D8 */ sw $v0, %lo(gItemMenuTargetScrollPos)($at) /* 13DA4C 8024A70C 03E00008 */ jr $ra /* 13DA50 8024A710 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/nonmatchings/code_13CAF0/pause_items_scroll_offset_y.s b/asm/nonmatchings/code_13CAF0/pause_items_scroll_offset_y.s index b2441ded02..0aabdf6cb4 100644 --- a/asm/nonmatchings/code_13CAF0/pause_items_scroll_offset_y.s +++ b/asm/nonmatchings/code_13CAF0/pause_items_scroll_offset_y.s @@ -2,7 +2,7 @@ .set noreorder # don't insert nops after branches glabel pause_items_scroll_offset_y -/* 13CC98 80249958 3C028027 */ lui $v0, 0x8027 -/* 13CC9C 8024995C 8C4205D4 */ lw $v0, 0x5d4($v0) +/* 13CC98 80249958 3C028027 */ lui $v0, %hi(gItemMenuCurrentScrollPos) +/* 13CC9C 8024995C 8C4205D4 */ lw $v0, %lo(gItemMenuCurrentScrollPos)($v0) /* 13CCA0 80249960 03E00008 */ jr $ra /* 13CCA4 80249964 00821023 */ subu $v0, $a0, $v0 diff --git a/asm/nonmatchings/code_13CAF0/pause_items_update.s b/asm/nonmatchings/code_13CAF0/pause_items_update.s index 5e71100e51..0150768b79 100644 --- a/asm/nonmatchings/code_13CAF0/pause_items_update.s +++ b/asm/nonmatchings/code_13CAF0/pause_items_update.s @@ -3,10 +3,10 @@ glabel pause_items_update /* 13DF94 8024AC54 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 13DF98 8024AC58 3C038027 */ lui $v1, 0x8027 -/* 13DF9C 8024AC5C 8C6304C8 */ lw $v1, 0x4c8($v1) -/* 13DFA0 8024AC60 3C048027 */ lui $a0, %hi(gPauseItemPages) -/* 13DFA4 8024AC64 248404D0 */ addiu $a0, $a0, %lo(gPauseItemPages) +/* 13DF98 8024AC58 3C038027 */ lui $v1, %hi(gItemMenuCurrentPage) +/* 13DF9C 8024AC5C 8C6304C8 */ lw $v1, %lo(gItemMenuCurrentPage)($v1) +/* 13DFA0 8024AC60 3C048027 */ lui $a0, %hi(gItemMenuPages) +/* 13DFA4 8024AC64 248404D0 */ addiu $a0, $a0, %lo(gItemMenuPages) /* 13DFA8 8024AC68 AFBF0014 */ sw $ra, 0x14($sp) /* 13DFAC 8024AC6C AFB00010 */ sw $s0, 0x10($sp) /* 13DFB0 8024AC70 00031040 */ sll $v0, $v1, 1 @@ -14,8 +14,8 @@ glabel pause_items_update /* 13DFB8 8024AC78 00021080 */ sll $v0, $v0, 2 /* 13DFBC 8024AC7C 00443021 */ addu $a2, $v0, $a0 /* 13DFC0 8024AC80 90C30002 */ lbu $v1, 2($a2) -/* 13DFC4 8024AC84 3C028027 */ lui $v0, 0x8027 -/* 13DFC8 8024AC88 8C4205C0 */ lw $v0, 0x5c0($v0) +/* 13DFC4 8024AC84 3C028027 */ lui $v0, %hi(gItemMenuSelectedIndex) +/* 13DFC8 8024AC88 8C4205C0 */ lw $v0, %lo(gItemMenuSelectedIndex)($v0) /* 13DFCC 8024AC8C 14600002 */ bnez $v1, .L8024AC98 /* 13DFD0 8024AC90 0043001A */ div $zero, $v0, $v1 /* 13DFD4 8024AC94 0007000D */ break 7 @@ -38,8 +38,8 @@ glabel pause_items_update /* 13E010 8024ACD0 10400005 */ beqz $v0, .L8024ACE8 /* 13E014 8024ACD4 00000000 */ nop .L8024ACD8: -/* 13E018 8024ACD8 3C018027 */ lui $at, 0x8027 -/* 13E01C 8024ACDC AC2005DC */ sw $zero, 0x5dc($at) +/* 13E018 8024ACD8 3C018027 */ lui $at, %hi(D_802705DC) +/* 13E01C 8024ACDC AC2005DC */ sw $zero, %lo(D_802705DC)($at) /* 13E020 8024ACE0 08092B4D */ j .L8024AD34 /* 13E024 8024ACE4 00000000 */ nop .L8024ACE8: @@ -48,13 +48,13 @@ glabel pause_items_update /* 13E030 8024ACF0 0082102A */ slt $v0, $a0, $v0 /* 13E034 8024ACF4 14400005 */ bnez $v0, .L8024AD0C /* 13E038 8024ACF8 2462FFF8 */ addiu $v0, $v1, -8 -/* 13E03C 8024ACFC 3C018027 */ lui $at, 0x8027 -/* 13E040 8024AD00 AC2205DC */ sw $v0, 0x5dc($at) +/* 13E03C 8024ACFC 3C018027 */ lui $at, %hi(D_802705DC) +/* 13E040 8024AD00 AC2205DC */ sw $v0, %lo(D_802705DC)($at) /* 13E044 8024AD04 08092B4D */ j .L8024AD34 /* 13E048 8024AD08 00000000 */ nop .L8024AD0C: -/* 13E04C 8024AD0C 3C058027 */ lui $a1, 0x8027 -/* 13E050 8024AD10 24A505DC */ addiu $a1, $a1, 0x5dc +/* 13E04C 8024AD0C 3C058027 */ lui $a1, %hi(D_802705DC) +/* 13E050 8024AD10 24A505DC */ addiu $a1, $a1, %lo(D_802705DC) /* 13E054 8024AD14 8CA20000 */ lw $v0, ($a1) /* 13E058 8024AD18 00821823 */ subu $v1, $a0, $v0 /* 13E05C 8024AD1C 28620007 */ slti $v0, $v1, 7 @@ -66,19 +66,19 @@ glabel pause_items_update /* 13E070 8024AD30 ACA20000 */ sw $v0, ($a1) .L8024AD34: /* 13E074 8024AD34 90C20002 */ lbu $v0, 2($a2) -/* 13E078 8024AD38 3C058027 */ lui $a1, 0x8027 -/* 13E07C 8024AD3C 8CA505DC */ lw $a1, 0x5dc($a1) +/* 13E078 8024AD38 3C058027 */ lui $a1, %hi(D_802705DC) +/* 13E07C 8024AD3C 8CA505DC */ lw $a1, %lo(D_802705DC)($a1) /* 13E080 8024AD40 00A20018 */ mult $a1, $v0 -/* 13E084 8024AD44 3C048027 */ lui $a0, 0x8027 -/* 13E088 8024AD48 8C8404C8 */ lw $a0, 0x4c8($a0) +/* 13E084 8024AD44 3C048027 */ lui $a0, %hi(gItemMenuCurrentPage) +/* 13E088 8024AD48 8C8404C8 */ lw $a0, %lo(gItemMenuCurrentPage)($a0) /* 13E08C 8024AD4C 00002812 */ mflo $a1 /* 13E090 8024AD50 0C09260A */ jal pause_items_get_pos_y /* 13E094 8024AD54 00000000 */ nop -/* 13E098 8024AD58 3C108027 */ lui $s0, 0x8027 -/* 13E09C 8024AD5C 261005D4 */ addiu $s0, $s0, 0x5d4 +/* 13E098 8024AD58 3C108027 */ lui $s0, %hi(gItemMenuCurrentScrollPos) +/* 13E09C 8024AD5C 261005D4 */ addiu $s0, $s0, %lo(gItemMenuCurrentScrollPos) /* 13E0A0 8024AD60 8E040000 */ lw $a0, ($s0) -/* 13E0A4 8024AD64 3C018027 */ lui $at, 0x8027 -/* 13E0A8 8024AD68 AC2205D8 */ sw $v0, 0x5d8($at) +/* 13E0A4 8024AD64 3C018027 */ lui $at, %hi(gItemMenuTargetScrollPos) +/* 13E0A8 8024AD68 AC2205D8 */ sw $v0, %lo(gItemMenuTargetScrollPos)($at) /* 13E0AC 8024AD6C 0C090D1B */ jal pause_interp_vertical_scroll /* 13E0B0 8024AD70 00442023 */ subu $a0, $v0, $a0 /* 13E0B4 8024AD74 8E030000 */ lw $v1, ($s0) diff --git a/asm/nonmatchings/code_13E120/pause_partners_cleanup.s b/asm/nonmatchings/code_13E120/pause_partners_cleanup.s index 6461cd8429..eec12563dd 100644 --- a/asm/nonmatchings/code_13E120/pause_partners_cleanup.s +++ b/asm/nonmatchings/code_13E120/pause_partners_cleanup.s @@ -16,7 +16,7 @@ glabel pause_partners_cleanup /* 13FCEC 8024C9AC 26100001 */ addiu $s0, $s0, 1 /* 13FCF0 8024C9B0 2A020008 */ slti $v0, $s0, 8 /* 13FCF4 8024C9B4 1440FFFA */ bnez $v0, .L8024C9A0 -/* 13FCF8 8024C9B8 00000000 */ nop +/* 13FCF8 8024C9B8 00000000 */ nop /* 13FCFC 8024C9BC 0000802D */ daddu $s0, $zero, $zero /* 13FD00 8024C9C0 3C118027 */ lui $s1, 0x8027 /* 13FD04 8024C9C4 26310660 */ addiu $s1, $s1, 0x660 @@ -27,11 +27,11 @@ glabel pause_partners_cleanup /* 13FD14 8024C9D4 26100001 */ addiu $s0, $s0, 1 /* 13FD18 8024C9D8 2A020008 */ slti $v0, $s0, 8 /* 13FD1C 8024C9DC 1440FFFA */ bnez $v0, .L8024C9C8 -/* 13FD20 8024C9E0 00000000 */ nop +/* 13FD20 8024C9E0 00000000 */ nop /* 13FD24 8024C9E4 8FBF0018 */ lw $ra, 0x18($sp) /* 13FD28 8024C9E8 8FB10014 */ lw $s1, 0x14($sp) /* 13FD2C 8024C9EC 8FB00010 */ lw $s0, 0x10($sp) /* 13FD30 8024C9F0 03E00008 */ jr $ra /* 13FD34 8024C9F4 27BD0020 */ addiu $sp, $sp, 0x20 -/* 13FD38 8024C9F8 00000000 */ nop -/* 13FD3C 8024C9FC 00000000 */ nop +/* 13FD38 8024C9F8 00000000 */ nop +/* 13FD3C 8024C9FC 00000000 */ nop diff --git a/include/variables.h b/include/variables.h index e18ae7a35d..d956c962ae 100644 --- a/include/variables.h +++ b/include/variables.h @@ -127,7 +127,6 @@ extern Bytecode* gPauseMenuCurrentDescIconScript; extern s8 gPauseMenuCurrentTab; extern s32 gPauseMenuCommonIconIDs[8]; extern s32 gPauseMenuTabIconIDs[6]; -extern PauseItemPage gItemMenuPages[20]; extern s32 gPauseMenuStrings[348]; extern s32 gPauseMenuIconScripts[8]; extern MenuTab* gPauseMenuTabs[7]; @@ -157,6 +156,21 @@ extern s32 gBadgeMenuBShowNotEnoughBP; extern s32 D_802703A4; extern s32 D_802703A8; +// Items +extern s16 gItemMenuItemIDs[100]; +extern s32 gItemMenuCurrentPage; +extern PauseItemPage gItemMenuPages[20]; +extern s32 gItemMenuSelectedIndex; +extern s32 gItemMenuSelectedItemID; +extern s16 gItemMenuNumItems; +extern s32 D_802705D0; +extern s32 gItemMenuCurrentScrollPos; +extern s32 gItemMenuTargetScrollPos; +extern s32 D_802705DC; +extern s32 gItemMenuLevel; +extern s32 gItemMenuCurrentTab; +extern s32 gItemMenuScrollUpIcon; + // Stats extern s32 gStatsMenuIconIDs[12]; diff --git a/undefined_syms.txt b/undefined_syms.txt index d0b1dfad47..a3bd1d9db3 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -183,7 +183,19 @@ gBadgeMenuBShowNotEnoughBP = 0x802703A0; D_802703A4 = 0x802703A4; D_802703A8 = 0x802703A8; -gPauseItemPages = 0x802704D0; +gItemMenuItemIDs = 0x80270400; +gItemMenuCurrentPage = 0x802704C8; +gItemMenuPages = 0x802704D0; +gItemMenuSelectedIndex = 0x802705C0; +gItemMenuSelectedItemID = 0x802705C8; +gItemMenuNumItems = 0x802705CC; +D_802705D0 = 0x802705D0; +gItemMenuCurrentScrollPos = 0x802705D4; +gItemMenuTargetScrollPos = 0x802705D8; +D_802705DC = 0x802705DC; +gItemMenuLevel = 0x802705E0; +gItemMenuCurrentTab = 0x802705E4; +gItemMenuScrollUpIcon = 0x80270628; D_802C3000 = 0x802C3000; D_802DBD40 = 0x802DBD40; From 0f72d512b385666b69357878f9435b782483d5b8 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Thu, 12 Nov 2020 00:44:10 -0500 Subject: [PATCH 43/52] item decomp --- .../code_13CAF0/pause_items_comparator.s | 13 ------- .../code_13CAF0/pause_items_get_column.s | 24 ------------- .../code_13CAF0/pause_items_get_pos_x.s | 28 --------------- .../code_13CAF0/pause_items_get_pos_y.s | 34 ------------------ .../code_13CAF0/pause_items_get_row.s | 26 -------------- .../code_13CAF0/pause_items_is_visible.s | 15 -------- .../code_13CAF0/pause_items_scroll_offset_y.s | 8 ----- include/macros.h | 1 + src/code_135EE0.c | 3 +- src/code_13CAF0.c | 35 +++++++++++++++---- 10 files changed, 31 insertions(+), 156 deletions(-) delete mode 100644 asm/nonmatchings/code_13CAF0/pause_items_comparator.s delete mode 100644 asm/nonmatchings/code_13CAF0/pause_items_get_column.s delete mode 100644 asm/nonmatchings/code_13CAF0/pause_items_get_pos_x.s delete mode 100644 asm/nonmatchings/code_13CAF0/pause_items_get_pos_y.s delete mode 100644 asm/nonmatchings/code_13CAF0/pause_items_get_row.s delete mode 100644 asm/nonmatchings/code_13CAF0/pause_items_is_visible.s delete mode 100644 asm/nonmatchings/code_13CAF0/pause_items_scroll_offset_y.s diff --git a/asm/nonmatchings/code_13CAF0/pause_items_comparator.s b/asm/nonmatchings/code_13CAF0/pause_items_comparator.s deleted file mode 100644 index f962d919a0..0000000000 --- a/asm/nonmatchings/code_13CAF0/pause_items_comparator.s +++ /dev/null @@ -1,13 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel pause_items_comparator -/* 13CAF0 802497B0 84840000 */ lh $a0, ($a0) -/* 13CAF4 802497B4 84A30000 */ lh $v1, ($a1) -/* 13CAF8 802497B8 0064182A */ slt $v1, $v1, $a0 -/* 13CAFC 802497BC 14600002 */ bnez $v1, .L802497C8 -/* 13CB00 802497C0 24020001 */ addiu $v0, $zero, 1 -/* 13CB04 802497C4 2402FFFF */ addiu $v0, $zero, -1 -.L802497C8: -/* 13CB08 802497C8 03E00008 */ jr $ra -/* 13CB0C 802497CC 00000000 */ nop diff --git a/asm/nonmatchings/code_13CAF0/pause_items_get_column.s b/asm/nonmatchings/code_13CAF0/pause_items_get_column.s deleted file mode 100644 index 34afe73c97..0000000000 --- a/asm/nonmatchings/code_13CAF0/pause_items_get_column.s +++ /dev/null @@ -1,24 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel pause_items_get_column -/* 13CBD8 80249898 00041040 */ sll $v0, $a0, 1 -/* 13CBDC 8024989C 00441021 */ addu $v0, $v0, $a0 -/* 13CBE0 802498A0 00021080 */ sll $v0, $v0, 2 -/* 13CBE4 802498A4 3C018027 */ lui $at, 0x8027 -/* 13CBE8 802498A8 00220821 */ addu $at, $at, $v0 -/* 13CBEC 802498AC 902204D2 */ lbu $v0, 0x4d2($at) -/* 13CBF0 802498B0 14400002 */ bnez $v0, .L802498BC -/* 13CBF4 802498B4 00A2001A */ div $zero, $a1, $v0 -/* 13CBF8 802498B8 0007000D */ break 7 -.L802498BC: -/* 13CBFC 802498BC 2401FFFF */ addiu $at, $zero, -1 -/* 13CC00 802498C0 14410004 */ bne $v0, $at, .L802498D4 -/* 13CC04 802498C4 3C018000 */ lui $at, 0x8000 -/* 13CC08 802498C8 14A10002 */ bne $a1, $at, .L802498D4 -/* 13CC0C 802498CC 00000000 */ nop -/* 13CC10 802498D0 0006000D */ break 6 -.L802498D4: -/* 13CC14 802498D4 00001010 */ mfhi $v0 -/* 13CC18 802498D8 03E00008 */ jr $ra -/* 13CC1C 802498DC 00000000 */ nop diff --git a/asm/nonmatchings/code_13CAF0/pause_items_get_pos_x.s b/asm/nonmatchings/code_13CAF0/pause_items_get_pos_x.s deleted file mode 100644 index ee0e2a64b0..0000000000 --- a/asm/nonmatchings/code_13CAF0/pause_items_get_pos_x.s +++ /dev/null @@ -1,28 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel pause_items_get_pos_x -/* 13CB10 802497D0 00041040 */ sll $v0, $a0, 1 -/* 13CB14 802497D4 00441021 */ addu $v0, $v0, $a0 -/* 13CB18 802497D8 00021080 */ sll $v0, $v0, 2 -/* 13CB1C 802497DC 3C018027 */ lui $at, 0x8027 -/* 13CB20 802497E0 00220821 */ addu $at, $at, $v0 -/* 13CB24 802497E4 902204D2 */ lbu $v0, 0x4d2($at) -/* 13CB28 802497E8 14400002 */ bnez $v0, .L802497F4 -/* 13CB2C 802497EC 00A2001A */ div $zero, $a1, $v0 -/* 13CB30 802497F0 0007000D */ break 7 -.L802497F4: -/* 13CB34 802497F4 2401FFFF */ addiu $at, $zero, -1 -/* 13CB38 802497F8 14410004 */ bne $v0, $at, .L8024980C -/* 13CB3C 802497FC 3C018000 */ lui $at, 0x8000 -/* 13CB40 80249800 14A10002 */ bne $a1, $at, .L8024980C -/* 13CB44 80249804 00000000 */ nop -/* 13CB48 80249808 0006000D */ break 6 -.L8024980C: -/* 13CB4C 8024980C 00001810 */ mfhi $v1 -/* 13CB50 80249810 00031040 */ sll $v0, $v1, 1 -/* 13CB54 80249814 00431021 */ addu $v0, $v0, $v1 -/* 13CB58 80249818 00021100 */ sll $v0, $v0, 4 -/* 13CB5C 8024981C 00431021 */ addu $v0, $v0, $v1 -/* 13CB60 80249820 03E00008 */ jr $ra -/* 13CB64 80249824 00021040 */ sll $v0, $v0, 1 diff --git a/asm/nonmatchings/code_13CAF0/pause_items_get_pos_y.s b/asm/nonmatchings/code_13CAF0/pause_items_get_pos_y.s deleted file mode 100644 index 6b1c236cd6..0000000000 --- a/asm/nonmatchings/code_13CAF0/pause_items_get_pos_y.s +++ /dev/null @@ -1,34 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel pause_items_get_pos_y -/* 13CB68 80249828 3C028027 */ lui $v0, %hi(gItemMenuPages) -/* 13CB6C 8024982C 244204D0 */ addiu $v0, $v0, %lo(gItemMenuPages) -/* 13CB70 80249830 00041840 */ sll $v1, $a0, 1 -/* 13CB74 80249834 00641821 */ addu $v1, $v1, $a0 -/* 13CB78 80249838 00031880 */ sll $v1, $v1, 2 -/* 13CB7C 8024983C 00621821 */ addu $v1, $v1, $v0 -/* 13CB80 80249840 90620002 */ lbu $v0, 2($v1) -/* 13CB84 80249844 14400002 */ bnez $v0, .L80249850 -/* 13CB88 80249848 00A2001A */ div $zero, $a1, $v0 -/* 13CB8C 8024984C 0007000D */ break 7 -.L80249850: -/* 13CB90 80249850 2401FFFF */ addiu $at, $zero, -1 -/* 13CB94 80249854 14410004 */ bne $v0, $at, .L80249868 -/* 13CB98 80249858 3C018000 */ lui $at, 0x8000 -/* 13CB9C 8024985C 14A10002 */ bne $a1, $at, .L80249868 -/* 13CBA0 80249860 00000000 */ nop -/* 13CBA4 80249864 0006000D */ break 6 -.L80249868: -/* 13CBA8 80249868 00002812 */ mflo $a1 -/* 13CBAC 8024986C 24840001 */ addiu $a0, $a0, 1 -/* 13CBB0 80249870 90630001 */ lbu $v1, 1($v1) -/* 13CBB4 80249874 00041040 */ sll $v0, $a0, 1 -/* 13CBB8 80249878 00441021 */ addu $v0, $v0, $a0 -/* 13CBBC 8024987C 00021080 */ sll $v0, $v0, 2 -/* 13CBC0 80249880 00441023 */ subu $v0, $v0, $a0 -/* 13CBC4 80249884 00031900 */ sll $v1, $v1, 4 -/* 13CBC8 80249888 00431021 */ addu $v0, $v0, $v1 -/* 13CBCC 8024988C 00052900 */ sll $a1, $a1, 4 -/* 13CBD0 80249890 03E00008 */ jr $ra -/* 13CBD4 80249894 00451021 */ addu $v0, $v0, $a1 diff --git a/asm/nonmatchings/code_13CAF0/pause_items_get_row.s b/asm/nonmatchings/code_13CAF0/pause_items_get_row.s deleted file mode 100644 index 6e2446ee0b..0000000000 --- a/asm/nonmatchings/code_13CAF0/pause_items_get_row.s +++ /dev/null @@ -1,26 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel pause_items_get_row -/* 13CC20 802498E0 3C038027 */ lui $v1, %hi(gItemMenuPages) -/* 13CC24 802498E4 246304D0 */ addiu $v1, $v1, %lo(gItemMenuPages) -/* 13CC28 802498E8 00041040 */ sll $v0, $a0, 1 -/* 13CC2C 802498EC 00441021 */ addu $v0, $v0, $a0 -/* 13CC30 802498F0 00021080 */ sll $v0, $v0, 2 -/* 13CC34 802498F4 00431021 */ addu $v0, $v0, $v1 -/* 13CC38 802498F8 90430002 */ lbu $v1, 2($v0) -/* 13CC3C 802498FC 14600002 */ bnez $v1, .L80249908 -/* 13CC40 80249900 00A3001A */ div $zero, $a1, $v1 -/* 13CC44 80249904 0007000D */ break 7 -.L80249908: -/* 13CC48 80249908 2401FFFF */ addiu $at, $zero, -1 -/* 13CC4C 8024990C 14610004 */ bne $v1, $at, .L80249920 -/* 13CC50 80249910 3C018000 */ lui $at, 0x8000 -/* 13CC54 80249914 14A10002 */ bne $a1, $at, .L80249920 -/* 13CC58 80249918 00000000 */ nop -/* 13CC5C 8024991C 0006000D */ break 6 -.L80249920: -/* 13CC60 80249920 00002812 */ mflo $a1 -/* 13CC64 80249924 90420001 */ lbu $v0, 1($v0) -/* 13CC68 80249928 03E00008 */ jr $ra -/* 13CC6C 8024992C 00451021 */ addu $v0, $v0, $a1 diff --git a/asm/nonmatchings/code_13CAF0/pause_items_is_visible.s b/asm/nonmatchings/code_13CAF0/pause_items_is_visible.s deleted file mode 100644 index 3ccac10346..0000000000 --- a/asm/nonmatchings/code_13CAF0/pause_items_is_visible.s +++ /dev/null @@ -1,15 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel pause_items_is_visible -/* 13CC70 80249930 3C038027 */ lui $v1, %hi(gItemMenuCurrentScrollPos) -/* 13CC74 80249934 8C6305D4 */ lw $v1, %lo(gItemMenuCurrentScrollPos)($v1) -/* 13CC78 80249938 2462FFE0 */ addiu $v0, $v1, -0x20 -/* 13CC7C 8024993C 0082102A */ slt $v0, $a0, $v0 -/* 13CC80 80249940 14400003 */ bnez $v0, .L80249950 -/* 13CC84 80249944 24620080 */ addiu $v0, $v1, 0x80 -/* 13CC88 80249948 03E00008 */ jr $ra -/* 13CC8C 8024994C 0082102A */ slt $v0, $a0, $v0 -.L80249950: -/* 13CC90 80249950 03E00008 */ jr $ra -/* 13CC94 80249954 0000102D */ daddu $v0, $zero, $zero diff --git a/asm/nonmatchings/code_13CAF0/pause_items_scroll_offset_y.s b/asm/nonmatchings/code_13CAF0/pause_items_scroll_offset_y.s deleted file mode 100644 index 0aabdf6cb4..0000000000 --- a/asm/nonmatchings/code_13CAF0/pause_items_scroll_offset_y.s +++ /dev/null @@ -1,8 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel pause_items_scroll_offset_y -/* 13CC98 80249958 3C028027 */ lui $v0, %hi(gItemMenuCurrentScrollPos) -/* 13CC9C 8024995C 8C4205D4 */ lw $v0, %lo(gItemMenuCurrentScrollPos)($v0) -/* 13CCA0 80249960 03E00008 */ jr $ra -/* 13CCA4 80249964 00821023 */ subu $v0, $a0, $v0 diff --git a/include/macros.h b/include/macros.h index 5dc8a24c15..b9e260db5d 100644 --- a/include/macros.h +++ b/include/macros.h @@ -24,6 +24,7 @@ #define CURRENT_CAM (&gCameras[gCurrentCameraID]) #define BADGE_MENU_PAGE(index) (&gBadgeMenuPages[index]) +#define ITEM_MENU_PAGE(index) (&gItemMenuPages[index]) #define MAX_MAPVARS 16 #define MAX_MAPFLAGS 3 diff --git a/src/code_135EE0.c b/src/code_135EE0.c index b04277de28..a76329be3f 100644 --- a/src/code_135EE0.c +++ b/src/code_135EE0.c @@ -149,7 +149,8 @@ INCLUDE_ASM(s32, "code_135EE0", pause_cleanup); INCLUDE_ASM(s32, "code_135EE0", pause_get_total_equipped_bp_cost); -INCLUDE_ASM(void, "code_135EE0", pause_draw_rect, s32 ulx, s32 uly, s32 lrx, s32 lry, s32 tileDescriptor, s32 uls, s32 ult, s32 dsdx, s32 dtdy); +INCLUDE_ASM(void, "code_135EE0", pause_draw_rect, s32 ulx, s32 uly, s32 lrx, s32 lry, s32 tileDescriptor, s32 uls, + s32 ult, s32 dsdx, s32 dtdy); INCLUDE_ASM(s32, "code_135EE0", pause_sort_item_list); diff --git a/src/code_13CAF0.c b/src/code_13CAF0.c index fc0856706e..0aa8c32695 100644 --- a/src/code_13CAF0.c +++ b/src/code_13CAF0.c @@ -1,18 +1,39 @@ #include "common.h" -INCLUDE_ASM(s32, "code_13CAF0", pause_items_comparator); +s32 pause_items_comparator(s16* a, s16* b) { + if (*a > *b) { + return 1; + } else { + return -1; + } +} -INCLUDE_ASM(s32, "code_13CAF0", pause_items_get_pos_x); +s32 pause_items_get_pos_x(s32 page, s32 itemIndex) { + return (itemIndex % ITEM_MENU_PAGE(page)->numCols) * 98; +} -INCLUDE_ASM(s32, "code_13CAF0", pause_items_get_pos_y); +s32 pause_items_get_pos_y(s32 page, s32 itemIndex) { + return ((page + 1) * 11) + (ITEM_MENU_PAGE(page)->listStart * 16) + ((itemIndex / ITEM_MENU_PAGE(page)->numCols) * 16); +} -INCLUDE_ASM(s32, "code_13CAF0", pause_items_get_column); +s32 pause_items_get_column(s32 page, s32 itemIdx) { + return itemIdx % ITEM_MENU_PAGE(page)->numCols; +} -INCLUDE_ASM(s32, "code_13CAF0", pause_items_get_row); +s32 pause_items_get_row(s32 page, s32 itemIdx) { + return ITEM_MENU_PAGE(page)->listStart + (itemIdx / ITEM_MENU_PAGE(page)->numCols); +} -INCLUDE_ASM(s32, "code_13CAF0", pause_items_is_visible); +s32 pause_items_is_visible(s32 y) { + if (y < gItemMenuCurrentScrollPos - 32) { + return FALSE; + } + return y < gItemMenuCurrentScrollPos + 128; +} -INCLUDE_ASM(s32, "code_13CAF0", pause_items_scroll_offset_y); +s32 pause_items_scroll_offset_y(s32 beforeY) { + return beforeY - gItemMenuCurrentScrollPos; +} s32 pause_items_scroll_offset_x(s32 beforeX) { return beforeX; From eeea8798c7345bda6e3d162e216144e88ea821a7 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Thu, 12 Nov 2020 00:51:12 -0500 Subject: [PATCH 44/52] baby --- src/code_1421C0.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/code_1421C0.c b/src/code_1421C0.c index 7b7b7870f2..7e26d9697e 100644 --- a/src/code_1421C0.c +++ b/src/code_1421C0.c @@ -1,5 +1,12 @@ #include "common.h" +// Needs .data section +#ifdef NON_MATCHING +s32 pause_get_menu_string(s32 index) { + return gPauseMenuStrings[index]; +} +#else INCLUDE_ASM(s32, "code_1421C0", pause_get_menu_string); +#endif INCLUDE_ASM(s32, "code_1421C0", pause_draw_menu_label); From b3c8870efb63bc6d8f17bd5216f565dc93cbffe4 Mon Sep 17 00:00:00 2001 From: Lavos1 Date: Thu, 12 Nov 2020 10:27:07 +0000 Subject: [PATCH 45/52] PR --- .../code_190B20/add_part_decoration.s | 36 --------------- asm/nonmatchings/code_190B20/lookup_defense.s | 29 ------------ .../code_e79b0_len_1920/find_script_labels.s | 46 ------------------- src/code_190B20.c | 2 +- 4 files changed, 1 insertion(+), 112 deletions(-) delete mode 100644 asm/nonmatchings/code_190B20/add_part_decoration.s delete mode 100644 asm/nonmatchings/code_190B20/lookup_defense.s delete mode 100644 asm/nonmatchings/code_e79b0_len_1920/find_script_labels.s diff --git a/asm/nonmatchings/code_190B20/add_part_decoration.s b/asm/nonmatchings/code_190B20/add_part_decoration.s deleted file mode 100644 index cf2ec1ff96..0000000000 --- a/asm/nonmatchings/code_190B20/add_part_decoration.s +++ /dev/null @@ -1,36 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel add_part_decoration -/* 1959F4 80267114 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 1959F8 80267118 AFB10014 */ sw $s1, 0x14($sp) -/* 1959FC 8026711C 0080882D */ daddu $s1, $a0, $zero -/* 195A00 80267120 AFB20018 */ sw $s2, 0x18($sp) -/* 195A04 80267124 00A0902D */ daddu $s2, $a1, $zero -/* 195A08 80267128 AFBF0020 */ sw $ra, 0x20($sp) -/* 195A0C 8026712C AFB3001C */ sw $s3, 0x1c($sp) -/* 195A10 80267130 AFB00010 */ sw $s0, 0x10($sp) -/* 195A14 80267134 8E220094 */ lw $v0, 0x94($s1) -/* 195A18 80267138 1040000E */ beqz $v0, .L80267174 -/* 195A1C 8026713C 00C0982D */ daddu $s3, $a2, $zero -/* 195A20 80267140 8E220000 */ lw $v0, ($s1) -/* 195A24 80267144 30420002 */ andi $v0, $v0, 2 -/* 195A28 80267148 1440000A */ bnez $v0, .L80267174 -/* 195A2C 8026714C 00000000 */ nop -/* 195A30 80267150 8E3000C0 */ lw $s0, 0xc0($s1) -/* 195A34 80267154 0C09740F */ jal _remove_part_decoration -/* 195A38 80267158 02128021 */ addu $s0, $s0, $s2 -/* 195A3C 8026715C 0220202D */ daddu $a0, $s1, $zero -/* 195A40 80267160 24020001 */ addiu $v0, $zero, 1 -/* 195A44 80267164 A21308B8 */ sb $s3, 0x8b8($s0) -/* 195A48 80267168 A20208BA */ sb $v0, 0x8ba($s0) -/* 195A4C 8026716C 0C0973B2 */ jal func_8025CEC8 -/* 195A50 80267170 A20008BC */ sb $zero, 0x8bc($s0) -.L80267174: -/* 195A54 80267174 8FBF0020 */ lw $ra, 0x20($sp) -/* 195A58 80267178 8FB3001C */ lw $s3, 0x1c($sp) -/* 195A5C 8026717C 8FB20018 */ lw $s2, 0x18($sp) -/* 195A60 80267180 8FB10014 */ lw $s1, 0x14($sp) -/* 195A64 80267184 8FB00010 */ lw $s0, 0x10($sp) -/* 195A68 80267188 03E00008 */ jr $ra -/* 195A6C 8026718C 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/asm/nonmatchings/code_190B20/lookup_defense.s b/asm/nonmatchings/code_190B20/lookup_defense.s deleted file mode 100644 index 748f80c3d8..0000000000 --- a/asm/nonmatchings/code_190B20/lookup_defense.s +++ /dev/null @@ -1,29 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel lookup_defense -/* 194724 80265E44 0080182D */ daddu $v1, $a0, $zero -/* 194728 80265E48 8C620000 */ lw $v0, ($v1) -/* 19472C 80265E4C 1040000F */ beqz $v0, .L80265E8C -/* 194730 80265E50 0000302D */ daddu $a2, $zero, $zero -/* 194734 80265E54 24070001 */ addiu $a3, $zero, 1 -/* 194738 80265E58 24840004 */ addiu $a0, $a0, 4 -/* 19473C 80265E5C 8C620000 */ lw $v0, ($v1) -.L80265E60: -/* 194740 80265E60 14470002 */ bne $v0, $a3, .L80265E6C -/* 194744 80265E64 00000000 */ nop -/* 194748 80265E68 8C860000 */ lw $a2, ($a0) -.L80265E6C: -/* 19474C 80265E6C 14450004 */ bne $v0, $a1, .L80265E80 -/* 194750 80265E70 24630008 */ addiu $v1, $v1, 8 -/* 194754 80265E74 8C860000 */ lw $a2, ($a0) -/* 194758 80265E78 03E00008 */ jr $ra -/* 19475C 80265E7C 00C0102D */ daddu $v0, $a2, $zero -.L80265E80: -/* 194760 80265E80 8C620000 */ lw $v0, ($v1) -/* 194764 80265E84 1440FFF6 */ bnez $v0, .L80265E60 -/* 194768 80265E88 24840008 */ addiu $a0, $a0, 8 -.L80265E8C: -/* 19476C 80265E8C 00C0102D */ daddu $v0, $a2, $zero -/* 194770 80265E90 03E00008 */ jr $ra -/* 194774 80265E94 00000000 */ nop diff --git a/asm/nonmatchings/code_e79b0_len_1920/find_script_labels.s b/asm/nonmatchings/code_e79b0_len_1920/find_script_labels.s deleted file mode 100644 index 943f2006b4..0000000000 --- a/asm/nonmatchings/code_e79b0_len_1920/find_script_labels.s +++ /dev/null @@ -1,46 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel find_script_labels -/* E7AF8 802C3148 0000182D */ daddu $v1, $zero, $zero -/* E7AFC 802C314C 2406FFFF */ addiu $a2, $zero, -1 -/* E7B00 802C3150 0080282D */ daddu $a1, $a0, $zero -.L802C3154: -/* E7B04 802C3154 00831021 */ addu $v0, $a0, $v1 -/* E7B08 802C3158 A0460010 */ sb $a2, 0x10($v0) -/* E7B0C 802C315C ACA00020 */ sw $zero, 0x20($a1) -/* E7B10 802C3160 24630001 */ addiu $v1, $v1, 1 -/* E7B14 802C3164 28620010 */ slti $v0, $v1, 0x10 -/* E7B18 802C3168 1440FFFA */ bnez $v0, .L802C3154 -/* E7B1C 802C316C 24A50004 */ addiu $a1, $a1, 4 -/* E7B20 802C3170 0000382D */ daddu $a3, $zero, $zero -/* E7B24 802C3174 8C830008 */ lw $v1, 8($a0) -/* E7B28 802C3178 240A0001 */ addiu $t2, $zero, 1 -/* E7B2C 802C317C 24090003 */ addiu $t1, $zero, 3 -/* E7B30 802C3180 0080402D */ daddu $t0, $a0, $zero -.L802C3184: -/* E7B34 802C3184 8C650000 */ lw $a1, ($v1) -/* E7B38 802C3188 24630004 */ addiu $v1, $v1, 4 -/* E7B3C 802C318C 8C620000 */ lw $v0, ($v1) -/* E7B40 802C3190 24630004 */ addiu $v1, $v1, 4 -/* E7B44 802C3194 8C660000 */ lw $a2, ($v1) -/* E7B48 802C3198 00021080 */ sll $v0, $v0, 2 -/* E7B4C 802C319C 10AA000D */ beq $a1, $t2, .L802C31D4 -/* E7B50 802C31A0 00621821 */ addu $v1, $v1, $v0 -/* E7B54 802C31A4 14A90007 */ bne $a1, $t1, .L802C31C4 -/* E7B58 802C31A8 28E20010 */ slti $v0, $a3, 0x10 -/* E7B5C 802C31AC 00871021 */ addu $v0, $a0, $a3 -/* E7B60 802C31B0 A0460010 */ sb $a2, 0x10($v0) -/* E7B64 802C31B4 AD030020 */ sw $v1, 0x20($t0) -/* E7B68 802C31B8 25080004 */ addiu $t0, $t0, 4 -/* E7B6C 802C31BC 24E70001 */ addiu $a3, $a3, 1 -/* E7B70 802C31C0 28E20010 */ slti $v0, $a3, 0x10 -.L802C31C4: -/* E7B74 802C31C4 1440FFEF */ bnez $v0, .L802C3184 -/* E7B78 802C31C8 00000000 */ nop -.L802C31CC: -/* E7B7C 802C31CC 080B0C73 */ j .L802C31CC -/* E7B80 802C31D0 00000000 */ nop -.L802C31D4: -/* E7B84 802C31D4 03E00008 */ jr $ra -/* E7B88 802C31D8 00000000 */ nop diff --git a/src/code_190B20.c b/src/code_190B20.c index f28b96e7d9..a795359b82 100644 --- a/src/code_190B20.c +++ b/src/code_190B20.c @@ -287,7 +287,7 @@ void add_part_decoration(ActorPart* part, s32 decorationIndex, DecorationId deco DecorationTable* decoration; _remove_part_decoration(part, decorationIndex); - decoration = decorationTable + decorationIndex; + decoration = &decorationTable[decorationIndex]; decoration->decorationType[0] = decorationType; decoration->unk_8BA = 1; decoration->unk_8BC = 0; From 38f3e12f66e1fc2e6d3051007ed4c9d941fcd7a4 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Thu, 12 Nov 2020 13:38:17 -0500 Subject: [PATCH 46/52] UI Panels --- asm/nonmatchings/code_135EE0/func_80242BAC.s | 4 +- asm/nonmatchings/code_135EE0/func_80242D04.s | 4 +- asm/nonmatchings/code_135EE0/func_80242F90.s | 4 +- asm/nonmatchings/code_135EE0/func_80242FBC.s | 4 +- asm/nonmatchings/code_135EE0/func_80242FF4.s | 4 +- asm/nonmatchings/code_135EE0/func_80243090.s | 4 +- asm/nonmatchings/code_135EE0/func_802430E4.s | 4 +- asm/nonmatchings/code_135EE0/func_8024313C.s | 4 +- asm/nonmatchings/code_135EE0/func_80243188.s | 4 +- asm/nonmatchings/code_135EE0/func_80243238.s | 4 +- asm/nonmatchings/code_135EE0/func_802432E8.s | 4 +- asm/nonmatchings/code_135EE0/func_80243388.s | 4 +- asm/nonmatchings/code_135EE0/pause_init.s | 4 +- .../code_135EE0/pause_tabs_update.s | 8 ++-- asm/nonmatchings/code_163400/func_80242E00.s | 4 +- asm/nonmatchings/code_163400/func_8024330C.s | 4 +- asm/nonmatchings/code_163400/func_80243380.s | 4 +- asm/nonmatchings/code_163400/func_802433F4.s | 4 +- asm/nonmatchings/code_163400/func_80243468.s | 4 +- asm/nonmatchings/code_163400/func_80243550.s | 4 +- asm/nonmatchings/code_163400/func_802435C4.s | 4 +- asm/nonmatchings/code_163400/func_80243628.s | 4 +- asm/nonmatchings/code_163400/func_8024368C.s | 4 +- asm/nonmatchings/code_163400/func_802436F0.s | 4 +- asm/nonmatchings/code_163400/func_80243754.s | 4 +- asm/nonmatchings/code_163400/func_802437B8.s | 4 +- asm/nonmatchings/code_163400/func_8024381C.s | 4 +- asm/nonmatchings/code_163400/func_80243898.s | 4 +- asm/nonmatchings/code_163400/func_80243908.s | 4 +- asm/nonmatchings/code_163400/func_80243B10.s | 4 +- asm/nonmatchings/code_163400/func_80243CCC.s | 4 +- asm/nonmatchings/code_163400/func_80243EEC.s | 4 +- asm/nonmatchings/code_165490/func_80245808.s | 16 ++++---- asm/nonmatchings/code_165490/func_80245A40.s | 40 +++++++++---------- asm/nonmatchings/code_167570/func_802471EC.s | 32 +++++++-------- asm/nonmatchings/code_168590/func_80248170.s | 4 +- asm/nonmatchings/code_168590/func_80248A80.s | 8 ++-- asm/nonmatchings/code_168590/func_80248BF4.s | 16 ++++---- .../update_item_entity_temp.s | 12 +++--- .../code_ddaf0_len_c50/func_80147414.s | 4 +- .../code_ddaf0_len_c50/func_80147474.s | 4 +- .../code_ddaf0_len_c50/func_80147574.s | 4 +- .../code_ddaf0_len_c50/func_80147650.s | 4 +- .../code_ddaf0_len_c50/func_80147698.s | 8 ++-- .../code_ddaf0_len_c50/func_80147AC4.s | 4 +- .../code_ddaf0_len_c50/func_80147D70.s | 8 ++-- .../code_ddaf0_len_c50/func_80147E48.s | 4 +- .../code_ddaf0_len_c50/func_80147E7C.s | 4 +- .../code_ddaf0_len_c50/func_80147EC4.s | 4 +- .../code_ddaf0_len_c50/func_80147F30.s | 4 +- .../set_ui_panel_properties.s | 4 +- include/common_structs.h | 17 ++++++++ include/variables.h | 2 + src/code_ddaf0_len_c50.c | 18 ++------- undefined_syms.txt | 2 +- 55 files changed, 182 insertions(+), 173 deletions(-) diff --git a/asm/nonmatchings/code_135EE0/func_80242BAC.s b/asm/nonmatchings/code_135EE0/func_80242BAC.s index eb69024480..61edbd5140 100644 --- a/asm/nonmatchings/code_135EE0/func_80242BAC.s +++ b/asm/nonmatchings/code_135EE0/func_80242BAC.s @@ -8,8 +8,8 @@ glabel func_80242BAC /* 135EF8 80242BB8 AFB3001C */ sw $s3, 0x1c($sp) /* 135EFC 80242BBC 00C0982D */ daddu $s3, $a2, $zero /* 135F00 80242BC0 AFB40020 */ sw $s4, 0x20($sp) -/* 135F04 80242BC4 3C148016 */ lui $s4, %hi(D_80159D50) -/* 135F08 80242BC8 26949D50 */ addiu $s4, $s4, %lo(D_80159D50) +/* 135F04 80242BC4 3C148016 */ lui $s4, %hi(gUIPanels) +/* 135F08 80242BC8 26949D50 */ addiu $s4, $s4, %lo(gUIPanels) /* 135F0C 80242BCC 00042140 */ sll $a0, $a0, 5 /* 135F10 80242BD0 AFB20018 */ sw $s2, 0x18($sp) /* 135F14 80242BD4 3C128025 */ lui $s2, 0x8025 diff --git a/asm/nonmatchings/code_135EE0/func_80242D04.s b/asm/nonmatchings/code_135EE0/func_80242D04.s index 3179810463..7489c1d6a7 100644 --- a/asm/nonmatchings/code_135EE0/func_80242D04.s +++ b/asm/nonmatchings/code_135EE0/func_80242D04.s @@ -8,8 +8,8 @@ glabel func_80242D04 /* 136050 80242D10 AFB3001C */ sw $s3, 0x1c($sp) /* 136054 80242D14 00C0982D */ daddu $s3, $a2, $zero /* 136058 80242D18 AFB40020 */ sw $s4, 0x20($sp) -/* 13605C 80242D1C 3C148016 */ lui $s4, %hi(D_80159D50) -/* 136060 80242D20 26949D50 */ addiu $s4, $s4, %lo(D_80159D50) +/* 13605C 80242D1C 3C148016 */ lui $s4, %hi(gUIPanels) +/* 136060 80242D20 26949D50 */ addiu $s4, $s4, %lo(gUIPanels) /* 136064 80242D24 00042140 */ sll $a0, $a0, 5 /* 136068 80242D28 AFB10014 */ sw $s1, 0x14($sp) /* 13606C 80242D2C 3C118025 */ lui $s1, 0x8025 diff --git a/asm/nonmatchings/code_135EE0/func_80242F90.s b/asm/nonmatchings/code_135EE0/func_80242F90.s index 42eec96db7..40066109d3 100644 --- a/asm/nonmatchings/code_135EE0/func_80242F90.s +++ b/asm/nonmatchings/code_135EE0/func_80242F90.s @@ -6,8 +6,8 @@ glabel func_80242F90 /* 1362D4 80242F94 8FA30028 */ lw $v1, 0x28($sp) /* 1362D8 80242F98 00042140 */ sll $a0, $a0, 5 /* 1362DC 80242F9C AC620000 */ sw $v0, ($v1) -/* 1362E0 80242FA0 3C028016 */ lui $v0, %hi(D_80159D50) -/* 1362E4 80242FA4 24429D50 */ addiu $v0, $v0, %lo(D_80159D50) +/* 1362E0 80242FA0 3C028016 */ lui $v0, %hi(gUIPanels) +/* 1362E4 80242FA4 24429D50 */ addiu $v0, $v0, %lo(gUIPanels) /* 1362E8 80242FA8 00822021 */ addu $a0, $a0, $v0 /* 1362EC 80242FAC 90820000 */ lbu $v0, ($a0) /* 1362F0 80242FB0 304200F3 */ andi $v0, $v0, 0xf3 diff --git a/asm/nonmatchings/code_135EE0/func_80242FBC.s b/asm/nonmatchings/code_135EE0/func_80242FBC.s index 8e09144dd8..06add2e823 100644 --- a/asm/nonmatchings/code_135EE0/func_80242FBC.s +++ b/asm/nonmatchings/code_135EE0/func_80242FBC.s @@ -9,8 +9,8 @@ glabel func_80242FBC /* 13630C 80242FCC AC620000 */ sw $v0, ($v1) /* 136310 80242FD0 24020050 */ addiu $v0, $zero, 0x50 /* 136314 80242FD4 ACA20000 */ sw $v0, ($a1) -/* 136318 80242FD8 3C028016 */ lui $v0, %hi(D_80159D50) -/* 13631C 80242FDC 24429D50 */ addiu $v0, $v0, %lo(D_80159D50) +/* 136318 80242FD8 3C028016 */ lui $v0, %hi(gUIPanels) +/* 13631C 80242FDC 24429D50 */ addiu $v0, $v0, %lo(gUIPanels) /* 136320 80242FE0 00822021 */ addu $a0, $a0, $v0 /* 136324 80242FE4 90820000 */ lbu $v0, ($a0) /* 136328 80242FE8 304200F3 */ andi $v0, $v0, 0xf3 diff --git a/asm/nonmatchings/code_135EE0/func_80242FF4.s b/asm/nonmatchings/code_135EE0/func_80242FF4.s index c67e046e6a..a6aaf8a6ee 100644 --- a/asm/nonmatchings/code_135EE0/func_80242FF4.s +++ b/asm/nonmatchings/code_135EE0/func_80242FF4.s @@ -3,8 +3,8 @@ glabel func_80242FF4 /* 136334 80242FF4 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 136338 80242FF8 3C038016 */ lui $v1, %hi(D_80159D50) -/* 13633C 80242FFC 24639D50 */ addiu $v1, $v1, %lo(D_80159D50) +/* 136338 80242FF8 3C038016 */ lui $v1, %hi(gUIPanels) +/* 13633C 80242FFC 24639D50 */ addiu $v1, $v1, %lo(gUIPanels) /* 136340 80243000 00041140 */ sll $v0, $a0, 5 /* 136344 80243004 AFB00010 */ sw $s0, 0x10($sp) /* 136348 80243008 00438021 */ addu $s0, $v0, $v1 diff --git a/asm/nonmatchings/code_135EE0/func_80243090.s b/asm/nonmatchings/code_135EE0/func_80243090.s index ca51a0a82b..e5905e1062 100644 --- a/asm/nonmatchings/code_135EE0/func_80243090.s +++ b/asm/nonmatchings/code_135EE0/func_80243090.s @@ -3,8 +3,8 @@ glabel func_80243090 /* 1363D0 80243090 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 1363D4 80243094 3C028016 */ lui $v0, %hi(D_80159D50) -/* 1363D8 80243098 24429D50 */ addiu $v0, $v0, %lo(D_80159D50) +/* 1363D4 80243094 3C028016 */ lui $v0, %hi(gUIPanels) +/* 1363D8 80243098 24429D50 */ addiu $v0, $v0, %lo(gUIPanels) /* 1363DC 8024309C 00041940 */ sll $v1, $a0, 5 /* 1363E0 802430A0 AFB00010 */ sw $s0, 0x10($sp) /* 1363E4 802430A4 00628021 */ addu $s0, $v1, $v0 diff --git a/asm/nonmatchings/code_135EE0/func_802430E4.s b/asm/nonmatchings/code_135EE0/func_802430E4.s index ff476afe6a..61b43612bd 100644 --- a/asm/nonmatchings/code_135EE0/func_802430E4.s +++ b/asm/nonmatchings/code_135EE0/func_802430E4.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel func_802430E4 -/* 136424 802430E4 3C028016 */ lui $v0, %hi(D_80159D50) -/* 136428 802430E8 24429D50 */ addiu $v0, $v0, %lo(D_80159D50) +/* 136424 802430E4 3C028016 */ lui $v0, %hi(gUIPanels) +/* 136428 802430E8 24429D50 */ addiu $v0, $v0, %lo(gUIPanels) /* 13642C 802430EC 00042140 */ sll $a0, $a0, 5 /* 136430 802430F0 00822021 */ addu $a0, $a0, $v0 /* 136434 802430F4 9083001C */ lbu $v1, 0x1c($a0) diff --git a/asm/nonmatchings/code_135EE0/func_8024313C.s b/asm/nonmatchings/code_135EE0/func_8024313C.s index 121d8f1a63..467d496f51 100644 --- a/asm/nonmatchings/code_135EE0/func_8024313C.s +++ b/asm/nonmatchings/code_135EE0/func_8024313C.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel func_8024313C -/* 13647C 8024313C 3C028016 */ lui $v0, %hi(D_80159D50) -/* 136480 80243140 24429D50 */ addiu $v0, $v0, %lo(D_80159D50) +/* 13647C 8024313C 3C028016 */ lui $v0, %hi(gUIPanels) +/* 136480 80243140 24429D50 */ addiu $v0, $v0, %lo(gUIPanels) /* 136484 80243144 00042140 */ sll $a0, $a0, 5 /* 136488 80243148 00822021 */ addu $a0, $a0, $v0 /* 13648C 8024314C 9083001C */ lbu $v1, 0x1c($a0) diff --git a/asm/nonmatchings/code_135EE0/func_80243188.s b/asm/nonmatchings/code_135EE0/func_80243188.s index 9846e0494a..095a3e8902 100644 --- a/asm/nonmatchings/code_135EE0/func_80243188.s +++ b/asm/nonmatchings/code_135EE0/func_80243188.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel func_80243188 -/* 1364C8 80243188 3C028016 */ lui $v0, %hi(D_80159D50) -/* 1364CC 8024318C 24429D50 */ addiu $v0, $v0, %lo(D_80159D50) +/* 1364C8 80243188 3C028016 */ lui $v0, %hi(gUIPanels) +/* 1364CC 8024318C 24429D50 */ addiu $v0, $v0, %lo(gUIPanels) /* 1364D0 80243190 00042140 */ sll $a0, $a0, 5 /* 1364D4 80243194 00822021 */ addu $a0, $a0, $v0 /* 1364D8 80243198 9083001C */ lbu $v1, 0x1c($a0) diff --git a/asm/nonmatchings/code_135EE0/func_80243238.s b/asm/nonmatchings/code_135EE0/func_80243238.s index c4eb8d00c1..d389813eef 100644 --- a/asm/nonmatchings/code_135EE0/func_80243238.s +++ b/asm/nonmatchings/code_135EE0/func_80243238.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel func_80243238 -/* 136578 80243238 3C028016 */ lui $v0, %hi(D_80159D50) -/* 13657C 8024323C 24429D50 */ addiu $v0, $v0, %lo(D_80159D50) +/* 136578 80243238 3C028016 */ lui $v0, %hi(gUIPanels) +/* 13657C 8024323C 24429D50 */ addiu $v0, $v0, %lo(gUIPanels) /* 136580 80243240 00042140 */ sll $a0, $a0, 5 /* 136584 80243244 00822021 */ addu $a0, $a0, $v0 /* 136588 80243248 9083001C */ lbu $v1, 0x1c($a0) diff --git a/asm/nonmatchings/code_135EE0/func_802432E8.s b/asm/nonmatchings/code_135EE0/func_802432E8.s index 650da83a89..fd8c742a70 100644 --- a/asm/nonmatchings/code_135EE0/func_802432E8.s +++ b/asm/nonmatchings/code_135EE0/func_802432E8.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel func_802432E8 -/* 136628 802432E8 3C028016 */ lui $v0, %hi(D_80159D50) -/* 13662C 802432EC 24429D50 */ addiu $v0, $v0, %lo(D_80159D50) +/* 136628 802432E8 3C028016 */ lui $v0, %hi(gUIPanels) +/* 13662C 802432EC 24429D50 */ addiu $v0, $v0, %lo(gUIPanels) /* 136630 802432F0 00042140 */ sll $a0, $a0, 5 /* 136634 802432F4 00822021 */ addu $a0, $a0, $v0 /* 136638 802432F8 9083001C */ lbu $v1, 0x1c($a0) diff --git a/asm/nonmatchings/code_135EE0/func_80243388.s b/asm/nonmatchings/code_135EE0/func_80243388.s index a32a8c4050..816719f043 100644 --- a/asm/nonmatchings/code_135EE0/func_80243388.s +++ b/asm/nonmatchings/code_135EE0/func_80243388.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel func_80243388 -/* 1366C8 80243388 3C028016 */ lui $v0, %hi(D_80159D50) -/* 1366CC 8024338C 24429D50 */ addiu $v0, $v0, %lo(D_80159D50) +/* 1366C8 80243388 3C028016 */ lui $v0, %hi(gUIPanels) +/* 1366CC 8024338C 24429D50 */ addiu $v0, $v0, %lo(gUIPanels) /* 1366D0 80243390 00042140 */ sll $a0, $a0, 5 /* 1366D4 80243394 00822021 */ addu $a0, $a0, $v0 /* 1366D8 80243398 9083001C */ lbu $v1, 0x1c($a0) diff --git a/asm/nonmatchings/code_135EE0/pause_init.s b/asm/nonmatchings/code_135EE0/pause_init.s index c02f453902..09652ba870 100644 --- a/asm/nonmatchings/code_135EE0/pause_init.s +++ b/asm/nonmatchings/code_135EE0/pause_init.s @@ -81,8 +81,8 @@ glabel pause_init /* 1374C0 80244180 26100004 */ addiu $s0, $s0, 4 /* 1374C4 80244184 241400E1 */ addiu $s4, $zero, 0xe1 /* 1374C8 80244188 24110006 */ addiu $s1, $zero, 6 -/* 1374CC 8024418C 3C158016 */ lui $s5, %hi(D_80159D50) -/* 1374D0 80244190 26B59D50 */ addiu $s5, $s5, %lo(D_80159D50) +/* 1374CC 8024418C 3C158016 */ lui $s5, %hi(gUIPanels) +/* 1374D0 80244190 26B59D50 */ addiu $s5, $s5, %lo(gUIPanels) /* 1374D4 80244194 241303C0 */ addiu $s3, $zero, 0x3c0 /* 1374D8 80244198 2412001E */ addiu $s2, $zero, 0x1e /* 1374DC 8024419C 3C108025 */ lui $s0, 0x8025 diff --git a/asm/nonmatchings/code_135EE0/pause_tabs_update.s b/asm/nonmatchings/code_135EE0/pause_tabs_update.s index 96339aac45..d5066ef001 100644 --- a/asm/nonmatchings/code_135EE0/pause_tabs_update.s +++ b/asm/nonmatchings/code_135EE0/pause_tabs_update.s @@ -114,8 +114,8 @@ glabel pause_tabs_update /* 138A90 80245750 24E7EF80 */ addiu $a3, $a3, %lo(gPauseMenuTabs) /* 138A94 80245754 3C068025 */ lui $a2, 0x8025 /* 138A98 80245758 24C6F1D0 */ addiu $a2, $a2, -0xe30 -/* 138A9C 8024575C 3C058016 */ lui $a1, %hi(D_80159D50) -/* 138AA0 80245760 24A59D50 */ addiu $a1, $a1, %lo(D_80159D50) +/* 138A9C 8024575C 3C058016 */ lui $a1, %hi(gUIPanels) +/* 138AA0 80245760 24A59D50 */ addiu $a1, $a1, %lo(gUIPanels) /* 138AA4 80245764 3C038025 */ lui $v1, 0x8025 /* 138AA8 80245768 2463F1E0 */ addiu $v1, $v1, -0xe20 /* 138AAC 8024576C 02061021 */ addu $v0, $s0, $a2 @@ -164,8 +164,8 @@ glabel pause_tabs_update /* 138B48 80245808 90420000 */ lbu $v0, ($v0) /* 138B4C 8024580C 50400017 */ beql $v0, $zero, .L8024586C /* 138B50 80245810 26100001 */ addiu $s0, $s0, 1 -/* 138B54 80245814 3C088016 */ lui $t0, %hi(D_80159D50) -/* 138B58 80245818 25089D50 */ addiu $t0, $t0, %lo(D_80159D50) +/* 138B54 80245814 3C088016 */ lui $t0, %hi(gUIPanels) +/* 138B58 80245818 25089D50 */ addiu $t0, $t0, %lo(gUIPanels) /* 138B5C 8024581C 92220000 */ lbu $v0, ($s1) /* 138B60 80245820 82630001 */ lb $v1, 1($s3) /* 138B64 80245824 00021140 */ sll $v0, $v0, 5 diff --git a/asm/nonmatchings/code_163400/func_80242E00.s b/asm/nonmatchings/code_163400/func_80242E00.s index aab21f5ff2..3604d1778f 100644 --- a/asm/nonmatchings/code_163400/func_80242E00.s +++ b/asm/nonmatchings/code_163400/func_80242E00.s @@ -8,8 +8,8 @@ glabel func_80242E00 /* 16366C 80242E0C AFB3001C */ sw $s3, 0x1c($sp) /* 163670 80242E10 00C0982D */ daddu $s3, $a2, $zero /* 163674 80242E14 AFB40020 */ sw $s4, 0x20($sp) -/* 163678 80242E18 3C148016 */ lui $s4, %hi(D_80159D50) -/* 16367C 80242E1C 26949D50 */ addiu $s4, $s4, %lo(D_80159D50) +/* 163678 80242E18 3C148016 */ lui $s4, %hi(gUIPanels) +/* 16367C 80242E1C 26949D50 */ addiu $s4, $s4, %lo(gUIPanels) /* 163680 80242E20 00042140 */ sll $a0, $a0, 5 /* 163684 80242E24 AFB10014 */ sw $s1, 0x14($sp) /* 163688 80242E28 3C118025 */ lui $s1, 0x8025 diff --git a/asm/nonmatchings/code_163400/func_8024330C.s b/asm/nonmatchings/code_163400/func_8024330C.s index 4c05384b3a..53d57d16c0 100644 --- a/asm/nonmatchings/code_163400/func_8024330C.s +++ b/asm/nonmatchings/code_163400/func_8024330C.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel func_8024330C -/* 163B6C 8024330C 3C028016 */ lui $v0, %hi(D_80159D50) -/* 163B70 80243310 24429D50 */ addiu $v0, $v0, %lo(D_80159D50) +/* 163B6C 8024330C 3C028016 */ lui $v0, %hi(gUIPanels) +/* 163B70 80243310 24429D50 */ addiu $v0, $v0, %lo(gUIPanels) /* 163B74 80243314 00042140 */ sll $a0, $a0, 5 /* 163B78 80243318 00822021 */ addu $a0, $a0, $v0 /* 163B7C 8024331C 9083001C */ lbu $v1, 0x1c($a0) diff --git a/asm/nonmatchings/code_163400/func_80243380.s b/asm/nonmatchings/code_163400/func_80243380.s index 7d5ecd0e96..bf469ba317 100644 --- a/asm/nonmatchings/code_163400/func_80243380.s +++ b/asm/nonmatchings/code_163400/func_80243380.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel func_80243380 -/* 163BE0 80243380 3C028016 */ lui $v0, %hi(D_80159D50) -/* 163BE4 80243384 24429D50 */ addiu $v0, $v0, %lo(D_80159D50) +/* 163BE0 80243380 3C028016 */ lui $v0, %hi(gUIPanels) +/* 163BE4 80243384 24429D50 */ addiu $v0, $v0, %lo(gUIPanels) /* 163BE8 80243388 00042140 */ sll $a0, $a0, 5 /* 163BEC 8024338C 00822021 */ addu $a0, $a0, $v0 /* 163BF0 80243390 9083001C */ lbu $v1, 0x1c($a0) diff --git a/asm/nonmatchings/code_163400/func_802433F4.s b/asm/nonmatchings/code_163400/func_802433F4.s index dc5c8d949d..714e9c282f 100644 --- a/asm/nonmatchings/code_163400/func_802433F4.s +++ b/asm/nonmatchings/code_163400/func_802433F4.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel func_802433F4 -/* 163C54 802433F4 3C028016 */ lui $v0, %hi(D_80159D50) -/* 163C58 802433F8 24429D50 */ addiu $v0, $v0, %lo(D_80159D50) +/* 163C54 802433F4 3C028016 */ lui $v0, %hi(gUIPanels) +/* 163C58 802433F8 24429D50 */ addiu $v0, $v0, %lo(gUIPanels) /* 163C5C 802433FC 00042140 */ sll $a0, $a0, 5 /* 163C60 80243400 00822021 */ addu $a0, $a0, $v0 /* 163C64 80243404 9083001C */ lbu $v1, 0x1c($a0) diff --git a/asm/nonmatchings/code_163400/func_80243468.s b/asm/nonmatchings/code_163400/func_80243468.s index 2508991a8e..98e410c936 100644 --- a/asm/nonmatchings/code_163400/func_80243468.s +++ b/asm/nonmatchings/code_163400/func_80243468.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel func_80243468 -/* 163CC8 80243468 3C028016 */ lui $v0, %hi(D_80159D50) -/* 163CCC 8024346C 24429D50 */ addiu $v0, $v0, %lo(D_80159D50) +/* 163CC8 80243468 3C028016 */ lui $v0, %hi(gUIPanels) +/* 163CCC 8024346C 24429D50 */ addiu $v0, $v0, %lo(gUIPanels) /* 163CD0 80243470 00042140 */ sll $a0, $a0, 5 /* 163CD4 80243474 00822021 */ addu $a0, $a0, $v0 /* 163CD8 80243478 9083001C */ lbu $v1, 0x1c($a0) diff --git a/asm/nonmatchings/code_163400/func_80243550.s b/asm/nonmatchings/code_163400/func_80243550.s index 28b54e6ffb..de875a54be 100644 --- a/asm/nonmatchings/code_163400/func_80243550.s +++ b/asm/nonmatchings/code_163400/func_80243550.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel func_80243550 -/* 163DB0 80243550 3C028016 */ lui $v0, %hi(D_80159D50) -/* 163DB4 80243554 24429D50 */ addiu $v0, $v0, %lo(D_80159D50) +/* 163DB0 80243550 3C028016 */ lui $v0, %hi(gUIPanels) +/* 163DB4 80243554 24429D50 */ addiu $v0, $v0, %lo(gUIPanels) /* 163DB8 80243558 00042140 */ sll $a0, $a0, 5 /* 163DBC 8024355C 00822021 */ addu $a0, $a0, $v0 /* 163DC0 80243560 9083001C */ lbu $v1, 0x1c($a0) diff --git a/asm/nonmatchings/code_163400/func_802435C4.s b/asm/nonmatchings/code_163400/func_802435C4.s index 15d49436b8..0fbb738132 100644 --- a/asm/nonmatchings/code_163400/func_802435C4.s +++ b/asm/nonmatchings/code_163400/func_802435C4.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel func_802435C4 -/* 163E24 802435C4 3C028016 */ lui $v0, %hi(D_80159D50) -/* 163E28 802435C8 24429D50 */ addiu $v0, $v0, %lo(D_80159D50) +/* 163E24 802435C4 3C028016 */ lui $v0, %hi(gUIPanels) +/* 163E28 802435C8 24429D50 */ addiu $v0, $v0, %lo(gUIPanels) /* 163E2C 802435CC 00042140 */ sll $a0, $a0, 5 /* 163E30 802435D0 00822021 */ addu $a0, $a0, $v0 /* 163E34 802435D4 9083001C */ lbu $v1, 0x1c($a0) diff --git a/asm/nonmatchings/code_163400/func_80243628.s b/asm/nonmatchings/code_163400/func_80243628.s index 95b467d432..f3e90d29bf 100644 --- a/asm/nonmatchings/code_163400/func_80243628.s +++ b/asm/nonmatchings/code_163400/func_80243628.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel func_80243628 -/* 163E88 80243628 3C028016 */ lui $v0, %hi(D_80159D50) -/* 163E8C 8024362C 24429D50 */ addiu $v0, $v0, %lo(D_80159D50) +/* 163E88 80243628 3C028016 */ lui $v0, %hi(gUIPanels) +/* 163E8C 8024362C 24429D50 */ addiu $v0, $v0, %lo(gUIPanels) /* 163E90 80243630 00042140 */ sll $a0, $a0, 5 /* 163E94 80243634 00822021 */ addu $a0, $a0, $v0 /* 163E98 80243638 9083001C */ lbu $v1, 0x1c($a0) diff --git a/asm/nonmatchings/code_163400/func_8024368C.s b/asm/nonmatchings/code_163400/func_8024368C.s index e44b7fd750..9b8a387bc8 100644 --- a/asm/nonmatchings/code_163400/func_8024368C.s +++ b/asm/nonmatchings/code_163400/func_8024368C.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel func_8024368C -/* 163EEC 8024368C 3C028016 */ lui $v0, %hi(D_80159D50) -/* 163EF0 80243690 24429D50 */ addiu $v0, $v0, %lo(D_80159D50) +/* 163EEC 8024368C 3C028016 */ lui $v0, %hi(gUIPanels) +/* 163EF0 80243690 24429D50 */ addiu $v0, $v0, %lo(gUIPanels) /* 163EF4 80243694 00042140 */ sll $a0, $a0, 5 /* 163EF8 80243698 00822021 */ addu $a0, $a0, $v0 /* 163EFC 8024369C 9083001C */ lbu $v1, 0x1c($a0) diff --git a/asm/nonmatchings/code_163400/func_802436F0.s b/asm/nonmatchings/code_163400/func_802436F0.s index e58f52492f..6944eaf6a4 100644 --- a/asm/nonmatchings/code_163400/func_802436F0.s +++ b/asm/nonmatchings/code_163400/func_802436F0.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel func_802436F0 -/* 163F50 802436F0 3C028016 */ lui $v0, %hi(D_80159D50) -/* 163F54 802436F4 24429D50 */ addiu $v0, $v0, %lo(D_80159D50) +/* 163F50 802436F0 3C028016 */ lui $v0, %hi(gUIPanels) +/* 163F54 802436F4 24429D50 */ addiu $v0, $v0, %lo(gUIPanels) /* 163F58 802436F8 00042140 */ sll $a0, $a0, 5 /* 163F5C 802436FC 00822021 */ addu $a0, $a0, $v0 /* 163F60 80243700 9083001C */ lbu $v1, 0x1c($a0) diff --git a/asm/nonmatchings/code_163400/func_80243754.s b/asm/nonmatchings/code_163400/func_80243754.s index 72d51212fe..a1c6bcfd60 100644 --- a/asm/nonmatchings/code_163400/func_80243754.s +++ b/asm/nonmatchings/code_163400/func_80243754.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel func_80243754 -/* 163FB4 80243754 3C028016 */ lui $v0, %hi(D_80159D50) -/* 163FB8 80243758 24429D50 */ addiu $v0, $v0, %lo(D_80159D50) +/* 163FB4 80243754 3C028016 */ lui $v0, %hi(gUIPanels) +/* 163FB8 80243758 24429D50 */ addiu $v0, $v0, %lo(gUIPanels) /* 163FBC 8024375C 00042140 */ sll $a0, $a0, 5 /* 163FC0 80243760 00822021 */ addu $a0, $a0, $v0 /* 163FC4 80243764 9083001C */ lbu $v1, 0x1c($a0) diff --git a/asm/nonmatchings/code_163400/func_802437B8.s b/asm/nonmatchings/code_163400/func_802437B8.s index 9fd3074c64..f85d6e75ef 100644 --- a/asm/nonmatchings/code_163400/func_802437B8.s +++ b/asm/nonmatchings/code_163400/func_802437B8.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel func_802437B8 -/* 164018 802437B8 3C028016 */ lui $v0, %hi(D_80159D50) -/* 16401C 802437BC 24429D50 */ addiu $v0, $v0, %lo(D_80159D50) +/* 164018 802437B8 3C028016 */ lui $v0, %hi(gUIPanels) +/* 16401C 802437BC 24429D50 */ addiu $v0, $v0, %lo(gUIPanels) /* 164020 802437C0 00042140 */ sll $a0, $a0, 5 /* 164024 802437C4 00822021 */ addu $a0, $a0, $v0 /* 164028 802437C8 9083001C */ lbu $v1, 0x1c($a0) diff --git a/asm/nonmatchings/code_163400/func_8024381C.s b/asm/nonmatchings/code_163400/func_8024381C.s index 1844c7d6b8..02f2090708 100644 --- a/asm/nonmatchings/code_163400/func_8024381C.s +++ b/asm/nonmatchings/code_163400/func_8024381C.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel func_8024381C -/* 16407C 8024381C 3C028016 */ lui $v0, %hi(D_80159D50) -/* 164080 80243820 24429D50 */ addiu $v0, $v0, %lo(D_80159D50) +/* 16407C 8024381C 3C028016 */ lui $v0, %hi(gUIPanels) +/* 164080 80243820 24429D50 */ addiu $v0, $v0, %lo(gUIPanels) /* 164084 80243824 00042140 */ sll $a0, $a0, 5 /* 164088 80243828 00822021 */ addu $a0, $a0, $v0 /* 16408C 8024382C 9083001C */ lbu $v1, 0x1c($a0) diff --git a/asm/nonmatchings/code_163400/func_80243898.s b/asm/nonmatchings/code_163400/func_80243898.s index 55c53df53c..74b6015c0d 100644 --- a/asm/nonmatchings/code_163400/func_80243898.s +++ b/asm/nonmatchings/code_163400/func_80243898.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel func_80243898 -/* 1640F8 80243898 3C028016 */ lui $v0, %hi(D_80159D50) -/* 1640FC 8024389C 24429D50 */ addiu $v0, $v0, %lo(D_80159D50) +/* 1640F8 80243898 3C028016 */ lui $v0, %hi(gUIPanels) +/* 1640FC 8024389C 24429D50 */ addiu $v0, $v0, %lo(gUIPanels) /* 164100 802438A0 00042140 */ sll $a0, $a0, 5 /* 164104 802438A4 00822021 */ addu $a0, $a0, $v0 /* 164108 802438A8 9083001C */ lbu $v1, 0x1c($a0) diff --git a/asm/nonmatchings/code_163400/func_80243908.s b/asm/nonmatchings/code_163400/func_80243908.s index 4bc9f5f13b..cbeecc37d8 100644 --- a/asm/nonmatchings/code_163400/func_80243908.s +++ b/asm/nonmatchings/code_163400/func_80243908.s @@ -3,8 +3,8 @@ glabel func_80243908 /* 164168 80243908 00C0482D */ daddu $t1, $a2, $zero -/* 16416C 8024390C 3C028016 */ lui $v0, %hi(D_80159D50) -/* 164170 80243910 24429D50 */ addiu $v0, $v0, %lo(D_80159D50) +/* 16416C 8024390C 3C028016 */ lui $v0, %hi(gUIPanels) +/* 164170 80243910 24429D50 */ addiu $v0, $v0, %lo(gUIPanels) /* 164174 80243914 00042140 */ sll $a0, $a0, 5 /* 164178 80243918 00824021 */ addu $t0, $a0, $v0 /* 16417C 8024391C 81050003 */ lb $a1, 3($t0) diff --git a/asm/nonmatchings/code_163400/func_80243B10.s b/asm/nonmatchings/code_163400/func_80243B10.s index 09099d8c85..9f5e8534eb 100644 --- a/asm/nonmatchings/code_163400/func_80243B10.s +++ b/asm/nonmatchings/code_163400/func_80243B10.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel func_80243B10 -/* 164370 80243B10 3C028016 */ lui $v0, %hi(D_80159D50) -/* 164374 80243B14 24429D50 */ addiu $v0, $v0, %lo(D_80159D50) +/* 164370 80243B10 3C028016 */ lui $v0, %hi(gUIPanels) +/* 164374 80243B14 24429D50 */ addiu $v0, $v0, %lo(gUIPanels) /* 164378 80243B18 00042140 */ sll $a0, $a0, 5 /* 16437C 80243B1C 00822021 */ addu $a0, $a0, $v0 /* 164380 80243B20 9082001C */ lbu $v0, 0x1c($a0) diff --git a/asm/nonmatchings/code_163400/func_80243CCC.s b/asm/nonmatchings/code_163400/func_80243CCC.s index 6809e077ca..d0d0b0caec 100644 --- a/asm/nonmatchings/code_163400/func_80243CCC.s +++ b/asm/nonmatchings/code_163400/func_80243CCC.s @@ -17,8 +17,8 @@ glabel func_80243CCC /* 16455C 80243CFC 35084340 */ ori $t0, $t0, 0x4340 /* 164560 80243D00 3C05800A */ lui $a1, 0x800a /* 164564 80243D04 24A5A66C */ addiu $a1, $a1, -0x5994 -/* 164568 80243D08 3C038016 */ lui $v1, %hi(D_80159D50) -/* 16456C 80243D0C 24639D50 */ addiu $v1, $v1, %lo(D_80159D50) +/* 164568 80243D08 3C038016 */ lui $v1, %hi(gUIPanels) +/* 16456C 80243D0C 24639D50 */ addiu $v1, $v1, %lo(gUIPanels) /* 164570 80243D10 00042140 */ sll $a0, $a0, 5 /* 164574 80243D14 AFB40038 */ sw $s4, 0x38($sp) /* 164578 80243D18 0083A021 */ addu $s4, $a0, $v1 diff --git a/asm/nonmatchings/code_163400/func_80243EEC.s b/asm/nonmatchings/code_163400/func_80243EEC.s index cf5efef35d..03a232a82e 100644 --- a/asm/nonmatchings/code_163400/func_80243EEC.s +++ b/asm/nonmatchings/code_163400/func_80243EEC.s @@ -3,8 +3,8 @@ glabel func_80243EEC /* 16474C 80243EEC 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 164750 80243EF0 3C028016 */ lui $v0, %hi(D_80159D50) -/* 164754 80243EF4 24429D50 */ addiu $v0, $v0, %lo(D_80159D50) +/* 164750 80243EF0 3C028016 */ lui $v0, %hi(gUIPanels) +/* 164754 80243EF4 24429D50 */ addiu $v0, $v0, %lo(gUIPanels) /* 164758 80243EF8 00042140 */ sll $a0, $a0, 5 /* 16475C 80243EFC 00822021 */ addu $a0, $a0, $v0 /* 164760 80243F00 AFBF0030 */ sw $ra, 0x30($sp) diff --git a/asm/nonmatchings/code_165490/func_80245808.s b/asm/nonmatchings/code_165490/func_80245808.s index b2e29c2125..f1b30971d4 100644 --- a/asm/nonmatchings/code_165490/func_80245808.s +++ b/asm/nonmatchings/code_165490/func_80245808.s @@ -61,22 +61,22 @@ glabel func_80245808 /* 166140 802458E0 24020002 */ addiu $v0, $zero, 2 /* 166144 802458E4 14620006 */ bne $v1, $v0, .L80245900 /* 166148 802458E8 24020001 */ addiu $v0, $zero, 1 -/* 16614C 802458EC 3C038016 */ lui $v1, %hi(D_80159D50) -/* 166150 802458F0 24639D50 */ addiu $v1, $v1, %lo(D_80159D50) +/* 16614C 802458EC 3C038016 */ lui $v1, %hi(gUIPanels) +/* 166150 802458F0 24639D50 */ addiu $v1, $v1, %lo(gUIPanels) /* 166154 802458F4 A46205AE */ sh $v0, 0x5ae($v1) /* 166158 802458F8 08091644 */ j .L80245910 /* 16615C 802458FC 240200D3 */ addiu $v0, $zero, 0xd3 .L80245900: -/* 166160 80245900 3C038016 */ lui $v1, %hi(D_80159D50) -/* 166164 80245904 24639D50 */ addiu $v1, $v1, %lo(D_80159D50) +/* 166160 80245900 3C038016 */ lui $v1, %hi(gUIPanels) +/* 166164 80245904 24639D50 */ addiu $v1, $v1, %lo(gUIPanels) /* 166168 80245908 A46205AE */ sh $v0, 0x5ae($v1) /* 16616C 8024590C 240200A2 */ addiu $v0, $zero, 0xa2 .L80245910: /* 166170 80245910 A46205B0 */ sh $v0, 0x5b0($v1) /* 166174 80245914 24020019 */ addiu $v0, $zero, 0x19 /* 166178 80245918 A46205B2 */ sh $v0, 0x5b2($v1) -/* 16617C 8024591C 3C048016 */ lui $a0, %hi(D_80159D50) -/* 166180 80245920 24849D50 */ addiu $a0, $a0, %lo(D_80159D50) +/* 16617C 8024591C 3C048016 */ lui $a0, %hi(gUIPanels) +/* 166180 80245920 24849D50 */ addiu $a0, $a0, %lo(gUIPanels) /* 166184 80245924 948205B0 */ lhu $v0, 0x5b0($a0) /* 166188 80245928 00021400 */ sll $v0, $v0, 0x10 /* 16618C 8024592C 00021C03 */ sra $v1, $v0, 0x10 @@ -100,8 +100,8 @@ glabel func_80245808 .L80245974: /* 1661D4 80245974 240200A0 */ addiu $v0, $zero, 0xa0 /* 1661D8 80245978 00451023 */ subu $v0, $v0, $a1 -/* 1661DC 8024597C 3C048016 */ lui $a0, %hi(D_80159D50) -/* 1661E0 80245980 24849D50 */ addiu $a0, $a0, %lo(D_80159D50) +/* 1661DC 8024597C 3C048016 */ lui $a0, %hi(gUIPanels) +/* 1661E0 80245980 24849D50 */ addiu $a0, $a0, %lo(gUIPanels) .L80245984: /* 1661E4 80245984 A4C20000 */ sh $v0, ($a2) /* 1661E8 80245988 948206D0 */ lhu $v0, 0x6d0($a0) diff --git a/asm/nonmatchings/code_165490/func_80245A40.s b/asm/nonmatchings/code_165490/func_80245A40.s index 99f6f96480..6937b4ad45 100644 --- a/asm/nonmatchings/code_165490/func_80245A40.s +++ b/asm/nonmatchings/code_165490/func_80245A40.s @@ -457,8 +457,8 @@ glabel func_80245A40 /* 166958 802460F8 24040032 */ addiu $a0, $zero, 0x32 /* 16695C 802460FC 0C051F9F */ jal func_80147E7C /* 166960 80246100 24050001 */ addiu $a1, $zero, 1 -/* 166964 80246104 3C048016 */ lui $a0, %hi(D_80159D50) -/* 166968 80246108 24849D50 */ addiu $a0, $a0, %lo(D_80159D50) +/* 166964 80246104 3C048016 */ lui $a0, %hi(gUIPanels) +/* 166968 80246108 24849D50 */ addiu $a0, $a0, %lo(gUIPanels) /* 16696C 8024610C 2402008F */ addiu $v0, $zero, 0x8f /* 166970 80246110 A482064E */ sh $v0, 0x64e($a0) /* 166974 80246114 24020045 */ addiu $v0, $zero, 0x45 @@ -481,8 +481,8 @@ glabel func_80245A40 /* 1669B8 80246158 2463FFDE */ addiu $v1, $v1, -0x22 .L8024615C: /* 1669BC 8024615C 2403007E */ addiu $v1, $zero, 0x7e -/* 1669C0 80246160 3C048016 */ lui $a0, %hi(D_80159D50) -/* 1669C4 80246164 24849D50 */ addiu $a0, $a0, %lo(D_80159D50) +/* 1669C0 80246160 3C048016 */ lui $a0, %hi(gUIPanels) +/* 1669C4 80246164 24849D50 */ addiu $a0, $a0, %lo(gUIPanels) .L80246168: /* 1669C8 80246168 2402FFE3 */ addiu $v0, $zero, -0x1d /* 1669CC 8024616C A4A30000 */ sh $v1, ($a1) @@ -560,8 +560,8 @@ glabel func_80245A40 /* 166AE0 80246280 24A53CCC */ addiu $a1, $a1, 0x3ccc /* 166AE4 80246284 0C051F9F */ jal func_80147E7C /* 166AE8 80246288 24040032 */ addiu $a0, $zero, 0x32 -/* 166AEC 8024628C 3C048016 */ lui $a0, %hi(D_80159D50) -/* 166AF0 80246290 24849D50 */ addiu $a0, $a0, %lo(D_80159D50) +/* 166AEC 8024628C 3C048016 */ lui $a0, %hi(gUIPanels) +/* 166AF0 80246290 24849D50 */ addiu $a0, $a0, %lo(gUIPanels) /* 166AF4 80246294 24020079 */ addiu $v0, $zero, 0x79 /* 166AF8 80246298 A482064E */ sh $v0, 0x64e($a0) /* 166AFC 8024629C 24020045 */ addiu $v0, $zero, 0x45 @@ -584,8 +584,8 @@ glabel func_80245A40 /* 166B40 802462E0 2463FFDE */ addiu $v1, $v1, -0x22 .L802462E4: /* 166B44 802462E4 2403007E */ addiu $v1, $zero, 0x7e -/* 166B48 802462E8 3C048016 */ lui $a0, %hi(D_80159D50) -/* 166B4C 802462EC 24849D50 */ addiu $a0, $a0, %lo(D_80159D50) +/* 166B48 802462E8 3C048016 */ lui $a0, %hi(gUIPanels) +/* 166B4C 802462EC 24849D50 */ addiu $a0, $a0, %lo(gUIPanels) .L802462F0: /* 166B50 802462F0 2402FFE3 */ addiu $v0, $zero, -0x1d /* 166B54 802462F4 A4A30000 */ sh $v1, ($a1) @@ -706,8 +706,8 @@ glabel func_80245A40 /* 166D08 802464A8 3C018025 */ lui $at, 0x8025 /* 166D0C 802464AC A022C098 */ sb $v0, -0x3f68($at) /* 166D10 802464B0 24020002 */ addiu $v0, $zero, 2 -/* 166D14 802464B4 3C048016 */ lui $a0, %hi(D_80159D50) -/* 166D18 802464B8 24849D50 */ addiu $a0, $a0, %lo(D_80159D50) +/* 166D14 802464B4 3C048016 */ lui $a0, %hi(gUIPanels) +/* 166D18 802464B8 24849D50 */ addiu $a0, $a0, %lo(gUIPanels) /* 166D1C 802464BC 3C038025 */ lui $v1, 0x8025 /* 166D20 802464C0 8C639B8C */ lw $v1, -0x6474($v1) /* 166D24 802464C4 A0620004 */ sb $v0, 4($v1) @@ -731,8 +731,8 @@ glabel func_80245A40 /* 166D6C 8024650C 2463FFB3 */ addiu $v1, $v1, -0x4d .L80246510: /* 166D70 80246510 24030053 */ addiu $v1, $zero, 0x53 -/* 166D74 80246514 3C048016 */ lui $a0, %hi(D_80159D50) -/* 166D78 80246518 24849D50 */ addiu $a0, $a0, %lo(D_80159D50) +/* 166D74 80246514 3C048016 */ lui $a0, %hi(gUIPanels) +/* 166D78 80246518 24849D50 */ addiu $a0, $a0, %lo(gUIPanels) .L8024651C: /* 166D7C 8024651C A4A30000 */ sh $v1, ($a1) /* 166D80 80246520 948205F2 */ lhu $v0, 0x5f2($a0) @@ -812,8 +812,8 @@ glabel func_80245A40 /* 166E9C 8024663C 24A53CCC */ addiu $a1, $a1, 0x3ccc /* 166EA0 80246640 0C051F9F */ jal func_80147E7C /* 166EA4 80246644 24040032 */ addiu $a0, $zero, 0x32 -/* 166EA8 80246648 3C048016 */ lui $a0, %hi(D_80159D50) -/* 166EAC 8024664C 24849D50 */ addiu $a0, $a0, %lo(D_80159D50) +/* 166EA8 80246648 3C048016 */ lui $a0, %hi(gUIPanels) +/* 166EAC 8024664C 24849D50 */ addiu $a0, $a0, %lo(gUIPanels) /* 166EB0 80246650 24020079 */ addiu $v0, $zero, 0x79 /* 166EB4 80246654 A482064E */ sh $v0, 0x64e($a0) /* 166EB8 80246658 24020045 */ addiu $v0, $zero, 0x45 @@ -836,8 +836,8 @@ glabel func_80245A40 /* 166EFC 8024669C 2463FFDE */ addiu $v1, $v1, -0x22 .L802466A0: /* 166F00 802466A0 2403007E */ addiu $v1, $zero, 0x7e -/* 166F04 802466A4 3C048016 */ lui $a0, %hi(D_80159D50) -/* 166F08 802466A8 24849D50 */ addiu $a0, $a0, %lo(D_80159D50) +/* 166F04 802466A4 3C048016 */ lui $a0, %hi(gUIPanels) +/* 166F08 802466A8 24849D50 */ addiu $a0, $a0, %lo(gUIPanels) .L802466AC: /* 166F0C 802466AC 2402FFD5 */ addiu $v0, $zero, -0x2b /* 166F10 802466B0 A4A30000 */ sh $v1, ($a1) @@ -927,8 +927,8 @@ glabel func_80245A40 /* 167050 802467F0 24A53CCC */ addiu $a1, $a1, 0x3ccc /* 167054 802467F4 0C051F9F */ jal func_80147E7C /* 167058 802467F8 24040032 */ addiu $a0, $zero, 0x32 -/* 16705C 802467FC 3C048016 */ lui $a0, %hi(D_80159D50) -/* 167060 80246800 24849D50 */ addiu $a0, $a0, %lo(D_80159D50) +/* 16705C 802467FC 3C048016 */ lui $a0, %hi(gUIPanels) +/* 167060 80246800 24849D50 */ addiu $a0, $a0, %lo(gUIPanels) /* 167064 80246804 2402007F */ addiu $v0, $zero, 0x7f /* 167068 80246808 A482064E */ sh $v0, 0x64e($a0) /* 16706C 8024680C 24020045 */ addiu $v0, $zero, 0x45 @@ -951,8 +951,8 @@ glabel func_80245A40 /* 1670B0 80246850 2463FFDE */ addiu $v1, $v1, -0x22 .L80246854: /* 1670B4 80246854 2403007E */ addiu $v1, $zero, 0x7e -/* 1670B8 80246858 3C048016 */ lui $a0, %hi(D_80159D50) -/* 1670BC 8024685C 24849D50 */ addiu $a0, $a0, %lo(D_80159D50) +/* 1670B8 80246858 3C048016 */ lui $a0, %hi(gUIPanels) +/* 1670BC 8024685C 24849D50 */ addiu $a0, $a0, %lo(gUIPanels) .L80246860: /* 1670C0 80246860 2402FFCE */ addiu $v0, $zero, -0x32 /* 1670C4 80246864 A4A30000 */ sh $v1, ($a1) diff --git a/asm/nonmatchings/code_167570/func_802471EC.s b/asm/nonmatchings/code_167570/func_802471EC.s index c9e96cc667..0f50e2fd20 100644 --- a/asm/nonmatchings/code_167570/func_802471EC.s +++ b/asm/nonmatchings/code_167570/func_802471EC.s @@ -107,8 +107,8 @@ glabel func_802471EC /* 167BD0 80247370 24020002 */ addiu $v0, $zero, 2 /* 167BD4 80247374 3C038025 */ lui $v1, 0x8025 /* 167BD8 80247378 8C639B8C */ lw $v1, -0x6474($v1) -/* 167BDC 8024737C 3C048016 */ lui $a0, %hi(D_80159D50) -/* 167BE0 80247380 24849D50 */ addiu $a0, $a0, %lo(D_80159D50) +/* 167BDC 8024737C 3C048016 */ lui $a0, %hi(gUIPanels) +/* 167BE0 80247380 24849D50 */ addiu $a0, $a0, %lo(gUIPanels) /* 167BE4 80247384 3C018025 */ lui $at, 0x8025 /* 167BE8 80247388 A022C098 */ sb $v0, -0x3f68($at) /* 167BEC 8024738C 240200B6 */ addiu $v0, $zero, 0xb6 @@ -132,8 +132,8 @@ glabel func_802471EC /* 167C34 802473D4 2463FFA5 */ addiu $v1, $v1, -0x5b .L802473D8: /* 167C38 802473D8 24030045 */ addiu $v1, $zero, 0x45 -/* 167C3C 802473DC 3C048016 */ lui $a0, %hi(D_80159D50) -/* 167C40 802473E0 24849D50 */ addiu $a0, $a0, %lo(D_80159D50) +/* 167C3C 802473DC 3C048016 */ lui $a0, %hi(gUIPanels) +/* 167C40 802473E0 24849D50 */ addiu $a0, $a0, %lo(gUIPanels) .L802473E4: /* 167C44 802473E4 A4A30000 */ sh $v1, ($a1) /* 167C48 802473E8 948205F2 */ lhu $v0, 0x5f2($a0) @@ -206,8 +206,8 @@ glabel func_802471EC /* 167D48 802474E8 3C018025 */ lui $at, 0x8025 /* 167D4C 802474EC A022C098 */ sb $v0, -0x3f68($at) /* 167D50 802474F0 24020002 */ addiu $v0, $zero, 2 -/* 167D54 802474F4 3C048016 */ lui $a0, %hi(D_80159D50) -/* 167D58 802474F8 24849D50 */ addiu $a0, $a0, %lo(D_80159D50) +/* 167D54 802474F4 3C048016 */ lui $a0, %hi(gUIPanels) +/* 167D58 802474F8 24849D50 */ addiu $a0, $a0, %lo(gUIPanels) /* 167D5C 802474FC 3C038025 */ lui $v1, 0x8025 /* 167D60 80247500 8C639B8C */ lw $v1, -0x6474($v1) /* 167D64 80247504 A0620004 */ sb $v0, 4($v1) @@ -231,8 +231,8 @@ glabel func_802471EC /* 167DAC 8024754C 2463FFB3 */ addiu $v1, $v1, -0x4d .L80247550: /* 167DB0 80247550 24030053 */ addiu $v1, $zero, 0x53 -/* 167DB4 80247554 3C048016 */ lui $a0, %hi(D_80159D50) -/* 167DB8 80247558 24849D50 */ addiu $a0, $a0, %lo(D_80159D50) +/* 167DB4 80247554 3C048016 */ lui $a0, %hi(gUIPanels) +/* 167DB8 80247558 24849D50 */ addiu $a0, $a0, %lo(gUIPanels) .L8024755C: /* 167DBC 8024755C A4A30000 */ sh $v1, ($a1) /* 167DC0 80247560 948205F2 */ lhu $v0, 0x5f2($a0) @@ -306,8 +306,8 @@ glabel func_802471EC /* 167EC8 80247668 3C018025 */ lui $at, 0x8025 /* 167ECC 8024766C A022C098 */ sb $v0, -0x3f68($at) /* 167ED0 80247670 24020001 */ addiu $v0, $zero, 1 -/* 167ED4 80247674 3C048016 */ lui $a0, %hi(D_80159D50) -/* 167ED8 80247678 24849D50 */ addiu $a0, $a0, %lo(D_80159D50) +/* 167ED4 80247674 3C048016 */ lui $a0, %hi(gUIPanels) +/* 167ED8 80247678 24849D50 */ addiu $a0, $a0, %lo(gUIPanels) /* 167EDC 8024767C 3C038025 */ lui $v1, 0x8025 /* 167EE0 80247680 8C639B8C */ lw $v1, -0x6474($v1) /* 167EE4 80247684 A0620004 */ sb $v0, 4($v1) @@ -331,8 +331,8 @@ glabel func_802471EC /* 167F2C 802476CC 2463FFB4 */ addiu $v1, $v1, -0x4c .L802476D0: /* 167F30 802476D0 24030054 */ addiu $v1, $zero, 0x54 -/* 167F34 802476D4 3C048016 */ lui $a0, %hi(D_80159D50) -/* 167F38 802476D8 24849D50 */ addiu $a0, $a0, %lo(D_80159D50) +/* 167F34 802476D4 3C048016 */ lui $a0, %hi(gUIPanels) +/* 167F38 802476D8 24849D50 */ addiu $a0, $a0, %lo(gUIPanels) .L802476DC: /* 167F3C 802476DC A4A30000 */ sh $v1, ($a1) /* 167F40 802476E0 948205F2 */ lhu $v0, 0x5f2($a0) @@ -501,8 +501,8 @@ glabel func_802471EC /* 1681BC 8024795C 3C018025 */ lui $at, 0x8025 /* 1681C0 80247960 A022C098 */ sb $v0, -0x3f68($at) /* 1681C4 80247964 24020003 */ addiu $v0, $zero, 3 -/* 1681C8 80247968 3C048016 */ lui $a0, %hi(D_80159D50) -/* 1681CC 8024796C 24849D50 */ addiu $a0, $a0, %lo(D_80159D50) +/* 1681C8 80247968 3C048016 */ lui $a0, %hi(gUIPanels) +/* 1681CC 8024796C 24849D50 */ addiu $a0, $a0, %lo(gUIPanels) /* 1681D0 80247970 3C038025 */ lui $v1, 0x8025 /* 1681D4 80247974 8C639B8C */ lw $v1, -0x6474($v1) /* 1681D8 80247978 A0620004 */ sb $v0, 4($v1) @@ -526,8 +526,8 @@ glabel func_802471EC /* 168220 802479C0 2463FFA4 */ addiu $v1, $v1, -0x5c .L802479C4: /* 168224 802479C4 24030044 */ addiu $v1, $zero, 0x44 -/* 168228 802479C8 3C048016 */ lui $a0, %hi(D_80159D50) -/* 16822C 802479CC 24849D50 */ addiu $a0, $a0, %lo(D_80159D50) +/* 168228 802479C8 3C048016 */ lui $a0, %hi(gUIPanels) +/* 16822C 802479CC 24849D50 */ addiu $a0, $a0, %lo(gUIPanels) .L802479D0: /* 168230 802479D0 A4A30000 */ sh $v1, ($a1) /* 168234 802479D4 948205F2 */ lhu $v0, 0x5f2($a0) diff --git a/asm/nonmatchings/code_168590/func_80248170.s b/asm/nonmatchings/code_168590/func_80248170.s index 99782af619..a72e415693 100644 --- a/asm/nonmatchings/code_168590/func_80248170.s +++ b/asm/nonmatchings/code_168590/func_80248170.s @@ -3,8 +3,8 @@ glabel func_80248170 /* 1689D0 80248170 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 1689D4 80248174 3C038016 */ lui $v1, %hi(D_80159D50) -/* 1689D8 80248178 24639D50 */ addiu $v1, $v1, %lo(D_80159D50) +/* 1689D4 80248174 3C038016 */ lui $v1, %hi(gUIPanels) +/* 1689D8 80248178 24639D50 */ addiu $v1, $v1, %lo(gUIPanels) /* 1689DC 8024817C 00041140 */ sll $v0, $a0, 5 /* 1689E0 80248180 00432821 */ addu $a1, $v0, $v1 /* 1689E4 80248184 AFBF0010 */ sw $ra, 0x10($sp) diff --git a/asm/nonmatchings/code_168590/func_80248A80.s b/asm/nonmatchings/code_168590/func_80248A80.s index 4060e530fa..aa14422270 100644 --- a/asm/nonmatchings/code_168590/func_80248A80.s +++ b/asm/nonmatchings/code_168590/func_80248A80.s @@ -38,8 +38,8 @@ glabel func_80248A80 /* 16935C 80248AFC 2484A190 */ addiu $a0, $a0, -0x5e70 /* 169360 80248B00 0C051FCC */ jal func_80147F30 /* 169364 80248B04 24050002 */ addiu $a1, $zero, 2 -/* 169368 80248B08 3C048016 */ lui $a0, %hi(D_80159D50) -/* 16936C 80248B0C 24849D50 */ addiu $a0, $a0, %lo(D_80159D50) +/* 169368 80248B08 3C048016 */ lui $a0, %hi(gUIPanels) +/* 16936C 80248B0C 24849D50 */ addiu $a0, $a0, %lo(gUIPanels) /* 169370 80248B10 94820610 */ lhu $v0, 0x610($a0) /* 169374 80248B14 00021400 */ sll $v0, $v0, 0x10 /* 169378 80248B18 00021C03 */ sra $v1, $v0, 0x10 @@ -63,8 +63,8 @@ glabel func_80248A80 .L80248B60: /* 1693C0 80248B60 240200A0 */ addiu $v0, $zero, 0xa0 /* 1693C4 80248B64 00451023 */ subu $v0, $v0, $a1 -/* 1693C8 80248B68 3C048016 */ lui $a0, %hi(D_80159D50) -/* 1693CC 80248B6C 24849D50 */ addiu $a0, $a0, %lo(D_80159D50) +/* 1693C8 80248B68 3C048016 */ lui $a0, %hi(gUIPanels) +/* 1693CC 80248B6C 24849D50 */ addiu $a0, $a0, %lo(gUIPanels) .L80248B70: /* 1693D0 80248B70 A4C20000 */ sh $v0, ($a2) /* 1693D4 80248B74 94820630 */ lhu $v0, 0x630($a0) diff --git a/asm/nonmatchings/code_168590/func_80248BF4.s b/asm/nonmatchings/code_168590/func_80248BF4.s index 7c3d00f25f..360447de77 100644 --- a/asm/nonmatchings/code_168590/func_80248BF4.s +++ b/asm/nonmatchings/code_168590/func_80248BF4.s @@ -227,8 +227,8 @@ glabel func_80248BF4 /* 16978C 80248F2C 24A53CCC */ addiu $a1, $a1, 0x3ccc /* 169790 80248F30 0C051F9F */ jal func_80147E7C /* 169794 80248F34 24040032 */ addiu $a0, $zero, 0x32 -/* 169798 80248F38 3C048016 */ lui $a0, %hi(D_80159D50) -/* 16979C 80248F3C 24849D50 */ addiu $a0, $a0, %lo(D_80159D50) +/* 169798 80248F38 3C048016 */ lui $a0, %hi(gUIPanels) +/* 16979C 80248F3C 24849D50 */ addiu $a0, $a0, %lo(gUIPanels) /* 1697A0 80248F40 24020079 */ addiu $v0, $zero, 0x79 /* 1697A4 80248F44 A482064E */ sh $v0, 0x64e($a0) /* 1697A8 80248F48 24020045 */ addiu $v0, $zero, 0x45 @@ -251,8 +251,8 @@ glabel func_80248BF4 /* 1697EC 80248F8C 2463FFDE */ addiu $v1, $v1, -0x22 .L80248F90: /* 1697F0 80248F90 2403007E */ addiu $v1, $zero, 0x7e -/* 1697F4 80248F94 3C048016 */ lui $a0, %hi(D_80159D50) -/* 1697F8 80248F98 24849D50 */ addiu $a0, $a0, %lo(D_80159D50) +/* 1697F4 80248F94 3C048016 */ lui $a0, %hi(gUIPanels) +/* 1697F8 80248F98 24849D50 */ addiu $a0, $a0, %lo(gUIPanels) .L80248F9C: /* 1697FC 80248F9C 2402FFBA */ addiu $v0, $zero, -0x46 /* 169800 80248FA0 A4A30000 */ sh $v1, ($a1) @@ -429,8 +429,8 @@ glabel func_80248BF4 /* 169A7C 8024921C 24A53CCC */ addiu $a1, $a1, 0x3ccc /* 169A80 80249220 0C051F9F */ jal func_80147E7C /* 169A84 80249224 24040032 */ addiu $a0, $zero, 0x32 -/* 169A88 80249228 3C048016 */ lui $a0, %hi(D_80159D50) -/* 169A8C 8024922C 24849D50 */ addiu $a0, $a0, %lo(D_80159D50) +/* 169A88 80249228 3C048016 */ lui $a0, %hi(gUIPanels) +/* 169A8C 8024922C 24849D50 */ addiu $a0, $a0, %lo(gUIPanels) /* 169A90 80249230 24020079 */ addiu $v0, $zero, 0x79 /* 169A94 80249234 A482064E */ sh $v0, 0x64e($a0) /* 169A98 80249238 24020045 */ addiu $v0, $zero, 0x45 @@ -453,8 +453,8 @@ glabel func_80248BF4 /* 169ADC 8024927C 2463FFDE */ addiu $v1, $v1, -0x22 .L80249280: /* 169AE0 80249280 2403007E */ addiu $v1, $zero, 0x7e -/* 169AE4 80249284 3C048016 */ lui $a0, %hi(D_80159D50) -/* 169AE8 80249288 24849D50 */ addiu $a0, $a0, %lo(D_80159D50) +/* 169AE4 80249284 3C048016 */ lui $a0, %hi(gUIPanels) +/* 169AE8 80249288 24849D50 */ addiu $a0, $a0, %lo(gUIPanels) .L8024928C: /* 169AEC 8024928C 2402FFBA */ addiu $v0, $zero, -0x46 /* 169AF0 80249290 A4A30000 */ sh $v1, ($a1) diff --git a/asm/nonmatchings/code_b72b0_len_15ed0/update_item_entity_temp.s b/asm/nonmatchings/code_b72b0_len_15ed0/update_item_entity_temp.s index e84cc08a92..31303a1760 100644 --- a/asm/nonmatchings/code_b72b0_len_15ed0/update_item_entity_temp.s +++ b/asm/nonmatchings/code_b72b0_len_15ed0/update_item_entity_temp.s @@ -517,8 +517,8 @@ glabel update_item_entity_temp /* CC53C 80135E3C 24020003 */ addiu $v0, $zero, 3 /* CC540 80135E40 0804D8DF */ j .L8013637C /* CC544 80135E44 A222001A */ sb $v0, 0x1a($s1) -/* CC548 80135E48 3C038016 */ lui $v1, %hi(D_80159D50) -/* CC54C 80135E4C 24639D50 */ addiu $v1, $v1, %lo(D_80159D50) +/* CC548 80135E48 3C038016 */ lui $v1, %hi(gUIPanels) +/* CC54C 80135E4C 24639D50 */ addiu $v1, $v1, %lo(gUIPanels) /* CC550 80135E50 90620180 */ lbu $v0, 0x180($v1) /* CC554 80135E54 30420008 */ andi $v0, $v0, 8 /* CC558 80135E58 14400148 */ bnez $v0, .L8013637C @@ -702,8 +702,8 @@ glabel update_item_entity_temp /* CC800 80136100 AC2068E4 */ sw $zero, 0x68e4($at) /* CC804 80136104 0804D8DF */ j .L8013637C /* CC808 80136108 A222001A */ sb $v0, 0x1a($s1) -/* CC80C 8013610C 3C038016 */ lui $v1, %hi(D_80159D50) -/* CC810 80136110 24639D50 */ addiu $v1, $v1, %lo(D_80159D50) +/* CC80C 8013610C 3C038016 */ lui $v1, %hi(gUIPanels) +/* CC810 80136110 24639D50 */ addiu $v1, $v1, %lo(gUIPanels) /* CC814 80136114 90620180 */ lbu $v0, 0x180($v1) /* CC818 80136118 30420008 */ andi $v0, $v0, 8 /* CC81C 8013611C 14400097 */ bnez $v0, .L8013637C @@ -818,8 +818,8 @@ glabel update_item_entity_temp /* CC9C4 801362C4 2402000E */ addiu $v0, $zero, 0xe /* CC9C8 801362C8 0804D8DF */ j .L8013637C /* CC9CC 801362CC A222001A */ sb $v0, 0x1a($s1) -/* CC9D0 801362D0 3C038016 */ lui $v1, %hi(D_80159D50) -/* CC9D4 801362D4 24639D50 */ addiu $v1, $v1, %lo(D_80159D50) +/* CC9D0 801362D0 3C038016 */ lui $v1, %hi(gUIPanels) +/* CC9D4 801362D4 24639D50 */ addiu $v1, $v1, %lo(gUIPanels) /* CC9D8 801362D8 90620180 */ lbu $v0, 0x180($v1) /* CC9DC 801362DC 30420008 */ andi $v0, $v0, 8 /* CC9E0 801362E0 14400026 */ bnez $v0, .L8013637C diff --git a/asm/nonmatchings/code_ddaf0_len_c50/func_80147414.s b/asm/nonmatchings/code_ddaf0_len_c50/func_80147414.s index 6a271950bb..d24031f9f8 100644 --- a/asm/nonmatchings/code_ddaf0_len_c50/func_80147414.s +++ b/asm/nonmatchings/code_ddaf0_len_c50/func_80147414.s @@ -3,8 +3,8 @@ glabel func_80147414 /* DDB14 80147414 0000302D */ daddu $a2, $zero, $zero -/* DDB18 80147418 3C058016 */ lui $a1, %hi(D_80159D50) -/* DDB1C 8014741C 24A59D50 */ addiu $a1, $a1, %lo(D_80159D50) +/* DDB18 80147418 3C058016 */ lui $a1, %hi(gUIPanels) +/* DDB1C 8014741C 24A59D50 */ addiu $a1, $a1, %lo(gUIPanels) /* DDB20 80147420 24A4001C */ addiu $a0, $a1, 0x1c .L80147424: /* DDB24 80147424 90A30000 */ lbu $v1, ($a1) diff --git a/asm/nonmatchings/code_ddaf0_len_c50/func_80147474.s b/asm/nonmatchings/code_ddaf0_len_c50/func_80147474.s index 2df65039c5..8efc7c32b0 100644 --- a/asm/nonmatchings/code_ddaf0_len_c50/func_80147474.s +++ b/asm/nonmatchings/code_ddaf0_len_c50/func_80147474.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel func_80147474 -/* DDB74 80147474 3C028016 */ lui $v0, %hi(D_80159D50) -/* DDB78 80147478 24429D50 */ addiu $v0, $v0, %lo(D_80159D50) +/* DDB74 80147474 3C028016 */ lui $v0, %hi(gUIPanels) +/* DDB78 80147478 24429D50 */ addiu $v0, $v0, %lo(gUIPanels) /* DDB7C 8014747C 00042140 */ sll $a0, $a0, 5 /* DDB80 80147480 00822021 */ addu $a0, $a0, $v0 /* DDB84 80147484 8FA70014 */ lw $a3, 0x14($sp) diff --git a/asm/nonmatchings/code_ddaf0_len_c50/func_80147574.s b/asm/nonmatchings/code_ddaf0_len_c50/func_80147574.s index e01bf5dd49..abb8e561a9 100644 --- a/asm/nonmatchings/code_ddaf0_len_c50/func_80147574.s +++ b/asm/nonmatchings/code_ddaf0_len_c50/func_80147574.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel func_80147574 -/* DDC74 80147574 3C028016 */ lui $v0, %hi(D_80159D50) -/* DDC78 80147578 24429D50 */ addiu $v0, $v0, %lo(D_80159D50) +/* DDC74 80147574 3C028016 */ lui $v0, %hi(gUIPanels) +/* DDC78 80147578 24429D50 */ addiu $v0, $v0, %lo(gUIPanels) /* DDC7C 8014757C 00042140 */ sll $a0, $a0, 5 /* DDC80 80147580 00822021 */ addu $a0, $a0, $v0 /* DDC84 80147584 9086001C */ lbu $a2, 0x1c($a0) diff --git a/asm/nonmatchings/code_ddaf0_len_c50/func_80147650.s b/asm/nonmatchings/code_ddaf0_len_c50/func_80147650.s index 29c0a6d606..c0717df5e9 100644 --- a/asm/nonmatchings/code_ddaf0_len_c50/func_80147650.s +++ b/asm/nonmatchings/code_ddaf0_len_c50/func_80147650.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel func_80147650 -/* DDD50 80147650 3C028016 */ lui $v0, %hi(D_80159D50) -/* DDD54 80147654 24429D50 */ addiu $v0, $v0, %lo(D_80159D50) +/* DDD50 80147650 3C028016 */ lui $v0, %hi(gUIPanels) +/* DDD54 80147654 24429D50 */ addiu $v0, $v0, %lo(gUIPanels) /* DDD58 80147658 00042140 */ sll $a0, $a0, 5 /* DDD5C 8014765C 00822021 */ addu $a0, $a0, $v0 /* DDD60 80147660 9083001C */ lbu $v1, 0x1c($a0) diff --git a/asm/nonmatchings/code_ddaf0_len_c50/func_80147698.s b/asm/nonmatchings/code_ddaf0_len_c50/func_80147698.s index 4bf44cd849..3b2dd5ad5d 100644 --- a/asm/nonmatchings/code_ddaf0_len_c50/func_80147698.s +++ b/asm/nonmatchings/code_ddaf0_len_c50/func_80147698.s @@ -13,8 +13,8 @@ glabel func_80147698 /* DDDB8 801476B8 00171140 */ sll $v0, $s7, 5 /* DDDBC 801476BC F7B400E8 */ sdc1 $f20, 0xe8($sp) /* DDDC0 801476C0 4480A000 */ mtc1 $zero, $f20 -/* DDDC4 801476C4 3C0B8016 */ lui $t3, %hi(D_80159D50) -/* DDDC8 801476C8 256B9D50 */ addiu $t3, $t3, %lo(D_80159D50) +/* DDDC4 801476C4 3C0B8016 */ lui $t3, %hi(gUIPanels) +/* DDDC8 801476C8 256B9D50 */ addiu $t3, $t3, %lo(gUIPanels) /* DDDCC 801476CC AFBE00E0 */ sw $fp, 0xe0($sp) /* DDDD0 801476D0 004BF021 */ addu $fp, $v0, $t3 /* DDDD4 801476D4 AFBF00E4 */ sw $ra, 0xe4($sp) @@ -30,8 +30,8 @@ glabel func_80147698 /* DDDF8 801476F8 064200E2 */ bltzl $s2, .L80147A84 /* DDDFC 801476FC 26D60001 */ addiu $s6, $s6, 1 /* DDE00 80147700 00121140 */ sll $v0, $s2, 5 -/* DDE04 80147704 3C0B8016 */ lui $t3, %hi(D_80159D50) -/* DDE08 80147708 256B9D50 */ addiu $t3, $t3, %lo(D_80159D50) +/* DDE04 80147704 3C0B8016 */ lui $t3, %hi(gUIPanels) +/* DDE08 80147708 256B9D50 */ addiu $t3, $t3, %lo(gUIPanels) /* DDE0C 8014770C 004B8821 */ addu $s1, $v0, $t3 /* DDE10 80147710 92220000 */ lbu $v0, ($s1) /* DDE14 80147714 504000DB */ beql $v0, $zero, .L80147A84 diff --git a/asm/nonmatchings/code_ddaf0_len_c50/func_80147AC4.s b/asm/nonmatchings/code_ddaf0_len_c50/func_80147AC4.s index 9a34a58ba7..a804f87fa2 100644 --- a/asm/nonmatchings/code_ddaf0_len_c50/func_80147AC4.s +++ b/asm/nonmatchings/code_ddaf0_len_c50/func_80147AC4.s @@ -16,8 +16,8 @@ glabel func_80147AC4 /* DE1EC 80147AEC 0461FFFD */ bgez $v1, .L80147AE4 /* DE1F0 80147AF0 24420004 */ addiu $v0, $v0, 4 /* DE1F4 80147AF4 0000182D */ daddu $v1, $zero, $zero -/* DE1F8 80147AF8 3C048016 */ lui $a0, %hi(D_80159D50) -/* DE1FC 80147AFC 24849D50 */ addiu $a0, $a0, %lo(D_80159D50) +/* DE1F8 80147AF8 3C048016 */ lui $a0, %hi(gUIPanels) +/* DE1FC 80147AFC 24849D50 */ addiu $a0, $a0, %lo(gUIPanels) /* DE200 80147B00 27A50020 */ addiu $a1, $sp, 0x20 .L80147B04: /* DE204 80147B04 90820000 */ lbu $v0, ($a0) diff --git a/asm/nonmatchings/code_ddaf0_len_c50/func_80147D70.s b/asm/nonmatchings/code_ddaf0_len_c50/func_80147D70.s index d7c65b0525..67d6c7f3e0 100644 --- a/asm/nonmatchings/code_ddaf0_len_c50/func_80147D70.s +++ b/asm/nonmatchings/code_ddaf0_len_c50/func_80147D70.s @@ -21,8 +21,8 @@ glabel func_80147D70 /* DE4A8 80147DA8 03A31821 */ addu $v1, $sp, $v1 /* DE4AC 80147DAC AC640000 */ sw $a0, ($v1) /* DE4B0 80147DB0 0000302D */ daddu $a2, $zero, $zero -/* DE4B4 80147DB4 3C058016 */ lui $a1, %hi(D_80159D50) -/* DE4B8 80147DB8 24A59D50 */ addiu $a1, $a1, %lo(D_80159D50) +/* DE4B4 80147DB4 3C058016 */ lui $a1, %hi(gUIPanels) +/* DE4B8 80147DB8 24A59D50 */ addiu $a1, $a1, %lo(gUIPanels) /* DE4BC 80147DBC 0040382D */ daddu $a3, $v0, $zero .L80147DC0: /* DE4C0 80147DC0 90A20000 */ lbu $v0, ($a1) @@ -47,8 +47,8 @@ glabel func_80147D70 /* DE504 80147E04 0060302D */ daddu $a2, $v1, $zero /* DE508 80147E08 03A0382D */ daddu $a3, $sp, $zero /* DE50C 80147E0C 2405FFFF */ addiu $a1, $zero, -1 -/* DE510 80147E10 3C048016 */ lui $a0, %hi(D_80159D50) -/* DE514 80147E14 24849D50 */ addiu $a0, $a0, %lo(D_80159D50) +/* DE510 80147E10 3C048016 */ lui $a0, %hi(gUIPanels) +/* DE514 80147E14 24849D50 */ addiu $a0, $a0, %lo(gUIPanels) .L80147E18: /* DE518 80147E18 8CE20000 */ lw $v0, ($a3) /* DE51C 80147E1C 10450005 */ beq $v0, $a1, .L80147E34 diff --git a/asm/nonmatchings/code_ddaf0_len_c50/func_80147E48.s b/asm/nonmatchings/code_ddaf0_len_c50/func_80147E48.s index 86afab7a37..9e4e6b4a87 100644 --- a/asm/nonmatchings/code_ddaf0_len_c50/func_80147E48.s +++ b/asm/nonmatchings/code_ddaf0_len_c50/func_80147E48.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel func_80147E48 -/* DE548 80147E48 3C028016 */ lui $v0, %hi(D_80159D50) -/* DE54C 80147E4C 24429D50 */ addiu $v0, $v0, %lo(D_80159D50) +/* DE548 80147E48 3C028016 */ lui $v0, %hi(gUIPanels) +/* DE54C 80147E4C 24429D50 */ addiu $v0, $v0, %lo(gUIPanels) /* DE550 80147E50 00042140 */ sll $a0, $a0, 5 /* DE554 80147E54 00822021 */ addu $a0, $a0, $v0 /* DE558 80147E58 90830000 */ lbu $v1, ($a0) diff --git a/asm/nonmatchings/code_ddaf0_len_c50/func_80147E7C.s b/asm/nonmatchings/code_ddaf0_len_c50/func_80147E7C.s index b361c825ae..642f9a9643 100644 --- a/asm/nonmatchings/code_ddaf0_len_c50/func_80147E7C.s +++ b/asm/nonmatchings/code_ddaf0_len_c50/func_80147E7C.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel func_80147E7C -/* DE57C 80147E7C 3C028016 */ lui $v0, %hi(D_80159D50) -/* DE580 80147E80 24429D50 */ addiu $v0, $v0, %lo(D_80159D50) +/* DE57C 80147E7C 3C028016 */ lui $v0, %hi(gUIPanels) +/* DE580 80147E80 24429D50 */ addiu $v0, $v0, %lo(gUIPanels) /* DE584 80147E84 00042140 */ sll $a0, $a0, 5 /* DE588 80147E88 00822021 */ addu $a0, $a0, $v0 /* DE58C 80147E8C 90830000 */ lbu $v1, ($a0) diff --git a/asm/nonmatchings/code_ddaf0_len_c50/func_80147EC4.s b/asm/nonmatchings/code_ddaf0_len_c50/func_80147EC4.s index b30974f028..ec4a6bcc68 100644 --- a/asm/nonmatchings/code_ddaf0_len_c50/func_80147EC4.s +++ b/asm/nonmatchings/code_ddaf0_len_c50/func_80147EC4.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel func_80147EC4 -/* DE5C4 80147EC4 3C068016 */ lui $a2, %hi(D_80159D50) -/* DE5C8 80147EC8 24C69D50 */ addiu $a2, $a2, %lo(D_80159D50) +/* DE5C4 80147EC4 3C068016 */ lui $a2, %hi(gUIPanels) +/* DE5C8 80147EC8 24C69D50 */ addiu $a2, $a2, %lo(gUIPanels) /* DE5CC 80147ECC 0000282D */ daddu $a1, $zero, $zero /* DE5D0 80147ED0 3C028015 */ lui $v0, 0x8015 /* DE5D4 80147ED4 2442F2C0 */ addiu $v0, $v0, -0xd40 diff --git a/asm/nonmatchings/code_ddaf0_len_c50/func_80147F30.s b/asm/nonmatchings/code_ddaf0_len_c50/func_80147F30.s index f69f7d32c2..4349a0c6fd 100644 --- a/asm/nonmatchings/code_ddaf0_len_c50/func_80147F30.s +++ b/asm/nonmatchings/code_ddaf0_len_c50/func_80147F30.s @@ -18,8 +18,8 @@ glabel func_80147F30 /* DE664 80147F64 2416FFFF */ addiu $s6, $zero, -1 /* DE668 80147F68 3C158015 */ lui $s5, 0x8015 /* DE66C 80147F6C 26B5F150 */ addiu $s5, $s5, -0xeb0 -/* DE670 80147F70 3C148016 */ lui $s4, %hi(D_80159D50) -/* DE674 80147F74 26949D50 */ addiu $s4, $s4, %lo(D_80159D50) +/* DE670 80147F70 3C148016 */ lui $s4, %hi(gUIPanels) +/* DE674 80147F74 26949D50 */ addiu $s4, $s4, %lo(gUIPanels) /* DE678 80147F78 2490001C */ addiu $s0, $a0, 0x1c .L80147F7C: /* DE67C 80147F7C 8602FFEC */ lh $v0, -0x14($s0) diff --git a/asm/nonmatchings/code_ddaf0_len_c50/set_ui_panel_properties.s b/asm/nonmatchings/code_ddaf0_len_c50/set_ui_panel_properties.s index a321c82c89..23d07dbf69 100644 --- a/asm/nonmatchings/code_ddaf0_len_c50/set_ui_panel_properties.s +++ b/asm/nonmatchings/code_ddaf0_len_c50/set_ui_panel_properties.s @@ -4,8 +4,8 @@ glabel set_ui_panel_properties /* DE3C8 80147CC8 27BDFFE0 */ addiu $sp, $sp, -0x20 /* DE3CC 80147CCC 0080582D */ daddu $t3, $a0, $zero -/* DE3D0 80147CD0 3C0A8016 */ lui $t2, %hi(D_80159D50) -/* DE3D4 80147CD4 254A9D50 */ addiu $t2, $t2, %lo(D_80159D50) +/* DE3D0 80147CD0 3C0A8016 */ lui $t2, %hi(gUIPanels) +/* DE3D4 80147CD4 254A9D50 */ addiu $t2, $t2, %lo(gUIPanels) /* DE3D8 80147CD8 8FA90030 */ lw $t1, 0x30($sp) /* DE3DC 80147CDC 000B1140 */ sll $v0, $t3, 5 /* DE3E0 80147CE0 AFB00010 */ sw $s0, 0x10($sp) diff --git a/include/common_structs.h b/include/common_structs.h index 1a9f77a631..35167741b6 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -1551,4 +1551,21 @@ typedef struct { /* 0x18 */ void* fpCleanup; } MenuTab; // size = 0x1C +typedef struct { + /* 0x00 */ s8 flags; + /* 0x01 */ char unk_01; + /* 0x02 */ char unk_02; // related to heirarchy somehow - sibling? group? + /* 0x03 */ s8 parent; // ? + /* 0x04 */ s32 unk_04; + /* 0x08 */ UNK_PTR unk_08; + /* 0x0C */ s16 posX; + /* 0x0E */ s16 posY; + /* 0x10 */ s16 width; + /* 0x12 */ s16 height; + /* 0x14 */ UNK_PTR fpDrawContents; + /* 0x18 */ s32 unk_18; // MenuTab pointer for pause menu tabs + /* 0x1C */ s8 unk_1C; + /* 0x1D */ char unk_1D[3]; +} UIPanel; // size = 0x20 + #endif diff --git a/include/variables.h b/include/variables.h index d956c962ae..f8de9a1e1b 100644 --- a/include/variables.h +++ b/include/variables.h @@ -119,6 +119,8 @@ extern u8 D_800A095F; extern s32 D_800A0960; extern s32 D_800A0964; +extern UIPanel gUIPanels[64]; + // Pause extern s32 gPauseMenuHeldButtons; extern s32 gPauseMenuPressedButtons; diff --git a/src/code_ddaf0_len_c50.c b/src/code_ddaf0_len_c50.c index dee04850a4..8d7629b561 100644 --- a/src/code_ddaf0_len_c50.c +++ b/src/code_ddaf0_len_c50.c @@ -1,22 +1,12 @@ #include "common.h" -typedef struct { - /* 0x00 */ u8 unk_00; - /* 0x04 */ s32 unk_04; - /* 0x08 */ s32 unk_08; - /* 0x0C */ char unk_01[0x10]; - /* 0x1C */ u8 unk_1C; -} struct_80159D50; // size = 0x20 - -extern struct_80159D50 D_80159D50[0x40]; - +// this is definitely wrong but I had issues trying to use an array accessor void func_801473F0(void) { - struct_80159D50* phi_v1 = &D_80159D50; + UIPanel* panelIt = gUIPanels; s32 i; - for (i = 0; i < 0x40; i++) { - phi_v1->unk_00 = 0; - phi_v1++; + for (i = 0; i < ARRAY_COUNT(gUIPanels); i++, panelIt++) { + panelIt->flags = 0; } } diff --git a/undefined_syms.txt b/undefined_syms.txt index a3bd1d9db3..49a9259557 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -17,7 +17,7 @@ gPlayerNpcPtr = 0x802D9D20; D_80147574 = 0x80147574; D_8010EBB0 = 0x8010EBB0; D_8010F250 = 0x8010F250; -D_80159D50 = 0x80159D50; +gUIPanels = 0x80159D50; gWorldMapVars = 0x802DBCA8; gBattleMapVars = 0x802DBCE8; From d2bd96e127e895e302025ba1a964ccb0e90226d3 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Thu, 12 Nov 2020 19:27:57 -0500 Subject: [PATCH 47/52] couple more --- .../code_ddaf0_len_c50/func_80147E48.s | 18 -------------- .../code_ddaf0_len_c50/func_80147E7C.s | 24 ------------------- include/common_structs.h | 2 +- src/code_ddaf0_len_c50.c | 23 ++++++++++++++++-- 4 files changed, 22 insertions(+), 45 deletions(-) delete mode 100644 asm/nonmatchings/code_ddaf0_len_c50/func_80147E48.s delete mode 100644 asm/nonmatchings/code_ddaf0_len_c50/func_80147E7C.s diff --git a/asm/nonmatchings/code_ddaf0_len_c50/func_80147E48.s b/asm/nonmatchings/code_ddaf0_len_c50/func_80147E48.s deleted file mode 100644 index 9e4e6b4a87..0000000000 --- a/asm/nonmatchings/code_ddaf0_len_c50/func_80147E48.s +++ /dev/null @@ -1,18 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80147E48 -/* DE548 80147E48 3C028016 */ lui $v0, %hi(gUIPanels) -/* DE54C 80147E4C 24429D50 */ addiu $v0, $v0, %lo(gUIPanels) -/* DE550 80147E50 00042140 */ sll $a0, $a0, 5 -/* DE554 80147E54 00822021 */ addu $a0, $a0, $v0 -/* DE558 80147E58 90830000 */ lbu $v1, ($a0) -/* DE55C 80147E5C 30620001 */ andi $v0, $v1, 1 -/* DE560 80147E60 10400004 */ beqz $v0, .L80147E74 -/* DE564 80147E64 3462000A */ ori $v0, $v1, 0xa -/* DE568 80147E68 A0820000 */ sb $v0, ($a0) -/* DE56C 80147E6C AC860008 */ sw $a2, 8($a0) -/* DE570 80147E70 A0850002 */ sb $a1, 2($a0) -.L80147E74: -/* DE574 80147E74 03E00008 */ jr $ra -/* DE578 80147E78 00000000 */ nop diff --git a/asm/nonmatchings/code_ddaf0_len_c50/func_80147E7C.s b/asm/nonmatchings/code_ddaf0_len_c50/func_80147E7C.s deleted file mode 100644 index 642f9a9643..0000000000 --- a/asm/nonmatchings/code_ddaf0_len_c50/func_80147E7C.s +++ /dev/null @@ -1,24 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80147E7C -/* DE57C 80147E7C 3C028016 */ lui $v0, %hi(gUIPanels) -/* DE580 80147E80 24429D50 */ addiu $v0, $v0, %lo(gUIPanels) -/* DE584 80147E84 00042140 */ sll $a0, $a0, 5 -/* DE588 80147E88 00822021 */ addu $a0, $a0, $v0 -/* DE58C 80147E8C 90830000 */ lbu $v1, ($a0) -/* DE590 80147E90 30620001 */ andi $v0, $v1, 1 -/* DE594 80147E94 10400009 */ beqz $v0, .L80147EBC -/* DE598 80147E98 00000000 */ nop -/* DE59C 80147E9C 8C820004 */ lw $v0, 4($a0) -/* DE5A0 80147EA0 14A20004 */ bne $a1, $v0, .L80147EB4 -/* DE5A4 80147EA4 3462000A */ ori $v0, $v1, 0xa -/* DE5A8 80147EA8 306200FD */ andi $v0, $v1, 0xfd -/* DE5AC 80147EAC 03E00008 */ jr $ra -/* DE5B0 80147EB0 A0820000 */ sb $v0, ($a0) -.L80147EB4: -/* DE5B4 80147EB4 A0820000 */ sb $v0, ($a0) -/* DE5B8 80147EB8 AC850008 */ sw $a1, 8($a0) -.L80147EBC: -/* DE5BC 80147EBC 03E00008 */ jr $ra -/* DE5C0 80147EC0 00000000 */ nop diff --git a/include/common_structs.h b/include/common_structs.h index 35167741b6..09e67e3585 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -1554,7 +1554,7 @@ typedef struct { typedef struct { /* 0x00 */ s8 flags; /* 0x01 */ char unk_01; - /* 0x02 */ char unk_02; // related to heirarchy somehow - sibling? group? + /* 0x02 */ s8 unk_02; // related to heirarchy somehow - sibling? group? /* 0x03 */ s8 parent; // ? /* 0x04 */ s32 unk_04; /* 0x08 */ UNK_PTR unk_08; diff --git a/src/code_ddaf0_len_c50.c b/src/code_ddaf0_len_c50.c index 8d7629b561..36f7a8ee95 100644 --- a/src/code_ddaf0_len_c50.c +++ b/src/code_ddaf0_len_c50.c @@ -26,9 +26,28 @@ INCLUDE_ASM(s32, "code_ddaf0_len_c50", set_ui_panel_properties); INCLUDE_ASM(s32, "code_ddaf0_len_c50", func_80147D70); -INCLUDE_ASM(s32, "code_ddaf0_len_c50", func_80147E48); +void func_80147E48(s32 panelIndex, s8 arg1, s32 arg2) { + UIPanel* panels = gUIPanels; -INCLUDE_ASM(s32, "code_ddaf0_len_c50", func_80147E7C); + if (panels[panelIndex].flags & 1) { + panels[panelIndex].flags |= 0xA; + panels[panelIndex].unk_08 = arg2; + panels[panelIndex].unk_02 = arg1; + } +} + +void func_80147E7C(s32 panelIndex, s32 arg1) { + UIPanel* panels = gUIPanels; + + if (panels[panelIndex].flags & 1) { + if (arg1 == panels[panelIndex].unk_04) { + panels[panelIndex].flags &= ~0x2; + } else { + panels[panelIndex].flags |= 0xA; + panels[panelIndex].unk_08 = arg1; + } + } +} INCLUDE_ASM(s32, "code_ddaf0_len_c50", func_80147EC4); From f6f56a8a5f4f87850a42922e59567c7129847377 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Fri, 13 Nov 2020 01:17:53 -0500 Subject: [PATCH 48/52] libultra organization --- .../code_de740_len_23f0/func_80149600.s | 10 ---------- .../os/{code_48a20_len_1c0 => ldiv}/ldiv.s | 8 ++++---- .../os/{code_48a20_len_1c0 => ldiv}/lldiv.s | 0 .../osEPiReadIo.s | 4 ++-- .../os/code_46760_len_90 => os}/__osDisableInt.s | 12 +++++++++--- .../os/code_46760_len_90 => os}/__osRestoreInt.s | 14 ++++++++++---- src/code_dd930_len_1c0.c | 2 +- src/code_de740_len_23f0.c | 5 ++++- src/os/code_3c1c0_len_60.c | 3 --- src/os/code_46760_len_90.c | 5 ----- src/os/code_48a20_len_1c0.c | 5 ----- src/os/ldiv.c | 5 +++++ src/os/osEPiReadIo.c | 3 +++ tools/splat.yaml | 7 ++++--- 14 files changed, 42 insertions(+), 41 deletions(-) delete mode 100644 asm/nonmatchings/code_de740_len_23f0/func_80149600.s rename asm/nonmatchings/os/{code_48a20_len_1c0 => ldiv}/ldiv.s (90%) rename asm/nonmatchings/os/{code_48a20_len_1c0 => ldiv}/lldiv.s (100%) rename asm/nonmatchings/os/{code_3c1c0_len_60 => osEPiReadIo}/osEPiReadIo.s (94%) rename asm/{nonmatchings/os/code_46760_len_90 => os}/__osDisableInt.s (86%) rename asm/{nonmatchings/os/code_46760_len_90 => os}/__osRestoreInt.s (53%) delete mode 100644 src/os/code_3c1c0_len_60.c delete mode 100644 src/os/code_46760_len_90.c delete mode 100644 src/os/code_48a20_len_1c0.c create mode 100644 src/os/ldiv.c create mode 100644 src/os/osEPiReadIo.c diff --git a/asm/nonmatchings/code_de740_len_23f0/func_80149600.s b/asm/nonmatchings/code_de740_len_23f0/func_80149600.s deleted file mode 100644 index da3fcd7152..0000000000 --- a/asm/nonmatchings/code_de740_len_23f0/func_80149600.s +++ /dev/null @@ -1,10 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80149600 -/* DFD00 80149600 3C018015 */ lui $at, %hi(gCurrentDoorSoundsSet) -/* DFD04 80149604 A4201340 */ sh $zero, %lo(gCurrentDoorSoundsSet)($at) -/* DFD08 80149608 3C018015 */ lui $at, %hi(D_80151308) -/* DFD0C 8014960C A4201308 */ sh $zero, %lo(D_80151308)($at) -/* DFD10 80149610 03E00008 */ jr $ra -/* DFD14 80149614 00000000 */ nop diff --git a/asm/nonmatchings/os/code_48a20_len_1c0/ldiv.s b/asm/nonmatchings/os/ldiv/ldiv.s similarity index 90% rename from asm/nonmatchings/os/code_48a20_len_1c0/ldiv.s rename to asm/nonmatchings/os/ldiv/ldiv.s index 8c09d0216d..7576b45bec 100644 --- a/asm/nonmatchings/os/code_48a20_len_1c0/ldiv.s +++ b/asm/nonmatchings/os/ldiv/ldiv.s @@ -4,19 +4,19 @@ glabel ldiv /* 48A20 8006D620 00A6001A */ div $zero, $a1, $a2 /* 48A24 8006D624 14C00002 */ bnez $a2, .L8006D630 -/* 48A28 8006D628 00000000 */ nop +/* 48A28 8006D628 00000000 */ nop /* 48A2C 8006D62C 0007000D */ break 7 .L8006D630: /* 48A30 8006D630 2401FFFF */ addiu $at, $zero, -1 /* 48A34 8006D634 14C10004 */ bne $a2, $at, .L8006D648 /* 48A38 8006D638 3C018000 */ lui $at, 0x8000 /* 48A3C 8006D63C 14A10002 */ bne $a1, $at, .L8006D648 -/* 48A40 8006D640 00000000 */ nop +/* 48A40 8006D640 00000000 */ nop /* 48A44 8006D644 0006000D */ break 6 .L8006D648: /* 48A48 8006D648 00001812 */ mflo $v1 -/* 48A4C 8006D64C 00000000 */ nop -/* 48A50 8006D650 00000000 */ nop +/* 48A4C 8006D64C 00000000 */ nop +/* 48A50 8006D650 00000000 */ nop /* 48A54 8006D654 00C30018 */ mult $a2, $v1 /* 48A58 8006D658 00001012 */ mflo $v0 /* 48A5C 8006D65C 27BDFFF8 */ addiu $sp, $sp, -8 diff --git a/asm/nonmatchings/os/code_48a20_len_1c0/lldiv.s b/asm/nonmatchings/os/ldiv/lldiv.s similarity index 100% rename from asm/nonmatchings/os/code_48a20_len_1c0/lldiv.s rename to asm/nonmatchings/os/ldiv/lldiv.s diff --git a/asm/nonmatchings/os/code_3c1c0_len_60/osEPiReadIo.s b/asm/nonmatchings/os/osEPiReadIo/osEPiReadIo.s similarity index 94% rename from asm/nonmatchings/os/code_3c1c0_len_60/osEPiReadIo.s rename to asm/nonmatchings/os/osEPiReadIo/osEPiReadIo.s index 88213f22dd..dc2b3a0fcb 100644 --- a/asm/nonmatchings/os/code_3c1c0_len_60/osEPiReadIo.s +++ b/asm/nonmatchings/os/osEPiReadIo/osEPiReadIo.s @@ -24,5 +24,5 @@ glabel osEPiReadIo /* 3C20C 80060E0C 8FB00010 */ lw $s0, 0x10($sp) /* 3C210 80060E10 03E00008 */ jr $ra /* 3C214 80060E14 27BD0020 */ addiu $sp, $sp, 0x20 -/* 3C218 80060E18 00000000 */ nop -/* 3C21C 80060E1C 00000000 */ nop +/* 3C218 80060E18 00000000 */ nop +/* 3C21C 80060E1C 00000000 */ nop diff --git a/asm/nonmatchings/os/code_46760_len_90/__osDisableInt.s b/asm/os/__osDisableInt.s similarity index 86% rename from asm/nonmatchings/os/code_46760_len_90/__osDisableInt.s rename to asm/os/__osDisableInt.s index 43951d5c8a..d6b2f19665 100644 --- a/asm/nonmatchings/os/code_46760_len_90/__osDisableInt.s +++ b/asm/os/__osDisableInt.s @@ -1,5 +1,11 @@ +.include "macro.inc" + +# assembler directives .set noat # allow manual use of $at .set noreorder # don't insert nops after branches +.set gp=64 # allow use of 64-bit general purpose registers + +.section .text, "ax" glabel __osDisableInt /* 46760 8006B360 3C0A8009 */ lui $t2, 0x8009 @@ -26,8 +32,8 @@ glabel __osDisableInt /* 467B4 8006B3B4 2401FFFE */ addiu $at, $zero, -2 /* 467B8 8006B3B8 01214824 */ and $t1, $t1, $at /* 467BC 8006B3BC 40896000 */ mtc0 $t1, $12 -/* 467C0 8006B3C0 00000000 */ nop -/* 467C4 8006B3C4 00000000 */ nop +/* 467C0 8006B3C0 00000000 */ nop +/* 467C4 8006B3C4 00000000 */ nop .L8006B3C8: /* 467C8 8006B3C8 03E00008 */ jr $ra -/* 467CC 8006B3CC 00000000 */ nop +/* 467CC 8006B3CC 00000000 */ nop diff --git a/asm/nonmatchings/os/code_46760_len_90/__osRestoreInt.s b/asm/os/__osRestoreInt.s similarity index 53% rename from asm/nonmatchings/os/code_46760_len_90/__osRestoreInt.s rename to asm/os/__osRestoreInt.s index 622b7b1c22..45a119ca70 100644 --- a/asm/nonmatchings/os/code_46760_len_90/__osRestoreInt.s +++ b/asm/os/__osRestoreInt.s @@ -1,12 +1,18 @@ +.include "macro.inc" + +# assembler directives .set noat # allow manual use of $at .set noreorder # don't insert nops after branches +.set gp=64 # allow use of 64-bit general purpose registers + +.section .text, "ax" glabel __osRestoreInt /* 467D0 8006B3D0 40086000 */ mfc0 $t0, $12 /* 467D4 8006B3D4 01044025 */ or $t0, $t0, $a0 /* 467D8 8006B3D8 40886000 */ mtc0 $t0, $12 -/* 467DC 8006B3DC 00000000 */ nop -/* 467E0 8006B3E0 00000000 */ nop +/* 467DC 8006B3DC 00000000 */ nop +/* 467E0 8006B3E0 00000000 */ nop /* 467E4 8006B3E4 03E00008 */ jr $ra -/* 467E8 8006B3E8 00000000 */ nop -/* 467EC 8006B3EC 00000000 */ nop +/* 467E8 8006B3E8 00000000 */ nop +/* 467EC 8006B3EC 00000000 */ nop diff --git a/src/code_dd930_len_1c0.c b/src/code_dd930_len_1c0.c index ffbda92f3d..721f0c13f9 100644 --- a/src/code_dd930_len_1c0.c +++ b/src/code_dd930_len_1c0.c @@ -25,7 +25,7 @@ void func_80147264(void) { case 1: // fading out if (temp->fadeFlags & 1) { s32 phi_v0; - if (temp->fadeOutTime < 0xFA) { + if (temp->fadeOutTime < 250) { phi_v0 = func_800554A4(0, temp->fadeOutTime); } else { phi_v0 = func_800554E8(0, temp->fadeOutTime); diff --git a/src/code_de740_len_23f0.c b/src/code_de740_len_23f0.c index be4225e7e3..8dea620771 100644 --- a/src/code_de740_len_23f0.c +++ b/src/code_de740_len_23f0.c @@ -14,7 +14,10 @@ INCLUDE_ASM(s32, "code_de740_len_23f0", func_801491E4); INCLUDE_ASM(s32, "code_de740_len_23f0", func_80149250); -INCLUDE_ASM(s32, "code_de740_len_23f0", func_80149600); +void func_80149600(void) { + gCurrentDoorSoundsSet = 0; + D_80151308 = 0; +} INCLUDE_ASM(s32, "code_de740_len_23f0", func_80149618); diff --git a/src/os/code_3c1c0_len_60.c b/src/os/code_3c1c0_len_60.c deleted file mode 100644 index 4dc123e0ef..0000000000 --- a/src/os/code_3c1c0_len_60.c +++ /dev/null @@ -1,3 +0,0 @@ -#include "common.h" - -INCLUDE_ASM(s32, "os/code_3c1c0_len_60", osEPiReadIo, OSPiHandle* handle, u32 size, u32* out); diff --git a/src/os/code_46760_len_90.c b/src/os/code_46760_len_90.c deleted file mode 100644 index df0f9bc2b9..0000000000 --- a/src/os/code_46760_len_90.c +++ /dev/null @@ -1,5 +0,0 @@ -#include "common.h" - -INCLUDE_ASM(s32, "os/code_46760_len_90", __osDisableInt); - -INCLUDE_ASM(s32, "os/code_46760_len_90", __osRestoreInt); diff --git a/src/os/code_48a20_len_1c0.c b/src/os/code_48a20_len_1c0.c deleted file mode 100644 index 9add8eb7a5..0000000000 --- a/src/os/code_48a20_len_1c0.c +++ /dev/null @@ -1,5 +0,0 @@ -#include "common.h" - -INCLUDE_ASM(s32, "os/code_48a20_len_1c0", ldiv); - -INCLUDE_ASM(s32, "os/code_48a20_len_1c0", lldiv); diff --git a/src/os/ldiv.c b/src/os/ldiv.c new file mode 100644 index 0000000000..792805b29f --- /dev/null +++ b/src/os/ldiv.c @@ -0,0 +1,5 @@ +#include "common.h" + +INCLUDE_ASM(s32, "os/ldiv", ldiv); + +INCLUDE_ASM(s32, "os/ldiv", lldiv); diff --git a/src/os/osEPiReadIo.c b/src/os/osEPiReadIo.c new file mode 100644 index 0000000000..e7c8e44a87 --- /dev/null +++ b/src/os/osEPiReadIo.c @@ -0,0 +1,3 @@ +#include "common.h" + +INCLUDE_ASM(s32, "os/osEPiReadIo", osEPiReadIo, OSPiHandle* handle, u32 size, u32* out); diff --git a/tools/splat.yaml b/tools/splat.yaml index eb9530570c..b88064e6e3 100644 --- a/tools/splat.yaml +++ b/tools/splat.yaml @@ -91,7 +91,7 @@ segments: - [0x3BD40, hasm, os/osSetIntMask] - [0x3bde0, c, "os/code_3bde0_len_3e0"] - [0x3C160, c, os/osEPiWriteIo] - - [0x3c1c0, c, "os/code_3c1c0_len_60"] + - [0x3c1c0, c, os/osEPiReadIo] - [0x3c220, c, "os/code_3c220_len_a0"] - [0x3c2c0, c, "os/code_3c2c0_len_50"] - [0x3c310, c, "os/code_3c310_len_180"] @@ -171,7 +171,8 @@ segments: - [0x45a30, c, "os/code_45a30_len_20"] - [0x45a50, c, "os/code_45a50_len_3a0"] - [0x45df0, hasm, "os/code_45df0_len_970"] - - [0x46760, c, "os/code_46760_len_90"] + - [0x46760, hasm, os/__osDisableInt] + - [0x467D0, hasm, os/__osRestoreInt] - [0x467f0, c, "os/code_467f0_len_90"] - [0x46880, c, "os/code_46880_len_260"] - [0x46ae0, c, "os/code_46ae0_len_170"] @@ -190,7 +191,7 @@ segments: - [0x47fa0, c, "os/code_47fa0_len_20"] - [0x47fc0, c, "os/code_47fc0_len_60"] - [0x48020, c, "os/code_48020_len_a00"] - - [0x48a20, c, "os/code_48a20_len_1c0"] + - [0x48a20, c, "os/ldiv"] - [0x48be0, c, "os/code_48be0_len_20"] - [0x48c00, c, "os/code_48c00_len_5c0"] - [0x491c0, c, "os/code_491c0_len_f80"] From f616532137658af5c310d6de0fe5524c4ec6142e Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Fri, 13 Nov 2020 01:36:13 -0500 Subject: [PATCH 49/52] osSiDeviceBusy --- .../os/code_48be0_len_20/osSiDeviceBusy.s | 12 ------------ src/os/code_48be0_len_20.c | 3 --- src/os/osSiDeviceBusy.c | 13 +++++++++++++ tools/splat.yaml | 2 +- 4 files changed, 14 insertions(+), 16 deletions(-) delete mode 100644 asm/nonmatchings/os/code_48be0_len_20/osSiDeviceBusy.s delete mode 100644 src/os/code_48be0_len_20.c create mode 100644 src/os/osSiDeviceBusy.c diff --git a/asm/nonmatchings/os/code_48be0_len_20/osSiDeviceBusy.s b/asm/nonmatchings/os/code_48be0_len_20/osSiDeviceBusy.s deleted file mode 100644 index 2d1d0a659b..0000000000 --- a/asm/nonmatchings/os/code_48be0_len_20/osSiDeviceBusy.s +++ /dev/null @@ -1,12 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel osSiDeviceBusy -/* 48BE0 8006D7E0 3C02A480 */ lui $v0, 0xa480 -/* 48BE4 8006D7E4 34420018 */ ori $v0, $v0, 0x18 -/* 48BE8 8006D7E8 8C420000 */ lw $v0, ($v0) -/* 48BEC 8006D7EC 30420003 */ andi $v0, $v0, 3 -/* 48BF0 8006D7F0 03E00008 */ jr $ra -/* 48BF4 8006D7F4 0002102B */ sltu $v0, $zero, $v0 -/* 48BF8 8006D7F8 00000000 */ nop -/* 48BFC 8006D7FC 00000000 */ nop diff --git a/src/os/code_48be0_len_20.c b/src/os/code_48be0_len_20.c deleted file mode 100644 index b6ce1230a9..0000000000 --- a/src/os/code_48be0_len_20.c +++ /dev/null @@ -1,3 +0,0 @@ -#include "common.h" - -INCLUDE_ASM(s32, "os/code_48be0_len_20", osSiDeviceBusy); diff --git a/src/os/osSiDeviceBusy.c b/src/os/osSiDeviceBusy.c new file mode 100644 index 0000000000..ae5c419122 --- /dev/null +++ b/src/os/osSiDeviceBusy.c @@ -0,0 +1,13 @@ +#include "common.h" + +s32 osSiDeviceBusy() { + // in oot, status is HW_REG(SI_STATUS_REG, u32); + // however, this macro doesn't exist in our libultra version apparently + u32 status = *(volatile u32*)(SI_STATUS_REG | 0xA0000000); + + if (status & (SI_STATUS_DMA_BUSY | SI_STATUS_RD_BUSY)) { + return TRUE; + } else { + return FALSE; + } +} diff --git a/tools/splat.yaml b/tools/splat.yaml index b88064e6e3..bfe744f12d 100644 --- a/tools/splat.yaml +++ b/tools/splat.yaml @@ -192,7 +192,7 @@ segments: - [0x47fc0, c, "os/code_47fc0_len_60"] - [0x48020, c, "os/code_48020_len_a00"] - [0x48a20, c, "os/ldiv"] - - [0x48be0, c, "os/code_48be0_len_20"] + - [0x48be0, c, "os/osSiDeviceBusy"] - [0x48c00, c, "os/code_48c00_len_5c0"] - [0x491c0, c, "os/code_491c0_len_f80"] - [0x49C70, c, "os/code_49C70"] From 529c75a4b0122fc522e46dee1af836546f0fabe4 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sat, 14 Nov 2020 09:27:51 -0500 Subject: [PATCH 50/52] PR comment --- src/code_138CC0.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/code_138CC0.c b/src/code_138CC0.c index a41cb78856..e2c6235fd7 100644 --- a/src/code_138CC0.c +++ b/src/code_138CC0.c @@ -132,10 +132,8 @@ void pause_badges_update(void) { if (temp - *unkSym >= 7) { *unkSym = temp - 6; - } else { - if (temp - *unkSym <= 0) { - *unkSym = temp - 1; - } + } else if (temp - *unkSym <= 0) { + *unkSym = temp - 1; } } From 53158279697745213c5919f48fcdaa6a15063b13 Mon Sep 17 00:00:00 2001 From: Lavos1 Date: Sun, 15 Nov 2020 23:15:59 +0000 Subject: [PATCH 51/52] Update DecorationTable --- include/common_structs.h | 7 +++---- src/code_190B20.c | 10 ++++------ 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/include/common_structs.h b/include/common_structs.h index 55c0498715..6c41cbbd02 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -1135,10 +1135,9 @@ typedef struct DecorationTable { /* 0x8AC */ u8 effectType; /* 0 = blur, 14 = none? */ /* 0x8AD */ char unk_8AD[11]; /* 0x8B8 */ u8 decorationType[2]; - /* 0x8BA */ u8 unk_8BA; - /* 0x8BB */ u8 unk_8BB; - /* 0x8BC */ u8 unk_8BC; - /* 0x8BD */ char unk_8BD[43]; + /* 0x8BA */ u8 unk_8BA[2]; + /* 0x8BC */ u8 unk_8BC[2]; + /* 0x8BD */ char unk_8BD[42]; } DecorationTable; // size = 0x8E8 typedef struct Shop { diff --git a/src/code_190B20.c b/src/code_190B20.c index a795359b82..73d2a494d4 100644 --- a/src/code_190B20.c +++ b/src/code_190B20.c @@ -283,14 +283,12 @@ INCLUDE_ASM(s32, "code_190B20", func_802670C8); void add_part_decoration(ActorPart* part, s32 decorationIndex, DecorationId decorationType) { if ((part->idleAnimations) && !(part->flags & 2)) { - char* decorationTable = part->decorationTable->unk_00; - DecorationTable* decoration; + DecorationTable* decorationTable = part->decorationTable; _remove_part_decoration(part, decorationIndex); - decoration = &decorationTable[decorationIndex]; - decoration->decorationType[0] = decorationType; - decoration->unk_8BA = 1; - decoration->unk_8BC = 0; + decorationTable->decorationType[decorationIndex] = decorationType; + decorationTable->unk_8BA[decorationIndex] = 1; + decorationTable->unk_8BC[decorationIndex] = 0; func_8025CEC8(part); } } From cb23fa9a5aca17cdc910281a07bd26906b7448e9 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Tue, 17 Nov 2020 17:01:31 -0500 Subject: [PATCH 52/52] Splat update --- tools/n64splat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/n64splat b/tools/n64splat index 8e424ae728..24aa8a9d28 160000 --- a/tools/n64splat +++ b/tools/n64splat @@ -1 +1 @@ -Subproject commit 8e424ae728e9f8c05ea3d81af85a4f995bb29915 +Subproject commit 24aa8a9d284cbc170d691f20874171b018deb53e