* matched func_802B7450_E20560

* libultra done

* 2 more

* 2 funcs

* fix

* moved macro to c file
This commit is contained in:
Unnunu 2022-12-17 17:19:52 +03:00 committed by GitHub
parent 03c7e0d80d
commit c081feb766
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 472 additions and 1371 deletions

View File

@ -83,8 +83,68 @@ void func_802B71E8_E202F8(void) {
}
}
s32 func_802B7450_E20560(void);
INCLUDE_ASM(s32, "E20110", func_802B7450_E20560);
// similar to check_for_interactables
s32 func_802B7450_E20560(void) {
CollisionStatus* collisionStatus = &gCollisionStatus;
PlayerStatus* playerStatus = &gPlayerStatus;
s32 curInteraction = collisionStatus->currentWall;
Npc* npc = playerStatus->encounteredNPC;
if (curInteraction == -1) {
s32 floor = gCollisionStatus.currentFloor;
if (floor >= 0 && (floor & COLLISION_WITH_ENTITY_BIT)) {
curInteraction = floor;
switch (get_entity_type(floor)) {
case ENTITY_TYPE_PADLOCK:
case ENTITY_TYPE_PADLOCK_RED_FRAME:
case ENTITY_TYPE_PADLOCK_RED_FACE:
case ENTITY_TYPE_PADLOCK_BLUE_FACE:
case ENTITY_TYPE_PUSH_BLOCK:
case ENTITY_TYPE_CHEST:
case ENTITY_TYPE_SIGNPOST:
curInteraction = -1;
break;
}
} else if (((playerStatus->flags & (PS_FLAGS_HAS_CONVERSATION_NPC | PS_FLAGS_INPUT_DISABLED)) == PS_FLAGS_HAS_CONVERSATION_NPC)
&& (npc != NULL) && (npc->flags & NPC_FLAG_10000000)) {
curInteraction = npc->npcID | COLLISION_WITH_NPC_BIT;
if (playerStatus->interactingWithID == curInteraction) {
return TRUE;
}
} else {
playerStatus->interactingWithID = -1;
playerStatus->flags &= ~PS_FLAGS_INTERACTED;
return FALSE;
}
} else {
if (!(curInteraction & COLLISION_WITH_ENTITY_BIT)) {
if (!(curInteraction & COLLISION_WITH_NPC_BIT)) {
if (!should_collider_allow_interact(curInteraction)) {
playerStatus->interactingWithID = -1;
playerStatus->flags &= ~PS_FLAGS_INTERACTED;
return FALSE;
}
}
} else {
if (!phys_can_player_interact()) {
playerStatus->interactingWithID = -1;
playerStatus->flags &= ~PS_FLAGS_INTERACTED;
return FALSE;
}
}
}
if (playerStatus->interactingWithID == curInteraction) {
if ((playerStatus->flags & PS_FLAGS_INTERACTED)) {
return FALSE;
}
} else {
playerStatus->flags &= ~PS_FLAGS_INTERACTED;
}
playerStatus->interactingWithID = curInteraction;
return TRUE;
}
void func_802B75E8_E206F8(void) {
PlayerStatus* playerStatus = &gPlayerStatus;
@ -174,7 +234,7 @@ void func_802B7728_E20838(void) {
D_802B7CB8_E20DC8->unk_24 = var_s0;
actionState = playerStatus->actionState;
if ((func_802B7450_E20560() == 0) ||
if (!func_802B7450_E20560() ||
(playerStatus->inputEnabledCounter != 0) ||
(playerStatus->flags & PS_FLAGS_PAUSED) ||
!(actionState == ACTION_STATE_IDLE || actionState == ACTION_STATE_WALK || actionState == ACTION_STATE_RUN))

View File

@ -4242,9 +4242,124 @@ void clone_model(u16 srcModelID, u16 newModelID) {
newModel->modelID = newModelID;
}
INCLUDE_ASM(void, "a5dd0_len_114e0", func_8011B7C0, u16 arg0, s32 arg1, s32 arg2);
void func_8011B7C0(u16 treeIndex, s32 flags, s32 arg2) {
s32 maxGroupIndex = -1;
s32 i;
s32 minGroupIndex;
s32 modelIndex = (*mdl_currentModelTreeNodeInfo)[treeIndex].modelIndex;
s32 siblingIndex;
INCLUDE_ASM(s32, "a5dd0_len_114e0", func_8011B950);
if (modelIndex < 255) {
minGroupIndex = maxGroupIndex = modelIndex;
} else {
s32 treeDepth = (*mdl_currentModelTreeNodeInfo)[treeIndex].treeDepth;
for (i = treeIndex - 1; i >= 0; i--) {
if ((*mdl_currentModelTreeNodeInfo)[i].treeDepth <= treeDepth) {
break;
}
siblingIndex = (*mdl_currentModelTreeNodeInfo)[i].modelIndex;
if (siblingIndex < 255) {
if (maxGroupIndex == -1) {
maxGroupIndex = siblingIndex;
}
minGroupIndex = siblingIndex;
}
}
}
if (arg2 < 2) {
for (i = minGroupIndex; i <= maxGroupIndex; i++) {
Model* model = (*gCurrentModels)[i];
if (arg2 != 0) {
model->flags &= ~flags;
} else {
model->flags |= flags;
}
}
} else {
for (i = 0; i < minGroupIndex; i++) {
Model* model = (*gCurrentModels)[i];
if (arg2 == 3) {
model->flags &= ~flags;
} else {
model->flags |= flags;
}
}
for (i = maxGroupIndex + 1; i < 256; i++) {
Model* model = (*gCurrentModels)[i];
if (model != NULL) {
if (arg2 == 3) {
model->flags &= ~flags;
} else {
model->flags |= flags;
}
}
}
}
}
void func_8011B950(u16 treeIndex, s32 arg1, s32 arg2, s32 arg3) {
s32 maxGroupIndex = -1;
s32 i;
s32 minGroupIndex;
s32 modelIndex = (*mdl_currentModelTreeNodeInfo)[treeIndex].modelIndex;
s32 siblingIndex;
s32 maskLow, maskHigh, newIndex;
if (modelIndex < 255) {
minGroupIndex = maxGroupIndex = modelIndex;
} else {
s32 treeDepth = (*mdl_currentModelTreeNodeInfo)[treeIndex].treeDepth;
for (i = treeIndex - 1; i >= 0; i--) {
if ((*mdl_currentModelTreeNodeInfo)[i].treeDepth <= treeDepth) {
break;
}
siblingIndex = (*mdl_currentModelTreeNodeInfo)[i].modelIndex;
if (siblingIndex < 255) {
if (maxGroupIndex == -1) {
maxGroupIndex = siblingIndex;
}
minGroupIndex = siblingIndex;
}
}
}
maskLow = maskHigh = 0;
if (arg1 < 0) {
maskLow = 0xF;
arg1 = 0;
}
if (arg2 < 0) {
maskHigh = 0xF0;
arg2 = 0;
}
newIndex = arg1 + (arg2 << 4);
if (arg3 == 0) {
for (i = minGroupIndex; i <= maxGroupIndex; i++) {
Model* model = (*gCurrentModels)[i];
model->customGfxIndex = (model->customGfxIndex & (maskLow + maskHigh)) + newIndex;
}
} else {
for (i = 0; i < minGroupIndex; i++) {
Model* model = (*gCurrentModels)[i];
model->customGfxIndex = (model->customGfxIndex & (maskLow + maskHigh)) + newIndex;
}
for (i = maxGroupIndex + 1; i < 256; i++) {
Model* model = (*gCurrentModels)[i];
if (model != NULL) {
model->customGfxIndex = (model->customGfxIndex & (maskLow + maskHigh)) + newIndex;
}
}
}
}
void func_8011BAE8(void) {
s32 i;

View File

@ -1,6 +1,13 @@
#include "common.h"
#include "audio.h"
#define SWAP16(in, out) \
{ \
s16 t = out; \
out = in; \
in = t; \
}
static void _init_lpfilter(AuLowPass* lp);
static Acmd* _saveBuffer(AuFX* fx, s16* oldPos, s32 buff, s32 count, Acmd* cmdBufPos);
static f32 func_80059BD4(AuDelay* delay, s32 rsdelta);
@ -114,7 +121,7 @@ static void _init_lpfilter(AuLowPass* lp) {
}
lp->fccoef[8] = timeConstant;
// ith value is 16384 * (timeConstant / 16384)^(i-7)
// ex: i = 9 --> timeConstant^2 / 16384
attenuation = ((f64)timeConstant / SCALE);
@ -134,7 +141,7 @@ void func_80058E84(AuFX* fx, u8 effectType, ALHeap* heap) {
// allocate space for 4 AuDelay
fx->delays = alHeapAlloc(heap, AU_FX_DELAY_COUNT, sizeof(AuDelay));
fx->base = alHeapAlloc(heap, AU_FX_LENGTH, sizeof(s16));
for (i = 0; i < AU_FX_DELAY_COUNT; i++) {
delay = &fx->delays[i];
delay->resampler_2C = alHeapAlloc(heap, 1, sizeof(AuResampler));
@ -142,7 +149,7 @@ void func_80058E84(AuFX* fx, u8 effectType, ALHeap* heap) {
delay->lowpass_24 = alHeapAlloc(heap, 1, sizeof(AuLowPass));
delay->lowpass_24->fstate = alHeapAlloc(heap, 1, sizeof(POLEF_STATE));
}
func_8005904C(fx, effectType);
}
@ -175,7 +182,7 @@ void func_8005904C(AuFX* fx, u8 effectType) {
s32* clr;
s32 i, j;
clr = (s32*)fx->base;
switch (effectType) {
case AU_FX_SMALLROOM:
params = SMALL_ROOM_PARAMS;
@ -220,7 +227,7 @@ void func_8005904C(AuFX* fx, u8 effectType) {
for (i = 0; i < AU_FX_LENGTH/2; i++) {
*clr++ = 0;
}
for (i = 0; i < fx->delayCount; i++) {
AuDelay* delay = &fx->delays[i];
delay->input = params[j++] * AUDIO_SAMPLES;
@ -228,7 +235,7 @@ void func_8005904C(AuFX* fx, u8 effectType) {
delay->fbcoef = (u16) params[j++];
delay->ffcoef = (u16) params[j++];
delay->gain = (u16) params[j++];
if (params[j]) {
delay->rsinc = (2.0 * (params[j++] / 1000.0f)) / gActiveSynDriverPtr->outputRate;
delay->rsgain = ((f32)params[j++] / CONVERT) * (delay->output - delay->input);
@ -242,7 +249,7 @@ void func_8005904C(AuFX* fx, u8 effectType) {
j++;
j++;
}
if (params[j]) {
delay->lowpass_20 = delay->lowpass_24;
delay->lowpass_20->fc = params[j++];
@ -256,7 +263,113 @@ void func_8005904C(AuFX* fx, u8 effectType) {
// au_pull_fx -- based on alFxPull
// AuFX from gSynDriverPtr
INCLUDE_ASM(s32, "audio/reverb", func_80059310);
Acmd* func_80059310(AuFX* fx, Acmd* ptr, s16 outputBuf, s16 arg3) {
Acmd* cmdBufPos = ptr;
s16 delayIdx;
s16* inPtr;
s16* outPtr;
s16 buff1 = arg3 + N_AL_TEMP_0;
s16 buff2 = arg3 + N_AL_TEMP_1;
s16 rbuff = arg3 + N_AL_TEMP_2;
s16* prevOutPtr = 0;
s16 outputBufCopy = outputBuf;
n_aSaveBuffer(cmdBufPos++, FIXED_SAMPLE<<1, outputBuf, osVirtualToPhysical(fx->input));
aClearBuffer(cmdBufPos++, outputBuf, FIXED_SAMPLE<<1);
for (delayIdx = 0; delayIdx < fx->delayCount; delayIdx++) {
AuDelay* delay = &fx->delays[delayIdx];
f32 fUnityPitch = UNITY_PITCH;
inPtr = &fx->input[-delay->input];
if (inPtr < fx->base) {
inPtr += fx->length;
}
outPtr = &fx->input[-delay->output];
if (outPtr < fx->base) {
outPtr += fx->length;
}
if (inPtr == prevOutPtr) {
SWAP16(buff1, buff2);
} else {
n_aLoadBuffer(cmdBufPos++, FIXED_SAMPLE<<1, buff1, osVirtualToPhysical(inPtr));
}
if (delay->resampler_28) {
// modified _n_loadOutputBuffer
s32 ratio;
s32 length, count;
f32 delta, fratio, fincount;
s32 ramAlign;
s16 tmp;
s16* rsOutPtr;
length = delay->output - delay->input;
delta = func_80059BD4(delay, AUDIO_SAMPLES);
delta /= length;
delta = (s32)(delta * fUnityPitch);
delta = delta / UNITY_PITCH;
fratio = 1.0 - delta;
fincount = delay->resampler_28->delta + (fratio * AUDIO_SAMPLES);
count = (s32) fincount;
delay->resampler_28->delta = fincount - count;
rsOutPtr = &fx->input[-(delay->output - delay->rsdelta)];
ramAlign = ((s32) rsOutPtr & 7) >> 1;
rsOutPtr -= ramAlign;
if (rsOutPtr < fx->base) {
rsOutPtr += fx->length;
}
cmdBufPos = _saveBuffer(fx, rsOutPtr, rbuff, count + ramAlign, cmdBufPos);
ratio = fratio * fUnityPitch;
tmp = buff2 >> 8;
n_aResample(cmdBufPos++, osVirtualToPhysical(delay->resampler_28->rs_state),
delay->resampler_28->first, ratio, rbuff + (ramAlign<<1), tmp);
delay->resampler_28->first = 0;
delay->rsdelta += count - AUDIO_SAMPLES;
} else {
n_aLoadBuffer(cmdBufPos++, FIXED_SAMPLE<<1, buff2, osVirtualToPhysical(outPtr));
}
if (delay->ffcoef) {
aMix(cmdBufPos++, 0, (u16)delay->ffcoef, buff1, buff2);
if (delay->resampler_28 == NULL && delay->lowpass_20 == NULL) {
n_aSaveBuffer(cmdBufPos++, FIXED_SAMPLE<<1, buff2, osVirtualToPhysical(outPtr));
}
}
if (delay->fbcoef) {
aMix(cmdBufPos++, 0, (u16)delay->fbcoef, buff2, buff1);
n_aSaveBuffer(cmdBufPos++, FIXED_SAMPLE<<1, buff1, osVirtualToPhysical(inPtr));
}
if (delay->lowpass_20 != NULL) {
// modified _n_filterBuffer
s16 tmp = buff2 >> 8;
n_aLoadADPCM(cmdBufPos++, 32, osVirtualToPhysical(delay->lowpass_20->fccoef));
n_aPoleFilter(cmdBufPos++, delay->lowpass_20->first, delay->lowpass_20->fgain, tmp, osVirtualToPhysical(delay->lowpass_20->fstate));
delay->lowpass_20->first = 0;
}
if (!delay->resampler_28) {
n_aSaveBuffer(cmdBufPos++, FIXED_SAMPLE<<1, buff2, osVirtualToPhysical(outPtr));
}
if (delay->gain) {
aMix(cmdBufPos++, 0, (u16)delay->gain, buff2, outputBufCopy);
}
prevOutPtr = &fx->input[delay->output];
}
fx->input += AUDIO_SAMPLES;
if (fx->input >= &fx->base[fx->length]) {
fx->input = fx->base;
}
return cmdBufPos;
}
#define INPUT_PARAM 0
#define OUTPUT_PARAM 1
@ -324,16 +437,16 @@ static Acmd* _saveBuffer(AuFX* fx, s16* oldPos, s32 buf, s32 count, Acmd* cmdBuf
//TODO rename to _updateTriWaveModulation
static f32 func_80059BD4(AuDelay* delay, s32 rsdelta) {
f32 result;
delay->rsval += delay->rsinc * rsdelta;
delay->rsval = (delay->rsval > 2.0) ? delay->rsval - 4.0 : delay->rsval;
result = delay->rsval;
if (result < 0.0f) {
result = -result;
}
result = result - 1.0;
return delay->rsgain * result;
}

View File

@ -20,19 +20,19 @@ Gfx* D_E0044DB0[] = {
D_09001210, D_09001228, D_09001240, D_09001258, D_09001270, D_090011C8, D_090011E0, D_090011F8
};
u8 D_E0044DD0[][3] = {
{ 254, 172, 172 },
{ 254, 172, 213 },
{ 254, 180, 154 },
{ 213, 180, 254 },
{ 180, 180, 254 },
{ 180, 221, 254 },
{ 180, 254, 254 },
{ 180, 254, 213 },
{ 180, 254, 180 },
{ 213, 254, 180 },
{ 254, 254, 180 },
{ 254, 213, 172 },
u8 D_E0044DD0[] = {
254, 172, 172,
254, 172, 213,
254, 180, 154,
213, 180, 254,
180, 180, 254,
180, 221, 254,
180, 254, 254,
180, 254, 213,
180, 254, 180,
213, 254, 180,
254, 254, 180,
254, 213, 172,
};
u8 D_E0044DF4[] = {
@ -164,7 +164,6 @@ void stars_shimmer_update(EffectInstance* effect) {
s32 var_v0;
s32 i;
temp_s3 = data->unk_02;
data->timeLeft--;
data->lifeTime++;
@ -300,17 +299,14 @@ void stars_shimmer_render(EffectInstance* effect) {
retTask = shim_queue_render_task(&renderTask);
}
// this one sucks too
#ifdef NON_EQUIVALENT
void stars_shimmer_appendGfx(void* effect) {
Matrix4f sp18, sp58, sp98;
StarsShimmerFXData* data = ((EffectInstance*)effect)->data.starsShimmer;
s32 type;
s32 temp_s4;
s32 timeLeft;
s32 unk_28;
f32 rf, gf, bf;
s32 r, g, b;
u8* var_s0;
s32 i;
type = data->unk_02;
@ -354,22 +350,20 @@ void stars_shimmer_appendGfx(void* effect) {
break;
}
var_s0 = D_E0044DD0[temp_s4];
data++;
for (i = 0; i < ((EffectInstance*)effect)->numParts - 1; i++, data++) {
timeLeft = data->timeLeft;
if (timeLeft >= 0) {
unk_28 = data->unk_28;
if (unk_28 >= 0) {
shim_guTranslateF(sp58, data->pos.x, data->pos.y, data->pos.z);
sp58[0][0] = data->unk_1C;
sp58[0][0] = sp58[1][1] = sp58[2][2] = data->unk_1C;
shim_guMtxCatF(sp58, sp98, sp18);
shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]);
if (var_s0 >= &D_E0044DD0[36]) {
var_s0 = D_E0044DD0;
if (temp_s4 >= 36) {
temp_s4 = 0;
}
r = *var_s0++ * rf;
g = *var_s0++ * gf;
b = *var_s0++ * bf;
r = D_E0044DD0[temp_s4++] * rf;
g = D_E0044DD0[temp_s4++] * gf;
b = D_E0044DD0[temp_s4++] * bf;
if (r > 255) {
r = 255;
}
@ -380,14 +374,11 @@ void stars_shimmer_appendGfx(void* effect) {
b = 255;
}
gDPSetPrimColor(gMasterGfxPos++, 0, 0, r, g, b, 255);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gSPDisplayList(gMasterGfxPos++, D_E0044DB0[timeLeft & 7]);
gSPDisplayList(gMasterGfxPos++, D_E0044DB0[unk_28 & 7]);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}
}
gDPPipeSync(gMasterGfxPos++);
}
#else
INCLUDE_ASM(s32, "effects/stars_shimmer", stars_shimmer_appendGfx);
#endif

View File

@ -3,29 +3,24 @@
NOP_FIX
s32 contRetrace(NUSiCommonMesg* mesg);
s32 contReadData(OSContPad* pad, u32 lockflag);
s32 contReadNW(void);
s32 contQuery(void);
static s32 contRetrace(NUSiCommonMesg* mesg);
static s32 contRead(NUSiCommonMesg* mesg);
static s32 contReadNW(NUSiCommonMesg* mesg);
static inline s32 contReadData(OSContPad* pad, u32 lockflag);
static s32 contQuery(NUSiCommonMesg* mesg);
NUContReadFunc nuContReadFunc = NULL;
s32(*D_80093D24[4])(void) = {
(s32 (*) (void)) contRetrace,
(s32 (*) (void)) contReadData,
static s32 (*funcList[])(NUSiCommonMesg*) = {
contRetrace,
contRead,
contReadNW,
contQuery,
};
s32 D_80093D34 = 0;
NUCallBackList nuContCallBack = {
NULL,
(s32 (**)(NUSiCommonMesg*)) &D_80093D24,
0x100,
0,
};
NUCallBackList nuContCallBack = { NULL, funcList, NU_SI_MAJOR_NO_CONT };
extern OSMesg nuContWaitMesgBuf;
extern OSMesg nuContDataMutexBuf;
extern OSMesgQueue nuContDataMutexQ;
@ -72,13 +67,83 @@ void nuContDataOpen(void) {
osRecvMesg(&nuContDataMutexQ, NULL, OS_MESG_BLOCK);
}
INCLUDE_ASM(s32, "os/nusys/nucontmgr", contRetrace);
//copy of nuContDataClose
static inline void nuContDataClose_inline(void) {
osSendMesg(&nuContDataMutexQ, NULL, OS_MESG_BLOCK);
}
INCLUDE_ASM(s32, "os/nusys/nucontmgr", contReadData);
//copy of nuContDataOpen
static inline void nuContDataOpen_inline(void) {
osRecvMesg(&nuContDataMutexQ, NULL, OS_MESG_BLOCK);
}
INCLUDE_ASM(s32, "os/nusys/nucontmgr", contReadNW);
NOP_UNFIX
s32 contQuery(void) {
static inline s32 contReadData(OSContPad* pad, u32 lockflag) {
s32 rtn;
rtn = osContStartReadData(&nuSiMesgQ);
if (rtn) {
return rtn;
}
osRecvMesg(&nuSiMesgQ, NULL, OS_MESG_BLOCK);
if(lockflag & nuContDataLockKey) {
return rtn;
}
nuContDataClose_inline();
NOP_FIX
osContGetReadData(pad);
NOP_UNFIX
nuContDataOpen_inline();
return rtn;
}
static s32 contRetrace(NUSiCommonMesg* mesg) {
if(nuContDataLockKey) {
return NU_SI_CALLBACK_CONTINUE;
}
osRecvMesg(&nuContWaitMesgQ, NULL, OS_MESG_NOBLOCK);
contReadData(nuContData, 1);
if(nuContReadFunc != NULL) {
(*nuContReadFunc)(mesg->mesg);
}
osSendMesg(&nuContWaitMesgQ, NULL, OS_MESG_NOBLOCK);
return NU_SI_CALLBACK_CONTINUE;
}
static s32 contRead(NUSiCommonMesg* mesg) {
return contReadData((OSContPad*)mesg->dataPtr, 0);
}
static s32 contReadNW(NUSiCommonMesg* mesg) {
s32 rtn;
osRecvMesg(&nuContWaitMesgQ, NULL, OS_MESG_NOBLOCK);
rtn = contReadData(nuContData, 0);
if (rtn) {
return rtn;
}
if(nuContReadFunc != NULL) {
(*nuContReadFunc)(mesg->mesg);
}
return rtn;
}
NOP_FIX
static s32 contQuery(NUSiCommonMesg* mesg) {
s32 ret = osContStartQuery(&nuSiMesgQ);
if (ret != 0) {

View File

@ -274,4 +274,59 @@ void nuScEventBroadcast(NUScMsg* msg) {
}
}
INCLUDE_ASM(void, "os/nusys/nusched", nuScWaitTaskReady);
// copy of nuScAddClient
static inline void nuScAddClient_inline(NUScClient* c, OSMesgQueue* mq, NUScMsg msgType) {
s32 mask;
mask = osSetIntMask(OS_IM_NONE);
c->msgQ = mq;
c->next = nusched.clientList;
c->msgType = msgType;
nusched.clientList = c;
if ((msgType & NU_SC_PRENMI_MSG) && nuScPreNMIFlag) {
osSendMesg(mq, &nusched.prenmiMsg, OS_MESG_NOBLOCK);
}
osSetIntMask(mask);
}
// copy of nuScRemoveClient
static inline void nuScRemoveClient_inline(NUScClient* client) {
s32 mask = osSetIntMask(OS_IM_NONE);
NUScClient* clientList = nusched.clientList;
NUScClient* prev = NULL;
while (clientList != NULL) {
if (clientList == client) {
if (prev != NULL) {
prev->next = clientList->next;
} else {
nusched.clientList = clientList->next;
}
break;
}
prev = clientList;
clientList = clientList->next;
}
osSetIntMask(mask);
}
// TODO: investigate why nuScAddClient and nuScRemoveClient were inlined
void nuScWaitTaskReady(NUScTask* task) {
NUScClient client;
void* fb = task->framebuffer;
if(nusched.frameBufferNum == 1) {
return;
}
while(osViGetCurrentFramebuffer() == fb || osViGetNextFramebuffer() == fb) {
nuScAddClient_inline(&client, &nusched.waitMQ, NU_SC_RETRACE_MSG);
osRecvMesg(&nusched.waitMQ, NULL, OS_MESG_BLOCK);
nuScRemoveClient_inline(&client);
}
}

View File

@ -1,6 +1,7 @@
#include "jan_02.h"
#include "effects.h"
#include "mapfs/jan_02_hit.h"
#include "mapfs/jan_02_shape.h"
#include "world/common/atomic/TexturePan.inc.c"
@ -16,12 +17,12 @@ ApiStatus func_80240360_B2C7D0(Evt* script, s32 isInitialCall) {
if (D_80242BD8_B2F048 != 0) {
if (currentFloor == COLLIDER_o327 || currentFloor == COLLIDER_o330) {
func_8011B7C0(9, 2, 0);
func_8011B7C0(MODEL_g70, 2, 0);
D_80242BD8_B2F048 = 0;
}
} else {
if (currentFloor == COLLIDER_o319 || currentFloor == COLLIDER_o316) {
func_8011B7C0(9, 2, 1);
func_8011B7C0(MODEL_g70, 2, 1);
D_80242BD8_B2F048 = 1;
}
}

View File

@ -1,125 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel jtbl_802B7CC0_E20DD0
.word .L802B74C8_E205D8, .L802B74C8_E205D8, .L802B74C8_E205D8, .L802B74C8_E205D8, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B74C8_E205D8, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B7590_E206A0, .L802B74C8_E205D8, .L802B74C8_E205D8, 0
.section .text
glabel func_802B7450_E20560
/* E20560 802B7450 27BDFFE0 */ addiu $sp, $sp, -0x20
/* E20564 802B7454 3C028016 */ lui $v0, %hi(gCollisionStatus)
/* E20568 802B7458 2442A550 */ addiu $v0, $v0, %lo(gCollisionStatus)
/* E2056C 802B745C AFB10014 */ sw $s1, 0x14($sp)
/* E20570 802B7460 3C118011 */ lui $s1, %hi(gPlayerStatus)
/* E20574 802B7464 2631EFC8 */ addiu $s1, $s1, %lo(gPlayerStatus)
/* E20578 802B7468 AFB20018 */ sw $s2, 0x18($sp)
/* E2057C 802B746C 2412FFFF */ addiu $s2, $zero, -1
/* E20580 802B7470 AFBF001C */ sw $ra, 0x1c($sp)
/* E20584 802B7474 AFB00010 */ sw $s0, 0x10($sp)
/* E20588 802B7478 84500012 */ lh $s0, 0x12($v0)
/* E2058C 802B747C 8E2500C8 */ lw $a1, 0xc8($s1)
/* E20590 802B7480 56120030 */ bnel $s0, $s2, .L802B7544
/* E20594 802B7484 32024000 */ andi $v0, $s0, 0x4000
/* E20598 802B7488 84440002 */ lh $a0, 2($v0)
/* E2059C 802B748C 04800010 */ bltz $a0, .L802B74D0
/* E205A0 802B7490 30824000 */ andi $v0, $a0, 0x4000
/* E205A4 802B7494 1040000F */ beqz $v0, .L802B74D4
/* E205A8 802B7498 3C020200 */ lui $v0, 0x200
/* E205AC 802B749C 0C0441A9 */ jal get_entity_type
/* E205B0 802B74A0 0080802D */ daddu $s0, $a0, $zero
/* E205B4 802B74A4 2443FFFD */ addiu $v1, $v0, -3
/* E205B8 802B74A8 2C620031 */ sltiu $v0, $v1, 0x31
/* E205BC 802B74AC 10400038 */ beqz $v0, .L802B7590_E206A0
/* E205C0 802B74B0 00031080 */ sll $v0, $v1, 2
/* E205C4 802B74B4 3C01802B */ lui $at, %hi(jtbl_802B7CC0_E20DD0)
/* E205C8 802B74B8 00220821 */ addu $at, $at, $v0
/* E205CC 802B74BC 8C227CC0 */ lw $v0, %lo(jtbl_802B7CC0_E20DD0)($at)
/* E205D0 802B74C0 00400008 */ jr $v0
/* E205D4 802B74C4 00000000 */ nop
.L802B74C8_E205D8:
/* E205D8 802B74C8 080ADD64 */ j .L802B7590_E206A0
/* E205DC 802B74CC 2410FFFF */ addiu $s0, $zero, -1
.L802B74D0:
/* E205E0 802B74D0 3C020200 */ lui $v0, 0x200
.L802B74D4:
/* E205E4 802B74D4 8E230000 */ lw $v1, ($s1)
/* E205E8 802B74D8 34422000 */ ori $v0, $v0, 0x2000
/* E205EC 802B74DC 00621824 */ and $v1, $v1, $v0
/* E205F0 802B74E0 3C020200 */ lui $v0, 0x200
/* E205F4 802B74E4 1462000F */ bne $v1, $v0, .L802B7524
/* E205F8 802B74E8 3C03F7FF */ lui $v1, 0xf7ff
/* E205FC 802B74EC 10A0000C */ beqz $a1, .L802B7520
/* E20600 802B74F0 3C031000 */ lui $v1, 0x1000
/* E20604 802B74F4 8CA20000 */ lw $v0, ($a1)
/* E20608 802B74F8 00431024 */ and $v0, $v0, $v1
/* E2060C 802B74FC 10400009 */ beqz $v0, .L802B7524
/* E20610 802B7500 3C03F7FF */ lui $v1, 0xf7ff
/* E20614 802B7504 80A200A4 */ lb $v0, 0xa4($a1)
/* E20618 802B7508 862300C6 */ lh $v1, 0xc6($s1)
/* E2061C 802B750C 34502000 */ ori $s0, $v0, 0x2000
/* E20620 802B7510 14700029 */ bne $v1, $s0, .L802B75B8
/* E20624 802B7514 3C03F7FF */ lui $v1, 0xf7ff
/* E20628 802B7518 080ADD74 */ j .L802B75D0
/* E2062C 802B751C 24020001 */ addiu $v0, $zero, 1
.L802B7520:
/* E20630 802B7520 3C03F7FF */ lui $v1, 0xf7ff
.L802B7524:
/* E20634 802B7524 3463FFFF */ ori $v1, $v1, 0xffff
/* E20638 802B7528 0000102D */ daddu $v0, $zero, $zero
/* E2063C 802B752C 8E240000 */ lw $a0, ($s1)
/* E20640 802B7530 2405FFFF */ addiu $a1, $zero, -1
/* E20644 802B7534 A62500C6 */ sh $a1, 0xc6($s1)
/* E20648 802B7538 00832024 */ and $a0, $a0, $v1
/* E2064C 802B753C 080ADD74 */ j .L802B75D0
/* E20650 802B7540 AE240000 */ sw $a0, ($s1)
.L802B7544:
/* E20654 802B7544 14400007 */ bnez $v0, .L802B7564
/* E20658 802B7548 32022000 */ andi $v0, $s0, 0x2000
/* E2065C 802B754C 14400010 */ bnez $v0, .L802B7590_E206A0
/* E20660 802B7550 00000000 */ nop
/* E20664 802B7554 0C05173A */ jal should_collider_allow_interact
/* E20668 802B7558 0200202D */ daddu $a0, $s0, $zero
/* E2066C 802B755C 080ADD5B */ j .L802B756C
/* E20670 802B7560 00000000 */ nop
.L802B7564:
/* E20674 802B7564 0C0394BE */ jal phys_can_player_interact
/* E20678 802B7568 00000000 */ nop
.L802B756C:
/* E2067C 802B756C 14400008 */ bnez $v0, .L802B7590_E206A0
/* E20680 802B7570 3C04F7FF */ lui $a0, 0xf7ff
/* E20684 802B7574 3484FFFF */ ori $a0, $a0, 0xffff
/* E20688 802B7578 8E230000 */ lw $v1, ($s1)
/* E2068C 802B757C 0000102D */ daddu $v0, $zero, $zero
/* E20690 802B7580 A63200C6 */ sh $s2, 0xc6($s1)
/* E20694 802B7584 00641824 */ and $v1, $v1, $a0
/* E20698 802B7588 080ADD74 */ j .L802B75D0
/* E2069C 802B758C AE230000 */ sw $v1, ($s1)
.L802B7590_E206A0:
/* E206A0 802B7590 862200C6 */ lh $v0, 0xc6($s1)
/* E206A4 802B7594 14500008 */ bne $v0, $s0, .L802B75B8
/* E206A8 802B7598 3C03F7FF */ lui $v1, 0xf7ff
/* E206AC 802B759C 8E220000 */ lw $v0, ($s1)
/* E206B0 802B75A0 3C030800 */ lui $v1, 0x800
/* E206B4 802B75A4 00431024 */ and $v0, $v0, $v1
/* E206B8 802B75A8 10400007 */ beqz $v0, .L802B75C8
/* E206BC 802B75AC 0000102D */ daddu $v0, $zero, $zero
/* E206C0 802B75B0 080ADD74 */ j .L802B75D0
/* E206C4 802B75B4 00000000 */ nop
.L802B75B8:
/* E206C8 802B75B8 8E220000 */ lw $v0, ($s1)
/* E206CC 802B75BC 3463FFFF */ ori $v1, $v1, 0xffff
/* E206D0 802B75C0 00431024 */ and $v0, $v0, $v1
/* E206D4 802B75C4 AE220000 */ sw $v0, ($s1)
.L802B75C8:
/* E206D8 802B75C8 A63000C6 */ sh $s0, 0xc6($s1)
/* E206DC 802B75CC 24020001 */ addiu $v0, $zero, 1
.L802B75D0:
/* E206E0 802B75D0 8FBF001C */ lw $ra, 0x1c($sp)
/* E206E4 802B75D4 8FB20018 */ lw $s2, 0x18($sp)
/* E206E8 802B75D8 8FB10014 */ lw $s1, 0x14($sp)
/* E206EC 802B75DC 8FB00010 */ lw $s0, 0x10($sp)
/* E206F0 802B75E0 03E00008 */ jr $ra
/* E206F4 802B75E4 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,123 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8011B7C0
/* B1EC0 8011B7C0 3084FFFF */ andi $a0, $a0, 0xffff
/* B1EC4 8011B7C4 3C0A800A */ lui $t2, %hi(mdl_currentModelTreeNodeInfo)
/* B1EC8 8011B7C8 8D4AA5F4 */ lw $t2, %lo(mdl_currentModelTreeNodeInfo)($t2)
/* B1ECC 8011B7CC 00041080 */ sll $v0, $a0, 2
/* B1ED0 8011B7D0 004A3821 */ addu $a3, $v0, $t2
/* B1ED4 8011B7D4 90E30000 */ lbu $v1, ($a3)
/* B1ED8 8011B7D8 286200FF */ slti $v0, $v1, 0xff
/* B1EDC 8011B7DC 10400004 */ beqz $v0, .L8011B7F0
/* B1EE0 8011B7E0 2408FFFF */ addiu $t0, $zero, -1
/* B1EE4 8011B7E4 0060402D */ daddu $t0, $v1, $zero
/* B1EE8 8011B7E8 08046E10 */ j .L8011B840
/* B1EEC 8011B7EC 0100482D */ daddu $t1, $t0, $zero
.L8011B7F0:
/* B1EF0 8011B7F0 2484FFFF */ addiu $a0, $a0, -1
/* B1EF4 8011B7F4 90EB0001 */ lbu $t3, 1($a3)
/* B1EF8 8011B7F8 04800011 */ bltz $a0, .L8011B840
/* B1EFC 8011B7FC 00041080 */ sll $v0, $a0, 2
/* B1F00 8011B800 240CFFFF */ addiu $t4, $zero, -1
/* B1F04 8011B804 004A3821 */ addu $a3, $v0, $t2
.L8011B808:
/* B1F08 8011B808 90E20001 */ lbu $v0, 1($a3)
/* B1F0C 8011B80C 0162102A */ slt $v0, $t3, $v0
/* B1F10 8011B810 1040000C */ beqz $v0, .L8011B844
/* B1F14 8011B814 28C20002 */ slti $v0, $a2, 2
/* B1F18 8011B818 90E30000 */ lbu $v1, ($a3)
/* B1F1C 8011B81C 286200FF */ slti $v0, $v1, 0xff
/* B1F20 8011B820 50400005 */ beql $v0, $zero, .L8011B838
/* B1F24 8011B824 2484FFFF */ addiu $a0, $a0, -1
/* B1F28 8011B828 510C0001 */ beql $t0, $t4, .L8011B830
/* B1F2C 8011B82C 0060402D */ daddu $t0, $v1, $zero
.L8011B830:
/* B1F30 8011B830 0060482D */ daddu $t1, $v1, $zero
/* B1F34 8011B834 2484FFFF */ addiu $a0, $a0, -1
.L8011B838:
/* B1F38 8011B838 0481FFF3 */ bgez $a0, .L8011B808
/* B1F3C 8011B83C 24E7FFFC */ addiu $a3, $a3, -4
.L8011B840:
/* B1F40 8011B840 28C20002 */ slti $v0, $a2, 2
.L8011B844:
/* B1F44 8011B844 10400016 */ beqz $v0, .L8011B8A0
/* B1F48 8011B848 0120202D */ daddu $a0, $t1, $zero
/* B1F4C 8011B84C 0104102A */ slt $v0, $t0, $a0
/* B1F50 8011B850 14400011 */ bnez $v0, .L8011B898
/* B1F54 8011B854 00054827 */ nor $t1, $zero, $a1
/* B1F58 8011B858 3C038015 */ lui $v1, %hi(gCurrentModels)
/* B1F5C 8011B85C 8C6312CC */ lw $v1, %lo(gCurrentModels)($v1)
/* B1F60 8011B860 00041080 */ sll $v0, $a0, 2
/* B1F64 8011B864 00433821 */ addu $a3, $v0, $v1
.L8011B868:
/* B1F68 8011B868 10C00004 */ beqz $a2, .L8011B87C
/* B1F6C 8011B86C 8CE30000 */ lw $v1, ($a3)
/* B1F70 8011B870 94620000 */ lhu $v0, ($v1)
/* B1F74 8011B874 08046E21 */ j .L8011B884
/* B1F78 8011B878 00491024 */ and $v0, $v0, $t1
.L8011B87C:
/* B1F7C 8011B87C 94620000 */ lhu $v0, ($v1)
/* B1F80 8011B880 00451025 */ or $v0, $v0, $a1
.L8011B884:
/* B1F84 8011B884 A4620000 */ sh $v0, ($v1)
/* B1F88 8011B888 24840001 */ addiu $a0, $a0, 1
/* B1F8C 8011B88C 0104102A */ slt $v0, $t0, $a0
/* B1F90 8011B890 1040FFF5 */ beqz $v0, .L8011B868
/* B1F94 8011B894 24E70004 */ addiu $a3, $a3, 4
.L8011B898:
/* B1F98 8011B898 03E00008 */ jr $ra
/* B1F9C 8011B89C 00000000 */ nop
.L8011B8A0:
/* B1FA0 8011B8A0 19200011 */ blez $t1, .L8011B8E8
/* B1FA4 8011B8A4 0000202D */ daddu $a0, $zero, $zero
/* B1FA8 8011B8A8 240B0003 */ addiu $t3, $zero, 3
/* B1FAC 8011B8AC 00055027 */ nor $t2, $zero, $a1
/* B1FB0 8011B8B0 3C078015 */ lui $a3, %hi(gCurrentModels)
/* B1FB4 8011B8B4 8CE712CC */ lw $a3, %lo(gCurrentModels)($a3)
.L8011B8B8:
/* B1FB8 8011B8B8 14CB0004 */ bne $a2, $t3, .L8011B8CC
/* B1FBC 8011B8BC 8CE30000 */ lw $v1, ($a3)
/* B1FC0 8011B8C0 94620000 */ lhu $v0, ($v1)
/* B1FC4 8011B8C4 08046E35 */ j .L8011B8D4
/* B1FC8 8011B8C8 004A1024 */ and $v0, $v0, $t2
.L8011B8CC:
/* B1FCC 8011B8CC 94620000 */ lhu $v0, ($v1)
/* B1FD0 8011B8D0 00451025 */ or $v0, $v0, $a1
.L8011B8D4:
/* B1FD4 8011B8D4 A4620000 */ sh $v0, ($v1)
/* B1FD8 8011B8D8 24840001 */ addiu $a0, $a0, 1
/* B1FDC 8011B8DC 0089102A */ slt $v0, $a0, $t1
/* B1FE0 8011B8E0 1440FFF5 */ bnez $v0, .L8011B8B8
/* B1FE4 8011B8E4 24E70004 */ addiu $a3, $a3, 4
.L8011B8E8:
/* B1FE8 8011B8E8 25040001 */ addiu $a0, $t0, 1
/* B1FEC 8011B8EC 28820100 */ slti $v0, $a0, 0x100
/* B1FF0 8011B8F0 1040FFE9 */ beqz $v0, .L8011B898
/* B1FF4 8011B8F4 24090003 */ addiu $t1, $zero, 3
/* B1FF8 8011B8F8 00054027 */ nor $t0, $zero, $a1
/* B1FFC 8011B8FC 3C038015 */ lui $v1, %hi(gCurrentModels)
/* B2000 8011B900 8C6312CC */ lw $v1, %lo(gCurrentModels)($v1)
/* B2004 8011B904 00041080 */ sll $v0, $a0, 2
/* B2008 8011B908 00433821 */ addu $a3, $v0, $v1
.L8011B90C:
/* B200C 8011B90C 8CE30000 */ lw $v1, ($a3)
/* B2010 8011B910 5060000A */ beql $v1, $zero, .L8011B93C
/* B2014 8011B914 24840001 */ addiu $a0, $a0, 1
/* B2018 8011B918 14C90004 */ bne $a2, $t1, .L8011B92C
/* B201C 8011B91C 00000000 */ nop
/* B2020 8011B920 94620000 */ lhu $v0, ($v1)
/* B2024 8011B924 08046E4D */ j .L8011B934
/* B2028 8011B928 00481024 */ and $v0, $v0, $t0
.L8011B92C:
/* B202C 8011B92C 94620000 */ lhu $v0, ($v1)
/* B2030 8011B930 00451025 */ or $v0, $v0, $a1
.L8011B934:
/* B2034 8011B934 A4620000 */ sh $v0, ($v1)
/* B2038 8011B938 24840001 */ addiu $a0, $a0, 1
.L8011B93C:
/* B203C 8011B93C 28820100 */ slti $v0, $a0, 0x100
/* B2040 8011B940 1440FFF2 */ bnez $v0, .L8011B90C
/* B2044 8011B944 24E70004 */ addiu $a3, $a3, 4
/* B2048 8011B948 03E00008 */ jr $ra
/* B204C 8011B94C 00000000 */ nop

View File

@ -1,121 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8011B950
/* B2050 8011B950 3084FFFF */ andi $a0, $a0, 0xffff
/* B2054 8011B954 3C0A800A */ lui $t2, %hi(mdl_currentModelTreeNodeInfo)
/* B2058 8011B958 8D4AA5F4 */ lw $t2, %lo(mdl_currentModelTreeNodeInfo)($t2)
/* B205C 8011B95C 00041080 */ sll $v0, $a0, 2
/* B2060 8011B960 004A4021 */ addu $t0, $v0, $t2
/* B2064 8011B964 91030000 */ lbu $v1, ($t0)
/* B2068 8011B968 286200FF */ slti $v0, $v1, 0xff
/* B206C 8011B96C 10400004 */ beqz $v0, .L8011B980
/* B2070 8011B970 2409FFFF */ addiu $t1, $zero, -1
/* B2074 8011B974 0060482D */ daddu $t1, $v1, $zero
/* B2078 8011B978 08046E74 */ j .L8011B9D0
/* B207C 8011B97C 0120582D */ daddu $t3, $t1, $zero
.L8011B980:
/* B2080 8011B980 2484FFFF */ addiu $a0, $a0, -1
/* B2084 8011B984 910C0001 */ lbu $t4, 1($t0)
/* B2088 8011B988 04800011 */ bltz $a0, .L8011B9D0
/* B208C 8011B98C 00041080 */ sll $v0, $a0, 2
/* B2090 8011B990 240DFFFF */ addiu $t5, $zero, -1
/* B2094 8011B994 004A4021 */ addu $t0, $v0, $t2
.L8011B998:
/* B2098 8011B998 91020001 */ lbu $v0, 1($t0)
/* B209C 8011B99C 0182102A */ slt $v0, $t4, $v0
/* B20A0 8011B9A0 1040000C */ beqz $v0, .L8011B9D4
/* B20A4 8011B9A4 0000502D */ daddu $t2, $zero, $zero
/* B20A8 8011B9A8 91030000 */ lbu $v1, ($t0)
/* B20AC 8011B9AC 286200FF */ slti $v0, $v1, 0xff
/* B20B0 8011B9B0 50400005 */ beql $v0, $zero, .L8011B9C8
/* B20B4 8011B9B4 2484FFFF */ addiu $a0, $a0, -1
/* B20B8 8011B9B8 512D0001 */ beql $t1, $t5, .L8011B9C0
/* B20BC 8011B9BC 0060482D */ daddu $t1, $v1, $zero
.L8011B9C0:
/* B20C0 8011B9C0 0060582D */ daddu $t3, $v1, $zero
/* B20C4 8011B9C4 2484FFFF */ addiu $a0, $a0, -1
.L8011B9C8:
/* B20C8 8011B9C8 0481FFF3 */ bgez $a0, .L8011B998
/* B20CC 8011B9CC 2508FFFC */ addiu $t0, $t0, -4
.L8011B9D0:
/* B20D0 8011B9D0 0000502D */ daddu $t2, $zero, $zero
.L8011B9D4:
/* B20D4 8011B9D4 04A10003 */ bgez $a1, .L8011B9E4
/* B20D8 8011B9D8 0140402D */ daddu $t0, $t2, $zero
/* B20DC 8011B9DC 2408000F */ addiu $t0, $zero, 0xf
/* B20E0 8011B9E0 0140282D */ daddu $a1, $t2, $zero
.L8011B9E4:
/* B20E4 8011B9E4 04C10004 */ bgez $a2, .L8011B9F8
/* B20E8 8011B9E8 00061100 */ sll $v0, $a2, 4
/* B20EC 8011B9EC 240A00F0 */ addiu $t2, $zero, 0xf0
/* B20F0 8011B9F0 0000302D */ daddu $a2, $zero, $zero
/* B20F4 8011B9F4 00061100 */ sll $v0, $a2, 4
.L8011B9F8:
/* B20F8 8011B9F8 14E00015 */ bnez $a3, .L8011BA50
/* B20FC 8011B9FC 00A22821 */ addu $a1, $a1, $v0
/* B2100 8011BA00 0160202D */ daddu $a0, $t3, $zero
/* B2104 8011BA04 0124102A */ slt $v0, $t1, $a0
/* B2108 8011BA08 1440000F */ bnez $v0, .L8011BA48
/* B210C 8011BA0C 010A3021 */ addu $a2, $t0, $t2
/* B2110 8011BA10 3C078015 */ lui $a3, %hi(gCurrentModels)
/* B2114 8011BA14 24E712CC */ addiu $a3, $a3, %lo(gCurrentModels)
.L8011BA18:
/* B2118 8011BA18 8CE30000 */ lw $v1, ($a3)
/* B211C 8011BA1C 00041080 */ sll $v0, $a0, 2
/* B2120 8011BA20 00431021 */ addu $v0, $v0, $v1
/* B2124 8011BA24 8C430000 */ lw $v1, ($v0)
/* B2128 8011BA28 906200A5 */ lbu $v0, 0xa5($v1)
/* B212C 8011BA2C 24840001 */ addiu $a0, $a0, 1
/* B2130 8011BA30 00461024 */ and $v0, $v0, $a2
/* B2134 8011BA34 00451021 */ addu $v0, $v0, $a1
/* B2138 8011BA38 A06200A5 */ sb $v0, 0xa5($v1)
/* B213C 8011BA3C 0124102A */ slt $v0, $t1, $a0
/* B2140 8011BA40 1040FFF5 */ beqz $v0, .L8011BA18
/* B2144 8011BA44 00000000 */ nop
.L8011BA48:
/* B2148 8011BA48 03E00008 */ jr $ra
/* B214C 8011BA4C 00000000 */ nop
.L8011BA50:
/* B2150 8011BA50 19600010 */ blez $t3, .L8011BA94
/* B2154 8011BA54 0000202D */ daddu $a0, $zero, $zero
/* B2158 8011BA58 3C078015 */ lui $a3, %hi(gCurrentModels)
/* B215C 8011BA5C 24E712CC */ addiu $a3, $a3, %lo(gCurrentModels)
/* B2160 8011BA60 010A3021 */ addu $a2, $t0, $t2
.L8011BA64:
/* B2164 8011BA64 8CE30000 */ lw $v1, ($a3)
/* B2168 8011BA68 00041080 */ sll $v0, $a0, 2
/* B216C 8011BA6C 00431021 */ addu $v0, $v0, $v1
/* B2170 8011BA70 8C430000 */ lw $v1, ($v0)
/* B2174 8011BA74 906200A5 */ lbu $v0, 0xa5($v1)
/* B2178 8011BA78 24840001 */ addiu $a0, $a0, 1
/* B217C 8011BA7C 00461024 */ and $v0, $v0, $a2
/* B2180 8011BA80 00451021 */ addu $v0, $v0, $a1
/* B2184 8011BA84 A06200A5 */ sb $v0, 0xa5($v1)
/* B2188 8011BA88 008B102A */ slt $v0, $a0, $t3
/* B218C 8011BA8C 1440FFF5 */ bnez $v0, .L8011BA64
/* B2190 8011BA90 00000000 */ nop
.L8011BA94:
/* B2194 8011BA94 25240001 */ addiu $a0, $t1, 1
/* B2198 8011BA98 28820100 */ slti $v0, $a0, 0x100
/* B219C 8011BA9C 1040FFEA */ beqz $v0, .L8011BA48
/* B21A0 8011BAA0 010A3021 */ addu $a2, $t0, $t2
/* B21A4 8011BAA4 3C078015 */ lui $a3, %hi(gCurrentModels)
/* B21A8 8011BAA8 24E712CC */ addiu $a3, $a3, %lo(gCurrentModels)
.L8011BAAC:
/* B21AC 8011BAAC 8CE30000 */ lw $v1, ($a3)
/* B21B0 8011BAB0 00041080 */ sll $v0, $a0, 2
/* B21B4 8011BAB4 00431021 */ addu $v0, $v0, $v1
/* B21B8 8011BAB8 8C430000 */ lw $v1, ($v0)
/* B21BC 8011BABC 10600005 */ beqz $v1, .L8011BAD4
/* B21C0 8011BAC0 24840001 */ addiu $a0, $a0, 1
/* B21C4 8011BAC4 906200A5 */ lbu $v0, 0xa5($v1)
/* B21C8 8011BAC8 00461024 */ and $v0, $v0, $a2
/* B21CC 8011BACC 00451021 */ addu $v0, $v0, $a1
/* B21D0 8011BAD0 A06200A5 */ sb $v0, 0xa5($v1)
.L8011BAD4:
/* B21D4 8011BAD4 28820100 */ slti $v0, $a0, 0x100
/* B21D8 8011BAD8 1440FFF4 */ bnez $v0, .L8011BAAC
/* B21DC 8011BADC 00000000 */ nop
/* B21E0 8011BAE0 03E00008 */ jr $ra
/* B21E4 8011BAE4 00000000 */ nop

View File

@ -1,375 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80059310
/* 34710 80059310 27BDFF98 */ addiu $sp, $sp, -0x68
/* 34714 80059314 AFB00030 */ sw $s0, 0x30($sp)
/* 34718 80059318 00A0802D */ daddu $s0, $a1, $zero
/* 3471C 8005931C AFB10034 */ sw $s1, 0x34($sp)
/* 34720 80059320 00C0882D */ daddu $s1, $a2, $zero
/* 34724 80059324 AFB60048 */ sw $s6, 0x48($sp)
/* 34728 80059328 24F60170 */ addiu $s6, $a3, 0x170
/* 3472C 8005932C 32220FFF */ andi $v0, $s1, 0xfff
/* 34730 80059330 3C030617 */ lui $v1, 0x617
/* 34734 80059334 00431025 */ or $v0, $v0, $v1
/* 34738 80059338 AFBF0054 */ sw $ra, 0x54($sp)
/* 3473C 8005933C AFBE0050 */ sw $fp, 0x50($sp)
/* 34740 80059340 AFB7004C */ sw $s7, 0x4c($sp)
/* 34744 80059344 AFB50044 */ sw $s5, 0x44($sp)
/* 34748 80059348 AFB40040 */ sw $s4, 0x40($sp)
/* 3474C 8005934C AFB3003C */ sw $s3, 0x3c($sp)
/* 34750 80059350 AFB20038 */ sw $s2, 0x38($sp)
/* 34754 80059354 F7B60060 */ sdc1 $f22, 0x60($sp)
/* 34758 80059358 F7B40058 */ sdc1 $f20, 0x58($sp)
/* 3475C 8005935C AFA40068 */ sw $a0, 0x68($sp)
/* 34760 80059360 A7A70026 */ sh $a3, 0x26($sp)
/* 34764 80059364 A7A0001E */ sh $zero, 0x1e($sp)
/* 34768 80059368 AE020000 */ sw $v0, ($s0)
/* 3476C 8005936C 8FA80068 */ lw $t0, 0x68($sp)
/* 34770 80059370 26120008 */ addiu $s2, $s0, 8
/* 34774 80059374 8D040004 */ lw $a0, 4($t0)
/* 34778 80059378 0C0187A4 */ jal osVirtualToPhysical
/* 3477C 8005937C 24F302E0 */ addiu $s3, $a3, 0x2e0
/* 34780 80059380 0240202D */ daddu $a0, $s2, $zero
/* 34784 80059384 3C0300FF */ lui $v1, 0xff
/* 34788 80059388 3463FFFF */ ori $v1, $v1, 0xffff
/* 3478C 8005938C AE020004 */ sw $v0, 4($s0)
/* 34790 80059390 00111400 */ sll $v0, $s1, 0x10
/* 34794 80059394 00021403 */ sra $v0, $v0, 0x10
/* 34798 80059398 00431024 */ and $v0, $v0, $v1
/* 3479C 8005939C 3C030200 */ lui $v1, 0x200
/* 347A0 800593A0 00431025 */ or $v0, $v0, $v1
/* 347A4 800593A4 AC820000 */ sw $v0, ($a0)
/* 347A8 800593A8 24020170 */ addiu $v0, $zero, 0x170
/* 347AC 800593AC AC820004 */ sw $v0, 4($a0)
/* 347B0 800593B0 8FA80068 */ lw $t0, 0x68($sp)
/* 347B4 800593B4 0000A02D */ daddu $s4, $zero, $zero
/* 347B8 800593B8 91020010 */ lbu $v0, 0x10($t0)
/* 347BC 800593BC 26520008 */ addiu $s2, $s2, 8
/* 347C0 800593C0 1040011D */ beqz $v0, .L80059838
/* 347C4 800593C4 A7B10028 */ sh $s1, 0x28($sp)
/* 347C8 800593C8 00131400 */ sll $v0, $s3, 0x10
/* 347CC 800593CC 3C014700 */ lui $at, 0x4700
/* 347D0 800593D0 4481B000 */ mtc1 $at, $f22
/* 347D4 800593D4 00021403 */ sra $v0, $v0, 0x10
/* 347D8 800593D8 AFA2002C */ sw $v0, 0x2c($sp)
.L800593DC:
/* 347DC 800593DC 97A8001E */ lhu $t0, 0x1e($sp)
/* 347E0 800593E0 00081400 */ sll $v0, $t0, 0x10
/* 347E4 800593E4 00021403 */ sra $v0, $v0, 0x10
/* 347E8 800593E8 00021840 */ sll $v1, $v0, 1
/* 347EC 800593EC 00621821 */ addu $v1, $v1, $v0
/* 347F0 800593F0 8FA80068 */ lw $t0, 0x68($sp)
/* 347F4 800593F4 00031900 */ sll $v1, $v1, 4
/* 347F8 800593F8 8D02000C */ lw $v0, 0xc($t0)
/* 347FC 800593FC 8D040004 */ lw $a0, 4($t0)
/* 34800 80059400 00439821 */ addu $s3, $v0, $v1
/* 34804 80059404 8E620000 */ lw $v0, ($s3)
/* 34808 80059408 8D030000 */ lw $v1, ($t0)
/* 3480C 8005940C 00021040 */ sll $v0, $v0, 1
/* 34810 80059410 0082B823 */ subu $s7, $a0, $v0
/* 34814 80059414 02E3102B */ sltu $v0, $s7, $v1
/* 34818 80059418 10400004 */ beqz $v0, .L8005942C
/* 3481C 8005941C 00000000 */ nop
/* 34820 80059420 8D020008 */ lw $v0, 8($t0)
/* 34824 80059424 00021040 */ sll $v0, $v0, 1
/* 34828 80059428 02E2B821 */ addu $s7, $s7, $v0
.L8005942C:
/* 3482C 8005942C 8E620004 */ lw $v0, 4($s3)
/* 34830 80059430 00021040 */ sll $v0, $v0, 1
/* 34834 80059434 0082F023 */ subu $fp, $a0, $v0
/* 34838 80059438 03C3102B */ sltu $v0, $fp, $v1
/* 3483C 8005943C 10400005 */ beqz $v0, .L80059454
/* 34840 80059440 00000000 */ nop
/* 34844 80059444 8FA80068 */ lw $t0, 0x68($sp)
/* 34848 80059448 8D020008 */ lw $v0, 8($t0)
/* 3484C 8005944C 00021040 */ sll $v0, $v0, 1
/* 34850 80059450 03C2F021 */ addu $fp, $fp, $v0
.L80059454:
/* 34854 80059454 16F40005 */ bne $s7, $s4, .L8005946C
/* 34858 80059458 0240802D */ daddu $s0, $s2, $zero
/* 3485C 8005945C 02C0102D */ daddu $v0, $s6, $zero
/* 34860 80059460 97B60026 */ lhu $s6, 0x26($sp)
/* 34864 80059464 08016524 */ j .L80059490
/* 34868 80059468 A7A20026 */ sh $v0, 0x26($sp)
.L8005946C:
/* 3486C 8005946C 26520008 */ addiu $s2, $s2, 8
/* 34870 80059470 02E0202D */ daddu $a0, $s7, $zero
/* 34874 80059474 97A80026 */ lhu $t0, 0x26($sp)
/* 34878 80059478 3C030417 */ lui $v1, 0x417
/* 3487C 8005947C 31020FFF */ andi $v0, $t0, 0xfff
/* 34880 80059480 00431025 */ or $v0, $v0, $v1
/* 34884 80059484 0C0187A4 */ jal osVirtualToPhysical
/* 34888 80059488 AE020000 */ sw $v0, ($s0)
/* 3488C 8005948C AE020004 */ sw $v0, 4($s0)
.L80059490:
/* 34890 80059490 8E620028 */ lw $v0, 0x28($s3)
/* 34894 80059494 10400068 */ beqz $v0, .L80059638
/* 34898 80059498 0260202D */ daddu $a0, $s3, $zero
/* 3489C 8005949C 8E700004 */ lw $s0, 4($s3)
/* 348A0 800594A0 8E620000 */ lw $v0, ($s3)
/* 348A4 800594A4 240500B8 */ addiu $a1, $zero, 0xb8
/* 348A8 800594A8 0C0166F5 */ jal func_80059BD4
/* 348AC 800594AC 02028023 */ subu $s0, $s0, $v0
/* 348B0 800594B0 44901000 */ mtc1 $s0, $f2
/* 348B4 800594B4 00000000 */ nop
/* 348B8 800594B8 468010A0 */ cvt.s.w $f2, $f2
/* 348BC 800594BC 46020103 */ div.s $f4, $f0, $f2
/* 348C0 800594C0 46162002 */ mul.s $f0, $f4, $f22
/* 348C4 800594C4 00000000 */ nop
/* 348C8 800594C8 4600018D */ trunc.w.s $f6, $f0
/* 348CC 800594CC 44023000 */ mfc1 $v0, $f6
/* 348D0 800594D0 3C013800 */ lui $at, 0x3800
/* 348D4 800594D4 44810000 */ mtc1 $at, $f0
/* 348D8 800594D8 44822000 */ mtc1 $v0, $f4
/* 348DC 800594DC 00000000 */ nop
/* 348E0 800594E0 46802120 */ cvt.s.w $f4, $f4
/* 348E4 800594E4 46002102 */ mul.s $f4, $f4, $f0
/* 348E8 800594E8 00000000 */ nop
/* 348EC 800594EC 3C013FF0 */ lui $at, 0x3ff0
/* 348F0 800594F0 44811800 */ mtc1 $at, $f3
/* 348F4 800594F4 44801000 */ mtc1 $zero, $f2
/* 348F8 800594F8 46002021 */ cvt.d.s $f0, $f4
/* 348FC 800594FC 46201081 */ sub.d $f2, $f2, $f0
/* 34900 80059500 3C014338 */ lui $at, 0x4338
/* 34904 80059504 44812000 */ mtc1 $at, $f4
/* 34908 80059508 46201520 */ cvt.s.d $f20, $f2
/* 3490C 8005950C 4604A102 */ mul.s $f4, $f20, $f4
/* 34910 80059510 00000000 */ nop
/* 34914 80059514 8E620028 */ lw $v0, 0x28($s3)
/* 34918 80059518 C4400008 */ lwc1 $f0, 8($v0)
/* 3491C 8005951C 46040000 */ add.s $f0, $f0, $f4
/* 34920 80059520 4600018D */ trunc.w.s $f6, $f0
/* 34924 80059524 44143000 */ mfc1 $s4, $f6
/* 34928 80059528 00000000 */ nop
/* 3492C 8005952C 44941000 */ mtc1 $s4, $f2
/* 34930 80059530 00000000 */ nop
/* 34934 80059534 468010A0 */ cvt.s.w $f2, $f2
/* 34938 80059538 46020001 */ sub.s $f0, $f0, $f2
/* 3493C 8005953C E4400008 */ swc1 $f0, 8($v0)
/* 34940 80059540 8E630018 */ lw $v1, 0x18($s3)
/* 34944 80059544 8E620004 */ lw $v0, 4($s3)
/* 34948 80059548 8FA80068 */ lw $t0, 0x68($sp)
/* 3494C 8005954C 00621823 */ subu $v1, $v1, $v0
/* 34950 80059550 8D020004 */ lw $v0, 4($t0)
/* 34954 80059554 00031840 */ sll $v1, $v1, 1
/* 34958 80059558 00432821 */ addu $a1, $v0, $v1
/* 3495C 8005955C 30A20007 */ andi $v0, $a1, 7
/* 34960 80059560 00021843 */ sra $v1, $v0, 1
/* 34964 80059564 0003A840 */ sll $s5, $v1, 1
/* 34968 80059568 8D020000 */ lw $v0, ($t0)
/* 3496C 8005956C 00B52823 */ subu $a1, $a1, $s5
/* 34970 80059570 00A2102B */ sltu $v0, $a1, $v0
/* 34974 80059574 10400004 */ beqz $v0, .L80059588
/* 34978 80059578 00000000 */ nop
/* 3497C 8005957C 8D020008 */ lw $v0, 8($t0)
/* 34980 80059580 00021040 */ sll $v0, $v0, 1
/* 34984 80059584 00A22821 */ addu $a1, $a1, $v0
.L80059588:
/* 34988 80059588 8FA40068 */ lw $a0, 0x68($sp)
/* 3498C 8005958C 8FA6002C */ lw $a2, 0x2c($sp)
/* 34990 80059590 02833821 */ addu $a3, $s4, $v1
/* 34994 80059594 0C0166AE */ jal _saveBuffer
/* 34998 80059598 AFB20010 */ sw $s2, 0x10($sp)
/* 3499C 8005959C 0040902D */ daddu $s2, $v0, $zero
/* 349A0 800595A0 4616A002 */ mul.s $f0, $f20, $f22
/* 349A4 800595A4 00000000 */ nop
/* 349A8 800595A8 00168C00 */ sll $s1, $s6, 0x10
/* 349AC 800595AC 8E630028 */ lw $v1, 0x28($s3)
/* 349B0 800595B0 8C640000 */ lw $a0, ($v1)
/* 349B4 800595B4 4600018D */ trunc.w.s $f6, $f0
/* 349B8 800595B8 44103000 */ mfc1 $s0, $f6
/* 349BC 800595BC 0C0187A4 */ jal osVirtualToPhysical
/* 349C0 800595C0 00118E03 */ sra $s1, $s1, 0x18
/* 349C4 800595C4 3C0300FF */ lui $v1, 0xff
/* 349C8 800595C8 3463FFFF */ ori $v1, $v1, 0xffff
/* 349CC 800595CC 0240202D */ daddu $a0, $s2, $zero
/* 349D0 800595D0 00431024 */ and $v0, $v0, $v1
/* 349D4 800595D4 3C030500 */ lui $v1, 0x500
/* 349D8 800595D8 00431025 */ or $v0, $v0, $v1
/* 349DC 800595DC 3210FFFF */ andi $s0, $s0, 0xffff
/* 349E0 800595E0 00108380 */ sll $s0, $s0, 0xe
/* 349E4 800595E4 32310003 */ andi $s1, $s1, 3
/* 349E8 800595E8 AC820000 */ sw $v0, ($a0)
/* 349EC 800595EC 8E620028 */ lw $v0, 0x28($s3)
/* 349F0 800595F0 8FA8002C */ lw $t0, 0x2c($sp)
/* 349F4 800595F4 8C43000C */ lw $v1, 0xc($v0)
/* 349F8 800595F8 01151021 */ addu $v0, $t0, $s5
/* 349FC 800595FC 30420FFF */ andi $v0, $v0, 0xfff
/* 34A00 80059600 00021080 */ sll $v0, $v0, 2
/* 34A04 80059604 00031F80 */ sll $v1, $v1, 0x1e
/* 34A08 80059608 00701825 */ or $v1, $v1, $s0
/* 34A0C 8005960C 00621825 */ or $v1, $v1, $v0
/* 34A10 80059610 00711825 */ or $v1, $v1, $s1
/* 34A14 80059614 AC830004 */ sw $v1, 4($a0)
/* 34A18 80059618 8E620028 */ lw $v0, 0x28($s3)
/* 34A1C 8005961C AC40000C */ sw $zero, 0xc($v0)
/* 34A20 80059620 8E620018 */ lw $v0, 0x18($s3)
/* 34A24 80059624 26520008 */ addiu $s2, $s2, 8
/* 34A28 80059628 2442FF48 */ addiu $v0, $v0, -0xb8
/* 34A2C 8005962C 00541021 */ addu $v0, $v0, $s4
/* 34A30 80059630 08016597 */ j .L8005965C
/* 34A34 80059634 AE620018 */ sw $v0, 0x18($s3)
.L80059638:
/* 34A38 80059638 0240802D */ daddu $s0, $s2, $zero
/* 34A3C 8005963C 26520008 */ addiu $s2, $s2, 8
/* 34A40 80059640 03C0202D */ daddu $a0, $fp, $zero
/* 34A44 80059644 32C20FFF */ andi $v0, $s6, 0xfff
/* 34A48 80059648 3C030417 */ lui $v1, 0x417
/* 34A4C 8005964C 00431025 */ or $v0, $v0, $v1
/* 34A50 80059650 0C0187A4 */ jal osVirtualToPhysical
/* 34A54 80059654 AE020000 */ sw $v0, ($s0)
/* 34A58 80059658 AE020004 */ sw $v0, 4($s0)
.L8005965C:
/* 34A5C 8005965C 86620008 */ lh $v0, 8($s3)
/* 34A60 80059660 10400018 */ beqz $v0, .L800596C4
/* 34A64 80059664 0240282D */ daddu $a1, $s2, $zero
/* 34A68 80059668 32C4FFFF */ andi $a0, $s6, 0xffff
/* 34A6C 8005966C 97A80026 */ lhu $t0, 0x26($sp)
/* 34A70 80059670 96630008 */ lhu $v1, 8($s3)
/* 34A74 80059674 00081400 */ sll $v0, $t0, 0x10
/* 34A78 80059678 00441025 */ or $v0, $v0, $a0
/* 34A7C 8005967C 3C080C00 */ lui $t0, 0xc00
/* 34A80 80059680 00681825 */ or $v1, $v1, $t0
/* 34A84 80059684 ACA20004 */ sw $v0, 4($a1)
/* 34A88 80059688 ACA30000 */ sw $v1, ($a1)
/* 34A8C 8005968C 8E620028 */ lw $v0, 0x28($s3)
/* 34A90 80059690 1440000C */ bnez $v0, .L800596C4
/* 34A94 80059694 26520008 */ addiu $s2, $s2, 8
/* 34A98 80059698 8E620020 */ lw $v0, 0x20($s3)
/* 34A9C 8005969C 14400009 */ bnez $v0, .L800596C4
/* 34AA0 800596A0 0240802D */ daddu $s0, $s2, $zero
/* 34AA4 800596A4 26520008 */ addiu $s2, $s2, 8
/* 34AA8 800596A8 03C0202D */ daddu $a0, $fp, $zero
/* 34AAC 800596AC 32C20FFF */ andi $v0, $s6, 0xfff
/* 34AB0 800596B0 3C080617 */ lui $t0, 0x617
/* 34AB4 800596B4 00481025 */ or $v0, $v0, $t0
/* 34AB8 800596B8 0C0187A4 */ jal osVirtualToPhysical
/* 34ABC 800596BC AE020000 */ sw $v0, ($s0)
/* 34AC0 800596C0 AE020004 */ sw $v0, 4($s0)
.L800596C4:
/* 34AC4 800596C4 8662000A */ lh $v0, 0xa($s3)
/* 34AC8 800596C8 10400014 */ beqz $v0, .L8005971C
/* 34ACC 800596CC 0240302D */ daddu $a2, $s2, $zero
/* 34AD0 800596D0 26520008 */ addiu $s2, $s2, 8
/* 34AD4 800596D4 0240802D */ daddu $s0, $s2, $zero
/* 34AD8 800596D8 26520008 */ addiu $s2, $s2, 8
/* 34ADC 800596DC 00161400 */ sll $v0, $s6, 0x10
/* 34AE0 800596E0 3C080C00 */ lui $t0, 0xc00
/* 34AE4 800596E4 97A50026 */ lhu $a1, 0x26($sp)
/* 34AE8 800596E8 9663000A */ lhu $v1, 0xa($s3)
/* 34AEC 800596EC 00451025 */ or $v0, $v0, $a1
/* 34AF0 800596F0 00681825 */ or $v1, $v1, $t0
/* 34AF4 800596F4 ACC20004 */ sw $v0, 4($a2)
/* 34AF8 800596F8 ACC30000 */ sw $v1, ($a2)
/* 34AFC 800596FC 97A80026 */ lhu $t0, 0x26($sp)
/* 34B00 80059700 02E0202D */ daddu $a0, $s7, $zero
/* 34B04 80059704 31020FFF */ andi $v0, $t0, 0xfff
/* 34B08 80059708 3C080617 */ lui $t0, 0x617
/* 34B0C 8005970C 00481025 */ or $v0, $v0, $t0
/* 34B10 80059710 0C0187A4 */ jal osVirtualToPhysical
/* 34B14 80059714 AE020000 */ sw $v0, ($s0)
/* 34B18 80059718 AE020004 */ sw $v0, 4($s0)
.L8005971C:
/* 34B1C 8005971C 8E620020 */ lw $v0, 0x20($s3)
/* 34B20 80059720 10400020 */ beqz $v0, .L800597A4
/* 34B24 80059724 3C020B00 */ lui $v0, 0xb00
/* 34B28 80059728 34420020 */ ori $v0, $v0, 0x20
/* 34B2C 8005972C 0240882D */ daddu $s1, $s2, $zero
/* 34B30 80059730 00168400 */ sll $s0, $s6, 0x10
/* 34B34 80059734 AE220000 */ sw $v0, ($s1)
/* 34B38 80059738 8E640020 */ lw $a0, 0x20($s3)
/* 34B3C 8005973C 00108603 */ sra $s0, $s0, 0x18
/* 34B40 80059740 0C0187A4 */ jal osVirtualToPhysical
/* 34B44 80059744 24840008 */ addiu $a0, $a0, 8
/* 34B48 80059748 26520008 */ addiu $s2, $s2, 8
/* 34B4C 8005974C AE220004 */ sw $v0, 4($s1)
/* 34B50 80059750 0240882D */ daddu $s1, $s2, $zero
/* 34B54 80059754 8E620020 */ lw $v0, 0x20($s3)
/* 34B58 80059758 3C030E00 */ lui $v1, 0xe00
/* 34B5C 8005975C 9044002F */ lbu $a0, 0x2f($v0)
/* 34B60 80059760 94420002 */ lhu $v0, 2($v0)
/* 34B64 80059764 00042400 */ sll $a0, $a0, 0x10
/* 34B68 80059768 00431025 */ or $v0, $v0, $v1
/* 34B6C 8005976C 00822025 */ or $a0, $a0, $v0
/* 34B70 80059770 AE240000 */ sw $a0, ($s1)
/* 34B74 80059774 8E620020 */ lw $v0, 0x20($s3)
/* 34B78 80059778 8C440028 */ lw $a0, 0x28($v0)
/* 34B7C 8005977C 0C0187A4 */ jal osVirtualToPhysical
/* 34B80 80059780 00108600 */ sll $s0, $s0, 0x18
/* 34B84 80059784 3C0300FF */ lui $v1, 0xff
/* 34B88 80059788 3463FFFF */ ori $v1, $v1, 0xffff
/* 34B8C 8005978C 00431024 */ and $v0, $v0, $v1
/* 34B90 80059790 02028025 */ or $s0, $s0, $v0
/* 34B94 80059794 AE300004 */ sw $s0, 4($s1)
/* 34B98 80059798 8E620020 */ lw $v0, 0x20($s3)
/* 34B9C 8005979C 26520008 */ addiu $s2, $s2, 8
/* 34BA0 800597A0 AC40002C */ sw $zero, 0x2c($v0)
.L800597A4:
/* 34BA4 800597A4 8E620028 */ lw $v0, 0x28($s3)
/* 34BA8 800597A8 14400009 */ bnez $v0, .L800597D0
/* 34BAC 800597AC 0240802D */ daddu $s0, $s2, $zero
/* 34BB0 800597B0 26520008 */ addiu $s2, $s2, 8
/* 34BB4 800597B4 03C0202D */ daddu $a0, $fp, $zero
/* 34BB8 800597B8 32C20FFF */ andi $v0, $s6, 0xfff
/* 34BBC 800597BC 3C080617 */ lui $t0, 0x617
/* 34BC0 800597C0 00481025 */ or $v0, $v0, $t0
/* 34BC4 800597C4 0C0187A4 */ jal osVirtualToPhysical
/* 34BC8 800597C8 AE020000 */ sw $v0, ($s0)
/* 34BCC 800597CC AE020004 */ sw $v0, 4($s0)
.L800597D0:
/* 34BD0 800597D0 8662000C */ lh $v0, 0xc($s3)
/* 34BD4 800597D4 1040000A */ beqz $v0, .L80059800
/* 34BD8 800597D8 0240282D */ daddu $a1, $s2, $zero
/* 34BDC 800597DC 26520008 */ addiu $s2, $s2, 8
/* 34BE0 800597E0 00161400 */ sll $v0, $s6, 0x10
/* 34BE4 800597E4 3C080C00 */ lui $t0, 0xc00
/* 34BE8 800597E8 97A40028 */ lhu $a0, 0x28($sp)
/* 34BEC 800597EC 9663000C */ lhu $v1, 0xc($s3)
/* 34BF0 800597F0 00441025 */ or $v0, $v0, $a0
/* 34BF4 800597F4 00681825 */ or $v1, $v1, $t0
/* 34BF8 800597F8 ACA20004 */ sw $v0, 4($a1)
/* 34BFC 800597FC ACA30000 */ sw $v1, ($a1)
.L80059800:
/* 34C00 80059800 97A8001E */ lhu $t0, 0x1e($sp)
/* 34C04 80059804 25030001 */ addiu $v1, $t0, 1
/* 34C08 80059808 A7A3001E */ sh $v1, 0x1e($sp)
/* 34C0C 8005980C 00031C00 */ sll $v1, $v1, 0x10
/* 34C10 80059810 8FA80068 */ lw $t0, 0x68($sp)
/* 34C14 80059814 8E620004 */ lw $v0, 4($s3)
/* 34C18 80059818 8D040004 */ lw $a0, 4($t0)
/* 34C1C 8005981C 00021040 */ sll $v0, $v0, 1
/* 34C20 80059820 0082A021 */ addu $s4, $a0, $v0
/* 34C24 80059824 91020010 */ lbu $v0, 0x10($t0)
/* 34C28 80059828 00031C03 */ sra $v1, $v1, 0x10
/* 34C2C 8005982C 0062182A */ slt $v1, $v1, $v0
/* 34C30 80059830 1460FEEA */ bnez $v1, .L800593DC
/* 34C34 80059834 00000000 */ nop
.L80059838:
/* 34C38 80059838 8FA80068 */ lw $t0, 0x68($sp)
/* 34C3C 8005983C 8D030004 */ lw $v1, 4($t0)
/* 34C40 80059840 8D020008 */ lw $v0, 8($t0)
/* 34C44 80059844 8D040000 */ lw $a0, ($t0)
/* 34C48 80059848 24630170 */ addiu $v1, $v1, 0x170
/* 34C4C 8005984C 00021040 */ sll $v0, $v0, 1
/* 34C50 80059850 00821021 */ addu $v0, $a0, $v0
/* 34C54 80059854 AD030004 */ sw $v1, 4($t0)
/* 34C58 80059858 0062182B */ sltu $v1, $v1, $v0
/* 34C5C 8005985C 50600001 */ beql $v1, $zero, .L80059864
/* 34C60 80059860 AD040004 */ sw $a0, 4($t0)
.L80059864:
/* 34C64 80059864 0240102D */ daddu $v0, $s2, $zero
/* 34C68 80059868 8FBF0054 */ lw $ra, 0x54($sp)
/* 34C6C 8005986C 8FBE0050 */ lw $fp, 0x50($sp)
/* 34C70 80059870 8FB7004C */ lw $s7, 0x4c($sp)
/* 34C74 80059874 8FB60048 */ lw $s6, 0x48($sp)
/* 34C78 80059878 8FB50044 */ lw $s5, 0x44($sp)
/* 34C7C 8005987C 8FB40040 */ lw $s4, 0x40($sp)
/* 34C80 80059880 8FB3003C */ lw $s3, 0x3c($sp)
/* 34C84 80059884 8FB20038 */ lw $s2, 0x38($sp)
/* 34C88 80059888 8FB10034 */ lw $s1, 0x34($sp)
/* 34C8C 8005988C 8FB00030 */ lw $s0, 0x30($sp)
/* 34C90 80059890 D7B60060 */ ldc1 $f22, 0x60($sp)
/* 34C94 80059894 D7B40058 */ ldc1 $f20, 0x58($sp)
/* 34C98 80059898 03E00008 */ jr $ra
/* 34C9C 8005989C 27BD0068 */ addiu $sp, $sp, 0x68

View File

@ -1,316 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel jtbl_E0044F00
.word .LE0044A74_3559D4, .LE0044A74_3559D4, .LE0044A74_3559D4, .LE0044A98_3559F8, .LE0044B14_355A74, .LE0044AF4_355A54, .LE0044B14_355A74, .LE0044B14_355A74, .LE0044B14_355A74, .LE0044B14_355A74, .LE0044A74_3559D4, .LE0044B14_355A74, .LE0044B14_355A74, .LE0044B14_355A74, .LE0044B14_355A74, .LE0044B14_355A74, .LE0044B14_355A74, .LE0044B14_355A74, .LE0044B14_355A74, .LE0044B14_355A74, .LE0044B14_355A74, .LE0044B14_355A74, .LE0044B14_355A74, .LE0044B14_355A74, .LE0044B14_355A74, .LE0044B14_355A74, .LE0044B14_355A74, .LE0044B14_355A74, .LE0044B14_355A74, .LE0044B14_355A74, .LE0044A98_3559F8, 0
.section .text
glabel stars_shimmer_appendGfx
/* 35587C E004491C 27BDFEE8 */ addiu $sp, $sp, -0x118
/* 355880 E0044920 3C07DB06 */ lui $a3, 0xdb06
/* 355884 E0044924 34E70024 */ ori $a3, $a3, 0x24
/* 355888 E0044928 AFA40118 */ sw $a0, 0x118($sp)
/* 35588C E004492C 27A40018 */ addiu $a0, $sp, 0x18
/* 355890 E0044930 3C05800A */ lui $a1, %hi(gMasterGfxPos)
/* 355894 E0044934 24A5A66C */ addiu $a1, $a1, %lo(gMasterGfxPos)
/* 355898 E0044938 AFBF00FC */ sw $ra, 0xfc($sp)
/* 35589C E004493C AFBE00F8 */ sw $fp, 0xf8($sp)
/* 3558A0 E0044940 AFB700F4 */ sw $s7, 0xf4($sp)
/* 3558A4 E0044944 AFB600F0 */ sw $s6, 0xf0($sp)
/* 3558A8 E0044948 AFB500EC */ sw $s5, 0xec($sp)
/* 3558AC E004494C AFB400E8 */ sw $s4, 0xe8($sp)
/* 3558B0 E0044950 AFB300E4 */ sw $s3, 0xe4($sp)
/* 3558B4 E0044954 AFB200E0 */ sw $s2, 0xe0($sp)
/* 3558B8 E0044958 AFB100DC */ sw $s1, 0xdc($sp)
/* 3558BC E004495C AFB000D8 */ sw $s0, 0xd8($sp)
/* 3558C0 E0044960 F7B80110 */ sdc1 $f24, 0x110($sp)
/* 3558C4 E0044964 F7B60108 */ sdc1 $f22, 0x108($sp)
/* 3558C8 E0044968 F7B40100 */ sdc1 $f20, 0x100($sp)
/* 3558CC E004496C 8CA30000 */ lw $v1, ($a1)
/* 3558D0 E0044970 8FA90118 */ lw $t1, 0x118($sp)
/* 3558D4 E0044974 0060302D */ daddu $a2, $v1, $zero
/* 3558D8 E0044978 8D31000C */ lw $s1, 0xc($t1)
/* 3558DC E004497C 24630008 */ addiu $v1, $v1, 8
/* 3558E0 E0044980 ACA30000 */ sw $v1, ($a1)
/* 3558E4 E0044984 86320002 */ lh $s2, 2($s1)
/* 3558E8 E0044988 3C02E700 */ lui $v0, 0xe700
/* 3558EC E004498C ACC20000 */ sw $v0, ($a2)
/* 3558F0 E0044990 24620008 */ addiu $v0, $v1, 8
/* 3558F4 E0044994 ACC00004 */ sw $zero, 4($a2)
/* 3558F8 E0044998 ACA20000 */ sw $v0, ($a1)
/* 3558FC E004499C AC670000 */ sw $a3, ($v1)
/* 355900 E00449A0 8D260010 */ lw $a2, 0x10($t1)
/* 355904 E00449A4 24620010 */ addiu $v0, $v1, 0x10
/* 355908 E00449A8 ACA20000 */ sw $v0, ($a1)
/* 35590C E00449AC 8CC5001C */ lw $a1, 0x1c($a2)
/* 355910 E00449B0 3C02DE00 */ lui $v0, 0xde00
/* 355914 E00449B4 AC620008 */ sw $v0, 8($v1)
/* 355918 E00449B8 3C020900 */ lui $v0, 0x900
/* 35591C E00449BC 24420F20 */ addiu $v0, $v0, 0xf20
/* 355920 E00449C0 AC62000C */ sw $v0, 0xc($v1)
/* 355924 E00449C4 3C028000 */ lui $v0, 0x8000
/* 355928 E00449C8 00A22821 */ addu $a1, $a1, $v0
/* 35592C E00449CC AC650004 */ sw $a1, 4($v1)
/* 355930 E00449D0 8E250004 */ lw $a1, 4($s1)
/* 355934 E00449D4 8E260008 */ lw $a2, 8($s1)
/* 355938 E00449D8 8E220020 */ lw $v0, 0x20($s1)
/* 35593C E00449DC 8E27000C */ lw $a3, 0xc($s1)
/* 355940 E00449E0 2442FFFF */ addiu $v0, $v0, -1
/* 355944 E00449E4 00021840 */ sll $v1, $v0, 1
/* 355948 E00449E8 0C080108 */ jal shim_guTranslateF
/* 35594C E00449EC 0062A021 */ addu $s4, $v1, $v0
/* 355950 E00449F0 27B00058 */ addiu $s0, $sp, 0x58
/* 355954 E00449F4 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* 355958 E00449F8 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* 35595C E00449FC 44800000 */ mtc1 $zero, $f0
/* 355960 E0044A00 00031080 */ sll $v0, $v1, 2
/* 355964 E0044A04 00431021 */ addu $v0, $v0, $v1
/* 355968 E0044A08 00021080 */ sll $v0, $v0, 2
/* 35596C E0044A0C 00431023 */ subu $v0, $v0, $v1
/* 355970 E0044A10 000218C0 */ sll $v1, $v0, 3
/* 355974 E0044A14 00431021 */ addu $v0, $v0, $v1
/* 355978 E0044A18 000210C0 */ sll $v0, $v0, 3
/* 35597C E0044A1C 44060000 */ mfc1 $a2, $f0
/* 355980 E0044A20 3C01800B */ lui $at, %hi(gCameras+0x6C)
/* 355984 E0044A24 00220821 */ addu $at, $at, $v0
/* 355988 E0044A28 C4201DEC */ lwc1 $f0, %lo(gCameras+0x6C)($at)
/* 35598C E0044A2C 3C073F80 */ lui $a3, 0x3f80
/* 355990 E0044A30 46000007 */ neg.s $f0, $f0
/* 355994 E0044A34 44050000 */ mfc1 $a1, $f0
/* 355998 E0044A38 0200202D */ daddu $a0, $s0, $zero
/* 35599C E0044A3C 0C080104 */ jal shim_guRotateF
/* 3559A0 E0044A40 AFA60010 */ sw $a2, 0x10($sp)
/* 3559A4 E0044A44 0200202D */ daddu $a0, $s0, $zero
/* 3559A8 E0044A48 27A50018 */ addiu $a1, $sp, 0x18
/* 3559AC E0044A4C 0C080114 */ jal shim_guMtxCatF
/* 3559B0 E0044A50 27A60098 */ addiu $a2, $sp, 0x98
/* 3559B4 E0044A54 2E42001F */ sltiu $v0, $s2, 0x1f
/* 3559B8 E0044A58 1040002E */ beqz $v0, .LE0044B14_355A74
/* 3559BC E0044A5C 00121080 */ sll $v0, $s2, 2
/* 3559C0 E0044A60 3C01E004 */ lui $at, %hi(jtbl_E0044F00)
/* 3559C4 E0044A64 00220821 */ addu $at, $at, $v0
/* 3559C8 E0044A68 8C224F00 */ lw $v0, %lo(jtbl_E0044F00)($at)
/* 3559CC E0044A6C 00400008 */ jr $v0
/* 3559D0 E0044A70 00000000 */ nop
.LE0044A74_3559D4:
/* 3559D4 E0044A74 3C013F80 */ lui $at, 0x3f80
/* 3559D8 E0044A78 4481C000 */ mtc1 $at, $f24
/* 3559DC E0044A7C 3C013F00 */ lui $at, 0x3f00
/* 3559E0 E0044A80 4481B000 */ mtc1 $at, $f22
/* 3559E4 E0044A84 3C013DCC */ lui $at, 0x3dcc
/* 3559E8 E0044A88 3421CCCD */ ori $at, $at, 0xcccd
/* 3559EC E0044A8C 4481A000 */ mtc1 $at, $f20
/* 3559F0 E0044A90 080112CC */ j .LE0044B30
/* 3559F4 E0044A94 00000000 */ nop
.LE0044A98_3559F8:
/* 3559F8 E0044A98 3C013F80 */ lui $at, 0x3f80
/* 3559FC E0044A9C 4481C000 */ mtc1 $at, $f24
/* 355A00 E0044AA0 3C013F4C */ lui $at, 0x3f4c
/* 355A04 E0044AA4 3421CCCD */ ori $at, $at, 0xcccd
/* 355A08 E0044AA8 4481B000 */ mtc1 $at, $f22
/* 355A0C E0044AAC 86220000 */ lh $v0, ($s1)
/* 355A10 E0044AB0 3C013F33 */ lui $at, 0x3f33
/* 355A14 E0044AB4 34213333 */ ori $at, $at, 0x3333
/* 355A18 E0044AB8 4481A000 */ mtc1 $at, $f20
/* 355A1C E0044ABC 1040001C */ beqz $v0, .LE0044B30
/* 355A20 E0044AC0 3C06E200 */ lui $a2, 0xe200
/* 355A24 E0044AC4 34C6001C */ ori $a2, $a2, 0x1c
/* 355A28 E0044AC8 3C050050 */ lui $a1, 0x50
/* 355A2C E0044ACC 3C04800A */ lui $a0, %hi(gMasterGfxPos)
/* 355A30 E0044AD0 2484A66C */ addiu $a0, $a0, %lo(gMasterGfxPos)
/* 355A34 E0044AD4 8C820000 */ lw $v0, ($a0)
/* 355A38 E0044AD8 34A54B50 */ ori $a1, $a1, 0x4b50
/* 355A3C E0044ADC 0040182D */ daddu $v1, $v0, $zero
/* 355A40 E0044AE0 24420008 */ addiu $v0, $v0, 8
/* 355A44 E0044AE4 AC820000 */ sw $v0, ($a0)
/* 355A48 E0044AE8 AC660000 */ sw $a2, ($v1)
/* 355A4C E0044AEC 080112CC */ j .LE0044B30
/* 355A50 E0044AF0 AC650004 */ sw $a1, 4($v1)
.LE0044AF4_355A54:
/* 355A54 E0044AF4 3C013FB3 */ lui $at, 0x3fb3
/* 355A58 E0044AF8 34213333 */ ori $at, $at, 0x3333
/* 355A5C E0044AFC 4481B000 */ mtc1 $at, $f22
/* 355A60 E0044B00 3C013F33 */ lui $at, 0x3f33
/* 355A64 E0044B04 34213333 */ ori $at, $at, 0x3333
/* 355A68 E0044B08 4481A000 */ mtc1 $at, $f20
/* 355A6C E0044B0C 080112CC */ j .LE0044B30
/* 355A70 E0044B10 4600B606 */ mov.s $f24, $f22
.LE0044B14_355A74:
/* 355A74 E0044B14 3C013F33 */ lui $at, 0x3f33
/* 355A78 E0044B18 34213333 */ ori $at, $at, 0x3333
/* 355A7C E0044B1C 4481A000 */ mtc1 $at, $f20
/* 355A80 E0044B20 3C013FB3 */ lui $at, 0x3fb3
/* 355A84 E0044B24 34213333 */ ori $at, $at, 0x3333
/* 355A88 E0044B28 4481C000 */ mtc1 $at, $f24
/* 355A8C E0044B2C 4600A586 */ mov.s $f22, $f20
.LE0044B30:
/* 355A90 E0044B30 8FA90118 */ lw $t1, 0x118($sp)
/* 355A94 E0044B34 2631002C */ addiu $s1, $s1, 0x2c
/* 355A98 E0044B38 8D220008 */ lw $v0, 8($t1)
/* 355A9C E0044B3C 2442FFFF */ addiu $v0, $v0, -1
/* 355AA0 E0044B40 18400083 */ blez $v0, .LE0044D50
/* 355AA4 E0044B44 0000902D */ daddu $s2, $zero, $zero
/* 355AA8 E0044B48 27B60058 */ addiu $s6, $sp, 0x58
/* 355AAC E0044B4C 3C178007 */ lui $s7, %hi(gMatrixListPos)
/* 355AB0 E0044B50 26F741F0 */ addiu $s7, $s7, %lo(gMatrixListPos)
/* 355AB4 E0044B54 3C150001 */ lui $s5, 1
/* 355AB8 E0044B58 36B51630 */ ori $s5, $s5, 0x1630
/* 355ABC E0044B5C 3C13800A */ lui $s3, %hi(gMasterGfxPos)
/* 355AC0 E0044B60 2673A66C */ addiu $s3, $s3, %lo(gMasterGfxPos)
/* 355AC4 E0044B64 2631001C */ addiu $s1, $s1, 0x1c
/* 355AC8 E0044B68 3C1EE004 */ lui $fp, %hi(D_E0044DD0)
/* 355ACC E0044B6C 27DE4DD0 */ addiu $fp, $fp, %lo(D_E0044DD0)
/* 355AD0 E0044B70 029E8021 */ addu $s0, $s4, $fp
.LE0044B74:
/* 355AD4 E0044B74 8E34000C */ lw $s4, 0xc($s1)
/* 355AD8 E0044B78 0680006E */ bltz $s4, .LE0044D34
/* 355ADC E0044B7C 00000000 */ nop
/* 355AE0 E0044B80 8E25FFE8 */ lw $a1, -0x18($s1)
/* 355AE4 E0044B84 8E26FFEC */ lw $a2, -0x14($s1)
/* 355AE8 E0044B88 8E27FFF0 */ lw $a3, -0x10($s1)
/* 355AEC E0044B8C 0C080108 */ jal shim_guTranslateF
/* 355AF0 E0044B90 02C0202D */ daddu $a0, $s6, $zero
/* 355AF4 E0044B94 02C0202D */ daddu $a0, $s6, $zero
/* 355AF8 E0044B98 27A50098 */ addiu $a1, $sp, 0x98
/* 355AFC E0044B9C C6200000 */ lwc1 $f0, ($s1)
/* 355B00 E0044BA0 27A60018 */ addiu $a2, $sp, 0x18
/* 355B04 E0044BA4 E7A00080 */ swc1 $f0, 0x80($sp)
/* 355B08 E0044BA8 E7A0006C */ swc1 $f0, 0x6c($sp)
/* 355B0C E0044BAC 0C080114 */ jal shim_guMtxCatF
/* 355B10 E0044BB0 E7A00058 */ swc1 $f0, 0x58($sp)
/* 355B14 E0044BB4 27A40018 */ addiu $a0, $sp, 0x18
/* 355B18 E0044BB8 96E50000 */ lhu $a1, ($s7)
/* 355B1C E0044BBC 3C02800A */ lui $v0, %hi(gDisplayContext)
/* 355B20 E0044BC0 8C42A674 */ lw $v0, %lo(gDisplayContext)($v0)
/* 355B24 E0044BC4 00052980 */ sll $a1, $a1, 6
/* 355B28 E0044BC8 00B52821 */ addu $a1, $a1, $s5
/* 355B2C E0044BCC 0C080118 */ jal shim_guMtxF2L
/* 355B30 E0044BD0 00452821 */ addu $a1, $v0, $a1
/* 355B34 E0044BD4 27C20024 */ addiu $v0, $fp, 0x24
/* 355B38 E0044BD8 0202102A */ slt $v0, $s0, $v0
/* 355B3C E0044BDC 50400001 */ beql $v0, $zero, .LE0044BE4
/* 355B40 E0044BE0 03C0802D */ daddu $s0, $fp, $zero
.LE0044BE4:
/* 355B44 E0044BE4 92020000 */ lbu $v0, ($s0)
/* 355B48 E0044BE8 44822000 */ mtc1 $v0, $f4
/* 355B4C E0044BEC 00000000 */ nop
/* 355B50 E0044BF0 46802120 */ cvt.s.w $f4, $f4
/* 355B54 E0044BF4 46182102 */ mul.s $f4, $f4, $f24
/* 355B58 E0044BF8 00000000 */ nop
/* 355B5C E0044BFC 26100001 */ addiu $s0, $s0, 1
/* 355B60 E0044C00 92020000 */ lbu $v0, ($s0)
/* 355B64 E0044C04 44821000 */ mtc1 $v0, $f2
/* 355B68 E0044C08 00000000 */ nop
/* 355B6C E0044C0C 468010A0 */ cvt.s.w $f2, $f2
/* 355B70 E0044C10 46161082 */ mul.s $f2, $f2, $f22
/* 355B74 E0044C14 00000000 */ nop
/* 355B78 E0044C18 26100001 */ addiu $s0, $s0, 1
/* 355B7C E0044C1C 92020000 */ lbu $v0, ($s0)
/* 355B80 E0044C20 44820000 */ mtc1 $v0, $f0
/* 355B84 E0044C24 00000000 */ nop
/* 355B88 E0044C28 46800020 */ cvt.s.w $f0, $f0
/* 355B8C E0044C2C 46140002 */ mul.s $f0, $f0, $f20
/* 355B90 E0044C30 00000000 */ nop
/* 355B94 E0044C34 4600218D */ trunc.w.s $f6, $f4
/* 355B98 E0044C38 44033000 */ mfc1 $v1, $f6
/* 355B9C E0044C3C 00000000 */ nop
/* 355BA0 E0044C40 28620100 */ slti $v0, $v1, 0x100
/* 355BA4 E0044C44 4600118D */ trunc.w.s $f6, $f2
/* 355BA8 E0044C48 44073000 */ mfc1 $a3, $f6
/* 355BAC E0044C4C 4600018D */ trunc.w.s $f6, $f0
/* 355BB0 E0044C50 44083000 */ mfc1 $t0, $f6
/* 355BB4 E0044C54 14400002 */ bnez $v0, .LE0044C60
/* 355BB8 E0044C58 26100001 */ addiu $s0, $s0, 1
/* 355BBC E0044C5C 240300FF */ addiu $v1, $zero, 0xff
.LE0044C60:
/* 355BC0 E0044C60 28E20100 */ slti $v0, $a3, 0x100
/* 355BC4 E0044C64 50400001 */ beql $v0, $zero, .LE0044C6C
/* 355BC8 E0044C68 240700FF */ addiu $a3, $zero, 0xff
.LE0044C6C:
/* 355BCC E0044C6C 29020100 */ slti $v0, $t0, 0x100
/* 355BD0 E0044C70 50400001 */ beql $v0, $zero, .LE0044C78
/* 355BD4 E0044C74 240800FF */ addiu $t0, $zero, 0xff
.LE0044C78:
/* 355BD8 E0044C78 3C06D838 */ lui $a2, 0xd838
/* 355BDC E0044C7C 34C60002 */ ori $a2, $a2, 2
/* 355BE0 E0044C80 3C02FA00 */ lui $v0, 0xfa00
/* 355BE4 E0044C84 00031E00 */ sll $v1, $v1, 0x18
/* 355BE8 E0044C88 8E640000 */ lw $a0, ($s3)
/* 355BEC E0044C8C 3C09E004 */ lui $t1, %hi(D_E0044DB0)
/* 355BF0 E0044C90 25294DB0 */ addiu $t1, $t1, %lo(D_E0044DB0)
/* 355BF4 E0044C94 0080282D */ daddu $a1, $a0, $zero
/* 355BF8 E0044C98 24840008 */ addiu $a0, $a0, 8
/* 355BFC E0044C9C AE640000 */ sw $a0, ($s3)
/* 355C00 E0044CA0 ACA20000 */ sw $v0, ($a1)
/* 355C04 E0044CA4 30E200FF */ andi $v0, $a3, 0xff
/* 355C08 E0044CA8 00021400 */ sll $v0, $v0, 0x10
/* 355C0C E0044CAC 00621825 */ or $v1, $v1, $v0
/* 355C10 E0044CB0 310200FF */ andi $v0, $t0, 0xff
/* 355C14 E0044CB4 00021200 */ sll $v0, $v0, 8
/* 355C18 E0044CB8 00621825 */ or $v1, $v1, $v0
/* 355C1C E0044CBC 346300FF */ ori $v1, $v1, 0xff
/* 355C20 E0044CC0 24820008 */ addiu $v0, $a0, 8
/* 355C24 E0044CC4 ACA30004 */ sw $v1, 4($a1)
/* 355C28 E0044CC8 AE620000 */ sw $v0, ($s3)
/* 355C2C E0044CCC 96E20000 */ lhu $v0, ($s7)
/* 355C30 E0044CD0 3C03DA38 */ lui $v1, 0xda38
/* 355C34 E0044CD4 AC830000 */ sw $v1, ($a0)
/* 355C38 E0044CD8 24430001 */ addiu $v1, $v0, 1
/* 355C3C E0044CDC 3042FFFF */ andi $v0, $v0, 0xffff
/* 355C40 E0044CE0 00021180 */ sll $v0, $v0, 6
/* 355C44 E0044CE4 A6E30000 */ sh $v1, ($s7)
/* 355C48 E0044CE8 3C03800A */ lui $v1, %hi(gDisplayContext)
/* 355C4C E0044CEC 8C63A674 */ lw $v1, %lo(gDisplayContext)($v1)
/* 355C50 E0044CF0 00551021 */ addu $v0, $v0, $s5
/* 355C54 E0044CF4 00621821 */ addu $v1, $v1, $v0
/* 355C58 E0044CF8 24820010 */ addiu $v0, $a0, 0x10
/* 355C5C E0044CFC AC830004 */ sw $v1, 4($a0)
/* 355C60 E0044D00 AE620000 */ sw $v0, ($s3)
/* 355C64 E0044D04 3C02DE00 */ lui $v0, 0xde00
/* 355C68 E0044D08 AC820008 */ sw $v0, 8($a0)
/* 355C6C E0044D0C 32820007 */ andi $v0, $s4, 7
/* 355C70 E0044D10 00021080 */ sll $v0, $v0, 2
/* 355C74 E0044D14 00491021 */ addu $v0, $v0, $t1
/* 355C78 E0044D18 8C430000 */ lw $v1, ($v0)
/* 355C7C E0044D1C 24820018 */ addiu $v0, $a0, 0x18
/* 355C80 E0044D20 AE620000 */ sw $v0, ($s3)
/* 355C84 E0044D24 24020040 */ addiu $v0, $zero, 0x40
/* 355C88 E0044D28 AC860010 */ sw $a2, 0x10($a0)
/* 355C8C E0044D2C AC820014 */ sw $v0, 0x14($a0)
/* 355C90 E0044D30 AC83000C */ sw $v1, 0xc($a0)
.LE0044D34:
/* 355C94 E0044D34 8FA90118 */ lw $t1, 0x118($sp)
/* 355C98 E0044D38 26520001 */ addiu $s2, $s2, 1
/* 355C9C E0044D3C 8D220008 */ lw $v0, 8($t1)
/* 355CA0 E0044D40 2442FFFF */ addiu $v0, $v0, -1
/* 355CA4 E0044D44 0242102A */ slt $v0, $s2, $v0
/* 355CA8 E0044D48 1440FF8A */ bnez $v0, .LE0044B74
/* 355CAC E0044D4C 2631002C */ addiu $s1, $s1, 0x2c
.LE0044D50:
/* 355CB0 E0044D50 3C03800A */ lui $v1, %hi(gMasterGfxPos)
/* 355CB4 E0044D54 2463A66C */ addiu $v1, $v1, %lo(gMasterGfxPos)
/* 355CB8 E0044D58 8C620000 */ lw $v0, ($v1)
/* 355CBC E0044D5C 0040202D */ daddu $a0, $v0, $zero
/* 355CC0 E0044D60 24420008 */ addiu $v0, $v0, 8
/* 355CC4 E0044D64 AC620000 */ sw $v0, ($v1)
/* 355CC8 E0044D68 3C02E700 */ lui $v0, 0xe700
/* 355CCC E0044D6C AC820000 */ sw $v0, ($a0)
/* 355CD0 E0044D70 AC800004 */ sw $zero, 4($a0)
/* 355CD4 E0044D74 8FBF00FC */ lw $ra, 0xfc($sp)
/* 355CD8 E0044D78 8FBE00F8 */ lw $fp, 0xf8($sp)
/* 355CDC E0044D7C 8FB700F4 */ lw $s7, 0xf4($sp)
/* 355CE0 E0044D80 8FB600F0 */ lw $s6, 0xf0($sp)
/* 355CE4 E0044D84 8FB500EC */ lw $s5, 0xec($sp)
/* 355CE8 E0044D88 8FB400E8 */ lw $s4, 0xe8($sp)
/* 355CEC E0044D8C 8FB300E4 */ lw $s3, 0xe4($sp)
/* 355CF0 E0044D90 8FB200E0 */ lw $s2, 0xe0($sp)
/* 355CF4 E0044D94 8FB100DC */ lw $s1, 0xdc($sp)
/* 355CF8 E0044D98 8FB000D8 */ lw $s0, 0xd8($sp)
/* 355CFC E0044D9C D7B80110 */ ldc1 $f24, 0x110($sp)
/* 355D00 E0044DA0 D7B60108 */ ldc1 $f22, 0x108($sp)
/* 355D04 E0044DA4 D7B40100 */ ldc1 $f20, 0x100($sp)
/* 355D08 E0044DA8 03E00008 */ jr $ra
/* 355D0C E0044DAC 27BD0118 */ addiu $sp, $sp, 0x118

View File

@ -1,36 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel contReadData
/* 3BB38 80060738 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 3BB3C 8006073C AFBF0014 */ sw $ra, 0x14($sp)
/* 3BB40 80060740 AFB00010 */ sw $s0, 0x10($sp)
/* 3BB44 80060744 8C90000C */ lw $s0, 0xc($a0)
/* 3BB48 80060748 3C04800E */ lui $a0, %hi(nuSiMesgQ)
/* 3BB4C 8006074C 2484AC78 */ addiu $a0, $a0, %lo(nuSiMesgQ)
/* 3BB50 80060750 0C018668 */ jal osContStartReadData
/* 3BB54 80060754 00000000 */ nop
/* 3BB58 80060758 14400012 */ bnez $v0, .L800607A4
/* 3BB5C 8006075C 0000282D */ daddu $a1, $zero, $zero
/* 3BB60 80060760 3C04800E */ lui $a0, %hi(nuSiMesgQ)
/* 3BB64 80060764 2484AC78 */ addiu $a0, $a0, %lo(nuSiMesgQ)
/* 3BB68 80060768 0C0195BC */ jal osRecvMesg
/* 3BB6C 8006076C 24060001 */ addiu $a2, $zero, 1
/* 3BB70 80060770 3C04800E */ lui $a0, %hi(nuContDataMutexQ)
/* 3BB74 80060774 2484C040 */ addiu $a0, $a0, %lo(nuContDataMutexQ)
/* 3BB78 80060778 0000282D */ daddu $a1, $zero, $zero
/* 3BB7C 8006077C 0C019608 */ jal osSendMesg
/* 3BB80 80060780 24060001 */ addiu $a2, $zero, 1
/* 3BB84 80060784 0C01868A */ jal osContGetReadData
/* 3BB88 80060788 0200202D */ daddu $a0, $s0, $zero
/* 3BB8C 8006078C 3C04800E */ lui $a0, %hi(nuContDataMutexQ)
/* 3BB90 80060790 2484C040 */ addiu $a0, $a0, %lo(nuContDataMutexQ)
/* 3BB94 80060794 0000282D */ daddu $a1, $zero, $zero
/* 3BB98 80060798 0C0195BC */ jal osRecvMesg
/* 3BB9C 8006079C 24060001 */ addiu $a2, $zero, 1
/* 3BBA0 800607A0 0000102D */ daddu $v0, $zero, $zero
.L800607A4:
/* 3BBA4 800607A4 8FBF0014 */ lw $ra, 0x14($sp)
/* 3BBA8 800607A8 8FB00010 */ lw $s0, 0x10($sp)
/* 3BBAC 800607AC 03E00008 */ jr $ra
/* 3BBB0 800607B0 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,53 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel contReadNW
/* 3BBB4 800607B4 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 3BBB8 800607B8 AFB00010 */ sw $s0, 0x10($sp)
/* 3BBBC 800607BC 0080802D */ daddu $s0, $a0, $zero
/* 3BBC0 800607C0 3C04800B */ lui $a0, %hi(nuContWaitMesgQ)
/* 3BBC4 800607C4 24840EB8 */ addiu $a0, $a0, %lo(nuContWaitMesgQ)
/* 3BBC8 800607C8 0000282D */ daddu $a1, $zero, $zero
/* 3BBCC 800607CC AFBF0014 */ sw $ra, 0x14($sp)
/* 3BBD0 800607D0 0C0195BC */ jal osRecvMesg
/* 3BBD4 800607D4 00A0302D */ daddu $a2, $a1, $zero
/* 3BBD8 800607D8 3C04800E */ lui $a0, %hi(nuSiMesgQ)
/* 3BBDC 800607DC 2484AC78 */ addiu $a0, $a0, %lo(nuSiMesgQ)
/* 3BBE0 800607E0 0C018668 */ jal osContStartReadData
/* 3BBE4 800607E4 00000000 */ nop
/* 3BBE8 800607E8 14400013 */ bnez $v0, .L80060838
/* 3BBEC 800607EC 0000282D */ daddu $a1, $zero, $zero
/* 3BBF0 800607F0 3C04800E */ lui $a0, %hi(nuSiMesgQ)
/* 3BBF4 800607F4 2484AC78 */ addiu $a0, $a0, %lo(nuSiMesgQ)
/* 3BBF8 800607F8 0C0195BC */ jal osRecvMesg
/* 3BBFC 800607FC 24060001 */ addiu $a2, $zero, 1
/* 3BC00 80060800 3C04800E */ lui $a0, %hi(nuContDataMutexQ)
/* 3BC04 80060804 2484C040 */ addiu $a0, $a0, %lo(nuContDataMutexQ)
/* 3BC08 80060808 0000282D */ daddu $a1, $zero, $zero
/* 3BC0C 8006080C 0C019608 */ jal osSendMesg
/* 3BC10 80060810 24060001 */ addiu $a2, $zero, 1
/* 3BC14 80060814 3C04800B */ lui $a0, %hi(nuContData)
/* 3BC18 80060818 0C01868A */ jal osContGetReadData
/* 3BC1C 8006081C 24841D68 */ addiu $a0, $a0, %lo(nuContData)
/* 3BC20 80060820 3C04800E */ lui $a0, %hi(nuContDataMutexQ)
/* 3BC24 80060824 2484C040 */ addiu $a0, $a0, %lo(nuContDataMutexQ)
/* 3BC28 80060828 0000282D */ daddu $a1, $zero, $zero
/* 3BC2C 8006082C 0C0195BC */ jal osRecvMesg
/* 3BC30 80060830 24060001 */ addiu $a2, $zero, 1
/* 3BC34 80060834 0000102D */ daddu $v0, $zero, $zero
.L80060838:
/* 3BC38 80060838 14400009 */ bnez $v0, .L80060860
/* 3BC3C 8006083C 00000000 */ nop
/* 3BC40 80060840 3C028009 */ lui $v0, %hi(nuContReadFunc)
/* 3BC44 80060844 8C423D20 */ lw $v0, %lo(nuContReadFunc)($v0)
/* 3BC48 80060848 50400005 */ beql $v0, $zero, .L80060860
/* 3BC4C 8006084C 0000102D */ daddu $v0, $zero, $zero
/* 3BC50 80060850 86040000 */ lh $a0, ($s0)
/* 3BC54 80060854 0040F809 */ jalr $v0
/* 3BC58 80060858 00000000 */ nop
/* 3BC5C 8006085C 0000102D */ daddu $v0, $zero, $zero
.L80060860:
/* 3BC60 80060860 8FBF0014 */ lw $ra, 0x14($sp)
/* 3BC64 80060864 8FB00010 */ lw $s0, 0x10($sp)
/* 3BC68 80060868 03E00008 */ jr $ra
/* 3BC6C 8006086C 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,62 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel contRetrace
/* 3BA5C 8006065C 3C02800A */ lui $v0, %hi(nuContDataLockKey)
/* 3BA60 80060660 8C42A5E0 */ lw $v0, %lo(nuContDataLockKey)($v0)
/* 3BA64 80060664 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 3BA68 80060668 AFB00010 */ sw $s0, 0x10($sp)
/* 3BA6C 8006066C 0080802D */ daddu $s0, $a0, $zero
/* 3BA70 80060670 1440002C */ bnez $v0, .L80060724
/* 3BA74 80060674 AFBF0014 */ sw $ra, 0x14($sp)
/* 3BA78 80060678 3C04800B */ lui $a0, %hi(nuContWaitMesgQ)
/* 3BA7C 8006067C 24840EB8 */ addiu $a0, $a0, %lo(nuContWaitMesgQ)
/* 3BA80 80060680 0000282D */ daddu $a1, $zero, $zero
/* 3BA84 80060684 0C0195BC */ jal osRecvMesg
/* 3BA88 80060688 00A0302D */ daddu $a2, $a1, $zero
/* 3BA8C 8006068C 3C04800E */ lui $a0, %hi(nuSiMesgQ)
/* 3BA90 80060690 2484AC78 */ addiu $a0, $a0, %lo(nuSiMesgQ)
/* 3BA94 80060694 0C018668 */ jal osContStartReadData
/* 3BA98 80060698 00000000 */ nop
/* 3BA9C 8006069C 14400016 */ bnez $v0, .L800606F8
/* 3BAA0 800606A0 0000282D */ daddu $a1, $zero, $zero
/* 3BAA4 800606A4 3C04800E */ lui $a0, %hi(nuSiMesgQ)
/* 3BAA8 800606A8 2484AC78 */ addiu $a0, $a0, %lo(nuSiMesgQ)
/* 3BAAC 800606AC 0C0195BC */ jal osRecvMesg
/* 3BAB0 800606B0 24060001 */ addiu $a2, $zero, 1
/* 3BAB4 800606B4 3C02800A */ lui $v0, %hi(nuContDataLockKey)
/* 3BAB8 800606B8 8C42A5E0 */ lw $v0, %lo(nuContDataLockKey)($v0)
/* 3BABC 800606BC 30420001 */ andi $v0, $v0, 1
/* 3BAC0 800606C0 1440000D */ bnez $v0, .L800606F8
/* 3BAC4 800606C4 0000282D */ daddu $a1, $zero, $zero
/* 3BAC8 800606C8 3C04800E */ lui $a0, %hi(nuContDataMutexQ)
/* 3BACC 800606CC 2484C040 */ addiu $a0, $a0, %lo(nuContDataMutexQ)
/* 3BAD0 800606D0 0C019608 */ jal osSendMesg
/* 3BAD4 800606D4 24060001 */ addiu $a2, $zero, 1
/* 3BAD8 800606D8 3C04800B */ lui $a0, %hi(nuContData)
/* 3BADC 800606DC 0C01868A */ jal osContGetReadData
/* 3BAE0 800606E0 24841D68 */ addiu $a0, $a0, %lo(nuContData)
/* 3BAE4 800606E4 3C04800E */ lui $a0, %hi(nuContDataMutexQ)
/* 3BAE8 800606E8 2484C040 */ addiu $a0, $a0, %lo(nuContDataMutexQ)
/* 3BAEC 800606EC 0000282D */ daddu $a1, $zero, $zero
/* 3BAF0 800606F0 0C0195BC */ jal osRecvMesg
/* 3BAF4 800606F4 24060001 */ addiu $a2, $zero, 1
.L800606F8:
/* 3BAF8 800606F8 3C028009 */ lui $v0, %hi(nuContReadFunc)
/* 3BAFC 800606FC 8C423D20 */ lw $v0, %lo(nuContReadFunc)($v0)
/* 3BB00 80060700 10400003 */ beqz $v0, .L80060710
/* 3BB04 80060704 00000000 */ nop
/* 3BB08 80060708 0040F809 */ jalr $v0
/* 3BB0C 8006070C 86040000 */ lh $a0, ($s0)
.L80060710:
/* 3BB10 80060710 3C04800B */ lui $a0, %hi(nuContWaitMesgQ)
/* 3BB14 80060714 24840EB8 */ addiu $a0, $a0, %lo(nuContWaitMesgQ)
/* 3BB18 80060718 0000282D */ daddu $a1, $zero, $zero
/* 3BB1C 8006071C 0C019608 */ jal osSendMesg
/* 3BB20 80060720 00A0302D */ daddu $a2, $a1, $zero
.L80060724:
/* 3BB24 80060724 0000102D */ daddu $v0, $zero, $zero
/* 3BB28 80060728 8FBF0014 */ lw $ra, 0x14($sp)
/* 3BB2C 8006072C 8FB00010 */ lw $s0, 0x10($sp)
/* 3BB30 80060730 03E00008 */ jr $ra
/* 3BB34 80060734 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,87 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel nuScWaitTaskReady
/* 3A520 8005F120 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 3A524 8005F124 3C05800E */ lui $a1, %hi(D_800DAABD)
/* 3A528 8005F128 24A5AABD */ addiu $a1, $a1, %lo(D_800DAABD)
/* 3A52C 8005F12C 24030001 */ addiu $v1, $zero, 1
/* 3A530 8005F130 AFBF0034 */ sw $ra, 0x34($sp)
/* 3A534 8005F134 AFB40030 */ sw $s4, 0x30($sp)
/* 3A538 8005F138 AFB3002C */ sw $s3, 0x2c($sp)
/* 3A53C 8005F13C AFB20028 */ sw $s2, 0x28($sp)
/* 3A540 8005F140 AFB10024 */ sw $s1, 0x24($sp)
/* 3A544 8005F144 AFB00020 */ sw $s0, 0x20($sp)
/* 3A548 8005F148 90A20000 */ lbu $v0, ($a1)
/* 3A54C 8005F14C 8C92000C */ lw $s2, 0xc($a0)
/* 3A550 8005F150 10430035 */ beq $v0, $v1, .L8005F228
/* 3A554 8005F154 27B10010 */ addiu $s1, $sp, 0x10
/* 3A558 8005F158 24B4FA9F */ addiu $s4, $a1, -0x561
/* 3A55C 8005F15C 0060982D */ daddu $s3, $v1, $zero
.L8005F160:
/* 3A560 8005F160 0C019A6C */ jal osViGetCurrentFramebuffer
/* 3A564 8005F164 00000000 */ nop
/* 3A568 8005F168 10520005 */ beq $v0, $s2, .L8005F180
/* 3A56C 8005F16C 00000000 */ nop
/* 3A570 8005F170 0C019A7C */ jal osViGetNextFramebuffer
/* 3A574 8005F174 00000000 */ nop
/* 3A578 8005F178 1452002B */ bne $v0, $s2, .L8005F228
/* 3A57C 8005F17C 00000000 */ nop
.L8005F180:
/* 3A580 8005F180 0C018250 */ jal osSetIntMask
/* 3A584 8005F184 24040001 */ addiu $a0, $zero, 1
/* 3A588 8005F188 AE340004 */ sw $s4, 4($s1)
/* 3A58C 8005F18C 3C03800E */ lui $v1, %hi(D_800DAAA8)
/* 3A590 8005F190 8C63AAA8 */ lw $v1, %lo(D_800DAAA8)($v1)
/* 3A594 8005F194 AFA30010 */ sw $v1, 0x10($sp)
/* 3A598 8005F198 A6330008 */ sh $s3, 8($s1)
/* 3A59C 8005F19C 3C01800E */ lui $at, %hi(D_800DAAA8)
/* 3A5A0 8005F1A0 AC31AAA8 */ sw $s1, %lo(D_800DAAA8)($at)
/* 3A5A4 8005F1A4 0C018250 */ jal osSetIntMask
/* 3A5A8 8005F1A8 0040202D */ daddu $a0, $v0, $zero
/* 3A5AC 8005F1AC 3C04800E */ lui $a0, %hi(D_800DA55C)
/* 3A5B0 8005F1B0 2484A55C */ addiu $a0, $a0, %lo(D_800DA55C)
/* 3A5B4 8005F1B4 0000282D */ daddu $a1, $zero, $zero
/* 3A5B8 8005F1B8 0C0195BC */ jal osRecvMesg
/* 3A5BC 8005F1BC 24060001 */ addiu $a2, $zero, 1
/* 3A5C0 8005F1C0 0C018250 */ jal osSetIntMask
/* 3A5C4 8005F1C4 24040001 */ addiu $a0, $zero, 1
/* 3A5C8 8005F1C8 0000282D */ daddu $a1, $zero, $zero
/* 3A5CC 8005F1CC 27B00010 */ addiu $s0, $sp, 0x10
/* 3A5D0 8005F1D0 3C03800E */ lui $v1, %hi(D_800DAAA8)
/* 3A5D4 8005F1D4 8C63AAA8 */ lw $v1, %lo(D_800DAAA8)($v1)
/* 3A5D8 8005F1D8 1060000C */ beqz $v1, .L8005F20C
/* 3A5DC 8005F1DC 0040202D */ daddu $a0, $v0, $zero
.L8005F1E0:
/* 3A5E0 8005F1E0 54700007 */ bnel $v1, $s0, .L8005F200
/* 3A5E4 8005F1E4 0060282D */ daddu $a1, $v1, $zero
/* 3A5E8 8005F1E8 14A0000C */ bnez $a1, .L8005F21C
/* 3A5EC 8005F1EC 00000000 */ nop
/* 3A5F0 8005F1F0 8C620000 */ lw $v0, ($v1)
/* 3A5F4 8005F1F4 3C01800E */ lui $at, %hi(D_800DAAA8)
/* 3A5F8 8005F1F8 08017C83 */ j .L8005F20C
/* 3A5FC 8005F1FC AC22AAA8 */ sw $v0, %lo(D_800DAAA8)($at)
.L8005F200:
/* 3A600 8005F200 8CA30000 */ lw $v1, ($a1)
/* 3A604 8005F204 1460FFF6 */ bnez $v1, .L8005F1E0
/* 3A608 8005F208 00000000 */ nop
.L8005F20C:
/* 3A60C 8005F20C 0C018250 */ jal osSetIntMask
/* 3A610 8005F210 00000000 */ nop
/* 3A614 8005F214 08017C58 */ j .L8005F160
/* 3A618 8005F218 00000000 */ nop
.L8005F21C:
/* 3A61C 8005F21C 8C620000 */ lw $v0, ($v1)
/* 3A620 8005F220 08017C83 */ j .L8005F20C
/* 3A624 8005F224 ACA20000 */ sw $v0, ($a1)
.L8005F228:
/* 3A628 8005F228 8FBF0034 */ lw $ra, 0x34($sp)
/* 3A62C 8005F22C 8FB40030 */ lw $s4, 0x30($sp)
/* 3A630 8005F230 8FB3002C */ lw $s3, 0x2c($sp)
/* 3A634 8005F234 8FB20028 */ lw $s2, 0x28($sp)
/* 3A638 8005F238 8FB10024 */ lw $s1, 0x24($sp)
/* 3A63C 8005F23C 8FB00020 */ lw $s0, 0x20($sp)
/* 3A640 8005F240 03E00008 */ jr $ra
/* 3A644 8005F244 27BD0038 */ addiu $sp, $sp, 0x38
/* 3A648 8005F248 00000000 */ nop
/* 3A64C 8005F24C 00000000 */ nop

View File

@ -916,7 +916,7 @@ nuContMgrRemove = 0x800605E8; // type:func rom:0x3B9E8
nuContDataClose = 0x8006060C; // type:func rom:0x3BA0C
nuContDataOpen = 0x80060634; // type:func rom:0x3BA34
contRetrace = 0x8006065C; // type:func rom:0x3BA5C
contReadData = 0x80060738; // type:func rom:0x3BB38
contRead = 0x80060738; // type:func rom:0x3BB38
contReadNW = 0x800607B4; // type:func rom:0x3BBB4
contQuery = 0x80060870; // type:func rom:0x3BC70
nuContDataLock = 0x800608C0; // type:func rom:0x3BCC0
@ -2417,7 +2417,6 @@ nuGfxFunc = 0x80093D10; // rom:0x6F110
nuGfxPreNMIFunc = 0x80093D14; // rom:0x6F114
nuContReadFunc = 0x80093D20; // type:data rom:0x6F120
D_80093D24 = 0x80093D24; // type:data rom:0x6F124
D_80093D34 = 0x80093D34; // type:data rom:0x6F134
nuContCallBack = 0x80093D38; // type:data rom:0x6F138
__osPiDevMgr = 0x80093D50; // type:data rom:0x6F150 size:0x1C
__osPiTable = 0x80093D6C; // type:data rom:0x6F16C