From 8dd10acbd680e433362eed3f7b39c60001bb0523 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Tue, 26 Jan 2021 23:36:51 +1000 Subject: [PATCH] Decompile __osSiCreateAccessQueue --- src/gvars/gvars.c | 2 +- src/include/gvars/gvars.h | 2 +- src/lib/ultra/io/siacs.c | 29 ++++++----------------------- 3 files changed, 8 insertions(+), 25 deletions(-) diff --git a/src/gvars/gvars.c b/src/gvars/gvars.c index d3fffbd18..5ed4e8839 100644 --- a/src/gvars/gvars.c +++ b/src/gvars/gvars.c @@ -14199,7 +14199,7 @@ u32 var8009c79c = 0; OSMesg piAccessBuf = NULL; u32 var8009c7a4 = 0; OSMesgQueue __osPiAccessQueue = {0}; -u32 var8009c7c0 = 0; +OSMesg siAccessBuf = NULL; u32 var8009c7c4 = 0; OSMesgQueue __osSiAccessQueue = {0}; u32 __osContPifRam = 0; diff --git a/src/include/gvars/gvars.h b/src/include/gvars/gvars.h index 859cb86fa..c72374c29 100644 --- a/src/include/gvars/gvars.h +++ b/src/include/gvars/gvars.h @@ -485,7 +485,7 @@ extern u32 var8009c788; extern u32 var8009c78c; extern OSMesg piAccessBuf; extern OSMesgQueue __osPiAccessQueue; -extern u32 var8009c7c0; +extern OSMesg siAccessBuf; extern OSMesgQueue __osSiAccessQueue; extern u32 __osContPifRam; extern u32 var8009c81c; diff --git a/src/lib/ultra/io/siacs.c b/src/lib/ultra/io/siacs.c index d25e2670b..a6ce4928e 100644 --- a/src/lib/ultra/io/siacs.c +++ b/src/lib/ultra/io/siacs.c @@ -2,29 +2,12 @@ #include "game/data/data_000000.h" #include "gvars/gvars.h" -GLOBAL_ASM( -glabel __osSiCreateAccessQueue -/* 4a810: 27bdffe8 */ addiu $sp,$sp,-24 -/* 4a814: afbf0014 */ sw $ra,0x14($sp) -/* 4a818: 240e0001 */ addiu $t6,$zero,0x1 -/* 4a81c: 3c018006 */ lui $at,%hi(__osSiAccessQueueEnabled) -/* 4a820: 3c04800a */ lui $a0,%hi(__osSiAccessQueue) -/* 4a824: 3c05800a */ lui $a1,%hi(var8009c7c0) -/* 4a828: ac2e0950 */ sw $t6,%lo(__osSiAccessQueueEnabled)($at) -/* 4a82c: 24a5c7c0 */ addiu $a1,$a1,%lo(var8009c7c0) -/* 4a830: 2484c7c8 */ addiu $a0,$a0,%lo(__osSiAccessQueue) -/* 4a834: 0c0120d0 */ jal osCreateMesgQueue -/* 4a838: 24060001 */ addiu $a2,$zero,0x1 -/* 4a83c: 3c04800a */ lui $a0,%hi(__osSiAccessQueue) -/* 4a840: 2484c7c8 */ addiu $a0,$a0,%lo(__osSiAccessQueue) -/* 4a844: 00002825 */ or $a1,$zero,$zero -/* 4a848: 0c012238 */ jal osSendMesg -/* 4a84c: 00003025 */ or $a2,$zero,$zero -/* 4a850: 8fbf0014 */ lw $ra,0x14($sp) -/* 4a854: 27bd0018 */ addiu $sp,$sp,0x18 -/* 4a858: 03e00008 */ jr $ra -/* 4a85c: 00000000 */ nop -); +void __osSiCreateAccessQueue(void) +{ + __osSiAccessQueueEnabled = 1; + osCreateMesgQueue(&__osSiAccessQueue, &siAccessBuf, 1); + osSendMesg(&__osSiAccessQueue, NULL, OS_MESG_NOBLOCK); +} void __osSiGetAccess(void) {