diff --git a/asm/non_matchings/hud_renderer/func_8004FDB4.s b/asm/non_matchings/hud_renderer/func_8004FDB4.s deleted file mode 100644 index 4c8e14df1..000000000 --- a/asm/non_matchings/hud_renderer/func_8004FDB4.s +++ /dev/null @@ -1,356 +0,0 @@ -glabel func_8004FDB4 -/* 0509B4 8004FDB4 27BDFF58 */ addiu $sp, $sp, -0xa8 -/* 0509B8 8004FDB8 3C18800E */ lui $t8, %hi(gCurrentCourseId) # $t8, 0x800e -/* 0509BC 8004FDBC 8718C5A0 */ lh $t8, %lo(gCurrentCourseId)($t8) -/* 0509C0 8004FDC0 00077400 */ sll $t6, $a3, 0x10 -/* 0509C4 8004FDC4 24010004 */ li $at, 4 -/* 0509C8 8004FDC8 000E7C03 */ sra $t7, $t6, 0x10 -/* 0509CC 8004FDCC AFBF0024 */ sw $ra, 0x24($sp) -/* 0509D0 8004FDD0 AFB20020 */ sw $s2, 0x20($sp) -/* 0509D4 8004FDD4 AFB1001C */ sw $s1, 0x1c($sp) -/* 0509D8 8004FDD8 AFB00018 */ sw $s0, 0x18($sp) -/* 0509DC 8004FDDC AFA600B0 */ sw $a2, 0xb0($sp) -/* 0509E0 8004FDE0 17010055 */ bne $t8, $at, .L8004FF38 -/* 0509E4 8004FDE4 AFA700B4 */ sw $a3, 0xb4($sp) -/* 0509E8 8004FDE8 29E10003 */ slti $at, $t7, 3 -/* 0509EC 8004FDEC 10200052 */ beqz $at, .L8004FF38 -/* 0509F0 8004FDF0 8FB900C8 */ lw $t9, 0xc8($sp) -/* 0509F4 8004FDF4 57200051 */ bnel $t9, $zero, .L8004FF3C -/* 0509F8 8004FDF8 4600620D */ trunc.w.s $f8, $f12 -/* 0509FC 8004FDFC 4600610D */ trunc.w.s $f4, $f12 -/* 050A00 8004FE00 00003025 */ move $a2, $zero -/* 050A04 8004FE04 3C073F80 */ lui $a3, 0x3f80 -/* 050A08 8004FE08 4600718D */ trunc.w.s $f6, $f14 -/* 050A0C 8004FE0C 44042000 */ mfc1 $a0, $f4 -/* 050A10 8004FE10 44053000 */ mfc1 $a1, $f6 -/* 050A14 8004FE14 0C0108CC */ jal func_80042330 -/* 050A18 8004FE18 00000000 */ nop -/* 050A1C 8004FE1C 3C118015 */ lui $s1, %hi(gDisplayListHead) # $s1, 0x8015 -/* 050A20 8004FE20 26310298 */ addiu $s1, %lo(gDisplayListHead) # addiu $s1, $s1, 0x298 -/* 050A24 8004FE24 8E300000 */ lw $s0, ($s1) -/* 050A28 8004FE28 3C0F0D00 */ lui $t7, %hi(D_0D007DB8) # $t7, 0xd00 -/* 050A2C 8004FE2C 3C120600 */ lui $s2, 0x600 -/* 050A30 8004FE30 260E0008 */ addiu $t6, $s0, 8 -/* 050A34 8004FE34 AE2E0000 */ sw $t6, ($s1) -/* 050A38 8004FE38 25EF7DB8 */ addiu $t7, %lo(D_0D007DB8) # addiu $t7, $t7, 0x7db8 -/* 050A3C 8004FE3C 3C078019 */ lui $a3, %hi(D_8018D3E0) # $a3, 0x8019 -/* 050A40 8004FE40 AE0F0004 */ sw $t7, 4($s0) -/* 050A44 8004FE44 AE120000 */ sw $s2, ($s0) -/* 050A48 8004FE48 8CE7D3E0 */ lw $a3, %lo(D_8018D3E0)($a3) -/* 050A4C 8004FE4C 240400FF */ li $a0, 255 -/* 050A50 8004FE50 240500FF */ li $a1, 255 -/* 050A54 8004FE54 0C012CD7 */ jal func_8004B35C -/* 050A58 8004FE58 240600FF */ li $a2, 255 -/* 050A5C 8004FE5C 8E300000 */ lw $s0, ($s1) -/* 050A60 8004FE60 3C0C0D02 */ lui $t4, %hi(gTLUTPortraitBombKartAndQuestionMark) # $t4, 0xd02 -/* 050A64 8004FE64 258CB4D8 */ addiu $t4, %lo(gTLUTPortraitBombKartAndQuestionMark) # addiu $t4, $t4, -0x4b28 -/* 050A68 8004FE68 26180008 */ addiu $t8, $s0, 8 -/* 050A6C 8004FE6C AE380000 */ sw $t8, ($s1) -/* 050A70 8004FE70 3C19FD10 */ lui $t9, 0xfd10 -/* 050A74 8004FE74 AE190000 */ sw $t9, ($s0) -/* 050A78 8004FE78 AE0C0004 */ sw $t4, 4($s0) -/* 050A7C 8004FE7C 8E300000 */ lw $s0, ($s1) -/* 050A80 8004FE80 3C0EE800 */ lui $t6, 0xe800 -/* 050A84 8004FE84 3C18F500 */ lui $t8, (0xF5000100 >> 16) # lui $t8, 0xf500 -/* 050A88 8004FE88 260D0008 */ addiu $t5, $s0, 8 -/* 050A8C 8004FE8C AE2D0000 */ sw $t5, ($s1) -/* 050A90 8004FE90 AE000004 */ sw $zero, 4($s0) -/* 050A94 8004FE94 AE0E0000 */ sw $t6, ($s0) -/* 050A98 8004FE98 8E300000 */ lw $s0, ($s1) -/* 050A9C 8004FE9C 37180100 */ ori $t8, (0xF5000100 & 0xFFFF) # ori $t8, $t8, 0x100 -/* 050AA0 8004FEA0 3C190700 */ lui $t9, 0x700 -/* 050AA4 8004FEA4 260F0008 */ addiu $t7, $s0, 8 -/* 050AA8 8004FEA8 AE2F0000 */ sw $t7, ($s1) -/* 050AAC 8004FEAC AE190004 */ sw $t9, 4($s0) -/* 050AB0 8004FEB0 AE180000 */ sw $t8, ($s0) -/* 050AB4 8004FEB4 8E300000 */ lw $s0, ($s1) -/* 050AB8 8004FEB8 3C0DE600 */ lui $t5, 0xe600 -/* 050ABC 8004FEBC 3C18073F */ lui $t8, (0x073FC000 >> 16) # lui $t8, 0x73f -/* 050AC0 8004FEC0 260C0008 */ addiu $t4, $s0, 8 -/* 050AC4 8004FEC4 AE2C0000 */ sw $t4, ($s1) -/* 050AC8 8004FEC8 AE000004 */ sw $zero, 4($s0) -/* 050ACC 8004FECC AE0D0000 */ sw $t5, ($s0) -/* 050AD0 8004FED0 8E300000 */ lw $s0, ($s1) -/* 050AD4 8004FED4 3718C000 */ ori $t8, (0x073FC000 & 0xFFFF) # ori $t8, $t8, 0xc000 -/* 050AD8 8004FED8 3C0FF000 */ lui $t7, 0xf000 -/* 050ADC 8004FEDC 260E0008 */ addiu $t6, $s0, 8 -/* 050AE0 8004FEE0 AE2E0000 */ sw $t6, ($s1) -/* 050AE4 8004FEE4 AE180004 */ sw $t8, 4($s0) -/* 050AE8 8004FEE8 AE0F0000 */ sw $t7, ($s0) -/* 050AEC 8004FEEC 8E300000 */ lw $s0, ($s1) -/* 050AF0 8004FEF0 3C0CE700 */ lui $t4, 0xe700 -/* 050AF4 8004FEF4 3C040D02 */ lui $a0, %hi(gTexturePortraitQuestionMark) # $a0, 0xd02 -/* 050AF8 8004FEF8 26190008 */ addiu $t9, $s0, 8 -/* 050AFC 8004FEFC AE390000 */ sw $t9, ($s1) -/* 050B00 8004FF00 2484DAD8 */ addiu $a0, %lo(gTexturePortraitQuestionMark) # addiu $a0, $a0, -0x2528 -/* 050B04 8004FF04 24050020 */ li $a1, 32 -/* 050B08 8004FF08 24060020 */ li $a2, 32 -/* 050B0C 8004FF0C AE000004 */ sw $zero, 4($s0) -/* 050B10 8004FF10 0C0114A9 */ jal func_800452A4 -/* 050B14 8004FF14 AE0C0000 */ sw $t4, ($s0) -/* 050B18 8004FF18 8E300000 */ lw $s0, ($s1) -/* 050B1C 8004FF1C 3C0E0D00 */ lui $t6, %hi(D_0D0069E0) # $t6, 0xd00 -/* 050B20 8004FF20 25CE69E0 */ addiu $t6, %lo(D_0D0069E0) # addiu $t6, $t6, 0x69e0 -/* 050B24 8004FF24 260D0008 */ addiu $t5, $s0, 8 -/* 050B28 8004FF28 AE2D0000 */ sw $t5, ($s1) -/* 050B2C 8004FF2C AE0E0004 */ sw $t6, 4($s0) -/* 050B30 8004FF30 100000F5 */ b .L80050308 -/* 050B34 8004FF34 AE120000 */ sw $s2, ($s0) -.L8004FF38: -/* 050B38 8004FF38 4600620D */ trunc.w.s $f8, $f12 -.L8004FF3C: -/* 050B3C 8004FF3C 00003025 */ move $a2, $zero -/* 050B40 8004FF40 3C073F80 */ lui $a3, 0x3f80 -/* 050B44 8004FF44 4600728D */ trunc.w.s $f10, $f14 -/* 050B48 8004FF48 44044000 */ mfc1 $a0, $f8 -/* 050B4C 8004FF4C E7AC00A8 */ swc1 $f12, 0xa8($sp) -/* 050B50 8004FF50 E7AE00AC */ swc1 $f14, 0xac($sp) -/* 050B54 8004FF54 44055000 */ mfc1 $a1, $f10 -/* 050B58 8004FF58 AFA40034 */ sw $a0, 0x34($sp) -/* 050B5C 8004FF5C 0C0108CC */ jal func_80042330 -/* 050B60 8004FF60 AFA50030 */ sw $a1, 0x30($sp) -/* 050B64 8004FF64 3C118015 */ lui $s1, %hi(gDisplayListHead) # $s1, 0x8015 -/* 050B68 8004FF68 26310298 */ addiu $s1, %lo(gDisplayListHead) # addiu $s1, $s1, 0x298 -/* 050B6C 8004FF6C 8E300000 */ lw $s0, ($s1) -/* 050B70 8004FF70 3C030D00 */ lui $v1, %hi(D_0D007DB8) # $v1, 0xd00 -/* 050B74 8004FF74 3C120600 */ lui $s2, 0x600 -/* 050B78 8004FF78 26190008 */ addiu $t9, $s0, 8 -/* 050B7C 8004FF7C AE390000 */ sw $t9, ($s1) -/* 050B80 8004FF80 24637DB8 */ addiu $v1, %lo(D_0D007DB8) # addiu $v1, $v1, 0x7db8 -/* 050B84 8004FF84 AE030004 */ sw $v1, 4($s0) -/* 050B88 8004FF88 AE120000 */ sw $s2, ($s0) -/* 050B8C 8004FF8C AFA3002C */ sw $v1, 0x2c($sp) -/* 050B90 8004FF90 8FA700BC */ lw $a3, 0xbc($sp) -/* 050B94 8004FF94 240400FF */ li $a0, 255 -/* 050B98 8004FF98 240500FF */ li $a1, 255 -/* 050B9C 8004FF9C 0C012CD7 */ jal func_8004B35C -/* 050BA0 8004FFA0 240600FF */ li $a2, 255 -/* 050BA4 8004FFA4 8E300000 */ lw $s0, ($s1) -/* 050BA8 8004FFA8 3C0DFD10 */ lui $t5, 0xfd10 -/* 050BAC 8004FFAC 3C0F800E */ lui $t7, %hi(gPortraitTLUTs) -/* 050BB0 8004FFB0 260C0008 */ addiu $t4, $s0, 8 -/* 050BB4 8004FFB4 AE2C0000 */ sw $t4, ($s1) -/* 050BB8 8004FFB8 AE0D0000 */ sw $t5, ($s0) -/* 050BBC 8004FFBC 87A300BA */ lh $v1, 0xba($sp) -/* 050BC0 8004FFC0 3C19E800 */ lui $t9, 0xe800 -/* 050BC4 8004FFC4 3C0DF500 */ lui $t5, (0xF5000100 >> 16) # lui $t5, 0xf500 -/* 050BC8 8004FFC8 00037080 */ sll $t6, $v1, 2 -/* 050BCC 8004FFCC 01EE7821 */ addu $t7, $t7, $t6 -/* 050BD0 8004FFD0 8DEF457C */ lw $t7, %lo(gPortraitTLUTs)($t7) -/* 050BD4 8004FFD4 01C01825 */ move $v1, $t6 -/* 050BD8 8004FFD8 3C0E0700 */ lui $t6, 0x700 -/* 050BDC 8004FFDC AE0F0004 */ sw $t7, 4($s0) -/* 050BE0 8004FFE0 8E300000 */ lw $s0, ($s1) -/* 050BE4 8004FFE4 35AD0100 */ ori $t5, (0xF5000100 & 0xFFFF) # ori $t5, $t5, 0x100 -/* 050BE8 8004FFE8 3C04800E */ lui $a0, %hi(gPortraitTextures) -/* 050BEC 8004FFEC 26180008 */ addiu $t8, $s0, 8 -/* 050BF0 8004FFF0 AE380000 */ sw $t8, ($s1) -/* 050BF4 8004FFF4 AE000004 */ sw $zero, 4($s0) -/* 050BF8 8004FFF8 AE190000 */ sw $t9, ($s0) -/* 050BFC 8004FFFC 8E300000 */ lw $s0, ($s1) -/* 050C00 80050000 3C18E600 */ lui $t8, 0xe600 -/* 050C04 80050004 00832021 */ addu $a0, $a0, $v1 -/* 050C08 80050008 260C0008 */ addiu $t4, $s0, 8 -/* 050C0C 8005000C AE2C0000 */ sw $t4, ($s1) -/* 050C10 80050010 AE0E0004 */ sw $t6, 4($s0) -/* 050C14 80050014 AE0D0000 */ sw $t5, ($s0) -/* 050C18 80050018 8E300000 */ lw $s0, ($s1) -/* 050C1C 8005001C 3C0D073F */ lui $t5, (0x073FC000 >> 16) # lui $t5, 0x73f -/* 050C20 80050020 35ADC000 */ ori $t5, (0x073FC000 & 0xFFFF) # ori $t5, $t5, 0xc000 -/* 050C24 80050024 260F0008 */ addiu $t7, $s0, 8 -/* 050C28 80050028 AE2F0000 */ sw $t7, ($s1) -/* 050C2C 8005002C AE000004 */ sw $zero, 4($s0) -/* 050C30 80050030 AE180000 */ sw $t8, ($s0) -/* 050C34 80050034 8E300000 */ lw $s0, ($s1) -/* 050C38 80050038 3C0CF000 */ lui $t4, 0xf000 -/* 050C3C 8005003C 3C0FE700 */ lui $t7, 0xe700 -/* 050C40 80050040 26190008 */ addiu $t9, $s0, 8 -/* 050C44 80050044 AE390000 */ sw $t9, ($s1) -/* 050C48 80050048 AE0D0004 */ sw $t5, 4($s0) -/* 050C4C 8005004C AE0C0000 */ sw $t4, ($s0) -/* 050C50 80050050 8E300000 */ lw $s0, ($s1) -/* 050C54 80050054 24050020 */ li $a1, 32 -/* 050C58 80050058 24060020 */ li $a2, 32 -/* 050C5C 8005005C 260E0008 */ addiu $t6, $s0, 8 -/* 050C60 80050060 AE2E0000 */ sw $t6, ($s1) -/* 050C64 80050064 AE000004 */ sw $zero, 4($s0) -/* 050C68 80050068 AE0F0000 */ sw $t7, ($s0) -/* 050C6C 8005006C 0C0114A9 */ jal func_800452A4 -/* 050C70 80050070 8C84459C */ lw $a0, %lo(gPortraitTextures)($a0) -/* 050C74 80050074 8FB800C4 */ lw $t8, 0xc4($sp) -/* 050C78 80050078 5300000A */ beql $t8, $zero, .L800500A4 -/* 050C7C 8005007C 8E300000 */ lw $s0, ($s1) -/* 050C80 80050080 8E300000 */ lw $s0, ($s1) -/* 050C84 80050084 3C0C0D00 */ lui $t4, %hi(D_0D0069F8) # $t4, 0xd00 -/* 050C88 80050088 258C69F8 */ addiu $t4, %lo(D_0D0069F8) # addiu $t4, $t4, 0x69f8 -/* 050C8C 8005008C 26190008 */ addiu $t9, $s0, 8 -/* 050C90 80050090 AE390000 */ sw $t9, ($s1) -/* 050C94 80050094 AE0C0004 */ sw $t4, 4($s0) -/* 050C98 80050098 10000008 */ b .L800500BC -/* 050C9C 8005009C AE120000 */ sw $s2, ($s0) -/* 050CA0 800500A0 8E300000 */ lw $s0, ($s1) -.L800500A4: -/* 050CA4 800500A4 3C0E0D00 */ lui $t6, %hi(D_0D0069E0) # $t6, 0xd00 -/* 050CA8 800500A8 25CE69E0 */ addiu $t6, %lo(D_0D0069E0) # addiu $t6, $t6, 0x69e0 -/* 050CAC 800500AC 260D0008 */ addiu $t5, $s0, 8 -/* 050CB0 800500B0 AE2D0000 */ sw $t5, ($s1) -/* 050CB4 800500B4 AE0E0004 */ sw $t6, 4($s0) -/* 050CB8 800500B8 AE120000 */ sw $s2, ($s0) -.L800500BC: -/* 050CBC 800500BC 8FAF00C0 */ lw $t7, 0xc0($sp) -/* 050CC0 800500C0 11E00022 */ beqz $t7, .L8005014C -/* 050CC4 800500C4 3C180D00 */ lui $t8, %hi(D_0D0069E0) # $t8, 0xd00 -/* 050CC8 800500C8 271869E0 */ addiu $t8, %lo(D_0D0069E0) # addiu $t8, $t8, 0x69e0 -/* 050CCC 800500CC AFB80028 */ sw $t8, 0x28($sp) -/* 050CD0 800500D0 8FA40034 */ lw $a0, 0x34($sp) -/* 050CD4 800500D4 8FA50030 */ lw $a1, 0x30($sp) -/* 050CD8 800500D8 00003025 */ move $a2, $zero -/* 050CDC 800500DC 0C0108CC */ jal func_80042330 -/* 050CE0 800500E0 3C073F80 */ lui $a3, 0x3f80 -/* 050CE4 800500E4 8E300000 */ lw $s0, ($s1) -/* 050CE8 800500E8 3C0C0D00 */ lui $t4, %hi(D_0D007A60) # $t4, 0xd00 -/* 050CEC 800500EC 258C7A60 */ addiu $t4, %lo(D_0D007A60) # addiu $t4, $t4, 0x7a60 -/* 050CF0 800500F0 26190008 */ addiu $t9, $s0, 8 -/* 050CF4 800500F4 AE390000 */ sw $t9, ($s1) -/* 050CF8 800500F8 AE0C0004 */ sw $t4, 4($s0) -/* 050CFC 800500FC AE120000 */ sw $s2, ($s0) -/* 050D00 80050100 3C048019 */ lui $a0, %hi(D_8018D3E4) # $a0, 0x8019 -/* 050D04 80050104 3C058019 */ lui $a1, %hi(D_8018D3E8) # $a1, 0x8019 -/* 050D08 80050108 3C068019 */ lui $a2, %hi(D_8018D3EC) # $a2, 0x8019 -/* 050D0C 8005010C 8CC6D3EC */ lw $a2, %lo(D_8018D3EC)($a2) -/* 050D10 80050110 8CA5D3E8 */ lw $a1, %lo(D_8018D3E8)($a1) -/* 050D14 80050114 8C84D3E4 */ lw $a0, %lo(D_8018D3E4)($a0) -/* 050D18 80050118 0C012CD7 */ jal func_8004B35C -/* 050D1C 8005011C 240700FF */ li $a3, 255 -/* 050D20 80050120 3C040D02 */ lui $a0, %hi(D_0D01A2D8) # $a0, 0xd02 -/* 050D24 80050124 2484A2D8 */ addiu $a0, %lo(D_0D01A2D8) # addiu $a0, $a0, -0x5d28 -/* 050D28 80050128 24050020 */ li $a1, 32 -/* 050D2C 8005012C 0C011249 */ jal func_80044924 -/* 050D30 80050130 24060020 */ li $a2, 32 -/* 050D34 80050134 8E300000 */ lw $s0, ($s1) -/* 050D38 80050138 260D0008 */ addiu $t5, $s0, 8 -/* 050D3C 8005013C AE2D0000 */ sw $t5, ($s1) -/* 050D40 80050140 AE120000 */ sw $s2, ($s0) -/* 050D44 80050144 8FAE0028 */ lw $t6, 0x28($sp) -/* 050D48 80050148 AE0E0004 */ sw $t6, 4($s0) -.L8005014C: -/* 050D4C 8005014C 8E300000 */ lw $s0, ($s1) -/* 050D50 80050150 240400FF */ li $a0, 255 -/* 050D54 80050154 240500FF */ li $a1, 255 -/* 050D58 80050158 260F0008 */ addiu $t7, $s0, 8 -/* 050D5C 8005015C AE2F0000 */ sw $t7, ($s1) -/* 050D60 80050160 AE120000 */ sw $s2, ($s0) -/* 050D64 80050164 8FB8002C */ lw $t8, 0x2c($sp) -/* 050D68 80050168 240600FF */ li $a2, 255 -/* 050D6C 8005016C AE180004 */ sw $t8, 4($s0) -/* 050D70 80050170 0C012CD7 */ jal func_8004B35C -/* 050D74 80050174 8FA700BC */ lw $a3, 0xbc($sp) -/* 050D78 80050178 8E300000 */ lw $s0, ($s1) -/* 050D7C 8005017C 3C0C0D00 */ lui $t4, %hi(D_0D007CB8) # $t4, 0xd00 -/* 050D80 80050180 258C7CB8 */ addiu $t4, %lo(D_0D007CB8) # addiu $t4, $t4, 0x7cb8 -/* 050D84 80050184 26190008 */ addiu $t9, $s0, 8 -/* 050D88 80050188 AE390000 */ sw $t9, ($s1) -/* 050D8C 8005018C AE0C0004 */ sw $t4, 4($s0) -/* 050D90 80050190 AE120000 */ sw $s2, ($s0) -/* 050D94 80050194 8E300000 */ lw $s0, ($s1) -/* 050D98 80050198 3C0F0D02 */ lui $t7, %hi(D_0D019458) # $t7, 0xd02 -/* 050D9C 8005019C 25EF9458 */ addiu $t7, %lo(D_0D019458) # addiu $t7, $t7, -0x6ba8 -/* 050DA0 800501A0 260D0008 */ addiu $t5, $s0, 8 -/* 050DA4 800501A4 AE2D0000 */ sw $t5, ($s1) -/* 050DA8 800501A8 3C0EFD10 */ lui $t6, 0xfd10 -/* 050DAC 800501AC AE0E0000 */ sw $t6, ($s0) -/* 050DB0 800501B0 AE0F0004 */ sw $t7, 4($s0) -/* 050DB4 800501B4 8E300000 */ lw $s0, ($s1) -/* 050DB8 800501B8 3C19E800 */ lui $t9, 0xe800 -/* 050DBC 800501BC 3C0DF500 */ lui $t5, (0xF5000100 >> 16) # lui $t5, 0xf500 -/* 050DC0 800501C0 26180008 */ addiu $t8, $s0, 8 -/* 050DC4 800501C4 AE380000 */ sw $t8, ($s1) -/* 050DC8 800501C8 AE000004 */ sw $zero, 4($s0) -/* 050DCC 800501CC AE190000 */ sw $t9, ($s0) -/* 050DD0 800501D0 8E300000 */ lw $s0, ($s1) -/* 050DD4 800501D4 35AD0100 */ ori $t5, (0xF5000100 & 0xFFFF) # ori $t5, $t5, 0x100 -/* 050DD8 800501D8 3C0E0700 */ lui $t6, 0x700 -/* 050DDC 800501DC 260C0008 */ addiu $t4, $s0, 8 -/* 050DE0 800501E0 AE2C0000 */ sw $t4, ($s1) -/* 050DE4 800501E4 AE0E0004 */ sw $t6, 4($s0) -/* 050DE8 800501E8 AE0D0000 */ sw $t5, ($s0) -/* 050DEC 800501EC 8E300000 */ lw $s0, ($s1) -/* 050DF0 800501F0 3C18E600 */ lui $t8, 0xe600 -/* 050DF4 800501F4 3C0D073F */ lui $t5, (0x073FC000 >> 16) # lui $t5, 0x73f -/* 050DF8 800501F8 260F0008 */ addiu $t7, $s0, 8 -/* 050DFC 800501FC AE2F0000 */ sw $t7, ($s1) -/* 050E00 80050200 AE000004 */ sw $zero, 4($s0) -/* 050E04 80050204 AE180000 */ sw $t8, ($s0) -/* 050E08 80050208 8E300000 */ lw $s0, ($s1) -/* 050E0C 8005020C 35ADC000 */ ori $t5, (0x073FC000 & 0xFFFF) # ori $t5, $t5, 0xc000 -/* 050E10 80050210 3C0CF000 */ lui $t4, 0xf000 -/* 050E14 80050214 26190008 */ addiu $t9, $s0, 8 -/* 050E18 80050218 AE390000 */ sw $t9, ($s1) -/* 050E1C 8005021C AE0D0004 */ sw $t5, 4($s0) -/* 050E20 80050220 AE0C0000 */ sw $t4, ($s0) -/* 050E24 80050224 8E300000 */ lw $s0, ($s1) -/* 050E28 80050228 3C0FE700 */ lui $t7, 0xe700 -/* 050E2C 8005022C 3C0C0D02 */ lui $t4, %hi(D_0D019658) # $t4, 0xd02 -/* 050E30 80050230 260E0008 */ addiu $t6, $s0, 8 -/* 050E34 80050234 AE2E0000 */ sw $t6, ($s1) -/* 050E38 80050238 AE000004 */ sw $zero, 4($s0) -/* 050E3C 8005023C AE0F0000 */ sw $t7, ($s0) -/* 050E40 80050240 87B800B2 */ lh $t8, 0xb2($sp) -/* 050E44 80050244 258C9658 */ addiu $t4, %lo(D_0D019658) # addiu $t4, $t4, -0x69a8 -/* 050E48 80050248 24050010 */ li $a1, 16 -/* 050E4C 8005024C 0018CA00 */ sll $t9, $t8, 8 -/* 050E50 80050250 032C2021 */ addu $a0, $t9, $t4 -/* 050E54 80050254 0C0114A9 */ jal func_800452A4 -/* 050E58 80050258 24060010 */ li $a2, 16 -/* 050E5C 8005025C 8FAD00C4 */ lw $t5, 0xc4($sp) -/* 050E60 80050260 11A00012 */ beqz $t5, .L800502AC -/* 050E64 80050264 3C014110 */ li $at, 0x41100000 # 9.000000 -/* 050E68 80050268 44819000 */ mtc1 $at, $f18 -/* 050E6C 8005026C C7B000A8 */ lwc1 $f16, 0xa8($sp) -/* 050E70 80050270 3C0140E0 */ li $at, 0x40E00000 # 7.000000 -/* 050E74 80050274 44815000 */ mtc1 $at, $f10 -/* 050E78 80050278 C7A800AC */ lwc1 $f8, 0xac($sp) -/* 050E7C 8005027C 46128100 */ add.s $f4, $f16, $f18 -/* 050E80 80050280 00003025 */ move $a2, $zero -/* 050E84 80050284 3C073F80 */ lui $a3, 0x3f80 -/* 050E88 80050288 460A4400 */ add.s $f16, $f8, $f10 -/* 050E8C 8005028C 4600218D */ trunc.w.s $f6, $f4 -/* 050E90 80050290 4600848D */ trunc.w.s $f18, $f16 -/* 050E94 80050294 44043000 */ mfc1 $a0, $f6 -/* 050E98 80050298 44059000 */ mfc1 $a1, $f18 -/* 050E9C 8005029C 0C0108CC */ jal func_80042330 -/* 050EA0 800502A0 00000000 */ nop -/* 050EA4 800502A4 10000012 */ b .L800502F0 -/* 050EA8 800502A8 8E300000 */ lw $s0, ($s1) -.L800502AC: -/* 050EAC 800502AC 3C014110 */ li $at, 0x41100000 # 9.000000 -/* 050EB0 800502B0 44813000 */ mtc1 $at, $f6 -/* 050EB4 800502B4 C7A400A8 */ lwc1 $f4, 0xa8($sp) -/* 050EB8 800502B8 3C0140E0 */ li $at, 0x40E00000 # 7.000000 -/* 050EBC 800502BC 44819000 */ mtc1 $at, $f18 -/* 050EC0 800502C0 C7B000AC */ lwc1 $f16, 0xac($sp) -/* 050EC4 800502C4 46062201 */ sub.s $f8, $f4, $f6 -/* 050EC8 800502C8 00003025 */ move $a2, $zero -/* 050ECC 800502CC 3C073F80 */ lui $a3, 0x3f80 -/* 050ED0 800502D0 46128100 */ add.s $f4, $f16, $f18 -/* 050ED4 800502D4 4600428D */ trunc.w.s $f10, $f8 -/* 050ED8 800502D8 4600218D */ trunc.w.s $f6, $f4 -/* 050EDC 800502DC 44045000 */ mfc1 $a0, $f10 -/* 050EE0 800502E0 44053000 */ mfc1 $a1, $f6 -/* 050EE4 800502E4 0C0108CC */ jal func_80042330 -/* 050EE8 800502E8 00000000 */ nop -/* 050EEC 800502EC 8E300000 */ lw $s0, ($s1) -.L800502F0: -/* 050EF0 800502F0 3C0D0D00 */ lui $t5, %hi(D_0D006980) # $t5, 0xd00 -/* 050EF4 800502F4 25AD6980 */ addiu $t5, %lo(D_0D006980) # addiu $t5, $t5, 0x6980 -/* 050EF8 800502F8 260C0008 */ addiu $t4, $s0, 8 -/* 050EFC 800502FC AE2C0000 */ sw $t4, ($s1) -/* 050F00 80050300 AE0D0004 */ sw $t5, 4($s0) -/* 050F04 80050304 AE120000 */ sw $s2, ($s0) -.L80050308: -/* 050F08 80050308 8FBF0024 */ lw $ra, 0x24($sp) -/* 050F0C 8005030C 8FB00018 */ lw $s0, 0x18($sp) -/* 050F10 80050310 8FB1001C */ lw $s1, 0x1c($sp) -/* 050F14 80050314 8FB20020 */ lw $s2, 0x20($sp) -/* 050F18 80050318 03E00008 */ jr $ra -/* 050F1C 8005031C 27BD00A8 */ addiu $sp, $sp, 0xa8 diff --git a/asm/non_matchings/hud_renderer/func_80050E34.s b/asm/non_matchings/hud_renderer/func_80050E34.s index 1966632c8..da42f30e5 100644 --- a/asm/non_matchings/hud_renderer/func_80050E34.s +++ b/asm/non_matchings/hud_renderer/func_80050E34.s @@ -300,8 +300,8 @@ glabel func_80050E34 /* 051EB8 800512B8 AC590000 */ sw $t9, ($v0) .L800512BC: /* 051EBC 800512BC 8E020000 */ lw $v0, ($s0) -/* 051EC0 800512C0 3C190D02 */ lui $t9, %hi(D_0D019E58) # $t9, 0xd02 -/* 051EC4 800512C4 27399E58 */ addiu $t9, %lo(D_0D019E58) # addiu $t9, $t9, -0x61a8 +/* 051EC0 800512C0 3C190D02 */ lui $t9, %hi(gTLUTHudTypeCRankTinyFont) # $t9, 0xd02 +/* 051EC4 800512C4 27399E58 */ addiu $t9, %lo(gTLUTHudTypeCRankTinyFont) # addiu $t9, $t9, -0x61a8 /* 051EC8 800512C8 244F0008 */ addiu $t7, $v0, 8 /* 051ECC 800512CC AE0F0000 */ sw $t7, ($s0) /* 051ED0 800512D0 3C18FD10 */ lui $t8, 0xfd10 @@ -343,8 +343,8 @@ glabel func_80050E34 /* 051F60 80051360 AC400004 */ sw $zero, 4($v0) /* 051F64 80051364 AC590000 */ sw $t9, ($v0) /* 051F68 80051368 8FAE00DC */ lw $t6, 0xdc($sp) -/* 051F6C 8005136C 3C190D02 */ lui $t9, %hi(D_0D01A058) # $t9, 0xd02 -/* 051F70 80051370 2739A058 */ addiu $t9, %lo(D_0D01A058) # addiu $t9, $t9, -0x5fa8 +/* 051F6C 8005136C 3C190D02 */ lui $t9, %hi(gTextureHudTypeCRankTinyFont) # $t9, 0xd02 +/* 051F70 80051370 2739A058 */ addiu $t9, %lo(gTextureHudTypeCRankTinyFont) # addiu $t9, $t9, -0x5fa8 /* 051F74 80051374 000E7980 */ sll $t7, $t6, 6 /* 051F78 80051378 25F80040 */ addiu $t8, $t7, 0x40 /* 051F7C 8005137C 0C0114A9 */ jal func_800452A4 @@ -408,8 +408,8 @@ glabel func_80050E34 /* 05205C 8005145C AFB80034 */ sw $t8, 0x34($sp) /* 052060 80051460 0C012CD7 */ jal func_8004B35C /* 052064 80051464 240700FF */ li $a3, 255 -/* 052068 80051468 3C040D02 */ lui $a0, %hi(D_0D01A2D8) # $a0, 0xd02 -/* 05206C 8005146C 2484A2D8 */ addiu $a0, %lo(D_0D01A2D8) # addiu $a0, $a0, -0x5d28 +/* 052068 80051468 3C040D02 */ lui $a0, %hi(gTextureCharacterPortraitBorder) # $a0, 0xd02 +/* 05206C 8005146C 2484A2D8 */ addiu $a0, %lo(gTextureCharacterPortraitBorder) # addiu $a0, $a0, -0x5d28 /* 052070 80051470 24050020 */ li $a1, 32 /* 052074 80051474 0C011249 */ jal func_80044924 /* 052078 80051478 24060020 */ li $a2, 32 diff --git a/assets.json b/assets.json index 19c55cb1c..e029306d1 100644 --- a/assets.json +++ b/assets.json @@ -332,12 +332,6 @@ "textures/common/tlut/132B50_17458.rgba16.ci8.png": {"meta":{"dims":[64,128], "pal":"0x17258"}, "offsets": {"us":["0x132B50", "0x17458"]}}, -"textures/common/tlut/132B50_19658.rgba16.ci8.png": {"meta":{"dims":[16,128], "pal":"0x19458"}, "offsets": {"us":["0x132B50", "0x19658"]}}, - -"textures/common/tlut/132B50_1A058.rgba16.ci8.png": {"meta":{"dims":[8,80], "pal":"0x19E58"}, "offsets": {"us":["0x132B50", "0x1A058"]}}, - -"textures/common/132B50_1A2D8.ia4.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x132B50", "0x1A2D8"]}}, - "textures/common/132B50_28DD8.rgba16.png": {"meta":{"dims":[32,16]}, "offsets": {"us":["0x132B50", "0x28DD8"]}}, "textures/common/132B50_291D8.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x132B50", "0x291D8"]}}, diff --git a/assets/hud_type_c.json b/assets/hud_type_c.json new file mode 100644 index 000000000..7d6cb01df --- /dev/null +++ b/assets/hud_type_c.json @@ -0,0 +1,25 @@ +{ +"gTLUTHudTypeCRankFont": {"output_dir": "hud_type_c", "rom_offset": "0x132B50", "block_offset": "0x19458", "width": 16, "height": 16, "type": "rgba16"}, +"gTextureHudTypeCRankFont1": {"output_dir": "hud_type_c", "rom_offset": "0x132B50", "block_offset": "0x19658", "width": 16, "height": 16, "type": "ci8", "tlut": "gTLUTHudTypeCRankFont"}, +"gTextureHudTypeCRankFont2": {"output_dir": "hud_type_c", "rom_offset": "0x132B50", "block_offset": "0x19758", "width": 16, "height": 16, "type": "ci8", "tlut": "gTLUTHudTypeCRankFont"}, +"gTextureHudTypeCRankFont3": {"output_dir": "hud_type_c", "rom_offset": "0x132B50", "block_offset": "0x19858", "width": 16, "height": 16, "type": "ci8", "tlut": "gTLUTHudTypeCRankFont"}, +"gTextureHudTypeCRankFont4": {"output_dir": "hud_type_c", "rom_offset": "0x132B50", "block_offset": "0x19958", "width": 16, "height": 16, "type": "ci8", "tlut": "gTLUTHudTypeCRankFont"}, +"gTextureHudTypeCRankFont5": {"output_dir": "hud_type_c", "rom_offset": "0x132B50", "block_offset": "0x19A58", "width": 16, "height": 16, "type": "ci8", "tlut": "gTLUTHudTypeCRankFont"}, +"gTextureHudTypeCRankFont6": {"output_dir": "hud_type_c", "rom_offset": "0x132B50", "block_offset": "0x19B58", "width": 16, "height": 16, "type": "ci8", "tlut": "gTLUTHudTypeCRankFont"}, +"gTextureHudTypeCRankFont7": {"output_dir": "hud_type_c", "rom_offset": "0x132B50", "block_offset": "0x19C58", "width": 16, "height": 16, "type": "ci8", "tlut": "gTLUTHudTypeCRankFont"}, +"gTextureHudTypeCRankFont8": {"output_dir": "hud_type_c", "rom_offset": "0x132B50", "block_offset": "0x19D58", "width": 16, "height": 16, "type": "ci8", "tlut": "gTLUTHudTypeCRankFont"}, + +"gTLUTHudTypeCRankTinyFont": {"output_dir": "hud_type_c", "rom_offset": "0x132B50", "block_offset": "0x19E58", "width": 16, "height": 16, "type": "rgba16"}, +"gTextureHudTypeCRankTinyFont0": {"output_dir": "hud_type_c", "rom_offset": "0x132B50", "block_offset": "0x1A058", "width": 8, "height": 8, "type": "ci8", "tlut": "gTLUTHudTypeCRankTinyFont"}, +"gTextureHudTypeCRankTinyFont1": {"output_dir": "hud_type_c", "rom_offset": "0x132B50", "block_offset": "0x1A098", "width": 8, "height": 8, "type": "ci8", "tlut": "gTLUTHudTypeCRankTinyFont"}, +"gTextureHudTypeCRankTinyFont2": {"output_dir": "hud_type_c", "rom_offset": "0x132B50", "block_offset": "0x1A0D8", "width": 8, "height": 8, "type": "ci8", "tlut": "gTLUTHudTypeCRankTinyFont"}, +"gTextureHudTypeCRankTinyFont3": {"output_dir": "hud_type_c", "rom_offset": "0x132B50", "block_offset": "0x1A118", "width": 8, "height": 8, "type": "ci8", "tlut": "gTLUTHudTypeCRankTinyFont"}, +"gTextureHudTypeCRankTinyFont4": {"output_dir": "hud_type_c", "rom_offset": "0x132B50", "block_offset": "0x1A158", "width": 8, "height": 8, "type": "ci8", "tlut": "gTLUTHudTypeCRankTinyFont"}, +"gTextureHudTypeCRankTinyFont5": {"output_dir": "hud_type_c", "rom_offset": "0x132B50", "block_offset": "0x1A198", "width": 8, "height": 8, "type": "ci8", "tlut": "gTLUTHudTypeCRankTinyFont"}, +"gTextureHudTypeCRankTinyFont6": {"output_dir": "hud_type_c", "rom_offset": "0x132B50", "block_offset": "0x1A1D8", "width": 8, "height": 8, "type": "ci8", "tlut": "gTLUTHudTypeCRankTinyFont"}, +"gTextureHudTypeCRankTinyFont7": {"output_dir": "hud_type_c", "rom_offset": "0x132B50", "block_offset": "0x1A218", "width": 8, "height": 8, "type": "ci8", "tlut": "gTLUTHudTypeCRankTinyFont"}, +"gTextureHudTypeCRankTinyFont8": {"output_dir": "hud_type_c", "rom_offset": "0x132B50", "block_offset": "0x1A258", "width": 8, "height": 8, "type": "ci8", "tlut": "gTLUTHudTypeCRankTinyFont"}, +"gTextureHudTypeCRankTinyFont9": {"output_dir": "hud_type_c", "rom_offset": "0x132B50", "block_offset": "0x1A298", "width": 8, "height": 8, "type": "ci8", "tlut": "gTLUTHudTypeCRankTinyFont"}, + +"gTextureCharacterPortraitBorder": {"output_dir": "hud_type_c", "rom_offset": "0x132B50", "block_offset": "0x1A2D8", "width": 32, "height": 32, "type": "ia4"} +} diff --git a/assets/include/hud_type_c.mk b/assets/include/hud_type_c.mk new file mode 100644 index 000000000..3b6408498 --- /dev/null +++ b/assets/include/hud_type_c.mk @@ -0,0 +1,64 @@ +HUD_TYPE_C_DIR := assets/hud_type_c + +HUD_TYPE_C_FONT_PALETTE := $(HUD_TYPE_C_DIR)/gTLUTHudTypeCRankFont.png + +HUD_TYPE_C_FONT_PNG := \ +$(HUD_TYPE_C_DIR)/gTextureHudTypeCRankFont1.png \ +$(HUD_TYPE_C_DIR)/gTextureHudTypeCRankFont2.png \ +$(HUD_TYPE_C_DIR)/gTextureHudTypeCRankFont3.png \ +$(HUD_TYPE_C_DIR)/gTextureHudTypeCRankFont4.png \ +$(HUD_TYPE_C_DIR)/gTextureHudTypeCRankFont5.png \ +$(HUD_TYPE_C_DIR)/gTextureHudTypeCRankFont6.png \ +$(HUD_TYPE_C_DIR)/gTextureHudTypeCRankFont7.png \ +$(HUD_TYPE_C_DIR)/gTextureHudTypeCRankFont8.png + +HUD_TYPE_C_TINY_FONT_PALETTE := $(HUD_TYPE_C_DIR)/gTLUTHudTypeCRankTinyFont.png + +HUD_TYPE_C_TINY_FONT_PNG := \ +$(HUD_TYPE_C_DIR)/gTextureHudTypeCRankTinyFont0.png \ +$(HUD_TYPE_C_DIR)/gTextureHudTypeCRankTinyFont1.png \ +$(HUD_TYPE_C_DIR)/gTextureHudTypeCRankTinyFont2.png \ +$(HUD_TYPE_C_DIR)/gTextureHudTypeCRankTinyFont3.png \ +$(HUD_TYPE_C_DIR)/gTextureHudTypeCRankTinyFont4.png \ +$(HUD_TYPE_C_DIR)/gTextureHudTypeCRankTinyFont5.png \ +$(HUD_TYPE_C_DIR)/gTextureHudTypeCRankTinyFont6.png \ +$(HUD_TYPE_C_DIR)/gTextureHudTypeCRankTinyFont7.png \ +$(HUD_TYPE_C_DIR)/gTextureHudTypeCRankTinyFont8.png \ +$(HUD_TYPE_C_DIR)/gTextureHudTypeCRankTinyFont9.png + +HUD_TYPE_C_PORTRAIT_BORDER_PNG := $(HUD_TYPE_C_DIR)/gTextureCharacterPortraitBorder.png + +HUD_TYPE_C_EXPORT_SENTINEL := $(HUD_TYPE_C_DIR)/.export + +$(BUILD_DIR)/src/common_textures.inc.o: $(HUD_TYPE_C_FONT_PNG:%.png=%.inc.c) $(HUD_TYPE_C_FONT_PALETTE:%.png=%.inc.c) +$(BUILD_DIR)/src/common_textures.inc.o: $(HUD_TYPE_C_TINY_FONT_PNG:%.png=%.inc.c) $(HUD_TYPE_C_TINY_FONT_PALETTE:%.png=%.inc.c) +$(BUILD_DIR)/src/common_textures.inc.o: $(HUD_TYPE_C_PORTRAIT_BORDER_PNG:%.png=%.inc.c) + +$(HUD_TYPE_C_FONT_PNG:%.png=%.inc.c): %.inc.c : %.png + $(N64GRAPHICS) -Z $@ -g $< -s u8 -f ci8 -c rgba16 -p $(HUD_TYPE_C_FONT_PALETTE) + +$(HUD_TYPE_C_FONT_PALETTE:%.png=%.inc.c): %.inc.c : %.png + $(N64GRAPHICS) -i $@ -g $< -s u8 -f rgba16 + +$(HUD_TYPE_C_TINY_FONT_PNG:%.png=%.inc.c): %.inc.c : %.png + $(N64GRAPHICS) -Z $@ -g $< -s u8 -f ci8 -c rgba16 -p $(HUD_TYPE_C_TINY_FONT_PALETTE) + +$(HUD_TYPE_C_TINY_FONT_PALETTE:%.png=%.inc.c): %.inc.c : %.png + $(N64GRAPHICS) -i $@ -g $< -s u8 -f rgba16 + +$(HUD_TYPE_C_PORTRAIT_BORDER_PNG:%.png=%.inc.c): %.inc.c : %.png + $(N64GRAPHICS) -i $@ -g $< -s u8 -f ia4 + +$(HUD_TYPE_C_FONT_PNG) $(HUD_TYPE_C_FONT_PALETTE): $(HUD_TYPE_C_EXPORT_SENTINEL) ; +$(HUD_TYPE_C_TINY_FONT_PNG) $(HUD_TYPE_C_TINY_FONT_PALETTE): $(HUD_TYPE_C_EXPORT_SENTINEL) ; +$(HUD_TYPE_C_PORTRAIT_BORDER_PNG): $(HUD_TYPE_C_EXPORT_SENTINEL) ; + +$(HUD_TYPE_C_EXPORT_SENTINEL): $(ASSET_DIR)/hud_type_c.json + $(ASSET_EXTRACT) $(BASEROM) $< + touch $@ + +.PHONY: distclean_hud_type_c +distclean_hud_type_c: + rm -rf $(HUD_TYPE_C_DIR) + +distclean_assets: distclean_hud_type_c diff --git a/ctx_includes.c b/ctx_includes.c index 91f2a760e..e5a2453af 100644 --- a/ctx_includes.c +++ b/ctx_includes.c @@ -78,7 +78,7 @@ #include "src/camera_junk.h" #include "src/ceremony_and_credits.h" #include "src/common_textures.h" -#include "src/credits_01.h" +#include "src/credits.h" #include "src/data_segment2.h" #include "src/framebuffers.h" #include "src/kart_dma.h" diff --git a/include/common_structs.h b/include/common_structs.h index 5c2753f4d..28e1111c9 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -427,7 +427,9 @@ typedef struct { f32 unk_04; char unk_08[0x4]; f32 unk_0C; - char unk_10[0x10]; + char unk_10[0x4]; + s32 objectIndex; + char unk_18[0x8]; } struct_D_8018CE10; // size = 0x20 typedef struct diff --git a/src/common_textures.h b/src/common_textures.h index d82ea6421..2cba175b8 100644 --- a/src/common_textures.h +++ b/src/common_textures.h @@ -242,7 +242,11 @@ extern s8 D_0D016A58[]; extern s8 D_0D017258[]; extern s16 tlutPad[]; extern s8 D_0D017458[]; -extern s8 D_0D01A2D8[]; +extern u8 gTLUTHudTypeCRankFont[]; +extern u8 gTextureHudTypeCRankFont[][256]; +extern u8 gTLUTHudTypeCRankTinyFont[]; +extern u8 gTextureHudTypeCRankTinyFont[][64]; +extern u8 gTextureCharacterPortraitBorder[]; extern s8 gTLUTPortraitMario[]; extern s8 gTLUTPortraitLuigi[]; extern s8 gTLUTPortraitPeach[]; @@ -259,9 +263,9 @@ extern s8 gTexturePortraitToad[]; extern s8 gTexturePortraitYoshi[]; extern s8 gTexturePortraitDonkeyKong[]; extern s8 gTexturePortraitWario[]; -extern s8 gTexturePortraitBowser[]; -extern s8 gTexturePortraitBombKartAndQuestionMark[]; -extern s8 gTexturePortraitQuestionMark[]; +extern u8 gTexturePortraitBowser[]; +extern u8 gTexturePortraitBombKart[]; +extern u8 gTexturePortraitQuestionMark[]; extern s8 gTLUTItemWindowNone[]; extern s8 gTLUTItemWindowBanana[]; extern s8 gTLUTItemWindowBananaBunch[]; diff --git a/src/common_textures.inc.c b/src/common_textures.inc.c index 0d2573b7e..ff4f68c78 100644 --- a/src/common_textures.inc.c +++ b/src/common_textures.inc.c @@ -2557,30 +2557,80 @@ u8 D_0D017458[] = { }; // font tlut for 12345678 -s8 D_0D019458[] = { - #include "textures/common/tlut/132B50_19658.rgba16.ci8.tlut.inc.c" +u8 gTLUTHudTypeCRankFont[] = { + #include "assets/hud_type_c/gTLUTHudTypeCRankFont.inc.c" }; // font 12345678 -s8 D_0D019658[] = { - #include "textures/common/tlut/132B50_19658.rgba16.ci8.inc.c" +u8 gTextureHudTypeCRankFont[][256] = { + { + #include "assets/hud_type_c/gTextureHudTypeCRankFont1.inc.c" + }, + { + #include "assets/hud_type_c/gTextureHudTypeCRankFont2.inc.c" + }, + { + #include "assets/hud_type_c/gTextureHudTypeCRankFont3.inc.c" + }, + { + #include "assets/hud_type_c/gTextureHudTypeCRankFont4.inc.c" + }, + { + #include "assets/hud_type_c/gTextureHudTypeCRankFont5.inc.c" + }, + { + #include "assets/hud_type_c/gTextureHudTypeCRankFont6.inc.c" + }, + { + #include "assets/hud_type_c/gTextureHudTypeCRankFont7.inc.c" + }, + { + #include "assets/hud_type_c/gTextureHudTypeCRankFont8.inc.c" + }, }; // font tlut for 0123456789 -s8 D_0D019E58[] = { - #include "textures/common/tlut/132B50_1A058.rgba16.ci8.tlut.inc.c" +u8 gTLUTHudTypeCRankTinyFont[] = { + #include "assets/hud_type_c/gTLUTHudTypeCRankTinyFont.inc.c" }; // 0123456789 -s8 D_0D01A058[] = { - #include "textures/common/tlut/132B50_1A058.rgba16.ci8.inc.c" +u8 gTextureHudTypeCRankTinyFont[][64] = { + { + #include "assets/hud_type_c/gTextureHudTypeCRankTinyFont0.inc.c" + }, + { + #include "assets/hud_type_c/gTextureHudTypeCRankTinyFont1.inc.c" + }, + { + #include "assets/hud_type_c/gTextureHudTypeCRankTinyFont2.inc.c" + }, + { + #include "assets/hud_type_c/gTextureHudTypeCRankTinyFont3.inc.c" + }, + { + #include "assets/hud_type_c/gTextureHudTypeCRankTinyFont4.inc.c" + }, + { + #include "assets/hud_type_c/gTextureHudTypeCRankTinyFont5.inc.c" + }, + { + #include "assets/hud_type_c/gTextureHudTypeCRankTinyFont6.inc.c" + }, + { + #include "assets/hud_type_c/gTextureHudTypeCRankTinyFont7.inc.c" + }, + { + #include "assets/hud_type_c/gTextureHudTypeCRankTinyFont8.inc.c" + }, + { + #include "assets/hud_type_c/gTextureHudTypeCRankTinyFont9.inc.c" + }, }; -// some padding or file split? - // Square -s8 D_0D01A2D8[] = { - #include "textures/common/132B50_1A2D8.ia4.inc.c" +u8 gTextureCharacterPortraitBorder[] = { + #include "assets/hud_type_c/gTextureCharacterPortraitBorder.inc.c" }; // 1A4D8 mario tlut @@ -2670,12 +2720,12 @@ s8 gTexturePortraitBowser[] = { }; // Mini Bomb Kart -s8 gTexturePortraitBombKart[] = { +u8 gTexturePortraitBombKart[] = { #include "assets/character_portraits/gTexturePortraitBombKart.inc.c" }; // Question Mark -s8 gTexturePortraitQuestionMark[] = { +u8 gTexturePortraitQuestionMark[] = { #include "assets/character_portraits/gTexturePortraitQuestionMark.inc.c" }; diff --git a/src/hud_renderer.c b/src/hud_renderer.c index f20de6f3b..b3355cb46 100644 --- a/src/hud_renderer.c +++ b/src/hud_renderer.c @@ -3078,218 +3078,45 @@ void func_8004FC78(s16 arg0, s16 arg1, s8 arg2) { gSPDisplayList(gDisplayListHead++, D_0D007EB8); } -#ifdef MIPS_TO_C -//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b -? func_80044924(s8 *, ?, ?); /* extern */ -extern ? D_0D019458; -extern ? D_0D019658; -extern s32 D_8018D3E0; -extern s32 D_8018D3E4; -extern s32 D_8018D3E8; -extern s32 D_8018D3EC; -static u32 gPortraitTLUTs[8] = { - (u32) gTLUTPortraitMario, - (u32) gTLUTPortraitLuigi, - (u32) gTLUTPortraitYoshi, - (u32) gTLUTPortraitToad, - (u32) gTLUTPortraitDonkeyKong, - (u32) gTLUTPortraitWario, - (u32) gTLUTPortraitPeach, - (u32) gTLUTPortraitBowser, -}; -static s8 *gPortraitTextures[9] = { - gTexturePortraitMario, - gTexturePortraitLuigi, - gTexturePortraitYoshi, - gTexturePortraitToad, - gTexturePortraitDonkeyKong, - gTexturePortraitWario, - gTexturePortraitPeach, - gTexturePortraitBowser, - NULL, -}; -s16 gCurrentCourseId; /* unable to generate initializer */ - void func_8004FDB4(f32 arg0, f32 arg1, s16 arg2, s16 arg3, s16 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8) { - s32 sp34; - s32 sp30; - Gfx *sp2C; - Gfx *sp28; - Gfx *temp_s0; - Gfx *temp_s0_10; - Gfx *temp_s0_11; - Gfx *temp_s0_12; - Gfx *temp_s0_13; - Gfx *temp_s0_14; - Gfx *temp_s0_15; - Gfx *temp_s0_16; - Gfx *temp_s0_17; - Gfx *temp_s0_18; - Gfx *temp_s0_19; - Gfx *temp_s0_20; - Gfx *temp_s0_21; - Gfx *temp_s0_22; - Gfx *temp_s0_23; - Gfx *temp_s0_24; - Gfx *temp_s0_25; - Gfx *temp_s0_26; - Gfx *temp_s0_27; - Gfx *temp_s0_28; - Gfx *temp_s0_2; - Gfx *temp_s0_3; - Gfx *temp_s0_4; - Gfx *temp_s0_5; - Gfx *temp_s0_6; - Gfx *temp_s0_7; - Gfx *temp_s0_8; - Gfx *temp_s0_9; - s32 temp_f10; - s32 temp_f8; - - if ((gCurrentCourseId == 4) && (arg3 < 3) && (arg8 == 0)) { + if ((gCurrentCourseId == COURSE_YOSHI_VALLEY) && (arg3 < 3) && (arg8 == 0)) { func_80042330((s32) arg0, (s32) arg1, 0U, 1.0f); - temp_s0 = gDisplayListHead; - gDisplayListHead = temp_s0 + 8; - temp_s0->words.w1 = (u32) D_0D007DB8; - temp_s0->words.w0 = 0x06000000; + gSPDisplayList(gDisplayListHead++, D_0D007DB8); func_8004B35C(0x000000FF, 0x000000FF, 0x000000FF, D_8018D3E0); - temp_s0_2 = gDisplayListHead; - gDisplayListHead = temp_s0_2 + 8; - temp_s0_2->words.w0 = 0xFD100000; - temp_s0_2->words.w1 = (u32) gTLUTPortraitBombKartAndQuestionMark; - temp_s0_3 = gDisplayListHead; - gDisplayListHead = temp_s0_3 + 8; - temp_s0_3->words.w1 = 0; - temp_s0_3->words.w0 = 0xE8000000; - temp_s0_4 = gDisplayListHead; - gDisplayListHead = temp_s0_4 + 8; - temp_s0_4->words.w1 = 0x07000000; - temp_s0_4->words.w0 = 0xF5000100; - temp_s0_5 = gDisplayListHead; - gDisplayListHead = temp_s0_5 + 8; - temp_s0_5->words.w1 = 0; - temp_s0_5->words.w0 = 0xE6000000; - temp_s0_6 = gDisplayListHead; - gDisplayListHead = temp_s0_6 + 8; - temp_s0_6->words.w1 = 0x073FC000; - temp_s0_6->words.w0 = 0xF0000000; - temp_s0_7 = gDisplayListHead; - gDisplayListHead = temp_s0_7 + 8; - temp_s0_7->words.w1 = 0; - temp_s0_7->words.w0 = 0xE7000000; + gDPLoadTLUT_pal256(gDisplayListHead++, gTLUTPortraitBombKartAndQuestionMark); func_800452A4(gTexturePortraitQuestionMark, 0x00000020, 0x00000020); - temp_s0_8 = gDisplayListHead; - gDisplayListHead = temp_s0_8 + 8; - temp_s0_8->words.w1 = (u32) D_0D0069E0; + gSPDisplayList(gDisplayListHead++, D_0D0069E0); } else { - temp_f8 = (s32) arg0; - temp_f10 = (s32) arg1; - sp34 = temp_f8; - sp30 = temp_f10; - func_80042330(temp_f8, temp_f10, 0U, 1.0f); - temp_s0_9 = gDisplayListHead; - gDisplayListHead = temp_s0_9 + 8; - temp_s0_9->words.w1 = (u32) D_0D007DB8; - temp_s0_9->words.w0 = 0x06000000; - sp2C = D_0D007DB8; + func_80042330(arg0, arg1, 0U, 1.0f); + gSPDisplayList(gDisplayListHead++, D_0D007DB8); func_8004B35C(0x000000FF, 0x000000FF, 0x000000FF, arg5); - temp_s0_10 = gDisplayListHead; - gDisplayListHead = temp_s0_10 + 8; - temp_s0_10->words.w0 = 0xFD100000; - temp_s0_10->words.w1 = gPortraitTLUTs[arg4]; - temp_s0_11 = gDisplayListHead; - gDisplayListHead = temp_s0_11 + 8; - temp_s0_11->words.w1 = 0; - temp_s0_11->words.w0 = 0xE8000000; - temp_s0_12 = gDisplayListHead; - gDisplayListHead = temp_s0_12 + 8; - temp_s0_12->words.w1 = 0x07000000; - temp_s0_12->words.w0 = 0xF5000100; - temp_s0_13 = gDisplayListHead; - gDisplayListHead = temp_s0_13 + 8; - temp_s0_13->words.w1 = 0; - temp_s0_13->words.w0 = 0xE6000000; - temp_s0_14 = gDisplayListHead; - gDisplayListHead = temp_s0_14 + 8; - temp_s0_14->words.w1 = 0x073FC000; - temp_s0_14->words.w0 = 0xF0000000; - temp_s0_15 = gDisplayListHead; - gDisplayListHead = temp_s0_15 + 8; - temp_s0_15->words.w1 = 0; - temp_s0_15->words.w0 = 0xE7000000; + gDPLoadTLUT_pal256(gDisplayListHead++, gPortraitTLUTs[arg4]); func_800452A4(gPortraitTextures[arg4], 0x00000020, 0x00000020); if (arg7 != 0) { - temp_s0_16 = gDisplayListHead; - gDisplayListHead = temp_s0_16 + 8; - temp_s0_16->words.w1 = (u32) D_0D0069F8; + gSPDisplayList(gDisplayListHead++, D_0D0069F8); } else { - temp_s0_17 = gDisplayListHead; - gDisplayListHead = temp_s0_17 + 8; - temp_s0_17->words.w1 = (u32) D_0D0069E0; + gSPDisplayList(gDisplayListHead++, D_0D0069E0); } - gDisplayListHead->words.w0 = 0x06000000; if (arg6 != 0) { - sp28 = D_0D0069E0; - func_80042330(sp34, sp30, 0U, 1.0f); - temp_s0_18 = gDisplayListHead; - gDisplayListHead = temp_s0_18 + 8; - temp_s0_18->words.w1 = (u32) D_0D007A60; - temp_s0_18->words.w0 = 0x06000000; + func_80042330(arg0, arg1, 0U, 1.0f); + gSPDisplayList(gDisplayListHead++, D_0D007A60); func_8004B35C(D_8018D3E4, D_8018D3E8, D_8018D3EC, 0x000000FF); - func_80044924(D_0D01A2D8, 0x20, 0x20); - temp_s0_19 = gDisplayListHead; - gDisplayListHead = temp_s0_19 + 8; - temp_s0_19->words.w0 = 0x06000000; - temp_s0_19->words.w1 = (u32) sp28; + func_80044924(gTextureCharacterPortraitBorder, 0x20, 0x20); + gSPDisplayList(gDisplayListHead++, D_0D0069E0); } - temp_s0_20 = gDisplayListHead; - gDisplayListHead = temp_s0_20 + 8; - temp_s0_20->words.w0 = 0x06000000; - temp_s0_20->words.w1 = (u32) sp2C; + gSPDisplayList(gDisplayListHead++, D_0D007DB8); func_8004B35C(0x000000FF, 0x000000FF, 0x000000FF, arg5); - temp_s0_21 = gDisplayListHead; - gDisplayListHead = temp_s0_21 + 8; - temp_s0_21->words.w1 = (u32) D_0D007CB8; - temp_s0_21->words.w0 = 0x06000000; - temp_s0_22 = gDisplayListHead; - gDisplayListHead = temp_s0_22 + 8; - temp_s0_22->words.w0 = 0xFD100000; - temp_s0_22->words.w1 = (u32) &D_0D019458; - temp_s0_23 = gDisplayListHead; - gDisplayListHead = temp_s0_23 + 8; - temp_s0_23->words.w1 = 0; - temp_s0_23->words.w0 = 0xE8000000; - temp_s0_24 = gDisplayListHead; - gDisplayListHead = temp_s0_24 + 8; - temp_s0_24->words.w1 = 0x07000000; - temp_s0_24->words.w0 = 0xF5000100; - temp_s0_25 = gDisplayListHead; - gDisplayListHead = temp_s0_25 + 8; - temp_s0_25->words.w1 = 0; - temp_s0_25->words.w0 = 0xE6000000; - temp_s0_26 = gDisplayListHead; - gDisplayListHead = temp_s0_26 + 8; - temp_s0_26->words.w1 = 0x073FC000; - temp_s0_26->words.w0 = 0xF0000000; - temp_s0_27 = gDisplayListHead; - gDisplayListHead = temp_s0_27 + 8; - temp_s0_27->words.w1 = 0; - temp_s0_27->words.w0 = 0xE7000000; - func_800452A4((arg2 << 8) + &D_0D019658, 0x00000010, 0x00000010); + gSPDisplayList(gDisplayListHead++, D_0D007CB8); + gDPLoadTLUT_pal256(gDisplayListHead++, gTLUTHudTypeCRankFont); + func_800452A4(gTextureHudTypeCRankFont[arg2], 0x00000010, 0x00000010); if (arg7 != 0) { func_80042330((s32) (arg0 + 9.0f), (s32) (arg1 + 7.0f), 0U, 1.0f); } else { func_80042330((s32) (arg0 - 9.0f), (s32) (arg1 + 7.0f), 0U, 1.0f); } - temp_s0_28 = gDisplayListHead; - gDisplayListHead = temp_s0_28 + 8; - temp_s0_28->words.w1 = (u32) D_0D006980; + gSPDisplayList(gDisplayListHead++, D_0D006980); } - gDisplayListHead->words.w0 = 0x06000000; } -#else -GLOBAL_ASM("asm/non_matchings/hud_renderer/func_8004FDB4.s") -#endif #ifdef MIPS_TO_C //generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b @@ -3632,238 +3459,86 @@ void func_80050C68(void) { GLOBAL_ASM("asm/non_matchings/hud_renderer/func_80050C68.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b -? func_80044924(s8 *, ?, ?); /* extern */ -s32 func_80050644(s32, s32 *, s32 *, s32); /* extern */ -extern ? D_0D019E58; -extern ? D_0D01A058; -extern u16 D_801656C0; -extern u16 D_801656D0; -extern u16 D_801656E0; -extern ? D_8018CE24; -extern s32 D_8018D3E4; -extern s32 D_8018D3E8; -extern s32 D_8018D3EC; -static u32 gPortraitTLUTs[8] = { - (u32) gTLUTPortraitMario, - (u32) gTLUTPortraitLuigi, - (u32) gTLUTPortraitYoshi, - (u32) gTLUTPortraitToad, - (u32) gTLUTPortraitDonkeyKong, - (u32) gTLUTPortraitWario, - (u32) gTLUTPortraitPeach, - (u32) gTLUTPortraitBowser, -}; -static ? gPortraitTextures; /* unable to generate initializer */ -s16 gCurrentCourseId; /* unable to generate initializer */ +#ifdef NON_MATCHING +extern struct_D_8018CE10 D_8018CE10[]; +// Something about the handling of the `player` variable is weird. +// All commands are preset and correct, 2 of them are out of position void func_80050E34(s32 playerId, s32 arg1) { - s32 spD4; + s32 objectIndex; s32 spD0; s32 spCC; + s32 stackPadding; s32 spC4; + s32 lapCount; + s32 characterId; s32 spB8; - Player *spAC; - s32 sp3C; /* compiler-managed */ - s16 *sp38; - Gfx *sp34; - Gfx *temp_v0_10; - Gfx *temp_v0_11; - Gfx *temp_v0_12; - Gfx *temp_v0_13; - Gfx *temp_v0_14; - Gfx *temp_v0_15; - Gfx *temp_v0_16; - Gfx *temp_v0_17; - Gfx *temp_v0_18; - Gfx *temp_v0_19; - Gfx *temp_v0_20; - Gfx *temp_v0_21; - Gfx *temp_v0_22; - Gfx *temp_v0_23; - Gfx *temp_v0_24; - Gfx *temp_v0_25; - Gfx *temp_v0_26; - Gfx *temp_v0_27; - Gfx *temp_v0_28; - Gfx *temp_v0_3; - Gfx *temp_v0_4; - Gfx *temp_v0_5; - Gfx *temp_v0_6; - Gfx *temp_v0_7; - Gfx *temp_v0_8; - Gfx *temp_v0_9; - Player *temp_v0; - f32 *temp_a0; - s16 *temp_a1; - s32 temp_s0; - s32 temp_t2; s32 temp_v0_2; - struct_80165C18_entry *temp_s1_2; - u16 temp_s1; + struct_80165C18_entry *object; + Player *player; + + player = &gPlayerOne[playerId]; + lapCount = gLapCountByPlayerId[playerId]; + characterId = player->characterId; + objectIndex = D_8018CE10[playerId].objectIndex; - temp_v0 = &gPlayerOne[playerId]; - spAC = temp_v0; - temp_s0 = gLapCountByPlayerId[playerId]; - temp_s1 = temp_v0->characterId; if (gPlayerCountSelection1 == 1) { spC4 = 0x00000012; } else { spC4 = 0x00000078; } - spD4 = *(&D_8018CE24 + (playerId << 5)); - temp_v0_2 = func_80050644(playerId & 0xFFFF, &spD0, &spCC, playerId); + + temp_v0_2 = func_80050644(playerId, &spD0, &spCC); if ((temp_v0_2 == 2) || (temp_v0_2 == 3)) { spB8 = 1; } else { spB8 = 0; } - temp_t2 = temp_s1 * 4; - if ((gCurrentCourseId == 4) && (temp_s0 < 3)) { - temp_v0_3 = gDisplayListHead; - gDisplayListHead = temp_v0_3 + 8; - temp_v0_3->words.w0 = 0x06000000; - temp_v0_3->words.w1 = (u32) D_0D007DB8; - temp_v0_4 = gDisplayListHead; - gDisplayListHead = temp_v0_4 + 8; - temp_v0_4->words.w0 = 0xFD100000; - temp_v0_4->words.w1 = (u32) gTLUTPortraitBombKartAndQuestionMark; - temp_v0_5 = gDisplayListHead; - gDisplayListHead = temp_v0_5 + 8; - temp_v0_5->words.w1 = 0; - temp_v0_5->words.w0 = 0xE8000000; - temp_v0_6 = gDisplayListHead; - gDisplayListHead = temp_v0_6 + 8; - temp_v0_6->words.w1 = 0x07000000; - temp_v0_6->words.w0 = 0xF5000100; - temp_v0_7 = gDisplayListHead; - gDisplayListHead = temp_v0_7 + 8; - temp_v0_7->words.w1 = 0; - temp_v0_7->words.w0 = 0xE6000000; - temp_v0_8 = gDisplayListHead; - gDisplayListHead = temp_v0_8 + 8; - temp_v0_8->words.w1 = 0x073FC000; - temp_v0_8->words.w0 = 0xF0000000; - temp_v0_9 = gDisplayListHead; - gDisplayListHead = temp_v0_9 + 8; - temp_v0_9->words.w1 = 0; - temp_v0_9->words.w0 = 0xE7000000; - spD4 = spD4; + + if ((gCurrentCourseId == COURSE_YOSHI_VALLEY) && (lapCount < 3)) { + gSPDisplayList(gDisplayListHead++, D_0D007DB8); + gDPLoadTLUT_pal256(gDisplayListHead++, gTLUTPortraitBombKartAndQuestionMark); func_800452A4(gTexturePortraitQuestionMark, 0x00000020, 0x00000020); - temp_s1_2 = &D_80165C18[spD4]; - temp_s1_2->unk_004[0] = temp_s1_2->unk_028[0] + (f32) (spD0 + 0x20); - temp_s1_2->unk_004[2] = temp_s1_2->unk_028[2]; - temp_s1_2->unk_004[1] = temp_s1_2->unk_028[1] + (f32) (spC4 + spCC); - func_80042E00(temp_s1_2->unk_004, (s16 *) temp_s1_2->unk_0BE, temp_s1_2->unk_000); - temp_v0_10 = gDisplayListHead; - gDisplayListHead = temp_v0_10 + 8; - temp_v0_10->words.w0 = 0x06000000; - temp_v0_10->words.w1 = (u32) D_0D0069E0; - return; - } - temp_v0_11 = gDisplayListHead; - gDisplayListHead = temp_v0_11 + 8; - temp_v0_11->words.w0 = 0xFD100000; - temp_v0_11->words.w1 = gPortraitTLUTs[temp_s1]; - temp_v0_12 = gDisplayListHead; - gDisplayListHead = temp_v0_12 + 8; - temp_v0_12->words.w1 = 0; - temp_v0_12->words.w0 = 0xE8000000; - temp_v0_13 = gDisplayListHead; - gDisplayListHead = temp_v0_13 + 8; - temp_v0_13->words.w1 = 0x07000000; - temp_v0_13->words.w0 = 0xF5000100; - temp_v0_14 = gDisplayListHead; - gDisplayListHead = temp_v0_14 + 8; - temp_v0_14->words.w1 = 0; - temp_v0_14->words.w0 = 0xE6000000; - temp_v0_15 = gDisplayListHead; - gDisplayListHead = temp_v0_15 + 8; - temp_v0_15->words.w1 = 0x073FC000; - temp_v0_15->words.w0 = 0xF0000000; - temp_v0_16 = gDisplayListHead; - gDisplayListHead = temp_v0_16 + 8; - temp_v0_16->words.w1 = 0; - temp_v0_16->words.w0 = 0xE7000000; - temp_v0_17 = gDisplayListHead; - gDisplayListHead = temp_v0_17 + 8; - temp_v0_17->words.w1 = (u32) D_0D007DB8; - temp_v0_17->words.w0 = 0x06000000; - if (spAC->unk_0BC & 0x200) { - sp3C = temp_t2; - func_8004B614((s32) D_801656C0, (s32) D_801656D0, (s32) D_801656E0, 0x00000080, 0x00000080, 0x00000080, (s32) D_80165C18[spD4].unk_0A0); + object = &D_80165C18[objectIndex]; + object->unk_004[0] = object->unk_028[0] + ((f32) (spD0 + 0x20)); + object->unk_004[1] = object->unk_028[1] + ((f32) (spC4 + spCC)); + object->unk_004[2] = object->unk_028[2]; + func_80042E00(object->unk_004, object->unk_0BE, object->unk_000); + gSPDisplayList(gDisplayListHead++, D_0D0069E0); } else { - sp3C = temp_t2; - func_8004B2BC((s32) D_80165C18[spD4].unk_0A0); - } - func_800452A4(*(&gPortraitTextures + sp3C), 0x00000020, 0x00000020); - temp_a0 = &D_80165C18[spD4] + 4; - temp_a1 = &D_80165C18[spD4] + 0xBE; - sp38 = temp_a1; - sp3C = temp_a0; - D_80165C18[spD4].unk_004[0] = D_80165C18[spD4].unk_028[0] + (f32) (spD0 + 0x20); - D_80165C18[spD4].unk_004[2] = D_80165C18[spD4].unk_028[2]; - D_80165C18[spD4].unk_004[1] = D_80165C18[spD4].unk_028[1] + (f32) (spC4 + spCC); - func_80042E00(temp_a0, temp_a1, D_80165C18[spD4].unk_000); - if (spB8 != 0) { - temp_v0_18 = gDisplayListHead; - gDisplayListHead = temp_v0_18 + 8; - temp_v0_18->words.w1 = (u32) D_0D0069F8; - temp_v0_18->words.w0 = 0x06000000; - } else { - temp_v0_19 = gDisplayListHead; - gDisplayListHead = temp_v0_19 + 8; - temp_v0_19->words.w1 = (u32) D_0D0069E0; - temp_v0_19->words.w0 = 0x06000000; - } - temp_v0_20 = gDisplayListHead; - gDisplayListHead = temp_v0_20 + 8; - temp_v0_20->words.w0 = 0xFD100000; - temp_v0_20->words.w1 = (u32) &D_0D019E58; - temp_v0_21 = gDisplayListHead; - gDisplayListHead = temp_v0_21 + 8; - temp_v0_21->words.w1 = 0; - temp_v0_21->words.w0 = 0xE8000000; - temp_v0_22 = gDisplayListHead; - gDisplayListHead = temp_v0_22 + 8; - temp_v0_22->words.w1 = 0x07000000; - temp_v0_22->words.w0 = 0xF5000100; - temp_v0_23 = gDisplayListHead; - gDisplayListHead = temp_v0_23 + 8; - temp_v0_23->words.w1 = 0; - temp_v0_23->words.w0 = 0xE6000000; - temp_v0_24 = gDisplayListHead; - gDisplayListHead = temp_v0_24 + 8; - temp_v0_24->words.w1 = 0x073FC000; - temp_v0_24->words.w0 = 0xF0000000; - temp_v0_25 = gDisplayListHead; - gDisplayListHead = temp_v0_25 + 8; - temp_v0_25->words.w1 = 0; - temp_v0_25->words.w0 = 0xE7000000; - func_800452A4((arg1 << 6) + 0x40 + &D_0D01A058, 8, 8); - if (spB8 != 0) { - func_80042330(spD0 + 0x26, spC4 + spCC + 4, 0U, 1.0f); - } else { - func_80042330(spD0 + 0x1B, spC4 + spCC + 4, 0U, 1.0f); - } - temp_v0_26 = gDisplayListHead; - gDisplayListHead = temp_v0_26 + 8; - temp_v0_26->words.w0 = 0x06000000; - temp_v0_26->words.w1 = (u32) D_0D006950; - if ((spAC == gPlayerOne) && (gScreenModeSelection == 0)) { - temp_v0_27 = gDisplayListHead; - gDisplayListHead = temp_v0_27 + 8; - temp_v0_27->words.w1 = (u32) D_0D007A40; - temp_v0_27->words.w0 = 0x06000000; - sp34 = D_0D0069E0; - func_8004B35C(D_8018D3E4, D_8018D3E8, D_8018D3EC, 0x000000FF); - func_80044924(D_0D01A2D8, 0x20, 0x20); - func_80042E00(sp3C, sp38, D_80165C18[spD4].unk_000); - temp_v0_28 = gDisplayListHead; - gDisplayListHead = temp_v0_28 + 8; - temp_v0_28->words.w0 = 0x06000000; - temp_v0_28->words.w1 = (u32) sp34; + gDPLoadTLUT_pal256(gDisplayListHead++, gPortraitTLUTs[characterId]); + gSPDisplayList(gDisplayListHead++, D_0D007DB8); + if (player->unk_0BC & 0x200) { + func_8004B614((s32) D_801656C0, (s32) D_801656D0, (s32) D_801656E0, 0x00000080, 0x00000080, 0x00000080, (s32) D_80165C18[objectIndex].unk_0A0); + } else { + func_8004B2BC((s32) D_80165C18[objectIndex].unk_0A0); + } + func_800452A4(gPortraitTextures[characterId], 0x00000020, 0x00000020); + object = &D_80165C18[objectIndex]; + object->unk_004[0] = object->unk_028[0] + ((f32) (spD0 + 0x20)); + object->unk_004[1] = object->unk_028[1] + ((f32) (spC4 + spCC)); + object->unk_004[2] = object->unk_028[2]; + func_80042E00(object->unk_004, object->unk_0BE, object->unk_000); + if (spB8 != 0) { + gSPDisplayList(gDisplayListHead++, D_0D0069F8); + } else { + gSPDisplayList(gDisplayListHead++, D_0D0069E0); + } + gDPLoadTLUT_pal256(gDisplayListHead++, gTLUTHudTypeCRankTinyFont); + func_800452A4(gTextureHudTypeCRankTinyFont[arg1 + 1], 8, 8); + if (spB8 != 0) { + func_80042330(spD0 + 0x26, (spC4 + spCC) + 4, 0U, 1.0f); + } else { + func_80042330(spD0 + 0x1B, (spC4 + spCC) + 4, 0U, 1.0f); + } + gSPDisplayList(gDisplayListHead++, D_0D006950); + if ((player == gPlayerOne) && (gScreenModeSelection == 0)) { + gSPDisplayList(gDisplayListHead++, D_0D007A40); + func_8004B35C(D_8018D3E4, D_8018D3E8, D_8018D3EC, 0x000000FF); + func_80044924(gTextureCharacterPortraitBorder, 0x00000020, 0x00000020); + func_80042E00(object->unk_004, object->unk_0BE, object->unk_000); + gSPDisplayList(gDisplayListHead++, D_0D0069E0); + } } } #else diff --git a/src/hud_renderer.h b/src/hud_renderer.h index d62718457..3d5412ef9 100644 --- a/src/hud_renderer.h +++ b/src/hud_renderer.h @@ -298,9 +298,11 @@ void func_8004F950(s32, s32, s32, s32); void func_8004F9CC(s32, s32, s32); void func_8004FA78(s32); void func_8004FC78(s16, s16, s8); +void func_8004FDB4(f32, f32, s16, s16, s16, s32, s32, s32, s32); void func_80050320(); s32 func_80050644(u16, s32*, s32*); +void func_80050E34(s32, s32); void func_800514BC(); void func_80051638(s32); @@ -418,8 +420,17 @@ extern UnkActorInner D_8018C830; extern u8 *D_8018D1E0; extern s32 D_8018D1F0; +extern s32 D_8018D3E0; // some alpha +extern s32 D_8018D3E4; // some red +extern s32 D_8018D3E8; // some green +extern s32 D_8018D3EC; // some blue + extern struct UnkStruct_800DC5EC *D_800DC5F0; +// Probably aren't really part of this file, but don't have a better place to put them +extern u8 *gPortraitTLUTs[]; +extern u8 *gPortraitTextures[]; + extern Lights1 D_800E4638; extern Lights1 D_800E4650; extern Lights1 D_800E4668; diff --git a/undefined_syms.txt b/undefined_syms.txt index 1b94d0bf6..1e9a0c70a 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -483,11 +483,11 @@ D_0D00C158 = 0x0D00C158; D_0D00C558 = 0x0D00C558; D_0D00D258 = 0x0D00D258; D_0D015258 = 0x0D015258; -D_0D019458 = 0x0D019458; -D_0D019658 = 0x0D019658; -D_0D019E58 = 0x0D019E58; -D_0D01A058 = 0x0D01A058; -D_0D01A2D8 = 0x0D01A2D8; +gTLUTHudTypeCRankFont = 0x0D019458; +gTextureHudTypeCRankFont = 0x0D019658; +gTLUTHudTypeCRankTinyFont = 0x0D019E58; +gTextureHudTypeCRankTinyFont = 0x0D01A058; +gTextureCharacterPortraitBorder = 0x0D01A2D8; gTLUTPortraitMario = 0x0D01A4D8; gTLUTPortraitLuigi = 0x0D01A6D8; gTLUTPortraitPeach = 0x0D01A8D8;