mirror of
https://github.com/n64decomp/perfect_dark.git
synced 2025-02-19 22:02:22 +00:00
Decompile __osPackRequestData
This commit is contained in:
parent
ced612bc20
commit
1aff259e6f
1
Makefile
1
Makefile
@ -75,6 +75,7 @@ $(B_DIR)/lib/ultra/io/ai.o: OPT_LVL := -O1
|
||||
$(B_DIR)/lib/ultra/io/aisetnextbuf.o: OPT_LVL := -O1
|
||||
$(B_DIR)/lib/ultra/io/conteeplongread.o: OPT_LVL := -O1
|
||||
$(B_DIR)/lib/ultra/io/contquery.o: OPT_LVL := -O1
|
||||
$(B_DIR)/lib/ultra/io/controller.o: OPT_LVL := -O1
|
||||
$(B_DIR)/lib/ultra/io/dpctr.o: OPT_LVL := -O1
|
||||
$(B_DIR)/lib/ultra/io/pigetcmdq.o: OPT_LVL := -O1
|
||||
$(B_DIR)/lib/ultra/io/pidma.o: OPT_LVL := -O1
|
||||
|
@ -66,7 +66,6 @@ extern u32 __osBaseCounter;
|
||||
extern u32 __osViIntrCount;
|
||||
extern OSMesgQueue __osPiAccessQueue;
|
||||
extern u32 __osContPifRam;
|
||||
extern u32 var8009c81c;
|
||||
extern u8 __osContLastCmd;
|
||||
extern u32 __osEepromTimer;
|
||||
extern u32 __osEepromTimerQ;
|
||||
|
@ -72,10 +72,10 @@ glabel __osPackReadData
|
||||
/* 4f510: 3c05800a */ lui $a1,%hi(__osContPifRam)
|
||||
/* 4f514: 24a5c7e0 */ addiu $a1,$a1,%lo(__osContPifRam)
|
||||
/* 4f518: 3c04800a */ lui $a0,%hi(__osContPifRam)
|
||||
/* 4f51c: 3c03800a */ lui $v1,%hi(var8009c81c)
|
||||
/* 4f51c: 3c03800a */ lui $v1,%hi(__osContPifRam+0x3c)
|
||||
/* 4f520: 27bdffe8 */ addiu $sp,$sp,-24
|
||||
/* 4f524: 00a01025 */ or $v0,$a1,$zero
|
||||
/* 4f528: 2463c81c */ addiu $v1,$v1,%lo(var8009c81c)
|
||||
/* 4f528: 2463c81c */ addiu $v1,$v1,%lo(__osContPifRam+0x3c)
|
||||
/* 4f52c: 2484c7e0 */ addiu $a0,$a0,%lo(__osContPifRam)
|
||||
.L0004f530:
|
||||
/* 4f530: 24840004 */ addiu $a0,$a0,0x4
|
||||
|
@ -1,23 +1,9 @@
|
||||
#include <libultra_internal.h>
|
||||
#include "data.h"
|
||||
|
||||
u32 __osContPifRam;
|
||||
u32 var8009c7e4;
|
||||
u32 var8009c7e8;
|
||||
u32 var8009c7ec;
|
||||
u32 var8009c7f0;
|
||||
u32 var8009c7f4;
|
||||
u32 var8009c7f8;
|
||||
u32 var8009c7fc;
|
||||
u32 var8009c800;
|
||||
u32 var8009c804;
|
||||
u32 var8009c808;
|
||||
u32 var8009c80c;
|
||||
u32 var8009c810;
|
||||
u32 var8009c814;
|
||||
u32 var8009c818;
|
||||
u32 var8009c81c;
|
||||
OSPifRam __osContPifRam;
|
||||
u8 __osContLastCmd;
|
||||
u8 __osMaxControllers;
|
||||
u32 var8009c824;
|
||||
u32 __osEepromTimer;
|
||||
u32 var8009c82c;
|
||||
@ -195,70 +181,33 @@ glabel __osContGetInitData
|
||||
/* 4abbc: a08b0000 */ sb $t3,0x0($a0)
|
||||
);
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel __osPackRequestData
|
||||
/* 4abc0: 27bdfff0 */ addiu $sp,$sp,-16
|
||||
/* 4abc4: 308400ff */ andi $a0,$a0,0xff
|
||||
/* 4abc8: afa00000 */ sw $zero,0x0($sp)
|
||||
.L0004abcc:
|
||||
/* 4abcc: 8fae0000 */ lw $t6,0x0($sp)
|
||||
/* 4abd0: 8fb80000 */ lw $t8,0x0($sp)
|
||||
/* 4abd4: 3c01800a */ lui $at,%hi(__osContPifRam)
|
||||
/* 4abd8: 000e7880 */ sll $t7,$t6,0x2
|
||||
/* 4abdc: 002f0821 */ addu $at,$at,$t7
|
||||
/* 4abe0: ac20c7e0 */ sw $zero,%lo(__osContPifRam)($at)
|
||||
/* 4abe4: 27190001 */ addiu $t9,$t8,0x1
|
||||
/* 4abe8: 2b21000f */ slti $at,$t9,0xf
|
||||
/* 4abec: 1420fff7 */ bnez $at,.L0004abcc
|
||||
/* 4abf0: afb90000 */ sw $t9,0x0($sp)
|
||||
/* 4abf4: 3c19800a */ lui $t9,%hi(__osContLastCmd+0x1)
|
||||
/* 4abf8: 9339c821 */ lbu $t9,%lo(__osContLastCmd+0x1)($t9)
|
||||
/* 4abfc: 3c09800a */ lui $t1,%hi(__osContPifRam)
|
||||
/* 4ac00: 24080001 */ addiu $t0,$zero,0x1
|
||||
/* 4ac04: 3c01800a */ lui $at,%hi(var8009c81c)
|
||||
/* 4ac08: 2529c7e0 */ addiu $t1,$t1,%lo(__osContPifRam)
|
||||
/* 4ac0c: 240a00ff */ addiu $t2,$zero,0xff
|
||||
/* 4ac10: 240b0001 */ addiu $t3,$zero,0x1
|
||||
/* 4ac14: 240c0003 */ addiu $t4,$zero,0x3
|
||||
/* 4ac18: 240d00ff */ addiu $t5,$zero,0xff
|
||||
/* 4ac1c: 240e00ff */ addiu $t6,$zero,0xff
|
||||
/* 4ac20: 240f00ff */ addiu $t7,$zero,0xff
|
||||
/* 4ac24: 241800ff */ addiu $t8,$zero,0xff
|
||||
/* 4ac28: ac28c81c */ sw $t0,%lo(var8009c81c)($at)
|
||||
/* 4ac2c: afa9000c */ sw $t1,0xc($sp)
|
||||
/* 4ac30: a3aa0004 */ sb $t2,0x4($sp)
|
||||
/* 4ac34: a3ab0005 */ sb $t3,0x5($sp)
|
||||
/* 4ac38: a3ac0006 */ sb $t4,0x6($sp)
|
||||
/* 4ac3c: a3a40007 */ sb $a0,0x7($sp)
|
||||
/* 4ac40: a3ad0008 */ sb $t5,0x8($sp)
|
||||
/* 4ac44: a3ae0009 */ sb $t6,0x9($sp)
|
||||
/* 4ac48: a3af000a */ sb $t7,0xa($sp)
|
||||
/* 4ac4c: a3b8000b */ sb $t8,0xb($sp)
|
||||
/* 4ac50: 1b200013 */ blez $t9,.L0004aca0
|
||||
/* 4ac54: afa00000 */ sw $zero,0x0($sp)
|
||||
.L0004ac58:
|
||||
/* 4ac58: 27a90004 */ addiu $t1,$sp,0x4
|
||||
/* 4ac5c: 8d210000 */ lw $at,0x0($t1)
|
||||
/* 4ac60: 8fa8000c */ lw $t0,0xc($sp)
|
||||
/* 4ac64: 3c18800a */ lui $t8,%hi(__osContLastCmd+0x1)
|
||||
/* 4ac68: a9010000 */ swl $at,0x0($t0)
|
||||
/* 4ac6c: b9010003 */ swr $at,0x3($t0)
|
||||
/* 4ac70: 8d2b0004 */ lw $t3,0x4($t1)
|
||||
/* 4ac74: a90b0004 */ swl $t3,0x4($t0)
|
||||
/* 4ac78: b90b0007 */ swr $t3,0x7($t0)
|
||||
/* 4ac7c: 8fae0000 */ lw $t6,0x0($sp)
|
||||
/* 4ac80: 9318c821 */ lbu $t8,%lo(__osContLastCmd+0x1)($t8)
|
||||
/* 4ac84: 8fac000c */ lw $t4,0xc($sp)
|
||||
/* 4ac88: 25cf0001 */ addiu $t7,$t6,0x1
|
||||
/* 4ac8c: 01f8082a */ slt $at,$t7,$t8
|
||||
/* 4ac90: 258d0008 */ addiu $t5,$t4,0x8
|
||||
/* 4ac94: afaf0000 */ sw $t7,0x0($sp)
|
||||
/* 4ac98: 1420ffef */ bnez $at,.L0004ac58
|
||||
/* 4ac9c: afad000c */ sw $t5,0xc($sp)
|
||||
.L0004aca0:
|
||||
/* 4aca0: 8faa000c */ lw $t2,0xc($sp)
|
||||
/* 4aca4: 241900fe */ addiu $t9,$zero,0xfe
|
||||
/* 4aca8: 27bd0010 */ addiu $sp,$sp,0x10
|
||||
/* 4acac: 03e00008 */ jr $ra
|
||||
/* 4acb0: a1590000 */ sb $t9,0x0($t2)
|
||||
);
|
||||
void __osPackRequestData(u8 cmd)
|
||||
{
|
||||
u8 *ptr;
|
||||
__OSContRequestFormat requestformat;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < ARRLEN(__osContPifRam.ramarray); i++) {
|
||||
__osContPifRam.ramarray[i] = 0;
|
||||
}
|
||||
|
||||
__osContPifRam.pifstatus = CONT_CMD_EXE;
|
||||
|
||||
ptr = (u8 *)&__osContPifRam.ramarray;
|
||||
|
||||
requestformat.dummy = CONT_CMD_NOP;
|
||||
requestformat.txsize = CONT_CMD_REQUEST_STATUS_TX;
|
||||
requestformat.rxsize = CONT_CMD_REQUEST_STATUS_RX;
|
||||
requestformat.cmd = cmd;
|
||||
requestformat.typeh = CONT_CMD_NOP;
|
||||
requestformat.typel = CONT_CMD_NOP;
|
||||
requestformat.status = CONT_CMD_NOP;
|
||||
requestformat.dummy1 = CONT_CMD_NOP;
|
||||
|
||||
for (i = 0; i < __osMaxControllers; i++) {
|
||||
*(__OSContRequestFormat *)ptr = requestformat;
|
||||
ptr += sizeof(__OSContRequestFormat);
|
||||
}
|
||||
|
||||
ptr[0] = CONT_CMD_END;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user