mirror of
https://github.com/izzy2lost/Diddy-Kong-Racing.git
synced 2026-06-19 01:16:26 -07:00
c: osPiRawStartDma
This commit is contained in:
@@ -13,24 +13,24 @@ glabel osCreatePiManager
|
||||
/* 0C6C2C 800C602C 00C02825 */ move $a1, $a2
|
||||
/* 0C6C30 800C6030 0C032208 */ jal osCreateMesgQueue
|
||||
/* 0C6C34 800C6034 00E03025 */ move $a2, $a3
|
||||
/* 0C6C38 800C6038 3C048013 */ lui $a0, %hi(D_8012AAB0) # $a0, 0x8013
|
||||
/* 0C6C3C 800C603C 3C058013 */ lui $a1, %hi(D_8012AAC8) # $a1, 0x8013
|
||||
/* 0C6C40 800C6040 24A5AAC8 */ addiu $a1, %lo(D_8012AAC8) # addiu $a1, $a1, -0x5538
|
||||
/* 0C6C44 800C6044 2484AAB0 */ addiu $a0, %lo(D_8012AAB0) # addiu $a0, $a0, -0x5550
|
||||
/* 0C6C38 800C6038 3C048013 */ lui $a0, %hi(piEventQueue) # $a0, 0x8013
|
||||
/* 0C6C3C 800C603C 3C058013 */ lui $a1, %hi(piEventBuf) # $a1, 0x8013
|
||||
/* 0C6C40 800C6040 24A5AAC8 */ addiu $a1, %lo(piEventBuf) # addiu $a1, $a1, -0x5538
|
||||
/* 0C6C44 800C6044 2484AAB0 */ addiu $a0, %lo(piEventQueue) # addiu $a0, $a0, -0x5550
|
||||
/* 0C6C48 800C6048 0C032208 */ jal osCreateMesgQueue
|
||||
/* 0C6C4C 800C604C 24060001 */ li $a2, 1
|
||||
/* 0C6C50 800C6050 3C0F800E */ lui $t7, %hi(D_800E4800) # $t7, 0x800e
|
||||
/* 0C6C54 800C6054 8DEF4800 */ lw $t7, %lo(D_800E4800)($t7)
|
||||
/* 0C6C50 800C6050 3C0F800E */ lui $t7, %hi(__osPiAccessQueueEnabled) # $t7, 0x800e
|
||||
/* 0C6C54 800C6054 8DEF4800 */ lw $t7, %lo(__osPiAccessQueueEnabled)($t7)
|
||||
/* 0C6C58 800C6058 00000000 */ nop
|
||||
/* 0C6C5C 800C605C 15E00003 */ bnez $t7, .L800C606C
|
||||
/* 0C6C60 800C6060 00000000 */ nop
|
||||
/* 0C6C64 800C6064 0C034920 */ jal __osPiCreateAccessQueue
|
||||
/* 0C6C68 800C6068 00000000 */ nop
|
||||
.L800C606C:
|
||||
/* 0C6C6C 800C606C 3C058013 */ lui $a1, %hi(D_8012AAB0) # $a1, 0x8013
|
||||
/* 0C6C6C 800C606C 3C058013 */ lui $a1, %hi(piEventQueue) # $a1, 0x8013
|
||||
/* 0C6C70 800C6070 3C062222 */ lui $a2, (0x22222222 >> 16) # lui $a2, 0x2222
|
||||
/* 0C6C74 800C6074 34C62222 */ ori $a2, (0x22222222 & 0xFFFF) # ori $a2, $a2, 0x2222
|
||||
/* 0C6C78 800C6078 24A5AAB0 */ addiu $a1, %lo(D_8012AAB0) # addiu $a1, $a1, -0x5550
|
||||
/* 0C6C78 800C6078 24A5AAB0 */ addiu $a1, %lo(piEventQueue) # addiu $a1, $a1, -0x5550
|
||||
/* 0C6C7C 800C607C 0C0332EC */ jal osSetEventMesg
|
||||
/* 0C6C80 800C6080 24040008 */ li $a0, 8
|
||||
/* 0C6C84 800C6084 2418FFFF */ li $t8, -1
|
||||
@@ -49,20 +49,20 @@ glabel osCreatePiManager
|
||||
/* 0C6CB4 800C60B4 00000000 */ nop
|
||||
/* 0C6CB8 800C60B8 8FA90034 */ lw $t1, 0x34($sp)
|
||||
/* 0C6CBC 800C60BC 8FAF0030 */ lw $t7, 0x30($sp)
|
||||
/* 0C6CC0 800C60C0 3C048013 */ lui $a0, %hi(D_8012A800) # $a0, 0x8013
|
||||
/* 0C6CC4 800C60C4 3C0A8013 */ lui $t2, %hi(D_8012AAB0) # $t2, 0x8013
|
||||
/* 0C6CC8 800C60C8 3C0B8013 */ lui $t3, %hi(D_8012D1E8) # $t3, 0x8013
|
||||
/* 0C6CCC 800C60CC 3C0C800D */ lui $t4, %hi(D_800D25A0) # $t4, 0x800d
|
||||
/* 0C6CD0 800C60D0 3C0D800D */ lui $t5, %hi(D_800D2680) # $t5, 0x800d
|
||||
/* 0C6CD4 800C60D4 3C0E8013 */ lui $t6, %hi(D_8012AAB0) # $t6, 0x8013
|
||||
/* 0C6CD8 800C60D8 2484A800 */ addiu $a0, %lo(D_8012A800) # addiu $a0, $a0, -0x5800
|
||||
/* 0C6CC0 800C60C0 3C048013 */ lui $a0, %hi(piThread) # $a0, 0x8013
|
||||
/* 0C6CC4 800C60C4 3C0A8013 */ lui $t2, %hi(piEventQueue) # $t2, 0x8013
|
||||
/* 0C6CC8 800C60C8 3C0B8013 */ lui $t3, %hi(piAccessQueue) # $t3, 0x8013
|
||||
/* 0C6CCC 800C60CC 3C0C800D */ lui $t4, %hi(osPiRawStartDma) # $t4, 0x800d
|
||||
/* 0C6CD0 800C60D0 3C0D800D */ lui $t5, %hi(osEPiRawStartDma) # $t5, 0x800d
|
||||
/* 0C6CD4 800C60D4 3C0E8013 */ lui $t6, %hi(piEventQueue) # $t6, 0x8013
|
||||
/* 0C6CD8 800C60D8 2484A800 */ addiu $a0, %lo(piThread) # addiu $a0, $a0, -0x5800
|
||||
/* 0C6CDC 800C60DC 24080001 */ li $t0, 1
|
||||
/* 0C6CE0 800C60E0 254AAAB0 */ addiu $t2, %lo(D_8012AAB0) # addiu $t2, $t2, -0x5550
|
||||
/* 0C6CE4 800C60E4 256BD1E8 */ addiu $t3, %lo(D_8012D1E8) # addiu $t3, $t3, -0x2e18
|
||||
/* 0C6CE8 800C60E8 258C25A0 */ addiu $t4, %lo(D_800D25A0) # addiu $t4, $t4, 0x25a0
|
||||
/* 0C6CEC 800C60EC 25AD2680 */ addiu $t5, %lo(D_800D2680) # addiu $t5, $t5, 0x2680
|
||||
/* 0C6CF0 800C60F0 25CEAAB0 */ addiu $t6, %lo(D_8012AAB0) # addiu $t6, $t6, -0x5550
|
||||
/* 0C6CF4 800C60F4 3C06800D */ lui $a2, %hi(D_800D2760) # $a2, 0x800d
|
||||
/* 0C6CE0 800C60E0 254AAAB0 */ addiu $t2, %lo(piEventQueue) # addiu $t2, $t2, -0x5550
|
||||
/* 0C6CE4 800C60E4 256BD1E8 */ addiu $t3, %lo(piAccessQueue) # addiu $t3, $t3, -0x2e18
|
||||
/* 0C6CE8 800C60E8 258C25A0 */ addiu $t4, %lo(osPiRawStartDma) # addiu $t4, $t4, 0x25a0
|
||||
/* 0C6CEC 800C60EC 25AD2680 */ addiu $t5, %lo(osEPiRawStartDma) # addiu $t5, $t5, 0x2680
|
||||
/* 0C6CF0 800C60F0 25CEAAB0 */ addiu $t6, %lo(piEventQueue) # addiu $t6, $t6, -0x5550
|
||||
/* 0C6CF4 800C60F4 3C06800D */ lui $a2, %hi(__osDevMgrMain) # $a2, 0x800d
|
||||
/* 0C6CF8 800C60F8 AFA2002C */ sw $v0, 0x2c($sp)
|
||||
/* 0C6CFC 800C60FC AE080000 */ sw $t0, ($s0)
|
||||
/* 0C6D00 800C6100 AE040004 */ sw $a0, 4($s0)
|
||||
@@ -70,16 +70,16 @@ glabel osCreatePiManager
|
||||
/* 0C6D08 800C6108 AE0B0010 */ sw $t3, 0x10($s0)
|
||||
/* 0C6D0C 800C610C AE0C0014 */ sw $t4, 0x14($s0)
|
||||
/* 0C6D10 800C6110 AE0D0018 */ sw $t5, 0x18($s0)
|
||||
/* 0C6D14 800C6114 24C62760 */ addiu $a2, %lo(D_800D2760) # addiu $a2, $a2, 0x2760
|
||||
/* 0C6D14 800C6114 24C62760 */ addiu $a2, %lo(__osDevMgrMain) # addiu $a2, $a2, 0x2760
|
||||
/* 0C6D18 800C6118 AFAE0010 */ sw $t6, 0x10($sp)
|
||||
/* 0C6D1C 800C611C 00002825 */ move $a1, $zero
|
||||
/* 0C6D20 800C6120 02003825 */ move $a3, $s0
|
||||
/* 0C6D24 800C6124 AE090008 */ sw $t1, 8($s0)
|
||||
/* 0C6D28 800C6128 0C032214 */ jal osCreateThread
|
||||
/* 0C6D2C 800C612C AFAF0014 */ sw $t7, 0x14($sp)
|
||||
/* 0C6D30 800C6130 3C048013 */ lui $a0, %hi(D_8012A800) # $a0, 0x8013
|
||||
/* 0C6D30 800C6130 3C048013 */ lui $a0, %hi(piThread) # $a0, 0x8013
|
||||
/* 0C6D34 800C6134 0C032268 */ jal osStartThread
|
||||
/* 0C6D38 800C6138 2484A800 */ addiu $a0, %lo(D_8012A800) # addiu $a0, $a0, -0x5800
|
||||
/* 0C6D38 800C6138 2484A800 */ addiu $a0, %lo(piThread) # addiu $a0, $a0, -0x5800
|
||||
/* 0C6D3C 800C613C 8FA4002C */ lw $a0, 0x2c($sp)
|
||||
/* 0C6D40 800C6140 0C034960 */ jal __osRestoreInt
|
||||
/* 0C6D44 800C6144 00000000 */ nop
|
||||
|
||||
@@ -1,97 +0,0 @@
|
||||
glabel osCreatePiManager
|
||||
/* 0C6C00 800C6000 27BDFFD0 */ addiu $sp, $sp, -0x30
|
||||
/* 0C6C04 800C6004 AFB00020 */ sw $s0, 0x20($sp)
|
||||
/* 0C6C08 800C6008 3C10800E */ lui $s0, %hi(__osPiDevMgr) # $s0, 0x800e
|
||||
/* 0C6C0C 800C600C 26103740 */ addiu $s0, %lo(__osPiDevMgr) # addiu $s0, $s0, 0x3740
|
||||
/* 0C6C10 800C6010 8E0E0000 */ lw $t6, ($s0)
|
||||
/* 0C6C14 800C6014 AFBF0024 */ sw $ra, 0x24($sp)
|
||||
/* 0C6C18 800C6018 AFA40030 */ sw $a0, 0x30($sp)
|
||||
/* 0C6C1C 800C601C AFA50034 */ sw $a1, 0x34($sp)
|
||||
/* 0C6C20 800C6020 15C0004F */ bnez $t6, .L800C6160
|
||||
/* 0C6C24 800C6024 AFA60038 */ sw $a2, 0x38($sp)
|
||||
/* 0C6C28 800C6028 00A02025 */ move $a0, $a1
|
||||
/* 0C6C2C 800C602C 00C02825 */ move $a1, $a2
|
||||
/* 0C6C30 800C6030 0C032208 */ jal osCreateMesgQueue
|
||||
/* 0C6C34 800C6034 00E03025 */ move $a2, $a3
|
||||
/* 0C6C38 800C6038 3C048013 */ lui $a0, %hi(D_8012AAB0) # $a0, 0x8013
|
||||
/* 0C6C3C 800C603C 3C058013 */ lui $a1, %hi(D_8012AAC8) # $a1, 0x8013
|
||||
/* 0C6C40 800C6040 24A5AAC8 */ addiu $a1, %lo(D_8012AAC8) # addiu $a1, $a1, -0x5538
|
||||
/* 0C6C44 800C6044 2484AAB0 */ addiu $a0, %lo(D_8012AAB0) # addiu $a0, $a0, -0x5550
|
||||
/* 0C6C48 800C6048 0C032208 */ jal osCreateMesgQueue
|
||||
/* 0C6C4C 800C604C 24060001 */ li $a2, 1
|
||||
/* 0C6C50 800C6050 3C0F800E */ lui $t7, %hi(D_800E4800) # $t7, 0x800e
|
||||
/* 0C6C54 800C6054 8DEF4800 */ lw $t7, %lo(D_800E4800)($t7)
|
||||
/* 0C6C58 800C6058 00000000 */ nop
|
||||
/* 0C6C5C 800C605C 15E00003 */ bnez $t7, .L800C606C
|
||||
/* 0C6C60 800C6060 00000000 */ nop
|
||||
/* 0C6C64 800C6064 0C034920 */ jal __osPiCreateAccessQueue
|
||||
/* 0C6C68 800C6068 00000000 */ nop
|
||||
.L800C606C:
|
||||
/* 0C6C6C 800C606C 3C058013 */ lui $a1, %hi(D_8012AAB0) # $a1, 0x8013
|
||||
/* 0C6C70 800C6070 3C062222 */ lui $a2, (0x22222222 >> 16) # lui $a2, 0x2222
|
||||
/* 0C6C74 800C6074 34C62222 */ ori $a2, (0x22222222 & 0xFFFF) # ori $a2, $a2, 0x2222
|
||||
/* 0C6C78 800C6078 24A5AAB0 */ addiu $a1, %lo(D_8012AAB0) # addiu $a1, $a1, -0x5550
|
||||
/* 0C6C7C 800C607C 0C0332EC */ jal osSetEventMesg
|
||||
/* 0C6C80 800C6080 24040008 */ li $a0, 8
|
||||
/* 0C6C84 800C6084 2418FFFF */ li $t8, -1
|
||||
/* 0C6C88 800C6088 AFB80028 */ sw $t8, 0x28($sp)
|
||||
/* 0C6C8C 800C608C 0C034950 */ jal osGetThreadPri
|
||||
/* 0C6C90 800C6090 00002025 */ move $a0, $zero
|
||||
/* 0C6C94 800C6094 8FB90030 */ lw $t9, 0x30($sp)
|
||||
/* 0C6C98 800C6098 00002025 */ move $a0, $zero
|
||||
/* 0C6C9C 800C609C 0059082A */ slt $at, $v0, $t9
|
||||
/* 0C6CA0 800C60A0 10200003 */ beqz $at, .L800C60B0
|
||||
/* 0C6CA4 800C60A4 03202825 */ move $a1, $t9
|
||||
/* 0C6CA8 800C60A8 0C033210 */ jal osSetThreadPri
|
||||
/* 0C6CAC 800C60AC AFA20028 */ sw $v0, 0x28($sp)
|
||||
.L800C60B0:
|
||||
/* 0C6CB0 800C60B0 0C034958 */ jal __osDisableInt
|
||||
/* 0C6CB4 800C60B4 00000000 */ nop
|
||||
/* 0C6CB8 800C60B8 8FA90034 */ lw $t1, 0x34($sp)
|
||||
/* 0C6CBC 800C60BC 8FAF0030 */ lw $t7, 0x30($sp)
|
||||
/* 0C6CC0 800C60C0 3C048013 */ lui $a0, %hi(D_8012A800) # $a0, 0x8013
|
||||
/* 0C6CC4 800C60C4 3C0A8013 */ lui $t2, %hi(D_8012AAB0) # $t2, 0x8013
|
||||
/* 0C6CC8 800C60C8 3C0B8013 */ lui $t3, %hi(D_8012D1E8) # $t3, 0x8013
|
||||
/* 0C6CCC 800C60CC 3C0C800D */ lui $t4, %hi(D_800D25A0) # $t4, 0x800d
|
||||
/* 0C6CD0 800C60D0 3C0D800D */ lui $t5, %hi(D_800D2680) # $t5, 0x800d
|
||||
/* 0C6CD4 800C60D4 3C0E8013 */ lui $t6, %hi(D_8012AAB0) # $t6, 0x8013
|
||||
/* 0C6CD8 800C60D8 2484A800 */ addiu $a0, %lo(D_8012A800) # addiu $a0, $a0, -0x5800
|
||||
/* 0C6CDC 800C60DC 24080001 */ li $t0, 1
|
||||
/* 0C6CE0 800C60E0 254AAAB0 */ addiu $t2, %lo(D_8012AAB0) # addiu $t2, $t2, -0x5550
|
||||
/* 0C6CE4 800C60E4 256BD1E8 */ addiu $t3, %lo(D_8012D1E8) # addiu $t3, $t3, -0x2e18
|
||||
/* 0C6CE8 800C60E8 258C25A0 */ addiu $t4, %lo(D_800D25A0) # addiu $t4, $t4, 0x25a0
|
||||
/* 0C6CEC 800C60EC 25AD2680 */ addiu $t5, %lo(D_800D2680) # addiu $t5, $t5, 0x2680
|
||||
/* 0C6CF0 800C60F0 25CEAAB0 */ addiu $t6, %lo(D_8012AAB0) # addiu $t6, $t6, -0x5550
|
||||
/* 0C6CF4 800C60F4 3C06800D */ lui $a2, %hi(D_800D2760) # $a2, 0x800d
|
||||
/* 0C6CF8 800C60F8 AFA2002C */ sw $v0, 0x2c($sp)
|
||||
/* 0C6CFC 800C60FC AE080000 */ sw $t0, ($s0)
|
||||
/* 0C6D00 800C6100 AE040004 */ sw $a0, 4($s0)
|
||||
/* 0C6D04 800C6104 AE0A000C */ sw $t2, 0xc($s0)
|
||||
/* 0C6D08 800C6108 AE0B0010 */ sw $t3, 0x10($s0)
|
||||
/* 0C6D0C 800C610C AE0C0014 */ sw $t4, 0x14($s0)
|
||||
/* 0C6D10 800C6110 AE0D0018 */ sw $t5, 0x18($s0)
|
||||
/* 0C6D14 800C6114 24C62760 */ addiu $a2, %lo(D_800D2760) # addiu $a2, $a2, 0x2760
|
||||
/* 0C6D18 800C6118 AFAE0010 */ sw $t6, 0x10($sp)
|
||||
/* 0C6D1C 800C611C 00002825 */ move $a1, $zero
|
||||
/* 0C6D20 800C6120 02003825 */ move $a3, $s0
|
||||
/* 0C6D24 800C6124 AE090008 */ sw $t1, 8($s0)
|
||||
/* 0C6D28 800C6128 0C032214 */ jal osCreateThread
|
||||
/* 0C6D2C 800C612C AFAF0014 */ sw $t7, 0x14($sp)
|
||||
/* 0C6D30 800C6130 3C048013 */ lui $a0, %hi(D_8012A800) # $a0, 0x8013
|
||||
/* 0C6D34 800C6134 0C032268 */ jal osStartThread
|
||||
/* 0C6D38 800C6138 2484A800 */ addiu $a0, %lo(D_8012A800) # addiu $a0, $a0, -0x5800
|
||||
/* 0C6D3C 800C613C 8FA4002C */ lw $a0, 0x2c($sp)
|
||||
/* 0C6D40 800C6140 0C034960 */ jal __osRestoreInt
|
||||
/* 0C6D44 800C6144 00000000 */ nop
|
||||
/* 0C6D48 800C6148 8FB80028 */ lw $t8, 0x28($sp)
|
||||
/* 0C6D4C 800C614C 2401FFFF */ li $at, -1
|
||||
/* 0C6D50 800C6150 13010003 */ beq $t8, $at, .L800C6160
|
||||
/* 0C6D54 800C6154 00002025 */ move $a0, $zero
|
||||
/* 0C6D58 800C6158 0C033210 */ jal osSetThreadPri
|
||||
/* 0C6D5C 800C615C 03002825 */ move $a1, $t8
|
||||
.L800C6160:
|
||||
/* 0C6D60 800C6160 8FBF0024 */ lw $ra, 0x24($sp)
|
||||
/* 0C6D64 800C6164 8FB00020 */ lw $s0, 0x20($sp)
|
||||
/* 0C6D68 800C6168 03E00008 */ jr $ra
|
||||
/* 0C6D6C 800C616C 27BD0030 */ addiu $sp, $sp, 0x30
|
||||
|
||||
+1
-1
@@ -9210,7 +9210,7 @@ glabel D_800E47B0
|
||||
.word 0x000E0204
|
||||
.word 0x00000002
|
||||
|
||||
glabel D_800E4800
|
||||
glabel __osPiAccessQueueEnabled
|
||||
.word 0x00000000
|
||||
.word 0x00000000
|
||||
.word 0x00000000
|
||||
|
||||
Executable
+13
@@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
|
||||
shopt -s globstar
|
||||
|
||||
if [ "$#" -ne "1" ];
|
||||
then
|
||||
echo "usage: $0 name"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#echo "Replace $1 with $2?"
|
||||
#read
|
||||
grep -r "$1" asm/**/*.s src/**/*.c lib/**/*.{c,s} include/*.h data/dkr.data.s undefined_syms.txt
|
||||
@@ -1,65 +0,0 @@
|
||||
glabel D_800D25A0
|
||||
/* 0D31A0 800D25A0 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* 0D31A4 800D25A4 AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* 0D31A8 800D25A8 AFA40028 */ sw $a0, 0x28($sp)
|
||||
/* 0D31AC 800D25AC AFA5002C */ sw $a1, 0x2c($sp)
|
||||
/* 0D31B0 800D25B0 AFA60030 */ sw $a2, 0x30($sp)
|
||||
/* 0D31B4 800D25B4 AFA70034 */ sw $a3, 0x34($sp)
|
||||
/* 0D31B8 800D25B8 AFB10018 */ sw $s1, 0x18($sp)
|
||||
/* 0D31BC 800D25BC AFB00014 */ sw $s0, 0x14($sp)
|
||||
/* 0D31C0 800D25C0 3C0EA460 */ lui $t6, %hi(D_A4600010) # $t6, 0xa460
|
||||
/* 0D31C4 800D25C4 8DD00010 */ lw $s0, %lo(D_A4600010)($t6)
|
||||
/* 0D31C8 800D25C8 320F0003 */ andi $t7, $s0, 3
|
||||
/* 0D31CC 800D25CC 11E00006 */ beqz $t7, .L800D25E8
|
||||
/* 0D31D0 800D25D0 00000000 */ nop
|
||||
.L800D25D4:
|
||||
/* 0D31D4 800D25D4 3C18A460 */ lui $t8, %hi(D_A4600010) # $t8, 0xa460
|
||||
/* 0D31D8 800D25D8 8F100010 */ lw $s0, %lo(D_A4600010)($t8)
|
||||
/* 0D31DC 800D25DC 32190003 */ andi $t9, $s0, 3
|
||||
/* 0D31E0 800D25E0 1720FFFC */ bnez $t9, .L800D25D4
|
||||
/* 0D31E4 800D25E4 00000000 */ nop
|
||||
.L800D25E8:
|
||||
/* 0D31E8 800D25E8 0C03233C */ jal osVirtualToPhysical
|
||||
/* 0D31EC 800D25EC 8FA40030 */ lw $a0, 0x30($sp)
|
||||
/* 0D31F0 800D25F0 3C08A460 */ lui $t0, 0xa460
|
||||
/* 0D31F4 800D25F4 AD020000 */ sw $v0, ($t0)
|
||||
/* 0D31F8 800D25F8 3C098000 */ lui $t1, %hi(osRomBase) # $t1, 0x8000
|
||||
/* 0D31FC 800D25FC 8D290308 */ lw $t1, %lo(osRomBase)($t1)
|
||||
/* 0D3200 800D2600 8FAA002C */ lw $t2, 0x2c($sp)
|
||||
/* 0D3204 800D2604 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff
|
||||
/* 0D3208 800D2608 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff
|
||||
/* 0D320C 800D260C 012A5825 */ or $t3, $t1, $t2
|
||||
/* 0D3210 800D2610 01616024 */ and $t4, $t3, $at
|
||||
/* 0D3214 800D2614 3C0DA460 */ lui $t5, %hi(D_A4600004) # $t5, 0xa460
|
||||
/* 0D3218 800D2618 ADAC0004 */ sw $t4, %lo(D_A4600004)($t5)
|
||||
/* 0D321C 800D261C 8FB10028 */ lw $s1, 0x28($sp)
|
||||
/* 0D3220 800D2620 12200005 */ beqz $s1, .L800D2638
|
||||
/* 0D3224 800D2624 24010001 */ li $at, 1
|
||||
/* 0D3228 800D2628 12210008 */ beq $s1, $at, .L800D264C
|
||||
/* 0D322C 800D262C 00000000 */ nop
|
||||
/* 0D3230 800D2630 1000000B */ b .L800D2660
|
||||
/* 0D3234 800D2634 00000000 */ nop
|
||||
.L800D2638:
|
||||
/* 0D3238 800D2638 8FAE0034 */ lw $t6, 0x34($sp)
|
||||
/* 0D323C 800D263C 3C18A460 */ lui $t8, %hi(D_A460000C) # $t8, 0xa460
|
||||
/* 0D3240 800D2640 25CFFFFF */ addiu $t7, $t6, -1
|
||||
/* 0D3244 800D2644 10000008 */ b .L800D2668
|
||||
/* 0D3248 800D2648 AF0F000C */ sw $t7, %lo(D_A460000C)($t8)
|
||||
.L800D264C:
|
||||
/* 0D324C 800D264C 8FB90034 */ lw $t9, 0x34($sp)
|
||||
/* 0D3250 800D2650 3C09A460 */ lui $t1, %hi(D_A4600008) # $t1, 0xa460
|
||||
/* 0D3254 800D2654 2728FFFF */ addiu $t0, $t9, -1
|
||||
/* 0D3258 800D2658 10000003 */ b .L800D2668
|
||||
/* 0D325C 800D265C AD280008 */ sw $t0, %lo(D_A4600008)($t1)
|
||||
.L800D2660:
|
||||
/* 0D3260 800D2660 10000002 */ b .L800D266C
|
||||
/* 0D3264 800D2664 2402FFFF */ li $v0, -1
|
||||
.L800D2668:
|
||||
/* 0D3268 800D2668 00001025 */ move $v0, $zero
|
||||
.L800D266C:
|
||||
/* 0D326C 800D266C 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* 0D3270 800D2670 8FB00014 */ lw $s0, 0x14($sp)
|
||||
/* 0D3274 800D2674 8FB10018 */ lw $s1, 0x18($sp)
|
||||
/* 0D3278 800D2678 03E00008 */ jr $ra
|
||||
/* 0D327C 800D267C 27BD0028 */ addiu $sp, $sp, 0x28
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
glabel D_800D2760
|
||||
glabel __osDevMgrMain
|
||||
/* 0D3360 800D2760 27BDFFC0 */ addiu $sp, $sp, -0x40
|
||||
/* 0D3364 800D2764 AFA40040 */ sw $a0, 0x40($sp)
|
||||
/* 0D3368 800D2768 8FAE0040 */ lw $t6, 0x40($sp)
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
glabel D_800D2680
|
||||
glabel osEPiRawStartDma
|
||||
/* 0D3280 800D2680 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* 0D3284 800D2684 AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* 0D3288 800D2688 AFA40028 */ sw $a0, 0x28($sp)
|
||||
@@ -8,26 +8,26 @@
|
||||
GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3020/func_800D2470.s")
|
||||
|
||||
#define PI_Q_BUF_LEN 1
|
||||
extern u32 D_800E4800;//__osPiAccessQueueEnabled
|
||||
extern u32 __osPiAccessQueueEnabled;//__osPiAccessQueueEnabled
|
||||
extern OSMesg D_8012D1E0[PI_Q_BUF_LEN];//piAccessBuf
|
||||
extern OSMesgQueue D_8012D1E8; //__osPiAccessQueue
|
||||
extern OSMesgQueue piAccessQueue; //__osPiAccessQueue
|
||||
void __osPiCreateAccessQueue(void)
|
||||
{
|
||||
|
||||
D_800E4800 = 1;
|
||||
osCreateMesgQueue(&D_8012D1E8, D_8012D1E0, PI_Q_BUF_LEN);
|
||||
osSendMesg(&D_8012D1E8, NULL, OS_MESG_NOBLOCK);
|
||||
__osPiAccessQueueEnabled = 1;
|
||||
osCreateMesgQueue(&piAccessQueue, D_8012D1E0, PI_Q_BUF_LEN);
|
||||
osSendMesg(&piAccessQueue, NULL, OS_MESG_NOBLOCK);
|
||||
}
|
||||
|
||||
void __osPiGetAccess(void)
|
||||
{
|
||||
OSMesg dummyMesg;
|
||||
if (!D_800E4800)
|
||||
if (!__osPiAccessQueueEnabled)
|
||||
__osPiCreateAccessQueue();
|
||||
osRecvMesg(&D_8012D1E8, &dummyMesg, OS_MESG_BLOCK);
|
||||
osRecvMesg(&piAccessQueue, &dummyMesg, OS_MESG_BLOCK);
|
||||
}
|
||||
|
||||
void __osPiRelAccess(void)
|
||||
{
|
||||
osSendMesg(&D_8012D1E8, NULL, OS_MESG_NOBLOCK);
|
||||
osSendMesg(&piAccessQueue, NULL, OS_MESG_NOBLOCK);
|
||||
}
|
||||
@@ -4,12 +4,39 @@
|
||||
#include "types.h"
|
||||
#include "macros.h"
|
||||
#include "libultra_internal.h"
|
||||
#include "hardware.h"
|
||||
|
||||
GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3160/__osDisableInt.s")
|
||||
GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3160/__osRestoreInt.s")
|
||||
GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3160/D_800D25A0.s")
|
||||
GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3160/D_800D2680.s")
|
||||
GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3160/D_800D2760.s")
|
||||
|
||||
s32 osPiRawStartDma(s32 direction, u32 devAddr, void *dramAddr, u32 size)
|
||||
{
|
||||
register int status;
|
||||
status = HW_REG(PI_STATUS_REG, u32);
|
||||
while (status & (PI_STATUS_BUSY | PI_STATUS_IOBUSY | PI_STATUS_ERROR)) {
|
||||
status = HW_REG(PI_STATUS_REG, u32);
|
||||
}
|
||||
|
||||
HW_REG(PI_DRAM_ADDR_REG, void *) = (void *) osVirtualToPhysical(dramAddr);
|
||||
|
||||
HW_REG(PI_CART_ADDR_REG, void *) = (void *) (((uintptr_t) osRomBase | devAddr) & 0x1fffffff);
|
||||
|
||||
switch (direction) {
|
||||
case OS_READ:
|
||||
HW_REG(PI_WR_LEN_REG, u32) = size - 1;
|
||||
break;
|
||||
case OS_WRITE:
|
||||
HW_REG(PI_RD_LEN_REG, u32) = size - 1;
|
||||
break;
|
||||
default:
|
||||
return -1;
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3160/osEPiRawStartDma.s")
|
||||
GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3160/__osDevMgrMain.s")
|
||||
GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3160/__osViInit.s")
|
||||
GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3160/func_800D2C60.s")
|
||||
|
||||
|
||||
+50
-1
@@ -3,6 +3,18 @@
|
||||
|
||||
#include "types.h"
|
||||
#include "macros.h"
|
||||
#include "libultra_internal.h"
|
||||
|
||||
#define OS_PIM_STACKSIZE 4096
|
||||
|
||||
extern u32 __osPiAccessQueueEnabled; //__osPiAccessQueueEnabled
|
||||
extern OSDevMgr __osPiDevMgr;
|
||||
extern u8 piThreadStack[OS_PIM_STACKSIZE];//piThreadStack
|
||||
extern OSThread piThread; //piThread
|
||||
extern OSMesgQueue piEventQueue; //piEventQueue
|
||||
extern OSMesg piEventBuf[1]; //piEventBuf
|
||||
extern OSMesgQueue piAccessQueue; //piAccessQueue
|
||||
void __osDevMgrMain(void);
|
||||
|
||||
extern s32* D_800E3040;
|
||||
extern s32* D_800E3044;
|
||||
@@ -233,7 +245,44 @@ GLOBAL_ASM("asm/non_matchings/unknown_0B8920/func_800C5AA0.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_0B8920/func_800C5B58.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_0B8920/func_800C5F60.s")
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_0B8920/osCreatePiManager.s")
|
||||
void osCreatePiManager(OSPri pri, OSMesgQueue *cmdQ, OSMesg *cmdBuf, s32 cmdMsgCnt)
|
||||
{
|
||||
u32 savedMask;
|
||||
OSPri oldPri;
|
||||
OSPri myPri;
|
||||
if (!__osPiDevMgr.active)
|
||||
{
|
||||
osCreateMesgQueue(cmdQ, cmdBuf, cmdMsgCnt);
|
||||
osCreateMesgQueue(&piEventQueue, (OSMesg*)&piEventBuf, 1);
|
||||
if (!__osPiAccessQueueEnabled)
|
||||
__osPiCreateAccessQueue();
|
||||
osSetEventMesg(OS_EVENT_PI, &piEventQueue, (OSMesg)0x22222222);
|
||||
oldPri = -1;
|
||||
myPri = osGetThreadPri(NULL);
|
||||
if (myPri < pri)
|
||||
{
|
||||
oldPri = myPri;
|
||||
osSetThreadPri(NULL, pri);
|
||||
}
|
||||
savedMask = __osDisableInt();
|
||||
__osPiDevMgr.active = 1;
|
||||
__osPiDevMgr.thread = &piThread;
|
||||
__osPiDevMgr.cmdQueue = cmdQ;
|
||||
__osPiDevMgr.evtQueue = &piEventQueue;
|
||||
__osPiDevMgr.acsQueue = &piAccessQueue;
|
||||
__osPiDevMgr.dma = osPiRawStartDma;
|
||||
__osPiDevMgr.edma = osEPiRawStartDma;
|
||||
|
||||
osCreateThread(&piThread, 0, __osDevMgrMain, &__osPiDevMgr, &piThreadStack[OS_PIM_STACKSIZE], pri);
|
||||
osStartThread(&piThread);
|
||||
__osRestoreInt(savedMask);
|
||||
if (oldPri != -1)
|
||||
{
|
||||
osSetThreadPri(NULL, oldPri);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void func_800C6170(void) {
|
||||
D_800E3760 = func_80070C9C(0x2800, 0xFF);
|
||||
|
||||
+9
-8
@@ -60,9 +60,9 @@ D_800CC3C0 = 0x800CC3C0;
|
||||
D_800CC4E0 = 0x800CC4E0;
|
||||
D_800CC514 = 0x800CC514;
|
||||
viMgrMain = 0x800D1B08;
|
||||
D_800D25A0 = 0x800D25A0;
|
||||
D_800D2680 = 0x800D2680;
|
||||
D_800D2760 = 0x800D2760;
|
||||
osPiRawStartDma = 0x800D25A0;
|
||||
osEPiRawStartDma = 0x800D2680;
|
||||
__osDevMgrMain = 0x800D2760;
|
||||
__osExceptionPreamble = 0x800D2CB0;
|
||||
__osException = 0x800D2CC0;
|
||||
__osCleanupThread = 0x800D35A0;
|
||||
@@ -780,7 +780,7 @@ D_800E46C0 = 0x800E46C0;
|
||||
D_800E4710 = 0x800E4710;
|
||||
D_800E4760 = 0x800E4760;
|
||||
D_800E47B0 = 0x800E47B0;
|
||||
D_800E4800 = 0x800E4800;
|
||||
__osPiAccessQueueEnabled = 0x800E4800;
|
||||
D_800E4810 = 0x800E4810;
|
||||
D_800E4870 = 0x800E4870;
|
||||
D_800E4874 = 0x800E4874;
|
||||
@@ -2692,6 +2692,7 @@ D_8012991C = 0x8012991C;
|
||||
D_80129920 = 0x80129920;
|
||||
D_80129924 = 0x80129924;
|
||||
D_801299B0 = 0x801299B0;
|
||||
piThreadStack = 0x80129AB0;
|
||||
D_80129BB0 = 0x80129BB0;
|
||||
D_80129FB0 = 0x80129FB0;
|
||||
D_80129FBC = 0x80129FBC;
|
||||
@@ -2799,9 +2800,9 @@ D_8012A7E8 = 0x8012A7E8;
|
||||
D_8012A7EC = 0x8012A7EC;
|
||||
D_8012A7F0 = 0x8012A7F0;
|
||||
D_8012A7F4 = 0x8012A7F4;
|
||||
D_8012A800 = 0x8012A800;
|
||||
D_8012AAB0 = 0x8012AAB0;
|
||||
D_8012AAC8 = 0x8012AAC8;
|
||||
piThread = 0x8012A800;
|
||||
piEventQueue = 0x8012AAB0;
|
||||
piEventBuf = 0x8012AAC8;
|
||||
gzip_bit_buffer = 0x8012AAD0;
|
||||
gzip_num_bits = 0x8012AAD4;
|
||||
D_8012AAD8 = 0x8012AAD8;
|
||||
@@ -2832,7 +2833,7 @@ viCounterMsg = 0x8012D178;
|
||||
D_8012D190 = 0x8012D190;
|
||||
D_8012D1A0 = 0x8012D1A0;
|
||||
D_8012D1E0 = 0x8012D1E0;
|
||||
D_8012D1E8 = 0x8012D1E8;
|
||||
piAccessQueue = 0x8012D1E8;
|
||||
__osCurrentTime = 0x8012D220;
|
||||
D_8012D224 = 0x8012D224;
|
||||
__osBaseCounter = 0x8012D228;
|
||||
|
||||
Reference in New Issue
Block a user