From 188420bec32c48ae11a4cf9b570901b1ea0ecfc1 Mon Sep 17 00:00:00 2001 From: dark-samus Date: Mon, 3 Aug 2020 18:32:21 -0400 Subject: [PATCH] stuff --- papermario/Makefile | 2 +- papermario/asm/code_1b40_len_20b0.s | 2259 ----------------- .../asm/code_1b40_len_20b0/func_800269EC.s | 82 + .../asm/code_1b40_len_20b0/func_80027088.s | 80 + .../asm/code_1b40_len_20b0/func_80027190.s | 12 + .../asm/code_1b40_len_20b0/func_800271A0.s | 31 + .../asm/code_1b40_len_20b0/func_800271FC.s | 32 + .../asm/code_1b40_len_20b0/func_8002725C.s | 274 ++ .../asm/code_1b40_len_20b0/func_80027600.s | 109 + .../asm/code_1b40_len_20b0/func_80027774.s | 158 ++ .../asm/code_1b40_len_20b0/func_800279B4.s | 139 + .../asm/code_1b40_len_20b0/func_80027BAC.s | 162 ++ .../asm/code_1b40_len_20b0/func_80027E10.s | 674 +++++ .../asm/code_1b40_len_20b0/gfx_draw_frame.s | 201 ++ .../asm/code_1b40_len_20b0/load_engine_data.s | 180 ++ .../asm/code_1b40_len_20b0/step_game_loop.s | 195 ++ papermario/asm/code_8a160_len_700.s | 487 ---- .../code_8a160_len_700/battle_heap_create.s | 18 + .../asm/code_8a160_len_700/func_800F0CB0.s | 57 + .../asm/code_8a160_len_700/func_800F0D80.s | 194 ++ .../asm/code_8a160_len_700/func_800F102C.s | 238 ++ papermario/include/common_structs.h | 42 +- papermario/papermario.ld | 4 +- papermario/src/code_1b40_len_20b0.c | 142 ++ papermario/src/code_8a160_len_700.c | 112 + papermario/src/code_dd930_len_1c0.c | 2 +- papermario/undefined_syms.txt | 1 + 27 files changed, 3128 insertions(+), 2759 deletions(-) delete mode 100644 papermario/asm/code_1b40_len_20b0.s create mode 100644 papermario/asm/code_1b40_len_20b0/func_800269EC.s create mode 100644 papermario/asm/code_1b40_len_20b0/func_80027088.s create mode 100644 papermario/asm/code_1b40_len_20b0/func_80027190.s create mode 100644 papermario/asm/code_1b40_len_20b0/func_800271A0.s create mode 100644 papermario/asm/code_1b40_len_20b0/func_800271FC.s create mode 100644 papermario/asm/code_1b40_len_20b0/func_8002725C.s create mode 100644 papermario/asm/code_1b40_len_20b0/func_80027600.s create mode 100644 papermario/asm/code_1b40_len_20b0/func_80027774.s create mode 100644 papermario/asm/code_1b40_len_20b0/func_800279B4.s create mode 100644 papermario/asm/code_1b40_len_20b0/func_80027BAC.s create mode 100644 papermario/asm/code_1b40_len_20b0/func_80027E10.s create mode 100644 papermario/asm/code_1b40_len_20b0/gfx_draw_frame.s create mode 100644 papermario/asm/code_1b40_len_20b0/load_engine_data.s create mode 100644 papermario/asm/code_1b40_len_20b0/step_game_loop.s delete mode 100644 papermario/asm/code_8a160_len_700.s create mode 100644 papermario/asm/code_8a160_len_700/battle_heap_create.s create mode 100644 papermario/asm/code_8a160_len_700/func_800F0CB0.s create mode 100644 papermario/asm/code_8a160_len_700/func_800F0D80.s create mode 100644 papermario/asm/code_8a160_len_700/func_800F102C.s create mode 100644 papermario/src/code_1b40_len_20b0.c create mode 100644 papermario/src/code_8a160_len_700.c diff --git a/papermario/Makefile b/papermario/Makefile index c17907663d..4805e44799 100644 --- a/papermario/Makefile +++ b/papermario/Makefile @@ -47,7 +47,7 @@ LD = $(CROSS_IRIX)ld OBJDUMP = $(CROSS)objdump OBJCOPY = $(CROSS)objcopy -CPPFLAGS = -Iinclude -D _LANGUAGE_C +CPPFLAGS = -Iinclude -D _LANGUAGE_C -DF3DEX_GBI_2 ASFLAGS = -EB -march=vr4300 -mtune=vr4300 CFLAGS = -O2 -quiet -G 0 -mcpu=vr4300 -mfix4300 LDFLAGS = -T undefined_syms.txt -T $(LD_SCRIPT) -Map $(BUILD_DIR)/papermario.map --no-check-sections diff --git a/papermario/asm/code_1b40_len_20b0.s b/papermario/asm/code_1b40_len_20b0.s deleted file mode 100644 index 50577b178d..0000000000 --- a/papermario/asm/code_1b40_len_20b0.s +++ /dev/null @@ -1,2259 +0,0 @@ -# %s disassembly and split file -# generated by n64split v%s - N64 ROM splitter - -# 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 - -.include "globals.inc" - - -.section .text80026740, "ax" - -step_game_loop: -/* 001B40 80026740 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 001B44 80026744 AFBF0018 */ sw $ra, 0x18($sp) -/* 001B48 80026748 AFB10014 */ sw $s1, 0x14($sp) -/* 001B4C 8002674C 0C00A21D */ jal update_input -/* 001B50 80026750 AFB00010 */ sw $s0, 0x10($sp) -/* 001B54 80026754 3C038007 */ lui $v1, 0x8007 -/* 001B58 80026758 8C63419C */ lw $v1, 0x419c($v1) -/* 001B5C 8002675C 3C040CDF */ lui $a0, 0xcdf -/* 001B60 80026760 94620134 */ lhu $v0, 0x134($v1) -/* 001B64 80026764 3C108011 */ lui $s0, 0x8011 -/* 001B68 80026768 2610F290 */ addiu $s0, $s0, -0xd70 -/* 001B6C 8002676C 24420001 */ addiu $v0, $v0, 1 -/* 001B70 80026770 A4620134 */ sh $v0, 0x134($v1) -/* 001B74 80026774 8E0202BC */ lw $v0, 0x2bc($s0) -/* 001B78 80026778 3484E5FF */ ori $a0, $a0, 0xe5ff -/* 001B7C 8002677C 24420002 */ addiu $v0, $v0, 2 -/* 001B80 80026780 AE0202BC */ sw $v0, 0x2bc($s0) -/* 001B84 80026784 0082102B */ sltu $v0, $a0, $v0 -/* 001B88 80026788 54400001 */ bnel $v0, $zero, .L80026790 -/* 001B8C 8002678C AE0402BC */ sw $a0, 0x2bc($s0) -.L80026790: -/* 001B90 80026790 0C00A3E3 */ jal func_80028F8C -/* 001B94 80026794 00000000 */ nop -/* 001B98 80026798 3C048007 */ lui $a0, 0x8007 -/* 001B9C 8002679C 24844021 */ addiu $a0, $a0, 0x4021 -/* 001BA0 800267A0 80820000 */ lb $v0, ($a0) -/* 001BA4 800267A4 90830000 */ lbu $v1, ($a0) -/* 001BA8 800267A8 10400008 */ beqz $v0, .L800267CC -/* 001BAC 800267AC 2462FFFF */ addiu $v0, $v1, -1 -/* 001BB0 800267B0 A0820000 */ sb $v0, ($a0) -/* 001BB4 800267B4 00021600 */ sll $v0, $v0, 0x18 -/* 001BB8 800267B8 14400087 */ bnez $v0, .L800269D8 -/* 001BBC 800267BC 00000000 */ nop -/* 001BC0 800267C0 3C028007 */ lui $v0, 0x8007 -/* 001BC4 800267C4 90424020 */ lbu $v0, 0x4020($v0) -/* 001BC8 800267C8 A0820000 */ sb $v0, ($a0) -.L800267CC: -/* 001BCC 800267CC 0C046EBA */ jal func_8011BAE8 -/* 001BD0 800267D0 00000000 */ nop -/* 001BD4 800267D4 0C00E15F */ jal func_8003857C -/* 001BD8 800267D8 00000000 */ nop -/* 001BDC 800267DC 0C048D01 */ jal func_80123404 -/* 001BE0 800267E0 00000000 */ nop -/* 001BE4 800267E4 0C051618 */ jal update_triggers -/* 001BE8 800267E8 00000000 */ nop -/* 001BEC 800267EC 0C0B0F5D */ jal update_scripts -/* 001BF0 800267F0 00000000 */ nop -/* 001BF4 800267F4 0C048DF6 */ jal update_messages -/* 001BF8 800267F8 00000000 */ nop -/* 001BFC 800267FC 0C050584 */ jal update_menu_icons -/* 001C00 80026800 00000000 */ nop -/* 001C04 80026804 0C044B9E */ jal step_current_game_mode -/* 001C08 80026808 00000000 */ nop -/* 001C0C 8002680C 0C043DB4 */ jal update_entities -/* 001C10 80026810 00000000 */ nop -/* 001C14 80026814 0C04E066 */ jal func_80138198 -/* 001C18 80026818 00000000 */ nop -/* 001C1C 8002681C 0C052952 */ jal func_8014A548 -/* 001C20 80026820 00000000 */ nop -/* 001C24 80026824 0C051C99 */ jal UpdateMusicPlayers -/* 001C28 80026828 00000000 */ nop -/* 001C2C 8002682C 0C0525CD */ jal func_80149734 -/* 001C30 80026830 00000000 */ nop -/* 001C34 80026834 0C051D05 */ jal func_80147414 -/* 001C38 80026838 00000000 */ nop -/* 001C3C 8002683C 0C00AE9E */ jal func_8002BA78 -/* 001C40 80026840 00000000 */ nop -/* 001C44 80026844 3C10800A */ lui $s0, 0x800a -/* 001C48 80026848 2610A650 */ addiu $s0, $s0, -0x59b0 -/* 001C4C 8002684C 8E040000 */ lw $a0, ($s0) -/* 001C50 80026850 30820020 */ andi $v0, $a0, 0x20 -/* 001C54 80026854 10400035 */ beqz $v0, .L8002692C -/* 001C58 80026858 00000000 */ nop -/* 001C5C 8002685C 3C118007 */ lui $s1, 0x8007 -/* 001C60 80026860 263141A2 */ addiu $s1, $s1, 0x41a2 -/* 001C64 80026864 86230000 */ lh $v1, ($s1) -/* 001C68 80026868 10600005 */ beqz $v1, .L80026880 -/* 001C6C 8002686C 24020001 */ addiu $v0, $zero, 1 -/* 001C70 80026870 1062001C */ beq $v1, $v0, .L800268E4 -/* 001C74 80026874 34840008 */ ori $a0, $a0, 8 -/* 001C78 80026878 08009A4F */ j .L8002693C -/* 001C7C 8002687C 00000000 */ nop - -.L80026880: -/* 001C80 80026880 34820200 */ ori $v0, $a0, 0x200 -/* 001C84 80026884 0C03805E */ jal func_800E0178 -/* 001C88 80026888 AE020000 */ sw $v0, ($s0) -/* 001C8C 8002688C 3C048007 */ lui $a0, 0x8007 -/* 001C90 80026890 248441A0 */ addiu $a0, $a0, 0x41a0 -/* 001C94 80026894 240500FF */ addiu $a1, $zero, 0xff -/* 001C98 80026898 84820000 */ lh $v0, ($a0) -/* 001C9C 8002689C 94830000 */ lhu $v1, ($a0) -/* 001CA0 800268A0 14450008 */ bne $v0, $a1, .L800268C4 -/* 001CA4 800268A4 2462000A */ addiu $v0, $v1, 0xa -/* 001CA8 800268A8 24020001 */ addiu $v0, $zero, 1 -/* 001CAC 800268AC A6220000 */ sh $v0, ($s1) -/* 001CB0 800268B0 24020003 */ addiu $v0, $zero, 3 -/* 001CB4 800268B4 3C01800A */ lui $at, 0x800a -/* 001CB8 800268B8 A422A690 */ sh $v0, -0x5970($at) -/* 001CBC 800268BC 08009A4F */ j .L8002693C -/* 001CC0 800268C0 00000000 */ nop - -.L800268C4: -/* 001CC4 800268C4 A4820000 */ sh $v0, ($a0) -/* 001CC8 800268C8 00021400 */ sll $v0, $v0, 0x10 -/* 001CCC 800268CC 00021403 */ sra $v0, $v0, 0x10 -/* 001CD0 800268D0 28420100 */ slti $v0, $v0, 0x100 -/* 001CD4 800268D4 50400019 */ beql $v0, $zero, .L8002693C -/* 001CD8 800268D8 A4850000 */ sh $a1, ($a0) -/* 001CDC 800268DC 08009A4F */ j .L8002693C -/* 001CE0 800268E0 00000000 */ nop - -.L800268E4: -/* 001CE4 800268E4 3C02800A */ lui $v0, 0x800a -/* 001CE8 800268E8 2442A690 */ addiu $v0, $v0, -0x5970 -/* 001CEC 800268EC 94430000 */ lhu $v1, ($v0) -/* 001CF0 800268F0 AE040000 */ sw $a0, ($s0) -/* 001CF4 800268F4 2463FFFF */ addiu $v1, $v1, -1 -/* 001CF8 800268F8 A4430000 */ sh $v1, ($v0) -/* 001CFC 800268FC 00031C00 */ sll $v1, $v1, 0x10 -/* 001D00 80026900 1460000E */ bnez $v1, .L8002693C -/* 001D04 80026904 00000000 */ nop -/* 001D08 80026908 0C05260E */ jal func_80149838 -/* 001D0C 8002690C 00000000 */ nop -/* 001D10 80026910 0C00CD3C */ jal set_game_mode -/* 001D14 80026914 0000202D */ daddu $a0, $zero, $zero -/* 001D18 80026918 8E020000 */ lw $v0, ($s0) -/* 001D1C 8002691C 2403FFDF */ addiu $v1, $zero, -0x21 -/* 001D20 80026920 00431024 */ and $v0, $v0, $v1 -/* 001D24 80026924 08009A4F */ j .L8002693C -/* 001D28 80026928 AE020000 */ sw $v0, ($s0) - -.L8002692C: -/* 001D2C 8002692C 3C018007 */ lui $at, 0x8007 -/* 001D30 80026930 A42041A0 */ sh $zero, 0x41a0($at) -/* 001D34 80026934 3C018007 */ lui $at, 0x8007 -/* 001D38 80026938 A42041A2 */ sh $zero, 0x41a2($at) -.L8002693C: -/* 001D3C 8002693C 3C04800A */ lui $a0, 0x800a -/* 001D40 80026940 2484A650 */ addiu $a0, $a0, -0x59b0 -/* 001D44 80026944 8C830000 */ lw $v1, ($a0) -/* 001D48 80026948 30620100 */ andi $v0, $v1, 0x100 -/* 001D4C 8002694C 14400003 */ bnez $v0, .L8002695C -/* 001D50 80026950 34621000 */ ori $v0, $v1, 0x1000 -/* 001D54 80026954 2402EFFF */ addiu $v0, $zero, -0x1001 -/* 001D58 80026958 00621024 */ and $v0, $v1, $v0 -.L8002695C: -/* 001D5C 8002695C AC820000 */ sw $v0, ($a0) -/* 001D60 80026960 3C04800A */ lui $a0, 0x800a -/* 001D64 80026964 2484A650 */ addiu $a0, $a0, -0x59b0 -/* 001D68 80026968 8C830000 */ lw $v1, ($a0) -/* 001D6C 8002696C 30620200 */ andi $v0, $v1, 0x200 -/* 001D70 80026970 14400003 */ bnez $v0, .L80026980 -/* 001D74 80026974 34622000 */ ori $v0, $v1, 0x2000 -/* 001D78 80026978 2402DFFF */ addiu $v0, $zero, -0x2001 -/* 001D7C 8002697C 00621024 */ and $v0, $v1, $v0 -.L80026980: -/* 001D80 80026980 AC820000 */ sw $v0, ($a0) -/* 001D84 80026984 3C04800A */ lui $a0, 0x800a -/* 001D88 80026988 2484A650 */ addiu $a0, $a0, -0x59b0 -/* 001D8C 8002698C 8C830000 */ lw $v1, ($a0) -/* 001D90 80026990 30620400 */ andi $v0, $v1, 0x400 -/* 001D94 80026994 14400003 */ bnez $v0, .L800269A4 -/* 001D98 80026998 34624000 */ ori $v0, $v1, 0x4000 -/* 001D9C 8002699C 2402BFFF */ addiu $v0, $zero, -0x4001 -/* 001DA0 800269A0 00621024 */ and $v0, $v1, $v0 -.L800269A4: -/* 001DA4 800269A4 AC820000 */ sw $v0, ($a0) -/* 001DA8 800269A8 3C04800A */ lui $a0, 0x800a -/* 001DAC 800269AC 2484A650 */ addiu $a0, $a0, -0x59b0 -/* 001DB0 800269B0 8C830000 */ lw $v1, ($a0) -/* 001DB4 800269B4 30620800 */ andi $v0, $v1, 0x800 -/* 001DB8 800269B8 14400004 */ bnez $v0, .L800269CC -/* 001DBC 800269BC 34628000 */ ori $v0, $v1, 0x8000 -/* 001DC0 800269C0 3C02FFFF */ lui $v0, 0xffff -/* 001DC4 800269C4 34427FFF */ ori $v0, $v0, 0x7fff -/* 001DC8 800269C8 00621024 */ and $v0, $v1, $v0 -.L800269CC: -/* 001DCC 800269CC AC820000 */ sw $v0, ($a0) -/* 001DD0 800269D0 0C00A67F */ jal rand_int -/* 001DD4 800269D4 24040001 */ addiu $a0, $zero, 1 -.L800269D8: -/* 001DD8 800269D8 8FBF0018 */ lw $ra, 0x18($sp) -/* 001DDC 800269DC 8FB10014 */ lw $s1, 0x14($sp) -/* 001DE0 800269E0 8FB00010 */ lw $s0, 0x10($sp) -/* 001DE4 800269E4 03E00008 */ jr $ra -/* 001DE8 800269E8 27BD0020 */ addiu $sp, $sp, 0x20 - -func_800269EC: -/* 001DEC 800269EC 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 001DF0 800269F0 AFB20018 */ sw $s2, 0x18($sp) -/* 001DF4 800269F4 3C120001 */ lui $s2, 1 -/* 001DF8 800269F8 36520630 */ ori $s2, $s2, 0x630 -/* 001DFC 800269FC AFB10014 */ sw $s1, 0x14($sp) -/* 001E00 80026A00 3C11800A */ lui $s1, 0x800a -/* 001E04 80026A04 2631A674 */ addiu $s1, $s1, -0x598c -/* 001E08 80026A08 3C048007 */ lui $a0, 0x8007 -/* 001E0C 80026A0C 8C8441F4 */ lw $a0, 0x41f4($a0) -/* 001E10 80026A10 3C058016 */ lui $a1, 0x8016 -/* 001E14 80026A14 24A54000 */ addiu $a1, $a1, 0x4000 -/* 001E18 80026A18 AFB00010 */ sw $s0, 0x10($sp) -/* 001E1C 80026A1C 3C10800A */ lui $s0, 0x800a -/* 001E20 80026A20 2610A66C */ addiu $s0, $s0, -0x5994 -/* 001E24 80026A24 AFBF001C */ sw $ra, 0x1c($sp) -/* 001E28 80026A28 00041040 */ sll $v0, $a0, 1 -/* 001E2C 80026A2C 00441021 */ addu $v0, $v0, $a0 -/* 001E30 80026A30 000210C0 */ sll $v0, $v0, 3 -/* 001E34 80026A34 00441021 */ addu $v0, $v0, $a0 -/* 001E38 80026A38 00021980 */ sll $v1, $v0, 6 -/* 001E3C 80026A3C 00431021 */ addu $v0, $v0, $v1 -/* 001E40 80026A40 00021080 */ sll $v0, $v0, 2 -/* 001E44 80026A44 00441023 */ subu $v0, $v0, $a0 -/* 001E48 80026A48 00021100 */ sll $v0, $v0, 4 -/* 001E4C 80026A4C 00451021 */ addu $v0, $v0, $a1 -/* 001E50 80026A50 AE220000 */ sw $v0, ($s1) -/* 001E54 80026A54 00521021 */ addu $v0, $v0, $s2 -/* 001E58 80026A58 0C009C68 */ jal func_800271A0 -/* 001E5C 80026A5C AE020000 */ sw $v0, ($s0) -/* 001E60 80026A60 0C009F84 */ jal func_80027E10 -/* 001E64 80026A64 00000000 */ nop -/* 001E68 80026A68 8E030000 */ lw $v1, ($s0) -/* 001E6C 80026A6C 3C02E900 */ lui $v0, 0xe900 -/* 001E70 80026A70 0060202D */ daddu $a0, $v1, $zero -/* 001E74 80026A74 24630008 */ addiu $v1, $v1, 8 -/* 001E78 80026A78 AE030000 */ sw $v1, ($s0) -/* 001E7C 80026A7C AC820000 */ sw $v0, ($a0) -/* 001E80 80026A80 24620008 */ addiu $v0, $v1, 8 -/* 001E84 80026A84 AC800004 */ sw $zero, 4($a0) -/* 001E88 80026A88 3C04DF00 */ lui $a0, 0xdf00 -/* 001E8C 80026A8C AE020000 */ sw $v0, ($s0) -/* 001E90 80026A90 AC640000 */ sw $a0, ($v1) -/* 001E94 80026A94 AC600004 */ sw $zero, 4($v1) -/* 001E98 80026A98 8E230000 */ lw $v1, ($s1) -/* 001E9C 80026A9C 00521023 */ subu $v0, $v0, $s2 -/* 001EA0 80026AA0 00431023 */ subu $v0, $v0, $v1 -/* 001EA4 80026AA4 000210C2 */ srl $v0, $v0, 3 -/* 001EA8 80026AA8 28420200 */ slti $v0, $v0, 0x200 -/* 001EAC 80026AAC 14400003 */ bnez $v0, .L80026ABC -/* 001EB0 80026AB0 3C040001 */ lui $a0, 1 -.L80026AB4: -/* 001EB4 80026AB4 08009AAD */ j .L80026AB4 -/* 001EB8 80026AB8 00000000 */ nop - -.L80026ABC: -/* 001EBC 80026ABC 34840630 */ ori $a0, $a0, 0x630 -/* 001EC0 80026AC0 0000302D */ daddu $a2, $zero, $zero -/* 001EC4 80026AC4 00C0382D */ daddu $a3, $a2, $zero -/* 001EC8 80026AC8 3C05800A */ lui $a1, 0x800a -/* 001ECC 80026ACC 8CA5A66C */ lw $a1, -0x5994($a1) -/* 001ED0 80026AD0 3C02800A */ lui $v0, 0x800a -/* 001ED4 80026AD4 8C42A674 */ lw $v0, -0x598c($v0) -/* 001ED8 80026AD8 00A42823 */ subu $a1, $a1, $a0 -/* 001EDC 80026ADC 00A22823 */ subu $a1, $a1, $v0 -/* 001EE0 80026AE0 000528C3 */ sra $a1, $a1, 3 -/* 001EE4 80026AE4 00442021 */ addu $a0, $v0, $a0 -/* 001EE8 80026AE8 0C00B331 */ jal nuGfxTaskStart -/* 001EEC 80026AEC 000528C0 */ sll $a1, $a1, 3 -/* 001EF0 80026AF0 8FBF001C */ lw $ra, 0x1c($sp) -/* 001EF4 80026AF4 8FB20018 */ lw $s2, 0x18($sp) -/* 001EF8 80026AF8 8FB10014 */ lw $s1, 0x14($sp) -/* 001EFC 80026AFC 8FB00010 */ lw $s0, 0x10($sp) -/* 001F00 80026B00 03E00008 */ jr $ra -/* 001F04 80026B04 27BD0020 */ addiu $sp, $sp, 0x20 - -gfx_draw_frame: -/* 001F08 80026B08 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 001F0C 80026B0C 3C04800A */ lui $a0, 0x800a -/* 001F10 80026B10 8C84A674 */ lw $a0, -0x598c($a0) -/* 001F14 80026B14 3C05800A */ lui $a1, 0x800a -/* 001F18 80026B18 24A5A66C */ addiu $a1, $a1, -0x5994 -/* 001F1C 80026B1C AFB00010 */ sw $s0, 0x10($sp) -/* 001F20 80026B20 3C10800A */ lui $s0, 0x800a -/* 001F24 80026B24 2610A650 */ addiu $s0, $s0, -0x59b0 -/* 001F28 80026B28 AFBF0018 */ sw $ra, 0x18($sp) -/* 001F2C 80026B2C AFB10014 */ sw $s1, 0x14($sp) -/* 001F30 80026B30 3C018007 */ lui $at, 0x8007 -/* 001F34 80026B34 A42041F0 */ sh $zero, 0x41f0($at) -/* 001F38 80026B38 8E020000 */ lw $v0, ($s0) -/* 001F3C 80026B3C 24830230 */ addiu $v1, $a0, 0x230 -/* 001F40 80026B40 30420008 */ andi $v0, $v0, 8 -/* 001F44 80026B44 10400007 */ beqz $v0, .L80026B64 -/* 001F48 80026B48 ACA30000 */ sw $v1, ($a1) -/* 001F4C 80026B4C 3C038007 */ lui $v1, 0x8007 -/* 001F50 80026B50 246341F4 */ addiu $v1, $v1, 0x41f4 -/* 001F54 80026B54 8C620000 */ lw $v0, ($v1) -/* 001F58 80026B58 38420001 */ xori $v0, $v0, 1 -/* 001F5C 80026B5C 08009B72 */ j .L80026DC8 -/* 001F60 80026B60 AC620000 */ sw $v0, ($v1) - -.L80026B64: -/* 001F64 80026B64 3C03DA38 */ lui $v1, 0xda38 -/* 001F68 80026B68 34630003 */ ori $v1, $v1, 3 -/* 001F6C 80026B6C 24820238 */ addiu $v0, $a0, 0x238 -/* 001F70 80026B70 ACA20000 */ sw $v0, ($a1) -/* 001F74 80026B74 3C028007 */ lui $v0, 0x8007 -/* 001F78 80026B78 244241A8 */ addiu $v0, $v0, 0x41a8 -/* 001F7C 80026B7C AC830230 */ sw $v1, 0x230($a0) -/* 001F80 80026B80 0C0B7698 */ jal func_802DDA60 -/* 001F84 80026B84 AC820234 */ sw $v0, 0x234($a0) -/* 001F88 80026B88 8E020000 */ lw $v0, ($s0) -/* 001F8C 80026B8C 30420002 */ andi $v0, $v0, 2 -/* 001F90 80026B90 14400003 */ bnez $v0, .L80026BA0 -/* 001F94 80026B94 00000000 */ nop -/* 001F98 80026B98 0C00B5CF */ jal render_frame -/* 001F9C 80026B9C 0000202D */ daddu $a0, $zero, $zero -.L80026BA0: -/* 001FA0 80026BA0 0C038098 */ jal func_800E0260 -/* 001FA4 80026BA4 00000000 */ nop -/* 001FA8 80026BA8 0C0B0FB9 */ jal func_802C3EE4 -/* 001FAC 80026BAC 00000000 */ nop -/* 001FB0 80026BB0 0C04E088 */ jal func_80138220 -/* 001FB4 80026BB4 00000000 */ nop -/* 001FB8 80026BB8 0C048D54 */ jal func_80123550 -/* 001FBC 80026BBC 00000000 */ nop -/* 001FC0 80026BC0 0C050884 */ jal func_80142210 -/* 001FC4 80026BC4 00000000 */ nop -/* 001FC8 80026BC8 0C0167E5 */ jal func_80059F94 -/* 001FCC 80026BCC 00000000 */ nop -/* 001FD0 80026BD0 0C044BD6 */ jal render_ui -/* 001FD4 80026BD4 00000000 */ nop -/* 001FD8 80026BD8 8E020000 */ lw $v0, ($s0) -/* 001FDC 80026BDC 3C030001 */ lui $v1, 1 -/* 001FE0 80026BE0 00431024 */ and $v0, $v0, $v1 -/* 001FE4 80026BE4 14400003 */ bnez $v0, .L80026BF4 -/* 001FE8 80026BE8 00000000 */ nop -/* 001FEC 80026BEC 0C051EB1 */ jal func_80147AC4 -/* 001FF0 80026BF0 00000000 */ nop -.L80026BF4: -/* 001FF4 80026BF4 8E020000 */ lw $v0, ($s0) -/* 001FF8 80026BF8 30420002 */ andi $v0, $v0, 2 -/* 001FFC 80026BFC 14400009 */ bnez $v0, .L80026C24 -/* 002000 80026C00 3C100010 */ lui $s0, 0x10 -/* 002004 80026C04 3C028007 */ lui $v0, 0x8007 -/* 002008 80026C08 8C42419C */ lw $v0, 0x419c($v0) -/* 00200C 80026C0C 80420078 */ lb $v0, 0x78($v0) -/* 002010 80026C10 14400004 */ bnez $v0, .L80026C24 -/* 002014 80026C14 00000000 */ nop -/* 002018 80026C18 0C00B5CF */ jal render_frame -/* 00201C 80026C1C 24040001 */ addiu $a0, $zero, 1 -/* 002020 80026C20 3C100010 */ lui $s0, 0x10 -.L80026C24: -/* 002024 80026C24 3C11800A */ lui $s1, 0x800a -/* 002028 80026C28 2631A650 */ addiu $s1, $s1, -0x59b0 -/* 00202C 80026C2C 8E220000 */ lw $v0, ($s1) -/* 002030 80026C30 36100010 */ ori $s0, $s0, 0x10 -/* 002034 80026C34 00501024 */ and $v0, $v0, $s0 -/* 002038 80026C38 14400003 */ bnez $v0, .L80026C48 -/* 00203C 80026C3C 00000000 */ nop -/* 002040 80026C40 0C049081 */ jal render_messages -/* 002044 80026C44 00000000 */ nop -.L80026C48: -/* 002048 80026C48 0C048D38 */ jal func_801234E0 -/* 00204C 80026C4C 00000000 */ nop -/* 002050 80026C50 0C0509C7 */ jal func_8014271C -/* 002054 80026C54 00000000 */ nop -/* 002058 80026C58 0C04E068 */ jal func_801381A0 -/* 00205C 80026C5C 00000000 */ nop -/* 002060 80026C60 8E220000 */ lw $v0, ($s1) -/* 002064 80026C64 24030010 */ addiu $v1, $zero, 0x10 -/* 002068 80026C68 00501024 */ and $v0, $v0, $s0 -/* 00206C 80026C6C 14430003 */ bne $v0, $v1, .L80026C7C -/* 002070 80026C70 00000000 */ nop -/* 002074 80026C74 0C049081 */ jal render_messages -/* 002078 80026C78 00000000 */ nop -.L80026C7C: -/* 00207C 80026C7C 0C00AEA0 */ jal func_8002BA80 -/* 002080 80026C80 00000000 */ nop -/* 002084 80026C84 8E220000 */ lw $v0, ($s1) -/* 002088 80026C88 3C030010 */ lui $v1, 0x10 -/* 00208C 80026C8C 00431024 */ and $v0, $v0, $v1 -/* 002090 80026C90 10400003 */ beqz $v0, .L80026CA0 -/* 002094 80026C94 00000000 */ nop -/* 002098 80026C98 0C049081 */ jal render_messages -/* 00209C 80026C9C 00000000 */ nop -.L80026CA0: -/* 0020A0 80026CA0 8E220000 */ lw $v0, ($s1) -/* 0020A4 80026CA4 3C030001 */ lui $v1, 1 -/* 0020A8 80026CA8 00431024 */ and $v0, $v0, $v1 -/* 0020AC 80026CAC 10400003 */ beqz $v0, .L80026CBC -/* 0020B0 80026CB0 00000000 */ nop -/* 0020B4 80026CB4 0C051EB1 */ jal func_80147AC4 -/* 0020B8 80026CB8 00000000 */ nop -.L80026CBC: -/* 0020BC 80026CBC 0C044BF1 */ jal func_80112FC4 -/* 0020C0 80026CC0 00000000 */ nop -/* 0020C4 80026CC4 8E220000 */ lw $v0, ($s1) -/* 0020C8 80026CC8 30420020 */ andi $v0, $v0, 0x20 -/* 0020CC 80026CCC 10400010 */ beqz $v0, .L80026D10 -/* 0020D0 80026CD0 00000000 */ nop -/* 0020D4 80026CD4 3C038007 */ lui $v1, 0x8007 -/* 0020D8 80026CD8 846341A2 */ lh $v1, 0x41a2($v1) -/* 0020DC 80026CDC 28620002 */ slti $v0, $v1, 2 -/* 0020E0 80026CE0 1040000B */ beqz $v0, .L80026D10 -/* 0020E4 80026CE4 00000000 */ nop -/* 0020E8 80026CE8 04600009 */ bltz $v1, .L80026D10 -/* 0020EC 80026CEC 24040007 */ addiu $a0, $zero, 7 -/* 0020F0 80026CF0 3C028007 */ lui $v0, 0x8007 -/* 0020F4 80026CF4 844241A0 */ lh $v0, 0x41a0($v0) -/* 0020F8 80026CF8 44820000 */ mtc1 $v0, $f0 -/* 0020FC 80026CFC 00000000 */ nop -/* 002100 80026D00 46800020 */ cvt.s.w $f0, $f0 -/* 002104 80026D04 44050000 */ mfc1 $a1, $f0 -/* 002108 80026D08 0C04DAA0 */ jal func_80136A80 -/* 00210C 80026D0C 0000302D */ daddu $a2, $zero, $zero -.L80026D10: -/* 002110 80026D10 3C02800A */ lui $v0, 0x800a -/* 002114 80026D14 8C42A66C */ lw $v0, -0x5994($v0) -/* 002118 80026D18 3C03800A */ lui $v1, 0x800a -/* 00211C 80026D1C 8C63A674 */ lw $v1, -0x598c($v1) -/* 002120 80026D20 2442FDD0 */ addiu $v0, $v0, -0x230 -/* 002124 80026D24 00431023 */ subu $v0, $v0, $v1 -/* 002128 80026D28 000210C2 */ srl $v0, $v0, 3 -/* 00212C 80026D2C 28422080 */ slti $v0, $v0, 0x2080 -/* 002130 80026D30 54400003 */ bnel $v0, $zero, .L80026D40 -/* 002134 80026D34 0000302D */ daddu $a2, $zero, $zero -.L80026D38: -/* 002138 80026D38 08009B4E */ j .L80026D38 -/* 00213C 80026D3C 00000000 */ nop - -.L80026D40: -/* 002140 80026D40 3C070004 */ lui $a3, 4 -/* 002144 80026D44 3C08800A */ lui $t0, 0x800a -/* 002148 80026D48 2508A66C */ addiu $t0, $t0, -0x5994 -/* 00214C 80026D4C 34E70001 */ ori $a3, $a3, 1 -/* 002150 80026D50 8D030000 */ lw $v1, ($t0) -/* 002154 80026D54 3C02800A */ lui $v0, 0x800a -/* 002158 80026D58 8C42A674 */ lw $v0, -0x598c($v0) -/* 00215C 80026D5C 0060482D */ daddu $t1, $v1, $zero -/* 002160 80026D60 24630008 */ addiu $v1, $v1, 8 -/* 002164 80026D64 24440230 */ addiu $a0, $v0, 0x230 -/* 002168 80026D68 2465FDD8 */ addiu $a1, $v1, -0x228 -/* 00216C 80026D6C 00A22823 */ subu $a1, $a1, $v0 -/* 002170 80026D70 000528C3 */ sra $a1, $a1, 3 -/* 002174 80026D74 000528C0 */ sll $a1, $a1, 3 -/* 002178 80026D78 3C02E900 */ lui $v0, 0xe900 -/* 00217C 80026D7C AD030000 */ sw $v1, ($t0) -/* 002180 80026D80 AD220000 */ sw $v0, ($t1) -/* 002184 80026D84 24620008 */ addiu $v0, $v1, 8 -/* 002188 80026D88 AD200004 */ sw $zero, 4($t1) -/* 00218C 80026D8C AD020000 */ sw $v0, ($t0) -/* 002190 80026D90 3C02DF00 */ lui $v0, 0xdf00 -/* 002194 80026D94 AC620000 */ sw $v0, ($v1) -/* 002198 80026D98 0C00B331 */ jal nuGfxTaskStart -/* 00219C 80026D9C AC600004 */ sw $zero, 4($v1) -/* 0021A0 80026DA0 24050140 */ addiu $a1, $zero, 0x140 -/* 0021A4 80026DA4 240600F0 */ addiu $a2, $zero, 0xf0 -/* 0021A8 80026DA8 3C038007 */ lui $v1, 0x8007 -/* 0021AC 80026DAC 246341F4 */ addiu $v1, $v1, 0x41f4 -/* 0021B0 80026DB0 8C620000 */ lw $v0, ($v1) -/* 0021B4 80026DB4 3C04800A */ lui $a0, 0x800a -/* 0021B8 80026DB8 8C84A64C */ lw $a0, -0x59b4($a0) -/* 0021BC 80026DBC 38420001 */ xori $v0, $v0, 1 -/* 0021C0 80026DC0 0C00B224 */ jal func_8002C890 -/* 0021C4 80026DC4 AC620000 */ sw $v0, ($v1) -.L80026DC8: -/* 0021C8 80026DC8 8FBF0018 */ lw $ra, 0x18($sp) -/* 0021CC 80026DCC 8FB10014 */ lw $s1, 0x14($sp) -/* 0021D0 80026DD0 8FB00010 */ lw $s0, 0x10($sp) -/* 0021D4 80026DD4 03E00008 */ jr $ra -/* 0021D8 80026DD8 27BD0020 */ addiu $sp, $sp, 0x20 - -load_engine_data: -/* 0021DC 80026DDC 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0021E0 80026DE0 3C040010 */ lui $a0, 0x10 -/* 0021E4 80026DE4 2484EE30 */ addiu $a0, $a0, -0x11d0 -/* 0021E8 80026DE8 3C050010 */ lui $a1, 0x10 -/* 0021EC 80026DEC 24A52610 */ addiu $a1, $a1, 0x2610 -/* 0021F0 80026DF0 3C06802E */ lui $a2, 0x802e -/* 0021F4 80026DF4 24C6BD40 */ addiu $a2, $a2, -0x42c0 -/* 0021F8 80026DF8 AFBF0014 */ sw $ra, 0x14($sp) -/* 0021FC 80026DFC 0C00A5CF */ jal dma_copy -/* 002200 80026E00 AFB00010 */ sw $s0, 0x10($sp) -/* 002204 80026E04 3C040007 */ lui $a0, 7 -/* 002208 80026E08 248459B0 */ addiu $a0, $a0, 0x59b0 -/* 00220C 80026E0C 3C05000A */ lui $a1, 0xa -/* 002210 80026E10 24A55DD0 */ addiu $a1, $a1, 0x5dd0 -/* 002214 80026E14 3C06800E */ lui $a2, 0x800e -/* 002218 80026E18 24C6C500 */ addiu $a2, $a2, -0x3b00 -/* 00221C 80026E1C 0C00A5CF */ jal dma_copy -/* 002220 80026E20 00000000 */ nop -/* 002224 80026E24 3C04000E */ lui $a0, 0xe -/* 002228 80026E28 248479B0 */ addiu $a0, $a0, 0x79b0 -/* 00222C 80026E2C 3C050010 */ lui $a1, 0x10 -/* 002230 80026E30 24A5EE30 */ addiu $a1, $a1, -0x11d0 -/* 002234 80026E34 3C06802C */ lui $a2, 0x802c -/* 002238 80026E38 24C63000 */ addiu $a2, $a2, 0x3000 -/* 00223C 80026E3C 0C00A5CF */ jal dma_copy -/* 002240 80026E40 00000000 */ nop -/* 002244 80026E44 3C040010 */ lui $a0, 0x10 -/* 002248 80026E48 24842610 */ addiu $a0, $a0, 0x2610 -/* 00224C 80026E4C 3C050011 */ lui $a1, 0x11 -/* 002250 80026E50 24A5CC10 */ addiu $a1, $a1, -0x33f0 -/* 002254 80026E54 3C06802E */ lui $a2, 0x802e -/* 002258 80026E58 24C60D90 */ addiu $a2, $a2, 0xd90 -/* 00225C 80026E5C 0C00A5CF */ jal dma_copy -/* 002260 80026E60 00000000 */ nop -/* 002264 80026E64 3C04000A */ lui $a0, 0xa -/* 002268 80026E68 24845DD0 */ addiu $a0, $a0, 0x5dd0 -/* 00226C 80026E6C 3C05000E */ lui $a1, 0xe -/* 002270 80026E70 24A579B0 */ addiu $a1, $a1, 0x79b0 -/* 002274 80026E74 3C068011 */ lui $a2, 0x8011 -/* 002278 80026E78 24C6F6D0 */ addiu $a2, $a2, -0x930 -/* 00227C 80026E7C 0C00A5CF */ jal dma_copy -/* 002280 80026E80 00000000 */ nop -/* 002284 80026E84 3C040011 */ lui $a0, 0x11 -/* 002288 80026E88 2484CC10 */ addiu $a0, $a0, -0x33f0 -/* 00228C 80026E8C 3C050011 */ lui $a1, 0x11 -/* 002290 80026E90 24A5F1B0 */ addiu $a1, $a1, -0xe50 -/* 002294 80026E94 3C06802F */ lui $a2, 0x802f -/* 002298 80026E98 24C6B3D0 */ addiu $a2, $a2, -0x4c30 -/* 00229C 80026E9C 0C00A5CF */ jal dma_copy -/* 0022A0 80026EA0 00000000 */ nop -/* 0022A4 80026EA4 3C108007 */ lui $s0, 0x8007 -/* 0022A8 80026EA8 2610419C */ addiu $s0, $s0, 0x419c -/* 0022AC 80026EAC 8E020000 */ lw $v0, ($s0) -/* 0022B0 80026EB0 3C01800A */ lui $at, 0x800a -/* 0022B4 80026EB4 AC20A650 */ sw $zero, -0x59b0($at) -/* 0022B8 80026EB8 A0400079 */ sb $zero, 0x79($v0) -/* 0022BC 80026EBC 8E030000 */ lw $v1, ($s0) -/* 0022C0 80026EC0 24040001 */ addiu $a0, $zero, 1 -/* 0022C4 80026EC4 A064007A */ sb $a0, 0x7a($v1) -/* 0022C8 80026EC8 8E020000 */ lw $v0, ($s0) -/* 0022CC 80026ECC A4600148 */ sh $zero, 0x148($v1) -/* 0022D0 80026ED0 A044007C */ sb $a0, 0x7c($v0) -/* 0022D4 80026ED4 8E030000 */ lw $v1, ($s0) -/* 0022D8 80026ED8 2402FFFF */ addiu $v0, $zero, -1 -/* 0022DC 80026EDC A06200A8 */ sb $v0, 0xa8($v1) -/* 0022E0 80026EE0 8E020000 */ lw $v0, ($s0) -/* 0022E4 80026EE4 A04000AA */ sb $zero, 0xaa($v0) -/* 0022E8 80026EE8 8E020000 */ lw $v0, ($s0) -/* 0022EC 80026EEC A0400081 */ sb $zero, 0x81($v0) -/* 0022F0 80026EF0 8E030000 */ lw $v1, ($s0) -/* 0022F4 80026EF4 2402FFF8 */ addiu $v0, $zero, -8 -/* 0022F8 80026EF8 A0620082 */ sb $v0, 0x82($v1) -/* 0022FC 80026EFC 8E030000 */ lw $v1, ($s0) -/* 002300 80026F00 24020004 */ addiu $v0, $zero, 4 -/* 002304 80026F04 A0620083 */ sb $v0, 0x83($v1) -/* 002308 80026F08 8E020000 */ lw $v0, ($s0) -/* 00230C 80026F0C 3C01800A */ lui $at, 0x800a -/* 002310 80026F10 AC20A5D8 */ sw $zero, -0x5a28($at) -/* 002314 80026F14 A440013C */ sh $zero, 0x13c($v0) -/* 002318 80026F18 A0400075 */ sb $zero, 0x75($v0) -/* 00231C 80026F1C 8E030000 */ lw $v1, ($s0) -/* 002320 80026F20 24020005 */ addiu $v0, $zero, 5 -/* 002324 80026F24 3C018007 */ lui $at, 0x8007 -/* 002328 80026F28 A0224021 */ sb $v0, 0x4021($at) -/* 00232C 80026F2C 0C00AE13 */ jal fio_init_flash -/* 002330 80026F30 AC600168 */ sw $zero, 0x168($v1) -/* 002334 80026F34 0C00A20E */ jal func_80028838 -/* 002338 80026F38 00000000 */ nop -/* 00233C 80026F3C 0C00AB00 */ jal general_heap_create -/* 002340 80026F40 00000000 */ nop -/* 002344 80026F44 0C047624 */ jal func_8011D890 -/* 002348 80026F48 00000000 */ nop -/* 00234C 80026F4C 0C048C2E */ jal func_801230B8 -/* 002350 80026F50 00000000 */ nop -/* 002354 80026F54 0C0B0C77 */ jal clear_script_list -/* 002358 80026F58 00000000 */ nop -/* 00235C 80026F5C 0C00B7BD */ jal create_cameras_a -/* 002360 80026F60 00000000 */ nop -/* 002364 80026F64 0C037F14 */ jal clear_player_status -/* 002368 80026F68 00000000 */ nop -/* 00236C 80026F6C 0C0B763E */ jal func_802DD8F8 -/* 002370 80026F70 0000202D */ daddu $a0, $zero, $zero -/* 002374 80026F74 0C0482EC */ jal func_80120BB0 -/* 002378 80026F78 00000000 */ nop -/* 00237C 80026F7C 0C047889 */ jal func_8011E224 -/* 002380 80026F80 00000000 */ nop -/* 002384 80026F84 0C045751 */ jal clear_model_data -/* 002388 80026F88 00000000 */ nop -/* 00238C 80026F8C 0C052010 */ jal func_80148040 -/* 002390 80026F90 00000000 */ nop -/* 002394 80026F94 0C05177E */ jal func_80145DF8 -/* 002398 80026F98 00000000 */ nop -/* 00239C 80026F9C 0C048D98 */ jal clear_character_set -/* 0023A0 80026FA0 00000000 */ nop -/* 0023A4 80026FA4 0C048D9D */ jal clear_printers -/* 0023A8 80026FA8 00000000 */ nop -/* 0023AC 80026FAC 0C044AE6 */ jal func_80112B98 -/* 0023B0 80026FB0 00000000 */ nop -/* 0023B4 80026FB4 0C00E12F */ jal func_800384BC -/* 0023B8 80026FB8 00000000 */ nop -/* 0023BC 80026FBC 0C050440 */ jal func_80141100 -/* 0023C0 80026FC0 00000000 */ nop -/* 0023C4 80026FC4 0C0515A0 */ jal clear_trigger_data -/* 0023C8 80026FC8 00000000 */ nop -/* 0023CC 80026FCC 0C04432E */ jal func_80110CB8 -/* 0023D0 80026FD0 0000202D */ daddu $a0, $zero, $zero -/* 0023D4 80026FD4 0C039CE8 */ jal clear_player_data -/* 0023D8 80026FD8 00000000 */ nop -/* 0023DC 80026FDC 0C00F8CE */ jal func_8003E338 -/* 0023E0 80026FE0 00000000 */ nop -/* 0023E4 80026FE4 0C04E042 */ jal func_80138108 -/* 0023E8 80026FE8 00000000 */ nop -/* 0023EC 80026FEC 0C016727 */ jal func_80059C9C -/* 0023F0 80026FF0 00000000 */ nop -/* 0023F4 80026FF4 0C0514C8 */ jal clear_saved_variables -/* 0023F8 80026FF8 00000000 */ nop -/* 0023FC 80026FFC 0C04C3FC */ jal clear_item_entity_data -/* 002400 80027000 00000000 */ nop -/* 002404 80027004 0C052926 */ jal func_8014A498 -/* 002408 80027008 00000000 */ nop -/* 00240C 8002700C 0C051C8C */ jal func_80147230 -/* 002410 80027010 00000000 */ nop -/* 002414 80027014 0C052586 */ jal func_80149618 -/* 002418 80027018 00000000 */ nop -/* 00241C 8002701C 0C051CFC */ jal func_801473F0 -/* 002420 80027020 00000000 */ nop -/* 002424 80027024 0C00AE90 */ jal func_8002BA40 -/* 002428 80027028 00000000 */ nop -/* 00242C 8002702C 0C00A3B8 */ jal poll_rumble -/* 002430 80027030 00000000 */ nop -/* 002434 80027034 0000182D */ daddu $v1, $zero, $zero -/* 002438 80027038 24050003 */ addiu $a1, $zero, 3 -/* 00243C 8002703C 2404000C */ addiu $a0, $zero, 0xc -/* 002440 80027040 8E100000 */ lw $s0, ($s0) -.L80027044: -/* 002444 80027044 A6050050 */ sh $a1, 0x50($s0) -/* 002448 80027048 A6040048 */ sh $a0, 0x48($s0) -/* 00244C 8002704C 24630001 */ addiu $v1, $v1, 1 -/* 002450 80027050 28620004 */ slti $v0, $v1, 4 -/* 002454 80027054 1440FFFB */ bnez $v0, .L80027044 -/* 002458 80027058 26100002 */ addiu $s0, $s0, 2 -/* 00245C 8002705C 3C03800A */ lui $v1, 0x800a -/* 002460 80027060 2463A650 */ addiu $v1, $v1, -0x59b0 -/* 002464 80027064 8C620000 */ lw $v0, ($v1) -/* 002468 80027068 0000202D */ daddu $a0, $zero, $zero -/* 00246C 8002706C 34420008 */ ori $v0, $v0, 8 -/* 002470 80027070 0C00CD3C */ jal set_game_mode -/* 002474 80027074 AC620000 */ sw $v0, ($v1) -/* 002478 80027078 8FBF0014 */ lw $ra, 0x14($sp) -/* 00247C 8002707C 8FB00010 */ lw $s0, 0x10($sp) -/* 002480 80027080 03E00008 */ jr $ra -/* 002484 80027084 27BD0018 */ addiu $sp, $sp, 0x18 - -func_80027088: -/* 002488 80027088 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 00248C 8002708C 0080282D */ daddu $a1, $a0, $zero -/* 002490 80027090 2CA20005 */ sltiu $v0, $a1, 5 -/* 002494 80027094 1040003B */ beqz $v0, .L80027184 -/* 002498 80027098 AFBF0010 */ sw $ra, 0x10($sp) -/* 00249C 8002709C 00051080 */ sll $v0, $a1, 2 -/* 0024A0 800270A0 3C018009 */ lui $at, 0x8009 -/* 0024A4 800270A4 00220821 */ addu $at, $at, $v0 -/* 0024A8 800270A8 8C227D48 */ lw $v0, 0x7d48($at) -/* 0024AC 800270AC 00400008 */ jr $v0 -/* 0024B0 800270B0 00000000 */ nop -/* 0024B4 800270B4 24040003 */ addiu $a0, $zero, 3 -/* 0024B8 800270B8 3C02800A */ lui $v0, 0x800a -/* 0024BC 800270BC 2442A650 */ addiu $v0, $v0, -0x59b0 -/* 0024C0 800270C0 3C01800A */ lui $at, 0x800a -/* 0024C4 800270C4 AC25A5D8 */ sw $a1, -0x5a28($at) -/* 0024C8 800270C8 8C430000 */ lw $v1, ($v0) -/* 0024CC 800270CC 2405F0FF */ addiu $a1, $zero, -0xf01 -/* 0024D0 800270D0 00651824 */ and $v1, $v1, $a1 -/* 0024D4 800270D4 0C0B1192 */ jal resume_all_group -/* 0024D8 800270D8 AC430000 */ sw $v1, ($v0) -/* 0024DC 800270DC 08009C61 */ j .L80027184 -/* 0024E0 800270E0 00000000 */ nop - -/* 0024E4 800270E4 24040001 */ addiu $a0, $zero, 1 -/* 0024E8 800270E8 3C02800A */ lui $v0, 0x800a -/* 0024EC 800270EC 2442A650 */ addiu $v0, $v0, -0x59b0 -/* 0024F0 800270F0 3C01800A */ lui $at, 0x800a -/* 0024F4 800270F4 AC25A5D8 */ sw $a1, -0x5a28($at) -/* 0024F8 800270F8 8C430000 */ lw $v1, ($v0) -/* 0024FC 800270FC 2405F1FF */ addiu $a1, $zero, -0xe01 -/* 002500 80027100 00651824 */ and $v1, $v1, $a1 -/* 002504 80027104 08009C56 */ j .L80027158 -/* 002508 80027108 34630100 */ ori $v1, $v1, 0x100 - -/* 00250C 8002710C 24040002 */ addiu $a0, $zero, 2 -/* 002510 80027110 3C02800A */ lui $v0, 0x800a -/* 002514 80027114 2442A650 */ addiu $v0, $v0, -0x59b0 -/* 002518 80027118 3C01800A */ lui $at, 0x800a -/* 00251C 8002711C AC25A5D8 */ sw $a1, -0x5a28($at) -/* 002520 80027120 8C430000 */ lw $v1, ($v0) -/* 002524 80027124 2405F3FF */ addiu $a1, $zero, -0xc01 -/* 002528 80027128 00651824 */ and $v1, $v1, $a1 -/* 00252C 8002712C 08009C56 */ j .L80027158 -/* 002530 80027130 34630300 */ ori $v1, $v1, 0x300 - -/* 002534 80027134 24040002 */ addiu $a0, $zero, 2 -/* 002538 80027138 3C02800A */ lui $v0, 0x800a -/* 00253C 8002713C 2442A650 */ addiu $v0, $v0, -0x59b0 -/* 002540 80027140 3C01800A */ lui $at, 0x800a -/* 002544 80027144 AC25A5D8 */ sw $a1, -0x5a28($at) -/* 002548 80027148 8C430000 */ lw $v1, ($v0) -/* 00254C 8002714C 2405F7FF */ addiu $a1, $zero, -0x801 -/* 002550 80027150 00651824 */ and $v1, $v1, $a1 -/* 002554 80027154 34630700 */ ori $v1, $v1, 0x700 -.L80027158: -/* 002558 80027158 0C0B117A */ jal suspend_all_group -/* 00255C 8002715C AC430000 */ sw $v1, ($v0) -/* 002560 80027160 08009C61 */ j .L80027184 -/* 002564 80027164 00000000 */ nop - -/* 002568 80027168 3C03800A */ lui $v1, 0x800a -/* 00256C 8002716C 2463A650 */ addiu $v1, $v1, -0x59b0 -/* 002570 80027170 8C620000 */ lw $v0, ($v1) -/* 002574 80027174 3C01800A */ lui $at, 0x800a -/* 002578 80027178 AC25A5D8 */ sw $a1, -0x5a28($at) -/* 00257C 8002717C 34420F00 */ ori $v0, $v0, 0xf00 -/* 002580 80027180 AC620000 */ sw $v0, ($v1) -.L80027184: -/* 002584 80027184 8FBF0010 */ lw $ra, 0x10($sp) -/* 002588 80027188 03E00008 */ jr $ra -/* 00258C 8002718C 27BD0018 */ addiu $sp, $sp, 0x18 - -func_80027190: -/* 002590 80027190 3C02800A */ lui $v0, 0x800a -/* 002594 80027194 8C42A5D8 */ lw $v0, -0x5a28($v0) -/* 002598 80027198 03E00008 */ jr $ra -/* 00259C 8002719C 00000000 */ nop - -func_800271A0: -/* 0025A0 800271A0 3C04800A */ lui $a0, 0x800a -/* 0025A4 800271A4 2484A66C */ addiu $a0, $a0, -0x5994 -/* 0025A8 800271A8 8C830000 */ lw $v1, ($a0) -/* 0025AC 800271AC 3C02DB06 */ lui $v0, 0xdb06 -/* 0025B0 800271B0 0060282D */ daddu $a1, $v1, $zero -/* 0025B4 800271B4 24630008 */ addiu $v1, $v1, 8 -/* 0025B8 800271B8 AC830000 */ sw $v1, ($a0) -/* 0025BC 800271BC ACA20000 */ sw $v0, ($a1) -/* 0025C0 800271C0 24620008 */ addiu $v0, $v1, 8 -/* 0025C4 800271C4 ACA00004 */ sw $zero, 4($a1) -/* 0025C8 800271C8 3C05DE00 */ lui $a1, 0xde00 -/* 0025CC 800271CC AC820000 */ sw $v0, ($a0) -/* 0025D0 800271D0 3C020007 */ lui $v0, 7 -/* 0025D4 800271D4 24424230 */ addiu $v0, $v0, 0x4230 -/* 0025D8 800271D8 AC620004 */ sw $v0, 4($v1) -/* 0025DC 800271DC 24620010 */ addiu $v0, $v1, 0x10 -/* 0025E0 800271E0 AC650000 */ sw $a1, ($v1) -/* 0025E4 800271E4 AC820000 */ sw $v0, ($a0) -/* 0025E8 800271E8 3C020007 */ lui $v0, 7 -/* 0025EC 800271EC 24424210 */ addiu $v0, $v0, 0x4210 -/* 0025F0 800271F0 AC650008 */ sw $a1, 8($v1) -/* 0025F4 800271F4 03E00008 */ jr $ra -/* 0025F8 800271F8 AC62000C */ sw $v0, 0xc($v1) - -func_800271FC: -/* 0025FC 800271FC 00061880 */ sll $v1, $a2, 2 -/* 002600 80027200 00661821 */ addu $v1, $v1, $a2 -/* 002604 80027204 00031980 */ sll $v1, $v1, 6 -/* 002608 80027208 00671821 */ addu $v1, $v1, $a3 -/* 00260C 8002720C 00031840 */ sll $v1, $v1, 1 -/* 002610 80027210 00652821 */ addu $a1, $v1, $a1 -/* 002614 80027214 00641821 */ addu $v1, $v1, $a0 -/* 002618 80027218 94A20000 */ lhu $v0, ($a1) -/* 00261C 8002721C 8FA50010 */ lw $a1, 0x10($sp) -/* 002620 80027220 00021082 */ srl $v0, $v0, 2 -/* 002624 80027224 3042000F */ andi $v0, $v0, 0xf -/* 002628 80027228 A0A20003 */ sb $v0, 3($a1) -/* 00262C 8002722C 94620000 */ lhu $v0, ($v1) -/* 002630 80027230 000212C2 */ srl $v0, $v0, 0xb -/* 002634 80027234 A0A20000 */ sb $v0, ($a1) -/* 002638 80027238 94620000 */ lhu $v0, ($v1) -/* 00263C 8002723C 00021182 */ srl $v0, $v0, 6 -/* 002640 80027240 3042001F */ andi $v0, $v0, 0x1f -/* 002644 80027244 A0A20001 */ sb $v0, 1($a1) -/* 002648 80027248 94620000 */ lhu $v0, ($v1) -/* 00264C 8002724C 00021042 */ srl $v0, $v0, 1 -/* 002650 80027250 3042001F */ andi $v0, $v0, 0x1f -/* 002654 80027254 03E00008 */ jr $ra -/* 002658 80027258 A0A20002 */ sb $v0, 2($a1) - -func_8002725C: -/* 00265C 8002725C 27BDFF88 */ addiu $sp, $sp, -0x78 -/* 002660 80027260 0080582D */ daddu $t3, $a0, $zero -/* 002664 80027264 AFA5007C */ sw $a1, 0x7c($sp) -/* 002668 80027268 0000282D */ daddu $a1, $zero, $zero -/* 00266C 8002726C 27A90018 */ addiu $t1, $sp, 0x18 -/* 002670 80027270 27A80038 */ addiu $t0, $sp, 0x38 -/* 002674 80027274 27A70058 */ addiu $a3, $sp, 0x58 -/* 002678 80027278 8BAC007C */ lwl $t4, 0x7c($sp) -/* 00267C 8002727C 9BAC007F */ lwr $t4, 0x7f($sp) -/* 002680 80027280 ABAC0008 */ swl $t4, 8($sp) -/* 002684 80027284 BBAC000B */ swr $t4, 0xb($sp) -/* 002688 80027288 8BAC007C */ lwl $t4, 0x7c($sp) -/* 00268C 8002728C 9BAC007F */ lwr $t4, 0x7f($sp) -/* 002690 80027290 ABAC0000 */ swl $t4, ($sp) -/* 002694 80027294 BBAC0003 */ swr $t4, 3($sp) -.L80027298: -/* 002698 80027298 01251021 */ addu $v0, $t1, $a1 -/* 00269C 8002729C 01051821 */ addu $v1, $t0, $a1 -/* 0026A0 800272A0 00E52021 */ addu $a0, $a3, $a1 -/* 0026A4 800272A4 24A50001 */ addiu $a1, $a1, 1 -/* 0026A8 800272A8 A0400000 */ sb $zero, ($v0) -/* 0026AC 800272AC 28A20020 */ slti $v0, $a1, 0x20 -/* 0026B0 800272B0 A0600000 */ sb $zero, ($v1) -/* 0026B4 800272B4 1440FFF8 */ bnez $v0, .L80027298 -/* 0026B8 800272B8 A0800000 */ sb $zero, ($a0) -/* 0026BC 800272BC 0000282D */ daddu $a1, $zero, $zero -/* 0026C0 800272C0 240A0008 */ addiu $t2, $zero, 8 -/* 0026C4 800272C4 27A90018 */ addiu $t1, $sp, 0x18 -/* 0026C8 800272C8 27A80038 */ addiu $t0, $sp, 0x38 -/* 0026CC 800272CC 27A70058 */ addiu $a3, $sp, 0x58 -/* 0026D0 800272D0 0160202D */ daddu $a0, $t3, $zero -.L800272D4: -/* 0026D4 800272D4 90820003 */ lbu $v0, 3($a0) -/* 0026D8 800272D8 144A0010 */ bne $v0, $t2, .L8002731C -/* 0026DC 800272DC 24A50001 */ addiu $a1, $a1, 1 -/* 0026E0 800272E0 90830000 */ lbu $v1, ($a0) -/* 0026E4 800272E4 01231821 */ addu $v1, $t1, $v1 -/* 0026E8 800272E8 90620000 */ lbu $v0, ($v1) -/* 0026EC 800272EC 24420001 */ addiu $v0, $v0, 1 -/* 0026F0 800272F0 A0620000 */ sb $v0, ($v1) -/* 0026F4 800272F4 90830001 */ lbu $v1, 1($a0) -/* 0026F8 800272F8 01031821 */ addu $v1, $t0, $v1 -/* 0026FC 800272FC 90620000 */ lbu $v0, ($v1) -/* 002700 80027300 24420001 */ addiu $v0, $v0, 1 -/* 002704 80027304 A0620000 */ sb $v0, ($v1) -/* 002708 80027308 90830002 */ lbu $v1, 2($a0) -/* 00270C 8002730C 00E31821 */ addu $v1, $a3, $v1 -/* 002710 80027310 90620000 */ lbu $v0, ($v1) -/* 002714 80027314 24420001 */ addiu $v0, $v0, 1 -/* 002718 80027318 A0620000 */ sb $v0, ($v1) -.L8002731C: -/* 00271C 8002731C 28A20006 */ slti $v0, $a1, 6 -/* 002720 80027320 1440FFEC */ bnez $v0, .L800272D4 -/* 002724 80027324 24840004 */ addiu $a0, $a0, 4 -/* 002728 80027328 0000282D */ daddu $a1, $zero, $zero -/* 00272C 8002732C 27A40018 */ addiu $a0, $sp, 0x18 -/* 002730 80027330 00851821 */ addu $v1, $a0, $a1 -.L80027334: -/* 002734 80027334 90620000 */ lbu $v0, ($v1) -/* 002738 80027338 50400004 */ beql $v0, $zero, .L8002734C -/* 00273C 8002733C 24A50001 */ addiu $a1, $a1, 1 -/* 002740 80027340 2442FFFF */ addiu $v0, $v0, -1 -/* 002744 80027344 08009CD6 */ j .L80027358 -/* 002748 80027348 A0620000 */ sb $v0, ($v1) - -.L8002734C: -/* 00274C 8002734C 28A20020 */ slti $v0, $a1, 0x20 -/* 002750 80027350 1440FFF8 */ bnez $v0, .L80027334 -/* 002754 80027354 00851821 */ addu $v1, $a0, $a1 -.L80027358: -/* 002758 80027358 28A20020 */ slti $v0, $a1, 0x20 -/* 00275C 8002735C 10400009 */ beqz $v0, .L80027384 -/* 002760 80027360 27A30018 */ addiu $v1, $sp, 0x18 -/* 002764 80027364 00651021 */ addu $v0, $v1, $a1 -.L80027368: -/* 002768 80027368 90420000 */ lbu $v0, ($v0) -/* 00276C 8002736C 14400005 */ bnez $v0, .L80027384 -/* 002770 80027370 00000000 */ nop -/* 002774 80027374 24A50001 */ addiu $a1, $a1, 1 -/* 002778 80027378 28A20020 */ slti $v0, $a1, 0x20 -/* 00277C 8002737C 1440FFFA */ bnez $v0, .L80027368 -/* 002780 80027380 00651021 */ addu $v0, $v1, $a1 -.L80027384: -/* 002784 80027384 93A20000 */ lbu $v0, ($sp) -/* 002788 80027388 00A2102A */ slt $v0, $a1, $v0 -/* 00278C 8002738C 54400001 */ bnel $v0, $zero, .L80027394 -/* 002790 80027390 A3A50000 */ sb $a1, ($sp) -.L80027394: -/* 002794 80027394 0000282D */ daddu $a1, $zero, $zero -/* 002798 80027398 27A40038 */ addiu $a0, $sp, 0x38 -/* 00279C 8002739C 00851821 */ addu $v1, $a0, $a1 -.L800273A0: -/* 0027A0 800273A0 90620000 */ lbu $v0, ($v1) -/* 0027A4 800273A4 50400004 */ beql $v0, $zero, .L800273B8 -/* 0027A8 800273A8 24A50001 */ addiu $a1, $a1, 1 -/* 0027AC 800273AC 2442FFFF */ addiu $v0, $v0, -1 -/* 0027B0 800273B0 08009CF1 */ j .L800273C4 -/* 0027B4 800273B4 A0620000 */ sb $v0, ($v1) - -.L800273B8: -/* 0027B8 800273B8 28A20020 */ slti $v0, $a1, 0x20 -/* 0027BC 800273BC 1440FFF8 */ bnez $v0, .L800273A0 -/* 0027C0 800273C0 00851821 */ addu $v1, $a0, $a1 -.L800273C4: -/* 0027C4 800273C4 28A20020 */ slti $v0, $a1, 0x20 -/* 0027C8 800273C8 10400009 */ beqz $v0, .L800273F0 -/* 0027CC 800273CC 27A30038 */ addiu $v1, $sp, 0x38 -/* 0027D0 800273D0 00651021 */ addu $v0, $v1, $a1 -.L800273D4: -/* 0027D4 800273D4 90420000 */ lbu $v0, ($v0) -/* 0027D8 800273D8 14400005 */ bnez $v0, .L800273F0 -/* 0027DC 800273DC 00000000 */ nop -/* 0027E0 800273E0 24A50001 */ addiu $a1, $a1, 1 -/* 0027E4 800273E4 28A20020 */ slti $v0, $a1, 0x20 -/* 0027E8 800273E8 1440FFFA */ bnez $v0, .L800273D4 -/* 0027EC 800273EC 00651021 */ addu $v0, $v1, $a1 -.L800273F0: -/* 0027F0 800273F0 93A20001 */ lbu $v0, 1($sp) -/* 0027F4 800273F4 00A2102A */ slt $v0, $a1, $v0 -/* 0027F8 800273F8 54400001 */ bnel $v0, $zero, .L80027400 -/* 0027FC 800273FC A3A50001 */ sb $a1, 1($sp) -.L80027400: -/* 002800 80027400 0000282D */ daddu $a1, $zero, $zero -/* 002804 80027404 27A40058 */ addiu $a0, $sp, 0x58 -/* 002808 80027408 00851821 */ addu $v1, $a0, $a1 -.L8002740C: -/* 00280C 8002740C 90620000 */ lbu $v0, ($v1) -/* 002810 80027410 50400004 */ beql $v0, $zero, .L80027424 -/* 002814 80027414 24A50001 */ addiu $a1, $a1, 1 -/* 002818 80027418 2442FFFF */ addiu $v0, $v0, -1 -/* 00281C 8002741C 08009D0C */ j .L80027430 -/* 002820 80027420 A0620000 */ sb $v0, ($v1) - -.L80027424: -/* 002824 80027424 28A20020 */ slti $v0, $a1, 0x20 -/* 002828 80027428 1440FFF8 */ bnez $v0, .L8002740C -/* 00282C 8002742C 00851821 */ addu $v1, $a0, $a1 -.L80027430: -/* 002830 80027430 28A20020 */ slti $v0, $a1, 0x20 -/* 002834 80027434 10400009 */ beqz $v0, .L8002745C -/* 002838 80027438 27A30058 */ addiu $v1, $sp, 0x58 -/* 00283C 8002743C 00651021 */ addu $v0, $v1, $a1 -.L80027440: -/* 002840 80027440 90420000 */ lbu $v0, ($v0) -/* 002844 80027444 14400005 */ bnez $v0, .L8002745C -/* 002848 80027448 00000000 */ nop -/* 00284C 8002744C 24A50001 */ addiu $a1, $a1, 1 -/* 002850 80027450 28A20020 */ slti $v0, $a1, 0x20 -/* 002854 80027454 1440FFFA */ bnez $v0, .L80027440 -/* 002858 80027458 00651021 */ addu $v0, $v1, $a1 -.L8002745C: -/* 00285C 8002745C 93A20002 */ lbu $v0, 2($sp) -/* 002860 80027460 00A2102A */ slt $v0, $a1, $v0 -/* 002864 80027464 54400001 */ bnel $v0, $zero, .L8002746C -/* 002868 80027468 A3A50002 */ sb $a1, 2($sp) -.L8002746C: -/* 00286C 8002746C 2405001F */ addiu $a1, $zero, 0x1f -/* 002870 80027470 27A30018 */ addiu $v1, $sp, 0x18 -/* 002874 80027474 00651021 */ addu $v0, $v1, $a1 -.L80027478: -/* 002878 80027478 90420000 */ lbu $v0, ($v0) -/* 00287C 8002747C 14400004 */ bnez $v0, .L80027490 -/* 002880 80027480 00000000 */ nop -/* 002884 80027484 24A5FFFF */ addiu $a1, $a1, -1 -/* 002888 80027488 04A1FFFB */ bgez $a1, .L80027478 -/* 00288C 8002748C 00651021 */ addu $v0, $v1, $a1 -.L80027490: -/* 002890 80027490 93A20008 */ lbu $v0, 8($sp) -/* 002894 80027494 0045102A */ slt $v0, $v0, $a1 -/* 002898 80027498 54400001 */ bnel $v0, $zero, .L800274A0 -/* 00289C 8002749C A3A50008 */ sb $a1, 8($sp) -.L800274A0: -/* 0028A0 800274A0 2405001F */ addiu $a1, $zero, 0x1f -/* 0028A4 800274A4 27A30038 */ addiu $v1, $sp, 0x38 -/* 0028A8 800274A8 00651021 */ addu $v0, $v1, $a1 -.L800274AC: -/* 0028AC 800274AC 90420000 */ lbu $v0, ($v0) -/* 0028B0 800274B0 14400004 */ bnez $v0, .L800274C4 -/* 0028B4 800274B4 00000000 */ nop -/* 0028B8 800274B8 24A5FFFF */ addiu $a1, $a1, -1 -/* 0028BC 800274BC 04A1FFFB */ bgez $a1, .L800274AC -/* 0028C0 800274C0 00651021 */ addu $v0, $v1, $a1 -.L800274C4: -/* 0028C4 800274C4 93A20009 */ lbu $v0, 9($sp) -/* 0028C8 800274C8 0045102A */ slt $v0, $v0, $a1 -/* 0028CC 800274CC 54400001 */ bnel $v0, $zero, .L800274D4 -/* 0028D0 800274D0 A3A50009 */ sb $a1, 9($sp) -.L800274D4: -/* 0028D4 800274D4 2405001F */ addiu $a1, $zero, 0x1f -/* 0028D8 800274D8 27A30058 */ addiu $v1, $sp, 0x58 -/* 0028DC 800274DC 00651021 */ addu $v0, $v1, $a1 -.L800274E0: -/* 0028E0 800274E0 90420000 */ lbu $v0, ($v0) -/* 0028E4 800274E4 14400004 */ bnez $v0, .L800274F8 -/* 0028E8 800274E8 00000000 */ nop -/* 0028EC 800274EC 24A5FFFF */ addiu $a1, $a1, -1 -/* 0028F0 800274F0 04A1FFFB */ bgez $a1, .L800274E0 -/* 0028F4 800274F4 00651021 */ addu $v0, $v1, $a1 -.L800274F8: -/* 0028F8 800274F8 93A2000A */ lbu $v0, 0xa($sp) -/* 0028FC 800274FC 0045102A */ slt $v0, $v0, $a1 -/* 002900 80027500 54400001 */ bnel $v0, $zero, .L80027508 -/* 002904 80027504 A3A5000A */ sb $a1, 0xa($sp) -.L80027508: -/* 002908 80027508 93A20008 */ lbu $v0, 8($sp) -/* 00290C 8002750C 93A30000 */ lbu $v1, ($sp) -/* 002910 80027510 93A4007C */ lbu $a0, 0x7c($sp) -/* 002914 80027514 00431021 */ addu $v0, $v0, $v1 -/* 002918 80027518 00441023 */ subu $v0, $v0, $a0 -/* 00291C 8002751C A3A20010 */ sb $v0, 0x10($sp) -/* 002920 80027520 93A20009 */ lbu $v0, 9($sp) -/* 002924 80027524 93A30001 */ lbu $v1, 1($sp) -/* 002928 80027528 93A4007D */ lbu $a0, 0x7d($sp) -/* 00292C 8002752C 00431021 */ addu $v0, $v0, $v1 -/* 002930 80027530 00441023 */ subu $v0, $v0, $a0 -/* 002934 80027534 A3A20011 */ sb $v0, 0x11($sp) -/* 002938 80027538 93A2000A */ lbu $v0, 0xa($sp) -/* 00293C 8002753C 93A30002 */ lbu $v1, 2($sp) -/* 002940 80027540 93A4007E */ lbu $a0, 0x7e($sp) -/* 002944 80027544 00431021 */ addu $v0, $v0, $v1 -/* 002948 80027548 00441023 */ subu $v0, $v0, $a0 -/* 00294C 8002754C A3A20012 */ sb $v0, 0x12($sp) -/* 002950 80027550 93A2007C */ lbu $v0, 0x7c($sp) -/* 002954 80027554 93A4007F */ lbu $a0, 0x7f($sp) -/* 002958 80027558 00440018 */ mult $v0, $a0 -/* 00295C 8002755C 24030008 */ addiu $v1, $zero, 8 -/* 002960 80027560 00002812 */ mflo $a1 -/* 002964 80027564 93A20010 */ lbu $v0, 0x10($sp) -/* 002968 80027568 00641823 */ subu $v1, $v1, $a0 -/* 00296C 8002756C 00430018 */ mult $v0, $v1 -/* 002970 80027570 00001012 */ mflo $v0 -/* 002974 80027574 00A21021 */ addu $v0, $a1, $v0 -/* 002978 80027578 000210C3 */ sra $v0, $v0, 3 -/* 00297C 8002757C A3A20010 */ sb $v0, 0x10($sp) -/* 002980 80027580 93A2007D */ lbu $v0, 0x7d($sp) -/* 002984 80027584 00440018 */ mult $v0, $a0 -/* 002988 80027588 00002812 */ mflo $a1 -/* 00298C 8002758C 93A20011 */ lbu $v0, 0x11($sp) -/* 002990 80027590 00000000 */ nop -/* 002994 80027594 00430018 */ mult $v0, $v1 -/* 002998 80027598 00001012 */ mflo $v0 -/* 00299C 8002759C 00A21021 */ addu $v0, $a1, $v0 -/* 0029A0 800275A0 000210C3 */ sra $v0, $v0, 3 -/* 0029A4 800275A4 A3A20011 */ sb $v0, 0x11($sp) -/* 0029A8 800275A8 93A2007E */ lbu $v0, 0x7e($sp) -/* 0029AC 800275AC 00440018 */ mult $v0, $a0 -/* 0029B0 800275B0 00002012 */ mflo $a0 -/* 0029B4 800275B4 93A20012 */ lbu $v0, 0x12($sp) -/* 0029B8 800275B8 00000000 */ nop -/* 0029BC 800275BC 00430018 */ mult $v0, $v1 -/* 0029C0 800275C0 00001012 */ mflo $v0 -/* 0029C4 800275C4 00821021 */ addu $v0, $a0, $v0 -/* 0029C8 800275C8 000210C3 */ sra $v0, $v0, 3 -/* 0029CC 800275CC A3A20012 */ sb $v0, 0x12($sp) -/* 0029D0 800275D0 93A20010 */ lbu $v0, 0x10($sp) -/* 0029D4 800275D4 93A40011 */ lbu $a0, 0x11($sp) -/* 0029D8 800275D8 93A30012 */ lbu $v1, 0x12($sp) -/* 0029DC 800275DC 000212C0 */ sll $v0, $v0, 0xb -/* 0029E0 800275E0 00042180 */ sll $a0, $a0, 6 -/* 0029E4 800275E4 00441021 */ addu $v0, $v0, $a0 -/* 0029E8 800275E8 00031840 */ sll $v1, $v1, 1 -/* 0029EC 800275EC 00431021 */ addu $v0, $v0, $v1 -/* 0029F0 800275F0 24420001 */ addiu $v0, $v0, 1 -/* 0029F4 800275F4 A4C20000 */ sh $v0, ($a2) -/* 0029F8 800275F8 03E00008 */ jr $ra -/* 0029FC 800275FC 27BD0078 */ addiu $sp, $sp, 0x78 - -func_80027600: -/* 002A00 80027600 27BDFF98 */ addiu $sp, $sp, -0x68 -/* 002A04 80027604 0080502D */ daddu $t2, $a0, $zero -/* 002A08 80027608 0000302D */ daddu $a2, $zero, $zero -/* 002A0C 8002760C 27A90008 */ addiu $t1, $sp, 8 -/* 002A10 80027610 27A80028 */ addiu $t0, $sp, 0x28 -/* 002A14 80027614 27A70048 */ addiu $a3, $sp, 0x48 -.L80027618: -/* 002A18 80027618 01261021 */ addu $v0, $t1, $a2 -/* 002A1C 8002761C 01061821 */ addu $v1, $t0, $a2 -/* 002A20 80027620 00E62021 */ addu $a0, $a3, $a2 -/* 002A24 80027624 24C60001 */ addiu $a2, $a2, 1 -/* 002A28 80027628 A0400000 */ sb $zero, ($v0) -/* 002A2C 8002762C 28C20020 */ slti $v0, $a2, 0x20 -/* 002A30 80027630 A0600000 */ sb $zero, ($v1) -/* 002A34 80027634 1440FFF8 */ bnez $v0, .L80027618 -/* 002A38 80027638 A0800000 */ sb $zero, ($a0) -/* 002A3C 8002763C 0000302D */ daddu $a2, $zero, $zero -/* 002A40 80027640 27A90008 */ addiu $t1, $sp, 8 -/* 002A44 80027644 27A80028 */ addiu $t0, $sp, 0x28 -/* 002A48 80027648 27A70048 */ addiu $a3, $sp, 0x48 -/* 002A4C 8002764C 0140202D */ daddu $a0, $t2, $zero -.L80027650: -/* 002A50 80027650 90830000 */ lbu $v1, ($a0) -/* 002A54 80027654 01231821 */ addu $v1, $t1, $v1 -/* 002A58 80027658 90620000 */ lbu $v0, ($v1) -/* 002A5C 8002765C 24420001 */ addiu $v0, $v0, 1 -/* 002A60 80027660 A0620000 */ sb $v0, ($v1) -/* 002A64 80027664 90830001 */ lbu $v1, 1($a0) -/* 002A68 80027668 01031821 */ addu $v1, $t0, $v1 -/* 002A6C 8002766C 90620000 */ lbu $v0, ($v1) -/* 002A70 80027670 24420001 */ addiu $v0, $v0, 1 -/* 002A74 80027674 A0620000 */ sb $v0, ($v1) -/* 002A78 80027678 90830002 */ lbu $v1, 2($a0) -/* 002A7C 8002767C 24C60001 */ addiu $a2, $a2, 1 -/* 002A80 80027680 00E31821 */ addu $v1, $a3, $v1 -/* 002A84 80027684 90620000 */ lbu $v0, ($v1) -/* 002A88 80027688 24420001 */ addiu $v0, $v0, 1 -/* 002A8C 8002768C A0620000 */ sb $v0, ($v1) -/* 002A90 80027690 28C20009 */ slti $v0, $a2, 9 -/* 002A94 80027694 1440FFEE */ bnez $v0, .L80027650 -/* 002A98 80027698 24840004 */ addiu $a0, $a0, 4 -/* 002A9C 8002769C 0000182D */ daddu $v1, $zero, $zero -/* 002AA0 800276A0 0060302D */ daddu $a2, $v1, $zero -/* 002AA4 800276A4 27A40008 */ addiu $a0, $sp, 8 -/* 002AA8 800276A8 00861021 */ addu $v0, $a0, $a2 -.L800276AC: -/* 002AAC 800276AC 90420000 */ lbu $v0, ($v0) -/* 002AB0 800276B0 00621821 */ addu $v1, $v1, $v0 -/* 002AB4 800276B4 28620005 */ slti $v0, $v1, 5 -/* 002AB8 800276B8 50400006 */ beql $v0, $zero, .L800276D4 -/* 002ABC 800276BC A3A60000 */ sb $a2, ($sp) -/* 002AC0 800276C0 24C60001 */ addiu $a2, $a2, 1 -/* 002AC4 800276C4 28C20020 */ slti $v0, $a2, 0x20 -/* 002AC8 800276C8 1440FFF8 */ bnez $v0, .L800276AC -/* 002ACC 800276CC 00861021 */ addu $v0, $a0, $a2 -/* 002AD0 800276D0 A3A60000 */ sb $a2, ($sp) -.L800276D4: -/* 002AD4 800276D4 0000182D */ daddu $v1, $zero, $zero -/* 002AD8 800276D8 0060302D */ daddu $a2, $v1, $zero -/* 002ADC 800276DC 27A40028 */ addiu $a0, $sp, 0x28 -/* 002AE0 800276E0 00861021 */ addu $v0, $a0, $a2 -.L800276E4: -/* 002AE4 800276E4 90420000 */ lbu $v0, ($v0) -/* 002AE8 800276E8 00621821 */ addu $v1, $v1, $v0 -/* 002AEC 800276EC 28620005 */ slti $v0, $v1, 5 -/* 002AF0 800276F0 50400006 */ beql $v0, $zero, .L8002770C -/* 002AF4 800276F4 A3A60001 */ sb $a2, 1($sp) -/* 002AF8 800276F8 24C60001 */ addiu $a2, $a2, 1 -/* 002AFC 800276FC 28C20020 */ slti $v0, $a2, 0x20 -/* 002B00 80027700 1440FFF8 */ bnez $v0, .L800276E4 -/* 002B04 80027704 00861021 */ addu $v0, $a0, $a2 -/* 002B08 80027708 A3A60001 */ sb $a2, 1($sp) -.L8002770C: -/* 002B0C 8002770C 0000182D */ daddu $v1, $zero, $zero -/* 002B10 80027710 0060302D */ daddu $a2, $v1, $zero -/* 002B14 80027714 27A40048 */ addiu $a0, $sp, 0x48 -/* 002B18 80027718 00861021 */ addu $v0, $a0, $a2 -.L8002771C: -/* 002B1C 8002771C 90420000 */ lbu $v0, ($v0) -/* 002B20 80027720 00621821 */ addu $v1, $v1, $v0 -/* 002B24 80027724 28620005 */ slti $v0, $v1, 5 -/* 002B28 80027728 50400006 */ beql $v0, $zero, .L80027744 -/* 002B2C 8002772C A3A60002 */ sb $a2, 2($sp) -/* 002B30 80027730 24C60001 */ addiu $a2, $a2, 1 -/* 002B34 80027734 28C20020 */ slti $v0, $a2, 0x20 -/* 002B38 80027738 1440FFF8 */ bnez $v0, .L8002771C -/* 002B3C 8002773C 00861021 */ addu $v0, $a0, $a2 -/* 002B40 80027740 A3A60002 */ sb $a2, 2($sp) -.L80027744: -/* 002B44 80027744 30C300FF */ andi $v1, $a2, 0xff -/* 002B48 80027748 00031840 */ sll $v1, $v1, 1 -/* 002B4C 8002774C 93A20000 */ lbu $v0, ($sp) -/* 002B50 80027750 93A40001 */ lbu $a0, 1($sp) -/* 002B54 80027754 000212C0 */ sll $v0, $v0, 0xb -/* 002B58 80027758 00042180 */ sll $a0, $a0, 6 -/* 002B5C 8002775C 00441021 */ addu $v0, $v0, $a0 -/* 002B60 80027760 00431021 */ addu $v0, $v0, $v1 -/* 002B64 80027764 24420001 */ addiu $v0, $v0, 1 -/* 002B68 80027768 A4A20000 */ sh $v0, ($a1) -/* 002B6C 8002776C 03E00008 */ jr $ra -/* 002B70 80027770 27BD0068 */ addiu $sp, $sp, 0x68 - -/* 002B74 80027774 27BDFF90 */ addiu $sp, $sp, -0x70 -/* 002B78 80027778 AFB40058 */ sw $s4, 0x58($sp) -/* 002B7C 8002777C 0080A02D */ daddu $s4, $a0, $zero -/* 002B80 80027780 AFB5005C */ sw $s5, 0x5c($sp) -/* 002B84 80027784 00A0A82D */ daddu $s5, $a1, $zero -/* 002B88 80027788 AFB30054 */ sw $s3, 0x54($sp) -/* 002B8C 8002778C 24130001 */ addiu $s3, $zero, 1 -/* 002B90 80027790 27A80018 */ addiu $t0, $sp, 0x18 -/* 002B94 80027794 AFA80040 */ sw $t0, 0x40($sp) -/* 002B98 80027798 24080140 */ addiu $t0, $zero, 0x140 -/* 002B9C 8002779C AFBF006C */ sw $ra, 0x6c($sp) -/* 002BA0 800277A0 AFBE0068 */ sw $fp, 0x68($sp) -/* 002BA4 800277A4 AFB70064 */ sw $s7, 0x64($sp) -/* 002BA8 800277A8 AFB60060 */ sw $s6, 0x60($sp) -/* 002BAC 800277AC AFB20050 */ sw $s2, 0x50($sp) -/* 002BB0 800277B0 AFB1004C */ sw $s1, 0x4c($sp) -/* 002BB4 800277B4 AFB00048 */ sw $s0, 0x48($sp) -/* 002BB8 800277B8 AFA60078 */ sw $a2, 0x78($sp) -/* 002BBC 800277BC AFA80044 */ sw $t0, 0x44($sp) -.L800277C0: -/* 002BC0 800277C0 24120001 */ addiu $s2, $zero, 1 -/* 002BC4 800277C4 267EFFFF */ addiu $fp, $s3, -1 -/* 002BC8 800277C8 8FA80044 */ lw $t0, 0x44($sp) -/* 002BCC 800277CC 0272B821 */ addu $s7, $s3, $s2 -/* 002BD0 800277D0 0112B021 */ addu $s6, $t0, $s2 -/* 002BD4 800277D4 00161840 */ sll $v1, $s6, 1 -.L800277D8: -/* 002BD8 800277D8 00752021 */ addu $a0, $v1, $s5 -/* 002BDC 800277DC 9482FFFE */ lhu $v0, -2($a0) -/* 002BE0 800277E0 00021082 */ srl $v0, $v0, 2 -/* 002BE4 800277E4 3042000F */ andi $v0, $v0, 0xf -/* 002BE8 800277E8 2C420008 */ sltiu $v0, $v0, 8 -/* 002BEC 800277EC 5440000D */ bnel $v0, $zero, .L80027824 -/* 002BF0 800277F0 0280202D */ daddu $a0, $s4, $zero -/* 002BF4 800277F4 94820000 */ lhu $v0, ($a0) -/* 002BF8 800277F8 00021082 */ srl $v0, $v0, 2 -/* 002BFC 800277FC 3042000F */ andi $v0, $v0, 0xf -/* 002C00 80027800 2C420008 */ sltiu $v0, $v0, 8 -/* 002C04 80027804 54400007 */ bnel $v0, $zero, .L80027824 -/* 002C08 80027808 0280202D */ daddu $a0, $s4, $zero -/* 002C0C 8002780C 94820002 */ lhu $v0, 2($a0) -/* 002C10 80027810 00021082 */ srl $v0, $v0, 2 -/* 002C14 80027814 3042000F */ andi $v0, $v0, 0xf -/* 002C18 80027818 2C420008 */ sltiu $v0, $v0, 8 -/* 002C1C 8002781C 10400048 */ beqz $v0, .L80027940 -/* 002C20 80027820 0280202D */ daddu $a0, $s4, $zero -.L80027824: -/* 002C24 80027824 02A0282D */ daddu $a1, $s5, $zero -/* 002C28 80027828 03C0302D */ daddu $a2, $fp, $zero -/* 002C2C 8002782C 2650FFFF */ addiu $s0, $s2, -1 -/* 002C30 80027830 8FA80040 */ lw $t0, 0x40($sp) -/* 002C34 80027834 0200382D */ daddu $a3, $s0, $zero -/* 002C38 80027838 0C009C7F */ jal func_800271FC -/* 002C3C 8002783C AFA80010 */ sw $t0, 0x10($sp) -/* 002C40 80027840 0280202D */ daddu $a0, $s4, $zero -/* 002C44 80027844 02A0282D */ daddu $a1, $s5, $zero -/* 002C48 80027848 03C0302D */ daddu $a2, $fp, $zero -/* 002C4C 8002784C 0240382D */ daddu $a3, $s2, $zero -/* 002C50 80027850 27A2001C */ addiu $v0, $sp, 0x1c -/* 002C54 80027854 0C009C7F */ jal func_800271FC -/* 002C58 80027858 AFA20010 */ sw $v0, 0x10($sp) -/* 002C5C 8002785C 0280202D */ daddu $a0, $s4, $zero -/* 002C60 80027860 02A0282D */ daddu $a1, $s5, $zero -/* 002C64 80027864 03C0302D */ daddu $a2, $fp, $zero -/* 002C68 80027868 26510001 */ addiu $s1, $s2, 1 -/* 002C6C 8002786C 0220382D */ daddu $a3, $s1, $zero -/* 002C70 80027870 27A20020 */ addiu $v0, $sp, 0x20 -/* 002C74 80027874 0C009C7F */ jal func_800271FC -/* 002C78 80027878 AFA20010 */ sw $v0, 0x10($sp) -/* 002C7C 8002787C 0280202D */ daddu $a0, $s4, $zero -/* 002C80 80027880 02A0282D */ daddu $a1, $s5, $zero -/* 002C84 80027884 0260302D */ daddu $a2, $s3, $zero -/* 002C88 80027888 0200382D */ daddu $a3, $s0, $zero -/* 002C8C 8002788C 27A20024 */ addiu $v0, $sp, 0x24 -/* 002C90 80027890 0C009C7F */ jal func_800271FC -/* 002C94 80027894 AFA20010 */ sw $v0, 0x10($sp) -/* 002C98 80027898 0280202D */ daddu $a0, $s4, $zero -/* 002C9C 8002789C 02A0282D */ daddu $a1, $s5, $zero -/* 002CA0 800278A0 0260302D */ daddu $a2, $s3, $zero -/* 002CA4 800278A4 0240382D */ daddu $a3, $s2, $zero -/* 002CA8 800278A8 27A20028 */ addiu $v0, $sp, 0x28 -/* 002CAC 800278AC 0C009C7F */ jal func_800271FC -/* 002CB0 800278B0 AFA20010 */ sw $v0, 0x10($sp) -/* 002CB4 800278B4 0280202D */ daddu $a0, $s4, $zero -/* 002CB8 800278B8 02A0282D */ daddu $a1, $s5, $zero -/* 002CBC 800278BC 0260302D */ daddu $a2, $s3, $zero -/* 002CC0 800278C0 0220382D */ daddu $a3, $s1, $zero -/* 002CC4 800278C4 27A2002C */ addiu $v0, $sp, 0x2c -/* 002CC8 800278C8 0C009C7F */ jal func_800271FC -/* 002CCC 800278CC AFA20010 */ sw $v0, 0x10($sp) -/* 002CD0 800278D0 0280202D */ daddu $a0, $s4, $zero -/* 002CD4 800278D4 02A0282D */ daddu $a1, $s5, $zero -/* 002CD8 800278D8 02E0302D */ daddu $a2, $s7, $zero -/* 002CDC 800278DC 0200382D */ daddu $a3, $s0, $zero -/* 002CE0 800278E0 27A20030 */ addiu $v0, $sp, 0x30 -/* 002CE4 800278E4 0C009C7F */ jal func_800271FC -/* 002CE8 800278E8 AFA20010 */ sw $v0, 0x10($sp) -/* 002CEC 800278EC 0280202D */ daddu $a0, $s4, $zero -/* 002CF0 800278F0 02A0282D */ daddu $a1, $s5, $zero -/* 002CF4 800278F4 02E0302D */ daddu $a2, $s7, $zero -/* 002CF8 800278F8 0240382D */ daddu $a3, $s2, $zero -/* 002CFC 800278FC 27A20034 */ addiu $v0, $sp, 0x34 -/* 002D00 80027900 0C009C7F */ jal func_800271FC -/* 002D04 80027904 AFA20010 */ sw $v0, 0x10($sp) -/* 002D08 80027908 0280202D */ daddu $a0, $s4, $zero -/* 002D0C 8002790C 02A0282D */ daddu $a1, $s5, $zero -/* 002D10 80027910 02E0302D */ daddu $a2, $s7, $zero -/* 002D14 80027914 0220382D */ daddu $a3, $s1, $zero -/* 002D18 80027918 27A20038 */ addiu $v0, $sp, 0x38 -/* 002D1C 8002791C 0C009C7F */ jal func_800271FC -/* 002D20 80027920 AFA20010 */ sw $v0, 0x10($sp) -/* 002D24 80027924 00162840 */ sll $a1, $s6, 1 -/* 002D28 80027928 8FA80078 */ lw $t0, 0x78($sp) -/* 002D2C 8002792C 8FA40040 */ lw $a0, 0x40($sp) -/* 002D30 80027930 0C009D80 */ jal func_80027600 -/* 002D34 80027934 01052821 */ addu $a1, $t0, $a1 -/* 002D38 80027938 08009E57 */ j .L8002795C -/* 002D3C 8002793C 26D60001 */ addiu $s6, $s6, 1 - -.L80027940: -/* 002D40 80027940 00741021 */ addu $v0, $v1, $s4 -/* 002D44 80027944 8FA80078 */ lw $t0, 0x78($sp) -/* 002D48 80027948 94420000 */ lhu $v0, ($v0) -/* 002D4C 8002794C 00681821 */ addu $v1, $v1, $t0 -/* 002D50 80027950 34420001 */ ori $v0, $v0, 1 -/* 002D54 80027954 A4620000 */ sh $v0, ($v1) -/* 002D58 80027958 26D60001 */ addiu $s6, $s6, 1 -.L8002795C: -/* 002D5C 8002795C 26520001 */ addiu $s2, $s2, 1 -/* 002D60 80027960 2A42013F */ slti $v0, $s2, 0x13f -/* 002D64 80027964 1440FF9C */ bnez $v0, .L800277D8 -/* 002D68 80027968 00161840 */ sll $v1, $s6, 1 -/* 002D6C 8002796C 26730001 */ addiu $s3, $s3, 1 -/* 002D70 80027970 8FA80044 */ lw $t0, 0x44($sp) -/* 002D74 80027974 2A6200EF */ slti $v0, $s3, 0xef -/* 002D78 80027978 25080140 */ addiu $t0, $t0, 0x140 -/* 002D7C 8002797C 1440FF90 */ bnez $v0, .L800277C0 -/* 002D80 80027980 AFA80044 */ sw $t0, 0x44($sp) -/* 002D84 80027984 8FBF006C */ lw $ra, 0x6c($sp) -/* 002D88 80027988 8FBE0068 */ lw $fp, 0x68($sp) -/* 002D8C 8002798C 8FB70064 */ lw $s7, 0x64($sp) -/* 002D90 80027990 8FB60060 */ lw $s6, 0x60($sp) -/* 002D94 80027994 8FB5005C */ lw $s5, 0x5c($sp) -/* 002D98 80027998 8FB40058 */ lw $s4, 0x58($sp) -/* 002D9C 8002799C 8FB30054 */ lw $s3, 0x54($sp) -/* 002DA0 800279A0 8FB20050 */ lw $s2, 0x50($sp) -/* 002DA4 800279A4 8FB1004C */ lw $s1, 0x4c($sp) -/* 002DA8 800279A8 8FB00048 */ lw $s0, 0x48($sp) -/* 002DAC 800279AC 03E00008 */ jr $ra -/* 002DB0 800279B0 27BD0070 */ addiu $sp, $sp, 0x70 - -func_800279B4: -/* 002DB4 800279B4 27BDFF98 */ addiu $sp, $sp, -0x68 -/* 002DB8 800279B8 AFB50054 */ sw $s5, 0x54($sp) -/* 002DBC 800279BC 0080A82D */ daddu $s5, $a0, $zero -/* 002DC0 800279C0 AFB60058 */ sw $s6, 0x58($sp) -/* 002DC4 800279C4 00A0B02D */ daddu $s6, $a1, $zero -/* 002DC8 800279C8 AFB3004C */ sw $s3, 0x4c($sp) -/* 002DCC 800279CC 24130001 */ addiu $s3, $zero, 1 -/* 002DD0 800279D0 27A80018 */ addiu $t0, $sp, 0x18 -/* 002DD4 800279D4 AFA80038 */ sw $t0, 0x38($sp) -/* 002DD8 800279D8 24080140 */ addiu $t0, $zero, 0x140 -/* 002DDC 800279DC AFBF0064 */ sw $ra, 0x64($sp) -/* 002DE0 800279E0 AFBE0060 */ sw $fp, 0x60($sp) -/* 002DE4 800279E4 AFB7005C */ sw $s7, 0x5c($sp) -/* 002DE8 800279E8 AFB40050 */ sw $s4, 0x50($sp) -/* 002DEC 800279EC AFB20048 */ sw $s2, 0x48($sp) -/* 002DF0 800279F0 AFB10044 */ sw $s1, 0x44($sp) -/* 002DF4 800279F4 AFB00040 */ sw $s0, 0x40($sp) -/* 002DF8 800279F8 AFA60070 */ sw $a2, 0x70($sp) -/* 002DFC 800279FC AFA8003C */ sw $t0, 0x3c($sp) -.L80027A00: -/* 002E00 80027A00 24120002 */ addiu $s2, $zero, 2 -/* 002E04 80027A04 267EFFFF */ addiu $fp, $s3, -1 -/* 002E08 80027A08 26770001 */ addiu $s7, $s3, 1 -.L80027A0C: -/* 002E0C 80027A0C 8FA8003C */ lw $t0, 0x3c($sp) -/* 002E10 80027A10 01121021 */ addu $v0, $t0, $s2 -/* 002E14 80027A14 0002A040 */ sll $s4, $v0, 1 -/* 002E18 80027A18 02961021 */ addu $v0, $s4, $s6 -/* 002E1C 80027A1C 94420000 */ lhu $v0, ($v0) -/* 002E20 80027A20 00021082 */ srl $v0, $v0, 2 -/* 002E24 80027A24 3042000F */ andi $v0, $v0, 0xf -/* 002E28 80027A28 2C420008 */ sltiu $v0, $v0, 8 -/* 002E2C 80027A2C 10400043 */ beqz $v0, .L80027B3C -/* 002E30 80027A30 02A0202D */ daddu $a0, $s5, $zero -/* 002E34 80027A34 02C0282D */ daddu $a1, $s6, $zero -/* 002E38 80027A38 03C0302D */ daddu $a2, $fp, $zero -/* 002E3C 80027A3C 2650FFFF */ addiu $s0, $s2, -1 -/* 002E40 80027A40 8FA80038 */ lw $t0, 0x38($sp) -/* 002E44 80027A44 0200382D */ daddu $a3, $s0, $zero -/* 002E48 80027A48 0C009C7F */ jal func_800271FC -/* 002E4C 80027A4C AFA80010 */ sw $t0, 0x10($sp) -/* 002E50 80027A50 02A0202D */ daddu $a0, $s5, $zero -/* 002E54 80027A54 02C0282D */ daddu $a1, $s6, $zero -/* 002E58 80027A58 03C0302D */ daddu $a2, $fp, $zero -/* 002E5C 80027A5C 26510001 */ addiu $s1, $s2, 1 -/* 002E60 80027A60 0220382D */ daddu $a3, $s1, $zero -/* 002E64 80027A64 27A2001C */ addiu $v0, $sp, 0x1c -/* 002E68 80027A68 0C009C7F */ jal func_800271FC -/* 002E6C 80027A6C AFA20010 */ sw $v0, 0x10($sp) -/* 002E70 80027A70 02A0202D */ daddu $a0, $s5, $zero -/* 002E74 80027A74 02C0282D */ daddu $a1, $s6, $zero -/* 002E78 80027A78 0260302D */ daddu $a2, $s3, $zero -/* 002E7C 80027A7C 2647FFFE */ addiu $a3, $s2, -2 -/* 002E80 80027A80 27A20020 */ addiu $v0, $sp, 0x20 -/* 002E84 80027A84 0C009C7F */ jal func_800271FC -/* 002E88 80027A88 AFA20010 */ sw $v0, 0x10($sp) -/* 002E8C 80027A8C 02A0202D */ daddu $a0, $s5, $zero -/* 002E90 80027A90 02C0282D */ daddu $a1, $s6, $zero -/* 002E94 80027A94 0260302D */ daddu $a2, $s3, $zero -/* 002E98 80027A98 26470002 */ addiu $a3, $s2, 2 -/* 002E9C 80027A9C 27A20024 */ addiu $v0, $sp, 0x24 -/* 002EA0 80027AA0 0C009C7F */ jal func_800271FC -/* 002EA4 80027AA4 AFA20010 */ sw $v0, 0x10($sp) -/* 002EA8 80027AA8 02A0202D */ daddu $a0, $s5, $zero -/* 002EAC 80027AAC 02C0282D */ daddu $a1, $s6, $zero -/* 002EB0 80027AB0 02E0302D */ daddu $a2, $s7, $zero -/* 002EB4 80027AB4 0200382D */ daddu $a3, $s0, $zero -/* 002EB8 80027AB8 27A20028 */ addiu $v0, $sp, 0x28 -/* 002EBC 80027ABC 0C009C7F */ jal func_800271FC -/* 002EC0 80027AC0 AFA20010 */ sw $v0, 0x10($sp) -/* 002EC4 80027AC4 02A0202D */ daddu $a0, $s5, $zero -/* 002EC8 80027AC8 02C0282D */ daddu $a1, $s6, $zero -/* 002ECC 80027ACC 02E0302D */ daddu $a2, $s7, $zero -/* 002ED0 80027AD0 0220382D */ daddu $a3, $s1, $zero -/* 002ED4 80027AD4 27A2002C */ addiu $v0, $sp, 0x2c -/* 002ED8 80027AD8 0C009C7F */ jal func_800271FC -/* 002EDC 80027ADC AFA20010 */ sw $v0, 0x10($sp) -/* 002EE0 80027AE0 02A0202D */ daddu $a0, $s5, $zero -/* 002EE4 80027AE4 02C0282D */ daddu $a1, $s6, $zero -/* 002EE8 80027AE8 0260302D */ daddu $a2, $s3, $zero -/* 002EEC 80027AEC 0240382D */ daddu $a3, $s2, $zero -/* 002EF0 80027AF0 27A20030 */ addiu $v0, $sp, 0x30 -/* 002EF4 80027AF4 0C009C7F */ jal func_800271FC -/* 002EF8 80027AF8 AFA20010 */ sw $v0, 0x10($sp) -/* 002EFC 80027AFC 8FA40038 */ lw $a0, 0x38($sp) -/* 002F00 80027B00 8FA80070 */ lw $t0, 0x70($sp) -/* 002F04 80027B04 93A50030 */ lbu $a1, 0x30($sp) -/* 002F08 80027B08 93A20031 */ lbu $v0, 0x31($sp) -/* 002F0C 80027B0C 93A30032 */ lbu $v1, 0x32($sp) -/* 002F10 80027B10 01143021 */ addu $a2, $t0, $s4 -/* 002F14 80027B14 00052E00 */ sll $a1, $a1, 0x18 -/* 002F18 80027B18 00021400 */ sll $v0, $v0, 0x10 -/* 002F1C 80027B1C 00A22825 */ or $a1, $a1, $v0 -/* 002F20 80027B20 00031A00 */ sll $v1, $v1, 8 -/* 002F24 80027B24 93A20033 */ lbu $v0, 0x33($sp) -/* 002F28 80027B28 00A32825 */ or $a1, $a1, $v1 -/* 002F2C 80027B2C 0C009C97 */ jal func_8002725C -/* 002F30 80027B30 00A22825 */ or $a1, $a1, $v0 -/* 002F34 80027B34 08009ED6 */ j .L80027B58 -/* 002F38 80027B38 26520001 */ addiu $s2, $s2, 1 - -.L80027B3C: -/* 002F3C 80027B3C 02951021 */ addu $v0, $s4, $s5 -/* 002F40 80027B40 8FA80070 */ lw $t0, 0x70($sp) -/* 002F44 80027B44 94420000 */ lhu $v0, ($v0) -/* 002F48 80027B48 02881821 */ addu $v1, $s4, $t0 -/* 002F4C 80027B4C 34420001 */ ori $v0, $v0, 1 -/* 002F50 80027B50 A4620000 */ sh $v0, ($v1) -/* 002F54 80027B54 26520001 */ addiu $s2, $s2, 1 -.L80027B58: -/* 002F58 80027B58 2A42013E */ slti $v0, $s2, 0x13e -/* 002F5C 80027B5C 1440FFAB */ bnez $v0, .L80027A0C -/* 002F60 80027B60 00000000 */ nop -/* 002F64 80027B64 26730001 */ addiu $s3, $s3, 1 -/* 002F68 80027B68 8FA8003C */ lw $t0, 0x3c($sp) -/* 002F6C 80027B6C 2A6200EF */ slti $v0, $s3, 0xef -/* 002F70 80027B70 25080140 */ addiu $t0, $t0, 0x140 -/* 002F74 80027B74 1440FFA2 */ bnez $v0, .L80027A00 -/* 002F78 80027B78 AFA8003C */ sw $t0, 0x3c($sp) -/* 002F7C 80027B7C 8FBF0064 */ lw $ra, 0x64($sp) -/* 002F80 80027B80 8FBE0060 */ lw $fp, 0x60($sp) -/* 002F84 80027B84 8FB7005C */ lw $s7, 0x5c($sp) -/* 002F88 80027B88 8FB60058 */ lw $s6, 0x58($sp) -/* 002F8C 80027B8C 8FB50054 */ lw $s5, 0x54($sp) -/* 002F90 80027B90 8FB40050 */ lw $s4, 0x50($sp) -/* 002F94 80027B94 8FB3004C */ lw $s3, 0x4c($sp) -/* 002F98 80027B98 8FB20048 */ lw $s2, 0x48($sp) -/* 002F9C 80027B9C 8FB10044 */ lw $s1, 0x44($sp) -/* 002FA0 80027BA0 8FB00040 */ lw $s0, 0x40($sp) -/* 002FA4 80027BA4 03E00008 */ jr $ra -/* 002FA8 80027BA8 27BD0068 */ addiu $sp, $sp, 0x68 - -/* 002FAC 80027BAC 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 002FB0 80027BB0 3C06D700 */ lui $a2, 0xd700 -/* 002FB4 80027BB4 34C60002 */ ori $a2, $a2, 2 -/* 002FB8 80027BB8 3C07FF10 */ lui $a3, 0xff10 -/* 002FBC 80027BBC 34E7013F */ ori $a3, $a3, 0x13f -/* 002FC0 80027BC0 3C08E300 */ lui $t0, 0xe300 -/* 002FC4 80027BC4 35080A01 */ ori $t0, $t0, 0xa01 -/* 002FC8 80027BC8 3C09E300 */ lui $t1, 0xe300 -/* 002FCC 80027BCC 35290C00 */ ori $t1, $t1, 0xc00 -/* 002FD0 80027BD0 3C0AE300 */ lui $t2, 0xe300 -/* 002FD4 80027BD4 354A1001 */ ori $t2, $t2, 0x1001 -/* 002FD8 80027BD8 3C0BE200 */ lui $t3, 0xe200 -/* 002FDC 80027BDC 356B001C */ ori $t3, $t3, 0x1c -/* 002FE0 80027BE0 3C0CE300 */ lui $t4, 0xe300 -/* 002FE4 80027BE4 358C1201 */ ori $t4, $t4, 0x1201 -/* 002FE8 80027BE8 0000C82D */ daddu $t9, $zero, $zero -/* 002FEC 80027BEC 3C02800A */ lui $v0, 0x800a -/* 002FF0 80027BF0 2442A66C */ addiu $v0, $v0, -0x5994 -/* 002FF4 80027BF4 0040682D */ daddu $t5, $v0, $zero -/* 002FF8 80027BF8 AFB5001C */ sw $s5, 0x1c($sp) -/* 002FFC 80027BFC 3C15FD10 */ lui $s5, 0xfd10 -/* 003000 80027C00 36B5013F */ ori $s5, $s5, 0x13f -/* 003004 80027C04 AFB00008 */ sw $s0, 8($sp) -/* 003008 80027C08 3C10F510 */ lui $s0, 0xf510 -/* 00300C 80027C0C 3610A000 */ ori $s0, $s0, 0xa000 -/* 003010 80027C10 AFB40018 */ sw $s4, 0x18($sp) -/* 003014 80027C14 3C14074F */ lui $s4, 0x74f -/* 003018 80027C18 3694C014 */ ori $s4, $s4, 0xc014 -/* 00301C 80027C1C AFB1000C */ sw $s1, 0xc($sp) -/* 003020 80027C20 3C11E700 */ lui $s1, 0xe700 -/* 003024 80027C24 AFBE0028 */ sw $fp, 0x28($sp) -/* 003028 80027C28 3C1EF200 */ lui $fp, 0xf200 -/* 00302C 80027C2C AFB30014 */ sw $s3, 0x14($sp) -/* 003030 80027C30 3C13004F */ lui $s3, 0x4f -/* 003034 80027C34 3673C014 */ ori $s3, $s3, 0xc014 -/* 003038 80027C38 AFB20010 */ sw $s2, 0x10($sp) -/* 00303C 80027C3C 3C12E44F */ lui $s2, 0xe44f -/* 003040 80027C40 3652C000 */ ori $s2, $s2, 0xc000 -/* 003044 80027C44 AFB70024 */ sw $s7, 0x24($sp) -/* 003048 80027C48 3C17E100 */ lui $s7, 0xe100 -/* 00304C 80027C4C AFB60020 */ sw $s6, 0x20($sp) -/* 003050 80027C50 3C16F100 */ lui $s6, 0xf100 -/* 003054 80027C54 0320C02D */ daddu $t8, $t9, $zero -/* 003058 80027C58 240F0014 */ addiu $t7, $zero, 0x14 -/* 00305C 80027C5C 0080702D */ daddu $t6, $a0, $zero -/* 003060 80027C60 8DA20000 */ lw $v0, ($t5) -/* 003064 80027C64 0220182D */ daddu $v1, $s1, $zero -/* 003068 80027C68 0040202D */ daddu $a0, $v0, $zero -/* 00306C 80027C6C 24420008 */ addiu $v0, $v0, 8 -/* 003070 80027C70 ADA20000 */ sw $v0, ($t5) -/* 003074 80027C74 AC830000 */ sw $v1, ($a0) -/* 003078 80027C78 24430008 */ addiu $v1, $v0, 8 -/* 00307C 80027C7C AC800004 */ sw $zero, 4($a0) -/* 003080 80027C80 ADA30000 */ sw $v1, ($t5) -/* 003084 80027C84 2403FFFF */ addiu $v1, $zero, -1 -/* 003088 80027C88 AC430004 */ sw $v1, 4($v0) -/* 00308C 80027C8C 24430010 */ addiu $v1, $v0, 0x10 -/* 003090 80027C90 AC460000 */ sw $a2, ($v0) -/* 003094 80027C94 ADA30000 */ sw $v1, ($t5) -/* 003098 80027C98 24430018 */ addiu $v1, $v0, 0x18 -/* 00309C 80027C9C AC470008 */ sw $a3, 8($v0) -/* 0030A0 80027CA0 AC45000C */ sw $a1, 0xc($v0) -/* 0030A4 80027CA4 ADA30000 */ sw $v1, ($t5) -/* 0030A8 80027CA8 3C030020 */ lui $v1, 0x20 -/* 0030AC 80027CAC AC430014 */ sw $v1, 0x14($v0) -/* 0030B0 80027CB0 24430020 */ addiu $v1, $v0, 0x20 -/* 0030B4 80027CB4 AC480010 */ sw $t0, 0x10($v0) -/* 0030B8 80027CB8 ADA30000 */ sw $v1, ($t5) -/* 0030BC 80027CBC 24430028 */ addiu $v1, $v0, 0x28 -/* 0030C0 80027CC0 AC490018 */ sw $t1, 0x18($v0) -/* 0030C4 80027CC4 AC40001C */ sw $zero, 0x1c($v0) -/* 0030C8 80027CC8 ADA30000 */ sw $v1, ($t5) -/* 0030CC 80027CCC 24430030 */ addiu $v1, $v0, 0x30 -/* 0030D0 80027CD0 AC4A0020 */ sw $t2, 0x20($v0) -/* 0030D4 80027CD4 AC400024 */ sw $zero, 0x24($v0) -/* 0030D8 80027CD8 ADA30000 */ sw $v1, ($t5) -/* 0030DC 80027CDC 24430038 */ addiu $v1, $v0, 0x38 -/* 0030E0 80027CE0 AC4B0028 */ sw $t3, 0x28($v0) -/* 0030E4 80027CE4 AC40002C */ sw $zero, 0x2c($v0) -/* 0030E8 80027CE8 ADA30000 */ sw $v1, ($t5) -/* 0030EC 80027CEC AC4C0030 */ sw $t4, 0x30($v0) -/* 0030F0 80027CF0 AC400034 */ sw $zero, 0x34($v0) -.L80027CF4: -/* 0030F4 80027CF4 3C061000 */ lui $a2, 0x1000 -/* 0030F8 80027CF8 34C60400 */ ori $a2, $a2, 0x400 -/* 0030FC 80027CFC 33050FFF */ andi $a1, $t8, 0xfff -/* 003100 80027D00 27180018 */ addiu $t8, $t8, 0x18 -/* 003104 80027D04 31E40FFF */ andi $a0, $t7, 0xfff -/* 003108 80027D08 25EF0018 */ addiu $t7, $t7, 0x18 -/* 00310C 80027D0C 27390001 */ addiu $t9, $t9, 1 -/* 003110 80027D10 8DA20000 */ lw $v0, ($t5) -/* 003114 80027D14 00922025 */ or $a0, $a0, $s2 -/* 003118 80027D18 0040182D */ daddu $v1, $v0, $zero -/* 00311C 80027D1C 24420008 */ addiu $v0, $v0, 8 -/* 003120 80027D20 AC6E0004 */ sw $t6, 4($v1) -/* 003124 80027D24 ADA20000 */ sw $v0, ($t5) -/* 003128 80027D28 AC750000 */ sw $s5, ($v1) -/* 00312C 80027D2C 24430008 */ addiu $v1, $v0, 8 -/* 003130 80027D30 3C070700 */ lui $a3, 0x700 -/* 003134 80027D34 ADA30000 */ sw $v1, ($t5) -/* 003138 80027D38 24430010 */ addiu $v1, $v0, 0x10 -/* 00313C 80027D3C AC470004 */ sw $a3, 4($v0) -/* 003140 80027D40 3C07E600 */ lui $a3, 0xe600 -/* 003144 80027D44 AC500000 */ sw $s0, ($v0) -/* 003148 80027D48 ADA30000 */ sw $v1, ($t5) -/* 00314C 80027D4C 24430018 */ addiu $v1, $v0, 0x18 -/* 003150 80027D50 AC470008 */ sw $a3, 8($v0) -/* 003154 80027D54 3C07F400 */ lui $a3, 0xf400 -/* 003158 80027D58 AC40000C */ sw $zero, 0xc($v0) -/* 00315C 80027D5C ADA30000 */ sw $v1, ($t5) -/* 003160 80027D60 24430020 */ addiu $v1, $v0, 0x20 -/* 003164 80027D64 AC470010 */ sw $a3, 0x10($v0) -/* 003168 80027D68 AC540014 */ sw $s4, 0x14($v0) -/* 00316C 80027D6C ADA30000 */ sw $v1, ($t5) -/* 003170 80027D70 24430028 */ addiu $v1, $v0, 0x28 -/* 003174 80027D74 AC510018 */ sw $s1, 0x18($v0) -/* 003178 80027D78 AC40001C */ sw $zero, 0x1c($v0) -/* 00317C 80027D7C ADA30000 */ sw $v1, ($t5) -/* 003180 80027D80 24430030 */ addiu $v1, $v0, 0x30 -/* 003184 80027D84 AC500020 */ sw $s0, 0x20($v0) -/* 003188 80027D88 AC400024 */ sw $zero, 0x24($v0) -/* 00318C 80027D8C ADA30000 */ sw $v1, ($t5) -/* 003190 80027D90 24430038 */ addiu $v1, $v0, 0x38 -/* 003194 80027D94 AC5E0028 */ sw $fp, 0x28($v0) -/* 003198 80027D98 AC53002C */ sw $s3, 0x2c($v0) -/* 00319C 80027D9C ADA30000 */ sw $v1, ($t5) -/* 0031A0 80027DA0 24430040 */ addiu $v1, $v0, 0x40 -/* 0031A4 80027DA4 AC440030 */ sw $a0, 0x30($v0) -/* 0031A8 80027DA8 AC450034 */ sw $a1, 0x34($v0) -/* 0031AC 80027DAC ADA30000 */ sw $v1, ($t5) -/* 0031B0 80027DB0 24430048 */ addiu $v1, $v0, 0x48 -/* 0031B4 80027DB4 AC570038 */ sw $s7, 0x38($v0) -/* 0031B8 80027DB8 AC40003C */ sw $zero, 0x3c($v0) -/* 0031BC 80027DBC ADA30000 */ sw $v1, ($t5) -/* 0031C0 80027DC0 24430050 */ addiu $v1, $v0, 0x50 -/* 0031C4 80027DC4 AC560040 */ sw $s6, 0x40($v0) -/* 0031C8 80027DC8 AC460044 */ sw $a2, 0x44($v0) -/* 0031CC 80027DCC ADA30000 */ sw $v1, ($t5) -/* 0031D0 80027DD0 AC510048 */ sw $s1, 0x48($v0) -/* 0031D4 80027DD4 AC40004C */ sw $zero, 0x4c($v0) -/* 0031D8 80027DD8 2B220028 */ slti $v0, $t9, 0x28 -/* 0031DC 80027DDC 1440FFC5 */ bnez $v0, .L80027CF4 -/* 0031E0 80027DE0 25CE0F00 */ addiu $t6, $t6, 0xf00 -/* 0031E4 80027DE4 8FBE0028 */ lw $fp, 0x28($sp) -/* 0031E8 80027DE8 8FB70024 */ lw $s7, 0x24($sp) -/* 0031EC 80027DEC 8FB60020 */ lw $s6, 0x20($sp) -/* 0031F0 80027DF0 8FB5001C */ lw $s5, 0x1c($sp) -/* 0031F4 80027DF4 8FB40018 */ lw $s4, 0x18($sp) -/* 0031F8 80027DF8 8FB30014 */ lw $s3, 0x14($sp) -/* 0031FC 80027DFC 8FB20010 */ lw $s2, 0x10($sp) -/* 003200 80027E00 8FB1000C */ lw $s1, 0xc($sp) -/* 003204 80027E04 8FB00008 */ lw $s0, 8($sp) -/* 003208 80027E08 03E00008 */ jr $ra -/* 00320C 80027E0C 27BD0030 */ addiu $sp, $sp, 0x30 - -func_80027E10: -/* 003210 80027E10 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* 003214 80027E14 3C040050 */ lui $a0, 0x50 -/* 003218 80027E18 3C0C800A */ lui $t4, 0x800a -/* 00321C 80027E1C 258CA66C */ addiu $t4, $t4, -0x5994 -/* 003220 80027E20 348403C0 */ ori $a0, $a0, 0x3c0 -/* 003224 80027E24 3C02ED00 */ lui $v0, 0xed00 -/* 003228 80027E28 AFBF0044 */ sw $ra, 0x44($sp) -/* 00322C 80027E2C AFBE0040 */ sw $fp, 0x40($sp) -/* 003230 80027E30 AFB7003C */ sw $s7, 0x3c($sp) -/* 003234 80027E34 AFB60038 */ sw $s6, 0x38($sp) -/* 003238 80027E38 AFB50034 */ sw $s5, 0x34($sp) -/* 00323C 80027E3C AFB40030 */ sw $s4, 0x30($sp) -/* 003240 80027E40 AFB3002C */ sw $s3, 0x2c($sp) -/* 003244 80027E44 AFB20028 */ sw $s2, 0x28($sp) -/* 003248 80027E48 AFB10024 */ sw $s1, 0x24($sp) -/* 00324C 80027E4C AFB00020 */ sw $s0, 0x20($sp) -/* 003250 80027E50 8D8B0000 */ lw $t3, ($t4) -/* 003254 80027E54 3C108007 */ lui $s0, 0x8007 -/* 003258 80027E58 2610419C */ addiu $s0, $s0, 0x419c -/* 00325C 80027E5C 0160182D */ daddu $v1, $t3, $zero -/* 003260 80027E60 256B0008 */ addiu $t3, $t3, 8 -/* 003264 80027E64 AD8B0000 */ sw $t3, ($t4) -/* 003268 80027E68 AC640004 */ sw $a0, 4($v1) -/* 00326C 80027E6C 3C04800B */ lui $a0, 0x800b -/* 003270 80027E70 24841D80 */ addiu $a0, $a0, 0x1d80 -/* 003274 80027E74 AC620000 */ sw $v0, ($v1) -/* 003278 80027E78 3C038007 */ lui $v1, 0x8007 -/* 00327C 80027E7C 8C637410 */ lw $v1, 0x7410($v1) -/* 003280 80027E80 8E0D0000 */ lw $t5, ($s0) -/* 003284 80027E84 00031080 */ sll $v0, $v1, 2 -/* 003288 80027E88 00431021 */ addu $v0, $v0, $v1 -/* 00328C 80027E8C 00021080 */ sll $v0, $v0, 2 -/* 003290 80027E90 00431023 */ subu $v0, $v0, $v1 -/* 003294 80027E94 000218C0 */ sll $v1, $v0, 3 -/* 003298 80027E98 00431021 */ addu $v0, $v0, $v1 -/* 00329C 80027E9C 000210C0 */ sll $v0, $v0, 3 -/* 0032A0 80027EA0 00449821 */ addu $s3, $v0, $a0 -/* 0032A4 80027EA4 95A30148 */ lhu $v1, 0x148($t5) -/* 0032A8 80027EA8 24020020 */ addiu $v0, $zero, 0x20 -/* 0032AC 80027EAC 306300F0 */ andi $v1, $v1, 0xf0 -/* 0032B0 80027EB0 1062004E */ beq $v1, $v0, .L80027FEC -/* 0032B4 80027EB4 28620021 */ slti $v0, $v1, 0x21 -/* 0032B8 80027EB8 10400005 */ beqz $v0, .L80027ED0 -/* 0032BC 80027EBC 24020010 */ addiu $v0, $zero, 0x10 -/* 0032C0 80027EC0 10620008 */ beq $v1, $v0, .L80027EE4 -/* 0032C4 80027EC4 3C03FF10 */ lui $v1, 0xff10 -/* 0032C8 80027EC8 0800A0CB */ j .L8002832C -/* 0032CC 80027ECC 00000000 */ nop - -.L80027ED0: -/* 0032D0 80027ED0 24020030 */ addiu $v0, $zero, 0x30 -/* 0032D4 80027ED4 10620053 */ beq $v1, $v0, .L80028024 -/* 0032D8 80027ED8 00000000 */ nop -/* 0032DC 80027EDC 0800A0CB */ j .L8002832C -/* 0032E0 80027EE0 00000000 */ nop - -.L80027EE4: -/* 0032E4 80027EE4 3463013F */ ori $v1, $v1, 0x13f -/* 0032E8 80027EE8 3C06E300 */ lui $a2, 0xe300 -/* 0032EC 80027EEC 34C60A01 */ ori $a2, $a2, 0xa01 -/* 0032F0 80027EF0 3C078080 */ lui $a3, 0x8080 -/* 0032F4 80027EF4 34E780FF */ ori $a3, $a3, 0x80ff -/* 0032F8 80027EF8 3C05E200 */ lui $a1, 0xe200 -/* 0032FC 80027EFC 34A51D00 */ ori $a1, $a1, 0x1d00 -/* 003300 80027F00 3C0AE200 */ lui $t2, 0xe200 -/* 003304 80027F04 354A001C */ ori $t2, $t2, 0x1c -/* 003308 80027F08 3C090FA5 */ lui $t1, 0xfa5 -/* 00330C 80027F0C 35294040 */ ori $t1, $t1, 0x4040 -/* 003310 80027F10 3C08F650 */ lui $t0, 0xf650 -/* 003314 80027F14 350803C0 */ ori $t0, $t0, 0x3c0 -/* 003318 80027F18 25620008 */ addiu $v0, $t3, 8 -/* 00331C 80027F1C 3C04E700 */ lui $a0, 0xe700 -/* 003320 80027F20 AD820000 */ sw $v0, ($t4) -/* 003324 80027F24 25620010 */ addiu $v0, $t3, 0x10 -/* 003328 80027F28 AD640000 */ sw $a0, ($t3) -/* 00332C 80027F2C AD600004 */ sw $zero, 4($t3) -/* 003330 80027F30 AD820000 */ sw $v0, ($t4) -/* 003334 80027F34 25620018 */ addiu $v0, $t3, 0x18 -/* 003338 80027F38 AD630008 */ sw $v1, 8($t3) -/* 00333C 80027F3C AD820000 */ sw $v0, ($t4) -/* 003340 80027F40 25620020 */ addiu $v0, $t3, 0x20 -/* 003344 80027F44 AD820000 */ sw $v0, ($t4) -/* 003348 80027F48 25620028 */ addiu $v0, $t3, 0x28 -/* 00334C 80027F4C AD820000 */ sw $v0, ($t4) -/* 003350 80027F50 25620030 */ addiu $v0, $t3, 0x30 -/* 003354 80027F54 AD820000 */ sw $v0, ($t4) -/* 003358 80027F58 25620038 */ addiu $v0, $t3, 0x38 -/* 00335C 80027F5C AD820000 */ sw $v0, ($t4) -/* 003360 80027F60 3C03800A */ lui $v1, 0x800a -/* 003364 80027F64 8C63A658 */ lw $v1, -0x59a8($v1) -/* 003368 80027F68 25620040 */ addiu $v0, $t3, 0x40 -/* 00336C 80027F6C AD820000 */ sw $v0, ($t4) -/* 003370 80027F70 8C630004 */ lw $v1, 4($v1) -/* 003374 80027F74 25620048 */ addiu $v0, $t3, 0x48 -/* 003378 80027F78 AD820000 */ sw $v0, ($t4) -/* 00337C 80027F7C 3C02F900 */ lui $v0, 0xf900 -/* 003380 80027F80 AD620018 */ sw $v0, 0x18($t3) -/* 003384 80027F84 3C02EE00 */ lui $v0, 0xee00 -/* 003388 80027F88 AD620020 */ sw $v0, 0x20($t3) -/* 00338C 80027F8C 2402FFFF */ addiu $v0, $zero, -1 -/* 003390 80027F90 AD620024 */ sw $v0, 0x24($t3) -/* 003394 80027F94 24020004 */ addiu $v0, $zero, 4 -/* 003398 80027F98 AD660010 */ sw $a2, 0x10($t3) -/* 00339C 80027F9C AD600014 */ sw $zero, 0x14($t3) -/* 0033A0 80027FA0 AD67001C */ sw $a3, 0x1c($t3) -/* 0033A4 80027FA4 AD650028 */ sw $a1, 0x28($t3) -/* 0033A8 80027FA8 AD62002C */ sw $v0, 0x2c($t3) -/* 0033AC 80027FAC AD6A0030 */ sw $t2, 0x30($t3) -/* 0033B0 80027FB0 AD690034 */ sw $t1, 0x34($t3) -/* 0033B4 80027FB4 AD680038 */ sw $t0, 0x38($t3) -/* 0033B8 80027FB8 AD60003C */ sw $zero, 0x3c($t3) -/* 0033BC 80027FBC AD640040 */ sw $a0, 0x40($t3) -/* 0033C0 80027FC0 AD600044 */ sw $zero, 0x44($t3) -/* 0033C4 80027FC4 AD650048 */ sw $a1, 0x48($t3) -/* 0033C8 80027FC8 AD60004C */ sw $zero, 0x4c($t3) -/* 0033CC 80027FCC AD63000C */ sw $v1, 0xc($t3) -/* 0033D0 80027FD0 95A20148 */ lhu $v0, 0x148($t5) -/* 0033D4 80027FD4 25630050 */ addiu $v1, $t3, 0x50 -/* 0033D8 80027FD8 AD830000 */ sw $v1, ($t4) -/* 0033DC 80027FDC 3042FF0F */ andi $v0, $v0, 0xff0f -/* 0033E0 80027FE0 34420020 */ ori $v0, $v0, 0x20 -/* 0033E4 80027FE4 0800A1E4 */ j .L80028790 -/* 0033E8 80027FE8 A5A20148 */ sh $v0, 0x148($t5) - -.L80027FEC: -/* 0033EC 80027FEC 3C02800A */ lui $v0, 0x800a -/* 0033F0 80027FF0 8C42A658 */ lw $v0, -0x59a8($v0) -/* 0033F4 80027FF4 3C06800A */ lui $a2, 0x800a -/* 0033F8 80027FF8 8CC6A5DC */ lw $a2, -0x5a24($a2) -/* 0033FC 80027FFC 8C440000 */ lw $a0, ($v0) -/* 003400 80028000 0C009E6D */ jal func_800279B4 -/* 003404 80028004 8C450004 */ lw $a1, 4($v0) -/* 003408 80028008 8E030000 */ lw $v1, ($s0) -/* 00340C 8002800C 94620148 */ lhu $v0, 0x148($v1) -/* 003410 80028010 3C018007 */ lui $at, 0x8007 -/* 003414 80028014 AC2041F8 */ sw $zero, 0x41f8($at) -/* 003418 80028018 3042FF0F */ andi $v0, $v0, 0xff0f -/* 00341C 8002801C 34420030 */ ori $v0, $v0, 0x30 -/* 003420 80028020 A4620148 */ sh $v0, 0x148($v1) -.L80028024: -/* 003424 80028024 3C168007 */ lui $s6, 0x8007 -/* 003428 80028028 26D641F8 */ addiu $s6, $s6, 0x41f8 -/* 00342C 8002802C 8EC20000 */ lw $v0, ($s6) -/* 003430 80028030 24420010 */ addiu $v0, $v0, 0x10 -/* 003434 80028034 AEC20000 */ sw $v0, ($s6) -/* 003438 80028038 28420081 */ slti $v0, $v0, 0x81 -/* 00343C 8002803C 14400003 */ bnez $v0, .L8002804C -/* 003440 80028040 3C060050 */ lui $a2, 0x50 -/* 003444 80028044 24020080 */ addiu $v0, $zero, 0x80 -/* 003448 80028048 AEC20000 */ sw $v0, ($s6) -.L8002804C: -/* 00344C 8002804C 34C603C0 */ ori $a2, $a2, 0x3c0 -/* 003450 80028050 3C05E300 */ lui $a1, 0xe300 -/* 003454 80028054 34A50A01 */ ori $a1, $a1, 0xa01 -/* 003458 80028058 3C07E200 */ lui $a3, 0xe200 -/* 00345C 8002805C 34E7001C */ ori $a3, $a3, 0x1c -/* 003460 80028060 3C08FF10 */ lui $t0, 0xff10 -/* 003464 80028064 3508013F */ ori $t0, $t0, 0x13f -/* 003468 80028068 3C090001 */ lui $t1, 1 -/* 00346C 8002806C 35290001 */ ori $t1, $t1, 1 -/* 003470 80028070 3C0AF64F */ lui $t2, 0xf64f -/* 003474 80028074 354AC3BC */ ori $t2, $t2, 0xc3bc -/* 003478 80028078 3C0BE300 */ lui $t3, 0xe300 -/* 00347C 8002807C 356B0C00 */ ori $t3, $t3, 0xc00 -/* 003480 80028080 3C0CE300 */ lui $t4, 0xe300 -/* 003484 80028084 358C1001 */ ori $t4, $t4, 0x1001 -/* 003488 80028088 3C0D0F0A */ lui $t5, 0xf0a -/* 00348C 8002808C 35AD4000 */ ori $t5, $t5, 0x4000 -/* 003490 80028090 3C0FFC35 */ lui $t7, 0xfc35 -/* 003494 80028094 35EF7E6A */ ori $t7, $t7, 0x7e6a -/* 003498 80028098 3C0E12FC */ lui $t6, 0x12fc -/* 00349C 8002809C 35CEFCBE */ ori $t6, $t6, 0xfcbe -/* 0034A0 800280A0 3C112828 */ lui $s1, 0x2828 -/* 0034A4 800280A4 36312800 */ ori $s1, $s1, 0x2800 -/* 0034A8 800280A8 3C10E300 */ lui $s0, 0xe300 -/* 0034AC 800280AC 36101201 */ ori $s0, $s0, 0x1201 -/* 0034B0 800280B0 0000C82D */ daddu $t9, $zero, $zero -/* 0034B4 800280B4 3C02800A */ lui $v0, 0x800a -/* 0034B8 800280B8 2442A66C */ addiu $v0, $v0, -0x5994 -/* 0034BC 800280BC 0040902D */ daddu $s2, $v0, $zero -/* 0034C0 800280C0 AFAE0018 */ sw $t6, 0x18($sp) -/* 0034C4 800280C4 3C0EFD10 */ lui $t6, 0xfd10 -/* 0034C8 800280C8 35CE013F */ ori $t6, $t6, 0x13f -/* 0034CC 800280CC 3C15F510 */ lui $s5, 0xf510 -/* 0034D0 800280D0 36B5A000 */ ori $s5, $s5, 0xa000 -/* 0034D4 800280D4 AFAE0010 */ sw $t6, 0x10($sp) -/* 0034D8 800280D8 3C0E074F */ lui $t6, 0x74f -/* 0034DC 800280DC 35CEC014 */ ori $t6, $t6, 0xc014 -/* 0034E0 800280E0 3C17E700 */ lui $s7, 0xe700 -/* 0034E4 800280E4 3C1E004F */ lui $fp, 0x4f -/* 0034E8 800280E8 37DEC014 */ ori $fp, $fp, 0xc014 -/* 0034EC 800280EC 0320C02D */ daddu $t8, $t9, $zero -/* 0034F0 800280F0 24140018 */ addiu $s4, $zero, 0x18 -/* 0034F4 800280F4 0320982D */ daddu $s3, $t9, $zero -/* 0034F8 800280F8 AFAE0014 */ sw $t6, 0x14($sp) -/* 0034FC 800280FC 8E420000 */ lw $v0, ($s2) -/* 003500 80028100 02E0182D */ daddu $v1, $s7, $zero -/* 003504 80028104 0040202D */ daddu $a0, $v0, $zero -/* 003508 80028108 24420008 */ addiu $v0, $v0, 8 -/* 00350C 8002810C AE420000 */ sw $v0, ($s2) -/* 003510 80028110 AC830000 */ sw $v1, ($a0) -/* 003514 80028114 24430008 */ addiu $v1, $v0, 8 -/* 003518 80028118 AC800004 */ sw $zero, 4($a0) -/* 00351C 8002811C AE430000 */ sw $v1, ($s2) -/* 003520 80028120 3C03ED00 */ lui $v1, 0xed00 -/* 003524 80028124 AC430000 */ sw $v1, ($v0) -/* 003528 80028128 24430010 */ addiu $v1, $v0, 0x10 -/* 00352C 8002812C AC460004 */ sw $a2, 4($v0) -/* 003530 80028130 AE430000 */ sw $v1, ($s2) -/* 003534 80028134 3C030030 */ lui $v1, 0x30 -/* 003538 80028138 AC43000C */ sw $v1, 0xc($v0) -/* 00353C 8002813C 00541821 */ addu $v1, $v0, $s4 -/* 003540 80028140 AC450008 */ sw $a1, 8($v0) -/* 003544 80028144 AE430000 */ sw $v1, ($s2) -/* 003548 80028148 3C04800A */ lui $a0, 0x800a -/* 00354C 8002814C 8C84A64C */ lw $a0, -0x59b4($a0) -/* 003550 80028150 24430020 */ addiu $v1, $v0, 0x20 -/* 003554 80028154 AC470010 */ sw $a3, 0x10($v0) -/* 003558 80028158 AC400014 */ sw $zero, 0x14($v0) -/* 00355C 8002815C AE430000 */ sw $v1, ($s2) -/* 003560 80028160 24430028 */ addiu $v1, $v0, 0x28 -/* 003564 80028164 AC480018 */ sw $t0, 0x18($v0) -/* 003568 80028168 AC44001C */ sw $a0, 0x1c($v0) -/* 00356C 8002816C AE430000 */ sw $v1, ($s2) -/* 003570 80028170 3C03F700 */ lui $v1, 0xf700 -/* 003574 80028174 AC430020 */ sw $v1, 0x20($v0) -/* 003578 80028178 24430030 */ addiu $v1, $v0, 0x30 -/* 00357C 8002817C AC490024 */ sw $t1, 0x24($v0) -/* 003580 80028180 AE430000 */ sw $v1, ($s2) -/* 003584 80028184 24430038 */ addiu $v1, $v0, 0x38 -/* 003588 80028188 AC4A0028 */ sw $t2, 0x28($v0) -/* 00358C 8002818C AC40002C */ sw $zero, 0x2c($v0) -/* 003590 80028190 AE430000 */ sw $v1, ($s2) -/* 003594 80028194 24430040 */ addiu $v1, $v0, 0x40 -/* 003598 80028198 AC450030 */ sw $a1, 0x30($v0) -/* 00359C 8002819C AC400034 */ sw $zero, 0x34($v0) -/* 0035A0 800281A0 AE430000 */ sw $v1, ($s2) -/* 0035A4 800281A4 24430048 */ addiu $v1, $v0, 0x48 -/* 0035A8 800281A8 AC4B0038 */ sw $t3, 0x38($v0) -/* 0035AC 800281AC AC40003C */ sw $zero, 0x3c($v0) -/* 0035B0 800281B0 AE430000 */ sw $v1, ($s2) -/* 0035B4 800281B4 24430050 */ addiu $v1, $v0, 0x50 -/* 0035B8 800281B8 AC4C0040 */ sw $t4, 0x40($v0) -/* 0035BC 800281BC AC400044 */ sw $zero, 0x44($v0) -/* 0035C0 800281C0 AE430000 */ sw $v1, ($s2) -/* 0035C4 800281C4 24430058 */ addiu $v1, $v0, 0x58 -/* 0035C8 800281C8 AC470048 */ sw $a3, 0x48($v0) -/* 0035CC 800281CC AC4D004C */ sw $t5, 0x4c($v0) -/* 0035D0 800281D0 AE430000 */ sw $v1, ($s2) -/* 0035D4 800281D4 AC4F0050 */ sw $t7, 0x50($v0) -/* 0035D8 800281D8 8FAE0018 */ lw $t6, 0x18($sp) -/* 0035DC 800281DC 24430060 */ addiu $v1, $v0, 0x60 -/* 0035E0 800281E0 AC4E0054 */ sw $t6, 0x54($v0) -/* 0035E4 800281E4 AE430000 */ sw $v1, ($s2) -/* 0035E8 800281E8 3C03FA00 */ lui $v1, 0xfa00 -/* 0035EC 800281EC AC430058 */ sw $v1, 0x58($v0) -/* 0035F0 800281F0 92C40003 */ lbu $a0, 3($s6) -/* 0035F4 800281F4 24430068 */ addiu $v1, $v0, 0x68 -/* 0035F8 800281F8 AE430000 */ sw $v1, ($s2) -/* 0035FC 800281FC AC500060 */ sw $s0, 0x60($v0) -/* 003600 80028200 AC400064 */ sw $zero, 0x64($v0) -/* 003604 80028204 00912025 */ or $a0, $a0, $s1 -/* 003608 80028208 AC44005C */ sw $a0, 0x5c($v0) -.L8002820C: -/* 00360C 8002820C 3C070400 */ lui $a3, 0x400 -/* 003610 80028210 34E70400 */ ori $a3, $a3, 0x400 -/* 003614 80028214 33060FFF */ andi $a2, $t8, 0xfff -/* 003618 80028218 27180018 */ addiu $t8, $t8, 0x18 -/* 00361C 8002821C 32850FFF */ andi $a1, $s4, 0xfff -/* 003620 80028220 26940018 */ addiu $s4, $s4, 0x18 -/* 003624 80028224 27390001 */ addiu $t9, $t9, 1 -/* 003628 80028228 8E430000 */ lw $v1, ($s2) -/* 00362C 8002822C 3C02800A */ lui $v0, 0x800a -/* 003630 80028230 8C42A5DC */ lw $v0, -0x5a24($v0) -/* 003634 80028234 0060202D */ daddu $a0, $v1, $zero -/* 003638 80028238 24630008 */ addiu $v1, $v1, 8 -/* 00363C 8002823C 00531021 */ addu $v0, $v0, $s3 -/* 003640 80028240 AE430000 */ sw $v1, ($s2) -/* 003644 80028244 8FAE0010 */ lw $t6, 0x10($sp) -/* 003648 80028248 26730F00 */ addiu $s3, $s3, 0xf00 -/* 00364C 8002824C AC820004 */ sw $v0, 4($a0) -/* 003650 80028250 24620008 */ addiu $v0, $v1, 8 -/* 003654 80028254 AC8E0000 */ sw $t6, ($a0) -/* 003658 80028258 3C0E0700 */ lui $t6, 0x700 -/* 00365C 8002825C AE420000 */ sw $v0, ($s2) -/* 003660 80028260 24620010 */ addiu $v0, $v1, 0x10 -/* 003664 80028264 AC6E0004 */ sw $t6, 4($v1) -/* 003668 80028268 3C0EE600 */ lui $t6, 0xe600 -/* 00366C 8002826C AC750000 */ sw $s5, ($v1) -/* 003670 80028270 AE420000 */ sw $v0, ($s2) -/* 003674 80028274 24620018 */ addiu $v0, $v1, 0x18 -/* 003678 80028278 AC6E0008 */ sw $t6, 8($v1) -/* 00367C 8002827C 3C0EF400 */ lui $t6, 0xf400 -/* 003680 80028280 AC60000C */ sw $zero, 0xc($v1) -/* 003684 80028284 AE420000 */ sw $v0, ($s2) -/* 003688 80028288 AC6E0010 */ sw $t6, 0x10($v1) -/* 00368C 8002828C 8FAE0014 */ lw $t6, 0x14($sp) -/* 003690 80028290 24620020 */ addiu $v0, $v1, 0x20 -/* 003694 80028294 AC6E0014 */ sw $t6, 0x14($v1) -/* 003698 80028298 AE420000 */ sw $v0, ($s2) -/* 00369C 8002829C 24620028 */ addiu $v0, $v1, 0x28 -/* 0036A0 800282A0 AC770018 */ sw $s7, 0x18($v1) -/* 0036A4 800282A4 AC60001C */ sw $zero, 0x1c($v1) -/* 0036A8 800282A8 AE420000 */ sw $v0, ($s2) -/* 0036AC 800282AC 24620030 */ addiu $v0, $v1, 0x30 -/* 0036B0 800282B0 3C0EF200 */ lui $t6, 0xf200 -/* 0036B4 800282B4 AC750020 */ sw $s5, 0x20($v1) -/* 0036B8 800282B8 AC600024 */ sw $zero, 0x24($v1) -/* 0036BC 800282BC AE420000 */ sw $v0, ($s2) -/* 0036C0 800282C0 24620038 */ addiu $v0, $v1, 0x38 -/* 0036C4 800282C4 AC6E0028 */ sw $t6, 0x28($v1) -/* 0036C8 800282C8 3C0EE450 */ lui $t6, 0xe450 -/* 0036CC 800282CC 00AE2825 */ or $a1, $a1, $t6 -/* 0036D0 800282D0 AC7E002C */ sw $fp, 0x2c($v1) -/* 0036D4 800282D4 AE420000 */ sw $v0, ($s2) -/* 0036D8 800282D8 24620040 */ addiu $v0, $v1, 0x40 -/* 0036DC 800282DC AC650030 */ sw $a1, 0x30($v1) -/* 0036E0 800282E0 AC660034 */ sw $a2, 0x34($v1) -/* 0036E4 800282E4 AE420000 */ sw $v0, ($s2) -/* 0036E8 800282E8 3C02E100 */ lui $v0, 0xe100 -/* 0036EC 800282EC AC620038 */ sw $v0, 0x38($v1) -/* 0036F0 800282F0 3C02FFE0 */ lui $v0, 0xffe0 -/* 0036F4 800282F4 AC62003C */ sw $v0, 0x3c($v1) -/* 0036F8 800282F8 24620048 */ addiu $v0, $v1, 0x48 -/* 0036FC 800282FC AE420000 */ sw $v0, ($s2) -/* 003700 80028300 3C02F100 */ lui $v0, 0xf100 -/* 003704 80028304 AC620040 */ sw $v0, 0x40($v1) -/* 003708 80028308 24620050 */ addiu $v0, $v1, 0x50 -/* 00370C 8002830C AC670044 */ sw $a3, 0x44($v1) -/* 003710 80028310 AE420000 */ sw $v0, ($s2) -/* 003714 80028314 2B220028 */ slti $v0, $t9, 0x28 -/* 003718 80028318 AC770048 */ sw $s7, 0x48($v1) -/* 00371C 8002831C 1440FFBB */ bnez $v0, .L8002820C -/* 003720 80028320 AC60004C */ sw $zero, 0x4c($v1) -/* 003724 80028324 0800A1E4 */ j .L80028790 -/* 003728 80028328 00000000 */ nop - -.L8002832C: -/* 00372C 8002832C 3C02800A */ lui $v0, 0x800a -/* 003730 80028330 8C42A650 */ lw $v0, -0x59b0($v0) -/* 003734 80028334 30420008 */ andi $v0, $v0, 8 -/* 003738 80028338 1040000E */ beqz $v0, .L80028374 -/* 00373C 8002833C 3C05FF10 */ lui $a1, 0xff10 -/* 003740 80028340 34A5013F */ ori $a1, $a1, 0x13f -/* 003744 80028344 3C03800A */ lui $v1, 0x800a -/* 003748 80028348 2463A66C */ addiu $v1, $v1, -0x5994 -/* 00374C 8002834C 8C620000 */ lw $v0, ($v1) -/* 003750 80028350 3C04800A */ lui $a0, 0x800a -/* 003754 80028354 8C84A64C */ lw $a0, -0x59b4($a0) -/* 003758 80028358 0040802D */ daddu $s0, $v0, $zero -/* 00375C 8002835C 24420008 */ addiu $v0, $v0, 8 -/* 003760 80028360 AC620000 */ sw $v0, ($v1) -/* 003764 80028364 0C0187A4 */ jal osVirtualToPhysical -/* 003768 80028368 AE050000 */ sw $a1, ($s0) -/* 00376C 8002836C 0800A1ED */ j .L800287B4 -/* 003770 80028370 AE020004 */ sw $v0, 4($s0) - -.L80028374: -/* 003774 80028374 3C06E300 */ lui $a2, 0xe300 -/* 003778 80028378 34C60A01 */ ori $a2, $a2, 0xa01 -/* 00377C 8002837C 3C07E200 */ lui $a3, 0xe200 -/* 003780 80028380 34E7001C */ ori $a3, $a3, 0x1c -/* 003784 80028384 3C08FF10 */ lui $t0, 0xff10 -/* 003788 80028388 3508013F */ ori $t0, $t0, 0x13f -/* 00378C 8002838C 3C09FFFC */ lui $t1, 0xfffc -/* 003790 80028390 3529FFFC */ ori $t1, $t1, 0xfffc -/* 003794 80028394 3C0AF64F */ lui $t2, 0xf64f -/* 003798 80028398 354AC3BC */ ori $t2, $t2, 0xc3bc -/* 00379C 8002839C 3C11800A */ lui $s1, 0x800a -/* 0037A0 800283A0 2631A66C */ addiu $s1, $s1, -0x5994 -/* 0037A4 800283A4 3C02FE00 */ lui $v0, 0xfe00 -/* 0037A8 800283A8 8E300000 */ lw $s0, ($s1) -/* 0037AC 800283AC 3C04800A */ lui $a0, 0x800a -/* 0037B0 800283B0 8C84A64C */ lw $a0, -0x59b4($a0) -/* 0037B4 800283B4 0200282D */ daddu $a1, $s0, $zero -/* 0037B8 800283B8 26100008 */ addiu $s0, $s0, 8 -/* 0037BC 800283BC AE300000 */ sw $s0, ($s1) -/* 0037C0 800283C0 3C03800A */ lui $v1, 0x800a -/* 0037C4 800283C4 8C63A5DC */ lw $v1, -0x5a24($v1) -/* 0037C8 800283C8 3C12F700 */ lui $s2, 0xf700 -/* 0037CC 800283CC ACA20000 */ sw $v0, ($a1) -/* 0037D0 800283D0 3C028000 */ lui $v0, 0x8000 -/* 0037D4 800283D4 00621821 */ addu $v1, $v1, $v0 -/* 0037D8 800283D8 26020008 */ addiu $v0, $s0, 8 -/* 0037DC 800283DC ACA30004 */ sw $v1, 4($a1) -/* 0037E0 800283E0 AE220000 */ sw $v0, ($s1) -/* 0037E4 800283E4 3C020030 */ lui $v0, 0x30 -/* 0037E8 800283E8 AE020004 */ sw $v0, 4($s0) -/* 0037EC 800283EC 26020010 */ addiu $v0, $s0, 0x10 -/* 0037F0 800283F0 AE060000 */ sw $a2, ($s0) -/* 0037F4 800283F4 AE220000 */ sw $v0, ($s1) -/* 0037F8 800283F8 26020018 */ addiu $v0, $s0, 0x18 -/* 0037FC 800283FC AE070008 */ sw $a3, 8($s0) -/* 003800 80028400 AE00000C */ sw $zero, 0xc($s0) -/* 003804 80028404 AE220000 */ sw $v0, ($s1) -/* 003808 80028408 26020020 */ addiu $v0, $s0, 0x20 -/* 00380C 8002840C AE080010 */ sw $t0, 0x10($s0) -/* 003810 80028410 AE030014 */ sw $v1, 0x14($s0) -/* 003814 80028414 AE220000 */ sw $v0, ($s1) -/* 003818 80028418 26020028 */ addiu $v0, $s0, 0x28 -/* 00381C 8002841C AE120018 */ sw $s2, 0x18($s0) -/* 003820 80028420 AE09001C */ sw $t1, 0x1c($s0) -/* 003824 80028424 AE220000 */ sw $v0, ($s1) -/* 003828 80028428 26020030 */ addiu $v0, $s0, 0x30 -/* 00382C 8002842C AE0A0020 */ sw $t2, 0x20($s0) -/* 003830 80028430 AE000024 */ sw $zero, 0x24($s0) -/* 003834 80028434 AE220000 */ sw $v0, ($s1) -/* 003838 80028438 3C02E700 */ lui $v0, 0xe700 -/* 00383C 8002843C AE020028 */ sw $v0, 0x28($s0) -/* 003840 80028440 26020038 */ addiu $v0, $s0, 0x38 -/* 003844 80028444 AE00002C */ sw $zero, 0x2c($s0) -/* 003848 80028448 AE220000 */ sw $v0, ($s1) -/* 00384C 8002844C 0C0187A4 */ jal osVirtualToPhysical -/* 003850 80028450 AE080030 */ sw $t0, 0x30($s0) -/* 003854 80028454 8E230000 */ lw $v1, ($s1) -/* 003858 80028458 AE020034 */ sw $v0, 0x34($s0) -/* 00385C 8002845C 0060282D */ daddu $a1, $v1, $zero -/* 003860 80028460 ACB20000 */ sw $s2, ($a1) -/* 003864 80028464 8664002C */ lh $a0, 0x2c($s3) -/* 003868 80028468 24630008 */ addiu $v1, $v1, 8 -/* 00386C 8002846C AE230000 */ sw $v1, ($s1) -/* 003870 80028470 8663002E */ lh $v1, 0x2e($s3) -/* 003874 80028474 96620030 */ lhu $v0, 0x30($s3) -/* 003878 80028478 00042200 */ sll $a0, $a0, 8 -/* 00387C 8002847C 3084F800 */ andi $a0, $a0, 0xf800 -/* 003880 80028480 000318C0 */ sll $v1, $v1, 3 -/* 003884 80028484 306307C0 */ andi $v1, $v1, 0x7c0 -/* 003888 80028488 00832025 */ or $a0, $a0, $v1 -/* 00388C 8002848C 00021082 */ srl $v0, $v0, 2 -/* 003890 80028490 3042003E */ andi $v0, $v0, 0x3e -/* 003894 80028494 00822025 */ or $a0, $a0, $v0 -/* 003898 80028498 34820001 */ ori $v0, $a0, 1 -/* 00389C 8002849C 00021400 */ sll $v0, $v0, 0x10 -/* 0038A0 800284A0 34420001 */ ori $v0, $v0, 1 -/* 0038A4 800284A4 3C038007 */ lui $v1, 0x8007 -/* 0038A8 800284A8 8C63419C */ lw $v1, 0x419c($v1) -/* 0038AC 800284AC 00441025 */ or $v0, $v0, $a0 -/* 0038B0 800284B0 ACA20004 */ sw $v0, 4($a1) -/* 0038B4 800284B4 8470014A */ lh $s0, 0x14a($v1) -/* 0038B8 800284B8 8462014E */ lh $v0, 0x14e($v1) -/* 0038BC 800284BC 8471014C */ lh $s1, 0x14c($v1) -/* 0038C0 800284C0 0202A021 */ addu $s4, $s0, $v0 -/* 0038C4 800284C4 84620150 */ lh $v0, 0x150($v1) -/* 0038C8 800284C8 8663000E */ lh $v1, 0xe($s3) -/* 0038CC 800284CC 02229021 */ addu $s2, $s1, $v0 -/* 0038D0 800284D0 0203102A */ slt $v0, $s0, $v1 -/* 0038D4 800284D4 54400001 */ bnel $v0, $zero, .L800284DC -/* 0038D8 800284D8 0060802D */ daddu $s0, $v1, $zero -.L800284DC: -/* 0038DC 800284DC 86640010 */ lh $a0, 0x10($s3) -/* 0038E0 800284E0 0224102A */ slt $v0, $s1, $a0 -/* 0038E4 800284E4 54400001 */ bnel $v0, $zero, .L800284EC -/* 0038E8 800284E8 0080882D */ daddu $s1, $a0, $zero -.L800284EC: -/* 0038EC 800284EC 8662000A */ lh $v0, 0xa($s3) -/* 0038F0 800284F0 00621821 */ addu $v1, $v1, $v0 -/* 0038F4 800284F4 0074102A */ slt $v0, $v1, $s4 -/* 0038F8 800284F8 54400001 */ bnel $v0, $zero, .L80028500 -/* 0038FC 800284FC 0060A02D */ daddu $s4, $v1, $zero -.L80028500: -/* 003900 80028500 8662000C */ lh $v0, 0xc($s3) -/* 003904 80028504 00821821 */ addu $v1, $a0, $v0 -/* 003908 80028508 0072102A */ slt $v0, $v1, $s2 -/* 00390C 8002850C 54400001 */ bnel $v0, $zero, .L80028514 -/* 003910 80028510 0060902D */ daddu $s2, $v1, $zero -.L80028514: -/* 003914 80028514 06020001 */ bltzl $s0, .L8002851C -/* 003918 80028518 0000802D */ daddu $s0, $zero, $zero -.L8002851C: -/* 00391C 8002851C 06220001 */ bltzl $s1, .L80028524 -/* 003920 80028520 0000882D */ daddu $s1, $zero, $zero -.L80028524: -/* 003924 80028524 5A800001 */ blezl $s4, .L8002852C -/* 003928 80028528 24140001 */ addiu $s4, $zero, 1 -.L8002852C: -/* 00392C 8002852C 5A400001 */ blezl $s2, .L80028534 -/* 003930 80028530 24120001 */ addiu $s2, $zero, 1 -.L80028534: -/* 003934 80028534 2A020140 */ slti $v0, $s0, 0x140 -/* 003938 80028538 50400001 */ beql $v0, $zero, .L80028540 -/* 00393C 8002853C 2410013F */ addiu $s0, $zero, 0x13f -.L80028540: -/* 003940 80028540 2A2200F0 */ slti $v0, $s1, 0xf0 -/* 003944 80028544 50400001 */ beql $v0, $zero, .L8002854C -/* 003948 80028548 241100EF */ addiu $s1, $zero, 0xef -.L8002854C: -/* 00394C 8002854C 2A820141 */ slti $v0, $s4, 0x141 -/* 003950 80028550 50400001 */ beql $v0, $zero, .L80028558 -/* 003954 80028554 24140140 */ addiu $s4, $zero, 0x140 -.L80028558: -/* 003958 80028558 2A4200F1 */ slti $v0, $s2, 0xf1 -/* 00395C 8002855C 50400001 */ beql $v0, $zero, .L80028564 -/* 003960 80028560 241200F0 */ addiu $s2, $zero, 0xf0 -.L80028564: -/* 003964 80028564 3C028007 */ lui $v0, 0x8007 -/* 003968 80028568 8C42419C */ lw $v0, 0x419c($v0) -/* 00396C 8002856C 94420148 */ lhu $v0, 0x148($v0) -/* 003970 80028570 30420001 */ andi $v0, $v0, 1 -/* 003974 80028574 14400017 */ bnez $v0, .L800285D4 -/* 003978 80028578 3C04F600 */ lui $a0, 0xf600 -/* 00397C 8002857C 3C03800A */ lui $v1, 0x800a -/* 003980 80028580 2463A66C */ addiu $v1, $v1, -0x5994 -/* 003984 80028584 8C620000 */ lw $v0, ($v1) -/* 003988 80028588 0040282D */ daddu $a1, $v0, $zero -/* 00398C 8002858C 24420008 */ addiu $v0, $v0, 8 -/* 003990 80028590 AC620000 */ sw $v0, ($v1) -/* 003994 80028594 2683FFFF */ addiu $v1, $s4, -1 -/* 003998 80028598 306303FF */ andi $v1, $v1, 0x3ff -/* 00399C 8002859C 00031B80 */ sll $v1, $v1, 0xe -/* 0039A0 800285A0 2642FFFF */ addiu $v0, $s2, -1 -/* 0039A4 800285A4 304203FF */ andi $v0, $v0, 0x3ff -/* 0039A8 800285A8 00021080 */ sll $v0, $v0, 2 -/* 0039AC 800285AC 00441025 */ or $v0, $v0, $a0 -/* 0039B0 800285B0 00621825 */ or $v1, $v1, $v0 -/* 0039B4 800285B4 ACA30000 */ sw $v1, ($a1) -/* 0039B8 800285B8 320303FF */ andi $v1, $s0, 0x3ff -/* 0039BC 800285BC 00031B80 */ sll $v1, $v1, 0xe -/* 0039C0 800285C0 322203FF */ andi $v0, $s1, 0x3ff -/* 0039C4 800285C4 00021080 */ sll $v0, $v0, 2 -/* 0039C8 800285C8 00621825 */ or $v1, $v1, $v0 -/* 0039CC 800285CC 0800A177 */ j .L800285DC -/* 0039D0 800285D0 ACA30004 */ sw $v1, 4($a1) - -.L800285D4: -/* 0039D4 800285D4 0C0517B0 */ jal func_80145EC0 -/* 0039D8 800285D8 00000000 */ nop -.L800285DC: -/* 0039DC 800285DC 3C04E300 */ lui $a0, 0xe300 -/* 0039E0 800285E0 34840A01 */ ori $a0, $a0, 0xa01 -/* 0039E4 800285E4 3C05E200 */ lui $a1, 0xe200 -/* 0039E8 800285E8 34A5001C */ ori $a1, $a1, 0x1c -/* 0039EC 800285EC 3C060001 */ lui $a2, 1 -/* 0039F0 800285F0 3C08800A */ lui $t0, 0x800a -/* 0039F4 800285F4 2508A66C */ addiu $t0, $t0, -0x5994 -/* 0039F8 800285F8 34C60001 */ ori $a2, $a2, 1 -/* 0039FC 800285FC 8D070000 */ lw $a3, ($t0) -/* 003A00 80028600 3C03E700 */ lui $v1, 0xe700 -/* 003A04 80028604 00E0102D */ daddu $v0, $a3, $zero -/* 003A08 80028608 24E70008 */ addiu $a3, $a3, 8 -/* 003A0C 8002860C AD070000 */ sw $a3, ($t0) -/* 003A10 80028610 AC430000 */ sw $v1, ($v0) -/* 003A14 80028614 AC400004 */ sw $zero, 4($v0) -/* 003A18 80028618 24E20008 */ addiu $v0, $a3, 8 -/* 003A1C 8002861C AD020000 */ sw $v0, ($t0) -/* 003A20 80028620 3C020030 */ lui $v0, 0x30 -/* 003A24 80028624 ACE20004 */ sw $v0, 4($a3) -/* 003A28 80028628 24E20010 */ addiu $v0, $a3, 0x10 -/* 003A2C 8002862C ACE40000 */ sw $a0, ($a3) -/* 003A30 80028630 AD020000 */ sw $v0, ($t0) -/* 003A34 80028634 24E20018 */ addiu $v0, $a3, 0x18 -/* 003A38 80028638 ACE50008 */ sw $a1, 8($a3) -/* 003A3C 8002863C ACE0000C */ sw $zero, 0xc($a3) -/* 003A40 80028640 AD020000 */ sw $v0, ($t0) -/* 003A44 80028644 3C02F700 */ lui $v0, 0xf700 -/* 003A48 80028648 ACE20010 */ sw $v0, 0x10($a3) -/* 003A4C 8002864C 24E20020 */ addiu $v0, $a3, 0x20 -/* 003A50 80028650 ACE60014 */ sw $a2, 0x14($a3) -/* 003A54 80028654 AD020000 */ sw $v0, ($t0) -/* 003A58 80028658 ACE30018 */ sw $v1, 0x18($a3) -/* 003A5C 8002865C 1A20000F */ blez $s1, .L8002869C -/* 003A60 80028660 ACE0001C */ sw $zero, 0x1c($a3) -/* 003A64 80028664 3C03F64F */ lui $v1, 0xf64f -/* 003A68 80028668 3463C000 */ ori $v1, $v1, 0xc000 -/* 003A6C 8002866C 24E20028 */ addiu $v0, $a3, 0x28 -/* 003A70 80028670 AD020000 */ sw $v0, ($t0) -/* 003A74 80028674 2622FFFF */ addiu $v0, $s1, -1 -/* 003A78 80028678 304203FF */ andi $v0, $v0, 0x3ff -/* 003A7C 8002867C 00021080 */ sll $v0, $v0, 2 -/* 003A80 80028680 00431025 */ or $v0, $v0, $v1 -/* 003A84 80028684 ACE20020 */ sw $v0, 0x20($a3) -/* 003A88 80028688 24E20030 */ addiu $v0, $a3, 0x30 -/* 003A8C 8002868C ACE00024 */ sw $zero, 0x24($a3) -/* 003A90 80028690 AD020000 */ sw $v0, ($t0) -/* 003A94 80028694 ACE00028 */ sw $zero, 0x28($a3) -/* 003A98 80028698 ACE0002C */ sw $zero, 0x2c($a3) -.L8002869C: -/* 003A9C 8002869C 1A000015 */ blez $s0, .L800286F4 -/* 003AA0 800286A0 2603FFFF */ addiu $v1, $s0, -1 -/* 003AA4 800286A4 306303FF */ andi $v1, $v1, 0x3ff -/* 003AA8 800286A8 00031B80 */ sll $v1, $v1, 0xe -/* 003AAC 800286AC 2642FFFF */ addiu $v0, $s2, -1 -/* 003AB0 800286B0 304203FF */ andi $v0, $v0, 0x3ff -/* 003AB4 800286B4 00021080 */ sll $v0, $v0, 2 -/* 003AB8 800286B8 3C04F600 */ lui $a0, 0xf600 -/* 003ABC 800286BC 00441025 */ or $v0, $v0, $a0 -/* 003AC0 800286C0 00621825 */ or $v1, $v1, $v0 -/* 003AC4 800286C4 322203FF */ andi $v0, $s1, 0x3ff -/* 003AC8 800286C8 8D050000 */ lw $a1, ($t0) -/* 003ACC 800286CC 00021080 */ sll $v0, $v0, 2 -/* 003AD0 800286D0 00A0302D */ daddu $a2, $a1, $zero -/* 003AD4 800286D4 24A50008 */ addiu $a1, $a1, 8 -/* 003AD8 800286D8 AD050000 */ sw $a1, ($t0) -/* 003ADC 800286DC ACC20004 */ sw $v0, 4($a2) -/* 003AE0 800286E0 24A20008 */ addiu $v0, $a1, 8 -/* 003AE4 800286E4 ACC30000 */ sw $v1, ($a2) -/* 003AE8 800286E8 AD020000 */ sw $v0, ($t0) -/* 003AEC 800286EC ACA00000 */ sw $zero, ($a1) -/* 003AF0 800286F0 ACA00004 */ sw $zero, 4($a1) -.L800286F4: -/* 003AF4 800286F4 2A820140 */ slti $v0, $s4, 0x140 -/* 003AF8 800286F8 10400015 */ beqz $v0, .L80028750 -/* 003AFC 800286FC 3C03F64F */ lui $v1, 0xf64f -/* 003B00 80028700 3463C000 */ ori $v1, $v1, 0xc000 -/* 003B04 80028704 2642FFFF */ addiu $v0, $s2, -1 -/* 003B08 80028708 304203FF */ andi $v0, $v0, 0x3ff -/* 003B0C 8002870C 00021080 */ sll $v0, $v0, 2 -/* 003B10 80028710 00431025 */ or $v0, $v0, $v1 -/* 003B14 80028714 328303FF */ andi $v1, $s4, 0x3ff -/* 003B18 80028718 8D040000 */ lw $a0, ($t0) -/* 003B1C 8002871C 00031B80 */ sll $v1, $v1, 0xe -/* 003B20 80028720 0080282D */ daddu $a1, $a0, $zero -/* 003B24 80028724 24840008 */ addiu $a0, $a0, 8 -/* 003B28 80028728 AD040000 */ sw $a0, ($t0) -/* 003B2C 8002872C ACA20000 */ sw $v0, ($a1) -/* 003B30 80028730 322203FF */ andi $v0, $s1, 0x3ff -/* 003B34 80028734 00021080 */ sll $v0, $v0, 2 -/* 003B38 80028738 00621825 */ or $v1, $v1, $v0 -/* 003B3C 8002873C 24820008 */ addiu $v0, $a0, 8 -/* 003B40 80028740 ACA30004 */ sw $v1, 4($a1) -/* 003B44 80028744 AD020000 */ sw $v0, ($t0) -/* 003B48 80028748 AC800000 */ sw $zero, ($a0) -/* 003B4C 8002874C AC800004 */ sw $zero, 4($a0) -.L80028750: -/* 003B50 80028750 2A4200F0 */ slti $v0, $s2, 0xf0 -/* 003B54 80028754 1040000E */ beqz $v0, .L80028790 -/* 003B58 80028758 3C02F64F */ lui $v0, 0xf64f -/* 003B5C 8002875C 8D030000 */ lw $v1, ($t0) -/* 003B60 80028760 3442C3BC */ ori $v0, $v0, 0xc3bc -/* 003B64 80028764 0060202D */ daddu $a0, $v1, $zero -/* 003B68 80028768 24630008 */ addiu $v1, $v1, 8 -/* 003B6C 8002876C AD030000 */ sw $v1, ($t0) -/* 003B70 80028770 AC820000 */ sw $v0, ($a0) -/* 003B74 80028774 324203FF */ andi $v0, $s2, 0x3ff -/* 003B78 80028778 00021080 */ sll $v0, $v0, 2 -/* 003B7C 8002877C AC820004 */ sw $v0, 4($a0) -/* 003B80 80028780 24620008 */ addiu $v0, $v1, 8 -/* 003B84 80028784 AD020000 */ sw $v0, ($t0) -/* 003B88 80028788 AC600000 */ sw $zero, ($v1) -/* 003B8C 8002878C AC600004 */ sw $zero, 4($v1) -.L80028790: -/* 003B90 80028790 3C03800A */ lui $v1, 0x800a -/* 003B94 80028794 2463A66C */ addiu $v1, $v1, -0x5994 -/* 003B98 80028798 8C620000 */ lw $v0, ($v1) -/* 003B9C 8002879C 0040202D */ daddu $a0, $v0, $zero -/* 003BA0 800287A0 24420008 */ addiu $v0, $v0, 8 -/* 003BA4 800287A4 AC620000 */ sw $v0, ($v1) -/* 003BA8 800287A8 3C02E700 */ lui $v0, 0xe700 -/* 003BAC 800287AC AC820000 */ sw $v0, ($a0) -/* 003BB0 800287B0 AC800004 */ sw $zero, 4($a0) -.L800287B4: -/* 003BB4 800287B4 8FBF0044 */ lw $ra, 0x44($sp) -/* 003BB8 800287B8 8FBE0040 */ lw $fp, 0x40($sp) -/* 003BBC 800287BC 8FB7003C */ lw $s7, 0x3c($sp) -/* 003BC0 800287C0 8FB60038 */ lw $s6, 0x38($sp) -/* 003BC4 800287C4 8FB50034 */ lw $s5, 0x34($sp) -/* 003BC8 800287C8 8FB40030 */ lw $s4, 0x30($sp) -/* 003BCC 800287CC 8FB3002C */ lw $s3, 0x2c($sp) -/* 003BD0 800287D0 8FB20028 */ lw $s2, 0x28($sp) -/* 003BD4 800287D4 8FB10024 */ lw $s1, 0x24($sp) -/* 003BD8 800287D8 8FB00020 */ lw $s0, 0x20($sp) -/* 003BDC 800287DC 03E00008 */ jr $ra -/* 003BE0 800287E0 27BD0048 */ addiu $sp, $sp, 0x48 - -/* 003BE4 800287E4 00000000 */ nop -/* 003BE8 800287E8 00000000 */ nop -/* 003BEC 800287EC 00000000 */ nop - -.set reorder diff --git a/papermario/asm/code_1b40_len_20b0/func_800269EC.s b/papermario/asm/code_1b40_len_20b0/func_800269EC.s new file mode 100644 index 0000000000..7ca5274c3e --- /dev/null +++ b/papermario/asm/code_1b40_len_20b0/func_800269EC.s @@ -0,0 +1,82 @@ +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches + +.include "globals.inc" + +func_800269EC: +/* 001DEC 800269EC 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 001DF0 800269F0 AFB20018 */ sw $s2, 0x18($sp) +/* 001DF4 800269F4 3C120001 */ lui $s2, 1 +/* 001DF8 800269F8 36520630 */ ori $s2, $s2, 0x630 +/* 001DFC 800269FC AFB10014 */ sw $s1, 0x14($sp) +/* 001E00 80026A00 3C11800A */ lui $s1, 0x800a +/* 001E04 80026A04 2631A674 */ addiu $s1, $s1, -0x598c +/* 001E08 80026A08 3C048007 */ lui $a0, 0x8007 +/* 001E0C 80026A0C 8C8441F4 */ lw $a0, 0x41f4($a0) +/* 001E10 80026A10 3C058016 */ lui $a1, 0x8016 +/* 001E14 80026A14 24A54000 */ addiu $a1, $a1, 0x4000 +/* 001E18 80026A18 AFB00010 */ sw $s0, 0x10($sp) +/* 001E1C 80026A1C 3C10800A */ lui $s0, 0x800a +/* 001E20 80026A20 2610A66C */ addiu $s0, $s0, -0x5994 +/* 001E24 80026A24 AFBF001C */ sw $ra, 0x1c($sp) +/* 001E28 80026A28 00041040 */ sll $v0, $a0, 1 +/* 001E2C 80026A2C 00441021 */ addu $v0, $v0, $a0 +/* 001E30 80026A30 000210C0 */ sll $v0, $v0, 3 +/* 001E34 80026A34 00441021 */ addu $v0, $v0, $a0 +/* 001E38 80026A38 00021980 */ sll $v1, $v0, 6 +/* 001E3C 80026A3C 00431021 */ addu $v0, $v0, $v1 +/* 001E40 80026A40 00021080 */ sll $v0, $v0, 2 +/* 001E44 80026A44 00441023 */ subu $v0, $v0, $a0 +/* 001E48 80026A48 00021100 */ sll $v0, $v0, 4 +/* 001E4C 80026A4C 00451021 */ addu $v0, $v0, $a1 +/* 001E50 80026A50 AE220000 */ sw $v0, ($s1) +/* 001E54 80026A54 00521021 */ addu $v0, $v0, $s2 +/* 001E58 80026A58 0C009C68 */ jal func_800271A0 +/* 001E5C 80026A5C AE020000 */ sw $v0, ($s0) +/* 001E60 80026A60 0C009F84 */ jal func_80027E10 +/* 001E64 80026A64 00000000 */ nop +/* 001E68 80026A68 8E030000 */ lw $v1, ($s0) +/* 001E6C 80026A6C 3C02E900 */ lui $v0, 0xe900 +/* 001E70 80026A70 0060202D */ daddu $a0, $v1, $zero +/* 001E74 80026A74 24630008 */ addiu $v1, $v1, 8 +/* 001E78 80026A78 AE030000 */ sw $v1, ($s0) +/* 001E7C 80026A7C AC820000 */ sw $v0, ($a0) +/* 001E80 80026A80 24620008 */ addiu $v0, $v1, 8 +/* 001E84 80026A84 AC800004 */ sw $zero, 4($a0) +/* 001E88 80026A88 3C04DF00 */ lui $a0, 0xdf00 +/* 001E8C 80026A8C AE020000 */ sw $v0, ($s0) +/* 001E90 80026A90 AC640000 */ sw $a0, ($v1) +/* 001E94 80026A94 AC600004 */ sw $zero, 4($v1) +/* 001E98 80026A98 8E230000 */ lw $v1, ($s1) +/* 001E9C 80026A9C 00521023 */ subu $v0, $v0, $s2 +/* 001EA0 80026AA0 00431023 */ subu $v0, $v0, $v1 +/* 001EA4 80026AA4 000210C2 */ srl $v0, $v0, 3 +/* 001EA8 80026AA8 28420200 */ slti $v0, $v0, 0x200 +/* 001EAC 80026AAC 14400003 */ bnez $v0, .L80026ABC +/* 001EB0 80026AB0 3C040001 */ lui $a0, 1 +.L80026AB4: +/* 001EB4 80026AB4 08009AAD */ j .L80026AB4 +/* 001EB8 80026AB8 00000000 */ nop + +.L80026ABC: +/* 001EBC 80026ABC 34840630 */ ori $a0, $a0, 0x630 +/* 001EC0 80026AC0 0000302D */ daddu $a2, $zero, $zero +/* 001EC4 80026AC4 00C0382D */ daddu $a3, $a2, $zero +/* 001EC8 80026AC8 3C05800A */ lui $a1, 0x800a +/* 001ECC 80026ACC 8CA5A66C */ lw $a1, -0x5994($a1) +/* 001ED0 80026AD0 3C02800A */ lui $v0, 0x800a +/* 001ED4 80026AD4 8C42A674 */ lw $v0, -0x598c($v0) +/* 001ED8 80026AD8 00A42823 */ subu $a1, $a1, $a0 +/* 001EDC 80026ADC 00A22823 */ subu $a1, $a1, $v0 +/* 001EE0 80026AE0 000528C3 */ sra $a1, $a1, 3 +/* 001EE4 80026AE4 00442021 */ addu $a0, $v0, $a0 +/* 001EE8 80026AE8 0C00B331 */ jal nuGfxTaskStart +/* 001EEC 80026AEC 000528C0 */ sll $a1, $a1, 3 +/* 001EF0 80026AF0 8FBF001C */ lw $ra, 0x1c($sp) +/* 001EF4 80026AF4 8FB20018 */ lw $s2, 0x18($sp) +/* 001EF8 80026AF8 8FB10014 */ lw $s1, 0x14($sp) +/* 001EFC 80026AFC 8FB00010 */ lw $s0, 0x10($sp) +/* 001F00 80026B00 03E00008 */ jr $ra +/* 001F04 80026B04 27BD0020 */ addiu $sp, $sp, 0x20 + +.set reorder \ No newline at end of file diff --git a/papermario/asm/code_1b40_len_20b0/func_80027088.s b/papermario/asm/code_1b40_len_20b0/func_80027088.s new file mode 100644 index 0000000000..205fa19430 --- /dev/null +++ b/papermario/asm/code_1b40_len_20b0/func_80027088.s @@ -0,0 +1,80 @@ +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches + +.include "globals.inc" + +func_80027088: +/* 002488 80027088 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 00248C 8002708C 0080282D */ daddu $a1, $a0, $zero +/* 002490 80027090 2CA20005 */ sltiu $v0, $a1, 5 +/* 002494 80027094 1040003B */ beqz $v0, .L80027184 +/* 002498 80027098 AFBF0010 */ sw $ra, 0x10($sp) +/* 00249C 8002709C 00051080 */ sll $v0, $a1, 2 +/* 0024A0 800270A0 3C018009 */ lui $at, 0x8009 +/* 0024A4 800270A4 00220821 */ addu $at, $at, $v0 +/* 0024A8 800270A8 8C227D48 */ lw $v0, 0x7d48($at) +/* 0024AC 800270AC 00400008 */ jr $v0 +/* 0024B0 800270B0 00000000 */ nop +/* 0024B4 800270B4 24040003 */ addiu $a0, $zero, 3 +/* 0024B8 800270B8 3C02800A */ lui $v0, 0x800a +/* 0024BC 800270BC 2442A650 */ addiu $v0, $v0, -0x59b0 +/* 0024C0 800270C0 3C01800A */ lui $at, 0x800a +/* 0024C4 800270C4 AC25A5D8 */ sw $a1, -0x5a28($at) +/* 0024C8 800270C8 8C430000 */ lw $v1, ($v0) +/* 0024CC 800270CC 2405F0FF */ addiu $a1, $zero, -0xf01 +/* 0024D0 800270D0 00651824 */ and $v1, $v1, $a1 +/* 0024D4 800270D4 0C0B1192 */ jal resume_all_group +/* 0024D8 800270D8 AC430000 */ sw $v1, ($v0) +/* 0024DC 800270DC 08009C61 */ j .L80027184 +/* 0024E0 800270E0 00000000 */ nop + +/* 0024E4 800270E4 24040001 */ addiu $a0, $zero, 1 +/* 0024E8 800270E8 3C02800A */ lui $v0, 0x800a +/* 0024EC 800270EC 2442A650 */ addiu $v0, $v0, -0x59b0 +/* 0024F0 800270F0 3C01800A */ lui $at, 0x800a +/* 0024F4 800270F4 AC25A5D8 */ sw $a1, -0x5a28($at) +/* 0024F8 800270F8 8C430000 */ lw $v1, ($v0) +/* 0024FC 800270FC 2405F1FF */ addiu $a1, $zero, -0xe01 +/* 002500 80027100 00651824 */ and $v1, $v1, $a1 +/* 002504 80027104 08009C56 */ j .L80027158 +/* 002508 80027108 34630100 */ ori $v1, $v1, 0x100 + +/* 00250C 8002710C 24040002 */ addiu $a0, $zero, 2 +/* 002510 80027110 3C02800A */ lui $v0, 0x800a +/* 002514 80027114 2442A650 */ addiu $v0, $v0, -0x59b0 +/* 002518 80027118 3C01800A */ lui $at, 0x800a +/* 00251C 8002711C AC25A5D8 */ sw $a1, -0x5a28($at) +/* 002520 80027120 8C430000 */ lw $v1, ($v0) +/* 002524 80027124 2405F3FF */ addiu $a1, $zero, -0xc01 +/* 002528 80027128 00651824 */ and $v1, $v1, $a1 +/* 00252C 8002712C 08009C56 */ j .L80027158 +/* 002530 80027130 34630300 */ ori $v1, $v1, 0x300 + +/* 002534 80027134 24040002 */ addiu $a0, $zero, 2 +/* 002538 80027138 3C02800A */ lui $v0, 0x800a +/* 00253C 8002713C 2442A650 */ addiu $v0, $v0, -0x59b0 +/* 002540 80027140 3C01800A */ lui $at, 0x800a +/* 002544 80027144 AC25A5D8 */ sw $a1, -0x5a28($at) +/* 002548 80027148 8C430000 */ lw $v1, ($v0) +/* 00254C 8002714C 2405F7FF */ addiu $a1, $zero, -0x801 +/* 002550 80027150 00651824 */ and $v1, $v1, $a1 +/* 002554 80027154 34630700 */ ori $v1, $v1, 0x700 +.L80027158: +/* 002558 80027158 0C0B117A */ jal suspend_all_group +/* 00255C 8002715C AC430000 */ sw $v1, ($v0) +/* 002560 80027160 08009C61 */ j .L80027184 +/* 002564 80027164 00000000 */ nop + +/* 002568 80027168 3C03800A */ lui $v1, 0x800a +/* 00256C 8002716C 2463A650 */ addiu $v1, $v1, -0x59b0 +/* 002570 80027170 8C620000 */ lw $v0, ($v1) +/* 002574 80027174 3C01800A */ lui $at, 0x800a +/* 002578 80027178 AC25A5D8 */ sw $a1, -0x5a28($at) +/* 00257C 8002717C 34420F00 */ ori $v0, $v0, 0xf00 +/* 002580 80027180 AC620000 */ sw $v0, ($v1) +.L80027184: +/* 002584 80027184 8FBF0010 */ lw $ra, 0x10($sp) +/* 002588 80027188 03E00008 */ jr $ra +/* 00258C 8002718C 27BD0018 */ addiu $sp, $sp, 0x18 + +.set reorder \ No newline at end of file diff --git a/papermario/asm/code_1b40_len_20b0/func_80027190.s b/papermario/asm/code_1b40_len_20b0/func_80027190.s new file mode 100644 index 0000000000..090b2b03ea --- /dev/null +++ b/papermario/asm/code_1b40_len_20b0/func_80027190.s @@ -0,0 +1,12 @@ +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches + +.include "globals.inc" + +func_80027190: +/* 002590 80027190 3C02800A */ lui $v0, 0x800a +/* 002594 80027194 8C42A5D8 */ lw $v0, -0x5a28($v0) +/* 002598 80027198 03E00008 */ jr $ra +/* 00259C 8002719C 00000000 */ nop + +.set reorder diff --git a/papermario/asm/code_1b40_len_20b0/func_800271A0.s b/papermario/asm/code_1b40_len_20b0/func_800271A0.s new file mode 100644 index 0000000000..85b2ce9dd8 --- /dev/null +++ b/papermario/asm/code_1b40_len_20b0/func_800271A0.s @@ -0,0 +1,31 @@ +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches + +.include "globals.inc" + +func_800271A0: +/* 0025A0 800271A0 3C04800A */ lui $a0, 0x800a +/* 0025A4 800271A4 2484A66C */ addiu $a0, $a0, -0x5994 +/* 0025A8 800271A8 8C830000 */ lw $v1, ($a0) +/* 0025AC 800271AC 3C02DB06 */ lui $v0, 0xdb06 +/* 0025B0 800271B0 0060282D */ daddu $a1, $v1, $zero +/* 0025B4 800271B4 24630008 */ addiu $v1, $v1, 8 +/* 0025B8 800271B8 AC830000 */ sw $v1, ($a0) +/* 0025BC 800271BC ACA20000 */ sw $v0, ($a1) +/* 0025C0 800271C0 24620008 */ addiu $v0, $v1, 8 +/* 0025C4 800271C4 ACA00004 */ sw $zero, 4($a1) +/* 0025C8 800271C8 3C05DE00 */ lui $a1, 0xde00 +/* 0025CC 800271CC AC820000 */ sw $v0, ($a0) +/* 0025D0 800271D0 3C020007 */ lui $v0, 7 +/* 0025D4 800271D4 24424230 */ addiu $v0, $v0, 0x4230 +/* 0025D8 800271D8 AC620004 */ sw $v0, 4($v1) +/* 0025DC 800271DC 24620010 */ addiu $v0, $v1, 0x10 +/* 0025E0 800271E0 AC650000 */ sw $a1, ($v1) +/* 0025E4 800271E4 AC820000 */ sw $v0, ($a0) +/* 0025E8 800271E8 3C020007 */ lui $v0, 7 +/* 0025EC 800271EC 24424210 */ addiu $v0, $v0, 0x4210 +/* 0025F0 800271F0 AC650008 */ sw $a1, 8($v1) +/* 0025F4 800271F4 03E00008 */ jr $ra +/* 0025F8 800271F8 AC62000C */ sw $v0, 0xc($v1) + +.set reorder diff --git a/papermario/asm/code_1b40_len_20b0/func_800271FC.s b/papermario/asm/code_1b40_len_20b0/func_800271FC.s new file mode 100644 index 0000000000..253ca79e06 --- /dev/null +++ b/papermario/asm/code_1b40_len_20b0/func_800271FC.s @@ -0,0 +1,32 @@ +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches + +.include "globals.inc" + +func_800271FC: +/* 0025FC 800271FC 00061880 */ sll $v1, $a2, 2 +/* 002600 80027200 00661821 */ addu $v1, $v1, $a2 +/* 002604 80027204 00031980 */ sll $v1, $v1, 6 +/* 002608 80027208 00671821 */ addu $v1, $v1, $a3 +/* 00260C 8002720C 00031840 */ sll $v1, $v1, 1 +/* 002610 80027210 00652821 */ addu $a1, $v1, $a1 +/* 002614 80027214 00641821 */ addu $v1, $v1, $a0 +/* 002618 80027218 94A20000 */ lhu $v0, ($a1) +/* 00261C 8002721C 8FA50010 */ lw $a1, 0x10($sp) +/* 002620 80027220 00021082 */ srl $v0, $v0, 2 +/* 002624 80027224 3042000F */ andi $v0, $v0, 0xf +/* 002628 80027228 A0A20003 */ sb $v0, 3($a1) +/* 00262C 8002722C 94620000 */ lhu $v0, ($v1) +/* 002630 80027230 000212C2 */ srl $v0, $v0, 0xb +/* 002634 80027234 A0A20000 */ sb $v0, ($a1) +/* 002638 80027238 94620000 */ lhu $v0, ($v1) +/* 00263C 8002723C 00021182 */ srl $v0, $v0, 6 +/* 002640 80027240 3042001F */ andi $v0, $v0, 0x1f +/* 002644 80027244 A0A20001 */ sb $v0, 1($a1) +/* 002648 80027248 94620000 */ lhu $v0, ($v1) +/* 00264C 8002724C 00021042 */ srl $v0, $v0, 1 +/* 002650 80027250 3042001F */ andi $v0, $v0, 0x1f +/* 002654 80027254 03E00008 */ jr $ra +/* 002658 80027258 A0A20002 */ sb $v0, 2($a1) + +.set reorder \ No newline at end of file diff --git a/papermario/asm/code_1b40_len_20b0/func_8002725C.s b/papermario/asm/code_1b40_len_20b0/func_8002725C.s new file mode 100644 index 0000000000..c7b734c5bf --- /dev/null +++ b/papermario/asm/code_1b40_len_20b0/func_8002725C.s @@ -0,0 +1,274 @@ +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches + +.include "globals.inc" + +func_8002725C: +/* 00265C 8002725C 27BDFF88 */ addiu $sp, $sp, -0x78 +/* 002660 80027260 0080582D */ daddu $t3, $a0, $zero +/* 002664 80027264 AFA5007C */ sw $a1, 0x7c($sp) +/* 002668 80027268 0000282D */ daddu $a1, $zero, $zero +/* 00266C 8002726C 27A90018 */ addiu $t1, $sp, 0x18 +/* 002670 80027270 27A80038 */ addiu $t0, $sp, 0x38 +/* 002674 80027274 27A70058 */ addiu $a3, $sp, 0x58 +/* 002678 80027278 8BAC007C */ lwl $t4, 0x7c($sp) +/* 00267C 8002727C 9BAC007F */ lwr $t4, 0x7f($sp) +/* 002680 80027280 ABAC0008 */ swl $t4, 8($sp) +/* 002684 80027284 BBAC000B */ swr $t4, 0xb($sp) +/* 002688 80027288 8BAC007C */ lwl $t4, 0x7c($sp) +/* 00268C 8002728C 9BAC007F */ lwr $t4, 0x7f($sp) +/* 002690 80027290 ABAC0000 */ swl $t4, ($sp) +/* 002694 80027294 BBAC0003 */ swr $t4, 3($sp) +.L80027298: +/* 002698 80027298 01251021 */ addu $v0, $t1, $a1 +/* 00269C 8002729C 01051821 */ addu $v1, $t0, $a1 +/* 0026A0 800272A0 00E52021 */ addu $a0, $a3, $a1 +/* 0026A4 800272A4 24A50001 */ addiu $a1, $a1, 1 +/* 0026A8 800272A8 A0400000 */ sb $zero, ($v0) +/* 0026AC 800272AC 28A20020 */ slti $v0, $a1, 0x20 +/* 0026B0 800272B0 A0600000 */ sb $zero, ($v1) +/* 0026B4 800272B4 1440FFF8 */ bnez $v0, .L80027298 +/* 0026B8 800272B8 A0800000 */ sb $zero, ($a0) +/* 0026BC 800272BC 0000282D */ daddu $a1, $zero, $zero +/* 0026C0 800272C0 240A0008 */ addiu $t2, $zero, 8 +/* 0026C4 800272C4 27A90018 */ addiu $t1, $sp, 0x18 +/* 0026C8 800272C8 27A80038 */ addiu $t0, $sp, 0x38 +/* 0026CC 800272CC 27A70058 */ addiu $a3, $sp, 0x58 +/* 0026D0 800272D0 0160202D */ daddu $a0, $t3, $zero +.L800272D4: +/* 0026D4 800272D4 90820003 */ lbu $v0, 3($a0) +/* 0026D8 800272D8 144A0010 */ bne $v0, $t2, .L8002731C +/* 0026DC 800272DC 24A50001 */ addiu $a1, $a1, 1 +/* 0026E0 800272E0 90830000 */ lbu $v1, ($a0) +/* 0026E4 800272E4 01231821 */ addu $v1, $t1, $v1 +/* 0026E8 800272E8 90620000 */ lbu $v0, ($v1) +/* 0026EC 800272EC 24420001 */ addiu $v0, $v0, 1 +/* 0026F0 800272F0 A0620000 */ sb $v0, ($v1) +/* 0026F4 800272F4 90830001 */ lbu $v1, 1($a0) +/* 0026F8 800272F8 01031821 */ addu $v1, $t0, $v1 +/* 0026FC 800272FC 90620000 */ lbu $v0, ($v1) +/* 002700 80027300 24420001 */ addiu $v0, $v0, 1 +/* 002704 80027304 A0620000 */ sb $v0, ($v1) +/* 002708 80027308 90830002 */ lbu $v1, 2($a0) +/* 00270C 8002730C 00E31821 */ addu $v1, $a3, $v1 +/* 002710 80027310 90620000 */ lbu $v0, ($v1) +/* 002714 80027314 24420001 */ addiu $v0, $v0, 1 +/* 002718 80027318 A0620000 */ sb $v0, ($v1) +.L8002731C: +/* 00271C 8002731C 28A20006 */ slti $v0, $a1, 6 +/* 002720 80027320 1440FFEC */ bnez $v0, .L800272D4 +/* 002724 80027324 24840004 */ addiu $a0, $a0, 4 +/* 002728 80027328 0000282D */ daddu $a1, $zero, $zero +/* 00272C 8002732C 27A40018 */ addiu $a0, $sp, 0x18 +/* 002730 80027330 00851821 */ addu $v1, $a0, $a1 +.L80027334: +/* 002734 80027334 90620000 */ lbu $v0, ($v1) +/* 002738 80027338 50400004 */ beql $v0, $zero, .L8002734C +/* 00273C 8002733C 24A50001 */ addiu $a1, $a1, 1 +/* 002740 80027340 2442FFFF */ addiu $v0, $v0, -1 +/* 002744 80027344 08009CD6 */ j .L80027358 +/* 002748 80027348 A0620000 */ sb $v0, ($v1) + +.L8002734C: +/* 00274C 8002734C 28A20020 */ slti $v0, $a1, 0x20 +/* 002750 80027350 1440FFF8 */ bnez $v0, .L80027334 +/* 002754 80027354 00851821 */ addu $v1, $a0, $a1 +.L80027358: +/* 002758 80027358 28A20020 */ slti $v0, $a1, 0x20 +/* 00275C 8002735C 10400009 */ beqz $v0, .L80027384 +/* 002760 80027360 27A30018 */ addiu $v1, $sp, 0x18 +/* 002764 80027364 00651021 */ addu $v0, $v1, $a1 +.L80027368: +/* 002768 80027368 90420000 */ lbu $v0, ($v0) +/* 00276C 8002736C 14400005 */ bnez $v0, .L80027384 +/* 002770 80027370 00000000 */ nop +/* 002774 80027374 24A50001 */ addiu $a1, $a1, 1 +/* 002778 80027378 28A20020 */ slti $v0, $a1, 0x20 +/* 00277C 8002737C 1440FFFA */ bnez $v0, .L80027368 +/* 002780 80027380 00651021 */ addu $v0, $v1, $a1 +.L80027384: +/* 002784 80027384 93A20000 */ lbu $v0, ($sp) +/* 002788 80027388 00A2102A */ slt $v0, $a1, $v0 +/* 00278C 8002738C 54400001 */ bnel $v0, $zero, .L80027394 +/* 002790 80027390 A3A50000 */ sb $a1, ($sp) +.L80027394: +/* 002794 80027394 0000282D */ daddu $a1, $zero, $zero +/* 002798 80027398 27A40038 */ addiu $a0, $sp, 0x38 +/* 00279C 8002739C 00851821 */ addu $v1, $a0, $a1 +.L800273A0: +/* 0027A0 800273A0 90620000 */ lbu $v0, ($v1) +/* 0027A4 800273A4 50400004 */ beql $v0, $zero, .L800273B8 +/* 0027A8 800273A8 24A50001 */ addiu $a1, $a1, 1 +/* 0027AC 800273AC 2442FFFF */ addiu $v0, $v0, -1 +/* 0027B0 800273B0 08009CF1 */ j .L800273C4 +/* 0027B4 800273B4 A0620000 */ sb $v0, ($v1) + +.L800273B8: +/* 0027B8 800273B8 28A20020 */ slti $v0, $a1, 0x20 +/* 0027BC 800273BC 1440FFF8 */ bnez $v0, .L800273A0 +/* 0027C0 800273C0 00851821 */ addu $v1, $a0, $a1 +.L800273C4: +/* 0027C4 800273C4 28A20020 */ slti $v0, $a1, 0x20 +/* 0027C8 800273C8 10400009 */ beqz $v0, .L800273F0 +/* 0027CC 800273CC 27A30038 */ addiu $v1, $sp, 0x38 +/* 0027D0 800273D0 00651021 */ addu $v0, $v1, $a1 +.L800273D4: +/* 0027D4 800273D4 90420000 */ lbu $v0, ($v0) +/* 0027D8 800273D8 14400005 */ bnez $v0, .L800273F0 +/* 0027DC 800273DC 00000000 */ nop +/* 0027E0 800273E0 24A50001 */ addiu $a1, $a1, 1 +/* 0027E4 800273E4 28A20020 */ slti $v0, $a1, 0x20 +/* 0027E8 800273E8 1440FFFA */ bnez $v0, .L800273D4 +/* 0027EC 800273EC 00651021 */ addu $v0, $v1, $a1 +.L800273F0: +/* 0027F0 800273F0 93A20001 */ lbu $v0, 1($sp) +/* 0027F4 800273F4 00A2102A */ slt $v0, $a1, $v0 +/* 0027F8 800273F8 54400001 */ bnel $v0, $zero, .L80027400 +/* 0027FC 800273FC A3A50001 */ sb $a1, 1($sp) +.L80027400: +/* 002800 80027400 0000282D */ daddu $a1, $zero, $zero +/* 002804 80027404 27A40058 */ addiu $a0, $sp, 0x58 +/* 002808 80027408 00851821 */ addu $v1, $a0, $a1 +.L8002740C: +/* 00280C 8002740C 90620000 */ lbu $v0, ($v1) +/* 002810 80027410 50400004 */ beql $v0, $zero, .L80027424 +/* 002814 80027414 24A50001 */ addiu $a1, $a1, 1 +/* 002818 80027418 2442FFFF */ addiu $v0, $v0, -1 +/* 00281C 8002741C 08009D0C */ j .L80027430 +/* 002820 80027420 A0620000 */ sb $v0, ($v1) + +.L80027424: +/* 002824 80027424 28A20020 */ slti $v0, $a1, 0x20 +/* 002828 80027428 1440FFF8 */ bnez $v0, .L8002740C +/* 00282C 8002742C 00851821 */ addu $v1, $a0, $a1 +.L80027430: +/* 002830 80027430 28A20020 */ slti $v0, $a1, 0x20 +/* 002834 80027434 10400009 */ beqz $v0, .L8002745C +/* 002838 80027438 27A30058 */ addiu $v1, $sp, 0x58 +/* 00283C 8002743C 00651021 */ addu $v0, $v1, $a1 +.L80027440: +/* 002840 80027440 90420000 */ lbu $v0, ($v0) +/* 002844 80027444 14400005 */ bnez $v0, .L8002745C +/* 002848 80027448 00000000 */ nop +/* 00284C 8002744C 24A50001 */ addiu $a1, $a1, 1 +/* 002850 80027450 28A20020 */ slti $v0, $a1, 0x20 +/* 002854 80027454 1440FFFA */ bnez $v0, .L80027440 +/* 002858 80027458 00651021 */ addu $v0, $v1, $a1 +.L8002745C: +/* 00285C 8002745C 93A20002 */ lbu $v0, 2($sp) +/* 002860 80027460 00A2102A */ slt $v0, $a1, $v0 +/* 002864 80027464 54400001 */ bnel $v0, $zero, .L8002746C +/* 002868 80027468 A3A50002 */ sb $a1, 2($sp) +.L8002746C: +/* 00286C 8002746C 2405001F */ addiu $a1, $zero, 0x1f +/* 002870 80027470 27A30018 */ addiu $v1, $sp, 0x18 +/* 002874 80027474 00651021 */ addu $v0, $v1, $a1 +.L80027478: +/* 002878 80027478 90420000 */ lbu $v0, ($v0) +/* 00287C 8002747C 14400004 */ bnez $v0, .L80027490 +/* 002880 80027480 00000000 */ nop +/* 002884 80027484 24A5FFFF */ addiu $a1, $a1, -1 +/* 002888 80027488 04A1FFFB */ bgez $a1, .L80027478 +/* 00288C 8002748C 00651021 */ addu $v0, $v1, $a1 +.L80027490: +/* 002890 80027490 93A20008 */ lbu $v0, 8($sp) +/* 002894 80027494 0045102A */ slt $v0, $v0, $a1 +/* 002898 80027498 54400001 */ bnel $v0, $zero, .L800274A0 +/* 00289C 8002749C A3A50008 */ sb $a1, 8($sp) +.L800274A0: +/* 0028A0 800274A0 2405001F */ addiu $a1, $zero, 0x1f +/* 0028A4 800274A4 27A30038 */ addiu $v1, $sp, 0x38 +/* 0028A8 800274A8 00651021 */ addu $v0, $v1, $a1 +.L800274AC: +/* 0028AC 800274AC 90420000 */ lbu $v0, ($v0) +/* 0028B0 800274B0 14400004 */ bnez $v0, .L800274C4 +/* 0028B4 800274B4 00000000 */ nop +/* 0028B8 800274B8 24A5FFFF */ addiu $a1, $a1, -1 +/* 0028BC 800274BC 04A1FFFB */ bgez $a1, .L800274AC +/* 0028C0 800274C0 00651021 */ addu $v0, $v1, $a1 +.L800274C4: +/* 0028C4 800274C4 93A20009 */ lbu $v0, 9($sp) +/* 0028C8 800274C8 0045102A */ slt $v0, $v0, $a1 +/* 0028CC 800274CC 54400001 */ bnel $v0, $zero, .L800274D4 +/* 0028D0 800274D0 A3A50009 */ sb $a1, 9($sp) +.L800274D4: +/* 0028D4 800274D4 2405001F */ addiu $a1, $zero, 0x1f +/* 0028D8 800274D8 27A30058 */ addiu $v1, $sp, 0x58 +/* 0028DC 800274DC 00651021 */ addu $v0, $v1, $a1 +.L800274E0: +/* 0028E0 800274E0 90420000 */ lbu $v0, ($v0) +/* 0028E4 800274E4 14400004 */ bnez $v0, .L800274F8 +/* 0028E8 800274E8 00000000 */ nop +/* 0028EC 800274EC 24A5FFFF */ addiu $a1, $a1, -1 +/* 0028F0 800274F0 04A1FFFB */ bgez $a1, .L800274E0 +/* 0028F4 800274F4 00651021 */ addu $v0, $v1, $a1 +.L800274F8: +/* 0028F8 800274F8 93A2000A */ lbu $v0, 0xa($sp) +/* 0028FC 800274FC 0045102A */ slt $v0, $v0, $a1 +/* 002900 80027500 54400001 */ bnel $v0, $zero, .L80027508 +/* 002904 80027504 A3A5000A */ sb $a1, 0xa($sp) +.L80027508: +/* 002908 80027508 93A20008 */ lbu $v0, 8($sp) +/* 00290C 8002750C 93A30000 */ lbu $v1, ($sp) +/* 002910 80027510 93A4007C */ lbu $a0, 0x7c($sp) +/* 002914 80027514 00431021 */ addu $v0, $v0, $v1 +/* 002918 80027518 00441023 */ subu $v0, $v0, $a0 +/* 00291C 8002751C A3A20010 */ sb $v0, 0x10($sp) +/* 002920 80027520 93A20009 */ lbu $v0, 9($sp) +/* 002924 80027524 93A30001 */ lbu $v1, 1($sp) +/* 002928 80027528 93A4007D */ lbu $a0, 0x7d($sp) +/* 00292C 8002752C 00431021 */ addu $v0, $v0, $v1 +/* 002930 80027530 00441023 */ subu $v0, $v0, $a0 +/* 002934 80027534 A3A20011 */ sb $v0, 0x11($sp) +/* 002938 80027538 93A2000A */ lbu $v0, 0xa($sp) +/* 00293C 8002753C 93A30002 */ lbu $v1, 2($sp) +/* 002940 80027540 93A4007E */ lbu $a0, 0x7e($sp) +/* 002944 80027544 00431021 */ addu $v0, $v0, $v1 +/* 002948 80027548 00441023 */ subu $v0, $v0, $a0 +/* 00294C 8002754C A3A20012 */ sb $v0, 0x12($sp) +/* 002950 80027550 93A2007C */ lbu $v0, 0x7c($sp) +/* 002954 80027554 93A4007F */ lbu $a0, 0x7f($sp) +/* 002958 80027558 00440018 */ mult $v0, $a0 +/* 00295C 8002755C 24030008 */ addiu $v1, $zero, 8 +/* 002960 80027560 00002812 */ mflo $a1 +/* 002964 80027564 93A20010 */ lbu $v0, 0x10($sp) +/* 002968 80027568 00641823 */ subu $v1, $v1, $a0 +/* 00296C 8002756C 00430018 */ mult $v0, $v1 +/* 002970 80027570 00001012 */ mflo $v0 +/* 002974 80027574 00A21021 */ addu $v0, $a1, $v0 +/* 002978 80027578 000210C3 */ sra $v0, $v0, 3 +/* 00297C 8002757C A3A20010 */ sb $v0, 0x10($sp) +/* 002980 80027580 93A2007D */ lbu $v0, 0x7d($sp) +/* 002984 80027584 00440018 */ mult $v0, $a0 +/* 002988 80027588 00002812 */ mflo $a1 +/* 00298C 8002758C 93A20011 */ lbu $v0, 0x11($sp) +/* 002990 80027590 00000000 */ nop +/* 002994 80027594 00430018 */ mult $v0, $v1 +/* 002998 80027598 00001012 */ mflo $v0 +/* 00299C 8002759C 00A21021 */ addu $v0, $a1, $v0 +/* 0029A0 800275A0 000210C3 */ sra $v0, $v0, 3 +/* 0029A4 800275A4 A3A20011 */ sb $v0, 0x11($sp) +/* 0029A8 800275A8 93A2007E */ lbu $v0, 0x7e($sp) +/* 0029AC 800275AC 00440018 */ mult $v0, $a0 +/* 0029B0 800275B0 00002012 */ mflo $a0 +/* 0029B4 800275B4 93A20012 */ lbu $v0, 0x12($sp) +/* 0029B8 800275B8 00000000 */ nop +/* 0029BC 800275BC 00430018 */ mult $v0, $v1 +/* 0029C0 800275C0 00001012 */ mflo $v0 +/* 0029C4 800275C4 00821021 */ addu $v0, $a0, $v0 +/* 0029C8 800275C8 000210C3 */ sra $v0, $v0, 3 +/* 0029CC 800275CC A3A20012 */ sb $v0, 0x12($sp) +/* 0029D0 800275D0 93A20010 */ lbu $v0, 0x10($sp) +/* 0029D4 800275D4 93A40011 */ lbu $a0, 0x11($sp) +/* 0029D8 800275D8 93A30012 */ lbu $v1, 0x12($sp) +/* 0029DC 800275DC 000212C0 */ sll $v0, $v0, 0xb +/* 0029E0 800275E0 00042180 */ sll $a0, $a0, 6 +/* 0029E4 800275E4 00441021 */ addu $v0, $v0, $a0 +/* 0029E8 800275E8 00031840 */ sll $v1, $v1, 1 +/* 0029EC 800275EC 00431021 */ addu $v0, $v0, $v1 +/* 0029F0 800275F0 24420001 */ addiu $v0, $v0, 1 +/* 0029F4 800275F4 A4C20000 */ sh $v0, ($a2) +/* 0029F8 800275F8 03E00008 */ jr $ra +/* 0029FC 800275FC 27BD0078 */ addiu $sp, $sp, 0x78 + +.set reorder \ No newline at end of file diff --git a/papermario/asm/code_1b40_len_20b0/func_80027600.s b/papermario/asm/code_1b40_len_20b0/func_80027600.s new file mode 100644 index 0000000000..12fe5f7e75 --- /dev/null +++ b/papermario/asm/code_1b40_len_20b0/func_80027600.s @@ -0,0 +1,109 @@ +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches + +.include "globals.inc" + +func_80027600: +/* 002A00 80027600 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 002A04 80027604 0080502D */ daddu $t2, $a0, $zero +/* 002A08 80027608 0000302D */ daddu $a2, $zero, $zero +/* 002A0C 8002760C 27A90008 */ addiu $t1, $sp, 8 +/* 002A10 80027610 27A80028 */ addiu $t0, $sp, 0x28 +/* 002A14 80027614 27A70048 */ addiu $a3, $sp, 0x48 +.L80027618: +/* 002A18 80027618 01261021 */ addu $v0, $t1, $a2 +/* 002A1C 8002761C 01061821 */ addu $v1, $t0, $a2 +/* 002A20 80027620 00E62021 */ addu $a0, $a3, $a2 +/* 002A24 80027624 24C60001 */ addiu $a2, $a2, 1 +/* 002A28 80027628 A0400000 */ sb $zero, ($v0) +/* 002A2C 8002762C 28C20020 */ slti $v0, $a2, 0x20 +/* 002A30 80027630 A0600000 */ sb $zero, ($v1) +/* 002A34 80027634 1440FFF8 */ bnez $v0, .L80027618 +/* 002A38 80027638 A0800000 */ sb $zero, ($a0) +/* 002A3C 8002763C 0000302D */ daddu $a2, $zero, $zero +/* 002A40 80027640 27A90008 */ addiu $t1, $sp, 8 +/* 002A44 80027644 27A80028 */ addiu $t0, $sp, 0x28 +/* 002A48 80027648 27A70048 */ addiu $a3, $sp, 0x48 +/* 002A4C 8002764C 0140202D */ daddu $a0, $t2, $zero +.L80027650: +/* 002A50 80027650 90830000 */ lbu $v1, ($a0) +/* 002A54 80027654 01231821 */ addu $v1, $t1, $v1 +/* 002A58 80027658 90620000 */ lbu $v0, ($v1) +/* 002A5C 8002765C 24420001 */ addiu $v0, $v0, 1 +/* 002A60 80027660 A0620000 */ sb $v0, ($v1) +/* 002A64 80027664 90830001 */ lbu $v1, 1($a0) +/* 002A68 80027668 01031821 */ addu $v1, $t0, $v1 +/* 002A6C 8002766C 90620000 */ lbu $v0, ($v1) +/* 002A70 80027670 24420001 */ addiu $v0, $v0, 1 +/* 002A74 80027674 A0620000 */ sb $v0, ($v1) +/* 002A78 80027678 90830002 */ lbu $v1, 2($a0) +/* 002A7C 8002767C 24C60001 */ addiu $a2, $a2, 1 +/* 002A80 80027680 00E31821 */ addu $v1, $a3, $v1 +/* 002A84 80027684 90620000 */ lbu $v0, ($v1) +/* 002A88 80027688 24420001 */ addiu $v0, $v0, 1 +/* 002A8C 8002768C A0620000 */ sb $v0, ($v1) +/* 002A90 80027690 28C20009 */ slti $v0, $a2, 9 +/* 002A94 80027694 1440FFEE */ bnez $v0, .L80027650 +/* 002A98 80027698 24840004 */ addiu $a0, $a0, 4 +/* 002A9C 8002769C 0000182D */ daddu $v1, $zero, $zero +/* 002AA0 800276A0 0060302D */ daddu $a2, $v1, $zero +/* 002AA4 800276A4 27A40008 */ addiu $a0, $sp, 8 +/* 002AA8 800276A8 00861021 */ addu $v0, $a0, $a2 +.L800276AC: +/* 002AAC 800276AC 90420000 */ lbu $v0, ($v0) +/* 002AB0 800276B0 00621821 */ addu $v1, $v1, $v0 +/* 002AB4 800276B4 28620005 */ slti $v0, $v1, 5 +/* 002AB8 800276B8 50400006 */ beql $v0, $zero, .L800276D4 +/* 002ABC 800276BC A3A60000 */ sb $a2, ($sp) +/* 002AC0 800276C0 24C60001 */ addiu $a2, $a2, 1 +/* 002AC4 800276C4 28C20020 */ slti $v0, $a2, 0x20 +/* 002AC8 800276C8 1440FFF8 */ bnez $v0, .L800276AC +/* 002ACC 800276CC 00861021 */ addu $v0, $a0, $a2 +/* 002AD0 800276D0 A3A60000 */ sb $a2, ($sp) +.L800276D4: +/* 002AD4 800276D4 0000182D */ daddu $v1, $zero, $zero +/* 002AD8 800276D8 0060302D */ daddu $a2, $v1, $zero +/* 002ADC 800276DC 27A40028 */ addiu $a0, $sp, 0x28 +/* 002AE0 800276E0 00861021 */ addu $v0, $a0, $a2 +.L800276E4: +/* 002AE4 800276E4 90420000 */ lbu $v0, ($v0) +/* 002AE8 800276E8 00621821 */ addu $v1, $v1, $v0 +/* 002AEC 800276EC 28620005 */ slti $v0, $v1, 5 +/* 002AF0 800276F0 50400006 */ beql $v0, $zero, .L8002770C +/* 002AF4 800276F4 A3A60001 */ sb $a2, 1($sp) +/* 002AF8 800276F8 24C60001 */ addiu $a2, $a2, 1 +/* 002AFC 800276FC 28C20020 */ slti $v0, $a2, 0x20 +/* 002B00 80027700 1440FFF8 */ bnez $v0, .L800276E4 +/* 002B04 80027704 00861021 */ addu $v0, $a0, $a2 +/* 002B08 80027708 A3A60001 */ sb $a2, 1($sp) +.L8002770C: +/* 002B0C 8002770C 0000182D */ daddu $v1, $zero, $zero +/* 002B10 80027710 0060302D */ daddu $a2, $v1, $zero +/* 002B14 80027714 27A40048 */ addiu $a0, $sp, 0x48 +/* 002B18 80027718 00861021 */ addu $v0, $a0, $a2 +.L8002771C: +/* 002B1C 8002771C 90420000 */ lbu $v0, ($v0) +/* 002B20 80027720 00621821 */ addu $v1, $v1, $v0 +/* 002B24 80027724 28620005 */ slti $v0, $v1, 5 +/* 002B28 80027728 50400006 */ beql $v0, $zero, .L80027744 +/* 002B2C 8002772C A3A60002 */ sb $a2, 2($sp) +/* 002B30 80027730 24C60001 */ addiu $a2, $a2, 1 +/* 002B34 80027734 28C20020 */ slti $v0, $a2, 0x20 +/* 002B38 80027738 1440FFF8 */ bnez $v0, .L8002771C +/* 002B3C 8002773C 00861021 */ addu $v0, $a0, $a2 +/* 002B40 80027740 A3A60002 */ sb $a2, 2($sp) +.L80027744: +/* 002B44 80027744 30C300FF */ andi $v1, $a2, 0xff +/* 002B48 80027748 00031840 */ sll $v1, $v1, 1 +/* 002B4C 8002774C 93A20000 */ lbu $v0, ($sp) +/* 002B50 80027750 93A40001 */ lbu $a0, 1($sp) +/* 002B54 80027754 000212C0 */ sll $v0, $v0, 0xb +/* 002B58 80027758 00042180 */ sll $a0, $a0, 6 +/* 002B5C 8002775C 00441021 */ addu $v0, $v0, $a0 +/* 002B60 80027760 00431021 */ addu $v0, $v0, $v1 +/* 002B64 80027764 24420001 */ addiu $v0, $v0, 1 +/* 002B68 80027768 A4A20000 */ sh $v0, ($a1) +/* 002B6C 8002776C 03E00008 */ jr $ra +/* 002B70 80027770 27BD0068 */ addiu $sp, $sp, 0x68 + +.set reorder \ No newline at end of file diff --git a/papermario/asm/code_1b40_len_20b0/func_80027774.s b/papermario/asm/code_1b40_len_20b0/func_80027774.s new file mode 100644 index 0000000000..b52715612c --- /dev/null +++ b/papermario/asm/code_1b40_len_20b0/func_80027774.s @@ -0,0 +1,158 @@ +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches + +.include "globals.inc" + +func_80027774: +/* 002B74 80027774 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 002B78 80027778 AFB40058 */ sw $s4, 0x58($sp) +/* 002B7C 8002777C 0080A02D */ daddu $s4, $a0, $zero +/* 002B80 80027780 AFB5005C */ sw $s5, 0x5c($sp) +/* 002B84 80027784 00A0A82D */ daddu $s5, $a1, $zero +/* 002B88 80027788 AFB30054 */ sw $s3, 0x54($sp) +/* 002B8C 8002778C 24130001 */ addiu $s3, $zero, 1 +/* 002B90 80027790 27A80018 */ addiu $t0, $sp, 0x18 +/* 002B94 80027794 AFA80040 */ sw $t0, 0x40($sp) +/* 002B98 80027798 24080140 */ addiu $t0, $zero, 0x140 +/* 002B9C 8002779C AFBF006C */ sw $ra, 0x6c($sp) +/* 002BA0 800277A0 AFBE0068 */ sw $fp, 0x68($sp) +/* 002BA4 800277A4 AFB70064 */ sw $s7, 0x64($sp) +/* 002BA8 800277A8 AFB60060 */ sw $s6, 0x60($sp) +/* 002BAC 800277AC AFB20050 */ sw $s2, 0x50($sp) +/* 002BB0 800277B0 AFB1004C */ sw $s1, 0x4c($sp) +/* 002BB4 800277B4 AFB00048 */ sw $s0, 0x48($sp) +/* 002BB8 800277B8 AFA60078 */ sw $a2, 0x78($sp) +/* 002BBC 800277BC AFA80044 */ sw $t0, 0x44($sp) +.L800277C0: +/* 002BC0 800277C0 24120001 */ addiu $s2, $zero, 1 +/* 002BC4 800277C4 267EFFFF */ addiu $fp, $s3, -1 +/* 002BC8 800277C8 8FA80044 */ lw $t0, 0x44($sp) +/* 002BCC 800277CC 0272B821 */ addu $s7, $s3, $s2 +/* 002BD0 800277D0 0112B021 */ addu $s6, $t0, $s2 +/* 002BD4 800277D4 00161840 */ sll $v1, $s6, 1 +.L800277D8: +/* 002BD8 800277D8 00752021 */ addu $a0, $v1, $s5 +/* 002BDC 800277DC 9482FFFE */ lhu $v0, -2($a0) +/* 002BE0 800277E0 00021082 */ srl $v0, $v0, 2 +/* 002BE4 800277E4 3042000F */ andi $v0, $v0, 0xf +/* 002BE8 800277E8 2C420008 */ sltiu $v0, $v0, 8 +/* 002BEC 800277EC 5440000D */ bnel $v0, $zero, .L80027824 +/* 002BF0 800277F0 0280202D */ daddu $a0, $s4, $zero +/* 002BF4 800277F4 94820000 */ lhu $v0, ($a0) +/* 002BF8 800277F8 00021082 */ srl $v0, $v0, 2 +/* 002BFC 800277FC 3042000F */ andi $v0, $v0, 0xf +/* 002C00 80027800 2C420008 */ sltiu $v0, $v0, 8 +/* 002C04 80027804 54400007 */ bnel $v0, $zero, .L80027824 +/* 002C08 80027808 0280202D */ daddu $a0, $s4, $zero +/* 002C0C 8002780C 94820002 */ lhu $v0, 2($a0) +/* 002C10 80027810 00021082 */ srl $v0, $v0, 2 +/* 002C14 80027814 3042000F */ andi $v0, $v0, 0xf +/* 002C18 80027818 2C420008 */ sltiu $v0, $v0, 8 +/* 002C1C 8002781C 10400048 */ beqz $v0, .L80027940 +/* 002C20 80027820 0280202D */ daddu $a0, $s4, $zero +.L80027824: +/* 002C24 80027824 02A0282D */ daddu $a1, $s5, $zero +/* 002C28 80027828 03C0302D */ daddu $a2, $fp, $zero +/* 002C2C 8002782C 2650FFFF */ addiu $s0, $s2, -1 +/* 002C30 80027830 8FA80040 */ lw $t0, 0x40($sp) +/* 002C34 80027834 0200382D */ daddu $a3, $s0, $zero +/* 002C38 80027838 0C009C7F */ jal func_800271FC +/* 002C3C 8002783C AFA80010 */ sw $t0, 0x10($sp) +/* 002C40 80027840 0280202D */ daddu $a0, $s4, $zero +/* 002C44 80027844 02A0282D */ daddu $a1, $s5, $zero +/* 002C48 80027848 03C0302D */ daddu $a2, $fp, $zero +/* 002C4C 8002784C 0240382D */ daddu $a3, $s2, $zero +/* 002C50 80027850 27A2001C */ addiu $v0, $sp, 0x1c +/* 002C54 80027854 0C009C7F */ jal func_800271FC +/* 002C58 80027858 AFA20010 */ sw $v0, 0x10($sp) +/* 002C5C 8002785C 0280202D */ daddu $a0, $s4, $zero +/* 002C60 80027860 02A0282D */ daddu $a1, $s5, $zero +/* 002C64 80027864 03C0302D */ daddu $a2, $fp, $zero +/* 002C68 80027868 26510001 */ addiu $s1, $s2, 1 +/* 002C6C 8002786C 0220382D */ daddu $a3, $s1, $zero +/* 002C70 80027870 27A20020 */ addiu $v0, $sp, 0x20 +/* 002C74 80027874 0C009C7F */ jal func_800271FC +/* 002C78 80027878 AFA20010 */ sw $v0, 0x10($sp) +/* 002C7C 8002787C 0280202D */ daddu $a0, $s4, $zero +/* 002C80 80027880 02A0282D */ daddu $a1, $s5, $zero +/* 002C84 80027884 0260302D */ daddu $a2, $s3, $zero +/* 002C88 80027888 0200382D */ daddu $a3, $s0, $zero +/* 002C8C 8002788C 27A20024 */ addiu $v0, $sp, 0x24 +/* 002C90 80027890 0C009C7F */ jal func_800271FC +/* 002C94 80027894 AFA20010 */ sw $v0, 0x10($sp) +/* 002C98 80027898 0280202D */ daddu $a0, $s4, $zero +/* 002C9C 8002789C 02A0282D */ daddu $a1, $s5, $zero +/* 002CA0 800278A0 0260302D */ daddu $a2, $s3, $zero +/* 002CA4 800278A4 0240382D */ daddu $a3, $s2, $zero +/* 002CA8 800278A8 27A20028 */ addiu $v0, $sp, 0x28 +/* 002CAC 800278AC 0C009C7F */ jal func_800271FC +/* 002CB0 800278B0 AFA20010 */ sw $v0, 0x10($sp) +/* 002CB4 800278B4 0280202D */ daddu $a0, $s4, $zero +/* 002CB8 800278B8 02A0282D */ daddu $a1, $s5, $zero +/* 002CBC 800278BC 0260302D */ daddu $a2, $s3, $zero +/* 002CC0 800278C0 0220382D */ daddu $a3, $s1, $zero +/* 002CC4 800278C4 27A2002C */ addiu $v0, $sp, 0x2c +/* 002CC8 800278C8 0C009C7F */ jal func_800271FC +/* 002CCC 800278CC AFA20010 */ sw $v0, 0x10($sp) +/* 002CD0 800278D0 0280202D */ daddu $a0, $s4, $zero +/* 002CD4 800278D4 02A0282D */ daddu $a1, $s5, $zero +/* 002CD8 800278D8 02E0302D */ daddu $a2, $s7, $zero +/* 002CDC 800278DC 0200382D */ daddu $a3, $s0, $zero +/* 002CE0 800278E0 27A20030 */ addiu $v0, $sp, 0x30 +/* 002CE4 800278E4 0C009C7F */ jal func_800271FC +/* 002CE8 800278E8 AFA20010 */ sw $v0, 0x10($sp) +/* 002CEC 800278EC 0280202D */ daddu $a0, $s4, $zero +/* 002CF0 800278F0 02A0282D */ daddu $a1, $s5, $zero +/* 002CF4 800278F4 02E0302D */ daddu $a2, $s7, $zero +/* 002CF8 800278F8 0240382D */ daddu $a3, $s2, $zero +/* 002CFC 800278FC 27A20034 */ addiu $v0, $sp, 0x34 +/* 002D00 80027900 0C009C7F */ jal func_800271FC +/* 002D04 80027904 AFA20010 */ sw $v0, 0x10($sp) +/* 002D08 80027908 0280202D */ daddu $a0, $s4, $zero +/* 002D0C 8002790C 02A0282D */ daddu $a1, $s5, $zero +/* 002D10 80027910 02E0302D */ daddu $a2, $s7, $zero +/* 002D14 80027914 0220382D */ daddu $a3, $s1, $zero +/* 002D18 80027918 27A20038 */ addiu $v0, $sp, 0x38 +/* 002D1C 8002791C 0C009C7F */ jal func_800271FC +/* 002D20 80027920 AFA20010 */ sw $v0, 0x10($sp) +/* 002D24 80027924 00162840 */ sll $a1, $s6, 1 +/* 002D28 80027928 8FA80078 */ lw $t0, 0x78($sp) +/* 002D2C 8002792C 8FA40040 */ lw $a0, 0x40($sp) +/* 002D30 80027930 0C009D80 */ jal func_80027600 +/* 002D34 80027934 01052821 */ addu $a1, $t0, $a1 +/* 002D38 80027938 08009E57 */ j .L8002795C +/* 002D3C 8002793C 26D60001 */ addiu $s6, $s6, 1 + +.L80027940: +/* 002D40 80027940 00741021 */ addu $v0, $v1, $s4 +/* 002D44 80027944 8FA80078 */ lw $t0, 0x78($sp) +/* 002D48 80027948 94420000 */ lhu $v0, ($v0) +/* 002D4C 8002794C 00681821 */ addu $v1, $v1, $t0 +/* 002D50 80027950 34420001 */ ori $v0, $v0, 1 +/* 002D54 80027954 A4620000 */ sh $v0, ($v1) +/* 002D58 80027958 26D60001 */ addiu $s6, $s6, 1 +.L8002795C: +/* 002D5C 8002795C 26520001 */ addiu $s2, $s2, 1 +/* 002D60 80027960 2A42013F */ slti $v0, $s2, 0x13f +/* 002D64 80027964 1440FF9C */ bnez $v0, .L800277D8 +/* 002D68 80027968 00161840 */ sll $v1, $s6, 1 +/* 002D6C 8002796C 26730001 */ addiu $s3, $s3, 1 +/* 002D70 80027970 8FA80044 */ lw $t0, 0x44($sp) +/* 002D74 80027974 2A6200EF */ slti $v0, $s3, 0xef +/* 002D78 80027978 25080140 */ addiu $t0, $t0, 0x140 +/* 002D7C 8002797C 1440FF90 */ bnez $v0, .L800277C0 +/* 002D80 80027980 AFA80044 */ sw $t0, 0x44($sp) +/* 002D84 80027984 8FBF006C */ lw $ra, 0x6c($sp) +/* 002D88 80027988 8FBE0068 */ lw $fp, 0x68($sp) +/* 002D8C 8002798C 8FB70064 */ lw $s7, 0x64($sp) +/* 002D90 80027990 8FB60060 */ lw $s6, 0x60($sp) +/* 002D94 80027994 8FB5005C */ lw $s5, 0x5c($sp) +/* 002D98 80027998 8FB40058 */ lw $s4, 0x58($sp) +/* 002D9C 8002799C 8FB30054 */ lw $s3, 0x54($sp) +/* 002DA0 800279A0 8FB20050 */ lw $s2, 0x50($sp) +/* 002DA4 800279A4 8FB1004C */ lw $s1, 0x4c($sp) +/* 002DA8 800279A8 8FB00048 */ lw $s0, 0x48($sp) +/* 002DAC 800279AC 03E00008 */ jr $ra +/* 002DB0 800279B0 27BD0070 */ addiu $sp, $sp, 0x70 + +.set reorder \ No newline at end of file diff --git a/papermario/asm/code_1b40_len_20b0/func_800279B4.s b/papermario/asm/code_1b40_len_20b0/func_800279B4.s new file mode 100644 index 0000000000..47efe77ef0 --- /dev/null +++ b/papermario/asm/code_1b40_len_20b0/func_800279B4.s @@ -0,0 +1,139 @@ +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches + +.include "globals.inc" + +func_800279B4: +/* 002DB4 800279B4 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 002DB8 800279B8 AFB50054 */ sw $s5, 0x54($sp) +/* 002DBC 800279BC 0080A82D */ daddu $s5, $a0, $zero +/* 002DC0 800279C0 AFB60058 */ sw $s6, 0x58($sp) +/* 002DC4 800279C4 00A0B02D */ daddu $s6, $a1, $zero +/* 002DC8 800279C8 AFB3004C */ sw $s3, 0x4c($sp) +/* 002DCC 800279CC 24130001 */ addiu $s3, $zero, 1 +/* 002DD0 800279D0 27A80018 */ addiu $t0, $sp, 0x18 +/* 002DD4 800279D4 AFA80038 */ sw $t0, 0x38($sp) +/* 002DD8 800279D8 24080140 */ addiu $t0, $zero, 0x140 +/* 002DDC 800279DC AFBF0064 */ sw $ra, 0x64($sp) +/* 002DE0 800279E0 AFBE0060 */ sw $fp, 0x60($sp) +/* 002DE4 800279E4 AFB7005C */ sw $s7, 0x5c($sp) +/* 002DE8 800279E8 AFB40050 */ sw $s4, 0x50($sp) +/* 002DEC 800279EC AFB20048 */ sw $s2, 0x48($sp) +/* 002DF0 800279F0 AFB10044 */ sw $s1, 0x44($sp) +/* 002DF4 800279F4 AFB00040 */ sw $s0, 0x40($sp) +/* 002DF8 800279F8 AFA60070 */ sw $a2, 0x70($sp) +/* 002DFC 800279FC AFA8003C */ sw $t0, 0x3c($sp) +.L80027A00: +/* 002E00 80027A00 24120002 */ addiu $s2, $zero, 2 +/* 002E04 80027A04 267EFFFF */ addiu $fp, $s3, -1 +/* 002E08 80027A08 26770001 */ addiu $s7, $s3, 1 +.L80027A0C: +/* 002E0C 80027A0C 8FA8003C */ lw $t0, 0x3c($sp) +/* 002E10 80027A10 01121021 */ addu $v0, $t0, $s2 +/* 002E14 80027A14 0002A040 */ sll $s4, $v0, 1 +/* 002E18 80027A18 02961021 */ addu $v0, $s4, $s6 +/* 002E1C 80027A1C 94420000 */ lhu $v0, ($v0) +/* 002E20 80027A20 00021082 */ srl $v0, $v0, 2 +/* 002E24 80027A24 3042000F */ andi $v0, $v0, 0xf +/* 002E28 80027A28 2C420008 */ sltiu $v0, $v0, 8 +/* 002E2C 80027A2C 10400043 */ beqz $v0, .L80027B3C +/* 002E30 80027A30 02A0202D */ daddu $a0, $s5, $zero +/* 002E34 80027A34 02C0282D */ daddu $a1, $s6, $zero +/* 002E38 80027A38 03C0302D */ daddu $a2, $fp, $zero +/* 002E3C 80027A3C 2650FFFF */ addiu $s0, $s2, -1 +/* 002E40 80027A40 8FA80038 */ lw $t0, 0x38($sp) +/* 002E44 80027A44 0200382D */ daddu $a3, $s0, $zero +/* 002E48 80027A48 0C009C7F */ jal func_800271FC +/* 002E4C 80027A4C AFA80010 */ sw $t0, 0x10($sp) +/* 002E50 80027A50 02A0202D */ daddu $a0, $s5, $zero +/* 002E54 80027A54 02C0282D */ daddu $a1, $s6, $zero +/* 002E58 80027A58 03C0302D */ daddu $a2, $fp, $zero +/* 002E5C 80027A5C 26510001 */ addiu $s1, $s2, 1 +/* 002E60 80027A60 0220382D */ daddu $a3, $s1, $zero +/* 002E64 80027A64 27A2001C */ addiu $v0, $sp, 0x1c +/* 002E68 80027A68 0C009C7F */ jal func_800271FC +/* 002E6C 80027A6C AFA20010 */ sw $v0, 0x10($sp) +/* 002E70 80027A70 02A0202D */ daddu $a0, $s5, $zero +/* 002E74 80027A74 02C0282D */ daddu $a1, $s6, $zero +/* 002E78 80027A78 0260302D */ daddu $a2, $s3, $zero +/* 002E7C 80027A7C 2647FFFE */ addiu $a3, $s2, -2 +/* 002E80 80027A80 27A20020 */ addiu $v0, $sp, 0x20 +/* 002E84 80027A84 0C009C7F */ jal func_800271FC +/* 002E88 80027A88 AFA20010 */ sw $v0, 0x10($sp) +/* 002E8C 80027A8C 02A0202D */ daddu $a0, $s5, $zero +/* 002E90 80027A90 02C0282D */ daddu $a1, $s6, $zero +/* 002E94 80027A94 0260302D */ daddu $a2, $s3, $zero +/* 002E98 80027A98 26470002 */ addiu $a3, $s2, 2 +/* 002E9C 80027A9C 27A20024 */ addiu $v0, $sp, 0x24 +/* 002EA0 80027AA0 0C009C7F */ jal func_800271FC +/* 002EA4 80027AA4 AFA20010 */ sw $v0, 0x10($sp) +/* 002EA8 80027AA8 02A0202D */ daddu $a0, $s5, $zero +/* 002EAC 80027AAC 02C0282D */ daddu $a1, $s6, $zero +/* 002EB0 80027AB0 02E0302D */ daddu $a2, $s7, $zero +/* 002EB4 80027AB4 0200382D */ daddu $a3, $s0, $zero +/* 002EB8 80027AB8 27A20028 */ addiu $v0, $sp, 0x28 +/* 002EBC 80027ABC 0C009C7F */ jal func_800271FC +/* 002EC0 80027AC0 AFA20010 */ sw $v0, 0x10($sp) +/* 002EC4 80027AC4 02A0202D */ daddu $a0, $s5, $zero +/* 002EC8 80027AC8 02C0282D */ daddu $a1, $s6, $zero +/* 002ECC 80027ACC 02E0302D */ daddu $a2, $s7, $zero +/* 002ED0 80027AD0 0220382D */ daddu $a3, $s1, $zero +/* 002ED4 80027AD4 27A2002C */ addiu $v0, $sp, 0x2c +/* 002ED8 80027AD8 0C009C7F */ jal func_800271FC +/* 002EDC 80027ADC AFA20010 */ sw $v0, 0x10($sp) +/* 002EE0 80027AE0 02A0202D */ daddu $a0, $s5, $zero +/* 002EE4 80027AE4 02C0282D */ daddu $a1, $s6, $zero +/* 002EE8 80027AE8 0260302D */ daddu $a2, $s3, $zero +/* 002EEC 80027AEC 0240382D */ daddu $a3, $s2, $zero +/* 002EF0 80027AF0 27A20030 */ addiu $v0, $sp, 0x30 +/* 002EF4 80027AF4 0C009C7F */ jal func_800271FC +/* 002EF8 80027AF8 AFA20010 */ sw $v0, 0x10($sp) +/* 002EFC 80027AFC 8FA40038 */ lw $a0, 0x38($sp) +/* 002F00 80027B00 8FA80070 */ lw $t0, 0x70($sp) +/* 002F04 80027B04 93A50030 */ lbu $a1, 0x30($sp) +/* 002F08 80027B08 93A20031 */ lbu $v0, 0x31($sp) +/* 002F0C 80027B0C 93A30032 */ lbu $v1, 0x32($sp) +/* 002F10 80027B10 01143021 */ addu $a2, $t0, $s4 +/* 002F14 80027B14 00052E00 */ sll $a1, $a1, 0x18 +/* 002F18 80027B18 00021400 */ sll $v0, $v0, 0x10 +/* 002F1C 80027B1C 00A22825 */ or $a1, $a1, $v0 +/* 002F20 80027B20 00031A00 */ sll $v1, $v1, 8 +/* 002F24 80027B24 93A20033 */ lbu $v0, 0x33($sp) +/* 002F28 80027B28 00A32825 */ or $a1, $a1, $v1 +/* 002F2C 80027B2C 0C009C97 */ jal func_8002725C +/* 002F30 80027B30 00A22825 */ or $a1, $a1, $v0 +/* 002F34 80027B34 08009ED6 */ j .L80027B58 +/* 002F38 80027B38 26520001 */ addiu $s2, $s2, 1 + +.L80027B3C: +/* 002F3C 80027B3C 02951021 */ addu $v0, $s4, $s5 +/* 002F40 80027B40 8FA80070 */ lw $t0, 0x70($sp) +/* 002F44 80027B44 94420000 */ lhu $v0, ($v0) +/* 002F48 80027B48 02881821 */ addu $v1, $s4, $t0 +/* 002F4C 80027B4C 34420001 */ ori $v0, $v0, 1 +/* 002F50 80027B50 A4620000 */ sh $v0, ($v1) +/* 002F54 80027B54 26520001 */ addiu $s2, $s2, 1 +.L80027B58: +/* 002F58 80027B58 2A42013E */ slti $v0, $s2, 0x13e +/* 002F5C 80027B5C 1440FFAB */ bnez $v0, .L80027A0C +/* 002F60 80027B60 00000000 */ nop +/* 002F64 80027B64 26730001 */ addiu $s3, $s3, 1 +/* 002F68 80027B68 8FA8003C */ lw $t0, 0x3c($sp) +/* 002F6C 80027B6C 2A6200EF */ slti $v0, $s3, 0xef +/* 002F70 80027B70 25080140 */ addiu $t0, $t0, 0x140 +/* 002F74 80027B74 1440FFA2 */ bnez $v0, .L80027A00 +/* 002F78 80027B78 AFA8003C */ sw $t0, 0x3c($sp) +/* 002F7C 80027B7C 8FBF0064 */ lw $ra, 0x64($sp) +/* 002F80 80027B80 8FBE0060 */ lw $fp, 0x60($sp) +/* 002F84 80027B84 8FB7005C */ lw $s7, 0x5c($sp) +/* 002F88 80027B88 8FB60058 */ lw $s6, 0x58($sp) +/* 002F8C 80027B8C 8FB50054 */ lw $s5, 0x54($sp) +/* 002F90 80027B90 8FB40050 */ lw $s4, 0x50($sp) +/* 002F94 80027B94 8FB3004C */ lw $s3, 0x4c($sp) +/* 002F98 80027B98 8FB20048 */ lw $s2, 0x48($sp) +/* 002F9C 80027B9C 8FB10044 */ lw $s1, 0x44($sp) +/* 002FA0 80027BA0 8FB00040 */ lw $s0, 0x40($sp) +/* 002FA4 80027BA4 03E00008 */ jr $ra +/* 002FA8 80027BA8 27BD0068 */ addiu $sp, $sp, 0x68 + +.set reorder diff --git a/papermario/asm/code_1b40_len_20b0/func_80027BAC.s b/papermario/asm/code_1b40_len_20b0/func_80027BAC.s new file mode 100644 index 0000000000..79ae2c5e32 --- /dev/null +++ b/papermario/asm/code_1b40_len_20b0/func_80027BAC.s @@ -0,0 +1,162 @@ +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches + +.include "globals.inc" + +func_80027BAC: +/* 002FAC 80027BAC 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 002FB0 80027BB0 3C06D700 */ lui $a2, 0xd700 +/* 002FB4 80027BB4 34C60002 */ ori $a2, $a2, 2 +/* 002FB8 80027BB8 3C07FF10 */ lui $a3, 0xff10 +/* 002FBC 80027BBC 34E7013F */ ori $a3, $a3, 0x13f +/* 002FC0 80027BC0 3C08E300 */ lui $t0, 0xe300 +/* 002FC4 80027BC4 35080A01 */ ori $t0, $t0, 0xa01 +/* 002FC8 80027BC8 3C09E300 */ lui $t1, 0xe300 +/* 002FCC 80027BCC 35290C00 */ ori $t1, $t1, 0xc00 +/* 002FD0 80027BD0 3C0AE300 */ lui $t2, 0xe300 +/* 002FD4 80027BD4 354A1001 */ ori $t2, $t2, 0x1001 +/* 002FD8 80027BD8 3C0BE200 */ lui $t3, 0xe200 +/* 002FDC 80027BDC 356B001C */ ori $t3, $t3, 0x1c +/* 002FE0 80027BE0 3C0CE300 */ lui $t4, 0xe300 +/* 002FE4 80027BE4 358C1201 */ ori $t4, $t4, 0x1201 +/* 002FE8 80027BE8 0000C82D */ daddu $t9, $zero, $zero +/* 002FEC 80027BEC 3C02800A */ lui $v0, 0x800a +/* 002FF0 80027BF0 2442A66C */ addiu $v0, $v0, -0x5994 +/* 002FF4 80027BF4 0040682D */ daddu $t5, $v0, $zero +/* 002FF8 80027BF8 AFB5001C */ sw $s5, 0x1c($sp) +/* 002FFC 80027BFC 3C15FD10 */ lui $s5, 0xfd10 +/* 003000 80027C00 36B5013F */ ori $s5, $s5, 0x13f +/* 003004 80027C04 AFB00008 */ sw $s0, 8($sp) +/* 003008 80027C08 3C10F510 */ lui $s0, 0xf510 +/* 00300C 80027C0C 3610A000 */ ori $s0, $s0, 0xa000 +/* 003010 80027C10 AFB40018 */ sw $s4, 0x18($sp) +/* 003014 80027C14 3C14074F */ lui $s4, 0x74f +/* 003018 80027C18 3694C014 */ ori $s4, $s4, 0xc014 +/* 00301C 80027C1C AFB1000C */ sw $s1, 0xc($sp) +/* 003020 80027C20 3C11E700 */ lui $s1, 0xe700 +/* 003024 80027C24 AFBE0028 */ sw $fp, 0x28($sp) +/* 003028 80027C28 3C1EF200 */ lui $fp, 0xf200 +/* 00302C 80027C2C AFB30014 */ sw $s3, 0x14($sp) +/* 003030 80027C30 3C13004F */ lui $s3, 0x4f +/* 003034 80027C34 3673C014 */ ori $s3, $s3, 0xc014 +/* 003038 80027C38 AFB20010 */ sw $s2, 0x10($sp) +/* 00303C 80027C3C 3C12E44F */ lui $s2, 0xe44f +/* 003040 80027C40 3652C000 */ ori $s2, $s2, 0xc000 +/* 003044 80027C44 AFB70024 */ sw $s7, 0x24($sp) +/* 003048 80027C48 3C17E100 */ lui $s7, 0xe100 +/* 00304C 80027C4C AFB60020 */ sw $s6, 0x20($sp) +/* 003050 80027C50 3C16F100 */ lui $s6, 0xf100 +/* 003054 80027C54 0320C02D */ daddu $t8, $t9, $zero +/* 003058 80027C58 240F0014 */ addiu $t7, $zero, 0x14 +/* 00305C 80027C5C 0080702D */ daddu $t6, $a0, $zero +/* 003060 80027C60 8DA20000 */ lw $v0, ($t5) +/* 003064 80027C64 0220182D */ daddu $v1, $s1, $zero +/* 003068 80027C68 0040202D */ daddu $a0, $v0, $zero +/* 00306C 80027C6C 24420008 */ addiu $v0, $v0, 8 +/* 003070 80027C70 ADA20000 */ sw $v0, ($t5) +/* 003074 80027C74 AC830000 */ sw $v1, ($a0) +/* 003078 80027C78 24430008 */ addiu $v1, $v0, 8 +/* 00307C 80027C7C AC800004 */ sw $zero, 4($a0) +/* 003080 80027C80 ADA30000 */ sw $v1, ($t5) +/* 003084 80027C84 2403FFFF */ addiu $v1, $zero, -1 +/* 003088 80027C88 AC430004 */ sw $v1, 4($v0) +/* 00308C 80027C8C 24430010 */ addiu $v1, $v0, 0x10 +/* 003090 80027C90 AC460000 */ sw $a2, ($v0) +/* 003094 80027C94 ADA30000 */ sw $v1, ($t5) +/* 003098 80027C98 24430018 */ addiu $v1, $v0, 0x18 +/* 00309C 80027C9C AC470008 */ sw $a3, 8($v0) +/* 0030A0 80027CA0 AC45000C */ sw $a1, 0xc($v0) +/* 0030A4 80027CA4 ADA30000 */ sw $v1, ($t5) +/* 0030A8 80027CA8 3C030020 */ lui $v1, 0x20 +/* 0030AC 80027CAC AC430014 */ sw $v1, 0x14($v0) +/* 0030B0 80027CB0 24430020 */ addiu $v1, $v0, 0x20 +/* 0030B4 80027CB4 AC480010 */ sw $t0, 0x10($v0) +/* 0030B8 80027CB8 ADA30000 */ sw $v1, ($t5) +/* 0030BC 80027CBC 24430028 */ addiu $v1, $v0, 0x28 +/* 0030C0 80027CC0 AC490018 */ sw $t1, 0x18($v0) +/* 0030C4 80027CC4 AC40001C */ sw $zero, 0x1c($v0) +/* 0030C8 80027CC8 ADA30000 */ sw $v1, ($t5) +/* 0030CC 80027CCC 24430030 */ addiu $v1, $v0, 0x30 +/* 0030D0 80027CD0 AC4A0020 */ sw $t2, 0x20($v0) +/* 0030D4 80027CD4 AC400024 */ sw $zero, 0x24($v0) +/* 0030D8 80027CD8 ADA30000 */ sw $v1, ($t5) +/* 0030DC 80027CDC 24430038 */ addiu $v1, $v0, 0x38 +/* 0030E0 80027CE0 AC4B0028 */ sw $t3, 0x28($v0) +/* 0030E4 80027CE4 AC40002C */ sw $zero, 0x2c($v0) +/* 0030E8 80027CE8 ADA30000 */ sw $v1, ($t5) +/* 0030EC 80027CEC AC4C0030 */ sw $t4, 0x30($v0) +/* 0030F0 80027CF0 AC400034 */ sw $zero, 0x34($v0) +.L80027CF4: +/* 0030F4 80027CF4 3C061000 */ lui $a2, 0x1000 +/* 0030F8 80027CF8 34C60400 */ ori $a2, $a2, 0x400 +/* 0030FC 80027CFC 33050FFF */ andi $a1, $t8, 0xfff +/* 003100 80027D00 27180018 */ addiu $t8, $t8, 0x18 +/* 003104 80027D04 31E40FFF */ andi $a0, $t7, 0xfff +/* 003108 80027D08 25EF0018 */ addiu $t7, $t7, 0x18 +/* 00310C 80027D0C 27390001 */ addiu $t9, $t9, 1 +/* 003110 80027D10 8DA20000 */ lw $v0, ($t5) +/* 003114 80027D14 00922025 */ or $a0, $a0, $s2 +/* 003118 80027D18 0040182D */ daddu $v1, $v0, $zero +/* 00311C 80027D1C 24420008 */ addiu $v0, $v0, 8 +/* 003120 80027D20 AC6E0004 */ sw $t6, 4($v1) +/* 003124 80027D24 ADA20000 */ sw $v0, ($t5) +/* 003128 80027D28 AC750000 */ sw $s5, ($v1) +/* 00312C 80027D2C 24430008 */ addiu $v1, $v0, 8 +/* 003130 80027D30 3C070700 */ lui $a3, 0x700 +/* 003134 80027D34 ADA30000 */ sw $v1, ($t5) +/* 003138 80027D38 24430010 */ addiu $v1, $v0, 0x10 +/* 00313C 80027D3C AC470004 */ sw $a3, 4($v0) +/* 003140 80027D40 3C07E600 */ lui $a3, 0xe600 +/* 003144 80027D44 AC500000 */ sw $s0, ($v0) +/* 003148 80027D48 ADA30000 */ sw $v1, ($t5) +/* 00314C 80027D4C 24430018 */ addiu $v1, $v0, 0x18 +/* 003150 80027D50 AC470008 */ sw $a3, 8($v0) +/* 003154 80027D54 3C07F400 */ lui $a3, 0xf400 +/* 003158 80027D58 AC40000C */ sw $zero, 0xc($v0) +/* 00315C 80027D5C ADA30000 */ sw $v1, ($t5) +/* 003160 80027D60 24430020 */ addiu $v1, $v0, 0x20 +/* 003164 80027D64 AC470010 */ sw $a3, 0x10($v0) +/* 003168 80027D68 AC540014 */ sw $s4, 0x14($v0) +/* 00316C 80027D6C ADA30000 */ sw $v1, ($t5) +/* 003170 80027D70 24430028 */ addiu $v1, $v0, 0x28 +/* 003174 80027D74 AC510018 */ sw $s1, 0x18($v0) +/* 003178 80027D78 AC40001C */ sw $zero, 0x1c($v0) +/* 00317C 80027D7C ADA30000 */ sw $v1, ($t5) +/* 003180 80027D80 24430030 */ addiu $v1, $v0, 0x30 +/* 003184 80027D84 AC500020 */ sw $s0, 0x20($v0) +/* 003188 80027D88 AC400024 */ sw $zero, 0x24($v0) +/* 00318C 80027D8C ADA30000 */ sw $v1, ($t5) +/* 003190 80027D90 24430038 */ addiu $v1, $v0, 0x38 +/* 003194 80027D94 AC5E0028 */ sw $fp, 0x28($v0) +/* 003198 80027D98 AC53002C */ sw $s3, 0x2c($v0) +/* 00319C 80027D9C ADA30000 */ sw $v1, ($t5) +/* 0031A0 80027DA0 24430040 */ addiu $v1, $v0, 0x40 +/* 0031A4 80027DA4 AC440030 */ sw $a0, 0x30($v0) +/* 0031A8 80027DA8 AC450034 */ sw $a1, 0x34($v0) +/* 0031AC 80027DAC ADA30000 */ sw $v1, ($t5) +/* 0031B0 80027DB0 24430048 */ addiu $v1, $v0, 0x48 +/* 0031B4 80027DB4 AC570038 */ sw $s7, 0x38($v0) +/* 0031B8 80027DB8 AC40003C */ sw $zero, 0x3c($v0) +/* 0031BC 80027DBC ADA30000 */ sw $v1, ($t5) +/* 0031C0 80027DC0 24430050 */ addiu $v1, $v0, 0x50 +/* 0031C4 80027DC4 AC560040 */ sw $s6, 0x40($v0) +/* 0031C8 80027DC8 AC460044 */ sw $a2, 0x44($v0) +/* 0031CC 80027DCC ADA30000 */ sw $v1, ($t5) +/* 0031D0 80027DD0 AC510048 */ sw $s1, 0x48($v0) +/* 0031D4 80027DD4 AC40004C */ sw $zero, 0x4c($v0) +/* 0031D8 80027DD8 2B220028 */ slti $v0, $t9, 0x28 +/* 0031DC 80027DDC 1440FFC5 */ bnez $v0, .L80027CF4 +/* 0031E0 80027DE0 25CE0F00 */ addiu $t6, $t6, 0xf00 +/* 0031E4 80027DE4 8FBE0028 */ lw $fp, 0x28($sp) +/* 0031E8 80027DE8 8FB70024 */ lw $s7, 0x24($sp) +/* 0031EC 80027DEC 8FB60020 */ lw $s6, 0x20($sp) +/* 0031F0 80027DF0 8FB5001C */ lw $s5, 0x1c($sp) +/* 0031F4 80027DF4 8FB40018 */ lw $s4, 0x18($sp) +/* 0031F8 80027DF8 8FB30014 */ lw $s3, 0x14($sp) +/* 0031FC 80027DFC 8FB20010 */ lw $s2, 0x10($sp) +/* 003200 80027E00 8FB1000C */ lw $s1, 0xc($sp) +/* 003204 80027E04 8FB00008 */ lw $s0, 8($sp) +/* 003208 80027E08 03E00008 */ jr $ra +/* 00320C 80027E0C 27BD0030 */ addiu $sp, $sp, 0x30 + +.set reorder \ No newline at end of file diff --git a/papermario/asm/code_1b40_len_20b0/func_80027E10.s b/papermario/asm/code_1b40_len_20b0/func_80027E10.s new file mode 100644 index 0000000000..b033bccf45 --- /dev/null +++ b/papermario/asm/code_1b40_len_20b0/func_80027E10.s @@ -0,0 +1,674 @@ +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches + +.include "globals.inc" + +func_80027E10: +/* 003210 80027E10 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 003214 80027E14 3C040050 */ lui $a0, 0x50 +/* 003218 80027E18 3C0C800A */ lui $t4, 0x800a +/* 00321C 80027E1C 258CA66C */ addiu $t4, $t4, -0x5994 +/* 003220 80027E20 348403C0 */ ori $a0, $a0, 0x3c0 +/* 003224 80027E24 3C02ED00 */ lui $v0, 0xed00 +/* 003228 80027E28 AFBF0044 */ sw $ra, 0x44($sp) +/* 00322C 80027E2C AFBE0040 */ sw $fp, 0x40($sp) +/* 003230 80027E30 AFB7003C */ sw $s7, 0x3c($sp) +/* 003234 80027E34 AFB60038 */ sw $s6, 0x38($sp) +/* 003238 80027E38 AFB50034 */ sw $s5, 0x34($sp) +/* 00323C 80027E3C AFB40030 */ sw $s4, 0x30($sp) +/* 003240 80027E40 AFB3002C */ sw $s3, 0x2c($sp) +/* 003244 80027E44 AFB20028 */ sw $s2, 0x28($sp) +/* 003248 80027E48 AFB10024 */ sw $s1, 0x24($sp) +/* 00324C 80027E4C AFB00020 */ sw $s0, 0x20($sp) +/* 003250 80027E50 8D8B0000 */ lw $t3, ($t4) +/* 003254 80027E54 3C108007 */ lui $s0, 0x8007 +/* 003258 80027E58 2610419C */ addiu $s0, $s0, 0x419c +/* 00325C 80027E5C 0160182D */ daddu $v1, $t3, $zero +/* 003260 80027E60 256B0008 */ addiu $t3, $t3, 8 +/* 003264 80027E64 AD8B0000 */ sw $t3, ($t4) +/* 003268 80027E68 AC640004 */ sw $a0, 4($v1) +/* 00326C 80027E6C 3C04800B */ lui $a0, 0x800b +/* 003270 80027E70 24841D80 */ addiu $a0, $a0, 0x1d80 +/* 003274 80027E74 AC620000 */ sw $v0, ($v1) +/* 003278 80027E78 3C038007 */ lui $v1, 0x8007 +/* 00327C 80027E7C 8C637410 */ lw $v1, 0x7410($v1) +/* 003280 80027E80 8E0D0000 */ lw $t5, ($s0) +/* 003284 80027E84 00031080 */ sll $v0, $v1, 2 +/* 003288 80027E88 00431021 */ addu $v0, $v0, $v1 +/* 00328C 80027E8C 00021080 */ sll $v0, $v0, 2 +/* 003290 80027E90 00431023 */ subu $v0, $v0, $v1 +/* 003294 80027E94 000218C0 */ sll $v1, $v0, 3 +/* 003298 80027E98 00431021 */ addu $v0, $v0, $v1 +/* 00329C 80027E9C 000210C0 */ sll $v0, $v0, 3 +/* 0032A0 80027EA0 00449821 */ addu $s3, $v0, $a0 +/* 0032A4 80027EA4 95A30148 */ lhu $v1, 0x148($t5) +/* 0032A8 80027EA8 24020020 */ addiu $v0, $zero, 0x20 +/* 0032AC 80027EAC 306300F0 */ andi $v1, $v1, 0xf0 +/* 0032B0 80027EB0 1062004E */ beq $v1, $v0, .L80027FEC +/* 0032B4 80027EB4 28620021 */ slti $v0, $v1, 0x21 +/* 0032B8 80027EB8 10400005 */ beqz $v0, .L80027ED0 +/* 0032BC 80027EBC 24020010 */ addiu $v0, $zero, 0x10 +/* 0032C0 80027EC0 10620008 */ beq $v1, $v0, .L80027EE4 +/* 0032C4 80027EC4 3C03FF10 */ lui $v1, 0xff10 +/* 0032C8 80027EC8 0800A0CB */ j .L8002832C +/* 0032CC 80027ECC 00000000 */ nop + +.L80027ED0: +/* 0032D0 80027ED0 24020030 */ addiu $v0, $zero, 0x30 +/* 0032D4 80027ED4 10620053 */ beq $v1, $v0, .L80028024 +/* 0032D8 80027ED8 00000000 */ nop +/* 0032DC 80027EDC 0800A0CB */ j .L8002832C +/* 0032E0 80027EE0 00000000 */ nop + +.L80027EE4: +/* 0032E4 80027EE4 3463013F */ ori $v1, $v1, 0x13f +/* 0032E8 80027EE8 3C06E300 */ lui $a2, 0xe300 +/* 0032EC 80027EEC 34C60A01 */ ori $a2, $a2, 0xa01 +/* 0032F0 80027EF0 3C078080 */ lui $a3, 0x8080 +/* 0032F4 80027EF4 34E780FF */ ori $a3, $a3, 0x80ff +/* 0032F8 80027EF8 3C05E200 */ lui $a1, 0xe200 +/* 0032FC 80027EFC 34A51D00 */ ori $a1, $a1, 0x1d00 +/* 003300 80027F00 3C0AE200 */ lui $t2, 0xe200 +/* 003304 80027F04 354A001C */ ori $t2, $t2, 0x1c +/* 003308 80027F08 3C090FA5 */ lui $t1, 0xfa5 +/* 00330C 80027F0C 35294040 */ ori $t1, $t1, 0x4040 +/* 003310 80027F10 3C08F650 */ lui $t0, 0xf650 +/* 003314 80027F14 350803C0 */ ori $t0, $t0, 0x3c0 +/* 003318 80027F18 25620008 */ addiu $v0, $t3, 8 +/* 00331C 80027F1C 3C04E700 */ lui $a0, 0xe700 +/* 003320 80027F20 AD820000 */ sw $v0, ($t4) +/* 003324 80027F24 25620010 */ addiu $v0, $t3, 0x10 +/* 003328 80027F28 AD640000 */ sw $a0, ($t3) +/* 00332C 80027F2C AD600004 */ sw $zero, 4($t3) +/* 003330 80027F30 AD820000 */ sw $v0, ($t4) +/* 003334 80027F34 25620018 */ addiu $v0, $t3, 0x18 +/* 003338 80027F38 AD630008 */ sw $v1, 8($t3) +/* 00333C 80027F3C AD820000 */ sw $v0, ($t4) +/* 003340 80027F40 25620020 */ addiu $v0, $t3, 0x20 +/* 003344 80027F44 AD820000 */ sw $v0, ($t4) +/* 003348 80027F48 25620028 */ addiu $v0, $t3, 0x28 +/* 00334C 80027F4C AD820000 */ sw $v0, ($t4) +/* 003350 80027F50 25620030 */ addiu $v0, $t3, 0x30 +/* 003354 80027F54 AD820000 */ sw $v0, ($t4) +/* 003358 80027F58 25620038 */ addiu $v0, $t3, 0x38 +/* 00335C 80027F5C AD820000 */ sw $v0, ($t4) +/* 003360 80027F60 3C03800A */ lui $v1, 0x800a +/* 003364 80027F64 8C63A658 */ lw $v1, -0x59a8($v1) +/* 003368 80027F68 25620040 */ addiu $v0, $t3, 0x40 +/* 00336C 80027F6C AD820000 */ sw $v0, ($t4) +/* 003370 80027F70 8C630004 */ lw $v1, 4($v1) +/* 003374 80027F74 25620048 */ addiu $v0, $t3, 0x48 +/* 003378 80027F78 AD820000 */ sw $v0, ($t4) +/* 00337C 80027F7C 3C02F900 */ lui $v0, 0xf900 +/* 003380 80027F80 AD620018 */ sw $v0, 0x18($t3) +/* 003384 80027F84 3C02EE00 */ lui $v0, 0xee00 +/* 003388 80027F88 AD620020 */ sw $v0, 0x20($t3) +/* 00338C 80027F8C 2402FFFF */ addiu $v0, $zero, -1 +/* 003390 80027F90 AD620024 */ sw $v0, 0x24($t3) +/* 003394 80027F94 24020004 */ addiu $v0, $zero, 4 +/* 003398 80027F98 AD660010 */ sw $a2, 0x10($t3) +/* 00339C 80027F9C AD600014 */ sw $zero, 0x14($t3) +/* 0033A0 80027FA0 AD67001C */ sw $a3, 0x1c($t3) +/* 0033A4 80027FA4 AD650028 */ sw $a1, 0x28($t3) +/* 0033A8 80027FA8 AD62002C */ sw $v0, 0x2c($t3) +/* 0033AC 80027FAC AD6A0030 */ sw $t2, 0x30($t3) +/* 0033B0 80027FB0 AD690034 */ sw $t1, 0x34($t3) +/* 0033B4 80027FB4 AD680038 */ sw $t0, 0x38($t3) +/* 0033B8 80027FB8 AD60003C */ sw $zero, 0x3c($t3) +/* 0033BC 80027FBC AD640040 */ sw $a0, 0x40($t3) +/* 0033C0 80027FC0 AD600044 */ sw $zero, 0x44($t3) +/* 0033C4 80027FC4 AD650048 */ sw $a1, 0x48($t3) +/* 0033C8 80027FC8 AD60004C */ sw $zero, 0x4c($t3) +/* 0033CC 80027FCC AD63000C */ sw $v1, 0xc($t3) +/* 0033D0 80027FD0 95A20148 */ lhu $v0, 0x148($t5) +/* 0033D4 80027FD4 25630050 */ addiu $v1, $t3, 0x50 +/* 0033D8 80027FD8 AD830000 */ sw $v1, ($t4) +/* 0033DC 80027FDC 3042FF0F */ andi $v0, $v0, 0xff0f +/* 0033E0 80027FE0 34420020 */ ori $v0, $v0, 0x20 +/* 0033E4 80027FE4 0800A1E4 */ j .L80028790 +/* 0033E8 80027FE8 A5A20148 */ sh $v0, 0x148($t5) + +.L80027FEC: +/* 0033EC 80027FEC 3C02800A */ lui $v0, 0x800a +/* 0033F0 80027FF0 8C42A658 */ lw $v0, -0x59a8($v0) +/* 0033F4 80027FF4 3C06800A */ lui $a2, 0x800a +/* 0033F8 80027FF8 8CC6A5DC */ lw $a2, -0x5a24($a2) +/* 0033FC 80027FFC 8C440000 */ lw $a0, ($v0) +/* 003400 80028000 0C009E6D */ jal func_800279B4 +/* 003404 80028004 8C450004 */ lw $a1, 4($v0) +/* 003408 80028008 8E030000 */ lw $v1, ($s0) +/* 00340C 8002800C 94620148 */ lhu $v0, 0x148($v1) +/* 003410 80028010 3C018007 */ lui $at, 0x8007 +/* 003414 80028014 AC2041F8 */ sw $zero, 0x41f8($at) +/* 003418 80028018 3042FF0F */ andi $v0, $v0, 0xff0f +/* 00341C 8002801C 34420030 */ ori $v0, $v0, 0x30 +/* 003420 80028020 A4620148 */ sh $v0, 0x148($v1) +.L80028024: +/* 003424 80028024 3C168007 */ lui $s6, 0x8007 +/* 003428 80028028 26D641F8 */ addiu $s6, $s6, 0x41f8 +/* 00342C 8002802C 8EC20000 */ lw $v0, ($s6) +/* 003430 80028030 24420010 */ addiu $v0, $v0, 0x10 +/* 003434 80028034 AEC20000 */ sw $v0, ($s6) +/* 003438 80028038 28420081 */ slti $v0, $v0, 0x81 +/* 00343C 8002803C 14400003 */ bnez $v0, .L8002804C +/* 003440 80028040 3C060050 */ lui $a2, 0x50 +/* 003444 80028044 24020080 */ addiu $v0, $zero, 0x80 +/* 003448 80028048 AEC20000 */ sw $v0, ($s6) +.L8002804C: +/* 00344C 8002804C 34C603C0 */ ori $a2, $a2, 0x3c0 +/* 003450 80028050 3C05E300 */ lui $a1, 0xe300 +/* 003454 80028054 34A50A01 */ ori $a1, $a1, 0xa01 +/* 003458 80028058 3C07E200 */ lui $a3, 0xe200 +/* 00345C 8002805C 34E7001C */ ori $a3, $a3, 0x1c +/* 003460 80028060 3C08FF10 */ lui $t0, 0xff10 +/* 003464 80028064 3508013F */ ori $t0, $t0, 0x13f +/* 003468 80028068 3C090001 */ lui $t1, 1 +/* 00346C 8002806C 35290001 */ ori $t1, $t1, 1 +/* 003470 80028070 3C0AF64F */ lui $t2, 0xf64f +/* 003474 80028074 354AC3BC */ ori $t2, $t2, 0xc3bc +/* 003478 80028078 3C0BE300 */ lui $t3, 0xe300 +/* 00347C 8002807C 356B0C00 */ ori $t3, $t3, 0xc00 +/* 003480 80028080 3C0CE300 */ lui $t4, 0xe300 +/* 003484 80028084 358C1001 */ ori $t4, $t4, 0x1001 +/* 003488 80028088 3C0D0F0A */ lui $t5, 0xf0a +/* 00348C 8002808C 35AD4000 */ ori $t5, $t5, 0x4000 +/* 003490 80028090 3C0FFC35 */ lui $t7, 0xfc35 +/* 003494 80028094 35EF7E6A */ ori $t7, $t7, 0x7e6a +/* 003498 80028098 3C0E12FC */ lui $t6, 0x12fc +/* 00349C 8002809C 35CEFCBE */ ori $t6, $t6, 0xfcbe +/* 0034A0 800280A0 3C112828 */ lui $s1, 0x2828 +/* 0034A4 800280A4 36312800 */ ori $s1, $s1, 0x2800 +/* 0034A8 800280A8 3C10E300 */ lui $s0, 0xe300 +/* 0034AC 800280AC 36101201 */ ori $s0, $s0, 0x1201 +/* 0034B0 800280B0 0000C82D */ daddu $t9, $zero, $zero +/* 0034B4 800280B4 3C02800A */ lui $v0, 0x800a +/* 0034B8 800280B8 2442A66C */ addiu $v0, $v0, -0x5994 +/* 0034BC 800280BC 0040902D */ daddu $s2, $v0, $zero +/* 0034C0 800280C0 AFAE0018 */ sw $t6, 0x18($sp) +/* 0034C4 800280C4 3C0EFD10 */ lui $t6, 0xfd10 +/* 0034C8 800280C8 35CE013F */ ori $t6, $t6, 0x13f +/* 0034CC 800280CC 3C15F510 */ lui $s5, 0xf510 +/* 0034D0 800280D0 36B5A000 */ ori $s5, $s5, 0xa000 +/* 0034D4 800280D4 AFAE0010 */ sw $t6, 0x10($sp) +/* 0034D8 800280D8 3C0E074F */ lui $t6, 0x74f +/* 0034DC 800280DC 35CEC014 */ ori $t6, $t6, 0xc014 +/* 0034E0 800280E0 3C17E700 */ lui $s7, 0xe700 +/* 0034E4 800280E4 3C1E004F */ lui $fp, 0x4f +/* 0034E8 800280E8 37DEC014 */ ori $fp, $fp, 0xc014 +/* 0034EC 800280EC 0320C02D */ daddu $t8, $t9, $zero +/* 0034F0 800280F0 24140018 */ addiu $s4, $zero, 0x18 +/* 0034F4 800280F4 0320982D */ daddu $s3, $t9, $zero +/* 0034F8 800280F8 AFAE0014 */ sw $t6, 0x14($sp) +/* 0034FC 800280FC 8E420000 */ lw $v0, ($s2) +/* 003500 80028100 02E0182D */ daddu $v1, $s7, $zero +/* 003504 80028104 0040202D */ daddu $a0, $v0, $zero +/* 003508 80028108 24420008 */ addiu $v0, $v0, 8 +/* 00350C 8002810C AE420000 */ sw $v0, ($s2) +/* 003510 80028110 AC830000 */ sw $v1, ($a0) +/* 003514 80028114 24430008 */ addiu $v1, $v0, 8 +/* 003518 80028118 AC800004 */ sw $zero, 4($a0) +/* 00351C 8002811C AE430000 */ sw $v1, ($s2) +/* 003520 80028120 3C03ED00 */ lui $v1, 0xed00 +/* 003524 80028124 AC430000 */ sw $v1, ($v0) +/* 003528 80028128 24430010 */ addiu $v1, $v0, 0x10 +/* 00352C 8002812C AC460004 */ sw $a2, 4($v0) +/* 003530 80028130 AE430000 */ sw $v1, ($s2) +/* 003534 80028134 3C030030 */ lui $v1, 0x30 +/* 003538 80028138 AC43000C */ sw $v1, 0xc($v0) +/* 00353C 8002813C 00541821 */ addu $v1, $v0, $s4 +/* 003540 80028140 AC450008 */ sw $a1, 8($v0) +/* 003544 80028144 AE430000 */ sw $v1, ($s2) +/* 003548 80028148 3C04800A */ lui $a0, 0x800a +/* 00354C 8002814C 8C84A64C */ lw $a0, -0x59b4($a0) +/* 003550 80028150 24430020 */ addiu $v1, $v0, 0x20 +/* 003554 80028154 AC470010 */ sw $a3, 0x10($v0) +/* 003558 80028158 AC400014 */ sw $zero, 0x14($v0) +/* 00355C 8002815C AE430000 */ sw $v1, ($s2) +/* 003560 80028160 24430028 */ addiu $v1, $v0, 0x28 +/* 003564 80028164 AC480018 */ sw $t0, 0x18($v0) +/* 003568 80028168 AC44001C */ sw $a0, 0x1c($v0) +/* 00356C 8002816C AE430000 */ sw $v1, ($s2) +/* 003570 80028170 3C03F700 */ lui $v1, 0xf700 +/* 003574 80028174 AC430020 */ sw $v1, 0x20($v0) +/* 003578 80028178 24430030 */ addiu $v1, $v0, 0x30 +/* 00357C 8002817C AC490024 */ sw $t1, 0x24($v0) +/* 003580 80028180 AE430000 */ sw $v1, ($s2) +/* 003584 80028184 24430038 */ addiu $v1, $v0, 0x38 +/* 003588 80028188 AC4A0028 */ sw $t2, 0x28($v0) +/* 00358C 8002818C AC40002C */ sw $zero, 0x2c($v0) +/* 003590 80028190 AE430000 */ sw $v1, ($s2) +/* 003594 80028194 24430040 */ addiu $v1, $v0, 0x40 +/* 003598 80028198 AC450030 */ sw $a1, 0x30($v0) +/* 00359C 8002819C AC400034 */ sw $zero, 0x34($v0) +/* 0035A0 800281A0 AE430000 */ sw $v1, ($s2) +/* 0035A4 800281A4 24430048 */ addiu $v1, $v0, 0x48 +/* 0035A8 800281A8 AC4B0038 */ sw $t3, 0x38($v0) +/* 0035AC 800281AC AC40003C */ sw $zero, 0x3c($v0) +/* 0035B0 800281B0 AE430000 */ sw $v1, ($s2) +/* 0035B4 800281B4 24430050 */ addiu $v1, $v0, 0x50 +/* 0035B8 800281B8 AC4C0040 */ sw $t4, 0x40($v0) +/* 0035BC 800281BC AC400044 */ sw $zero, 0x44($v0) +/* 0035C0 800281C0 AE430000 */ sw $v1, ($s2) +/* 0035C4 800281C4 24430058 */ addiu $v1, $v0, 0x58 +/* 0035C8 800281C8 AC470048 */ sw $a3, 0x48($v0) +/* 0035CC 800281CC AC4D004C */ sw $t5, 0x4c($v0) +/* 0035D0 800281D0 AE430000 */ sw $v1, ($s2) +/* 0035D4 800281D4 AC4F0050 */ sw $t7, 0x50($v0) +/* 0035D8 800281D8 8FAE0018 */ lw $t6, 0x18($sp) +/* 0035DC 800281DC 24430060 */ addiu $v1, $v0, 0x60 +/* 0035E0 800281E0 AC4E0054 */ sw $t6, 0x54($v0) +/* 0035E4 800281E4 AE430000 */ sw $v1, ($s2) +/* 0035E8 800281E8 3C03FA00 */ lui $v1, 0xfa00 +/* 0035EC 800281EC AC430058 */ sw $v1, 0x58($v0) +/* 0035F0 800281F0 92C40003 */ lbu $a0, 3($s6) +/* 0035F4 800281F4 24430068 */ addiu $v1, $v0, 0x68 +/* 0035F8 800281F8 AE430000 */ sw $v1, ($s2) +/* 0035FC 800281FC AC500060 */ sw $s0, 0x60($v0) +/* 003600 80028200 AC400064 */ sw $zero, 0x64($v0) +/* 003604 80028204 00912025 */ or $a0, $a0, $s1 +/* 003608 80028208 AC44005C */ sw $a0, 0x5c($v0) +.L8002820C: +/* 00360C 8002820C 3C070400 */ lui $a3, 0x400 +/* 003610 80028210 34E70400 */ ori $a3, $a3, 0x400 +/* 003614 80028214 33060FFF */ andi $a2, $t8, 0xfff +/* 003618 80028218 27180018 */ addiu $t8, $t8, 0x18 +/* 00361C 8002821C 32850FFF */ andi $a1, $s4, 0xfff +/* 003620 80028220 26940018 */ addiu $s4, $s4, 0x18 +/* 003624 80028224 27390001 */ addiu $t9, $t9, 1 +/* 003628 80028228 8E430000 */ lw $v1, ($s2) +/* 00362C 8002822C 3C02800A */ lui $v0, 0x800a +/* 003630 80028230 8C42A5DC */ lw $v0, -0x5a24($v0) +/* 003634 80028234 0060202D */ daddu $a0, $v1, $zero +/* 003638 80028238 24630008 */ addiu $v1, $v1, 8 +/* 00363C 8002823C 00531021 */ addu $v0, $v0, $s3 +/* 003640 80028240 AE430000 */ sw $v1, ($s2) +/* 003644 80028244 8FAE0010 */ lw $t6, 0x10($sp) +/* 003648 80028248 26730F00 */ addiu $s3, $s3, 0xf00 +/* 00364C 8002824C AC820004 */ sw $v0, 4($a0) +/* 003650 80028250 24620008 */ addiu $v0, $v1, 8 +/* 003654 80028254 AC8E0000 */ sw $t6, ($a0) +/* 003658 80028258 3C0E0700 */ lui $t6, 0x700 +/* 00365C 8002825C AE420000 */ sw $v0, ($s2) +/* 003660 80028260 24620010 */ addiu $v0, $v1, 0x10 +/* 003664 80028264 AC6E0004 */ sw $t6, 4($v1) +/* 003668 80028268 3C0EE600 */ lui $t6, 0xe600 +/* 00366C 8002826C AC750000 */ sw $s5, ($v1) +/* 003670 80028270 AE420000 */ sw $v0, ($s2) +/* 003674 80028274 24620018 */ addiu $v0, $v1, 0x18 +/* 003678 80028278 AC6E0008 */ sw $t6, 8($v1) +/* 00367C 8002827C 3C0EF400 */ lui $t6, 0xf400 +/* 003680 80028280 AC60000C */ sw $zero, 0xc($v1) +/* 003684 80028284 AE420000 */ sw $v0, ($s2) +/* 003688 80028288 AC6E0010 */ sw $t6, 0x10($v1) +/* 00368C 8002828C 8FAE0014 */ lw $t6, 0x14($sp) +/* 003690 80028290 24620020 */ addiu $v0, $v1, 0x20 +/* 003694 80028294 AC6E0014 */ sw $t6, 0x14($v1) +/* 003698 80028298 AE420000 */ sw $v0, ($s2) +/* 00369C 8002829C 24620028 */ addiu $v0, $v1, 0x28 +/* 0036A0 800282A0 AC770018 */ sw $s7, 0x18($v1) +/* 0036A4 800282A4 AC60001C */ sw $zero, 0x1c($v1) +/* 0036A8 800282A8 AE420000 */ sw $v0, ($s2) +/* 0036AC 800282AC 24620030 */ addiu $v0, $v1, 0x30 +/* 0036B0 800282B0 3C0EF200 */ lui $t6, 0xf200 +/* 0036B4 800282B4 AC750020 */ sw $s5, 0x20($v1) +/* 0036B8 800282B8 AC600024 */ sw $zero, 0x24($v1) +/* 0036BC 800282BC AE420000 */ sw $v0, ($s2) +/* 0036C0 800282C0 24620038 */ addiu $v0, $v1, 0x38 +/* 0036C4 800282C4 AC6E0028 */ sw $t6, 0x28($v1) +/* 0036C8 800282C8 3C0EE450 */ lui $t6, 0xe450 +/* 0036CC 800282CC 00AE2825 */ or $a1, $a1, $t6 +/* 0036D0 800282D0 AC7E002C */ sw $fp, 0x2c($v1) +/* 0036D4 800282D4 AE420000 */ sw $v0, ($s2) +/* 0036D8 800282D8 24620040 */ addiu $v0, $v1, 0x40 +/* 0036DC 800282DC AC650030 */ sw $a1, 0x30($v1) +/* 0036E0 800282E0 AC660034 */ sw $a2, 0x34($v1) +/* 0036E4 800282E4 AE420000 */ sw $v0, ($s2) +/* 0036E8 800282E8 3C02E100 */ lui $v0, 0xe100 +/* 0036EC 800282EC AC620038 */ sw $v0, 0x38($v1) +/* 0036F0 800282F0 3C02FFE0 */ lui $v0, 0xffe0 +/* 0036F4 800282F4 AC62003C */ sw $v0, 0x3c($v1) +/* 0036F8 800282F8 24620048 */ addiu $v0, $v1, 0x48 +/* 0036FC 800282FC AE420000 */ sw $v0, ($s2) +/* 003700 80028300 3C02F100 */ lui $v0, 0xf100 +/* 003704 80028304 AC620040 */ sw $v0, 0x40($v1) +/* 003708 80028308 24620050 */ addiu $v0, $v1, 0x50 +/* 00370C 8002830C AC670044 */ sw $a3, 0x44($v1) +/* 003710 80028310 AE420000 */ sw $v0, ($s2) +/* 003714 80028314 2B220028 */ slti $v0, $t9, 0x28 +/* 003718 80028318 AC770048 */ sw $s7, 0x48($v1) +/* 00371C 8002831C 1440FFBB */ bnez $v0, .L8002820C +/* 003720 80028320 AC60004C */ sw $zero, 0x4c($v1) +/* 003724 80028324 0800A1E4 */ j .L80028790 +/* 003728 80028328 00000000 */ nop + +.L8002832C: +/* 00372C 8002832C 3C02800A */ lui $v0, 0x800a +/* 003730 80028330 8C42A650 */ lw $v0, -0x59b0($v0) +/* 003734 80028334 30420008 */ andi $v0, $v0, 8 +/* 003738 80028338 1040000E */ beqz $v0, .L80028374 +/* 00373C 8002833C 3C05FF10 */ lui $a1, 0xff10 +/* 003740 80028340 34A5013F */ ori $a1, $a1, 0x13f +/* 003744 80028344 3C03800A */ lui $v1, 0x800a +/* 003748 80028348 2463A66C */ addiu $v1, $v1, -0x5994 +/* 00374C 8002834C 8C620000 */ lw $v0, ($v1) +/* 003750 80028350 3C04800A */ lui $a0, 0x800a +/* 003754 80028354 8C84A64C */ lw $a0, -0x59b4($a0) +/* 003758 80028358 0040802D */ daddu $s0, $v0, $zero +/* 00375C 8002835C 24420008 */ addiu $v0, $v0, 8 +/* 003760 80028360 AC620000 */ sw $v0, ($v1) +/* 003764 80028364 0C0187A4 */ jal osVirtualToPhysical +/* 003768 80028368 AE050000 */ sw $a1, ($s0) +/* 00376C 8002836C 0800A1ED */ j .L800287B4 +/* 003770 80028370 AE020004 */ sw $v0, 4($s0) + +.L80028374: +/* 003774 80028374 3C06E300 */ lui $a2, 0xe300 +/* 003778 80028378 34C60A01 */ ori $a2, $a2, 0xa01 +/* 00377C 8002837C 3C07E200 */ lui $a3, 0xe200 +/* 003780 80028380 34E7001C */ ori $a3, $a3, 0x1c +/* 003784 80028384 3C08FF10 */ lui $t0, 0xff10 +/* 003788 80028388 3508013F */ ori $t0, $t0, 0x13f +/* 00378C 8002838C 3C09FFFC */ lui $t1, 0xfffc +/* 003790 80028390 3529FFFC */ ori $t1, $t1, 0xfffc +/* 003794 80028394 3C0AF64F */ lui $t2, 0xf64f +/* 003798 80028398 354AC3BC */ ori $t2, $t2, 0xc3bc +/* 00379C 8002839C 3C11800A */ lui $s1, 0x800a +/* 0037A0 800283A0 2631A66C */ addiu $s1, $s1, -0x5994 +/* 0037A4 800283A4 3C02FE00 */ lui $v0, 0xfe00 +/* 0037A8 800283A8 8E300000 */ lw $s0, ($s1) +/* 0037AC 800283AC 3C04800A */ lui $a0, 0x800a +/* 0037B0 800283B0 8C84A64C */ lw $a0, -0x59b4($a0) +/* 0037B4 800283B4 0200282D */ daddu $a1, $s0, $zero +/* 0037B8 800283B8 26100008 */ addiu $s0, $s0, 8 +/* 0037BC 800283BC AE300000 */ sw $s0, ($s1) +/* 0037C0 800283C0 3C03800A */ lui $v1, 0x800a +/* 0037C4 800283C4 8C63A5DC */ lw $v1, -0x5a24($v1) +/* 0037C8 800283C8 3C12F700 */ lui $s2, 0xf700 +/* 0037CC 800283CC ACA20000 */ sw $v0, ($a1) +/* 0037D0 800283D0 3C028000 */ lui $v0, 0x8000 +/* 0037D4 800283D4 00621821 */ addu $v1, $v1, $v0 +/* 0037D8 800283D8 26020008 */ addiu $v0, $s0, 8 +/* 0037DC 800283DC ACA30004 */ sw $v1, 4($a1) +/* 0037E0 800283E0 AE220000 */ sw $v0, ($s1) +/* 0037E4 800283E4 3C020030 */ lui $v0, 0x30 +/* 0037E8 800283E8 AE020004 */ sw $v0, 4($s0) +/* 0037EC 800283EC 26020010 */ addiu $v0, $s0, 0x10 +/* 0037F0 800283F0 AE060000 */ sw $a2, ($s0) +/* 0037F4 800283F4 AE220000 */ sw $v0, ($s1) +/* 0037F8 800283F8 26020018 */ addiu $v0, $s0, 0x18 +/* 0037FC 800283FC AE070008 */ sw $a3, 8($s0) +/* 003800 80028400 AE00000C */ sw $zero, 0xc($s0) +/* 003804 80028404 AE220000 */ sw $v0, ($s1) +/* 003808 80028408 26020020 */ addiu $v0, $s0, 0x20 +/* 00380C 8002840C AE080010 */ sw $t0, 0x10($s0) +/* 003810 80028410 AE030014 */ sw $v1, 0x14($s0) +/* 003814 80028414 AE220000 */ sw $v0, ($s1) +/* 003818 80028418 26020028 */ addiu $v0, $s0, 0x28 +/* 00381C 8002841C AE120018 */ sw $s2, 0x18($s0) +/* 003820 80028420 AE09001C */ sw $t1, 0x1c($s0) +/* 003824 80028424 AE220000 */ sw $v0, ($s1) +/* 003828 80028428 26020030 */ addiu $v0, $s0, 0x30 +/* 00382C 8002842C AE0A0020 */ sw $t2, 0x20($s0) +/* 003830 80028430 AE000024 */ sw $zero, 0x24($s0) +/* 003834 80028434 AE220000 */ sw $v0, ($s1) +/* 003838 80028438 3C02E700 */ lui $v0, 0xe700 +/* 00383C 8002843C AE020028 */ sw $v0, 0x28($s0) +/* 003840 80028440 26020038 */ addiu $v0, $s0, 0x38 +/* 003844 80028444 AE00002C */ sw $zero, 0x2c($s0) +/* 003848 80028448 AE220000 */ sw $v0, ($s1) +/* 00384C 8002844C 0C0187A4 */ jal osVirtualToPhysical +/* 003850 80028450 AE080030 */ sw $t0, 0x30($s0) +/* 003854 80028454 8E230000 */ lw $v1, ($s1) +/* 003858 80028458 AE020034 */ sw $v0, 0x34($s0) +/* 00385C 8002845C 0060282D */ daddu $a1, $v1, $zero +/* 003860 80028460 ACB20000 */ sw $s2, ($a1) +/* 003864 80028464 8664002C */ lh $a0, 0x2c($s3) +/* 003868 80028468 24630008 */ addiu $v1, $v1, 8 +/* 00386C 8002846C AE230000 */ sw $v1, ($s1) +/* 003870 80028470 8663002E */ lh $v1, 0x2e($s3) +/* 003874 80028474 96620030 */ lhu $v0, 0x30($s3) +/* 003878 80028478 00042200 */ sll $a0, $a0, 8 +/* 00387C 8002847C 3084F800 */ andi $a0, $a0, 0xf800 +/* 003880 80028480 000318C0 */ sll $v1, $v1, 3 +/* 003884 80028484 306307C0 */ andi $v1, $v1, 0x7c0 +/* 003888 80028488 00832025 */ or $a0, $a0, $v1 +/* 00388C 8002848C 00021082 */ srl $v0, $v0, 2 +/* 003890 80028490 3042003E */ andi $v0, $v0, 0x3e +/* 003894 80028494 00822025 */ or $a0, $a0, $v0 +/* 003898 80028498 34820001 */ ori $v0, $a0, 1 +/* 00389C 8002849C 00021400 */ sll $v0, $v0, 0x10 +/* 0038A0 800284A0 34420001 */ ori $v0, $v0, 1 +/* 0038A4 800284A4 3C038007 */ lui $v1, 0x8007 +/* 0038A8 800284A8 8C63419C */ lw $v1, 0x419c($v1) +/* 0038AC 800284AC 00441025 */ or $v0, $v0, $a0 +/* 0038B0 800284B0 ACA20004 */ sw $v0, 4($a1) +/* 0038B4 800284B4 8470014A */ lh $s0, 0x14a($v1) +/* 0038B8 800284B8 8462014E */ lh $v0, 0x14e($v1) +/* 0038BC 800284BC 8471014C */ lh $s1, 0x14c($v1) +/* 0038C0 800284C0 0202A021 */ addu $s4, $s0, $v0 +/* 0038C4 800284C4 84620150 */ lh $v0, 0x150($v1) +/* 0038C8 800284C8 8663000E */ lh $v1, 0xe($s3) +/* 0038CC 800284CC 02229021 */ addu $s2, $s1, $v0 +/* 0038D0 800284D0 0203102A */ slt $v0, $s0, $v1 +/* 0038D4 800284D4 54400001 */ bnel $v0, $zero, .L800284DC +/* 0038D8 800284D8 0060802D */ daddu $s0, $v1, $zero +.L800284DC: +/* 0038DC 800284DC 86640010 */ lh $a0, 0x10($s3) +/* 0038E0 800284E0 0224102A */ slt $v0, $s1, $a0 +/* 0038E4 800284E4 54400001 */ bnel $v0, $zero, .L800284EC +/* 0038E8 800284E8 0080882D */ daddu $s1, $a0, $zero +.L800284EC: +/* 0038EC 800284EC 8662000A */ lh $v0, 0xa($s3) +/* 0038F0 800284F0 00621821 */ addu $v1, $v1, $v0 +/* 0038F4 800284F4 0074102A */ slt $v0, $v1, $s4 +/* 0038F8 800284F8 54400001 */ bnel $v0, $zero, .L80028500 +/* 0038FC 800284FC 0060A02D */ daddu $s4, $v1, $zero +.L80028500: +/* 003900 80028500 8662000C */ lh $v0, 0xc($s3) +/* 003904 80028504 00821821 */ addu $v1, $a0, $v0 +/* 003908 80028508 0072102A */ slt $v0, $v1, $s2 +/* 00390C 8002850C 54400001 */ bnel $v0, $zero, .L80028514 +/* 003910 80028510 0060902D */ daddu $s2, $v1, $zero +.L80028514: +/* 003914 80028514 06020001 */ bltzl $s0, .L8002851C +/* 003918 80028518 0000802D */ daddu $s0, $zero, $zero +.L8002851C: +/* 00391C 8002851C 06220001 */ bltzl $s1, .L80028524 +/* 003920 80028520 0000882D */ daddu $s1, $zero, $zero +.L80028524: +/* 003924 80028524 5A800001 */ blezl $s4, .L8002852C +/* 003928 80028528 24140001 */ addiu $s4, $zero, 1 +.L8002852C: +/* 00392C 8002852C 5A400001 */ blezl $s2, .L80028534 +/* 003930 80028530 24120001 */ addiu $s2, $zero, 1 +.L80028534: +/* 003934 80028534 2A020140 */ slti $v0, $s0, 0x140 +/* 003938 80028538 50400001 */ beql $v0, $zero, .L80028540 +/* 00393C 8002853C 2410013F */ addiu $s0, $zero, 0x13f +.L80028540: +/* 003940 80028540 2A2200F0 */ slti $v0, $s1, 0xf0 +/* 003944 80028544 50400001 */ beql $v0, $zero, .L8002854C +/* 003948 80028548 241100EF */ addiu $s1, $zero, 0xef +.L8002854C: +/* 00394C 8002854C 2A820141 */ slti $v0, $s4, 0x141 +/* 003950 80028550 50400001 */ beql $v0, $zero, .L80028558 +/* 003954 80028554 24140140 */ addiu $s4, $zero, 0x140 +.L80028558: +/* 003958 80028558 2A4200F1 */ slti $v0, $s2, 0xf1 +/* 00395C 8002855C 50400001 */ beql $v0, $zero, .L80028564 +/* 003960 80028560 241200F0 */ addiu $s2, $zero, 0xf0 +.L80028564: +/* 003964 80028564 3C028007 */ lui $v0, 0x8007 +/* 003968 80028568 8C42419C */ lw $v0, 0x419c($v0) +/* 00396C 8002856C 94420148 */ lhu $v0, 0x148($v0) +/* 003970 80028570 30420001 */ andi $v0, $v0, 1 +/* 003974 80028574 14400017 */ bnez $v0, .L800285D4 +/* 003978 80028578 3C04F600 */ lui $a0, 0xf600 +/* 00397C 8002857C 3C03800A */ lui $v1, 0x800a +/* 003980 80028580 2463A66C */ addiu $v1, $v1, -0x5994 +/* 003984 80028584 8C620000 */ lw $v0, ($v1) +/* 003988 80028588 0040282D */ daddu $a1, $v0, $zero +/* 00398C 8002858C 24420008 */ addiu $v0, $v0, 8 +/* 003990 80028590 AC620000 */ sw $v0, ($v1) +/* 003994 80028594 2683FFFF */ addiu $v1, $s4, -1 +/* 003998 80028598 306303FF */ andi $v1, $v1, 0x3ff +/* 00399C 8002859C 00031B80 */ sll $v1, $v1, 0xe +/* 0039A0 800285A0 2642FFFF */ addiu $v0, $s2, -1 +/* 0039A4 800285A4 304203FF */ andi $v0, $v0, 0x3ff +/* 0039A8 800285A8 00021080 */ sll $v0, $v0, 2 +/* 0039AC 800285AC 00441025 */ or $v0, $v0, $a0 +/* 0039B0 800285B0 00621825 */ or $v1, $v1, $v0 +/* 0039B4 800285B4 ACA30000 */ sw $v1, ($a1) +/* 0039B8 800285B8 320303FF */ andi $v1, $s0, 0x3ff +/* 0039BC 800285BC 00031B80 */ sll $v1, $v1, 0xe +/* 0039C0 800285C0 322203FF */ andi $v0, $s1, 0x3ff +/* 0039C4 800285C4 00021080 */ sll $v0, $v0, 2 +/* 0039C8 800285C8 00621825 */ or $v1, $v1, $v0 +/* 0039CC 800285CC 0800A177 */ j .L800285DC +/* 0039D0 800285D0 ACA30004 */ sw $v1, 4($a1) + +.L800285D4: +/* 0039D4 800285D4 0C0517B0 */ jal func_80145EC0 +/* 0039D8 800285D8 00000000 */ nop +.L800285DC: +/* 0039DC 800285DC 3C04E300 */ lui $a0, 0xe300 +/* 0039E0 800285E0 34840A01 */ ori $a0, $a0, 0xa01 +/* 0039E4 800285E4 3C05E200 */ lui $a1, 0xe200 +/* 0039E8 800285E8 34A5001C */ ori $a1, $a1, 0x1c +/* 0039EC 800285EC 3C060001 */ lui $a2, 1 +/* 0039F0 800285F0 3C08800A */ lui $t0, 0x800a +/* 0039F4 800285F4 2508A66C */ addiu $t0, $t0, -0x5994 +/* 0039F8 800285F8 34C60001 */ ori $a2, $a2, 1 +/* 0039FC 800285FC 8D070000 */ lw $a3, ($t0) +/* 003A00 80028600 3C03E700 */ lui $v1, 0xe700 +/* 003A04 80028604 00E0102D */ daddu $v0, $a3, $zero +/* 003A08 80028608 24E70008 */ addiu $a3, $a3, 8 +/* 003A0C 8002860C AD070000 */ sw $a3, ($t0) +/* 003A10 80028610 AC430000 */ sw $v1, ($v0) +/* 003A14 80028614 AC400004 */ sw $zero, 4($v0) +/* 003A18 80028618 24E20008 */ addiu $v0, $a3, 8 +/* 003A1C 8002861C AD020000 */ sw $v0, ($t0) +/* 003A20 80028620 3C020030 */ lui $v0, 0x30 +/* 003A24 80028624 ACE20004 */ sw $v0, 4($a3) +/* 003A28 80028628 24E20010 */ addiu $v0, $a3, 0x10 +/* 003A2C 8002862C ACE40000 */ sw $a0, ($a3) +/* 003A30 80028630 AD020000 */ sw $v0, ($t0) +/* 003A34 80028634 24E20018 */ addiu $v0, $a3, 0x18 +/* 003A38 80028638 ACE50008 */ sw $a1, 8($a3) +/* 003A3C 8002863C ACE0000C */ sw $zero, 0xc($a3) +/* 003A40 80028640 AD020000 */ sw $v0, ($t0) +/* 003A44 80028644 3C02F700 */ lui $v0, 0xf700 +/* 003A48 80028648 ACE20010 */ sw $v0, 0x10($a3) +/* 003A4C 8002864C 24E20020 */ addiu $v0, $a3, 0x20 +/* 003A50 80028650 ACE60014 */ sw $a2, 0x14($a3) +/* 003A54 80028654 AD020000 */ sw $v0, ($t0) +/* 003A58 80028658 ACE30018 */ sw $v1, 0x18($a3) +/* 003A5C 8002865C 1A20000F */ blez $s1, .L8002869C +/* 003A60 80028660 ACE0001C */ sw $zero, 0x1c($a3) +/* 003A64 80028664 3C03F64F */ lui $v1, 0xf64f +/* 003A68 80028668 3463C000 */ ori $v1, $v1, 0xc000 +/* 003A6C 8002866C 24E20028 */ addiu $v0, $a3, 0x28 +/* 003A70 80028670 AD020000 */ sw $v0, ($t0) +/* 003A74 80028674 2622FFFF */ addiu $v0, $s1, -1 +/* 003A78 80028678 304203FF */ andi $v0, $v0, 0x3ff +/* 003A7C 8002867C 00021080 */ sll $v0, $v0, 2 +/* 003A80 80028680 00431025 */ or $v0, $v0, $v1 +/* 003A84 80028684 ACE20020 */ sw $v0, 0x20($a3) +/* 003A88 80028688 24E20030 */ addiu $v0, $a3, 0x30 +/* 003A8C 8002868C ACE00024 */ sw $zero, 0x24($a3) +/* 003A90 80028690 AD020000 */ sw $v0, ($t0) +/* 003A94 80028694 ACE00028 */ sw $zero, 0x28($a3) +/* 003A98 80028698 ACE0002C */ sw $zero, 0x2c($a3) +.L8002869C: +/* 003A9C 8002869C 1A000015 */ blez $s0, .L800286F4 +/* 003AA0 800286A0 2603FFFF */ addiu $v1, $s0, -1 +/* 003AA4 800286A4 306303FF */ andi $v1, $v1, 0x3ff +/* 003AA8 800286A8 00031B80 */ sll $v1, $v1, 0xe +/* 003AAC 800286AC 2642FFFF */ addiu $v0, $s2, -1 +/* 003AB0 800286B0 304203FF */ andi $v0, $v0, 0x3ff +/* 003AB4 800286B4 00021080 */ sll $v0, $v0, 2 +/* 003AB8 800286B8 3C04F600 */ lui $a0, 0xf600 +/* 003ABC 800286BC 00441025 */ or $v0, $v0, $a0 +/* 003AC0 800286C0 00621825 */ or $v1, $v1, $v0 +/* 003AC4 800286C4 322203FF */ andi $v0, $s1, 0x3ff +/* 003AC8 800286C8 8D050000 */ lw $a1, ($t0) +/* 003ACC 800286CC 00021080 */ sll $v0, $v0, 2 +/* 003AD0 800286D0 00A0302D */ daddu $a2, $a1, $zero +/* 003AD4 800286D4 24A50008 */ addiu $a1, $a1, 8 +/* 003AD8 800286D8 AD050000 */ sw $a1, ($t0) +/* 003ADC 800286DC ACC20004 */ sw $v0, 4($a2) +/* 003AE0 800286E0 24A20008 */ addiu $v0, $a1, 8 +/* 003AE4 800286E4 ACC30000 */ sw $v1, ($a2) +/* 003AE8 800286E8 AD020000 */ sw $v0, ($t0) +/* 003AEC 800286EC ACA00000 */ sw $zero, ($a1) +/* 003AF0 800286F0 ACA00004 */ sw $zero, 4($a1) +.L800286F4: +/* 003AF4 800286F4 2A820140 */ slti $v0, $s4, 0x140 +/* 003AF8 800286F8 10400015 */ beqz $v0, .L80028750 +/* 003AFC 800286FC 3C03F64F */ lui $v1, 0xf64f +/* 003B00 80028700 3463C000 */ ori $v1, $v1, 0xc000 +/* 003B04 80028704 2642FFFF */ addiu $v0, $s2, -1 +/* 003B08 80028708 304203FF */ andi $v0, $v0, 0x3ff +/* 003B0C 8002870C 00021080 */ sll $v0, $v0, 2 +/* 003B10 80028710 00431025 */ or $v0, $v0, $v1 +/* 003B14 80028714 328303FF */ andi $v1, $s4, 0x3ff +/* 003B18 80028718 8D040000 */ lw $a0, ($t0) +/* 003B1C 8002871C 00031B80 */ sll $v1, $v1, 0xe +/* 003B20 80028720 0080282D */ daddu $a1, $a0, $zero +/* 003B24 80028724 24840008 */ addiu $a0, $a0, 8 +/* 003B28 80028728 AD040000 */ sw $a0, ($t0) +/* 003B2C 8002872C ACA20000 */ sw $v0, ($a1) +/* 003B30 80028730 322203FF */ andi $v0, $s1, 0x3ff +/* 003B34 80028734 00021080 */ sll $v0, $v0, 2 +/* 003B38 80028738 00621825 */ or $v1, $v1, $v0 +/* 003B3C 8002873C 24820008 */ addiu $v0, $a0, 8 +/* 003B40 80028740 ACA30004 */ sw $v1, 4($a1) +/* 003B44 80028744 AD020000 */ sw $v0, ($t0) +/* 003B48 80028748 AC800000 */ sw $zero, ($a0) +/* 003B4C 8002874C AC800004 */ sw $zero, 4($a0) +.L80028750: +/* 003B50 80028750 2A4200F0 */ slti $v0, $s2, 0xf0 +/* 003B54 80028754 1040000E */ beqz $v0, .L80028790 +/* 003B58 80028758 3C02F64F */ lui $v0, 0xf64f +/* 003B5C 8002875C 8D030000 */ lw $v1, ($t0) +/* 003B60 80028760 3442C3BC */ ori $v0, $v0, 0xc3bc +/* 003B64 80028764 0060202D */ daddu $a0, $v1, $zero +/* 003B68 80028768 24630008 */ addiu $v1, $v1, 8 +/* 003B6C 8002876C AD030000 */ sw $v1, ($t0) +/* 003B70 80028770 AC820000 */ sw $v0, ($a0) +/* 003B74 80028774 324203FF */ andi $v0, $s2, 0x3ff +/* 003B78 80028778 00021080 */ sll $v0, $v0, 2 +/* 003B7C 8002877C AC820004 */ sw $v0, 4($a0) +/* 003B80 80028780 24620008 */ addiu $v0, $v1, 8 +/* 003B84 80028784 AD020000 */ sw $v0, ($t0) +/* 003B88 80028788 AC600000 */ sw $zero, ($v1) +/* 003B8C 8002878C AC600004 */ sw $zero, 4($v1) +.L80028790: +/* 003B90 80028790 3C03800A */ lui $v1, 0x800a +/* 003B94 80028794 2463A66C */ addiu $v1, $v1, -0x5994 +/* 003B98 80028798 8C620000 */ lw $v0, ($v1) +/* 003B9C 8002879C 0040202D */ daddu $a0, $v0, $zero +/* 003BA0 800287A0 24420008 */ addiu $v0, $v0, 8 +/* 003BA4 800287A4 AC620000 */ sw $v0, ($v1) +/* 003BA8 800287A8 3C02E700 */ lui $v0, 0xe700 +/* 003BAC 800287AC AC820000 */ sw $v0, ($a0) +/* 003BB0 800287B0 AC800004 */ sw $zero, 4($a0) +.L800287B4: +/* 003BB4 800287B4 8FBF0044 */ lw $ra, 0x44($sp) +/* 003BB8 800287B8 8FBE0040 */ lw $fp, 0x40($sp) +/* 003BBC 800287BC 8FB7003C */ lw $s7, 0x3c($sp) +/* 003BC0 800287C0 8FB60038 */ lw $s6, 0x38($sp) +/* 003BC4 800287C4 8FB50034 */ lw $s5, 0x34($sp) +/* 003BC8 800287C8 8FB40030 */ lw $s4, 0x30($sp) +/* 003BCC 800287CC 8FB3002C */ lw $s3, 0x2c($sp) +/* 003BD0 800287D0 8FB20028 */ lw $s2, 0x28($sp) +/* 003BD4 800287D4 8FB10024 */ lw $s1, 0x24($sp) +/* 003BD8 800287D8 8FB00020 */ lw $s0, 0x20($sp) +/* 003BDC 800287DC 03E00008 */ jr $ra +/* 003BE0 800287E0 27BD0048 */ addiu $sp, $sp, 0x48 + +/* 003BE4 800287E4 00000000 */ nop +/* 003BE8 800287E8 00000000 */ nop +/* 003BEC 800287EC 00000000 */ nop + +.set reorder diff --git a/papermario/asm/code_1b40_len_20b0/gfx_draw_frame.s b/papermario/asm/code_1b40_len_20b0/gfx_draw_frame.s new file mode 100644 index 0000000000..e63d750820 --- /dev/null +++ b/papermario/asm/code_1b40_len_20b0/gfx_draw_frame.s @@ -0,0 +1,201 @@ +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches + +.include "globals.inc" + +gfx_draw_frame: +/* 001F08 80026B08 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 001F0C 80026B0C 3C04800A */ lui $a0, 0x800a +/* 001F10 80026B10 8C84A674 */ lw $a0, -0x598c($a0) +/* 001F14 80026B14 3C05800A */ lui $a1, 0x800a +/* 001F18 80026B18 24A5A66C */ addiu $a1, $a1, -0x5994 +/* 001F1C 80026B1C AFB00010 */ sw $s0, 0x10($sp) +/* 001F20 80026B20 3C10800A */ lui $s0, 0x800a +/* 001F24 80026B24 2610A650 */ addiu $s0, $s0, -0x59b0 +/* 001F28 80026B28 AFBF0018 */ sw $ra, 0x18($sp) +/* 001F2C 80026B2C AFB10014 */ sw $s1, 0x14($sp) +/* 001F30 80026B30 3C018007 */ lui $at, 0x8007 +/* 001F34 80026B34 A42041F0 */ sh $zero, 0x41f0($at) +/* 001F38 80026B38 8E020000 */ lw $v0, ($s0) +/* 001F3C 80026B3C 24830230 */ addiu $v1, $a0, 0x230 +/* 001F40 80026B40 30420008 */ andi $v0, $v0, 8 +/* 001F44 80026B44 10400007 */ beqz $v0, .L80026B64 +/* 001F48 80026B48 ACA30000 */ sw $v1, ($a1) +/* 001F4C 80026B4C 3C038007 */ lui $v1, 0x8007 +/* 001F50 80026B50 246341F4 */ addiu $v1, $v1, 0x41f4 +/* 001F54 80026B54 8C620000 */ lw $v0, ($v1) +/* 001F58 80026B58 38420001 */ xori $v0, $v0, 1 +/* 001F5C 80026B5C 08009B72 */ j .L80026DC8 +/* 001F60 80026B60 AC620000 */ sw $v0, ($v1) + +.L80026B64: +/* 001F64 80026B64 3C03DA38 */ lui $v1, 0xda38 +/* 001F68 80026B68 34630003 */ ori $v1, $v1, 3 +/* 001F6C 80026B6C 24820238 */ addiu $v0, $a0, 0x238 +/* 001F70 80026B70 ACA20000 */ sw $v0, ($a1) +/* 001F74 80026B74 3C028007 */ lui $v0, 0x8007 +/* 001F78 80026B78 244241A8 */ addiu $v0, $v0, 0x41a8 +/* 001F7C 80026B7C AC830230 */ sw $v1, 0x230($a0) +/* 001F80 80026B80 0C0B7698 */ jal func_802DDA60 +/* 001F84 80026B84 AC820234 */ sw $v0, 0x234($a0) +/* 001F88 80026B88 8E020000 */ lw $v0, ($s0) +/* 001F8C 80026B8C 30420002 */ andi $v0, $v0, 2 +/* 001F90 80026B90 14400003 */ bnez $v0, .L80026BA0 +/* 001F94 80026B94 00000000 */ nop +/* 001F98 80026B98 0C00B5CF */ jal render_frame +/* 001F9C 80026B9C 0000202D */ daddu $a0, $zero, $zero +.L80026BA0: +/* 001FA0 80026BA0 0C038098 */ jal func_800E0260 +/* 001FA4 80026BA4 00000000 */ nop +/* 001FA8 80026BA8 0C0B0FB9 */ jal func_802C3EE4 +/* 001FAC 80026BAC 00000000 */ nop +/* 001FB0 80026BB0 0C04E088 */ jal func_80138220 +/* 001FB4 80026BB4 00000000 */ nop +/* 001FB8 80026BB8 0C048D54 */ jal func_80123550 +/* 001FBC 80026BBC 00000000 */ nop +/* 001FC0 80026BC0 0C050884 */ jal func_80142210 +/* 001FC4 80026BC4 00000000 */ nop +/* 001FC8 80026BC8 0C0167E5 */ jal func_80059F94 +/* 001FCC 80026BCC 00000000 */ nop +/* 001FD0 80026BD0 0C044BD6 */ jal render_ui +/* 001FD4 80026BD4 00000000 */ nop +/* 001FD8 80026BD8 8E020000 */ lw $v0, ($s0) +/* 001FDC 80026BDC 3C030001 */ lui $v1, 1 +/* 001FE0 80026BE0 00431024 */ and $v0, $v0, $v1 +/* 001FE4 80026BE4 14400003 */ bnez $v0, .L80026BF4 +/* 001FE8 80026BE8 00000000 */ nop +/* 001FEC 80026BEC 0C051EB1 */ jal func_80147AC4 +/* 001FF0 80026BF0 00000000 */ nop +.L80026BF4: +/* 001FF4 80026BF4 8E020000 */ lw $v0, ($s0) +/* 001FF8 80026BF8 30420002 */ andi $v0, $v0, 2 +/* 001FFC 80026BFC 14400009 */ bnez $v0, .L80026C24 +/* 002000 80026C00 3C100010 */ lui $s0, 0x10 +/* 002004 80026C04 3C028007 */ lui $v0, 0x8007 +/* 002008 80026C08 8C42419C */ lw $v0, 0x419c($v0) +/* 00200C 80026C0C 80420078 */ lb $v0, 0x78($v0) +/* 002010 80026C10 14400004 */ bnez $v0, .L80026C24 +/* 002014 80026C14 00000000 */ nop +/* 002018 80026C18 0C00B5CF */ jal render_frame +/* 00201C 80026C1C 24040001 */ addiu $a0, $zero, 1 +/* 002020 80026C20 3C100010 */ lui $s0, 0x10 +.L80026C24: +/* 002024 80026C24 3C11800A */ lui $s1, 0x800a +/* 002028 80026C28 2631A650 */ addiu $s1, $s1, -0x59b0 +/* 00202C 80026C2C 8E220000 */ lw $v0, ($s1) +/* 002030 80026C30 36100010 */ ori $s0, $s0, 0x10 +/* 002034 80026C34 00501024 */ and $v0, $v0, $s0 +/* 002038 80026C38 14400003 */ bnez $v0, .L80026C48 +/* 00203C 80026C3C 00000000 */ nop +/* 002040 80026C40 0C049081 */ jal render_messages +/* 002044 80026C44 00000000 */ nop +.L80026C48: +/* 002048 80026C48 0C048D38 */ jal func_801234E0 +/* 00204C 80026C4C 00000000 */ nop +/* 002050 80026C50 0C0509C7 */ jal func_8014271C +/* 002054 80026C54 00000000 */ nop +/* 002058 80026C58 0C04E068 */ jal func_801381A0 +/* 00205C 80026C5C 00000000 */ nop +/* 002060 80026C60 8E220000 */ lw $v0, ($s1) +/* 002064 80026C64 24030010 */ addiu $v1, $zero, 0x10 +/* 002068 80026C68 00501024 */ and $v0, $v0, $s0 +/* 00206C 80026C6C 14430003 */ bne $v0, $v1, .L80026C7C +/* 002070 80026C70 00000000 */ nop +/* 002074 80026C74 0C049081 */ jal render_messages +/* 002078 80026C78 00000000 */ nop +.L80026C7C: +/* 00207C 80026C7C 0C00AEA0 */ jal func_8002BA80 +/* 002080 80026C80 00000000 */ nop +/* 002084 80026C84 8E220000 */ lw $v0, ($s1) +/* 002088 80026C88 3C030010 */ lui $v1, 0x10 +/* 00208C 80026C8C 00431024 */ and $v0, $v0, $v1 +/* 002090 80026C90 10400003 */ beqz $v0, .L80026CA0 +/* 002094 80026C94 00000000 */ nop +/* 002098 80026C98 0C049081 */ jal render_messages +/* 00209C 80026C9C 00000000 */ nop +.L80026CA0: +/* 0020A0 80026CA0 8E220000 */ lw $v0, ($s1) +/* 0020A4 80026CA4 3C030001 */ lui $v1, 1 +/* 0020A8 80026CA8 00431024 */ and $v0, $v0, $v1 +/* 0020AC 80026CAC 10400003 */ beqz $v0, .L80026CBC +/* 0020B0 80026CB0 00000000 */ nop +/* 0020B4 80026CB4 0C051EB1 */ jal func_80147AC4 +/* 0020B8 80026CB8 00000000 */ nop +.L80026CBC: +/* 0020BC 80026CBC 0C044BF1 */ jal func_80112FC4 +/* 0020C0 80026CC0 00000000 */ nop +/* 0020C4 80026CC4 8E220000 */ lw $v0, ($s1) +/* 0020C8 80026CC8 30420020 */ andi $v0, $v0, 0x20 +/* 0020CC 80026CCC 10400010 */ beqz $v0, .L80026D10 +/* 0020D0 80026CD0 00000000 */ nop +/* 0020D4 80026CD4 3C038007 */ lui $v1, 0x8007 +/* 0020D8 80026CD8 846341A2 */ lh $v1, 0x41a2($v1) +/* 0020DC 80026CDC 28620002 */ slti $v0, $v1, 2 +/* 0020E0 80026CE0 1040000B */ beqz $v0, .L80026D10 +/* 0020E4 80026CE4 00000000 */ nop +/* 0020E8 80026CE8 04600009 */ bltz $v1, .L80026D10 +/* 0020EC 80026CEC 24040007 */ addiu $a0, $zero, 7 +/* 0020F0 80026CF0 3C028007 */ lui $v0, 0x8007 +/* 0020F4 80026CF4 844241A0 */ lh $v0, 0x41a0($v0) +/* 0020F8 80026CF8 44820000 */ mtc1 $v0, $f0 +/* 0020FC 80026CFC 00000000 */ nop +/* 002100 80026D00 46800020 */ cvt.s.w $f0, $f0 +/* 002104 80026D04 44050000 */ mfc1 $a1, $f0 +/* 002108 80026D08 0C04DAA0 */ jal func_80136A80 +/* 00210C 80026D0C 0000302D */ daddu $a2, $zero, $zero +.L80026D10: +/* 002110 80026D10 3C02800A */ lui $v0, 0x800a +/* 002114 80026D14 8C42A66C */ lw $v0, -0x5994($v0) +/* 002118 80026D18 3C03800A */ lui $v1, 0x800a +/* 00211C 80026D1C 8C63A674 */ lw $v1, -0x598c($v1) +/* 002120 80026D20 2442FDD0 */ addiu $v0, $v0, -0x230 +/* 002124 80026D24 00431023 */ subu $v0, $v0, $v1 +/* 002128 80026D28 000210C2 */ srl $v0, $v0, 3 +/* 00212C 80026D2C 28422080 */ slti $v0, $v0, 0x2080 +/* 002130 80026D30 54400003 */ bnel $v0, $zero, .L80026D40 +/* 002134 80026D34 0000302D */ daddu $a2, $zero, $zero +.L80026D38: +/* 002138 80026D38 08009B4E */ j .L80026D38 +/* 00213C 80026D3C 00000000 */ nop + +.L80026D40: +/* 002140 80026D40 3C070004 */ lui $a3, 4 +/* 002144 80026D44 3C08800A */ lui $t0, 0x800a +/* 002148 80026D48 2508A66C */ addiu $t0, $t0, -0x5994 +/* 00214C 80026D4C 34E70001 */ ori $a3, $a3, 1 +/* 002150 80026D50 8D030000 */ lw $v1, ($t0) +/* 002154 80026D54 3C02800A */ lui $v0, 0x800a +/* 002158 80026D58 8C42A674 */ lw $v0, -0x598c($v0) +/* 00215C 80026D5C 0060482D */ daddu $t1, $v1, $zero +/* 002160 80026D60 24630008 */ addiu $v1, $v1, 8 +/* 002164 80026D64 24440230 */ addiu $a0, $v0, 0x230 +/* 002168 80026D68 2465FDD8 */ addiu $a1, $v1, -0x228 +/* 00216C 80026D6C 00A22823 */ subu $a1, $a1, $v0 +/* 002170 80026D70 000528C3 */ sra $a1, $a1, 3 +/* 002174 80026D74 000528C0 */ sll $a1, $a1, 3 +/* 002178 80026D78 3C02E900 */ lui $v0, 0xe900 +/* 00217C 80026D7C AD030000 */ sw $v1, ($t0) +/* 002180 80026D80 AD220000 */ sw $v0, ($t1) +/* 002184 80026D84 24620008 */ addiu $v0, $v1, 8 +/* 002188 80026D88 AD200004 */ sw $zero, 4($t1) +/* 00218C 80026D8C AD020000 */ sw $v0, ($t0) +/* 002190 80026D90 3C02DF00 */ lui $v0, 0xdf00 +/* 002194 80026D94 AC620000 */ sw $v0, ($v1) +/* 002198 80026D98 0C00B331 */ jal nuGfxTaskStart +/* 00219C 80026D9C AC600004 */ sw $zero, 4($v1) +/* 0021A0 80026DA0 24050140 */ addiu $a1, $zero, 0x140 +/* 0021A4 80026DA4 240600F0 */ addiu $a2, $zero, 0xf0 +/* 0021A8 80026DA8 3C038007 */ lui $v1, 0x8007 +/* 0021AC 80026DAC 246341F4 */ addiu $v1, $v1, 0x41f4 +/* 0021B0 80026DB0 8C620000 */ lw $v0, ($v1) +/* 0021B4 80026DB4 3C04800A */ lui $a0, 0x800a +/* 0021B8 80026DB8 8C84A64C */ lw $a0, -0x59b4($a0) +/* 0021BC 80026DBC 38420001 */ xori $v0, $v0, 1 +/* 0021C0 80026DC0 0C00B224 */ jal func_8002C890 +/* 0021C4 80026DC4 AC620000 */ sw $v0, ($v1) +.L80026DC8: +/* 0021C8 80026DC8 8FBF0018 */ lw $ra, 0x18($sp) +/* 0021CC 80026DCC 8FB10014 */ lw $s1, 0x14($sp) +/* 0021D0 80026DD0 8FB00010 */ lw $s0, 0x10($sp) +/* 0021D4 80026DD4 03E00008 */ jr $ra +/* 0021D8 80026DD8 27BD0020 */ addiu $sp, $sp, 0x20 \ No newline at end of file diff --git a/papermario/asm/code_1b40_len_20b0/load_engine_data.s b/papermario/asm/code_1b40_len_20b0/load_engine_data.s new file mode 100644 index 0000000000..3387bbac5d --- /dev/null +++ b/papermario/asm/code_1b40_len_20b0/load_engine_data.s @@ -0,0 +1,180 @@ +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches + +.include "globals.inc" + +glabel load_engine_data +/* 0021DC 80026DDC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0021E0 80026DE0 3C040010 */ lui $a0, 0x10 +/* 0021E4 80026DE4 2484EE30 */ addiu $a0, $a0, -0x11d0 +/* 0021E8 80026DE8 3C050010 */ lui $a1, 0x10 +/* 0021EC 80026DEC 24A52610 */ addiu $a1, $a1, 0x2610 +/* 0021F0 80026DF0 3C06802E */ lui $a2, 0x802e +/* 0021F4 80026DF4 24C6BD40 */ addiu $a2, $a2, -0x42c0 +/* 0021F8 80026DF8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0021FC 80026DFC 0C00A5CF */ jal dma_copy +/* 002200 80026E00 AFB00010 */ sw $s0, 0x10($sp) +/* 002204 80026E04 3C040007 */ lui $a0, 7 +/* 002208 80026E08 248459B0 */ addiu $a0, $a0, 0x59b0 +/* 00220C 80026E0C 3C05000A */ lui $a1, 0xa +/* 002210 80026E10 24A55DD0 */ addiu $a1, $a1, 0x5dd0 +/* 002214 80026E14 3C06800E */ lui $a2, 0x800e +/* 002218 80026E18 24C6C500 */ addiu $a2, $a2, -0x3b00 +/* 00221C 80026E1C 0C00A5CF */ jal dma_copy +/* 002220 80026E20 00000000 */ nop +/* 002224 80026E24 3C04000E */ lui $a0, 0xe +/* 002228 80026E28 248479B0 */ addiu $a0, $a0, 0x79b0 +/* 00222C 80026E2C 3C050010 */ lui $a1, 0x10 +/* 002230 80026E30 24A5EE30 */ addiu $a1, $a1, -0x11d0 +/* 002234 80026E34 3C06802C */ lui $a2, 0x802c +/* 002238 80026E38 24C63000 */ addiu $a2, $a2, 0x3000 +/* 00223C 80026E3C 0C00A5CF */ jal dma_copy +/* 002240 80026E40 00000000 */ nop +/* 002244 80026E44 3C040010 */ lui $a0, 0x10 +/* 002248 80026E48 24842610 */ addiu $a0, $a0, 0x2610 +/* 00224C 80026E4C 3C050011 */ lui $a1, 0x11 +/* 002250 80026E50 24A5CC10 */ addiu $a1, $a1, -0x33f0 +/* 002254 80026E54 3C06802E */ lui $a2, 0x802e +/* 002258 80026E58 24C60D90 */ addiu $a2, $a2, 0xd90 +/* 00225C 80026E5C 0C00A5CF */ jal dma_copy +/* 002260 80026E60 00000000 */ nop +/* 002264 80026E64 3C04000A */ lui $a0, 0xa +/* 002268 80026E68 24845DD0 */ addiu $a0, $a0, 0x5dd0 +/* 00226C 80026E6C 3C05000E */ lui $a1, 0xe +/* 002270 80026E70 24A579B0 */ addiu $a1, $a1, 0x79b0 +/* 002274 80026E74 3C068011 */ lui $a2, 0x8011 +/* 002278 80026E78 24C6F6D0 */ addiu $a2, $a2, -0x930 +/* 00227C 80026E7C 0C00A5CF */ jal dma_copy +/* 002280 80026E80 00000000 */ nop +/* 002284 80026E84 3C040011 */ lui $a0, 0x11 +/* 002288 80026E88 2484CC10 */ addiu $a0, $a0, -0x33f0 +/* 00228C 80026E8C 3C050011 */ lui $a1, 0x11 +/* 002290 80026E90 24A5F1B0 */ addiu $a1, $a1, -0xe50 +/* 002294 80026E94 3C06802F */ lui $a2, 0x802f +/* 002298 80026E98 24C6B3D0 */ addiu $a2, $a2, -0x4c30 +/* 00229C 80026E9C 0C00A5CF */ jal dma_copy +/* 0022A0 80026EA0 00000000 */ nop +/* 0022A4 80026EA4 3C108007 */ lui $s0, 0x8007 +/* 0022A8 80026EA8 2610419C */ addiu $s0, $s0, 0x419c +/* 0022AC 80026EAC 8E020000 */ lw $v0, ($s0) +/* 0022B0 80026EB0 3C01800A */ lui $at, 0x800a +/* 0022B4 80026EB4 AC20A650 */ sw $zero, -0x59b0($at) +/* 0022B8 80026EB8 A0400079 */ sb $zero, 0x79($v0) +/* 0022BC 80026EBC 8E030000 */ lw $v1, ($s0) +/* 0022C0 80026EC0 24040001 */ addiu $a0, $zero, 1 +/* 0022C4 80026EC4 A064007A */ sb $a0, 0x7a($v1) +/* 0022C8 80026EC8 8E020000 */ lw $v0, ($s0) +/* 0022CC 80026ECC A4600148 */ sh $zero, 0x148($v1) +/* 0022D0 80026ED0 A044007C */ sb $a0, 0x7c($v0) +/* 0022D4 80026ED4 8E030000 */ lw $v1, ($s0) +/* 0022D8 80026ED8 2402FFFF */ addiu $v0, $zero, -1 +/* 0022DC 80026EDC A06200A8 */ sb $v0, 0xa8($v1) +/* 0022E0 80026EE0 8E020000 */ lw $v0, ($s0) +/* 0022E4 80026EE4 A04000AA */ sb $zero, 0xaa($v0) +/* 0022E8 80026EE8 8E020000 */ lw $v0, ($s0) +/* 0022EC 80026EEC A0400081 */ sb $zero, 0x81($v0) +/* 0022F0 80026EF0 8E030000 */ lw $v1, ($s0) +/* 0022F4 80026EF4 2402FFF8 */ addiu $v0, $zero, -8 +/* 0022F8 80026EF8 A0620082 */ sb $v0, 0x82($v1) +/* 0022FC 80026EFC 8E030000 */ lw $v1, ($s0) +/* 002300 80026F00 24020004 */ addiu $v0, $zero, 4 +/* 002304 80026F04 A0620083 */ sb $v0, 0x83($v1) +/* 002308 80026F08 8E020000 */ lw $v0, ($s0) +/* 00230C 80026F0C 3C01800A */ lui $at, 0x800a +/* 002310 80026F10 AC20A5D8 */ sw $zero, -0x5a28($at) +/* 002314 80026F14 A440013C */ sh $zero, 0x13c($v0) +/* 002318 80026F18 A0400075 */ sb $zero, 0x75($v0) +/* 00231C 80026F1C 8E030000 */ lw $v1, ($s0) +/* 002320 80026F20 24020005 */ addiu $v0, $zero, 5 +/* 002324 80026F24 3C018007 */ lui $at, 0x8007 +/* 002328 80026F28 A0224021 */ sb $v0, 0x4021($at) +/* 00232C 80026F2C 0C00AE13 */ jal fio_init_flash +/* 002330 80026F30 AC600168 */ sw $zero, 0x168($v1) +/* 002334 80026F34 0C00A20E */ jal func_80028838 +/* 002338 80026F38 00000000 */ nop +/* 00233C 80026F3C 0C00AB00 */ jal general_heap_create +/* 002340 80026F40 00000000 */ nop +/* 002344 80026F44 0C047624 */ jal func_8011D890 +/* 002348 80026F48 00000000 */ nop +/* 00234C 80026F4C 0C048C2E */ jal func_801230B8 +/* 002350 80026F50 00000000 */ nop +/* 002354 80026F54 0C0B0C77 */ jal clear_script_list +/* 002358 80026F58 00000000 */ nop +/* 00235C 80026F5C 0C00B7BD */ jal create_cameras_a +/* 002360 80026F60 00000000 */ nop +/* 002364 80026F64 0C037F14 */ jal clear_player_status +/* 002368 80026F68 00000000 */ nop +/* 00236C 80026F6C 0C0B763E */ jal func_802DD8F8 +/* 002370 80026F70 0000202D */ daddu $a0, $zero, $zero +/* 002374 80026F74 0C0482EC */ jal func_80120BB0 +/* 002378 80026F78 00000000 */ nop +/* 00237C 80026F7C 0C047889 */ jal func_8011E224 +/* 002380 80026F80 00000000 */ nop +/* 002384 80026F84 0C045751 */ jal clear_model_data +/* 002388 80026F88 00000000 */ nop +/* 00238C 80026F8C 0C052010 */ jal func_80148040 +/* 002390 80026F90 00000000 */ nop +/* 002394 80026F94 0C05177E */ jal func_80145DF8 +/* 002398 80026F98 00000000 */ nop +/* 00239C 80026F9C 0C048D98 */ jal clear_character_set +/* 0023A0 80026FA0 00000000 */ nop +/* 0023A4 80026FA4 0C048D9D */ jal clear_printers +/* 0023A8 80026FA8 00000000 */ nop +/* 0023AC 80026FAC 0C044AE6 */ jal func_80112B98 +/* 0023B0 80026FB0 00000000 */ nop +/* 0023B4 80026FB4 0C00E12F */ jal func_800384BC +/* 0023B8 80026FB8 00000000 */ nop +/* 0023BC 80026FBC 0C050440 */ jal func_80141100 +/* 0023C0 80026FC0 00000000 */ nop +/* 0023C4 80026FC4 0C0515A0 */ jal clear_trigger_data +/* 0023C8 80026FC8 00000000 */ nop +/* 0023CC 80026FCC 0C04432E */ jal func_80110CB8 +/* 0023D0 80026FD0 0000202D */ daddu $a0, $zero, $zero +/* 0023D4 80026FD4 0C039CE8 */ jal clear_player_data +/* 0023D8 80026FD8 00000000 */ nop +/* 0023DC 80026FDC 0C00F8CE */ jal func_8003E338 +/* 0023E0 80026FE0 00000000 */ nop +/* 0023E4 80026FE4 0C04E042 */ jal func_80138108 +/* 0023E8 80026FE8 00000000 */ nop +/* 0023EC 80026FEC 0C016727 */ jal func_80059C9C +/* 0023F0 80026FF0 00000000 */ nop +/* 0023F4 80026FF4 0C0514C8 */ jal clear_saved_variables +/* 0023F8 80026FF8 00000000 */ nop +/* 0023FC 80026FFC 0C04C3FC */ jal clear_item_entity_data +/* 002400 80027000 00000000 */ nop +/* 002404 80027004 0C052926 */ jal func_8014A498 +/* 002408 80027008 00000000 */ nop +/* 00240C 8002700C 0C051C8C */ jal func_80147230 +/* 002410 80027010 00000000 */ nop +/* 002414 80027014 0C052586 */ jal func_80149618 +/* 002418 80027018 00000000 */ nop +/* 00241C 8002701C 0C051CFC */ jal func_801473F0 +/* 002420 80027020 00000000 */ nop +/* 002424 80027024 0C00AE90 */ jal func_8002BA40 +/* 002428 80027028 00000000 */ nop +/* 00242C 8002702C 0C00A3B8 */ jal poll_rumble +/* 002430 80027030 00000000 */ nop +/* 002434 80027034 0000182D */ daddu $v1, $zero, $zero +/* 002438 80027038 24050003 */ addiu $a1, $zero, 3 +/* 00243C 8002703C 2404000C */ addiu $a0, $zero, 0xc +/* 002440 80027040 8E100000 */ lw $s0, ($s0) +.L80027044: +/* 002444 80027044 A6050050 */ sh $a1, 0x50($s0) +/* 002448 80027048 A6040048 */ sh $a0, 0x48($s0) +/* 00244C 8002704C 24630001 */ addiu $v1, $v1, 1 +/* 002450 80027050 28620004 */ slti $v0, $v1, 4 +/* 002454 80027054 1440FFFB */ bnez $v0, .L80027044 +/* 002458 80027058 26100002 */ addiu $s0, $s0, 2 +/* 00245C 8002705C 3C03800A */ lui $v1, 0x800a +/* 002460 80027060 2463A650 */ addiu $v1, $v1, -0x59b0 +/* 002464 80027064 8C620000 */ lw $v0, ($v1) +/* 002468 80027068 0000202D */ daddu $a0, $zero, $zero +/* 00246C 8002706C 34420008 */ ori $v0, $v0, 8 +/* 002470 80027070 0C00CD3C */ jal set_game_mode +/* 002474 80027074 AC620000 */ sw $v0, ($v1) +/* 002478 80027078 8FBF0014 */ lw $ra, 0x14($sp) +/* 00247C 8002707C 8FB00010 */ lw $s0, 0x10($sp) +/* 002480 80027080 03E00008 */ jr $ra +/* 002484 80027084 27BD0018 */ addiu $sp, $sp, 0x18 + +.set reorder diff --git a/papermario/asm/code_1b40_len_20b0/step_game_loop.s b/papermario/asm/code_1b40_len_20b0/step_game_loop.s new file mode 100644 index 0000000000..60c4def32a --- /dev/null +++ b/papermario/asm/code_1b40_len_20b0/step_game_loop.s @@ -0,0 +1,195 @@ +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches + +.include "globals.inc" + +step_game_loop: +/* 001B40 80026740 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 001B44 80026744 AFBF0018 */ sw $ra, 0x18($sp) +/* 001B48 80026748 AFB10014 */ sw $s1, 0x14($sp) +/* 001B4C 8002674C 0C00A21D */ jal update_input +/* 001B50 80026750 AFB00010 */ sw $s0, 0x10($sp) +/* 001B54 80026754 3C038007 */ lui $v1, 0x8007 +/* 001B58 80026758 8C63419C */ lw $v1, 0x419c($v1) +/* 001B5C 8002675C 3C040CDF */ lui $a0, 0xcdf +/* 001B60 80026760 94620134 */ lhu $v0, 0x134($v1) +/* 001B64 80026764 3C108011 */ lui $s0, 0x8011 +/* 001B68 80026768 2610F290 */ addiu $s0, $s0, -0xd70 +/* 001B6C 8002676C 24420001 */ addiu $v0, $v0, 1 +/* 001B70 80026770 A4620134 */ sh $v0, 0x134($v1) +/* 001B74 80026774 8E0202BC */ lw $v0, 0x2bc($s0) +/* 001B78 80026778 3484E5FF */ ori $a0, $a0, 0xe5ff +/* 001B7C 8002677C 24420002 */ addiu $v0, $v0, 2 +/* 001B80 80026780 AE0202BC */ sw $v0, 0x2bc($s0) +/* 001B84 80026784 0082102B */ sltu $v0, $a0, $v0 +/* 001B88 80026788 54400001 */ bnel $v0, $zero, .L80026790 +/* 001B8C 8002678C AE0402BC */ sw $a0, 0x2bc($s0) +.L80026790: +/* 001B90 80026790 0C00A3E3 */ jal func_80028F8C +/* 001B94 80026794 00000000 */ nop +/* 001B98 80026798 3C048007 */ lui $a0, 0x8007 +/* 001B9C 8002679C 24844021 */ addiu $a0, $a0, 0x4021 +/* 001BA0 800267A0 80820000 */ lb $v0, ($a0) +/* 001BA4 800267A4 90830000 */ lbu $v1, ($a0) +/* 001BA8 800267A8 10400008 */ beqz $v0, .L800267CC +/* 001BAC 800267AC 2462FFFF */ addiu $v0, $v1, -1 +/* 001BB0 800267B0 A0820000 */ sb $v0, ($a0) +/* 001BB4 800267B4 00021600 */ sll $v0, $v0, 0x18 +/* 001BB8 800267B8 14400087 */ bnez $v0, .L800269D8 +/* 001BBC 800267BC 00000000 */ nop +/* 001BC0 800267C0 3C028007 */ lui $v0, 0x8007 +/* 001BC4 800267C4 90424020 */ lbu $v0, 0x4020($v0) +/* 001BC8 800267C8 A0820000 */ sb $v0, ($a0) +.L800267CC: +/* 001BCC 800267CC 0C046EBA */ jal func_8011BAE8 +/* 001BD0 800267D0 00000000 */ nop +/* 001BD4 800267D4 0C00E15F */ jal func_8003857C +/* 001BD8 800267D8 00000000 */ nop +/* 001BDC 800267DC 0C048D01 */ jal func_80123404 +/* 001BE0 800267E0 00000000 */ nop +/* 001BE4 800267E4 0C051618 */ jal update_triggers +/* 001BE8 800267E8 00000000 */ nop +/* 001BEC 800267EC 0C0B0F5D */ jal update_scripts +/* 001BF0 800267F0 00000000 */ nop +/* 001BF4 800267F4 0C048DF6 */ jal update_messages +/* 001BF8 800267F8 00000000 */ nop +/* 001BFC 800267FC 0C050584 */ jal update_menu_icons +/* 001C00 80026800 00000000 */ nop +/* 001C04 80026804 0C044B9E */ jal step_current_game_mode +/* 001C08 80026808 00000000 */ nop +/* 001C0C 8002680C 0C043DB4 */ jal update_entities +/* 001C10 80026810 00000000 */ nop +/* 001C14 80026814 0C04E066 */ jal func_80138198 +/* 001C18 80026818 00000000 */ nop +/* 001C1C 8002681C 0C052952 */ jal func_8014A548 +/* 001C20 80026820 00000000 */ nop +/* 001C24 80026824 0C051C99 */ jal UpdateMusicPlayers +/* 001C28 80026828 00000000 */ nop +/* 001C2C 8002682C 0C0525CD */ jal func_80149734 +/* 001C30 80026830 00000000 */ nop +/* 001C34 80026834 0C051D05 */ jal func_80147414 +/* 001C38 80026838 00000000 */ nop +/* 001C3C 8002683C 0C00AE9E */ jal func_8002BA78 +/* 001C40 80026840 00000000 */ nop +/* 001C44 80026844 3C10800A */ lui $s0, 0x800a +/* 001C48 80026848 2610A650 */ addiu $s0, $s0, -0x59b0 +/* 001C4C 8002684C 8E040000 */ lw $a0, ($s0) +/* 001C50 80026850 30820020 */ andi $v0, $a0, 0x20 +/* 001C54 80026854 10400035 */ beqz $v0, .L8002692C +/* 001C58 80026858 00000000 */ nop +/* 001C5C 8002685C 3C118007 */ lui $s1, 0x8007 +/* 001C60 80026860 263141A2 */ addiu $s1, $s1, 0x41a2 +/* 001C64 80026864 86230000 */ lh $v1, ($s1) +/* 001C68 80026868 10600005 */ beqz $v1, .L80026880 +/* 001C6C 8002686C 24020001 */ addiu $v0, $zero, 1 +/* 001C70 80026870 1062001C */ beq $v1, $v0, .L800268E4 +/* 001C74 80026874 34840008 */ ori $a0, $a0, 8 +/* 001C78 80026878 08009A4F */ j .L8002693C +/* 001C7C 8002687C 00000000 */ nop + +.L80026880: +/* 001C80 80026880 34820200 */ ori $v0, $a0, 0x200 +/* 001C84 80026884 0C03805E */ jal func_800E0178 +/* 001C88 80026888 AE020000 */ sw $v0, ($s0) +/* 001C8C 8002688C 3C048007 */ lui $a0, 0x8007 +/* 001C90 80026890 248441A0 */ addiu $a0, $a0, 0x41a0 +/* 001C94 80026894 240500FF */ addiu $a1, $zero, 0xff +/* 001C98 80026898 84820000 */ lh $v0, ($a0) +/* 001C9C 8002689C 94830000 */ lhu $v1, ($a0) +/* 001CA0 800268A0 14450008 */ bne $v0, $a1, .L800268C4 +/* 001CA4 800268A4 2462000A */ addiu $v0, $v1, 0xa +/* 001CA8 800268A8 24020001 */ addiu $v0, $zero, 1 +/* 001CAC 800268AC A6220000 */ sh $v0, ($s1) +/* 001CB0 800268B0 24020003 */ addiu $v0, $zero, 3 +/* 001CB4 800268B4 3C01800A */ lui $at, 0x800a +/* 001CB8 800268B8 A422A690 */ sh $v0, -0x5970($at) +/* 001CBC 800268BC 08009A4F */ j .L8002693C +/* 001CC0 800268C0 00000000 */ nop + +.L800268C4: +/* 001CC4 800268C4 A4820000 */ sh $v0, ($a0) +/* 001CC8 800268C8 00021400 */ sll $v0, $v0, 0x10 +/* 001CCC 800268CC 00021403 */ sra $v0, $v0, 0x10 +/* 001CD0 800268D0 28420100 */ slti $v0, $v0, 0x100 +/* 001CD4 800268D4 50400019 */ beql $v0, $zero, .L8002693C +/* 001CD8 800268D8 A4850000 */ sh $a1, ($a0) +/* 001CDC 800268DC 08009A4F */ j .L8002693C +/* 001CE0 800268E0 00000000 */ nop + +.L800268E4: +/* 001CE4 800268E4 3C02800A */ lui $v0, 0x800a +/* 001CE8 800268E8 2442A690 */ addiu $v0, $v0, -0x5970 +/* 001CEC 800268EC 94430000 */ lhu $v1, ($v0) +/* 001CF0 800268F0 AE040000 */ sw $a0, ($s0) +/* 001CF4 800268F4 2463FFFF */ addiu $v1, $v1, -1 +/* 001CF8 800268F8 A4430000 */ sh $v1, ($v0) +/* 001CFC 800268FC 00031C00 */ sll $v1, $v1, 0x10 +/* 001D00 80026900 1460000E */ bnez $v1, .L8002693C +/* 001D04 80026904 00000000 */ nop +/* 001D08 80026908 0C05260E */ jal func_80149838 +/* 001D0C 8002690C 00000000 */ nop +/* 001D10 80026910 0C00CD3C */ jal set_game_mode +/* 001D14 80026914 0000202D */ daddu $a0, $zero, $zero +/* 001D18 80026918 8E020000 */ lw $v0, ($s0) +/* 001D1C 8002691C 2403FFDF */ addiu $v1, $zero, -0x21 +/* 001D20 80026920 00431024 */ and $v0, $v0, $v1 +/* 001D24 80026924 08009A4F */ j .L8002693C +/* 001D28 80026928 AE020000 */ sw $v0, ($s0) + +.L8002692C: +/* 001D2C 8002692C 3C018007 */ lui $at, 0x8007 +/* 001D30 80026930 A42041A0 */ sh $zero, 0x41a0($at) +/* 001D34 80026934 3C018007 */ lui $at, 0x8007 +/* 001D38 80026938 A42041A2 */ sh $zero, 0x41a2($at) +.L8002693C: +/* 001D3C 8002693C 3C04800A */ lui $a0, 0x800a +/* 001D40 80026940 2484A650 */ addiu $a0, $a0, -0x59b0 +/* 001D44 80026944 8C830000 */ lw $v1, ($a0) +/* 001D48 80026948 30620100 */ andi $v0, $v1, 0x100 +/* 001D4C 8002694C 14400003 */ bnez $v0, .L8002695C +/* 001D50 80026950 34621000 */ ori $v0, $v1, 0x1000 +/* 001D54 80026954 2402EFFF */ addiu $v0, $zero, -0x1001 +/* 001D58 80026958 00621024 */ and $v0, $v1, $v0 +.L8002695C: +/* 001D5C 8002695C AC820000 */ sw $v0, ($a0) +/* 001D60 80026960 3C04800A */ lui $a0, 0x800a +/* 001D64 80026964 2484A650 */ addiu $a0, $a0, -0x59b0 +/* 001D68 80026968 8C830000 */ lw $v1, ($a0) +/* 001D6C 8002696C 30620200 */ andi $v0, $v1, 0x200 +/* 001D70 80026970 14400003 */ bnez $v0, .L80026980 +/* 001D74 80026974 34622000 */ ori $v0, $v1, 0x2000 +/* 001D78 80026978 2402DFFF */ addiu $v0, $zero, -0x2001 +/* 001D7C 8002697C 00621024 */ and $v0, $v1, $v0 +.L80026980: +/* 001D80 80026980 AC820000 */ sw $v0, ($a0) +/* 001D84 80026984 3C04800A */ lui $a0, 0x800a +/* 001D88 80026988 2484A650 */ addiu $a0, $a0, -0x59b0 +/* 001D8C 8002698C 8C830000 */ lw $v1, ($a0) +/* 001D90 80026990 30620400 */ andi $v0, $v1, 0x400 +/* 001D94 80026994 14400003 */ bnez $v0, .L800269A4 +/* 001D98 80026998 34624000 */ ori $v0, $v1, 0x4000 +/* 001D9C 8002699C 2402BFFF */ addiu $v0, $zero, -0x4001 +/* 001DA0 800269A0 00621024 */ and $v0, $v1, $v0 +.L800269A4: +/* 001DA4 800269A4 AC820000 */ sw $v0, ($a0) +/* 001DA8 800269A8 3C04800A */ lui $a0, 0x800a +/* 001DAC 800269AC 2484A650 */ addiu $a0, $a0, -0x59b0 +/* 001DB0 800269B0 8C830000 */ lw $v1, ($a0) +/* 001DB4 800269B4 30620800 */ andi $v0, $v1, 0x800 +/* 001DB8 800269B8 14400004 */ bnez $v0, .L800269CC +/* 001DBC 800269BC 34628000 */ ori $v0, $v1, 0x8000 +/* 001DC0 800269C0 3C02FFFF */ lui $v0, 0xffff +/* 001DC4 800269C4 34427FFF */ ori $v0, $v0, 0x7fff +/* 001DC8 800269C8 00621024 */ and $v0, $v1, $v0 +.L800269CC: +/* 001DCC 800269CC AC820000 */ sw $v0, ($a0) +/* 001DD0 800269D0 0C00A67F */ jal rand_int +/* 001DD4 800269D4 24040001 */ addiu $a0, $zero, 1 +.L800269D8: +/* 001DD8 800269D8 8FBF0018 */ lw $ra, 0x18($sp) +/* 001DDC 800269DC 8FB10014 */ lw $s1, 0x14($sp) +/* 001DE0 800269E0 8FB00010 */ lw $s0, 0x10($sp) +/* 001DE4 800269E4 03E00008 */ jr $ra +/* 001DE8 800269E8 27BD0020 */ addiu $sp, $sp, 0x20 + +.set reorder \ No newline at end of file diff --git a/papermario/asm/code_8a160_len_700.s b/papermario/asm/code_8a160_len_700.s deleted file mode 100644 index bb8e40947b..0000000000 --- a/papermario/asm/code_8a160_len_700.s +++ /dev/null @@ -1,487 +0,0 @@ -# %s disassembly and split file -# generated by n64split v%s - N64 ROM splitter - -# 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 - -.include "globals.inc" - - -.section .text800F0CB0, "ax" - -func_800F0CB0: -/* 08A160 800F0CB0 3C038011 */ lui $v1, 0x8011 -/* 08A164 800F0CB4 2463D000 */ addiu $v1, $v1, -0x3000 -/* 08A168 800F0CB8 00041040 */ sll $v0, $a0, 1 -/* 08A16C 800F0CBC 00441021 */ addu $v0, $v0, $a0 -/* 08A170 800F0CC0 000210C0 */ sll $v0, $v0, 3 -/* 08A174 800F0CC4 00441021 */ addu $v0, $v0, $a0 -/* 08A178 800F0CC8 00021100 */ sll $v0, $v0, 4 -/* 08A17C 800F0CCC 00441023 */ subu $v0, $v0, $a0 -/* 08A180 800F0CD0 00021080 */ sll $v0, $v0, 2 -/* 08A184 800F0CD4 44850000 */ mtc1 $a1, $f0 -/* 08A188 800F0CD8 00432821 */ addu $a1, $v0, $v1 -/* 08A18C 800F0CDC 44861000 */ mtc1 $a2, $f2 -/* 08A190 800F0CE0 44872000 */ mtc1 $a3, $f4 -/* 08A194 800F0CE4 1C80001B */ bgtz $a0, .L800F0D54 -/* 08A198 800F0CE8 24060039 */ addiu $a2, $zero, 0x39 -/* 08A19C 800F0CEC 24020001 */ addiu $v0, $zero, 1 -/* 08A1A0 800F0CF0 A0A20000 */ sb $v0, ($a1) -/* 08A1A4 800F0CF4 24020028 */ addiu $v0, $zero, 0x28 -/* 08A1A8 800F0CF8 E4A00008 */ swc1 $f0, 8($a1) -/* 08A1AC 800F0CFC E4A2000C */ swc1 $f2, 0xc($a1) -/* 08A1B0 800F0D00 E4A40018 */ swc1 $f4, 0x18($a1) -/* 08A1B4 800F0D04 A0A20001 */ sb $v0, 1($a1) -/* 08A1B8 800F0D08 A0A00002 */ sb $zero, 2($a1) -/* 08A1BC 800F0D0C 24A5001C */ addiu $a1, $a1, 0x1c -/* 08A1C0 800F0D10 24030001 */ addiu $v1, $zero, 1 -/* 08A1C4 800F0D14 44801000 */ mtc1 $zero, $f2 -.L800F0D18: -/* 08A1C8 800F0D18 44830000 */ mtc1 $v1, $f0 -/* 08A1CC 800F0D1C 00000000 */ nop -/* 08A1D0 800F0D20 46800020 */ cvt.s.w $f0, $f0 -/* 08A1D4 800F0D24 46000007 */ neg.s $f0, $f0 -/* 08A1D8 800F0D28 46020002 */ mul.s $f0, $f0, $f2 -/* 08A1DC 800F0D2C 00000000 */ nop -/* 08A1E0 800F0D30 24630001 */ addiu $v1, $v1, 1 -/* 08A1E4 800F0D34 4600018D */ trunc.w.s $f6, $f0 -/* 08A1E8 800F0D38 44023000 */ mfc1 $v0, $f6 -/* 08A1EC 800F0D3C 00000000 */ nop -/* 08A1F0 800F0D40 2442FFFF */ addiu $v0, $v0, -1 -/* 08A1F4 800F0D44 A0A20007 */ sb $v0, 7($a1) -/* 08A1F8 800F0D48 0066102A */ slt $v0, $v1, $a2 -/* 08A1FC 800F0D4C 1440FFF2 */ bnez $v0, .L800F0D18 -/* 08A200 800F0D50 24A5001C */ addiu $a1, $a1, 0x1c -.L800F0D54: -/* 08A204 800F0D54 03E00008 */ jr $ra -/* 08A208 800F0D58 00000000 */ nop - -func_800F0D5C: -/* 08A20C 800F0D5C 0000182D */ daddu $v1, $zero, $zero -/* 08A210 800F0D60 3C028011 */ lui $v0, 0x8011 -/* 08A214 800F0D64 2442D000 */ addiu $v0, $v0, -0x3000 -.L800F0D68: -/* 08A218 800F0D68 A0400000 */ sb $zero, ($v0) -/* 08A21C 800F0D6C 24630001 */ addiu $v1, $v1, 1 -/* 08A220 800F0D70 1860FFFD */ blez $v1, .L800F0D68 -/* 08A224 800F0D74 2442063C */ addiu $v0, $v0, 0x63c -/* 08A228 800F0D78 03E00008 */ jr $ra -/* 08A22C 800F0D7C 00000000 */ nop - -func_800F0D80: -/* 08A230 800F0D80 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* 08A234 800F0D84 F7B60040 */ sdc1 $f22, 0x40($sp) -/* 08A238 800F0D88 3C018011 */ lui $at, 0x8011 -/* 08A23C 800F0D8C D436C310 */ ldc1 $f22, -0x3cf0($at) -/* 08A240 800F0D90 F7B40038 */ sdc1 $f20, 0x38($sp) -/* 08A244 800F0D94 3C018011 */ lui $at, 0x8011 -/* 08A248 800F0D98 D434C318 */ ldc1 $f20, -0x3ce8($at) -/* 08A24C 800F0D9C AFB40020 */ sw $s4, 0x20($sp) -/* 08A250 800F0DA0 0000A02D */ daddu $s4, $zero, $zero -/* 08A254 800F0DA4 AFBE0030 */ sw $fp, 0x30($sp) -/* 08A258 800F0DA8 3C1E8011 */ lui $fp, 0x8011 -/* 08A25C 800F0DAC 27DE9820 */ addiu $fp, $fp, -0x67e0 -/* 08A260 800F0DB0 AFB60028 */ sw $s6, 0x28($sp) -/* 08A264 800F0DB4 2416007F */ addiu $s6, $zero, 0x7f -/* 08A268 800F0DB8 AFB7002C */ sw $s7, 0x2c($sp) -/* 08A26C 800F0DBC 3C178011 */ lui $s7, 0x8011 -/* 08A270 800F0DC0 26F79800 */ addiu $s7, $s7, -0x6800 -/* 08A274 800F0DC4 AFB3001C */ sw $s3, 0x1c($sp) -/* 08A278 800F0DC8 0280982D */ daddu $s3, $s4, $zero -/* 08A27C 800F0DCC AFBF0034 */ sw $ra, 0x34($sp) -/* 08A280 800F0DD0 AFB50024 */ sw $s5, 0x24($sp) -/* 08A284 800F0DD4 AFB20018 */ sw $s2, 0x18($sp) -/* 08A288 800F0DD8 AFB10014 */ sw $s1, 0x14($sp) -/* 08A28C 800F0DDC AFB00010 */ sw $s0, 0x10($sp) -/* 08A290 800F0DE0 F7BA0050 */ sdc1 $f26, 0x50($sp) -/* 08A294 800F0DE4 F7B80048 */ sdc1 $f24, 0x48($sp) -.L800F0DE8: -/* 08A298 800F0DE8 3C058011 */ lui $a1, 0x8011 -/* 08A29C 800F0DEC 24A5D000 */ addiu $a1, $a1, -0x3000 -/* 08A2A0 800F0DF0 02651821 */ addu $v1, $s3, $a1 -/* 08A2A4 800F0DF4 90620000 */ lbu $v0, ($v1) -/* 08A2A8 800F0DF8 5040007A */ beql $v0, $zero, .L800F0FE4 -/* 08A2AC 800F0DFC 26940001 */ addiu $s4, $s4, 1 -/* 08A2B0 800F0E00 90620001 */ lbu $v0, 1($v1) -/* 08A2B4 800F0E04 2442FFFF */ addiu $v0, $v0, -1 -/* 08A2B8 800F0E08 A0620001 */ sb $v0, 1($v1) -/* 08A2BC 800F0E0C 90620002 */ lbu $v0, 2($v1) -/* 08A2C0 800F0E10 80640001 */ lb $a0, 1($v1) -/* 08A2C4 800F0E14 24420001 */ addiu $v0, $v0, 1 -/* 08A2C8 800F0E18 04810003 */ bgez $a0, .L800F0E28 -/* 08A2CC 800F0E1C A0620002 */ sb $v0, 2($v1) -/* 08A2D0 800F0E20 0803C3F8 */ j .L800F0FE0 -/* 08A2D4 800F0E24 A0600000 */ sb $zero, ($v1) - -.L800F0E28: -/* 08A2D8 800F0E28 0080A82D */ daddu $s5, $a0, $zero -/* 08A2DC 800F0E2C 24120001 */ addiu $s2, $zero, 1 -/* 08A2E0 800F0E30 24700034 */ addiu $s0, $v1, 0x34 -/* 08A2E4 800F0E34 0000882D */ daddu $s1, $zero, $zero -/* 08A2E8 800F0E38 C47A0008 */ lwc1 $f26, 8($v1) -/* 08A2EC 800F0E3C C478000C */ lwc1 $f24, 0xc($v1) -.L800F0E40: -/* 08A2F0 800F0E40 9202FFEF */ lbu $v0, -0x11($s0) -/* 08A2F4 800F0E44 24420001 */ addiu $v0, $v0, 1 -/* 08A2F8 800F0E48 A202FFEF */ sb $v0, -0x11($s0) -/* 08A2FC 800F0E4C 00021600 */ sll $v0, $v0, 0x18 -/* 08A300 800F0E50 00021603 */ sra $v0, $v0, 0x18 -/* 08A304 800F0E54 2842001E */ slti $v0, $v0, 0x1e -/* 08A308 800F0E58 14400006 */ bnez $v0, .L800F0E74 -/* 08A30C 800F0E5C 2AA2001E */ slti $v0, $s5, 0x1e -/* 08A310 800F0E60 10400003 */ beqz $v0, .L800F0E70 -/* 08A314 800F0E64 2402FFE1 */ addiu $v0, $zero, -0x1f -/* 08A318 800F0E68 0803C39D */ j .L800F0E74 -/* 08A31C 800F0E6C A202FFEF */ sb $v0, -0x11($s0) - -.L800F0E70: -/* 08A320 800F0E70 A200FFEF */ sb $zero, -0x11($s0) -.L800F0E74: -/* 08A324 800F0E74 8202FFEF */ lb $v0, -0x11($s0) -/* 08A328 800F0E78 04420055 */ bltzl $v0, .L800F0FD0 -/* 08A32C 800F0E7C 26310002 */ addiu $s1, $s1, 2 -/* 08A330 800F0E80 14400031 */ bnez $v0, .L800F0F48 -/* 08A334 800F0E84 023E1821 */ addu $v1, $s1, $fp -/* 08A338 800F0E88 80620000 */ lb $v0, ($v1) -/* 08A33C 800F0E8C 44821000 */ mtc1 $v0, $f2 -/* 08A340 800F0E90 00000000 */ nop -/* 08A344 800F0E94 468010A0 */ cvt.s.w $f2, $f2 -/* 08A348 800F0E98 460010A1 */ cvt.d.s $f2, $f2 -/* 08A34C 800F0E9C 46361082 */ mul.d $f2, $f2, $f22 -/* 08A350 800F0EA0 00000000 */ nop -/* 08A354 800F0EA4 80620001 */ lb $v0, 1($v1) -/* 08A358 800F0EA8 44820000 */ mtc1 $v0, $f0 -/* 08A35C 800F0EAC 00000000 */ nop -/* 08A360 800F0EB0 46800020 */ cvt.s.w $f0, $f0 -/* 08A364 800F0EB4 46000007 */ neg.s $f0, $f0 -/* 08A368 800F0EB8 46000021 */ cvt.d.s $f0, $f0 -/* 08A36C 800F0EBC 46360002 */ mul.d $f0, $f0, $f22 -/* 08A370 800F0EC0 00000000 */ nop -/* 08A374 800F0EC4 3C013F80 */ lui $at, 0x3f80 -/* 08A378 800F0EC8 44812000 */ mtc1 $at, $f4 -/* 08A37C 800F0ECC 2404007F */ addiu $a0, $zero, 0x7f -/* 08A380 800F0ED0 E61AFFF0 */ swc1 $f26, -0x10($s0) -/* 08A384 800F0ED4 E618FFF4 */ swc1 $f24, -0xc($s0) -/* 08A388 800F0ED8 E6040000 */ swc1 $f4, ($s0) -/* 08A38C 800F0EDC 462010A0 */ cvt.s.d $f2, $f2 -/* 08A390 800F0EE0 E602FFF8 */ swc1 $f2, -8($s0) -/* 08A394 800F0EE4 46200020 */ cvt.s.d $f0, $f0 -/* 08A398 800F0EE8 0C00A67F */ jal rand_int -/* 08A39C 800F0EEC E600FFFC */ swc1 $f0, -4($s0) -/* 08A3A0 800F0EF0 A202FFEB */ sb $v0, -0x15($s0) -/* 08A3A4 800F0EF4 304400FF */ andi $a0, $v0, 0xff -/* 08A3A8 800F0EF8 0C00A67F */ jal rand_int -/* 08A3AC 800F0EFC 02C42023 */ subu $a0, $s6, $a0 -/* 08A3B0 800F0F00 A202FFEC */ sb $v0, -0x14($s0) -/* 08A3B4 800F0F04 304400FF */ andi $a0, $v0, 0xff -/* 08A3B8 800F0F08 9202FFEB */ lbu $v0, -0x15($s0) -/* 08A3BC 800F0F0C 02C42023 */ subu $a0, $s6, $a0 -/* 08A3C0 800F0F10 0C00A67F */ jal rand_int -/* 08A3C4 800F0F14 00822023 */ subu $a0, $a0, $v0 -/* 08A3C8 800F0F18 9203FFEB */ lbu $v1, -0x15($s0) -/* 08A3CC 800F0F1C A202FFED */ sb $v0, -0x13($s0) -/* 08A3D0 800F0F20 240200FF */ addiu $v0, $zero, 0xff -/* 08A3D4 800F0F24 A202FFEE */ sb $v0, -0x12($s0) -/* 08A3D8 800F0F28 9202FFEC */ lbu $v0, -0x14($s0) -/* 08A3DC 800F0F2C 24630080 */ addiu $v1, $v1, 0x80 -/* 08A3E0 800F0F30 A203FFEB */ sb $v1, -0x15($s0) -/* 08A3E4 800F0F34 9203FFED */ lbu $v1, -0x13($s0) -/* 08A3E8 800F0F38 24420080 */ addiu $v0, $v0, 0x80 -/* 08A3EC 800F0F3C A202FFEC */ sb $v0, -0x14($s0) -/* 08A3F0 800F0F40 24630080 */ addiu $v1, $v1, 0x80 -/* 08A3F4 800F0F44 A203FFED */ sb $v1, -0x13($s0) -.L800F0F48: -/* 08A3F8 800F0F48 C600FFF8 */ lwc1 $f0, -8($s0) -/* 08A3FC 800F0F4C 46000021 */ cvt.d.s $f0, $f0 -/* 08A400 800F0F50 46340002 */ mul.d $f0, $f0, $f20 -/* 08A404 800F0F54 00000000 */ nop -/* 08A408 800F0F58 C602FFFC */ lwc1 $f2, -4($s0) -/* 08A40C 800F0F5C 460010A1 */ cvt.d.s $f2, $f2 -/* 08A410 800F0F60 46341082 */ mul.d $f2, $f2, $f20 -/* 08A414 800F0F64 00000000 */ nop -/* 08A418 800F0F68 C608FFF0 */ lwc1 $f8, -0x10($s0) -/* 08A41C 800F0F6C C604FFF8 */ lwc1 $f4, -8($s0) -/* 08A420 800F0F70 C606FFF4 */ lwc1 $f6, -0xc($s0) -/* 08A424 800F0F74 46044200 */ add.s $f8, $f8, $f4 -/* 08A428 800F0F78 C604FFFC */ lwc1 $f4, -4($s0) -/* 08A42C 800F0F7C 8202FFEF */ lb $v0, -0x11($s0) -/* 08A430 800F0F80 46043180 */ add.s $f6, $f6, $f4 -/* 08A434 800F0F84 00571021 */ addu $v0, $v0, $s7 -/* 08A438 800F0F88 E608FFF0 */ swc1 $f8, -0x10($s0) -/* 08A43C 800F0F8C E606FFF4 */ swc1 $f6, -0xc($s0) -/* 08A440 800F0F90 46200020 */ cvt.s.d $f0, $f0 -/* 08A444 800F0F94 462010A0 */ cvt.s.d $f2, $f2 -/* 08A448 800F0F98 E600FFF8 */ swc1 $f0, -8($s0) -/* 08A44C 800F0F9C E602FFFC */ swc1 $f2, -4($s0) -/* 08A450 800F0FA0 90420000 */ lbu $v0, ($v0) -/* 08A454 800F0FA4 3C018011 */ lui $at, 0x8011 -/* 08A458 800F0FA8 D422C320 */ ldc1 $f2, -0x3ce0($at) -/* 08A45C 800F0FAC 44820000 */ mtc1 $v0, $f0 -/* 08A460 800F0FB0 00000000 */ nop -/* 08A464 800F0FB4 46800020 */ cvt.s.w $f0, $f0 -/* 08A468 800F0FB8 46000021 */ cvt.d.s $f0, $f0 -/* 08A46C 800F0FBC 46220002 */ mul.d $f0, $f0, $f2 -/* 08A470 800F0FC0 00000000 */ nop -/* 08A474 800F0FC4 46200020 */ cvt.s.d $f0, $f0 -/* 08A478 800F0FC8 E6000000 */ swc1 $f0, ($s0) -/* 08A47C 800F0FCC 26310002 */ addiu $s1, $s1, 2 -.L800F0FD0: -/* 08A480 800F0FD0 26520001 */ addiu $s2, $s2, 1 -/* 08A484 800F0FD4 2A420039 */ slti $v0, $s2, 0x39 -/* 08A488 800F0FD8 1440FF99 */ bnez $v0, .L800F0E40 -/* 08A48C 800F0FDC 2610001C */ addiu $s0, $s0, 0x1c -.L800F0FE0: -/* 08A490 800F0FE0 26940001 */ addiu $s4, $s4, 1 -.L800F0FE4: -/* 08A494 800F0FE4 1A80FF80 */ blez $s4, .L800F0DE8 -/* 08A498 800F0FE8 2673063C */ addiu $s3, $s3, 0x63c -/* 08A49C 800F0FEC 8FBF0034 */ lw $ra, 0x34($sp) -/* 08A4A0 800F0FF0 8FBE0030 */ lw $fp, 0x30($sp) -/* 08A4A4 800F0FF4 8FB7002C */ lw $s7, 0x2c($sp) -/* 08A4A8 800F0FF8 8FB60028 */ lw $s6, 0x28($sp) -/* 08A4AC 800F0FFC 8FB50024 */ lw $s5, 0x24($sp) -/* 08A4B0 800F1000 8FB40020 */ lw $s4, 0x20($sp) -/* 08A4B4 800F1004 8FB3001C */ lw $s3, 0x1c($sp) -/* 08A4B8 800F1008 8FB20018 */ lw $s2, 0x18($sp) -/* 08A4BC 800F100C 8FB10014 */ lw $s1, 0x14($sp) -/* 08A4C0 800F1010 8FB00010 */ lw $s0, 0x10($sp) -/* 08A4C4 800F1014 D7BA0050 */ ldc1 $f26, 0x50($sp) -/* 08A4C8 800F1018 D7B80048 */ ldc1 $f24, 0x48($sp) -/* 08A4CC 800F101C D7B60040 */ ldc1 $f22, 0x40($sp) -/* 08A4D0 800F1020 D7B40038 */ ldc1 $f20, 0x38($sp) -/* 08A4D4 800F1024 03E00008 */ jr $ra -/* 08A4D8 800F1028 27BD0058 */ addiu $sp, $sp, 0x58 - -func_800F102C: -/* 08A4DC 800F102C 27BDFF28 */ addiu $sp, $sp, -0xd8 -/* 08A4E0 800F1030 3C090050 */ lui $t1, 0x50 -/* 08A4E4 800F1034 352903C0 */ ori $t1, $t1, 0x3c0 -/* 08A4E8 800F1038 3C0ADC08 */ lui $t2, 0xdc08 -/* 08A4EC 800F103C 354A0008 */ ori $t2, $t2, 8 -/* 08A4F0 800F1040 27A40020 */ addiu $a0, $sp, 0x20 -/* 08A4F4 800F1044 AFB100A4 */ sw $s1, 0xa4($sp) -/* 08A4F8 800F1048 3C110001 */ lui $s1, 1 -/* 08A4FC 800F104C 36311630 */ ori $s1, $s1, 0x1630 -/* 08A500 800F1050 AFB700BC */ sw $s7, 0xbc($sp) -/* 08A504 800F1054 0000B82D */ daddu $s7, $zero, $zero -/* 08A508 800F1058 AFB600B8 */ sw $s6, 0xb8($sp) -/* 08A50C 800F105C 27B60060 */ addiu $s6, $sp, 0x60 -/* 08A510 800F1060 3C02800A */ lui $v0, 0x800a -/* 08A514 800F1064 2442A674 */ addiu $v0, $v0, -0x598c -/* 08A518 800F1068 AFBE00C0 */ sw $fp, 0xc0($sp) -/* 08A51C 800F106C 0040F02D */ daddu $fp, $v0, $zero -/* 08A520 800F1070 3C028007 */ lui $v0, 0x8007 -/* 08A524 800F1074 244241F0 */ addiu $v0, $v0, 0x41f0 -/* 08A528 800F1078 AFB300AC */ sw $s3, 0xac($sp) -/* 08A52C 800F107C 0040982D */ daddu $s3, $v0, $zero -/* 08A530 800F1080 AFB500B4 */ sw $s5, 0xb4($sp) -/* 08A534 800F1084 3C150001 */ lui $s5, 1 -/* 08A538 800F1088 36B51630 */ ori $s5, $s5, 0x1630 -/* 08A53C 800F108C AFB400B0 */ sw $s4, 0xb0($sp) -/* 08A540 800F1090 02E0A02D */ daddu $s4, $s7, $zero -/* 08A544 800F1094 AFB000A0 */ sw $s0, 0xa0($sp) -/* 08A548 800F1098 3C10800A */ lui $s0, 0x800a -/* 08A54C 800F109C 2610A66C */ addiu $s0, $s0, -0x5994 -/* 08A550 800F10A0 3C02E700 */ lui $v0, 0xe700 -/* 08A554 800F10A4 AFBF00C4 */ sw $ra, 0xc4($sp) -/* 08A558 800F10A8 AFB200A8 */ sw $s2, 0xa8($sp) -/* 08A55C 800F10AC F7B600D0 */ sdc1 $f22, 0xd0($sp) -/* 08A560 800F10B0 F7B400C8 */ sdc1 $f20, 0xc8($sp) -/* 08A564 800F10B4 8E030000 */ lw $v1, ($s0) -/* 08A568 800F10B8 3C0643A0 */ lui $a2, 0x43a0 -/* 08A56C 800F10BC 3C074370 */ lui $a3, 0x4370 -/* 08A570 800F10C0 44800000 */ mtc1 $zero, $f0 -/* 08A574 800F10C4 3C0142C8 */ lui $at, 0x42c8 -/* 08A578 800F10C8 44811000 */ mtc1 $at, $f2 -/* 08A57C 800F10CC 3C013F80 */ lui $at, 0x3f80 -/* 08A580 800F10D0 44812000 */ mtc1 $at, $f4 -/* 08A584 800F10D4 0060402D */ daddu $t0, $v1, $zero -/* 08A588 800F10D8 44050000 */ mfc1 $a1, $f0 -/* 08A58C 800F10DC 3C01C2C8 */ lui $at, 0xc2c8 -/* 08A590 800F10E0 44810000 */ mtc1 $at, $f0 -/* 08A594 800F10E4 24630008 */ addiu $v1, $v1, 8 -/* 08A598 800F10E8 AE030000 */ sw $v1, ($s0) -/* 08A59C 800F10EC AD020000 */ sw $v0, ($t0) -/* 08A5A0 800F10F0 24620008 */ addiu $v0, $v1, 8 -/* 08A5A4 800F10F4 AD000004 */ sw $zero, 4($t0) -/* 08A5A8 800F10F8 AE020000 */ sw $v0, ($s0) -/* 08A5AC 800F10FC 3C02DB06 */ lui $v0, 0xdb06 -/* 08A5B0 800F1100 AC620000 */ sw $v0, ($v1) -/* 08A5B4 800F1104 24620010 */ addiu $v0, $v1, 0x10 -/* 08A5B8 800F1108 AC600004 */ sw $zero, 4($v1) -/* 08A5BC 800F110C AE020000 */ sw $v0, ($s0) -/* 08A5C0 800F1110 3C02ED00 */ lui $v0, 0xed00 -/* 08A5C4 800F1114 AC620008 */ sw $v0, 8($v1) -/* 08A5C8 800F1118 24620018 */ addiu $v0, $v1, 0x18 -/* 08A5CC 800F111C AC69000C */ sw $t1, 0xc($v1) -/* 08A5D0 800F1120 AE020000 */ sw $v0, ($s0) -/* 08A5D4 800F1124 4485B000 */ mtc1 $a1, $f22 -/* 08A5D8 800F1128 3C028011 */ lui $v0, 0x8011 -/* 08A5DC 800F112C 244296B0 */ addiu $v0, $v0, -0x6950 -/* 08A5E0 800F1130 AC6A0010 */ sw $t2, 0x10($v1) -/* 08A5E4 800F1134 AC620014 */ sw $v0, 0x14($v1) -/* 08A5E8 800F1138 E7A20018 */ swc1 $f2, 0x18($sp) -/* 08A5EC 800F113C E7A4001C */ swc1 $f4, 0x1c($sp) -/* 08A5F0 800F1140 AFA50010 */ sw $a1, 0x10($sp) -/* 08A5F4 800F1144 0C018E44 */ jal guOrthoF -/* 08A5F8 800F1148 E7A00014 */ swc1 $f0, 0x14($sp) -/* 08A5FC 800F114C 27A40020 */ addiu $a0, $sp, 0x20 -/* 08A600 800F1150 96650000 */ lhu $a1, ($s3) -/* 08A604 800F1154 8FC20000 */ lw $v0, ($fp) -/* 08A608 800F1158 00052980 */ sll $a1, $a1, 6 -/* 08A60C 800F115C 00B12821 */ addu $a1, $a1, $s1 -/* 08A610 800F1160 0C019D40 */ jal guMtxF2L -/* 08A614 800F1164 00452821 */ addu $a1, $v0, $a1 -/* 08A618 800F1168 3C03DA38 */ lui $v1, 0xda38 -/* 08A61C 800F116C 34630007 */ ori $v1, $v1, 7 -/* 08A620 800F1170 3C067F7F */ lui $a2, 0x7f7f -/* 08A624 800F1174 34C67F7F */ ori $a2, $a2, 0x7f7f -/* 08A628 800F1178 8E040000 */ lw $a0, ($s0) -/* 08A62C 800F117C 96620000 */ lhu $v0, ($s3) -/* 08A630 800F1180 0080282D */ daddu $a1, $a0, $zero -/* 08A634 800F1184 24840008 */ addiu $a0, $a0, 8 -/* 08A638 800F1188 AE040000 */ sw $a0, ($s0) -/* 08A63C 800F118C ACA30000 */ sw $v1, ($a1) -/* 08A640 800F1190 24430001 */ addiu $v1, $v0, 1 -/* 08A644 800F1194 3042FFFF */ andi $v0, $v0, 0xffff -/* 08A648 800F1198 00021180 */ sll $v0, $v0, 6 -/* 08A64C 800F119C A6630000 */ sh $v1, ($s3) -/* 08A650 800F11A0 8FC30000 */ lw $v1, ($fp) -/* 08A654 800F11A4 00511021 */ addu $v0, $v0, $s1 -/* 08A658 800F11A8 00621821 */ addu $v1, $v1, $v0 -/* 08A65C 800F11AC 24820008 */ addiu $v0, $a0, 8 -/* 08A660 800F11B0 ACA30004 */ sw $v1, 4($a1) -/* 08A664 800F11B4 AE020000 */ sw $v0, ($s0) -/* 08A668 800F11B8 3C02DE00 */ lui $v0, 0xde00 -/* 08A66C 800F11BC AC820000 */ sw $v0, ($a0) -/* 08A670 800F11C0 3C028011 */ lui $v0, 0x8011 -/* 08A674 800F11C4 24429710 */ addiu $v0, $v0, -0x68f0 -/* 08A678 800F11C8 AC820004 */ sw $v0, 4($a0) -/* 08A67C 800F11CC 24820010 */ addiu $v0, $a0, 0x10 -/* 08A680 800F11D0 AE020000 */ sw $v0, ($s0) -/* 08A684 800F11D4 3C02FB00 */ lui $v0, 0xfb00 -/* 08A688 800F11D8 AC820008 */ sw $v0, 8($a0) -/* 08A68C 800F11DC AC86000C */ sw $a2, 0xc($a0) -.L800F11E0: -/* 08A690 800F11E0 3C0B8011 */ lui $t3, 0x8011 -/* 08A694 800F11E4 256BD000 */ addiu $t3, $t3, -0x3000 -/* 08A698 800F11E8 028B1821 */ addu $v1, $s4, $t3 -/* 08A69C 800F11EC 90620000 */ lbu $v0, ($v1) -/* 08A6A0 800F11F0 5040005C */ beql $v0, $zero, .L800F1364 -/* 08A6A4 800F11F4 26F70001 */ addiu $s7, $s7, 1 -/* 08A6A8 800F11F8 C4740018 */ lwc1 $f20, 0x18($v1) -/* 08A6AC 800F11FC 24120001 */ addiu $s2, $zero, 1 -/* 08A6B0 800F1200 3C11800A */ lui $s1, 0x800a -/* 08A6B4 800F1204 2631A66C */ addiu $s1, $s1, -0x5994 -/* 08A6B8 800F1208 24700022 */ addiu $s0, $v1, 0x22 -.L800F120C: -/* 08A6BC 800F120C 82020001 */ lb $v0, 1($s0) -/* 08A6C0 800F1210 0440004F */ bltz $v0, .L800F1350 -/* 08A6C4 800F1214 02C0202D */ daddu $a0, $s6, $zero -/* 08A6C8 800F1218 C6000012 */ lwc1 $f0, 0x12($s0) -/* 08A6CC 800F121C 4405B000 */ mfc1 $a1, $f22 -/* 08A6D0 800F1220 3C028007 */ lui $v0, 0x8007 -/* 08A6D4 800F1224 8C42419C */ lw $v0, 0x419c($v0) -/* 08A6D8 800F1228 4406B000 */ mfc1 $a2, $f22 -/* 08A6DC 800F122C 94430134 */ lhu $v1, 0x134($v0) -/* 08A6E0 800F1230 46140002 */ mul.s $f0, $f0, $f20 -/* 08A6E4 800F1234 00000000 */ nop -/* 08A6E8 800F1238 00031080 */ sll $v0, $v1, 2 -/* 08A6EC 800F123C 00431021 */ addu $v0, $v0, $v1 -/* 08A6F0 800F1240 00021040 */ sll $v0, $v0, 1 -/* 08A6F4 800F1244 44823000 */ mtc1 $v0, $f6 -/* 08A6F8 800F1248 00000000 */ nop -/* 08A6FC 800F124C 468031A0 */ cvt.s.w $f6, $f6 -/* 08A700 800F1250 44073000 */ mfc1 $a3, $f6 -/* 08A704 800F1254 E7A00010 */ swc1 $f0, 0x10($sp) -/* 08A708 800F1258 C6000002 */ lwc1 $f0, 2($s0) -/* 08A70C 800F125C E7A00014 */ swc1 $f0, 0x14($sp) -/* 08A710 800F1260 C6000006 */ lwc1 $f0, 6($s0) -/* 08A714 800F1264 E7B6001C */ swc1 $f22, 0x1c($sp) -/* 08A718 800F1268 0C018FC4 */ jal guPositionF -/* 08A71C 800F126C E7A00018 */ swc1 $f0, 0x18($sp) -/* 08A720 800F1270 02C0202D */ daddu $a0, $s6, $zero -/* 08A724 800F1274 96650000 */ lhu $a1, ($s3) -/* 08A728 800F1278 8FC20000 */ lw $v0, ($fp) -/* 08A72C 800F127C 00052980 */ sll $a1, $a1, 6 -/* 08A730 800F1280 00B52821 */ addu $a1, $a1, $s5 -/* 08A734 800F1284 0C019D40 */ jal guMtxF2L -/* 08A738 800F1288 00452821 */ addu $a1, $v0, $a1 -/* 08A73C 800F128C 3C08D838 */ lui $t0, 0xd838 -/* 08A740 800F1290 8E240000 */ lw $a0, ($s1) -/* 08A744 800F1294 35080002 */ ori $t0, $t0, 2 -/* 08A748 800F1298 0080282D */ daddu $a1, $a0, $zero -/* 08A74C 800F129C 24840008 */ addiu $a0, $a0, 8 -/* 08A750 800F12A0 AE240000 */ sw $a0, ($s1) -/* 08A754 800F12A4 96620000 */ lhu $v0, ($s3) -/* 08A758 800F12A8 3C03DA38 */ lui $v1, 0xda38 -/* 08A75C 800F12AC ACA30000 */ sw $v1, ($a1) -/* 08A760 800F12B0 24430001 */ addiu $v1, $v0, 1 -/* 08A764 800F12B4 3042FFFF */ andi $v0, $v0, 0xffff -/* 08A768 800F12B8 00021180 */ sll $v0, $v0, 6 -/* 08A76C 800F12BC A6630000 */ sh $v1, ($s3) -/* 08A770 800F12C0 8FC30000 */ lw $v1, ($fp) -/* 08A774 800F12C4 00551021 */ addu $v0, $v0, $s5 -/* 08A778 800F12C8 00621821 */ addu $v1, $v1, $v0 -/* 08A77C 800F12CC 24820008 */ addiu $v0, $a0, 8 -/* 08A780 800F12D0 ACA30004 */ sw $v1, 4($a1) -/* 08A784 800F12D4 AE220000 */ sw $v0, ($s1) -/* 08A788 800F12D8 82030001 */ lb $v1, 1($s0) -/* 08A78C 800F12DC 24020050 */ addiu $v0, $zero, 0x50 -/* 08A790 800F12E0 00431023 */ subu $v0, $v0, $v1 -/* 08A794 800F12E4 304200FF */ andi $v0, $v0, 0xff -/* 08A798 800F12E8 3C03FA00 */ lui $v1, 0xfa00 -/* 08A79C 800F12EC 00431025 */ or $v0, $v0, $v1 -/* 08A7A0 800F12F0 AC820000 */ sw $v0, ($a0) -/* 08A7A4 800F12F4 9203FFFD */ lbu $v1, -3($s0) -/* 08A7A8 800F12F8 9205FFFE */ lbu $a1, -2($s0) -/* 08A7AC 800F12FC 9206FFFF */ lbu $a2, -1($s0) -/* 08A7B0 800F1300 92070000 */ lbu $a3, ($s0) -/* 08A7B4 800F1304 24820010 */ addiu $v0, $a0, 0x10 -/* 08A7B8 800F1308 AE220000 */ sw $v0, ($s1) -/* 08A7BC 800F130C 3C02DE00 */ lui $v0, 0xde00 -/* 08A7C0 800F1310 AC820008 */ sw $v0, 8($a0) -/* 08A7C4 800F1314 3C028011 */ lui $v0, 0x8011 -/* 08A7C8 800F1318 244297D8 */ addiu $v0, $v0, -0x6828 -/* 08A7CC 800F131C AC82000C */ sw $v0, 0xc($a0) -/* 08A7D0 800F1320 24820018 */ addiu $v0, $a0, 0x18 -/* 08A7D4 800F1324 AE220000 */ sw $v0, ($s1) -/* 08A7D8 800F1328 24020040 */ addiu $v0, $zero, 0x40 -/* 08A7DC 800F132C AC880010 */ sw $t0, 0x10($a0) -/* 08A7E0 800F1330 AC820014 */ sw $v0, 0x14($a0) -/* 08A7E4 800F1334 00031E00 */ sll $v1, $v1, 0x18 -/* 08A7E8 800F1338 00052C00 */ sll $a1, $a1, 0x10 -/* 08A7EC 800F133C 00651825 */ or $v1, $v1, $a1 -/* 08A7F0 800F1340 00063200 */ sll $a2, $a2, 8 -/* 08A7F4 800F1344 00661825 */ or $v1, $v1, $a2 -/* 08A7F8 800F1348 00671825 */ or $v1, $v1, $a3 -/* 08A7FC 800F134C AC830004 */ sw $v1, 4($a0) -.L800F1350: -/* 08A800 800F1350 26520001 */ addiu $s2, $s2, 1 -/* 08A804 800F1354 2A420039 */ slti $v0, $s2, 0x39 -/* 08A808 800F1358 1440FFAC */ bnez $v0, .L800F120C -/* 08A80C 800F135C 2610001C */ addiu $s0, $s0, 0x1c -/* 08A810 800F1360 26F70001 */ addiu $s7, $s7, 1 -.L800F1364: -/* 08A814 800F1364 1AE0FF9E */ blez $s7, .L800F11E0 -/* 08A818 800F1368 2694063C */ addiu $s4, $s4, 0x63c -/* 08A81C 800F136C 8FBF00C4 */ lw $ra, 0xc4($sp) -/* 08A820 800F1370 8FBE00C0 */ lw $fp, 0xc0($sp) -/* 08A824 800F1374 8FB700BC */ lw $s7, 0xbc($sp) -/* 08A828 800F1378 8FB600B8 */ lw $s6, 0xb8($sp) -/* 08A82C 800F137C 8FB500B4 */ lw $s5, 0xb4($sp) -/* 08A830 800F1380 8FB400B0 */ lw $s4, 0xb0($sp) -/* 08A834 800F1384 8FB300AC */ lw $s3, 0xac($sp) -/* 08A838 800F1388 8FB200A8 */ lw $s2, 0xa8($sp) -/* 08A83C 800F138C 8FB100A4 */ lw $s1, 0xa4($sp) -/* 08A840 800F1390 8FB000A0 */ lw $s0, 0xa0($sp) -/* 08A844 800F1394 D7B600D0 */ ldc1 $f22, 0xd0($sp) -/* 08A848 800F1398 D7B400C8 */ ldc1 $f20, 0xc8($sp) -/* 08A84C 800F139C 03E00008 */ jr $ra -/* 08A850 800F13A0 27BD00D8 */ addiu $sp, $sp, 0xd8 - -/* 08A854 800F13A4 00000000 */ nop -/* 08A858 800F13A8 00000000 */ nop -/* 08A85C 800F13AC 00000000 */ nop diff --git a/papermario/asm/code_8a160_len_700/battle_heap_create.s b/papermario/asm/code_8a160_len_700/battle_heap_create.s new file mode 100644 index 0000000000..74fa145f81 --- /dev/null +++ b/papermario/asm/code_8a160_len_700/battle_heap_create.s @@ -0,0 +1,18 @@ +glabel battle_heap_create +/* 0060A0 8002ACA0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0060A4 8002ACA4 AFBF0010 */ sw $ra, 0x10($sp) +/* 0060A8 8002ACA8 3C050002 */ lui $a1, 2 +/* 0060AC 8002ACAC 3C04803E */ lui $a0, 0x803e +/* 0060B0 8002ACB0 2484A800 */ addiu $a0, $a0, -0x5800 +/* 0060B4 8002ACB4 0C00A40C */ jal _heap_create +/* 0060B8 8002ACB8 34A55800 */ ori $a1, $a1, 0x5800 +/* 0060BC 8002ACBC 0040202D */ daddu $a0, $v0, $zero +/* 0060C0 8002ACC0 2402FFFF */ addiu $v0, $zero, -1 +/* 0060C4 8002ACC4 0040182D */ daddu $v1, $v0, $zero +/* 0060C8 8002ACC8 54830001 */ beq $a0, $v1, .L8002ACD0 + nop +/* 0060CC 8002ACCC 0000102D */ daddu $v0, $zero, $zero +.L8002ACD0: +/* 0060D0 8002ACD0 8FBF0010 */ lw $ra, 0x10($sp) +/* 0060D4 8002ACD4 03E00008 */ jr $ra +/* 0060D8 8002ACD8 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/papermario/asm/code_8a160_len_700/func_800F0CB0.s b/papermario/asm/code_8a160_len_700/func_800F0CB0.s new file mode 100644 index 0000000000..033fea34ea --- /dev/null +++ b/papermario/asm/code_8a160_len_700/func_800F0CB0.s @@ -0,0 +1,57 @@ +# %s disassembly and split file +# generated by n64split v%s - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches + +.include "globals.inc" + +func_800F0CB0: +/* 08A160 800F0CB0 3C038011 */ lui $v1, 0x8011 +/* 08A164 800F0CB4 2463D000 */ addiu $v1, $v1, -0x3000 +/* 08A168 800F0CB8 00041040 */ sll $v0, $a0, 1 +/* 08A16C 800F0CBC 00441021 */ addu $v0, $v0, $a0 +/* 08A170 800F0CC0 000210C0 */ sll $v0, $v0, 3 +/* 08A174 800F0CC4 00441021 */ addu $v0, $v0, $a0 +/* 08A178 800F0CC8 00021100 */ sll $v0, $v0, 4 +/* 08A17C 800F0CCC 00441023 */ subu $v0, $v0, $a0 +/* 08A180 800F0CD0 00021080 */ sll $v0, $v0, 2 +/* 08A184 800F0CD4 44850000 */ mtc1 $a1, $f0 +/* 08A188 800F0CD8 00432821 */ addu $a1, $v0, $v1 +/* 08A18C 800F0CDC 44861000 */ mtc1 $a2, $f2 +/* 08A190 800F0CE0 44872000 */ mtc1 $a3, $f4 +/* 08A194 800F0CE4 1C80001B */ bgtz $a0, .L800F0D54 +/* 08A198 800F0CE8 24060039 */ addiu $a2, $zero, 0x39 +/* 08A19C 800F0CEC 24020001 */ addiu $v0, $zero, 1 +/* 08A1A0 800F0CF0 A0A20000 */ sb $v0, ($a1) +/* 08A1A4 800F0CF4 24020028 */ addiu $v0, $zero, 0x28 +/* 08A1A8 800F0CF8 E4A00008 */ swc1 $f0, 8($a1) +/* 08A1AC 800F0CFC E4A2000C */ swc1 $f2, 0xc($a1) +/* 08A1B0 800F0D00 E4A40018 */ swc1 $f4, 0x18($a1) +/* 08A1B4 800F0D04 A0A20001 */ sb $v0, 1($a1) +/* 08A1B8 800F0D08 A0A00002 */ sb $zero, 2($a1) +/* 08A1BC 800F0D0C 24A5001C */ addiu $a1, $a1, 0x1c +/* 08A1C0 800F0D10 24030001 */ addiu $v1, $zero, 1 +/* 08A1C4 800F0D14 44801000 */ mtc1 $zero, $f2 +.L800F0D18: +/* 08A1C8 800F0D18 44830000 */ mtc1 $v1, $f0 +/* 08A1CC 800F0D1C 00000000 */ nop +/* 08A1D0 800F0D20 46800020 */ cvt.s.w $f0, $f0 +/* 08A1D4 800F0D24 46000007 */ neg.s $f0, $f0 +/* 08A1D8 800F0D28 46020002 */ mul.s $f0, $f0, $f2 +/* 08A1DC 800F0D2C 00000000 */ nop +/* 08A1E0 800F0D30 24630001 */ addiu $v1, $v1, 1 +/* 08A1E4 800F0D34 4600018D */ trunc.w.s $f6, $f0 +/* 08A1E8 800F0D38 44023000 */ mfc1 $v0, $f6 +/* 08A1EC 800F0D3C 00000000 */ nop +/* 08A1F0 800F0D40 2442FFFF */ addiu $v0, $v0, -1 +/* 08A1F4 800F0D44 A0A20007 */ sb $v0, 7($a1) +/* 08A1F8 800F0D48 0066102A */ slt $v0, $v1, $a2 +/* 08A1FC 800F0D4C 1440FFF2 */ bnez $v0, .L800F0D18 +/* 08A200 800F0D50 24A5001C */ addiu $a1, $a1, 0x1c +.L800F0D54: +/* 08A204 800F0D54 03E00008 */ jr $ra +/* 08A208 800F0D58 00000000 */ nop + +.set reorder diff --git a/papermario/asm/code_8a160_len_700/func_800F0D80.s b/papermario/asm/code_8a160_len_700/func_800F0D80.s new file mode 100644 index 0000000000..9bf82b3738 --- /dev/null +++ b/papermario/asm/code_8a160_len_700/func_800F0D80.s @@ -0,0 +1,194 @@ +# %s disassembly and split file +# generated by n64split v%s - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches + +.include "globals.inc" + +func_800F0D80: +/* 08A230 800F0D80 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 08A234 800F0D84 F7B60040 */ sdc1 $f22, 0x40($sp) +/* 08A238 800F0D88 3C018011 */ lui $at, 0x8011 +/* 08A23C 800F0D8C D436C310 */ ldc1 $f22, -0x3cf0($at) +/* 08A240 800F0D90 F7B40038 */ sdc1 $f20, 0x38($sp) +/* 08A244 800F0D94 3C018011 */ lui $at, 0x8011 +/* 08A248 800F0D98 D434C318 */ ldc1 $f20, -0x3ce8($at) +/* 08A24C 800F0D9C AFB40020 */ sw $s4, 0x20($sp) +/* 08A250 800F0DA0 0000A02D */ daddu $s4, $zero, $zero +/* 08A254 800F0DA4 AFBE0030 */ sw $fp, 0x30($sp) +/* 08A258 800F0DA8 3C1E8011 */ lui $fp, 0x8011 +/* 08A25C 800F0DAC 27DE9820 */ addiu $fp, $fp, -0x67e0 +/* 08A260 800F0DB0 AFB60028 */ sw $s6, 0x28($sp) +/* 08A264 800F0DB4 2416007F */ addiu $s6, $zero, 0x7f +/* 08A268 800F0DB8 AFB7002C */ sw $s7, 0x2c($sp) +/* 08A26C 800F0DBC 3C178011 */ lui $s7, 0x8011 +/* 08A270 800F0DC0 26F79800 */ addiu $s7, $s7, -0x6800 +/* 08A274 800F0DC4 AFB3001C */ sw $s3, 0x1c($sp) +/* 08A278 800F0DC8 0280982D */ daddu $s3, $s4, $zero +/* 08A27C 800F0DCC AFBF0034 */ sw $ra, 0x34($sp) +/* 08A280 800F0DD0 AFB50024 */ sw $s5, 0x24($sp) +/* 08A284 800F0DD4 AFB20018 */ sw $s2, 0x18($sp) +/* 08A288 800F0DD8 AFB10014 */ sw $s1, 0x14($sp) +/* 08A28C 800F0DDC AFB00010 */ sw $s0, 0x10($sp) +/* 08A290 800F0DE0 F7BA0050 */ sdc1 $f26, 0x50($sp) +/* 08A294 800F0DE4 F7B80048 */ sdc1 $f24, 0x48($sp) +.L800F0DE8: +/* 08A298 800F0DE8 3C058011 */ lui $a1, 0x8011 +/* 08A29C 800F0DEC 24A5D000 */ addiu $a1, $a1, -0x3000 +/* 08A2A0 800F0DF0 02651821 */ addu $v1, $s3, $a1 +/* 08A2A4 800F0DF4 90620000 */ lbu $v0, ($v1) +/* 08A2A8 800F0DF8 5040007A */ beql $v0, $zero, .L800F0FE4 +/* 08A2AC 800F0DFC 26940001 */ addiu $s4, $s4, 1 +/* 08A2B0 800F0E00 90620001 */ lbu $v0, 1($v1) +/* 08A2B4 800F0E04 2442FFFF */ addiu $v0, $v0, -1 +/* 08A2B8 800F0E08 A0620001 */ sb $v0, 1($v1) +/* 08A2BC 800F0E0C 90620002 */ lbu $v0, 2($v1) +/* 08A2C0 800F0E10 80640001 */ lb $a0, 1($v1) +/* 08A2C4 800F0E14 24420001 */ addiu $v0, $v0, 1 +/* 08A2C8 800F0E18 04810003 */ bgez $a0, .L800F0E28 +/* 08A2CC 800F0E1C A0620002 */ sb $v0, 2($v1) +/* 08A2D0 800F0E20 0803C3F8 */ j .L800F0FE0 +/* 08A2D4 800F0E24 A0600000 */ sb $zero, ($v1) + +.L800F0E28: +/* 08A2D8 800F0E28 0080A82D */ daddu $s5, $a0, $zero +/* 08A2DC 800F0E2C 24120001 */ addiu $s2, $zero, 1 +/* 08A2E0 800F0E30 24700034 */ addiu $s0, $v1, 0x34 +/* 08A2E4 800F0E34 0000882D */ daddu $s1, $zero, $zero +/* 08A2E8 800F0E38 C47A0008 */ lwc1 $f26, 8($v1) +/* 08A2EC 800F0E3C C478000C */ lwc1 $f24, 0xc($v1) +.L800F0E40: +/* 08A2F0 800F0E40 9202FFEF */ lbu $v0, -0x11($s0) +/* 08A2F4 800F0E44 24420001 */ addiu $v0, $v0, 1 +/* 08A2F8 800F0E48 A202FFEF */ sb $v0, -0x11($s0) +/* 08A2FC 800F0E4C 00021600 */ sll $v0, $v0, 0x18 +/* 08A300 800F0E50 00021603 */ sra $v0, $v0, 0x18 +/* 08A304 800F0E54 2842001E */ slti $v0, $v0, 0x1e +/* 08A308 800F0E58 14400006 */ bnez $v0, .L800F0E74 +/* 08A30C 800F0E5C 2AA2001E */ slti $v0, $s5, 0x1e +/* 08A310 800F0E60 10400003 */ beqz $v0, .L800F0E70 +/* 08A314 800F0E64 2402FFE1 */ addiu $v0, $zero, -0x1f +/* 08A318 800F0E68 0803C39D */ j .L800F0E74 +/* 08A31C 800F0E6C A202FFEF */ sb $v0, -0x11($s0) + +.L800F0E70: +/* 08A320 800F0E70 A200FFEF */ sb $zero, -0x11($s0) +.L800F0E74: +/* 08A324 800F0E74 8202FFEF */ lb $v0, -0x11($s0) +/* 08A328 800F0E78 04420055 */ bltzl $v0, .L800F0FD0 +/* 08A32C 800F0E7C 26310002 */ addiu $s1, $s1, 2 +/* 08A330 800F0E80 14400031 */ bnez $v0, .L800F0F48 +/* 08A334 800F0E84 023E1821 */ addu $v1, $s1, $fp +/* 08A338 800F0E88 80620000 */ lb $v0, ($v1) +/* 08A33C 800F0E8C 44821000 */ mtc1 $v0, $f2 +/* 08A340 800F0E90 00000000 */ nop +/* 08A344 800F0E94 468010A0 */ cvt.s.w $f2, $f2 +/* 08A348 800F0E98 460010A1 */ cvt.d.s $f2, $f2 +/* 08A34C 800F0E9C 46361082 */ mul.d $f2, $f2, $f22 +/* 08A350 800F0EA0 00000000 */ nop +/* 08A354 800F0EA4 80620001 */ lb $v0, 1($v1) +/* 08A358 800F0EA8 44820000 */ mtc1 $v0, $f0 +/* 08A35C 800F0EAC 00000000 */ nop +/* 08A360 800F0EB0 46800020 */ cvt.s.w $f0, $f0 +/* 08A364 800F0EB4 46000007 */ neg.s $f0, $f0 +/* 08A368 800F0EB8 46000021 */ cvt.d.s $f0, $f0 +/* 08A36C 800F0EBC 46360002 */ mul.d $f0, $f0, $f22 +/* 08A370 800F0EC0 00000000 */ nop +/* 08A374 800F0EC4 3C013F80 */ lui $at, 0x3f80 +/* 08A378 800F0EC8 44812000 */ mtc1 $at, $f4 +/* 08A37C 800F0ECC 2404007F */ addiu $a0, $zero, 0x7f +/* 08A380 800F0ED0 E61AFFF0 */ swc1 $f26, -0x10($s0) +/* 08A384 800F0ED4 E618FFF4 */ swc1 $f24, -0xc($s0) +/* 08A388 800F0ED8 E6040000 */ swc1 $f4, ($s0) +/* 08A38C 800F0EDC 462010A0 */ cvt.s.d $f2, $f2 +/* 08A390 800F0EE0 E602FFF8 */ swc1 $f2, -8($s0) +/* 08A394 800F0EE4 46200020 */ cvt.s.d $f0, $f0 +/* 08A398 800F0EE8 0C00A67F */ jal rand_int +/* 08A39C 800F0EEC E600FFFC */ swc1 $f0, -4($s0) +/* 08A3A0 800F0EF0 A202FFEB */ sb $v0, -0x15($s0) +/* 08A3A4 800F0EF4 304400FF */ andi $a0, $v0, 0xff +/* 08A3A8 800F0EF8 0C00A67F */ jal rand_int +/* 08A3AC 800F0EFC 02C42023 */ subu $a0, $s6, $a0 +/* 08A3B0 800F0F00 A202FFEC */ sb $v0, -0x14($s0) +/* 08A3B4 800F0F04 304400FF */ andi $a0, $v0, 0xff +/* 08A3B8 800F0F08 9202FFEB */ lbu $v0, -0x15($s0) +/* 08A3BC 800F0F0C 02C42023 */ subu $a0, $s6, $a0 +/* 08A3C0 800F0F10 0C00A67F */ jal rand_int +/* 08A3C4 800F0F14 00822023 */ subu $a0, $a0, $v0 +/* 08A3C8 800F0F18 9203FFEB */ lbu $v1, -0x15($s0) +/* 08A3CC 800F0F1C A202FFED */ sb $v0, -0x13($s0) +/* 08A3D0 800F0F20 240200FF */ addiu $v0, $zero, 0xff +/* 08A3D4 800F0F24 A202FFEE */ sb $v0, -0x12($s0) +/* 08A3D8 800F0F28 9202FFEC */ lbu $v0, -0x14($s0) +/* 08A3DC 800F0F2C 24630080 */ addiu $v1, $v1, 0x80 +/* 08A3E0 800F0F30 A203FFEB */ sb $v1, -0x15($s0) +/* 08A3E4 800F0F34 9203FFED */ lbu $v1, -0x13($s0) +/* 08A3E8 800F0F38 24420080 */ addiu $v0, $v0, 0x80 +/* 08A3EC 800F0F3C A202FFEC */ sb $v0, -0x14($s0) +/* 08A3F0 800F0F40 24630080 */ addiu $v1, $v1, 0x80 +/* 08A3F4 800F0F44 A203FFED */ sb $v1, -0x13($s0) +.L800F0F48: +/* 08A3F8 800F0F48 C600FFF8 */ lwc1 $f0, -8($s0) +/* 08A3FC 800F0F4C 46000021 */ cvt.d.s $f0, $f0 +/* 08A400 800F0F50 46340002 */ mul.d $f0, $f0, $f20 +/* 08A404 800F0F54 00000000 */ nop +/* 08A408 800F0F58 C602FFFC */ lwc1 $f2, -4($s0) +/* 08A40C 800F0F5C 460010A1 */ cvt.d.s $f2, $f2 +/* 08A410 800F0F60 46341082 */ mul.d $f2, $f2, $f20 +/* 08A414 800F0F64 00000000 */ nop +/* 08A418 800F0F68 C608FFF0 */ lwc1 $f8, -0x10($s0) +/* 08A41C 800F0F6C C604FFF8 */ lwc1 $f4, -8($s0) +/* 08A420 800F0F70 C606FFF4 */ lwc1 $f6, -0xc($s0) +/* 08A424 800F0F74 46044200 */ add.s $f8, $f8, $f4 +/* 08A428 800F0F78 C604FFFC */ lwc1 $f4, -4($s0) +/* 08A42C 800F0F7C 8202FFEF */ lb $v0, -0x11($s0) +/* 08A430 800F0F80 46043180 */ add.s $f6, $f6, $f4 +/* 08A434 800F0F84 00571021 */ addu $v0, $v0, $s7 +/* 08A438 800F0F88 E608FFF0 */ swc1 $f8, -0x10($s0) +/* 08A43C 800F0F8C E606FFF4 */ swc1 $f6, -0xc($s0) +/* 08A440 800F0F90 46200020 */ cvt.s.d $f0, $f0 +/* 08A444 800F0F94 462010A0 */ cvt.s.d $f2, $f2 +/* 08A448 800F0F98 E600FFF8 */ swc1 $f0, -8($s0) +/* 08A44C 800F0F9C E602FFFC */ swc1 $f2, -4($s0) +/* 08A450 800F0FA0 90420000 */ lbu $v0, ($v0) +/* 08A454 800F0FA4 3C018011 */ lui $at, 0x8011 +/* 08A458 800F0FA8 D422C320 */ ldc1 $f2, -0x3ce0($at) +/* 08A45C 800F0FAC 44820000 */ mtc1 $v0, $f0 +/* 08A460 800F0FB0 00000000 */ nop +/* 08A464 800F0FB4 46800020 */ cvt.s.w $f0, $f0 +/* 08A468 800F0FB8 46000021 */ cvt.d.s $f0, $f0 +/* 08A46C 800F0FBC 46220002 */ mul.d $f0, $f0, $f2 +/* 08A470 800F0FC0 00000000 */ nop +/* 08A474 800F0FC4 46200020 */ cvt.s.d $f0, $f0 +/* 08A478 800F0FC8 E6000000 */ swc1 $f0, ($s0) +/* 08A47C 800F0FCC 26310002 */ addiu $s1, $s1, 2 +.L800F0FD0: +/* 08A480 800F0FD0 26520001 */ addiu $s2, $s2, 1 +/* 08A484 800F0FD4 2A420039 */ slti $v0, $s2, 0x39 +/* 08A488 800F0FD8 1440FF99 */ bnez $v0, .L800F0E40 +/* 08A48C 800F0FDC 2610001C */ addiu $s0, $s0, 0x1c +.L800F0FE0: +/* 08A490 800F0FE0 26940001 */ addiu $s4, $s4, 1 +.L800F0FE4: +/* 08A494 800F0FE4 1A80FF80 */ blez $s4, .L800F0DE8 +/* 08A498 800F0FE8 2673063C */ addiu $s3, $s3, 0x63c +/* 08A49C 800F0FEC 8FBF0034 */ lw $ra, 0x34($sp) +/* 08A4A0 800F0FF0 8FBE0030 */ lw $fp, 0x30($sp) +/* 08A4A4 800F0FF4 8FB7002C */ lw $s7, 0x2c($sp) +/* 08A4A8 800F0FF8 8FB60028 */ lw $s6, 0x28($sp) +/* 08A4AC 800F0FFC 8FB50024 */ lw $s5, 0x24($sp) +/* 08A4B0 800F1000 8FB40020 */ lw $s4, 0x20($sp) +/* 08A4B4 800F1004 8FB3001C */ lw $s3, 0x1c($sp) +/* 08A4B8 800F1008 8FB20018 */ lw $s2, 0x18($sp) +/* 08A4BC 800F100C 8FB10014 */ lw $s1, 0x14($sp) +/* 08A4C0 800F1010 8FB00010 */ lw $s0, 0x10($sp) +/* 08A4C4 800F1014 D7BA0050 */ ldc1 $f26, 0x50($sp) +/* 08A4C8 800F1018 D7B80048 */ ldc1 $f24, 0x48($sp) +/* 08A4CC 800F101C D7B60040 */ ldc1 $f22, 0x40($sp) +/* 08A4D0 800F1020 D7B40038 */ ldc1 $f20, 0x38($sp) +/* 08A4D4 800F1024 03E00008 */ jr $ra +/* 08A4D8 800F1028 27BD0058 */ addiu $sp, $sp, 0x58 + +.set reorder \ No newline at end of file diff --git a/papermario/asm/code_8a160_len_700/func_800F102C.s b/papermario/asm/code_8a160_len_700/func_800F102C.s new file mode 100644 index 0000000000..bde3c1ce6c --- /dev/null +++ b/papermario/asm/code_8a160_len_700/func_800F102C.s @@ -0,0 +1,238 @@ +# %s disassembly and split file +# generated by n64split v%s - N64 ROM splitter + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches + +.include "globals.inc" + +func_800F102C: +/* 08A4DC 800F102C 27BDFF28 */ addiu $sp, $sp, -0xd8 +/* 08A4E0 800F1030 3C090050 */ lui $t1, 0x50 +/* 08A4E4 800F1034 352903C0 */ ori $t1, $t1, 0x3c0 +/* 08A4E8 800F1038 3C0ADC08 */ lui $t2, 0xdc08 +/* 08A4EC 800F103C 354A0008 */ ori $t2, $t2, 8 +/* 08A4F0 800F1040 27A40020 */ addiu $a0, $sp, 0x20 +/* 08A4F4 800F1044 AFB100A4 */ sw $s1, 0xa4($sp) +/* 08A4F8 800F1048 3C110001 */ lui $s1, 1 +/* 08A4FC 800F104C 36311630 */ ori $s1, $s1, 0x1630 +/* 08A500 800F1050 AFB700BC */ sw $s7, 0xbc($sp) +/* 08A504 800F1054 0000B82D */ daddu $s7, $zero, $zero +/* 08A508 800F1058 AFB600B8 */ sw $s6, 0xb8($sp) +/* 08A50C 800F105C 27B60060 */ addiu $s6, $sp, 0x60 +/* 08A510 800F1060 3C02800A */ lui $v0, 0x800a +/* 08A514 800F1064 2442A674 */ addiu $v0, $v0, -0x598c +/* 08A518 800F1068 AFBE00C0 */ sw $fp, 0xc0($sp) +/* 08A51C 800F106C 0040F02D */ daddu $fp, $v0, $zero +/* 08A520 800F1070 3C028007 */ lui $v0, 0x8007 +/* 08A524 800F1074 244241F0 */ addiu $v0, $v0, 0x41f0 +/* 08A528 800F1078 AFB300AC */ sw $s3, 0xac($sp) +/* 08A52C 800F107C 0040982D */ daddu $s3, $v0, $zero +/* 08A530 800F1080 AFB500B4 */ sw $s5, 0xb4($sp) +/* 08A534 800F1084 3C150001 */ lui $s5, 1 +/* 08A538 800F1088 36B51630 */ ori $s5, $s5, 0x1630 +/* 08A53C 800F108C AFB400B0 */ sw $s4, 0xb0($sp) +/* 08A540 800F1090 02E0A02D */ daddu $s4, $s7, $zero +/* 08A544 800F1094 AFB000A0 */ sw $s0, 0xa0($sp) +/* 08A548 800F1098 3C10800A */ lui $s0, 0x800a +/* 08A54C 800F109C 2610A66C */ addiu $s0, $s0, -0x5994 +/* 08A550 800F10A0 3C02E700 */ lui $v0, 0xe700 +/* 08A554 800F10A4 AFBF00C4 */ sw $ra, 0xc4($sp) +/* 08A558 800F10A8 AFB200A8 */ sw $s2, 0xa8($sp) +/* 08A55C 800F10AC F7B600D0 */ sdc1 $f22, 0xd0($sp) +/* 08A560 800F10B0 F7B400C8 */ sdc1 $f20, 0xc8($sp) +/* 08A564 800F10B4 8E030000 */ lw $v1, ($s0) +/* 08A568 800F10B8 3C0643A0 */ lui $a2, 0x43a0 +/* 08A56C 800F10BC 3C074370 */ lui $a3, 0x4370 +/* 08A570 800F10C0 44800000 */ mtc1 $zero, $f0 +/* 08A574 800F10C4 3C0142C8 */ lui $at, 0x42c8 +/* 08A578 800F10C8 44811000 */ mtc1 $at, $f2 +/* 08A57C 800F10CC 3C013F80 */ lui $at, 0x3f80 +/* 08A580 800F10D0 44812000 */ mtc1 $at, $f4 +/* 08A584 800F10D4 0060402D */ daddu $t0, $v1, $zero +/* 08A588 800F10D8 44050000 */ mfc1 $a1, $f0 +/* 08A58C 800F10DC 3C01C2C8 */ lui $at, 0xc2c8 +/* 08A590 800F10E0 44810000 */ mtc1 $at, $f0 +/* 08A594 800F10E4 24630008 */ addiu $v1, $v1, 8 +/* 08A598 800F10E8 AE030000 */ sw $v1, ($s0) +/* 08A59C 800F10EC AD020000 */ sw $v0, ($t0) +/* 08A5A0 800F10F0 24620008 */ addiu $v0, $v1, 8 +/* 08A5A4 800F10F4 AD000004 */ sw $zero, 4($t0) +/* 08A5A8 800F10F8 AE020000 */ sw $v0, ($s0) +/* 08A5AC 800F10FC 3C02DB06 */ lui $v0, 0xdb06 +/* 08A5B0 800F1100 AC620000 */ sw $v0, ($v1) +/* 08A5B4 800F1104 24620010 */ addiu $v0, $v1, 0x10 +/* 08A5B8 800F1108 AC600004 */ sw $zero, 4($v1) +/* 08A5BC 800F110C AE020000 */ sw $v0, ($s0) +/* 08A5C0 800F1110 3C02ED00 */ lui $v0, 0xed00 +/* 08A5C4 800F1114 AC620008 */ sw $v0, 8($v1) +/* 08A5C8 800F1118 24620018 */ addiu $v0, $v1, 0x18 +/* 08A5CC 800F111C AC69000C */ sw $t1, 0xc($v1) +/* 08A5D0 800F1120 AE020000 */ sw $v0, ($s0) +/* 08A5D4 800F1124 4485B000 */ mtc1 $a1, $f22 +/* 08A5D8 800F1128 3C028011 */ lui $v0, 0x8011 +/* 08A5DC 800F112C 244296B0 */ addiu $v0, $v0, -0x6950 +/* 08A5E0 800F1130 AC6A0010 */ sw $t2, 0x10($v1) +/* 08A5E4 800F1134 AC620014 */ sw $v0, 0x14($v1) +/* 08A5E8 800F1138 E7A20018 */ swc1 $f2, 0x18($sp) +/* 08A5EC 800F113C E7A4001C */ swc1 $f4, 0x1c($sp) +/* 08A5F0 800F1140 AFA50010 */ sw $a1, 0x10($sp) +/* 08A5F4 800F1144 0C018E44 */ jal guOrthoF +/* 08A5F8 800F1148 E7A00014 */ swc1 $f0, 0x14($sp) +/* 08A5FC 800F114C 27A40020 */ addiu $a0, $sp, 0x20 +/* 08A600 800F1150 96650000 */ lhu $a1, ($s3) +/* 08A604 800F1154 8FC20000 */ lw $v0, ($fp) +/* 08A608 800F1158 00052980 */ sll $a1, $a1, 6 +/* 08A60C 800F115C 00B12821 */ addu $a1, $a1, $s1 +/* 08A610 800F1160 0C019D40 */ jal guMtxF2L +/* 08A614 800F1164 00452821 */ addu $a1, $v0, $a1 +/* 08A618 800F1168 3C03DA38 */ lui $v1, 0xda38 +/* 08A61C 800F116C 34630007 */ ori $v1, $v1, 7 +/* 08A620 800F1170 3C067F7F */ lui $a2, 0x7f7f +/* 08A624 800F1174 34C67F7F */ ori $a2, $a2, 0x7f7f +/* 08A628 800F1178 8E040000 */ lw $a0, ($s0) +/* 08A62C 800F117C 96620000 */ lhu $v0, ($s3) +/* 08A630 800F1180 0080282D */ daddu $a1, $a0, $zero +/* 08A634 800F1184 24840008 */ addiu $a0, $a0, 8 +/* 08A638 800F1188 AE040000 */ sw $a0, ($s0) +/* 08A63C 800F118C ACA30000 */ sw $v1, ($a1) +/* 08A640 800F1190 24430001 */ addiu $v1, $v0, 1 +/* 08A644 800F1194 3042FFFF */ andi $v0, $v0, 0xffff +/* 08A648 800F1198 00021180 */ sll $v0, $v0, 6 +/* 08A64C 800F119C A6630000 */ sh $v1, ($s3) +/* 08A650 800F11A0 8FC30000 */ lw $v1, ($fp) +/* 08A654 800F11A4 00511021 */ addu $v0, $v0, $s1 +/* 08A658 800F11A8 00621821 */ addu $v1, $v1, $v0 +/* 08A65C 800F11AC 24820008 */ addiu $v0, $a0, 8 +/* 08A660 800F11B0 ACA30004 */ sw $v1, 4($a1) +/* 08A664 800F11B4 AE020000 */ sw $v0, ($s0) +/* 08A668 800F11B8 3C02DE00 */ lui $v0, 0xde00 +/* 08A66C 800F11BC AC820000 */ sw $v0, ($a0) +/* 08A670 800F11C0 3C028011 */ lui $v0, 0x8011 +/* 08A674 800F11C4 24429710 */ addiu $v0, $v0, -0x68f0 +/* 08A678 800F11C8 AC820004 */ sw $v0, 4($a0) +/* 08A67C 800F11CC 24820010 */ addiu $v0, $a0, 0x10 +/* 08A680 800F11D0 AE020000 */ sw $v0, ($s0) +/* 08A684 800F11D4 3C02FB00 */ lui $v0, 0xfb00 +/* 08A688 800F11D8 AC820008 */ sw $v0, 8($a0) +/* 08A68C 800F11DC AC86000C */ sw $a2, 0xc($a0) +.L800F11E0: +/* 08A690 800F11E0 3C0B8011 */ lui $t3, 0x8011 +/* 08A694 800F11E4 256BD000 */ addiu $t3, $t3, -0x3000 +/* 08A698 800F11E8 028B1821 */ addu $v1, $s4, $t3 +/* 08A69C 800F11EC 90620000 */ lbu $v0, ($v1) +/* 08A6A0 800F11F0 5040005C */ beql $v0, $zero, .L800F1364 +/* 08A6A4 800F11F4 26F70001 */ addiu $s7, $s7, 1 +/* 08A6A8 800F11F8 C4740018 */ lwc1 $f20, 0x18($v1) +/* 08A6AC 800F11FC 24120001 */ addiu $s2, $zero, 1 +/* 08A6B0 800F1200 3C11800A */ lui $s1, 0x800a +/* 08A6B4 800F1204 2631A66C */ addiu $s1, $s1, -0x5994 +/* 08A6B8 800F1208 24700022 */ addiu $s0, $v1, 0x22 +.L800F120C: +/* 08A6BC 800F120C 82020001 */ lb $v0, 1($s0) +/* 08A6C0 800F1210 0440004F */ bltz $v0, .L800F1350 +/* 08A6C4 800F1214 02C0202D */ daddu $a0, $s6, $zero +/* 08A6C8 800F1218 C6000012 */ lwc1 $f0, 0x12($s0) +/* 08A6CC 800F121C 4405B000 */ mfc1 $a1, $f22 +/* 08A6D0 800F1220 3C028007 */ lui $v0, 0x8007 +/* 08A6D4 800F1224 8C42419C */ lw $v0, 0x419c($v0) +/* 08A6D8 800F1228 4406B000 */ mfc1 $a2, $f22 +/* 08A6DC 800F122C 94430134 */ lhu $v1, 0x134($v0) +/* 08A6E0 800F1230 46140002 */ mul.s $f0, $f0, $f20 +/* 08A6E4 800F1234 00000000 */ nop +/* 08A6E8 800F1238 00031080 */ sll $v0, $v1, 2 +/* 08A6EC 800F123C 00431021 */ addu $v0, $v0, $v1 +/* 08A6F0 800F1240 00021040 */ sll $v0, $v0, 1 +/* 08A6F4 800F1244 44823000 */ mtc1 $v0, $f6 +/* 08A6F8 800F1248 00000000 */ nop +/* 08A6FC 800F124C 468031A0 */ cvt.s.w $f6, $f6 +/* 08A700 800F1250 44073000 */ mfc1 $a3, $f6 +/* 08A704 800F1254 E7A00010 */ swc1 $f0, 0x10($sp) +/* 08A708 800F1258 C6000002 */ lwc1 $f0, 2($s0) +/* 08A70C 800F125C E7A00014 */ swc1 $f0, 0x14($sp) +/* 08A710 800F1260 C6000006 */ lwc1 $f0, 6($s0) +/* 08A714 800F1264 E7B6001C */ swc1 $f22, 0x1c($sp) +/* 08A718 800F1268 0C018FC4 */ jal guPositionF +/* 08A71C 800F126C E7A00018 */ swc1 $f0, 0x18($sp) +/* 08A720 800F1270 02C0202D */ daddu $a0, $s6, $zero +/* 08A724 800F1274 96650000 */ lhu $a1, ($s3) +/* 08A728 800F1278 8FC20000 */ lw $v0, ($fp) +/* 08A72C 800F127C 00052980 */ sll $a1, $a1, 6 +/* 08A730 800F1280 00B52821 */ addu $a1, $a1, $s5 +/* 08A734 800F1284 0C019D40 */ jal guMtxF2L +/* 08A738 800F1288 00452821 */ addu $a1, $v0, $a1 +/* 08A73C 800F128C 3C08D838 */ lui $t0, 0xd838 +/* 08A740 800F1290 8E240000 */ lw $a0, ($s1) +/* 08A744 800F1294 35080002 */ ori $t0, $t0, 2 +/* 08A748 800F1298 0080282D */ daddu $a1, $a0, $zero +/* 08A74C 800F129C 24840008 */ addiu $a0, $a0, 8 +/* 08A750 800F12A0 AE240000 */ sw $a0, ($s1) +/* 08A754 800F12A4 96620000 */ lhu $v0, ($s3) +/* 08A758 800F12A8 3C03DA38 */ lui $v1, 0xda38 +/* 08A75C 800F12AC ACA30000 */ sw $v1, ($a1) +/* 08A760 800F12B0 24430001 */ addiu $v1, $v0, 1 +/* 08A764 800F12B4 3042FFFF */ andi $v0, $v0, 0xffff +/* 08A768 800F12B8 00021180 */ sll $v0, $v0, 6 +/* 08A76C 800F12BC A6630000 */ sh $v1, ($s3) +/* 08A770 800F12C0 8FC30000 */ lw $v1, ($fp) +/* 08A774 800F12C4 00551021 */ addu $v0, $v0, $s5 +/* 08A778 800F12C8 00621821 */ addu $v1, $v1, $v0 +/* 08A77C 800F12CC 24820008 */ addiu $v0, $a0, 8 +/* 08A780 800F12D0 ACA30004 */ sw $v1, 4($a1) +/* 08A784 800F12D4 AE220000 */ sw $v0, ($s1) +/* 08A788 800F12D8 82030001 */ lb $v1, 1($s0) +/* 08A78C 800F12DC 24020050 */ addiu $v0, $zero, 0x50 +/* 08A790 800F12E0 00431023 */ subu $v0, $v0, $v1 +/* 08A794 800F12E4 304200FF */ andi $v0, $v0, 0xff +/* 08A798 800F12E8 3C03FA00 */ lui $v1, 0xfa00 +/* 08A79C 800F12EC 00431025 */ or $v0, $v0, $v1 +/* 08A7A0 800F12F0 AC820000 */ sw $v0, ($a0) +/* 08A7A4 800F12F4 9203FFFD */ lbu $v1, -3($s0) +/* 08A7A8 800F12F8 9205FFFE */ lbu $a1, -2($s0) +/* 08A7AC 800F12FC 9206FFFF */ lbu $a2, -1($s0) +/* 08A7B0 800F1300 92070000 */ lbu $a3, ($s0) +/* 08A7B4 800F1304 24820010 */ addiu $v0, $a0, 0x10 +/* 08A7B8 800F1308 AE220000 */ sw $v0, ($s1) +/* 08A7BC 800F130C 3C02DE00 */ lui $v0, 0xde00 +/* 08A7C0 800F1310 AC820008 */ sw $v0, 8($a0) +/* 08A7C4 800F1314 3C028011 */ lui $v0, 0x8011 +/* 08A7C8 800F1318 244297D8 */ addiu $v0, $v0, -0x6828 +/* 08A7CC 800F131C AC82000C */ sw $v0, 0xc($a0) +/* 08A7D0 800F1320 24820018 */ addiu $v0, $a0, 0x18 +/* 08A7D4 800F1324 AE220000 */ sw $v0, ($s1) +/* 08A7D8 800F1328 24020040 */ addiu $v0, $zero, 0x40 +/* 08A7DC 800F132C AC880010 */ sw $t0, 0x10($a0) +/* 08A7E0 800F1330 AC820014 */ sw $v0, 0x14($a0) +/* 08A7E4 800F1334 00031E00 */ sll $v1, $v1, 0x18 +/* 08A7E8 800F1338 00052C00 */ sll $a1, $a1, 0x10 +/* 08A7EC 800F133C 00651825 */ or $v1, $v1, $a1 +/* 08A7F0 800F1340 00063200 */ sll $a2, $a2, 8 +/* 08A7F4 800F1344 00661825 */ or $v1, $v1, $a2 +/* 08A7F8 800F1348 00671825 */ or $v1, $v1, $a3 +/* 08A7FC 800F134C AC830004 */ sw $v1, 4($a0) +.L800F1350: +/* 08A800 800F1350 26520001 */ addiu $s2, $s2, 1 +/* 08A804 800F1354 2A420039 */ slti $v0, $s2, 0x39 +/* 08A808 800F1358 1440FFAC */ bnez $v0, .L800F120C +/* 08A80C 800F135C 2610001C */ addiu $s0, $s0, 0x1c +/* 08A810 800F1360 26F70001 */ addiu $s7, $s7, 1 +.L800F1364: +/* 08A814 800F1364 1AE0FF9E */ blez $s7, .L800F11E0 +/* 08A818 800F1368 2694063C */ addiu $s4, $s4, 0x63c +/* 08A81C 800F136C 8FBF00C4 */ lw $ra, 0xc4($sp) +/* 08A820 800F1370 8FBE00C0 */ lw $fp, 0xc0($sp) +/* 08A824 800F1374 8FB700BC */ lw $s7, 0xbc($sp) +/* 08A828 800F1378 8FB600B8 */ lw $s6, 0xb8($sp) +/* 08A82C 800F137C 8FB500B4 */ lw $s5, 0xb4($sp) +/* 08A830 800F1380 8FB400B0 */ lw $s4, 0xb0($sp) +/* 08A834 800F1384 8FB300AC */ lw $s3, 0xac($sp) +/* 08A838 800F1388 8FB200A8 */ lw $s2, 0xa8($sp) +/* 08A83C 800F138C 8FB100A4 */ lw $s1, 0xa4($sp) +/* 08A840 800F1390 8FB000A0 */ lw $s0, 0xa0($sp) +/* 08A844 800F1394 D7B600D0 */ ldc1 $f22, 0xd0($sp) +/* 08A848 800F1398 D7B400C8 */ ldc1 $f20, 0xc8($sp) +/* 08A84C 800F139C 03E00008 */ jr $ra +/* 08A850 800F13A0 27BD00D8 */ addiu $sp, $sp, 0xd8 + +.set reorder diff --git a/papermario/include/common_structs.h b/papermario/include/common_structs.h index d671436bb5..f8f2b63e16 100644 --- a/papermario/include/common_structs.h +++ b/papermario/include/common_structs.h @@ -4,18 +4,42 @@ #include "ultra64.h" typedef struct { - /* 0x00 */ char unk_00[0x68]; - /* 0x68 */ u16 demoButtonInput; - /* 0x6A */ s8 demoStickX; - /* 0x6B */ s8 demoStickY; - /* 0x6C */ char unk_6C[0x5]; - /* 0x71 */ s8 demoState; - /* 0x72 */ char unk_72[8]; - /* 0x7A */ s8 audio_unk; + /* 0x000 */ s16 unk_00; + /* 0x002 */ s16 unk_02; + /* 0x004 */ char unk_04[0x44]; + /* 0x048 */ u16 unk_48[4]; + /* 0x050 */ u16 unk_50[4]; + /* 0x058 */ char unk_58[0x10]; + /* 0x068 */ u16 demoButtonInput; + /* 0x06A */ s8 demoStickX; + /* 0x06B */ s8 demoStickY; + /* 0x06C */ char unk_6C[0x5]; + /* 0x071 */ s8 demoState; + /* 0x072 */ char unk_72[3]; + /* 0x075 */ s8 unk_75; + /* 0x076 */ char unk_76[3]; + /* 0x079 */ s8 unk_79; + /* 0x07A */ s8 musicEnabled; + /* 0x07B */ char unk_7B; + /* 0x07C */ s8 unk_7C; + /* 0x07D */ char unk_7D[4]; + /* 0x081 */ s8 unk_81; + /* 0x082 */ s8 unk_82; + /* 0x083 */ s8 unk_83; + /* 0x084 */ char unk_84[0x24]; + /* 0x0A8 */ s8 unk_A8; + /* 0x0A9 */ char unk_A9; + /* 0x0AA */ s8 unk_AA; + /* 0x0AB */ char unk_AB[0x91]; + /* 0x13C */ s16 unk_13C; + /* 0x13E */ char unk_13E[0xA]; + /* 0x148 */ s16 unk_148; + /* 0x14A */ char unk_14A[0x1E]; + /* 0x168 */ s32 unk_168; } game_status; typedef struct { - /* 0x0C */ char unk_00[0xC]; + /* 0x00 */ char unk_00[0xC]; /* 0x0C */ s32* ptrReadPos; } ScriptContext; diff --git a/papermario/papermario.ld b/papermario/papermario.ld index 72b6dd8de4..1ea3c0b7c1 100644 --- a/papermario/papermario.ld +++ b/papermario/papermario.ld @@ -34,7 +34,7 @@ SECTIONS /* 0x80026740 001B40-003BF0 [20B0] */ .text80026740 0x80026740 : AT(0x001B40) { - build/asm/code_1b40_len_20b0.o(.text80026740); + build/src/code_1b40_len_20b0.o(.text); } /* 0x800287F0 003BF0-0042E0 [6F0] */ @@ -859,7 +859,7 @@ SECTIONS /* 0x800F0CB0 08A160-08A860 [700] */ .text800F0CB0 0x800F0CB0 : AT(0x08A160) { - build/asm/code_8a160_len_700.o(.text800F0CB0); + build/src/code_8a160_len_700.o(.text); } /* 0x800F13B0 08A860-08E790 [3F30] */ diff --git a/papermario/src/code_1b40_len_20b0.c b/papermario/src/code_1b40_len_20b0.c new file mode 100644 index 0000000000..4ac770d1a7 --- /dev/null +++ b/papermario/src/code_1b40_len_20b0.c @@ -0,0 +1,142 @@ +#include "common.h" + +extern Gfx D_00074210[]; +extern Gfx D_00074230[]; +extern Gfx *D_8009A66C[1]; + +extern int D_000759B0[]; +extern int D_000759B0_end[]; //A55D0 + +extern int D_000A5DD0[]; +extern int D_000A5DD0_end[]; //E79B0 + +extern int D_000E79B0[]; +extern int D_000E79B0_end[]; //FEE30 + +extern int D_000FEE30[]; +extern int D_000FEE30_end[]; //102610 + +extern int D_00102610[]; +extern int D_00102610_end[]; //10CC10 + +extern int D_0010CC10[]; +extern int D_0010CC10_end[]; //10F1B0 + +extern int D_802DBD40[]; +extern int D_800DC500[]; +extern int D_802C3000[]; +extern int D_802E0D90[]; +extern int D_8010F6D0[]; +extern int D_802EB3D0[]; + +extern u8 D_80074021; +extern s32 D_8009A5D8; +extern s32 D_8009A650[]; + +void dma_copy(void *, void*, void*); + +INCLUDE_ASM(code_1b40_len_20b0, step_game_loop); + +INCLUDE_ASM(code_1b40_len_20b0, func_800269EC); + +INCLUDE_ASM(code_1b40_len_20b0, gfx_draw_frame); + +INCLUDE_ASM(code_1b40_len_20b0, load_engine_data); +/*void load_engine_data(void) { + game_status *phi_s0; + s32 i; + + dma_copy(D_000FEE30, D_000FEE30_end, D_802DBD40); + dma_copy(D_000759B0, D_000759B0_end, D_800DC500); + dma_copy(D_000E79B0, D_000E79B0_end, D_802C3000); + dma_copy(D_00102610, D_00102610_end, D_802E0D90); + dma_copy(D_000A5DD0, D_000A5DD0_end, D_8010F6D0); + dma_copy(D_0010CC10, D_0010CC10_end, D_802EB3D0); + D_8009A650[0] = 0; + phi_s0 = *gGameStatusPtr; + (*gGameStatusPtr)->unk_79 = 0; + (*gGameStatusPtr)->musicEnabled = 1; + phi_s0->unk_148 = 0; + (*gGameStatusPtr)->unk_7C = 1; + (*gGameStatusPtr)->unk_A8 = -1; + (*gGameStatusPtr)->unk_AA = 0; + (*gGameStatusPtr)->unk_81 = 0; + (*gGameStatusPtr)->unk_82 = -8; + (*gGameStatusPtr)->unk_83 = 4; + D_8009A5D8 = 0; + (*gGameStatusPtr)->unk_75 = (*gGameStatusPtr)->unk_13C = 0; + D_80074021 = 5; + (*gGameStatusPtr)->unk_168 = 0; + fio_init_flash(); + func_80028838(); + general_heap_create(); + func_8011D890(); + func_801230B8(); + clear_script_list(); + create_cameras_a(); + clear_player_status(); + func_802DD8F8(0); + func_80120BB0(); + func_8011E224(); + clear_model_data(); + func_80148040(); + func_80145DF8(); + clear_character_set(); + clear_printers(); + func_80112B98(); + func_800384BC(); + func_80141100(); + clear_trigger_data(); + func_80110CB8(0); + clear_player_data(); + func_8003E338(); + func_80138108(); + func_80059C9C(); + clear_saved_variables(); + clear_item_entity_data(); + func_8014A498(); + func_80147230(); + func_80149618(); + func_801473F0(); + func_8002BA40(); + poll_rumble(); + + phi_s0 = *gGameStatusPtr; + for(i = 0; i < 4; i++) + { + phi_s0->unk_50[i] = 3; + phi_s0->unk_48[i] = 0xC; + } + + D_8009A650[0] |= 8; + set_game_mode(0); +}*/ + +INCLUDE_ASM(code_1b40_len_20b0, func_80027088); + +INCLUDE_ASM(code_1b40_len_20b0, func_80027190); + +INCLUDE_ASM(code_1b40_len_20b0, func_800271A0); +/*void func_800271A0(void) { + Gfx *temp = D_8009A66C[0] + 1; + + gSPSegment(D_8009A66C[0], 0x00, 0x00000000); + D_8009A66C[0] = temp; + gSPDisplayList(temp, &D_00074230); + D_8009A66C[0]++; + gSPDisplayList(D_8009A66C[0]++, &D_00074210); +}*/ + +INCLUDE_ASM(code_1b40_len_20b0, func_800271FC); + +INCLUDE_ASM(code_1b40_len_20b0, func_8002725C); + +INCLUDE_ASM(code_1b40_len_20b0, func_80027600); + +INCLUDE_ASM(code_1b40_len_20b0, func_80027774); + +INCLUDE_ASM(code_1b40_len_20b0, func_800279B4); + +INCLUDE_ASM(code_1b40_len_20b0, func_80027BAC); + +INCLUDE_ASM(code_1b40_len_20b0, func_80027E10); \ No newline at end of file diff --git a/papermario/src/code_8a160_len_700.c b/papermario/src/code_8a160_len_700.c new file mode 100644 index 0000000000..a113319a29 --- /dev/null +++ b/papermario/src/code_8a160_len_700.c @@ -0,0 +1,112 @@ +#include "common.h" + +typedef struct +{ + /* 0x00 */ u8 unk0; + /* 0x01 */ u8 unk1; + /* 0x02 */ u8 unk2; + /* 0x03 */ char unk3[4]; + /* 0x07 */ s8 unk7; + /* 0x08 */ f32 unk8; + /* 0x0C */ f32 unkC; + /* 0x10 */ char unk10[8]; + /* 0x18 */ f32 unk18; +} sub_struct_func_800F0CB0; + +typedef struct +{ + /* 0x00 */ sub_struct_func_800F0CB0 unk00[0x39]; +} struct_func_800F0CB0; + +extern struct_func_800F0CB0 D_8010D000[]; + +INCLUDE_ASM(code_8a160_len_700, func_800F0CB0); +//void func_800F0CB0(s32 arg0, f32 arg1, f32 arg2, f32 arg3) +//{ +// sub_struct_func_800F0CB0 *temp_a1 = &D_8010D000[arg0].unk00[0]; +// s32 temp = 0x39; +// s32 i; +// +// if (arg0 >= 1) { +// return; +// } +// +// temp_a1->unk0 = 1; +// temp_a1->unk8 = arg1; +// temp_a1->unkC = arg2; +// temp_a1->unk18 = arg3; +// temp_a1->unk1 = 0x28; +// temp_a1->unk2 = 0; +// +// for(i = 1; i < temp; i++) +// temp_a1[i].unk7 = (s32)(-(f32) i * 0.0f) - 1; +//} + +void func_800F0D5C(void) { + struct_func_800F0CB0 *temp = &D_8010D000[0]; + s32 i = 0; + + for(i; i < 1; i++) { + temp[i].unk00[0].unk0 = 0; + } +} + +INCLUDE_ASM(code_8a160_len_700, func_800F0D80); + +/*extern u16 D_800741F0; +extern Gfx *D_8009A66C; +extern Gfx *D_8009A674; +extern void *D_801096B0; +extern Gfx D_80109710[]; +extern Gfx D_801097D8[];*/ + +INCLUDE_ASM(code_8a160_len_700, func_800F102C); +/*void func_800F102C(void) { + s32 temp_s2; + s32 temp_s7; + u16 *temp_v0 = &D_800741F0; + u16 temp_v0_2; + u16 temp_v1_4; + Gfx *temp_a0; + sub_struct_func_800F0CB0 *temp_v1_3; + void *phi_s0; + s32 phi_s2; + s32 phi_s7; + Mtx mtx; + Mtx mtx2; + + temp_a0 = D_8009A66C; + + gDPPipeSync(temp_a0++); + gSPSegment(temp_a0++, 0x00, 0x00000000); + gDPSetScissor(temp_a0++, G_SC_NON_INTERLACE, 0, 0, 320, 240); + gSPViewport(temp_a0++, &D_801096B0); + guOrthoF(&mtx, 0.0f, 320.0f, 240.0f, 0.0f, -100.0f, 100.0f, 1.0f); + guMtxF2L(&mtx, *(void *)0x8009A674 + (*temp_v0 * 64 + 0x11630)); + gSPMatrix(temp_a0++, (*(void *)0x8009A674 + (temp_v0++ * 64 + 0x11630)), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); + gSPDisplayList(temp_a0++, &D_80109710); + gDPSetEnvColor(temp_a0++, 0x7F, 0x7F, 0x7F, 0x7F); + phi_s7 = 0; + do + { + temp_v1_3 = &D_8010D000[phi_s7].unk00[0]; + if (temp_v1_3->unk0 != 0) { + phi_s0 = temp_v1_3 + 0x22; + phi_s2 = 1; + do { + if ((s32) phi_s0->unk1 >= 0) { + guPositionF(&mtx2, 0.0f, 0.0f, (*gGameStatusPtr)->unk134 * 0xA, phi_s0->unk12 * temp_v1_3->unk18, phi_s0->unk2, phi_s0->unk6, 0.0f); + guMtxF2L(&mtx2, *(void *)0x8009A674 + ((*(void *)0x800741F0 << 6) + 0x11630)); + gSPMatrix(temp_a0++, (*(void *)0x8009A674 + (temp_v0++ * 64 + 0x11630)), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW); + temp_a0_2->unk0 = (s32) (((0x50 - phi_s0->unk1) & 0xFF) | 0xFA000000); + temp_a0_2->unk4 = (?32) ((((phi_s0->unk-3 << 0x18) | (phi_s0->unk-2 << 0x10)) | (phi_s0->unk-1 << 8)) | phi_s0->unk0); + gSPDisplayList(temp_a0++, &D_801097D8); + gSPPopMatrix(temp_a0++, G_MTX_MODELVIEW); + } + phi_s2++; + } while(phi_s2 < 0x39); + } + phi_s7++; + } + while(phi_s7 < 1); +}*/ \ No newline at end of file diff --git a/papermario/src/code_dd930_len_1c0.c b/papermario/src/code_dd930_len_1c0.c index f76bb604c5..cc7813a1ee 100644 --- a/papermario/src/code_dd930_len_1c0.c +++ b/papermario/src/code_dd930_len_1c0.c @@ -25,7 +25,7 @@ INCLUDE_ASM(code_dd930_len_1c0, play_ambient_sounds); struct_80147230 *temp2 = &D_8015C7C0; struct_80147230 **temp3 = &temp2; - if ((*gGameStatusPtr)->audio_unk == 0) + if ((*gGameStatusPtr)->musicEnabled == 0) { func_800554A4(temp2->unk8); temp2->unk0 &= ~1; diff --git a/papermario/undefined_syms.txt b/papermario/undefined_syms.txt index 734c2bba98..ff609f3137 100644 --- a/papermario/undefined_syms.txt +++ b/papermario/undefined_syms.txt @@ -6,6 +6,7 @@ D_00316F30 = 0x00316F30; gGameStatusPtr = 0x8007419C; +D_8010D000 = 0x8010D000; D_8014F140 = 0x8014F140; D_80151328 = 0x80151328; D_8015C7C0 = 0x8015C7C0;