crash_screen decomp and misc (#221)

* crash_screen decomp and misc
This commit is contained in:
MegaMech 2022-06-14 02:37:54 -06:00 committed by GitHub
parent ed3dad7e1a
commit d9bd7bfbc0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
25 changed files with 435 additions and 1559 deletions

View File

@ -1,70 +0,0 @@
glabel func_80290CAC
/* 0FA2BC 80290CAC 00047602 */ srl $t6, $a0, 0x18
/* 0FA2C0 80290CB0 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 0FA2C4 80290CB4 000E7880 */ sll $t7, $t6, 2
/* 0FA2C8 80290CB8 3C188015 */ lui $t8, %hi(gSegmentTable)
/* 0FA2CC 80290CBC 030FC021 */ addu $t8, $t8, $t7
/* 0FA2D0 80290CC0 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
/* 0FA2D4 80290CC4 8F180258 */ lw $t8, %lo(gSegmentTable)($t8)
/* 0FA2D8 80290CC8 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 0FA2DC 80290CCC 0081C824 */ and $t9, $a0, $at
/* 0FA2E0 80290CD0 AFB00018 */ sw $s0, 0x18($sp)
/* 0FA2E4 80290CD4 3C018000 */ lui $at, 0x8000
/* 0FA2E8 80290CD8 03198021 */ addu $s0, $t8, $t9
/* 0FA2EC 80290CDC AFBF002C */ sw $ra, 0x2c($sp)
/* 0FA2F0 80290CE0 AFB40028 */ sw $s4, 0x28($sp)
/* 0FA2F4 80290CE4 AFB30024 */ sw $s3, 0x24($sp)
/* 0FA2F8 80290CE8 AFB20020 */ sw $s2, 0x20($sp)
/* 0FA2FC 80290CEC AFB1001C */ sw $s1, 0x1c($sp)
/* 0FA300 80290CF0 02018021 */ addu $s0, $s0, $at
/* 0FA304 80290CF4 8E080000 */ lw $t0, ($s0)
/* 0FA308 80290CF8 3C148016 */ lui $s4, %hi(D_8015F5A4) # $s4, 0x8016
/* 0FA30C 80290CFC 2694F5A4 */ addiu $s4, %lo(D_8015F5A4) # addiu $s4, $s4, -0xa5c
/* 0FA310 80290D00 11000022 */ beqz $t0, .L80290D8C
/* 0FA314 80290D04 3C138016 */ lui $s3, %hi(D_8015F5A0) # $s3, 0x8016
/* 0FA318 80290D08 3C128016 */ lui $s2, %hi(D_8015F59C) # $s2, 0x8016
/* 0FA31C 80290D0C 2652F59C */ addiu $s2, %lo(D_8015F59C) # addiu $s2, $s2, -0xa64
/* 0FA320 80290D10 2673F5A0 */ addiu $s3, %lo(D_8015F5A0) # addiu $s3, $s3, -0xa60
/* 0FA324 80290D14 24110001 */ li $s1, 1
/* 0FA328 80290D18 96090006 */ lhu $t1, 6($s0)
.L80290D1C:
/* 0FA32C 80290D1C 312A8000 */ andi $t2, $t1, 0x8000
/* 0FA330 80290D20 51400004 */ beql $t2, $zero, .L80290D34
/* 0FA334 80290D24 AE400000 */ sw $zero, ($s2)
/* 0FA338 80290D28 10000002 */ b .L80290D34
/* 0FA33C 80290D2C AE510000 */ sw $s1, ($s2)
/* 0FA340 80290D30 AE400000 */ sw $zero, ($s2)
.L80290D34:
/* 0FA344 80290D34 960B0006 */ lhu $t3, 6($s0)
/* 0FA348 80290D38 316C2000 */ andi $t4, $t3, 0x2000
/* 0FA34C 80290D3C 51800004 */ beql $t4, $zero, .L80290D50
/* 0FA350 80290D40 AE600000 */ sw $zero, ($s3)
/* 0FA354 80290D44 10000002 */ b .L80290D50
/* 0FA358 80290D48 AE710000 */ sw $s1, ($s3)
/* 0FA35C 80290D4C AE600000 */ sw $zero, ($s3)
.L80290D50:
/* 0FA360 80290D50 960D0006 */ lhu $t5, 6($s0)
/* 0FA364 80290D54 31AE4000 */ andi $t6, $t5, 0x4000
/* 0FA368 80290D58 51C00004 */ beql $t6, $zero, .L80290D6C
/* 0FA36C 80290D5C AE800000 */ sw $zero, ($s4)
/* 0FA370 80290D60 10000002 */ b .L80290D6C
/* 0FA374 80290D64 AE910000 */ sw $s1, ($s4)
/* 0FA378 80290D68 AE800000 */ sw $zero, ($s4)
.L80290D6C:
/* 0FA37C 80290D6C 8E040000 */ lw $a0, ($s0)
/* 0FA380 80290D70 82050004 */ lb $a1, 4($s0)
/* 0FA384 80290D74 0C0ABD76 */ jal func_802AF5D8
/* 0FA388 80290D78 92060005 */ lbu $a2, 5($s0)
/* 0FA38C 80290D7C 8E0F0008 */ lw $t7, 8($s0)
/* 0FA390 80290D80 26100008 */ addiu $s0, $s0, 8
/* 0FA394 80290D84 55E0FFE5 */ bnel $t7, $zero, .L80290D1C
/* 0FA398 80290D88 96090006 */ lhu $t1, 6($s0)
.L80290D8C:
/* 0FA39C 80290D8C 8FBF002C */ lw $ra, 0x2c($sp)
/* 0FA3A0 80290D90 8FB00018 */ lw $s0, 0x18($sp)
/* 0FA3A4 80290D94 8FB1001C */ lw $s1, 0x1c($sp)
/* 0FA3A8 80290D98 8FB20020 */ lw $s2, 0x20($sp)
/* 0FA3AC 80290D9C 8FB30024 */ lw $s3, 0x24($sp)
/* 0FA3B0 80290DA0 8FB40028 */ lw $s4, 0x28($sp)
/* 0FA3B4 80290DA4 03E00008 */ jr $ra
/* 0FA3B8 80290DA8 27BD0030 */ addiu $sp, $sp, 0x30

View File

@ -1,146 +0,0 @@
glabel crash_screen_draw_info
/* 004E98 80004298 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 004E9C 8000429C AFB50028 */ sw $s5, 0x28($sp)
/* 004EA0 800042A0 AFB30020 */ sw $s3, 0x20($sp)
/* 004EA4 800042A4 00A09825 */ move $s3, $a1
/* 004EA8 800042A8 0080A825 */ move $s5, $a0
/* 004EAC 800042AC 3C09800E */ lui $t1, %hi(D_800DC670) # $t1, 0x800e
/* 004EB0 800042B0 AFBF002C */ sw $ra, 0x2c($sp)
/* 004EB4 800042B4 AFB40024 */ sw $s4, 0x24($sp)
/* 004EB8 800042B8 AFB2001C */ sw $s2, 0x1c($sp)
/* 004EBC 800042BC AFB10018 */ sw $s1, 0x18($sp)
/* 004EC0 800042C0 AFB00014 */ sw $s0, 0x14($sp)
/* 004EC4 800042C4 2529C670 */ addiu $t1, %lo(D_800DC670) # addiu $t1, $t1, -0x3990
/* 004EC8 800042C8 24040001 */ li $a0, 1
/* 004ECC 800042CC 24050078 */ li $a1, 120
/* 004ED0 800042D0 00004025 */ move $t0, $zero
/* 004ED4 800042D4 240A0018 */ li $t2, 24
/* 004ED8 800042D8 8D2E0000 */ lw $t6, ($t1)
.L800042DC:
/* 004EDC 800042DC 00003025 */ move $a2, $zero
/* 004EE0 800042E0 01CA0019 */ multu $t6, $t2
/* 004EE4 800042E4 00007812 */ mflo $t7
/* 004EE8 800042E8 01E81021 */ addu $v0, $t7, $t0
/* 004EEC 800042EC 24420030 */ addiu $v0, $v0, 0x30
/* 004EF0 800042F0 0002C080 */ sll $t8, $v0, 2
/* 004EF4 800042F4 0302C021 */ addu $t8, $t8, $v0
/* 004EF8 800042F8 0018C9C0 */ sll $t9, $t8, 7
/* 004EFC 800042FC 02B93821 */ addu $a3, $s5, $t9
.L80004300:
/* 004F00 80004300 00001825 */ move $v1, $zero
/* 004F04 80004304 00E01025 */ move $v0, $a3
.L80004308:
/* 004F08 80004308 24630004 */ addiu $v1, $v1, 4
/* 004F0C 8000430C A44400CA */ sh $a0, 0xca($v0)
/* 004F10 80004310 A44400CC */ sh $a0, 0xcc($v0)
/* 004F14 80004314 A44400CE */ sh $a0, 0xce($v0)
/* 004F18 80004318 24420008 */ addiu $v0, $v0, 8
/* 004F1C 8000431C 1465FFFA */ bne $v1, $a1, .L80004308
/* 004F20 80004320 A44400C0 */ sh $a0, 0xc0($v0)
/* 004F24 80004324 24C60001 */ addiu $a2, $a2, 1
/* 004F28 80004328 28C10010 */ slti $at, $a2, 0x10
/* 004F2C 8000432C 1420FFF4 */ bnez $at, .L80004300
/* 004F30 80004330 24E70280 */ addiu $a3, $a3, 0x280
/* 004F34 80004334 25080014 */ addiu $t0, $t0, 0x14
/* 004F38 80004338 2901003C */ slti $at, $t0, 0x3c
/* 004F3C 8000433C 5420FFE7 */ bnel $at, $zero, .L800042DC
/* 004F40 80004340 8D2E0000 */ lw $t6, ($t1)
/* 004F44 80004344 8D2B0000 */ lw $t3, ($t1)
/* 004F48 80004348 8E670014 */ lw $a3, 0x14($s3)
/* 004F4C 8000434C 02A02025 */ move $a0, $s5
/* 004F50 80004350 016A0019 */ multu $t3, $t2
/* 004F54 80004354 30EC000F */ andi $t4, $a3, 0xf
/* 004F58 80004358 01803825 */ move $a3, $t4
/* 004F5C 8000435C 2405006C */ li $a1, 108
/* 004F60 80004360 00001012 */ mflo $v0
/* 004F64 80004364 24500035 */ addiu $s0, $v0, 0x35
/* 004F68 80004368 0C001030 */ jal crash_screen_draw_glyph
/* 004F6C 8000436C 02003025 */ move $a2, $s0
/* 004F70 80004370 02A02025 */ move $a0, $s5
/* 004F74 80004374 24050074 */ li $a1, 116
/* 004F78 80004378 02003025 */ move $a2, $s0
/* 004F7C 8000437C 0C001030 */ jal crash_screen_draw_glyph
/* 004F80 80004380 24070010 */ li $a3, 16
/* 004F84 80004384 26720020 */ addiu $s2, $s3, 0x20
/* 004F88 80004388 8E5400FC */ lw $s4, 0xfc($s2)
/* 004F8C 8000438C 241100B4 */ li $s1, 180
.L80004390:
/* 004F90 80004390 02A02025 */ move $a0, $s5
/* 004F94 80004394 02202825 */ move $a1, $s1
/* 004F98 80004398 02003025 */ move $a2, $s0
/* 004F9C 8000439C 0C001030 */ jal crash_screen_draw_glyph
/* 004FA0 800043A0 3287000F */ andi $a3, $s4, 0xf
/* 004FA4 800043A4 2631FFF8 */ addiu $s1, $s1, -8
/* 004FA8 800043A8 2A21007C */ slti $at, $s1, 0x7c
/* 004FAC 800043AC 00146902 */ srl $t5, $s4, 4
/* 004FB0 800043B0 1020FFF7 */ beqz $at, .L80004390
/* 004FB4 800043B4 01A0A025 */ move $s4, $t5
/* 004FB8 800043B8 8E510100 */ lw $s1, 0x100($s2)
/* 004FBC 800043BC 02A02025 */ move $a0, $s5
/* 004FC0 800043C0 240500BC */ li $a1, 188
/* 004FC4 800043C4 00117082 */ srl $t6, $s1, 2
/* 004FC8 800043C8 31D1001F */ andi $s1, $t6, 0x1f
/* 004FCC 800043CC 02003025 */ move $a2, $s0
/* 004FD0 800043D0 0C001030 */ jal crash_screen_draw_glyph
/* 004FD4 800043D4 24070010 */ li $a3, 16
/* 004FD8 800043D8 02A02025 */ move $a0, $s5
/* 004FDC 800043DC 240500C4 */ li $a1, 196
/* 004FE0 800043E0 02003025 */ move $a2, $s0
/* 004FE4 800043E4 0C001030 */ jal crash_screen_draw_glyph
/* 004FE8 800043E8 00113902 */ srl $a3, $s1, 4
/* 004FEC 800043EC 02A02025 */ move $a0, $s5
/* 004FF0 800043F0 240500CC */ li $a1, 204
/* 004FF4 800043F4 02003025 */ move $a2, $s0
/* 004FF8 800043F8 0C001030 */ jal crash_screen_draw_glyph
/* 004FFC 800043FC 3227000F */ andi $a3, $s1, 0xf
/* 005000 80004400 8E5400E4 */ lw $s4, 0xe4($s2)
/* 005004 80004404 241100B4 */ li $s1, 180
.L80004408:
/* 005008 80004408 02A02025 */ move $a0, $s5
/* 00500C 8000440C 02202825 */ move $a1, $s1
/* 005010 80004410 24060049 */ li $a2, 73
/* 005014 80004414 0C001030 */ jal crash_screen_draw_glyph
/* 005018 80004418 3287000F */ andi $a3, $s4, 0xf
/* 00501C 8000441C 2631FFF8 */ addiu $s1, $s1, -8
/* 005020 80004420 2A21007C */ slti $at, $s1, 0x7c
/* 005024 80004424 00145902 */ srl $t3, $s4, 4
/* 005028 80004428 1020FFF7 */ beqz $at, .L80004408
/* 00502C 8000442C 0160A025 */ move $s4, $t3
/* 005030 80004430 8E4200FC */ lw $v0, 0xfc($s2)
/* 005034 80004434 2401FFFC */ li $at, -4
/* 005038 80004438 241100B4 */ li $s1, 180
/* 00503C 8000443C 00416024 */ and $t4, $v0, $at
/* 005040 80004440 3C018000 */ lui $at, (0x80000001 >> 16) # lui $at, 0x8000
/* 005044 80004444 34210001 */ ori $at, (0x80000001 & 0xFFFF) # ori $at, $at, 1
/* 005048 80004448 0181082B */ sltu $at, $t4, $at
/* 00504C 8000444C 14200006 */ bnez $at, .L80004468
/* 005050 80004450 3C01803F */ lui $at, (0x803FFF7F >> 16) # lui $at, 0x803f
/* 005054 80004454 3421FF7F */ ori $at, (0x803FFF7F & 0xFFFF) # ori $at, $at, 0xff7f
/* 005058 80004458 0181082B */ sltu $at, $t4, $at
/* 00505C 8000445C 10200002 */ beqz $at, .L80004468
/* 005060 80004460 00000000 */ nop
/* 005064 80004464 8D940000 */ lw $s4, ($t4)
.L80004468:
/* 005068 80004468 02A02025 */ move $a0, $s5
/* 00506C 8000446C 02202825 */ move $a1, $s1
/* 005070 80004470 2406005D */ li $a2, 93
/* 005074 80004474 0C001030 */ jal crash_screen_draw_glyph
/* 005078 80004478 3287000F */ andi $a3, $s4, 0xf
/* 00507C 8000447C 2631FFF8 */ addiu $s1, $s1, -8
/* 005080 80004480 2A21007C */ slti $at, $s1, 0x7c
/* 005084 80004484 00146902 */ srl $t5, $s4, 4
/* 005088 80004488 1020FFF7 */ beqz $at, .L80004468
/* 00508C 8000448C 01A0A025 */ move $s4, $t5
/* 005090 80004490 0C033624 */ jal osWritebackDCacheAll
/* 005094 80004494 00000000 */ nop
/* 005098 80004498 0C033684 */ jal osViSwapBuffer
/* 00509C 8000449C 02A02025 */ move $a0, $s5
/* 0050A0 800044A0 8FBF002C */ lw $ra, 0x2c($sp)
/* 0050A4 800044A4 8FB00014 */ lw $s0, 0x14($sp)
/* 0050A8 800044A8 8FB10018 */ lw $s1, 0x18($sp)
/* 0050AC 800044AC 8FB2001C */ lw $s2, 0x1c($sp)
/* 0050B0 800044B0 8FB30020 */ lw $s3, 0x20($sp)
/* 0050B4 800044B4 8FB40024 */ lw $s4, 0x24($sp)
/* 0050B8 800044B8 8FB50028 */ lw $s5, 0x28($sp)
/* 0050BC 800044BC 03E00008 */ jr $ra
/* 0050C0 800044C0 27BD0030 */ addiu $sp, $sp, 0x30

View File

@ -1,101 +0,0 @@
glabel thread9_crash_screen
/* 005130 80004530 27BDFFB8 */ addiu $sp, $sp, -0x48
/* 005134 80004534 AFB70030 */ sw $s7, 0x30($sp)
/* 005138 80004538 3C178016 */ lui $s7, %hi(D_80162D40) # $s7, 0x8016
/* 00513C 8000453C 26F72D40 */ addiu $s7, %lo(D_80162D40) # addiu $s7, $s7, 0x2d40
/* 005140 80004540 AFBF0034 */ sw $ra, 0x34($sp)
/* 005144 80004544 AFA40048 */ sw $a0, 0x48($sp)
/* 005148 80004548 AFB6002C */ sw $s6, 0x2c($sp)
/* 00514C 8000454C AFB50028 */ sw $s5, 0x28($sp)
/* 005150 80004550 AFB40024 */ sw $s4, 0x24($sp)
/* 005154 80004554 AFB30020 */ sw $s3, 0x20($sp)
/* 005158 80004558 AFB2001C */ sw $s2, 0x1c($sp)
/* 00515C 8000455C AFB10018 */ sw $s1, 0x18($sp)
/* 005160 80004560 AFB00014 */ sw $s0, 0x14($sp)
/* 005164 80004564 2404000C */ li $a0, 12
/* 005168 80004568 02E02825 */ move $a1, $s7
/* 00516C 8000456C 0C033380 */ jal osSetEventMesg
/* 005170 80004570 24060010 */ li $a2, 16
/* 005174 80004574 2404000A */ li $a0, 10
/* 005178 80004578 02E02825 */ move $a1, $s7
/* 00517C 8000457C 0C033380 */ jal osSetEventMesg
/* 005180 80004580 24060010 */ li $a2, 16
/* 005184 80004584 3C108016 */ lui $s0, %hi(D_80162D60) # $s0, 0x8016
/* 005188 80004588 26102D60 */ addiu $s0, %lo(D_80162D60) # addiu $s0, $s0, 0x2d60
/* 00518C 8000458C 3C158016 */ lui $s5, %hi(pFramebuffer) # $s5, 0x8016
/* 005190 80004590 3C14800E */ lui $s4, %hi(D_800DC670) # $s4, 0x800e
/* 005194 80004594 3C12800E */ lui $s2, %hi(gControllerOne) # $s2, 0x800e
/* 005198 80004598 3C11800E */ lui $s1, %hi(D_800DC6FC) # $s1, 0x800e
/* 00519C 8000459C AE000000 */ sw $zero, ($s0)
/* 0051A0 800045A0 2631C6FC */ addiu $s1, %lo(D_800DC6FC) # addiu $s1, $s1, -0x3904
/* 0051A4 800045A4 2652C4BC */ addiu $s2, %lo(gControllerOne) # addiu $s2, $s2, -0x3b44
/* 0051A8 800045A8 2694C670 */ addiu $s4, %lo(D_800DC670) # addiu $s4, $s4, -0x3990
/* 0051AC 800045AC 26B52D5C */ addiu $s5, %lo(pFramebuffer) # addiu $s5, $s5, 0x2d5c
/* 0051B0 800045B0 27B60044 */ addiu $s6, $sp, 0x44
/* 0051B4 800045B4 3413FFFF */ li $s3, 65535
.L800045B8:
/* 0051B8 800045B8 02E02025 */ move $a0, $s7
.L800045BC:
/* 0051BC 800045BC 02C02825 */ move $a1, $s6
/* 0051C0 800045C0 0C0335D4 */ jal osRecvMesg
/* 0051C4 800045C4 24060001 */ li $a2, 1
/* 0051C8 800045C8 0C001131 */ jal get_faulted_thread
/* 0051CC 800045CC 00000000 */ nop
/* 0051D0 800045D0 3C018016 */ lui $at, %hi(D_80162D64) # $at, 0x8016
/* 0051D4 800045D4 1040FFF8 */ beqz $v0, .L800045B8
/* 0051D8 800045D8 AC222D64 */ sw $v0, %lo(D_80162D64)($at)
/* 0051DC 800045DC 8E820000 */ lw $v0, ($s4)
/* 0051E0 800045E0 5440001F */ bnel $v0, $zero, .L80004660
/* 0051E4 800045E4 28410005 */ slti $at, $v0, 5
/* 0051E8 800045E8 0C001051 */ jal crash_screen_draw_square
/* 0051EC 800045EC 8EA40000 */ lw $a0, ($s5)
.L800045F0:
/* 0051F0 800045F0 0C00028A */ jal read_controllers
/* 0051F4 800045F4 00000000 */ nop
/* 0051F8 800045F8 8E4E0000 */ lw $t6, ($s2)
/* 0051FC 800045FC 95C20006 */ lhu $v0, 6($t6)
/* 005200 80004600 1040FFFB */ beqz $v0, .L800045F0
/* 005204 80004604 00000000 */ nop
/* 005208 80004608 8E030000 */ lw $v1, ($s0)
/* 00520C 8000460C 00037840 */ sll $t7, $v1, 1
/* 005210 80004610 022FC021 */ addu $t8, $s1, $t7
/* 005214 80004614 97190000 */ lhu $t9, ($t8)
/* 005218 80004618 24680001 */ addiu $t0, $v1, 1
/* 00521C 8000461C 54590004 */ bnel $v0, $t9, .L80004630
/* 005220 80004620 AE000000 */ sw $zero, ($s0)
/* 005224 80004624 10000002 */ b .L80004630
/* 005228 80004628 AE080000 */ sw $t0, ($s0)
/* 00522C 8000462C AE000000 */ sw $zero, ($s0)
.L80004630:
/* 005230 80004630 8E090000 */ lw $t1, ($s0)
/* 005234 80004634 00095040 */ sll $t2, $t1, 1
/* 005238 80004638 022A5821 */ addu $t3, $s1, $t2
/* 00523C 8000463C 956C0000 */ lhu $t4, ($t3)
/* 005240 80004640 166CFFEB */ bne $s3, $t4, .L800045F0
/* 005244 80004644 00000000 */ nop
/* 005248 80004648 3C058016 */ lui $a1, %hi(D_80162D64) # $a1, 0x8016
/* 00524C 8000464C 8CA52D64 */ lw $a1, %lo(D_80162D64)($a1)
/* 005250 80004650 0C0010A6 */ jal crash_screen_draw_info
/* 005254 80004654 8EA40000 */ lw $a0, ($s5)
/* 005258 80004658 8E820000 */ lw $v0, ($s4)
/* 00525C 8000465C 28410005 */ slti $at, $v0, 5
.L80004660:
/* 005260 80004660 5020FFD6 */ beql $at, $zero, .L800045BC
/* 005264 80004664 02E02025 */ move $a0, $s7
/* 005268 80004668 244D0001 */ addiu $t5, $v0, 1
/* 00526C 8000466C 1000FFD2 */ b .L800045B8
/* 005270 80004670 AE8D0000 */ sw $t5, ($s4)
/* 005274 80004674 00000000 */ nop
/* 005278 80004678 00000000 */ nop
/* 00527C 8000467C 00000000 */ nop
/* 005280 80004680 8FBF0034 */ lw $ra, 0x34($sp)
/* 005284 80004684 8FB00014 */ lw $s0, 0x14($sp)
/* 005288 80004688 8FB10018 */ lw $s1, 0x18($sp)
/* 00528C 8000468C 8FB2001C */ lw $s2, 0x1c($sp)
/* 005290 80004690 8FB30020 */ lw $s3, 0x20($sp)
/* 005294 80004694 8FB40024 */ lw $s4, 0x24($sp)
/* 005298 80004698 8FB50028 */ lw $s5, 0x28($sp)
/* 00529C 8000469C 8FB6002C */ lw $s6, 0x2c($sp)
/* 0052A0 800046A0 8FB70030 */ lw $s7, 0x30($sp)
/* 0052A4 800046A4 03E00008 */ jr $ra
/* 0052A8 800046A8 27BD0048 */ addiu $sp, $sp, 0x48

View File

@ -37,5 +37,3 @@ glabel func_802B4F60
/* 11E5F8 802B4FE8 03E00008 */ jr $ra
/* 11E5FC 802B4FEC 27BD0070 */ addiu $sp, $sp, 0x70
/* 11E600 802B4FF0 03E00008 */ jr $ra
/* 11E604 802B4FF4 00000000 */ nop

View File

@ -1,16 +0,0 @@
glabel func_802B5398
/* 11E9A8 802B5398 0006102A */ slt $v0, $zero, $a2
/* 11E9AC 802B539C 10400008 */ beqz $v0, .L802B53C0
/* 11E9B0 802B53A0 24C6FFFF */ addiu $a2, $a2, -1
.L802B53A4:
/* 11E9B4 802B53A4 8CAE0000 */ lw $t6, ($a1)
/* 11E9B8 802B53A8 0006102A */ slt $v0, $zero, $a2
/* 11E9BC 802B53AC 24C6FFFF */ addiu $a2, $a2, -1
/* 11E9C0 802B53B0 24840004 */ addiu $a0, $a0, 4
/* 11E9C4 802B53B4 24A50004 */ addiu $a1, $a1, 4
/* 11E9C8 802B53B8 1440FFFA */ bnez $v0, .L802B53A4
/* 11E9CC 802B53BC AC8EFFFC */ sw $t6, -4($a0)
.L802B53C0:
/* 11E9D0 802B53C0 03E00008 */ jr $ra
/* 11E9D4 802B53C4 00000000 */ nop

View File

@ -1,148 +0,0 @@
glabel func_802B5564
/* 11EB74 802B5564 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 11EB78 802B5568 44867000 */ mtc1 $a2, $f14
/* 11EB7C 802B556C AFBF0014 */ sw $ra, 0x14($sp)
/* 11EB80 802B5570 AFA7003C */ sw $a3, 0x3c($sp)
/* 11EB84 802B5574 AFA40030 */ sw $a0, 0x30($sp)
/* 11EB88 802B5578 AFA50034 */ sw $a1, 0x34($sp)
/* 11EB8C 802B557C 0C0AD4F2 */ jal mtxf_identity
/* 11EB90 802B5580 E7AE0038 */ swc1 $f14, 0x38($sp)
/* 11EB94 802B5584 C7AE0038 */ lwc1 $f14, 0x38($sp)
/* 11EB98 802B5588 3C01802C */ lui $at, %hi(D_802B9FB0)
/* 11EB9C 802B558C D4269FB0 */ ldc1 $f6, %lo(D_802B9FB0)($at)
/* 11EBA0 802B5590 46007121 */ cvt.d.s $f4, $f14
/* 11EBA4 802B5594 3C014000 */ li $at, 0x40000000 # 2.000000
/* 11EBA8 802B5598 46262202 */ mul.d $f8, $f4, $f6
/* 11EBAC 802B559C 44815000 */ mtc1 $at, $f10
/* 11EBB0 802B55A0 462043A0 */ cvt.s.d $f14, $f8
/* 11EBB4 802B55A4 460A7303 */ div.s $f12, $f14, $f10
/* 11EBB8 802B55A8 0C0358AC */ jal cosf
/* 11EBBC 802B55AC E7AC001C */ swc1 $f12, 0x1c($sp)
/* 11EBC0 802B55B0 C7AC001C */ lwc1 $f12, 0x1c($sp)
/* 11EBC4 802B55B4 0C03583C */ jal sinf
/* 11EBC8 802B55B8 E7A00020 */ swc1 $f0, 0x20($sp)
/* 11EBCC 802B55BC C7A40020 */ lwc1 $f4, 0x20($sp)
/* 11EBD0 802B55C0 C7A6003C */ lwc1 $f6, 0x3c($sp)
/* 11EBD4 802B55C4 C7AE0040 */ lwc1 $f14, 0x40($sp)
/* 11EBD8 802B55C8 46002083 */ div.s $f2, $f4, $f0
/* 11EBDC 802B55CC C7B00044 */ lwc1 $f16, 0x44($sp)
/* 11EBE0 802B55D0 3C01BF80 */ li $at, 0xBF800000 # -1.000000
/* 11EBE4 802B55D4 44812000 */ mtc1 $at, $f4
/* 11EBE8 802B55D8 46107480 */ add.s $f18, $f14, $f16
/* 11EBEC 802B55DC 8FA20030 */ lw $v0, 0x30($sp)
/* 11EBF0 802B55E0 3C014000 */ li $at, 0x40000000 # 2.000000
/* 11EBF4 802B55E4 46107301 */ sub.s $f12, $f14, $f16
/* 11EBF8 802B55E8 8FA50034 */ lw $a1, 0x34($sp)
/* 11EBFC 802B55EC E444002C */ swc1 $f4, 0x2c($v0)
/* 11EC00 802B55F0 00001825 */ move $v1, $zero
/* 11EC04 802B55F4 24040004 */ li $a0, 4
/* 11EC08 802B55F8 460C9283 */ div.s $f10, $f18, $f12
/* 11EC0C 802B55FC E4420014 */ swc1 $f2, 0x14($v0)
/* 11EC10 802B5600 46061203 */ div.s $f8, $f2, $f6
/* 11EC14 802B5604 44813000 */ mtc1 $at, $f6
/* 11EC18 802B5608 E44A0028 */ swc1 $f10, 0x28($v0)
/* 11EC1C 802B560C E4480000 */ swc1 $f8, ($v0)
/* 11EC20 802B5610 460E3202 */ mul.s $f8, $f6, $f14
/* 11EC24 802B5614 44803000 */ mtc1 $zero, $f6
/* 11EC28 802B5618 00000000 */ nop
/* 11EC2C 802B561C E446003C */ swc1 $f6, 0x3c($v0)
/* 11EC30 802B5620 46104282 */ mul.s $f10, $f8, $f16
/* 11EC34 802B5624 460C5103 */ div.s $f4, $f10, $f12
/* 11EC38 802B5628 E4440038 */ swc1 $f4, 0x38($v0)
/* 11EC3C 802B562C C7A00048 */ lwc1 $f0, 0x48($sp)
/* 11EC40 802B5630 C4460000 */ lwc1 $f6, ($v0)
/* 11EC44 802B5634 24630001 */ addiu $v1, $v1, 1
/* 11EC48 802B5638 C4500004 */ lwc1 $f16, 4($v0)
/* 11EC4C 802B563C 46003282 */ mul.s $f10, $f6, $f0
/* 11EC50 802B5640 C44C0008 */ lwc1 $f12, 8($v0)
/* 11EC54 802B5644 10640010 */ beq $v1, $a0, .L802B5688
/* 11EC58 802B5648 C44E000C */ lwc1 $f14, 0xc($v0)
.L802B564C:
/* 11EC5C 802B564C 46008202 */ mul.s $f8, $f16, $f0
/* 11EC60 802B5650 C4460010 */ lwc1 $f6, 0x10($v0)
/* 11EC64 802B5654 C4500014 */ lwc1 $f16, 0x14($v0)
/* 11EC68 802B5658 46006102 */ mul.s $f4, $f12, $f0
/* 11EC6C 802B565C C44C0018 */ lwc1 $f12, 0x18($v0)
/* 11EC70 802B5660 24630001 */ addiu $v1, $v1, 1
/* 11EC74 802B5664 46007082 */ mul.s $f2, $f14, $f0
/* 11EC78 802B5668 C44E001C */ lwc1 $f14, 0x1c($v0)
/* 11EC7C 802B566C E44A0000 */ swc1 $f10, ($v0)
/* 11EC80 802B5670 46003282 */ mul.s $f10, $f6, $f0
/* 11EC84 802B5674 E4480004 */ swc1 $f8, 4($v0)
/* 11EC88 802B5678 E4440008 */ swc1 $f4, 8($v0)
/* 11EC8C 802B567C 24420010 */ addiu $v0, $v0, 0x10
/* 11EC90 802B5680 1464FFF2 */ bne $v1, $a0, .L802B564C
/* 11EC94 802B5684 E442FFFC */ swc1 $f2, -4($v0)
.L802B5688:
/* 11EC98 802B5688 46008202 */ mul.s $f8, $f16, $f0
/* 11EC9C 802B568C 24420010 */ addiu $v0, $v0, 0x10
/* 11ECA0 802B5690 E44AFFF0 */ swc1 $f10, -0x10($v0)
/* 11ECA4 802B5694 46006102 */ mul.s $f4, $f12, $f0
/* 11ECA8 802B5698 00000000 */ nop
/* 11ECAC 802B569C 46007082 */ mul.s $f2, $f14, $f0
/* 11ECB0 802B56A0 E448FFF4 */ swc1 $f8, -0xc($v0)
/* 11ECB4 802B56A4 E444FFF8 */ swc1 $f4, -8($v0)
/* 11ECB8 802B56A8 E442FFFC */ swc1 $f2, -4($v0)
/* 11ECBC 802B56AC 10A00035 */ beqz $a1, .L802B5784
/* 11ECC0 802B56B0 3C014000 */ li $at, 0x40000000 # 2.000000
/* 11ECC4 802B56B4 44814800 */ mtc1 $at, $f9
/* 11ECC8 802B56B8 44804000 */ mtc1 $zero, $f8
/* 11ECCC 802B56BC 46009021 */ cvt.d.s $f0, $f18
/* 11ECD0 802B56C0 340EFFFF */ li $t6, 65535
/* 11ECD4 802B56C4 4628003E */ c.le.d $f0, $f8
/* 11ECD8 802B56C8 3C014100 */ li $at, 0x41000000 # 8.000000
/* 11ECDC 802B56CC 45020004 */ bc1fl .L802B56E0
/* 11ECE0 802B56D0 44815800 */ mtc1 $at, $f11
/* 11ECE4 802B56D4 1000002B */ b .L802B5784
/* 11ECE8 802B56D8 A4AE0000 */ sh $t6, ($a1)
/* 11ECEC 802B56DC 44815800 */ mtc1 $at, $f11
.L802B56E0:
/* 11ECF0 802B56E0 44805000 */ mtc1 $zero, $f10
/* 11ECF4 802B56E4 24180001 */ li $t8, 1
/* 11ECF8 802B56E8 3C0141E0 */ li $at, 0x41E00000 # 28.000000
/* 11ECFC 802B56EC 46205103 */ div.d $f4, $f10, $f0
/* 11ED00 802B56F0 24080001 */ li $t0, 1
/* 11ED04 802B56F4 444FF800 */ cfc1 $t7, $31
/* 11ED08 802B56F8 44D8F800 */ ctc1 $t8, $31
/* 11ED0C 802B56FC 00000000 */ nop
/* 11ED10 802B5700 462021A4 */ cvt.w.d $f6, $f4
/* 11ED14 802B5704 4458F800 */ cfc1 $t8, $31
/* 11ED18 802B5708 00000000 */ nop
/* 11ED1C 802B570C 33180078 */ andi $t8, $t8, 0x78
/* 11ED20 802B5710 53000014 */ beql $t8, $zero, .L802B5764
/* 11ED24 802B5714 44183000 */ mfc1 $t8, $f6
/* 11ED28 802B5718 44813800 */ mtc1 $at, $f7
/* 11ED2C 802B571C 44803000 */ mtc1 $zero, $f6
/* 11ED30 802B5720 24180001 */ li $t8, 1
/* 11ED34 802B5724 46262181 */ sub.d $f6, $f4, $f6
/* 11ED38 802B5728 44D8F800 */ ctc1 $t8, $31
/* 11ED3C 802B572C 00000000 */ nop
/* 11ED40 802B5730 462031A4 */ cvt.w.d $f6, $f6
/* 11ED44 802B5734 4458F800 */ cfc1 $t8, $31
/* 11ED48 802B5738 00000000 */ nop
/* 11ED4C 802B573C 33180078 */ andi $t8, $t8, 0x78
/* 11ED50 802B5740 17000005 */ bnez $t8, .L802B5758
/* 11ED54 802B5744 00000000 */ nop
/* 11ED58 802B5748 44183000 */ mfc1 $t8, $f6
/* 11ED5C 802B574C 3C018000 */ lui $at, 0x8000
/* 11ED60 802B5750 10000007 */ b .L802B5770
/* 11ED64 802B5754 0301C025 */ or $t8, $t8, $at
.L802B5758:
/* 11ED68 802B5758 10000005 */ b .L802B5770
/* 11ED6C 802B575C 2418FFFF */ li $t8, -1
/* 11ED70 802B5760 44183000 */ mfc1 $t8, $f6
.L802B5764:
/* 11ED74 802B5764 00000000 */ nop
/* 11ED78 802B5768 0700FFFB */ bltz $t8, .L802B5758
/* 11ED7C 802B576C 00000000 */ nop
.L802B5770:
/* 11ED80 802B5770 44CFF800 */ ctc1 $t7, $31
/* 11ED84 802B5774 3319FFFF */ andi $t9, $t8, 0xffff
/* 11ED88 802B5778 1F200002 */ bgtz $t9, .L802B5784
/* 11ED8C 802B577C A4B80000 */ sh $t8, ($a1)
/* 11ED90 802B5780 A4A80000 */ sh $t0, ($a1)
.L802B5784:
/* 11ED94 802B5784 8FBF0014 */ lw $ra, 0x14($sp)
/* 11ED98 802B5788 27BD0030 */ addiu $sp, $sp, 0x30
/* 11ED9C 802B578C 03E00008 */ jr $ra
/* 11EDA0 802B5790 00000000 */ nop

View File

@ -1,27 +0,0 @@
glabel func_802B59DC
/* 11EFEC 802B59DC 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 11EFF0 802B59E0 AFB00018 */ sw $s0, 0x18($sp)
/* 11EFF4 802B59E4 00808025 */ move $s0, $a0
/* 11EFF8 802B59E8 AFBF001C */ sw $ra, 0x1c($sp)
/* 11EFFC 802B59EC 30A4FFFF */ andi $a0, $a1, 0xffff
/* 11F000 802B59F0 AFA50034 */ sw $a1, 0x34($sp)
/* 11F004 802B59F4 0C0AE006 */ jal sins
/* 11F008 802B59F8 AFA40024 */ sw $a0, 0x24($sp)
/* 11F00C 802B59FC 8FA40024 */ lw $a0, 0x24($sp)
/* 11F010 802B5A00 0C0AE00E */ jal coss
/* 11F014 802B5A04 E7A0002C */ swc1 $f0, 0x2c($sp)
/* 11F018 802B5A08 02002025 */ move $a0, $s0
/* 11F01C 802B5A0C 0C0AD4F2 */ jal mtxf_identity
/* 11F020 802B5A10 E7A00028 */ swc1 $f0, 0x28($sp)
/* 11F024 802B5A14 C7A0002C */ lwc1 $f0, 0x2c($sp)
/* 11F028 802B5A18 C7A20028 */ lwc1 $f2, 0x28($sp)
/* 11F02C 802B5A1C 46000107 */ neg.s $f4, $f0
/* 11F030 802B5A20 E6000018 */ swc1 $f0, 0x18($s0)
/* 11F034 802B5A24 E6040024 */ swc1 $f4, 0x24($s0)
/* 11F038 802B5A28 E6020014 */ swc1 $f2, 0x14($s0)
/* 11F03C 802B5A2C E6020028 */ swc1 $f2, 0x28($s0)
/* 11F040 802B5A30 8FBF001C */ lw $ra, 0x1c($sp)
/* 11F044 802B5A34 8FB00018 */ lw $s0, 0x18($sp)
/* 11F048 802B5A38 27BD0030 */ addiu $sp, $sp, 0x30
/* 11F04C 802B5A3C 03E00008 */ jr $ra
/* 11F050 802B5A40 00000000 */ nop

View File

@ -1,27 +0,0 @@
glabel func_802B5A44
/* 11F054 802B5A44 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 11F058 802B5A48 AFB00018 */ sw $s0, 0x18($sp)
/* 11F05C 802B5A4C 00808025 */ move $s0, $a0
/* 11F060 802B5A50 AFBF001C */ sw $ra, 0x1c($sp)
/* 11F064 802B5A54 30A4FFFF */ andi $a0, $a1, 0xffff
/* 11F068 802B5A58 AFA50034 */ sw $a1, 0x34($sp)
/* 11F06C 802B5A5C 0C0AE006 */ jal sins
/* 11F070 802B5A60 AFA40024 */ sw $a0, 0x24($sp)
/* 11F074 802B5A64 8FA40024 */ lw $a0, 0x24($sp)
/* 11F078 802B5A68 0C0AE00E */ jal coss
/* 11F07C 802B5A6C E7A0002C */ swc1 $f0, 0x2c($sp)
/* 11F080 802B5A70 02002025 */ move $a0, $s0
/* 11F084 802B5A74 0C0AD4F2 */ jal mtxf_identity
/* 11F088 802B5A78 E7A00028 */ swc1 $f0, 0x28($sp)
/* 11F08C 802B5A7C C7A0002C */ lwc1 $f0, 0x2c($sp)
/* 11F090 802B5A80 C7A20028 */ lwc1 $f2, 0x28($sp)
/* 11F094 802B5A84 46000107 */ neg.s $f4, $f0
/* 11F098 802B5A88 E6000020 */ swc1 $f0, 0x20($s0)
/* 11F09C 802B5A8C E6040008 */ swc1 $f4, 8($s0)
/* 11F0A0 802B5A90 E6020000 */ swc1 $f2, ($s0)
/* 11F0A4 802B5A94 E6020028 */ swc1 $f2, 0x28($s0)
/* 11F0A8 802B5A98 8FBF001C */ lw $ra, 0x1c($sp)
/* 11F0AC 802B5A9C 8FB00018 */ lw $s0, 0x18($sp)
/* 11F0B0 802B5AA0 27BD0030 */ addiu $sp, $sp, 0x30
/* 11F0B4 802B5AA4 03E00008 */ jr $ra
/* 11F0B8 802B5AA8 00000000 */ nop

View File

@ -1,27 +0,0 @@
glabel func_802B5AAC
/* 11F0BC 802B5AAC 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 11F0C0 802B5AB0 AFB00018 */ sw $s0, 0x18($sp)
/* 11F0C4 802B5AB4 00808025 */ move $s0, $a0
/* 11F0C8 802B5AB8 AFBF001C */ sw $ra, 0x1c($sp)
/* 11F0CC 802B5ABC 30A4FFFF */ andi $a0, $a1, 0xffff
/* 11F0D0 802B5AC0 AFA50034 */ sw $a1, 0x34($sp)
/* 11F0D4 802B5AC4 0C0AE006 */ jal sins
/* 11F0D8 802B5AC8 AFA40024 */ sw $a0, 0x24($sp)
/* 11F0DC 802B5ACC 8FA40024 */ lw $a0, 0x24($sp)
/* 11F0E0 802B5AD0 0C0AE00E */ jal coss
/* 11F0E4 802B5AD4 E7A0002C */ swc1 $f0, 0x2c($sp)
/* 11F0E8 802B5AD8 02002025 */ move $a0, $s0
/* 11F0EC 802B5ADC 0C0AD4F2 */ jal mtxf_identity
/* 11F0F0 802B5AE0 E7A00028 */ swc1 $f0, 0x28($sp)
/* 11F0F4 802B5AE4 C7A0002C */ lwc1 $f0, 0x2c($sp)
/* 11F0F8 802B5AE8 C7A20028 */ lwc1 $f2, 0x28($sp)
/* 11F0FC 802B5AEC 46000107 */ neg.s $f4, $f0
/* 11F100 802B5AF0 E6000004 */ swc1 $f0, 4($s0)
/* 11F104 802B5AF4 E6040010 */ swc1 $f4, 0x10($s0)
/* 11F108 802B5AF8 E6020000 */ swc1 $f2, ($s0)
/* 11F10C 802B5AFC E6020014 */ swc1 $f2, 0x14($s0)
/* 11F110 802B5B00 8FBF001C */ lw $ra, 0x1c($sp)
/* 11F114 802B5B04 8FB00018 */ lw $s0, 0x18($sp)
/* 11F118 802B5B08 27BD0030 */ addiu $sp, $sp, 0x30
/* 11F11C 802B5B0C 03E00008 */ jr $ra
/* 11F120 802B5B10 00000000 */ nop

View File

@ -1,34 +0,0 @@
glabel func_802B5CAC
/* 11F2BC 802B5CAC 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 11F2C0 802B5CB0 AFA40030 */ sw $a0, 0x30($sp)
/* 11F2C4 802B5CB4 AFBF0014 */ sw $ra, 0x14($sp)
/* 11F2C8 802B5CB8 30A4FFFF */ andi $a0, $a1, 0xffff
/* 11F2CC 802B5CBC AFA50034 */ sw $a1, 0x34($sp)
/* 11F2D0 802B5CC0 AFA60038 */ sw $a2, 0x38($sp)
/* 11F2D4 802B5CC4 0C0AE006 */ jal sins
/* 11F2D8 802B5CC8 AFA4001C */ sw $a0, 0x1c($sp)
/* 11F2DC 802B5CCC 8FA4001C */ lw $a0, 0x1c($sp)
/* 11F2E0 802B5CD0 0C0AE00E */ jal coss
/* 11F2E4 802B5CD4 E7A0002C */ swc1 $f0, 0x2c($sp)
/* 11F2E8 802B5CD8 97A40032 */ lhu $a0, 0x32($sp)
/* 11F2EC 802B5CDC E7A00028 */ swc1 $f0, 0x28($sp)
/* 11F2F0 802B5CE0 0C0AE006 */ jal sins
/* 11F2F4 802B5CE4 AFA4001C */ sw $a0, 0x1c($sp)
/* 11F2F8 802B5CE8 8FA4001C */ lw $a0, 0x1c($sp)
/* 11F2FC 802B5CEC 0C0AE00E */ jal coss
/* 11F300 802B5CF0 E7A00024 */ swc1 $f0, 0x24($sp)
/* 11F304 802B5CF4 C7A20028 */ lwc1 $f2, 0x28($sp)
/* 11F308 802B5CF8 C7A40024 */ lwc1 $f4, 0x24($sp)
/* 11F30C 802B5CFC 8FA20038 */ lw $v0, 0x38($sp)
/* 11F310 802B5D00 46041182 */ mul.s $f6, $f2, $f4
/* 11F314 802B5D04 00000000 */ nop
/* 11F318 802B5D08 46001282 */ mul.s $f10, $f2, $f0
/* 11F31C 802B5D0C E4460000 */ swc1 $f6, ($v0)
/* 11F320 802B5D10 C7A8002C */ lwc1 $f8, 0x2c($sp)
/* 11F324 802B5D14 46005407 */ neg.s $f16, $f10
/* 11F328 802B5D18 E4480004 */ swc1 $f8, 4($v0)
/* 11F32C 802B5D1C E4500008 */ swc1 $f16, 8($v0)
/* 11F330 802B5D20 8FBF0014 */ lw $ra, 0x14($sp)
/* 11F334 802B5D24 27BD0030 */ addiu $sp, $sp, 0x30
/* 11F338 802B5D28 03E00008 */ jr $ra
/* 11F33C 802B5D2C 00000000 */ nop

View File

@ -1,14 +0,0 @@
glabel func_802B5D30
/* 11F340 802B5D30 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 11F344 802B5D34 AFBF0014 */ sw $ra, 0x14($sp)
/* 11F348 802B5D38 AFA40018 */ sw $a0, 0x18($sp)
/* 11F34C 802B5D3C AFA5001C */ sw $a1, 0x1c($sp)
/* 11F350 802B5D40 00C03825 */ move $a3, $a2
/* 11F354 802B5D44 87A6001E */ lh $a2, 0x1e($sp)
/* 11F358 802B5D48 87A5001A */ lh $a1, 0x1a($sp)
/* 11F35C 802B5D4C 0C0AD759 */ jal func_802B5D64
/* 11F360 802B5D50 3C040900 */ lui $a0, 0x900
/* 11F364 802B5D54 8FBF0014 */ lw $ra, 0x14($sp)
/* 11F368 802B5D58 27BD0018 */ addiu $sp, $sp, 0x18
/* 11F36C 802B5D5C 03E00008 */ jr $ra
/* 11F370 802B5D60 00000000 */ nop

View File

@ -1,18 +0,0 @@
glabel func_802B6374
/* 11F984 802B6374 C48C0000 */ lwc1 $f12, ($a0)
/* 11F988 802B6378 C48E0004 */ lwc1 $f14, 4($a0)
/* 11F98C 802B637C C4820008 */ lwc1 $f2, 8($a0)
/* 11F990 802B6380 460C6102 */ mul.s $f4, $f12, $f12
/* 11F994 802B6384 00000000 */ nop
/* 11F998 802B6388 460E7182 */ mul.s $f6, $f14, $f14
/* 11F99C 802B638C 46062200 */ add.s $f8, $f4, $f6
/* 11F9A0 802B6390 46021282 */ mul.s $f10, $f2, $f2
/* 11F9A4 802B6394 46085000 */ add.s $f0, $f10, $f8
/* 11F9A8 802B6398 46000004 */ sqrt.s $f0, $f0
/* 11F9AC 802B639C 46006403 */ div.s $f16, $f12, $f0
/* 11F9B0 802B63A0 46007483 */ div.s $f18, $f14, $f0
/* 11F9B4 802B63A4 E4900000 */ swc1 $f16, ($a0)
/* 11F9B8 802B63A8 46001103 */ div.s $f4, $f2, $f0
/* 11F9BC 802B63AC E4920004 */ swc1 $f18, 4($a0)
/* 11F9C0 802B63B0 03E00008 */ jr $ra
/* 11F9C4 802B63B4 E4840008 */ swc1 $f4, 8($a0)

View File

@ -1,32 +0,0 @@
glabel func_802B63B8
/* 11F9C8 802B63B8 C48C0000 */ lwc1 $f12, ($a0)
/* 11F9CC 802B63BC C4A40000 */ lwc1 $f4, ($a1)
/* 11F9D0 802B63C0 C48E0004 */ lwc1 $f14, 4($a0)
/* 11F9D4 802B63C4 C4A80004 */ lwc1 $f8, 4($a1)
/* 11F9D8 802B63C8 460C2182 */ mul.s $f6, $f4, $f12
/* 11F9DC 802B63CC C4820008 */ lwc1 $f2, 8($a0)
/* 11F9E0 802B63D0 460E4282 */ mul.s $f10, $f8, $f14
/* 11F9E4 802B63D4 C4A80008 */ lwc1 $f8, 8($a1)
/* 11F9E8 802B63D8 460A3100 */ add.s $f4, $f6, $f10
/* 11F9EC 802B63DC 46081182 */ mul.s $f6, $f2, $f8
/* 11F9F0 802B63E0 C4AA000C */ lwc1 $f10, 0xc($a1)
/* 11F9F4 802B63E4 460C5202 */ mul.s $f8, $f10, $f12
/* 11F9F8 802B63E8 46043000 */ add.s $f0, $f6, $f4
/* 11F9FC 802B63EC C4A60010 */ lwc1 $f6, 0x10($a1)
/* 11FA00 802B63F0 460E3102 */ mul.s $f4, $f6, $f14
/* 11FA04 802B63F4 C4A60014 */ lwc1 $f6, 0x14($a1)
/* 11FA08 802B63F8 46044280 */ add.s $f10, $f8, $f4
/* 11FA0C 802B63FC 46061202 */ mul.s $f8, $f2, $f6
/* 11FA10 802B6400 C4A40018 */ lwc1 $f4, 0x18($a1)
/* 11FA14 802B6404 460C2182 */ mul.s $f6, $f4, $f12
/* 11FA18 802B6408 460A4400 */ add.s $f16, $f8, $f10
/* 11FA1C 802B640C C4A8001C */ lwc1 $f8, 0x1c($a1)
/* 11FA20 802B6410 460E4282 */ mul.s $f10, $f8, $f14
/* 11FA24 802B6414 C4A80020 */ lwc1 $f8, 0x20($a1)
/* 11FA28 802B6418 E4800000 */ swc1 $f0, ($a0)
/* 11FA2C 802B641C E4900004 */ swc1 $f16, 4($a0)
/* 11FA30 802B6420 460A3100 */ add.s $f4, $f6, $f10
/* 11FA34 802B6424 46081182 */ mul.s $f6, $f2, $f8
/* 11FA38 802B6428 46043480 */ add.s $f18, $f6, $f4
/* 11FA3C 802B642C 03E00008 */ jr $ra
/* 11FA40 802B6430 E4920008 */ swc1 $f18, 8($a0)

View File

@ -1,32 +0,0 @@
glabel func_802B6434
/* 11FA44 802B6434 C48C0000 */ lwc1 $f12, ($a0)
/* 11FA48 802B6438 C4A40000 */ lwc1 $f4, ($a1)
/* 11FA4C 802B643C C48E0004 */ lwc1 $f14, 4($a0)
/* 11FA50 802B6440 C4A80004 */ lwc1 $f8, 4($a1)
/* 11FA54 802B6444 460C2182 */ mul.s $f6, $f4, $f12
/* 11FA58 802B6448 C4820008 */ lwc1 $f2, 8($a0)
/* 11FA5C 802B644C 460E4282 */ mul.s $f10, $f8, $f14
/* 11FA60 802B6450 C4A80008 */ lwc1 $f8, 8($a1)
/* 11FA64 802B6454 460A3100 */ add.s $f4, $f6, $f10
/* 11FA68 802B6458 46081182 */ mul.s $f6, $f2, $f8
/* 11FA6C 802B645C C4AA0010 */ lwc1 $f10, 0x10($a1)
/* 11FA70 802B6460 460C5202 */ mul.s $f8, $f10, $f12
/* 11FA74 802B6464 46043000 */ add.s $f0, $f6, $f4
/* 11FA78 802B6468 C4A60014 */ lwc1 $f6, 0x14($a1)
/* 11FA7C 802B646C 460E3102 */ mul.s $f4, $f6, $f14
/* 11FA80 802B6470 C4A60018 */ lwc1 $f6, 0x18($a1)
/* 11FA84 802B6474 46044280 */ add.s $f10, $f8, $f4
/* 11FA88 802B6478 46061202 */ mul.s $f8, $f2, $f6
/* 11FA8C 802B647C C4A40020 */ lwc1 $f4, 0x20($a1)
/* 11FA90 802B6480 460C2182 */ mul.s $f6, $f4, $f12
/* 11FA94 802B6484 460A4400 */ add.s $f16, $f8, $f10
/* 11FA98 802B6488 C4A80024 */ lwc1 $f8, 0x24($a1)
/* 11FA9C 802B648C 460E4282 */ mul.s $f10, $f8, $f14
/* 11FAA0 802B6490 C4A80028 */ lwc1 $f8, 0x28($a1)
/* 11FAA4 802B6494 E4800000 */ swc1 $f0, ($a0)
/* 11FAA8 802B6498 E4900004 */ swc1 $f16, 4($a0)
/* 11FAAC 802B649C 460A3100 */ add.s $f4, $f6, $f10
/* 11FAB0 802B64A0 46081182 */ mul.s $f6, $f2, $f8
/* 11FAB4 802B64A4 46043480 */ add.s $f18, $f6, $f4
/* 11FAB8 802B64A8 03E00008 */ jr $ra
/* 11FABC 802B64AC E4920008 */ swc1 $f18, 8($a0)

View File

@ -1,6 +0,0 @@
glabel func_802B64B0
/* 11FAC0 802B64B0 AFA40000 */ sw $a0, ($sp)
/* 11FAC4 802B64B4 AFA50004 */ sw $a1, 4($sp)
/* 11FAC8 802B64B8 AFA60008 */ sw $a2, 8($sp)
/* 11FACC 802B64BC 03E00008 */ jr $ra
/* 11FAD0 802B64C0 AFA7000C */ sw $a3, 0xc($sp)

View File

@ -1,32 +0,0 @@
glabel func_802B64C4
/* 11FAD4 802B64C4 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 11FAD8 802B64C8 00803025 */ move $a2, $a0
/* 11FADC 802B64CC AFBF0014 */ sw $ra, 0x14($sp)
/* 11FAE0 802B64D0 30A4FFFF */ andi $a0, $a1, 0xffff
/* 11FAE4 802B64D4 AFA50034 */ sw $a1, 0x34($sp)
/* 11FAE8 802B64D8 AFA40018 */ sw $a0, 0x18($sp)
/* 11FAEC 802B64DC 0C0AE006 */ jal sins
/* 11FAF0 802B64E0 AFA60030 */ sw $a2, 0x30($sp)
/* 11FAF4 802B64E4 8FA40018 */ lw $a0, 0x18($sp)
/* 11FAF8 802B64E8 0C0AE00E */ jal coss
/* 11FAFC 802B64EC E7A0002C */ swc1 $f0, 0x2c($sp)
/* 11FB00 802B64F0 8FA60030 */ lw $a2, 0x30($sp)
/* 11FB04 802B64F4 C7B0002C */ lwc1 $f16, 0x2c($sp)
/* 11FB08 802B64F8 C4C20000 */ lwc1 $f2, ($a2)
/* 11FB0C 802B64FC C4CC0008 */ lwc1 $f12, 8($a2)
/* 11FB10 802B6500 C4CE0004 */ lwc1 $f14, 4($a2)
/* 11FB14 802B6504 46020102 */ mul.s $f4, $f0, $f2
/* 11FB18 802B6508 E4CE0004 */ swc1 $f14, 4($a2)
/* 11FB1C 802B650C 460C8182 */ mul.s $f6, $f16, $f12
/* 11FB20 802B6510 00000000 */ nop
/* 11FB24 802B6514 46028282 */ mul.s $f10, $f16, $f2
/* 11FB28 802B6518 00000000 */ nop
/* 11FB2C 802B651C 460C0482 */ mul.s $f18, $f0, $f12
/* 11FB30 802B6520 46062201 */ sub.s $f8, $f4, $f6
/* 11FB34 802B6524 E4C80000 */ swc1 $f8, ($a2)
/* 11FB38 802B6528 46125100 */ add.s $f4, $f10, $f18
/* 11FB3C 802B652C E4C40008 */ swc1 $f4, 8($a2)
/* 11FB40 802B6530 8FBF0014 */ lw $ra, 0x14($sp)
/* 11FB44 802B6534 27BD0030 */ addiu $sp, $sp, 0x30
/* 11FB48 802B6538 03E00008 */ jr $ra
/* 11FB4C 802B653C 00000000 */ nop

View File

@ -1,40 +0,0 @@
glabel func_802B7F7C
/* 12158C 802B7F7C 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 121590 802B7F80 AFBF0014 */ sw $ra, 0x14($sp)
/* 121594 802B7F84 AFA60038 */ sw $a2, 0x38($sp)
/* 121598 802B7F88 C4840004 */ lwc1 $f4, 4($a0)
/* 12159C 802B7F8C C48E0000 */ lwc1 $f14, ($a0)
/* 1215A0 802B7F90 E7A40028 */ swc1 $f4, 0x28($sp)
/* 1215A4 802B7F94 C4A60004 */ lwc1 $f6, 4($a1)
/* 1215A8 802B7F98 C48C0008 */ lwc1 $f12, 8($a0)
/* 1215AC 802B7F9C C4A20000 */ lwc1 $f2, ($a1)
/* 1215B0 802B7FA0 E7A6001C */ swc1 $f6, 0x1c($sp)
/* 1215B4 802B7FA4 C4A00008 */ lwc1 $f0, 8($a1)
/* 1215B8 802B7FA8 44071000 */ mfc1 $a3, $f2
/* 1215BC 802B7FAC E7AE002C */ swc1 $f14, 0x2c($sp)
/* 1215C0 802B7FB0 44060000 */ mfc1 $a2, $f0
/* 1215C4 802B7FB4 E7AC0024 */ swc1 $f12, 0x24($sp)
/* 1215C8 802B7FB8 E7A20020 */ swc1 $f2, 0x20($sp)
/* 1215CC 802B7FBC 0C0ADFCD */ jal func_802B7F34
/* 1215D0 802B7FC0 E7A00018 */ swc1 $f0, 0x18($sp)
/* 1215D4 802B7FC4 8FAE0038 */ lw $t6, 0x38($sp)
/* 1215D8 802B7FC8 C7A00018 */ lwc1 $f0, 0x18($sp)
/* 1215DC 802B7FCC A5C20002 */ sh $v0, 2($t6)
/* 1215E0 802B7FD0 44070000 */ mfc1 $a3, $f0
/* 1215E4 802B7FD4 8FA6001C */ lw $a2, 0x1c($sp)
/* 1215E8 802B7FD8 C7AE0024 */ lwc1 $f14, 0x24($sp)
/* 1215EC 802B7FDC 0C0ADFCD */ jal func_802B7F34
/* 1215F0 802B7FE0 C7AC0028 */ lwc1 $f12, 0x28($sp)
/* 1215F4 802B7FE4 8FAF0038 */ lw $t7, 0x38($sp)
/* 1215F8 802B7FE8 A5E20000 */ sh $v0, ($t7)
/* 1215FC 802B7FEC 8FA7001C */ lw $a3, 0x1c($sp)
/* 121600 802B7FF0 8FA60020 */ lw $a2, 0x20($sp)
/* 121604 802B7FF4 C7AE0028 */ lwc1 $f14, 0x28($sp)
/* 121608 802B7FF8 0C0ADFCD */ jal func_802B7F34
/* 12160C 802B7FFC C7AC002C */ lwc1 $f12, 0x2c($sp)
/* 121610 802B8000 8FB80038 */ lw $t8, 0x38($sp)
/* 121614 802B8004 A7020004 */ sh $v0, 4($t8)
/* 121618 802B8008 8FBF0014 */ lw $ra, 0x14($sp)
/* 12161C 802B800C 27BD0030 */ addiu $sp, $sp, 0x30
/* 121620 802B8010 03E00008 */ jr $ra
/* 121624 802B8014 00000000 */ nop

View File

@ -1,38 +0,0 @@
glabel func_802B8058
/* 121668 802B8058 3083FFFF */ andi $v1, $a0, 0xffff
/* 12166C 802B805C 30AFFFFF */ andi $t7, $a1, 0xffff
/* 121670 802B8060 AFA60008 */ sw $a2, 8($sp)
/* 121674 802B8064 30D8FFFF */ andi $t8, $a2, 0xffff
/* 121678 802B8068 01E3082A */ slt $at, $t7, $v1
/* 12167C 802B806C 03003025 */ move $a2, $t8
/* 121680 802B8070 AFA40000 */ sw $a0, ($sp)
/* 121684 802B8074 AFA50004 */ sw $a1, 4($sp)
/* 121688 802B8078 1020000B */ beqz $at, .L802B80A8
/* 12168C 802B807C 01E01025 */ move $v0, $t7
/* 121690 802B8080 01F8082A */ slt $at, $t7, $t8
/* 121694 802B8084 14200003 */ bnez $at, .L802B8094
/* 121698 802B8088 03002025 */ move $a0, $t8
/* 12169C 802B808C 03E00008 */ jr $ra
/* 1216A0 802B8090 00001025 */ move $v0, $zero
.L802B8094:
/* 1216A4 802B8094 0083082A */ slt $at, $a0, $v1
/* 1216A8 802B8098 5420000B */ bnel $at, $zero, .L802B80C8
/* 1216AC 802B809C 24020001 */ li $v0, 1
/* 1216B0 802B80A0 03E00008 */ jr $ra
/* 1216B4 802B80A4 00001025 */ move $v0, $zero
.L802B80A8:
/* 1216B8 802B80A8 0046082A */ slt $at, $v0, $a2
/* 1216BC 802B80AC 14200005 */ bnez $at, .L802B80C4
/* 1216C0 802B80B0 00C3082A */ slt $at, $a2, $v1
/* 1216C4 802B80B4 54200004 */ bnel $at, $zero, .L802B80C8
/* 1216C8 802B80B8 24020001 */ li $v0, 1
/* 1216CC 802B80BC 03E00008 */ jr $ra
/* 1216D0 802B80C0 00001025 */ move $v0, $zero
.L802B80C4:
/* 1216D4 802B80C4 24020001 */ li $v0, 1
.L802B80C8:
/* 1216D8 802B80C8 03E00008 */ jr $ra
/* 1216DC 802B80CC 00000000 */ nop

View File

@ -50,7 +50,7 @@ glabel D_800DC668
glabel D_800DC66C
.hword 0x0000, 0x0000
#glabel D_800DC670
#glabel sCounter
#.word 0x00000000
#glabel crashScreenFont

View File

@ -5,7 +5,7 @@
#include <common_structs.h>
typedef f32 Mat4[4][4];
typedef f32 Mat3[3][3];
enum SpTaskState {
SPTASK_STATE_NOT_STARTED,

View File

@ -2161,17 +2161,11 @@ GLOBAL_ASM("asm/non_matchings/code_800AF9B0/func_800B29D8.s")
#endif
s32 func_800B34E8(s32 arg0) {
if (arg0 == gCharacterGridSelections[0]) {
return 0;
}
if (arg0 == D_8018EDE5) {
return 0;
}
if (arg0 == D_8018EDE6) {
return 0;
}
if (arg0 == D_8018EDE7) {
return 0;
s32 i;
for (i =0; i < 4; i++) {
if (arg0 == gCharacterGridSelections[i]) {
return 0;
}
}
return 1;
}

View File

@ -18,6 +18,9 @@ extern uintptr_t gSegmentTable[];
extern void func_802AAAAC(Player *);
extern Player gPlayers[];
extern s32 D_8015F59C;
extern s32 D_8015F5A0;
s32 func_80290C20(Camera *camera) {
if (camera->unk14 == 0) {
return 1;
@ -31,42 +34,43 @@ s32 func_80290C20(Camera *camera) {
return 0;
}
#ifdef MIPS_TO_C
//#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
void func_802AF5D8(u32, s8, s32); // extern
extern s32 D_8015F5A4;
void func_80290CAC(u32 arg0) {
s32 *temp_s0;
s32 *phi_s0;
struct Unk0CAC {
s32 unk0;
u8 unk4;
u8 unk5;
u16 unk6;
};
temp_s0 = *(&gSegmentTable + ((arg0 >> 0x18) * 4)) + (arg0 & 0xFFFFFF) + 0x80000000;
phi_s0 = temp_s0;
if (*temp_s0 != 0) {
do {
if ((phi_s0->unk6 & 0x8000) != 0) {
D_8015F59C = 1;
} else {
D_8015F59C = 0;
}
if ((phi_s0->unk6 & 0x2000) != 0) {
D_8015F5A0 = 1;
} else {
D_8015F5A0 = 0;
}
if ((phi_s0->unk6 & 0x4000) != 0) {
D_8015F5A4 = 1;
} else {
D_8015F5A4 = 0;
}
func_802AF5D8(phi_s0->unk0, phi_s0->unk4, phi_s0->unk5);
phi_s0 += 8;
} while (phi_s0->unk8 != 0);
void func_80290CAC(uintptr_t arg0) {
s32 segment = SEGMENT_NUMBER2(arg0);
s32 offset = SEGMENT_OFFSET(arg0);
struct Unk0CAC *data = VIRTUAL_TO_PHYSICAL2(gSegmentTable[segment] + offset);
while(data->unk0 != 0) {
if ((data->unk6 & 0x8000) != 0) {
D_8015F59C = 1;
} else {
D_8015F59C = 0;
}
if ((data->unk6 & 0x2000) != 0) {
D_8015F5A0 = 1;
} else {
D_8015F5A0 = 0;
}
if ((data->unk6 & 0x4000) != 0) {
D_8015F5A4 = 1;
} else {
D_8015F5A4 = 0;
}
func_802AF5D8(data->unk0, data->unk4, data->unk5);
data++;
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80290C20/func_80290CAC.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307

View File

@ -20,14 +20,14 @@ void *get_faulted_thread(); // static
void start_debug_thread(); // static
void thread9_crash_screen(s32 arg0); // static
extern void *gControllerOne;
extern s32 D_800DC670;
extern s32 sCounter;
extern ? D_800DC6FC;
extern ? sCrashScreenButtonSequence;
extern ? D_80162790;
extern ? D_80162D40;
extern ? D_80162D58;
extern uintptr_t pFramebuffer;
extern s32 D_80162D60;
extern s32 buttonSequenceIndex;
extern void *D_80162D64;
*/
@ -38,8 +38,11 @@ ALIGNED8 u8 gDebugThreadStack[0x400];
OSMesgQueue D_80162D40;
OSMesg D_80162D58;
uintptr_t pFramebuffer;
s32 D_80162D60;
void *D_80162D64;
s32 sButtonSequenceIndex;
//void *D_80162D64;
#define DRAW_CODE 0xFFFF
#define CHARACTER_DASH 16
extern void osSetEventMesg(OSEvent, OSMesgQueue *, OSMesg);
extern s32 osRecvMesg(OSMesgQueue *, OSMesg *, s32);
@ -49,15 +52,14 @@ extern struct Controller *gControllerOne;
//s32 shift = 0;
u32 D_800DC670 = 0;
s32 sCounter = 0;
u8 crashScreenFont[][8] = {
#include "textures/crash_screen/crash_screen_font.ia1.inc.c"
};
u16 D_800DC6FC[10] = {
32, 2048, 512, 1024, 256, 16, 32, 16384, 32768, 65535
// 0x0020, 0x0800, 0x0200, 0x0400, 0x0100, 0x0010, 0x0020, 0x4000, 0x8000, 0xffff
u16 sCrashScreenButtonSequence[] = {
L_TRIG, U_JPAD, L_JPAD, D_JPAD, R_JPAD, R_TRIG, L_TRIG, B_BUTTON, A_BUTTON, DRAW_CODE
};
void crash_screen_draw_glyph(u16 *framebuffer, s32 x, s32 y, s32 glyph) {
@ -83,10 +85,10 @@ void crash_screen_draw_glyph(u16 *framebuffer, s32 x, s32 y, s32 glyph) {
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
? osViSwapBuffer(s32); /* extern */
? osWritebackDCacheAll(s32, s32, s16, s16); /* extern */
void crash_screen_draw_square(s32 arg0, s32 arg1) {
#define WHITE_COLOUR 0xFFFF
#define RED_COLOUR 0xF801
void crash_screen_draw_square(u16 *framebuffer) {
s32 temp_a0;
s32 temp_a1;
s32 temp_a1_2;
@ -109,198 +111,176 @@ void crash_screen_draw_square(s32 arg0, s32 arg1) {
s32 phi_a0_3;
s32 phi_a1_3;
s32 phi_a1_4;
s32 i, j, k;
phi_s2 = 0x28;
phi_s0 = 0x2E;
phi_a0_2 = arg0;
phi_a1_3 = arg1;
do {
phi_s1 = phi_s2;
phi_a0 = phi_a0_2;
phi_a1_2 = phi_a1_3;
phi_a0_3 = phi_a0_2;
phi_a1_4 = phi_a1_3;
if (phi_s2 < phi_s0) {
do {
phi_v1 = phi_s2;
phi_v1_2 = phi_s2;
//phi_s2 = 0x28;
//phi_s0 = 0x2E;
phi_a0_2 = framebuffer;
//phi_a1_3 = arg1;
for (i = 46; i > 44; i--) {
//phi_s1 = phi_s2;
//phi_a0 = phi_a0_2;
//phi_a1_2 = phi_a1_3;
// phi_a0_3 = phi_a0_2;
//phi_a1_4 = phi_a1_3;
//if (phi_s2 < phi_s0) {
for (j = 40; j < i; j++) {
//phi_v1 = phi_s2;
//phi_v1_2 = phi_s2;
if (phi_s2 < phi_s0) {
temp_a0 = phi_s0 - phi_s2;
temp_t0 = temp_a0 & 3;
temp_ra = arg0 + (phi_s1 * 0x280);
phi_a0_3 = temp_a0;
//temp_a0 = i - j;
temp_t0 = (i - j) & 3;
//temp_ra = framebuffer + (phi_s1 * 0x280);
//phi_a0_3 = temp_a0;
if (temp_t0 != 0) {
phi_v0 = temp_ra + (phi_s2 * 2);
do {
temp_v1 = phi_v1 + 1;
phi_v1 = temp_v1;
phi_v1_2 = temp_v1;
if (temp_a0 == 6) {
*phi_v0 = 0xF801;
do { // (temp_t0 + j;) {
j++;
//temp_v1 = phi_v1 + 1;
//phi_v1 = temp_v1;
//phi_v1_2 = temp_v1;
if (i - j == 6) {
framebuffer[i * 640 + j * 2] = RED_COLOUR;
} else {
*phi_v0 = 0xFFFF;
framebuffer[i * 640 + j * 2] = WHITE_COLOUR;
}
phi_v0 += 2;
} while ((temp_t0 + phi_s2) != temp_v1);
j += 2;
} while ((temp_t0 + j) != j);
phi_a1_4 = temp_v1 * 2;
if (temp_v1 != phi_s0) {
goto block_10;
break; // goto 10
}
} else {
block_10:
temp_a1 = phi_v1_2 * 2;
phi_v0_2 = temp_ra + temp_a1;
//block_10:
//temp_a1 = phi_v1_2 * 2;
phi_v0_2 = framebuffer[i * 640 + j * 2];
phi_a1 = temp_a1;
do {
temp_a1_2 = phi_a1 + 8;
phi_a1 = temp_a1_2;
phi_a1_4 = temp_a1_2;
for (k = j + 8; k < j * 2; k += 8) {
//do {
//temp_a1_2 = phi_a1 + 8;
//phi_a1 = temp_a1_2;
//phi_a1_4 = temp_a1_2;
if (temp_a0 == 6) {
phi_v0_2->unk0 = 0xF801;
framebuffer[i * 640 + j * 2] = RED_COLOUR;
} else {
phi_v0_2->unk0 = 0xFFFF;
framebuffer[i * 640 + j * 2] = WHITE_COLOUR;
}
if (temp_a0 == 6) {
phi_v0_2->unk2 = 0xF801;
} else {
phi_v0_2->unk2 = 0xFFFF;
}
if (temp_a0 == 6) {
phi_v0_2->unk4 = 0xF801;
} else {
phi_v0_2->unk4 = 0xFFFF;
}
if (temp_a0 == 6) {
phi_v0_2->unk6 = 0xF801;
} else {
phi_v0_2->unk6 = 0xFFFF;
}
phi_v0_2 += 8;
} while (temp_a1_2 != (phi_s0 * 2));
//if (temp_a0 == 6) {
// phi_v0_2->unk2 = RED_COLOUR;
//} else {
// phi_v0_2->unk2 = WHITE_COLOUR;
//}
//if (temp_a0 == 6) {
// phi_v0_2->unk4 = RED_COLOUR;
//} else {
// phi_v0_2->unk4 = WHITE_COLOUR;
//}
//if (temp_a0 == 6) {
// phi_v0_2->unk6 = RED_COLOUR;
//} else {
// phi_v0_2->unk6 = WHITE_COLOUR;
//}
//phi_v0_2 += 8;
} //while (temp_a1_2 != (phi_s0 * 2));
}
}
temp_s1 = phi_s1 + 1;
phi_s1 = temp_s1;
phi_a0 = phi_a0_3;
phi_a1_2 = phi_a1_4;
} while (temp_s1 != phi_s0);
}
temp_s0 = phi_s0 - 1;
phi_s2 += 1;
phi_s0 = temp_s0;
phi_a0_2 = phi_a0;
phi_a1_3 = phi_a1_2;
} while (temp_s0 != 0x2C);
osWritebackDCacheAll(phi_a0, phi_a1_2, 0xF801, 0xFFFF);
osViSwapBuffer(arg0);
//temp_s1 = phi_s1 + 1;
//phi_s1 = temp_s1;
//phi_a0 = phi_a0_3;
//phi_a1_2 = phi_a1_4;
} //while (temp_s1 != phi_s0);
//temp_s0 = phi_s0 - 1;
//phi_s2 += 1;
//phi_s0 = temp_s0;
//phi_a0_2 = phi_a0;
//phi_a1_3 = phi_a1_2;
//i--;
} //while (temp_s0 != 44);
osWritebackDCacheAll();
osViSwapBuffer(framebuffer);
}
#else
GLOBAL_ASM("asm/non_matchings/crash_screen/crash_screen_draw_square.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
? crash_screen_draw_glyph(s32, s32, s32, u32); /* extern */
? osViSwapBuffer(s32); /* extern */
? osWritebackDCacheAll(); /* extern */
extern s32 D_800DC670;
/**
* Draws three black boxes then prints crash info in the following format:
* Line 1: threadId - address of faulted instruction - error code
* Line 2: Address in the return address register
* Line 3: Machine code of faulted instruction
*
* The R4300i manual discusses exceptions in more depth.
*
* @param framebuffer
* @param faulted thread
**/
void crash_screen_draw_info(u16 *framebuffer, OSThread *thread) {
__OSThreadContext *context = &thread->context;
s32 i, j, x, y, h;
uintptr_t faultedAddr;
u32 exception;
s32 math;
u32 crashInfo;
s32 temp;
void crash_screen_draw_info(s32 arg0, void *arg1) {
s32 temp_a2;
s32 temp_s0;
s32 temp_s1;
s32 temp_s1_3;
s32 temp_s1_4;
s32 temp_t0;
s32 temp_v1;
u32 temp_s1_2;
u32 temp_t3;
u32 temp_t4;
void *temp_s2;
void *temp_v0;
void *phi_v0;
s32 phi_v1;
s32 phi_a2;
s32 phi_t0;
s32 phi_s1;
u32 phi_s4;
s32 phi_s1_2;
u32 phi_s4_2;
s32 phi_s1_3;
u32 phi_s4_3;
void *phi_a3;
// Draw three black boxes
for (h = 0; h < 3; h++) {
phi_t0 = 0;
do {
phi_a2 = 0;
phi_a3 = arg0 + (((D_800DC670 * 0x18) + phi_t0 + 0x30) * 0x280);
loop_2:
phi_v0 = phi_a3;
phi_v1 = 0;
loop_3:
temp_v1 = phi_v1 + 4;
phi_v0->unkCA = 1;
phi_v0->unkCC = 1;
phi_v0->unkCE = 1;
temp_v0 = phi_v0 + 8;
temp_v0->unkC0 = 1;
phi_v0 = temp_v0;
phi_v1 = temp_v1;
if (temp_v1 != 0x78) {
goto loop_3;
math = (48 + (sCounter * 24)) + h * 20;
for (i = 0; i < 16; i++) {
for (j = 0; j < 120; j++) {
// Set pixels to black
framebuffer[((i + math) * 320) + (j + 100)] = 0x0001;
}
}
temp_a2 = phi_a2 + 1;
phi_a2 = temp_a2;
phi_a3 += 0x280;
if (temp_a2 < 0x10) {
goto loop_2;
}
temp_t0 = phi_t0 + 0x14;
phi_t0 = temp_t0;
} while (temp_t0 < 0x3C);
temp_s0 = (D_800DC670 * 0x18) + 0x35;
crash_screen_draw_glyph(arg0, 0x6C, temp_s0, arg1->unk14 & 0xF);
crash_screen_draw_glyph(arg0, 0x74, temp_s0, 0x10);
temp_s2 = arg1 + 0x20;
phi_s1 = 0xB4;
phi_s4 = temp_s2->unkFC;
phi_s1_2 = 0xB4;
phi_s1_3 = 0xB4;
do {
crash_screen_draw_glyph(arg0, phi_s1, temp_s0, phi_s4 & 0xF);
temp_s1 = phi_s1 - 8;
phi_s1 = temp_s1;
phi_s4 = phi_s4 >> 4;
} while (temp_s1 >= 0x7C);
temp_s1_2 = (temp_s2->unk100 >> 2) & 0x1F;
crash_screen_draw_glyph(arg0, 0xBC, temp_s0, 0x10);
crash_screen_draw_glyph(arg0, 0xC4, temp_s0, temp_s1_2 >> 4);
crash_screen_draw_glyph(arg0, 0xCC, temp_s0, temp_s1_2 & 0xF);
phi_s4_2 = temp_s2->unkE4;
do {
crash_screen_draw_glyph(arg0, phi_s1_2, 0x49, phi_s4_2 & 0xF);
temp_s1_3 = phi_s1_2 - 8;
temp_t3 = phi_s4_2 >> 4;
phi_s1_2 = temp_s1_3;
phi_s4_2 = temp_t3;
phi_s4_3 = temp_t3;
} while (temp_s1_3 >= 0x7C);
temp_t4 = temp_s2->unkFC & ~3;
if ((temp_t4 >= 0x80000001) && (temp_t4 < 0x803FFF7F)) {
phi_s4_3 = *temp_t4;
}
do {
crash_screen_draw_glyph(arg0, phi_s1_3, 0x5D, phi_s4_3 & 0xF);
temp_s1_4 = phi_s1_3 - 8;
phi_s1_3 = temp_s1_4;
phi_s4_3 = phi_s4_3 >> 4;
} while (temp_s1_4 >= 0x7C);
// Draw crash information over the black boxes.
temp = (sCounter * 24);
y = temp + 53;
crash_screen_draw_glyph(framebuffer, 108, y, thread->id & 0xF);
crash_screen_draw_glyph(framebuffer, 116, y, CHARACTER_DASH);
// Address of faulted instruction.
crashInfo = context->pc;
for (x = 180; x >= 124; x -= 8) {
crash_screen_draw_glyph(framebuffer, x, y, crashInfo & 0xF);
crashInfo >>= 4;
}
exception = (context->cause >> 2) & 0x1F;
crash_screen_draw_glyph(framebuffer, 188, y, CHARACTER_DASH);
crash_screen_draw_glyph(framebuffer, 196, y, exception >> 4);
crash_screen_draw_glyph(framebuffer, 204, y, exception & 0xF);
// Address in the Return Address register.
crashInfo = context->ra;
for (x = 180; x >= 124; x -= 8) {
crash_screen_draw_glyph(framebuffer, x, 73, crashInfo & 0xF);
crashInfo >>= 4;
}
// Address of faulted instruction.
faultedAddr = context->pc & (~3);
// Ensure the address to the faulted instruction is a memory address.
// @bug if this check fails, the ra register is printed a second time.
if ((faultedAddr > 0x80000000) && (faultedAddr < 0x803FFF7F)) {
// Cast the address to its value; the faulty machine code.
crashInfo = *(u32*)faultedAddr;
}
for (x = 180; x >= 124; x -= 4) {
crash_screen_draw_glyph(framebuffer, x, 93, crashInfo & 0xF);
x -= 4;
crashInfo >>= 4;
}
osWritebackDCacheAll();
osViSwapBuffer(arg0);
osViSwapBuffer(framebuffer);
}
#else
GLOBAL_ASM("asm/non_matchings/crash_screen/crash_screen_draw_info.s")
#endif
OSThread *get_faulted_thread(void) {
OSThread *thread;
@ -316,104 +296,60 @@ OSThread *get_faulted_thread(void) {
return NULL;
}
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
//OSThread *get_faulted_thread();
void crash_screen_draw_square(s32, void*);
void crash_screen_draw_info(s32, void*);
void thread9_crash_screen(UNUSED s32 arg0) {
/**
* @brief Retrieves faulted thread and displays debug info after the user inputs the button sequence.
* Button sequence: L, Up, Left, Down, Right, R, L, B, A
**/
void thread9_crash_screen(UNUSED void *arg0)
{
static OSThread *thread;
OSMesg mesg;
OSThread *thread;
//s32 pad[2];
u16 temp_v0_2;
osSetEventMesg(OS_EVENT_FAULT, &D_80162D40, (OSMesg) 16);
osSetEventMesg(OS_EVENT_CPU_BREAK, &D_80162D40, (OSMesg) 16);
D_80162D60 = 0;
loop_1:
do {
do {
osSetEventMesg(12, &D_80162D40, (OSMesg) 16);
osSetEventMesg(10, &D_80162D40, (OSMesg) 16);
sButtonSequenceIndex = 0;
while (1) {
osRecvMesg(&D_80162D40, &mesg, 1);
thread = get_faulted_thread();
} while (thread == NULL);
if (D_800DC670 == 0) {
crash_screen_draw_square(pFramebuffer, D_80162D64);
do {
//temp_v0_2 = gControllerOne->buttonPressed;
//loop_4:
do {
read_controllers();
}
while (temp_v0_2 == 0);
//if (temp_v0_2 == 0) {
//goto loop_4;
//}
//temp_v1 = D_80162D60;
//} while (thread == NULL);
if (temp_v0_2 == D_800DC6FC[D_80162D60]) {
D_80162D60++;
} else {
D_80162D60 = 0;
}
} while (D_800DC6FC[D_80162D60] != 0xFFFF);
crash_screen_draw_info(pFramebuffer, D_80162D64);
}
} while (D_800DC670 >= 5);
D_800DC670++;
goto loop_1;
/*
? sp44;
s32 temp_v0;
s32 temp_v1;
u16 temp_v0_2;
if (thread) {
// Run only on the first iteration.
if (sCounter == 0) {
crash_screen_draw_square(pFramebuffer);
osSetEventMesg(0xC, &D_80162D40, 0x10);
osSetEventMesg(0xA, &D_80162D40, 0x10);
D_80162D60 = 0;
loop_1:
osRecvMesg(&D_80162D40, &sp44, 1);
temp_v0 = get_faulted_thread();
D_80162D64 = temp_v0;
if (temp_v0 == 0) {
goto loop_1;
}
if (D_800DC670 == 0) {
crash_screen_draw_square(pFramebuffer);
do {
loop_4:
read_controllers();
temp_v0_2 = gControllerOne->unk6;
if (temp_v0_2 == 0) {
goto loop_4;
}
temp_v1 = D_80162D60;
if (temp_v0_2 == *(&D_800DC6FC + (temp_v1 * 2))) {
D_80162D60 = temp_v1 + 1;
} else {
D_80162D60 = 0;
}
} while (*(&D_800DC6FC + (D_80162D60 * 2)) != 0xFFFF);
crash_screen_draw_info(pFramebuffer, D_80162D64);
}
if (D_800DC670 >= 5) {
goto loop_1;
}
D_800DC670 += 1;
goto loop_1;
*/
}
#else
GLOBAL_ASM("asm/non_matchings/crash_screen/thread9_crash_screen.s")
#endif
while(1)
{
read_controllers();
void crash_screen_set_framebuffer(s32 arg0) {
pFramebuffer = arg0;
if (!gControllerOne->buttonPressed) { continue; }
if (gControllerOne->buttonPressed == sCrashScreenButtonSequence[sButtonSequenceIndex]) {
sButtonSequenceIndex++;
} else {
sButtonSequenceIndex = 0;
}
// draws crash info when DRAW_CODE is reached
if (sCrashScreenButtonSequence[sButtonSequenceIndex] == DRAW_CODE) {
break;
}
}
crash_screen_draw_info(pFramebuffer, thread);
}
if (sCounter < 5) {
sCounter++;
}
}
}
}
extern void thread9_crash_screen();
void crash_screen_set_framebuffer(uintptr_t *framebuffer) {
pFramebuffer = framebuffer;
}
extern void thread9_crash_screen(void *);
void create_debug_thread(void) {
osCreateMesgQueue(&D_80162D40, &D_80162D58, 1);

View File

@ -11,27 +11,51 @@
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? func_802B4F60(s32 arg0, ? arg2, ? arg3) {
? sp30;
void func_802B6434(Vec3f arg0, Mat4 arg1);
void *vec3f_copy(Vec3f, Vec3f);
// weird stuff going on. But this is an unused func... So who cares.
UNUSED s32 func_802B4F60(UNUSED s32 arg0, Vec3f arg2, UNUSED f32 arg3, UNUSED f32 arg4) {
Mat4 sp30;
f32 sp2C;
f32 pad;
Vec3f sp1C;
vec3f_copy(sp1C, arg2);
sp2C = sp30[1][3]; // permuter
sp2C = (((sp1C[0] * sp30[0][3]) + (((0, sp1C[1])) * sp2C)) + (sp1C[2] * sp30[2][3])) + sp30[3][3];
//sp2C = (sp1C[0] * sp30[0][3]) + (sp1C[1] * sp30[1][3]) + (sp1C[2] * sp30[2][3]) + sp30[3][3];
func_802B6434(sp1C, sp30);
if (sp2C <= 0) {
return 0;
}
return 1;
}
/*
s32 func_802B4F60(s32 arg0, f32* arg1, ? arg2, ? arg3) {
f32 sp2C;
f32 sp1C;
f32 temp_f2;
? phi_v0;
? var_v0;
vec3f_copy(&sp1C);
temp_f2 = sp6C + ((sp3C * sp1C) + (sp4C * sp20) + (sp5C * sp24));
sp2C = temp_f2;
func_802B6434(sp1C, sp20, &sp1C, &sp30);
phi_v0 = 1;
if (temp_f2 <= 0.0f) {
phi_v0 = 0;
vec3f_copy(&sp1C, arg1);
sp2C = sp6C + ((sp30[3] * sp1C) + (sp4C * sp20) + (sp5C * sp24));
func_802B6434(&sp1C, (f32 (*)[4]) &sp30[0]);
var_v0 = 1;
if (sp2C <= 0.0f) {
var_v0 = 0;
}
return phi_v0;
return var_v0;
}
*/
#else
GLOBAL_ASM("asm/non_matchings/math_util/func_802B4F60.s")
#endif
UNUSED func_802B4FF0() {
}
s32 func_802B4FF8(Mat4 arg0, s32 arg1) {
if (D_80150112 >= 0x80) {
return 0;
@ -133,7 +157,7 @@ UNUSED void *sm64_vec3f_set(Vec3f dest, f32 x, f32 y, f32 z) {
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
void func_802B5350(void *arg0, void *arg1) {
UNUSED void func_802B5350(void *arg0, void *arg1) {
s32 temp_v0;
void *temp_a2;
void *temp_v1;
@ -161,30 +185,12 @@ void func_802B5350(void *arg0, void *arg1) {
GLOBAL_ASM("asm/non_matchings/math_util/func_802B5350.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
void func_802B5398(void *arg0, s32 *arg1, s32 arg2) {
void *temp_a0;
s32 *phi_a1;
void *phi_a0;
s32 phi_a2;
phi_a1 = arg1;
phi_a0 = arg0;
phi_a2 = arg2 - 1;
if (arg2 > 0) {
do {
temp_a0 = phi_a0 + 4;
temp_a0->unk-4 = *phi_a1;
phi_a1 += 4;
phi_a0 = temp_a0;
phi_a2 += -1;
} while (phi_a2 > 0);
}
// mtxf_copy
void func_802B5398(s32 *dest, s32 *src, s32 arg2) {
while (arg2-- > 0) {
*dest++ = *src++;
}
}
#else
GLOBAL_ASM("asm/non_matchings/math_util/func_802B5398.s")
#endif
void mtxf_identity(Mat4 mtx) {
register s32 i;
@ -228,130 +234,44 @@ void mtxf_translate(Mat4 dest, Vec3f b) {
dest[3][1] = b[1];
dest[3][2] = b[2];
}
extern f64 D_802B9FB0; // = 0.017453292222222222;
// Note the use of `2` which generates diff asm than just using floats (2.0f).
void func_802B5564(Mat4 arg0, u16 *arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6) {
f32 temp;
s32 i, j;
mtxf_identity(arg0);
arg2 *= D_802B9FB0;
temp = cosf(arg2 / 2) / sinf(arg2 / 2);
arg0[0][0] = temp / arg3;
arg0[1][1] = temp;
arg0[2][2] = (arg4 + arg5) / (arg4 - arg5);
arg0[2][3] = -1.0f;
arg0[3][2] = (2 * arg4 * arg5) / (arg4 - arg5);
arg0[3][3] = 0.0f;
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
f32 cosf(f32, f32); /* extern */
? mtxf_identity(f32); /* extern */
f32 sinf(f32); /* extern */
static f64 D_802B9FB0 = 0.017453292222222222;
void func_802B5564(void *arg0, s16 *arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6) {
f32 sp20;
f32 sp1C;
f32 temp_f10;
f32 temp_f10_2;
f32 temp_f12;
f32 temp_f12_2;
f32 temp_f12_3;
f32 temp_f12_4;
f32 temp_f14;
f32 temp_f14_2;
f32 temp_f14_3;
f32 temp_f14_4;
f32 temp_f16;
f32 temp_f16_2;
f32 temp_f18;
f32 temp_f2;
f64 temp_f0;
s32 temp_v1;
u32 temp_t8;
void *temp_v0;
void *temp_v0_2;
f32 phi_f10;
void *phi_v0;
f32 phi_f16;
f32 phi_f12;
f32 phi_f14;
s32 phi_v1;
f32 phi_f10_2;
void *phi_v0_2;
f32 phi_f16_2;
f32 phi_f12_2;
f32 phi_f14_2;
temp_f14 = arg2;
arg2 = temp_f14;
mtxf_identity(temp_f14);
temp_f14_2 = arg2 * D_802B9FB0;
temp_f12 = temp_f14_2 / 2.0f;
sp1C = temp_f12;
sp20 = cosf(temp_f12, temp_f14_2);
temp_f2 = sp20 / sinf(temp_f12);
temp_f18 = arg4 + arg5;
temp_f12_2 = arg4 - arg5;
arg0->unk2C = -1.0f;
arg0->unk14 = temp_f2;
arg0->unk28 = temp_f18 / temp_f12_2;
arg0->unk0 = temp_f2 / arg3;
arg0->unk3C = 0.0f;
arg0->unk38 = (2.0f * arg4 * arg5) / temp_f12_2;
temp_f16 = arg0->unk4;
temp_f10 = arg0->unk0 * arg6;
temp_f12_3 = arg0->unk8;
temp_f14_3 = arg0->unkC;
phi_f10 = temp_f10;
phi_v0 = arg0;
phi_f16 = temp_f16;
phi_f12 = temp_f12_3;
phi_f14 = temp_f14_3;
phi_v1 = 1;
phi_f10_2 = temp_f10;
phi_v0_2 = arg0;
phi_f16_2 = temp_f16;
phi_f12_2 = temp_f12_3;
phi_f14_2 = temp_f14_3;
if (1 != 4) {
do {
temp_f16_2 = phi_v0->unk14;
temp_f12_4 = phi_v0->unk18;
temp_v1 = phi_v1 + 1;
temp_f14_4 = phi_v0->unk1C;
phi_v0->unk0 = phi_f10;
temp_f10_2 = phi_v0->unk10 * arg6;
phi_v0->unk4 = phi_f16 * arg6;
phi_v0->unk8 = phi_f12 * arg6;
temp_v0 = phi_v0 + 0x10;
temp_v0->unk-4 = phi_f14 * arg6;
phi_f10 = temp_f10_2;
phi_v0 = temp_v0;
phi_f16 = temp_f16_2;
phi_f12 = temp_f12_4;
phi_f14 = temp_f14_4;
phi_v1 = temp_v1;
phi_f10_2 = temp_f10_2;
phi_v0_2 = temp_v0;
phi_f16_2 = temp_f16_2;
phi_f12_2 = temp_f12_4;
phi_f14_2 = temp_f14_4;
} while (temp_v1 != 4);
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) {
arg0[i][j] *= arg6;
}
}
temp_v0_2 = phi_v0_2 + 0x10;
temp_v0_2->unk-10 = phi_f10_2;
temp_v0_2->unk-C = phi_f16_2 * arg6;
temp_v0_2->unk-8 = phi_f12_2 * arg6;
temp_v0_2->unk-4 = phi_f14_2 * arg6;
if (arg1 != 0) {
temp_f0 = temp_f18;
if (temp_f0 <= 2.0) {
if ((arg4 + arg5) <= 2.0) {
*arg1 = 0xFFFF;
return;
}
temp_t8 = 131072.0 / temp_f0;
*arg1 = temp_t8;
if ((temp_t8 & 0xFFFF) <= 0) {
*arg1 = 1;
else {
*arg1 = 131072.0 / (arg4 + arg5);
if (*arg1 <= 0) {
*arg1 = 1;
}
}
/* Duplicate return node #7. Try simplifying control flow for better match */
}
}
#else
GLOBAL_ASM("asm/non_matchings/math_util/func_802B5564.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
void func_802B5794(void *arg0, void *arg1, void *arg2) {
// Similar to sm64's mtxf_lookat
void func_802B5794(void* arg0, void* arg1, void* arg2) {
f32 sp4C;
f32 sp48;
f32 sp30;
@ -377,12 +297,12 @@ void func_802B5794(void *arg0, void *arg1, void *arg2) {
temp_f12 = arg2->unk0 - arg1->unk0;
temp_f14 = arg2->unk4 - arg1->unk4;
temp_f2 = arg2->unk8 - arg1->unk8;
temp_f16 = -1.0 / sqrtf((temp_f12 * temp_f12) + (temp_f14 * temp_f14) + (temp_f2 * temp_f2));
temp_f16 = (f32) (-1.0 / (f64) sqrtf((temp_f12 * temp_f12) + (temp_f14 * temp_f14) + (temp_f2 * temp_f2)));
temp_f12_2 = temp_f12 * temp_f16;
temp_f14_2 = temp_f14 * temp_f16;
temp_f2_2 = temp_f2 * temp_f16;
temp_f16_2 = 0.0f - (1.0f * temp_f12_2);
temp_f22 = 1.0 / sqrtf((temp_f2_2 * temp_f2_2) + 0.0f + (temp_f16_2 * temp_f16_2));
temp_f22 = (f32) (1.0 / (f64) sqrtf((temp_f2_2 * temp_f2_2) + 0.0f + (temp_f16_2 * temp_f16_2)));
temp_f28 = temp_f2_2 * temp_f22;
temp_f18 = temp_f16_2 * temp_f22;
temp_f6 = temp_f14_2 * temp_f18;
@ -390,7 +310,7 @@ void func_802B5794(void *arg0, void *arg1, void *arg2) {
temp_f20 = temp_f6 - (temp_f2_2 * 0.0f);
temp_f16_3 = (temp_f2_2 * temp_f28) - (temp_f12_2 * sp30);
temp_f18_2 = (temp_f12_2 * 0.0f) - (temp_f14_2 * temp_f28);
temp_f22_2 = 1.0 / sqrtf((temp_f20 * temp_f20) + (temp_f16_3 * temp_f16_3) + (temp_f18_2 * temp_f18_2));
temp_f22_2 = (f32) (1.0 / (f64) sqrtf((temp_f20 * temp_f20) + (temp_f16_3 * temp_f16_3) + (temp_f18_2 * temp_f18_2)));
temp_f20_2 = temp_f20 * temp_f22_2;
temp_f10 = temp_f18_2 * temp_f22_2;
sp4C = temp_f16_3 * temp_f22_2;
@ -398,118 +318,63 @@ void func_802B5794(void *arg0, void *arg1, void *arg2) {
arg0->unk0 = temp_f28;
arg0->unk10 = 0.0f;
arg0->unk20 = sp30;
arg0->unk30 = -((arg1->unk8 * sp30) + ((arg1->unk0 * temp_f28) + (arg1->unk4 * 0.0f)));
arg0->unk30 = (f32) -((arg1->unk8 * sp30) + ((arg1->unk0 * temp_f28) + (arg1->unk4 * 0.0f)));
arg0->unk4 = temp_f20_2;
arg0->unk24 = sp48;
arg0->unk14 = sp4C;
arg0->unk8 = temp_f12_2;
arg0->unk18 = temp_f14_2;
arg0->unk28 = temp_f2_2;
arg0->unk34 = -((arg1->unk8 * sp48) + ((arg1->unk0 * temp_f20_2) + (arg1->unk4 * sp4C)));
arg0->unk34 = (f32) -((arg1->unk8 * sp48) + ((arg1->unk0 * temp_f20_2) + (arg1->unk4 * sp4C)));
arg0->unkC = 0.0f;
arg0->unk1C = 0.0f;
arg0->unk2C = 0.0f;
arg0->unk3C = 1.0f;
arg0->unk38 = -((arg1->unk8 * temp_f2_2) + ((arg1->unk0 * temp_f12_2) + (arg1->unk4 * temp_f14_2)));
arg0->unk38 = (f32) -((arg1->unk8 * temp_f2_2) + ((arg1->unk0 * temp_f12_2) + (arg1->unk4 * temp_f14_2)));
}
#else
GLOBAL_ASM("asm/non_matchings/math_util/func_802B5794.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
? mtxf_identity(void *); /* extern */
f32 sins(s32); /* extern */
f32 coss(s32); /* extern */
void func_802B59DC(Mat4 arg0, s16 arg1) {
f32 sp28 = sins(arg1);
f32 temp_f0 = coss(arg1);
void func_802B59DC(void *arg0, s32 arg1) {
f32 sp2C;
f32 sp28;
s32 sp24;
f32 temp_f0;
s32 temp_a0;
temp_a0 = arg1 & 0xFFFF;
sp24 = temp_a0;
temp_f0 = sins(temp_a0);
sp2C = temp_f0;
sp28 = coss(temp_a0);
mtxf_identity(arg0);
arg0->unk18 = temp_f0;
arg0->unk24 = -temp_f0;
arg0->unk14 = sp28;
arg0->unk28 = sp28;
arg0[1][1] = temp_f0;
arg0[1][2] = sp28;
arg0[2][1] = -sp28;
arg0[2][2] = temp_f0;
}
#else
GLOBAL_ASM("asm/non_matchings/math_util/func_802B59DC.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
//This function did not have a glabel in the original assembly, as such it may
//be unused/unnamed
? mtxf_identity(void *); /* extern */
f32 sins(s32); /* extern */
f32 coss(s32); /* extern */
void func_802B5A44(Mat4 arg0, s16 arg1) {
f32 temp_f0 = sins(arg1);
f32 sp28 = coss(arg1);
void func_802B5A44(void *arg0, s32 arg1) {
f32 sp2C;
f32 sp28;
s32 sp24;
f32 temp_f0;
s32 temp_a0;
temp_a0 = arg1 & 0xFFFF;
sp24 = temp_a0;
temp_f0 = sins(temp_a0);
sp2C = temp_f0;
sp28 = coss(temp_a0);
mtxf_identity(arg0);
arg0->unk20 = temp_f0;
arg0->unk8 = -temp_f0;
arg0->unk0 = sp28;
arg0->unk28 = sp28;
arg0[0][0] = sp28;
arg0[0][2] = -temp_f0;
arg0[2][0] = temp_f0;
arg0[2][2] = sp28;
}
#else
GLOBAL_ASM("asm/non_matchings/math_util/func_802B5A44.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
//This function did not have a glabel in the original assembly, as such it may
//be unused/unnamed
? mtxf_identity(void *); /* extern */
f32 sins(s32); /* extern */
f32 coss(s32); /* extern */
void func_802B5AAC(Mat4 arg0, s16 arg1) {
f32 temp_f0 = sins(arg1);
f32 sp28 = coss(arg1);
void func_802B5AAC(void *arg0, s32 arg1) {
f32 sp2C;
f32 sp28;
s32 sp24;
f32 temp_f0;
s32 temp_a0;
temp_a0 = arg1 & 0xFFFF;
sp24 = temp_a0;
temp_f0 = sins(temp_a0);
sp2C = temp_f0;
sp28 = coss(temp_a0);
mtxf_identity(arg0);
arg0->unk4 = temp_f0;
arg0->unk10 = -temp_f0;
arg0->unk0 = sp28;
arg0->unk14 = sp28;
arg0[0][0] = sp28;
arg0[0][1] = temp_f0;
arg0[1][0] = -temp_f0;
arg0[1][1] = sp28;
}
#else
GLOBAL_ASM("asm/non_matchings/math_util/func_802B5AAC.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
f32 sins(u16); /* extern */
f32 coss(u16); /* extern */
//f32 sins(u16); /* extern */
//f32 coss(u16); /* extern */
void func_802B5B14(void *arg0, void *arg1) {
void func_802B5B14(Vec3f arg0, Vec3s arg1) {
f32 sp70;
f32 sp6C;
f32 sp68;
@ -521,31 +386,35 @@ void func_802B5B14(void *arg0, void *arg1) {
f32 sp48;
f32 sp40;
f32 sp3C;
f32 sp38;
f32 sp30;
f32 sp2C;
f32 sp28;
f32 temp_f0;
f32 sp38 = sins(arg1[0]);
f32 sp30 = sins(arg1[1]);
f32 sp2C = coss(arg1[1]);
f32 sp28 = sins(arg1[2]);
f32 temp_f0 = coss(arg1[2]);
f32 temp_f20 = coss(arg1[0]);
f32 temp_f10;
f32 temp_f12;
//f32 temp_f12;
f32 temp_f18;
f32 temp_f20;
f32 temp_f4;
f32 temp_f6;
sp38 = sins(arg1->unk0);
temp_f20 = coss(arg1->unk0);
sp30 = sins(arg1->unk2);
sp2C = coss(arg1->unk2);
sp28 = sins(arg1->unk4);
temp_f0 = coss(arg1->unk4);
temp_f4 = arg0->unk0;
temp_f12 = sp38 * sp30;
sp3C = temp_f4;
sp40 = arg0->unk4;
temp_f6 = (sp2C * temp_f0) + (temp_f12 * sp28);
//sp38 = sins(arg1->unk0);
//temp_f20 = coss(arg1->unk0);
//sp30 = sins(arg1->unk2);
//sp2C = coss(arg1->unk2);
//sp28 = sins(arg1->unk4);
//temp_f0 = coss(arg1->unk4);
//temp_f4 = arg0[0];
//temp_f12 = sp38 * sp30;
//sp3C = temp_f4;
sp3C = arg0[0];
sp40 = arg0[1];
temp_f6 = (sp2C * temp_f0) + (sp38 * sp30 * sp28);
sp48 = temp_f6;
sp58 = (-sp2C * sp28) + (temp_f12 * temp_f0);
sp58 = (-sp2C * sp28) + (sp38 * sp30 * temp_f0);
sp68 = temp_f20 * sp30;
sp4C = temp_f20 * sp28;
temp_f18 = sp38 * sp2C;
@ -555,54 +424,28 @@ void func_802B5B14(void *arg0, void *arg1) {
sp50 = temp_f10;
sp60 = (sp30 * sp28) + (temp_f18 * temp_f0);
sp70 = temp_f20 * sp2C;
arg0->unk0 = (temp_f10 * sp40) + ((temp_f4 * temp_f6) + (sp40 * sp4C));
arg0->unk4 = (sp60 * sp40) + ((temp_f4 * sp58) + (sp40 * sp5C));
arg0->unk8 = (sp70 * sp40) + ((sp3C * sp68) + (sp40 * sp6C));
arg0[0] = (temp_f10 * sp40) + ((sp3C * temp_f6) + (sp40 * sp4C));
arg0[1] = (sp60 * sp40) + ((sp3C * sp58) + (sp40 * sp5C));
arg0[2] = (sp70 * sp40) + ((sp3C * sp68) + (sp40 * sp6C));
}
#else
GLOBAL_ASM("asm/non_matchings/math_util/func_802B5B14.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
f32 sins(s32); /* extern */
f32 coss(s32); /* extern */
void func_802B5CAC(s16 arg0, s16 arg1, Vec3f arg2) {
f32 sp2C = sins(arg1);
f32 sp28 = coss(arg1);
f32 sp24 = sins(arg0);
f32 temp_f10 = coss(arg0);
void func_802B5CAC(u16 arg0, s32 arg1, void *arg2) {
f32 sp2C;
f32 sp28;
f32 sp24;
s32 sp1C;
f32 temp_f10;
s32 temp_a0;
temp_a0 = arg1 & 0xFFFF;
sp1C = temp_a0;
sp2C = sins(temp_a0);
sp28 = coss(temp_a0);
sp1C = arg0;
sp24 = sins(arg0);
temp_f10 = sp28 * coss(arg0);
arg2->unk0 = sp28 * sp24;
arg2->unk4 = sp2C;
arg2->unk8 = -temp_f10;
arg2[0] = sp28 * sp24;
arg2[1] = sp2C;
arg2[2] = -(sp28 * temp_f10);
}
#else
GLOBAL_ASM("asm/non_matchings/math_util/func_802B5CAC.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
//This function did not have a glabel in the original assembly, as such it may
//be unused/unnamed
? func_802B5D64(?, s16, s16, ?); /* extern */
void func_802B5D30(s16 arg0, s16 arg1, ? arg2) {
void func_802B5D30(s16 arg0, s16 arg1, s32 arg2) {
func_802B5D64(0x9000000, arg0, arg1, arg2);
}
#else
GLOBAL_ASM("asm/non_matchings/math_util/func_802B5D30.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
@ -844,118 +687,60 @@ void func_802B6214(void *arg0, void *arg1, void *arg2) {
GLOBAL_ASM("asm/non_matchings/math_util/func_802B6214.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
//This function did not have a glabel in the original assembly, as such it may
//be unused/unnamed
void func_802B6374(void *arg0) {
UNUSED void func_802B6374(Vec3f arg0) {
f32 temp_f0;
f32 temp_f12;
f32 temp_f14;
f32 temp_f18;
f32 temp_f2;
temp_f12 = arg0->unk0;
temp_f14 = arg0->unk4;
temp_f2 = arg0->unk8;
temp_f0 = sqrtf((temp_f2 * temp_f2) + ((temp_f12 * temp_f12) + (temp_f14 * temp_f14)));
temp_f18 = temp_f14 / temp_f0;
arg0->unk0 = temp_f12 / temp_f0;
arg0->unk4 = temp_f18;
arg0->unk8 = temp_f2 / temp_f0;
temp_f0 = sqrtf((arg0[0] * arg0[0]) + (arg0[1] * arg0[1]) + (arg0[2] * arg0[2]));
arg0[0] /= temp_f0;
arg0[1] /= temp_f0;
arg0[2] /= temp_f0;
}
#else
GLOBAL_ASM("asm/non_matchings/math_util/func_802B6374.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
void func_802B63B8(void *arg0, void *arg1) {
void func_802B63B8(Vec3f arg0, Mat3 arg1) {
f32 temp_f12;
f32 temp_f14;
f32 temp_f16;
f32 temp_f14;
temp_f12 = (arg1[0][0] * arg0[0]) + (arg1[0][1] * arg0[1]) + (arg1[0][2] * arg0[2]);
temp_f16 = (arg1[1][0] * arg0[0]) + (arg1[1][1] * arg0[1]) + (arg1[1][2] * arg0[2]);
temp_f14 = (arg1[2][0] * arg0[0]) + (arg1[2][1] * arg0[1]) + (arg1[2][2] * arg0[2]);
arg0[0] = temp_f12;
arg0[1] = temp_f16;
arg0[2] = temp_f14;
}
void func_802B6434(Vec3f arg0, Mat4 arg1) {
f32 temp_f2;
f32 temp_f16;
f32 temp_f6;
temp_f12 = arg0->unk0;
temp_f14 = arg0->unk4;
temp_f2 = arg0->unk8;
temp_f6 = arg1->unk18 * temp_f12;
temp_f16 = (temp_f2 * arg1->unk14) + ((arg1->unkC * temp_f12) + (arg1->unk10 * temp_f14));
arg0->unk0 = (temp_f2 * arg1->unk8) + ((arg1->unk0 * temp_f12) + (arg1->unk4 * temp_f14));
arg0->unk4 = temp_f16;
arg0->unk8 = (temp_f2 * arg1->unk20) + (temp_f6 + (arg1->unk1C * temp_f14));
temp_f2 = ((arg1[0][0] * arg0[0]) + (arg1[0][1] * arg0[1]) + (arg1[0][2] * arg0[2]));
temp_f16 = ((arg1[1][0] * arg0[0]) + (arg1[1][1] * arg0[1]) + (arg1[1][2] * arg0[2]));
temp_f6 = (arg1[2][0] * arg0[0]) + (arg1[2][1] * arg0[1]) + (arg1[2][2] * arg0[2]);
arg0[0] = temp_f2;
arg0[1] = temp_f16;
arg0[2] = temp_f6;
}
#else
GLOBAL_ASM("asm/non_matchings/math_util/func_802B63B8.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
void func_802B6434(void *arg0, void *arg1) {
f32 temp_f12;
f32 temp_f14;
f32 temp_f16;
f32 temp_f2;
f32 temp_f6;
temp_f12 = arg0->unk0;
temp_f14 = arg0->unk4;
temp_f2 = arg0->unk8;
temp_f6 = arg1->unk20 * temp_f12;
temp_f16 = (temp_f2 * arg1->unk18) + ((arg1->unk10 * temp_f12) + (arg1->unk14 * temp_f14));
arg0->unk0 = (temp_f2 * arg1->unk8) + ((arg1->unk0 * temp_f12) + (arg1->unk4 * temp_f14));
arg0->unk4 = temp_f16;
arg0->unk8 = (temp_f2 * arg1->unk28) + (temp_f6 + (arg1->unk24 * temp_f14));
}
#else
GLOBAL_ASM("asm/non_matchings/math_util/func_802B6434.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
//This function did not have a glabel in the original assembly, as such it may
//be unused/unnamed
void func_802B64B0(s32 arg0, ? arg1, ? arg2, ? arg3) {
UNUSED void func_802B64B0(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
}
#else
GLOBAL_ASM("asm/non_matchings/math_util/func_802B64B0.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
f32 sins(s32, void *); /* extern */
f32 coss(s32); /* extern */
void func_802B64C4(Vec3f arg0, s16 arg1) {
f32 sp2C = sins(arg1);
f32 temp_f0 = coss(arg1);
void func_802B64C4(void *arg0, s32 arg1) {
f32 sp2C;
s32 sp18;
f32 temp_f0;
f32 temp_f10;
f32 temp_f12;
f32 temp_f2;
f32 temp_f4;
s32 temp_a0;
void *temp_a2;
f32 temp1 = arg0[0];
f32 temp2 = arg0[1];
f32 temp3 = arg0[2];
temp_a2 = arg0;
temp_a0 = arg1 & 0xFFFF;
sp18 = temp_a0;
arg0 = temp_a2;
sp2C = sins(temp_a0, temp_a2);
temp_f0 = coss(temp_a0);
temp_f2 = arg0->unk0;
temp_f12 = arg0->unk8;
temp_f4 = temp_f0 * temp_f2;
arg0->unk4 = arg0->unk4;
temp_f10 = sp2C * temp_f2;
arg0->unk0 = temp_f4 - (sp2C * temp_f12);
arg0->unk8 = temp_f10 + (temp_f0 * temp_f12);
arg0[0] = temp_f0 * temp1 - (sp2C * temp3);
arg0[1] = temp2;
arg0[2] = sp2C * temp1 + (temp_f0 * temp3);
}
#else
GLOBAL_ASM("asm/non_matchings/math_util/func_802B64C4.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
@ -1635,39 +1420,19 @@ s16 func_802B7F34(f32 arg0, f32 arg1, f32 arg2, f32 arg3) {
return atan2s(arg2 - arg0, arg3 - arg1);
}
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
s16 func_802B7F34(f32, f32, ?32, ?32); /* extern */
void func_802B7F7C(Vec3f arg0, Vec3f arg1, Vec3s arg2) {
f32 temp_f14 = arg0[0];
f32 sp28 = arg0[1];
f32 temp_f12 = arg0[2];
void func_802B7F7C(void *arg0, void *arg1, void *arg2) {
f32 sp2C;
f32 sp28;
f32 sp24;
?32 sp20;
?32 sp1C;
?32 sp18;
?32 temp_f0;
?32 temp_f2;
f32 temp_f12;
f32 temp_f14;
f32 temp_f2 = arg1[0];
f32 sp1C = arg1[1];
f32 temp_f0 = arg1[2];
temp_f14 = arg0->unk0;
sp28 = arg0->unk4;
temp_f12 = arg0->unk8;
temp_f2 = arg1->unk0;
sp1C = arg1->unk4;
temp_f0 = arg1->unk8;
sp2C = temp_f14;
sp24 = temp_f12;
sp20 = temp_f2;
sp18 = temp_f0;
arg2->unk2 = func_802B7F34(temp_f12, temp_f14, temp_f0, temp_f2);
arg2->unk0 = func_802B7F34(sp28, sp24, sp1C, temp_f0);
arg2->unk4 = func_802B7F34(sp2C, sp28, sp20, sp1C);
arg2[1] = func_802B7F34(temp_f12, temp_f14, temp_f0, temp_f2);
arg2[0] = func_802B7F34(sp28, temp_f12, sp1C, temp_f0);
arg2[2] = func_802B7F34(temp_f14, sp28, temp_f2, sp1C);
}
#else
GLOBAL_ASM("asm/non_matchings/math_util/func_802B7F7C.s")
#endif
f32 sins(u16 arg0) {
return gSineTable[arg0 >> 4];
@ -1677,34 +1442,21 @@ f32 coss(u16 arg0) {
return gCosineTable[arg0 >> 4];
}
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
? func_802B8058(s32 arg0, s32 arg1, s32 arg2) {
s32 temp_t7;
s32 temp_t8;
s32 temp_v1;
temp_v1 = arg0 & 0xFFFF;
temp_t7 = arg1 & 0xFFFF;
temp_t8 = arg2 & 0xFFFF;
if (temp_t7 < temp_v1) {
if (temp_t7 >= temp_t8) {
s32 func_802B8058(u16 arg0, u16 arg1, u16 arg2) {
if (arg1 < arg0) {
if (arg1 >= arg2) {
return 0;
}
if (temp_t8 >= temp_v1) {
if (arg2 >= arg0) {
return 0;
}
} else {
if ((arg1 >= arg2) && (arg2 >= arg0)) {
return 0;
}
/* Duplicate return node #8. Try simplifying control flow for better match */
return 1;
}
if ((temp_t7 >= temp_t8) && (temp_t8 >= temp_v1)) {
return 0;
}
return 1;
}
#else
GLOBAL_ASM("asm/non_matchings/math_util/func_802B8058.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909

View File

@ -24,15 +24,15 @@ void *vec3f_copy(Vec3f, Vec3f);
void vec3s_copy(Vec3s, Vec3s);
void *sm64_vec3f_set(Vec3f, f32, f32, f32);
void mtxf_identity(Mat4);
void func_802B5398(Mat4, Mat4, s32);
//void func_802B5398(Mat4, Mat4, s32);
void func_802B5450(Mat4, Mat4, Mat4);
void func_802B54EC(Mat4, Mat4, Mat4);
void mtxf_translate(Mat4, Vec3f);
void func_802B59DC(Mat4, s32);
void func_802B59DC(Mat4, s16);
void func_802B5F74(Mat4, Vec3f, Vec3s);
f32 func_802B80D0(Vec3f, Vec3f, u16, f32, f32, f32);
void func_802B5F00(Mat4, f32);
void func_802B63B8(Vec3f, f32*);
void func_802B63B8(Vec3f, Mat3);
void func_802B64C4(Vec3f, s16);
void func_802B71CC(Mat4, Mat4, Mat4);
void func_802B75F8(Mtx*, Mat4);