mirror of
https://github.com/pmret/papermario.git
synced 2024-11-18 00:42:34 +01:00
squirt effect done, 0 warnings, undefined_syms cleanup, wip (#922)
* warnings & WIP * 0 warnings * squirt_appendGfx && gfx data (squirt effect dun) * undefined_syms cleanup * clean * don't die when no warnings
This commit is contained in:
parent
a03510d8a6
commit
dfff7bce1a
@ -508,6 +508,7 @@ enum SoundIDs {
|
||||
SOUND_F = 0x0000000F,
|
||||
SOUND_10 = 0x00000010,
|
||||
SOUND_11 = 0x00000011,
|
||||
SOUND_12 = 0x00000012,
|
||||
SOUND_14 = 0x00000014,
|
||||
SOUND_23 = 0x00000023,
|
||||
SOUND_25 = 0x00000025,
|
||||
|
@ -104,7 +104,123 @@ void update_camera_mode_4(Camera* camera) {
|
||||
camera->currentPitch = atan2(0.0f, 0.0f, deltaY, -sqrtf(SQ(deltaX) + SQ(deltaZ)));
|
||||
}
|
||||
|
||||
#ifdef WIP
|
||||
void update_camera_mode_2(Camera* camera) {
|
||||
f32 temp_f24;
|
||||
f32 temp_f28_2;
|
||||
|
||||
f32 auxBoomLength;
|
||||
f32 boomYaw;
|
||||
f32 sinBoom;
|
||||
f32 cosBoom;
|
||||
f32 deltaX;
|
||||
f32 deltaY;
|
||||
f32 deltaZ;
|
||||
f32 unk_70;
|
||||
f32 sin_70;
|
||||
f32 cos_70;
|
||||
f32 zero;
|
||||
|
||||
auxBoomLength = camera->auxBoomLength;
|
||||
camera->unk_70 = auxBoomLength;
|
||||
camera->trueRotation.x = auxBoomLength;
|
||||
camera->currentBoomYaw = camera->auxPitch;
|
||||
camera->currentBoomLength = camera->lookAt_dist * D_8009A5EC;
|
||||
camera->currentYOffset = camera->auxBoomPitch * D_8009A5EC;
|
||||
if (camera->unk_06 != 0) {
|
||||
zero = 0.0f;
|
||||
camera->unk_06 = 0;
|
||||
|
||||
camera->unk_9C = camera->unk_98 = zero;
|
||||
camera->lookAt_obj.x = camera->lookAt_obj_target.x;
|
||||
camera->lookAt_obj.y = camera->lookAt_obj_target.y + camera->currentYOffset;
|
||||
camera->lookAt_obj.z = camera->lookAt_obj_target.z;
|
||||
boomYaw = DEG_TO_RAD(camera->currentBoomYaw);
|
||||
sinBoom = sin_rad(boomYaw);
|
||||
cosBoom = cos_rad(boomYaw);
|
||||
temp_f24 = (cosBoom * zero) + (camera->currentBoomLength * sinBoom);
|
||||
unk_70 = DEG_TO_RAD(camera->unk_70);
|
||||
temp_f28_2 = (sinBoom * -zero) + (camera->currentBoomLength * cosBoom);
|
||||
sin_70 = sin_rad(unk_70);
|
||||
cos_70 = cos_rad(unk_70);
|
||||
camera->lookAt_eye.x = ((cos_70 * zero) - (temp_f28_2 * sin_70)) + camera->lookAt_obj.x;
|
||||
camera->lookAt_eye.y = camera->lookAt_obj.y + temp_f24;
|
||||
camera->lookAt_eye.z = camera->lookAt_obj.z + ((sin_70 * zero) + (temp_f28_2 * cos_70));
|
||||
}
|
||||
deltaX = camera->lookAt_obj_target.x - camera->lookAt_obj.x;
|
||||
deltaY = (camera->lookAt_obj_target.y + camera->currentYOffset) - camera->lookAt_obj.y;
|
||||
deltaZ = camera->lookAt_obj_target.z - camera->lookAt_obj.z;
|
||||
if (fabsf(deltaX) > 16.0f) {
|
||||
if (deltaX < 0.0f) {
|
||||
deltaX = -16.0f;
|
||||
} else {
|
||||
deltaX = 16.0f;
|
||||
}
|
||||
}
|
||||
if (fabsf(deltaY) > 16.0f) {
|
||||
if (deltaY < 0.0f) {
|
||||
deltaY = -16.0f;
|
||||
} else {
|
||||
deltaY = 16.0f;
|
||||
}
|
||||
}
|
||||
if (fabsf(deltaZ) > 16.0f) {
|
||||
if (deltaZ < 0.0f) {
|
||||
deltaZ = -16.0f;
|
||||
} else {
|
||||
deltaZ = 16.0f;
|
||||
}
|
||||
}
|
||||
camera->lookAt_obj.x += deltaX * 0.5f;
|
||||
camera->lookAt_obj.y += deltaY * 0.5f;
|
||||
camera->lookAt_obj.z += deltaZ * 0.5f;
|
||||
zero = 0.0f;
|
||||
unk_70 = -zero;
|
||||
boomYaw = DEG_TO_RAD(camera->currentBoomYaw);
|
||||
sinBoom = sin_rad(boomYaw);
|
||||
cosBoom = cos_rad(boomYaw);
|
||||
temp_f24 = (cosBoom * zero) + (camera->currentBoomLength * sinBoom);
|
||||
temp_f28_2 = (sinBoom * unk_70) + (camera->currentBoomLength * cosBoom);
|
||||
unk_70 = DEG_TO_RAD(camera->unk_70);
|
||||
sin_70 = sin_rad(unk_70);
|
||||
cos_70 = cos_rad(unk_70);
|
||||
deltaX = ((camera->lookAt_obj.x + ((cos_70 * zero) - (temp_f28_2 * sin_70))) - camera->lookAt_eye.x) * 0.5f;
|
||||
deltaZ = ((camera->lookAt_obj.z + ((sin_70 * zero) + (temp_f28_2 * cos_70))) - camera->lookAt_eye.z) * 0.5f;
|
||||
deltaY = ((camera->lookAt_obj.y + temp_f24) - camera->lookAt_eye.y) * 0.5f;
|
||||
if (fabsf(deltaX) > 16.0f) {
|
||||
if (deltaX < 0.0f) {
|
||||
deltaX = -16.0f;
|
||||
} else {
|
||||
deltaX = 16.0f;
|
||||
}
|
||||
}
|
||||
if (fabsf(deltaY) > 16.0f) {
|
||||
if (deltaY < 0.0f) {
|
||||
deltaY = -16.0f;
|
||||
} else {
|
||||
deltaY = 16.0f;
|
||||
}
|
||||
}
|
||||
if (fabsf(deltaZ) > 16.0f) {
|
||||
if (deltaZ < 0.0f) {
|
||||
deltaZ = -16.0f;
|
||||
} else {
|
||||
deltaZ = 16.0f;
|
||||
}
|
||||
}
|
||||
camera->lookAt_eye.x += deltaX;
|
||||
camera->lookAt_eye.y += deltaY;
|
||||
camera->lookAt_eye.z += deltaZ;
|
||||
camera->currentYaw = atan2(camera->lookAt_eye.x, camera->lookAt_eye.z, camera->lookAt_obj.x, camera->lookAt_obj.z);
|
||||
deltaX = camera->lookAt_obj.x - camera->lookAt_eye.x;
|
||||
deltaY = camera->lookAt_obj.y - camera->lookAt_eye.y;
|
||||
deltaZ = camera->lookAt_obj.z - camera->lookAt_eye.z;
|
||||
camera->currentBlendedYawNegated = -atan2(0.0f, 0.0f, deltaX, deltaZ);
|
||||
camera->currentPitch = atan2(0.0f, 0.0f, deltaY, -sqrtf(SQ(deltaX) + SQ(deltaZ)));
|
||||
}
|
||||
#else
|
||||
INCLUDE_ASM(void, "9d10_len_1080", update_camera_mode_2, Camera* camera);
|
||||
#endif
|
||||
|
||||
INCLUDE_ASM(void, "9d10_len_1080", update_camera_mode_1, Camera* camera);
|
||||
|
||||
|
@ -1013,7 +1013,7 @@ void play_model_animation(s32 index, s16* animPos) {
|
||||
ModelAnimator* animator = (*gCurrentAnimMeshListPtr)[index & ~0x800];
|
||||
|
||||
if (animator->animationBuffer != NULL) {
|
||||
animPos = ((s32)animPos & 0xFFFFFF) + (s32)animator->animationBuffer; // TODO: array access?
|
||||
animPos = (s16*) (((s32)animPos & 0xFFFFFF) + (s32)animator->animationBuffer); // TODO: array access? / cleanup
|
||||
}
|
||||
animator->animReadPos = animPos;
|
||||
animator->savedReadPos = animPos;
|
||||
@ -1027,7 +1027,7 @@ void play_model_animation_starting_from(s32 index, s16* animPos, s32 framesToSki
|
||||
s32 i;
|
||||
|
||||
if (animator->animationBuffer != NULL) {
|
||||
animPos = ((s32)animPos & 0xFFFFFF) + (s32)animator->animationBuffer; // TODO: array access?
|
||||
animPos = (s16*) (((s32)animPos & 0xFFFFFF) + (s32)animator->animationBuffer); // TODO: array access? / cleanup
|
||||
}
|
||||
|
||||
animator->animReadPos = animPos;
|
||||
|
@ -1,6 +1,5 @@
|
||||
#include "common.h"
|
||||
|
||||
void update_camera_mode_6(Camera* camera);
|
||||
void update_camera_mode_6(Camera* camera) {
|
||||
f32 sinBoom;
|
||||
f32 cosBoom;
|
||||
@ -29,7 +28,7 @@ void update_camera_mode_6(Camera* camera) {
|
||||
camera->lookAt_obj.y = camera->lookAt_obj_target.y;
|
||||
camera->lookAt_obj.z = camera->lookAt_obj_target.z;
|
||||
}
|
||||
if (camera->auxPitch == 0) {
|
||||
if (camera->auxPitch == 0) {
|
||||
camera->lookAt_obj.x = camera->lookAt_obj_target.x + camera->targetPos.x;
|
||||
camera->lookAt_obj.y = camera->lookAt_obj_target.y + camera->targetPos.y + camera->auxBoomZOffset * 0.00390625;
|
||||
camera->lookAt_obj.z = camera->lookAt_obj_target.z + camera->targetPos.z;
|
||||
|
@ -317,6 +317,10 @@ typedef struct AlUnkGamma {
|
||||
/* 0x14 */ struct AuPVoice* pvoice_14;
|
||||
} AlUnkGamma; // size = 0x18
|
||||
|
||||
// ALDMAproc in PM supposedly has an extra arg added, so that's why we have ALDMAproc2 and ALDMANew2
|
||||
typedef s32 (*ALDMAproc2)(s32 addr, s32 len, void *state, u8 arg3);
|
||||
typedef ALDMAproc2 (*ALDMANew2)(void *state);
|
||||
|
||||
// based on ALLoadFilter
|
||||
typedef struct AuLoadFilter {
|
||||
/* 0x04 */ ADPCM_STATE* dc_state;
|
||||
@ -324,7 +328,7 @@ typedef struct AuLoadFilter {
|
||||
/* 0x0C */ ALRawLoop dc_loop;
|
||||
/* 0x18 */ struct Instrument* instrument;
|
||||
/* 0x1C */ s32 dc_bookSize;
|
||||
/* 0x20 */ s32 (*dc_dmaFunc)(void* addr, s32 len, void* state, u8 unk); // ALDMAproc with extra arg
|
||||
/* 0x20 */ ALDMAproc2 dc_dmaFunc;
|
||||
/* 0x24 */ NUDMAState* dc_dmaState;
|
||||
/* 0x28 */ s32 dc_sample;
|
||||
/* 0x2C */ s32 dc_lastsam;
|
||||
@ -381,7 +385,7 @@ typedef struct AuSynDriver {
|
||||
/* 0x08 */ s32 outputRate;
|
||||
/* 0x0C */ s32 num_pvoice;
|
||||
/* 0x10 */ s32 unk_num_gamma;
|
||||
/* 0x14 */ ALDMANew* dmaNew; // pointer to nuAuDmaNew
|
||||
/* 0x14 */ ALDMANew2 dmaNew; // pointer to nuAuDmaNew
|
||||
/* 0x18 */ ALHeap* heap;
|
||||
/* 0x1C */ AuPVoice* pvoices;
|
||||
/* 0x20 */ AlUnkGamma* al_unk_gamma;
|
||||
|
@ -930,7 +930,7 @@ void au_bgm_load_subsegment(BGMPlayer* player, u32 cmd) {
|
||||
for (i = 0; i < ARRAY_COUNT(player->tracks); i++) {
|
||||
track = &player->tracks[i];
|
||||
trackInfo = *trackList++;
|
||||
track->bgmReadPos = trackInfo >> 0x10;
|
||||
track->bgmReadPos = (AuFilePos) (trackInfo >> 0x10);
|
||||
if (track->bgmReadPos != NULL) {
|
||||
if ((trackInfo & 0x100) == 0) {
|
||||
track->polyphonicIdx = (trackInfo & (0x7 << 0xD)) >> 0xD;
|
||||
@ -1294,7 +1294,7 @@ void au_bgm_player_update_playing(BGMPlayer *player) {
|
||||
voice->reverbAmt = track->subTrackReverb;
|
||||
|
||||
if (track->unk_4C != 0) {
|
||||
voice->unk_14.unk_00 = (s32*)player->unk_174[track->unk_4C - 1]; //TODO ???
|
||||
voice->unk_14.unk_00 = (s32*) player->unk_174[track->unk_4C - 1]; //TODO ???
|
||||
} else {
|
||||
voice->unk_14.unk_00 = track->unk_10.unk_00;
|
||||
}
|
||||
|
@ -172,7 +172,7 @@ void func_80052BF8(AlUnkVoice* voice, AlUnkInstrumentData* arg1) {
|
||||
s32 x;
|
||||
|
||||
voice->unk_14.unk_00 = arg1->unk_00;
|
||||
voice->unk_1C = voice->unk_14.unk_00;
|
||||
voice->unk_1C = (u8*) voice->unk_14.unk_00;
|
||||
voice->unk_14.unk_04 = arg1->unk_04;
|
||||
voice->unk_30 = 0x80;
|
||||
voice->unk_34 = 0;
|
||||
|
@ -16,8 +16,8 @@ extern s16 AuEqPower[128];
|
||||
#define AU_EQPOW_MAX_IDX 127
|
||||
|
||||
void au_driver_init(AuSynDriver* driver, ALConfig* config) {
|
||||
s32 i;
|
||||
ALHeap* heap = config->heap;
|
||||
s32 i;
|
||||
|
||||
if (gActiveSynDriverPtr != NULL) {
|
||||
return;
|
||||
@ -43,8 +43,7 @@ void au_driver_init(AuSynDriver* driver, ALConfig* config) {
|
||||
AuPVoice* voice = &gSynDriverPtr->pvoices[i];
|
||||
voice->loadFilter.dc_state = alHeapAlloc(heap, 1, sizeof(*voice->loadFilter.dc_state));
|
||||
voice->loadFilter.dc_lstate = alHeapAlloc(heap, 1, sizeof(*voice->loadFilter.dc_lstate));
|
||||
// note: dmaNew has type ALDMANew (nuAuDmaNew), which returns a ALDMAproc (nuAuDmaCallBack)
|
||||
voice->loadFilter.dc_dmaFunc = ((ALDMAproc (*)(NUDMAState**))(gSynDriverPtr->dmaNew))(&voice->loadFilter.dc_dmaState);
|
||||
voice->loadFilter.dc_dmaFunc = gSynDriverPtr->dmaNew(&voice->loadFilter.dc_dmaState);
|
||||
voice->loadFilter.dc_lastsam = 0;
|
||||
voice->loadFilter.dc_first = 1;
|
||||
voice->loadFilter.dc_memin = NULL;
|
||||
|
@ -34,7 +34,7 @@ static Acmd* _decodeChunk(Acmd* cmdBufPos, AuLoadFilter* filter, s32 tsam, s32 n
|
||||
s32 paddedSize;
|
||||
|
||||
if (nbytes > 0) {
|
||||
endAddr = filter->dc_dmaFunc(filter->dc_memin, nbytes, filter->dc_dmaState, filter->instrument->unk_25); // ALDMAproc has an extra arg added
|
||||
endAddr = filter->dc_dmaFunc((s32) filter->dc_memin, nbytes, filter->dc_dmaState, filter->instrument->unk_25);
|
||||
endAlign = endAddr & 7;
|
||||
nbytes += endAlign;
|
||||
paddedSize = nbytes + 8 - (nbytes & 7);
|
||||
|
@ -116,7 +116,7 @@ EffectTableEntry gEffectTable[] = {
|
||||
/* 0x56 */ FX_ENTRY(stat_change, effect_gfx_stat_change),
|
||||
/* 0x57 */ FX_ENTRY(snaking_static, effect_gfx_snaking_static),
|
||||
/* 0x58 */ FX_ENTRY(thunderbolt_ring, effect_gfx_thunderbolt_ring),
|
||||
/* 0x59 */ FX_ENTRY(squirt, _3B5340),
|
||||
/* 0x59 */ FX_ENTRY(squirt, effect_gfx_squirt),
|
||||
/* 0x5A */ FX_ENTRY(water_block, effect_gfx_water_block),
|
||||
/* 0x5B */ FX_ENTRY(waterfall, effect_gfx_waterfall),
|
||||
/* 0x5C */ FX_ENTRY(water_fountain, effect_gfx_water_fountain),
|
||||
|
6
src/effects/gfx/squirt.c
Normal file
6
src/effects/gfx/squirt.c
Normal file
@ -0,0 +1,6 @@
|
||||
#include "effects/gfx/D_09000000_3B5340.png.inc.c"
|
||||
#include "effects/gfx/D_09000400_3B5740.png.inc.c"
|
||||
#include "effects/gfx/D_09000800_3B5B40.gfx.inc.c"
|
||||
#include "effects/gfx/D_090008A8_3B5BE8.gfx.inc.c"
|
||||
#include "effects/gfx/D_09000950_3B5C90.vtx.inc.c"
|
||||
#include "effects/gfx/D_09000990_3B5CD0.gfx.inc.c"
|
@ -1,13 +1,16 @@
|
||||
#include "common.h"
|
||||
#include "effects_internal.h"
|
||||
|
||||
s32 D_E00B2BA0[] = { 0xFFFFFFFF, 0xFFFFFFFF, 0xFFC88020, 0x00000000 };
|
||||
u8 D_E00B2BA0[] = { 255, 255, 255, 255, 255, 255, 255, 255, 255, 200, 128, 32, 0, 0, 0, 0 };
|
||||
|
||||
void squirt_init(EffectInstance* effect);
|
||||
void squirt_update(EffectInstance* effect);
|
||||
void squirt_render(EffectInstance* effect);
|
||||
void squirt_appendGfx(void* effect);
|
||||
|
||||
extern Gfx D_09000800_3B5B40[];
|
||||
extern Gfx D_090008A8_3B5BE8[];
|
||||
|
||||
EffectInstance* squirt_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, s32 arg8) {
|
||||
EffectBlueprint bp;
|
||||
EffectInstance* effect;
|
||||
@ -153,4 +156,110 @@ void squirt_render(EffectInstance* effect) {
|
||||
void func_E00B24A8(void) {
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "effects/squirt", squirt_appendGfx);
|
||||
void squirt_appendGfx(void* effect) {
|
||||
SquirtFXData* data = ((EffectInstance*)effect)->data.squirt;
|
||||
s32 zero = 0;
|
||||
s32 unk_00 = data->unk_00;
|
||||
Gfx* savedGfxPos;
|
||||
f32 unk_50 = data->unk_50;
|
||||
Matrix4f sp10, sp50;
|
||||
Vtx_t* vtx;
|
||||
s32 savedIdx;
|
||||
s32 i;
|
||||
|
||||
f32 cosComp;
|
||||
f32 sinComp;
|
||||
f32 var_f22;
|
||||
f32 theta;
|
||||
|
||||
gDPPipeSync(gMasterGfxPos++);
|
||||
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
|
||||
|
||||
shim_guTranslateF(sp10, 0.0f, 0.0f, 0.0f);
|
||||
shim_guScaleF(sp50, 0.05f, 0.05f, 0.05f);
|
||||
shim_guMtxCatF(sp50, sp10, sp10);
|
||||
shim_guMtxF2L(sp10, &gDisplayContext->matrixStack[gMatrixListPos]);
|
||||
|
||||
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gDPSetPrimColor(gMasterGfxPos++, 0, 0, data->unk_34, data->unk_38, data->unk_3C, data->unk_40);
|
||||
gDPSetEnvColor(gMasterGfxPos++, data->unk_44, data->unk_48, data->unk_4C, 200);
|
||||
|
||||
gSPBranchList(gMasterGfxPos, &gMasterGfxPos[49]);
|
||||
savedGfxPos = gMasterGfxPos + 1;
|
||||
|
||||
gMasterGfxPos = &gMasterGfxPos[49];
|
||||
|
||||
vtx = (Vtx_t*) savedGfxPos;
|
||||
for (i = 0; i < 12; i++) {
|
||||
s32 inc = i + 1;
|
||||
s32 tc0;
|
||||
s32 cnA;
|
||||
|
||||
if (i == 0 || zero == i || (i != 11 && data->unk_178[i] == 0)) {
|
||||
theta = data->unk_118[inc];
|
||||
theta = -shim_atan2(theta, -data->unk_E8[i + 1], data->unk_118[i], -data->unk_E8[i]);
|
||||
}
|
||||
|
||||
if (data->unk_00 == 0) {
|
||||
var_f22 = ((f32) data->unk_1A8[i] * 0.5) + 2.0;
|
||||
if (var_f22 > 6.0f) {
|
||||
var_f22 = 6.0f;
|
||||
}
|
||||
cnA = D_E00B2BA0[i];
|
||||
} else {
|
||||
var_f22 = ((f32) data->unk_1A8[i] * 0.5) + 1.0;
|
||||
if (var_f22 > 30.0f) {
|
||||
do { } while (0); // TODO required to match
|
||||
var_f22 = 30.0f;
|
||||
}
|
||||
cnA = (D_E00B2BA0[i] * data->unk_1D8[i]) / 255;
|
||||
}
|
||||
tc0 = i * 5;
|
||||
tc0 *= 64;
|
||||
|
||||
var_f22 *= unk_50;
|
||||
sinComp = var_f22 * shim_sin_deg(theta);
|
||||
cosComp = var_f22 * shim_cos_deg(theta);
|
||||
|
||||
vtx->ob[0] = (data->unk_E8[i] + sinComp) * 20.0f;
|
||||
vtx->ob[1] = (data->unk_118[i] + cosComp) * 20.0f;
|
||||
vtx->ob[2] = (data->unk_148[i] + 0.0f) * 20.0f;
|
||||
vtx->tc[0] = tc0;
|
||||
vtx->tc[1] = 0;
|
||||
vtx->cn[0] = (i & 1) * 255;
|
||||
vtx->cn[1] = ((i >> 1) & 1) * 255;
|
||||
vtx->cn[2] = ((i >> 2) & 1) * 255;
|
||||
vtx->cn[3] = cnA;
|
||||
vtx++;
|
||||
|
||||
vtx->ob[0] = (data->unk_E8[i] - sinComp) * 20.0f;
|
||||
vtx->ob[1] = (data->unk_118[i] - cosComp) * 20.0f;
|
||||
vtx->ob[2] = (data->unk_148[i] + 0.0f) * 20.0f;
|
||||
vtx->tc[0] = tc0;
|
||||
vtx->tc[1] = 1024;
|
||||
vtx->cn[0] = (i & 1) * 255;
|
||||
vtx->cn[1] = ((i >> 1) & 1) * 255;
|
||||
vtx->cn[2] = ((i >> 2) & 1) * 255;
|
||||
vtx->cn[3] = cnA;
|
||||
vtx++;
|
||||
}
|
||||
|
||||
gSPVertex(gMasterGfxPos++, savedGfxPos, i * 2, 0);
|
||||
|
||||
savedIdx = i;
|
||||
gSPDisplayList(gMasterGfxPos++, unk_00 == 0 ? D_09000800_3B5B40 : D_090008A8_3B5BE8);
|
||||
|
||||
for (i = 0; i < savedIdx - 1; i++) {
|
||||
s32 i2 = i * 2;
|
||||
|
||||
if (i < zero) {
|
||||
continue;
|
||||
}
|
||||
gSP2Triangles(gMasterGfxPos++,
|
||||
i2, i2 + 2, i2 + 1, i2,
|
||||
i2 + 1, i2 + 2, i2 + 3, i2);
|
||||
}
|
||||
|
||||
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
|
||||
gDPPipeSync(gMasterGfxPos++);
|
||||
}
|
||||
|
@ -156,8 +156,6 @@ void underwater_appendGfx(void* effect) {
|
||||
EffectInstance* effectTemp = effect;
|
||||
UnderwaterFXData* data;
|
||||
Matrix4f sp20;
|
||||
s32 spA0;
|
||||
s32 spA8;
|
||||
s32 temp_a0_3;
|
||||
s32 temp_a1_5;
|
||||
s32 temp_a1_6;
|
||||
@ -240,10 +238,8 @@ void underwater_appendGfx(void* effect) {
|
||||
var_s2 = 1;
|
||||
}
|
||||
temp_t8 = (var_t9 + var_a0) * 4;
|
||||
spA0 = (temp_t8 & 0xFFF) | 0xF4000000;
|
||||
temp_v1_2 = var_t9 + var_v1;
|
||||
temp_s3 = (temp_v1_2 + 0x10) * 4;
|
||||
spA8 = -var_s2;
|
||||
|
||||
for (j = 0; j < 12; j++) {
|
||||
cond = FALSE;
|
||||
@ -269,8 +265,8 @@ void underwater_appendGfx(void* effect) {
|
||||
|
||||
temp_a1_4->words.w0 = E600000000000000
|
||||
|
||||
temp_a1_4->unk8 = (s32) ((((temp_a0_3 * 4) & 0xFFF) << 0xC) | (temp_t8 & 0xFFF) | 0xF4000000);
|
||||
temp_a1_4->unkC = (s32) (((((temp_a2_2 + 0x10) * 4) & 0xFFF) << 0xC) | ((temp_s3 & 0xFFF) | 0x07000000));
|
||||
temp_a1_4->unk8 = (s32) ((((temp_a0_3 * 4) & 0xFFF) << 0xC) | spA0);
|
||||
|
||||
temp_a1_4->unk10 = E700000000000000
|
||||
|
||||
@ -282,7 +278,7 @@ void underwater_appendGfx(void* effect) {
|
||||
if (!cond || (var_t4 = 0xC, (var_s2 == 0))) {
|
||||
var_t4 = 4;
|
||||
if (!cond) {
|
||||
var_t4 = spA8 & 8;
|
||||
var_t4 = (-var_s2) & 8;
|
||||
}
|
||||
}
|
||||
temp_a1_5 = j * 0xD;
|
||||
|
@ -6,6 +6,10 @@ void windy_leaves_update(EffectInstance* effect);
|
||||
void windy_leaves_render(EffectInstance* effect);
|
||||
void windy_leaves_appendGfx(void* effect);
|
||||
|
||||
extern Gfx D_09001180_33E790[];
|
||||
extern Gfx D_09001258_33E868[];
|
||||
extern Gfx D_09001280_33E890[];
|
||||
|
||||
void windy_leaves_main(s32 type, f32 arg1, f32 arg2, f32 arg3) {
|
||||
EffectBlueprint bp;
|
||||
EffectBlueprint* bpPtr = &bp;
|
||||
@ -226,22 +230,15 @@ void windy_leaves_render(EffectInstance* effect) {
|
||||
retTask->renderMode |= RENDER_TASK_FLAG_REFLECT_FLOOR;
|
||||
}
|
||||
|
||||
extern Gfx D_09001180_33E790[];
|
||||
extern Gfx D_09001258_33E868[];
|
||||
extern Gfx D_09001280_33E890[];
|
||||
|
||||
void windy_leaves_appendGfx(void* effect) {
|
||||
WindyLeavesFXData* part;
|
||||
Gfx* phi_s7;
|
||||
WindyLeavesFXData* part = ((EffectInstance*)effect)->data.windyLeaves;
|
||||
Matrix4f sp18, sp58, sp98;
|
||||
Gfx* dlist;
|
||||
s32 i;
|
||||
Matrix4f sp18;
|
||||
Matrix4f sp58;
|
||||
Matrix4f sp98;
|
||||
|
||||
part = ((EffectInstance*)effect)->data.windyLeaves;
|
||||
phi_s7 = D_09001280_33E890;
|
||||
dlist = D_09001280_33E890;
|
||||
if (part->type == 0) {
|
||||
phi_s7 = D_09001258_33E868;
|
||||
dlist = D_09001258_33E868;
|
||||
}
|
||||
|
||||
gSPSegment(gMasterGfxPos++, 0x09, OS_K0_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
|
||||
@ -261,7 +258,7 @@ void windy_leaves_appendGfx(void* effect) {
|
||||
shim_guMtxCatF(sp58, sp18, sp18);
|
||||
shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]);
|
||||
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(gMasterGfxPos++, phi_s7);
|
||||
gSPDisplayList(gMasterGfxPos++, dlist);
|
||||
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
|
||||
}
|
||||
}
|
||||
|
@ -81,7 +81,7 @@ BSS u32 gBattleMapVars[MAX_MAPVARS];
|
||||
BSS s32 DoorModelsSwingCCW[3];
|
||||
BSS u32 gBattleMapFlags[MAX_MAPFLAGS];
|
||||
|
||||
//s32 evt_execute_next_command(Evt* script);
|
||||
s32 evt_execute_next_command(Evt* script);
|
||||
|
||||
void sort_scripts(void) {
|
||||
s32 temp_a0;
|
||||
@ -581,7 +581,11 @@ void update_scripts(void) {
|
||||
for (i = 0; i < gScriptListCount; i++) {
|
||||
Evt* script = (*gCurrentScriptListPtr)[gScriptIndexList[i]];
|
||||
|
||||
if (script != NULL && script->id == gScriptIdList[i] && script->stateFlags != 0 && !(script->stateFlags & (EVT_FLAG_SUSPENDED | EVT_FLAG_BLOCKED_BY_CHILD | EVT_FLAG_SUSPENDED_IN_GROUP))) {
|
||||
if (script != NULL &&
|
||||
script->id == gScriptIdList[i] &&
|
||||
script->stateFlags != 0 &&
|
||||
!(script->stateFlags & (EVT_FLAG_SUSPENDED | EVT_FLAG_BLOCKED_BY_CHILD | EVT_FLAG_SUSPENDED_IN_GROUP)))
|
||||
{
|
||||
s32 stop = FALSE;
|
||||
s32 status;
|
||||
|
||||
@ -590,6 +594,7 @@ void update_scripts(void) {
|
||||
do {
|
||||
if (script->frameCounter < 1.0) {
|
||||
// Continue to next script
|
||||
do {} while (0); // TODO required to match
|
||||
break;
|
||||
};
|
||||
|
||||
|
@ -22,7 +22,7 @@ ApiStatus N(ItemChoice_SaveSelected)(Evt* script, s32 isInitialCall) {
|
||||
}
|
||||
#define NAMESPACE hos_06
|
||||
|
||||
extern s32 hos_06_D_80246430[];
|
||||
BSS s32 hos_06_D_80246430[113];
|
||||
|
||||
ApiStatus func_80241008_A3A4E8(Evt* script, s32 isInitialCall) {
|
||||
Bytecode* args = script->ptrReadPos;
|
||||
|
@ -41,6 +41,8 @@ ApiStatus N(ItemChoice_SaveSelected)(Evt* script, s32 isInitialCall) {
|
||||
|
||||
BSS s32 D_8024FBA0[114];
|
||||
BSS s32 D_8024FD68[92];
|
||||
BSS s32 D_8024FED8[2]; // Unused or padding
|
||||
BSS s32 D_8024FEE0;
|
||||
|
||||
ApiStatus func_80241A64_B36634(Evt* script, s32 isInitialCall) {
|
||||
Bytecode* args = script->ptrReadPos;
|
||||
|
@ -32,9 +32,7 @@ s32 N(PiranhaPlantAI_Main)(Evt* script, s32 isInitialCall) {
|
||||
territory.detectFlags = 0;
|
||||
|
||||
#ifdef _DEAD_H_
|
||||
// Dead Func that doesn't seem to have an alive counterpart, probably because of the
|
||||
// difference in the Enemy and DeadEnemy struct.
|
||||
|
||||
// this function doesn't seem to have a known counterpart, perhaps related to the difference in the Enemy struct
|
||||
func_8004D8E0(enemy);
|
||||
if (enemy->flags & ENEMY_FLAG_100000) {
|
||||
enemy->unk_114 = 10.0f;
|
||||
|
@ -21,7 +21,7 @@ then
|
||||
rm -rf ver/*/build/src
|
||||
ninja | grep warning | sort > tools/warnings_count/warnings_new.txt
|
||||
else
|
||||
cat build_log.txt | grep warning | sort > tools/warnings_count/warnings_new.txt
|
||||
cat build_log.txt | grep warning || [[ $? == 1 ]] | sort > tools/warnings_count/warnings_new.txt
|
||||
fi
|
||||
|
||||
curl -L https://papermar.io/reports/warnings.txt > tools/warnings_count/warnings.txt
|
||||
|
@ -198,7 +198,7 @@ dlabel D_80249BD4_B3E7A4
|
||||
.word 0x00000043, 0x00000001, jan_03_Quizmo_ShouldAppear, 0x0000000A, 0x00000002, 0xFE363C80, 0x00000000, 0x00000002, 0x00000000, 0x00000013, 0x00000000, 0x00000043, 0x00000004, SetNpcFlagBits, 0xFFFFFFFF, 0x01000000, 0x00000000, 0x00000043, 0x00000003, SetNpcSprite, 0xFFFFFFFF, 0x00AF0001, 0x00000043, 0x00000001, jan_03_Quizmo_RenderInit, 0x00000002, 0x00000000, 0x00000001, 0x00000000
|
||||
|
||||
dlabel D_80249C48_B3E818
|
||||
.word 0x0000003C, 0x00000001, jan_03_D_8024FEE0, 0x00000024, 0x00000002, 0xF8406269, 0x00000001, 0x00000043, 0x00000002, DisablePlayerPhysics, 0x00000001, 0x00000043, 0x00000003, SetPlayerFlagBits, 0x00400000, 0x00000001, 0x00000046, 0x00000001, D_80248EA4_B3DA74, 0x00000043, 0x00000002, DisablePlayerPhysics, 0x00000000, 0x00000043, 0x00000003, SetPlayerFlagBits, 0x00400000, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000
|
||||
.word 0x0000003C, 0x00000001, D_8024FEE0, 0x00000024, 0x00000002, 0xF8406269, 0x00000001, 0x00000043, 0x00000002, DisablePlayerPhysics, 0x00000001, 0x00000043, 0x00000003, SetPlayerFlagBits, 0x00400000, 0x00000001, 0x00000046, 0x00000001, D_80248EA4_B3DA74, 0x00000043, 0x00000002, DisablePlayerPhysics, 0x00000000, 0x00000043, 0x00000003, SetPlayerFlagBits, 0x00400000, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000
|
||||
|
||||
dlabel D_80249CC8_B3E898
|
||||
.word 0x00000043, 0x00000001, jan_03_Quizmo_NPC_Aux_Impl, 0x00000002, 0x00000000, 0x00000001, 0x00000000
|
||||
|
@ -1,465 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel squirt_appendGfx
|
||||
/* 3B4C40 E00B24B0 27BDFF00 */ addiu $sp, $sp, -0x100
|
||||
/* 3B4C44 E00B24B4 0080482D */ daddu $t1, $a0, $zero
|
||||
/* 3B4C48 E00B24B8 3C0ADB06 */ lui $t2, 0xdb06
|
||||
/* 3B4C4C E00B24BC 354A0024 */ ori $t2, $t2, 0x24
|
||||
/* 3B4C50 E00B24C0 27A40010 */ addiu $a0, $sp, 0x10
|
||||
/* 3B4C54 E00B24C4 AFB300B4 */ sw $s3, 0xb4($sp)
|
||||
/* 3B4C58 E00B24C8 3C130001 */ lui $s3, 1
|
||||
/* 3B4C5C E00B24CC 36731630 */ ori $s3, $s3, 0x1630
|
||||
/* 3B4C60 E00B24D0 AFB500BC */ sw $s5, 0xbc($sp)
|
||||
/* 3B4C64 E00B24D4 0000A82D */ daddu $s5, $zero, $zero
|
||||
/* 3B4C68 E00B24D8 3C18E00B */ lui $t8, %hi(D_E00B2BA0)
|
||||
/* 3B4C6C E00B24DC 27182BA0 */ addiu $t8, $t8, %lo(D_E00B2BA0)
|
||||
/* 3B4C70 E00B24E0 AFB800A0 */ sw $t8, 0xa0($sp)
|
||||
/* 3B4C74 E00B24E4 24180004 */ addiu $t8, $zero, 4
|
||||
/* 3B4C78 E00B24E8 AFB100AC */ sw $s1, 0xac($sp)
|
||||
/* 3B4C7C E00B24EC 3C11800A */ lui $s1, %hi(gMasterGfxPos)
|
||||
/* 3B4C80 E00B24F0 2631A66C */ addiu $s1, $s1, %lo(gMasterGfxPos)
|
||||
/* 3B4C84 E00B24F4 3C02E700 */ lui $v0, 0xe700
|
||||
/* 3B4C88 E00B24F8 AFBF00CC */ sw $ra, 0xcc($sp)
|
||||
/* 3B4C8C E00B24FC AFBE00C8 */ sw $fp, 0xc8($sp)
|
||||
/* 3B4C90 E00B2500 AFB700C4 */ sw $s7, 0xc4($sp)
|
||||
/* 3B4C94 E00B2504 AFB600C0 */ sw $s6, 0xc0($sp)
|
||||
/* 3B4C98 E00B2508 AFB400B8 */ sw $s4, 0xb8($sp)
|
||||
/* 3B4C9C E00B250C AFB200B0 */ sw $s2, 0xb0($sp)
|
||||
/* 3B4CA0 E00B2510 AFB000A8 */ sw $s0, 0xa8($sp)
|
||||
/* 3B4CA4 E00B2514 F7BE00F8 */ sdc1 $f30, 0xf8($sp)
|
||||
/* 3B4CA8 E00B2518 F7BC00F0 */ sdc1 $f28, 0xf0($sp)
|
||||
/* 3B4CAC E00B251C F7BA00E8 */ sdc1 $f26, 0xe8($sp)
|
||||
/* 3B4CB0 E00B2520 F7B800E0 */ sdc1 $f24, 0xe0($sp)
|
||||
/* 3B4CB4 E00B2524 F7B600D8 */ sdc1 $f22, 0xd8($sp)
|
||||
/* 3B4CB8 E00B2528 F7B400D0 */ sdc1 $f20, 0xd0($sp)
|
||||
/* 3B4CBC E00B252C AFA0009C */ sw $zero, 0x9c($sp)
|
||||
/* 3B4CC0 E00B2530 AFB800A4 */ sw $t8, 0xa4($sp)
|
||||
/* 3B4CC4 E00B2534 8E280000 */ lw $t0, ($s1)
|
||||
/* 3B4CC8 E00B2538 3C013FE0 */ lui $at, 0x3fe0
|
||||
/* 3B4CCC E00B253C 4481E800 */ mtc1 $at, $f29
|
||||
/* 3B4CD0 E00B2540 4480E000 */ mtc1 $zero, $f28
|
||||
/* 3B4CD4 E00B2544 3C0141A0 */ lui $at, 0x41a0
|
||||
/* 3B4CD8 E00B2548 4481D000 */ mtc1 $at, $f26
|
||||
/* 3B4CDC E00B254C 44800000 */ mtc1 $zero, $f0
|
||||
/* 3B4CE0 E00B2550 8D37000C */ lw $s7, 0xc($t1)
|
||||
/* 3B4CE4 E00B2554 0100182D */ daddu $v1, $t0, $zero
|
||||
/* 3B4CE8 E00B2558 44050000 */ mfc1 $a1, $f0
|
||||
/* 3B4CEC E00B255C 25080008 */ addiu $t0, $t0, 8
|
||||
/* 3B4CF0 E00B2560 AE280000 */ sw $t0, ($s1)
|
||||
/* 3B4CF4 E00B2564 8EF80000 */ lw $t8, ($s7)
|
||||
/* 3B4CF8 E00B2568 4485F000 */ mtc1 $a1, $f30
|
||||
/* 3B4CFC E00B256C 00A0302D */ daddu $a2, $a1, $zero
|
||||
/* 3B4D00 E00B2570 AFB80090 */ sw $t8, 0x90($sp)
|
||||
/* 3B4D04 E00B2574 C6E40050 */ lwc1 $f4, 0x50($s7)
|
||||
/* 3B4D08 E00B2578 00A0382D */ daddu $a3, $a1, $zero
|
||||
/* 3B4D0C E00B257C E7A40098 */ swc1 $f4, 0x98($sp)
|
||||
/* 3B4D10 E00B2580 AC620000 */ sw $v0, ($v1)
|
||||
/* 3B4D14 E00B2584 AC600004 */ sw $zero, 4($v1)
|
||||
/* 3B4D18 E00B2588 AD0A0000 */ sw $t2, ($t0)
|
||||
/* 3B4D1C E00B258C 8D230010 */ lw $v1, 0x10($t1)
|
||||
/* 3B4D20 E00B2590 25020008 */ addiu $v0, $t0, 8
|
||||
/* 3B4D24 E00B2594 AE220000 */ sw $v0, ($s1)
|
||||
/* 3B4D28 E00B2598 8C62001C */ lw $v0, 0x1c($v1)
|
||||
/* 3B4D2C E00B259C 3C038000 */ lui $v1, 0x8000
|
||||
/* 3B4D30 E00B25A0 00431021 */ addu $v0, $v0, $v1
|
||||
/* 3B4D34 E00B25A4 0C080108 */ jal shim_guTranslateF
|
||||
/* 3B4D38 E00B25A8 AD020004 */ sw $v0, 4($t0)
|
||||
/* 3B4D3C E00B25AC 02E0B02D */ daddu $s6, $s7, $zero
|
||||
/* 3B4D40 E00B25B0 3C013D4C */ lui $at, 0x3d4c
|
||||
/* 3B4D44 E00B25B4 3421CCCD */ ori $at, $at, 0xcccd
|
||||
/* 3B4D48 E00B25B8 44810000 */ mtc1 $at, $f0
|
||||
/* 3B4D4C E00B25BC 27B00050 */ addiu $s0, $sp, 0x50
|
||||
/* 3B4D50 E00B25C0 44050000 */ mfc1 $a1, $f0
|
||||
/* 3B4D54 E00B25C4 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 3B4D58 E00B25C8 00A0302D */ daddu $a2, $a1, $zero
|
||||
/* 3B4D5C E00B25CC 0C080110 */ jal shim_guScaleF
|
||||
/* 3B4D60 E00B25D0 00A0382D */ daddu $a3, $a1, $zero
|
||||
/* 3B4D64 E00B25D4 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 3B4D68 E00B25D8 27A50010 */ addiu $a1, $sp, 0x10
|
||||
/* 3B4D6C E00B25DC 0C080114 */ jal shim_guMtxCatF
|
||||
/* 3B4D70 E00B25E0 00A0302D */ daddu $a2, $a1, $zero
|
||||
/* 3B4D74 E00B25E4 27A40010 */ addiu $a0, $sp, 0x10
|
||||
/* 3B4D78 E00B25E8 3C108007 */ lui $s0, %hi(gMatrixListPos)
|
||||
/* 3B4D7C E00B25EC 261041F0 */ addiu $s0, $s0, %lo(gMatrixListPos)
|
||||
/* 3B4D80 E00B25F0 3C12800A */ lui $s2, %hi(gDisplayContext)
|
||||
/* 3B4D84 E00B25F4 2652A674 */ addiu $s2, $s2, %lo(gDisplayContext)
|
||||
/* 3B4D88 E00B25F8 96050000 */ lhu $a1, ($s0)
|
||||
/* 3B4D8C E00B25FC 8E420000 */ lw $v0, ($s2)
|
||||
/* 3B4D90 E00B2600 00052980 */ sll $a1, $a1, 6
|
||||
/* 3B4D94 E00B2604 00B32821 */ addu $a1, $a1, $s3
|
||||
/* 3B4D98 E00B2608 0C080118 */ jal shim_guMtxF2L
|
||||
/* 3B4D9C E00B260C 00452821 */ addu $a1, $v0, $a1
|
||||
/* 3B4DA0 E00B2610 3C03DA38 */ lui $v1, 0xda38
|
||||
/* 3B4DA4 E00B2614 8E240000 */ lw $a0, ($s1)
|
||||
/* 3B4DA8 E00B2618 34630002 */ ori $v1, $v1, 2
|
||||
/* 3B4DAC E00B261C 0080282D */ daddu $a1, $a0, $zero
|
||||
/* 3B4DB0 E00B2620 24840008 */ addiu $a0, $a0, 8
|
||||
/* 3B4DB4 E00B2624 24980018 */ addiu $t8, $a0, 0x18
|
||||
/* 3B4DB8 E00B2628 0300F02D */ daddu $fp, $t8, $zero
|
||||
/* 3B4DBC E00B262C AFB80094 */ sw $t8, 0x94($sp)
|
||||
/* 3B4DC0 E00B2630 96020000 */ lhu $v0, ($s0)
|
||||
/* 3B4DC4 E00B2634 24940027 */ addiu $s4, $a0, 0x27
|
||||
/* 3B4DC8 E00B2638 AE240000 */ sw $a0, ($s1)
|
||||
/* 3B4DCC E00B263C ACA30000 */ sw $v1, ($a1)
|
||||
/* 3B4DD0 E00B2640 24430001 */ addiu $v1, $v0, 1
|
||||
/* 3B4DD4 E00B2644 3042FFFF */ andi $v0, $v0, 0xffff
|
||||
/* 3B4DD8 E00B2648 00021180 */ sll $v0, $v0, 6
|
||||
/* 3B4DDC E00B264C A6030000 */ sh $v1, ($s0)
|
||||
/* 3B4DE0 E00B2650 8E430000 */ lw $v1, ($s2)
|
||||
/* 3B4DE4 E00B2654 00531021 */ addu $v0, $v0, $s3
|
||||
/* 3B4DE8 E00B2658 00621821 */ addu $v1, $v1, $v0
|
||||
/* 3B4DEC E00B265C 24820008 */ addiu $v0, $a0, 8
|
||||
/* 3B4DF0 E00B2660 ACA30004 */ sw $v1, 4($a1)
|
||||
/* 3B4DF4 E00B2664 AE220000 */ sw $v0, ($s1)
|
||||
/* 3B4DF8 E00B2668 3C02FA00 */ lui $v0, 0xfa00
|
||||
/* 3B4DFC E00B266C AC820000 */ sw $v0, ($a0)
|
||||
/* 3B4E00 E00B2670 92E20037 */ lbu $v0, 0x37($s7)
|
||||
/* 3B4E04 E00B2674 92E5003B */ lbu $a1, 0x3b($s7)
|
||||
/* 3B4E08 E00B2678 92E6003F */ lbu $a2, 0x3f($s7)
|
||||
/* 3B4E0C E00B267C 92E70043 */ lbu $a3, 0x43($s7)
|
||||
/* 3B4E10 E00B2680 24830010 */ addiu $v1, $a0, 0x10
|
||||
/* 3B4E14 E00B2684 AE230000 */ sw $v1, ($s1)
|
||||
/* 3B4E18 E00B2688 3C03FB00 */ lui $v1, 0xfb00
|
||||
/* 3B4E1C E00B268C AC830008 */ sw $v1, 8($a0)
|
||||
/* 3B4E20 E00B2690 00021600 */ sll $v0, $v0, 0x18
|
||||
/* 3B4E24 E00B2694 00052C00 */ sll $a1, $a1, 0x10
|
||||
/* 3B4E28 E00B2698 00451025 */ or $v0, $v0, $a1
|
||||
/* 3B4E2C E00B269C 00063200 */ sll $a2, $a2, 8
|
||||
/* 3B4E30 E00B26A0 00461025 */ or $v0, $v0, $a2
|
||||
/* 3B4E34 E00B26A4 00471025 */ or $v0, $v0, $a3
|
||||
/* 3B4E38 E00B26A8 AC820004 */ sw $v0, 4($a0)
|
||||
/* 3B4E3C E00B26AC 92E20047 */ lbu $v0, 0x47($s7)
|
||||
/* 3B4E40 E00B26B0 92E5004B */ lbu $a1, 0x4b($s7)
|
||||
/* 3B4E44 E00B26B4 92E6004F */ lbu $a2, 0x4f($s7)
|
||||
/* 3B4E48 E00B26B8 3C03DE01 */ lui $v1, 0xde01
|
||||
/* 3B4E4C E00B26BC AC830010 */ sw $v1, 0x10($a0)
|
||||
/* 3B4E50 E00B26C0 24830198 */ addiu $v1, $a0, 0x198
|
||||
/* 3B4E54 E00B26C4 AC830014 */ sw $v1, 0x14($a0)
|
||||
/* 3B4E58 E00B26C8 AE230000 */ sw $v1, ($s1)
|
||||
/* 3B4E5C E00B26CC 00021600 */ sll $v0, $v0, 0x18
|
||||
/* 3B4E60 E00B26D0 00052C00 */ sll $a1, $a1, 0x10
|
||||
/* 3B4E64 E00B26D4 00451025 */ or $v0, $v0, $a1
|
||||
/* 3B4E68 E00B26D8 00063200 */ sll $a2, $a2, 8
|
||||
/* 3B4E6C E00B26DC 00461025 */ or $v0, $v0, $a2
|
||||
/* 3B4E70 E00B26E0 344200C8 */ ori $v0, $v0, 0xc8
|
||||
/* 3B4E74 E00B26E4 AC82000C */ sw $v0, 0xc($a0)
|
||||
.LE00B26E8:
|
||||
/* 3B4E78 E00B26E8 12A00008 */ beqz $s5, .LE00B270C
|
||||
/* 3B4E7C E00B26EC 0000C02D */ daddu $t8, $zero, $zero
|
||||
/* 3B4E80 E00B26F0 13150006 */ beq $t8, $s5, .LE00B270C
|
||||
/* 3B4E84 E00B26F4 2402000B */ addiu $v0, $zero, 0xb
|
||||
/* 3B4E88 E00B26F8 12A2000F */ beq $s5, $v0, .LE00B2738
|
||||
/* 3B4E8C E00B26FC 00000000 */ nop
|
||||
/* 3B4E90 E00B2700 8EC20178 */ lw $v0, 0x178($s6)
|
||||
/* 3B4E94 E00B2704 1440000C */ bnez $v0, .LE00B2738
|
||||
/* 3B4E98 E00B2708 00000000 */ nop
|
||||
.LE00B270C:
|
||||
/* 3B4E9C E00B270C 8FB800A4 */ lw $t8, 0xa4($sp)
|
||||
/* 3B4EA0 E00B2710 8EC60118 */ lw $a2, 0x118($s6)
|
||||
/* 3B4EA4 E00B2714 C6C000E8 */ lwc1 $f0, 0xe8($s6)
|
||||
/* 3B4EA8 E00B2718 02F81021 */ addu $v0, $s7, $t8
|
||||
/* 3B4EAC E00B271C 46000007 */ neg.s $f0, $f0
|
||||
/* 3B4EB0 E00B2720 C44C0118 */ lwc1 $f12, 0x118($v0)
|
||||
/* 3B4EB4 E00B2724 C44E00E8 */ lwc1 $f14, 0xe8($v0)
|
||||
/* 3B4EB8 E00B2728 44070000 */ mfc1 $a3, $f0
|
||||
/* 3B4EBC E00B272C 0C080148 */ jal shim_atan2
|
||||
/* 3B4EC0 E00B2730 46007387 */ neg.s $f14, $f14
|
||||
/* 3B4EC4 E00B2734 46000607 */ neg.s $f24, $f0
|
||||
.LE00B2738:
|
||||
/* 3B4EC8 E00B2738 8EE20000 */ lw $v0, ($s7)
|
||||
/* 3B4ECC E00B273C 14400015 */ bnez $v0, .LE00B2794
|
||||
/* 3B4ED0 E00B2740 00000000 */ nop
|
||||
/* 3B4ED4 E00B2744 C6C001A8 */ lwc1 $f0, 0x1a8($s6)
|
||||
/* 3B4ED8 E00B2748 46800020 */ cvt.s.w $f0, $f0
|
||||
/* 3B4EDC E00B274C 46000021 */ cvt.d.s $f0, $f0
|
||||
/* 3B4EE0 E00B2750 463C0002 */ mul.d $f0, $f0, $f28
|
||||
/* 3B4EE4 E00B2754 00000000 */ nop
|
||||
/* 3B4EE8 E00B2758 3C014000 */ lui $at, 0x4000
|
||||
/* 3B4EEC E00B275C 44811800 */ mtc1 $at, $f3
|
||||
/* 3B4EF0 E00B2760 44801000 */ mtc1 $zero, $f2
|
||||
/* 3B4EF4 E00B2764 00000000 */ nop
|
||||
/* 3B4EF8 E00B2768 46220000 */ add.d $f0, $f0, $f2
|
||||
/* 3B4EFC E00B276C 3C0140C0 */ lui $at, 0x40c0
|
||||
/* 3B4F00 E00B2770 44812000 */ mtc1 $at, $f4
|
||||
/* 3B4F04 E00B2774 462005A0 */ cvt.s.d $f22, $f0
|
||||
/* 3B4F08 E00B2778 4616203C */ c.lt.s $f4, $f22
|
||||
/* 3B4F0C E00B277C 00000000 */ nop
|
||||
/* 3B4F10 E00B2780 45030001 */ bc1tl .LE00B2788
|
||||
/* 3B4F14 E00B2784 46002586 */ mov.s $f22, $f4
|
||||
.LE00B2788:
|
||||
/* 3B4F18 E00B2788 8FB800A0 */ lw $t8, 0xa0($sp)
|
||||
/* 3B4F1C E00B278C 0802CA04 */ j .LE00B2810
|
||||
/* 3B4F20 E00B2790 93110000 */ lbu $s1, ($t8)
|
||||
.LE00B2794:
|
||||
/* 3B4F24 E00B2794 C6C001A8 */ lwc1 $f0, 0x1a8($s6)
|
||||
/* 3B4F28 E00B2798 46800020 */ cvt.s.w $f0, $f0
|
||||
/* 3B4F2C E00B279C 46000021 */ cvt.d.s $f0, $f0
|
||||
/* 3B4F30 E00B27A0 463C0002 */ mul.d $f0, $f0, $f28
|
||||
/* 3B4F34 E00B27A4 00000000 */ nop
|
||||
/* 3B4F38 E00B27A8 3C013FF0 */ lui $at, 0x3ff0
|
||||
/* 3B4F3C E00B27AC 44811800 */ mtc1 $at, $f3
|
||||
/* 3B4F40 E00B27B0 44801000 */ mtc1 $zero, $f2
|
||||
/* 3B4F44 E00B27B4 00000000 */ nop
|
||||
/* 3B4F48 E00B27B8 46220000 */ add.d $f0, $f0, $f2
|
||||
/* 3B4F4C E00B27BC 3C0141F0 */ lui $at, 0x41f0
|
||||
/* 3B4F50 E00B27C0 44811000 */ mtc1 $at, $f2
|
||||
/* 3B4F54 E00B27C4 462005A0 */ cvt.s.d $f22, $f0
|
||||
/* 3B4F58 E00B27C8 4616103C */ c.lt.s $f2, $f22
|
||||
/* 3B4F5C E00B27CC 00000000 */ nop
|
||||
/* 3B4F60 E00B27D0 45030001 */ bc1tl .LE00B27D8
|
||||
/* 3B4F64 E00B27D4 46001586 */ mov.s $f22, $f2
|
||||
.LE00B27D8:
|
||||
/* 3B4F68 E00B27D8 02F51021 */ addu $v0, $s7, $s5
|
||||
/* 3B4F6C E00B27DC 8FB800A0 */ lw $t8, 0xa0($sp)
|
||||
/* 3B4F70 E00B27E0 904201D8 */ lbu $v0, 0x1d8($v0)
|
||||
/* 3B4F74 E00B27E4 93030000 */ lbu $v1, ($t8)
|
||||
/* 3B4F78 E00B27E8 00620018 */ mult $v1, $v0
|
||||
/* 3B4F7C E00B27EC 00001812 */ mflo $v1
|
||||
/* 3B4F80 E00B27F0 3C028080 */ lui $v0, 0x8080
|
||||
/* 3B4F84 E00B27F4 34428081 */ ori $v0, $v0, 0x8081
|
||||
/* 3B4F88 E00B27F8 00620018 */ mult $v1, $v0
|
||||
/* 3B4F8C E00B27FC 00001010 */ mfhi $v0
|
||||
/* 3B4F90 E00B2800 00431021 */ addu $v0, $v0, $v1
|
||||
/* 3B4F94 E00B2804 000211C3 */ sra $v0, $v0, 7
|
||||
/* 3B4F98 E00B2808 00031FC3 */ sra $v1, $v1, 0x1f
|
||||
/* 3B4F9C E00B280C 00438823 */ subu $s1, $v0, $v1
|
||||
.LE00B2810:
|
||||
/* 3B4FA0 E00B2810 C7A40098 */ lwc1 $f4, 0x98($sp)
|
||||
/* 3B4FA4 E00B2814 8FB8009C */ lw $t8, 0x9c($sp)
|
||||
/* 3B4FA8 E00B2818 4604B582 */ mul.s $f22, $f22, $f4
|
||||
/* 3B4FAC E00B281C 00000000 */ nop
|
||||
/* 3B4FB0 E00B2820 4600C306 */ mov.s $f12, $f24
|
||||
/* 3B4FB4 E00B2824 03158021 */ addu $s0, $t8, $s5
|
||||
/* 3B4FB8 E00B2828 0C080140 */ jal shim_sin_deg
|
||||
/* 3B4FBC E00B282C 00108180 */ sll $s0, $s0, 6
|
||||
/* 3B4FC0 E00B2830 4600B502 */ mul.s $f20, $f22, $f0
|
||||
/* 3B4FC4 E00B2834 00000000 */ nop
|
||||
/* 3B4FC8 E00B2838 0C080144 */ jal shim_cos_deg
|
||||
/* 3B4FCC E00B283C 4600C306 */ mov.s $f12, $f24
|
||||
/* 3B4FD0 E00B2840 C6C200E8 */ lwc1 $f2, 0xe8($s6)
|
||||
/* 3B4FD4 E00B2844 46141080 */ add.s $f2, $f2, $f20
|
||||
/* 3B4FD8 E00B2848 461A1082 */ mul.s $f2, $f2, $f26
|
||||
/* 3B4FDC E00B284C 00000000 */ nop
|
||||
/* 3B4FE0 E00B2850 4600B002 */ mul.s $f0, $f22, $f0
|
||||
/* 3B4FE4 E00B2854 00000000 */ nop
|
||||
/* 3B4FE8 E00B2858 4600110D */ trunc.w.s $f4, $f2
|
||||
/* 3B4FEC E00B285C 44022000 */ mfc1 $v0, $f4
|
||||
/* 3B4FF0 E00B2860 00000000 */ nop
|
||||
/* 3B4FF4 E00B2864 A7C20000 */ sh $v0, ($fp)
|
||||
/* 3B4FF8 E00B2868 C6C20118 */ lwc1 $f2, 0x118($s6)
|
||||
/* 3B4FFC E00B286C 46001080 */ add.s $f2, $f2, $f0
|
||||
/* 3B5000 E00B2870 461A1082 */ mul.s $f2, $f2, $f26
|
||||
/* 3B5004 E00B2874 00000000 */ nop
|
||||
/* 3B5008 E00B2878 4600110D */ trunc.w.s $f4, $f2
|
||||
/* 3B500C E00B287C 44022000 */ mfc1 $v0, $f4
|
||||
/* 3B5010 E00B2880 00000000 */ nop
|
||||
/* 3B5014 E00B2884 A682FFF3 */ sh $v0, -0xd($s4)
|
||||
/* 3B5018 E00B2888 32A20001 */ andi $v0, $s5, 1
|
||||
/* 3B501C E00B288C 00022A00 */ sll $a1, $v0, 8
|
||||
/* 3B5020 E00B2890 00A22823 */ subu $a1, $a1, $v0
|
||||
/* 3B5024 E00B2894 00151043 */ sra $v0, $s5, 1
|
||||
/* 3B5028 E00B2898 30420001 */ andi $v0, $v0, 1
|
||||
/* 3B502C E00B289C 00022200 */ sll $a0, $v0, 8
|
||||
/* 3B5030 E00B28A0 00822023 */ subu $a0, $a0, $v0
|
||||
/* 3B5034 E00B28A4 00151083 */ sra $v0, $s5, 2
|
||||
/* 3B5038 E00B28A8 30420001 */ andi $v0, $v0, 1
|
||||
/* 3B503C E00B28AC 00021A00 */ sll $v1, $v0, 8
|
||||
/* 3B5040 E00B28B0 C6C20148 */ lwc1 $f2, 0x148($s6)
|
||||
/* 3B5044 E00B28B4 00621823 */ subu $v1, $v1, $v0
|
||||
/* 3B5048 E00B28B8 461E1080 */ add.s $f2, $f2, $f30
|
||||
/* 3B504C E00B28BC A690FFF9 */ sh $s0, -7($s4)
|
||||
/* 3B5050 E00B28C0 A680FFFB */ sh $zero, -5($s4)
|
||||
/* 3B5054 E00B28C4 461A1082 */ mul.s $f2, $f2, $f26
|
||||
/* 3B5058 E00B28C8 00000000 */ nop
|
||||
/* 3B505C E00B28CC A285FFFD */ sb $a1, -3($s4)
|
||||
/* 3B5060 E00B28D0 A284FFFE */ sb $a0, -2($s4)
|
||||
/* 3B5064 E00B28D4 A283FFFF */ sb $v1, -1($s4)
|
||||
/* 3B5068 E00B28D8 A2910000 */ sb $s1, ($s4)
|
||||
/* 3B506C E00B28DC 4600110D */ trunc.w.s $f4, $f2
|
||||
/* 3B5070 E00B28E0 44022000 */ mfc1 $v0, $f4
|
||||
/* 3B5074 E00B28E4 00000000 */ nop
|
||||
/* 3B5078 E00B28E8 A682FFF5 */ sh $v0, -0xb($s4)
|
||||
/* 3B507C E00B28EC C6C200E8 */ lwc1 $f2, 0xe8($s6)
|
||||
/* 3B5080 E00B28F0 46141081 */ sub.s $f2, $f2, $f20
|
||||
/* 3B5084 E00B28F4 461A1082 */ mul.s $f2, $f2, $f26
|
||||
/* 3B5088 E00B28F8 00000000 */ nop
|
||||
/* 3B508C E00B28FC 27DE0010 */ addiu $fp, $fp, 0x10
|
||||
/* 3B5090 E00B2900 26B50001 */ addiu $s5, $s5, 1
|
||||
/* 3B5094 E00B2904 26940010 */ addiu $s4, $s4, 0x10
|
||||
/* 3B5098 E00B2908 4600110D */ trunc.w.s $f4, $f2
|
||||
/* 3B509C E00B290C 44022000 */ mfc1 $v0, $f4
|
||||
/* 3B50A0 E00B2910 00000000 */ nop
|
||||
/* 3B50A4 E00B2914 A7C20000 */ sh $v0, ($fp)
|
||||
/* 3B50A8 E00B2918 8FB8009C */ lw $t8, 0x9c($sp)
|
||||
/* 3B50AC E00B291C C6C20118 */ lwc1 $f2, 0x118($s6)
|
||||
/* 3B50B0 E00B2920 27180004 */ addiu $t8, $t8, 4
|
||||
/* 3B50B4 E00B2924 AFB8009C */ sw $t8, 0x9c($sp)
|
||||
/* 3B50B8 E00B2928 8FB800A0 */ lw $t8, 0xa0($sp)
|
||||
/* 3B50BC E00B292C 46001081 */ sub.s $f2, $f2, $f0
|
||||
/* 3B50C0 E00B2930 27180001 */ addiu $t8, $t8, 1
|
||||
/* 3B50C4 E00B2934 AFB800A0 */ sw $t8, 0xa0($sp)
|
||||
/* 3B50C8 E00B2938 461A1082 */ mul.s $f2, $f2, $f26
|
||||
/* 3B50CC E00B293C 00000000 */ nop
|
||||
/* 3B50D0 E00B2940 8FB800A4 */ lw $t8, 0xa4($sp)
|
||||
/* 3B50D4 E00B2944 27DE0010 */ addiu $fp, $fp, 0x10
|
||||
/* 3B50D8 E00B2948 27180004 */ addiu $t8, $t8, 4
|
||||
/* 3B50DC E00B294C AFB800A4 */ sw $t8, 0xa4($sp)
|
||||
/* 3B50E0 E00B2950 4600110D */ trunc.w.s $f4, $f2
|
||||
/* 3B50E4 E00B2954 44022000 */ mfc1 $v0, $f4
|
||||
/* 3B50E8 E00B2958 00000000 */ nop
|
||||
/* 3B50EC E00B295C A682FFF3 */ sh $v0, -0xd($s4)
|
||||
/* 3B50F0 E00B2960 C6C00148 */ lwc1 $f0, 0x148($s6)
|
||||
/* 3B50F4 E00B2964 26D60004 */ addiu $s6, $s6, 4
|
||||
/* 3B50F8 E00B2968 24020400 */ addiu $v0, $zero, 0x400
|
||||
/* 3B50FC E00B296C 461E0000 */ add.s $f0, $f0, $f30
|
||||
/* 3B5100 E00B2970 A690FFF9 */ sh $s0, -7($s4)
|
||||
/* 3B5104 E00B2974 A682FFFB */ sh $v0, -5($s4)
|
||||
/* 3B5108 E00B2978 461A0002 */ mul.s $f0, $f0, $f26
|
||||
/* 3B510C E00B297C 00000000 */ nop
|
||||
/* 3B5110 E00B2980 A285FFFD */ sb $a1, -3($s4)
|
||||
/* 3B5114 E00B2984 A284FFFE */ sb $a0, -2($s4)
|
||||
/* 3B5118 E00B2988 A283FFFF */ sb $v1, -1($s4)
|
||||
/* 3B511C E00B298C A2910000 */ sb $s1, ($s4)
|
||||
/* 3B5120 E00B2990 4600010D */ trunc.w.s $f4, $f0
|
||||
/* 3B5124 E00B2994 44022000 */ mfc1 $v0, $f4
|
||||
/* 3B5128 E00B2998 00000000 */ nop
|
||||
/* 3B512C E00B299C A682FFF5 */ sh $v0, -0xb($s4)
|
||||
/* 3B5130 E00B29A0 2AA2000C */ slti $v0, $s5, 0xc
|
||||
/* 3B5134 E00B29A4 1440FF50 */ bnez $v0, .LE00B26E8
|
||||
/* 3B5138 E00B29A8 26940010 */ addiu $s4, $s4, 0x10
|
||||
/* 3B513C E00B29AC 3C07800A */ lui $a3, %hi(gMasterGfxPos)
|
||||
/* 3B5140 E00B29B0 24E7A66C */ addiu $a3, $a3, %lo(gMasterGfxPos)
|
||||
/* 3B5144 E00B29B4 3C080900 */ lui $t0, 0x900
|
||||
/* 3B5148 E00B29B8 250808A8 */ addiu $t0, $t0, 0x8a8
|
||||
/* 3B514C E00B29BC 00151040 */ sll $v0, $s5, 1
|
||||
/* 3B5150 E00B29C0 304400FF */ andi $a0, $v0, 0xff
|
||||
/* 3B5154 E00B29C4 00042300 */ sll $a0, $a0, 0xc
|
||||
/* 3B5158 E00B29C8 3042007F */ andi $v0, $v0, 0x7f
|
||||
/* 3B515C E00B29CC 00021040 */ sll $v0, $v0, 1
|
||||
/* 3B5160 E00B29D0 3C030100 */ lui $v1, 0x100
|
||||
/* 3B5164 E00B29D4 00431025 */ or $v0, $v0, $v1
|
||||
/* 3B5168 E00B29D8 8CE60000 */ lw $a2, ($a3)
|
||||
/* 3B516C E00B29DC 00822025 */ or $a0, $a0, $v0
|
||||
/* 3B5170 E00B29E0 00C0282D */ daddu $a1, $a2, $zero
|
||||
/* 3B5174 E00B29E4 24C60008 */ addiu $a2, $a2, 8
|
||||
/* 3B5178 E00B29E8 ACE60000 */ sw $a2, ($a3)
|
||||
/* 3B517C E00B29EC ACA40000 */ sw $a0, ($a1)
|
||||
/* 3B5180 E00B29F0 8FB80094 */ lw $t8, 0x94($sp)
|
||||
/* 3B5184 E00B29F4 24C20008 */ addiu $v0, $a2, 8
|
||||
/* 3B5188 E00B29F8 ACB80004 */ sw $t8, 4($a1)
|
||||
/* 3B518C E00B29FC ACE20000 */ sw $v0, ($a3)
|
||||
/* 3B5190 E00B2A00 3C02DE00 */ lui $v0, 0xde00
|
||||
/* 3B5194 E00B2A04 ACC20000 */ sw $v0, ($a2)
|
||||
/* 3B5198 E00B2A08 8FB80090 */ lw $t8, 0x90($sp)
|
||||
/* 3B519C E00B2A0C 17000003 */ bnez $t8, .LE00B2A1C
|
||||
/* 3B51A0 E00B2A10 02A0102D */ daddu $v0, $s5, $zero
|
||||
/* 3B51A4 E00B2A14 3C080900 */ lui $t0, 0x900
|
||||
/* 3B51A8 E00B2A18 25080800 */ addiu $t0, $t0, 0x800
|
||||
.LE00B2A1C:
|
||||
/* 3B51AC E00B2A1C ACC80004 */ sw $t0, 4($a2)
|
||||
/* 3B51B0 E00B2A20 2442FFFF */ addiu $v0, $v0, -1
|
||||
/* 3B51B4 E00B2A24 18400039 */ blez $v0, .LE00B2B0C
|
||||
/* 3B51B8 E00B2A28 0000A82D */ daddu $s5, $zero, $zero
|
||||
/* 3B51BC E00B2A2C 00E0582D */ daddu $t3, $a3, $zero
|
||||
/* 3B51C0 E00B2A30 3C0A0600 */ lui $t2, 0x600
|
||||
/* 3B51C4 E00B2A34 24090001 */ addiu $t1, $zero, 1
|
||||
/* 3B51C8 E00B2A38 3C0F0606 */ lui $t7, 0x606
|
||||
/* 3B51CC E00B2A3C 35EF0402 */ ori $t7, $t7, 0x402
|
||||
/* 3B51D0 E00B2A40 3C0E0002 */ lui $t6, 2
|
||||
/* 3B51D4 E00B2A44 35CE0406 */ ori $t6, $t6, 0x406
|
||||
/* 3B51D8 E00B2A48 3C0D0006 */ lui $t5, 6
|
||||
/* 3B51DC E00B2A4C 35AD0804 */ ori $t5, $t5, 0x804
|
||||
/* 3B51E0 E00B2A50 0040602D */ daddu $t4, $v0, $zero
|
||||
/* 3B51E4 E00B2A54 24070004 */ addiu $a3, $zero, 4
|
||||
/* 3B51E8 E00B2A58 24060002 */ addiu $a2, $zero, 2
|
||||
/* 3B51EC E00B2A5C 24080006 */ addiu $t0, $zero, 6
|
||||
.LE00B2A60:
|
||||
/* 3B51F0 E00B2A60 2AA20000 */ slti $v0, $s5, 0
|
||||
/* 3B51F4 E00B2A64 14400023 */ bnez $v0, .LE00B2AF4
|
||||
/* 3B51F8 E00B2A68 00152840 */ sll $a1, $s5, 1
|
||||
/* 3B51FC E00B2A6C 8D640000 */ lw $a0, ($t3)
|
||||
/* 3B5200 E00B2A70 24820008 */ addiu $v0, $a0, 8
|
||||
/* 3B5204 E00B2A74 14A00004 */ bnez $a1, .LE00B2A88
|
||||
/* 3B5208 E00B2A78 AD620000 */ sw $v0, ($t3)
|
||||
/* 3B520C E00B2A7C 00151440 */ sll $v0, $s5, 0x11
|
||||
/* 3B5210 E00B2A80 0802CAAC */ j .LE00B2AB0
|
||||
/* 3B5214 E00B2A84 34420402 */ ori $v0, $v0, 0x402
|
||||
.LE00B2A88:
|
||||
/* 3B5218 E00B2A88 14A90003 */ bne $a1, $t1, .LE00B2A98
|
||||
/* 3B521C E00B2A8C 30C200FF */ andi $v0, $a2, 0xff
|
||||
/* 3B5220 E00B2A90 0802CAAE */ j .LE00B2AB8
|
||||
/* 3B5224 E00B2A94 AC8F0000 */ sw $t7, ($a0)
|
||||
.LE00B2A98:
|
||||
/* 3B5228 E00B2A98 00021400 */ sll $v0, $v0, 0x10
|
||||
/* 3B522C E00B2A9C 00151A80 */ sll $v1, $s5, 0xa
|
||||
/* 3B5230 E00B2AA0 3063FC00 */ andi $v1, $v1, 0xfc00
|
||||
/* 3B5234 E00B2AA4 00431025 */ or $v0, $v0, $v1
|
||||
/* 3B5238 E00B2AA8 30E300FF */ andi $v1, $a3, 0xff
|
||||
/* 3B523C E00B2AAC 00431025 */ or $v0, $v0, $v1
|
||||
.LE00B2AB0:
|
||||
/* 3B5240 E00B2AB0 004A1025 */ or $v0, $v0, $t2
|
||||
/* 3B5244 E00B2AB4 AC820000 */ sw $v0, ($a0)
|
||||
.LE00B2AB8:
|
||||
/* 3B5248 E00B2AB8 14A00003 */ bnez $a1, .LE00B2AC8
|
||||
/* 3B524C E00B2ABC 00000000 */ nop
|
||||
/* 3B5250 E00B2AC0 0802CABD */ j .LE00B2AF4
|
||||
/* 3B5254 E00B2AC4 AC8E0004 */ sw $t6, 4($a0)
|
||||
.LE00B2AC8:
|
||||
/* 3B5258 E00B2AC8 14A90003 */ bne $a1, $t1, .LE00B2AD8
|
||||
/* 3B525C E00B2ACC 310200FF */ andi $v0, $t0, 0xff
|
||||
/* 3B5260 E00B2AD0 0802CABD */ j .LE00B2AF4
|
||||
/* 3B5264 E00B2AD4 AC8D0004 */ sw $t5, 4($a0)
|
||||
.LE00B2AD8:
|
||||
/* 3B5268 E00B2AD8 00021400 */ sll $v0, $v0, 0x10
|
||||
/* 3B526C E00B2ADC 30C300FF */ andi $v1, $a2, 0xff
|
||||
/* 3B5270 E00B2AE0 00031A00 */ sll $v1, $v1, 8
|
||||
/* 3B5274 E00B2AE4 00431025 */ or $v0, $v0, $v1
|
||||
/* 3B5278 E00B2AE8 30E300FF */ andi $v1, $a3, 0xff
|
||||
/* 3B527C E00B2AEC 00431025 */ or $v0, $v0, $v1
|
||||
/* 3B5280 E00B2AF0 AC820004 */ sw $v0, 4($a0)
|
||||
.LE00B2AF4:
|
||||
/* 3B5284 E00B2AF4 24E70004 */ addiu $a3, $a3, 4
|
||||
/* 3B5288 E00B2AF8 24C60004 */ addiu $a2, $a2, 4
|
||||
/* 3B528C E00B2AFC 26B50001 */ addiu $s5, $s5, 1
|
||||
/* 3B5290 E00B2B00 02AC102A */ slt $v0, $s5, $t4
|
||||
/* 3B5294 E00B2B04 1440FFD6 */ bnez $v0, .LE00B2A60
|
||||
/* 3B5298 E00B2B08 25080004 */ addiu $t0, $t0, 4
|
||||
.LE00B2B0C:
|
||||
/* 3B529C E00B2B0C 3C03D838 */ lui $v1, 0xd838
|
||||
/* 3B52A0 E00B2B10 3C04800A */ lui $a0, %hi(gMasterGfxPos)
|
||||
/* 3B52A4 E00B2B14 2484A66C */ addiu $a0, $a0, %lo(gMasterGfxPos)
|
||||
/* 3B52A8 E00B2B18 8C820000 */ lw $v0, ($a0)
|
||||
/* 3B52AC E00B2B1C 34630002 */ ori $v1, $v1, 2
|
||||
/* 3B52B0 E00B2B20 0040282D */ daddu $a1, $v0, $zero
|
||||
/* 3B52B4 E00B2B24 24420008 */ addiu $v0, $v0, 8
|
||||
/* 3B52B8 E00B2B28 AC820000 */ sw $v0, ($a0)
|
||||
/* 3B52BC E00B2B2C ACA30000 */ sw $v1, ($a1)
|
||||
/* 3B52C0 E00B2B30 24030040 */ addiu $v1, $zero, 0x40
|
||||
/* 3B52C4 E00B2B34 ACA30004 */ sw $v1, 4($a1)
|
||||
/* 3B52C8 E00B2B38 24430008 */ addiu $v1, $v0, 8
|
||||
/* 3B52CC E00B2B3C AC830000 */ sw $v1, ($a0)
|
||||
/* 3B52D0 E00B2B40 3C03E700 */ lui $v1, 0xe700
|
||||
/* 3B52D4 E00B2B44 AC430000 */ sw $v1, ($v0)
|
||||
/* 3B52D8 E00B2B48 AC400004 */ sw $zero, 4($v0)
|
||||
/* 3B52DC E00B2B4C 8FBF00CC */ lw $ra, 0xcc($sp)
|
||||
/* 3B52E0 E00B2B50 8FBE00C8 */ lw $fp, 0xc8($sp)
|
||||
/* 3B52E4 E00B2B54 8FB700C4 */ lw $s7, 0xc4($sp)
|
||||
/* 3B52E8 E00B2B58 8FB600C0 */ lw $s6, 0xc0($sp)
|
||||
/* 3B52EC E00B2B5C 8FB500BC */ lw $s5, 0xbc($sp)
|
||||
/* 3B52F0 E00B2B60 8FB400B8 */ lw $s4, 0xb8($sp)
|
||||
/* 3B52F4 E00B2B64 8FB300B4 */ lw $s3, 0xb4($sp)
|
||||
/* 3B52F8 E00B2B68 8FB200B0 */ lw $s2, 0xb0($sp)
|
||||
/* 3B52FC E00B2B6C 8FB100AC */ lw $s1, 0xac($sp)
|
||||
/* 3B5300 E00B2B70 8FB000A8 */ lw $s0, 0xa8($sp)
|
||||
/* 3B5304 E00B2B74 D7BE00F8 */ ldc1 $f30, 0xf8($sp)
|
||||
/* 3B5308 E00B2B78 D7BC00F0 */ ldc1 $f28, 0xf0($sp)
|
||||
/* 3B530C E00B2B7C D7BA00E8 */ ldc1 $f26, 0xe8($sp)
|
||||
/* 3B5310 E00B2B80 D7B800E0 */ ldc1 $f24, 0xe0($sp)
|
||||
/* 3B5314 E00B2B84 D7B600D8 */ ldc1 $f22, 0xd8($sp)
|
||||
/* 3B5318 E00B2B88 D7B400D0 */ ldc1 $f20, 0xd0($sp)
|
||||
/* 3B531C E00B2B8C 03E00008 */ jr $ra
|
||||
/* 3B5320 E00B2B90 27BD0100 */ addiu $sp, $sp, 0x100
|
||||
/* 3B5324 E00B2B94 00000000 */ nop
|
||||
/* 3B5328 E00B2B98 00000000 */ nop
|
||||
/* 3B532C E00B2B9C 00000000 */ nop
|
@ -5238,7 +5238,24 @@ segments:
|
||||
subsegments:
|
||||
- [0x3B4790, c, squirt]
|
||||
- [0x3B5330]
|
||||
- [0x3B5340, bin] # squirt gfx
|
||||
- name: effect_gfx_squirt
|
||||
dir: effects/gfx
|
||||
type: code
|
||||
start: 0x3B5340
|
||||
vram: 0x09000000
|
||||
symbol_name_format: $VRAM_$ROM
|
||||
subsegments:
|
||||
- [0x3B5340, c, squirt]
|
||||
- start: 0x3B5340
|
||||
type: .data
|
||||
name: squirt
|
||||
subsegments:
|
||||
- [0x3B5340, ia4, D_09000000_3B5340, 64, 32]
|
||||
- [0x3B5740, ia8, D_09000400_3B5740, 32, 32]
|
||||
- [0x3B5B40, gfx, D_09000800_3B5B40]
|
||||
- [0x3B5BE8, gfx, D_090008A8_3B5BE8]
|
||||
- [0x3B5C90, vtx, D_09000950_3B5C90]
|
||||
- [0x3B5CD0, gfx, D_09000990_3B5CD0]
|
||||
- name: effect_water_block
|
||||
dir: effects
|
||||
type: code
|
||||
|
@ -33,11 +33,6 @@ D_803DA800 = 0x803DA800;
|
||||
heap_battleHead = 0x803DA800;
|
||||
|
||||
// Letter delivery BSS
|
||||
mac_05_LetterDelivery_SavedNpcAnim = 0x80252D38;
|
||||
mac_00_LetterDelivery_SavedNpcAnim = 0x80255ED8;
|
||||
dup_mac_00_LetterDelivery_SavedNpcAnim = 0x802560A4;
|
||||
kmr_02_LetterDelivery_SavedNpcAnim = 0x8025811C;
|
||||
osr_01_LetterDelivery_SavedNpcAnim = 0x80242344;
|
||||
hos_06_LetterDelivery_SavedNpcAnim = 0x80246424;
|
||||
nok_01_LetterDelivery_SavedNpcAnim = 0x80251E34;
|
||||
nok_02_LetterDelivery_SavedNpcAnim = 0x80254B94;
|
||||
@ -47,35 +42,28 @@ sam_01_LetterDelivery_SavedNpcAnim = 0x8024DF24;
|
||||
sam_06_LetterDelivery_SavedNpcAnim = 0x8024C1D8;
|
||||
sbk_30_LetterDelivery_SavedNpcAnim = 0x80244D88;
|
||||
sbk_34_LetterDelivery_SavedNpcAnim = 0x802429A4;
|
||||
obk_01_LetterDelivery_SavedNpcAnim = 0x80245AB4;
|
||||
obk_03_LetterDelivery_SavedNpcAnim = 0x80243DA4;
|
||||
|
||||
// Quizmo BSS
|
||||
sam_02_Quizmo_AnswerResult = 0x8024B9A8;
|
||||
sam_02_Quizmo_StageEffect = 0x8024B9B0;
|
||||
jan_02_Quizmo_Worker = 0x80248924;
|
||||
jan_02_Quizmo_AnswerResult = 0x80248938;
|
||||
jan_02_Quizmo_StageEffect = 0x80248940;
|
||||
jan_02_Quizmo_AudienceEffect = 0x80248944;
|
||||
jan_02_Quizmo_VannaTEffect = 0x80248948;
|
||||
sam_01_Quizmo_Worker = 0x8024DEF8;
|
||||
sam_02_Quizmo_Worker = 0x8024B990;
|
||||
sam_02_Quizmo_AudienceEffect = 0x8024B9B4;
|
||||
sam_02_Quizmo_VannaTEffect = 0x8024B9B8;
|
||||
hos_03_Quizmo_Worker = 0x8024BDD0;
|
||||
hos_03_Quizmo_AnswerResult = 0x8024BDE8;
|
||||
hos_03_Quizmo_StageEffect = 0x8024BDF0;
|
||||
hos_03_Quizmo_AudienceEffect = 0x8024BDF4;
|
||||
hos_03_Quizmo_VannaTEffect = 0x8024BDF8;
|
||||
sam_01_Quizmo_AnswerResult = 0x8024DF10;
|
||||
sam_01_Quizmo_StageEffect = 0x8024DF18;
|
||||
sam_01_Quizmo_AudienceEffect = 0x8024DF1C;
|
||||
sam_01_Quizmo_VannaTEffect = 0x8024DF20;
|
||||
jan_03_Quizmo_Worker = 0x8024FED8;
|
||||
jan_03_Quizmo_AnswerResult = 0x8024FEF0;
|
||||
jan_03_Quizmo_StageEffect = 0x8024FEF8;
|
||||
jan_03_Quizmo_AudienceEffect = 0x8024FEFC;
|
||||
jan_03_Quizmo_VannaTEffect = 0x8024FF00;
|
||||
sam_02_Quizmo_AnswerResult = 0x8024B9A8;
|
||||
sam_02_Quizmo_StageEffect = 0x8024B9B0;
|
||||
sam_01_Quizmo_Worker = 0x8024DEF8;
|
||||
sam_02_Quizmo_Worker = 0x8024B990;
|
||||
sam_02_Quizmo_AudienceEffect = 0x8024B9B4;
|
||||
sam_02_Quizmo_VannaTEffect = 0x8024B9B8;
|
||||
sam_01_Quizmo_AnswerResult = 0x8024DF10;
|
||||
sam_01_Quizmo_StageEffect = 0x8024DF18;
|
||||
sam_01_Quizmo_AudienceEffect = 0x8024DF1C;
|
||||
sam_01_Quizmo_VannaTEffect = 0x8024DF20;
|
||||
sam_11_Quizmo_Worker = 0x80251450;
|
||||
sam_11_Quizmo_AnswerResult = 0x80251468;
|
||||
sam_11_Quizmo_StageEffect = 0x80251470;
|
||||
@ -86,26 +74,11 @@ nok_01_Quizmo_AnswerResult = 0x80251C58;
|
||||
nok_01_Quizmo_StageEffect = 0x80251C60;
|
||||
nok_01_Quizmo_AudienceEffect = 0x80251C64;
|
||||
nok_01_Quizmo_VannaTEffect = 0x80251C68;
|
||||
mac_05_Quizmo_Worker = 0x802529D0;
|
||||
mac_05_Quizmo_AnswerResult = 0x802529E8;
|
||||
mac_05_Quizmo_StageEffect = 0x802529F0;
|
||||
mac_05_Quizmo_AudienceEffect = 0x802529F4;
|
||||
mac_05_Quizmo_VannaTEffect = 0x802529F8;
|
||||
nok_02_Quizmo_AnswerResult = 0x802549B8;
|
||||
nok_02_Quizmo_Worker = 0x802549A0;
|
||||
nok_02_Quizmo_StageEffect = 0x802549C0;
|
||||
nok_02_Quizmo_AudienceEffect = 0x802549C4;
|
||||
nok_02_Quizmo_VannaTEffect = 0x802549C8;
|
||||
kmr_02_Quizmo_Worker = 0x80257F2C;
|
||||
kmr_02_Quizmo_AnswerResult = 0x80257F40;
|
||||
kmr_02_Quizmo_StageEffect = 0x80257F48;
|
||||
kmr_02_Quizmo_AudienceEffect = 0x80257F4C;
|
||||
kmr_02_Quizmo_VannaTEffect = 0x80257F50;
|
||||
|
||||
// broken map symbols
|
||||
hos_06_D_80246430 = 0x80246430;
|
||||
jan_03_D_8024FEE0 = 0x8024FEE0;
|
||||
hos_05_D_8024F4C0 = 0x8024F4C0;
|
||||
|
||||
// os stuff
|
||||
osTvType = 0x80000300;
|
||||
|
Loading…
Reference in New Issue
Block a user