From d556999b2b127e7cfe4ceb4b03c7b9023fd78543 Mon Sep 17 00:00:00 2001 From: Random <28494085+Random06457@users.noreply.github.com> Date: Fri, 15 May 2020 11:02:39 +0200 Subject: [PATCH] Decompile remaining z_vis... files (#131) * Decompile z_vismono.c / code_800AD920.c - z_vismono.c: OK - code_800AD920.c: OK * Minor fixes in PR #131 --- asm/code_800AD920.s | 181 --- asm/game.s | 1423 +++++++++++++++++ asm/non_matchings/code/z_play/Gameplay_Draw.s | 2 +- asm/non_matchings/code/z_play/Gameplay_Init.s | 2 +- .../code/z_vismono/func_800AD000.s | 23 - .../code/z_vismono/func_800AD054.s | 19 - .../code/z_vismono/func_800AD080.s | 216 --- .../code/z_vismono/func_800AD394.s | 142 -- .../code/z_vismono/func_800AD5C0.s | 222 --- .../code/z_vismono/func_800AD870.s | 62 - include/functions.h | 23 +- include/z64.h | 26 +- spec | 2 +- src/code/code_800ACE70.c | 9 +- src/code/code_800AD920.c | 65 + src/code/game.c | 22 +- src/code/z_play.c | 8 +- src/code/z_vismono.c | 140 +- undefined_syms.txt | 6 + 19 files changed, 1682 insertions(+), 911 deletions(-) delete mode 100644 asm/code_800AD920.s create mode 100644 asm/game.s delete mode 100644 asm/non_matchings/code/z_vismono/func_800AD000.s delete mode 100644 asm/non_matchings/code/z_vismono/func_800AD054.s delete mode 100644 asm/non_matchings/code/z_vismono/func_800AD080.s delete mode 100644 asm/non_matchings/code/z_vismono/func_800AD394.s delete mode 100644 asm/non_matchings/code/z_vismono/func_800AD5C0.s delete mode 100644 asm/non_matchings/code/z_vismono/func_800AD870.s create mode 100644 src/code/code_800AD920.c diff --git a/asm/code_800AD920.s b/asm/code_800AD920.s deleted file mode 100644 index 00f2aedb54..0000000000 --- a/asm/code_800AD920.s +++ /dev/null @@ -1,181 +0,0 @@ -.include "macro.inc" - -# assembler directives -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches -.set gp=64 # allow use of 64-bit general purposee registers - -.section .text - -.align 4 - -glabel func_800AD920 -/* B24AC0 800AD920 240200FF */ li $v0, 255 -/* B24AC4 800AD924 AC800000 */ sw $zero, ($a0) -/* B24AC8 800AD928 AC800004 */ sw $zero, 4($a0) -/* B24ACC 800AD92C A0820008 */ sb $v0, 8($a0) -/* B24AD0 800AD930 A0820009 */ sb $v0, 9($a0) -/* B24AD4 800AD934 A082000A */ sb $v0, 0xa($a0) -/* B24AD8 800AD938 A082000B */ sb $v0, 0xb($a0) -/* B24ADC 800AD93C A082000F */ sb $v0, 0xf($a0) -/* B24AE0 800AD940 A080000C */ sb $zero, 0xc($a0) -/* B24AE4 800AD944 A080000D */ sb $zero, 0xd($a0) -/* B24AE8 800AD948 03E00008 */ jr $ra -/* B24AEC 800AD94C A080000E */ sb $zero, 0xe($a0) - -glabel func_800AD950 -/* B24AF0 800AD950 03E00008 */ jr $ra -/* B24AF4 800AD954 AFA40000 */ sw $a0, ($sp) - -glabel func_800AD958 -/* B24AF8 800AD958 27BDFFF8 */ addiu $sp, $sp, -8 -/* B24AFC 800AD95C AFB00004 */ sw $s0, 4($sp) -/* B24B00 800AD960 AFA5000C */ sw $a1, 0xc($sp) -/* B24B04 800AD964 8C8F0000 */ lw $t7, ($a0) -/* B24B08 800AD968 3C060E00 */ lui $a2, 0xe00 -/* B24B0C 800AD96C 8CA20000 */ lw $v0, ($a1) -/* B24B10 800AD970 15E00003 */ bnez $t7, .L800AD980 -/* B24B14 800AD974 24C60000 */ addiu $a2, $a2, 0 -/* B24B18 800AD978 10000002 */ b .L800AD984 -/* B24B1C 800AD97C 24030003 */ li $v1, 3 -.L800AD980: -/* B24B20 800AD980 00001825 */ move $v1, $zero -.L800AD984: -/* B24B24 800AD984 00402825 */ move $a1, $v0 -/* B24B28 800AD988 3C18E700 */ lui $t8, 0xe700 -/* B24B2C 800AD98C ACB80000 */ sw $t8, ($a1) -/* B24B30 800AD990 ACA00004 */ sw $zero, 4($a1) -/* B24B34 800AD994 8C990004 */ lw $t9, 4($a0) -/* B24B38 800AD998 24010001 */ li $at, 1 -/* B24B3C 800AD99C 24420008 */ addiu $v0, $v0, 8 -/* B24B40 800AD9A0 17210008 */ bne $t9, $at, .L800AD9C4 -/* B24B44 800AD9A4 3C18EF00 */ lui $t8, (0xEF000C30 >> 16) # lui $t8, 0xef00 -/* B24B48 800AD9A8 00402825 */ move $a1, $v0 -/* B24B4C 800AD9AC 3C0F0050 */ lui $t7, (0x005003C0 >> 16) # lui $t7, 0x50 -/* B24B50 800AD9B0 35EF03C0 */ ori $t7, (0x005003C0 & 0xFFFF) # ori $t7, $t7, 0x3c0 -/* B24B54 800AD9B4 3C0EED00 */ lui $t6, 0xed00 -/* B24B58 800AD9B8 ACAE0000 */ sw $t6, ($a1) -/* B24B5C 800AD9BC ACAF0004 */ sw $t7, 4($a1) -/* B24B60 800AD9C0 24420008 */ addiu $v0, $v0, 8 -.L800AD9C4: -/* B24B64 800AD9C4 00402825 */ move $a1, $v0 -/* B24B68 800AD9C8 3C190F0A */ lui $t9, (0x0F0A4004 >> 16) # lui $t9, 0xf0a -/* B24B6C 800AD9CC 37394004 */ ori $t9, (0x0F0A4004 & 0xFFFF) # ori $t9, $t9, 0x4004 -/* B24B70 800AD9D0 37180C30 */ ori $t8, (0xEF000C30 & 0xFFFF) # ori $t8, $t8, 0xc30 -/* B24B74 800AD9D4 ACB80000 */ sw $t8, ($a1) -/* B24B78 800AD9D8 ACB90004 */ sw $t9, 4($a1) -/* B24B7C 800AD9DC 24420008 */ addiu $v0, $v0, 8 -/* B24B80 800AD9E0 00402825 */ move $a1, $v0 -/* B24B84 800AD9E4 3C0EFC30 */ lui $t6, (0xFC30B261 >> 16) # lui $t6, 0xfc30 -/* B24B88 800AD9E8 3C0F5566 */ lui $t7, (0x5566DB6D >> 16) # lui $t7, 0x5566 -/* B24B8C 800AD9EC 35EFDB6D */ ori $t7, (0x5566DB6D & 0xFFFF) # ori $t7, $t7, 0xdb6d -/* B24B90 800AD9F0 35CEB261 */ ori $t6, (0xFC30B261 & 0xFFFF) # ori $t6, $t6, 0xb261 -/* B24B94 800AD9F4 ACAE0000 */ sw $t6, ($a1) -/* B24B98 800AD9F8 ACAF0004 */ sw $t7, 4($a1) -/* B24B9C 800AD9FC 24420008 */ addiu $v0, $v0, 8 -/* B24BA0 800ADA00 00402825 */ move $a1, $v0 -/* B24BA4 800ADA04 3C18FA00 */ lui $t8, 0xfa00 -/* B24BA8 800ADA08 ACB80000 */ sw $t8, ($a1) -/* B24BAC 800ADA0C 8C990008 */ lw $t9, 8($a0) -/* B24BB0 800ADA10 24420008 */ addiu $v0, $v0, 8 -/* B24BB4 800ADA14 3C0EFB00 */ lui $t6, 0xfb00 -/* B24BB8 800ADA18 ACB90004 */ sw $t9, 4($a1) -/* B24BBC 800ADA1C 00402825 */ move $a1, $v0 -/* B24BC0 800ADA20 30690007 */ andi $t1, $v1, 7 -/* B24BC4 800ADA24 ACAE0000 */ sw $t6, ($a1) -/* B24BC8 800ADA28 00094D40 */ sll $t1, $t1, 0x15 -/* B24BCC 800ADA2C 3C01FD00 */ lui $at, 0xfd00 -/* B24BD0 800ADA30 8C8F000C */ lw $t7, 0xc($a0) -/* B24BD4 800ADA34 01213825 */ or $a3, $t1, $at -/* B24BD8 800ADA38 3C010010 */ lui $at, 0x10 -/* B24BDC 800ADA3C 00E13825 */ or $a3, $a3, $at -/* B24BE0 800ADA40 3C01F500 */ lui $at, 0xf500 -/* B24BE4 800ADA44 ACAF0004 */ sw $t7, 4($a1) -/* B24BE8 800ADA48 01212825 */ or $a1, $t1, $at -/* B24BEC 800ADA4C 3C010010 */ lui $at, 0x10 -/* B24BF0 800ADA50 00A12825 */ or $a1, $a1, $at -/* B24BF4 800ADA54 3C090708 */ lui $t1, (0x07080200 >> 16) # lui $t1, 0x708 -/* B24BF8 800ADA58 3C0D0008 */ lui $t5, (0x00080200 >> 16) # lui $t5, 8 -/* B24BFC 800ADA5C 24420008 */ addiu $v0, $v0, 8 -/* B24C00 800ADA60 35AD0200 */ ori $t5, (0x00080200 & 0xFFFF) # ori $t5, $t5, 0x200 -/* B24C04 800ADA64 35290200 */ ori $t1, (0x07080200 & 0xFFFF) # ori $t1, $t1, 0x200 -/* B24C08 800ADA68 34A8A000 */ ori $t0, $a1, 0xa000 -/* B24C0C 800ADA6C 00002025 */ move $a0, $zero -/* B24C10 800ADA70 3C0C0700 */ lui $t4, 0x700 -/* B24C14 800ADA74 3C0BF300 */ lui $t3, 0xf300 -/* B24C18 800ADA78 3C0AE600 */ lui $t2, 0xe600 -.L800ADA7C: -/* B24C1C 800ADA7C 00401825 */ move $v1, $v0 -/* B24C20 800ADA80 AC670000 */ sw $a3, ($v1) -/* B24C24 800ADA84 AC660004 */ sw $a2, 4($v1) -/* B24C28 800ADA88 24420008 */ addiu $v0, $v0, 8 -/* B24C2C 800ADA8C 00401825 */ move $v1, $v0 -/* B24C30 800ADA90 AC650000 */ sw $a1, ($v1) -/* B24C34 800ADA94 AC690004 */ sw $t1, 4($v1) -/* B24C38 800ADA98 24420008 */ addiu $v0, $v0, 8 -/* B24C3C 800ADA9C 00401825 */ move $v1, $v0 -/* B24C40 800ADAA0 2410077F */ li $s0, 1919 -/* B24C44 800ADAA4 32180FFF */ andi $t8, $s0, 0xfff -/* B24C48 800ADAA8 AC6A0000 */ sw $t2, ($v1) -/* B24C4C 800ADAAC AC600004 */ sw $zero, 4($v1) -/* B24C50 800ADAB0 24420008 */ addiu $v0, $v0, 8 -/* B24C54 800ADAB4 00401825 */ move $v1, $v0 -/* B24C58 800ADAB8 0018CB00 */ sll $t9, $t8, 0xc -/* B24C5C 800ADABC 032C7025 */ or $t6, $t9, $t4 -/* B24C60 800ADAC0 35CF001A */ ori $t7, $t6, 0x1a -/* B24C64 800ADAC4 AC6F0004 */ sw $t7, 4($v1) -/* B24C68 800ADAC8 AC6B0000 */ sw $t3, ($v1) -/* B24C6C 800ADACC 24420008 */ addiu $v0, $v0, 8 -/* B24C70 800ADAD0 00401825 */ move $v1, $v0 -/* B24C74 800ADAD4 3C18E700 */ lui $t8, 0xe700 -/* B24C78 800ADAD8 AC780000 */ sw $t8, ($v1) -/* B24C7C 800ADADC AC600004 */ sw $zero, 4($v1) -/* B24C80 800ADAE0 24420008 */ addiu $v0, $v0, 8 -/* B24C84 800ADAE4 00401825 */ move $v1, $v0 -/* B24C88 800ADAE8 AC680000 */ sw $t0, ($v1) -/* B24C8C 800ADAEC AC6D0004 */ sw $t5, 4($v1) -/* B24C90 800ADAF0 24420008 */ addiu $v0, $v0, 8 -/* B24C94 800ADAF4 00401825 */ move $v1, $v0 -/* B24C98 800ADAF8 3C0E004F */ lui $t6, (0x004FC014 >> 16) # lui $t6, 0x4f -/* B24C9C 800ADAFC 35CEC014 */ ori $t6, (0x004FC014 & 0xFFFF) # ori $t6, $t6, 0xc014 -/* B24CA0 800ADB00 3C19F200 */ lui $t9, 0xf200 -/* B24CA4 800ADB04 AC790000 */ sw $t9, ($v1) -/* B24CA8 800ADB08 AC6E0004 */ sw $t6, 4($v1) -/* B24CAC 800ADB0C 24830006 */ addiu $v1, $a0, 6 -/* B24CB0 800ADB10 24420008 */ addiu $v0, $v0, 8 -/* B24CB4 800ADB14 00037880 */ sll $t7, $v1, 2 -/* B24CB8 800ADB18 31F80FFF */ andi $t8, $t7, 0xfff -/* B24CBC 800ADB1C 00408025 */ move $s0, $v0 -/* B24CC0 800ADB20 00047080 */ sll $t6, $a0, 2 -/* B24CC4 800ADB24 24420008 */ addiu $v0, $v0, 8 -/* B24CC8 800ADB28 3C01E450 */ lui $at, 0xe450 -/* B24CCC 800ADB2C 0301C825 */ or $t9, $t8, $at -/* B24CD0 800ADB30 00402025 */ move $a0, $v0 -/* B24CD4 800ADB34 31CF0FFF */ andi $t7, $t6, 0xfff -/* B24CD8 800ADB38 AE0F0004 */ sw $t7, 4($s0) -/* B24CDC 800ADB3C AE190000 */ sw $t9, ($s0) -/* B24CE0 800ADB40 3C18E100 */ lui $t8, 0xe100 -/* B24CE4 800ADB44 AC980000 */ sw $t8, ($a0) -/* B24CE8 800ADB48 AC800004 */ sw $zero, 4($a0) -/* B24CEC 800ADB4C 24420008 */ addiu $v0, $v0, 8 -/* B24CF0 800ADB50 00402025 */ move $a0, $v0 -/* B24CF4 800ADB54 3C0E0400 */ lui $t6, (0x04000400 >> 16) # lui $t6, 0x400 -/* B24CF8 800ADB58 35CE0400 */ ori $t6, (0x04000400 & 0xFFFF) # ori $t6, $t6, 0x400 -/* B24CFC 800ADB5C 3C19F100 */ lui $t9, 0xf100 -/* B24D00 800ADB60 286100EB */ slti $at, $v1, 0xeb -/* B24D04 800ADB64 AC990000 */ sw $t9, ($a0) -/* B24D08 800ADB68 AC8E0004 */ sw $t6, 4($a0) -/* B24D0C 800ADB6C 00602025 */ move $a0, $v1 -/* B24D10 800ADB70 24420008 */ addiu $v0, $v0, 8 -/* B24D14 800ADB74 1420FFC1 */ bnez $at, .L800ADA7C -/* B24D18 800ADB78 24C60F00 */ addiu $a2, $a2, 0xf00 -/* B24D1C 800ADB7C 00401825 */ move $v1, $v0 -/* B24D20 800ADB80 3C0FE700 */ lui $t7, 0xe700 -/* B24D24 800ADB84 AC6F0000 */ sw $t7, ($v1) -/* B24D28 800ADB88 AC600004 */ sw $zero, 4($v1) -/* B24D2C 800ADB8C 8FB8000C */ lw $t8, 0xc($sp) -/* B24D30 800ADB90 24420008 */ addiu $v0, $v0, 8 -/* B24D34 800ADB94 AF020000 */ sw $v0, ($t8) -/* B24D38 800ADB98 8FB00004 */ lw $s0, 4($sp) -/* B24D3C 800ADB9C 03E00008 */ jr $ra -/* B24D40 800ADBA0 27BD0008 */ addiu $sp, $sp, 8 diff --git a/asm/game.s b/asm/game.s new file mode 100644 index 0000000000..d9cf189da0 --- /dev/null +++ b/asm/game.s @@ -0,0 +1,1423 @@ +.include "macro.inc" + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 # allow use of 64-bit general purposee registers + +.section .text + +.align 4 + +glabel func_800C4130 +/* B3B2D0 800C4130 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* B3B2D4 800C4134 AFB40028 */ sw $s4, 0x28($sp) +/* B3B2D8 800C4138 3C148016 */ lui $s4, %hi(D_801665C0) # $s4, 0x8016 +/* B3B2DC 800C413C 269465C0 */ addiu $s4, %lo(D_801665C0) # addiu $s4, $s4, 0x65c0 +/* B3B2E0 800C4140 AFBF002C */ sw $ra, 0x2c($sp) +/* B3B2E4 800C4144 3C048014 */ lui $a0, %hi(D_80144D10) # $a0, 0x8014 +/* B3B2E8 800C4148 AFB30024 */ sw $s3, 0x24($sp) +/* B3B2EC 800C414C AFB20020 */ sw $s2, 0x20($sp) +/* B3B2F0 800C4150 AFB1001C */ sw $s1, 0x1c($sp) +/* B3B2F4 800C4154 AFB00018 */ sw $s0, 0x18($sp) +/* B3B2F8 800C4158 24844D10 */ addiu $a0, %lo(D_80144D10) # addiu $a0, $a0, 0x4d10 +/* B3B2FC 800C415C 0C00084C */ jal osSyncPrintf +/* B3B300 800C4160 96850000 */ lhu $a1, ($s4) +/* B3B304 800C4164 3C068014 */ lui $a2, %hi(D_80144D24) # $a2, 0x8014 +/* B3B308 800C4168 24C64D24 */ addiu $a2, %lo(D_80144D24) # addiu $a2, $a2, 0x4d24 +/* B3B30C 800C416C 24040078 */ li $a0, 120 +/* B3B310 800C4170 240500B4 */ li $a1, 180 +/* B3B314 800C4174 0C035C26 */ jal FaultDrawer_DrawText +/* B3B318 800C4178 96870000 */ lhu $a3, ($s4) +/* B3B31C 800C417C 3C128013 */ lui $s2, %hi(D_8012D210) # $s2, 0x8013 +/* B3B320 800C4180 3C118014 */ lui $s1, %hi(D_80144D2C) # $s1, 0x8014 +/* B3B324 800C4184 26314D2C */ addiu $s1, %lo(D_80144D2C) # addiu $s1, $s1, 0x4d2c +/* B3B328 800C4188 2652D210 */ addiu $s2, %lo(D_8012D210) # addiu $s2, $s2, -0x2df0 +/* B3B32C 800C418C 00008025 */ move $s0, $zero +/* B3B330 800C4190 24130011 */ li $s3, 17 +/* B3B334 800C4194 968E0000 */ lhu $t6, ($s4) +.L800C4198: +/* B3B338 800C4198 240F0001 */ li $t7, 1 +/* B3B33C 800C419C 020FC004 */ sllv $t8, $t7, $s0 +/* B3B340 800C41A0 01D8C824 */ and $t9, $t6, $t8 +/* B3B344 800C41A4 13200007 */ beqz $t9, .L800C41C4 +/* B3B348 800C41A8 001020C0 */ sll $a0, $s0, 3 +/* B3B34C 800C41AC 02504021 */ addu $t0, $s2, $s0 +/* B3B350 800C41B0 91070000 */ lbu $a3, ($t0) +/* B3B354 800C41B4 24840078 */ addiu $a0, $a0, 0x78 +/* B3B358 800C41B8 240500BE */ li $a1, 190 +/* B3B35C 800C41BC 0C035C26 */ jal FaultDrawer_DrawText +/* B3B360 800C41C0 02203025 */ move $a2, $s1 +.L800C41C4: +/* B3B364 800C41C4 26100001 */ addiu $s0, $s0, 1 +/* B3B368 800C41C8 5613FFF3 */ bnel $s0, $s3, .L800C4198 +/* B3B36C 800C41CC 968E0000 */ lhu $t6, ($s4) +/* B3B370 800C41D0 8FBF002C */ lw $ra, 0x2c($sp) +/* B3B374 800C41D4 8FB00018 */ lw $s0, 0x18($sp) +/* B3B378 800C41D8 8FB1001C */ lw $s1, 0x1c($sp) +/* B3B37C 800C41DC 8FB20020 */ lw $s2, 0x20($sp) +/* B3B380 800C41E0 8FB30024 */ lw $s3, 0x24($sp) +/* B3B384 800C41E4 8FB40028 */ lw $s4, 0x28($sp) +/* B3B388 800C41E8 03E00008 */ jr $ra +/* B3B38C 800C41EC 27BD0030 */ addiu $sp, $sp, 0x30 + +glabel func_800C41F0 +/* B3B390 800C41F0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* B3B394 800C41F4 AFBF0014 */ sw $ra, 0x14($sp) +/* B3B398 800C41F8 AFA40028 */ sw $a0, 0x28($sp) +/* B3B39C 800C41FC 8C8F0000 */ lw $t7, ($a0) +/* B3B3A0 800C4200 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 +/* B3B3A4 800C4204 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) +/* B3B3A8 800C4208 AFAF0024 */ sw $t7, 0x24($sp) +/* B3B3AC 800C420C 84430174 */ lh $v1, 0x174($v0) +/* B3B3B0 800C4210 18600011 */ blez $v1, .L800C4258 +/* B3B3B4 800C4214 28610005 */ slti $at, $v1, 5 +/* B3B3B8 800C4218 1020000F */ beqz $at, .L800C4258 +/* B3B3BC 800C421C 3C048016 */ lui $a0, %hi(D_801664F0) # $a0, 0x8016 +/* B3B3C0 800C4220 248464F0 */ addiu $a0, %lo(D_801664F0) # addiu $a0, $a0, 0x64f0 +/* B3B3C4 800C4224 AC830000 */ sw $v1, ($a0) +/* B3B3C8 800C4228 84580176 */ lh $t8, 0x176($v0) +/* B3B3CC 800C422C 27A50024 */ addiu $a1, $sp, 0x24 +/* B3B3D0 800C4230 A0980008 */ sb $t8, 8($a0) +/* B3B3D4 800C4234 84590178 */ lh $t9, 0x178($v0) +/* B3B3D8 800C4238 A0990009 */ sb $t9, 9($a0) +/* B3B3DC 800C423C 8448017A */ lh $t0, 0x17a($v0) +/* B3B3E0 800C4240 A088000A */ sb $t0, 0xa($a0) +/* B3B3E4 800C4244 8449017C */ lh $t1, 0x17c($v0) +/* B3B3E8 800C4248 0C02B3A6 */ jal func_800ACE98 +/* B3B3EC 800C424C A089000B */ sb $t1, 0xb($a0) +/* B3B3F0 800C4250 10000036 */ b .L800C432C +/* B3B3F4 800C4254 8FB90024 */ lw $t9, 0x24($sp) +.L800C4258: +/* B3B3F8 800C4258 24010005 */ li $at, 5 +/* B3B3FC 800C425C 10610003 */ beq $v1, $at, .L800C426C +/* B3B400 800C4260 3C048016 */ lui $a0, %hi(D_80166500) # $a0, 0x8016 +/* B3B404 800C4264 24010006 */ li $at, 6 +/* B3B408 800C4268 14610018 */ bne $v1, $at, .L800C42CC +.L800C426C: +/* B3B40C 800C426C 386A0006 */ xori $t2, $v1, 6 +/* B3B410 800C4270 24846500 */ addiu $a0, %lo(D_80166500) # addiu $a0, $a0, 0x6500 +/* B3B414 800C4274 2D4A0001 */ sltiu $t2, $t2, 1 +/* B3B418 800C4278 AC8A0000 */ sw $t2, ($a0) +/* B3B41C 800C427C 844B0176 */ lh $t3, 0x176($v0) +/* B3B420 800C4280 27A50024 */ addiu $a1, $sp, 0x24 +/* B3B424 800C4284 A08B0008 */ sb $t3, 8($a0) +/* B3B428 800C4288 844C0178 */ lh $t4, 0x178($v0) +/* B3B42C 800C428C A08C0009 */ sb $t4, 9($a0) +/* B3B430 800C4290 844D017A */ lh $t5, 0x17a($v0) +/* B3B434 800C4294 A08D000A */ sb $t5, 0xa($a0) +/* B3B438 800C4298 844E017C */ lh $t6, 0x17c($v0) +/* B3B43C 800C429C A08E000B */ sb $t6, 0xb($a0) +/* B3B440 800C42A0 844F017E */ lh $t7, 0x17e($v0) +/* B3B444 800C42A4 A08F000C */ sb $t7, 0xc($a0) +/* B3B448 800C42A8 84580180 */ lh $t8, 0x180($v0) +/* B3B44C 800C42AC A098000D */ sb $t8, 0xd($a0) +/* B3B450 800C42B0 84590182 */ lh $t9, 0x182($v0) +/* B3B454 800C42B4 A099000E */ sb $t9, 0xe($a0) +/* B3B458 800C42B8 8448017C */ lh $t0, 0x17c($v0) +/* B3B45C 800C42BC 0C02B656 */ jal func_800AD958 +/* B3B460 800C42C0 A088000F */ sb $t0, 0xf($a0) +/* B3B464 800C42C4 10000019 */ b .L800C432C +/* B3B468 800C42C8 8FB90024 */ lw $t9, 0x24($sp) +.L800C42CC: +/* B3B46C 800C42CC 24010007 */ li $at, 7 +/* B3B470 800C42D0 14610015 */ bne $v1, $at, .L800C4328 +/* B3B474 800C42D4 3C048016 */ lui $a0, %hi(D_80166510) # $a0, 0x8016 +/* B3B478 800C42D8 24846510 */ addiu $a0, %lo(D_80166510) # addiu $a0, $a0, 0x6510 +/* B3B47C 800C42DC AC800000 */ sw $zero, ($a0) +/* B3B480 800C42E0 84490176 */ lh $t1, 0x176($v0) +/* B3B484 800C42E4 27A50024 */ addiu $a1, $sp, 0x24 +/* B3B488 800C42E8 A0890008 */ sb $t1, 8($a0) +/* B3B48C 800C42EC 844A0178 */ lh $t2, 0x178($v0) +/* B3B490 800C42F0 A08A0009 */ sb $t2, 9($a0) +/* B3B494 800C42F4 844B017A */ lh $t3, 0x17a($v0) +/* B3B498 800C42F8 A08B000A */ sb $t3, 0xa($a0) +/* B3B49C 800C42FC 844C017C */ lh $t4, 0x17c($v0) +/* B3B4A0 800C4300 A08C000B */ sb $t4, 0xb($a0) +/* B3B4A4 800C4304 844D017E */ lh $t5, 0x17e($v0) +/* B3B4A8 800C4308 A08D000C */ sb $t5, 0xc($a0) +/* B3B4AC 800C430C 844E0180 */ lh $t6, 0x180($v0) +/* B3B4B0 800C4310 A08E000D */ sb $t6, 0xd($a0) +/* B3B4B4 800C4314 844F0182 */ lh $t7, 0x182($v0) +/* B3B4B8 800C4318 A08F000E */ sb $t7, 0xe($a0) +/* B3B4BC 800C431C 8458017C */ lh $t8, 0x17c($v0) +/* B3B4C0 800C4320 0C02B570 */ jal VisMono_Draw +/* B3B4C4 800C4324 A098000F */ sb $t8, 0xf($a0) +.L800C4328: +/* B3B4C8 800C4328 8FB90024 */ lw $t9, 0x24($sp) +.L800C432C: +/* B3B4CC 800C432C 8FA80028 */ lw $t0, 0x28($sp) +/* B3B4D0 800C4330 AD190000 */ sw $t9, ($t0) +/* B3B4D4 800C4334 8FBF0014 */ lw $ra, 0x14($sp) +/* B3B4D8 800C4338 27BD0028 */ addiu $sp, $sp, 0x28 +/* B3B4DC 800C433C 03E00008 */ jr $ra +/* B3B4E0 800C4340 00000000 */ nop + +glabel func_800C4344 +/* B3B4E4 800C4344 3C068016 */ lui $a2, %hi(gGameInfo) # $a2, 0x8016 +/* B3B4E8 800C4348 24C6FA90 */ addiu $a2, %lo(gGameInfo) # addiu $a2, $a2, -0x570 +/* B3B4EC 800C434C 8CC30000 */ lw $v1, ($a2) +/* B3B4F0 800C4350 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* B3B4F4 800C4354 AFBF0014 */ sw $ra, 0x14($sp) +/* B3B4F8 800C4358 AFA40018 */ sw $a0, 0x18($sp) +/* B3B4FC 800C435C 84621074 */ lh $v0, 0x1074($v1) +/* B3B500 800C4360 24010014 */ li $at, 20 +/* B3B504 800C4364 54410006 */ bnel $v0, $at, .L800C4380 +/* B3B508 800C4368 2401000C */ li $at, 12 +/* B3B50C 800C436C 846E1078 */ lh $t6, 0x1078($v1) +/* B3B510 800C4370 3C018017 */ lui $at, %hi(__osMalloc_FreeBlockTest_Enable) # $at, 0x8017 +/* B3B514 800C4374 AC2E5654 */ sw $t6, %lo(__osMalloc_FreeBlockTest_Enable)($at) +/* B3B518 800C4378 84621074 */ lh $v0, 0x1074($v1) +/* B3B51C 800C437C 2401000C */ li $at, 12 +.L800C4380: +/* B3B520 800C4380 14410034 */ bne $v0, $at, .L800C4454 +/* B3B524 800C4384 8FAF0018 */ lw $t7, 0x18($sp) +/* B3B528 800C4388 84621076 */ lh $v0, 0x1076($v1) +/* B3B52C 800C438C 00003825 */ move $a3, $zero +/* B3B530 800C4390 2C410004 */ sltiu $at, $v0, 4 +/* B3B534 800C4394 10200003 */ beqz $at, .L800C43A4 +/* B3B538 800C4398 00000000 */ nop +/* B3B53C 800C439C 10000001 */ b .L800C43A4 +/* B3B540 800C43A0 00403825 */ move $a3, $v0 +.L800C43A4: +/* B3B544 800C43A4 0007C080 */ sll $t8, $a3, 2 +/* B3B548 800C43A8 0307C023 */ subu $t8, $t8, $a3 +/* B3B54C 800C43AC 0018C0C0 */ sll $t8, $t8, 3 +/* B3B550 800C43B0 01F81021 */ addu $v0, $t7, $t8 +/* B3B554 800C43B4 94590014 */ lhu $t9, 0x14($v0) +/* B3B558 800C43B8 94681078 */ lhu $t0, 0x1078($v1) +/* B3B55C 800C43BC A479107A */ sh $t9, 0x107a($v1) +/* B3B560 800C43C0 8CCA0000 */ lw $t2, ($a2) +/* B3B564 800C43C4 94490020 */ lhu $t1, 0x20($v0) +/* B3B568 800C43C8 01002827 */ not $a1, $t0 +/* B3B56C 800C43CC A549107C */ sh $t1, 0x107c($t2) +/* B3B570 800C43D0 8CCC0000 */ lw $t4, ($a2) +/* B3B574 800C43D4 804B0028 */ lb $t3, 0x28($v0) +/* B3B578 800C43D8 A58B107E */ sh $t3, 0x107e($t4) +/* B3B57C 800C43DC 8CCE0000 */ lw $t6, ($a2) +/* B3B580 800C43E0 804D0029 */ lb $t5, 0x29($v0) +/* B3B584 800C43E4 A5CD1080 */ sh $t5, 0x1080($t6) +/* B3B588 800C43E8 8CD80000 */ lw $t8, ($a2) +/* B3B58C 800C43EC 804F0028 */ lb $t7, 0x28($v0) +/* B3B590 800C43F0 A70F1082 */ sh $t7, 0x1082($t8) +/* B3B594 800C43F4 8CC90000 */ lw $t1, ($a2) +/* B3B598 800C43F8 80590029 */ lb $t9, 0x29($v0) +/* B3B59C 800C43FC A5391084 */ sh $t9, 0x1084($t1) +/* B3B5A0 800C4400 8CCB0000 */ lw $t3, ($a2) +/* B3B5A4 800C4404 804A0016 */ lb $t2, 0x16($v0) +/* B3B5A8 800C4408 A56A1086 */ sh $t2, 0x1086($t3) +/* B3B5AC 800C440C 8CCD0000 */ lw $t5, ($a2) +/* B3B5B0 800C4410 804C0017 */ lb $t4, 0x17($v0) +/* B3B5B4 800C4414 A5AC1088 */ sh $t4, 0x1088($t5) +/* B3B5B8 800C4418 944E0014 */ lhu $t6, 0x14($v0) +/* B3B5BC 800C441C 8CD80000 */ lw $t8, ($a2) +/* B3B5C0 800C4420 010E7826 */ xor $t7, $t0, $t6 +/* B3B5C4 800C4424 2DEF0001 */ sltiu $t7, $t7, 1 +/* B3B5C8 800C4428 A70F108E */ sh $t7, 0x108e($t8) +/* B3B5CC 800C442C 94590014 */ lhu $t9, 0x14($v0) +/* B3B5D0 800C4430 8CCB0000 */ lw $t3, ($a2) +/* B3B5D4 800C4434 03254827 */ nor $t1, $t9, $a1 +/* B3B5D8 800C4438 2D2A0001 */ sltiu $t2, $t1, 1 +/* B3B5DC 800C443C A56A1090 */ sh $t2, 0x1090($t3) +/* B3B5E0 800C4440 944C0020 */ lhu $t4, 0x20($v0) +/* B3B5E4 800C4444 8CCF0000 */ lw $t7, ($a2) +/* B3B5E8 800C4448 01856827 */ nor $t5, $t4, $a1 +/* B3B5EC 800C444C 2DAE0001 */ sltiu $t6, $t5, 1 +/* B3B5F0 800C4450 A5EE1092 */ sh $t6, 0x1092($t7) +.L800C4454: +/* B3B5F4 800C4454 3C188013 */ lui $t8, %hi(D_8012DBC0) # $t8, 0x8013 +/* B3B5F8 800C4458 8F18DBC0 */ lw $t8, %lo(D_8012DBC0)($t8) +/* B3B5FC 800C445C 8FA40018 */ lw $a0, 0x18($sp) +/* B3B600 800C4460 53000006 */ beql $t8, $zero, .L800C447C +/* B3B604 800C4464 8CC30000 */ lw $v1, ($a2) +/* B3B608 800C4468 0C018E43 */ jal func_8006390C +/* B3B60C 800C446C 2484002C */ addiu $a0, $a0, 0x2c +/* B3B610 800C4470 3C068016 */ lui $a2, %hi(gGameInfo) # $a2, 0x8016 +/* B3B614 800C4474 24C6FA90 */ addiu $a2, %lo(gGameInfo) # addiu $a2, $a2, -0x570 +/* B3B618 800C4478 8CC30000 */ lw $v1, ($a2) +.L800C447C: +/* B3B61C 800C447C 3C018001 */ lui $at, %hi(D_80009460) # $at, 0x8001 +/* B3B620 800C4480 240B2000 */ li $t3, 8192 +/* B3B624 800C4484 8479104C */ lh $t9, 0x104c($v1) +/* B3B628 800C4488 AC399460 */ sw $t9, %lo(D_80009460)($at) +/* B3B62C 800C448C 846200FE */ lh $v0, 0xfe($v1) +/* B3B630 800C4490 3C018001 */ lui $at, %hi(sDmaMgrDmaBuffSize) +/* B3B634 800C4494 10400006 */ beqz $v0, .L800C44B0 +/* B3B638 800C4498 2449000F */ addiu $t1, $v0, 0xf +/* B3B63C 800C449C 2401FFF0 */ li $at, -16 +/* B3B640 800C44A0 01215024 */ and $t2, $t1, $at +/* B3B644 800C44A4 3C018001 */ lui $at, %hi(sDmaMgrDmaBuffSize) # $at, 0x8001 +/* B3B648 800C44A8 10000002 */ b .L800C44B4 +/* B3B64C 800C44AC AC2A9464 */ sw $t2, %lo(sDmaMgrDmaBuffSize)($at) +.L800C44B0: +/* B3B650 800C44B0 AC2B9464 */ sw $t3, %lo(sDmaMgrDmaBuffSize)($at) +.L800C44B4: +/* B3B654 800C44B4 846C104E */ lh $t4, 0x104e($v1) +/* B3B658 800C44B8 3C018013 */ lui $at, %hi(gSystemArenaLogSeverity) # $at, 0x8013 +/* B3B65C 800C44BC 24020008 */ li $v0, 8 +/* B3B660 800C44C0 AC2C44B0 */ sw $t4, %lo(gSystemArenaLogSeverity)($at) +/* B3B664 800C44C4 846D1050 */ lh $t5, 0x1050($v1) +/* B3B668 800C44C8 3C018012 */ lui $at, %hi(gZeldaArenaLogSeverity) # $at, 0x8012 +/* B3B66C 800C44CC AC2D0040 */ sw $t5, %lo(gZeldaArenaLogSeverity)($at) +/* B3B670 800C44D0 846E1074 */ lh $t6, 0x1074($v1) +/* B3B674 800C44D4 544E001D */ bnel $v0, $t6, .L800C454C +/* B3B678 800C44D8 8FBF0014 */ lw $ra, 0x14($sp) +/* B3B67C 800C44DC 846F1090 */ lh $t7, 0x1090($v1) +/* B3B680 800C44E0 504F000A */ beql $v0, $t7, .L800C450C +/* B3B684 800C44E4 846A1076 */ lh $t2, 0x1076($v1) +/* B3B688 800C44E8 A4621090 */ sh $v0, 0x1090($v1) +/* B3B68C 800C44EC 8CD80000 */ lw $t8, ($a2) +/* B3B690 800C44F0 A7001076 */ sh $zero, 0x1076($t8) +/* B3B694 800C44F4 8CD90000 */ lw $t9, ($a2) +/* B3B698 800C44F8 A7201078 */ sh $zero, 0x1078($t9) +/* B3B69C 800C44FC 8CC90000 */ lw $t1, ($a2) +/* B3B6A0 800C4500 A520107A */ sh $zero, 0x107a($t1) +/* B3B6A4 800C4504 8CC30000 */ lw $v1, ($a2) +/* B3B6A8 800C4508 846A1076 */ lh $t2, 0x1076($v1) +.L800C450C: +/* B3B6AC 800C450C 0543000F */ bgezl $t2, .L800C454C +/* B3B6B0 800C4510 8FBF0014 */ lw $ra, 0x14($sp) +/* B3B6B4 800C4514 A4601076 */ sh $zero, 0x1076($v1) +/* B3B6B8 800C4518 8CC30000 */ lw $v1, ($a2) +/* B3B6BC 800C451C 8462107A */ lh $v0, 0x107a($v1) +/* B3B6C0 800C4520 14400003 */ bnez $v0, .L800C4530 +/* B3B6C4 800C4524 00023900 */ sll $a3, $v0, 4 +/* B3B6C8 800C4528 10000001 */ b .L800C4530 +/* B3B6CC 800C452C 24070100 */ li $a3, 256 +.L800C4530: +/* B3B6D0 800C4530 84641078 */ lh $a0, 0x1078($v1) +/* B3B6D4 800C4534 3C018000 */ lui $at, 0x8000 +/* B3B6D8 800C4538 00E02825 */ move $a1, $a3 +/* B3B6DC 800C453C 00042200 */ sll $a0, $a0, 8 +/* B3B6E0 800C4540 0C000AC4 */ jal LogUtils_LogHexDump +/* B3B6E4 800C4544 00812021 */ addu $a0, $a0, $at +/* B3B6E8 800C4548 8FBF0014 */ lw $ra, 0x14($sp) +.L800C454C: +/* B3B6EC 800C454C 27BD0018 */ addiu $sp, $sp, 0x18 +/* B3B6F0 800C4550 03E00008 */ jr $ra +/* B3B6F4 800C4554 00000000 */ nop + +glabel func_800C4558 +/* B3B6F8 800C4558 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* B3B6FC 800C455C AFB30014 */ sw $s3, 0x14($sp) +/* B3B700 800C4560 AFB20010 */ sw $s2, 0x10($sp) +/* B3B704 800C4564 AFB1000C */ sw $s1, 0xc($sp) +/* B3B708 800C4568 AFB00008 */ sw $s0, 8($sp) +/* B3B70C 800C456C AFA40018 */ sw $a0, 0x18($sp) +/* B3B710 800C4570 8CA20000 */ lw $v0, ($a1) +/* B3B714 800C4574 3087FFFF */ andi $a3, $a0, 0xffff +/* B3B718 800C4578 3C03E700 */ lui $v1, 0xe700 +/* B3B71C 800C457C 00402025 */ move $a0, $v0 +/* B3B720 800C4580 AC830000 */ sw $v1, ($a0) +/* B3B724 800C4584 AC800004 */ sw $zero, 4($a0) +/* B3B728 800C4588 24420008 */ addiu $v0, $v0, 8 +/* B3B72C 800C458C 00402025 */ move $a0, $v0 +/* B3B730 800C4590 3C0EEF30 */ lui $t6, 0xef30 +/* B3B734 800C4594 AC8E0000 */ sw $t6, ($a0) +/* B3B738 800C4598 AC800004 */ sw $zero, 4($a0) +/* B3B73C 800C459C 3C128014 */ lui $s2, %hi(D_80144D30) # $s2, 0x8014 +/* B3B740 800C45A0 24420008 */ addiu $v0, $v0, 8 +/* B3B744 800C45A4 26524D30 */ addiu $s2, %lo(D_80144D30) # addiu $s2, $s2, 0x4d30 +/* B3B748 800C45A8 00002025 */ move $a0, $zero +/* B3B74C 800C45AC 3C10F700 */ lui $s0, 0xf700 +/* B3B750 800C45B0 3C11F600 */ lui $s1, 0xf600 +/* B3B754 800C45B4 24130010 */ li $s3, 16 +/* B3B758 800C45B8 240A0001 */ li $t2, 1 +/* B3B75C 800C45BC 240B0002 */ li $t3, 2 +.L800C45C0: +/* B3B760 800C45C0 240F0001 */ li $t7, 1 +/* B3B764 800C45C4 008FC004 */ sllv $t8, $t7, $a0 +/* B3B768 800C45C8 00F8C824 */ and $t9, $a3, $t8 +/* B3B76C 800C45CC 1320001C */ beqz $t9, .L800C4640 +/* B3B770 800C45D0 00047040 */ sll $t6, $a0, 1 +/* B3B774 800C45D4 00403025 */ move $a2, $v0 +/* B3B778 800C45D8 ACD00000 */ sw $s0, ($a2) +/* B3B77C 800C45DC 024E4021 */ addu $t0, $s2, $t6 +/* B3B780 800C45E0 95090000 */ lhu $t1, ($t0) +/* B3B784 800C45E4 000A6080 */ sll $t4, $t2, 2 +/* B3B788 800C45E8 258C00E1 */ addiu $t4, $t4, 0xe1 +/* B3B78C 800C45EC 00097C00 */ sll $t7, $t1, 0x10 +/* B3B790 800C45F0 319903FF */ andi $t9, $t4, 0x3ff +/* B3B794 800C45F4 012FC025 */ or $t8, $t1, $t7 +/* B3B798 800C45F8 00046880 */ sll $t5, $a0, 2 +/* B3B79C 800C45FC 00197380 */ sll $t6, $t9, 0xe +/* B3B7A0 800C4600 25AD00E2 */ addiu $t5, $t5, 0xe2 +/* B3B7A4 800C4604 ACD80004 */ sw $t8, 4($a2) +/* B3B7A8 800C4608 24420008 */ addiu $v0, $v0, 8 +/* B3B7AC 800C460C 01D17825 */ or $t7, $t6, $s1 +/* B3B7B0 800C4610 00403025 */ move $a2, $v0 +/* B3B7B4 800C4614 31B903FF */ andi $t9, $t5, 0x3ff +/* B3B7B8 800C4618 00197380 */ sll $t6, $t9, 0xe +/* B3B7BC 800C461C 35F8037C */ ori $t8, $t7, 0x37c +/* B3B7C0 800C4620 35CF0370 */ ori $t7, $t6, 0x370 +/* B3B7C4 800C4624 ACCF0004 */ sw $t7, 4($a2) +/* B3B7C8 800C4628 ACD80000 */ sw $t8, ($a2) +/* B3B7CC 800C462C 24420008 */ addiu $v0, $v0, 8 +/* B3B7D0 800C4630 00403025 */ move $a2, $v0 +/* B3B7D4 800C4634 ACC30000 */ sw $v1, ($a2) +/* B3B7D8 800C4638 ACC00004 */ sw $zero, 4($a2) +/* B3B7DC 800C463C 24420008 */ addiu $v0, $v0, 8 +.L800C4640: +/* B3B7E0 800C4640 24180001 */ li $t8, 1 +/* B3B7E4 800C4644 0158C804 */ sllv $t9, $t8, $t2 +/* B3B7E8 800C4648 00F97024 */ and $t6, $a3, $t9 +/* B3B7EC 800C464C 11C0001C */ beqz $t6, .L800C46C0 +/* B3B7F0 800C4650 00403025 */ move $a2, $v0 +/* B3B7F4 800C4654 00047840 */ sll $t7, $a0, 1 +/* B3B7F8 800C4658 024FC021 */ addu $t8, $s2, $t7 +/* B3B7FC 800C465C ACD00000 */ sw $s0, ($a2) +/* B3B800 800C4660 97080002 */ lhu $t0, 2($t8) +/* B3B804 800C4664 000B4880 */ sll $t1, $t3, 2 +/* B3B808 800C4668 252900E1 */ addiu $t1, $t1, 0xe1 +/* B3B80C 800C466C 0008CC00 */ sll $t9, $t0, 0x10 +/* B3B810 800C4670 312F03FF */ andi $t7, $t1, 0x3ff +/* B3B814 800C4674 01197025 */ or $t6, $t0, $t9 +/* B3B818 800C4678 000FC380 */ sll $t8, $t7, 0xe +/* B3B81C 800C467C 000A6080 */ sll $t4, $t2, 2 +/* B3B820 800C4680 258C00E2 */ addiu $t4, $t4, 0xe2 +/* B3B824 800C4684 0311C825 */ or $t9, $t8, $s1 +/* B3B828 800C4688 ACCE0004 */ sw $t6, 4($a2) +/* B3B82C 800C468C 24420008 */ addiu $v0, $v0, 8 +/* B3B830 800C4690 00403025 */ move $a2, $v0 +/* B3B834 800C4694 318F03FF */ andi $t7, $t4, 0x3ff +/* B3B838 800C4698 000FC380 */ sll $t8, $t7, 0xe +/* B3B83C 800C469C 372E037C */ ori $t6, $t9, 0x37c +/* B3B840 800C46A0 37190370 */ ori $t9, $t8, 0x370 +/* B3B844 800C46A4 ACD90004 */ sw $t9, 4($a2) +/* B3B848 800C46A8 ACCE0000 */ sw $t6, ($a2) +/* B3B84C 800C46AC 24420008 */ addiu $v0, $v0, 8 +/* B3B850 800C46B0 00403025 */ move $a2, $v0 +/* B3B854 800C46B4 ACC30000 */ sw $v1, ($a2) +/* B3B858 800C46B8 ACC00004 */ sw $zero, 4($a2) +/* B3B85C 800C46BC 24420008 */ addiu $v0, $v0, 8 +.L800C46C0: +/* B3B860 800C46C0 01602025 */ move $a0, $t3 +/* B3B864 800C46C4 254A0002 */ addiu $t2, $t2, 2 +/* B3B868 800C46C8 1573FFBD */ bne $t3, $s3, .L800C45C0 +/* B3B86C 800C46CC 256B0002 */ addiu $t3, $t3, 2 +/* B3B870 800C46D0 ACA20000 */ sw $v0, ($a1) +/* B3B874 800C46D4 8FB30014 */ lw $s3, 0x14($sp) +/* B3B878 800C46D8 8FB20010 */ lw $s2, 0x10($sp) +/* B3B87C 800C46DC 8FB1000C */ lw $s1, 0xc($sp) +/* B3B880 800C46E0 8FB00008 */ lw $s0, 8($sp) +/* B3B884 800C46E4 03E00008 */ jr $ra +/* B3B888 800C46E8 27BD0018 */ addiu $sp, $sp, 0x18 + +glabel func_800C46EC +/* B3B88C 800C46EC 27BDFF80 */ addiu $sp, $sp, -0x80 +/* B3B890 800C46F0 AFBF0014 */ sw $ra, 0x14($sp) +/* B3B894 800C46F4 AFA40080 */ sw $a0, 0x80($sp) +/* B3B898 800C46F8 3C068014 */ lui $a2, %hi(D_80144D50) # $a2, 0x8014 +/* B3B89C 800C46FC AFA50084 */ sw $a1, 0x84($sp) +/* B3B8A0 800C4700 24C64D50 */ addiu $a2, %lo(D_80144D50) # addiu $a2, $a2, 0x4d50 +/* B3B8A4 800C4704 27A40064 */ addiu $a0, $sp, 0x64 +/* B3B8A8 800C4708 0C031AB1 */ jal Graph_OpenDisps +/* B3B8AC 800C470C 240702EA */ li $a3, 746 +/* B3B8B0 800C4710 8FAE0084 */ lw $t6, 0x84($sp) +/* B3B8B4 800C4714 8DC402C0 */ lw $a0, 0x2c0($t6) +/* B3B8B8 800C4718 0C031B08 */ jal Graph_GfxPlusOne +/* B3B8BC 800C471C AFA40078 */ sw $a0, 0x78($sp) +/* B3B8C0 800C4720 8FAF0084 */ lw $t7, 0x84($sp) +/* B3B8C4 800C4724 AFA2007C */ sw $v0, 0x7c($sp) +/* B3B8C8 800C4728 3C19DE00 */ lui $t9, 0xde00 +/* B3B8CC 800C472C 8DE302B0 */ lw $v1, 0x2b0($t7) +/* B3B8D0 800C4730 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 +/* B3B8D4 800C4734 24010001 */ li $at, 1 +/* B3B8D8 800C4738 24780008 */ addiu $t8, $v1, 8 +/* B3B8DC 800C473C ADF802B0 */ sw $t8, 0x2b0($t7) +/* B3B8E0 800C4740 AC790000 */ sw $t9, ($v1) +/* B3B8E4 800C4744 8FA8007C */ lw $t0, 0x7c($sp) +/* B3B8E8 800C4748 AC680004 */ sw $t0, 4($v1) +/* B3B8EC 800C474C 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) +/* B3B8F0 800C4750 84490184 */ lh $t1, 0x184($v0) +/* B3B8F4 800C4754 55210006 */ bnel $t1, $at, .L800C4770 +/* B3B8F8 800C4758 8FAA0080 */ lw $t2, 0x80($sp) +/* B3B8FC 800C475C 0C03107C */ jal func_800C41F0 +/* B3B900 800C4760 27A4007C */ addiu $a0, $sp, 0x7c +/* B3B904 800C4764 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 +/* B3B908 800C4768 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) +/* B3B90C 800C476C 8FAA0080 */ lw $t2, 0x80($sp) +.L800C4770: +/* B3B910 800C4770 3C038016 */ lui $v1, %hi(D_801665C0) # $v1, 0x8016 +/* B3B914 800C4774 246365C0 */ addiu $v1, %lo(D_801665C0) # addiu $v1, $v1, 0x65c0 +/* B3B918 800C4778 954B0014 */ lhu $t3, 0x14($t2) +/* B3B91C 800C477C 954C0020 */ lhu $t4, 0x20($t2) +/* B3B920 800C4780 016C6825 */ or $t5, $t3, $t4 +/* B3B924 800C4784 A46D0000 */ sh $t5, ($v1) +/* B3B928 800C4788 844E1032 */ lh $t6, 0x1032($v0) +/* B3B92C 800C478C 31A4FFFF */ andi $a0, $t5, 0xffff +/* B3B930 800C4790 55C00006 */ bnezl $t6, .L800C47AC +/* B3B934 800C4794 8458011C */ lh $t8, 0x11c($v0) +/* B3B938 800C4798 0C031156 */ jal func_800C4558 +/* B3B93C 800C479C 27A5007C */ addiu $a1, $sp, 0x7c +/* B3B940 800C47A0 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 +/* B3B944 800C47A4 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) +/* B3B948 800C47A8 8458011C */ lh $t8, 0x11c($v0) +.L800C47AC: +/* B3B94C 800C47AC 330F0001 */ andi $t7, $t8, 1 +/* B3B950 800C47B0 51E00010 */ beql $t7, $zero, .L800C47F4 +/* B3B954 800C47B4 845900D4 */ lh $t9, 0xd4($v0) +/* B3B958 800C47B8 0C03EEE3 */ jal GfxPrint_Ctor +/* B3B95C 800C47BC 27A4002C */ addiu $a0, $sp, 0x2c +/* B3B960 800C47C0 27A4002C */ addiu $a0, $sp, 0x2c +/* B3B964 800C47C4 0C03EF07 */ jal GfxPrint_Open +/* B3B968 800C47C8 8FA5007C */ lw $a1, 0x7c($sp) +/* B3B96C 800C47CC 0C03BA94 */ jal func_800EEA50 +/* B3B970 800C47D0 27A4002C */ addiu $a0, $sp, 0x2c +/* B3B974 800C47D4 0C03EF19 */ jal GfxPrint_Close +/* B3B978 800C47D8 27A4002C */ addiu $a0, $sp, 0x2c +/* B3B97C 800C47DC AFA2007C */ sw $v0, 0x7c($sp) +/* B3B980 800C47E0 0C03EF05 */ jal GfxPrint_Dtor +/* B3B984 800C47E4 27A4002C */ addiu $a0, $sp, 0x2c +/* B3B988 800C47E8 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 +/* B3B98C 800C47EC 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) +/* B3B990 800C47F0 845900D4 */ lh $t9, 0xd4($v0) +.L800C47F4: +/* B3B994 800C47F4 07230010 */ bgezl $t9, .L800C4838 +/* B3B998 800C47F8 8FA9007C */ lw $t1, 0x7c($sp) +/* B3B99C 800C47FC 0C034F7E */ jal DebugArena_Display +/* B3B9A0 800C4800 00000000 */ nop +/* B3B9A4 800C4804 0C03F616 */ jal SystemArena_Display +/* B3B9A8 800C4808 00000000 */ nop +/* B3B9AC 800C480C 8FA40080 */ lw $a0, 0x80($sp) +/* B3B9B0 800C4810 0C030EE2 */ jal THA_GetSize +/* B3B9B4 800C4814 24840074 */ addiu $a0, $a0, 0x74 +/* B3B9B8 800C4818 3C048014 */ lui $a0, %hi(D_80144D5C) # $a0, 0x8014 +/* B3B9BC 800C481C 24844D5C */ addiu $a0, %lo(D_80144D5C) # addiu $a0, $a0, 0x4d5c +/* B3B9C0 800C4820 0C00084C */ jal osSyncPrintf +/* B3B9C4 800C4824 00402825 */ move $a1, $v0 +/* B3B9C8 800C4828 3C088016 */ lui $t0, %hi(gGameInfo) # $t0, 0x8016 +/* B3B9CC 800C482C 8D08FA90 */ lw $t0, %lo(gGameInfo)($t0) +/* B3B9D0 800C4830 A50000D4 */ sh $zero, 0xd4($t0) +/* B3B9D4 800C4834 8FA9007C */ lw $t1, 0x7c($sp) +.L800C4838: +/* B3B9D8 800C4838 3C0BDF00 */ lui $t3, 0xdf00 +/* B3B9DC 800C483C 252A0008 */ addiu $t2, $t1, 8 +/* B3B9E0 800C4840 AFAA007C */ sw $t2, 0x7c($sp) +/* B3B9E4 800C4844 AD200004 */ sw $zero, 4($t1) +/* B3B9E8 800C4848 AD2B0000 */ sw $t3, ($t1) +/* B3B9EC 800C484C 8FA5007C */ lw $a1, 0x7c($sp) +/* B3B9F0 800C4850 0C031B0A */ jal Graph_BranchDlist +/* B3B9F4 800C4854 8FA40078 */ lw $a0, 0x78($sp) +/* B3B9F8 800C4858 8FAC007C */ lw $t4, 0x7c($sp) +/* B3B9FC 800C485C 8FAD0084 */ lw $t5, 0x84($sp) +/* B3BA00 800C4860 3C068014 */ lui $a2, %hi(D_80144D8C) # $a2, 0x8014 +/* B3BA04 800C4864 24C64D8C */ addiu $a2, %lo(D_80144D8C) # addiu $a2, $a2, 0x4d8c +/* B3BA08 800C4868 ADAC02C0 */ sw $t4, 0x2c0($t5) +/* B3BA0C 800C486C 8FA50084 */ lw $a1, 0x84($sp) +/* B3BA10 800C4870 27A40064 */ addiu $a0, $sp, 0x64 +/* B3BA14 800C4874 0C031AD5 */ jal Graph_CloseDisps +/* B3BA18 800C4878 24070320 */ li $a3, 800 +/* B3BA1C 800C487C 0C018F5F */ jal func_80063D7C +/* B3BA20 800C4880 8FA40084 */ lw $a0, 0x84($sp) +/* B3BA24 800C4884 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 +/* B3BA28 800C4888 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) +/* B3BA2C 800C488C 3C048016 */ lui $a0, %hi(gSpeedMeter) # $a0, 0x8016 +/* B3BA30 800C4890 248464D0 */ addiu $a0, %lo(gSpeedMeter) # addiu $a0, $a0, 0x64d0 +/* B3BA34 800C4894 85D800D4 */ lh $t8, 0xd4($t6) +/* B3BA38 800C4898 53000009 */ beql $t8, $zero, .L800C48C0 +/* B3BA3C 800C489C 8FBF0014 */ lw $ra, 0x14($sp) +/* B3BA40 800C48A0 0C032671 */ jal SpeedMeter_DrawTimeEntries +/* B3BA44 800C48A4 8FA50084 */ lw $a1, 0x84($sp) +/* B3BA48 800C48A8 3C048016 */ lui $a0, %hi(gSpeedMeter) # $a0, 0x8016 +/* B3BA4C 800C48AC 248464D0 */ addiu $a0, %lo(gSpeedMeter) # addiu $a0, $a0, 0x64d0 +/* B3BA50 800C48B0 8FA50084 */ lw $a1, 0x84($sp) +/* B3BA54 800C48B4 0C032841 */ jal SpeedMeter_DrawAllocEntries +/* B3BA58 800C48B8 8FA60080 */ lw $a2, 0x80($sp) +/* B3BA5C 800C48BC 8FBF0014 */ lw $ra, 0x14($sp) +.L800C48C0: +/* B3BA60 800C48C0 27BD0080 */ addiu $sp, $sp, 0x80 +/* B3BA64 800C48C4 03E00008 */ jr $ra +/* B3BA68 800C48C8 00000000 */ nop + +glabel func_800C48CC +/* B3BA6C 800C48CC 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* B3BA70 800C48D0 AFBF0014 */ sw $ra, 0x14($sp) +/* B3BA74 800C48D4 00802825 */ move $a1, $a0 +/* B3BA78 800C48D8 3C068014 */ lui $a2, %hi(D_80144D98) # $a2, 0x8014 +/* B3BA7C 800C48DC 24C64D98 */ addiu $a2, %lo(D_80144D98) # addiu $a2, $a2, 0x4d98 +/* B3BA80 800C48E0 AFA50058 */ sw $a1, 0x58($sp) +/* B3BA84 800C48E4 27A40044 */ addiu $a0, $sp, 0x44 +/* B3BA88 800C48E8 0C031AB1 */ jal Graph_OpenDisps +/* B3BA8C 800C48EC 2407032E */ li $a3, 814 +/* B3BA90 800C48F0 8FA50058 */ lw $a1, 0x58($sp) +/* B3BA94 800C48F4 3C06DB06 */ lui $a2, 0xdb06 +/* B3BA98 800C48F8 3C07DB06 */ lui $a3, (0xDB06003C >> 16) # lui $a3, 0xdb06 +/* B3BA9C 800C48FC 8CA202C0 */ lw $v0, 0x2c0($a1) +/* B3BAA0 800C4900 34E7003C */ ori $a3, (0xDB06003C & 0xFFFF) # ori $a3, $a3, 0x3c +/* B3BAA4 800C4904 3C08DB06 */ lui $t0, (0xDB060038 >> 16) # lui $t0, 0xdb06 +/* B3BAA8 800C4908 244E0008 */ addiu $t6, $v0, 8 +/* B3BAAC 800C490C ACAE02C0 */ sw $t6, 0x2c0($a1) +/* B3BAB0 800C4910 AC400004 */ sw $zero, 4($v0) +/* B3BAB4 800C4914 AC460000 */ sw $a2, ($v0) +/* B3BAB8 800C4918 8CA202C0 */ lw $v0, 0x2c0($a1) +/* B3BABC 800C491C 3C048017 */ lui $a0, %hi(D_801759C0) # $a0, 0x8017 +/* B3BAC0 800C4920 248459C0 */ addiu $a0, %lo(D_801759C0) # addiu $a0, $a0, 0x59c0 +/* B3BAC4 800C4924 244F0008 */ addiu $t7, $v0, 8 +/* B3BAC8 800C4928 ACAF02C0 */ sw $t7, 0x2c0($a1) +/* B3BACC 800C492C AC470000 */ sw $a3, ($v0) +/* B3BAD0 800C4930 8CB802DC */ lw $t8, 0x2dc($a1) +/* B3BAD4 800C4934 35080038 */ ori $t0, (0xDB060038 & 0xFFFF) # ori $t0, $t0, 0x38 +/* B3BAD8 800C4938 AC580004 */ sw $t8, 4($v0) +/* B3BADC 800C493C 8CA202C0 */ lw $v0, 0x2c0($a1) +/* B3BAE0 800C4940 24590008 */ addiu $t9, $v0, 8 +/* B3BAE4 800C4944 ACB902C0 */ sw $t9, 0x2c0($a1) +/* B3BAE8 800C4948 AC440004 */ sw $a0, 4($v0) +/* B3BAEC 800C494C AC480000 */ sw $t0, ($v0) +/* B3BAF0 800C4950 8CA202D0 */ lw $v0, 0x2d0($a1) +/* B3BAF4 800C4954 24490008 */ addiu $t1, $v0, 8 +/* B3BAF8 800C4958 ACA902D0 */ sw $t1, 0x2d0($a1) +/* B3BAFC 800C495C AC400004 */ sw $zero, 4($v0) +/* B3BB00 800C4960 AC460000 */ sw $a2, ($v0) +/* B3BB04 800C4964 8CA202D0 */ lw $v0, 0x2d0($a1) +/* B3BB08 800C4968 244A0008 */ addiu $t2, $v0, 8 +/* B3BB0C 800C496C ACAA02D0 */ sw $t2, 0x2d0($a1) +/* B3BB10 800C4970 AC470000 */ sw $a3, ($v0) +/* B3BB14 800C4974 8CAB02DC */ lw $t3, 0x2dc($a1) +/* B3BB18 800C4978 AC4B0004 */ sw $t3, 4($v0) +/* B3BB1C 800C497C 8CA202D0 */ lw $v0, 0x2d0($a1) +/* B3BB20 800C4980 244C0008 */ addiu $t4, $v0, 8 +/* B3BB24 800C4984 ACAC02D0 */ sw $t4, 0x2d0($a1) +/* B3BB28 800C4988 AC440004 */ sw $a0, 4($v0) +/* B3BB2C 800C498C AC480000 */ sw $t0, ($v0) +/* B3BB30 800C4990 8CA202B0 */ lw $v0, 0x2b0($a1) +/* B3BB34 800C4994 244D0008 */ addiu $t5, $v0, 8 +/* B3BB38 800C4998 ACAD02B0 */ sw $t5, 0x2b0($a1) +/* B3BB3C 800C499C AC400004 */ sw $zero, 4($v0) +/* B3BB40 800C49A0 AC460000 */ sw $a2, ($v0) +/* B3BB44 800C49A4 8CA202B0 */ lw $v0, 0x2b0($a1) +/* B3BB48 800C49A8 3C068014 */ lui $a2, %hi(D_80144DA4) # $a2, 0x8014 +/* B3BB4C 800C49AC 24C64DA4 */ addiu $a2, %lo(D_80144DA4) # addiu $a2, $a2, 0x4da4 +/* B3BB50 800C49B0 244E0008 */ addiu $t6, $v0, 8 +/* B3BB54 800C49B4 ACAE02B0 */ sw $t6, 0x2b0($a1) +/* B3BB58 800C49B8 AC470000 */ sw $a3, ($v0) +/* B3BB5C 800C49BC 8CAF02DC */ lw $t7, 0x2dc($a1) +/* B3BB60 800C49C0 24070346 */ li $a3, 838 +/* B3BB64 800C49C4 AC4F0004 */ sw $t7, 4($v0) +/* B3BB68 800C49C8 8CA202B0 */ lw $v0, 0x2b0($a1) +/* B3BB6C 800C49CC 24580008 */ addiu $t8, $v0, 8 +/* B3BB70 800C49D0 ACB802B0 */ sw $t8, 0x2b0($a1) +/* B3BB74 800C49D4 AC440004 */ sw $a0, 4($v0) +/* B3BB78 800C49D8 27A40044 */ addiu $a0, $sp, 0x44 +/* B3BB7C 800C49DC 0C031AD5 */ jal Graph_CloseDisps +/* B3BB80 800C49E0 AC480000 */ sw $t0, ($v0) +/* B3BB84 800C49E4 8FBF0014 */ lw $ra, 0x14($sp) +/* B3BB88 800C49E8 27BD0058 */ addiu $sp, $sp, 0x58 +/* B3BB8C 800C49EC 03E00008 */ jr $ra +/* B3BB90 800C49F0 00000000 */ nop + +glabel func_800C49F4 +/* B3BB94 800C49F4 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* B3BB98 800C49F8 AFB00018 */ sw $s0, 0x18($sp) +/* B3BB9C 800C49FC 00808025 */ move $s0, $a0 +/* B3BBA0 800C4A00 AFBF001C */ sw $ra, 0x1c($sp) +/* B3BBA4 800C4A04 3C068014 */ lui $a2, %hi(D_80144DB0) # $a2, 0x8014 +/* B3BBA8 800C4A08 24C64DB0 */ addiu $a2, %lo(D_80144DB0) # addiu $a2, $a2, 0x4db0 +/* B3BBAC 800C4A0C 02002825 */ move $a1, $s0 +/* B3BBB0 800C4A10 27A4002C */ addiu $a0, $sp, 0x2c +/* B3BBB4 800C4A14 0C031AB1 */ jal Graph_OpenDisps +/* B3BBB8 800C4A18 2407034E */ li $a3, 846 +/* B3BBBC 800C4A1C 8E0602C0 */ lw $a2, 0x2c0($s0) +/* B3BBC0 800C4A20 00C02025 */ move $a0, $a2 +/* B3BBC4 800C4A24 0C031B08 */ jal Graph_GfxPlusOne +/* B3BBC8 800C4A28 AFA60040 */ sw $a2, 0x40($sp) +/* B3BBCC 800C4A2C 8E0402B0 */ lw $a0, 0x2b0($s0) +/* B3BBD0 800C4A30 8FA60040 */ lw $a2, 0x40($sp) +/* B3BBD4 800C4A34 3C0FDE00 */ lui $t7, 0xde00 +/* B3BBD8 800C4A38 248E0008 */ addiu $t6, $a0, 8 +/* B3BBDC 800C4A3C AE0E02B0 */ sw $t6, 0x2b0($s0) +/* B3BBE0 800C4A40 AC820004 */ sw $v0, 4($a0) +/* B3BBE4 800C4A44 AC8F0000 */ sw $t7, ($a0) +/* B3BBE8 800C4A48 3C18DF00 */ lui $t8, 0xdf00 +/* B3BBEC 800C4A4C AC580000 */ sw $t8, ($v0) +/* B3BBF0 800C4A50 AC400004 */ sw $zero, 4($v0) +/* B3BBF4 800C4A54 24450008 */ addiu $a1, $v0, 8 +/* B3BBF8 800C4A58 AFA50044 */ sw $a1, 0x44($sp) +/* B3BBFC 800C4A5C 0C031B0A */ jal Graph_BranchDlist +/* B3BC00 800C4A60 00C02025 */ move $a0, $a2 +/* B3BC04 800C4A64 8FA50044 */ lw $a1, 0x44($sp) +/* B3BC08 800C4A68 3C068014 */ lui $a2, %hi(D_80144DBC) # $a2, 0x8014 +/* B3BC0C 800C4A6C 24C64DBC */ addiu $a2, %lo(D_80144DBC) # addiu $a2, $a2, 0x4dbc +/* B3BC10 800C4A70 AE0502C0 */ sw $a1, 0x2c0($s0) +/* B3BC14 800C4A74 02002825 */ move $a1, $s0 +/* B3BC18 800C4A78 27A4002C */ addiu $a0, $sp, 0x2c +/* B3BC1C 800C4A7C 0C031AD5 */ jal Graph_CloseDisps +/* B3BC20 800C4A80 24070361 */ li $a3, 865 +/* B3BC24 800C4A84 8FBF001C */ lw $ra, 0x1c($sp) +/* B3BC28 800C4A88 8FB00018 */ lw $s0, 0x18($sp) +/* B3BC2C 800C4A8C 27BD0048 */ addiu $sp, $sp, 0x48 +/* B3BC30 800C4A90 03E00008 */ jr $ra +/* B3BC34 800C4A94 00000000 */ nop + +glabel func_800C4A98 +/* B3BC38 800C4A98 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* B3BC3C 800C4A9C 00803825 */ move $a3, $a0 +/* B3BC40 800C4AA0 AFBF0014 */ sw $ra, 0x14($sp) +/* B3BC44 800C4AA4 3C048016 */ lui $a0, %hi(gPadMgr) # $a0, 0x8016 +/* B3BC48 800C4AA8 248468C0 */ addiu $a0, %lo(gPadMgr) # addiu $a0, $a0, 0x68c0 +/* B3BC4C 800C4AAC 24E50014 */ addiu $a1, $a3, 0x14 +/* B3BC50 800C4AB0 0C031F82 */ jal PadMgr_RequestPadData +/* B3BC54 800C4AB4 24060001 */ li $a2, 1 +/* B3BC58 800C4AB8 8FBF0014 */ lw $ra, 0x14($sp) +/* B3BC5C 800C4ABC 27BD0018 */ addiu $sp, $sp, 0x18 +/* B3BC60 800C4AC0 03E00008 */ jr $ra +/* B3BC64 800C4AC4 00000000 */ nop + +glabel func_800C4AC8 +/* B3BC68 800C4AC8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* B3BC6C 800C4ACC AFBF0014 */ sw $ra, 0x14($sp) +/* B3BC70 800C4AD0 AFA40020 */ sw $a0, 0x20($sp) +/* B3BC74 800C4AD4 8C860000 */ lw $a2, ($a0) +/* B3BC78 800C4AD8 00C02025 */ move $a0, $a2 +/* B3BC7C 800C4ADC 0C031233 */ jal func_800C48CC +/* B3BC80 800C4AE0 AFA6001C */ sw $a2, 0x1c($sp) +/* B3BC84 800C4AE4 8FA40020 */ lw $a0, 0x20($sp) +/* B3BC88 800C4AE8 8C990004 */ lw $t9, 4($a0) +/* B3BC8C 800C4AEC 0320F809 */ jalr $t9 +/* B3BC90 800C4AF0 00000000 */ nop +/* B3BC94 800C4AF4 0C0310D1 */ jal func_800C4344 +/* B3BC98 800C4AF8 8FA40020 */ lw $a0, 0x20($sp) +/* B3BC9C 800C4AFC 3C078016 */ lui $a3, %hi(gGameInfo) # $a3, 0x8016 +/* B3BCA0 800C4B00 24E7FA90 */ addiu $a3, %lo(gGameInfo) # addiu $a3, $a3, -0x570 +/* B3BCA4 800C4B04 8CE20000 */ lw $v0, ($a3) +/* B3BCA8 800C4B08 24040001 */ li $a0, 1 +/* B3BCAC 800C4B0C 8FA6001C */ lw $a2, 0x1c($sp) +/* B3BCB0 800C4B10 84430152 */ lh $v1, 0x152($v0) +/* B3BCB4 800C4B14 1483002D */ bne $a0, $v1, .L800C4BCC +/* B3BCB8 800C4B18 28610002 */ slti $at, $v1, 2 +/* B3BCBC 800C4B1C 84430134 */ lh $v1, 0x134($v0) +/* B3BCC0 800C4B20 3C0F8001 */ lui $t7, %hi(gViConfigMode) # $t7, 0x8001 +/* B3BCC4 800C4B24 25EF3910 */ addiu $t7, %lo(gViConfigMode) # addiu $t7, $t7, 0x3910 +/* B3BCC8 800C4B28 04610010 */ bgez $v1, .L800C4B6C +/* B3BCCC 800C4B2C 3C188001 */ lui $t8, %hi(gViConfigFeatures) # $t8, 0x8001 +/* B3BCD0 800C4B30 A4400134 */ sh $zero, 0x134($v0) +/* B3BCD4 800C4B34 ACCF0284 */ sw $t7, 0x284($a2) +/* B3BCD8 800C4B38 8F18943C */ lw $t8, %lo(gViConfigFeatures)($t8) +/* B3BCDC 800C4B3C 3C018001 */ lui $at, %hi(gViConfigXScale) +/* B3BCE0 800C4B40 24050002 */ li $a1, 2 +/* B3BCE4 800C4B44 ACD802E4 */ sw $t8, 0x2e4($a2) +/* B3BCE8 800C4B48 C4249440 */ lwc1 $f4, %lo(gViConfigXScale)($at) +/* B3BCEC 800C4B4C 3C018001 */ lui $at, %hi(gViConfigYScale) +/* B3BCF0 800C4B50 E4C402F4 */ swc1 $f4, 0x2f4($a2) +/* B3BCF4 800C4B54 C4269444 */ lwc1 $f6, %lo(gViConfigYScale)($at) +/* B3BCF8 800C4B58 3C013F80 */ li $at, 0x3F800000 # 0.000000 +/* B3BCFC 800C4B5C 44810000 */ mtc1 $at, $f0 +/* B3BD00 800C4B60 E4C602F8 */ swc1 $f6, 0x2f8($a2) +/* B3BD04 800C4B64 1000006D */ b .L800C4D1C +/* B3BD08 800C4B68 8CE20000 */ lw $v0, ($a3) +.L800C4B6C: +/* B3BD0C 800C4B6C 18600013 */ blez $v1, .L800C4BBC +/* B3BD10 800C4B70 3C048016 */ lui $a0, %hi(D_80166528) # $a0, 0x8016 +/* B3BD14 800C4B74 8FA50020 */ lw $a1, 0x20($sp) +/* B3BD18 800C4B78 24846528 */ addiu $a0, %lo(D_80166528) # addiu $a0, $a0, 0x6528 +/* B3BD1C 800C4B7C AFA6001C */ sw $a2, 0x1c($sp) +/* B3BD20 800C4B80 0C02B2BE */ jal func_800ACAF8 +/* B3BD24 800C4B84 24A50014 */ addiu $a1, $a1, 0x14 +/* B3BD28 800C4B88 8FA6001C */ lw $a2, 0x1c($sp) +/* B3BD2C 800C4B8C 3C038016 */ lui $v1, %hi(D_80166528) # $v1, 0x8016 +/* B3BD30 800C4B90 24636528 */ addiu $v1, %lo(D_80166528) # addiu $v1, $v1, 0x6528 +/* B3BD34 800C4B94 3C013F80 */ li $at, 0x3F800000 # 0.000000 +/* B3BD38 800C4B98 44810000 */ mtc1 $at, $f0 +/* B3BD3C 800C4B9C ACC30284 */ sw $v1, 0x284($a2) +/* B3BD40 800C4BA0 8C690080 */ lw $t1, 0x80($v1) +/* B3BD44 800C4BA4 3C078016 */ lui $a3, %hi(gGameInfo) # $a3, 0x8016 +/* B3BD48 800C4BA8 24E7FA90 */ addiu $a3, %lo(gGameInfo) # addiu $a3, $a3, -0x570 +/* B3BD4C 800C4BAC E4C002F4 */ swc1 $f0, 0x2f4($a2) +/* B3BD50 800C4BB0 E4C002F8 */ swc1 $f0, 0x2f8($a2) +/* B3BD54 800C4BB4 ACC902E4 */ sw $t1, 0x2e4($a2) +/* B3BD58 800C4BB8 8CE20000 */ lw $v0, ($a3) +.L800C4BBC: +/* B3BD5C 800C4BBC 3C013F80 */ li $at, 0x3F800000 # 0.000000 +/* B3BD60 800C4BC0 44810000 */ mtc1 $at, $f0 +/* B3BD64 800C4BC4 10000055 */ b .L800C4D1C +/* B3BD68 800C4BC8 24050002 */ li $a1, 2 +.L800C4BCC: +/* B3BD6C 800C4BCC 1420004F */ bnez $at, .L800C4D0C +/* B3BD70 800C4BD0 24050002 */ li $a1, 2 +/* B3BD74 800C4BD4 3C0A8001 */ lui $t2, %hi(gViConfigMode) # $t2, 0x8001 +/* B3BD78 800C4BD8 254A3910 */ addiu $t2, %lo(gViConfigMode) # addiu $t2, $t2, 0x3910 +/* B3BD7C 800C4BDC ACCA0284 */ sw $t2, 0x284($a2) +/* B3BD80 800C4BE0 3C0B8001 */ lui $t3, %hi(gViConfigFeatures) # $t3, 0x8001 +/* B3BD84 800C4BE4 8D6B943C */ lw $t3, %lo(gViConfigFeatures)($t3) +/* B3BD88 800C4BE8 3C018001 */ lui $at, %hi(gViConfigXScale) +/* B3BD8C 800C4BEC 3C198001 */ lui $t9, %hi(osViModeMpalLan1) # $t9, 0x8001 +/* B3BD90 800C4BF0 ACCB02E4 */ sw $t3, 0x2e4($a2) +/* B3BD94 800C4BF4 C4289440 */ lwc1 $f8, %lo(gViConfigXScale)($at) +/* B3BD98 800C4BF8 3C018001 */ lui $at, %hi(gViConfigYScale) +/* B3BD9C 800C4BFC 3C188001 */ lui $t8, %hi(osViModePalLan1) # $t8, 0x8001 +/* B3BDA0 800C4C00 E4C802F4 */ swc1 $f8, 0x2f4($a2) +/* B3BDA4 800C4C04 C42A9444 */ lwc1 $f10, %lo(gViConfigYScale)($at) +/* B3BDA8 800C4C08 24010006 */ li $at, 6 +/* B3BDAC 800C4C0C 3C0A8001 */ lui $t2, %hi(osViModeFpalLan1) # $t2, 0x8001 +/* B3BDB0 800C4C10 E4CA02F8 */ swc1 $f10, 0x2f8($a2) +/* B3BDB4 800C4C14 8CE20000 */ lw $v0, ($a3) +/* B3BDB8 800C4C18 24050002 */ li $a1, 2 +/* B3BDBC 800C4C1C 3C0D8001 */ lui $t5, %hi(osViModeNtscLan1) # $t5, 0x8001 +/* B3BDC0 800C4C20 84430152 */ lh $v1, 0x152($v0) +/* B3BDC4 800C4C24 2739AE50 */ addiu $t9, %lo(osViModeMpalLan1) # addiu $t9, $t9, -0x51b0 +/* B3BDC8 800C4C28 2718ACA0 */ addiu $t8, %lo(osViModePalLan1) # addiu $t8, $t8, -0x5360 +/* B3BDCC 800C4C2C 10610006 */ beq $v1, $at, .L800C4C48 +/* B3BDD0 800C4C30 254AAF20 */ addiu $t2, %lo(osViModeFpalLan1) # addiu $t2, $t2, -0x50e0 +/* B3BDD4 800C4C34 14A3000C */ bne $a1, $v1, .L800C4C68 +/* B3BDD8 800C4C38 3C088000 */ lui $t0, %hi(osTvType) # $t0, 0x8000 +/* B3BDDC 800C4C3C 25080300 */ addiu $t0, %lo(osTvType) # addiu $t0, $t0, 0x300 +/* B3BDE0 800C4C40 8D0C0000 */ lw $t4, ($t0) +/* B3BDE4 800C4C44 148C0008 */ bne $a0, $t4, .L800C4C68 +.L800C4C48: +/* B3BDE8 800C4C48 3C013F80 */ li $at, 0x3F800000 # 0.000000 +/* B3BDEC 800C4C4C 44810000 */ mtc1 $at, $f0 +/* B3BDF0 800C4C50 25ADAE00 */ addiu $t5, %lo(osViModeNtscLan1) # addiu $t5, $t5, -0x5200 +/* B3BDF4 800C4C54 ACCD0284 */ sw $t5, 0x284($a2) +/* B3BDF8 800C4C58 E4C002F8 */ swc1 $f0, 0x2f8($a2) +/* B3BDFC 800C4C5C 8CE20000 */ lw $v0, ($a3) +/* B3BE00 800C4C60 24050002 */ li $a1, 2 +/* B3BE04 800C4C64 84430152 */ lh $v1, 0x152($v0) +.L800C4C68: +/* B3BE08 800C4C68 3C013F80 */ li $at, 0x3F800000 # 0.000000 +/* B3BE0C 800C4C6C 44810000 */ mtc1 $at, $f0 +/* B3BE10 800C4C70 3C088000 */ lui $t0, %hi(osTvType) # $t0, 0x8000 +/* B3BE14 800C4C74 24010005 */ li $at, 5 +/* B3BE18 800C4C78 10610006 */ beq $v1, $at, .L800C4C94 +/* B3BE1C 800C4C7C 25080300 */ addiu $t0, %lo(osTvType) # addiu $t0, $t0, 0x300 +/* B3BE20 800C4C80 54A30009 */ bnel $a1, $v1, .L800C4CA8 +/* B3BE24 800C4C84 24010004 */ li $at, 4 +/* B3BE28 800C4C88 8D0E0000 */ lw $t6, ($t0) +/* B3BE2C 800C4C8C 54AE0006 */ bnel $a1, $t6, .L800C4CA8 +/* B3BE30 800C4C90 24010004 */ li $at, 4 +.L800C4C94: +/* B3BE34 800C4C94 ACD90284 */ sw $t9, 0x284($a2) +/* B3BE38 800C4C98 E4C002F8 */ swc1 $f0, 0x2f8($a2) +/* B3BE3C 800C4C9C 8CE20000 */ lw $v0, ($a3) +/* B3BE40 800C4CA0 84430152 */ lh $v1, 0x152($v0) +/* B3BE44 800C4CA4 24010004 */ li $at, 4 +.L800C4CA8: +/* B3BE48 800C4CA8 50610007 */ beql $v1, $at, .L800C4CC8 +/* B3BE4C 800C4CAC ACD80284 */ sw $t8, 0x284($a2) +/* B3BE50 800C4CB0 54A30009 */ bnel $a1, $v1, .L800C4CD8 +/* B3BE54 800C4CB4 24010003 */ li $at, 3 +/* B3BE58 800C4CB8 8D0F0000 */ lw $t7, ($t0) +/* B3BE5C 800C4CBC 55E00006 */ bnezl $t7, .L800C4CD8 +/* B3BE60 800C4CC0 24010003 */ li $at, 3 +/* B3BE64 800C4CC4 ACD80284 */ sw $t8, 0x284($a2) +.L800C4CC8: +/* B3BE68 800C4CC8 E4C002F8 */ swc1 $f0, 0x2f8($a2) +/* B3BE6C 800C4CCC 8CE20000 */ lw $v0, ($a3) +/* B3BE70 800C4CD0 84430152 */ lh $v1, 0x152($v0) +/* B3BE74 800C4CD4 24010003 */ li $at, 3 +.L800C4CD8: +/* B3BE78 800C4CD8 50610007 */ beql $v1, $at, .L800C4CF8 +/* B3BE7C 800C4CDC ACCA0284 */ sw $t2, 0x284($a2) +/* B3BE80 800C4CE0 54A3000F */ bnel $a1, $v1, .L800C4D20 +/* B3BE84 800C4CE4 844B1074 */ lh $t3, 0x1074($v0) +/* B3BE88 800C4CE8 8D090000 */ lw $t1, ($t0) +/* B3BE8C 800C4CEC 5520000C */ bnezl $t1, .L800C4D20 +/* B3BE90 800C4CF0 844B1074 */ lh $t3, 0x1074($v0) +/* B3BE94 800C4CF4 ACCA0284 */ sw $t2, 0x284($a2) +.L800C4CF8: +/* B3BE98 800C4CF8 3C018014 */ lui $at, %hi(D_801450E8) +/* B3BE9C 800C4CFC C43050E8 */ lwc1 $f16, %lo(D_801450E8)($at) +/* B3BEA0 800C4D00 E4D002F8 */ swc1 $f16, 0x2f8($a2) +/* B3BEA4 800C4D04 10000005 */ b .L800C4D1C +/* B3BEA8 800C4D08 8CE20000 */ lw $v0, ($a3) +.L800C4D0C: +/* B3BEAC 800C4D0C 3C013F80 */ li $at, 0x3F800000 # 0.000000 +/* B3BEB0 800C4D10 ACC00284 */ sw $zero, 0x284($a2) +/* B3BEB4 800C4D14 44810000 */ mtc1 $at, $f0 +/* B3BEB8 800C4D18 8CE20000 */ lw $v0, ($a3) +.L800C4D1C: +/* B3BEBC 800C4D1C 844B1074 */ lh $t3, 0x1074($v0) +.L800C4D20: +/* B3BEC0 800C4D20 24030015 */ li $v1, 21 +/* B3BEC4 800C4D24 546B0046 */ bnel $v1, $t3, .L800C4E40 +/* B3BEC8 800C4D28 84490190 */ lh $t1, 0x190($v0) +/* B3BECC 800C4D2C 844C1092 */ lh $t4, 0x1092($v0) +/* B3BED0 800C4D30 24090030 */ li $t1, 48 +/* B3BED4 800C4D34 506C000F */ beql $v1, $t4, .L800C4D74 +/* B3BED8 800C4D38 84431078 */ lh $v1, 0x1078($v0) +/* B3BEDC 800C4D3C A4431092 */ sh $v1, 0x1092($v0) +/* B3BEE0 800C4D40 8CED0000 */ lw $t5, ($a3) +/* B3BEE4 800C4D44 3C048001 */ lui $a0, %hi(gViConfigAdditionalScanLines) # $a0, 0x8001 +/* B3BEE8 800C4D48 24849438 */ addiu $a0, %lo(gViConfigAdditionalScanLines) # addiu $a0, $a0, -0x6bc8 +/* B3BEEC 800C4D4C A5A01076 */ sh $zero, 0x1076($t5) +/* B3BEF0 800C4D50 8CF90000 */ lw $t9, ($a3) +/* B3BEF4 800C4D54 908E0000 */ lbu $t6, ($a0) +/* B3BEF8 800C4D58 A72E1078 */ sh $t6, 0x1078($t9) +/* B3BEFC 800C4D5C 8CEF0000 */ lw $t7, ($a3) +/* B3BF00 800C4D60 A5E0107A */ sh $zero, 0x107a($t7) +/* B3BF04 800C4D64 8CF80000 */ lw $t8, ($a3) +/* B3BF08 800C4D68 A700107C */ sh $zero, 0x107c($t8) +/* B3BF0C 800C4D6C 8CE20000 */ lw $v0, ($a3) +/* B3BF10 800C4D70 84431078 */ lh $v1, 0x1078($v0) +.L800C4D74: +/* B3BF14 800C4D74 3C048001 */ lui $a0, %hi(gViConfigAdditionalScanLines) +/* B3BF18 800C4D78 24849438 */ addiu $a0, %lo(gViConfigAdditionalScanLines) # addiu $a0, $a0, -0x6bc8 +/* B3BF1C 800C4D7C 04630005 */ bgezl $v1, .L800C4D94 +/* B3BF20 800C4D80 28610031 */ slti $at, $v1, 0x31 +/* B3BF24 800C4D84 A4401078 */ sh $zero, 0x1078($v0) +/* B3BF28 800C4D88 8CE20000 */ lw $v0, ($a3) +/* B3BF2C 800C4D8C 84431078 */ lh $v1, 0x1078($v0) +/* B3BF30 800C4D90 28610031 */ slti $at, $v1, 0x31 +.L800C4D94: +/* B3BF34 800C4D94 54200005 */ bnezl $at, .L800C4DAC +/* B3BF38 800C4D98 844A107A */ lh $t2, 0x107a($v0) +/* B3BF3C 800C4D9C A4491078 */ sh $t1, 0x1078($v0) +/* B3BF40 800C4DA0 8CE20000 */ lw $v0, ($a3) +/* B3BF44 800C4DA4 84431078 */ lh $v1, 0x1078($v0) +/* B3BF48 800C4DA8 844A107A */ lh $t2, 0x107a($v0) +.L800C4DAC: +/* B3BF4C 800C4DAC 55430006 */ bnel $t2, $v1, .L800C4DC8 +/* B3BF50 800C4DB0 A443107A */ sh $v1, 0x107a($v0) +/* B3BF54 800C4DB4 844B107C */ lh $t3, 0x107c($v0) +/* B3BF58 800C4DB8 844C1076 */ lh $t4, 0x1076($v0) +/* B3BF5C 800C4DBC 516C0020 */ beql $t3, $t4, .L800C4E40 +/* B3BF60 800C4DC0 84490190 */ lh $t1, 0x190($v0) +/* B3BF64 800C4DC4 A443107A */ sh $v1, 0x107a($v0) +.L800C4DC8: +/* B3BF68 800C4DC8 8CE20000 */ lw $v0, ($a3) +/* B3BF6C 800C4DCC 3C014370 */ li $at, 0x43700000 # 0.000000 +/* B3BF70 800C4DD0 844D1076 */ lh $t5, 0x1076($v0) +/* B3BF74 800C4DD4 A44D107C */ sh $t5, 0x107c($v0) +/* B3BF78 800C4DD8 8CE20000 */ lw $v0, ($a3) +/* B3BF7C 800C4DDC 844E1078 */ lh $t6, 0x1078($v0) +/* B3BF80 800C4DE0 A08E0000 */ sb $t6, ($a0) +/* B3BF84 800C4DE4 84591076 */ lh $t9, 0x1076($v0) +/* B3BF88 800C4DE8 31CF00FF */ andi $t7, $t6, 0xff +/* B3BF8C 800C4DEC 1720000E */ bnez $t9, .L800C4E28 +/* B3BF90 800C4DF0 00000000 */ nop +/* B3BF94 800C4DF4 448F9000 */ mtc1 $t7, $f18 +/* B3BF98 800C4DF8 44810000 */ mtc1 $at, $f0 +/* B3BF9C 800C4DFC 05E10005 */ bgez $t7, .L800C4E14 +/* B3BFA0 800C4E00 46809120 */ cvt.s.w $f4, $f18 +/* B3BFA4 800C4E04 3C014F80 */ li $at, 0x4F800000 # 0.000000 +/* B3BFA8 800C4E08 44813000 */ mtc1 $at, $f6 +/* B3BFAC 800C4E0C 00000000 */ nop +/* B3BFB0 800C4E10 46062100 */ add.s $f4, $f4, $f6 +.L800C4E14: +/* B3BFB4 800C4E14 46002200 */ add.s $f8, $f4, $f0 +/* B3BFB8 800C4E18 3C018001 */ lui $at, %hi(gViConfigYScale) +/* B3BFBC 800C4E1C 46080283 */ div.s $f10, $f0, $f8 +/* B3BFC0 800C4E20 10000003 */ b .L800C4E30 +/* B3BFC4 800C4E24 E42A9444 */ swc1 $f10, %lo(gViConfigYScale)($at) +.L800C4E28: +/* B3BFC8 800C4E28 3C018001 */ lui $at, %hi(gViConfigYScale) +/* B3BFCC 800C4E2C E4209444 */ swc1 $f0, %lo(gViConfigYScale)($at) +.L800C4E30: +/* B3BFD0 800C4E30 24180001 */ li $t8, 1 +/* B3BFD4 800C4E34 3C018001 */ lui $at, %hi(D_80009430) # $at, 0x8001 +/* B3BFD8 800C4E38 A0389430 */ sb $t8, %lo(D_80009430)($at) +/* B3BFDC 800C4E3C 84490190 */ lh $t1, 0x190($v0) +.L800C4E40: +/* B3BFE0 800C4E40 50A90008 */ beql $a1, $t1, .L800C4E64 +/* B3BFE4 800C4E44 8FA20020 */ lw $v0, 0x20($sp) +/* B3BFE8 800C4E48 8FA40020 */ lw $a0, 0x20($sp) +/* B3BFEC 800C4E4C 00C02825 */ move $a1, $a2 +/* B3BFF0 800C4E50 0C0311BB */ jal func_800C46EC +/* B3BFF4 800C4E54 AFA6001C */ sw $a2, 0x1c($sp) +/* B3BFF8 800C4E58 0C03127D */ jal func_800C49F4 +/* B3BFFC 800C4E5C 8FA4001C */ lw $a0, 0x1c($sp) +/* B3C000 800C4E60 8FA20020 */ lw $v0, 0x20($sp) +.L800C4E64: +/* B3C004 800C4E64 8C4A009C */ lw $t2, 0x9c($v0) +/* B3C008 800C4E68 254B0001 */ addiu $t3, $t2, 1 +/* B3C00C 800C4E6C AC4B009C */ sw $t3, 0x9c($v0) +/* B3C010 800C4E70 8FBF0014 */ lw $ra, 0x14($sp) +/* B3C014 800C4E74 27BD0020 */ addiu $sp, $sp, 0x20 +/* B3C018 800C4E78 03E00008 */ jr $ra +/* B3C01C 800C4E7C 00000000 */ nop + +glabel func_800C4E80 +/* B3C020 800C4E80 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* B3C024 800C4E84 AFA40018 */ sw $a0, 0x18($sp) +/* B3C028 800C4E88 AFBF0014 */ sw $ra, 0x14($sp) +/* B3C02C 800C4E8C 3C048014 */ lui $a0, %hi(D_80144DC8) # $a0, 0x8014 +/* B3C030 800C4E90 AFA5001C */ sw $a1, 0x1c($sp) +/* B3C034 800C4E94 0C00084C */ jal osSyncPrintf +/* B3C038 800C4E98 24844DC8 */ addiu $a0, %lo(D_80144DC8) # addiu $a0, $a0, 0x4dc8 +/* B3C03C 800C4E9C 8FA40018 */ lw $a0, 0x18($sp) +/* B3C040 800C4EA0 3C068014 */ lui $a2, %hi(D_80144DE8) # $a2, 0x8014 +/* B3C044 800C4EA4 24C64DE8 */ addiu $a2, %lo(D_80144DE8) # addiu $a2, $a2, 0x4de8 +/* B3C048 800C4EA8 8FA5001C */ lw $a1, 0x1c($sp) +/* B3C04C 800C4EAC 240703E0 */ li $a3, 992 +/* B3C050 800C4EB0 0C03158F */ jal GameAlloc_MallocDebug +/* B3C054 800C4EB4 24840084 */ addiu $a0, $a0, 0x84 +/* B3C058 800C4EB8 8FA30018 */ lw $v1, 0x18($sp) +/* B3C05C 800C4EBC 10400009 */ beqz $v0, .L800C4EE4 +/* B3C060 800C4EC0 00402825 */ move $a1, $v0 +/* B3C064 800C4EC4 24640074 */ addiu $a0, $v1, 0x74 +/* B3C068 800C4EC8 0C030EF5 */ jal THA_Ct +/* B3C06C 800C4ECC 8FA6001C */ lw $a2, 0x1c($sp) +/* B3C070 800C4ED0 3C048014 */ lui $a0, %hi(D_80144DF4) # $a0, 0x8014 +/* B3C074 800C4ED4 0C00084C */ jal osSyncPrintf +/* B3C078 800C4ED8 24844DF4 */ addiu $a0, %lo(D_80144DF4) # addiu $a0, $a0, 0x4df4 +/* B3C07C 800C4EDC 1000000D */ b .L800C4F14 +/* B3C080 800C4EE0 8FBF0014 */ lw $ra, 0x14($sp) +.L800C4EE4: +/* B3C084 800C4EE4 24640074 */ addiu $a0, $v1, 0x74 +/* B3C088 800C4EE8 00002825 */ move $a1, $zero +/* B3C08C 800C4EEC 0C030EF5 */ jal THA_Ct +/* B3C090 800C4EF0 00003025 */ move $a2, $zero +/* B3C094 800C4EF4 3C048014 */ lui $a0, %hi(D_80144E08) # $a0, 0x8014 +/* B3C098 800C4EF8 0C00084C */ jal osSyncPrintf +/* B3C09C 800C4EFC 24844E08 */ addiu $a0, %lo(D_80144E08) # addiu $a0, $a0, 0x4e08 +/* B3C0A0 800C4F00 3C048014 */ lui $a0, %hi(D_80144E1C) # $a0, 0x8014 +/* B3C0A4 800C4F04 24844E1C */ addiu $a0, %lo(D_80144E1C) # addiu $a0, $a0, 0x4e1c +/* B3C0A8 800C4F08 0C0359C3 */ jal Fault_AddHungupAndCrash +/* B3C0AC 800C4F0C 240503E7 */ li $a1, 999 +/* B3C0B0 800C4F10 8FBF0014 */ lw $ra, 0x14($sp) +.L800C4F14: +/* B3C0B4 800C4F14 27BD0018 */ addiu $sp, $sp, 0x18 +/* B3C0B8 800C4F18 03E00008 */ jr $ra +/* B3C0BC 800C4F1C 00000000 */ nop + +glabel func_800C4F20 +/* B3C0C0 800C4F20 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* B3C0C4 800C4F24 AFBF001C */ sw $ra, 0x1c($sp) +/* B3C0C8 800C4F28 AFA50044 */ sw $a1, 0x44($sp) +/* B3C0CC 800C4F2C 8C8E0078 */ lw $t6, 0x78($a0) +/* B3C0D0 800C4F30 00803025 */ move $a2, $a0 +/* B3C0D4 800C4F34 24840074 */ addiu $a0, $a0, 0x74 +/* B3C0D8 800C4F38 AFA40020 */ sw $a0, 0x20($sp) +/* B3C0DC 800C4F3C AFA60040 */ sw $a2, 0x40($sp) +/* B3C0E0 800C4F40 0C030EFE */ jal THA_Dt +/* B3C0E4 800C4F44 AFAE0028 */ sw $t6, 0x28($sp) +/* B3C0E8 800C4F48 8FA60040 */ lw $a2, 0x40($sp) +/* B3C0EC 800C4F4C 8FA50028 */ lw $a1, 0x28($sp) +/* B3C0F0 800C4F50 24C40084 */ addiu $a0, $a2, 0x84 +/* B3C0F4 800C4F54 0C0315C9 */ jal GameAlloc_Free +/* B3C0F8 800C4F58 AFA40024 */ sw $a0, 0x24($sp) +/* B3C0FC 800C4F5C 3C048014 */ lui $a0, %hi(D_80144E28) # $a0, 0x8014 +/* B3C100 800C4F60 0C00084C */ jal osSyncPrintf +/* B3C104 800C4F64 24844E28 */ addiu $a0, %lo(D_80144E28) # addiu $a0, $a0, 0x4e28 +/* B3C108 800C4F68 27A40034 */ addiu $a0, $sp, 0x34 +/* B3C10C 800C4F6C 27A50030 */ addiu $a1, $sp, 0x30 +/* B3C110 800C4F70 0C03F622 */ jal SystemArena_GetSizes +/* B3C114 800C4F74 27A6002C */ addiu $a2, $sp, 0x2c +/* B3C118 800C4F78 8FB80034 */ lw $t8, 0x34($sp) +/* B3C11C 800C4F7C 8FAF0044 */ lw $t7, 0x44($sp) +/* B3C120 800C4F80 3C048014 */ lui $a0, %hi(D_80144E3C) # $a0, 0x8014 +/* B3C124 800C4F84 2719FFF0 */ addiu $t9, $t8, -0x10 +/* B3C128 800C4F88 032F082B */ sltu $at, $t9, $t7 +/* B3C12C 800C4F8C 10200017 */ beqz $at, .L800C4FEC +/* B3C130 800C4F90 24844E3C */ addiu $a0, %lo(D_80144E3C) # addiu $a0, $a0, 0x4e3c +/* B3C134 800C4F94 0C00084C */ jal osSyncPrintf +/* B3C138 800C4F98 24050007 */ li $a1, 7 +/* B3C13C 800C4F9C 3C048014 */ lui $a0, %hi(D_80144E40) # $a0, 0x8014 +/* B3C140 800C4FA0 0C00084C */ jal osSyncPrintf +/* B3C144 800C4FA4 24844E40 */ addiu $a0, %lo(D_80144E40) # addiu $a0, $a0, 0x4e40 +/* B3C148 800C4FA8 3C048014 */ lui $a0, %hi(D_80144E48) # $a0, 0x8014 +/* B3C14C 800C4FAC 0C00084C */ jal osSyncPrintf +/* B3C150 800C4FB0 24844E48 */ addiu $a0, %lo(D_80144E48) # addiu $a0, $a0, 0x4e48 +/* B3C154 800C4FB4 8FA8002C */ lw $t0, 0x2c($sp) +/* B3C158 800C4FB8 3C048014 */ lui $a0, %hi(D_80144E88) # $a0, 0x8014 +/* B3C15C 800C4FBC 24844E88 */ addiu $a0, %lo(D_80144E88) # addiu $a0, $a0, 0x4e88 +/* B3C160 800C4FC0 8FA50044 */ lw $a1, 0x44($sp) +/* B3C164 800C4FC4 8FA60034 */ lw $a2, 0x34($sp) +/* B3C168 800C4FC8 8FA70030 */ lw $a3, 0x30($sp) +/* B3C16C 800C4FCC 0C00084C */ jal osSyncPrintf +/* B3C170 800C4FD0 AFA80010 */ sw $t0, 0x10($sp) +/* B3C174 800C4FD4 3C048014 */ lui $a0, %hi(D_80144EB4) # $a0, 0x8014 +/* B3C178 800C4FD8 0C00084C */ jal osSyncPrintf +/* B3C17C 800C4FDC 24844EB4 */ addiu $a0, %lo(D_80144EB4) # addiu $a0, $a0, 0x4eb4 +/* B3C180 800C4FE0 8FA90034 */ lw $t1, 0x34($sp) +/* B3C184 800C4FE4 252AFFF0 */ addiu $t2, $t1, -0x10 +/* B3C188 800C4FE8 AFAA0044 */ sw $t2, 0x44($sp) +.L800C4FEC: +/* B3C18C 800C4FEC 3C048014 */ lui $a0, %hi(D_80144EB8) # $a0, 0x8014 +/* B3C190 800C4FF0 24844EB8 */ addiu $a0, %lo(D_80144EB8) # addiu $a0, $a0, 0x4eb8 +/* B3C194 800C4FF4 0C00084C */ jal osSyncPrintf +/* B3C198 800C4FF8 8FA50044 */ lw $a1, 0x44($sp) +/* B3C19C 800C4FFC 3C068014 */ lui $a2, %hi(D_80144EDC) # $a2, 0x8014 +/* B3C1A0 800C5000 24C64EDC */ addiu $a2, %lo(D_80144EDC) # addiu $a2, $a2, 0x4edc +/* B3C1A4 800C5004 8FA40024 */ lw $a0, 0x24($sp) +/* B3C1A8 800C5008 8FA50044 */ lw $a1, 0x44($sp) +/* B3C1AC 800C500C 0C03158F */ jal GameAlloc_MallocDebug +/* B3C1B0 800C5010 24070409 */ li $a3, 1033 +/* B3C1B4 800C5014 10400009 */ beqz $v0, .L800C503C +/* B3C1B8 800C5018 00402825 */ move $a1, $v0 +/* B3C1BC 800C501C 8FA40020 */ lw $a0, 0x20($sp) +/* B3C1C0 800C5020 0C030EF5 */ jal THA_Ct +/* B3C1C4 800C5024 8FA60044 */ lw $a2, 0x44($sp) +/* B3C1C8 800C5028 3C048014 */ lui $a0, %hi(D_80144EE8) # $a0, 0x8014 +/* B3C1CC 800C502C 0C00084C */ jal osSyncPrintf +/* B3C1D0 800C5030 24844EE8 */ addiu $a0, %lo(D_80144EE8) # addiu $a0, $a0, 0x4ee8 +/* B3C1D4 800C5034 1000000F */ b .L800C5074 +/* B3C1D8 800C5038 8FBF001C */ lw $ra, 0x1c($sp) +.L800C503C: +/* B3C1DC 800C503C 8FA40020 */ lw $a0, 0x20($sp) +/* B3C1E0 800C5040 00002825 */ move $a1, $zero +/* B3C1E4 800C5044 0C030EF5 */ jal THA_Ct +/* B3C1E8 800C5048 00003025 */ move $a2, $zero +/* B3C1EC 800C504C 3C048014 */ lui $a0, %hi(D_80144EFC) # $a0, 0x8014 +/* B3C1F0 800C5050 0C00084C */ jal osSyncPrintf +/* B3C1F4 800C5054 24844EFC */ addiu $a0, %lo(D_80144EFC) # addiu $a0, $a0, 0x4efc +/* B3C1F8 800C5058 0C03F616 */ jal SystemArena_Display +/* B3C1FC 800C505C 00000000 */ nop +/* B3C200 800C5060 3C048014 */ lui $a0, %hi(D_80144F10) # $a0, 0x8014 +/* B3C204 800C5064 24844F10 */ addiu $a0, %lo(D_80144F10) # addiu $a0, $a0, 0x4f10 +/* B3C208 800C5068 0C0359C3 */ jal Fault_AddHungupAndCrash +/* B3C20C 800C506C 24050414 */ li $a1, 1044 +/* B3C210 800C5070 8FBF001C */ lw $ra, 0x1c($sp) +.L800C5074: +/* B3C214 800C5074 27BD0040 */ addiu $sp, $sp, 0x40 +/* B3C218 800C5078 03E00008 */ jr $ra +/* B3C21C 800C507C 00000000 */ nop + +glabel func_800C5080 +/* B3C220 800C5080 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* B3C224 800C5084 AFB00018 */ sw $s0, 0x18($sp) +/* B3C228 800C5088 00808025 */ move $s0, $a0 +/* B3C22C 800C508C AFBF001C */ sw $ra, 0x1c($sp) +/* B3C230 800C5090 3C048014 */ lui $a0, %hi(D_80144F1C) # $a0, 0x8014 +/* B3C234 800C5094 AFA50034 */ sw $a1, 0x34($sp) +/* B3C238 800C5098 AFA60038 */ sw $a2, 0x38($sp) +/* B3C23C 800C509C 0C00084C */ jal osSyncPrintf +/* B3C240 800C50A0 24844F1C */ addiu $a0, %lo(D_80144F1C) # addiu $a0, $a0, 0x4f1c +/* B3C244 800C50A4 8FAE0038 */ lw $t6, 0x38($sp) +/* B3C248 800C50A8 240F0001 */ li $t7, 1 +/* B3C24C 800C50AC AE00009C */ sw $zero, 0x9c($s0) +/* B3C250 800C50B0 AE000004 */ sw $zero, 4($s0) +/* B3C254 800C50B4 AE000008 */ sw $zero, 8($s0) +/* B3C258 800C50B8 AE0F0098 */ sw $t7, 0x98($s0) +/* B3C25C 800C50BC 0C001A78 */ jal osGetTime +/* B3C260 800C50C0 AE0E0000 */ sw $t6, ($s0) +/* B3C264 800C50C4 AFA20028 */ sw $v0, 0x28($sp) +/* B3C268 800C50C8 AFA3002C */ sw $v1, 0x2c($sp) +/* B3C26C 800C50CC AE000010 */ sw $zero, 0x10($s0) +/* B3C270 800C50D0 0C001A78 */ jal osGetTime +/* B3C274 800C50D4 AE00000C */ sw $zero, 0xc($s0) +/* B3C278 800C50D8 8FB80028 */ lw $t8, 0x28($sp) +/* B3C27C 800C50DC 8FB9002C */ lw $t9, 0x2c($sp) +/* B3C280 800C50E0 AFA20020 */ sw $v0, 0x20($sp) +/* B3C284 800C50E4 00582023 */ subu $a0, $v0, $t8 +/* B3C288 800C50E8 0079082B */ sltu $at, $v1, $t9 +/* B3C28C 800C50EC AFA30024 */ sw $v1, 0x24($sp) +/* B3C290 800C50F0 00812023 */ subu $a0, $a0, $at +/* B3C294 800C50F4 24060000 */ li $a2, 0 +/* B3C298 800C50F8 24070040 */ li $a3, 64 +/* B3C29C 800C50FC 0C000E1E */ jal __ll_mul +/* B3C2A0 800C5100 00792823 */ subu $a1, $v1, $t9 +/* B3C2A4 800C5104 00402025 */ move $a0, $v0 +/* B3C2A8 800C5108 00602825 */ move $a1, $v1 +/* B3C2AC 800C510C 24060000 */ li $a2, 0 +/* B3C2B0 800C5110 0C000DDE */ jal __ull_div +/* B3C2B4 800C5114 24070BB8 */ li $a3, 3000 +/* B3C2B8 800C5118 3C048014 */ lui $a0, %hi(D_80144F38) # $a0, 0x8014 +/* B3C2BC 800C511C 24844F38 */ addiu $a0, %lo(D_80144F38) # addiu $a0, $a0, 0x4f38 +/* B3C2C0 800C5120 00403025 */ move $a2, $v0 +/* B3C2C4 800C5124 0C00084C */ jal osSyncPrintf +/* B3C2C8 800C5128 00603825 */ move $a3, $v1 +/* B3C2CC 800C512C 8FA80020 */ lw $t0, 0x20($sp) +/* B3C2D0 800C5130 8FA90024 */ lw $t1, 0x24($sp) +/* B3C2D4 800C5134 26040084 */ addiu $a0, $s0, 0x84 +/* B3C2D8 800C5138 AFA80028 */ sw $t0, 0x28($sp) +/* B3C2DC 800C513C 0C03160D */ jal GameAlloc_Init +/* B3C2E0 800C5140 AFA9002C */ sw $t1, 0x2c($sp) +/* B3C2E4 800C5144 0C001A78 */ jal osGetTime +/* B3C2E8 800C5148 00000000 */ nop +/* B3C2EC 800C514C 8FAA0028 */ lw $t2, 0x28($sp) +/* B3C2F0 800C5150 8FAB002C */ lw $t3, 0x2c($sp) +/* B3C2F4 800C5154 AFA20020 */ sw $v0, 0x20($sp) +/* B3C2F8 800C5158 004A2023 */ subu $a0, $v0, $t2 +/* B3C2FC 800C515C 006B082B */ sltu $at, $v1, $t3 +/* B3C300 800C5160 AFA30024 */ sw $v1, 0x24($sp) +/* B3C304 800C5164 00812023 */ subu $a0, $a0, $at +/* B3C308 800C5168 24060000 */ li $a2, 0 +/* B3C30C 800C516C 24070040 */ li $a3, 64 +/* B3C310 800C5170 0C000E1E */ jal __ll_mul +/* B3C314 800C5174 006B2823 */ subu $a1, $v1, $t3 +/* B3C318 800C5178 00402025 */ move $a0, $v0 +/* B3C31C 800C517C 00602825 */ move $a1, $v1 +/* B3C320 800C5180 24060000 */ li $a2, 0 +/* B3C324 800C5184 0C000DDE */ jal __ull_div +/* B3C328 800C5188 24070BB8 */ li $a3, 3000 +/* B3C32C 800C518C 3C048014 */ lui $a0, %hi(D_80144F60) # $a0, 0x8014 +/* B3C330 800C5190 24844F60 */ addiu $a0, %lo(D_80144F60) # addiu $a0, $a0, 0x4f60 +/* B3C334 800C5194 00403025 */ move $a2, $v0 +/* B3C338 800C5198 0C00084C */ jal osSyncPrintf +/* B3C33C 800C519C 00603825 */ move $a3, $v1 +/* B3C340 800C51A0 8FAC0020 */ lw $t4, 0x20($sp) +/* B3C344 800C51A4 8FAD0024 */ lw $t5, 0x24($sp) +/* B3C348 800C51A8 02002025 */ move $a0, $s0 +/* B3C34C 800C51AC 3C050010 */ lui $a1, 0x10 +/* B3C350 800C51B0 AFAC0028 */ sw $t4, 0x28($sp) +/* B3C354 800C51B4 0C0313A0 */ jal func_800C4E80 +/* B3C358 800C51B8 AFAD002C */ sw $t5, 0x2c($sp) +/* B3C35C 800C51BC 3C0F8016 */ lui $t7, %hi(gGameInfo) # $t7, 0x8016 +/* B3C360 800C51C0 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7) +/* B3C364 800C51C4 240E0003 */ li $t6, 3 +/* B3C368 800C51C8 02002025 */ move $a0, $s0 +/* B3C36C 800C51CC A5EE0110 */ sh $t6, 0x110($t7) +/* B3C370 800C51D0 8FB90034 */ lw $t9, 0x34($sp) +/* B3C374 800C51D4 0320F809 */ jalr $t9 +/* B3C378 800C51D8 00000000 */ nop +/* B3C37C 800C51DC 0C001A78 */ jal osGetTime +/* B3C380 800C51E0 00000000 */ nop +/* B3C384 800C51E4 8FB80028 */ lw $t8, 0x28($sp) +/* B3C388 800C51E8 8FB9002C */ lw $t9, 0x2c($sp) +/* B3C38C 800C51EC AFA20020 */ sw $v0, 0x20($sp) +/* B3C390 800C51F0 00582023 */ subu $a0, $v0, $t8 +/* B3C394 800C51F4 0079082B */ sltu $at, $v1, $t9 +/* B3C398 800C51F8 AFA30024 */ sw $v1, 0x24($sp) +/* B3C39C 800C51FC 00812023 */ subu $a0, $a0, $at +/* B3C3A0 800C5200 24060000 */ li $a2, 0 +/* B3C3A4 800C5204 24070040 */ li $a3, 64 +/* B3C3A8 800C5208 0C000E1E */ jal __ll_mul +/* B3C3AC 800C520C 00792823 */ subu $a1, $v1, $t9 +/* B3C3B0 800C5210 00402025 */ move $a0, $v0 +/* B3C3B4 800C5214 00602825 */ move $a1, $v1 +/* B3C3B8 800C5218 24060000 */ li $a2, 0 +/* B3C3BC 800C521C 0C000DDE */ jal __ull_div +/* B3C3C0 800C5220 24070BB8 */ li $a3, 3000 +/* B3C3C4 800C5224 3C048014 */ lui $a0, %hi(D_80144F80) # $a0, 0x8014 +/* B3C3C8 800C5228 24844F80 */ addiu $a0, %lo(D_80144F80) # addiu $a0, $a0, 0x4f80 +/* B3C3CC 800C522C 00403025 */ move $a2, $v0 +/* B3C3D0 800C5230 0C00084C */ jal osSyncPrintf +/* B3C3D4 800C5234 00603825 */ move $a3, $v1 +/* B3C3D8 800C5238 8FA80020 */ lw $t0, 0x20($sp) +/* B3C3DC 800C523C 8FA90024 */ lw $t1, 0x24($sp) +/* B3C3E0 800C5240 3C048014 */ lui $a0, %hi(D_80144F98) # $a0, 0x8014 +/* B3C3E4 800C5244 3C068014 */ lui $a2, %hi(D_80144FA8) # $a2, 0x8014 +/* B3C3E8 800C5248 AFA80028 */ sw $t0, 0x28($sp) +/* B3C3EC 800C524C AFA9002C */ sw $t1, 0x2c($sp) +/* B3C3F0 800C5250 8E050008 */ lw $a1, 8($s0) +/* B3C3F4 800C5254 24C64FA8 */ addiu $a2, %lo(D_80144FA8) # addiu $a2, $a2, 0x4fa8 +/* B3C3F8 800C5258 24844F98 */ addiu $a0, %lo(D_80144F98) # addiu $a0, $a0, 0x4f98 +/* B3C3FC 800C525C 0C000B58 */ jal LogUtils_CheckNullPointer +/* B3C400 800C5260 24070440 */ li $a3, 1088 +/* B3C404 800C5264 3C048016 */ lui $a0, %hi(D_801664F0) # $a0, 0x8016 +/* B3C408 800C5268 0C02B39C */ jal func_800ACE70 +/* B3C40C 800C526C 248464F0 */ addiu $a0, %lo(D_801664F0) # addiu $a0, $a0, 0x64f0 +/* B3C410 800C5270 3C048016 */ lui $a0, %hi(D_80166500) # $a0, 0x8016 +/* B3C414 800C5274 0C02B648 */ jal func_800AD920 +/* B3C418 800C5278 24846500 */ addiu $a0, %lo(D_80166500) # addiu $a0, $a0, 0x6500 +/* B3C41C 800C527C 3C048016 */ lui $a0, %hi(D_80166510) # $a0, 0x8016 +/* B3C420 800C5280 0C02B400 */ jal VisMono_Init +/* B3C424 800C5284 24846510 */ addiu $a0, %lo(D_80166510) # addiu $a0, $a0, 0x6510 +/* B3C428 800C5288 3C0A8016 */ lui $t2, %hi(gGameInfo) # $t2, 0x8016 +/* B3C42C 800C528C 8D4AFA90 */ lw $t2, %lo(gGameInfo)($t2) +/* B3C430 800C5290 3C048016 */ lui $a0, %hi(D_80166528) # $a0, 0x8016 +/* B3C434 800C5294 854B0134 */ lh $t3, 0x134($t2) +/* B3C438 800C5298 15600003 */ bnez $t3, .L800C52A8 +/* B3C43C 800C529C 00000000 */ nop +/* B3C440 800C52A0 0C02B28A */ jal func_800ACA28 +/* B3C444 800C52A4 24846528 */ addiu $a0, %lo(D_80166528) # addiu $a0, $a0, 0x6528 +.L800C52A8: +/* B3C448 800C52A8 3C048016 */ lui $a0, %hi(gSpeedMeter) # $a0, 0x8016 +/* B3C44C 800C52AC 0C032666 */ jal SpeedMeter_Init +/* B3C450 800C52B0 248464D0 */ addiu $a0, %lo(gSpeedMeter) # addiu $a0, $a0, 0x64d0 +/* B3C454 800C52B4 0C02A82D */ jal func_800AA0B4 +/* B3C458 800C52B8 00000000 */ nop +/* B3C45C 800C52BC 8E040000 */ lw $a0, ($s0) +/* B3C460 800C52C0 00002825 */ move $a1, $zero +/* B3C464 800C52C4 24060001 */ li $a2, 1 +/* B3C468 800C52C8 0C000C18 */ jal osSendMesg +/* B3C46C 800C52CC 2484005C */ addiu $a0, $a0, 0x5c +/* B3C470 800C52D0 0C001A78 */ jal osGetTime +/* B3C474 800C52D4 00000000 */ nop +/* B3C478 800C52D8 8FAC0028 */ lw $t4, 0x28($sp) +/* B3C47C 800C52DC 8FAD002C */ lw $t5, 0x2c($sp) +/* B3C480 800C52E0 24060000 */ li $a2, 0 +/* B3C484 800C52E4 004C2023 */ subu $a0, $v0, $t4 +/* B3C488 800C52E8 006D082B */ sltu $at, $v1, $t5 +/* B3C48C 800C52EC 00812023 */ subu $a0, $a0, $at +/* B3C490 800C52F0 24070040 */ li $a3, 64 +/* B3C494 800C52F4 0C000E1E */ jal __ll_mul +/* B3C498 800C52F8 006D2823 */ subu $a1, $v1, $t5 +/* B3C49C 800C52FC 00402025 */ move $a0, $v0 +/* B3C4A0 800C5300 00602825 */ move $a1, $v1 +/* B3C4A4 800C5304 24060000 */ li $a2, 0 +/* B3C4A8 800C5308 0C000DDE */ jal __ull_div +/* B3C4AC 800C530C 24070BB8 */ li $a3, 3000 +/* B3C4B0 800C5310 3C048014 */ lui $a0, %hi(D_80144FB4) # $a0, 0x8014 +/* B3C4B4 800C5314 24844FB4 */ addiu $a0, %lo(D_80144FB4) # addiu $a0, $a0, 0x4fb4 +/* B3C4B8 800C5318 00403025 */ move $a2, $v0 +/* B3C4BC 800C531C 0C00084C */ jal osSyncPrintf +/* B3C4C0 800C5320 00603825 */ move $a3, $v1 +/* B3C4C4 800C5324 3C048016 */ lui $a0, %hi(D_801665B0) # $a0, 0x8016 +/* B3C4C8 800C5328 3C05800C */ lui $a1, %hi(func_800C4130) # $a1, 0x800c +/* B3C4CC 800C532C 24A54130 */ addiu $a1, %lo(func_800C4130) # addiu $a1, $a1, 0x4130 +/* B3C4D0 800C5330 248465B0 */ addiu $a0, %lo(D_801665B0) # addiu $a0, $a0, 0x65b0 +/* B3C4D4 800C5334 00003025 */ move $a2, $zero +/* B3C4D8 800C5338 0C035077 */ jal Fault_AddClient +/* B3C4DC 800C533C 00003825 */ move $a3, $zero +/* B3C4E0 800C5340 3C048014 */ lui $a0, %hi(D_80144FD4) # $a0, 0x8014 +/* B3C4E4 800C5344 0C00084C */ jal osSyncPrintf +/* B3C4E8 800C5348 24844FD4 */ addiu $a0, %lo(D_80144FD4) # addiu $a0, $a0, 0x4fd4 +/* B3C4EC 800C534C 8FBF001C */ lw $ra, 0x1c($sp) +/* B3C4F0 800C5350 8FB00018 */ lw $s0, 0x18($sp) +/* B3C4F4 800C5354 27BD0030 */ addiu $sp, $sp, 0x30 +/* B3C4F8 800C5358 03E00008 */ jr $ra +/* B3C4FC 800C535C 00000000 */ nop + +glabel func_800C5360 +/* B3C500 800C5360 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* B3C504 800C5364 AFB00018 */ sw $s0, 0x18($sp) +/* B3C508 800C5368 00808025 */ move $s0, $a0 +/* B3C50C 800C536C AFBF001C */ sw $ra, 0x1c($sp) +/* B3C510 800C5370 3C048014 */ lui $a0, %hi(D_80144FF0) # $a0, 0x8014 +/* B3C514 800C5374 0C00084C */ jal osSyncPrintf +/* B3C518 800C5378 24844FF0 */ addiu $a0, %lo(D_80144FF0) # addiu $a0, $a0, 0x4ff0 +/* B3C51C 800C537C 0C030F08 */ jal func_800C3C20 +/* B3C520 800C5380 00000000 */ nop +/* B3C524 800C5384 0C03CC15 */ jal func_800F3054 +/* B3C528 800C5388 00000000 */ nop +/* B3C52C 800C538C 8E040000 */ lw $a0, ($s0) +/* B3C530 800C5390 00002825 */ move $a1, $zero +/* B3C534 800C5394 24060001 */ li $a2, 1 +/* B3C538 800C5398 0C000CA0 */ jal osRecvMesg +/* B3C53C 800C539C 2484005C */ addiu $a0, $a0, 0x5c +/* B3C540 800C53A0 3C048014 */ lui $a0, %hi(D_80145008) # $a0, 0x8014 +/* B3C544 800C53A4 3C068014 */ lui $a2, %hi(D_80145018) # $a2, 0x8014 +/* B3C548 800C53A8 24C65018 */ addiu $a2, %lo(D_80145018) # addiu $a2, $a2, 0x5018 +/* B3C54C 800C53AC 24845008 */ addiu $a0, %lo(D_80145008) # addiu $a0, $a0, 0x5008 +/* B3C550 800C53B0 8E050008 */ lw $a1, 8($s0) +/* B3C554 800C53B4 0C000B58 */ jal LogUtils_CheckNullPointer +/* B3C558 800C53B8 24070473 */ li $a3, 1139 +/* B3C55C 800C53BC 8E020008 */ lw $v0, 8($s0) +/* B3C560 800C53C0 10400003 */ beqz $v0, .L800C53D0 +/* B3C564 800C53C4 00000000 */ nop +/* B3C568 800C53C8 0040F809 */ jalr $v0 +/* B3C56C 800C53CC 02002025 */ move $a0, $s0 +.L800C53D0: +/* B3C570 800C53D0 0C02A83C */ jal func_800AA0F0 +/* B3C574 800C53D4 00000000 */ nop +/* B3C578 800C53D8 3C048016 */ lui $a0, %hi(gSpeedMeter) # $a0, 0x8016 +/* B3C57C 800C53DC 0C03266F */ jal SpeedMeter_Destroy +/* B3C580 800C53E0 248464D0 */ addiu $a0, %lo(gSpeedMeter) # addiu $a0, $a0, 0x64d0 +/* B3C584 800C53E4 3C048016 */ lui $a0, %hi(D_801664F0) # $a0, 0x8016 +/* B3C588 800C53E8 0C02B3A4 */ jal func_800ACE90 +/* B3C58C 800C53EC 248464F0 */ addiu $a0, %lo(D_801664F0) # addiu $a0, $a0, 0x64f0 +/* B3C590 800C53F0 3C048016 */ lui $a0, %hi(D_80166500) # $a0, 0x8016 +/* B3C594 800C53F4 0C02B654 */ jal func_800AD950 +/* B3C598 800C53F8 24846500 */ addiu $a0, %lo(D_80166500) # addiu $a0, $a0, 0x6500 +/* B3C59C 800C53FC 3C048016 */ lui $a0, %hi(D_80166510) # $a0, 0x8016 +/* B3C5A0 800C5400 0C02B415 */ jal VisMono_Destroy +/* B3C5A4 800C5404 24846510 */ addiu $a0, %lo(D_80166510) # addiu $a0, $a0, 0x6510 +/* B3C5A8 800C5408 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 +/* B3C5AC 800C540C 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) +/* B3C5B0 800C5410 3C048016 */ lui $a0, %hi(D_80166528) # $a0, 0x8016 +/* B3C5B4 800C5414 85CF0134 */ lh $t7, 0x134($t6) +/* B3C5B8 800C5418 15E00003 */ bnez $t7, .L800C5428 +/* B3C5BC 800C541C 00000000 */ nop +/* B3C5C0 800C5420 0C02B2A4 */ jal func_800ACA90 +/* B3C5C4 800C5424 24846528 */ addiu $a0, %lo(D_80166528) # addiu $a0, $a0, 0x6528 +.L800C5428: +/* B3C5C8 800C5428 0C030EFE */ jal THA_Dt +/* B3C5CC 800C542C 26040074 */ addiu $a0, $s0, 0x74 +/* B3C5D0 800C5430 0C0315F3 */ jal GameAlloc_Cleanup +/* B3C5D4 800C5434 26040084 */ addiu $a0, $s0, 0x84 +/* B3C5D8 800C5438 0C03F616 */ jal SystemArena_Display +/* B3C5DC 800C543C 00000000 */ nop +/* B3C5E0 800C5440 3C048016 */ lui $a0, %hi(D_801665B0) # $a0, 0x8016 +/* B3C5E4 800C5444 0C0350B0 */ jal Fault_RemoveClient +/* B3C5E8 800C5448 248465B0 */ addiu $a0, %lo(D_801665B0) # addiu $a0, $a0, 0x65b0 +/* B3C5EC 800C544C 3C048014 */ lui $a0, %hi(D_80145024) # $a0, 0x8014 +/* B3C5F0 800C5450 0C00084C */ jal osSyncPrintf +/* B3C5F4 800C5454 24845024 */ addiu $a0, %lo(D_80145024) # addiu $a0, $a0, 0x5024 +/* B3C5F8 800C5458 8FBF001C */ lw $ra, 0x1c($sp) +/* B3C5FC 800C545C 8FB00018 */ lw $s0, 0x18($sp) +/* B3C600 800C5460 27BD0020 */ addiu $sp, $sp, 0x20 +/* B3C604 800C5464 03E00008 */ jr $ra +/* B3C608 800C5468 00000000 */ nop + +glabel func_800C546C +/* B3C60C 800C546C 03E00008 */ jr $ra +/* B3C610 800C5470 8C82000C */ lw $v0, 0xc($a0) + +glabel func_800C5474 +/* B3C614 800C5474 03E00008 */ jr $ra +/* B3C618 800C5478 8C820010 */ lw $v0, 0x10($a0) + +glabel func_800C547C +/* B3C61C 800C547C 03E00008 */ jr $ra +/* B3C620 800C5480 8C820098 */ lw $v0, 0x98($a0) + +glabel Game_Alloc +/* B3C624 800C5484 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* B3C628 800C5488 AFB0001C */ sw $s0, 0x1c($sp) +/* B3C62C 800C548C AFBF0024 */ sw $ra, 0x24($sp) +/* B3C630 800C5490 24900074 */ addiu $s0, $a0, 0x74 +/* B3C634 800C5494 AFB10020 */ sw $s1, 0x20($sp) +/* B3C638 800C5498 AFA5002C */ sw $a1, 0x2c($sp) +/* B3C63C 800C549C AFA60030 */ sw $a2, 0x30($sp) +/* B3C640 800C54A0 AFA70034 */ sw $a3, 0x34($sp) +/* B3C644 800C54A4 0C030EE6 */ jal THA_IsCrash +/* B3C648 800C54A8 02002025 */ move $a0, $s0 +/* B3C64C 800C54AC 10400005 */ beqz $v0, .L800C54C4 +/* B3C650 800C54B0 3C048014 */ lui $a0, %hi(D_8014503C) # $a0, 0x8014 +/* B3C654 800C54B4 0C00084C */ jal osSyncPrintf +/* B3C658 800C54B8 2484503C */ addiu $a0, %lo(D_8014503C) # addiu $a0, $a0, 0x503c +/* B3C65C 800C54BC 1000001A */ b .L800C5528 +/* B3C660 800C54C0 00008825 */ move $s1, $zero +.L800C54C4: +/* B3C664 800C54C4 0C030EE2 */ jal THA_GetSize +/* B3C668 800C54C8 02002025 */ move $a0, $s0 +/* B3C66C 800C54CC 8FA5002C */ lw $a1, 0x2c($sp) +/* B3C670 800C54D0 0045082B */ sltu $at, $v0, $a1 +/* B3C674 800C54D4 1020000A */ beqz $at, .L800C5500 +/* B3C678 800C54D8 00000000 */ nop +/* B3C67C 800C54DC 0C030EE2 */ jal THA_GetSize +/* B3C680 800C54E0 02002025 */ move $a0, $s0 +/* B3C684 800C54E4 3C048014 */ lui $a0, %hi(D_80145054) # $a0, 0x8014 +/* B3C688 800C54E8 24845054 */ addiu $a0, %lo(D_80145054) # addiu $a0, $a0, 0x5054 +/* B3C68C 800C54EC 8FA5002C */ lw $a1, 0x2c($sp) +/* B3C690 800C54F0 0C00084C */ jal osSyncPrintf +/* B3C694 800C54F4 00403025 */ move $a2, $v0 +/* B3C698 800C54F8 1000000B */ b .L800C5528 +/* B3C69C 800C54FC 00008825 */ move $s1, $zero +.L800C5500: +/* B3C6A0 800C5500 0C030ED5 */ jal THA_AllocEndAlign16 +/* B3C6A4 800C5504 02002025 */ move $a0, $s0 +/* B3C6A8 800C5508 00408825 */ move $s1, $v0 +/* B3C6AC 800C550C 0C030EE6 */ jal THA_IsCrash +/* B3C6B0 800C5510 02002025 */ move $a0, $s0 +/* B3C6B4 800C5514 10400004 */ beqz $v0, .L800C5528 +/* B3C6B8 800C5518 3C048014 */ lui $a0, %hi(D_8014509C) # $a0, 0x8014 +/* B3C6BC 800C551C 0C00084C */ jal osSyncPrintf +/* B3C6C0 800C5520 2484509C */ addiu $a0, %lo(D_8014509C) # addiu $a0, $a0, 0x509c +/* B3C6C4 800C5524 00008825 */ move $s1, $zero +.L800C5528: +/* B3C6C8 800C5528 12200010 */ beqz $s1, .L800C556C +/* B3C6CC 800C552C 3C048014 */ lui $a0, %hi(D_801450B8) # $a0, 0x8014 +/* B3C6D0 800C5530 0C00084C */ jal osSyncPrintf +/* B3C6D4 800C5534 248450B8 */ addiu $a0, %lo(D_801450B8) # addiu $a0, $a0, 0x50b8 +/* B3C6D8 800C5538 8FA5002C */ lw $a1, 0x2c($sp) +/* B3C6DC 800C553C 8FAE0030 */ lw $t6, 0x30($sp) +/* B3C6E0 800C5540 8FAF0034 */ lw $t7, 0x34($sp) +/* B3C6E4 800C5544 3C048014 */ lui $a0, %hi(D_801450C0) # $a0, 0x8014 +/* B3C6E8 800C5548 248450C0 */ addiu $a0, %lo(D_801450C0) # addiu $a0, $a0, 0x50c0 +/* B3C6EC 800C554C 02203025 */ move $a2, $s1 +/* B3C6F0 800C5550 02253821 */ addu $a3, $s1, $a1 +/* B3C6F4 800C5554 AFAE0010 */ sw $t6, 0x10($sp) +/* B3C6F8 800C5558 0C00084C */ jal osSyncPrintf +/* B3C6FC 800C555C AFAF0014 */ sw $t7, 0x14($sp) +/* B3C700 800C5560 3C048014 */ lui $a0, %hi(D_801450E4) # $a0, 0x8014 +/* B3C704 800C5564 0C00084C */ jal osSyncPrintf +/* B3C708 800C5568 248450E4 */ addiu $a0, %lo(D_801450E4) # addiu $a0, $a0, 0x50e4 +.L800C556C: +/* B3C70C 800C556C 8FBF0024 */ lw $ra, 0x24($sp) +/* B3C710 800C5570 02201025 */ move $v0, $s1 +/* B3C714 800C5574 8FB10020 */ lw $s1, 0x20($sp) +/* B3C718 800C5578 8FB0001C */ lw $s0, 0x1c($sp) +/* B3C71C 800C557C 03E00008 */ jr $ra +/* B3C720 800C5580 27BD0028 */ addiu $sp, $sp, 0x28 + +glabel func_800C5584 +/* B3C724 800C5584 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* B3C728 800C5588 AFBF0014 */ sw $ra, 0x14($sp) +/* B3C72C 800C558C 0C030ED5 */ jal THA_AllocEndAlign16 +/* B3C730 800C5590 24840074 */ addiu $a0, $a0, 0x74 +/* B3C734 800C5594 8FBF0014 */ lw $ra, 0x14($sp) +/* B3C738 800C5598 27BD0018 */ addiu $sp, $sp, 0x18 +/* B3C73C 800C559C 03E00008 */ jr $ra +/* B3C740 800C55A0 00000000 */ nop + +glabel func_800C55A4 +/* B3C744 800C55A4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* B3C748 800C55A8 AFBF0014 */ sw $ra, 0x14($sp) +/* B3C74C 800C55AC 0C030EE2 */ jal THA_GetSize +/* B3C750 800C55B0 24840074 */ addiu $a0, $a0, 0x74 +/* B3C754 800C55B4 8FBF0014 */ lw $ra, 0x14($sp) +/* B3C758 800C55B8 27BD0018 */ addiu $sp, $sp, 0x18 +/* B3C75C 800C55BC 03E00008 */ jr $ra +/* B3C760 800C55C0 00000000 */ nop diff --git a/asm/non_matchings/code/z_play/Gameplay_Draw.s b/asm/non_matchings/code/z_play/Gameplay_Draw.s index 787845a5dc..129c8bb89f 100644 --- a/asm/non_matchings/code/z_play/Gameplay_Draw.s +++ b/asm/non_matchings/code/z_play/Gameplay_Draw.s @@ -321,7 +321,7 @@ glabel Gameplay_Draw /* B3642C 800BF28C 8FAC01D0 */ lw $t4, 0x1d0($sp) /* B36430 800BF290 8C4B0000 */ lw $t3, ($v0) /* B36434 800BF294 27A501D0 */ addiu $a1, $sp, 0x1d0 -/* B36438 800BF298 0C02B570 */ jal func_800AD5C0 +/* B36438 800BF298 0C02B570 */ jal VisMono_Draw /* B3643C 800BF29C AC8B0008 */ sw $t3, 8($a0) /* B36440 800BF2A0 8FAC01D0 */ lw $t4, 0x1d0($sp) .L800BF2A4: diff --git a/asm/non_matchings/code/z_play/Gameplay_Init.s b/asm/non_matchings/code/z_play/Gameplay_Init.s index b52e2b0fb2..f03a9a1408 100644 --- a/asm/non_matchings/code/z_play/Gameplay_Init.s +++ b/asm/non_matchings/code/z_play/Gameplay_Init.s @@ -475,7 +475,7 @@ glabel Gameplay_Init /* B34264 800BD0C4 0C02CD38 */ jal TransitionFade_Start /* B34268 800BD0C8 02002025 */ move $a0, $s0 /* B3426C 800BD0CC 3C048016 */ lui $a0, %hi(D_80161498) # $a0, 0x8016 -/* B34270 800BD0D0 0C02B400 */ jal func_800AD000 +/* B34270 800BD0D0 0C02B400 */ jal VisMono_Init /* B34274 800BD0D4 24841498 */ addiu $a0, %lo(D_80161498) # addiu $a0, $a0, 0x1498 /* B34278 800BD0D8 3C018016 */ lui $at, %hi(D_801614B0+3) # $at, 0x8016 /* B3427C 800BD0DC A02014B3 */ sb $zero, %lo(D_801614B0+3)($at) diff --git a/asm/non_matchings/code/z_vismono/func_800AD000.s b/asm/non_matchings/code/z_vismono/func_800AD000.s deleted file mode 100644 index f24b48c427..0000000000 --- a/asm/non_matchings/code/z_vismono/func_800AD000.s +++ /dev/null @@ -1,23 +0,0 @@ -glabel func_800AD000 -/* B241A0 800AD000 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* B241A4 800AD004 AFBF0014 */ sw $ra, 0x14($sp) -/* B241A8 800AD008 AFA40018 */ sw $a0, 0x18($sp) -/* B241AC 800AD00C 0C001114 */ jal bzero -/* B241B0 800AD010 24050018 */ li $a1, 24 -/* B241B4 800AD014 8FA40018 */ lw $a0, 0x18($sp) -/* B241B8 800AD018 240200FF */ li $v0, 255 -/* B241BC 800AD01C AC800000 */ sw $zero, ($a0) -/* B241C0 800AD020 AC800004 */ sw $zero, 4($a0) -/* B241C4 800AD024 A0820008 */ sb $v0, 8($a0) -/* B241C8 800AD028 A0820009 */ sb $v0, 9($a0) -/* B241CC 800AD02C A082000A */ sb $v0, 0xa($a0) -/* B241D0 800AD030 A082000B */ sb $v0, 0xb($a0) -/* B241D4 800AD034 A080000C */ sb $zero, 0xc($a0) -/* B241D8 800AD038 A080000D */ sb $zero, 0xd($a0) -/* B241DC 800AD03C A080000E */ sb $zero, 0xe($a0) -/* B241E0 800AD040 A080000F */ sb $zero, 0xf($a0) -/* B241E4 800AD044 8FBF0014 */ lw $ra, 0x14($sp) -/* B241E8 800AD048 27BD0018 */ addiu $sp, $sp, 0x18 -/* B241EC 800AD04C 03E00008 */ jr $ra -/* B241F0 800AD050 00000000 */ nop - diff --git a/asm/non_matchings/code/z_vismono/func_800AD054.s b/asm/non_matchings/code/z_vismono/func_800AD054.s deleted file mode 100644 index 45e16ffc63..0000000000 --- a/asm/non_matchings/code/z_vismono/func_800AD054.s +++ /dev/null @@ -1,19 +0,0 @@ -.rdata -glabel D_801417C0 - .asciz "../z_vismono.c" - .balign 4 - -.text -glabel func_800AD054 -/* B241F4 800AD054 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* B241F8 800AD058 AFBF0014 */ sw $ra, 0x14($sp) -/* B241FC 800AD05C 3C058014 */ lui $a1, %hi(D_801417C0) # $a1, 0x8014 -/* B24200 800AD060 24A517C0 */ addiu $a1, %lo(D_801417C0) # addiu $a1, $a1, 0x17c0 -/* B24204 800AD064 8C840014 */ lw $a0, 0x14($a0) -/* B24208 800AD068 0C03F5ED */ jal SystemArena_FreeDebug -/* B2420C 800AD06C 24060089 */ li $a2, 137 -/* B24210 800AD070 8FBF0014 */ lw $ra, 0x14($sp) -/* B24214 800AD074 27BD0018 */ addiu $sp, $sp, 0x18 -/* B24218 800AD078 03E00008 */ jr $ra -/* B2421C 800AD07C 00000000 */ nop - diff --git a/asm/non_matchings/code/z_vismono/func_800AD080.s b/asm/non_matchings/code/z_vismono/func_800AD080.s deleted file mode 100644 index 3c3758b94d..0000000000 --- a/asm/non_matchings/code/z_vismono/func_800AD080.s +++ /dev/null @@ -1,216 +0,0 @@ -glabel func_800AD080 -/* B24220 800AD080 AFA40000 */ sw $a0, ($sp) -/* B24224 800AD084 00001025 */ move $v0, $zero -/* B24228 800AD088 00A01825 */ move $v1, $a1 -/* B2422C 800AD08C 24090100 */ li $t1, 256 -/* B24230 800AD090 240800D9 */ li $t0, 217 -/* B24234 800AD094 240700FF */ li $a3, 255 -/* B24238 800AD098 000270C3 */ sra $t6, $v0, 3 -.L800AD09C: -/* B2423C 800AD09C 0002C880 */ sll $t9, $v0, 2 -/* B24240 800AD0A0 332A001F */ andi $t2, $t9, 0x1f -/* B24244 800AD0A4 31CF001F */ andi $t7, $t6, 0x1f -/* B24248 800AD0A8 000FC040 */ sll $t8, $t7, 1 -/* B2424C 800AD0AC 000A5880 */ sll $t3, $t2, 2 -/* B24250 800AD0B0 030B6021 */ addu $t4, $t8, $t3 -/* B24254 800AD0B4 01870019 */ multu $t4, $a3 -/* B24258 800AD0B8 0002C983 */ sra $t9, $v0, 6 -/* B2425C 800AD0BC 332A001F */ andi $t2, $t9, 0x1f -/* B24260 800AD0C0 00025843 */ sra $t3, $v0, 1 -/* B24264 800AD0C4 316C001F */ andi $t4, $t3, 0x1f -/* B24268 800AD0C8 000AC080 */ sll $t8, $t2, 2 -/* B2426C 800AD0CC 24440001 */ addiu $a0, $v0, 1 -/* B24270 800AD0D0 000458C3 */ sra $t3, $a0, 3 -/* B24274 800AD0D4 24450002 */ addiu $a1, $v0, 2 -/* B24278 800AD0D8 24460003 */ addiu $a2, $v0, 3 -/* B2427C 800AD0DC 00006812 */ mflo $t5 -/* B24280 800AD0E0 24420004 */ addiu $v0, $v0, 4 -/* B24284 800AD0E4 24630008 */ addiu $v1, $v1, 8 -/* B24288 800AD0E8 01A8001A */ div $zero, $t5, $t0 -/* B2428C 800AD0EC 00007012 */ mflo $t6 -/* B24290 800AD0F0 000E7A00 */ sll $t7, $t6, 8 -/* B24294 800AD0F4 15000002 */ bnez $t0, .L800AD100 -/* B24298 800AD0F8 00000000 */ nop -/* B2429C 800AD0FC 0007000D */ break 7 -.L800AD100: -/* B242A0 800AD100 2401FFFF */ li $at, -1 -/* B242A4 800AD104 15010004 */ bne $t0, $at, .L800AD118 -/* B242A8 800AD108 3C018000 */ lui $at, 0x8000 -/* B242AC 800AD10C 15A10002 */ bne $t5, $at, .L800AD118 -/* B242B0 800AD110 00000000 */ nop -/* B242B4 800AD114 0006000D */ break 6 -.L800AD118: -/* B242B8 800AD118 030C6821 */ addu $t5, $t8, $t4 -/* B242BC 800AD11C 01A70019 */ multu $t5, $a3 -/* B242C0 800AD120 00046880 */ sll $t5, $a0, 2 -/* B242C4 800AD124 3178001F */ andi $t8, $t3, 0x1f -/* B242C8 800AD128 00186040 */ sll $t4, $t8, 1 -/* B242CC 800AD12C 00007012 */ mflo $t6 -/* B242D0 800AD130 00000000 */ nop -/* B242D4 800AD134 00000000 */ nop -/* B242D8 800AD138 01C8001A */ div $zero, $t6, $t0 -/* B242DC 800AD13C 15000002 */ bnez $t0, .L800AD148 -/* B242E0 800AD140 00000000 */ nop -/* B242E4 800AD144 0007000D */ break 7 -.L800AD148: -/* B242E8 800AD148 2401FFFF */ li $at, -1 -/* B242EC 800AD14C 15010004 */ bne $t0, $at, .L800AD160 -/* B242F0 800AD150 3C018000 */ lui $at, 0x8000 -/* B242F4 800AD154 15C10002 */ bne $t6, $at, .L800AD160 -/* B242F8 800AD158 00000000 */ nop -/* B242FC 800AD15C 0006000D */ break 6 -.L800AD160: -/* B24300 800AD160 0000C812 */ mflo $t9 -/* B24304 800AD164 31AE001F */ andi $t6, $t5, 0x1f -/* B24308 800AD168 01F95025 */ or $t2, $t7, $t9 -/* B2430C 800AD16C 000E7880 */ sll $t7, $t6, 2 -/* B24310 800AD170 018FC821 */ addu $t9, $t4, $t7 -/* B24314 800AD174 03270019 */ multu $t9, $a3 -/* B24318 800AD178 A46AFFF8 */ sh $t2, -8($v1) -/* B2431C 800AD17C 00046983 */ sra $t5, $a0, 6 -/* B24320 800AD180 31AE001F */ andi $t6, $t5, 0x1f -/* B24324 800AD184 00047843 */ sra $t7, $a0, 1 -/* B24328 800AD188 31F9001F */ andi $t9, $t7, 0x1f -/* B2432C 800AD18C 000E6080 */ sll $t4, $t6, 2 -/* B24330 800AD190 000578C3 */ sra $t7, $a1, 3 -/* B24334 800AD194 00005012 */ mflo $t2 -/* B24338 800AD198 00000000 */ nop -/* B2433C 800AD19C 00000000 */ nop -/* B24340 800AD1A0 0148001A */ div $zero, $t2, $t0 -/* B24344 800AD1A4 00005812 */ mflo $t3 -/* B24348 800AD1A8 000BC200 */ sll $t8, $t3, 8 -/* B2434C 800AD1AC 15000002 */ bnez $t0, .L800AD1B8 -/* B24350 800AD1B0 00000000 */ nop -/* B24354 800AD1B4 0007000D */ break 7 -.L800AD1B8: -/* B24358 800AD1B8 2401FFFF */ li $at, -1 -/* B2435C 800AD1BC 15010004 */ bne $t0, $at, .L800AD1D0 -/* B24360 800AD1C0 3C018000 */ lui $at, 0x8000 -/* B24364 800AD1C4 15410002 */ bne $t2, $at, .L800AD1D0 -/* B24368 800AD1C8 00000000 */ nop -/* B2436C 800AD1CC 0006000D */ break 6 -.L800AD1D0: -/* B24370 800AD1D0 01995021 */ addu $t2, $t4, $t9 -/* B24374 800AD1D4 01470019 */ multu $t2, $a3 -/* B24378 800AD1D8 00055080 */ sll $t2, $a1, 2 -/* B2437C 800AD1DC 31EC001F */ andi $t4, $t7, 0x1f -/* B24380 800AD1E0 000CC840 */ sll $t9, $t4, 1 -/* B24384 800AD1E4 00005812 */ mflo $t3 -/* B24388 800AD1E8 00000000 */ nop -/* B2438C 800AD1EC 00000000 */ nop -/* B24390 800AD1F0 0168001A */ div $zero, $t3, $t0 -/* B24394 800AD1F4 15000002 */ bnez $t0, .L800AD200 -/* B24398 800AD1F8 00000000 */ nop -/* B2439C 800AD1FC 0007000D */ break 7 -.L800AD200: -/* B243A0 800AD200 2401FFFF */ li $at, -1 -/* B243A4 800AD204 15010004 */ bne $t0, $at, .L800AD218 -/* B243A8 800AD208 3C018000 */ lui $at, 0x8000 -/* B243AC 800AD20C 15610002 */ bne $t3, $at, .L800AD218 -/* B243B0 800AD210 00000000 */ nop -/* B243B4 800AD214 0006000D */ break 6 -.L800AD218: -/* B243B8 800AD218 00006812 */ mflo $t5 -/* B243BC 800AD21C 030D7025 */ or $t6, $t8, $t5 -/* B243C0 800AD220 314B001F */ andi $t3, $t2, 0x1f -/* B243C4 800AD224 000BC080 */ sll $t8, $t3, 2 -/* B243C8 800AD228 03386821 */ addu $t5, $t9, $t8 -/* B243CC 800AD22C 01A70019 */ multu $t5, $a3 -/* B243D0 800AD230 A46EFFFA */ sh $t6, -6($v1) -/* B243D4 800AD234 00055183 */ sra $t2, $a1, 6 -/* B243D8 800AD238 314B001F */ andi $t3, $t2, 0x1f -/* B243DC 800AD23C 0005C043 */ sra $t8, $a1, 1 -/* B243E0 800AD240 330D001F */ andi $t5, $t8, 0x1f -/* B243E4 800AD244 000BC880 */ sll $t9, $t3, 2 -/* B243E8 800AD248 0006C0C3 */ sra $t8, $a2, 3 -/* B243EC 800AD24C 00007012 */ mflo $t6 -/* B243F0 800AD250 00000000 */ nop -/* B243F4 800AD254 00000000 */ nop -/* B243F8 800AD258 01C8001A */ div $zero, $t6, $t0 -/* B243FC 800AD25C 00007812 */ mflo $t7 -/* B24400 800AD260 000F6200 */ sll $t4, $t7, 8 -/* B24404 800AD264 15000002 */ bnez $t0, .L800AD270 -/* B24408 800AD268 00000000 */ nop -/* B2440C 800AD26C 0007000D */ break 7 -.L800AD270: -/* B24410 800AD270 2401FFFF */ li $at, -1 -/* B24414 800AD274 15010004 */ bne $t0, $at, .L800AD288 -/* B24418 800AD278 3C018000 */ lui $at, 0x8000 -/* B2441C 800AD27C 15C10002 */ bne $t6, $at, .L800AD288 -/* B24420 800AD280 00000000 */ nop -/* B24424 800AD284 0006000D */ break 6 -.L800AD288: -/* B24428 800AD288 032D7021 */ addu $t6, $t9, $t5 -/* B2442C 800AD28C 01C70019 */ multu $t6, $a3 -/* B24430 800AD290 00067080 */ sll $t6, $a2, 2 -/* B24434 800AD294 3319001F */ andi $t9, $t8, 0x1f -/* B24438 800AD298 00196840 */ sll $t5, $t9, 1 -/* B2443C 800AD29C 00007812 */ mflo $t7 -/* B24440 800AD2A0 00000000 */ nop -/* B24444 800AD2A4 00000000 */ nop -/* B24448 800AD2A8 01E8001A */ div $zero, $t7, $t0 -/* B2444C 800AD2AC 15000002 */ bnez $t0, .L800AD2B8 -/* B24450 800AD2B0 00000000 */ nop -/* B24454 800AD2B4 0007000D */ break 7 -.L800AD2B8: -/* B24458 800AD2B8 2401FFFF */ li $at, -1 -/* B2445C 800AD2BC 15010004 */ bne $t0, $at, .L800AD2D0 -/* B24460 800AD2C0 3C018000 */ lui $at, 0x8000 -/* B24464 800AD2C4 15E10002 */ bne $t7, $at, .L800AD2D0 -/* B24468 800AD2C8 00000000 */ nop -/* B2446C 800AD2CC 0006000D */ break 6 -.L800AD2D0: -/* B24470 800AD2D0 00005012 */ mflo $t2 -/* B24474 800AD2D4 018A5825 */ or $t3, $t4, $t2 -/* B24478 800AD2D8 31CF001F */ andi $t7, $t6, 0x1f -/* B2447C 800AD2DC 000F6080 */ sll $t4, $t7, 2 -/* B24480 800AD2E0 01AC5021 */ addu $t2, $t5, $t4 -/* B24484 800AD2E4 01470019 */ multu $t2, $a3 -/* B24488 800AD2E8 A46BFFFC */ sh $t3, -4($v1) -/* B2448C 800AD2EC 00067183 */ sra $t6, $a2, 6 -/* B24490 800AD2F0 31CF001F */ andi $t7, $t6, 0x1f -/* B24494 800AD2F4 00066043 */ sra $t4, $a2, 1 -/* B24498 800AD2F8 318A001F */ andi $t2, $t4, 0x1f -/* B2449C 800AD2FC 000F6880 */ sll $t5, $t7, 2 -/* B244A0 800AD300 00005812 */ mflo $t3 -/* B244A4 800AD304 00000000 */ nop -/* B244A8 800AD308 00000000 */ nop -/* B244AC 800AD30C 0168001A */ div $zero, $t3, $t0 -/* B244B0 800AD310 0000C012 */ mflo $t8 -/* B244B4 800AD314 0018CA00 */ sll $t9, $t8, 8 -/* B244B8 800AD318 15000002 */ bnez $t0, .L800AD324 -/* B244BC 800AD31C 00000000 */ nop -/* B244C0 800AD320 0007000D */ break 7 -.L800AD324: -/* B244C4 800AD324 2401FFFF */ li $at, -1 -/* B244C8 800AD328 15010004 */ bne $t0, $at, .L800AD33C -/* B244CC 800AD32C 3C018000 */ lui $at, 0x8000 -/* B244D0 800AD330 15610002 */ bne $t3, $at, .L800AD33C -/* B244D4 800AD334 00000000 */ nop -/* B244D8 800AD338 0006000D */ break 6 -.L800AD33C: -/* B244DC 800AD33C 01AA5821 */ addu $t3, $t5, $t2 -/* B244E0 800AD340 01670019 */ multu $t3, $a3 -/* B244E4 800AD344 0000C012 */ mflo $t8 -/* B244E8 800AD348 00000000 */ nop -/* B244EC 800AD34C 00000000 */ nop -/* B244F0 800AD350 0308001A */ div $zero, $t8, $t0 -/* B244F4 800AD354 00007012 */ mflo $t6 -/* B244F8 800AD358 032E7825 */ or $t7, $t9, $t6 -/* B244FC 800AD35C 15000002 */ bnez $t0, .L800AD368 -/* B24500 800AD360 00000000 */ nop -/* B24504 800AD364 0007000D */ break 7 -.L800AD368: -/* B24508 800AD368 2401FFFF */ li $at, -1 -/* B2450C 800AD36C 15010004 */ bne $t0, $at, .L800AD380 -/* B24510 800AD370 3C018000 */ lui $at, 0x8000 -/* B24514 800AD374 17010002 */ bne $t8, $at, .L800AD380 -/* B24518 800AD378 00000000 */ nop -/* B2451C 800AD37C 0006000D */ break 6 -.L800AD380: -/* B24520 800AD380 A46FFFFE */ sh $t7, -2($v1) -/* B24524 800AD384 5449FF45 */ bnel $v0, $t1, .L800AD09C -/* B24528 800AD388 000270C3 */ sra $t6, $v0, 3 -/* B2452C 800AD38C 03E00008 */ jr $ra -/* B24530 800AD390 00000000 */ nop - diff --git a/asm/non_matchings/code/z_vismono/func_800AD394.s b/asm/non_matchings/code/z_vismono/func_800AD394.s deleted file mode 100644 index a3a0cf52c3..0000000000 --- a/asm/non_matchings/code/z_vismono/func_800AD394.s +++ /dev/null @@ -1,142 +0,0 @@ -glabel func_800AD394 -/* B24534 800AD394 00A01025 */ move $v0, $a1 -/* B24538 800AD398 AFA40000 */ sw $a0, ($sp) -/* B2453C 800AD39C 3C0EE700 */ lui $t6, 0xe700 -/* B24540 800AD3A0 AC4E0000 */ sw $t6, ($v0) -/* B24544 800AD3A4 AC400004 */ sw $zero, 4($v0) -/* B24548 800AD3A8 24A50008 */ addiu $a1, $a1, 8 -/* B2454C 800AD3AC 00A01025 */ move $v0, $a1 -/* B24550 800AD3B0 3C0FEF90 */ lui $t7, (0xEF90CCF0 >> 16) # lui $t7, 0xef90 -/* B24554 800AD3B4 3C180C18 */ lui $t8, (0x0C184344 >> 16) # lui $t8, 0xc18 -/* B24558 800AD3B8 37184344 */ ori $t8, (0x0C184344 & 0xFFFF) # ori $t8, $t8, 0x4344 -/* B2455C 800AD3BC 35EFCCF0 */ ori $t7, (0xEF90CCF0 & 0xFFFF) # ori $t7, $t7, 0xccf0 -/* B24560 800AD3C0 AC4F0000 */ sw $t7, ($v0) -/* B24564 800AD3C4 AC580004 */ sw $t8, 4($v0) -/* B24568 800AD3C8 24A50008 */ addiu $a1, $a1, 8 -/* B2456C 800AD3CC 00A01025 */ move $v0, $a1 -/* B24570 800AD3D0 3C0EF5FC */ lui $t6, (0xF5FCFD7B >> 16) # lui $t6, 0xf5fc -/* B24574 800AD3D4 3C19FC64 */ lui $t9, (0xFC64FE60 >> 16) # lui $t9, 0xfc64 -/* B24578 800AD3D8 3C070F00 */ lui $a3, 0xf00 -/* B2457C 800AD3DC 3739FE60 */ ori $t9, (0xFC64FE60 & 0xFFFF) # ori $t9, $t9, 0xfe60 -/* B24580 800AD3E0 35CEFD7B */ ori $t6, (0xF5FCFD7B & 0xFFFF) # ori $t6, $t6, 0xfd7b -/* B24584 800AD3E4 3C0B0708 */ lui $t3, (0x07080200 >> 16) # lui $t3, 0x708 -/* B24588 800AD3E8 3C080008 */ lui $t0, (0x00080200 >> 16) # lui $t0, 8 -/* B2458C 800AD3EC 3C06F548 */ lui $a2, (0xF548A000 >> 16) # lui $a2, 0xf548 -/* B24590 800AD3F0 24E70000 */ addiu $a3, $a3, 0 -/* B24594 800AD3F4 AC4E0004 */ sw $t6, 4($v0) -/* B24598 800AD3F8 AC590000 */ sw $t9, ($v0) -/* B2459C 800AD3FC 24A50008 */ addiu $a1, $a1, 8 -/* B245A0 800AD400 34C6A000 */ ori $a2, (0xF548A000 & 0xFFFF) # ori $a2, $a2, 0xa000 -/* B245A4 800AD404 35080200 */ ori $t0, (0x00080200 & 0xFFFF) # ori $t0, $t0, 0x200 -/* B245A8 800AD408 356B0200 */ ori $t3, (0x07080200 & 0xFFFF) # ori $t3, $t3, 0x200 -/* B245AC 800AD40C 00002025 */ move $a0, $zero -/* B245B0 800AD410 3C0DF300 */ lui $t5, 0xf300 -/* B245B4 800AD414 3C0CE600 */ lui $t4, 0xe600 -/* B245B8 800AD418 3C0AF550 */ lui $t2, 0xf550 -/* B245BC 800AD41C 3C09FD50 */ lui $t1, 0xfd50 -.L800AD420: -/* B245C0 800AD420 00A01025 */ move $v0, $a1 -/* B245C4 800AD424 AC490000 */ sw $t1, ($v0) -/* B245C8 800AD428 AC470004 */ sw $a3, 4($v0) -/* B245CC 800AD42C 24A50008 */ addiu $a1, $a1, 8 -/* B245D0 800AD430 00A01025 */ move $v0, $a1 -/* B245D4 800AD434 AC4A0000 */ sw $t2, ($v0) -/* B245D8 800AD438 AC4B0004 */ sw $t3, 4($v0) -/* B245DC 800AD43C 24A50008 */ addiu $a1, $a1, 8 -/* B245E0 800AD440 00A01025 */ move $v0, $a1 -/* B245E4 800AD444 240303BF */ li $v1, 959 -/* B245E8 800AD448 306F0FFF */ andi $t7, $v1, 0xfff -/* B245EC 800AD44C AC4C0000 */ sw $t4, ($v0) -/* B245F0 800AD450 AC400004 */ sw $zero, 4($v0) -/* B245F4 800AD454 24A50008 */ addiu $a1, $a1, 8 -/* B245F8 800AD458 00A01025 */ move $v0, $a1 -/* B245FC 800AD45C 000FC300 */ sll $t8, $t7, 0xc -/* B24600 800AD460 3C010700 */ lui $at, 0x700 -/* B24604 800AD464 0301C825 */ or $t9, $t8, $at -/* B24608 800AD468 372E001A */ ori $t6, $t9, 0x1a -/* B2460C 800AD46C AC4E0004 */ sw $t6, 4($v0) -/* B24610 800AD470 AC4D0000 */ sw $t5, ($v0) -/* B24614 800AD474 24A50008 */ addiu $a1, $a1, 8 -/* B24618 800AD478 00A01025 */ move $v0, $a1 -/* B2461C 800AD47C 3C0FE700 */ lui $t7, 0xe700 -/* B24620 800AD480 AC4F0000 */ sw $t7, ($v0) -/* B24624 800AD484 AC400004 */ sw $zero, 4($v0) -/* B24628 800AD488 24A50008 */ addiu $a1, $a1, 8 -/* B2462C 800AD48C 00A01025 */ move $v0, $a1 -/* B24630 800AD490 AC460000 */ sw $a2, ($v0) -/* B24634 800AD494 AC480004 */ sw $t0, 4($v0) -/* B24638 800AD498 24A50008 */ addiu $a1, $a1, 8 -/* B2463C 800AD49C 00A01025 */ move $v0, $a1 -/* B24640 800AD4A0 3C19009F */ lui $t9, (0x009FC008 >> 16) # lui $t9, 0x9f -/* B24644 800AD4A4 3739C008 */ ori $t9, (0x009FC008 & 0xFFFF) # ori $t9, $t9, 0xc008 -/* B24648 800AD4A8 3C18F200 */ lui $t8, 0xf200 -/* B2464C 800AD4AC AC580000 */ sw $t8, ($v0) -/* B24650 800AD4B0 AC590004 */ sw $t9, 4($v0) -/* B24654 800AD4B4 24A50008 */ addiu $a1, $a1, 8 -/* B24658 800AD4B8 00A01025 */ move $v0, $a1 -/* B2465C 800AD4BC AC460000 */ sw $a2, ($v0) -/* B24660 800AD4C0 AC480004 */ sw $t0, 4($v0) -/* B24664 800AD4C4 24A50008 */ addiu $a1, $a1, 8 -/* B24668 800AD4C8 00A01025 */ move $v0, $a1 -/* B2466C 800AD4CC 3C0F00A0 */ lui $t7, (0x00A04008 >> 16) # lui $t7, 0xa0 -/* B24670 800AD4D0 3C0EF200 */ lui $t6, (0xF2008000 >> 16) # lui $t6, 0xf200 -/* B24674 800AD4D4 35CE8000 */ ori $t6, (0xF2008000 & 0xFFFF) # ori $t6, $t6, 0x8000 -/* B24678 800AD4D8 35EF4008 */ ori $t7, (0x00A04008 & 0xFFFF) # ori $t7, $t7, 0x4008 -/* B2467C 800AD4DC AC4F0004 */ sw $t7, 4($v0) -/* B24680 800AD4E0 AC4E0000 */ sw $t6, ($v0) -/* B24684 800AD4E4 24A50008 */ addiu $a1, $a1, 8 -/* B24688 800AD4E8 00A01025 */ move $v0, $a1 -/* B2468C 800AD4EC 3C180118 */ lui $t8, (0x01180200 >> 16) # lui $t8, 0x118 -/* B24690 800AD4F0 37180200 */ ori $t8, (0x01180200 & 0xFFFF) # ori $t8, $t8, 0x200 -/* B24694 800AD4F4 AC580004 */ sw $t8, 4($v0) -/* B24698 800AD4F8 AC460000 */ sw $a2, ($v0) -/* B2469C 800AD4FC 24A50008 */ addiu $a1, $a1, 8 -/* B246A0 800AD500 00A01025 */ move $v0, $a1 -/* B246A4 800AD504 3C0E01A0 */ lui $t6, (0x01A00008 >> 16) # lui $t6, 0x1a0 -/* B246A8 800AD508 3C19F200 */ lui $t9, (0xF2004000 >> 16) # lui $t9, 0xf200 -/* B246AC 800AD50C 37394000 */ ori $t9, (0xF2004000 & 0xFFFF) # ori $t9, $t9, 0x4000 -/* B246B0 800AD510 35CE0008 */ ori $t6, (0x01A00008 & 0xFFFF) # ori $t6, $t6, 8 -/* B246B4 800AD514 24830003 */ addiu $v1, $a0, 3 -/* B246B8 800AD518 AC4E0004 */ sw $t6, 4($v0) -/* B246BC 800AD51C AC590000 */ sw $t9, ($v0) -/* B246C0 800AD520 24A50008 */ addiu $a1, $a1, 8 -/* B246C4 800AD524 00037880 */ sll $t7, $v1, 2 -/* B246C8 800AD528 31F80FFF */ andi $t8, $t7, 0xfff -/* B246CC 800AD52C 00A01025 */ move $v0, $a1 -/* B246D0 800AD530 00047080 */ sll $t6, $a0, 2 -/* B246D4 800AD534 3C01E450 */ lui $at, 0xe450 -/* B246D8 800AD538 0301C825 */ or $t9, $t8, $at -/* B246DC 800AD53C 31CF0FFF */ andi $t7, $t6, 0xfff -/* B246E0 800AD540 AC4F0004 */ sw $t7, 4($v0) -/* B246E4 800AD544 AC590000 */ sw $t9, ($v0) -/* B246E8 800AD548 24A50008 */ addiu $a1, $a1, 8 -/* B246EC 800AD54C 00A01025 */ move $v0, $a1 -/* B246F0 800AD550 3C190040 */ lui $t9, 0x40 -/* B246F4 800AD554 3C18E100 */ lui $t8, 0xe100 -/* B246F8 800AD558 AC580000 */ sw $t8, ($v0) -/* B246FC 800AD55C AC590004 */ sw $t9, 4($v0) -/* B24700 800AD560 24A50008 */ addiu $a1, $a1, 8 -/* B24704 800AD564 00A01025 */ move $v0, $a1 -/* B24708 800AD568 3C0F0800 */ lui $t7, (0x08000400 >> 16) # lui $t7, 0x800 -/* B2470C 800AD56C 286100EE */ slti $at, $v1, 0xee -/* B24710 800AD570 35EF0400 */ ori $t7, (0x08000400 & 0xFFFF) # ori $t7, $t7, 0x400 -/* B24714 800AD574 3C0EF100 */ lui $t6, 0xf100 -/* B24718 800AD578 00602025 */ move $a0, $v1 -/* B2471C 800AD57C AC4E0000 */ sw $t6, ($v0) -/* B24720 800AD580 AC4F0004 */ sw $t7, 4($v0) -/* B24724 800AD584 24A50008 */ addiu $a1, $a1, 8 -/* B24728 800AD588 1420FFA5 */ bnez $at, .L800AD420 -/* B2472C 800AD58C 24E70780 */ addiu $a3, $a3, 0x780 -/* B24730 800AD590 00A01025 */ move $v0, $a1 -/* B24734 800AD594 3C18E700 */ lui $t8, 0xe700 -/* B24738 800AD598 AC580000 */ sw $t8, ($v0) -/* B2473C 800AD59C AC400004 */ sw $zero, 4($v0) -/* B24740 800AD5A0 24A50008 */ addiu $a1, $a1, 8 -/* B24744 800AD5A4 00A01025 */ move $v0, $a1 -/* B24748 800AD5A8 3C19DF00 */ lui $t9, 0xdf00 -/* B2474C 800AD5AC AC590000 */ sw $t9, ($v0) -/* B24750 800AD5B0 AC400004 */ sw $zero, 4($v0) -/* B24754 800AD5B4 24A50008 */ addiu $a1, $a1, 8 -/* B24758 800AD5B8 03E00008 */ jr $ra -/* B2475C 800AD5BC 00A01025 */ move $v0, $a1 - diff --git a/asm/non_matchings/code/z_vismono/func_800AD5C0.s b/asm/non_matchings/code/z_vismono/func_800AD5C0.s deleted file mode 100644 index 153daad0a5..0000000000 --- a/asm/non_matchings/code/z_vismono/func_800AD5C0.s +++ /dev/null @@ -1,222 +0,0 @@ -.rdata -glabel D_801417D0 - .asciz "../z_vismono.c" - .balign 4 - -glabel D_801417E0 - .asciz "glistp_end = %08x\n" - .balign 4 - -glabel D_801417F4 - .asciz "../z_vismono.c" - .balign 4 - -glabel D_80141804 - .asciz "mono_dl = %08x\n" - .balign 4 - -glabel D_80141814 - .asciz "../z_vismono.c" - .balign 4 - -glabel D_80141824 - .asciz "mono_dl + (1+3+1+1+80*(7+2+2+3)+1) = %08x\n" - .balign 4 - -glabel D_80141850 - .asciz "../z_vismono.c" - .balign 4 - -glabel D_80141860 - .asciz "(1+3+1+1+80*(7+2+2+3)+1) = %08x\n" - .balign 4 - -glabel D_80141884 - .asciz "glistp_end <= mono_dl + DLSIZE" - .balign 4 - -glabel D_801418A4 - .asciz "../z_vismono.c" - .balign 4 - -.text -glabel func_800AD5C0 -/* B24760 800AD5C0 27BDFFA0 */ addiu $sp, $sp, -0x60 -/* B24764 800AD5C4 AFBF0014 */ sw $ra, 0x14($sp) -/* B24768 800AD5C8 AFA40060 */ sw $a0, 0x60($sp) -/* B2476C 800AD5CC AFA50064 */ sw $a1, 0x64($sp) -/* B24770 800AD5D0 8CAF0000 */ lw $t7, ($a1) -/* B24774 800AD5D4 AFAF005C */ sw $t7, 0x5c($sp) -/* B24778 800AD5D8 8C820010 */ lw $v0, 0x10($a0) -/* B2477C 800AD5DC 27A4005C */ addiu $a0, $sp, 0x5c -/* B24780 800AD5E0 10400003 */ beqz $v0, .L800AD5F0 -/* B24784 800AD5E4 00000000 */ nop -/* B24788 800AD5E8 10000007 */ b .L800AD608 -/* B2478C 800AD5EC AFA20058 */ sw $v0, 0x58($sp) -.L800AD5F0: -/* B24790 800AD5F0 0C031B0F */ jal Graph_DlistAlloc -/* B24794 800AD5F4 24050200 */ li $a1, 512 -/* B24798 800AD5F8 AFA20058 */ sw $v0, 0x58($sp) -/* B2479C 800AD5FC 8FA40060 */ lw $a0, 0x60($sp) -/* B247A0 800AD600 0C02B420 */ jal func_800AD080 -/* B247A4 800AD604 00402825 */ move $a1, $v0 -.L800AD608: -/* B247A8 800AD608 8FB90060 */ lw $t9, 0x60($sp) -/* B247AC 800AD60C 27A4005C */ addiu $a0, $sp, 0x5c -/* B247B0 800AD610 8F220014 */ lw $v0, 0x14($t9) -/* B247B4 800AD614 10400003 */ beqz $v0, .L800AD624 -/* B247B8 800AD618 00000000 */ nop -/* B247BC 800AD61C 10000037 */ b .L800AD6FC -/* B247C0 800AD620 AFA20054 */ sw $v0, 0x54($sp) -.L800AD624: -/* B247C4 800AD624 0C031B0F */ jal Graph_DlistAlloc -/* B247C8 800AD628 24052338 */ li $a1, 9016 -/* B247CC 800AD62C AFA20054 */ sw $v0, 0x54($sp) -/* B247D0 800AD630 8FA40060 */ lw $a0, 0x60($sp) -/* B247D4 800AD634 0C02B4E5 */ jal func_800AD394 -/* B247D8 800AD638 00402825 */ move $a1, $v0 -/* B247DC 800AD63C 8FA80054 */ lw $t0, 0x54($sp) -/* B247E0 800AD640 AFA20050 */ sw $v0, 0x50($sp) -/* B247E4 800AD644 3C048014 */ lui $a0, %hi(D_801417D0) # $a0, 0x8014 -/* B247E8 800AD648 25092338 */ addiu $t1, $t0, 0x2338 -/* B247EC 800AD64C 0122082B */ sltu $at, $t1, $v0 -/* B247F0 800AD650 10200020 */ beqz $at, .L800AD6D4 -/* B247F4 800AD654 AFA9001C */ sw $t1, 0x1c($sp) -/* B247F8 800AD658 248417D0 */ addiu $a0, %lo(D_801417D0) # addiu $a0, $a0, 0x17d0 -/* B247FC 800AD65C 0C000B84 */ jal LogUtils_LogThreadId -/* B24800 800AD660 24050101 */ li $a1, 257 -/* B24804 800AD664 3C048014 */ lui $a0, %hi(D_801417E0) # $a0, 0x8014 -/* B24808 800AD668 248417E0 */ addiu $a0, %lo(D_801417E0) # addiu $a0, $a0, 0x17e0 -/* B2480C 800AD66C 0C00084C */ jal osSyncPrintf -/* B24810 800AD670 8FA50050 */ lw $a1, 0x50($sp) -/* B24814 800AD674 3C048014 */ lui $a0, %hi(D_801417F4) # $a0, 0x8014 -/* B24818 800AD678 248417F4 */ addiu $a0, %lo(D_801417F4) # addiu $a0, $a0, 0x17f4 -/* B2481C 800AD67C 0C000B84 */ jal LogUtils_LogThreadId -/* B24820 800AD680 24050102 */ li $a1, 258 -/* B24824 800AD684 3C048014 */ lui $a0, %hi(D_80141804) # $a0, 0x8014 -/* B24828 800AD688 24841804 */ addiu $a0, %lo(D_80141804) # addiu $a0, $a0, 0x1804 -/* B2482C 800AD68C 0C00084C */ jal osSyncPrintf -/* B24830 800AD690 8FA50054 */ lw $a1, 0x54($sp) -/* B24834 800AD694 3C048014 */ lui $a0, %hi(D_80141814) # $a0, 0x8014 -/* B24838 800AD698 24841814 */ addiu $a0, %lo(D_80141814) # addiu $a0, $a0, 0x1814 -/* B2483C 800AD69C 0C000B84 */ jal LogUtils_LogThreadId -/* B24840 800AD6A0 24050103 */ li $a1, 259 -/* B24844 800AD6A4 3C048014 */ lui $a0, %hi(D_80141824) # $a0, 0x8014 -/* B24848 800AD6A8 24841824 */ addiu $a0, %lo(D_80141824) # addiu $a0, $a0, 0x1824 -/* B2484C 800AD6AC 0C00084C */ jal osSyncPrintf -/* B24850 800AD6B0 8FA5001C */ lw $a1, 0x1c($sp) -/* B24854 800AD6B4 3C048014 */ lui $a0, %hi(D_80141850) # $a0, 0x8014 -/* B24858 800AD6B8 24841850 */ addiu $a0, %lo(D_80141850) # addiu $a0, $a0, 0x1850 -/* B2485C 800AD6BC 0C000B84 */ jal LogUtils_LogThreadId -/* B24860 800AD6C0 24050104 */ li $a1, 260 -/* B24864 800AD6C4 3C048014 */ lui $a0, %hi(D_80141860) # $a0, 0x8014 -/* B24868 800AD6C8 24841860 */ addiu $a0, %lo(D_80141860) # addiu $a0, $a0, 0x1860 -/* B2486C 800AD6CC 0C00084C */ jal osSyncPrintf -/* B24870 800AD6D0 24050467 */ li $a1, 1127 -.L800AD6D4: -/* B24874 800AD6D4 8FAA001C */ lw $t2, 0x1c($sp) -/* B24878 800AD6D8 8FAB0050 */ lw $t3, 0x50($sp) -/* B2487C 800AD6DC 3C048014 */ lui $a0, %hi(D_80141884) # $a0, 0x8014 -/* B24880 800AD6E0 24841884 */ addiu $a0, %lo(D_80141884) # addiu $a0, $a0, 0x1884 -/* B24884 800AD6E4 014B082B */ sltu $at, $t2, $t3 -/* B24888 800AD6E8 10200004 */ beqz $at, .L800AD6FC -/* B2488C 800AD6EC 3C058014 */ lui $a1, %hi(D_801418A4) # $a1, 0x8014 -/* B24890 800AD6F0 24A518A4 */ addiu $a1, %lo(D_801418A4) # addiu $a1, $a1, 0x18a4 -/* B24894 800AD6F4 0C0007FC */ jal __assert -/* B24898 800AD6F8 24060106 */ li $a2, 262 -.L800AD6FC: -/* B2489C 800AD6FC 8FAC005C */ lw $t4, 0x5c($sp) -/* B248A0 800AD700 3C03E700 */ lui $v1, 0xe700 -/* B248A4 800AD704 24010001 */ li $at, 1 -/* B248A8 800AD708 258D0008 */ addiu $t5, $t4, 8 -/* B248AC 800AD70C AFAD005C */ sw $t5, 0x5c($sp) -/* B248B0 800AD710 AD800004 */ sw $zero, 4($t4) -/* B248B4 800AD714 AD830000 */ sw $v1, ($t4) -/* B248B8 800AD718 8FAE0060 */ lw $t6, 0x60($sp) -/* B248BC 800AD71C 8FB8005C */ lw $t8, 0x5c($sp) -/* B248C0 800AD720 3C090050 */ lui $t1, (0x005003C0 >> 16) # lui $t1, 0x50 -/* B248C4 800AD724 8DCF0004 */ lw $t7, 4($t6) -/* B248C8 800AD728 352903C0 */ ori $t1, (0x005003C0 & 0xFFFF) # ori $t1, $t1, 0x3c0 -/* B248CC 800AD72C 3C08ED00 */ lui $t0, 0xed00 -/* B248D0 800AD730 15E10004 */ bne $t7, $at, .L800AD744 -/* B248D4 800AD734 27190008 */ addiu $t9, $t8, 8 -/* B248D8 800AD738 AFB9005C */ sw $t9, 0x5c($sp) -/* B248DC 800AD73C AF090004 */ sw $t1, 4($t8) -/* B248E0 800AD740 AF080000 */ sw $t0, ($t8) -.L800AD744: -/* B248E4 800AD744 8FAA005C */ lw $t2, 0x5c($sp) -/* B248E8 800AD748 3C0CFA00 */ lui $t4, 0xfa00 -/* B248EC 800AD74C 3C19FB00 */ lui $t9, 0xfb00 -/* B248F0 800AD750 254B0008 */ addiu $t3, $t2, 8 -/* B248F4 800AD754 AFAB005C */ sw $t3, 0x5c($sp) -/* B248F8 800AD758 AD4C0000 */ sw $t4, ($t2) -/* B248FC 800AD75C 8FAD0060 */ lw $t5, 0x60($sp) -/* B24900 800AD760 3C0CFD10 */ lui $t4, 0xfd10 -/* B24904 800AD764 8DAE0008 */ lw $t6, 8($t5) -/* B24908 800AD768 AD4E0004 */ sw $t6, 4($t2) -/* B2490C 800AD76C 8FAF005C */ lw $t7, 0x5c($sp) -/* B24910 800AD770 25F80008 */ addiu $t8, $t7, 8 -/* B24914 800AD774 AFB8005C */ sw $t8, 0x5c($sp) -/* B24918 800AD778 ADF90000 */ sw $t9, ($t7) -/* B2491C 800AD77C 8FA80060 */ lw $t0, 0x60($sp) -/* B24920 800AD780 3C18E800 */ lui $t8, 0xe800 -/* B24924 800AD784 8D09000C */ lw $t1, 0xc($t0) -/* B24928 800AD788 ADE90004 */ sw $t1, 4($t7) -/* B2492C 800AD78C 8FAA005C */ lw $t2, 0x5c($sp) -/* B24930 800AD790 3C09F500 */ lui $t1, (0xF5000100 >> 16) # lui $t1, 0xf500 -/* B24934 800AD794 35290100 */ ori $t1, (0xF5000100 & 0xFFFF) # ori $t1, $t1, 0x100 -/* B24938 800AD798 254B0008 */ addiu $t3, $t2, 8 -/* B2493C 800AD79C AFAB005C */ sw $t3, 0x5c($sp) -/* B24940 800AD7A0 AD4C0000 */ sw $t4, ($t2) -/* B24944 800AD7A4 8FAD0058 */ lw $t5, 0x58($sp) -/* B24948 800AD7A8 AD4D0004 */ sw $t5, 4($t2) -/* B2494C 800AD7AC 8FAE005C */ lw $t6, 0x5c($sp) -/* B24950 800AD7B0 3C0A0700 */ lui $t2, 0x700 -/* B24954 800AD7B4 3C0DE600 */ lui $t5, 0xe600 -/* B24958 800AD7B8 25CF0008 */ addiu $t7, $t6, 8 -/* B2495C 800AD7BC AFAF005C */ sw $t7, 0x5c($sp) -/* B24960 800AD7C0 ADC00004 */ sw $zero, 4($t6) -/* B24964 800AD7C4 ADD80000 */ sw $t8, ($t6) -/* B24968 800AD7C8 8FB9005C */ lw $t9, 0x5c($sp) -/* B2496C 800AD7CC 3C18F000 */ lui $t8, 0xf000 -/* B24970 800AD7D0 27280008 */ addiu $t0, $t9, 8 -/* B24974 800AD7D4 AFA8005C */ sw $t0, 0x5c($sp) -/* B24978 800AD7D8 AF290000 */ sw $t1, ($t9) -/* B2497C 800AD7DC AF2A0004 */ sw $t2, 4($t9) -/* B24980 800AD7E0 8FAB005C */ lw $t3, 0x5c($sp) -/* B24984 800AD7E4 3C19073F */ lui $t9, (0x073FC000 >> 16) # lui $t9, 0x73f -/* B24988 800AD7E8 3739C000 */ ori $t9, (0x073FC000 & 0xFFFF) # ori $t9, $t9, 0xc000 -/* B2498C 800AD7EC 256C0008 */ addiu $t4, $t3, 8 -/* B24990 800AD7F0 AFAC005C */ sw $t4, 0x5c($sp) -/* B24994 800AD7F4 AD600004 */ sw $zero, 4($t3) -/* B24998 800AD7F8 AD6D0000 */ sw $t5, ($t3) -/* B2499C 800AD7FC 8FAE005C */ lw $t6, 0x5c($sp) -/* B249A0 800AD800 3C0CDE00 */ lui $t4, 0xde00 -/* B249A4 800AD804 25CF0008 */ addiu $t7, $t6, 8 -/* B249A8 800AD808 AFAF005C */ sw $t7, 0x5c($sp) -/* B249AC 800AD80C ADD90004 */ sw $t9, 4($t6) -/* B249B0 800AD810 ADD80000 */ sw $t8, ($t6) -/* B249B4 800AD814 8FA8005C */ lw $t0, 0x5c($sp) -/* B249B8 800AD818 25090008 */ addiu $t1, $t0, 8 -/* B249BC 800AD81C AFA9005C */ sw $t1, 0x5c($sp) -/* B249C0 800AD820 AD000004 */ sw $zero, 4($t0) -/* B249C4 800AD824 AD030000 */ sw $v1, ($t0) -/* B249C8 800AD828 8FAA005C */ lw $t2, 0x5c($sp) -/* B249CC 800AD82C 254B0008 */ addiu $t3, $t2, 8 -/* B249D0 800AD830 AFAB005C */ sw $t3, 0x5c($sp) -/* B249D4 800AD834 AD4C0000 */ sw $t4, ($t2) -/* B249D8 800AD838 8FAD0054 */ lw $t5, 0x54($sp) -/* B249DC 800AD83C AD4D0004 */ sw $t5, 4($t2) -/* B249E0 800AD840 8FAE005C */ lw $t6, 0x5c($sp) -/* B249E4 800AD844 25CF0008 */ addiu $t7, $t6, 8 -/* B249E8 800AD848 AFAF005C */ sw $t7, 0x5c($sp) -/* B249EC 800AD84C ADC00004 */ sw $zero, 4($t6) -/* B249F0 800AD850 ADC30000 */ sw $v1, ($t6) -/* B249F4 800AD854 8FB90064 */ lw $t9, 0x64($sp) -/* B249F8 800AD858 8FB8005C */ lw $t8, 0x5c($sp) -/* B249FC 800AD85C AF380000 */ sw $t8, ($t9) -/* B24A00 800AD860 8FBF0014 */ lw $ra, 0x14($sp) -/* B24A04 800AD864 27BD0060 */ addiu $sp, $sp, 0x60 -/* B24A08 800AD868 03E00008 */ jr $ra -/* B24A0C 800AD86C 00000000 */ nop - diff --git a/asm/non_matchings/code/z_vismono/func_800AD870.s b/asm/non_matchings/code/z_vismono/func_800AD870.s deleted file mode 100644 index baf67f1f2d..0000000000 --- a/asm/non_matchings/code/z_vismono/func_800AD870.s +++ /dev/null @@ -1,62 +0,0 @@ -.rdata -glabel D_801418B4 - .asciz "../z_vismono.c" - .balign 4 - -glabel D_801418C4 - .asciz "../z_vismono.c" - .balign 4 - -glabel D_801418D4 - .asciz "glistp_end <= this->mono_dl + DLSIZE" - .balign 4 - -glabel D_801418FC - .asciz "../z_vismono.c" - .balign 4 - -.text -glabel func_800AD870 -/* B24A10 800AD870 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* B24A14 800AD874 AFBF001C */ sw $ra, 0x1c($sp) -/* B24A18 800AD878 AFB00018 */ sw $s0, 0x18($sp) -/* B24A1C 800AD87C 8C8E0010 */ lw $t6, 0x10($a0) -/* B24A20 800AD880 00808025 */ move $s0, $a0 -/* B24A24 800AD884 24040200 */ li $a0, 512 -/* B24A28 800AD888 15C00008 */ bnez $t6, .L800AD8AC -/* B24A2C 800AD88C 3C058014 */ lui $a1, %hi(D_801418B4) # $a1, 0x8014 -/* B24A30 800AD890 24A518B4 */ addiu $a1, %lo(D_801418B4) # addiu $a1, $a1, 0x18b4 -/* B24A34 800AD894 0C03F570 */ jal SystemArena_MallocDebug -/* B24A38 800AD898 2406011B */ li $a2, 283 -/* B24A3C 800AD89C AE020010 */ sw $v0, 0x10($s0) -/* B24A40 800AD8A0 02002025 */ move $a0, $s0 -/* B24A44 800AD8A4 0C02B420 */ jal func_800AD080 -/* B24A48 800AD8A8 00402825 */ move $a1, $v0 -.L800AD8AC: -/* B24A4C 800AD8AC 8E0F0014 */ lw $t7, 0x14($s0) -/* B24A50 800AD8B0 3C058014 */ lui $a1, %hi(D_801418C4) # $a1, 0x8014 -/* B24A54 800AD8B4 24A518C4 */ addiu $a1, %lo(D_801418C4) # addiu $a1, $a1, 0x18c4 -/* B24A58 800AD8B8 15E00011 */ bnez $t7, .L800AD900 -/* B24A5C 800AD8BC 24042338 */ li $a0, 9016 -/* B24A60 800AD8C0 0C03F570 */ jal SystemArena_MallocDebug -/* B24A64 800AD8C4 24060121 */ li $a2, 289 -/* B24A68 800AD8C8 AE020014 */ sw $v0, 0x14($s0) -/* B24A6C 800AD8CC 02002025 */ move $a0, $s0 -/* B24A70 800AD8D0 0C02B4E5 */ jal func_800AD394 -/* B24A74 800AD8D4 00402825 */ move $a1, $v0 -/* B24A78 800AD8D8 8E180014 */ lw $t8, 0x14($s0) -/* B24A7C 800AD8DC 3C048014 */ lui $a0, %hi(D_801418D4) # $a0, 0x8014 -/* B24A80 800AD8E0 248418D4 */ addiu $a0, %lo(D_801418D4) # addiu $a0, $a0, 0x18d4 -/* B24A84 800AD8E4 27192338 */ addiu $t9, $t8, 0x2338 -/* B24A88 800AD8E8 0322082B */ sltu $at, $t9, $v0 -/* B24A8C 800AD8EC 10200004 */ beqz $at, .L800AD900 -/* B24A90 800AD8F0 3C058014 */ lui $a1, %hi(D_801418FC) # $a1, 0x8014 -/* B24A94 800AD8F4 24A518FC */ addiu $a1, %lo(D_801418FC) # addiu $a1, $a1, 0x18fc -/* B24A98 800AD8F8 0C0007FC */ jal __assert -/* B24A9C 800AD8FC 24060124 */ li $a2, 292 -.L800AD900: -/* B24AA0 800AD900 8FBF001C */ lw $ra, 0x1c($sp) -/* B24AA4 800AD904 8FB00018 */ lw $s0, 0x18($sp) -/* B24AA8 800AD908 27BD0020 */ addiu $sp, $sp, 0x20 -/* B24AAC 800AD90C 03E00008 */ jr $ra -/* B24AB0 800AD910 00000000 */ nop diff --git a/include/functions.h b/include/functions.h index 1d0b34c36f..2300baecd6 100644 --- a/include/functions.h +++ b/include/functions.h @@ -1304,17 +1304,18 @@ s32 func_800ABE74(f32 eyeX, f32 eyeY, f32 eyeZ); // ? func_800ACA90(?); // ? func_800ACA98(?); // ? func_800ACAF8(?); -// ? func_800ACE70(?); -// ? func_800ACE90(?); -void func_800ACE98(struct_801664F0*, Gfx**); -// ? func_800AD000(?); -// ? func_800AD054(?); -// ? func_800AD080(?); -// ? func_800AD394(?); -void func_800AD5C0(VisMonoStruct*, Gfx**); -// ? func_800AD920(?); -// ? func_800AD950(?); -void func_800AD958(struct_801664F0*, Gfx**); +void func_800ACE70(struct_801664F0* this); +void func_800ACE90(struct_801664F0* this); +void func_800ACE98(struct_801664F0* this, Gfx** gfxp); +void VisMono_Init(VisMono* this); +void VisMono_Destroy(VisMono* this); +void VisMono_UpdateTexture(VisMono* this, u16* tex); +Gfx* VisMono_DrawTexture(VisMono* this, Gfx* gfx); +void VisMono_Draw(VisMono* this, Gfx** gfxp); +void VisMono_DrawOld(VisMono* this); +void func_800AD920(struct_80166500* this); +void func_800AD950(struct_80166500* this); +void func_800AD958(struct_80166500* this, Gfx** gfxp); // ? func_800ADBB0(?); // ? func_800AE2C0(?); // ? func_800AEFC8(?); diff --git a/include/z64.h b/include/z64.h index 6edcd209ce..962d1a8efa 100644 --- a/include/z64.h +++ b/include/z64.h @@ -1696,15 +1696,8 @@ typedef struct { /* 0xB4 */ JpegWork* workBuf; } JpegContext; // size = 0xB8 -typedef struct { - /* 0x00 */ s32 colorFormat; - /* 0x04 */ s32 setScissor; - /* 0x08 */ Color_RGBA8 primColor; - /* 0x0C */ Color_RGBA8 envColor; - /* 0x10 */ u16* texture; - /* 0x14 */ Gfx* monoDList; -} VisMonoStruct; // size = 0x18 +// Vis... typedef struct { /* 0x00 */ u32 type; /* 0x04 */ u32 setScissor; @@ -1712,6 +1705,23 @@ typedef struct { /* 0x0C */ Color_RGBA8 envColor; } struct_801664F0; // size = 0x10 +typedef struct { + /* 0x00 */ u32 unk_00; + /* 0x04 */ u32 setScissor; + /* 0x08 */ Color_RGBA8 primColor; + /* 0x0C */ Color_RGBA8 envColor; + /* 0x10 */ u16* tlut; + /* 0x14 */ Gfx* monoDl; +} VisMono; // size = 0x18 + +// Vis... +typedef struct { + /* 0x00 */ u32 useRgba; + /* 0x04 */ u32 setScissor; + /* 0x08 */ Color_RGBA8 primColor; + /* 0x08 */ Color_RGBA8 envColor; +} struct_80166500; // size = 0x10 + typedef struct { /* 0x000 */ u8 rumbleEnable[4]; /* 0x004 */ u8 unk_04[0x40]; diff --git a/spec b/spec index 21dfebb937..dd05837acc 100644 --- a/spec +++ b/spec @@ -373,7 +373,7 @@ beginseg include "build/src/code/z_vimode.o" include "build/src/code/code_800ACE70.o" include "build/src/code/z_vismono.o" - include "build/asm/code_800AD920.o" + include "build/src/code/code_800AD920.o" include "build/src/code/z_vr_box.o" include "build/data/z_vr_box.data.o" include "build/src/code/z_vr_box_draw.o" diff --git a/src/code/code_800ACE70.c b/src/code/code_800ACE70.c index e9fa414a4b..90cb9494b8 100644 --- a/src/code/code_800ACE70.c +++ b/src/code/code_800ACE70.c @@ -1,5 +1,8 @@ #include +// Note : This file is related to z_vismono, the original name was probably z_vis + Gfx D_8012AC00[] = { gsDPSetOtherMode(G_AD_PATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_CONV | G_TF_POINT | G_TT_NONE | G_TL_TILE | G_TD_CLAMP | G_TP_NONE | G_CYC_1CYCLE | G_PM_NPRIMITIVE, @@ -46,7 +49,7 @@ Gfx D_8012AC58[] = { gsSPEndDisplayList(), }; -// Init func +// Init void func_800ACE70(struct_801664F0* this) { this->type = 0; this->setScissor = false; @@ -56,11 +59,11 @@ void func_800ACE70(struct_801664F0* this) { this->color.a = 0xFF; } -// Destroy func +// Destroy void func_800ACE90(struct_801664F0* this) { } -// Update func +// Draw void func_800ACE98(struct_801664F0* this, Gfx** gfxp) { Gfx* gfx; diff --git a/src/code/code_800AD920.c b/src/code/code_800AD920.c new file mode 100644 index 0000000000..147c47c093 --- /dev/null +++ b/src/code/code_800AD920.c @@ -0,0 +1,65 @@ +#include + +// Note : This file is related to z_vismono, the original name was probably z_vis + +// z-buffer +extern u16 D_0E000000[]; + +// Init +void func_800AD920(struct_80166500* this) { + this->useRgba = false; + this->setScissor = false; + this->primColor.r = 0xFF; + this->primColor.g = 0xFF; + this->primColor.b = 0xFF; + this->primColor.a = 0xFF; + this->envColor.a = 0xFF; + this->envColor.r = 0x00; + this->envColor.g = 0x00; + this->envColor.b = 0x00; +} + +// Destroy +void func_800AD950(struct_80166500* this) { +} + +// Draw +void func_800AD958(struct_80166500* this, Gfx** gfxp) { + Gfx* gfx; + u16* tex; + s32 fmt; + s32 y; + s32 height = 6; + + gfx = *gfxp; + tex = D_0E000000; + + fmt = this->useRgba == false ? G_IM_FMT_IA : G_IM_FMT_RGBA; + + gDPPipeSync(gfx++); + if (this->setScissor == true) { + gDPSetScissor(gfx++, G_SC_NON_INTERLACE, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT); + } + + gDPSetOtherMode(gfx++, + G_AD_DISABLE | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_POINT | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_NONE | G_CYC_1CYCLE | G_PM_NPRIMITIVE, + G_AC_NONE | G_ZS_PRIM | G_RM_OPA_SURF | G_RM_OPA_SURF2); + gDPSetCombineLERP(gfx++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, + PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT); + + gDPSetColor(gfx++, G_SETPRIMCOLOR, this->primColor.rgba); + gDPSetColor(gfx++, G_SETENVCOLOR, this->envColor.rgba); + + for (y = 0; y <= SCREEN_HEIGHT - height; y += height) { + gDPLoadTextureBlock(gfx++, tex, fmt, G_IM_SIZ_16b, SCREEN_WIDTH, height, 0, G_TX_NOMIRROR | G_TX_CLAMP, + G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + + gSPTextureRectangle(gfx++, 0, (y) << 2, (SCREEN_WIDTH << 2), (y + height) << 2, G_TX_RENDERTILE, 0, 0, + (1 << 10), (1 << 10)); + tex += SCREEN_WIDTH * height; + } + + gDPPipeSync(gfx++); + *gfxp = gfx; +} diff --git a/src/code/game.c b/src/code/game.c index 31bd415427..f49dc9db51 100644 --- a/src/code/game.c +++ b/src/code/game.c @@ -10,8 +10,8 @@ typedef struct { SpeedMeter D_801664D0; struct_801664F0 D_801664F0; -struct_801664F0 D_80166500; -VisMonoStruct sMonoColors; +struct_80166500 D_80166500; +VisMono sMonoColors; unk_80166528 D_80166528; FaultClient sGameFaultClient; u16 sLastButtonPressed; @@ -42,18 +42,18 @@ void GameState_SetFBFilter(Gfx** gfx) { D_801664F0.color.a = R_FB_FILTER_A; func_800ACE98(&D_801664F0, &gfxP); } else if ((R_FB_FILTER_TYPE == 5) || (R_FB_FILTER_TYPE == 6)) { - D_80166500.type = (R_FB_FILTER_TYPE == 6); - D_80166500.color.r = R_FB_FILTER_PRIM_COLOR(0); - D_80166500.color.g = R_FB_FILTER_PRIM_COLOR(1); - D_80166500.color.b = R_FB_FILTER_PRIM_COLOR(2); - D_80166500.color.a = R_FB_FILTER_A; + D_80166500.useRgba = (R_FB_FILTER_TYPE == 6); + D_80166500.primColor.r = R_FB_FILTER_PRIM_COLOR(0); + D_80166500.primColor.g = R_FB_FILTER_PRIM_COLOR(1); + D_80166500.primColor.b = R_FB_FILTER_PRIM_COLOR(2); + D_80166500.primColor.a = R_FB_FILTER_A; D_80166500.envColor.r = R_FB_FILTER_ENV_COLOR(0); D_80166500.envColor.g = R_FB_FILTER_ENV_COLOR(1); D_80166500.envColor.b = R_FB_FILTER_ENV_COLOR(2); D_80166500.envColor.a = R_FB_FILTER_A; func_800AD958(&D_80166500, &gfxP); } else if (R_FB_FILTER_TYPE == 7) { - sMonoColors.colorFormat = 0; + sMonoColors.unk_00 = 0; sMonoColors.primColor.r = R_FB_FILTER_PRIM_COLOR(0); sMonoColors.primColor.g = R_FB_FILTER_PRIM_COLOR(1); sMonoColors.primColor.b = R_FB_FILTER_PRIM_COLOR(2); @@ -62,7 +62,7 @@ void GameState_SetFBFilter(Gfx** gfx) { sMonoColors.envColor.g = R_FB_FILTER_ENV_COLOR(1); sMonoColors.envColor.b = R_FB_FILTER_ENV_COLOR(2); sMonoColors.envColor.a = R_FB_FILTER_A; - func_800AD5C0(&sMonoColors, &gfxP); + VisMono_Draw(&sMonoColors, &gfxP); } *gfx = gfxP; } @@ -433,7 +433,7 @@ void GameState_Init(GameState* gameState, GameStateFunc init, GraphicsContext* g LogUtils_CheckNullPointer("this->cleanup", gameState->destroy, "../game.c", 1088); func_800ACE70(&D_801664F0); func_800AD920(&D_80166500); - func_800AD000(&sMonoColors); + VisMono_Init(&sMonoColors); if (SREG(48) == 0) { func_800ACA28(&D_80166528); } @@ -465,7 +465,7 @@ void GameState_Destroy(GameState* gameState) { SpeedMeter_Destroy(&D_801664D0); func_800ACE90(&D_801664F0); func_800AD950(&D_80166500); - func_800AD054(&sMonoColors); + VisMono_Destroy(&sMonoColors); if (SREG(48) == 0) { func_800ACA90(&D_80166528); } diff --git a/src/code/z_play.c b/src/code/z_play.c index 8f125a6cde..104da1a4c8 100644 --- a/src/code/z_play.c +++ b/src/code/z_play.c @@ -8,7 +8,7 @@ Input* D_8012D1F8 = NULL; TransitionUnk sTrnsnUnk; s32 gTrnsnUnkState; -VisMonoStruct D_80161498; +VisMono D_80161498; Color_RGBA8 D_801614B0; FaultClient D_801614B8; s16 D_801614C8; @@ -174,7 +174,7 @@ void Gameplay_Destroy(GlobalContext* globalCtx) { func_800B3968(); TransitionFade_Destroy(&globalCtx->transitionFade); - func_800AD054(&D_80161498); + VisMono_Destroy(&D_80161498); if (gSaveContext.linkAge != globalCtx->linkAgeOnLoad) { Inventory_SwapAgeEquipment(); @@ -365,7 +365,7 @@ void Gameplay_Init(GlobalContext* globalCtx) { TransitionFade_SetType(&globalCtx->transitionFade, 3); TransitionFade_SetColor(&globalCtx->transitionFade, RGBA8(0xA0, 0xA0, 0xA0, 0xFF)); TransitionFade_Start(&globalCtx->transitionFade); - func_800AD000(&D_80161498); + VisMono_Init(&D_80161498); D_801614B0.a = 0x00; Flags_UnsetAllEnv(globalCtx); @@ -1151,7 +1151,7 @@ void Gameplay_Draw(GlobalContext* globalCtx) { if (D_801614B0.a > 0x00) { D_80161498.primColor.rgba = D_801614B0.rgba; - func_800AD5C0(&D_80161498, &gfxP); + VisMono_Draw(&D_80161498, &gfxP); } gSPEndDisplayList(gfxP++); diff --git a/src/code/z_vismono.c b/src/code/z_vismono.c index 239e81ce06..748dbe968b 100644 --- a/src/code/z_vismono.c +++ b/src/code/z_vismono.c @@ -1,14 +1,142 @@ #include #include -#pragma GLOBAL_ASM("asm/non_matchings/code/z_vismono/func_800AD000.s") +// Note : This file is related to z_vismono, the original name was probably z_vis -#pragma GLOBAL_ASM("asm/non_matchings/code/z_vismono/func_800AD054.s") +// (Note: 80 = SCREEN_HEIGHT/3, see VisMono_DrawTexture) +// Did the devs forget to update this? 1+1+1+80*(7+2+2+3)+1+1 makes more sense +#define DLSIZE (1 + 3 + 1 + 1 + 80 * (7 + 2 + 2 + 3) + 1) -#pragma GLOBAL_ASM("asm/non_matchings/code/z_vismono/func_800AD080.s") +// framebuffer +extern u16 D_0F000000[]; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_vismono/func_800AD394.s") +void VisMono_Init(VisMono* this) { + bzero(this, sizeof(VisMono)); + this->unk_00 = 0; + this->setScissor = false; + this->primColor.r = 0xFF; + this->primColor.g = 0xFF; + this->primColor.b = 0xFF; + this->primColor.a = 0xFF; + this->envColor.r = 0x00; + this->envColor.g = 0x00; + this->envColor.b = 0x00; + this->envColor.a = 0x00; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_vismono/func_800AD5C0.s") +void VisMono_Destroy(VisMono* this) { + SystemArena_FreeDebug(this->monoDl, "../z_vismono.c", 137); +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_vismono/func_800AD870.s") +void VisMono_UpdateTexture(VisMono* this, u16* tex) { + s32 i; + for (i = 0; i < 256; i++) { + tex[i] = ((((i >> 3 & 0x1F) * 2 + (i << 2 & 0x1F) * 4) * 0xFF / 0xD9) << 8) | + (((i >> 6 & 0x1F) * 4 + (i >> 1 & 0x1F)) * 0xFF / 0xD9); + } +} + +Gfx* VisMono_DrawTexture(VisMono* this, Gfx* gfx) { + s32 y; + s32 height = 3; + u16* tex; + + tex = D_0F000000; + + gDPPipeSync(gfx++); + gDPSetOtherMode(gfx++, + G_AD_DISABLE | G_CD_DISABLE | G_CK_NONE | G_TC_FILT | G_TF_POINT | G_TT_IA16 | G_TL_TILE | + G_TD_CLAMP | G_TP_NONE | G_CYC_2CYCLE | G_PM_1PRIMITIVE, + G_AC_NONE | G_ZS_PRIM | GBL_c1(G_BL_CLR_IN, G_BL_0, G_BL_CLR_IN, G_BL_1) | G_RM_CLD_SURF2); + gDPSetCombineLERP(gfx++, 1, 0, TEXEL1_ALPHA, TEXEL0, 0, 0, 0, 1, PRIMITIVE, ENVIRONMENT, COMBINED, ENVIRONMENT, 0, + 0, 0, PRIMITIVE); + + for (y = 0; y <= SCREEN_HEIGHT - height; y += height) { + gDPLoadTextureBlock(gfx++, tex, G_IM_FMT_CI, G_IM_SIZ_8b, SCREEN_WIDTH * 2, height, 0, + G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, + G_TX_NOLOD, G_TX_NOLOD); + + gDPSetTile(gfx++, G_IM_FMT_CI, G_IM_SIZ_8b, 80, 0x0, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_CLAMP, 0, 0, + G_TX_NOMIRROR | G_TX_CLAMP, 0, 0); + gDPSetTileSize(gfx++, G_TX_RENDERTILE, (2 << 2), 0, (SCREEN_WIDTH * 2 + 1 << 2), (2 << 2)); + + gDPSetTile(gfx++, G_IM_FMT_CI, G_IM_SIZ_8b, 80, 0x0, 1, 1, G_TX_NOMIRROR | G_TX_CLAMP, 0, 0, + G_TX_NOMIRROR | G_TX_CLAMP, 0, 0); + gDPSetTileSize(gfx++, 1, (1 << 2), 0, (SCREEN_WIDTH * 2 << 2), (2 << 2)); + + gSPTextureRectangle(gfx++, 0, (y) << 2, (SCREEN_WIDTH << 2), (y + height) << 2, G_TX_RENDERTILE, 2 << 5, 0, + (2 << 10), (1 << 10)); + tex += SCREEN_WIDTH * height; + } + + gDPPipeSync(gfx++); + gSPEndDisplayList(gfx++); + return gfx; +} + +void VisMono_Draw(VisMono* this, Gfx** gfxp) { + Gfx* gfx; + u16* tlut; + Gfx* monoDL; + Gfx* glistpEnd; + + gfx = *gfxp; + + if (this->tlut) { + tlut = this->tlut; + } else { + tlut = Graph_DlistAlloc(&gfx, 256 * sizeof(u16)); + VisMono_UpdateTexture(this, tlut); + } + + if (this->monoDl) { + monoDL = this->monoDl; + } else { + monoDL = Graph_DlistAlloc(&gfx, DLSIZE * sizeof(Gfx)); + glistpEnd = VisMono_DrawTexture(this, monoDL); + + if (!(glistpEnd <= monoDL + DLSIZE)) { + LOG_ADDRESS("glistp_end", glistpEnd, "../z_vismono.c", 257); + LOG_ADDRESS("mono_dl", monoDL, "../z_vismono.c", 258); + LOG_ADDRESS("mono_dl + (1+3+1+1+80*(7+2+2+3)+1)", monoDL + DLSIZE, "../z_vismono.c", 259); + LOG_ADDRESS("(1+3+1+1+80*(7+2+2+3)+1)", DLSIZE, "../z_vismono.c", 260); + } + + if (!(glistpEnd <= monoDL + DLSIZE)) { + __assert("glistp_end <= mono_dl + DLSIZE", "../z_vismono.c", 262); + } + } + + gDPPipeSync(gfx++); + if (this->setScissor == true) { + gDPSetScissor(gfx++, G_SC_NON_INTERLACE, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT); + } + + gDPSetColor(gfx++, G_SETPRIMCOLOR, this->primColor.rgba); + gDPSetColor(gfx++, G_SETENVCOLOR, this->envColor.rgba); + + gDPLoadTLUT_pal256(gfx++, tlut); + + gSPDisplayList(gfx++, monoDL); + gDPPipeSync(gfx++); + + *gfxp = gfx; +} + +void VisMono_DrawOld(VisMono* this) { + Gfx* glistpEnd; + + if (!this->tlut) { + this->tlut = SystemArena_MallocDebug(256 * sizeof(u16), "../z_vismono.c", 283); + VisMono_UpdateTexture(this, this->tlut); + } + + if (!this->monoDl) { + this->monoDl = SystemArena_MallocDebug(DLSIZE * sizeof(Gfx), "../z_vismono.c", 289); + glistpEnd = VisMono_DrawTexture(this, this->monoDl); + if (!(glistpEnd <= this->monoDl + DLSIZE)) { + __assert("glistp_end <= this->mono_dl + DLSIZE", "../z_vismono.c", 292); + } + } +} diff --git a/undefined_syms.txt b/undefined_syms.txt index 520a957daf..2b3ff80518 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -570,3 +570,9 @@ D_04032C90 = 0x04032C90; // z_oceff_storm D_04032490 = 0x04032490; D_04032890 = 0x04032890; + +// code_800AD920 +D_0E000000 = 0x0E000000; + +// z_vismono +D_0F000000 = 0x0F000000; \ No newline at end of file