From 3d050f286114de1332781ed951b90d42ac36c8ee Mon Sep 17 00:00:00 2001 From: Random <28494085+Random06457@users.noreply.github.com> Date: Mon, 25 May 2020 23:18:14 +0200 Subject: [PATCH] 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 --- Makefile | 7 + asm/code_800D7CD0.s | 2 +- asm/code_800DDE20.s | 2 +- asm/code_800FCB50.s | 175 ------------ asm/{code_801014A0.s => code_801014C0.s} | 10 - asm/code_80102330.s | 74 ------ asm/code_80103DC0.s | 251 ------------------ asm/code_80104450.s | 2 +- asm/code_80104B00.s | 114 -------- asm/code_801067D0.s | 15 -- asm/code_801067E0.s | 15 -- asm/{code_801064E0.s => guMtxF2L.s} | 2 +- asm/{code_80103B60.s => guMtxIdent.s} | 2 +- asm/{code_80104160.s => guNormalize.s} | 2 +- asm/{code_801001E0.s => guScale.s} | 0 asm/{code_80105C20.s => guTranslate.s} | 0 asm/{code_800FFA50.s => jpegdecoder.s} | 0 asm/mtxuty-cvt.s | 143 ---------- asm/non_matchings/code/guLookAt/guLookAt.s | 2 +- .../code/padmgr/PadMgr_ProcessInputs.s | 2 +- .../code/padmgr/PadMgr_RequestPadData.s | 2 +- asm/non_matchings/code/sched/func_800C91BC.s | 4 +- .../z_fbdemo/TransitionUnk_InitGraphics.s | 4 +- asm/non_matchings/code/z_room/func_8009638C.s | 2 +- .../actors/ovl_En_Torch2/EnTorch2_Update.s | 2 +- asm/osSetTimer.s | 116 -------- ...ode_801014A0.bss.s => code_801014C0.bss.s} | 0 data/code_80103DC0.data.s | 11 - ...{code_800FFA50.bss.s => jpegdecoder.bss.s} | 0 data/mtxuty-cvt.rodata.s | 42 --- include/functions.h | 39 ++- include/ultra64/time.h | 2 +- include/variables.h | 2 +- include/z64.h | 5 + include/z64transition.h | 2 +- spec | 39 +-- src/code/mtxuty-cvt.c | 23 ++ src/code/padmgr.c | 4 +- src/code/padutils.c | 93 +++++++ src/code/sys_matrix.c | 2 +- src/code/z_room.c | 2 +- src/libultra_boot_O1/initialize.c | 2 +- src/libultra_code/absf.c | 5 + src/libultra_code/guS2DInitBg.c | 28 ++ src/libultra_code/libultra_internal.h | 2 - src/libultra_code/osAiSetFrequency.c | 24 ++ src/libultra_code/osSetTimer.c | 42 +++ src/libultra_code/osSpTaskYield.c | 5 + src/libultra_code/osSpTaskYielded.c | 21 ++ src/libultra_code/osStopTimer.c | 28 ++ src/libultra_code/rotate.c | 50 ++++ src/libultra_code/sqrt.c | 10 + src/libultra_code/sqrtf.c | 6 +- .../actors/ovl_En_Hintnuts/z_en_hintnuts.c | 2 +- 54 files changed, 412 insertions(+), 1029 deletions(-) delete mode 100644 asm/code_800FCB50.s rename asm/{code_801014A0.s => code_801014C0.s} (97%) delete mode 100644 asm/code_80102330.s delete mode 100644 asm/code_80103DC0.s delete mode 100644 asm/code_80104B00.s delete mode 100644 asm/code_801067D0.s delete mode 100644 asm/code_801067E0.s rename asm/{code_801064E0.s => guMtxF2L.s} (98%) rename asm/{code_80103B60.s => guMtxIdent.s} (98%) rename asm/{code_80104160.s => guNormalize.s} (98%) rename asm/{code_801001E0.s => guScale.s} (100%) rename asm/{code_80105C20.s => guTranslate.s} (100%) rename asm/{code_800FFA50.s => jpegdecoder.s} (100%) delete mode 100644 asm/mtxuty-cvt.s delete mode 100644 asm/osSetTimer.s rename data/{code_801014A0.bss.s => code_801014C0.bss.s} (100%) delete mode 100644 data/code_80103DC0.data.s rename data/{code_800FFA50.bss.s => jpegdecoder.bss.s} (100%) delete mode 100644 data/mtxuty-cvt.rodata.s create mode 100644 src/code/mtxuty-cvt.c create mode 100644 src/code/padutils.c create mode 100644 src/libultra_code/absf.c create mode 100644 src/libultra_code/guS2DInitBg.c create mode 100644 src/libultra_code/osAiSetFrequency.c create mode 100644 src/libultra_code/osSetTimer.c create mode 100644 src/libultra_code/osSpTaskYield.c create mode 100644 src/libultra_code/osSpTaskYielded.c create mode 100644 src/libultra_code/osStopTimer.c create mode 100644 src/libultra_code/rotate.c create mode 100644 src/libultra_code/sqrt.c diff --git a/Makefile b/Makefile index 5df2bee88a..84ef6c00f9 100644 --- a/Makefile +++ b/Makefile @@ -103,12 +103,19 @@ build/src/code/code_801068B0.o: OPTFLAGS := -g build/src/code/code_80106860.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_O2/%.o: CC := $(CC_OLD) 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/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/overlays/actors/%.o: CC := python3 tools/asm_processor/build.py $(CC) -- $(AS) $(ASFLAGS) -- diff --git a/asm/code_800D7CD0.s b/asm/code_800D7CD0.s index 50badf22ea..05bf7d92f5 100644 --- a/asm/code_800D7CD0.s +++ b/asm/code_800D7CD0.s @@ -2099,7 +2099,7 @@ glabel L800D990C /* B50B64 800D99C4 29010002 */ slti $at, $t0, 2 /* B50B68 800D99C8 14200498 */ bnez $at, .L800DAC2C /* 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 /* B50B78 800D99D8 8E6800BC */ lw $t0, 0xbc($s3) /* B50B7C 800D99DC 11000004 */ beqz $t0, .L800D99F0 diff --git a/asm/code_800DDE20.s b/asm/code_800DDE20.s index 157e00e4df..d7f875ab9e 100644 --- a/asm/code_800DDE20.s +++ b/asm/code_800DDE20.s @@ -2201,7 +2201,7 @@ glabel func_800DFBF8 /* B56DEC 800DFC4C 8C590000 */ lw $t9, ($v0) /* B56DF0 800DFC50 AFA20068 */ sw $v0, 0x68($sp) /* 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 /* B56E00 800DFC60 96C3284A */ lhu $v1, 0x284a($s6) /* B56E04 800DFC64 8EC92964 */ lw $t1, 0x2964($s6) diff --git a/asm/code_800FCB50.s b/asm/code_800FCB50.s deleted file mode 100644 index ca075a9547..0000000000 --- a/asm/code_800FCB50.s +++ /dev/null @@ -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 diff --git a/asm/code_801014A0.s b/asm/code_801014C0.s similarity index 97% rename from asm/code_801014A0.s rename to asm/code_801014C0.s index 756c6ced1e..4fdae38e27 100644 --- a/asm/code_801014A0.s +++ b/asm/code_801014C0.s @@ -9,16 +9,6 @@ .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 /* B78660 801014C0 27BDFFE0 */ addiu $sp, $sp, -0x20 /* B78664 801014C4 AFBF001C */ sw $ra, 0x1c($sp) diff --git a/asm/code_80102330.s b/asm/code_80102330.s deleted file mode 100644 index ba1f1a9803..0000000000 --- a/asm/code_80102330.s +++ /dev/null @@ -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 diff --git a/asm/code_80103DC0.s b/asm/code_80103DC0.s deleted file mode 100644 index af05e0366c..0000000000 --- a/asm/code_80103DC0.s +++ /dev/null @@ -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 diff --git a/asm/code_80104450.s b/asm/code_80104450.s index 07fd9f3e3a..cd0b2e7ec6 100644 --- a/asm/code_80104450.s +++ b/asm/code_80104450.s @@ -118,7 +118,7 @@ glabel func_801045A4 /* B7B784 801045E4 0C041114 */ jal func_80104450 /* B7B788 801045E8 E7AA001C */ swc1 $f10, 0x1c($sp) /* 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) /* B7B798 801045F8 8FBF0024 */ lw $ra, 0x24($sp) /* B7B79C 801045FC 27BD0068 */ addiu $sp, $sp, 0x68 diff --git a/asm/code_80104B00.s b/asm/code_80104B00.s deleted file mode 100644 index 162f739ef4..0000000000 --- a/asm/code_80104B00.s +++ /dev/null @@ -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 diff --git a/asm/code_801067D0.s b/asm/code_801067D0.s deleted file mode 100644 index 5303063e45..0000000000 --- a/asm/code_801067D0.s +++ /dev/null @@ -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 diff --git a/asm/code_801067E0.s b/asm/code_801067E0.s deleted file mode 100644 index 08997b403c..0000000000 --- a/asm/code_801067E0.s +++ /dev/null @@ -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 diff --git a/asm/code_801064E0.s b/asm/guMtxF2L.s similarity index 98% rename from asm/code_801064E0.s rename to asm/guMtxF2L.s index 533d1c033e..01fd6d1bee 100644 --- a/asm/code_801064E0.s +++ b/asm/guMtxF2L.s @@ -13,7 +13,7 @@ /* B7D674 801064D4 00000000 */ nop /* B7D678 801064D8 00000000 */ nop /* B7D67C 801064DC 00000000 */ nop -glabel func_801064E0 +glabel guMtxF2L /* B7D680 801064E0 3C014780 */ li $at, 0x47800000 # 0.000000 /* B7D684 801064E4 44810000 */ mtc1 $at, $f0 /* B7D688 801064E8 3C19FFFF */ lui $t9, 0xffff diff --git a/asm/code_80103B60.s b/asm/guMtxIdent.s similarity index 98% rename from asm/code_80103B60.s rename to asm/guMtxIdent.s index ab8b102d7c..82f35856ed 100644 --- a/asm/code_80103B60.s +++ b/asm/guMtxIdent.s @@ -9,7 +9,7 @@ .align 4 -glabel func_80103B60 +glabel guMtxIdent /* B7AD00 80103B60 20080001 */ addi $t0, $zero, 1 /* B7AD04 80103B64 00084C00 */ sll $t1, $t0, 0x10 /* B7AD08 80103B68 AC890000 */ sw $t1, ($a0) diff --git a/asm/code_80104160.s b/asm/guNormalize.s similarity index 98% rename from asm/code_80104160.s rename to asm/guNormalize.s index cd82fdcb26..7f43407d0f 100644 --- a/asm/code_80104160.s +++ b/asm/guNormalize.s @@ -13,7 +13,7 @@ /* B7B2F4 80104154 00000000 */ nop /* B7B2F8 80104158 00000000 */ nop /* B7B2FC 8010415C 00000000 */ nop -glabel func_80104160 +glabel guNormalize /* B7B300 80104160 C4840000 */ lwc1 $f4, ($a0) /* B7B304 80104164 C4A60000 */ lwc1 $f6, ($a1) /* B7B308 80104168 C4C80000 */ lwc1 $f8, ($a2) diff --git a/asm/code_801001E0.s b/asm/guScale.s similarity index 100% rename from asm/code_801001E0.s rename to asm/guScale.s diff --git a/asm/code_80105C20.s b/asm/guTranslate.s similarity index 100% rename from asm/code_80105C20.s rename to asm/guTranslate.s diff --git a/asm/code_800FFA50.s b/asm/jpegdecoder.s similarity index 100% rename from asm/code_800FFA50.s rename to asm/jpegdecoder.s diff --git a/asm/mtxuty-cvt.s b/asm/mtxuty-cvt.s deleted file mode 100644 index cfe49b3d4f..0000000000 --- a/asm/mtxuty-cvt.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/code/guLookAt/guLookAt.s b/asm/non_matchings/code/guLookAt/guLookAt.s index dff148962b..8e2c26fae5 100644 --- a/asm/non_matchings/code/guLookAt/guLookAt.s +++ b/asm/non_matchings/code/guLookAt/guLookAt.s @@ -22,7 +22,7 @@ glabel guLookAt /* B79024 80101E84 0C0406E4 */ jal guLookAtF /* B79028 80101E88 E7B20024 */ swc1 $f18, 0x24($sp) /* 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) /* B79038 80101E98 8FBF002C */ lw $ra, 0x2c($sp) /* B7903C 80101E9C 27BD0070 */ addiu $sp, $sp, 0x70 diff --git a/asm/non_matchings/code/padmgr/PadMgr_ProcessInputs.s b/asm/non_matchings/code/padmgr/PadMgr_ProcessInputs.s index df39956a66..054f0a7b99 100644 --- a/asm/non_matchings/code/padmgr/PadMgr_ProcessInputs.s +++ b/asm/non_matchings/code/padmgr/PadMgr_ProcessInputs.s @@ -222,7 +222,7 @@ glabel PadMgr_ProcessInputs /* B3ED30 800C7B90 014C6825 */ or $t5, $t2, $t4 /* B3ED34 800C7B94 A609000C */ sh $t1, 0xc($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 /* B3ED44 800C7BA4 820E0002 */ lb $t6, 2($s0) /* B3ED48 800C7BA8 820F0008 */ lb $t7, 8($s0) diff --git a/asm/non_matchings/code/padmgr/PadMgr_RequestPadData.s b/asm/non_matchings/code/padmgr/PadMgr_RequestPadData.s index 2539481e76..8550395a71 100644 --- a/asm/non_matchings/code/padmgr/PadMgr_RequestPadData.s +++ b/asm/non_matchings/code/padmgr/PadMgr_RequestPadData.s @@ -67,7 +67,7 @@ glabel PadMgr_RequestPadData /* B3F0A4 800C7F04 00A25024 */ and $t2, $a1, $v0 /* B3F0A8 800C7F08 A60A000C */ sh $t2, 0xc($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) /* B3F0B8 800C7F18 820C0002 */ lb $t4, 2($s0) /* B3F0BC 800C7F1C 820D0008 */ lb $t5, 8($s0) diff --git a/asm/non_matchings/code/sched/func_800C91BC.s b/asm/non_matchings/code/sched/func_800C91BC.s index adc96683c3..e27d3ca984 100644 --- a/asm/non_matchings/code/sched/func_800C91BC.s +++ b/asm/non_matchings/code/sched/func_800C91BC.s @@ -127,7 +127,7 @@ glabel func_800C91BC /* B404D8 800C9338 24E40010 */ addiu $a0, $a3, 0x10 /* B404DC 800C933C 51C0000C */ beql $t6, $zero, .L800C9370 /* 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) /* B404EC 800C934C 8FA7004C */ lw $a3, 0x4c($sp) /* B404F0 800C9350 3C048014 */ lui $a0, %hi(D_801460FC) # $a0, 0x8014 @@ -143,7 +143,7 @@ glabel func_800C91BC /* B40514 800C9374 31E80010 */ andi $t0, $t7, 0x10 /* B40518 800C9378 1100001A */ beqz $t0, .L800C93E4 /* B4051C 800C937C 00000000 */ nop -/* B40520 800C9380 0C040F70 */ jal func_80103DC0 +/* B40520 800C9380 0C040F70 */ jal osSpTaskYielded /* B40524 800C9384 AFA7004C */ sw $a3, 0x4c($sp) /* B40528 800C9388 10400016 */ beqz $v0, .L800C93E4 /* B4052C 800C938C 8FA7004C */ lw $a3, 0x4c($sp) diff --git a/asm/non_matchings/code/z_fbdemo/TransitionUnk_InitGraphics.s b/asm/non_matchings/code/z_fbdemo/TransitionUnk_InitGraphics.s index 4b304493d4..d78589bb98 100644 --- a/asm/non_matchings/code/z_fbdemo/TransitionUnk_InitGraphics.s +++ b/asm/non_matchings/code/z_fbdemo/TransitionUnk_InitGraphics.s @@ -29,9 +29,9 @@ glabel TransitionUnk_InitGraphics /* B28A74 800B18D4 AFB30034 */ sw $s3, 0x34($sp) /* B28A78 800B18D8 AFB20030 */ sw $s2, 0x30($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 -/* B28A88 800B18E8 0C040ED8 */ jal func_80103B60 +/* B28A88 800B18E8 0C040ED8 */ jal guMtxIdent /* B28A8C 800B18EC 26040098 */ addiu $a0, $s0, 0x98 /* B28A90 800B18F0 3C01C47A */ li $at, 0xC47A0000 # 0.000000 /* B28A94 800B18F4 44812000 */ mtc1 $at, $f4 diff --git a/asm/non_matchings/code/z_room/func_8009638C.s b/asm/non_matchings/code/z_room/func_8009638C.s index e58f601ae3..ea488ecb72 100644 --- a/asm/non_matchings/code/z_room/func_8009638C.s +++ b/asm/non_matchings/code/z_room/func_8009638C.s @@ -117,7 +117,7 @@ glabel func_8009638C /* B0D6F0 80096550 A4A60006 */ sh $a2, 6($a1) /* B0D6F4 80096554 A4A7000E */ sh $a3, 0xe($a1) /* 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) /* B0D704 80096564 97B9003E */ lhu $t9, 0x3e($sp) /* B0D708 80096568 3C010020 */ lui $at, 0x20 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Torch2/EnTorch2_Update.s b/asm/non_matchings/overlays/actors/ovl_En_Torch2/EnTorch2_Update.s index 3cabc2091b..67a23fd62e 100644 --- a/asm/non_matchings/overlays/actors/ovl_En_Torch2/EnTorch2_Update.s +++ b/asm/non_matchings/overlays/actors/ovl_En_Torch2/EnTorch2_Update.s @@ -1243,7 +1243,7 @@ glabel EnTorch2_Update /* 015E8 80B1EF68 3C0480B2 */ lui $a0, %hi(D_80B20130) ## $a0 = 80B20000 /* 015EC 80B1EF6C A4380136 */ sh $t8, %lo(D_80B20136)($at) /* 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) /* 015FC 80B1EF7C 3C0F80B2 */ lui $t7, %hi(D_80B20132) ## $t7 = 80B20000 /* 01600 80B1EF80 3C0A80B2 */ lui $t2, %hi(D_80B20138) ## $t2 = 80B20000 diff --git a/asm/osSetTimer.s b/asm/osSetTimer.s deleted file mode 100644 index 2a5de5dba7..0000000000 --- a/asm/osSetTimer.s +++ /dev/null @@ -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 diff --git a/data/code_801014A0.bss.s b/data/code_801014C0.bss.s similarity index 100% rename from data/code_801014A0.bss.s rename to data/code_801014C0.bss.s diff --git a/data/code_80103DC0.data.s b/data/code_80103DC0.data.s deleted file mode 100644 index 670ba536ca..0000000000 --- a/data/code_80103DC0.data.s +++ /dev/null @@ -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 diff --git a/data/code_800FFA50.bss.s b/data/jpegdecoder.bss.s similarity index 100% rename from data/code_800FFA50.bss.s rename to data/jpegdecoder.bss.s diff --git a/data/mtxuty-cvt.rodata.s b/data/mtxuty-cvt.rodata.s deleted file mode 100644 index 7a115f67b7..0000000000 --- a/data/mtxuty-cvt.rodata.s +++ /dev/null @@ -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 diff --git a/include/functions.h b/include/functions.h index 309ff3eb25..d683237b0d 100644 --- a/include/functions.h +++ b/include/functions.h @@ -2278,19 +2278,30 @@ void GfxPrint_Printf(GfxPrint*, const char*, ...); void func_800FBCE0(); void func_800FBFD8(); void* Overlay_AllocateAndLoad(u32 vRomStart, u32 vRomEnd, void* vRamStart, void* vRamEnd); -// ? func_800FC258(?); +// ? MtxConv_L2F(?); void Overlay_DoRelocation(void* allocatedVRamAddress, OverlayRelocationSection* overlayInfo, void* vRamAddress); s32 Overlay_Load(u32 vRomStart, u32 vRomEnd, void* vRamStart, void* vRamEnd, void* allocatedVRamAddress); // ? func_800FC800(?); // ? func_800FC83C(?); // ? func_800FCAB4(?); void SystemHeap_Init(void* start, u32 size); -// ? func_800FCC00(?); -// ? func_800FCC08(?); -// ? func_800FCC10(?); -// ? func_800FCC1C(?); -// ? func_800FCC24(?); -// ? func_800FCC6C(?); +void PadUtils_Init(Input* input); +void func_800FCB70(); +void PadUtils_ResetPressRel(Input* input); +u32 PadUtils_CheckCurExact(Input* input, u16 value); +u32 PadUtils_CheckCur(Input* input, u16 key); +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(?); f32 Math_tanf(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, s32 hiliteHeight); // ? __osSpDeviceBusy(?); -// ? func_80103B60(?); +// ? guMtxIdent(?); // ? guPositionF(?); void guPosition(Mtx*, f32, f32, f32, f32, f32, f32, f32); -// ? func_80103DC0(?); -// ? func_80103E20(?); +// ? osSpTaskYielded(?); +// ? guRotateF(?); void guRotate(Mtx*, f32 angle, f32 x, f32 y, f32 z); -// ? func_80103FF0(?); +// ? osAiSetFrequency(?); // ? __osGetActiveQueue(?); -// ? func_80104160(?); +// ? guNormalize(?); u32 osDpGetStatus(void); void osDpSetStatus(u32 status); // ? func_801041E0(?); @@ -2459,7 +2470,7 @@ s16 coss(u16); void osViSetEvent(OSMesgQueue* mq, OSMesg m, u32 retraceCount); // ? func_8010499C(?); // ? func_80104A50(?); -// ? func_80104B00(?); +void guS2DInitBg(uObjBg *bg); // ? func_80104C80(?); void func_80104D00(u8 a0); // ? func_80104D60(?); @@ -2478,7 +2489,7 @@ u32 __osSpGetStatus(); void __osSpSetStatus(u32 status); // ? osWritebackDCacheAll(?); OSThread* __osGetCurrFaultedThread(); -// ? func_801064E0(?); +// ? guMtxF2L(?); // ? __d_to_ll(?); // ? __f_to_ll(?); // ? __d_to_ull(?); diff --git a/include/ultra64/time.h b/include/ultra64/time.h index 24ff4ee958..ddce900b7e 100644 --- a/include/ultra64/time.h +++ b/include/ultra64/time.h @@ -23,6 +23,6 @@ typedef struct OSTimer_s OSTime osGetTime(void); int osSetTimer(OSTimer *timer, OSTime countdown, OSTime interval, OSMesgQueue *mq, OSMesg msg); -void osStopTimer(OSTimer *timer); +s32 osStopTimer(OSTimer *timer); #endif diff --git a/include/variables.h b/include/variables.h index 20c84d0987..e6142d0a37 100644 --- a/include/variables.h +++ b/include/variables.h @@ -100,7 +100,7 @@ extern u32 gCurrentRegion; extern u32 __osPiAccessQueueEnabled; extern OSViMode osViModePalLan1; extern u64 osClockRate; -extern u32 osViClock; +extern s32 osViClock; extern u32 __osShutdown; extern u32 __OSGlobalIntMask; extern __osHwInt __osHwIntTable[]; diff --git a/include/z64.h b/include/z64.h index 0b84a20eb2..554becdf77 100644 --- a/include/z64.h +++ b/include/z64.h @@ -1733,4 +1733,9 @@ typedef struct { /* 0x06 */ u16 color; } SpeedMeterTimeEntry; // size = 0x08 +typedef struct { + /* 0x00 */ s16 intPart[4][4]; + /* 0x20 */ u16 fracPart[4][4]; +} MatrixInternal; // size = 0x40 + #endif diff --git a/include/z64transition.h b/include/z64transition.h index 5710af9afd..aa0c3779ad 100644 --- a/include/z64transition.h +++ b/include/z64transition.h @@ -13,7 +13,7 @@ typedef struct { /* 0x14 */ Vtx* vtxFrame2; /* 0x18 */ Mtx projection; /* 0x58 */ Mtx modelView; - /* 0x98 */ char unk_98[0x40]; + /* 0x98 */ Mtx unk_98; /* 0xD8 */ Gfx* gfx; // "gfxtbl" /* 0xDC */ u16* zBuffer; } TransitionUnk; // size = 0xE0 diff --git a/spec b/spec index 64546eacab..1e40479a87 100644 --- a/spec +++ b/spec @@ -461,11 +461,10 @@ beginseg include "build/src/code/gfxprint.o" include "build/src/code/code_800FBCE0.o" include "build/src/code/loadfragment2.o" - include "build/asm/mtxuty-cvt.o" - include "build/data/mtxuty-cvt.rodata.o" + include "build/src/code/mtxuty-cvt.o" include "build/src/code/relocation.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/src/code/code_800FCE80.o" include "build/asm/fp.o" @@ -475,10 +474,10 @@ beginseg include "build/src/code/printutils.o" include "build/src/code/sleep.o" include "build/src/code/jpegutils.o" - include "build/asm/code_800FFA50.o" - include "build/data/code_800FFA50.bss.o" + include "build/asm/jpegdecoder.o" + include "build/data/jpegdecoder.bss.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/sins.o" include "build/data/sins.data.o" @@ -490,14 +489,15 @@ beginseg include "build/src/libultra_code/guPerspectiveF.o" include "build/src/libultra_code/__osSpRawStartDma.o" include "build/src/libultra_code/__osSiRawStartDma.o" - include "build/asm/code_801014A0.o" - include "build/data/code_801014A0.bss.o" + include "build/src/libultra_code/osSpTaskYield.o" + include "build/asm/code_801014C0.o" + include "build/data/code_801014C0.bss.o" include "build/asm/code_80101910.o" include "build/data/code_80101910.bss.o" include "build/asm/guMtxIdentF.o" include "build/src/libultra_code/guLookAt.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/data/code_80102420.data.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/guLookAtHilite.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/asm/code_80103DC0.o" - include "build/data/code_80103DC0.data.o" + include "build/src/libultra_code/osSpTaskYielded.o" + include "build/src/libultra_code/rotate.o" + include "build/src/libultra_code/osAiSetFrequency.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/osDpSetStatus.o" include "build/asm/code_801041E0.o" @@ -520,30 +521,30 @@ beginseg include "build/src/libultra_code/coss.o" include "build/src/libultra_code/osViSetEvent.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_80104D00.o" include "build/asm/code_80104D60.o" include "build/asm/code_80104F40.o" include "build/asm/code_80105250.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/data/code_80105CF0.data.o" include "build/src/libultra_code/osReadMempak.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/__osSpSetStatus.o" include "build/asm/osWritebackDCacheAll.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/data/code_80106550.rodata.o" include "build/src/libultra_code/osViGetCurrentFramebuffer.o" include "build/src/libultra_code/__osSpSetPc.o" - include "build/asm/code_801067D0.o" - include "build/asm/code_801067E0.o" + include "build/src/libultra_code/sqrt.o" + include "build/src/libultra_code/absf.o" include "build/src/code/code_801067F0.o" include "build/src/code/code_80106860.o" include "build/src/code/code_801068B0.o" diff --git a/src/code/mtxuty-cvt.c b/src/code/mtxuty-cvt.c new file mode 100644 index 0000000000..0f1f6a7ffc --- /dev/null +++ b/src/code/mtxuty-cvt.c @@ -0,0 +1,23 @@ +#include + +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 ? +} diff --git a/src/code/padmgr.c b/src/code/padmgr.c index 745c058e42..b81116e6ab 100644 --- a/src/code/padmgr.c +++ b/src/code/padmgr.c @@ -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->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.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->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); - 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.y = (newin->cur.in.y - newin->prev.in.y) + newin->press.in.y; } diff --git a/src/code/padutils.c b/src/code/padutils.c new file mode 100644 index 0000000000..b19fdbf12f --- /dev/null +++ b/src/code/padutils.c @@ -0,0 +1,93 @@ +#include + +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); +} diff --git a/src/code/sys_matrix.c b/src/code/sys_matrix.c index f0b3e40058..487e1a841b 100644 --- a/src/code/sys_matrix.c +++ b/src/code/sys_matrix.c @@ -935,7 +935,7 @@ void func_800D2A98(Mtx* mtx, f32 arg1, f32 arg2, f32 arg3, f32 arg4) { MtxF mf; 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) { diff --git a/src/code/z_room.c b/src/code/z_room.c index 233cbdc39e..90ca8ce640 100644 --- a/src/code/z_room.c +++ b/src/code/z_room.c @@ -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)) { bg->b.frameW = width * 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, G_AC_THRESHOLD | G_ZS_PIXEL | G_RM_NOOP | G_RM_NOOP2); gSPBgRectCopy(displayListHead++, bg); diff --git a/src/libultra_boot_O1/initialize.c b/src/libultra_boot_O1/initialize.c index 3683ad3b8c..29d4846617 100644 --- a/src/libultra_boot_O1/initialize.c +++ b/src/libultra_boot_O1/initialize.c @@ -9,7 +9,7 @@ typedef struct { } struct_exceptionPreamble; u64 osClockRate = OS_CLOCK_RATE; -u32 osViClock = VI_NTSC_CLOCK; +s32 osViClock = VI_NTSC_CLOCK; u32 __osShutdown = 0; u32 __OSGlobalIntMask = 0x003FFF01; diff --git a/src/libultra_code/absf.c b/src/libultra_code/absf.c new file mode 100644 index 0000000000..d78355af54 --- /dev/null +++ b/src/libultra_code/absf.c @@ -0,0 +1,5 @@ +#include + +f32 absf(f32 a) { + return fabsf(a); +} diff --git a/src/libultra_code/guS2DInitBg.c b/src/libultra_code/guS2DInitBg.c new file mode 100644 index 0000000000..32c46f1693 --- /dev/null +++ b/src/libultra_code/guS2DInitBg.c @@ -0,0 +1,28 @@ +#include + +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; + } +} diff --git a/src/libultra_code/libultra_internal.h b/src/libultra_code/libultra_internal.h index fe9b29abb6..6a6e7caacc 100644 --- a/src/libultra_code/libultra_internal.h +++ b/src/libultra_code/libultra_internal.h @@ -4,8 +4,6 @@ // TODO: rename these // SM64 OOT -#define guMtxF2L func_801064E0 // believed to be correct name, needs confirmation. - s32 __osDisableInt(); void __osRestoreInt(s32); void __osEnqueueAndYield(OSThread**); diff --git a/src/libultra_code/osAiSetFrequency.c b/src/libultra_code/osAiSetFrequency.c new file mode 100644 index 0000000000..f16d8cec3b --- /dev/null +++ b/src/libultra_code/osAiSetFrequency.c @@ -0,0 +1,24 @@ +#include +#include + +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; +} diff --git a/src/libultra_code/osSetTimer.c b/src/libultra_code/osSetTimer.c new file mode 100644 index 0000000000..fd78ba184b --- /dev/null +++ b/src/libultra_code/osSetTimer.c @@ -0,0 +1,42 @@ +#include + +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; +} diff --git a/src/libultra_code/osSpTaskYield.c b/src/libultra_code/osSpTaskYield.c new file mode 100644 index 0000000000..ec98ec332c --- /dev/null +++ b/src/libultra_code/osSpTaskYield.c @@ -0,0 +1,5 @@ +#include + +void osSpTaskYield() { + __osSpSetStatus(SP_STATUS_SIG3); +} diff --git a/src/libultra_code/osSpTaskYielded.c b/src/libultra_code/osSpTaskYielded.c new file mode 100644 index 0000000000..ed151a6153 --- /dev/null +++ b/src/libultra_code/osSpTaskYielded.c @@ -0,0 +1,21 @@ +#include + +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; +} diff --git a/src/libultra_code/osStopTimer.c b/src/libultra_code/osStopTimer.c new file mode 100644 index 0000000000..6e8a94fc8d --- /dev/null +++ b/src/libultra_code/osStopTimer.c @@ -0,0 +1,28 @@ +#include + +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; +} diff --git a/src/libultra_code/rotate.c b/src/libultra_code/rotate.c new file mode 100644 index 0000000000..79752bfa60 --- /dev/null +++ b/src/libultra_code/rotate.c @@ -0,0 +1,50 @@ +#include + +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); +} diff --git a/src/libultra_code/sqrt.c b/src/libultra_code/sqrt.c new file mode 100644 index 0000000000..98b338362f --- /dev/null +++ b/src/libultra_code/sqrt.c @@ -0,0 +1,10 @@ +#include + +#ifndef __GNUC__ +#pragma intrinsic(sqrt) +#define __builtin_sqrt sqrt +#endif + +f64 sqrt(f64 f) { + return __builtin_sqrt(f); +} diff --git a/src/libultra_code/sqrtf.c b/src/libultra_code/sqrtf.c index c582b7f6d4..59ab57ce81 100644 --- a/src/libultra_code/sqrtf.c +++ b/src/libultra_code/sqrtf.c @@ -1,12 +1,10 @@ -#include - -float sqrtf(float f); +#include #ifndef __GNUC__ #pragma intrinsic(sqrtf) #define __builtin_sqrtf sqrtf #endif -float sqrtf(float f) { +f32 sqrtf(f32 f) { return __builtin_sqrtf(f); } diff --git a/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c b/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c index 20a90a02a3..aeaa0eb99d 100644 --- a/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c +++ b/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c @@ -234,7 +234,7 @@ void EnHintnuts_Wait(EnHintnuts* this, GlobalContext* globalCtx) { if (func_800A56C8(&this->skelAnime, 9.0f) != 0) { this->collider.base.acFlags |= 1; } 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) { boundedCurrentFrame = 9.0f;