From 06af1f5abf130cd33f682be8bc17ff31b98cf2cd Mon Sep 17 00:00:00 2001 From: Mittenshugg Date: Sat, 1 Aug 2020 04:09:58 -0500 Subject: [PATCH] c: __osPfsGetInitData --- Makefile | 1 + .../unknown_071730/func_80071D30.s | 8 +-- .../unknown_071730/func_80071E58.s | 8 +-- include/controller.h | 3 +- .../unknown_0CD820/func_800CCC20.s | 4 +- .../unknown_0CD820/func_800CCE18.s | 8 +-- .../unknown_0CD820/func_800CCEE8.s | 8 +-- .../unknown_0CD820/func_800CD0A4.s | 8 +-- .../unknown_0CD820/func_800CD14C.s | 8 +-- .../unknown_0CDE90/__osPfsGetInitData.s | 59 ------------------- .../unknown_0CDE90/__osPfsRequestData.s | 12 ++-- .../unknown_0CDE90/osPfsIsPlug.s | 28 ++++----- .../unknown_0CE370/__osContRamWrite.s | 16 ++--- .../unknown_0CE370/__osPackRamWriteData.s | 4 +- .../unknown_0CE8A0/__osContRamRead.s | 16 ++--- .../unknown_0CE8A0/__osPackRamReadData.s | 4 +- .../unknown_0CF330/__osPfsGetStatus.s | 8 +-- lib/src/unknown_0CDE90.c | 29 ++++++++- undefined_syms.txt | 4 +- 19 files changed, 102 insertions(+), 134 deletions(-) delete mode 100644 lib/asm/non_matchings/unknown_0CDE90/__osPfsGetInitData.s diff --git a/Makefile b/Makefile index 6515848a..82fbcd52 100755 --- a/Makefile +++ b/Makefile @@ -174,6 +174,7 @@ $(BUILD_DIR)/lib/%.o: OPT_FLAGS := -O2 $(BUILD_DIR)/lib/%.o: MIPSISET := -mips2 $(BUILD_DIR)/lib/src/unknown_0C91A0.o : OPT_FLAGS := -O1 $(BUILD_DIR)/lib/src/unknown_0D29F0.o: OPT_FLAGS := -O1 +$(BUILD_DIR)/lib/src/unknown_0CDE90.o: OPT_FLAGS := -O1 $(BUILD_DIR)/lib/src/osCreateThread.o : OPT_FLAGS := -O1 $(BUILD_DIR)/lib/src/osGetThreadPri.o : OPT_FLAGS := -O1 $(BUILD_DIR)/lib/src/osPfsFreeBlocks.o: OPT_FLAGS := -O1 diff --git a/asm/non_matchings/unknown_071730/func_80071D30.s b/asm/non_matchings/unknown_071730/func_80071D30.s index 7333fb21..025282f9 100644 --- a/asm/non_matchings/unknown_071730/func_80071D30.s +++ b/asm/non_matchings/unknown_071730/func_80071D30.s @@ -19,8 +19,8 @@ glabel func_80071D30 /* 072974 80071D74 8D240004 */ lw $a0, 4($t1) /* 072978 80071D78 0C0322EC */ jal osRecvMesg /* 07297C 80071D7C 24060001 */ li $a2, 1 -/* 072980 80071D80 3C058013 */ lui $a1, %hi(D_8012CDE0) # $a1, 0x8013 -/* 072984 80071D84 24A5CDE0 */ addiu $a1, %lo(D_8012CDE0) # addiu $a1, $a1, -0x3220 +/* 072980 80071D80 3C058013 */ lui $a1, %hi(__osPfsPifRam) # $a1, 0x8013 +/* 072984 80071D84 24A5CDE0 */ addiu $a1, %lo(__osPfsPifRam) # addiu $a1, $a1, -0x3220 /* 072988 80071D88 0C0335B0 */ jal __osSiRawStartDma /* 07298C 80071D8C 00002025 */ move $a0, $zero /* 072990 80071D90 8FAA0050 */ lw $t2, 0x50($sp) @@ -29,9 +29,9 @@ glabel func_80071D30 /* 07299C 80071D9C 0C0322EC */ jal osRecvMesg /* 0729A0 80071DA0 24060001 */ li $a2, 1 /* 0729A4 80071DA4 8FAB0050 */ lw $t3, 0x50($sp) -/* 0729A8 80071DA8 3C038013 */ lui $v1, %hi(D_8012CDE0) # $v1, 0x8013 +/* 0729A8 80071DA8 3C038013 */ lui $v1, %hi(__osPfsPifRam) # $v1, 0x8013 /* 0729AC 80071DAC 8D640008 */ lw $a0, 8($t3) -/* 0729B0 80071DB0 2463CDE0 */ addiu $v1, %lo(D_8012CDE0) # addiu $v1, $v1, -0x3220 +/* 0729B0 80071DB0 2463CDE0 */ addiu $v1, %lo(__osPfsPifRam) # addiu $v1, $v1, -0x3220 /* 0729B4 80071DB4 10800007 */ beqz $a0, .L80071DD4 /* 0729B8 80071DB8 27AC001C */ addiu $t4, $sp, 0x1c /* 0729BC 80071DBC 18800005 */ blez $a0, .L80071DD4 diff --git a/asm/non_matchings/unknown_071730/func_80071E58.s b/asm/non_matchings/unknown_071730/func_80071E58.s index 691b5b06..a28f6961 100644 --- a/asm/non_matchings/unknown_071730/func_80071E58.s +++ b/asm/non_matchings/unknown_071730/func_80071E58.s @@ -19,8 +19,8 @@ glabel func_80071E58 /* 072A9C 80071E9C 8D240004 */ lw $a0, 4($t1) /* 072AA0 80071EA0 0C0322EC */ jal osRecvMesg /* 072AA4 80071EA4 24060001 */ li $a2, 1 -/* 072AA8 80071EA8 3C058013 */ lui $a1, %hi(D_8012CDE0) # $a1, 0x8013 -/* 072AAC 80071EAC 24A5CDE0 */ addiu $a1, %lo(D_8012CDE0) # addiu $a1, $a1, -0x3220 +/* 072AA8 80071EA8 3C058013 */ lui $a1, %hi(__osPfsPifRam) # $a1, 0x8013 +/* 072AAC 80071EAC 24A5CDE0 */ addiu $a1, %lo(__osPfsPifRam) # addiu $a1, $a1, -0x3220 /* 072AB0 80071EB0 0C0335B0 */ jal __osSiRawStartDma /* 072AB4 80071EB4 00002025 */ move $a0, $zero /* 072AB8 80071EB8 8FAA0050 */ lw $t2, 0x50($sp) @@ -29,9 +29,9 @@ glabel func_80071E58 /* 072AC4 80071EC4 0C0322EC */ jal osRecvMesg /* 072AC8 80071EC8 24060001 */ li $a2, 1 /* 072ACC 80071ECC 8FAB0050 */ lw $t3, 0x50($sp) -/* 072AD0 80071ED0 3C038013 */ lui $v1, %hi(D_8012CDE0) # $v1, 0x8013 +/* 072AD0 80071ED0 3C038013 */ lui $v1, %hi(__osPfsPifRam) # $v1, 0x8013 /* 072AD4 80071ED4 8D640008 */ lw $a0, 8($t3) -/* 072AD8 80071ED8 2463CDE0 */ addiu $v1, %lo(D_8012CDE0) # addiu $v1, $v1, -0x3220 +/* 072AD8 80071ED8 2463CDE0 */ addiu $v1, %lo(__osPfsPifRam) # addiu $v1, $v1, -0x3220 /* 072ADC 80071EDC 10800007 */ beqz $a0, .L80071EFC /* 072AE0 80071EE0 27AC001C */ addiu $t4, $sp, 0x1c /* 072AE4 80071EE4 18800005 */ blez $a0, .L80071EFC diff --git a/include/controller.h b/include/controller.h index 0abc36cb..f5f27f82 100644 --- a/include/controller.h +++ b/include/controller.h @@ -5,7 +5,7 @@ //should go somewhere else but #define ARRLEN(x) ((s32)(sizeof(x) / sizeof(x[0]))) -#define CHNL_ERR(format) ((format.rxsize & CHNL_ERR_MASK) >> 4) +#define CHNL_ERR(format) ((format.rxsize & 0xC0) >> 4) typedef struct { @@ -130,4 +130,3 @@ typedef struct __osSiRelAccess(); \ if (ret != 0) \ return ret; - \ No newline at end of file diff --git a/lib/asm/non_matchings/unknown_0CD820/func_800CCC20.s b/lib/asm/non_matchings/unknown_0CD820/func_800CCC20.s index 2037e544..47d7fd04 100644 --- a/lib/asm/non_matchings/unknown_0CD820/func_800CCC20.s +++ b/lib/asm/non_matchings/unknown_0CD820/func_800CCC20.s @@ -89,8 +89,8 @@ glabel func_800CCC20 /* 0CD974 800CCD74 24060001 */ li $a2, 1 .L800CCD78: /* 0CD978 800CCD78 24180004 */ li $t8, 4 -/* 0CD97C 800CCD7C 3C018013 */ lui $at, %hi(D_8012CD91) # $at, 0x8013 -/* 0CD980 800CCD80 A038CD91 */ sb $t8, %lo(D_8012CD91)($at) +/* 0CD97C 800CCD7C 3C018013 */ lui $at, %hi(__osMaxControllers) # $at, 0x8013 +/* 0CD980 800CCD80 A038CD91 */ sb $t8, %lo(__osMaxControllers)($at) /* 0CD984 800CCD84 0C0333BA */ jal func_800CCEE8 /* 0CD988 800CCD88 00002025 */ move $a0, $zero /* 0CD98C 800CCD8C 3C058013 */ lui $a1, %hi(D_8012CD50) # $a1, 0x8013 diff --git a/lib/asm/non_matchings/unknown_0CD820/func_800CCE18.s b/lib/asm/non_matchings/unknown_0CD820/func_800CCE18.s index 6d3fce6f..50961eac 100644 --- a/lib/asm/non_matchings/unknown_0CD820/func_800CCE18.s +++ b/lib/asm/non_matchings/unknown_0CD820/func_800CCE18.s @@ -1,6 +1,6 @@ glabel func_800CCE18 -/* 0CDA18 800CCE18 3C0F8013 */ lui $t7, %hi(D_8012CD91) # $t7, 0x8013 -/* 0CDA1C 800CCE1C 91EFCD91 */ lbu $t7, %lo(D_8012CD91)($t7) +/* 0CDA18 800CCE18 3C0F8013 */ lui $t7, %hi(__osMaxControllers) # $t7, 0x8013 +/* 0CDA1C 800CCE1C 91EFCD91 */ lbu $t7, %lo(__osMaxControllers)($t7) /* 0CDA20 800CCE20 27BDFFE8 */ addiu $sp, $sp, -0x18 /* 0CDA24 800CCE24 3C0E8013 */ lui $t6, %hi(D_8012CD50) # $t6, 0x8013 /* 0CDA28 800CCE28 25CECD50 */ addiu $t6, %lo(D_8012CD50) # addiu $t6, $t6, -0x32b0 @@ -39,8 +39,8 @@ glabel func_800CCE18 /* 0CDAA8 800CCEA8 A3AD0007 */ sb $t5, 7($sp) .L800CCEAC: /* 0CDAAC 800CCEAC 8FAE0008 */ lw $t6, 8($sp) -/* 0CDAB0 800CCEB0 3C198013 */ lui $t9, %hi(D_8012CD91) # $t9, 0x8013 -/* 0CDAB4 800CCEB4 9339CD91 */ lbu $t9, %lo(D_8012CD91)($t9) +/* 0CDAB0 800CCEB0 3C198013 */ lui $t9, %hi(__osMaxControllers) # $t9, 0x8013 +/* 0CDAB4 800CCEB4 9339CD91 */ lbu $t9, %lo(__osMaxControllers)($t9) /* 0CDAB8 800CCEB8 8FA80014 */ lw $t0, 0x14($sp) /* 0CDABC 800CCEBC 25CF0001 */ addiu $t7, $t6, 1 /* 0CDAC0 800CCEC0 01F9082A */ slt $at, $t7, $t9 diff --git a/lib/asm/non_matchings/unknown_0CD820/func_800CCEE8.s b/lib/asm/non_matchings/unknown_0CD820/func_800CCEE8.s index 6c54f8ce..8a4048c0 100644 --- a/lib/asm/non_matchings/unknown_0CD820/func_800CCEE8.s +++ b/lib/asm/non_matchings/unknown_0CD820/func_800CCEE8.s @@ -13,8 +13,8 @@ glabel func_800CCEE8 /* 0CDB10 800CCF10 2B210010 */ slti $at, $t9, 0x10 /* 0CDB14 800CCF14 1420FFF7 */ bnez $at, .L800CCEF4 /* 0CDB18 800CCF18 AFB90000 */ sw $t9, ($sp) -/* 0CDB1C 800CCF1C 3C198013 */ lui $t9, %hi(D_8012CD91) # $t9, 0x8013 -/* 0CDB20 800CCF20 9339CD91 */ lbu $t9, %lo(D_8012CD91)($t9) +/* 0CDB1C 800CCF1C 3C198013 */ lui $t9, %hi(__osMaxControllers) # $t9, 0x8013 +/* 0CDB20 800CCF20 9339CD91 */ lbu $t9, %lo(__osMaxControllers)($t9) /* 0CDB24 800CCF24 3C098013 */ lui $t1, %hi(D_8012CD50) # $t1, 0x8013 /* 0CDB28 800CCF28 24080001 */ li $t0, 1 /* 0CDB2C 800CCF2C 3C018013 */ lui $at, %hi(D_8012CD8C) # $at, 0x8013 @@ -42,14 +42,14 @@ glabel func_800CCEE8 /* 0CDB80 800CCF80 27A90004 */ addiu $t1, $sp, 4 /* 0CDB84 800CCF84 8D210000 */ lw $at, ($t1) /* 0CDB88 800CCF88 8FA8000C */ lw $t0, 0xc($sp) -/* 0CDB8C 800CCF8C 3C188013 */ lui $t8, %hi(D_8012CD91) # $t8, 0x8013 +/* 0CDB8C 800CCF8C 3C188013 */ lui $t8, %hi(__osMaxControllers) # $t8, 0x8013 /* 0CDB90 800CCF90 A9010000 */ swl $at, ($t0) /* 0CDB94 800CCF94 B9010003 */ swr $at, 3($t0) /* 0CDB98 800CCF98 8D2B0004 */ lw $t3, 4($t1) /* 0CDB9C 800CCF9C A90B0004 */ swl $t3, 4($t0) /* 0CDBA0 800CCFA0 B90B0007 */ swr $t3, 7($t0) /* 0CDBA4 800CCFA4 8FAE0000 */ lw $t6, ($sp) -/* 0CDBA8 800CCFA8 9318CD91 */ lbu $t8, %lo(D_8012CD91)($t8) +/* 0CDBA8 800CCFA8 9318CD91 */ lbu $t8, %lo(__osMaxControllers)($t8) /* 0CDBAC 800CCFAC 8FAC000C */ lw $t4, 0xc($sp) /* 0CDBB0 800CCFB0 25CF0001 */ addiu $t7, $t6, 1 /* 0CDBB4 800CCFB4 01F8082A */ slt $at, $t7, $t8 diff --git a/lib/asm/non_matchings/unknown_0CD820/func_800CD0A4.s b/lib/asm/non_matchings/unknown_0CD820/func_800CD0A4.s index dda2b9e3..70e89221 100644 --- a/lib/asm/non_matchings/unknown_0CD820/func_800CD0A4.s +++ b/lib/asm/non_matchings/unknown_0CD820/func_800CD0A4.s @@ -1,6 +1,6 @@ glabel func_800CD0A4 -/* 0CDCA4 800CD0A4 3C0F8013 */ lui $t7, %hi(D_8012CD91) # $t7, 0x8013 -/* 0CDCA8 800CD0A8 91EFCD91 */ lbu $t7, %lo(D_8012CD91)($t7) +/* 0CDCA4 800CD0A4 3C0F8013 */ lui $t7, %hi(__osMaxControllers) # $t7, 0x8013 +/* 0CDCA8 800CD0A8 91EFCD91 */ lbu $t7, %lo(__osMaxControllers)($t7) /* 0CDCAC 800CD0AC 3C0E8013 */ lui $t6, %hi(D_8012CD50) # $t6, 0x8013 /* 0CDCB0 800CD0B0 27BDFFF0 */ addiu $sp, $sp, -0x10 /* 0CDCB4 800CD0B4 25CECD50 */ addiu $t6, %lo(D_8012CD50) # addiu $t6, $t6, -0x32b0 @@ -31,8 +31,8 @@ glabel func_800CD0A4 /* 0CDD14 800CD114 A0880003 */ sb $t0, 3($a0) .L800CD118: /* 0CDD18 800CD118 8FB80000 */ lw $t8, ($sp) -/* 0CDD1C 800CD11C 3C0B8013 */ lui $t3, %hi(D_8012CD91) # $t3, 0x8013 -/* 0CDD20 800CD120 916BCD91 */ lbu $t3, %lo(D_8012CD91)($t3) +/* 0CDD1C 800CD11C 3C0B8013 */ lui $t3, %hi(__osMaxControllers) # $t3, 0x8013 +/* 0CDD20 800CD120 916BCD91 */ lbu $t3, %lo(__osMaxControllers)($t3) /* 0CDD24 800CD124 8FA9000C */ lw $t1, 0xc($sp) /* 0CDD28 800CD128 27190001 */ addiu $t9, $t8, 1 /* 0CDD2C 800CD12C 032B082A */ slt $at, $t9, $t3 diff --git a/lib/asm/non_matchings/unknown_0CD820/func_800CD14C.s b/lib/asm/non_matchings/unknown_0CD820/func_800CD14C.s index 49303dcb..0fc3849d 100644 --- a/lib/asm/non_matchings/unknown_0CD820/func_800CD14C.s +++ b/lib/asm/non_matchings/unknown_0CD820/func_800CD14C.s @@ -15,8 +15,8 @@ glabel func_800CD14C /* 0CDD7C 800CD17C 29010010 */ slti $at, $t0, 0x10 /* 0CDD80 800CD180 1420FFF7 */ bnez $at, .L800CD160 /* 0CDD84 800CD184 AFA80000 */ sw $t0, ($sp) -/* 0CDD88 800CD188 3C198013 */ lui $t9, %hi(D_8012CD91) # $t9, 0x8013 -/* 0CDD8C 800CD18C 9339CD91 */ lbu $t9, %lo(D_8012CD91)($t9) +/* 0CDD88 800CD188 3C198013 */ lui $t9, %hi(__osMaxControllers) # $t9, 0x8013 +/* 0CDD8C 800CD18C 9339CD91 */ lbu $t9, %lo(__osMaxControllers)($t9) /* 0CDD90 800CD190 24090001 */ li $t1, 1 /* 0CDD94 800CD194 3C018013 */ lui $at, %hi(D_8012CD8C) # $at, 0x8013 /* 0CDD98 800CD198 240A00FF */ li $t2, 255 @@ -40,14 +40,14 @@ glabel func_800CD14C /* 0CDDDC 800CD1DC 27A90004 */ addiu $t1, $sp, 4 /* 0CDDE0 800CD1E0 8D210000 */ lw $at, ($t1) /* 0CDDE4 800CD1E4 8FA8000C */ lw $t0, 0xc($sp) -/* 0CDDE8 800CD1E8 3C188013 */ lui $t8, %hi(D_8012CD91) # $t8, 0x8013 +/* 0CDDE8 800CD1E8 3C188013 */ lui $t8, %hi(__osMaxControllers) # $t8, 0x8013 /* 0CDDEC 800CD1EC A9010000 */ swl $at, ($t0) /* 0CDDF0 800CD1F0 B9010003 */ swr $at, 3($t0) /* 0CDDF4 800CD1F4 8D2B0004 */ lw $t3, 4($t1) /* 0CDDF8 800CD1F8 A90B0004 */ swl $t3, 4($t0) /* 0CDDFC 800CD1FC B90B0007 */ swr $t3, 7($t0) /* 0CDE00 800CD200 8FAE0000 */ lw $t6, ($sp) -/* 0CDE04 800CD204 9318CD91 */ lbu $t8, %lo(D_8012CD91)($t8) +/* 0CDE04 800CD204 9318CD91 */ lbu $t8, %lo(__osMaxControllers)($t8) /* 0CDE08 800CD208 8FAC000C */ lw $t4, 0xc($sp) /* 0CDE0C 800CD20C 25CF0001 */ addiu $t7, $t6, 1 /* 0CDE10 800CD210 01F8082A */ slt $at, $t7, $t8 diff --git a/lib/asm/non_matchings/unknown_0CDE90/__osPfsGetInitData.s b/lib/asm/non_matchings/unknown_0CDE90/__osPfsGetInitData.s deleted file mode 100644 index dcfb8367..00000000 --- a/lib/asm/non_matchings/unknown_0CDE90/__osPfsGetInitData.s +++ /dev/null @@ -1,59 +0,0 @@ -glabel __osPfsGetInitData -/* 0CE12C 800CD52C 3C0F8013 */ lui $t7, %hi(D_8012CD91) # $t7, 0x8013 -/* 0CE130 800CD530 91EFCD91 */ lbu $t7, %lo(D_8012CD91)($t7) -/* 0CE134 800CD534 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0CE138 800CD538 3C0E8013 */ lui $t6, %hi(D_8012CDE0) # $t6, 0x8013 -/* 0CE13C 800CD53C 25CECDE0 */ addiu $t6, %lo(D_8012CDE0) # addiu $t6, $t6, -0x3220 -/* 0CE140 800CD540 A3A00007 */ sb $zero, 7($sp) -/* 0CE144 800CD544 AFAE0014 */ sw $t6, 0x14($sp) -/* 0CE148 800CD548 19E00028 */ blez $t7, .L800CD5EC -/* 0CE14C 800CD54C AFA00008 */ sw $zero, 8($sp) -.L800CD550: -/* 0CE150 800CD550 8FB90014 */ lw $t9, 0x14($sp) -/* 0CE154 800CD554 27B8000C */ addiu $t8, $sp, 0xc -/* 0CE158 800CD558 8B210000 */ lwl $at, ($t9) -/* 0CE15C 800CD55C 9B210003 */ lwr $at, 3($t9) -/* 0CE160 800CD560 AF010000 */ sw $at, ($t8) -/* 0CE164 800CD564 8B290004 */ lwl $t1, 4($t9) -/* 0CE168 800CD568 9B290007 */ lwr $t1, 7($t9) -/* 0CE16C 800CD56C AF090004 */ sw $t1, 4($t8) -/* 0CE170 800CD570 93AA000E */ lbu $t2, 0xe($sp) -/* 0CE174 800CD574 314B00C0 */ andi $t3, $t2, 0xc0 -/* 0CE178 800CD578 000B6103 */ sra $t4, $t3, 4 -/* 0CE17C 800CD57C A0AC0003 */ sb $t4, 3($a1) -/* 0CE180 800CD580 90AD0003 */ lbu $t5, 3($a1) -/* 0CE184 800CD584 15A0000E */ bnez $t5, .L800CD5C0 -/* 0CE188 800CD588 00000000 */ nop -/* 0CE18C 800CD58C 93AE0011 */ lbu $t6, 0x11($sp) -/* 0CE190 800CD590 93A80010 */ lbu $t0, 0x10($sp) -/* 0CE194 800CD594 240B0001 */ li $t3, 1 -/* 0CE198 800CD598 000E7A00 */ sll $t7, $t6, 8 -/* 0CE19C 800CD59C 01E8C025 */ or $t8, $t7, $t0 -/* 0CE1A0 800CD5A0 A4B80000 */ sh $t8, ($a1) -/* 0CE1A4 800CD5A4 93B90012 */ lbu $t9, 0x12($sp) -/* 0CE1A8 800CD5A8 A0B90002 */ sb $t9, 2($a1) -/* 0CE1AC 800CD5AC 8FAA0008 */ lw $t2, 8($sp) -/* 0CE1B0 800CD5B0 93A90007 */ lbu $t1, 7($sp) -/* 0CE1B4 800CD5B4 014B6004 */ sllv $t4, $t3, $t2 -/* 0CE1B8 800CD5B8 012C6825 */ or $t5, $t1, $t4 -/* 0CE1BC 800CD5BC A3AD0007 */ sb $t5, 7($sp) -.L800CD5C0: -/* 0CE1C0 800CD5C0 8FAE0008 */ lw $t6, 8($sp) -/* 0CE1C4 800CD5C4 3C198013 */ lui $t9, %hi(D_8012CD91) # $t9, 0x8013 -/* 0CE1C8 800CD5C8 9339CD91 */ lbu $t9, %lo(D_8012CD91)($t9) -/* 0CE1CC 800CD5CC 8FA80014 */ lw $t0, 0x14($sp) -/* 0CE1D0 800CD5D0 25CF0001 */ addiu $t7, $t6, 1 -/* 0CE1D4 800CD5D4 01F9082A */ slt $at, $t7, $t9 -/* 0CE1D8 800CD5D8 25180008 */ addiu $t8, $t0, 8 -/* 0CE1DC 800CD5DC AFB80014 */ sw $t8, 0x14($sp) -/* 0CE1E0 800CD5E0 AFAF0008 */ sw $t7, 8($sp) -/* 0CE1E4 800CD5E4 1420FFDA */ bnez $at, .L800CD550 -/* 0CE1E8 800CD5E8 24A50004 */ addiu $a1, $a1, 4 -.L800CD5EC: -/* 0CE1EC 800CD5EC 93AB0007 */ lbu $t3, 7($sp) -/* 0CE1F0 800CD5F0 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0CE1F4 800CD5F4 03E00008 */ jr $ra -/* 0CE1F8 800CD5F8 A08B0000 */ sb $t3, ($a0) - -/* 0CE1FC 800CD5FC 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0CDE90/__osPfsRequestData.s b/lib/asm/non_matchings/unknown_0CDE90/__osPfsRequestData.s index 077902c4..c5950158 100644 --- a/lib/asm/non_matchings/unknown_0CDE90/__osPfsRequestData.s +++ b/lib/asm/non_matchings/unknown_0CDE90/__osPfsRequestData.s @@ -15,12 +15,12 @@ glabel __osPfsRequestData /* 0CE060 800CD460 2B210010 */ slti $at, $t9, 0x10 /* 0CE064 800CD464 1420FFF7 */ bnez $at, .L800CD444 /* 0CE068 800CD468 AFB90000 */ sw $t9, ($sp) -/* 0CE06C 800CD46C 3C198013 */ lui $t9, %hi(D_8012CD91) # $t9, 0x8013 -/* 0CE070 800CD470 9339CD91 */ lbu $t9, %lo(D_8012CD91)($t9) -/* 0CE074 800CD474 3C098013 */ lui $t1, %hi(D_8012CDE0) # $t1, 0x8013 +/* 0CE06C 800CD46C 3C198013 */ lui $t9, %hi(__osMaxControllers) # $t9, 0x8013 +/* 0CE070 800CD470 9339CD91 */ lbu $t9, %lo(__osMaxControllers)($t9) +/* 0CE074 800CD474 3C098013 */ lui $t1, %hi(__osPfsPifRam) # $t1, 0x8013 /* 0CE078 800CD478 24080001 */ li $t0, 1 /* 0CE07C 800CD47C 3C018013 */ lui $at, %hi(D_8012CE1C) # $at, 0x8013 -/* 0CE080 800CD480 2529CDE0 */ addiu $t1, %lo(D_8012CDE0) # addiu $t1, $t1, -0x3220 +/* 0CE080 800CD480 2529CDE0 */ addiu $t1, %lo(__osPfsPifRam) # addiu $t1, $t1, -0x3220 /* 0CE084 800CD484 240A00FF */ li $t2, 255 /* 0CE088 800CD488 240B0001 */ li $t3, 1 /* 0CE08C 800CD48C 240C0003 */ li $t4, 3 @@ -44,14 +44,14 @@ glabel __osPfsRequestData /* 0CE0D0 800CD4D0 27A90004 */ addiu $t1, $sp, 4 /* 0CE0D4 800CD4D4 8D210000 */ lw $at, ($t1) /* 0CE0D8 800CD4D8 8FA8000C */ lw $t0, 0xc($sp) -/* 0CE0DC 800CD4DC 3C188013 */ lui $t8, %hi(D_8012CD91) # $t8, 0x8013 +/* 0CE0DC 800CD4DC 3C188013 */ lui $t8, %hi(__osMaxControllers) # $t8, 0x8013 /* 0CE0E0 800CD4E0 A9010000 */ swl $at, ($t0) /* 0CE0E4 800CD4E4 B9010003 */ swr $at, 3($t0) /* 0CE0E8 800CD4E8 8D2B0004 */ lw $t3, 4($t1) /* 0CE0EC 800CD4EC A90B0004 */ swl $t3, 4($t0) /* 0CE0F0 800CD4F0 B90B0007 */ swr $t3, 7($t0) /* 0CE0F4 800CD4F4 8FAE0000 */ lw $t6, ($sp) -/* 0CE0F8 800CD4F8 9318CD91 */ lbu $t8, %lo(D_8012CD91)($t8) +/* 0CE0F8 800CD4F8 9318CD91 */ lbu $t8, %lo(__osMaxControllers)($t8) /* 0CE0FC 800CD4FC 8FAC000C */ lw $t4, 0xc($sp) /* 0CE100 800CD500 25CF0001 */ addiu $t7, $t6, 1 /* 0CE104 800CD504 01F8082A */ slt $at, $t7, $t8 diff --git a/lib/asm/non_matchings/unknown_0CDE90/osPfsIsPlug.s b/lib/asm/non_matchings/unknown_0CDE90/osPfsIsPlug.s index 4d106b5c..c49b772a 100644 --- a/lib/asm/non_matchings/unknown_0CDE90/osPfsIsPlug.s +++ b/lib/asm/non_matchings/unknown_0CDE90/osPfsIsPlug.s @@ -11,8 +11,8 @@ glabel osPfsIsPlug .L800CD2B4: /* 0CDEB4 800CD2B4 0C03350C */ jal __osPfsRequestData /* 0CDEB8 800CD2B8 00002025 */ move $a0, $zero -/* 0CDEBC 800CD2BC 3C058013 */ lui $a1, %hi(D_8012CDE0) # $a1, 0x8013 -/* 0CDEC0 800CD2C0 24A5CDE0 */ addiu $a1, %lo(D_8012CDE0) # addiu $a1, $a1, -0x3220 +/* 0CDEBC 800CD2BC 3C058013 */ lui $a1, %hi(__osPfsPifRam) # $a1, 0x8013 +/* 0CDEC0 800CD2C0 24A5CDE0 */ addiu $a1, %lo(__osPfsPifRam) # addiu $a1, $a1, -0x3220 /* 0CDEC4 800CD2C4 0C0335B0 */ jal __osSiRawStartDma /* 0CDEC8 800CD2C8 24040001 */ li $a0, 1 /* 0CDECC 800CD2CC AFA2003C */ sw $v0, 0x3c($sp) @@ -20,8 +20,8 @@ glabel osPfsIsPlug /* 0CDED4 800CD2D4 27A50038 */ addiu $a1, $sp, 0x38 /* 0CDED8 800CD2D8 0C0322EC */ jal osRecvMesg /* 0CDEDC 800CD2DC 24060001 */ li $a2, 1 -/* 0CDEE0 800CD2E0 3C058013 */ lui $a1, %hi(D_8012CDE0) # $a1, 0x8013 -/* 0CDEE4 800CD2E4 24A5CDE0 */ addiu $a1, %lo(D_8012CDE0) # addiu $a1, $a1, -0x3220 +/* 0CDEE0 800CD2E0 3C058013 */ lui $a1, %hi(__osPfsPifRam) # $a1, 0x8013 +/* 0CDEE4 800CD2E4 24A5CDE0 */ addiu $a1, %lo(__osPfsPifRam) # addiu $a1, $a1, -0x3220 /* 0CDEE8 800CD2E8 0C0335B0 */ jal __osSiRawStartDma /* 0CDEEC 800CD2EC 00002025 */ move $a0, $zero /* 0CDEF0 800CD2F0 AFA2003C */ sw $v0, 0x3c($sp) @@ -32,8 +32,8 @@ glabel osPfsIsPlug /* 0CDF04 800CD304 27A40037 */ addiu $a0, $sp, 0x37 /* 0CDF08 800CD308 0C03354B */ jal __osPfsGetInitData /* 0CDF0C 800CD30C 27A50024 */ addiu $a1, $sp, 0x24 -/* 0CDF10 800CD310 3C0F8013 */ lui $t7, %hi(D_8012CD91) # $t7, 0x8013 -/* 0CDF14 800CD314 91EFCD91 */ lbu $t7, %lo(D_8012CD91)($t7) +/* 0CDF10 800CD310 3C0F8013 */ lui $t7, %hi(__osMaxControllers) # $t7, 0x8013 +/* 0CDF14 800CD314 91EFCD91 */ lbu $t7, %lo(__osMaxControllers)($t7) /* 0CDF18 800CD318 AFA00020 */ sw $zero, 0x20($sp) /* 0CDF1C 800CD31C 19E00014 */ blez $t7, .L800CD370 /* 0CDF20 800CD320 00000000 */ nop @@ -51,16 +51,16 @@ glabel osPfsIsPlug /* 0CDF4C 800CD34C AFAB0018 */ sw $t3, 0x18($sp) .L800CD350: /* 0CDF50 800CD350 8FAC0020 */ lw $t4, 0x20($sp) -/* 0CDF54 800CD354 3C0E8013 */ lui $t6, %hi(D_8012CD91) # $t6, 0x8013 -/* 0CDF58 800CD358 91CECD91 */ lbu $t6, %lo(D_8012CD91)($t6) +/* 0CDF54 800CD354 3C0E8013 */ lui $t6, %hi(__osMaxControllers) # $t6, 0x8013 +/* 0CDF58 800CD358 91CECD91 */ lbu $t6, %lo(__osMaxControllers)($t6) /* 0CDF5C 800CD35C 258D0001 */ addiu $t5, $t4, 1 /* 0CDF60 800CD360 AFAD0020 */ sw $t5, 0x20($sp) /* 0CDF64 800CD364 01AE082A */ slt $at, $t5, $t6 /* 0CDF68 800CD368 1420FFEE */ bnez $at, .L800CD324 /* 0CDF6C 800CD36C 00000000 */ nop .L800CD370: -/* 0CDF70 800CD370 3C0F8013 */ lui $t7, %hi(D_8012CD91) # $t7, 0x8013 -/* 0CDF74 800CD374 91EFCD91 */ lbu $t7, %lo(D_8012CD91)($t7) +/* 0CDF70 800CD370 3C0F8013 */ lui $t7, %hi(__osMaxControllers) # $t7, 0x8013 +/* 0CDF74 800CD374 91EFCD91 */ lbu $t7, %lo(__osMaxControllers)($t7) /* 0CDF78 800CD378 8FB80020 */ lw $t8, 0x20($sp) /* 0CDF7C 800CD37C 15F80002 */ bne $t7, $t8, .L800CD388 /* 0CDF80 800CD380 00000000 */ nop @@ -69,8 +69,8 @@ glabel osPfsIsPlug /* 0CDF88 800CD388 8FB90018 */ lw $t9, 0x18($sp) /* 0CDF8C 800CD38C 1F20FFC9 */ bgtz $t9, .L800CD2B4 /* 0CDF90 800CD390 00000000 */ nop -/* 0CDF94 800CD394 3C088013 */ lui $t0, %hi(D_8012CD91) # $t0, 0x8013 -/* 0CDF98 800CD398 9108CD91 */ lbu $t0, %lo(D_8012CD91)($t0) +/* 0CDF94 800CD394 3C088013 */ lui $t0, %hi(__osMaxControllers) # $t0, 0x8013 +/* 0CDF98 800CD398 9108CD91 */ lbu $t0, %lo(__osMaxControllers)($t0) /* 0CDF9C 800CD39C AFA00020 */ sw $zero, 0x20($sp) /* 0CDFA0 800CD3A0 19000019 */ blez $t0, .L800CD408 /* 0CDFA4 800CD3A4 00000000 */ nop @@ -93,8 +93,8 @@ glabel osPfsIsPlug /* 0CDFE4 800CD3E4 A3AA001F */ sb $t2, 0x1f($sp) .L800CD3E8: /* 0CDFE8 800CD3E8 8FAB0020 */ lw $t3, 0x20($sp) -/* 0CDFEC 800CD3EC 3C0C8013 */ lui $t4, %hi(D_8012CD91) # $t4, 0x8013 -/* 0CDFF0 800CD3F0 918CCD91 */ lbu $t4, %lo(D_8012CD91)($t4) +/* 0CDFEC 800CD3EC 3C0C8013 */ lui $t4, %hi(__osMaxControllers) # $t4, 0x8013 +/* 0CDFF0 800CD3F0 918CCD91 */ lbu $t4, %lo(__osMaxControllers)($t4) /* 0CDFF4 800CD3F4 256D0001 */ addiu $t5, $t3, 1 /* 0CDFF8 800CD3F8 AFAD0020 */ sw $t5, 0x20($sp) /* 0CDFFC 800CD3FC 01AC082A */ slt $at, $t5, $t4 diff --git a/lib/asm/non_matchings/unknown_0CE370/__osContRamWrite.s b/lib/asm/non_matchings/unknown_0CE370/__osContRamWrite.s index 4039f2c3..ca36ff5e 100644 --- a/lib/asm/non_matchings/unknown_0CE370/__osContRamWrite.s +++ b/lib/asm/non_matchings/unknown_0CE370/__osContRamWrite.s @@ -1,8 +1,8 @@ glabel __osContRamWrite /* 0CE4F0 800CD8F0 27BDFFA0 */ addiu $sp, $sp, -0x60 /* 0CE4F4 800CD8F4 8FB80070 */ lw $t8, 0x70($sp) -/* 0CE4F8 800CD8F8 3C0E8013 */ lui $t6, %hi(D_8012CDE0) # $t6, 0x8013 -/* 0CE4FC 800CD8FC 25CECDE0 */ addiu $t6, %lo(D_8012CDE0) # addiu $t6, $t6, -0x3220 +/* 0CE4F8 800CD8F8 3C0E8013 */ lui $t6, %hi(__osPfsPifRam) # $t6, 0x8013 +/* 0CE4FC 800CD8FC 25CECDE0 */ addiu $t6, %lo(__osPfsPifRam) # addiu $t6, $t6, -0x3220 /* 0CE500 800CD900 240F0002 */ li $t7, 2 /* 0CE504 800CD904 24010001 */ li $at, 1 /* 0CE508 800CD908 AFBF001C */ sw $ra, 0x1c($sp) @@ -33,8 +33,8 @@ glabel __osContRamWrite /* 0CE568 800CD968 97A5006A */ lhu $a1, 0x6a($sp) /* 0CE56C 800CD96C 0C0336C8 */ jal __osPackRamWriteData /* 0CE570 800CD970 8FA6006C */ lw $a2, 0x6c($sp) -/* 0CE574 800CD974 3C058013 */ lui $a1, %hi(D_8012CDE0) # $a1, 0x8013 -/* 0CE578 800CD978 24A5CDE0 */ addiu $a1, %lo(D_8012CDE0) # addiu $a1, $a1, -0x3220 +/* 0CE574 800CD974 3C058013 */ lui $a1, %hi(__osPfsPifRam) # $a1, 0x8013 +/* 0CE578 800CD978 24A5CDE0 */ addiu $a1, %lo(__osPfsPifRam) # addiu $a1, $a1, -0x3220 /* 0CE57C 800CD97C 0C0335B0 */ jal __osSiRawStartDma /* 0CE580 800CD980 24040001 */ li $a0, 1 /* 0CE584 800CD984 AFA2005C */ sw $v0, 0x5c($sp) @@ -57,9 +57,9 @@ glabel __osContRamWrite /* 0CE5C0 800CD9C0 1420FFF6 */ bnez $at, .L800CD99C /* 0CE5C4 800CD9C4 AFAD0058 */ sw $t5, 0x58($sp) /* 0CE5C8 800CD9C8 3C018013 */ lui $at, %hi(D_8012CE1C) # $at, 0x8013 -/* 0CE5CC 800CD9CC 3C058013 */ lui $a1, %hi(D_8012CDE0) # $a1, 0x8013 +/* 0CE5CC 800CD9CC 3C058013 */ lui $a1, %hi(__osPfsPifRam) # $a1, 0x8013 /* 0CE5D0 800CD9D0 AC20CE1C */ sw $zero, %lo(D_8012CE1C)($at) -/* 0CE5D4 800CD9D4 24A5CDE0 */ addiu $a1, %lo(D_8012CDE0) # addiu $a1, $a1, -0x3220 +/* 0CE5D4 800CD9D4 24A5CDE0 */ addiu $a1, %lo(__osPfsPifRam) # addiu $a1, $a1, -0x3220 /* 0CE5D8 800CD9D8 0C0335B0 */ jal __osSiRawStartDma /* 0CE5DC 800CD9DC 00002025 */ move $a0, $zero /* 0CE5E0 800CD9E0 AFA2005C */ sw $v0, 0x5c($sp) @@ -68,8 +68,8 @@ glabel __osContRamWrite /* 0CE5EC 800CD9EC 0C0322EC */ jal osRecvMesg /* 0CE5F0 800CD9F0 24060001 */ li $a2, 1 /* 0CE5F4 800CD9F4 8FAF0064 */ lw $t7, 0x64($sp) -/* 0CE5F8 800CD9F8 3C0E8013 */ lui $t6, %hi(D_8012CDE0) # $t6, 0x8013 -/* 0CE5FC 800CD9FC 25CECDE0 */ addiu $t6, %lo(D_8012CDE0) # addiu $t6, $t6, -0x3220 +/* 0CE5F8 800CD9F8 3C0E8013 */ lui $t6, %hi(__osPfsPifRam) # $t6, 0x8013 +/* 0CE5FC 800CD9FC 25CECDE0 */ addiu $t6, %lo(__osPfsPifRam) # addiu $t6, $t6, -0x3220 /* 0CE600 800CDA00 11E0000C */ beqz $t7, .L800CDA34 /* 0CE604 800CDA04 AFAE0054 */ sw $t6, 0x54($sp) /* 0CE608 800CDA08 19E0000A */ blez $t7, .L800CDA34 diff --git a/lib/asm/non_matchings/unknown_0CE370/__osPackRamWriteData.s b/lib/asm/non_matchings/unknown_0CE370/__osPackRamWriteData.s index 8153e22a..dc820aaa 100644 --- a/lib/asm/non_matchings/unknown_0CE370/__osPackRamWriteData.s +++ b/lib/asm/non_matchings/unknown_0CE370/__osPackRamWriteData.s @@ -1,7 +1,7 @@ glabel __osPackRamWriteData /* 0CE720 800CDB20 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* 0CE724 800CDB24 3C0E8013 */ lui $t6, %hi(D_8012CDE0) # $t6, 0x8013 -/* 0CE728 800CDB28 25CECDE0 */ addiu $t6, %lo(D_8012CDE0) # addiu $t6, $t6, -0x3220 +/* 0CE724 800CDB24 3C0E8013 */ lui $t6, %hi(__osPfsPifRam) # $t6, 0x8013 +/* 0CE728 800CDB28 25CECDE0 */ addiu $t6, %lo(__osPfsPifRam) # addiu $t6, $t6, -0x3220 /* 0CE72C 800CDB2C AFBF0014 */ sw $ra, 0x14($sp) /* 0CE730 800CDB30 AFA40048 */ sw $a0, 0x48($sp) /* 0CE734 800CDB34 AFA5004C */ sw $a1, 0x4c($sp) diff --git a/lib/asm/non_matchings/unknown_0CE8A0/__osContRamRead.s b/lib/asm/non_matchings/unknown_0CE8A0/__osContRamRead.s index d957bc2e..ec84f74e 100644 --- a/lib/asm/non_matchings/unknown_0CE8A0/__osContRamRead.s +++ b/lib/asm/non_matchings/unknown_0CE8A0/__osContRamRead.s @@ -1,8 +1,8 @@ glabel __osContRamRead /* 0CE8A0 800CDCA0 27BDFFA0 */ addiu $sp, $sp, -0x60 -/* 0CE8A4 800CDCA4 3C0E8013 */ lui $t6, %hi(D_8012CDE0) # $t6, 0x8013 +/* 0CE8A4 800CDCA4 3C0E8013 */ lui $t6, %hi(__osPfsPifRam) # $t6, 0x8013 /* 0CE8A8 800CDCA8 AFBF001C */ sw $ra, 0x1c($sp) -/* 0CE8AC 800CDCAC 25CECDE0 */ addiu $t6, %lo(D_8012CDE0) # addiu $t6, $t6, -0x3220 +/* 0CE8AC 800CDCAC 25CECDE0 */ addiu $t6, %lo(__osPfsPifRam) # addiu $t6, $t6, -0x3220 /* 0CE8B0 800CDCB0 240F0002 */ li $t7, 2 /* 0CE8B4 800CDCB4 AFA40060 */ sw $a0, 0x60($sp) /* 0CE8B8 800CDCB8 AFA50064 */ sw $a1, 0x64($sp) @@ -19,8 +19,8 @@ glabel __osContRamRead /* 0CE8E4 800CDCE4 8FA40064 */ lw $a0, 0x64($sp) /* 0CE8E8 800CDCE8 0C0337B9 */ jal __osPackRamReadData /* 0CE8EC 800CDCEC 97A5006A */ lhu $a1, 0x6a($sp) -/* 0CE8F0 800CDCF0 3C058013 */ lui $a1, %hi(D_8012CDE0) # $a1, 0x8013 -/* 0CE8F4 800CDCF4 24A5CDE0 */ addiu $a1, %lo(D_8012CDE0) # addiu $a1, $a1, -0x3220 +/* 0CE8F0 800CDCF0 3C058013 */ lui $a1, %hi(__osPfsPifRam) # $a1, 0x8013 +/* 0CE8F4 800CDCF4 24A5CDE0 */ addiu $a1, %lo(__osPfsPifRam) # addiu $a1, $a1, -0x3220 /* 0CE8F8 800CDCF8 0C0335B0 */ jal __osSiRawStartDma /* 0CE8FC 800CDCFC 24040001 */ li $a0, 1 /* 0CE900 800CDD00 AFA2005C */ sw $v0, 0x5c($sp) @@ -43,9 +43,9 @@ glabel __osContRamRead /* 0CE93C 800CDD3C 1420FFF6 */ bnez $at, .L800CDD18 /* 0CE940 800CDD40 AFAB0058 */ sw $t3, 0x58($sp) /* 0CE944 800CDD44 3C018013 */ lui $at, %hi(D_8012CE1C) # $at, 0x8013 -/* 0CE948 800CDD48 3C058013 */ lui $a1, %hi(D_8012CDE0) # $a1, 0x8013 +/* 0CE948 800CDD48 3C058013 */ lui $a1, %hi(__osPfsPifRam) # $a1, 0x8013 /* 0CE94C 800CDD4C AC20CE1C */ sw $zero, %lo(D_8012CE1C)($at) -/* 0CE950 800CDD50 24A5CDE0 */ addiu $a1, %lo(D_8012CDE0) # addiu $a1, $a1, -0x3220 +/* 0CE950 800CDD50 24A5CDE0 */ addiu $a1, %lo(__osPfsPifRam) # addiu $a1, $a1, -0x3220 /* 0CE954 800CDD54 0C0335B0 */ jal __osSiRawStartDma /* 0CE958 800CDD58 00002025 */ move $a0, $zero /* 0CE95C 800CDD5C AFA2005C */ sw $v0, 0x5c($sp) @@ -54,8 +54,8 @@ glabel __osContRamRead /* 0CE968 800CDD68 0C0322EC */ jal osRecvMesg /* 0CE96C 800CDD6C 24060001 */ li $a2, 1 /* 0CE970 800CDD70 8FAD0064 */ lw $t5, 0x64($sp) -/* 0CE974 800CDD74 3C0C8013 */ lui $t4, %hi(D_8012CDE0) # $t4, 0x8013 -/* 0CE978 800CDD78 258CCDE0 */ addiu $t4, %lo(D_8012CDE0) # addiu $t4, $t4, -0x3220 +/* 0CE974 800CDD74 3C0C8013 */ lui $t4, %hi(__osPfsPifRam) # $t4, 0x8013 +/* 0CE978 800CDD78 258CCDE0 */ addiu $t4, %lo(__osPfsPifRam) # addiu $t4, $t4, -0x3220 /* 0CE97C 800CDD7C 11A0000C */ beqz $t5, .L800CDDB0 /* 0CE980 800CDD80 AFAC0054 */ sw $t4, 0x54($sp) /* 0CE984 800CDD84 19A0000A */ blez $t5, .L800CDDB0 diff --git a/lib/asm/non_matchings/unknown_0CE8A0/__osPackRamReadData.s b/lib/asm/non_matchings/unknown_0CE8A0/__osPackRamReadData.s index f7d25d45..9031c88c 100644 --- a/lib/asm/non_matchings/unknown_0CE8A0/__osPackRamReadData.s +++ b/lib/asm/non_matchings/unknown_0CE8A0/__osPackRamReadData.s @@ -1,7 +1,7 @@ glabel __osPackRamReadData /* 0CEAE4 800CDEE4 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* 0CEAE8 800CDEE8 3C0E8013 */ lui $t6, %hi(D_8012CDE0) # $t6, 0x8013 -/* 0CEAEC 800CDEEC 25CECDE0 */ addiu $t6, %lo(D_8012CDE0) # addiu $t6, $t6, -0x3220 +/* 0CEAE8 800CDEE8 3C0E8013 */ lui $t6, %hi(__osPfsPifRam) # $t6, 0x8013 +/* 0CEAEC 800CDEEC 25CECDE0 */ addiu $t6, %lo(__osPfsPifRam) # addiu $t6, $t6, -0x3220 /* 0CEAF0 800CDEF0 AFBF0014 */ sw $ra, 0x14($sp) /* 0CEAF4 800CDEF4 AFA40048 */ sw $a0, 0x48($sp) /* 0CEAF8 800CDEF8 AFA5004C */ sw $a1, 0x4c($sp) diff --git a/lib/asm/non_matchings/unknown_0CF330/__osPfsGetStatus.s b/lib/asm/non_matchings/unknown_0CF330/__osPfsGetStatus.s index ffcbba39..4056dd0f 100644 --- a/lib/asm/non_matchings/unknown_0CF330/__osPfsGetStatus.s +++ b/lib/asm/non_matchings/unknown_0CF330/__osPfsGetStatus.s @@ -6,8 +6,8 @@ glabel __osPfsGetStatus /* 0CF9E4 800CEDE4 AFA00034 */ sw $zero, 0x34($sp) /* 0CF9E8 800CEDE8 0C03350C */ jal __osPfsRequestData /* 0CF9EC 800CEDEC 00002025 */ move $a0, $zero -/* 0CF9F0 800CEDF0 3C058013 */ lui $a1, %hi(D_8012CDE0) # $a1, 0x8013 -/* 0CF9F4 800CEDF4 24A5CDE0 */ addiu $a1, %lo(D_8012CDE0) # addiu $a1, $a1, -0x3220 +/* 0CF9F0 800CEDF0 3C058013 */ lui $a1, %hi(__osPfsPifRam) # $a1, 0x8013 +/* 0CF9F4 800CEDF4 24A5CDE0 */ addiu $a1, %lo(__osPfsPifRam) # addiu $a1, $a1, -0x3220 /* 0CF9F8 800CEDF8 0C0335B0 */ jal __osSiRawStartDma /* 0CF9FC 800CEDFC 24040001 */ li $a0, 1 /* 0CFA00 800CEE00 AFA20034 */ sw $v0, 0x34($sp) @@ -15,8 +15,8 @@ glabel __osPfsGetStatus /* 0CFA08 800CEE08 27A50030 */ addiu $a1, $sp, 0x30 /* 0CFA0C 800CEE0C 0C0322EC */ jal osRecvMesg /* 0CFA10 800CEE10 24060001 */ li $a2, 1 -/* 0CFA14 800CEE14 3C058013 */ lui $a1, %hi(D_8012CDE0) # $a1, 0x8013 -/* 0CFA18 800CEE18 24A5CDE0 */ addiu $a1, %lo(D_8012CDE0) # addiu $a1, $a1, -0x3220 +/* 0CFA14 800CEE14 3C058013 */ lui $a1, %hi(__osPfsPifRam) # $a1, 0x8013 +/* 0CFA18 800CEE18 24A5CDE0 */ addiu $a1, %lo(__osPfsPifRam) # addiu $a1, $a1, -0x3220 /* 0CFA1C 800CEE1C 0C0335B0 */ jal __osSiRawStartDma /* 0CFA20 800CEE20 00002025 */ move $a0, $zero /* 0CFA24 800CEE24 AFA20034 */ sw $v0, 0x34($sp) diff --git a/lib/src/unknown_0CDE90.c b/lib/src/unknown_0CDE90.c index 3e5c9cfb..b3e536aa 100644 --- a/lib/src/unknown_0CDE90.c +++ b/lib/src/unknown_0CDE90.c @@ -3,7 +3,34 @@ #include "types.h" #include "macros.h" +#include "libultra_internal.h" +#include "controller.h" +extern OSPifRam __osPfsPifRam; //__osPfsPifRam +extern u8 D_8012CD90; //__osContLastCmd +extern u8 __osMaxControllers;//__osMaxControllers GLOBAL_ASM("lib/asm/non_matchings/unknown_0CDE90/osPfsIsPlug.s") GLOBAL_ASM("lib/asm/non_matchings/unknown_0CDE90/__osPfsRequestData.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0CDE90/__osPfsGetInitData.s") + +void __osPfsGetInitData(u8 *pattern, OSContStatus *data) +{ + u8 *ptr; + __OSContRequesFormat requestformat; + int i; + u8 bits; + bits = 0; + ptr = (u8 *)&__osPfsPifRam; + for (i = 0; i < __osMaxControllers; i++, ptr += sizeof(__OSContRequesFormat)) + { + requestformat = *(__OSContRequesFormat *)ptr; + data->errno = CHNL_ERR(requestformat); + if (data->errno == 0) + { + data->type = (requestformat.typel << 8) | (requestformat.typeh); + data->status = requestformat.status; + bits |= 1 << i; + } + data++; + } + *pattern = bits; +} diff --git a/undefined_syms.txt b/undefined_syms.txt index a0387b27..d67dbd55 100755 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -2814,10 +2814,10 @@ D_8012CCD0 = 0x8012CCD0; D_8012CD50 = 0x8012CD50; D_8012CD8C = 0x8012CD8C; D_8012CD90 = 0x8012CD90; -D_8012CD91 = 0x8012CD91; +__osMaxControllers = 0x8012CD91; D_8012CDB8 = 0x8012CDB8; D_8012CDD0 = 0x8012CDD0; -D_8012CDE0 = 0x8012CDE0; +__osPfsPifRam = 0x8012CDE0; D_8012CE1C = 0x8012CE1C; D_8012CE20 = 0x8012CE20; D_8012CE28 = 0x8012CE28;