diff --git a/lib/asm/non_matchings/unknown_0D1180/__osBlockSum.s b/lib/asm/non_matchings/unknown_0D1180/__osBlockSum.s deleted file mode 100644 index 8de87cc4..00000000 --- a/lib/asm/non_matchings/unknown_0D1180/__osBlockSum.s +++ /dev/null @@ -1,69 +0,0 @@ -glabel __osBlockSum -/* 0D1988 800D0D88 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 0D198C 800D0D8C AFA40040 */ sw $a0, 0x40($sp) -/* 0D1990 800D0D90 AFA7004C */ sw $a3, 0x4c($sp) -/* 0D1994 800D0D94 93AE004F */ lbu $t6, 0x4f($sp) -/* 0D1998 800D0D98 8FAF0040 */ lw $t7, 0x40($sp) -/* 0D199C 800D0D9C AFBF0014 */ sw $ra, 0x14($sp) -/* 0D19A0 800D0DA0 AFA50044 */ sw $a1, 0x44($sp) -/* 0D19A4 800D0DA4 AFA60048 */ sw $a2, 0x48($sp) -/* 0D19A8 800D0DA8 AFA00038 */ sw $zero, 0x38($sp) -/* 0D19AC 800D0DAC A1EE0065 */ sb $t6, 0x65($t7) -/* 0D19B0 800D0DB0 0C0357F7 */ jal __osPfsSelectBank -/* 0D19B4 800D0DB4 8FA40040 */ lw $a0, 0x40($sp) -/* 0D19B8 800D0DB8 AFA20038 */ sw $v0, 0x38($sp) -/* 0D19BC 800D0DBC 8FB80038 */ lw $t8, 0x38($sp) -/* 0D19C0 800D0DC0 13000003 */ beqz $t8, .L800D0DD0 -/* 0D19C4 800D0DC4 00000000 */ nop -/* 0D19C8 800D0DC8 10000027 */ b .L800D0E68 -/* 0D19CC 800D0DCC 03001025 */ move $v0, $t8 -.L800D0DD0: -/* 0D19D0 800D0DD0 AFA0003C */ sw $zero, 0x3c($sp) -.L800D0DD4: -/* 0D19D4 800D0DD4 93A80047 */ lbu $t0, 0x47($sp) -/* 0D19D8 800D0DD8 8FB90040 */ lw $t9, 0x40($sp) -/* 0D19DC 800D0DDC 8FAA003C */ lw $t2, 0x3c($sp) -/* 0D19E0 800D0DE0 000848C0 */ sll $t1, $t0, 3 -/* 0D19E4 800D0DE4 27A70018 */ addiu $a3, $sp, 0x18 -/* 0D19E8 800D0DE8 8F240004 */ lw $a0, 4($t9) -/* 0D19EC 800D0DEC 8F250008 */ lw $a1, 8($t9) -/* 0D19F0 800D0DF0 0C033728 */ jal __osContRamRead -/* 0D19F4 800D0DF4 012A3021 */ addu $a2, $t1, $t2 -/* 0D19F8 800D0DF8 AFA20038 */ sw $v0, 0x38($sp) -/* 0D19FC 800D0DFC 8FAB0038 */ lw $t3, 0x38($sp) -/* 0D1A00 800D0E00 11600007 */ beqz $t3, .L800D0E20 -/* 0D1A04 800D0E04 00000000 */ nop -/* 0D1A08 800D0E08 8FAC0040 */ lw $t4, 0x40($sp) -/* 0D1A0C 800D0E0C A1800065 */ sb $zero, 0x65($t4) -/* 0D1A10 800D0E10 0C0357F7 */ jal __osPfsSelectBank -/* 0D1A14 800D0E14 8FA40040 */ lw $a0, 0x40($sp) -/* 0D1A18 800D0E18 10000013 */ b .L800D0E68 -/* 0D1A1C 800D0E1C 8FA20038 */ lw $v0, 0x38($sp) -.L800D0E20: -/* 0D1A20 800D0E20 27A40018 */ addiu $a0, $sp, 0x18 -/* 0D1A24 800D0E24 0C0354BC */ jal __osSumcalc -/* 0D1A28 800D0E28 24050020 */ li $a1, 32 -/* 0D1A2C 800D0E2C 8FAD0048 */ lw $t5, 0x48($sp) -/* 0D1A30 800D0E30 95AE0000 */ lhu $t6, ($t5) -/* 0D1A34 800D0E34 004E7821 */ addu $t7, $v0, $t6 -/* 0D1A38 800D0E38 A5AF0000 */ sh $t7, ($t5) -/* 0D1A3C 800D0E3C 8FB8003C */ lw $t8, 0x3c($sp) -/* 0D1A40 800D0E40 27190001 */ addiu $t9, $t8, 1 -/* 0D1A44 800D0E44 2B210008 */ slti $at, $t9, 8 -/* 0D1A48 800D0E48 1420FFE2 */ bnez $at, .L800D0DD4 -/* 0D1A4C 800D0E4C AFB9003C */ sw $t9, 0x3c($sp) -/* 0D1A50 800D0E50 8FA80040 */ lw $t0, 0x40($sp) -/* 0D1A54 800D0E54 A1000065 */ sb $zero, 0x65($t0) -/* 0D1A58 800D0E58 0C0357F7 */ jal __osPfsSelectBank -/* 0D1A5C 800D0E5C 8FA40040 */ lw $a0, 0x40($sp) -/* 0D1A60 800D0E60 AFA20038 */ sw $v0, 0x38($sp) -/* 0D1A64 800D0E64 8FA20038 */ lw $v0, 0x38($sp) -.L800D0E68: -/* 0D1A68 800D0E68 8FBF0014 */ lw $ra, 0x14($sp) -/* 0D1A6C 800D0E6C 27BD0040 */ addiu $sp, $sp, 0x40 -/* 0D1A70 800D0E70 03E00008 */ jr $ra -/* 0D1A74 800D0E74 00000000 */ nop - -/* 0D1A78 800D0E78 00000000 */ nop -/* 0D1A7C 800D0E7C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0D1180/__osPfsReleasePages.s b/lib/asm/non_matchings/unknown_0D1180/__osPfsReleasePages.s deleted file mode 100644 index 3dd1ffbc..00000000 --- a/lib/asm/non_matchings/unknown_0D1180/__osPfsReleasePages.s +++ /dev/null @@ -1,157 +0,0 @@ -glabel __osPfsReleasePages -/* 0D1750 800D0B50 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0D1754 800D0B54 AFA60030 */ sw $a2, 0x30($sp) -/* 0D1758 800D0B58 93B80033 */ lbu $t8, 0x33($sp) -/* 0D175C 800D0B5C AFA5002C */ sw $a1, 0x2c($sp) -/* 0D1760 800D0B60 8FAF002C */ lw $t7, 0x2c($sp) -/* 0D1764 800D0B64 0018C840 */ sll $t9, $t8, 1 -/* 0D1768 800D0B68 AFBF0014 */ sw $ra, 0x14($sp) -/* 0D176C 800D0B6C AFA40028 */ sw $a0, 0x28($sp) -/* 0D1770 800D0B70 AFA70034 */ sw $a3, 0x34($sp) -/* 0D1774 800D0B74 AFA0001C */ sw $zero, 0x1c($sp) -/* 0D1778 800D0B78 01F94021 */ addu $t0, $t7, $t9 -/* 0D177C 800D0B7C 95010000 */ lhu $at, ($t0) -/* 0D1780 800D0B80 27AE0024 */ addiu $t6, $sp, 0x24 -/* 0D1784 800D0B84 A5C10000 */ sh $at, ($t6) -/* 0D1788 800D0B88 97AC0024 */ lhu $t4, 0x24($sp) -/* 0D178C 800D0B8C 24010001 */ li $at, 1 -/* 0D1790 800D0B90 1181000B */ beq $t4, $at, .L800D0BC0 -/* 0D1794 800D0B94 00000000 */ nop -/* 0D1798 800D0B98 93AD0024 */ lbu $t5, 0x24($sp) -/* 0D179C 800D0B9C 19A00004 */ blez $t5, .L800D0BB0 -/* 0D17A0 800D0BA0 00000000 */ nop -/* 0D17A4 800D0BA4 24180001 */ li $t8, 1 -/* 0D17A8 800D0BA8 1000000E */ b .L800D0BE4 -/* 0D17AC 800D0BAC AFB80018 */ sw $t8, 0x18($sp) -.L800D0BB0: -/* 0D17B0 800D0BB0 8FAF0028 */ lw $t7, 0x28($sp) -/* 0D17B4 800D0BB4 8DF90060 */ lw $t9, 0x60($t7) -/* 0D17B8 800D0BB8 1000000A */ b .L800D0BE4 -/* 0D17BC 800D0BBC AFB90018 */ sw $t9, 0x18($sp) -.L800D0BC0: -/* 0D17C0 800D0BC0 93AA003B */ lbu $t2, 0x3b($sp) -/* 0D17C4 800D0BC4 19400004 */ blez $t2, .L800D0BD8 -/* 0D17C8 800D0BC8 00000000 */ nop -/* 0D17CC 800D0BCC 24090001 */ li $t1, 1 -/* 0D17D0 800D0BD0 10000004 */ b .L800D0BE4 -/* 0D17D4 800D0BD4 AFA90018 */ sw $t1, 0x18($sp) -.L800D0BD8: -/* 0D17D8 800D0BD8 8FAE0028 */ lw $t6, 0x28($sp) -/* 0D17DC 800D0BDC 8DC80060 */ lw $t0, 0x60($t6) -/* 0D17E0 800D0BE0 AFA80018 */ sw $t0, 0x18($sp) -.L800D0BE4: -/* 0D17E4 800D0BE4 93AB0025 */ lbu $t3, 0x25($sp) -/* 0D17E8 800D0BE8 8FAC0018 */ lw $t4, 0x18($sp) -/* 0D17EC 800D0BEC 016C082A */ slt $at, $t3, $t4 -/* 0D17F0 800D0BF0 10200007 */ beqz $at, .L800D0C10 -/* 0D17F4 800D0BF4 00000000 */ nop -/* 0D17F8 800D0BF8 97AD0024 */ lhu $t5, 0x24($sp) -/* 0D17FC 800D0BFC 24010001 */ li $at, 1 -/* 0D1800 800D0C00 11A10003 */ beq $t5, $at, .L800D0C10 -/* 0D1804 800D0C04 00000000 */ nop -/* 0D1808 800D0C08 1000005B */ b .L800D0D78 -/* 0D180C 800D0C0C 24020003 */ li $v0, 3 -.L800D0C10: -/* 0D1810 800D0C10 27AF0024 */ addiu $t7, $sp, 0x24 -/* 0D1814 800D0C14 95E10000 */ lhu $at, ($t7) -/* 0D1818 800D0C18 8FB8003C */ lw $t8, 0x3c($sp) -/* 0D181C 800D0C1C A7010000 */ sh $at, ($t8) -/* 0D1820 800D0C20 8FA90040 */ lw $t1, 0x40($sp) -/* 0D1824 800D0C24 24010001 */ li $at, 1 -/* 0D1828 800D0C28 15210007 */ bne $t1, $at, .L800D0C48 -/* 0D182C 800D0C2C 00000000 */ nop -/* 0D1830 800D0C30 93AB0033 */ lbu $t3, 0x33($sp) -/* 0D1834 800D0C34 8FA8002C */ lw $t0, 0x2c($sp) -/* 0D1838 800D0C38 240E0003 */ li $t6, 3 -/* 0D183C 800D0C3C 000B6040 */ sll $t4, $t3, 1 -/* 0D1840 800D0C40 010C6821 */ addu $t5, $t0, $t4 -/* 0D1844 800D0C44 A5AE0000 */ sh $t6, ($t5) -.L800D0C48: -/* 0D1848 800D0C48 8FA40028 */ lw $a0, 0x28($sp) -/* 0D184C 800D0C4C 93A50033 */ lbu $a1, 0x33($sp) -/* 0D1850 800D0C50 8FA60034 */ lw $a2, 0x34($sp) -/* 0D1854 800D0C54 0C034362 */ jal __osBlockSum -/* 0D1858 800D0C58 93A7003B */ lbu $a3, 0x3b($sp) -/* 0D185C 800D0C5C AFA2001C */ sw $v0, 0x1c($sp) -/* 0D1860 800D0C60 8FB9001C */ lw $t9, 0x1c($sp) -/* 0D1864 800D0C64 13200003 */ beqz $t9, .L800D0C74 -/* 0D1868 800D0C68 00000000 */ nop -/* 0D186C 800D0C6C 10000042 */ b .L800D0D78 -/* 0D1870 800D0C70 03201025 */ move $v0, $t9 -.L800D0C74: -/* 0D1874 800D0C74 97B80024 */ lhu $t8, 0x24($sp) -/* 0D1878 800D0C78 24010001 */ li $at, 1 -/* 0D187C 800D0C7C 17010003 */ bne $t8, $at, .L800D0C8C -/* 0D1880 800D0C80 00000000 */ nop -/* 0D1884 800D0C84 1000003C */ b .L800D0D78 -/* 0D1888 800D0C88 00001025 */ move $v0, $zero -.L800D0C8C: -/* 0D188C 800D0C8C 8FAA0028 */ lw $t2, 0x28($sp) -/* 0D1890 800D0C90 97AF0024 */ lhu $t7, 0x24($sp) -/* 0D1894 800D0C94 8D490060 */ lw $t1, 0x60($t2) -/* 0D1898 800D0C98 01E9082A */ slt $at, $t7, $t1 -/* 0D189C 800D0C9C 14200025 */ bnez $at, .L800D0D34 -/* 0D18A0 800D0CA0 00000000 */ nop -.L800D0CA4: -/* 0D18A4 800D0CA4 93AE0025 */ lbu $t6, 0x25($sp) -/* 0D18A8 800D0CA8 97AB0024 */ lhu $t3, 0x24($sp) -/* 0D18AC 800D0CAC 8FAC002C */ lw $t4, 0x2c($sp) -/* 0D18B0 800D0CB0 000E6840 */ sll $t5, $t6, 1 -/* 0D18B4 800D0CB4 A7AB0020 */ sh $t3, 0x20($sp) -/* 0D18B8 800D0CB8 018DC821 */ addu $t9, $t4, $t5 -/* 0D18BC 800D0CBC 97210000 */ lhu $at, ($t9) -/* 0D18C0 800D0CC0 27A80024 */ addiu $t0, $sp, 0x24 -/* 0D18C4 800D0CC4 240F0003 */ li $t7, 3 -/* 0D18C8 800D0CC8 A5010000 */ sh $at, ($t0) -/* 0D18CC 800D0CCC 93AB0021 */ lbu $t3, 0x21($sp) -/* 0D18D0 800D0CD0 8FA9002C */ lw $t1, 0x2c($sp) -/* 0D18D4 800D0CD4 000B7040 */ sll $t6, $t3, 1 -/* 0D18D8 800D0CD8 012E6021 */ addu $t4, $t1, $t6 -/* 0D18DC 800D0CDC A58F0000 */ sh $t7, ($t4) -/* 0D18E0 800D0CE0 93A7003B */ lbu $a3, 0x3b($sp) -/* 0D18E4 800D0CE4 8FA60034 */ lw $a2, 0x34($sp) -/* 0D18E8 800D0CE8 93A50021 */ lbu $a1, 0x21($sp) -/* 0D18EC 800D0CEC 0C034362 */ jal __osBlockSum -/* 0D18F0 800D0CF0 8FA40028 */ lw $a0, 0x28($sp) -/* 0D18F4 800D0CF4 AFA2001C */ sw $v0, 0x1c($sp) -/* 0D18F8 800D0CF8 8FAD001C */ lw $t5, 0x1c($sp) -/* 0D18FC 800D0CFC 11A00003 */ beqz $t5, .L800D0D0C -/* 0D1900 800D0D00 00000000 */ nop -/* 0D1904 800D0D04 1000001C */ b .L800D0D78 -/* 0D1908 800D0D08 01A01025 */ move $v0, $t5 -.L800D0D0C: -/* 0D190C 800D0D0C 93B80024 */ lbu $t8, 0x24($sp) -/* 0D1910 800D0D10 93A8003B */ lbu $t0, 0x3b($sp) -/* 0D1914 800D0D14 17080007 */ bne $t8, $t0, .L800D0D34 -/* 0D1918 800D0D18 00000000 */ nop -/* 0D191C 800D0D1C 8FAA0028 */ lw $t2, 0x28($sp) -/* 0D1920 800D0D20 97B90024 */ lhu $t9, 0x24($sp) -/* 0D1924 800D0D24 8D4B0060 */ lw $t3, 0x60($t2) -/* 0D1928 800D0D28 032B082A */ slt $at, $t9, $t3 -/* 0D192C 800D0D2C 1020FFDD */ beqz $at, .L800D0CA4 -/* 0D1930 800D0D30 00000000 */ nop -.L800D0D34: -/* 0D1934 800D0D34 8FAE0028 */ lw $t6, 0x28($sp) -/* 0D1938 800D0D38 97A90024 */ lhu $t1, 0x24($sp) -/* 0D193C 800D0D3C 8DCF0060 */ lw $t7, 0x60($t6) -/* 0D1940 800D0D40 012F082A */ slt $at, $t1, $t7 -/* 0D1944 800D0D44 14200007 */ bnez $at, .L800D0D64 -/* 0D1948 800D0D48 00000000 */ nop -/* 0D194C 800D0D4C 93B80025 */ lbu $t8, 0x25($sp) -/* 0D1950 800D0D50 8FAD002C */ lw $t5, 0x2c($sp) -/* 0D1954 800D0D54 240C0003 */ li $t4, 3 -/* 0D1958 800D0D58 00184040 */ sll $t0, $t8, 1 -/* 0D195C 800D0D5C 01A85021 */ addu $t2, $t5, $t0 -/* 0D1960 800D0D60 A54C0000 */ sh $t4, ($t2) -.L800D0D64: -/* 0D1964 800D0D64 27AB0024 */ addiu $t3, $sp, 0x24 -/* 0D1968 800D0D68 95610000 */ lhu $at, ($t3) -/* 0D196C 800D0D6C 8FB9003C */ lw $t9, 0x3c($sp) -/* 0D1970 800D0D70 00001025 */ move $v0, $zero -/* 0D1974 800D0D74 A7210000 */ sh $at, ($t9) -.L800D0D78: -/* 0D1978 800D0D78 8FBF0014 */ lw $ra, 0x14($sp) -/* 0D197C 800D0D7C 27BD0028 */ addiu $sp, $sp, 0x28 -/* 0D1980 800D0D80 03E00008 */ jr $ra -/* 0D1984 800D0D84 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0D1180/osPfsDeleteFile.s b/lib/asm/non_matchings/unknown_0D1180/osPfsDeleteFile.s deleted file mode 100644 index 1358dc2b..00000000 --- a/lib/asm/non_matchings/unknown_0D1180/osPfsDeleteFile.s +++ /dev/null @@ -1,203 +0,0 @@ -glabel osPfsDeleteFile -/* 0D1470 800D0870 27BDFEA0 */ addiu $sp, $sp, -0x160 -/* 0D1474 800D0874 AFA50164 */ sw $a1, 0x164($sp) -/* 0D1478 800D0878 97AE0166 */ lhu $t6, 0x166($sp) -/* 0D147C 800D087C AFBF0024 */ sw $ra, 0x24($sp) -/* 0D1480 800D0880 AFA40160 */ sw $a0, 0x160($sp) -/* 0D1484 800D0884 AFA60168 */ sw $a2, 0x168($sp) -/* 0D1488 800D0888 AFA7016C */ sw $a3, 0x16c($sp) -/* 0D148C 800D088C 11C00004 */ beqz $t6, .L800D08A0 -/* 0D1490 800D0890 A7A00032 */ sh $zero, 0x32($sp) -/* 0D1494 800D0894 8FAF0168 */ lw $t7, 0x168($sp) -/* 0D1498 800D0898 15E00003 */ bnez $t7, .L800D08A8 -/* 0D149C 800D089C 00000000 */ nop -.L800D08A0: -/* 0D14A0 800D08A0 100000A7 */ b .L800D0B40 -/* 0D14A4 800D08A4 24020005 */ li $v0, 5 -.L800D08A8: -/* 0D14A8 800D08A8 8FB80160 */ lw $t8, 0x160($sp) -/* 0D14AC 800D08AC 8F190000 */ lw $t9, ($t8) -/* 0D14B0 800D08B0 33280001 */ andi $t0, $t9, 1 -/* 0D14B4 800D08B4 15000003 */ bnez $t0, .L800D08C4 -/* 0D14B8 800D08B8 00000000 */ nop -/* 0D14BC 800D08BC 100000A0 */ b .L800D0B40 -/* 0D14C0 800D08C0 24020005 */ li $v0, 5 -.L800D08C4: -/* 0D14C4 800D08C4 0C0356F0 */ jal __osCheckId -/* 0D14C8 800D08C8 8FA40160 */ lw $a0, 0x160($sp) -/* 0D14CC 800D08CC 24010002 */ li $at, 2 -/* 0D14D0 800D08D0 14410003 */ bne $v0, $at, .L800D08E0 -/* 0D14D4 800D08D4 00000000 */ nop -/* 0D14D8 800D08D8 10000099 */ b .L800D0B40 -/* 0D14DC 800D08DC 24020002 */ li $v0, 2 -.L800D08E0: -/* 0D14E0 800D08E0 8FA90160 */ lw $t1, 0x160($sp) -/* 0D14E4 800D08E4 912A0065 */ lbu $t2, 0x65($t1) -/* 0D14E8 800D08E8 1140000A */ beqz $t2, .L800D0914 -/* 0D14EC 800D08EC 00000000 */ nop -/* 0D14F0 800D08F0 A1200065 */ sb $zero, 0x65($t1) -/* 0D14F4 800D08F4 0C0357F7 */ jal __osPfsSelectBank -/* 0D14F8 800D08F8 8FA40160 */ lw $a0, 0x160($sp) -/* 0D14FC 800D08FC AFA20154 */ sw $v0, 0x154($sp) -/* 0D1500 800D0900 8FAB0154 */ lw $t3, 0x154($sp) -/* 0D1504 800D0904 11600003 */ beqz $t3, .L800D0914 -/* 0D1508 800D0908 00000000 */ nop -/* 0D150C 800D090C 1000008C */ b .L800D0B40 -/* 0D1510 800D0910 01601025 */ move $v0, $t3 -.L800D0914: -/* 0D1514 800D0914 8FAC0170 */ lw $t4, 0x170($sp) -/* 0D1518 800D0918 27AD015C */ addiu $t5, $sp, 0x15c -/* 0D151C 800D091C AFAD0014 */ sw $t5, 0x14($sp) -/* 0D1520 800D0920 8FA40160 */ lw $a0, 0x160($sp) -/* 0D1524 800D0924 97A50166 */ lhu $a1, 0x166($sp) -/* 0D1528 800D0928 8FA60168 */ lw $a2, 0x168($sp) -/* 0D152C 800D092C 8FA7016C */ lw $a3, 0x16c($sp) -/* 0D1530 800D0930 0C0343A0 */ jal osPfsFindFile -/* 0D1534 800D0934 AFAC0010 */ sw $t4, 0x10($sp) -/* 0D1538 800D0938 AFA20154 */ sw $v0, 0x154($sp) -/* 0D153C 800D093C 8FAE0154 */ lw $t6, 0x154($sp) -/* 0D1540 800D0940 11C00003 */ beqz $t6, .L800D0950 -/* 0D1544 800D0944 00000000 */ nop -/* 0D1548 800D0948 1000007D */ b .L800D0B40 -/* 0D154C 800D094C 01C01025 */ move $v0, $t6 -.L800D0950: -/* 0D1550 800D0950 8FAF015C */ lw $t7, 0x15c($sp) -/* 0D1554 800D0954 2401FFFF */ li $at, -1 -/* 0D1558 800D0958 15E10003 */ bne $t7, $at, .L800D0968 -/* 0D155C 800D095C 00000000 */ nop -/* 0D1560 800D0960 10000077 */ b .L800D0B40 -/* 0D1564 800D0964 24020005 */ li $v0, 5 -.L800D0968: -/* 0D1568 800D0968 8FB80160 */ lw $t8, 0x160($sp) -/* 0D156C 800D096C 8FA8015C */ lw $t0, 0x15c($sp) -/* 0D1570 800D0970 27A70034 */ addiu $a3, $sp, 0x34 -/* 0D1574 800D0974 8F19005C */ lw $t9, 0x5c($t8) -/* 0D1578 800D0978 8F040004 */ lw $a0, 4($t8) -/* 0D157C 800D097C 8F050008 */ lw $a1, 8($t8) -/* 0D1580 800D0980 0C033728 */ jal __osContRamRead -/* 0D1584 800D0984 03283021 */ addu $a2, $t9, $t0 -/* 0D1588 800D0988 AFA20154 */ sw $v0, 0x154($sp) -/* 0D158C 800D098C 8FAA0154 */ lw $t2, 0x154($sp) -/* 0D1590 800D0990 11400003 */ beqz $t2, .L800D09A0 -/* 0D1594 800D0994 00000000 */ nop -/* 0D1598 800D0998 10000069 */ b .L800D0B40 -/* 0D159C 800D099C 01401025 */ move $v0, $t2 -.L800D09A0: -/* 0D15A0 800D09A0 93A9003B */ lbu $t1, 0x3b($sp) -/* 0D15A4 800D09A4 93AB003A */ lbu $t3, 0x3a($sp) -/* 0D15A8 800D09A8 8FAC0160 */ lw $t4, 0x160($sp) -/* 0D15AC 800D09AC A3A9002F */ sb $t1, 0x2f($sp) -/* 0D15B0 800D09B0 A3AB002E */ sb $t3, 0x2e($sp) -/* 0D15B4 800D09B4 918D0064 */ lbu $t5, 0x64($t4) -/* 0D15B8 800D09B8 016D082A */ slt $at, $t3, $t5 -/* 0D15BC 800D09BC 10200036 */ beqz $at, .L800D0A98 -/* 0D15C0 800D09C0 00000000 */ nop -.L800D09C4: -/* 0D15C4 800D09C4 8FA40160 */ lw $a0, 0x160($sp) -/* 0D15C8 800D09C8 27A50054 */ addiu $a1, $sp, 0x54 -/* 0D15CC 800D09CC 00003025 */ move $a2, $zero -/* 0D15D0 800D09D0 0C03572F */ jal __osPfsRWInode -/* 0D15D4 800D09D4 93A7002E */ lbu $a3, 0x2e($sp) -/* 0D15D8 800D09D8 AFA20154 */ sw $v0, 0x154($sp) -/* 0D15DC 800D09DC 8FAE0154 */ lw $t6, 0x154($sp) -/* 0D15E0 800D09E0 11C00003 */ beqz $t6, .L800D09F0 -/* 0D15E4 800D09E4 00000000 */ nop -/* 0D15E8 800D09E8 10000055 */ b .L800D0B40 -/* 0D15EC 800D09EC 01C01025 */ move $v0, $t6 -.L800D09F0: -/* 0D15F0 800D09F0 93AF002E */ lbu $t7, 0x2e($sp) -/* 0D15F4 800D09F4 27B80030 */ addiu $t8, $sp, 0x30 -/* 0D15F8 800D09F8 24190001 */ li $t9, 1 -/* 0D15FC 800D09FC AFB90018 */ sw $t9, 0x18($sp) -/* 0D1600 800D0A00 AFB80014 */ sw $t8, 0x14($sp) -/* 0D1604 800D0A04 8FA40160 */ lw $a0, 0x160($sp) -/* 0D1608 800D0A08 27A50054 */ addiu $a1, $sp, 0x54 -/* 0D160C 800D0A0C 93A6002F */ lbu $a2, 0x2f($sp) -/* 0D1610 800D0A10 27A70032 */ addiu $a3, $sp, 0x32 -/* 0D1614 800D0A14 0C0342D4 */ jal __osPfsReleasePages -/* 0D1618 800D0A18 AFAF0010 */ sw $t7, 0x10($sp) -/* 0D161C 800D0A1C AFA20154 */ sw $v0, 0x154($sp) -/* 0D1620 800D0A20 8FA80154 */ lw $t0, 0x154($sp) -/* 0D1624 800D0A24 11000003 */ beqz $t0, .L800D0A34 -/* 0D1628 800D0A28 00000000 */ nop -/* 0D162C 800D0A2C 10000044 */ b .L800D0B40 -/* 0D1630 800D0A30 01001025 */ move $v0, $t0 -.L800D0A34: -/* 0D1634 800D0A34 8FA40160 */ lw $a0, 0x160($sp) -/* 0D1638 800D0A38 27A50054 */ addiu $a1, $sp, 0x54 -/* 0D163C 800D0A3C 24060001 */ li $a2, 1 -/* 0D1640 800D0A40 0C03572F */ jal __osPfsRWInode -/* 0D1644 800D0A44 93A7002E */ lbu $a3, 0x2e($sp) -/* 0D1648 800D0A48 AFA20154 */ sw $v0, 0x154($sp) -/* 0D164C 800D0A4C 8FAA0154 */ lw $t2, 0x154($sp) -/* 0D1650 800D0A50 11400003 */ beqz $t2, .L800D0A60 -/* 0D1654 800D0A54 00000000 */ nop -/* 0D1658 800D0A58 10000039 */ b .L800D0B40 -/* 0D165C 800D0A5C 01401025 */ move $v0, $t2 -.L800D0A60: -/* 0D1660 800D0A60 97A90030 */ lhu $t1, 0x30($sp) -/* 0D1664 800D0A64 24010001 */ li $at, 1 -/* 0D1668 800D0A68 1121000B */ beq $t1, $at, .L800D0A98 -/* 0D166C 800D0A6C 00000000 */ nop -/* 0D1670 800D0A70 93AC0030 */ lbu $t4, 0x30($sp) -/* 0D1674 800D0A74 93AB0031 */ lbu $t3, 0x31($sp) -/* 0D1678 800D0A78 8FAE0160 */ lw $t6, 0x160($sp) -/* 0D167C 800D0A7C A3AC002E */ sb $t4, 0x2e($sp) -/* 0D1680 800D0A80 A3AB002F */ sb $t3, 0x2f($sp) -/* 0D1684 800D0A84 93AD002E */ lbu $t5, 0x2e($sp) -/* 0D1688 800D0A88 91CF0064 */ lbu $t7, 0x64($t6) -/* 0D168C 800D0A8C 01AF082A */ slt $at, $t5, $t7 -/* 0D1690 800D0A90 1420FFCC */ bnez $at, .L800D09C4 -/* 0D1694 800D0A94 00000000 */ nop -.L800D0A98: -/* 0D1698 800D0A98 8FB90160 */ lw $t9, 0x160($sp) -/* 0D169C 800D0A9C 93B8002E */ lbu $t8, 0x2e($sp) -/* 0D16A0 800D0AA0 93280064 */ lbu $t0, 0x64($t9) -/* 0D16A4 800D0AA4 0308082A */ slt $at, $t8, $t0 -/* 0D16A8 800D0AA8 14200003 */ bnez $at, .L800D0AB8 -/* 0D16AC 800D0AAC 00000000 */ nop -/* 0D16B0 800D0AB0 10000023 */ b .L800D0B40 -/* 0D16B4 800D0AB4 24020003 */ li $v0, 3 -.L800D0AB8: -/* 0D16B8 800D0AB8 AFA00034 */ sw $zero, 0x34($sp) -/* 0D16BC 800D0ABC A7A00038 */ sh $zero, 0x38($sp) -/* 0D16C0 800D0AC0 A7A0003A */ sh $zero, 0x3a($sp) -/* 0D16C4 800D0AC4 A7A0003E */ sh $zero, 0x3e($sp) -/* 0D16C8 800D0AC8 AFA00158 */ sw $zero, 0x158($sp) -.L800D0ACC: -/* 0D16CC 800D0ACC 8FAA0158 */ lw $t2, 0x158($sp) -/* 0D16D0 800D0AD0 03AA4821 */ addu $t1, $sp, $t2 -/* 0D16D4 800D0AD4 A1200044 */ sb $zero, 0x44($t1) -/* 0D16D8 800D0AD8 8FAC0158 */ lw $t4, 0x158($sp) -/* 0D16DC 800D0ADC 258B0001 */ addiu $t3, $t4, 1 -/* 0D16E0 800D0AE0 29610010 */ slti $at, $t3, 0x10 -/* 0D16E4 800D0AE4 1420FFF9 */ bnez $at, .L800D0ACC -/* 0D16E8 800D0AE8 AFAB0158 */ sw $t3, 0x158($sp) -/* 0D16EC 800D0AEC AFA00158 */ sw $zero, 0x158($sp) -.L800D0AF0: -/* 0D16F0 800D0AF0 8FAE0158 */ lw $t6, 0x158($sp) -/* 0D16F4 800D0AF4 03AE6821 */ addu $t5, $sp, $t6 -/* 0D16F8 800D0AF8 A1A00040 */ sb $zero, 0x40($t5) -/* 0D16FC 800D0AFC 8FAF0158 */ lw $t7, 0x158($sp) -/* 0D1700 800D0B00 25F90001 */ addiu $t9, $t7, 1 -/* 0D1704 800D0B04 2B210004 */ slti $at, $t9, 4 -/* 0D1708 800D0B08 1420FFF9 */ bnez $at, .L800D0AF0 -/* 0D170C 800D0B0C AFB90158 */ sw $t9, 0x158($sp) -/* 0D1710 800D0B10 8FB80160 */ lw $t8, 0x160($sp) -/* 0D1714 800D0B14 A3A0003C */ sb $zero, 0x3c($sp) -/* 0D1718 800D0B18 8FAA015C */ lw $t2, 0x15c($sp) -/* 0D171C 800D0B1C 8F08005C */ lw $t0, 0x5c($t8) -/* 0D1720 800D0B20 8F050008 */ lw $a1, 8($t8) -/* 0D1724 800D0B24 8F040004 */ lw $a0, 4($t8) -/* 0D1728 800D0B28 AFA00010 */ sw $zero, 0x10($sp) -/* 0D172C 800D0B2C 27A70034 */ addiu $a3, $sp, 0x34 -/* 0D1730 800D0B30 0C03363C */ jal __osContRamWrite -/* 0D1734 800D0B34 010A3021 */ addu $a2, $t0, $t2 -/* 0D1738 800D0B38 AFA20154 */ sw $v0, 0x154($sp) -/* 0D173C 800D0B3C 8FA20154 */ lw $v0, 0x154($sp) -.L800D0B40: -/* 0D1740 800D0B40 8FBF0024 */ lw $ra, 0x24($sp) -/* 0D1744 800D0B44 27BD0160 */ addiu $sp, $sp, 0x160 -/* 0D1748 800D0B48 03E00008 */ jr $ra -/* 0D174C 800D0B4C 00000000 */ nop - diff --git a/lib/src/os/osPfsDeleteFile.c b/lib/src/os/osPfsDeleteFile.c new file mode 100644 index 00000000..49e28cf3 --- /dev/null +++ b/lib/src/os/osPfsDeleteFile.c @@ -0,0 +1,134 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800D0870 */ + +#include "libultra_internal.h" +#include "controller.h" + +s32 osPfsDeleteFile(OSPfs *pfs, u16 company_code, u32 game_code, u8 *game_name, + u8 *ext_name) +{ + + s32 file_no; + int k; + s32 ret; + __OSInode inode; + __OSDir dir; + u16 sum; + __OSInodeUnit last_page; + u8 startpage; + u8 bank; + sum = 0; + if (company_code == 0 || game_code == 0) + return PFS_ERR_INVALID; + PFS_CHECK_STATUS; + PFS_CHECK_ID; + SET_ACTIVEBANK_TO_ZERO; + ERRCK(osPfsFindFile(pfs, company_code, game_code, game_name, ext_name, &file_no)); + + if (file_no == -1) + return PFS_ERR_INVALID; + ERRCK(__osContRamRead(pfs->queue, pfs->channel, pfs->dir_table + file_no, (u8*)&dir)); + + startpage = dir.start_page.inode_t.page; + + for (bank = dir.start_page.inode_t.bank; bank < pfs->banks;) + { + ERRCK(__osPfsRWInode(pfs, &inode, OS_READ, bank)); + ERRCK(__osPfsReleasePages(pfs, &inode, startpage, &sum, bank, &last_page, 1)); //TODO: magic constant + ERRCK(__osPfsRWInode(pfs, &inode, OS_WRITE, bank)); + if (last_page.ipage == 1) + break; + bank = last_page.inode_t.bank; + startpage = last_page.inode_t.page; + } + + if (bank >= pfs->banks) + return PFS_ERR_INCONSISTENT; + + dir.game_code = 0; + dir.company_code = 0; + dir.start_page.ipage = 0; + dir.data_sum = 0; + for (k = 0; k < ARRLEN(dir.game_name); k++) + { + dir.game_name[k] = 0; + } + for (k = 0; k < ARRLEN(dir.ext_name); k++) + { + dir.ext_name[k] = 0; + } + dir.status = DIR_STATUS_EMPTY; + ret = __osContRamWrite(pfs->queue, pfs->channel, pfs->dir_table + file_no, (u8*)&dir, FALSE); + + return ret; +} +s32 __osPfsReleasePages(OSPfs *pfs, __OSInode *inode, u8 start_page, u16 *sum, u8 bank, __OSInodeUnit *last_page, int flag) +{ + __OSInodeUnit next_page; + __OSInodeUnit old_page; + s32 ret; + int offset; + ret = 0; + next_page = inode->inode_page[start_page]; + if (next_page.ipage != 1) + { + if (next_page.inode_t.bank > 0) + offset = 1; + else + offset = pfs->inode_start_page; + } + else + { + if (bank > 0) + offset = 1; + else + offset = pfs->inode_start_page; + } + if (next_page.inode_t.page < offset && next_page.ipage != 1) + return PFS_ERR_INCONSISTENT; + *last_page = next_page; + if (flag == 1) //TODO: magic number + inode->inode_page[start_page].ipage = PFS_PAGE_NOT_USED; + + ERRCK(__osBlockSum(pfs, start_page, sum, bank)); + if (next_page.ipage == 1) + return 0; + while (next_page.ipage >= pfs->inode_start_page) + { + old_page = next_page; + next_page = inode->inode_page[next_page.inode_t.page]; + inode->inode_page[old_page.inode_t.page].ipage = PFS_PAGE_NOT_USED; + + ERRCK(__osBlockSum(pfs, old_page.inode_t.page, sum, bank)); + if (next_page.inode_t.bank != bank) + break; + } + //Removed the second check from libreultra to match + if (next_page.ipage >= pfs->inode_start_page /* && next_page.inode_t.bank == bank */) + inode->inode_page[next_page.inode_t.page].ipage = PFS_PAGE_NOT_USED; + *last_page = next_page; + return 0; +} +s32 __osBlockSum(OSPfs *pfs, u8 page_no, u16 *sum, u8 bank) +{ + int i; + s32 ret; + u8 data[32]; + ret = 0; + pfs->activebank = bank; + ERRCK(__osPfsSelectBank(pfs)); + for (i = 0; i < PFS_ONE_PAGE; i++) + { + ret = __osContRamRead(pfs->queue, pfs->channel, page_no * PFS_ONE_PAGE + i, data); + if (ret != 0) + { + pfs->activebank = 0; + __osPfsSelectBank(pfs); + return ret; + } + *sum = *sum + __osSumcalc(data, sizeof(data)); + } + pfs->activebank = 0; + ret = __osPfsSelectBank(pfs); + return ret; +} diff --git a/lib/src/os/unknown_0D1180.c b/lib/src/os/osPfsFileState.c similarity index 90% rename from lib/src/os/unknown_0D1180.c rename to lib/src/os/osPfsFileState.c index 70bdad7e..7bb32b4a 100644 --- a/lib/src/os/unknown_0D1180.c +++ b/lib/src/os/osPfsFileState.c @@ -61,6 +61,3 @@ s32 osPfsFileState(OSPfs *pfs, s32 file_no, OSPfsState *state) state->ext_name[j] = dir.ext_name[j]; return 0; } -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D1180/osPfsDeleteFile.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D1180/__osPfsReleasePages.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D1180/__osBlockSum.s")