diff --git a/src/_ob_past_brick.c b/src/_ob_past_brick.c index 11ab913..c3d4b33 100644 --- a/src/_ob_past_brick.c +++ b/src/_ob_past_brick.c @@ -4,7 +4,6 @@ INCLUDE_ASM(const s32, "_ob_past_brick", nuScCreateScheduler); -/* 192F0 80088EF0*/ OSMesgQueue* nuScGetAudioMQ() { return &nusched.audioRequestMQ; } @@ -15,25 +14,23 @@ OSMesgQueue* nuScGetGfxMQ() { INCLUDE_ASM(const s32, "_ob_past_brick", nuScEventHandler); -INCLUDE_ASM(const s32, "_ob_past_brick", nuScAddClient); +void nuScAddClient(NUScClient* client, OSMesgQueue* queue, NUScMsg type) { + s32 mask; -/* 19454 80089054 */ -// void nuScAddClient(Stack__dma_load_loop* arg0, OSMesgQueue* mq, s16 flags) -// { -// s32 mask = osSetIntMask(OS_IM_NONE); + mask = osSetIntMask(OS_IM_NONE); -// arg0->mq = mq; -// arg0->next = D_800E9178[0]; -// arg0->flags = flags; - -// D_800E9178[0] = arg0; - -// if ((flags & 2) && (nuScPreNMIFlag != 0)) { -// osSendMesg(mq, (u8*)(&D_800E9178) - 0x666, OS_MESG_NOBLOCK); -// } - -// osSetIntMask(mask); -// } + client->msgQ = queue; + client->next = nusched.clientList; + client->msgType = type; + + nusched.clientList = client; + + if ((type & NU_SC_PRENMI_MSG) && nuScPreNMIFlag) { + osSendMesg(queue, &nusched.prenmiMsg, OS_MESG_NOBLOCK); + } + + osSetIntMask(mask); +} INCLUDE_ASM(const s32, "_ob_past_brick", func_800890E4);