1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-02-02 17:44:25 +00:00

Decompile a bunch of small files (#160)

* Decompile a bunch of small files

* Rename dacrate to dacRate

* Run format.sh

* Minor fixes in PR #160
This commit is contained in:
Random 2020-05-25 23:18:14 +02:00 committed by GitHub
parent 13b1dc03bb
commit 3d050f2861
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
54 changed files with 412 additions and 1029 deletions

View file

@ -103,12 +103,19 @@ build/src/code/code_801068B0.o: OPTFLAGS := -g
build/src/code/code_80106860.o: OPTFLAGS := -g build/src/code/code_80106860.o: OPTFLAGS := -g
build/src/code/code_801067F0.o: OPTFLAGS := -g build/src/code/code_801067F0.o: OPTFLAGS := -g
# Todo: split libultra_code into libultra_code_O1, etc..
build/src/libultra_code/sqrt.o: OPTFLAGS := -O2 -g3
build/src/libultra_code/absf.o: OPTFLAGS := -O2 -g3
build/src/libultra_code/osSetTimer.o: OPTFLAGS := -O1
build/src/libultra_code/osStopTimer.o: OPTFLAGS := -O1
build/src/libultra_boot_O1/%.o: CC := $(CC_OLD) build/src/libultra_boot_O1/%.o: CC := $(CC_OLD)
build/src/libultra_boot_O2/%.o: CC := $(CC_OLD) build/src/libultra_boot_O2/%.o: CC := $(CC_OLD)
build/src/libultra_code/%.o: CC := python3 tools/asm_processor/build.py $(CC_OLD) -- $(AS) $(ASFLAGS) -- build/src/libultra_code/%.o: CC := python3 tools/asm_processor/build.py $(CC_OLD) -- $(AS) $(ASFLAGS) --
build/src/code/jpegutils.o: CC := python3 tools/asm_processor/build.py $(CC_OLD) -- $(AS) $(ASFLAGS) -- build/src/code/jpegutils.o: CC := python3 tools/asm_processor/build.py $(CC_OLD) -- $(AS) $(ASFLAGS) --
build/src/boot/%.o: CC := python3 tools/asm_processor/build.py $(CC) -- $(AS) $(ASFLAGS) -- build/src/boot/%.o: CC := python3 tools/asm_processor/build.py $(CC) -- $(AS) $(ASFLAGS) --
build/src/code/%.o: CC := python3 tools/asm_processor/build.py $(CC) -- $(AS) $(ASFLAGS) -- build/src/code/%.o: CC := python3 tools/asm_processor/build.py $(CC) -- $(AS) $(ASFLAGS) --
build/src/overlays/actors/%.o: CC := python3 tools/asm_processor/build.py $(CC) -- $(AS) $(ASFLAGS) -- build/src/overlays/actors/%.o: CC := python3 tools/asm_processor/build.py $(CC) -- $(AS) $(ASFLAGS) --

View file

@ -2099,7 +2099,7 @@ glabel L800D990C
/* B50B64 800D99C4 29010002 */ slti $at, $t0, 2 /* B50B64 800D99C4 29010002 */ slti $at, $t0, 2
/* B50B68 800D99C8 14200498 */ bnez $at, .L800DAC2C /* B50B68 800D99C8 14200498 */ bnez $at, .L800DAC2C
/* B50B6C 800D99CC 27A40290 */ addiu $a0, $sp, 0x290 /* B50B6C 800D99CC 27A40290 */ addiu $a0, $sp, 0x290
/* B50B70 800D99D0 0C03F096 */ jal func_800FC258 /* B50B70 800D99D0 0C03F096 */ jal MtxConv_L2F
/* B50B74 800D99D4 02802825 */ move $a1, $s4 /* B50B74 800D99D4 02802825 */ move $a1, $s4
/* B50B78 800D99D8 8E6800BC */ lw $t0, 0xbc($s3) /* B50B78 800D99D8 8E6800BC */ lw $t0, 0xbc($s3)
/* B50B7C 800D99DC 11000004 */ beqz $t0, .L800D99F0 /* B50B7C 800D99DC 11000004 */ beqz $t0, .L800D99F0

View file

@ -2201,7 +2201,7 @@ glabel func_800DFBF8
/* B56DEC 800DFC4C 8C590000 */ lw $t9, ($v0) /* B56DEC 800DFC4C 8C590000 */ lw $t9, ($v0)
/* B56DF0 800DFC50 AFA20068 */ sw $v0, 0x68($sp) /* B56DF0 800DFC50 AFA20068 */ sw $v0, 0x68($sp)
/* B56DF4 800DFC54 A6D9284A */ sh $t9, 0x284a($s6) /* B56DF4 800DFC54 A6D9284A */ sh $t9, 0x284a($s6)
/* B56DF8 800DFC58 0C040FFC */ jal func_80103FF0 /* B56DF8 800DFC58 0C040FFC */ jal osAiSetFrequency
/* B56DFC 800DFC5C 3324FFFF */ andi $a0, $t9, 0xffff /* B56DFC 800DFC5C 3324FFFF */ andi $a0, $t9, 0xffff
/* B56E00 800DFC60 96C3284A */ lhu $v1, 0x284a($s6) /* B56E00 800DFC60 96C3284A */ lhu $v1, 0x284a($s6)
/* B56E04 800DFC64 8EC92964 */ lw $t1, 0x2964($s6) /* B56E04 800DFC64 8EC92964 */ lw $t1, 0x2964($s6)

View file

@ -1,175 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_800FCB50
/* B73CF0 800FCB50 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B73CF4 800FCB54 AFBF0014 */ sw $ra, 0x14($sp)
/* B73CF8 800FCB58 0C001114 */ jal bzero
/* B73CFC 800FCB5C 24050018 */ li $a1, 24
/* B73D00 800FCB60 8FBF0014 */ lw $ra, 0x14($sp)
/* B73D04 800FCB64 27BD0018 */ addiu $sp, $sp, 0x18
/* B73D08 800FCB68 03E00008 */ jr $ra
/* B73D0C 800FCB6C 00000000 */ nop
glabel func_800FCB70
/* B73D10 800FCB70 03E00008 */ jr $ra
/* B73D14 800FCB74 00000000 */ nop
glabel func_800FCB78
/* B73D18 800FCB78 A480000C */ sh $zero, 0xc($a0)
/* B73D1C 800FCB7C 03E00008 */ jr $ra
/* B73D20 800FCB80 A4800012 */ sh $zero, 0x12($a0)
glabel func_800FCB84
/* B73D24 800FCB84 AFA50004 */ sw $a1, 4($sp)
/* B73D28 800FCB88 948E0000 */ lhu $t6, ($a0)
/* B73D2C 800FCB8C 30A5FFFF */ andi $a1, $a1, 0xffff
/* B73D30 800FCB90 01C51026 */ xor $v0, $t6, $a1
/* B73D34 800FCB94 03E00008 */ jr $ra
/* B73D38 800FCB98 2C420001 */ sltiu $v0, $v0, 1
glabel func_800FCB9C
/* B73D3C 800FCB9C AFA50004 */ sw $a1, 4($sp)
/* B73D40 800FCBA0 948E0000 */ lhu $t6, ($a0)
/* B73D44 800FCBA4 30A5FFFF */ andi $a1, $a1, 0xffff
/* B73D48 800FCBA8 01C57824 */ and $t7, $t6, $a1
/* B73D4C 800FCBAC 01E51026 */ xor $v0, $t7, $a1
/* B73D50 800FCBB0 03E00008 */ jr $ra
/* B73D54 800FCBB4 2C420001 */ sltiu $v0, $v0, 1
glabel func_800FCBB8
/* B73D58 800FCBB8 AFA50004 */ sw $a1, 4($sp)
/* B73D5C 800FCBBC 948E000C */ lhu $t6, 0xc($a0)
/* B73D60 800FCBC0 30A5FFFF */ andi $a1, $a1, 0xffff
/* B73D64 800FCBC4 01C57824 */ and $t7, $t6, $a1
/* B73D68 800FCBC8 01E51026 */ xor $v0, $t7, $a1
/* B73D6C 800FCBCC 03E00008 */ jr $ra
/* B73D70 800FCBD0 2C420001 */ sltiu $v0, $v0, 1
glabel func_800FCBD4
/* B73D74 800FCBD4 AFA50004 */ sw $a1, 4($sp)
/* B73D78 800FCBD8 948E0012 */ lhu $t6, 0x12($a0)
/* B73D7C 800FCBDC 30A5FFFF */ andi $a1, $a1, 0xffff
/* B73D80 800FCBE0 01C57824 */ and $t7, $t6, $a1
/* B73D84 800FCBE4 01E51026 */ xor $v0, $t7, $a1
/* B73D88 800FCBE8 03E00008 */ jr $ra
/* B73D8C 800FCBEC 2C420001 */ sltiu $v0, $v0, 1
glabel func_800FCBF0
/* B73D90 800FCBF0 03E00008 */ jr $ra
/* B73D94 800FCBF4 94820000 */ lhu $v0, ($a0)
glabel func_800FCBF8
/* B73D98 800FCBF8 03E00008 */ jr $ra
/* B73D9C 800FCBFC 9482000C */ lhu $v0, 0xc($a0)
glabel func_800FCC00
/* B73DA0 800FCC00 03E00008 */ jr $ra
/* B73DA4 800FCC04 80820002 */ lb $v0, 2($a0)
glabel func_800FCC08
/* B73DA8 800FCC08 03E00008 */ jr $ra
/* B73DAC 800FCC0C 80820003 */ lb $v0, 3($a0)
glabel func_800FCC10
/* B73DB0 800FCC10 A0850014 */ sb $a1, 0x14($a0)
/* B73DB4 800FCC14 03E00008 */ jr $ra
/* B73DB8 800FCC18 A0860015 */ sb $a2, 0x15($a0)
glabel func_800FCC1C
/* B73DBC 800FCC1C 03E00008 */ jr $ra
/* B73DC0 800FCC20 80820014 */ lb $v0, 0x14($a0)
glabel func_800FCC24
/* B73DC4 800FCC24 03E00008 */ jr $ra
/* B73DC8 800FCC28 80820015 */ lb $v0, 0x15($a0)
glabel func_800FCC2C
/* B73DCC 800FCC2C 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B73DD0 800FCC30 AFBF0014 */ sw $ra, 0x14($sp)
/* B73DD4 800FCC34 0C03F307 */ jal func_800FCC1C
/* B73DD8 800FCC38 00000000 */ nop
/* B73DDC 800FCC3C 8FBF0014 */ lw $ra, 0x14($sp)
/* B73DE0 800FCC40 27BD0018 */ addiu $sp, $sp, 0x18
/* B73DE4 800FCC44 03E00008 */ jr $ra
/* B73DE8 800FCC48 00000000 */ nop
glabel func_800FCC4C
/* B73DEC 800FCC4C 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B73DF0 800FCC50 AFBF0014 */ sw $ra, 0x14($sp)
/* B73DF4 800FCC54 0C03F309 */ jal func_800FCC24
/* B73DF8 800FCC58 00000000 */ nop
/* B73DFC 800FCC5C 8FBF0014 */ lw $ra, 0x14($sp)
/* B73E00 800FCC60 27BD0018 */ addiu $sp, $sp, 0x18
/* B73E04 800FCC64 03E00008 */ jr $ra
/* B73E08 800FCC68 00000000 */ nop
glabel func_800FCC6C
/* B73E0C 800FCC6C 27BDFFE0 */ addiu $sp, $sp, -0x20
/* B73E10 800FCC70 AFBF0014 */ sw $ra, 0x14($sp)
/* B73E14 800FCC74 0C03F300 */ jal func_800FCC00
/* B73E18 800FCC78 AFA40020 */ sw $a0, 0x20($sp)
/* B73E1C 800FCC7C 8FA40020 */ lw $a0, 0x20($sp)
/* B73E20 800FCC80 0C03F302 */ jal func_800FCC08
/* B73E24 800FCC84 AFA2001C */ sw $v0, 0x1c($sp)
/* B73E28 800FCC88 8FA3001C */ lw $v1, 0x1c($sp)
/* B73E2C 800FCC8C 28610008 */ slti $at, $v1, 8
/* B73E30 800FCC90 14200007 */ bnez $at, .L800FCCB0
/* B73E34 800FCC94 28610043 */ slti $at, $v1, 0x43
/* B73E38 800FCC98 10200003 */ beqz $at, .L800FCCA8
/* B73E3C 800FCC9C 00000000 */ nop
/* B73E40 800FCCA0 1000000D */ b .L800FCCD8
/* B73E44 800FCCA4 2465FFF9 */ addiu $a1, $v1, -7
.L800FCCA8:
/* B73E48 800FCCA8 1000000B */ b .L800FCCD8
/* B73E4C 800FCCAC 2405003C */ li $a1, 60
.L800FCCB0:
/* B73E50 800FCCB0 2861FFF9 */ slti $at, $v1, -7
/* B73E54 800FCCB4 10200008 */ beqz $at, .L800FCCD8
/* B73E58 800FCCB8 00002825 */ move $a1, $zero
/* B73E5C 800FCCBC 2861FFBE */ slti $at, $v1, -0x42
/* B73E60 800FCCC0 14200003 */ bnez $at, .L800FCCD0
/* B73E64 800FCCC4 00000000 */ nop
/* B73E68 800FCCC8 10000003 */ b .L800FCCD8
/* B73E6C 800FCCCC 24650007 */ addiu $a1, $v1, 7
.L800FCCD0:
/* B73E70 800FCCD0 10000001 */ b .L800FCCD8
/* B73E74 800FCCD4 2405FFC4 */ li $a1, -60
.L800FCCD8:
/* B73E78 800FCCD8 28410008 */ slti $at, $v0, 8
/* B73E7C 800FCCDC 14200007 */ bnez $at, .L800FCCFC
/* B73E80 800FCCE0 28410043 */ slti $at, $v0, 0x43
/* B73E84 800FCCE4 10200003 */ beqz $at, .L800FCCF4
/* B73E88 800FCCE8 00000000 */ nop
/* B73E8C 800FCCEC 1000000D */ b .L800FCD24
/* B73E90 800FCCF0 2446FFF9 */ addiu $a2, $v0, -7
.L800FCCF4:
/* B73E94 800FCCF4 1000000B */ b .L800FCD24
/* B73E98 800FCCF8 2406003C */ li $a2, 60
.L800FCCFC:
/* B73E9C 800FCCFC 2841FFF9 */ slti $at, $v0, -7
/* B73EA0 800FCD00 10200008 */ beqz $at, .L800FCD24
/* B73EA4 800FCD04 00003025 */ move $a2, $zero
/* B73EA8 800FCD08 2841FFBE */ slti $at, $v0, -0x42
/* B73EAC 800FCD0C 14200003 */ bnez $at, .L800FCD1C
/* B73EB0 800FCD10 00000000 */ nop
/* B73EB4 800FCD14 10000003 */ b .L800FCD24
/* B73EB8 800FCD18 24460007 */ addiu $a2, $v0, 7
.L800FCD1C:
/* B73EBC 800FCD1C 10000001 */ b .L800FCD24
/* B73EC0 800FCD20 2406FFC4 */ li $a2, -60
.L800FCD24:
/* B73EC4 800FCD24 0C03F304 */ jal func_800FCC10
/* B73EC8 800FCD28 8FA40020 */ lw $a0, 0x20($sp)
/* B73ECC 800FCD2C 8FBF0014 */ lw $ra, 0x14($sp)
/* B73ED0 800FCD30 27BD0020 */ addiu $sp, $sp, 0x20
/* B73ED4 800FCD34 03E00008 */ jr $ra
/* B73ED8 800FCD38 00000000 */ nop

View file

@ -9,16 +9,6 @@
.align 4 .align 4
glabel osSpTaskYield
/* B78640 801014A0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B78644 801014A4 AFBF0014 */ sw $ra, 0x14($sp)
/* B78648 801014A8 0C041920 */ jal __osSpSetStatus
/* B7864C 801014AC 24040400 */ li $a0, 1024
/* B78650 801014B0 8FBF0014 */ lw $ra, 0x14($sp)
/* B78654 801014B4 27BD0018 */ addiu $sp, $sp, 0x18
/* B78658 801014B8 03E00008 */ jr $ra
/* B7865C 801014BC 00000000 */ nop
glabel func_801014C0 glabel func_801014C0
/* B78660 801014C0 27BDFFE0 */ addiu $sp, $sp, -0x20 /* B78660 801014C0 27BDFFE0 */ addiu $sp, $sp, -0x20
/* B78664 801014C4 AFBF001C */ sw $ra, 0x1c($sp) /* B78664 801014C4 AFBF001C */ sw $ra, 0x1c($sp)

View file

@ -1,74 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel osStopTimer
/* B794D0 80102330 27BDFFD0 */ addiu $sp, $sp, -0x30
/* B794D4 80102334 AFA40030 */ sw $a0, 0x30($sp)
/* B794D8 80102338 8FAE0030 */ lw $t6, 0x30($sp)
/* B794DC 8010233C AFBF001C */ sw $ra, 0x1c($sp)
/* B794E0 80102340 AFB00018 */ sw $s0, 0x18($sp)
/* B794E4 80102344 8DCF0000 */ lw $t7, ($t6)
/* B794E8 80102348 15E00003 */ bnez $t7, .L80102358
/* B794EC 8010234C 00000000 */ nop
/* B794F0 80102350 1000002C */ b .L80102404
/* B794F4 80102354 2402FFFF */ li $v0, -1
.L80102358:
/* B794F8 80102358 0C001CA0 */ jal __osDisableInt
/* B794FC 8010235C 00000000 */ nop
/* B79500 80102360 8FB80030 */ lw $t8, 0x30($sp)
/* B79504 80102364 3C088001 */ lui $t0, %hi(__osTimerList) # $t0, 0x8001
/* B79508 80102368 8D08ADF0 */ lw $t0, %lo(__osTimerList)($t0)
/* B7950C 8010236C 8F190000 */ lw $t9, ($t8)
/* B79510 80102370 00408025 */ move $s0, $v0
/* B79514 80102374 1328000D */ beq $t9, $t0, .L801023AC
/* B79518 80102378 AFB90028 */ sw $t9, 0x28($sp)
/* B7951C 8010237C 27290010 */ addiu $t1, $t9, 0x10
/* B79520 80102380 AFA90024 */ sw $t1, 0x24($sp)
/* B79524 80102384 8D2B0004 */ lw $t3, 4($t1)
/* B79528 80102388 8F0D0014 */ lw $t5, 0x14($t8)
/* B7952C 8010238C 8D2A0000 */ lw $t2, ($t1)
/* B79530 80102390 8F0C0010 */ lw $t4, 0x10($t8)
/* B79534 80102394 016D7821 */ addu $t7, $t3, $t5
/* B79538 80102398 01ED082B */ sltu $at, $t7, $t5
/* B7953C 8010239C 002A7021 */ addu $t6, $at, $t2
/* B79540 801023A0 01CC7021 */ addu $t6, $t6, $t4
/* B79544 801023A4 AD2E0000 */ sw $t6, ($t1)
/* B79548 801023A8 AD2F0004 */ sw $t7, 4($t1)
.L801023AC:
/* B7954C 801023AC 8FA80030 */ lw $t0, 0x30($sp)
/* B79550 801023B0 3C0F8001 */ lui $t7, %hi(__osTimerList) # $t7, 0x8001
/* B79554 801023B4 8D190000 */ lw $t9, ($t0)
/* B79558 801023B8 8D180004 */ lw $t8, 4($t0)
/* B7955C 801023BC AF190000 */ sw $t9, ($t8)
/* B79560 801023C0 8FAA0030 */ lw $t2, 0x30($sp)
/* B79564 801023C4 8D4B0004 */ lw $t3, 4($t2)
/* B79568 801023C8 8D4C0000 */ lw $t4, ($t2)
/* B7956C 801023CC AD8B0004 */ sw $t3, 4($t4)
/* B79570 801023D0 8FAD0030 */ lw $t5, 0x30($sp)
/* B79574 801023D4 ADA00000 */ sw $zero, ($t5)
/* B79578 801023D8 8FAE0030 */ lw $t6, 0x30($sp)
/* B7957C 801023DC ADC00004 */ sw $zero, 4($t6)
/* B79580 801023E0 8DEFADF0 */ lw $t7, %lo(__osTimerList)($t7)
/* B79584 801023E4 8DE90000 */ lw $t1, ($t7)
/* B79588 801023E8 152F0003 */ bne $t1, $t7, .L801023F8
/* B7958C 801023EC 00000000 */ nop
/* B79590 801023F0 0C001BC0 */ jal __osSetCompare
/* B79594 801023F4 00002025 */ move $a0, $zero
.L801023F8:
/* B79598 801023F8 0C001CBC */ jal __osRestoreInt
/* B7959C 801023FC 02002025 */ move $a0, $s0
/* B795A0 80102400 00001025 */ move $v0, $zero
.L80102404:
/* B795A4 80102404 8FBF001C */ lw $ra, 0x1c($sp)
/* B795A8 80102408 8FB00018 */ lw $s0, 0x18($sp)
/* B795AC 8010240C 27BD0030 */ addiu $sp, $sp, 0x30
/* B795B0 80102410 03E00008 */ jr $ra
/* B795B4 80102414 00000000 */ nop

View file

@ -1,251 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_80103DC0
/* B7AF60 80103DC0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B7AF64 80103DC4 AFBF0014 */ sw $ra, 0x14($sp)
/* B7AF68 80103DC8 0C04191C */ jal __osSpGetStatus
/* B7AF6C 80103DCC AFA40018 */ sw $a0, 0x18($sp)
/* B7AF70 80103DD0 304E0100 */ andi $t6, $v0, 0x100
/* B7AF74 80103DD4 11C00003 */ beqz $t6, .L80103DE4
/* B7AF78 80103DD8 8FA40018 */ lw $a0, 0x18($sp)
/* B7AF7C 80103DDC 10000002 */ b .L80103DE8
/* B7AF80 80103DE0 24030001 */ li $v1, 1
.L80103DE4:
/* B7AF84 80103DE4 00001825 */ move $v1, $zero
.L80103DE8:
/* B7AF88 80103DE8 304F0080 */ andi $t7, $v0, 0x80
/* B7AF8C 80103DEC 51E00008 */ beql $t7, $zero, .L80103E10
/* B7AF90 80103DF0 8FBF0014 */ lw $ra, 0x14($sp)
/* B7AF94 80103DF4 8C980004 */ lw $t8, 4($a0)
/* B7AF98 80103DF8 2401FFFD */ li $at, -3
/* B7AF9C 80103DFC 0303C825 */ or $t9, $t8, $v1
/* B7AFA0 80103E00 AC990004 */ sw $t9, 4($a0)
/* B7AFA4 80103E04 03214824 */ and $t1, $t9, $at
/* B7AFA8 80103E08 AC890004 */ sw $t1, 4($a0)
/* B7AFAC 80103E0C 8FBF0014 */ lw $ra, 0x14($sp)
.L80103E10:
/* B7AFB0 80103E10 27BD0018 */ addiu $sp, $sp, 0x18
/* B7AFB4 80103E14 00601025 */ move $v0, $v1
/* B7AFB8 80103E18 03E00008 */ jr $ra
/* B7AFBC 80103E1C 00000000 */ nop
glabel func_80103E20
/* B7AFC0 80103E20 27BDFFB8 */ addiu $sp, $sp, -0x48
/* B7AFC4 80103E24 AFB00018 */ sw $s0, 0x18($sp)
/* B7AFC8 80103E28 00808025 */ move $s0, $a0
/* B7AFCC 80103E2C AFBF001C */ sw $ra, 0x1c($sp)
/* B7AFD0 80103E30 AFA5004C */ sw $a1, 0x4c($sp)
/* B7AFD4 80103E34 AFA60050 */ sw $a2, 0x50($sp)
/* B7AFD8 80103E38 AFA70054 */ sw $a3, 0x54($sp)
/* B7AFDC 80103E3C 27A60058 */ addiu $a2, $sp, 0x58
/* B7AFE0 80103E40 27A50054 */ addiu $a1, $sp, 0x54
/* B7AFE4 80103E44 0C041058 */ jal func_80104160
/* B7AFE8 80103E48 27A40050 */ addiu $a0, $sp, 0x50
/* B7AFEC 80103E4C 3C018013 */ lui $at, %hi(D_80134D10)
/* B7AFF0 80103E50 C7AC004C */ lwc1 $f12, 0x4c($sp)
/* B7AFF4 80103E54 C4244D10 */ lwc1 $f4, %lo(D_80134D10)($at)
/* B7AFF8 80103E58 46046302 */ mul.s $f12, $f12, $f4
/* B7AFFC 80103E5C 0C0400A4 */ jal sinf
/* B7B000 80103E60 E7AC004C */ swc1 $f12, 0x4c($sp)
/* B7B004 80103E64 C7AC004C */ lwc1 $f12, 0x4c($sp)
/* B7B008 80103E68 0C041184 */ jal cosf
/* B7B00C 80103E6C E7A00044 */ swc1 $f0, 0x44($sp)
/* B7B010 80103E70 C7AC0050 */ lwc1 $f12, 0x50($sp)
/* B7B014 80103E74 C7A80054 */ lwc1 $f8, 0x54($sp)
/* B7B018 80103E78 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B7B01C 80103E7C 44813000 */ mtc1 $at, $f6
/* B7B020 80103E80 46086282 */ mul.s $f10, $f12, $f8
/* B7B024 80103E84 C7A40058 */ lwc1 $f4, 0x58($sp)
/* B7B028 80103E88 46003081 */ sub.s $f2, $f6, $f0
/* B7B02C 80103E8C 02002025 */ move $a0, $s0
/* B7B030 80103E90 E7A00040 */ swc1 $f0, 0x40($sp)
/* B7B034 80103E94 46025482 */ mul.s $f18, $f10, $f2
/* B7B038 80103E98 00000000 */ nop
/* B7B03C 80103E9C 46044182 */ mul.s $f6, $f8, $f4
/* B7B040 80103EA0 E7B2003C */ swc1 $f18, 0x3c($sp)
/* B7B044 80103EA4 46023282 */ mul.s $f10, $f6, $f2
/* B7B048 80103EA8 00000000 */ nop
/* B7B04C 80103EAC 460C2202 */ mul.s $f8, $f4, $f12
/* B7B050 80103EB0 E7AA0038 */ swc1 $f10, 0x38($sp)
/* B7B054 80103EB4 46024182 */ mul.s $f6, $f8, $f2
/* B7B058 80103EB8 0C0406D0 */ jal guMtxIdentF
/* B7B05C 80103EBC E7A60034 */ swc1 $f6, 0x34($sp)
/* B7B060 80103EC0 C7AE0044 */ lwc1 $f14, 0x44($sp)
/* B7B064 80103EC4 C7AA0050 */ lwc1 $f10, 0x50($sp)
/* B7B068 80103EC8 C7A40054 */ lwc1 $f4, 0x54($sp)
/* B7B06C 80103ECC C7A60058 */ lwc1 $f6, 0x58($sp)
/* B7B070 80103ED0 460E5002 */ mul.s $f0, $f10, $f14
/* B7B074 80103ED4 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B7B078 80103ED8 C7B00040 */ lwc1 $f16, 0x40($sp)
/* B7B07C 80103EDC 460E2202 */ mul.s $f8, $f4, $f14
/* B7B080 80103EE0 C7B2003C */ lwc1 $f18, 0x3c($sp)
/* B7B084 80103EE4 460E3102 */ mul.s $f4, $f6, $f14
/* B7B088 80103EE8 00000000 */ nop
/* B7B08C 80103EEC 460A5082 */ mul.s $f2, $f10, $f10
/* B7B090 80103EF0 E7A80028 */ swc1 $f8, 0x28($sp)
/* B7B094 80103EF4 44814000 */ mtc1 $at, $f8
/* B7B098 80103EF8 E7A40024 */ swc1 $f4, 0x24($sp)
/* B7B09C 80103EFC 46024181 */ sub.s $f6, $f8, $f2
/* B7B0A0 80103F00 46103102 */ mul.s $f4, $f6, $f16
/* B7B0A4 80103F04 46022280 */ add.s $f10, $f4, $f2
/* B7B0A8 80103F08 E60A0000 */ swc1 $f10, ($s0)
/* B7B0AC 80103F0C C7A80038 */ lwc1 $f8, 0x38($sp)
/* B7B0B0 80103F10 46004181 */ sub.s $f6, $f8, $f0
/* B7B0B4 80103F14 E6060024 */ swc1 $f6, 0x24($s0)
/* B7B0B8 80103F18 C7A40038 */ lwc1 $f4, 0x38($sp)
/* B7B0BC 80103F1C 44813000 */ mtc1 $at, $f6
/* B7B0C0 80103F20 46002280 */ add.s $f10, $f4, $f0
/* B7B0C4 80103F24 E60A0018 */ swc1 $f10, 0x18($s0)
/* B7B0C8 80103F28 C7A80054 */ lwc1 $f8, 0x54($sp)
/* B7B0CC 80103F2C 46084302 */ mul.s $f12, $f8, $f8
/* B7B0D0 80103F30 460C3101 */ sub.s $f4, $f6, $f12
/* B7B0D4 80103F34 46102282 */ mul.s $f10, $f4, $f16
/* B7B0D8 80103F38 460C5200 */ add.s $f8, $f10, $f12
/* B7B0DC 80103F3C E6080014 */ swc1 $f8, 0x14($s0)
/* B7B0E0 80103F40 C7A20034 */ lwc1 $f2, 0x34($sp)
/* B7B0E4 80103F44 C7A60028 */ lwc1 $f6, 0x28($sp)
/* B7B0E8 80103F48 46061100 */ add.s $f4, $f2, $f6
/* B7B0EC 80103F4C E6040020 */ swc1 $f4, 0x20($s0)
/* B7B0F0 80103F50 C7AA0028 */ lwc1 $f10, 0x28($sp)
/* B7B0F4 80103F54 44812000 */ mtc1 $at, $f4
/* B7B0F8 80103F58 460A1201 */ sub.s $f8, $f2, $f10
/* B7B0FC 80103F5C E6080008 */ swc1 $f8, 8($s0)
/* B7B100 80103F60 C7A60058 */ lwc1 $f6, 0x58($sp)
/* B7B104 80103F64 46063002 */ mul.s $f0, $f6, $f6
/* B7B108 80103F68 46002281 */ sub.s $f10, $f4, $f0
/* B7B10C 80103F6C 46105202 */ mul.s $f8, $f10, $f16
/* B7B110 80103F70 46004180 */ add.s $f6, $f8, $f0
/* B7B114 80103F74 E6060028 */ swc1 $f6, 0x28($s0)
/* B7B118 80103F78 C7A40024 */ lwc1 $f4, 0x24($sp)
/* B7B11C 80103F7C 46049281 */ sub.s $f10, $f18, $f4
/* B7B120 80103F80 E60A0010 */ swc1 $f10, 0x10($s0)
/* B7B124 80103F84 C7A80024 */ lwc1 $f8, 0x24($sp)
/* B7B128 80103F88 46089180 */ add.s $f6, $f18, $f8
/* B7B12C 80103F8C E6060004 */ swc1 $f6, 4($s0)
/* B7B130 80103F90 8FBF001C */ lw $ra, 0x1c($sp)
/* B7B134 80103F94 8FB00018 */ lw $s0, 0x18($sp)
/* B7B138 80103F98 27BD0048 */ addiu $sp, $sp, 0x48
/* B7B13C 80103F9C 03E00008 */ jr $ra
/* B7B140 80103FA0 00000000 */ nop
glabel guRotate
/* B7B144 80103FA4 27BDFFA0 */ addiu $sp, $sp, -0x60
/* B7B148 80103FA8 44856000 */ mtc1 $a1, $f12
/* B7B14C 80103FAC 44867000 */ mtc1 $a2, $f14
/* B7B150 80103FB0 C7A40070 */ lwc1 $f4, 0x70($sp)
/* B7B154 80103FB4 AFBF001C */ sw $ra, 0x1c($sp)
/* B7B158 80103FB8 AFA40060 */ sw $a0, 0x60($sp)
/* B7B15C 80103FBC 44056000 */ mfc1 $a1, $f12
/* B7B160 80103FC0 44067000 */ mfc1 $a2, $f14
/* B7B164 80103FC4 AFA7006C */ sw $a3, 0x6c($sp)
/* B7B168 80103FC8 27A40020 */ addiu $a0, $sp, 0x20
/* B7B16C 80103FCC 0C040F88 */ jal func_80103E20
/* B7B170 80103FD0 E7A40010 */ swc1 $f4, 0x10($sp)
/* B7B174 80103FD4 27A40020 */ addiu $a0, $sp, 0x20
/* B7B178 80103FD8 0C041938 */ jal func_801064E0
/* B7B17C 80103FDC 8FA50060 */ lw $a1, 0x60($sp)
/* B7B180 80103FE0 8FBF001C */ lw $ra, 0x1c($sp)
/* B7B184 80103FE4 27BD0060 */ addiu $sp, $sp, 0x60
/* B7B188 80103FE8 03E00008 */ jr $ra
/* B7B18C 80103FEC 00000000 */ nop
glabel func_80103FF0
/* B7B190 80103FF0 3C058001 */ lui $a1, %hi(osViClock)
/* B7B194 80103FF4 24A5ACF8 */ addiu $a1, %lo(osViClock) # addiu $a1, $a1, -0x5308
/* B7B198 80103FF8 8CAE0000 */ lw $t6, ($a1)
/* B7B19C 80103FFC 44844000 */ mtc1 $a0, $f8
/* B7B1A0 80104000 3C014F80 */ li $at, 0x4F800000 # 0.000000
/* B7B1A4 80104004 448E2000 */ mtc1 $t6, $f4
/* B7B1A8 80104008 468042A0 */ cvt.s.w $f10, $f8
/* B7B1AC 8010400C 04810004 */ bgez $a0, .L80104020
/* B7B1B0 80104010 468021A0 */ cvt.s.w $f6, $f4
/* B7B1B4 80104014 44818000 */ mtc1 $at, $f16
/* B7B1B8 80104018 00000000 */ nop
/* B7B1BC 8010401C 46105280 */ add.s $f10, $f10, $f16
.L80104020:
/* B7B1C0 80104020 460A3483 */ div.s $f18, $f6, $f10
/* B7B1C4 80104024 3C013F00 */ li $at, 0x3F000000 # 0.000000
/* B7B1C8 80104028 44812000 */ mtc1 $at, $f4
/* B7B1CC 8010402C 24030001 */ li $v1, 1
/* B7B1D0 80104030 3C014F00 */ lui $at, 0x4f00
/* B7B1D4 80104034 3C08A450 */ lui $t0, 0xa450
/* B7B1D8 80104038 3C0AA450 */ li $t2, 0xA4500000 # 0.000000
/* B7B1DC 8010403C 46049000 */ add.s $f0, $f18, $f4
/* B7B1E0 80104040 444FF800 */ cfc1 $t7, $31
/* B7B1E4 80104044 44C3F800 */ ctc1 $v1, $31
/* B7B1E8 80104048 00000000 */ nop
/* B7B1EC 8010404C 46000224 */ cvt.w.s $f8, $f0
/* B7B1F0 80104050 4443F800 */ cfc1 $v1, $31
/* B7B1F4 80104054 00000000 */ nop
/* B7B1F8 80104058 30630078 */ andi $v1, $v1, 0x78
/* B7B1FC 8010405C 50600013 */ beql $v1, $zero, .L801040AC
/* B7B200 80104060 44034000 */ mfc1 $v1, $f8
/* B7B204 80104064 44814000 */ mtc1 $at, $f8
/* B7B208 80104068 24030001 */ li $v1, 1
/* B7B20C 8010406C 46080201 */ sub.s $f8, $f0, $f8
/* B7B210 80104070 44C3F800 */ ctc1 $v1, $31
/* B7B214 80104074 00000000 */ nop
/* B7B218 80104078 46004224 */ cvt.w.s $f8, $f8
/* B7B21C 8010407C 4443F800 */ cfc1 $v1, $31
/* B7B220 80104080 00000000 */ nop
/* B7B224 80104084 30630078 */ andi $v1, $v1, 0x78
/* B7B228 80104088 14600005 */ bnez $v1, .L801040A0
/* B7B22C 8010408C 00000000 */ nop
/* B7B230 80104090 44034000 */ mfc1 $v1, $f8
/* B7B234 80104094 3C018000 */ lui $at, 0x8000
/* B7B238 80104098 10000007 */ b .L801040B8
/* B7B23C 8010409C 00611825 */ or $v1, $v1, $at
.L801040A0:
/* B7B240 801040A0 10000005 */ b .L801040B8
/* B7B244 801040A4 2403FFFF */ li $v1, -1
/* B7B248 801040A8 44034000 */ mfc1 $v1, $f8
.L801040AC:
/* B7B24C 801040AC 00000000 */ nop
/* B7B250 801040B0 0460FFFB */ bltz $v1, .L801040A0
/* B7B254 801040B4 00000000 */ nop
.L801040B8:
/* B7B258 801040B8 44CFF800 */ ctc1 $t7, $31
/* B7B25C 801040BC 2C610084 */ sltiu $at, $v1, 0x84
/* B7B260 801040C0 10200003 */ beqz $at, .L801040D0
/* B7B264 801040C4 2479FFFF */ addiu $t9, $v1, -1
/* B7B268 801040C8 03E00008 */ jr $ra
/* B7B26C 801040CC 2402FFFF */ li $v0, -1
.L801040D0:
/* B7B270 801040D0 24010042 */ li $at, 66
/* B7B274 801040D4 0061001B */ divu $zero, $v1, $at
/* B7B278 801040D8 00001012 */ mflo $v0
/* B7B27C 801040DC 305800FF */ andi $t8, $v0, 0xff
/* B7B280 801040E0 2B010011 */ slti $at, $t8, 0x11
/* B7B284 801040E4 14200002 */ bnez $at, .L801040F0
/* B7B288 801040E8 304400FF */ andi $a0, $v0, 0xff
/* B7B28C 801040EC 24040010 */ li $a0, 16
.L801040F0:
/* B7B290 801040F0 AD190010 */ sw $t9, 0x10($t0)
/* B7B294 801040F4 2489FFFF */ addiu $t1, $a0, -1
/* B7B298 801040F8 AD490014 */ sw $t1, 0x14($t2)
/* B7B29C 801040FC 8CAB0000 */ lw $t3, ($a1)
/* B7B2A0 80104100 0163001A */ div $zero, $t3, $v1
/* B7B2A4 80104104 00001012 */ mflo $v0
/* B7B2A8 80104108 14600002 */ bnez $v1, .L80104114
/* B7B2AC 8010410C 00000000 */ nop
/* B7B2B0 80104110 0007000D */ break 7
.L80104114:
/* B7B2B4 80104114 2401FFFF */ li $at, -1
/* B7B2B8 80104118 14610004 */ bne $v1, $at, .L8010412C
/* B7B2BC 8010411C 3C018000 */ lui $at, 0x8000
/* B7B2C0 80104120 15610002 */ bne $t3, $at, .L8010412C
/* B7B2C4 80104124 00000000 */ nop
/* B7B2C8 80104128 0006000D */ break 6
.L8010412C:
/* B7B2CC 8010412C 03E00008 */ jr $ra
/* B7B2D0 80104130 00000000 */ nop

View file

@ -118,7 +118,7 @@ glabel func_801045A4
/* B7B784 801045E4 0C041114 */ jal func_80104450 /* B7B784 801045E4 0C041114 */ jal func_80104450
/* B7B788 801045E8 E7AA001C */ swc1 $f10, 0x1c($sp) /* B7B788 801045E8 E7AA001C */ swc1 $f10, 0x1c($sp)
/* B7B78C 801045EC 27A40028 */ addiu $a0, $sp, 0x28 /* B7B78C 801045EC 27A40028 */ addiu $a0, $sp, 0x28
/* B7B790 801045F0 0C041938 */ jal func_801064E0 /* B7B790 801045F0 0C041938 */ jal guMtxF2L
/* B7B794 801045F4 8FA50068 */ lw $a1, 0x68($sp) /* B7B794 801045F4 8FA50068 */ lw $a1, 0x68($sp)
/* B7B798 801045F8 8FBF0024 */ lw $ra, 0x24($sp) /* B7B798 801045F8 8FBF0024 */ lw $ra, 0x24($sp)
/* B7B79C 801045FC 27BD0068 */ addiu $sp, $sp, 0x68 /* B7B79C 801045FC 27BD0068 */ addiu $sp, $sp, 0x68

View file

@ -1,114 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_80104B00
/* B7BCA0 80104B00 908E0016 */ lbu $t6, 0x16($a0)
/* B7BCA4 80104B04 24010002 */ li $at, 2
/* B7BCA8 80104B08 24020200 */ li $v0, 512
/* B7BCAC 80104B0C 15C10003 */ bne $t6, $at, .L80104B1C
/* B7BCB0 80104B10 24180006 */ li $t8, 6
/* B7BCB4 80104B14 10000001 */ b .L80104B1C
/* B7BCB8 80104B18 24020100 */ li $v0, 256
.L80104B1C:
/* B7BCBC 80104B1C 908F0017 */ lbu $t7, 0x17($a0)
/* B7BCC0 80104B20 94880014 */ lhu $t0, 0x14($a0)
/* B7BCC4 80104B24 24010033 */ li $at, 51
/* B7BCC8 80104B28 030F1823 */ subu $v1, $t8, $t7
/* B7BCCC 80104B2C 3079FFFF */ andi $t9, $v1, 0xffff
/* B7BCD0 80104B30 1501002D */ bne $t0, $at, .L80104BE8
/* B7BCD4 80104B34 03201825 */ move $v1, $t9
/* B7BCD8 80104B38 94890002 */ lhu $t1, 2($a0)
/* B7BCDC 80104B3C 00695007 */ srav $t2, $t1, $v1
/* B7BCE0 80104B40 3145FFFF */ andi $a1, $t2, 0xffff
/* B7BCE4 80104B44 0045001A */ div $zero, $v0, $a1
/* B7BCE8 80104B48 00005812 */ mflo $t3
/* B7BCEC 80104B4C 000B6080 */ sll $t4, $t3, 2
/* B7BCF0 80104B50 00056840 */ sll $t5, $a1, 1
/* B7BCF4 80104B54 31B8FFFF */ andi $t8, $t5, 0xffff
/* B7BCF8 80104B58 318EFFFF */ andi $t6, $t4, 0xffff
/* B7BCFC 80104B5C 01D80019 */ multu $t6, $t8
/* B7BD00 80104B60 A48A001C */ sh $t2, 0x1c($a0)
/* B7BD04 80104B64 240A07FF */ li $t2, 2047
/* B7BD08 80104B68 14A00002 */ bnez $a1, .L80104B74
/* B7BD0C 80104B6C 00000000 */ nop
/* B7BD10 80104B70 0007000D */ break 7
.L80104B74:
/* B7BD14 80104B74 2401FFFF */ li $at, -1
/* B7BD18 80104B78 14A10004 */ bne $a1, $at, .L80104B8C
/* B7BD1C 80104B7C 3C018000 */ lui $at, 0x8000
/* B7BD20 80104B80 14410002 */ bne $v0, $at, .L80104B8C
/* B7BD24 80104B84 00000000 */ nop
/* B7BD28 80104B88 0006000D */ break 6
.L80104B8C:
/* B7BD2C 80104B8C 00007812 */ mflo $t7
/* B7BD30 80104B90 31F9FFFF */ andi $t9, $t7, 0xffff
/* B7BD34 80104B94 A48C001E */ sh $t4, 0x1e($a0)
/* B7BD38 80104B98 0145001A */ div $zero, $t2, $a1
/* B7BD3C 80104B9C 00194043 */ sra $t0, $t9, 1
/* B7BD40 80104BA0 00005812 */ mflo $t3
/* B7BD44 80104BA4 2509FFFF */ addiu $t1, $t0, -1
/* B7BD48 80104BA8 256C0001 */ addiu $t4, $t3, 1
/* B7BD4C 80104BAC A48D0024 */ sh $t5, 0x24($a0)
/* B7BD50 80104BB0 A48F0026 */ sh $t7, 0x26($a0)
/* B7BD54 80104BB4 A4890020 */ sh $t1, 0x20($a0)
/* B7BD58 80104BB8 14A00002 */ bnez $a1, .L80104BC4
/* B7BD5C 80104BBC 00000000 */ nop
/* B7BD60 80104BC0 0007000D */ break 7
.L80104BC4:
/* B7BD64 80104BC4 2401FFFF */ li $at, -1
/* B7BD68 80104BC8 14A10004 */ bne $a1, $at, .L80104BDC
/* B7BD6C 80104BCC 3C018000 */ lui $at, 0x8000
/* B7BD70 80104BD0 15410002 */ bne $t2, $at, .L80104BDC
/* B7BD74 80104BD4 00000000 */ nop
/* B7BD78 80104BD8 0006000D */ break 6
.L80104BDC:
/* B7BD7C 80104BDC A48C0022 */ sh $t4, 0x22($a0)
/* B7BD80 80104BE0 03E00008 */ jr $ra
/* B7BD84 80104BE4 00000000 */ nop
.L80104BE8:
/* B7BD88 80104BE8 948D0006 */ lhu $t5, 6($a0)
/* B7BD8C 80104BEC 94890002 */ lhu $t1, 2($a0)
/* B7BD90 80104BF0 00602825 */ move $a1, $v1
/* B7BD94 80104BF4 006D7007 */ srav $t6, $t5, $v1
/* B7BD98 80104BF8 25D80003 */ addiu $t8, $t6, 3
/* B7BD9C 80104BFC 330FFFFF */ andi $t7, $t8, 0xffff
/* B7BDA0 80104C00 004F001A */ div $zero, $v0, $t7
/* B7BDA4 80104C04 0000C812 */ mflo $t9
/* B7BDA8 80104C08 00A95007 */ srav $t2, $t1, $a1
/* B7BDAC 80104C0C 00194080 */ sll $t0, $t9, 2
/* B7BDB0 80104C10 000A5840 */ sll $t3, $t2, 1
/* B7BDB4 80104C14 316CFFFF */ andi $t4, $t3, 0xffff
/* B7BDB8 80104C18 3106FFFF */ andi $a2, $t0, 0xffff
/* B7BDBC 80104C1C 00CC0019 */ multu $a2, $t4
/* B7BDC0 80104C20 A498001C */ sh $t8, 0x1c($a0)
/* B7BDC4 80104C24 24D8FFFF */ addiu $t8, $a2, -1
/* B7BDC8 80104C28 15E00002 */ bnez $t7, .L80104C34
/* B7BDCC 80104C2C 00000000 */ nop
/* B7BDD0 80104C30 0007000D */ break 7
.L80104C34:
/* B7BDD4 80104C34 2401FFFF */ li $at, -1
/* B7BDD8 80104C38 15E10004 */ bne $t7, $at, .L80104C4C
/* B7BDDC 80104C3C 3C018000 */ lui $at, 0x8000
/* B7BDE0 80104C40 14410002 */ bne $v0, $at, .L80104C4C
/* B7BDE4 80104C44 00000000 */ nop
/* B7BDE8 80104C48 0006000D */ break 6
.L80104C4C:
/* B7BDEC 80104C4C 00003812 */ mflo $a3
/* B7BDF0 80104C50 00076C02 */ srl $t5, $a3, 0x10
/* B7BDF4 80104C54 30EEFFFF */ andi $t6, $a3, 0xffff
/* B7BDF8 80104C58 A488001E */ sh $t0, 0x1e($a0)
/* B7BDFC 80104C5C A48B0024 */ sh $t3, 0x24($a0)
/* B7BE00 80104C60 A48D0026 */ sh $t5, 0x26($a0)
/* B7BE04 80104C64 A48E0020 */ sh $t6, 0x20($a0)
/* B7BE08 80104C68 A4980022 */ sh $t8, 0x22($a0)
/* B7BE0C 80104C6C 03E00008 */ jr $ra
/* B7BE10 80104C70 00000000 */ nop

View file

@ -1,15 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_801067D0
/* B7D970 801067D0 46206004 */ sqrt.d $f0, $f12
/* B7D974 801067D4 03E00008 */ jr $ra
/* B7D978 801067D8 00000000 */ nop

View file

@ -1,15 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel absf
/* B7D980 801067E0 46006005 */ abs.s $f0, $f12
/* B7D984 801067E4 03E00008 */ jr $ra
/* B7D988 801067E8 00000000 */ nop

View file

@ -13,7 +13,7 @@
/* B7D674 801064D4 00000000 */ nop /* B7D674 801064D4 00000000 */ nop
/* B7D678 801064D8 00000000 */ nop /* B7D678 801064D8 00000000 */ nop
/* B7D67C 801064DC 00000000 */ nop /* B7D67C 801064DC 00000000 */ nop
glabel func_801064E0 glabel guMtxF2L
/* B7D680 801064E0 3C014780 */ li $at, 0x47800000 # 0.000000 /* B7D680 801064E0 3C014780 */ li $at, 0x47800000 # 0.000000
/* B7D684 801064E4 44810000 */ mtc1 $at, $f0 /* B7D684 801064E4 44810000 */ mtc1 $at, $f0
/* B7D688 801064E8 3C19FFFF */ lui $t9, 0xffff /* B7D688 801064E8 3C19FFFF */ lui $t9, 0xffff

View file

@ -9,7 +9,7 @@
.align 4 .align 4
glabel func_80103B60 glabel guMtxIdent
/* B7AD00 80103B60 20080001 */ addi $t0, $zero, 1 /* B7AD00 80103B60 20080001 */ addi $t0, $zero, 1
/* B7AD04 80103B64 00084C00 */ sll $t1, $t0, 0x10 /* B7AD04 80103B64 00084C00 */ sll $t1, $t0, 0x10
/* B7AD08 80103B68 AC890000 */ sw $t1, ($a0) /* B7AD08 80103B68 AC890000 */ sw $t1, ($a0)

View file

@ -13,7 +13,7 @@
/* B7B2F4 80104154 00000000 */ nop /* B7B2F4 80104154 00000000 */ nop
/* B7B2F8 80104158 00000000 */ nop /* B7B2F8 80104158 00000000 */ nop
/* B7B2FC 8010415C 00000000 */ nop /* B7B2FC 8010415C 00000000 */ nop
glabel func_80104160 glabel guNormalize
/* B7B300 80104160 C4840000 */ lwc1 $f4, ($a0) /* B7B300 80104160 C4840000 */ lwc1 $f4, ($a0)
/* B7B304 80104164 C4A60000 */ lwc1 $f6, ($a1) /* B7B304 80104164 C4A60000 */ lwc1 $f6, ($a1)
/* B7B308 80104168 C4C80000 */ lwc1 $f8, ($a2) /* B7B308 80104168 C4C80000 */ lwc1 $f8, ($a2)

View file

@ -1,143 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_800FC0C0
/* B73260 800FC0C0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B73264 800FC0C4 AFA40018 */ sw $a0, 0x18($sp)
/* B73268 800FC0C8 AFBF0014 */ sw $ra, 0x14($sp)
/* B7326C 800FC0CC AFA5001C */ sw $a1, 0x1c($sp)
/* B73270 800FC0D0 3C048015 */ lui $a0, %hi(D_8014A8B0) # $a0, 0x8015
/* B73274 800FC0D4 3C068015 */ lui $a2, %hi(D_8014A8B4) # $a2, 0x8015
/* B73278 800FC0D8 24C6A8B4 */ addiu $a2, %lo(D_8014A8B4) # addiu $a2, $a2, -0x574c
/* B7327C 800FC0DC 2484A8B0 */ addiu $a0, %lo(D_8014A8B0) # addiu $a0, $a0, -0x5750
/* B73280 800FC0E0 8FA50018 */ lw $a1, 0x18($sp)
/* B73284 800FC0E4 0C000B58 */ jal LogUtils_CheckNullPointer
/* B73288 800FC0E8 2407001F */ li $a3, 31
/* B7328C 800FC0EC 3C048015 */ lui $a0, %hi(D_8014A8C4) # $a0, 0x8015
/* B73290 800FC0F0 3C068015 */ lui $a2, %hi(D_8014A8C8) # $a2, 0x8015
/* B73294 800FC0F4 24C6A8C8 */ addiu $a2, %lo(D_8014A8C8) # addiu $a2, $a2, -0x5738
/* B73298 800FC0F8 2484A8C4 */ addiu $a0, %lo(D_8014A8C4) # addiu $a0, $a0, -0x573c
/* B7329C 800FC0FC 8FA5001C */ lw $a1, 0x1c($sp)
/* B732A0 800FC100 0C000B58 */ jal LogUtils_CheckNullPointer
/* B732A4 800FC104 24070020 */ li $a3, 32
/* B732A8 800FC108 3C014780 */ li $at, 0x47800000 # 0.000000
/* B732AC 800FC10C 44810000 */ mtc1 $at, $f0
/* B732B0 800FC110 00002825 */ move $a1, $zero
/* B732B4 800FC114 8FA4001C */ lw $a0, 0x1c($sp)
/* B732B8 800FC118 8FA30018 */ lw $v1, 0x18($sp)
/* B732BC 800FC11C 24060004 */ li $a2, 4
/* B732C0 800FC120 C4900000 */ lwc1 $f16, ($a0)
/* B732C4 800FC124 24A50001 */ addiu $a1, $a1, 1
/* B732C8 800FC128 46008482 */ mul.s $f18, $f16, $f0
/* B732CC 800FC12C 50A60027 */ beql $a1, $a2, .L800FC1CC
/* B732D0 800FC130 4600940D */ trunc.w.s $f16, $f18
/* B732D4 800FC134 4600940D */ trunc.w.s $f16, $f18
.L800FC138:
/* B732D8 800FC138 24840010 */ addiu $a0, $a0, 0x10
/* B732DC 800FC13C 24A50001 */ addiu $a1, $a1, 1
/* B732E0 800FC140 24630008 */ addiu $v1, $v1, 8
/* B732E4 800FC144 44028000 */ mfc1 $v0, $f16
/* B732E8 800FC148 00000000 */ nop
/* B732EC 800FC14C 00027C03 */ sra $t7, $v0, 0x10
/* B732F0 800FC150 A46FFFF8 */ sh $t7, -8($v1)
/* B732F4 800FC154 A4620018 */ sh $v0, 0x18($v1)
/* B732F8 800FC158 C490FFF4 */ lwc1 $f16, -0xc($a0)
/* B732FC 800FC15C 46008402 */ mul.s $f16, $f16, $f0
/* B73300 800FC160 4600840D */ trunc.w.s $f16, $f16
/* B73304 800FC164 44028000 */ mfc1 $v0, $f16
/* B73308 800FC168 00000000 */ nop
/* B7330C 800FC16C 0002CC03 */ sra $t9, $v0, 0x10
/* B73310 800FC170 A479FFFA */ sh $t9, -6($v1)
/* B73314 800FC174 A462001A */ sh $v0, 0x1a($v1)
/* B73318 800FC178 C490FFF8 */ lwc1 $f16, -8($a0)
/* B7331C 800FC17C 46008402 */ mul.s $f16, $f16, $f0
/* B73320 800FC180 4600840D */ trunc.w.s $f16, $f16
/* B73324 800FC184 44028000 */ mfc1 $v0, $f16
/* B73328 800FC188 00000000 */ nop
/* B7332C 800FC18C 00024C03 */ sra $t1, $v0, 0x10
/* B73330 800FC190 A469FFFC */ sh $t1, -4($v1)
/* B73334 800FC194 A462001C */ sh $v0, 0x1c($v1)
/* B73338 800FC198 C490FFFC */ lwc1 $f16, -4($a0)
/* B7333C 800FC19C 46008402 */ mul.s $f16, $f16, $f0
/* B73340 800FC1A0 4600840D */ trunc.w.s $f16, $f16
/* B73344 800FC1A4 44028000 */ mfc1 $v0, $f16
/* B73348 800FC1A8 00000000 */ nop
/* B7334C 800FC1AC 00025C03 */ sra $t3, $v0, 0x10
/* B73350 800FC1B0 A46BFFFE */ sh $t3, -2($v1)
/* B73354 800FC1B4 A462001E */ sh $v0, 0x1e($v1)
/* B73358 800FC1B8 C4900000 */ lwc1 $f16, ($a0)
/* B7335C 800FC1BC 46008482 */ mul.s $f18, $f16, $f0
/* B73360 800FC1C0 54A6FFDD */ bnel $a1, $a2, .L800FC138
/* B73364 800FC1C4 4600940D */ trunc.w.s $f16, $f18
/* B73368 800FC1C8 4600940D */ trunc.w.s $f16, $f18
.L800FC1CC:
/* B7336C 800FC1CC 24840010 */ addiu $a0, $a0, 0x10
/* B73370 800FC1D0 24630008 */ addiu $v1, $v1, 8
/* B73374 800FC1D4 44028000 */ mfc1 $v0, $f16
/* B73378 800FC1D8 00000000 */ nop
/* B7337C 800FC1DC 00027C03 */ sra $t7, $v0, 0x10
/* B73380 800FC1E0 A46FFFF8 */ sh $t7, -8($v1)
/* B73384 800FC1E4 A4620018 */ sh $v0, 0x18($v1)
/* B73388 800FC1E8 C490FFF4 */ lwc1 $f16, -0xc($a0)
/* B7338C 800FC1EC 46008402 */ mul.s $f16, $f16, $f0
/* B73390 800FC1F0 4600840D */ trunc.w.s $f16, $f16
/* B73394 800FC1F4 44028000 */ mfc1 $v0, $f16
/* B73398 800FC1F8 00000000 */ nop
/* B7339C 800FC1FC 0002CC03 */ sra $t9, $v0, 0x10
/* B733A0 800FC200 A479FFFA */ sh $t9, -6($v1)
/* B733A4 800FC204 A462001A */ sh $v0, 0x1a($v1)
/* B733A8 800FC208 C490FFF8 */ lwc1 $f16, -8($a0)
/* B733AC 800FC20C 46008402 */ mul.s $f16, $f16, $f0
/* B733B0 800FC210 4600840D */ trunc.w.s $f16, $f16
/* B733B4 800FC214 44028000 */ mfc1 $v0, $f16
/* B733B8 800FC218 00000000 */ nop
/* B733BC 800FC21C 00024C03 */ sra $t1, $v0, 0x10
/* B733C0 800FC220 A469FFFC */ sh $t1, -4($v1)
/* B733C4 800FC224 A462001C */ sh $v0, 0x1c($v1)
/* B733C8 800FC228 C490FFFC */ lwc1 $f16, -4($a0)
/* B733CC 800FC22C 46008402 */ mul.s $f16, $f16, $f0
/* B733D0 800FC230 4600840D */ trunc.w.s $f16, $f16
/* B733D4 800FC234 44028000 */ mfc1 $v0, $f16
/* B733D8 800FC238 00000000 */ nop
/* B733DC 800FC23C 00025C03 */ sra $t3, $v0, 0x10
/* B733E0 800FC240 A46BFFFE */ sh $t3, -2($v1)
/* B733E4 800FC244 A462001E */ sh $v0, 0x1e($v1)
/* B733E8 800FC248 8FBF0014 */ lw $ra, 0x14($sp)
/* B733EC 800FC24C 27BD0018 */ addiu $sp, $sp, 0x18
/* B733F0 800FC250 03E00008 */ jr $ra
/* B733F4 800FC254 00000000 */ nop
glabel func_800FC258
/* B733F8 800FC258 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B733FC 800FC25C AFA40018 */ sw $a0, 0x18($sp)
/* B73400 800FC260 AFBF0014 */ sw $ra, 0x14($sp)
/* B73404 800FC264 AFA5001C */ sw $a1, 0x1c($sp)
/* B73408 800FC268 3C048015 */ lui $a0, %hi(D_8014A8D8) # $a0, 0x8015
/* B7340C 800FC26C 3C068015 */ lui $a2, %hi(D_8014A8DC) # $a2, 0x8015
/* B73410 800FC270 24C6A8DC */ addiu $a2, %lo(D_8014A8DC) # addiu $a2, $a2, -0x5724
/* B73414 800FC274 2484A8D8 */ addiu $a0, %lo(D_8014A8D8) # addiu $a0, $a0, -0x5728
/* B73418 800FC278 8FA50018 */ lw $a1, 0x18($sp)
/* B7341C 800FC27C 0C000B58 */ jal LogUtils_CheckNullPointer
/* B73420 800FC280 24070037 */ li $a3, 55
/* B73424 800FC284 3C048015 */ lui $a0, %hi(D_8014A8EC) # $a0, 0x8015
/* B73428 800FC288 3C068015 */ lui $a2, %hi(D_8014A8F0) # $a2, 0x8015
/* B7342C 800FC28C 24C6A8F0 */ addiu $a2, %lo(D_8014A8F0) # addiu $a2, $a2, -0x5710
/* B73430 800FC290 2484A8EC */ addiu $a0, %lo(D_8014A8EC) # addiu $a0, $a0, -0x5714
/* B73434 800FC294 8FA5001C */ lw $a1, 0x1c($sp)
/* B73438 800FC298 0C000B58 */ jal LogUtils_CheckNullPointer
/* B7343C 800FC29C 24070038 */ li $a3, 56
/* B73440 800FC2A0 8FA40018 */ lw $a0, 0x18($sp)
/* B73444 800FC2A4 0C040BE8 */ jal func_80102FA0
/* B73448 800FC2A8 8FA5001C */ lw $a1, 0x1c($sp)
/* B7344C 800FC2AC 8FBF0014 */ lw $ra, 0x14($sp)
/* B73450 800FC2B0 27BD0018 */ addiu $sp, $sp, 0x18
/* B73454 800FC2B4 03E00008 */ jr $ra
/* B73458 800FC2B8 00000000 */ nop

View file

@ -22,7 +22,7 @@ glabel guLookAt
/* B79024 80101E84 0C0406E4 */ jal guLookAtF /* B79024 80101E84 0C0406E4 */ jal guLookAtF
/* B79028 80101E88 E7B20024 */ swc1 $f18, 0x24($sp) /* B79028 80101E88 E7B20024 */ swc1 $f18, 0x24($sp)
/* B7902C 80101E8C 27A40030 */ addiu $a0, $sp, 0x30 /* B7902C 80101E8C 27A40030 */ addiu $a0, $sp, 0x30
/* B79030 80101E90 0C041938 */ jal func_801064E0 /* B79030 80101E90 0C041938 */ jal guMtxF2L
/* B79034 80101E94 8FA50070 */ lw $a1, 0x70($sp) /* B79034 80101E94 8FA50070 */ lw $a1, 0x70($sp)
/* B79038 80101E98 8FBF002C */ lw $ra, 0x2c($sp) /* B79038 80101E98 8FBF002C */ lw $ra, 0x2c($sp)
/* B7903C 80101E9C 27BD0070 */ addiu $sp, $sp, 0x70 /* B7903C 80101E9C 27BD0070 */ addiu $sp, $sp, 0x70

View file

@ -222,7 +222,7 @@ glabel PadMgr_ProcessInputs
/* B3ED30 800C7B90 014C6825 */ or $t5, $t2, $t4 /* B3ED30 800C7B90 014C6825 */ or $t5, $t2, $t4
/* B3ED34 800C7B94 A609000C */ sh $t1, 0xc($s0) /* B3ED34 800C7B94 A609000C */ sh $t1, 0xc($s0)
/* B3ED38 800C7B98 A60D0012 */ sh $t5, 0x12($s0) /* B3ED38 800C7B98 A60D0012 */ sh $t5, 0x12($s0)
/* B3ED3C 800C7B9C 0C03F31B */ jal func_800FCC6C /* B3ED3C 800C7B9C 0C03F31B */ jal PadUtils_UpdateRelXY
/* B3ED40 800C7BA0 02002025 */ move $a0, $s0 /* B3ED40 800C7BA0 02002025 */ move $a0, $s0
/* B3ED44 800C7BA4 820E0002 */ lb $t6, 2($s0) /* B3ED44 800C7BA4 820E0002 */ lb $t6, 2($s0)
/* B3ED48 800C7BA8 820F0008 */ lb $t7, 8($s0) /* B3ED48 800C7BA8 820F0008 */ lb $t7, 8($s0)

View file

@ -67,7 +67,7 @@ glabel PadMgr_RequestPadData
/* B3F0A4 800C7F04 00A25024 */ and $t2, $a1, $v0 /* B3F0A4 800C7F04 00A25024 */ and $t2, $a1, $v0
/* B3F0A8 800C7F08 A60A000C */ sh $t2, 0xc($s0) /* B3F0A8 800C7F08 A60A000C */ sh $t2, 0xc($s0)
/* B3F0AC 800C7F0C A60B0012 */ sh $t3, 0x12($s0) /* B3F0AC 800C7F0C A60B0012 */ sh $t3, 0x12($s0)
/* B3F0B0 800C7F10 0C03F31B */ jal func_800FCC6C /* B3F0B0 800C7F10 0C03F31B */ jal PadUtils_UpdateRelXY
/* B3F0B4 800C7F14 A6090004 */ sh $t1, 4($s0) /* B3F0B4 800C7F14 A6090004 */ sh $t1, 4($s0)
/* B3F0B8 800C7F18 820C0002 */ lb $t4, 2($s0) /* B3F0B8 800C7F18 820C0002 */ lb $t4, 2($s0)
/* B3F0BC 800C7F1C 820D0008 */ lb $t5, 8($s0) /* B3F0BC 800C7F1C 820D0008 */ lb $t5, 8($s0)

View file

@ -127,7 +127,7 @@ glabel func_800C91BC
/* B404D8 800C9338 24E40010 */ addiu $a0, $a3, 0x10 /* B404D8 800C9338 24E40010 */ addiu $a0, $a3, 0x10
/* B404DC 800C933C 51C0000C */ beql $t6, $zero, .L800C9370 /* B404DC 800C933C 51C0000C */ beql $t6, $zero, .L800C9370
/* B404E0 800C9340 8CEF0004 */ lw $t7, 4($a3) /* B404E0 800C9340 8CEF0004 */ lw $t7, 4($a3)
/* B404E4 800C9344 0C040F70 */ jal func_80103DC0 /* B404E4 800C9344 0C040F70 */ jal osSpTaskYielded
/* B404E8 800C9348 AFA7004C */ sw $a3, 0x4c($sp) /* B404E8 800C9348 AFA7004C */ sw $a3, 0x4c($sp)
/* B404EC 800C934C 8FA7004C */ lw $a3, 0x4c($sp) /* B404EC 800C934C 8FA7004C */ lw $a3, 0x4c($sp)
/* B404F0 800C9350 3C048014 */ lui $a0, %hi(D_801460FC) # $a0, 0x8014 /* B404F0 800C9350 3C048014 */ lui $a0, %hi(D_801460FC) # $a0, 0x8014
@ -143,7 +143,7 @@ glabel func_800C91BC
/* B40514 800C9374 31E80010 */ andi $t0, $t7, 0x10 /* B40514 800C9374 31E80010 */ andi $t0, $t7, 0x10
/* B40518 800C9378 1100001A */ beqz $t0, .L800C93E4 /* B40518 800C9378 1100001A */ beqz $t0, .L800C93E4
/* B4051C 800C937C 00000000 */ nop /* B4051C 800C937C 00000000 */ nop
/* B40520 800C9380 0C040F70 */ jal func_80103DC0 /* B40520 800C9380 0C040F70 */ jal osSpTaskYielded
/* B40524 800C9384 AFA7004C */ sw $a3, 0x4c($sp) /* B40524 800C9384 AFA7004C */ sw $a3, 0x4c($sp)
/* B40528 800C9388 10400016 */ beqz $v0, .L800C93E4 /* B40528 800C9388 10400016 */ beqz $v0, .L800C93E4
/* B4052C 800C938C 8FA7004C */ lw $a3, 0x4c($sp) /* B4052C 800C938C 8FA7004C */ lw $a3, 0x4c($sp)

View file

@ -29,9 +29,9 @@ glabel TransitionUnk_InitGraphics
/* B28A74 800B18D4 AFB30034 */ sw $s3, 0x34($sp) /* B28A74 800B18D4 AFB30034 */ sw $s3, 0x34($sp)
/* B28A78 800B18D8 AFB20030 */ sw $s2, 0x30($sp) /* B28A78 800B18D8 AFB20030 */ sw $s2, 0x30($sp)
/* B28A7C 800B18DC AFB1002C */ sw $s1, 0x2c($sp) /* B28A7C 800B18DC AFB1002C */ sw $s1, 0x2c($sp)
/* B28A80 800B18E0 0C040ED8 */ jal func_80103B60 /* B28A80 800B18E0 0C040ED8 */ jal guMtxIdent
/* B28A84 800B18E4 24840058 */ addiu $a0, $a0, 0x58 /* B28A84 800B18E4 24840058 */ addiu $a0, $a0, 0x58
/* B28A88 800B18E8 0C040ED8 */ jal func_80103B60 /* B28A88 800B18E8 0C040ED8 */ jal guMtxIdent
/* B28A8C 800B18EC 26040098 */ addiu $a0, $s0, 0x98 /* B28A8C 800B18EC 26040098 */ addiu $a0, $s0, 0x98
/* B28A90 800B18F0 3C01C47A */ li $at, 0xC47A0000 # 0.000000 /* B28A90 800B18F0 3C01C47A */ li $at, 0xC47A0000 # 0.000000
/* B28A94 800B18F4 44812000 */ mtc1 $at, $f4 /* B28A94 800B18F4 44812000 */ mtc1 $at, $f4

View file

@ -117,7 +117,7 @@ glabel func_8009638C
/* B0D6F0 80096550 A4A60006 */ sh $a2, 6($a1) /* B0D6F0 80096550 A4A60006 */ sh $a2, 6($a1)
/* B0D6F4 80096554 A4A7000E */ sh $a3, 0xe($a1) /* B0D6F4 80096554 A4A7000E */ sh $a3, 0xe($a1)
/* B0D6F8 80096558 AFA50018 */ sw $a1, 0x18($sp) /* B0D6F8 80096558 AFA50018 */ sw $a1, 0x18($sp)
/* B0D6FC 8009655C 0C0412C0 */ jal func_80104B00 /* B0D6FC 8009655C 0C0412C0 */ jal guS2DInitBg
/* B0D700 80096560 AFA2001C */ sw $v0, 0x1c($sp) /* B0D700 80096560 AFA2001C */ sw $v0, 0x1c($sp)
/* B0D704 80096564 97B9003E */ lhu $t9, 0x3e($sp) /* B0D704 80096564 97B9003E */ lhu $t9, 0x3e($sp)
/* B0D708 80096568 3C010020 */ lui $at, 0x20 /* B0D708 80096568 3C010020 */ lui $at, 0x20

View file

@ -1243,7 +1243,7 @@ glabel EnTorch2_Update
/* 015E8 80B1EF68 3C0480B2 */ lui $a0, %hi(D_80B20130) ## $a0 = 80B20000 /* 015E8 80B1EF68 3C0480B2 */ lui $a0, %hi(D_80B20130) ## $a0 = 80B20000
/* 015EC 80B1EF6C A4380136 */ sh $t8, %lo(D_80B20136)($at) /* 015EC 80B1EF6C A4380136 */ sh $t8, %lo(D_80B20136)($at)
/* 015F0 80B1EF70 24840130 */ addiu $a0, $a0, %lo(D_80B20130) ## $a0 = 80B20130 /* 015F0 80B1EF70 24840130 */ addiu $a0, $a0, %lo(D_80B20130) ## $a0 = 80B20130
/* 015F4 80B1EF74 0C03F31B */ jal func_800FCC6C /* 015F4 80B1EF74 0C03F31B */ jal PadUtils_UpdateRelXY
/* 015F8 80B1EF78 A4260130 */ sh $a2, %lo(D_80B20130)($at) /* 015F8 80B1EF78 A4260130 */ sh $a2, %lo(D_80B20130)($at)
/* 015FC 80B1EF7C 3C0F80B2 */ lui $t7, %hi(D_80B20132) ## $t7 = 80B20000 /* 015FC 80B1EF7C 3C0F80B2 */ lui $t7, %hi(D_80B20132) ## $t7 = 80B20000
/* 01600 80B1EF80 3C0A80B2 */ lui $t2, %hi(D_80B20138) ## $t2 = 80B20000 /* 01600 80B1EF80 3C0A80B2 */ lui $t2, %hi(D_80B20138) ## $t2 = 80B20000

View file

@ -1,116 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel osSetTimer
/* B7D480 801062E0 27BDFFC8 */ addiu $sp, $sp, -0x38
/* B7D484 801062E4 AFA40038 */ sw $a0, 0x38($sp)
/* B7D488 801062E8 8FAE0038 */ lw $t6, 0x38($sp)
/* B7D48C 801062EC AFBF0014 */ sw $ra, 0x14($sp)
/* B7D490 801062F0 AFA60040 */ sw $a2, 0x40($sp)
/* B7D494 801062F4 AFA70044 */ sw $a3, 0x44($sp)
/* B7D498 801062F8 ADC00000 */ sw $zero, ($t6)
/* B7D49C 801062FC 8FAF0038 */ lw $t7, 0x38($sp)
/* B7D4A0 80106300 ADE00004 */ sw $zero, 4($t7)
/* B7D4A4 80106304 8FA80038 */ lw $t0, 0x38($sp)
/* B7D4A8 80106308 8FB9004C */ lw $t9, 0x4c($sp)
/* B7D4AC 8010630C 8FB80048 */ lw $t8, 0x48($sp)
/* B7D4B0 80106310 AD19000C */ sw $t9, 0xc($t0)
/* B7D4B4 80106314 AD180008 */ sw $t8, 8($t0)
/* B7D4B8 80106318 8FAA0040 */ lw $t2, 0x40($sp)
/* B7D4BC 8010631C 8FAB0044 */ lw $t3, 0x44($sp)
/* B7D4C0 80106320 15400003 */ bnez $t2, .L80106330
/* B7D4C4 80106324 00000000 */ nop
/* B7D4C8 80106328 11600005 */ beqz $t3, .L80106340
/* B7D4CC 8010632C 00000000 */ nop
.L80106330:
/* B7D4D0 80106330 8FA90038 */ lw $t1, 0x38($sp)
/* B7D4D4 80106334 AD2A0010 */ sw $t2, 0x10($t1)
/* B7D4D8 80106338 10000006 */ b .L80106354
/* B7D4DC 8010633C AD2B0014 */ sw $t3, 0x14($t1)
.L80106340:
/* B7D4E0 80106340 8FAE0038 */ lw $t6, 0x38($sp)
/* B7D4E4 80106344 8FAC0048 */ lw $t4, 0x48($sp)
/* B7D4E8 80106348 8FAD004C */ lw $t5, 0x4c($sp)
/* B7D4EC 8010634C ADCC0010 */ sw $t4, 0x10($t6)
/* B7D4F0 80106350 ADCD0014 */ sw $t5, 0x14($t6)
.L80106354:
/* B7D4F4 80106354 8FAF0050 */ lw $t7, 0x50($sp)
/* B7D4F8 80106358 8FB80038 */ lw $t8, 0x38($sp)
/* B7D4FC 8010635C AF0F0018 */ sw $t7, 0x18($t8)
/* B7D500 80106360 8FA80038 */ lw $t0, 0x38($sp)
/* B7D504 80106364 8FB90054 */ lw $t9, 0x54($sp)
/* B7D508 80106368 0C001CA0 */ jal __osDisableInt
/* B7D50C 8010636C AD19001C */ sw $t9, 0x1c($t0)
/* B7D510 80106370 3C0A8001 */ lui $t2, %hi(__osTimerList) # $t2, 0x8001
/* B7D514 80106374 8D4AADF0 */ lw $t2, %lo(__osTimerList)($t2)
/* B7D518 80106378 AFA20020 */ sw $v0, 0x20($sp)
/* B7D51C 8010637C 8D4B0000 */ lw $t3, ($t2)
/* B7D520 80106380 116A0028 */ beq $t3, $t2, .L80106424
/* B7D524 80106384 00000000 */ nop
/* B7D528 80106388 3C098001 */ lui $t1, %hi(__osTimerList) # $t1, 0x8001
/* B7D52C 8010638C 8D29ADF0 */ lw $t1, %lo(__osTimerList)($t1)
/* B7D530 80106390 8D2C0000 */ lw $t4, ($t1)
/* B7D534 80106394 0C001BA8 */ jal osGetCount
/* B7D538 80106398 AFAC002C */ sw $t4, 0x2c($sp)
/* B7D53C 8010639C AFA20028 */ sw $v0, 0x28($sp)
/* B7D540 801063A0 3C0E8001 */ lui $t6, %hi(__osTimerCounter) # $t6, 0x8001
/* B7D544 801063A4 8DCE5AF0 */ lw $t6, %lo(__osTimerCounter)($t6)
/* B7D548 801063A8 8FAD0028 */ lw $t5, 0x28($sp)
/* B7D54C 801063AC 8FA8002C */ lw $t0, 0x2c($sp)
/* B7D550 801063B0 24180000 */ li $t8, 0
/* B7D554 801063B4 01AE7823 */ subu $t7, $t5, $t6
/* B7D558 801063B8 AFAF0024 */ sw $t7, 0x24($sp)
/* B7D55C 801063BC 8D0A0010 */ lw $t2, 0x10($t0)
/* B7D560 801063C0 01E0C825 */ move $t9, $t7
/* B7D564 801063C4 8D0B0014 */ lw $t3, 0x14($t0)
/* B7D568 801063C8 0158082B */ sltu $at, $t2, $t8
/* B7D56C 801063CC 14200010 */ bnez $at, .L80106410
/* B7D570 801063D0 030A082B */ sltu $at, $t8, $t2
/* B7D574 801063D4 14200003 */ bnez $at, .L801063E4
/* B7D578 801063D8 032B082B */ sltu $at, $t9, $t3
/* B7D57C 801063DC 1020000C */ beqz $at, .L80106410
/* B7D580 801063E0 00000000 */ nop
.L801063E4:
/* B7D584 801063E4 25090010 */ addiu $t1, $t0, 0x10
/* B7D588 801063E8 AFA9001C */ sw $t1, 0x1c($sp)
/* B7D58C 801063EC 8D0D0014 */ lw $t5, 0x14($t0)
/* B7D590 801063F0 8D0C0010 */ lw $t4, 0x10($t0)
/* B7D594 801063F4 01B9082B */ sltu $at, $t5, $t9
/* B7D598 801063F8 01987023 */ subu $t6, $t4, $t8
/* B7D59C 801063FC 01C17023 */ subu $t6, $t6, $at
/* B7D5A0 80106400 01B97823 */ subu $t7, $t5, $t9
/* B7D5A4 80106404 AD0F0014 */ sw $t7, 0x14($t0)
/* B7D5A8 80106408 10000006 */ b .L80106424
/* B7D5AC 8010640C AD0E0010 */ sw $t6, 0x10($t0)
.L80106410:
/* B7D5B0 80106410 8FA9002C */ lw $t1, 0x2c($sp)
/* B7D5B4 80106414 240A0000 */ li $t2, 0
/* B7D5B8 80106418 240B0001 */ li $t3, 1
/* B7D5BC 8010641C AD2B0014 */ sw $t3, 0x14($t1)
/* B7D5C0 80106420 AD2A0010 */ sw $t2, 0x10($t1)
.L80106424:
/* B7D5C4 80106424 0C001B45 */ jal __osInsertTimer
/* B7D5C8 80106428 8FA40038 */ lw $a0, 0x38($sp)
/* B7D5CC 8010642C 3C0C8001 */ lui $t4, %hi(__osTimerList) # $t4, 0x8001
/* B7D5D0 80106430 8D8CADF0 */ lw $t4, %lo(__osTimerList)($t4)
/* B7D5D4 80106434 AFA20030 */ sw $v0, 0x30($sp)
/* B7D5D8 80106438 AFA30034 */ sw $v1, 0x34($sp)
/* B7D5DC 8010643C 8D8D0000 */ lw $t5, ($t4)
/* B7D5E0 80106440 8DA40010 */ lw $a0, 0x10($t5)
/* B7D5E4 80106444 0C001B1D */ jal __osSetTimerIntr
/* B7D5E8 80106448 8DA50014 */ lw $a1, 0x14($t5)
/* B7D5EC 8010644C 0C001CBC */ jal __osRestoreInt
/* B7D5F0 80106450 8FA40020 */ lw $a0, 0x20($sp)
/* B7D5F4 80106454 8FBF0014 */ lw $ra, 0x14($sp)
/* B7D5F8 80106458 27BD0038 */ addiu $sp, $sp, 0x38
/* B7D5FC 8010645C 00001025 */ move $v0, $zero
/* B7D600 80106460 03E00008 */ jr $ra
/* B7D604 80106464 00000000 */ nop

View file

@ -1,11 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .data
glabel D_80134D10
.incbin "baserom.z64", 0xBABEB0, 0x10

View file

@ -1,42 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .rodata
.align 4
glabel D_8014A8B0
.asciz "m1"
.balign 4
glabel D_8014A8B4
.asciz "../mtxuty-cvt.c"
.balign 4
glabel D_8014A8C4
.asciz "m2"
.balign 4
glabel D_8014A8C8
.asciz "../mtxuty-cvt.c"
.balign 4
glabel D_8014A8D8
.asciz "m1"
.balign 4
glabel D_8014A8DC
.asciz "../mtxuty-cvt.c"
.balign 4
glabel D_8014A8EC
.asciz "m2"
.balign 4
glabel D_8014A8F0
.asciz "../mtxuty-cvt.c"
.balign 4

View file

@ -2278,19 +2278,30 @@ void GfxPrint_Printf(GfxPrint*, const char*, ...);
void func_800FBCE0(); void func_800FBCE0();
void func_800FBFD8(); void func_800FBFD8();
void* Overlay_AllocateAndLoad(u32 vRomStart, u32 vRomEnd, void* vRamStart, void* vRamEnd); void* Overlay_AllocateAndLoad(u32 vRomStart, u32 vRomEnd, void* vRamStart, void* vRamEnd);
// ? func_800FC258(?); // ? MtxConv_L2F(?);
void Overlay_DoRelocation(void* allocatedVRamAddress, OverlayRelocationSection* overlayInfo, void* vRamAddress); void Overlay_DoRelocation(void* allocatedVRamAddress, OverlayRelocationSection* overlayInfo, void* vRamAddress);
s32 Overlay_Load(u32 vRomStart, u32 vRomEnd, void* vRamStart, void* vRamEnd, void* allocatedVRamAddress); s32 Overlay_Load(u32 vRomStart, u32 vRomEnd, void* vRamStart, void* vRamEnd, void* allocatedVRamAddress);
// ? func_800FC800(?); // ? func_800FC800(?);
// ? func_800FC83C(?); // ? func_800FC83C(?);
// ? func_800FCAB4(?); // ? func_800FCAB4(?);
void SystemHeap_Init(void* start, u32 size); void SystemHeap_Init(void* start, u32 size);
// ? func_800FCC00(?); void PadUtils_Init(Input* input);
// ? func_800FCC08(?); void func_800FCB70();
// ? func_800FCC10(?); void PadUtils_ResetPressRel(Input* input);
// ? func_800FCC1C(?); u32 PadUtils_CheckCurExact(Input* input, u16 value);
// ? func_800FCC24(?); u32 PadUtils_CheckCur(Input* input, u16 key);
// ? func_800FCC6C(?); u32 PadUtils_CheckPressed(Input* input, u16 key);
u32 PadUtils_CheckReleased(Input* input, u16 key);
u16 PadUtils_GetCurButton(Input* input);
u16 PadUtils_GetPressButton(Input* input);
s8 PadUtils_GetCurX(Input* input);
s8 PadUtils_GetCurY(Input* input);
void PadUtils_SetRelXY(Input* input, s32 x, s32 y);
s8 PadUtils_GetRelXImpl(Input* input);
s8 PadUtils_GetRelYImpl(Input* input);
s8 PadUtils_GetRelX(Input* input);
s8 PadUtils_GetRelY(Input* input);
void PadUtils_UpdateRelXY(Input* input);
// ? func_800FCD40(?); // ? func_800FCD40(?);
f32 Math_tanf(f32 x); f32 Math_tanf(f32 x);
f32 Math_nearbyintf(f32 x); f32 Math_nearbyintf(f32 x);
@ -2439,15 +2450,15 @@ void guLookAtHilite(Mtx* m, LookAt* l, Hilite* h, f32 xEye, f32 yEye, f32 zEye,
f32 yUp, f32 zUp, f32 xl1, f32 yl1, f32 zl1, f32 xl2, f32 yl2, f32 zl2, s32 hiliteWidth, f32 yUp, f32 zUp, f32 xl1, f32 yl1, f32 zl1, f32 xl2, f32 yl2, f32 zl2, s32 hiliteWidth,
s32 hiliteHeight); s32 hiliteHeight);
// ? __osSpDeviceBusy(?); // ? __osSpDeviceBusy(?);
// ? func_80103B60(?); // ? guMtxIdent(?);
// ? guPositionF(?); // ? guPositionF(?);
void guPosition(Mtx*, f32, f32, f32, f32, f32, f32, f32); void guPosition(Mtx*, f32, f32, f32, f32, f32, f32, f32);
// ? func_80103DC0(?); // ? osSpTaskYielded(?);
// ? func_80103E20(?); // ? guRotateF(?);
void guRotate(Mtx*, f32 angle, f32 x, f32 y, f32 z); void guRotate(Mtx*, f32 angle, f32 x, f32 y, f32 z);
// ? func_80103FF0(?); // ? osAiSetFrequency(?);
// ? __osGetActiveQueue(?); // ? __osGetActiveQueue(?);
// ? func_80104160(?); // ? guNormalize(?);
u32 osDpGetStatus(void); u32 osDpGetStatus(void);
void osDpSetStatus(u32 status); void osDpSetStatus(u32 status);
// ? func_801041E0(?); // ? func_801041E0(?);
@ -2459,7 +2470,7 @@ s16 coss(u16);
void osViSetEvent(OSMesgQueue* mq, OSMesg m, u32 retraceCount); void osViSetEvent(OSMesgQueue* mq, OSMesg m, u32 retraceCount);
// ? func_8010499C(?); // ? func_8010499C(?);
// ? func_80104A50(?); // ? func_80104A50(?);
// ? func_80104B00(?); void guS2DInitBg(uObjBg *bg);
// ? func_80104C80(?); // ? func_80104C80(?);
void func_80104D00(u8 a0); void func_80104D00(u8 a0);
// ? func_80104D60(?); // ? func_80104D60(?);
@ -2478,7 +2489,7 @@ u32 __osSpGetStatus();
void __osSpSetStatus(u32 status); void __osSpSetStatus(u32 status);
// ? osWritebackDCacheAll(?); // ? osWritebackDCacheAll(?);
OSThread* __osGetCurrFaultedThread(); OSThread* __osGetCurrFaultedThread();
// ? func_801064E0(?); // ? guMtxF2L(?);
// ? __d_to_ll(?); // ? __d_to_ll(?);
// ? __f_to_ll(?); // ? __f_to_ll(?);
// ? __d_to_ull(?); // ? __d_to_ull(?);

View file

@ -23,6 +23,6 @@ typedef struct OSTimer_s
OSTime osGetTime(void); OSTime osGetTime(void);
int osSetTimer(OSTimer *timer, OSTime countdown, OSTime interval, OSMesgQueue *mq, OSMesg msg); int osSetTimer(OSTimer *timer, OSTime countdown, OSTime interval, OSMesgQueue *mq, OSMesg msg);
void osStopTimer(OSTimer *timer); s32 osStopTimer(OSTimer *timer);
#endif #endif

View file

@ -100,7 +100,7 @@ extern u32 gCurrentRegion;
extern u32 __osPiAccessQueueEnabled; extern u32 __osPiAccessQueueEnabled;
extern OSViMode osViModePalLan1; extern OSViMode osViModePalLan1;
extern u64 osClockRate; extern u64 osClockRate;
extern u32 osViClock; extern s32 osViClock;
extern u32 __osShutdown; extern u32 __osShutdown;
extern u32 __OSGlobalIntMask; extern u32 __OSGlobalIntMask;
extern __osHwInt __osHwIntTable[]; extern __osHwInt __osHwIntTable[];

View file

@ -1733,4 +1733,9 @@ typedef struct {
/* 0x06 */ u16 color; /* 0x06 */ u16 color;
} SpeedMeterTimeEntry; // size = 0x08 } SpeedMeterTimeEntry; // size = 0x08
typedef struct {
/* 0x00 */ s16 intPart[4][4];
/* 0x20 */ u16 fracPart[4][4];
} MatrixInternal; // size = 0x40
#endif #endif

View file

@ -13,7 +13,7 @@ typedef struct {
/* 0x14 */ Vtx* vtxFrame2; /* 0x14 */ Vtx* vtxFrame2;
/* 0x18 */ Mtx projection; /* 0x18 */ Mtx projection;
/* 0x58 */ Mtx modelView; /* 0x58 */ Mtx modelView;
/* 0x98 */ char unk_98[0x40]; /* 0x98 */ Mtx unk_98;
/* 0xD8 */ Gfx* gfx; // "gfxtbl" /* 0xD8 */ Gfx* gfx; // "gfxtbl"
/* 0xDC */ u16* zBuffer; /* 0xDC */ u16* zBuffer;
} TransitionUnk; // size = 0xE0 } TransitionUnk; // size = 0xE0

39
spec
View file

@ -461,11 +461,10 @@ beginseg
include "build/src/code/gfxprint.o" include "build/src/code/gfxprint.o"
include "build/src/code/code_800FBCE0.o" include "build/src/code/code_800FBCE0.o"
include "build/src/code/loadfragment2.o" include "build/src/code/loadfragment2.o"
include "build/asm/mtxuty-cvt.o" include "build/src/code/mtxuty-cvt.o"
include "build/data/mtxuty-cvt.rodata.o"
include "build/src/code/relocation.o" include "build/src/code/relocation.o"
include "build/src/code/code_800FC620.o" include "build/src/code/code_800FC620.o"
include "build/asm/code_800FCB50.o" include "build/src/code/padutils.o"
include "build/asm/code_800FCD40.o" include "build/asm/code_800FCD40.o"
include "build/src/code/code_800FCE80.o" include "build/src/code/code_800FCE80.o"
include "build/asm/fp.o" include "build/asm/fp.o"
@ -475,10 +474,10 @@ beginseg
include "build/src/code/printutils.o" include "build/src/code/printutils.o"
include "build/src/code/sleep.o" include "build/src/code/sleep.o"
include "build/src/code/jpegutils.o" include "build/src/code/jpegutils.o"
include "build/asm/code_800FFA50.o" include "build/asm/jpegdecoder.o"
include "build/data/code_800FFA50.bss.o" include "build/data/jpegdecoder.bss.o"
include "build/asm/code_80100040.o" include "build/asm/code_80100040.o"
include "build/asm/code_801001E0.o" include "build/asm/guScale.o"
include "build/src/libultra_code/sinf.o" include "build/src/libultra_code/sinf.o"
include "build/src/libultra_code/sins.o" include "build/src/libultra_code/sins.o"
include "build/data/sins.data.o" include "build/data/sins.data.o"
@ -490,14 +489,15 @@ beginseg
include "build/src/libultra_code/guPerspectiveF.o" include "build/src/libultra_code/guPerspectiveF.o"
include "build/src/libultra_code/__osSpRawStartDma.o" include "build/src/libultra_code/__osSpRawStartDma.o"
include "build/src/libultra_code/__osSiRawStartDma.o" include "build/src/libultra_code/__osSiRawStartDma.o"
include "build/asm/code_801014A0.o" include "build/src/libultra_code/osSpTaskYield.o"
include "build/data/code_801014A0.bss.o" include "build/asm/code_801014C0.o"
include "build/data/code_801014C0.bss.o"
include "build/asm/code_80101910.o" include "build/asm/code_80101910.o"
include "build/data/code_80101910.bss.o" include "build/data/code_80101910.bss.o"
include "build/asm/guMtxIdentF.o" include "build/asm/guMtxIdentF.o"
include "build/src/libultra_code/guLookAt.o" include "build/src/libultra_code/guLookAt.o"
include "build/asm/code_80101EB0.o" include "build/asm/code_80101EB0.o"
include "build/asm/code_80102330.o" include "build/src/libultra_code/osStopTimer.o"
include "build/asm/code_80102420.o" include "build/asm/code_80102420.o"
include "build/data/code_80102420.data.o" include "build/data/code_80102420.data.o"
include "build/asm/code_80102FA0.o" include "build/asm/code_80102FA0.o"
@ -506,12 +506,13 @@ beginseg
include "build/src/libultra_code/code_801031F0.o" include "build/src/libultra_code/code_801031F0.o"
include "build/src/libultra_code/guLookAtHilite.o" include "build/src/libultra_code/guLookAtHilite.o"
include "build/src/libultra_code/sp.o" include "build/src/libultra_code/sp.o"
include "build/asm/code_80103B60.o" include "build/asm/guMtxIdent.o"
include "build/src/libultra_code/guPosition.o" include "build/src/libultra_code/guPosition.o"
include "build/asm/code_80103DC0.o" include "build/src/libultra_code/osSpTaskYielded.o"
include "build/data/code_80103DC0.data.o" include "build/src/libultra_code/rotate.o"
include "build/src/libultra_code/osAiSetFrequency.o"
include "build/src/libultra_code/__osGetActiveQueue.o" include "build/src/libultra_code/__osGetActiveQueue.o"
include "build/asm/code_80104160.o" include "build/asm/guNormalize.o"
include "build/src/libultra_code/osDpGetStatus.o" include "build/src/libultra_code/osDpGetStatus.o"
include "build/src/libultra_code/osDpSetStatus.o" include "build/src/libultra_code/osDpSetStatus.o"
include "build/asm/code_801041E0.o" include "build/asm/code_801041E0.o"
@ -520,30 +521,30 @@ beginseg
include "build/src/libultra_code/coss.o" include "build/src/libultra_code/coss.o"
include "build/src/libultra_code/osViSetEvent.o" include "build/src/libultra_code/osViSetEvent.o"
include "build/asm/code_80104810.o" include "build/asm/code_80104810.o"
include "build/asm/code_80104B00.o" include "build/src/libultra_code/guS2DInitBg.o"
include "build/asm/code_80104C80.o" include "build/asm/code_80104C80.o"
include "build/asm/code_80104D00.o" include "build/asm/code_80104D00.o"
include "build/asm/code_80104D60.o" include "build/asm/code_80104D60.o"
include "build/asm/code_80104F40.o" include "build/asm/code_80104F40.o"
include "build/asm/code_80105250.o" include "build/asm/code_80105250.o"
include "build/src/libultra_code/osAiGetLength.o" include "build/src/libultra_code/osAiGetLength.o"
include "build/asm/code_80105C20.o" include "build/asm/guTranslate.o"
include "build/asm/code_80105CF0.o" include "build/asm/code_80105CF0.o"
include "build/data/code_80105CF0.data.o" include "build/data/code_80105CF0.data.o"
include "build/src/libultra_code/osReadMempak.o" include "build/src/libultra_code/osReadMempak.o"
include "build/src/libultra_code/osMempakAddrCRC.o" include "build/src/libultra_code/osMempakAddrCRC.o"
include "build/asm/osSetTimer.o" include "build/src/libultra_code/osSetTimer.o"
include "build/src/libultra_code/__osSpGetStatus.o" include "build/src/libultra_code/__osSpGetStatus.o"
include "build/src/libultra_code/__osSpSetStatus.o" include "build/src/libultra_code/__osSpSetStatus.o"
include "build/asm/osWritebackDCacheAll.o" include "build/asm/osWritebackDCacheAll.o"
include "build/src/libultra_code/__osGetCurrFaultedThread.o" include "build/src/libultra_code/__osGetCurrFaultedThread.o"
include "build/asm/code_801064E0.o" include "build/asm/guMtxF2L.o"
include "build/asm/code_80106550.o" include "build/asm/code_80106550.o"
include "build/data/code_80106550.rodata.o" include "build/data/code_80106550.rodata.o"
include "build/src/libultra_code/osViGetCurrentFramebuffer.o" include "build/src/libultra_code/osViGetCurrentFramebuffer.o"
include "build/src/libultra_code/__osSpSetPc.o" include "build/src/libultra_code/__osSpSetPc.o"
include "build/asm/code_801067D0.o" include "build/src/libultra_code/sqrt.o"
include "build/asm/code_801067E0.o" include "build/src/libultra_code/absf.o"
include "build/src/code/code_801067F0.o" include "build/src/code/code_801067F0.o"
include "build/src/code/code_80106860.o" include "build/src/code/code_80106860.o"
include "build/src/code/code_801068B0.o" include "build/src/code/code_801068B0.o"

23
src/code/mtxuty-cvt.c Normal file
View file

@ -0,0 +1,23 @@
#include <global.h>
void MtxConv_F2L(MatrixInternal* m1, MtxF* m2) {
s32 i;
s32 j;
LogUtils_CheckNullPointer("m1", m1, "../mtxuty-cvt.c", 31);
LogUtils_CheckNullPointer("m2", m2, "../mtxuty-cvt.c", 32);
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) {
s32 value = (m2->mf[i][j] * 0x10000);
m1->intPart[i][j] = value >> 16;
m1->fracPart[i][j] = value;
}
}
}
void MtxConv_L2F(MtxF* m1, Mtx* m2) {
LogUtils_CheckNullPointer("m1", m1, "../mtxuty-cvt.c", 55);
LogUtils_CheckNullPointer("m2", m2, "../mtxuty-cvt.c", 56);
func_80102FA0(m1, m2); // guMtxL2F ?
}

View file

@ -272,7 +272,7 @@ void PadMgr_ProcessInputs(PadMgr* padmgr) {
} }
input->press.in.button = input->cur.in.button & (input->prev.in.button ^ input->cur.in.button); input->press.in.button = input->cur.in.button & (input->prev.in.button ^ input->cur.in.button);
input->rel.in.button = input->prev.in.button & (input->prev.in.button ^ input->cur.in.button); input->rel.in.button = input->prev.in.button & (input->prev.in.button ^ input->cur.in.button);
func_800FCC6C(input); PadUtils_UpdateRelXY(input);
input->press.in.x = (input->cur.in.x - input->prev.in.x) + input->press.in.x; input->press.in.x = (input->cur.in.x - input->prev.in.x) + input->press.in.x;
input->press.in.y = (input->cur.in.y - input->prev.in.y) + input->press.in.y; input->press.in.y = (input->cur.in.y - input->prev.in.y) + input->press.in.y;
} }
@ -360,7 +360,7 @@ void PadMgr_RequestPadData(PadMgr* padmgr, Input* inputs, s32 mode) {
newin->cur = pmInputs->cur; newin->cur = pmInputs->cur;
newin->press.in.button = newin->cur.in.button & (newin->prev.in.button ^ newin->cur.in.button); newin->press.in.button = newin->cur.in.button & (newin->prev.in.button ^ newin->cur.in.button);
newin->rel.in.button = newin->prev.in.button & (newin->prev.in.button ^ newin->cur.in.button); newin->rel.in.button = newin->prev.in.button & (newin->prev.in.button ^ newin->cur.in.button);
func_800FCC6C(newin); PadUtils_UpdateRelXY(newin);
newin->press.in.x = (newin->cur.in.x - newin->prev.in.x) + newin->press.in.x; newin->press.in.x = (newin->cur.in.x - newin->prev.in.x) + newin->press.in.x;
newin->press.in.y = (newin->cur.in.y - newin->prev.in.y) + newin->press.in.y; newin->press.in.y = (newin->cur.in.y - newin->prev.in.y) + newin->press.in.y;
} }

93
src/code/padutils.c Normal file
View file

@ -0,0 +1,93 @@
#include <global.h>
void PadUtils_Init(Input* input) {
bzero(input, sizeof(Input));
}
void func_800FCB70() {
}
void PadUtils_ResetPressRel(Input* input) {
input->press.in.button = 0;
input->rel.in.button = 0;
}
u32 PadUtils_CheckCurExact(Input* input, u16 value) {
return value == input->cur.in.button;
}
u32 PadUtils_CheckCur(Input* input, u16 key) {
return key == (input->cur.in.button & key);
}
u32 PadUtils_CheckPressed(Input* input, u16 key) {
return key == (input->press.in.button & key);
}
u32 PadUtils_CheckReleased(Input* input, u16 key) {
return key == (input->rel.in.button & key);
}
u16 PadUtils_GetCurButton(Input* input) {
return input->cur.in.button;
}
u16 PadUtils_GetPressButton(Input* input) {
return input->press.in.button;
}
s8 PadUtils_GetCurX(Input* input) {
return input->cur.in.x;
}
s8 PadUtils_GetCurY(Input* input) {
return input->cur.in.y;
}
void PadUtils_SetRelXY(Input* input, s32 x, s32 y) {
input->rel.in.x = x;
input->rel.in.y = y;
}
s8 PadUtils_GetRelXImpl(Input* input) {
return input->rel.in.x;
}
s8 PadUtils_GetRelYImpl(Input* input) {
return input->rel.in.y;
}
s8 PadUtils_GetRelX(Input* input) {
return PadUtils_GetRelXImpl(input);
}
s8 PadUtils_GetRelY(Input* input) {
return PadUtils_GetRelYImpl(input);
}
void PadUtils_UpdateRelXY(Input* input) {
s32 curX, curY;
s32 relX, relY;
curX = PadUtils_GetCurX(input);
curY = PadUtils_GetCurY(input);
if (curX > 7) {
relX = (curX < 0x43) ? curX - 7 : 0x43 - 7;
} else if (curX < -7) {
relX = (curX > -0x43) ? curX + 7 : -0x43 + 7;
} else {
relX = 0;
}
if (curY > 7) {
relY = (curY < 0x43) ? curY - 7 : 0x43 - 7;
} else if (curY < -7) {
relY = (curY > -0x43) ? curY + 7 : -0x43 + 7;
} else {
relY = 0;
}
PadUtils_SetRelXY(input, relX, relY);
}

View file

@ -935,7 +935,7 @@ void func_800D2A98(Mtx* mtx, f32 arg1, f32 arg2, f32 arg3, f32 arg4) {
MtxF mf; MtxF mf;
func_800D2A34(&mf, arg1, arg2, arg3, arg4); func_800D2A34(&mf, arg1, arg2, arg3, arg4);
func_801064E0(&mf, mtx); guMtxF2L(&mf, mtx);
} }
void func_800D2AE4(Mtx* mtx, f32 arg1, f32 arg2, f32 arg3, f32 arg4) { void func_800D2AE4(Mtx* mtx, f32 arg1, f32 arg2, f32 arg3, f32 arg4) {

View file

@ -299,7 +299,7 @@ void func_8009638C(Gfx** displayList, u32 source, u32 tlut, u16 width, u16 heigh
if ((fmt == G_IM_FMT_RGBA) && (SREG(26) == 0)) { if ((fmt == G_IM_FMT_RGBA) && (SREG(26) == 0)) {
bg->b.frameW = width * 4; bg->b.frameW = width * 4;
bg->b.frameH = height * 4; bg->b.frameH = height * 4;
func_80104B00(bg); guS2DInitBg(bg);
gDPSetOtherMode(displayListHead++, mode0 | G_TL_TILE | G_TD_CLAMP | G_TP_NONE | G_CYC_COPY | G_PM_NPRIMITIVE, gDPSetOtherMode(displayListHead++, mode0 | G_TL_TILE | G_TD_CLAMP | G_TP_NONE | G_CYC_COPY | G_PM_NPRIMITIVE,
G_AC_THRESHOLD | G_ZS_PIXEL | G_RM_NOOP | G_RM_NOOP2); G_AC_THRESHOLD | G_ZS_PIXEL | G_RM_NOOP | G_RM_NOOP2);
gSPBgRectCopy(displayListHead++, bg); gSPBgRectCopy(displayListHead++, bg);

View file

@ -9,7 +9,7 @@ typedef struct {
} struct_exceptionPreamble; } struct_exceptionPreamble;
u64 osClockRate = OS_CLOCK_RATE; u64 osClockRate = OS_CLOCK_RATE;
u32 osViClock = VI_NTSC_CLOCK; s32 osViClock = VI_NTSC_CLOCK;
u32 __osShutdown = 0; u32 __osShutdown = 0;
u32 __OSGlobalIntMask = 0x003FFF01; u32 __OSGlobalIntMask = 0x003FFF01;

5
src/libultra_code/absf.c Normal file
View file

@ -0,0 +1,5 @@
#include <global.h>
f32 absf(f32 a) {
return fabsf(a);
}

View file

@ -0,0 +1,28 @@
#include <global.h>
void guS2DInitBg(uObjBg* bg) {
u16 shift;
u32 size;
s32 tmem;
tmem = (bg->b.imageFmt == G_IM_FMT_CI) ? 0x100 : 0x200;
shift = (6 - bg->b.imageSiz);
if (bg->b.imageLoad == G_BGLT_LOADBLOCK) {
bg->b.tmemW = bg->b.imageW >> shift;
bg->b.tmemH = (tmem / bg->b.tmemW) * 4;
bg->b.tmemSizeW = bg->b.tmemW * 2;
bg->b.tmemSize = bg->b.tmemH * bg->b.tmemSizeW;
bg->b.tmemLoadSH = (bg->b.tmemSize >> 1) - 1;
bg->b.tmemLoadTH = (0x7FF / bg->b.tmemW) + 1;
} else { // G_BGLT_LOADTILE
bg->b.tmemW = (bg->b.frameW >> shift) + 3;
bg->b.tmemH = (tmem / bg->b.tmemW) * 4;
bg->b.tmemSizeW = (bg->b.imageW >> shift) * 2;
size = bg->b.tmemH * bg->b.tmemSizeW;
bg->b.tmemSize = (size >> 16);
bg->b.tmemLoadSH = (size >> 0) & 0xFFFF;
bg->b.tmemLoadTH = bg->b.tmemH - 1;
}
}

View file

@ -4,8 +4,6 @@
// TODO: rename these // TODO: rename these
// SM64 OOT // SM64 OOT
#define guMtxF2L func_801064E0 // believed to be correct name, needs confirmation.
s32 __osDisableInt(); s32 __osDisableInt();
void __osRestoreInt(s32); void __osRestoreInt(s32);
void __osEnqueueAndYield(OSThread**); void __osEnqueueAndYield(OSThread**);

View file

@ -0,0 +1,24 @@
#include <global.h>
#include <ultra64/hardware.h>
s32 osAiSetFrequency(u32 frequency) {
u32 dacRate;
u8 bitrate;
f32 dacRateF;
dacRateF = ((f32)osViClock / frequency) + 0.5f;
dacRate = dacRateF;
if (dacRate < 132) {
return -1;
}
bitrate = (dacRate / 66);
if (bitrate > 16) {
bitrate = 16;
}
HW_REG(AI_DACRATE_REG, u32) = dacRate - 1;
HW_REG(AI_BITRATE_REG, u32) = bitrate - 1;
return osViClock / (s32)dacRate;
}

View file

@ -0,0 +1,42 @@
#include <global.h>
s32 osSetTimer(OSTimer* timer, OSTime countdown, OSTime interval, OSMesgQueue* mq, OSMesg msg) {
OSTime time;
OSTimer* next;
u32 count;
u32 value;
s32 prevInt;
timer->next = NULL;
timer->prev = NULL;
timer->interval = interval;
if (countdown != 0) {
timer->value = countdown;
} else {
timer->value = interval;
}
timer->mq = mq;
timer->msg = msg;
prevInt = __osDisableInt();
if (__osTimerList->next != __osTimerList) {
if (1) {}
next = __osTimerList->next;
count = osGetCount();
value = count - __osTimerCounter;
if (value < next->value) {
next->value -= value;
} else {
next->value = 1;
}
}
time = __osInsertTimer(timer);
__osSetTimerIntr(__osTimerList->next->value);
__osRestoreInt(prevInt);
return 0;
}

View file

@ -0,0 +1,5 @@
#include <global.h>
void osSpTaskYield() {
__osSpSetStatus(SP_STATUS_SIG3);
}

View file

@ -0,0 +1,21 @@
#include <global.h>
u32 osSpTaskYielded(OSTask* task) {
u32 ret;
u32 status;
status = __osSpGetStatus();
if (status & SP_STATUS_YIELDED) {
ret = OS_TASK_YIELDED;
} else {
ret = 0;
}
if (status & SP_STATUS_YIELD) {
task->t.flags |= ret;
task->t.flags &= ~OS_TASK_DP_WAIT;
}
return ret;
}

View file

@ -0,0 +1,28 @@
#include <global.h>
s32 osStopTimer(OSTimer* timer) {
register s32 prevInt;
OSTimer* next;
if (!timer->next) {
return -1;
}
prevInt = __osDisableInt();
next = timer->next;
if (next != __osTimerList) {
next->value += timer->value;
}
timer->prev->next = timer->next;
timer->next->prev = timer->prev;
timer->next = NULL;
timer->prev = NULL;
if (__osTimerList->next == __osTimerList) {
__osSetCompare(0);
}
__osRestoreInt(prevInt);
return 0;
}

View file

@ -0,0 +1,50 @@
#include <global.h>
void guRotateF(f32 m[4][4], f32 a, f32 x, f32 y, f32 z) {
static f32 D_80134D10 = M_PI / 180.0f;
f32 sine;
f32 cosine;
f32 ab;
f32 bc;
f32 ca;
f32 t;
f32 xs;
f32 ys;
f32 zs;
guNormalize(&x, &y, &z);
a = a * D_80134D10;
sine = sinf(a);
cosine = cosf(a);
ab = x * y * (1 - cosine);
bc = y * z * (1 - cosine);
ca = z * x * (1 - cosine);
guMtxIdentF(m);
xs = x * sine;
ys = y * sine;
zs = z * sine;
t = x * x;
m[0][0] = (1 - t) * cosine + t;
m[2][1] = bc - xs;
m[1][2] = bc + xs;
t = y * y;
m[1][1] = (1 - t) * cosine + t;
m[2][0] = ca + ys;
m[0][2] = ca - ys;
t = z * z;
m[2][2] = (1 - t) * cosine + t;
m[1][0] = ab - zs;
m[0][1] = ab + zs;
}
void guRotate(Mtx* m, f32 a, f32 x, f32 y, f32 z) {
f32 mf[4][4];
guRotateF(mf, a, x, y, z);
guMtxF2L(mf, m);
}

10
src/libultra_code/sqrt.c Normal file
View file

@ -0,0 +1,10 @@
#include <global.h>
#ifndef __GNUC__
#pragma intrinsic(sqrt)
#define __builtin_sqrt sqrt
#endif
f64 sqrt(f64 f) {
return __builtin_sqrt(f);
}

View file

@ -1,12 +1,10 @@
#include <math.h> #include <global.h>
float sqrtf(float f);
#ifndef __GNUC__ #ifndef __GNUC__
#pragma intrinsic(sqrtf) #pragma intrinsic(sqrtf)
#define __builtin_sqrtf sqrtf #define __builtin_sqrtf sqrtf
#endif #endif
float sqrtf(float f) { f32 sqrtf(f32 f) {
return __builtin_sqrtf(f); return __builtin_sqrtf(f);
} }

View file

@ -234,7 +234,7 @@ void EnHintnuts_Wait(EnHintnuts* this, GlobalContext* globalCtx) {
if (func_800A56C8(&this->skelAnime, 9.0f) != 0) { if (func_800A56C8(&this->skelAnime, 9.0f) != 0) {
this->collider.base.acFlags |= 1; this->collider.base.acFlags |= 1;
} else if (func_800A56C8(&this->skelAnime, 8.0f) != 0) { } else if (func_800A56C8(&this->skelAnime, 8.0f) != 0) {
Audio_PlayActorSound2(&this->actor, NA_SE_EN_NUTS_UP); Audio_PlayActorSound2(&this->actor, NA_SE_EN_NUTS_UP);
} }
if (this->skelAnime.animCurrentFrame < 9.0f) { if (this->skelAnime.animCurrentFrame < 9.0f) {
boundedCurrentFrame = 9.0f; boundedCurrentFrame = 9.0f;