From 3d4d5d6d974b176263235c938d7551ba23089921 Mon Sep 17 00:00:00 2001 From: gijs Date: Sun, 22 Oct 2023 01:29:30 +0200 Subject: [PATCH] Decompile `func_8007ABAC` Rename `D_800AF0D0` to `obThreadUnpackProc` Rename `D_800AF280` to `obStackUnpackProc` Rename `D_800AF300` to `obUnpackMesgBuf` --- linker_scripts/symbols/addr.txt | 4 ++++ src/_ob_rabid_jar.c | 15 ++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/linker_scripts/symbols/addr.txt b/linker_scripts/symbols/addr.txt index 81135d8..b7bb228 100644 --- a/linker_scripts/symbols/addr.txt +++ b/linker_scripts/symbols/addr.txt @@ -109,6 +109,10 @@ nuContPakGetFree = 0x8008A730; nuContPakOpen = 0x8008A6E0; +obThreadUnpackProc = 0x800AF0D0; // size:0x1B0 +obStackUnpackProc = 0x800AF280; // size:0x80 +obUnpackMesgBuf = 0x800AF300; + obCurrentTime = 0x800C47D0; obSetCurrentTime = 0x8009C7C0; // rom:0x2CBC0 obGetCurrentTime = 0x8009C7CC; // rom:0x2CBCC diff --git a/src/_ob_rabid_jar.c b/src/_ob_rabid_jar.c index c54e0cc..316addd 100644 --- a/src/_ob_rabid_jar.c +++ b/src/_ob_rabid_jar.c @@ -60,6 +60,8 @@ extern s32 func_80173B60(s32); extern OSMesgQueue obUnpackQueue; +void UnpackProc(void*); + INCLUDE_ASM(const s32, "_ob_rabid_jar", __calls_loads_overlay_array); INCLUDE_ASM(const s32, "_ob_rabid_jar", func_80076150); @@ -455,7 +457,18 @@ void obSendUnpackMesg(OBUnpackMesg* msg) { osSendMesg(&obUnpackQueue, msg, OS_MESG_BLOCK); } -INCLUDE_ASM(const s32, "_ob_rabid_jar", func_8007ABAC); +extern OSThread obThreadUnpackProc; +extern OBUnpackMesg obUnpackMesgBuf[8]; + +extern DECLARE_STACK(obStackUnpackProc, 0x80); + +/* AFAC 8007ABAC */ +void func_8007ABAC(s32 arg0, s32 arg1) { + osCreateMesgQueue(&obUnpackQueue, (OSMesg)&obUnpackMesgBuf, 8); + osCreateThread(&obThreadUnpackProc, arg0, UnpackProc, NULL, STACK_START(obStackUnpackProc), arg1); + osStartThread(&obThreadUnpackProc); +} + /* B030 8007AC30 */ void UnpackProc(void* __unused) {