mirror of
https://github.com/izzy2lost/Diddy-Kong-Racing.git
synced 2026-06-19 01:16:26 -07:00
Match osPfsAllocateFile from libreultra
This commit is contained in:
@@ -1,57 +0,0 @@
|
||||
glabel __osClearPage
|
||||
/* 0D2328 800D1728 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* 0D232C 800D172C AFA40028 */ sw $a0, 0x28($sp)
|
||||
/* 0D2330 800D1730 AFA70034 */ sw $a3, 0x34($sp)
|
||||
/* 0D2334 800D1734 93AE0037 */ lbu $t6, 0x37($sp)
|
||||
/* 0D2338 800D1738 8FAF0028 */ lw $t7, 0x28($sp)
|
||||
/* 0D233C 800D173C AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* 0D2340 800D1740 AFA5002C */ sw $a1, 0x2c($sp)
|
||||
/* 0D2344 800D1744 AFA60030 */ sw $a2, 0x30($sp)
|
||||
/* 0D2348 800D1748 AFA00020 */ sw $zero, 0x20($sp)
|
||||
/* 0D234C 800D174C A1EE0065 */ sb $t6, 0x65($t7)
|
||||
/* 0D2350 800D1750 0C0357F7 */ jal __osPfsSelectBank
|
||||
/* 0D2354 800D1754 8FA40028 */ lw $a0, 0x28($sp)
|
||||
/* 0D2358 800D1758 AFA20020 */ sw $v0, 0x20($sp)
|
||||
/* 0D235C 800D175C 8FB80020 */ lw $t8, 0x20($sp)
|
||||
/* 0D2360 800D1760 13000003 */ beqz $t8, .L800D1770
|
||||
/* 0D2364 800D1764 00000000 */ nop
|
||||
/* 0D2368 800D1768 1000001B */ b .L800D17D8
|
||||
/* 0D236C 800D176C 03001025 */ move $v0, $t8
|
||||
.L800D1770:
|
||||
/* 0D2370 800D1770 AFA00024 */ sw $zero, 0x24($sp)
|
||||
.L800D1774:
|
||||
/* 0D2374 800D1774 8FB90028 */ lw $t9, 0x28($sp)
|
||||
/* 0D2378 800D1778 8FA8002C */ lw $t0, 0x2c($sp)
|
||||
/* 0D237C 800D177C 8FAA0024 */ lw $t2, 0x24($sp)
|
||||
/* 0D2380 800D1780 8F240004 */ lw $a0, 4($t9)
|
||||
/* 0D2384 800D1784 8F250008 */ lw $a1, 8($t9)
|
||||
/* 0D2388 800D1788 000848C0 */ sll $t1, $t0, 3
|
||||
/* 0D238C 800D178C AFA00010 */ sw $zero, 0x10($sp)
|
||||
/* 0D2390 800D1790 8FA70030 */ lw $a3, 0x30($sp)
|
||||
/* 0D2394 800D1794 0C03363C */ jal __osContRamWrite
|
||||
/* 0D2398 800D1798 012A3021 */ addu $a2, $t1, $t2
|
||||
/* 0D239C 800D179C AFA20020 */ sw $v0, 0x20($sp)
|
||||
/* 0D23A0 800D17A0 8FAB0020 */ lw $t3, 0x20($sp)
|
||||
/* 0D23A4 800D17A4 15600006 */ bnez $t3, .L800D17C0
|
||||
/* 0D23A8 800D17A8 00000000 */ nop
|
||||
/* 0D23AC 800D17AC 8FAC0024 */ lw $t4, 0x24($sp)
|
||||
/* 0D23B0 800D17B0 258D0001 */ addiu $t5, $t4, 1
|
||||
/* 0D23B4 800D17B4 29A10008 */ slti $at, $t5, 8
|
||||
/* 0D23B8 800D17B8 1420FFEE */ bnez $at, .L800D1774
|
||||
/* 0D23BC 800D17BC AFAD0024 */ sw $t5, 0x24($sp)
|
||||
.L800D17C0:
|
||||
/* 0D23C0 800D17C0 8FAE0028 */ lw $t6, 0x28($sp)
|
||||
/* 0D23C4 800D17C4 A1C00065 */ sb $zero, 0x65($t6)
|
||||
/* 0D23C8 800D17C8 0C0357F7 */ jal __osPfsSelectBank
|
||||
/* 0D23CC 800D17CC 8FA40028 */ lw $a0, 0x28($sp)
|
||||
/* 0D23D0 800D17D0 AFA20020 */ sw $v0, 0x20($sp)
|
||||
/* 0D23D4 800D17D4 8FA20020 */ lw $v0, 0x20($sp)
|
||||
.L800D17D8:
|
||||
/* 0D23D8 800D17D8 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* 0D23DC 800D17DC 27BD0028 */ addiu $sp, $sp, 0x28
|
||||
/* 0D23E0 800D17E0 03E00008 */ jr $ra
|
||||
/* 0D23E4 800D17E4 00000000 */ nop
|
||||
|
||||
/* 0D23E8 800D17E8 00000000 */ nop
|
||||
/* 0D23EC 800D17EC 00000000 */ nop
|
||||
|
||||
@@ -1,167 +0,0 @@
|
||||
glabel __osPfsDeclearPage
|
||||
/* 0D20C4 800D14C4 27BDFFB0 */ addiu $sp, $sp, -0x50
|
||||
/* 0D20C8 800D14C8 93AE0063 */ lbu $t6, 0x63($sp)
|
||||
/* 0D20CC 800D14CC AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 0D20D0 800D14D0 AFA40050 */ sw $a0, 0x50($sp)
|
||||
/* 0D20D4 800D14D4 AFA50054 */ sw $a1, 0x54($sp)
|
||||
/* 0D20D8 800D14D8 AFA60058 */ sw $a2, 0x58($sp)
|
||||
/* 0D20DC 800D14DC AFA7005C */ sw $a3, 0x5c($sp)
|
||||
/* 0D20E0 800D14E0 19C00004 */ blez $t6, .L800D14F4
|
||||
/* 0D20E4 800D14E4 AFA0001C */ sw $zero, 0x1c($sp)
|
||||
/* 0D20E8 800D14E8 240F0001 */ li $t7, 1
|
||||
/* 0D20EC 800D14EC 10000004 */ b .L800D1500
|
||||
/* 0D20F0 800D14F0 AFAF0018 */ sw $t7, 0x18($sp)
|
||||
.L800D14F4:
|
||||
/* 0D20F4 800D14F4 8FB80050 */ lw $t8, 0x50($sp)
|
||||
/* 0D20F8 800D14F8 8F190060 */ lw $t9, 0x60($t8)
|
||||
/* 0D20FC 800D14FC AFB90018 */ sw $t9, 0x18($sp)
|
||||
.L800D1500:
|
||||
/* 0D2100 800D1500 8FA80018 */ lw $t0, 0x18($sp)
|
||||
/* 0D2104 800D1504 29010080 */ slti $at, $t0, 0x80
|
||||
/* 0D2108 800D1508 1020000E */ beqz $at, .L800D1544
|
||||
/* 0D210C 800D150C AFA8004C */ sw $t0, 0x4c($sp)
|
||||
.L800D1510:
|
||||
/* 0D2110 800D1510 8FAA004C */ lw $t2, 0x4c($sp)
|
||||
/* 0D2114 800D1514 8FA90054 */ lw $t1, 0x54($sp)
|
||||
/* 0D2118 800D1518 24010003 */ li $at, 3
|
||||
/* 0D211C 800D151C 000A5840 */ sll $t3, $t2, 1
|
||||
/* 0D2120 800D1520 012B6021 */ addu $t4, $t1, $t3
|
||||
/* 0D2124 800D1524 958D0000 */ lhu $t5, ($t4)
|
||||
/* 0D2128 800D1528 11A10006 */ beq $t5, $at, .L800D1544
|
||||
/* 0D212C 800D152C 00000000 */ nop
|
||||
/* 0D2130 800D1530 8FAE004C */ lw $t6, 0x4c($sp)
|
||||
/* 0D2134 800D1534 25CF0001 */ addiu $t7, $t6, 1
|
||||
/* 0D2138 800D1538 29E10080 */ slti $at, $t7, 0x80
|
||||
/* 0D213C 800D153C 1420FFF4 */ bnez $at, .L800D1510
|
||||
/* 0D2140 800D1540 AFAF004C */ sw $t7, 0x4c($sp)
|
||||
.L800D1544:
|
||||
/* 0D2144 800D1544 8FB8004C */ lw $t8, 0x4c($sp)
|
||||
/* 0D2148 800D1548 24010080 */ li $at, 128
|
||||
/* 0D214C 800D154C 17010006 */ bne $t8, $at, .L800D1568
|
||||
/* 0D2150 800D1550 00000000 */ nop
|
||||
/* 0D2154 800D1554 8FA8005C */ lw $t0, 0x5c($sp)
|
||||
/* 0D2158 800D1558 2419FFFF */ li $t9, -1
|
||||
/* 0D215C 800D155C AD190000 */ sw $t9, ($t0)
|
||||
/* 0D2160 800D1560 1000006D */ b .L800D1718
|
||||
/* 0D2164 800D1564 8FA2001C */ lw $v0, 0x1c($sp)
|
||||
.L800D1568:
|
||||
/* 0D2168 800D1568 AFA00020 */ sw $zero, 0x20($sp)
|
||||
.L800D156C:
|
||||
/* 0D216C 800D156C 8FAA0020 */ lw $t2, 0x20($sp)
|
||||
/* 0D2170 800D1570 03AA4821 */ addu $t1, $sp, $t2
|
||||
/* 0D2174 800D1574 A1200024 */ sb $zero, 0x24($t1)
|
||||
/* 0D2178 800D1578 8FAB0020 */ lw $t3, 0x20($sp)
|
||||
/* 0D217C 800D157C 256C0001 */ addiu $t4, $t3, 1
|
||||
/* 0D2180 800D1580 29810020 */ slti $at, $t4, 0x20
|
||||
/* 0D2184 800D1584 1420FFF9 */ bnez $at, .L800D156C
|
||||
/* 0D2188 800D1588 AFAC0020 */ sw $t4, 0x20($sp)
|
||||
/* 0D218C 800D158C 8FAD004C */ lw $t5, 0x4c($sp)
|
||||
/* 0D2190 800D1590 8FAF0064 */ lw $t7, 0x64($sp)
|
||||
/* 0D2194 800D1594 240E0001 */ li $t6, 1
|
||||
/* 0D2198 800D1598 AFAD0048 */ sw $t5, 0x48($sp)
|
||||
/* 0D219C 800D159C ADEE0000 */ sw $t6, ($t7)
|
||||
/* 0D21A0 800D15A0 8FB8004C */ lw $t8, 0x4c($sp)
|
||||
/* 0D21A4 800D15A4 8FAA0064 */ lw $t2, 0x64($sp)
|
||||
/* 0D21A8 800D15A8 8FA80058 */ lw $t0, 0x58($sp)
|
||||
/* 0D21AC 800D15AC 27190001 */ addiu $t9, $t8, 1
|
||||
/* 0D21B0 800D15B0 AFB9004C */ sw $t9, 0x4c($sp)
|
||||
/* 0D21B4 800D15B4 AFB80044 */ sw $t8, 0x44($sp)
|
||||
/* 0D21B8 800D15B8 8D490000 */ lw $t1, ($t2)
|
||||
/* 0D21BC 800D15BC 0128082A */ slt $at, $t1, $t0
|
||||
/* 0D21C0 800D15C0 10200034 */ beqz $at, .L800D1694
|
||||
/* 0D21C4 800D15C4 2B210080 */ slti $at, $t9, 0x80
|
||||
/* 0D21C8 800D15C8 10200032 */ beqz $at, .L800D1694
|
||||
/* 0D21CC 800D15CC 00000000 */ nop
|
||||
.L800D15D0:
|
||||
/* 0D21D0 800D15D0 8FAC004C */ lw $t4, 0x4c($sp)
|
||||
/* 0D21D4 800D15D4 8FAB0054 */ lw $t3, 0x54($sp)
|
||||
/* 0D21D8 800D15D8 24010003 */ li $at, 3
|
||||
/* 0D21DC 800D15DC 000C6840 */ sll $t5, $t4, 1
|
||||
/* 0D21E0 800D15E0 016D7021 */ addu $t6, $t3, $t5
|
||||
/* 0D21E4 800D15E4 95CF0000 */ lhu $t7, ($t6)
|
||||
/* 0D21E8 800D15E8 15E1001D */ bne $t7, $at, .L800D1660
|
||||
/* 0D21EC 800D15EC 00000000 */ nop
|
||||
/* 0D21F0 800D15F0 8FAA0044 */ lw $t2, 0x44($sp)
|
||||
/* 0D21F4 800D15F4 93B80063 */ lbu $t8, 0x63($sp)
|
||||
/* 0D21F8 800D15F8 27A60024 */ addiu $a2, $sp, 0x24
|
||||
/* 0D21FC 800D15FC 000A4040 */ sll $t0, $t2, 1
|
||||
/* 0D2200 800D1600 01684821 */ addu $t1, $t3, $t0
|
||||
/* 0D2204 800D1604 A1380000 */ sb $t8, ($t1)
|
||||
/* 0D2208 800D1608 8FAD0044 */ lw $t5, 0x44($sp)
|
||||
/* 0D220C 800D160C 8FAC0054 */ lw $t4, 0x54($sp)
|
||||
/* 0D2210 800D1610 8FB9004C */ lw $t9, 0x4c($sp)
|
||||
/* 0D2214 800D1614 000D7040 */ sll $t6, $t5, 1
|
||||
/* 0D2218 800D1618 018E7821 */ addu $t7, $t4, $t6
|
||||
/* 0D221C 800D161C A1F90001 */ sb $t9, 1($t7)
|
||||
/* 0D2220 800D1620 93A70063 */ lbu $a3, 0x63($sp)
|
||||
/* 0D2224 800D1624 8FA50044 */ lw $a1, 0x44($sp)
|
||||
/* 0D2228 800D1628 0C0345CA */ jal __osClearPage
|
||||
/* 0D222C 800D162C 8FA40050 */ lw $a0, 0x50($sp)
|
||||
/* 0D2230 800D1630 AFA2001C */ sw $v0, 0x1c($sp)
|
||||
/* 0D2234 800D1634 8FAA001C */ lw $t2, 0x1c($sp)
|
||||
/* 0D2238 800D1638 11400003 */ beqz $t2, .L800D1648
|
||||
/* 0D223C 800D163C 00000000 */ nop
|
||||
/* 0D2240 800D1640 10000035 */ b .L800D1718
|
||||
/* 0D2244 800D1644 01401025 */ move $v0, $t2
|
||||
.L800D1648:
|
||||
/* 0D2248 800D1648 8FAB004C */ lw $t3, 0x4c($sp)
|
||||
/* 0D224C 800D164C 8FA80064 */ lw $t0, 0x64($sp)
|
||||
/* 0D2250 800D1650 AFAB0044 */ sw $t3, 0x44($sp)
|
||||
/* 0D2254 800D1654 8D180000 */ lw $t8, ($t0)
|
||||
/* 0D2258 800D1658 27090001 */ addiu $t1, $t8, 1
|
||||
/* 0D225C 800D165C AD090000 */ sw $t1, ($t0)
|
||||
.L800D1660:
|
||||
/* 0D2260 800D1660 8FAD004C */ lw $t5, 0x4c($sp)
|
||||
/* 0D2264 800D1664 8FB90064 */ lw $t9, 0x64($sp)
|
||||
/* 0D2268 800D1668 8FAE0058 */ lw $t6, 0x58($sp)
|
||||
/* 0D226C 800D166C 25AC0001 */ addiu $t4, $t5, 1
|
||||
/* 0D2270 800D1670 AFAC004C */ sw $t4, 0x4c($sp)
|
||||
/* 0D2274 800D1674 8F2F0000 */ lw $t7, ($t9)
|
||||
/* 0D2278 800D1678 01EE082A */ slt $at, $t7, $t6
|
||||
/* 0D227C 800D167C 10200005 */ beqz $at, .L800D1694
|
||||
/* 0D2280 800D1680 00000000 */ nop
|
||||
/* 0D2284 800D1684 8FAA004C */ lw $t2, 0x4c($sp)
|
||||
/* 0D2288 800D1688 29410080 */ slti $at, $t2, 0x80
|
||||
/* 0D228C 800D168C 1420FFD0 */ bnez $at, .L800D15D0
|
||||
/* 0D2290 800D1690 00000000 */ nop
|
||||
.L800D1694:
|
||||
/* 0D2294 800D1694 8FAB0048 */ lw $t3, 0x48($sp)
|
||||
/* 0D2298 800D1698 8FB8005C */ lw $t8, 0x5c($sp)
|
||||
/* 0D229C 800D169C 24010080 */ li $at, 128
|
||||
/* 0D22A0 800D16A0 AF0B0000 */ sw $t3, ($t8)
|
||||
/* 0D22A4 800D16A4 8FA9004C */ lw $t1, 0x4c($sp)
|
||||
/* 0D22A8 800D16A8 1521000C */ bne $t1, $at, .L800D16DC
|
||||
/* 0D22AC 800D16AC 00000000 */ nop
|
||||
/* 0D22B0 800D16B0 8FAD0064 */ lw $t5, 0x64($sp)
|
||||
/* 0D22B4 800D16B4 8FA80058 */ lw $t0, 0x58($sp)
|
||||
/* 0D22B8 800D16B8 8DAC0000 */ lw $t4, ($t5)
|
||||
/* 0D22BC 800D16BC 0188082A */ slt $at, $t4, $t0
|
||||
/* 0D22C0 800D16C0 10200006 */ beqz $at, .L800D16DC
|
||||
/* 0D22C4 800D16C4 00000000 */ nop
|
||||
/* 0D22C8 800D16C8 8FB90044 */ lw $t9, 0x44($sp)
|
||||
/* 0D22CC 800D16CC 8FAE0068 */ lw $t6, 0x68($sp)
|
||||
/* 0D22D0 800D16D0 ADD90000 */ sw $t9, ($t6)
|
||||
/* 0D22D4 800D16D4 10000010 */ b .L800D1718
|
||||
/* 0D22D8 800D16D8 8FA2001C */ lw $v0, 0x1c($sp)
|
||||
.L800D16DC:
|
||||
/* 0D22DC 800D16DC 8FAB0044 */ lw $t3, 0x44($sp)
|
||||
/* 0D22E0 800D16E0 8FAA0054 */ lw $t2, 0x54($sp)
|
||||
/* 0D22E4 800D16E4 240F0001 */ li $t7, 1
|
||||
/* 0D22E8 800D16E8 000BC040 */ sll $t8, $t3, 1
|
||||
/* 0D22EC 800D16EC 01584821 */ addu $t1, $t2, $t8
|
||||
/* 0D22F0 800D16F0 A52F0000 */ sh $t7, ($t1)
|
||||
/* 0D22F4 800D16F4 93A70063 */ lbu $a3, 0x63($sp)
|
||||
/* 0D22F8 800D16F8 8FA50044 */ lw $a1, 0x44($sp)
|
||||
/* 0D22FC 800D16FC 8FA40050 */ lw $a0, 0x50($sp)
|
||||
/* 0D2300 800D1700 0C0345CA */ jal __osClearPage
|
||||
/* 0D2304 800D1704 27A60024 */ addiu $a2, $sp, 0x24
|
||||
/* 0D2308 800D1708 8FAD0068 */ lw $t5, 0x68($sp)
|
||||
/* 0D230C 800D170C AFA2001C */ sw $v0, 0x1c($sp)
|
||||
/* 0D2310 800D1710 ADA00000 */ sw $zero, ($t5)
|
||||
/* 0D2314 800D1714 8FA2001C */ lw $v0, 0x1c($sp)
|
||||
.L800D1718:
|
||||
/* 0D2318 800D1718 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 0D231C 800D171C 27BD0050 */ addiu $sp, $sp, 0x50
|
||||
/* 0D2320 800D1720 03E00008 */ jr $ra
|
||||
/* 0D2324 800D1724 00000000 */ nop
|
||||
|
||||
@@ -1,318 +0,0 @@
|
||||
glabel osPfsAllocateFile
|
||||
/* 0D1C40 800D1040 27BDFD88 */ addiu $sp, $sp, -0x278
|
||||
/* 0D1C44 800D1044 AFA5027C */ sw $a1, 0x27c($sp)
|
||||
/* 0D1C48 800D1048 97AE027E */ lhu $t6, 0x27e($sp)
|
||||
/* 0D1C4C 800D104C AFBF0024 */ sw $ra, 0x24($sp)
|
||||
/* 0D1C50 800D1050 AFA40278 */ sw $a0, 0x278($sp)
|
||||
/* 0D1C54 800D1054 AFA60280 */ sw $a2, 0x280($sp)
|
||||
/* 0D1C58 800D1058 AFA70284 */ sw $a3, 0x284($sp)
|
||||
/* 0D1C5C 800D105C AFA00268 */ sw $zero, 0x268($sp)
|
||||
/* 0D1C60 800D1060 AFA00260 */ sw $zero, 0x260($sp)
|
||||
/* 0D1C64 800D1064 A3A0003A */ sb $zero, 0x3a($sp)
|
||||
/* 0D1C68 800D1068 11C00004 */ beqz $t6, .L800D107C
|
||||
/* 0D1C6C 800D106C AFA00034 */ sw $zero, 0x34($sp)
|
||||
/* 0D1C70 800D1070 8FAF0280 */ lw $t7, 0x280($sp)
|
||||
/* 0D1C74 800D1074 15E00003 */ bnez $t7, .L800D1084
|
||||
/* 0D1C78 800D1078 00000000 */ nop
|
||||
.L800D107C:
|
||||
/* 0D1C7C 800D107C 1000010D */ b .L800D14B4
|
||||
/* 0D1C80 800D1080 24020005 */ li $v0, 5
|
||||
.L800D1084:
|
||||
/* 0D1C84 800D1084 8FB8028C */ lw $t8, 0x28c($sp)
|
||||
/* 0D1C88 800D1088 8FA90278 */ lw $t1, 0x278($sp)
|
||||
/* 0D1C8C 800D108C 271900FF */ addiu $t9, $t8, 0xff
|
||||
/* 0D1C90 800D1090 07210003 */ bgez $t9, .L800D10A0
|
||||
/* 0D1C94 800D1094 00194203 */ sra $t0, $t9, 8
|
||||
/* 0D1C98 800D1098 272100FF */ addiu $at, $t9, 0xff
|
||||
/* 0D1C9C 800D109C 00014203 */ sra $t0, $at, 8
|
||||
.L800D10A0:
|
||||
/* 0D1CA0 800D10A0 AFA8025C */ sw $t0, 0x25c($sp)
|
||||
/* 0D1CA4 800D10A4 8D2A0000 */ lw $t2, ($t1)
|
||||
/* 0D1CA8 800D10A8 314B0001 */ andi $t3, $t2, 1
|
||||
/* 0D1CAC 800D10AC 15600003 */ bnez $t3, .L800D10BC
|
||||
/* 0D1CB0 800D10B0 00000000 */ nop
|
||||
/* 0D1CB4 800D10B4 100000FF */ b .L800D14B4
|
||||
/* 0D1CB8 800D10B8 24020005 */ li $v0, 5
|
||||
.L800D10BC:
|
||||
/* 0D1CBC 800D10BC 0C0356F0 */ jal __osCheckId
|
||||
/* 0D1CC0 800D10C0 8FA40278 */ lw $a0, 0x278($sp)
|
||||
/* 0D1CC4 800D10C4 24010002 */ li $at, 2
|
||||
/* 0D1CC8 800D10C8 14410003 */ bne $v0, $at, .L800D10D8
|
||||
/* 0D1CCC 800D10CC 00000000 */ nop
|
||||
/* 0D1CD0 800D10D0 100000F8 */ b .L800D14B4
|
||||
/* 0D1CD4 800D10D4 24020002 */ li $v0, 2
|
||||
.L800D10D8:
|
||||
/* 0D1CD8 800D10D8 8FAC0288 */ lw $t4, 0x288($sp)
|
||||
/* 0D1CDC 800D10DC 8FAD0290 */ lw $t5, 0x290($sp)
|
||||
/* 0D1CE0 800D10E0 8FA40278 */ lw $a0, 0x278($sp)
|
||||
/* 0D1CE4 800D10E4 97A5027E */ lhu $a1, 0x27e($sp)
|
||||
/* 0D1CE8 800D10E8 8FA60280 */ lw $a2, 0x280($sp)
|
||||
/* 0D1CEC 800D10EC 8FA70284 */ lw $a3, 0x284($sp)
|
||||
/* 0D1CF0 800D10F0 AFAC0010 */ sw $t4, 0x10($sp)
|
||||
/* 0D1CF4 800D10F4 0C0343A0 */ jal osPfsFindFile
|
||||
/* 0D1CF8 800D10F8 AFAD0014 */ sw $t5, 0x14($sp)
|
||||
/* 0D1CFC 800D10FC AFA20260 */ sw $v0, 0x260($sp)
|
||||
/* 0D1D00 800D1100 8FAE0260 */ lw $t6, 0x260($sp)
|
||||
/* 0D1D04 800D1104 11C00005 */ beqz $t6, .L800D111C
|
||||
/* 0D1D08 800D1108 24010005 */ li $at, 5
|
||||
/* 0D1D0C 800D110C 11C10003 */ beq $t6, $at, .L800D111C
|
||||
/* 0D1D10 800D1110 00000000 */ nop
|
||||
/* 0D1D14 800D1114 100000E7 */ b .L800D14B4
|
||||
/* 0D1D18 800D1118 01C01025 */ move $v0, $t6
|
||||
.L800D111C:
|
||||
/* 0D1D1C 800D111C 8FAF0290 */ lw $t7, 0x290($sp)
|
||||
/* 0D1D20 800D1120 2401FFFF */ li $at, -1
|
||||
/* 0D1D24 800D1124 8DF80000 */ lw $t8, ($t7)
|
||||
/* 0D1D28 800D1128 13010003 */ beq $t8, $at, .L800D1138
|
||||
/* 0D1D2C 800D112C 00000000 */ nop
|
||||
/* 0D1D30 800D1130 100000E0 */ b .L800D14B4
|
||||
/* 0D1D34 800D1134 24020009 */ li $v0, 9
|
||||
.L800D1138:
|
||||
/* 0D1D38 800D1138 8FA40278 */ lw $a0, 0x278($sp)
|
||||
/* 0D1D3C 800D113C 0C033CF8 */ jal osPfsFreeBlocks
|
||||
/* 0D1D40 800D1140 27A50030 */ addiu $a1, $sp, 0x30
|
||||
/* 0D1D44 800D1144 8FB9028C */ lw $t9, 0x28c($sp)
|
||||
/* 0D1D48 800D1148 8FA80030 */ lw $t0, 0x30($sp)
|
||||
/* 0D1D4C 800D114C AFA20260 */ sw $v0, 0x260($sp)
|
||||
/* 0D1D50 800D1150 0119082A */ slt $at, $t0, $t9
|
||||
/* 0D1D54 800D1154 10200003 */ beqz $at, .L800D1164
|
||||
/* 0D1D58 800D1158 00000000 */ nop
|
||||
/* 0D1D5C 800D115C 100000D5 */ b .L800D14B4
|
||||
/* 0D1D60 800D1160 24020007 */ li $v0, 7
|
||||
.L800D1164:
|
||||
/* 0D1D64 800D1164 8FA9025C */ lw $t1, 0x25c($sp)
|
||||
/* 0D1D68 800D1168 112000D1 */ beqz $t1, .L800D14B0
|
||||
/* 0D1D6C 800D116C 00000000 */ nop
|
||||
/* 0D1D70 800D1170 8FAA0290 */ lw $t2, 0x290($sp)
|
||||
/* 0D1D74 800D1174 8FA40278 */ lw $a0, 0x278($sp)
|
||||
/* 0D1D78 800D1178 00002825 */ move $a1, $zero
|
||||
/* 0D1D7C 800D117C 00003025 */ move $a2, $zero
|
||||
/* 0D1D80 800D1180 00003825 */ move $a3, $zero
|
||||
/* 0D1D84 800D1184 AFA00010 */ sw $zero, 0x10($sp)
|
||||
/* 0D1D88 800D1188 0C0343A0 */ jal osPfsFindFile
|
||||
/* 0D1D8C 800D118C AFAA0014 */ sw $t2, 0x14($sp)
|
||||
/* 0D1D90 800D1190 AFA20260 */ sw $v0, 0x260($sp)
|
||||
/* 0D1D94 800D1194 8FAB0260 */ lw $t3, 0x260($sp)
|
||||
/* 0D1D98 800D1198 11600005 */ beqz $t3, .L800D11B0
|
||||
/* 0D1D9C 800D119C 24010005 */ li $at, 5
|
||||
/* 0D1DA0 800D11A0 11610003 */ beq $t3, $at, .L800D11B0
|
||||
/* 0D1DA4 800D11A4 00000000 */ nop
|
||||
/* 0D1DA8 800D11A8 100000C2 */ b .L800D14B4
|
||||
/* 0D1DAC 800D11AC 01601025 */ move $v0, $t3
|
||||
.L800D11B0:
|
||||
/* 0D1DB0 800D11B0 8FAC0290 */ lw $t4, 0x290($sp)
|
||||
/* 0D1DB4 800D11B4 2401FFFF */ li $at, -1
|
||||
/* 0D1DB8 800D11B8 8D8D0000 */ lw $t5, ($t4)
|
||||
/* 0D1DBC 800D11BC 15A10003 */ bne $t5, $at, .L800D11CC
|
||||
/* 0D1DC0 800D11C0 00000000 */ nop
|
||||
/* 0D1DC4 800D11C4 100000BB */ b .L800D14B4
|
||||
/* 0D1DC8 800D11C8 24020008 */ li $v0, 8
|
||||
.L800D11CC:
|
||||
/* 0D1DCC 800D11CC 8FAE0278 */ lw $t6, 0x278($sp)
|
||||
/* 0D1DD0 800D11D0 A3A0003B */ sb $zero, 0x3b($sp)
|
||||
/* 0D1DD4 800D11D4 91CF0064 */ lbu $t7, 0x64($t6)
|
||||
/* 0D1DD8 800D11D8 19E00062 */ blez $t7, .L800D1364
|
||||
/* 0D1DDC 800D11DC 00000000 */ nop
|
||||
.L800D11E0:
|
||||
/* 0D1DE0 800D11E0 8FA40278 */ lw $a0, 0x278($sp)
|
||||
/* 0D1DE4 800D11E4 27A5015C */ addiu $a1, $sp, 0x15c
|
||||
/* 0D1DE8 800D11E8 00003025 */ move $a2, $zero
|
||||
/* 0D1DEC 800D11EC 0C03572F */ jal __osPfsRWInode
|
||||
/* 0D1DF0 800D11F0 93A7003B */ lbu $a3, 0x3b($sp)
|
||||
/* 0D1DF4 800D11F4 AFA20260 */ sw $v0, 0x260($sp)
|
||||
/* 0D1DF8 800D11F8 8FB80260 */ lw $t8, 0x260($sp)
|
||||
/* 0D1DFC 800D11FC 13000003 */ beqz $t8, .L800D120C
|
||||
/* 0D1E00 800D1200 00000000 */ nop
|
||||
/* 0D1E04 800D1204 100000AB */ b .L800D14B4
|
||||
/* 0D1E08 800D1208 03001025 */ move $v0, $t8
|
||||
.L800D120C:
|
||||
/* 0D1E0C 800D120C 93B9003B */ lbu $t9, 0x3b($sp)
|
||||
/* 0D1E10 800D1210 27A80270 */ addiu $t0, $sp, 0x270
|
||||
/* 0D1E14 800D1214 27A9026C */ addiu $t1, $sp, 0x26c
|
||||
/* 0D1E18 800D1218 AFA90018 */ sw $t1, 0x18($sp)
|
||||
/* 0D1E1C 800D121C AFA80014 */ sw $t0, 0x14($sp)
|
||||
/* 0D1E20 800D1220 8FA40278 */ lw $a0, 0x278($sp)
|
||||
/* 0D1E24 800D1224 27A5015C */ addiu $a1, $sp, 0x15c
|
||||
/* 0D1E28 800D1228 8FA6025C */ lw $a2, 0x25c($sp)
|
||||
/* 0D1E2C 800D122C 27A70274 */ addiu $a3, $sp, 0x274
|
||||
/* 0D1E30 800D1230 0C034531 */ jal __osPfsDeclearPage
|
||||
/* 0D1E34 800D1234 AFB90010 */ sw $t9, 0x10($sp)
|
||||
/* 0D1E38 800D1238 AFA20260 */ sw $v0, 0x260($sp)
|
||||
/* 0D1E3C 800D123C 8FAA0260 */ lw $t2, 0x260($sp)
|
||||
/* 0D1E40 800D1240 11400003 */ beqz $t2, .L800D1250
|
||||
/* 0D1E44 800D1244 00000000 */ nop
|
||||
/* 0D1E48 800D1248 1000009A */ b .L800D14B4
|
||||
/* 0D1E4C 800D124C 01401025 */ move $v0, $t2
|
||||
.L800D1250:
|
||||
/* 0D1E50 800D1250 8FAB0274 */ lw $t3, 0x274($sp)
|
||||
/* 0D1E54 800D1254 2401FFFF */ li $at, -1
|
||||
/* 0D1E58 800D1258 11610039 */ beq $t3, $at, .L800D1340
|
||||
/* 0D1E5C 800D125C 00000000 */ nop
|
||||
/* 0D1E60 800D1260 8FAC0034 */ lw $t4, 0x34($sp)
|
||||
/* 0D1E64 800D1264 15800005 */ bnez $t4, .L800D127C
|
||||
/* 0D1E68 800D1268 00000000 */ nop
|
||||
/* 0D1E6C 800D126C 93AD003B */ lbu $t5, 0x3b($sp)
|
||||
/* 0D1E70 800D1270 A3AB002D */ sb $t3, 0x2d($sp)
|
||||
/* 0D1E74 800D1274 10000016 */ b .L800D12D0
|
||||
/* 0D1E78 800D1278 A3AD002C */ sb $t5, 0x2c($sp)
|
||||
.L800D127C:
|
||||
/* 0D1E7C 800D127C 8FAF0268 */ lw $t7, 0x268($sp)
|
||||
/* 0D1E80 800D1280 93AE003B */ lbu $t6, 0x3b($sp)
|
||||
/* 0D1E84 800D1284 27A5005C */ addiu $a1, $sp, 0x5c
|
||||
/* 0D1E88 800D1288 000FC040 */ sll $t8, $t7, 1
|
||||
/* 0D1E8C 800D128C 03B8C821 */ addu $t9, $sp, $t8
|
||||
/* 0D1E90 800D1290 A32E005C */ sb $t6, 0x5c($t9)
|
||||
/* 0D1E94 800D1294 8FA90268 */ lw $t1, 0x268($sp)
|
||||
/* 0D1E98 800D1298 8FA80274 */ lw $t0, 0x274($sp)
|
||||
/* 0D1E9C 800D129C 24060001 */ li $a2, 1
|
||||
/* 0D1EA0 800D12A0 00095040 */ sll $t2, $t1, 1
|
||||
/* 0D1EA4 800D12A4 03AA6021 */ addu $t4, $sp, $t2
|
||||
/* 0D1EA8 800D12A8 A188005D */ sb $t0, 0x5d($t4)
|
||||
/* 0D1EAC 800D12AC 93A7003A */ lbu $a3, 0x3a($sp)
|
||||
/* 0D1EB0 800D12B0 0C03572F */ jal __osPfsRWInode
|
||||
/* 0D1EB4 800D12B4 8FA40278 */ lw $a0, 0x278($sp)
|
||||
/* 0D1EB8 800D12B8 AFA20260 */ sw $v0, 0x260($sp)
|
||||
/* 0D1EBC 800D12BC 8FAB0260 */ lw $t3, 0x260($sp)
|
||||
/* 0D1EC0 800D12C0 11600003 */ beqz $t3, .L800D12D0
|
||||
/* 0D1EC4 800D12C4 00000000 */ nop
|
||||
/* 0D1EC8 800D12C8 1000007A */ b .L800D14B4
|
||||
/* 0D1ECC 800D12CC 01601025 */ move $v0, $t3
|
||||
.L800D12D0:
|
||||
/* 0D1ED0 800D12D0 AFA00264 */ sw $zero, 0x264($sp)
|
||||
.L800D12D4:
|
||||
/* 0D1ED4 800D12D4 8FAD0264 */ lw $t5, 0x264($sp)
|
||||
/* 0D1ED8 800D12D8 000D7840 */ sll $t7, $t5, 1
|
||||
/* 0D1EDC 800D12DC 03AF7021 */ addu $t6, $sp, $t7
|
||||
/* 0D1EE0 800D12E0 95CE015C */ lhu $t6, 0x15c($t6)
|
||||
/* 0D1EE4 800D12E4 03AFC021 */ addu $t8, $sp, $t7
|
||||
/* 0D1EE8 800D12E8 A70E005C */ sh $t6, 0x5c($t8)
|
||||
/* 0D1EEC 800D12EC 8FB90264 */ lw $t9, 0x264($sp)
|
||||
/* 0D1EF0 800D12F0 27290001 */ addiu $t1, $t9, 1
|
||||
/* 0D1EF4 800D12F4 29210080 */ slti $at, $t1, 0x80
|
||||
/* 0D1EF8 800D12F8 1420FFF6 */ bnez $at, .L800D12D4
|
||||
/* 0D1EFC 800D12FC AFA90264 */ sw $t1, 0x264($sp)
|
||||
/* 0D1F00 800D1300 8FAC0034 */ lw $t4, 0x34($sp)
|
||||
/* 0D1F04 800D1304 8FAD025C */ lw $t5, 0x25c($sp)
|
||||
/* 0D1F08 800D1308 8FAE0270 */ lw $t6, 0x270($sp)
|
||||
/* 0D1F0C 800D130C 8FA8026C */ lw $t0, 0x26c($sp)
|
||||
/* 0D1F10 800D1310 93AA003B */ lbu $t2, 0x3b($sp)
|
||||
/* 0D1F14 800D1314 258B0001 */ addiu $t3, $t4, 1
|
||||
/* 0D1F18 800D1318 01CD082A */ slt $at, $t6, $t5
|
||||
/* 0D1F1C 800D131C AFAB0034 */ sw $t3, 0x34($sp)
|
||||
/* 0D1F20 800D1320 AFA80268 */ sw $t0, 0x268($sp)
|
||||
/* 0D1F24 800D1324 10200004 */ beqz $at, .L800D1338
|
||||
/* 0D1F28 800D1328 A3AA003A */ sb $t2, 0x3a($sp)
|
||||
/* 0D1F2C 800D132C 01AE7823 */ subu $t7, $t5, $t6
|
||||
/* 0D1F30 800D1330 10000003 */ b .L800D1340
|
||||
/* 0D1F34 800D1334 AFAF025C */ sw $t7, 0x25c($sp)
|
||||
.L800D1338:
|
||||
/* 0D1F38 800D1338 1000000A */ b .L800D1364
|
||||
/* 0D1F3C 800D133C AFA0025C */ sw $zero, 0x25c($sp)
|
||||
.L800D1340:
|
||||
/* 0D1F40 800D1340 93B8003B */ lbu $t8, 0x3b($sp)
|
||||
/* 0D1F44 800D1344 8FA80278 */ lw $t0, 0x278($sp)
|
||||
/* 0D1F48 800D1348 27190001 */ addiu $t9, $t8, 1
|
||||
/* 0D1F4C 800D134C A3B9003B */ sb $t9, 0x3b($sp)
|
||||
/* 0D1F50 800D1350 910A0064 */ lbu $t2, 0x64($t0)
|
||||
/* 0D1F54 800D1354 332900FF */ andi $t1, $t9, 0xff
|
||||
/* 0D1F58 800D1358 012A082A */ slt $at, $t1, $t2
|
||||
/* 0D1F5C 800D135C 1420FFA0 */ bnez $at, .L800D11E0
|
||||
/* 0D1F60 800D1360 00000000 */ nop
|
||||
.L800D1364:
|
||||
/* 0D1F64 800D1364 8FAC025C */ lw $t4, 0x25c($sp)
|
||||
/* 0D1F68 800D1368 1D800005 */ bgtz $t4, .L800D1380
|
||||
/* 0D1F6C 800D136C 00000000 */ nop
|
||||
/* 0D1F70 800D1370 8FAB0274 */ lw $t3, 0x274($sp)
|
||||
/* 0D1F74 800D1374 2401FFFF */ li $at, -1
|
||||
/* 0D1F78 800D1378 15610003 */ bne $t3, $at, .L800D1388
|
||||
/* 0D1F7C 800D137C 00000000 */ nop
|
||||
.L800D1380:
|
||||
/* 0D1F80 800D1380 1000004C */ b .L800D14B4
|
||||
/* 0D1F84 800D1384 24020003 */ li $v0, 3
|
||||
.L800D1388:
|
||||
/* 0D1F88 800D1388 8FAE0268 */ lw $t6, 0x268($sp)
|
||||
/* 0D1F8C 800D138C 93AD003B */ lbu $t5, 0x3b($sp)
|
||||
/* 0D1F90 800D1390 27A5005C */ addiu $a1, $sp, 0x5c
|
||||
/* 0D1F94 800D1394 000E7840 */ sll $t7, $t6, 1
|
||||
/* 0D1F98 800D1398 03AFC021 */ addu $t8, $sp, $t7
|
||||
/* 0D1F9C 800D139C A30D005C */ sb $t5, 0x5c($t8)
|
||||
/* 0D1FA0 800D13A0 8FA80268 */ lw $t0, 0x268($sp)
|
||||
/* 0D1FA4 800D13A4 8FB90274 */ lw $t9, 0x274($sp)
|
||||
/* 0D1FA8 800D13A8 24060001 */ li $a2, 1
|
||||
/* 0D1FAC 800D13AC 00084840 */ sll $t1, $t0, 1
|
||||
/* 0D1FB0 800D13B0 03A95021 */ addu $t2, $sp, $t1
|
||||
/* 0D1FB4 800D13B4 A159005D */ sb $t9, 0x5d($t2)
|
||||
/* 0D1FB8 800D13B8 93A7003A */ lbu $a3, 0x3a($sp)
|
||||
/* 0D1FBC 800D13BC 0C03572F */ jal __osPfsRWInode
|
||||
/* 0D1FC0 800D13C0 8FA40278 */ lw $a0, 0x278($sp)
|
||||
/* 0D1FC4 800D13C4 AFA20260 */ sw $v0, 0x260($sp)
|
||||
/* 0D1FC8 800D13C8 8FAC0260 */ lw $t4, 0x260($sp)
|
||||
/* 0D1FCC 800D13CC 11800003 */ beqz $t4, .L800D13DC
|
||||
/* 0D1FD0 800D13D0 00000000 */ nop
|
||||
/* 0D1FD4 800D13D4 10000037 */ b .L800D14B4
|
||||
/* 0D1FD8 800D13D8 01801025 */ move $v0, $t4
|
||||
.L800D13DC:
|
||||
/* 0D1FDC 800D13DC 97AB002C */ lhu $t3, 0x2c($sp)
|
||||
/* 0D1FE0 800D13E0 97AE027E */ lhu $t6, 0x27e($sp)
|
||||
/* 0D1FE4 800D13E4 8FAD0280 */ lw $t5, 0x280($sp)
|
||||
/* 0D1FE8 800D13E8 A7A00046 */ sh $zero, 0x46($sp)
|
||||
/* 0D1FEC 800D13EC AFA00264 */ sw $zero, 0x264($sp)
|
||||
/* 0D1FF0 800D13F0 A7AB0042 */ sh $t3, 0x42($sp)
|
||||
/* 0D1FF4 800D13F4 A7AE0040 */ sh $t6, 0x40($sp)
|
||||
/* 0D1FF8 800D13F8 AFAD003C */ sw $t5, 0x3c($sp)
|
||||
.L800D13FC:
|
||||
/* 0D1FFC 800D13FC 8FAF0284 */ lw $t7, 0x284($sp)
|
||||
/* 0D2000 800D1400 8FA80264 */ lw $t0, 0x264($sp)
|
||||
/* 0D2004 800D1404 91F80000 */ lbu $t8, ($t7)
|
||||
/* 0D2008 800D1408 03A8C821 */ addu $t9, $sp, $t0
|
||||
/* 0D200C 800D140C A338004C */ sb $t8, 0x4c($t9)
|
||||
/* 0D2010 800D1410 8FAC0264 */ lw $t4, 0x264($sp)
|
||||
/* 0D2014 800D1414 8FA90284 */ lw $t1, 0x284($sp)
|
||||
/* 0D2018 800D1418 258B0001 */ addiu $t3, $t4, 1
|
||||
/* 0D201C 800D141C 29610010 */ slti $at, $t3, 0x10
|
||||
/* 0D2020 800D1420 252A0001 */ addiu $t2, $t1, 1
|
||||
/* 0D2024 800D1424 AFAB0264 */ sw $t3, 0x264($sp)
|
||||
/* 0D2028 800D1428 1420FFF4 */ bnez $at, .L800D13FC
|
||||
/* 0D202C 800D142C AFAA0284 */ sw $t2, 0x284($sp)
|
||||
/* 0D2030 800D1430 AFA00264 */ sw $zero, 0x264($sp)
|
||||
.L800D1434:
|
||||
/* 0D2034 800D1434 8FAE0288 */ lw $t6, 0x288($sp)
|
||||
/* 0D2038 800D1438 8FAF0264 */ lw $t7, 0x264($sp)
|
||||
/* 0D203C 800D143C 91CD0000 */ lbu $t5, ($t6)
|
||||
/* 0D2040 800D1440 03AFC021 */ addu $t8, $sp, $t7
|
||||
/* 0D2044 800D1444 A30D0048 */ sb $t5, 0x48($t8)
|
||||
/* 0D2048 800D1448 8FA90264 */ lw $t1, 0x264($sp)
|
||||
/* 0D204C 800D144C 8FA80288 */ lw $t0, 0x288($sp)
|
||||
/* 0D2050 800D1450 252A0001 */ addiu $t2, $t1, 1
|
||||
/* 0D2054 800D1454 29410004 */ slti $at, $t2, 4
|
||||
/* 0D2058 800D1458 25190001 */ addiu $t9, $t0, 1
|
||||
/* 0D205C 800D145C AFAA0264 */ sw $t2, 0x264($sp)
|
||||
/* 0D2060 800D1460 1420FFF4 */ bnez $at, .L800D1434
|
||||
/* 0D2064 800D1464 AFB90288 */ sw $t9, 0x288($sp)
|
||||
/* 0D2068 800D1468 8FAC0278 */ lw $t4, 0x278($sp)
|
||||
/* 0D206C 800D146C 8FAB0290 */ lw $t3, 0x290($sp)
|
||||
/* 0D2070 800D1470 27A7003C */ addiu $a3, $sp, 0x3c
|
||||
/* 0D2074 800D1474 8D8D005C */ lw $t5, 0x5c($t4)
|
||||
/* 0D2078 800D1478 8D6E0000 */ lw $t6, ($t3)
|
||||
/* 0D207C 800D147C 8D840004 */ lw $a0, 4($t4)
|
||||
/* 0D2080 800D1480 8D850008 */ lw $a1, 8($t4)
|
||||
/* 0D2084 800D1484 AFA00010 */ sw $zero, 0x10($sp)
|
||||
/* 0D2088 800D1488 0C03363C */ jal __osContRamWrite
|
||||
/* 0D208C 800D148C 01CD3021 */ addu $a2, $t6, $t5
|
||||
/* 0D2090 800D1490 AFA20260 */ sw $v0, 0x260($sp)
|
||||
/* 0D2094 800D1494 8FAF0260 */ lw $t7, 0x260($sp)
|
||||
/* 0D2098 800D1498 11E00003 */ beqz $t7, .L800D14A8
|
||||
/* 0D209C 800D149C 00000000 */ nop
|
||||
/* 0D20A0 800D14A0 10000004 */ b .L800D14B4
|
||||
/* 0D20A4 800D14A4 01E01025 */ move $v0, $t7
|
||||
.L800D14A8:
|
||||
/* 0D20A8 800D14A8 10000002 */ b .L800D14B4
|
||||
/* 0D20AC 800D14AC 8FA20260 */ lw $v0, 0x260($sp)
|
||||
.L800D14B0:
|
||||
/* 0D20B0 800D14B0 24020005 */ li $v0, 5
|
||||
.L800D14B4:
|
||||
/* 0D20B4 800D14B4 8FBF0024 */ lw $ra, 0x24($sp)
|
||||
/* 0D20B8 800D14B8 27BD0278 */ addiu $sp, $sp, 0x278
|
||||
/* 0D20BC 800D14BC 03E00008 */ jr $ra
|
||||
/* 0D20C0 800D14C0 00000000 */ nop
|
||||
|
||||
@@ -8,11 +8,9 @@
|
||||
u32 osVirtualToPhysical(void *addr) {
|
||||
if (IS_KSEG0(addr)) {
|
||||
return K0_TO_PHYS(addr);
|
||||
}
|
||||
else if (IS_KSEG1(addr)) {
|
||||
} else if (IS_KSEG1(addr)) {
|
||||
return K1_TO_PHYS(addr);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
return __osProbeTLB(addr);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,184 @@
|
||||
/* The comment below is needed for this file to be picked up by generate_ld */
|
||||
/* RAM_POS: 0x800D1040 */
|
||||
|
||||
#include "types.h"
|
||||
#include "controller.h"
|
||||
|
||||
static s32 __osClearPage(OSPfs *pfs, int page_no, u8 *data, u8 bank);
|
||||
s32 osPfsAllocateFile(OSPfs *pfs, u16 company_code, u32 game_code, u8 *game_name, u8 *ext_name, int file_size_in_bytes, s32 *file_no)
|
||||
{
|
||||
int start_page;
|
||||
int decleared;
|
||||
int last_page;
|
||||
int old_last_page;
|
||||
int j;
|
||||
s32 ret;
|
||||
int file_size_in_pages;
|
||||
__OSInode inode;
|
||||
__OSInode backup_inode;
|
||||
__OSDir dir;
|
||||
u8 bank;
|
||||
u8 old_bank;
|
||||
int firsttime;
|
||||
s32 bytes;
|
||||
__OSInodeUnit fpage;
|
||||
|
||||
old_last_page = 0;
|
||||
ret = 0;
|
||||
old_bank = 0;
|
||||
firsttime = 0;
|
||||
|
||||
if (company_code == 0 || game_code == 0)
|
||||
return PFS_ERR_INVALID;
|
||||
|
||||
file_size_in_pages = (file_size_in_bytes + 255) / (BLOCKSIZE * PFS_ONE_PAGE);
|
||||
if ((pfs->status & PFS_INITIALIZED) == FALSE)
|
||||
return PFS_ERR_INVALID;
|
||||
|
||||
PFS_CHECK_ID;
|
||||
|
||||
ret = osPfsFindFile(pfs, company_code, game_code, game_name, ext_name, file_no);
|
||||
if (ret != 0 && ret != PFS_ERR_INVALID)
|
||||
return ret;
|
||||
|
||||
if (*file_no != -1)
|
||||
return PFS_ERR_EXIST;
|
||||
|
||||
ret = osPfsFreeBlocks(pfs, &bytes);
|
||||
if (file_size_in_bytes > bytes)
|
||||
return PFS_DATA_FULL;
|
||||
|
||||
if (file_size_in_pages != 0)
|
||||
{
|
||||
ret = osPfsFindFile(pfs, 0, 0, NULL, NULL, file_no);
|
||||
if (ret != 0 && ret != PFS_ERR_INVALID)
|
||||
return ret;
|
||||
if (*file_no == -1)
|
||||
return PFS_DIR_FULL;
|
||||
|
||||
for (bank = 0; bank < pfs->banks; bank++)
|
||||
{
|
||||
ERRCK(__osPfsRWInode(pfs, &inode, OS_READ, bank));
|
||||
ERRCK(__osPfsDeclearPage(pfs, &inode, file_size_in_pages, &start_page, bank, &decleared, &last_page));
|
||||
if (start_page != -1)
|
||||
{
|
||||
if (firsttime == 0)
|
||||
{
|
||||
fpage.inode_t.page = start_page;
|
||||
fpage.inode_t.bank = bank;
|
||||
}
|
||||
else
|
||||
{
|
||||
backup_inode.inode_page[old_last_page].inode_t.bank = bank;
|
||||
backup_inode.inode_page[old_last_page].inode_t.page = start_page;
|
||||
ERRCK(__osPfsRWInode(pfs, &backup_inode, OS_WRITE, old_bank));
|
||||
}
|
||||
|
||||
for (j = 0; j < ARRLEN(inode.inode_page); j++)
|
||||
backup_inode.inode_page[j].ipage = inode.inode_page[j].ipage;
|
||||
old_last_page = last_page;
|
||||
old_bank = bank;
|
||||
firsttime++;
|
||||
if (file_size_in_pages > decleared)
|
||||
file_size_in_pages = file_size_in_pages - decleared;
|
||||
else
|
||||
{
|
||||
file_size_in_pages = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (file_size_in_pages > 0 || start_page == -1)
|
||||
return PFS_ERR_INCONSISTENT;
|
||||
|
||||
backup_inode.inode_page[old_last_page].inode_t.bank = bank;
|
||||
backup_inode.inode_page[old_last_page].inode_t.page = start_page;
|
||||
ERRCK(__osPfsRWInode(pfs, &backup_inode, OS_WRITE, old_bank));
|
||||
dir.start_page = fpage;
|
||||
dir.company_code = company_code;
|
||||
dir.game_code = game_code;
|
||||
dir.data_sum = 0;
|
||||
for (j = 0; j < ARRLEN(dir.game_name); j++)
|
||||
dir.game_name[j] = *game_name++;
|
||||
for (j = 0; j < ARRLEN(dir.ext_name); j++)
|
||||
dir.ext_name[j] = *ext_name++;
|
||||
ERRCK(__osContRamWrite(pfs->queue, pfs->channel, *file_no + pfs->dir_table, (u8*)&dir, FALSE));
|
||||
return ret;
|
||||
}
|
||||
return PFS_ERR_INVALID;
|
||||
}
|
||||
|
||||
s32 __osPfsDeclearPage(OSPfs *pfs, __OSInode *inode, int file_size_in_pages, int *first_page, u8 bank, int *decleared, int *last_page)
|
||||
{
|
||||
int j;
|
||||
int spage;
|
||||
int old_page;
|
||||
u8 tmp_data[BLOCKSIZE];
|
||||
int i;
|
||||
s32 ret;
|
||||
int offset;
|
||||
|
||||
ret = 0;
|
||||
if (bank > 0)
|
||||
offset = 1;
|
||||
else
|
||||
offset = pfs->inode_start_page;
|
||||
for (j = offset; j < ARRLEN(inode->inode_page); j++)
|
||||
{
|
||||
if (inode->inode_page[j].ipage == 3)
|
||||
break;
|
||||
}
|
||||
if (j == ARRLEN(inode->inode_page))
|
||||
{
|
||||
*first_page = -1;
|
||||
return ret;
|
||||
}
|
||||
for (i = 0; i < ARRLEN(tmp_data); i++)
|
||||
tmp_data[i] = 0;
|
||||
spage = j;
|
||||
*decleared = 1;
|
||||
old_page = j++;
|
||||
while (file_size_in_pages > *decleared && j < ARRLEN(inode->inode_page))
|
||||
{
|
||||
if (inode->inode_page[j].ipage == 3)
|
||||
{
|
||||
inode->inode_page[old_page].inode_t.bank = bank;
|
||||
inode->inode_page[old_page].inode_t.page = j;
|
||||
ERRCK(__osClearPage(pfs, old_page, (u8*)tmp_data, bank));
|
||||
old_page = j;
|
||||
(*decleared)++;
|
||||
}
|
||||
j++;
|
||||
}
|
||||
*first_page = spage;
|
||||
if (j == ARRLEN(inode->inode_page))
|
||||
{
|
||||
if (file_size_in_pages > *decleared)
|
||||
{
|
||||
*last_page = old_page;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
inode->inode_page[old_page].ipage = 1;
|
||||
ret = __osClearPage(pfs, old_page, (u8*)tmp_data, bank);
|
||||
*last_page = 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static s32 __osClearPage(OSPfs *pfs, int page_no, u8 *data, u8 bank)
|
||||
{
|
||||
int i;
|
||||
s32 ret;
|
||||
ret = 0;
|
||||
pfs->activebank = bank;
|
||||
ERRCK(__osPfsSelectBank(pfs));
|
||||
for (i = 0; i < PFS_ONE_PAGE; i++)
|
||||
{
|
||||
ret = __osContRamWrite(pfs->queue, pfs->channel, page_no * PFS_ONE_PAGE + i, data, FALSE);
|
||||
if (ret != 0)
|
||||
break;
|
||||
}
|
||||
pfs->activebank = 0;
|
||||
ret = __osPfsSelectBank(pfs);
|
||||
return ret;
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
/* The comment below is needed for this file to be picked up by generate_ld */
|
||||
/* RAM_POS: 0x800D1040 */
|
||||
|
||||
#include "types.h"
|
||||
#include "macros.h"
|
||||
|
||||
GLOBAL_ASM("lib/asm/non_matchings/unknown_0D1C40/osPfsAllocateFile.s")
|
||||
GLOBAL_ASM("lib/asm/non_matchings/unknown_0D1C40/__osPfsDeclearPage.s")
|
||||
GLOBAL_ASM("lib/asm/non_matchings/unknown_0D1C40/__osClearPage.s")
|
||||
Reference in New Issue
Block a user