mirror of
https://github.com/pmret/papermario.git
synced 2024-11-08 12:02:30 +01:00
Effects & misc (#458)
* fx_6_appendGfx * update_effects * effect_6 done * Update diff.py * update configure for new splat * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "0efa552c5d" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "0efa552c5d" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * nu stuff / undefined_syms org * Actor struct refactor to match AddActorVar (thanks Josh) * various cleanup, matched an obfuscation func * fx_7 work * is_block_on_ground * state_* * create_entity_shadow, update asm macro to fix diff.py * set_standard_shadow_scale * set_npc_shadow_scale and set_peach_shadow_scale * create_shadow_type * revert macro.inc * clear_model_data (thanks Josh) * cleanup * mdl_get_next_texture_address * mdl_set_all_fog_mode * load_model_textures * fx_7_appendGfx (effect_7 done) * fx_8_main * fx_8_render * fx_8_update * func_E0010000 * func_E0010104 * effect_8 done * effect_8 done * warnings * cleanup * try to fix some warnings * warnings + change Bowser Slug behavior
This commit is contained in:
parent
c3bf1ad8fa
commit
59050ec3e9
7
Jenkinsfile
vendored
7
Jenkinsfile
vendored
@ -42,11 +42,10 @@ pipeline {
|
||||
def message = "${us_progress}\n${jp_progress}\n${warnings}"
|
||||
|
||||
if (message != "\n\n") {
|
||||
if (comment_id == -1) {
|
||||
pullRequest.comment(message)
|
||||
} else {
|
||||
pullRequest.editComment(comment_id, message)
|
||||
if (comment_id != -1) {
|
||||
pullRequest.deleteComment(comment_id)
|
||||
}
|
||||
pullRequest.comment(message)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1245,7 +1245,8 @@ typedef struct StaticShadowData {
|
||||
/* 0x04 */ s32 unk_04;
|
||||
/* 0x08 */ StaticAnimatorNode** animModelNode;
|
||||
/* 0x0C */ void (*onCreateCallback)(Shadow* shadow);
|
||||
/* 0x10 */ char unk_10[0x14];
|
||||
/* 0x10 */ char unk_10[0x10];
|
||||
/* 0x20 */ s32 unk_20;
|
||||
} StaticShadowData; // size = 0x24
|
||||
|
||||
typedef struct PushBlockGrid {
|
||||
@ -1330,7 +1331,7 @@ typedef struct ActorPart {
|
||||
/* 0x94 */ u32* idleAnimations;
|
||||
/* 0x98 */ s16 opacity;
|
||||
/* 0x9A */ char unk_9A[2];
|
||||
/* 0x9C */ struct Shadow* shadow;
|
||||
/* 0x9C */ s32 shadowIndex;
|
||||
/* 0xA0 */ f32 shadowScale;
|
||||
/* 0xA4 */ s32 partTypeData[6];
|
||||
/* 0xBC */ s16 actorTypeData2b[2];
|
||||
@ -1567,7 +1568,7 @@ typedef struct ActorMovement {
|
||||
/* 0x4C */ f32 distance;
|
||||
} ActorMovement; // size = 0x50;
|
||||
|
||||
typedef struct ActorMovementWalk {
|
||||
typedef struct ActorState { // TODO: Make the first field of this an ActorMovement
|
||||
/* 0x00 */ Vec3f currentPos;
|
||||
/* 0x0C */ Vec3f goalPos;
|
||||
/* 0x18 */ Vec3f unk_18;
|
||||
@ -1582,19 +1583,19 @@ typedef struct ActorMovementWalk {
|
||||
/* 0x58 */ s32 animJumpRise;
|
||||
/* 0x5C */ s32 animJumpFall;
|
||||
/* 0x60 */ s32 animJumpLand;
|
||||
} ActorMovementWalk; // size = 0x64;
|
||||
/* 0x64 */ s16 moveTime;
|
||||
/* 0x66 */ s16 moveArcAmplitude;
|
||||
/* 0x68 */ char unk_74[3];
|
||||
/* 0x6B */ u8 jumpPartIndex;
|
||||
/* 0x6C */ char unk_78[16];
|
||||
/* 0x7C */ s32 varTable[16];
|
||||
} ActorState; // size = 0xBC;
|
||||
|
||||
typedef struct Actor {
|
||||
/* 0x000 */ s32 flags;
|
||||
/* 0x004 */ char unk_04[4];
|
||||
/* 0x008 */ struct ActorDesc* staticActorData;
|
||||
/* 0x00C */ ActorMovementWalk walk;
|
||||
/* 0x070 */ s16 moveTime;
|
||||
/* 0x072 */ s16 moveArcAmplitude;
|
||||
/* 0x074 */ char unk_74[3];
|
||||
/* 0x077 */ u8 jumpPartIndex;
|
||||
/* 0x078 */ char unk_78[16];
|
||||
/* 0x088 */ s32 varTable[16];
|
||||
/* 0x00C */ ActorState state;
|
||||
/* 0x0C8 */ ActorMovement fly;
|
||||
/* 0x118 */ f32 flyElapsed;
|
||||
/* 0x11C */ char unk_11C[4];
|
||||
@ -1771,7 +1772,7 @@ typedef struct PlayerStatus {
|
||||
/* 0x0B5 */ s8 prevActionState;
|
||||
/* 0x0B6 */ s8 fallState; ///< Also used as sleep state in Peach idle action
|
||||
/* 0x0B7 */ char unk_B7;
|
||||
/* 0x0B8 */ s32 anim;
|
||||
/* 0x0B8 */ u32 anim;
|
||||
/* 0x0BC */ u16 unk_BC;
|
||||
/* 0x0BE */ s8 renderMode;
|
||||
/* 0x0BF */ s8 unk_BF;
|
||||
@ -2065,7 +2066,7 @@ typedef struct {
|
||||
/* 0x00030 */ Matrix4s camPerspMatrix[8]; // could only be length 4, unsure
|
||||
/* 0x00230 */ Gfx mainGfx[0x2080];
|
||||
/* 0x10630 */ Gfx backgroundGfx[0x200]; // used by gfx_task_background
|
||||
/* 0x11630 */ Matrix4s matrixStack[0x200];
|
||||
/* 0x11630 */ Mtx matrixStack[0x200];
|
||||
} DisplayContext; // size = 0x19630
|
||||
|
||||
typedef struct Temp8010F250 {
|
||||
|
@ -54,7 +54,7 @@ typedef struct StarSpiritEffect {
|
||||
/* 0x34 */ f32 unk_34;
|
||||
/* 0x38 */ s32 unk_38;
|
||||
/* 0x3C */ s32 unk_3C;
|
||||
/* 0x40 */ Shadow* unk_40;
|
||||
/* 0x40 */ s32 unk_40; // an shadowID
|
||||
/* 0x44 */ s16 unk_44;
|
||||
/* 0x46 */ s16 unk_46;
|
||||
/* 0x48 */ s16 unk_48;
|
||||
|
@ -14,6 +14,7 @@ f32 shim_cos_deg(f32 x);
|
||||
f32 shim_clamp_angle(f32 theta);
|
||||
void shim_guMtxF2L(float mf[4][4], Mtx *m);
|
||||
void shim_guMtxCatF(float m[4][4], float n[4][4], float r[4][4]);
|
||||
void shim_guScaleF(float mf[4][4], float x, float y, float z);
|
||||
void shim_guRotateF(float mf[4][4], float a, float x, float y, float z);
|
||||
void shim_guTranslateF(float mf[4][4], float x, float y, float z);
|
||||
void shim_guPositionF(float mf[4][4], float r, float p, float h, float s, float x, float y, float z);
|
||||
|
@ -240,7 +240,7 @@ void resume_group_others(Evt* script, s32 groupFlags);
|
||||
s32 suspend_all_script(s32 id);
|
||||
s32 resume_all_script(s32 id);
|
||||
|
||||
Shadow* create_shadow_type(s32 type, f32 x, f32 y, f32 z);
|
||||
s32 create_shadow_type(s32 type, f32 x, f32 y, f32 z);
|
||||
s32 is_point_within_region(s32 shape, f32 pointX, f32 pointY, f32 centerX, f32 centerY, f32 sizeX, f32 sizeZ);
|
||||
PlayerData* get_player_data(void);
|
||||
|
||||
@ -493,7 +493,7 @@ void* load_asset_by_name(const char* assetName, u32* decompressedSize);
|
||||
void mdl_draw_hidden_panel_surface(Gfx** arg0, u16 treeIndex);
|
||||
s32 func_8011CFBC(void);
|
||||
s32 set_screen_overlay_center_worldpos(void);
|
||||
s32 mdl_get_next_texture_address(void);
|
||||
s32 mdl_get_next_texture_address(s32);
|
||||
void draw_msg(s32 msgID, s32 posX, s32 posY, s32 opacity, s32 palette, s32 style);
|
||||
void get_background_color_blend(u8* r, u8* g, u8* b, u8* a);
|
||||
|
||||
|
@ -85,18 +85,6 @@ typedef struct TextureHandle {
|
||||
/* 0x40 */ s32* auxPalette;
|
||||
} TextureHandle; // size = 0x44
|
||||
|
||||
typedef void(*ModelCustomGfxBuilderFunc)(s32 index);
|
||||
|
||||
typedef struct ModelCustomGfxBuilder {
|
||||
/* 0x00 */ ModelCustomGfxBuilderFunc pre;
|
||||
/* 0x00 */ ModelCustomGfxBuilderFunc post;
|
||||
} ModelCustomGfxBuilder; // size = 0x8
|
||||
|
||||
typedef struct ModelCustomGfx {
|
||||
/* 0x00 */ Gfx* pre;
|
||||
/* 0x00 */ Gfx* post;
|
||||
} ModelCustomGfx; // size = 0x8
|
||||
|
||||
typedef struct ModelBlueprint {
|
||||
/* 0x0 */ s16 flags;
|
||||
/* 0x2 */ char unk_02[0x2];
|
||||
@ -105,8 +93,10 @@ typedef struct ModelBlueprint {
|
||||
/* 0xC */ Matrix4s* mtx;
|
||||
} ModelBlueprint; // size = 0x10
|
||||
|
||||
typedef ModelCustomGfx ModelCustomGfxList[32];
|
||||
typedef ModelCustomGfxBuilder ModelCustomGfxBuilderList[32];
|
||||
typedef void(*ModelCustomGfxBuilderFunc)(s32 index);
|
||||
|
||||
typedef Gfx* ModelCustomGfxList[32];
|
||||
typedef ModelCustomGfxBuilderFunc ModelCustomGfxBuilderList[32];
|
||||
|
||||
// In memory this is a list of ModelNodeProperty, but due to the way it uses
|
||||
// the fields (storing into the "type" field) we decided to make a struct for this
|
||||
|
@ -96,6 +96,9 @@ extern MessagePrintState* gCurrentPrintContext;
|
||||
extern s32 D_802DB264;
|
||||
extern MessagePrintState* D_802DB268;
|
||||
|
||||
extern StaticShadowData D_802E98BC;
|
||||
extern StaticShadowData D_802E98E0;
|
||||
extern StaticShadowData D_802E9904;
|
||||
extern s32 D_802EB390;
|
||||
extern s32 D_802EB394;
|
||||
extern MessagePrintState* D_802EB398;
|
||||
|
33
src/104730.c
33
src/104730.c
@ -102,25 +102,32 @@ s32 D_802E9898[9] = {
|
||||
0x00000000,
|
||||
};
|
||||
|
||||
s32 D_802E98BC[8] = {
|
||||
0x00200000, (s32) &D_802E9850, 0x00000000, (s32)entity_Shadow_init,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
StaticShadowData D_802E98BC = {
|
||||
.flags = 0x20,
|
||||
.unk_04 = &D_802E9850,
|
||||
.animModelNode = NULL,
|
||||
.onCreateCallback = entity_Shadow_init,
|
||||
.unk_20 = 0x01190A19,
|
||||
};
|
||||
|
||||
s32 D_802E98DC[9] = {
|
||||
0x01190A19, 0x00200000, (s32) &D_802E9874, 0x00000000,
|
||||
(s32)entity_Shadow_init, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000
|
||||
StaticShadowData D_802E98E0 = {
|
||||
.flags = 0x20,
|
||||
.unk_04 = &D_802E9874,
|
||||
.animModelNode = NULL,
|
||||
.onCreateCallback = entity_Shadow_init,
|
||||
.unk_20 = 0x01190A19,
|
||||
};
|
||||
|
||||
s32 D_802E9900[9] = {
|
||||
0x01190A19, 0x00200000, (s32) &D_802E9898, 0x00000000,
|
||||
(s32)entity_Shadow_init, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000,
|
||||
StaticShadowData D_802E9904 = {
|
||||
.flags = 0x20,
|
||||
.unk_04 = &D_802E9898,
|
||||
.animModelNode = NULL,
|
||||
.onCreateCallback = entity_Shadow_init,
|
||||
.unk_20 = 0x01190A19,
|
||||
};
|
||||
|
||||
s32 D_802E9924[3] = {
|
||||
0x01190A19, 0x00000000, 0x00000000
|
||||
s32 D_802E9928[2] = {
|
||||
0x00000000, 0x00000000
|
||||
};
|
||||
|
||||
s32 D_802E9930[51] = {
|
||||
|
@ -610,7 +610,7 @@ void btl_delete_actor(Actor* actor) {
|
||||
|
||||
while (partsTable != NULL) {
|
||||
if (!(partsTable->flags & 0x4)) {
|
||||
delete_shadow(partsTable->shadow);
|
||||
delete_shadow(partsTable->shadowIndex);
|
||||
}
|
||||
|
||||
if (partsTable->idleAnimations != NULL) {
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
HitResult calc_item_check_hit(void) {
|
||||
BattleStatus* battleStatus = &gBattleStatus;
|
||||
ActorMovement* walk = &battleStatus->playerActor->walk;
|
||||
ActorMovement* walk = &battleStatus->playerActor->state;
|
||||
ActorID actorID = battleStatus->currentTargetID;
|
||||
s8 currentTargetPartS8;
|
||||
u32 currentTargetPart;
|
||||
|
35
src/181810.c
35
src/181810.c
@ -18,7 +18,6 @@ ApiStatus ActorSpeak(Evt* script, s32 isInitialCall) {
|
||||
s32 msgID;
|
||||
ActorID actorID;
|
||||
s32 partIndex;
|
||||
MessagePrintState** printContext;
|
||||
s32 anim;
|
||||
|
||||
f32 headX, headY, headZ;
|
||||
@ -43,20 +42,17 @@ ApiStatus ActorSpeak(Evt* script, s32 isInitialCall) {
|
||||
gSpeakingActorPart = part;
|
||||
|
||||
headX = actor->currentPos.x + actor->headOffset.x;
|
||||
if ((actor->flags & 0x8000) == 0) {
|
||||
if (!(actor->flags & 0x8000)) {
|
||||
headY = actor->size.y + (actor->currentPos.y + actor->headOffset.y);
|
||||
} else {
|
||||
f32 tmp = actor->headOffset.y;
|
||||
headY = actor->currentPos.y + tmp + (actor->size.y / 2);
|
||||
headY = actor->currentPos.y + actor->headOffset.y + (actor->size.y / 2);
|
||||
}
|
||||
|
||||
headZ = actor->currentPos.z + actor->headOffset.z;
|
||||
get_screen_coords(CAM_BATTLE, headX, headY, headZ, &screenX, &screenY, &screenZ);
|
||||
|
||||
{
|
||||
s32* isPrintDone = &gSpeakingActorPrintIsDone;
|
||||
*isPrintDone = FALSE;
|
||||
gSpeakingActorPrintCtx = msg_get_printer_for_msg(msgID2, isPrintDone);
|
||||
}
|
||||
gSpeakingActorPrintIsDone = FALSE;
|
||||
gSpeakingActorPrintCtx = msg_get_printer_for_msg(msgID2, &gSpeakingActorPrintIsDone);
|
||||
msg_printer_set_origin_pos(gSpeakingActorPrintCtx, screenX, screenY);
|
||||
|
||||
script->functionTemp[0] = 0;
|
||||
@ -72,24 +68,24 @@ ApiStatus ActorSpeak(Evt* script, s32 isInitialCall) {
|
||||
part = gSpeakingActorPart;
|
||||
|
||||
headX = actor->currentPos.x + actor->headOffset.x;
|
||||
if ((actor->flags & 0x8000) == 0) {
|
||||
if (!(actor->flags & 0x8000)) {
|
||||
headY = actor->size.y + (actor->currentPos.y + actor->headOffset.y);
|
||||
} else {
|
||||
headY = actor->headOffset.y;
|
||||
headY = actor->currentPos.y + actor->headOffset.y + (actor->size.y / 2);
|
||||
}
|
||||
|
||||
headZ = actor->currentPos.z + actor->headOffset.z;
|
||||
get_screen_coords(CAM_BATTLE, headX, headY, headZ, &screenX, &screenY, &screenZ);
|
||||
|
||||
printContext = &gSpeakingActorPrintCtx;
|
||||
msg_printer_set_origin_pos(*printContext, screenX, screenY);
|
||||
msg_printer_set_origin_pos(gSpeakingActorPrintCtx, screenX, screenY);
|
||||
|
||||
if ((*printContext)->stateFlags & 0x40) {
|
||||
if (gSpeakingActorPrintCtx->stateFlags & 0x40) {
|
||||
decrement_status_menu_disabled();
|
||||
return ApiStatus_DONE1;
|
||||
}
|
||||
|
||||
if ((*printContext)->stateFlags & 0x80) { // "is talking" flag
|
||||
if (gSpeakingActorPrintCtx->stateFlags & 0x80) { // "is talking" flag
|
||||
anim = gSpeakingActorTalkAnim;
|
||||
} else {
|
||||
anim = gSpeakingActorIdleAnim;
|
||||
@ -99,13 +95,12 @@ ApiStatus ActorSpeak(Evt* script, s32 isInitialCall) {
|
||||
func_80263E08(actor, part, anim);
|
||||
}
|
||||
|
||||
if (gSpeakingActorPrintIsDone == 1) {
|
||||
if (gSpeakingActorPrintIsDone == TRUE) {
|
||||
decrement_status_menu_disabled();
|
||||
gOverrideFlags &= ~0x10;
|
||||
return ApiStatus_DONE1;
|
||||
}
|
||||
}
|
||||
|
||||
return ApiStatus_BLOCK;
|
||||
}
|
||||
|
||||
@ -125,7 +120,7 @@ ApiStatus EndActorSpeech(Evt* script, s32 isInitialCall) {
|
||||
gSpeakingActorIdleAnim = evt_get_variable(script, *args++);
|
||||
|
||||
if (actor == ACTOR_SELF) {
|
||||
actor = script->owner1.enemyID;
|
||||
actor = script->owner1.actorID;
|
||||
}
|
||||
actor = (s32) get_actor(actor);
|
||||
actorPart = get_actor_part((Actor*)actor, partIndex);
|
||||
@ -213,16 +208,16 @@ ApiStatus OverrideBattleDmaDest(Evt* script, s32 isInitialCall) {
|
||||
}
|
||||
|
||||
ApiStatus LoadBattleDmaData(Evt* script, s32 isInitialCall) {
|
||||
s32* moveScript = &gBattleAreas[gCurrentBattleSection].dmaTable[evt_get_variable(script, *script->ptrReadPos)];
|
||||
DmaTable* moveScript = &gBattleAreas[gCurrentBattleSection].dmaTable[evt_get_variable(script, *script->ptrReadPos)];
|
||||
|
||||
if (moveScript == NULL) {
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
|
||||
if (gBattleDmaDest == 0) {
|
||||
dma_copy(moveScript[0], moveScript[1], moveScript[2]);
|
||||
dma_copy(moveScript->dmaStart, moveScript->dmaEnd, moveScript->dmaDest);
|
||||
} else {
|
||||
dma_copy(moveScript[0], moveScript[1], gBattleDmaDest);
|
||||
dma_copy(moveScript->dmaStart, moveScript->dmaEnd, gBattleDmaDest);
|
||||
}
|
||||
|
||||
return ApiStatus_DONE2;
|
||||
|
@ -83,7 +83,7 @@ ApiStatus func_80260DD8(Evt* script, s32 isInitialCall) {
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
|
||||
var = player->varTable[0];
|
||||
var = player->state.varTable[0];
|
||||
if (var >= rand_int(100)) {
|
||||
script->varTable[0] = TRUE;
|
||||
} else {
|
||||
|
@ -1626,7 +1626,7 @@ void create_part_shadow(ActorID actorID, s32 partIndex) {
|
||||
ActorPart* part = get_actor_part(get_actor(actorID), partIndex);
|
||||
|
||||
part->flags &= ~4;
|
||||
part->shadow = create_shadow_type(0, part->currentPos.x, part->currentPos.y, part->currentPos.z);
|
||||
part->shadowIndex = create_shadow_type(0, part->currentPos.x, part->currentPos.y, part->currentPos.z);
|
||||
part->shadowScale = part->size.x / 24.0;
|
||||
}
|
||||
|
||||
@ -1634,12 +1634,12 @@ void remove_part_shadow(ActorID actorID, s32 partIndex) {
|
||||
ActorPart* part = get_actor_part(get_actor(actorID), partIndex);
|
||||
|
||||
part->flags |= 4;
|
||||
delete_shadow(part->shadow);
|
||||
delete_shadow(part->shadowIndex);
|
||||
}
|
||||
|
||||
void create_part_shadow_by_ref(UNK_TYPE arg0, ActorPart* part) {
|
||||
part->flags &= ~4;
|
||||
part->shadow = create_shadow_type(0, part->currentPos.x, part->currentPos.y, part->currentPos.z);
|
||||
part->shadowIndex = create_shadow_type(0, part->currentPos.x, part->currentPos.y, part->currentPos.z);
|
||||
part->shadowScale = part->size.x / 24.0;
|
||||
}
|
||||
|
||||
|
50
src/197F40.c
50
src/197F40.c
@ -138,9 +138,9 @@ ApiStatus SetGoalToHome(Evt* script, s32 isInitialCall) {
|
||||
}
|
||||
|
||||
actor = get_actor(actorID);
|
||||
actor->walk.goalPos.x = actor->homePos.x;
|
||||
actor->walk.goalPos.y = actor->homePos.y;
|
||||
actor->walk.goalPos.z = actor->homePos.z;
|
||||
actor->state.goalPos.x = actor->homePos.x;
|
||||
actor->state.goalPos.y = actor->homePos.y;
|
||||
actor->state.goalPos.z = actor->homePos.z;
|
||||
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
@ -270,7 +270,7 @@ ApiStatus SetGoalToTarget(Evt* script, s32 isInitialCall) {
|
||||
}
|
||||
actor = get_actor(actorID);
|
||||
|
||||
set_goal_pos_to_part(&actor->walk, actor->targetActorID, actor->targetPartIndex);
|
||||
set_goal_pos_to_part(&actor->state, actor->targetActorID, actor->targetPartIndex);
|
||||
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
@ -303,7 +303,7 @@ ApiStatus SetGoalToFirstTarget(Evt* script, s32 isInitialCall) {
|
||||
actor = get_actor(actorID);
|
||||
|
||||
target = &actor->targetData[actor->targetIndexList[0]];
|
||||
set_goal_pos_to_part(&actor->walk, target->actorID, target->partID);
|
||||
set_goal_pos_to_part(&actor->state, target->actorID, target->partID);
|
||||
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
@ -319,10 +319,10 @@ ApiStatus SetGoalPos(Evt* script, s32 isInitialCall) {
|
||||
actorID = script->owner1.actorID;
|
||||
}
|
||||
actor = get_actor(actorID);
|
||||
walk = &actor->walk;
|
||||
walk = &actor->state;
|
||||
|
||||
if (*args == -12345678) {
|
||||
x = actor->walk.goalPos.x;
|
||||
x = actor->state.goalPos.x;
|
||||
} else {
|
||||
x = evt_get_variable(script, *args);
|
||||
}
|
||||
@ -402,9 +402,9 @@ ApiStatus AddGoalPos(Evt* script, s32 isInitialCall) {
|
||||
z = evt_get_float_variable(script, *args++);
|
||||
|
||||
actor = get_actor(actorID);
|
||||
actor->walk.goalPos.x += x;
|
||||
actor->walk.goalPos.y += y;
|
||||
actor->walk.goalPos.z += z;
|
||||
actor->state.goalPos.x += x;
|
||||
actor->state.goalPos.y += y;
|
||||
actor->state.goalPos.z += z;
|
||||
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
@ -426,9 +426,9 @@ ApiStatus GetGoalPos(Evt* script, s32 isInitialCall) {
|
||||
outY = *args++;
|
||||
outZ = *args++;
|
||||
|
||||
x = actor->walk.goalPos.x;
|
||||
y = actor->walk.goalPos.y;
|
||||
z = actor->walk.goalPos.z;
|
||||
x = actor->state.goalPos.x;
|
||||
y = actor->state.goalPos.y;
|
||||
z = actor->state.goalPos.z;
|
||||
|
||||
evt_set_variable(script, outX, x);
|
||||
evt_set_variable(script, outY, y);
|
||||
@ -832,7 +832,7 @@ ApiStatus SetActorJumpGravity(Evt* script, s32 isInitialCall) {
|
||||
}
|
||||
|
||||
jumpAccel = evt_get_float_variable(script, *args++);
|
||||
get_actor(actorID)->walk.acceleration = jumpAccel;
|
||||
get_actor(actorID)->state.acceleration = jumpAccel;
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
|
||||
@ -860,7 +860,7 @@ ApiStatus SetActorSpeed(Evt* script, s32 isInitialCall) {
|
||||
}
|
||||
|
||||
moveSpeed = evt_get_float_variable(script, *args++);
|
||||
get_actor(actorID)->walk.speed = moveSpeed;
|
||||
get_actor(actorID)->state.speed = moveSpeed;
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
|
||||
@ -932,10 +932,10 @@ ApiStatus SetJumpAnimations(Evt* script, s32 isInitialCall) {
|
||||
animJumpLand = *args++;
|
||||
|
||||
actor = get_actor(actorID);
|
||||
actor->jumpPartIndex = jumpPartIndex;
|
||||
actor->walk.animJumpRise = animJumpRise;
|
||||
actor->walk.animJumpFall = animJumpFall;
|
||||
actor->walk.animJumpLand = animJumpLand;
|
||||
actor->state.jumpPartIndex = jumpPartIndex;
|
||||
actor->state.animJumpRise = animJumpRise;
|
||||
actor->state.animJumpFall = animJumpFall;
|
||||
actor->state.animJumpLand = animJumpLand;
|
||||
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
@ -1109,7 +1109,7 @@ ApiStatus GetActorVar(Evt* script, s32 isInitialCall) {
|
||||
var1 = evt_get_variable(script, *args++);
|
||||
a2 = *args++;
|
||||
|
||||
evt_set_variable(script, a2, get_actor(actorID)->varTable[var1]);
|
||||
evt_set_variable(script, a2, get_actor(actorID)->state.varTable[var1]);
|
||||
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
@ -1127,17 +1127,17 @@ ApiStatus SetActorVar(Evt* script, s32 isInitialCall) {
|
||||
index = evt_get_variable(script, *args++);
|
||||
val = evt_get_variable(script, *args++);
|
||||
|
||||
get_actor(actorID)->varTable[index] = val;
|
||||
get_actor(actorID)->state.varTable[index] = val;
|
||||
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
ApiStatus AddActorVar(Evt* script, s32 isInitialCall) {
|
||||
Bytecode* args = script->ptrReadPos;
|
||||
ActorID actorID = evt_get_variable(script, *args++);
|
||||
s32 index;
|
||||
s32 val;
|
||||
ActorState* state;
|
||||
|
||||
if (actorID == ACTOR_SELF) {
|
||||
actorID = script->owner1.actorID;
|
||||
@ -1146,13 +1146,11 @@ ApiStatus AddActorVar(Evt* script, s32 isInitialCall) {
|
||||
index = evt_get_variable(script, *args++);
|
||||
val = evt_get_variable(script, *args++);
|
||||
|
||||
get_actor(actorID)->varTable[index] += val;
|
||||
state = &get_actor(actorID)->state;
|
||||
state->varTable[index] += val;
|
||||
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
#else
|
||||
INCLUDE_ASM(s32, "197F40", AddActorVar);
|
||||
#endif
|
||||
|
||||
ApiStatus GetPartMovementVar(Evt* script, s32 isInitialCall) {
|
||||
Bytecode* args = script->ptrReadPos;
|
||||
|
@ -118,7 +118,7 @@ INCLUDE_ASM(s32, "19FAF0", PlayerFallToGoal, Evt* script, s32 isInitialCall);
|
||||
|
||||
ApiStatus PlayerLandJump(Evt *script, s32 isInitialCall) {
|
||||
Actor* player = gBattleStatus.playerActor;
|
||||
ActorMovementWalk* walkMovement = &player->walk;
|
||||
ActorState* walkMovement = &player->state;
|
||||
|
||||
if (isInitialCall) {
|
||||
script->functionTemp[0] = 0;
|
||||
|
18
src/1A5830.c
18
src/1A5830.c
@ -946,20 +946,20 @@ ApiStatus LandJump(Evt* script, s32 isInitialCall) {
|
||||
|
||||
actor = get_actor(actorID);
|
||||
script->functionTemp[1] = (s32)actor;
|
||||
actor->walk.currentPos.x = actor->currentPos.x;
|
||||
actor->walk.currentPos.y = actor->currentPos.y;
|
||||
actor->walk.currentPos.z = actor->currentPos.z;
|
||||
actor->state.currentPos.x = actor->currentPos.x;
|
||||
actor->state.currentPos.y = actor->currentPos.y;
|
||||
actor->state.currentPos.z = actor->currentPos.z;
|
||||
script->functionTemp[0] = 1;
|
||||
}
|
||||
|
||||
actor = (Actor*)script->functionTemp[1];
|
||||
actor->walk.currentPos.y += actor->walk.velocity;
|
||||
actor->walk.velocity -= actor->walk.acceleration;
|
||||
actor->state.currentPos.y += actor->state.velocity;
|
||||
actor->state.velocity -= actor->state.acceleration;
|
||||
|
||||
add_xz_vec3f(&actor->walk.currentPos, actor->walk.speed, actor->walk.angle);
|
||||
actor->currentPos.x = actor->walk.currentPos.x;
|
||||
actor->currentPos.y = actor->walk.currentPos.y;
|
||||
actor->currentPos.z = actor->walk.currentPos.z;
|
||||
add_xz_vec3f(&actor->state.currentPos, actor->state.speed, actor->state.angle);
|
||||
actor->currentPos.x = actor->state.currentPos.x;
|
||||
actor->currentPos.y = actor->state.currentPos.y;
|
||||
actor->currentPos.z = actor->state.currentPos.z;
|
||||
|
||||
if (actor->currentPos.y < 0.0f) {
|
||||
actor->currentPos.y = 0.0f;
|
||||
|
@ -171,7 +171,7 @@ ApiStatus func_8027FC90(Evt* script, s32 isInitialCall) {
|
||||
battleStatus->flags1 |= 0x20;
|
||||
|
||||
hitResult = calc_partner_damage_enemy();
|
||||
show_damage_popup(actor->walk.goalPos.x, actor->walk.goalPos.y, actor->walk.goalPos.z, battleStatus->lastAttackDamage,
|
||||
show_damage_popup(actor->state.goalPos.x, actor->state.goalPos.y, actor->state.goalPos.z, battleStatus->lastAttackDamage,
|
||||
0);
|
||||
evt_set_variable(script, outVar, hitResult);
|
||||
|
||||
|
14
src/3169f0.c
14
src/3169f0.c
@ -1,3 +1,15 @@
|
||||
#include "common.h"
|
||||
|
||||
INCLUDE_ASM(s32, "3169f0", func_80200000);
|
||||
extern void(*D_8004AA85)(void);
|
||||
|
||||
void func_80200000(void) {
|
||||
u32 t0 = 0xAC29007B;
|
||||
u32 t1 = 0xB00006A8;
|
||||
void(*create_audio_subsystem)(void) = &D_8004AA85;
|
||||
|
||||
while (IO_READ(PI_STATUS_REG) & 3);
|
||||
|
||||
t0 -= IO_READ(t1 - 0x1C8);
|
||||
create_audio_subsystem += t0;
|
||||
create_audio_subsystem();
|
||||
}
|
||||
|
20
src/316d90.c
20
src/316d90.c
@ -6,19 +6,13 @@
|
||||
extern s32 D_7012ACA1[];
|
||||
|
||||
void func_802AE000(void) {
|
||||
s32(*readFunc)(OSPiHandle*, u32, u32*);
|
||||
UNK_FUN_PTR(aFunction);
|
||||
s32(*readFunc)(OSPiHandle*, u32, u32*) = osEPiReadIo;
|
||||
s32 seed = 0x33F50000;
|
||||
UNK_FUN_PTR(battle_heap_create) = D_7012ACA1;
|
||||
u32 hash = 0;
|
||||
u32 thisInsn;
|
||||
u32* it;
|
||||
u32 prevInsn;
|
||||
s32 seed;
|
||||
u32 blah;
|
||||
u32 hash;
|
||||
|
||||
readFunc = osEPiReadIo;
|
||||
seed = 0x33F50000;
|
||||
aFunction = D_7012ACA1;
|
||||
hash = 0;
|
||||
|
||||
readFunc(nuPiCartHandle, 0xB0000800, &thisInsn);
|
||||
seed -= thisInsn;
|
||||
@ -43,11 +37,11 @@ void func_802AE000(void) {
|
||||
prevInsn = thisInsn;
|
||||
}
|
||||
|
||||
aFunction += seed + 0x291993 - hash;
|
||||
battle_heap_create += seed + 0x291993 - hash;
|
||||
|
||||
// If the function's address is 0x8XXXXXXX
|
||||
if (((u32)aFunction >> 0x1C) == 8) {
|
||||
(aFunction)();
|
||||
if (((u32)battle_heap_create >> 0x1C) == 8) {
|
||||
(battle_heap_create)();
|
||||
} else {
|
||||
_heap_create(&D_803DA800, 0x10000);
|
||||
}
|
||||
|
@ -3,6 +3,7 @@
|
||||
|
||||
void func_80200000(void);
|
||||
void func_80200080(void);
|
||||
void func_802AE000_316C00(void);
|
||||
void func_802AE000(void);
|
||||
|
||||
void func_802B2000(void) {
|
||||
|
@ -100,7 +100,7 @@ s32 D_8014B400 = 0xFCFFFFFF;
|
||||
|
||||
s32 D_8014B404[] = { 0xFFFE793C, 0xFCFFFFFF, 0xFFFE7838, 0xFCFFFFFF, 0xFFFE7838, 0xFC457FFF, 0xFFFDF838, 0xFC41FFFF, 0xFFFEF838, 0xFC127E24, 0xFFFFF3F9, 0xFC127FFF, 0xFFFFF238, 0xFC127FFF, 0xFFFFF238, 0xFC127E0A, 0xF3FFF238, 0xFC127E03, 0xFFFFF378, 0xFC147E28, 0x44FE793C, 0xFC147FFF, 0x4FFE7838, 0xFC147FFF, 0x4FFE7838, 0xFC147E0A, 0x4FFE72F8, 0xFC147E03, 0x4FFE7978, 0xFCFFFFFF, 0xFFFCF279, 0xFCFFFFFF, 0xFFFCF238, 0xFCFFFFFF, 0xFFFCF238, 0xFC157FFF, 0xFFFDF238, 0xFCFFFE03, 0xFFFCF378, 0xFC26A004, 0x1FFC93FC, 0xFC26A004, 0x1FFC93F8, 0xFC26A004, 0x1FFC93FC, 0xFC26A004, 0x1FFC92F8, 0xFC26A003, 0x1FFC9378, 0xFC26A004, 0x1F1093FF, 0xFC26A004, 0x1FFC93F8, 0xFC26A004, 0x1F1093FF, 0xFC26A004, 0x1FFC92F8, 0xFC26A003, 0x1FFC9378, 0xFC26A004, 0x1F1093FF, 0xFC26A004, 0x1FFC93F8, 0xFC26A004, 0x1F1093FF, 0xFC26A004, 0x1FFC92F8, 0xFC26A003, 0x1FFC9378, 0xFC20A204, 0xFFFFFFF8, 0xFC111404, 0xFFFFFFF8, 0xFC20A204, 0xFFFFFFF8, 0xFC20A204, 0xFFFFFFF8, 0xFC20A203, 0xFF13FF7F, 0xFC20A204, 0xFFFFFFF8, 0xFC111404, 0xFFFFFFF8, 0xFC20A204, 0xFFFFFFF8, 0xFC20A204, 0xFFFFFFF8, 0xFC20A203, 0xFFFFFF78, 0xFC20A204, 0xFFFFFFF8, 0xFC111404, 0xFFFFFFF8, 0xFC20A204, 0xFFFFFFF8, 0xFC20A204, 0xFFFFFFF8, 0xFC20A203, 0xFFFFFF78, 0xFC20A204, 0xFFFFFFF8, 0xFC111404, 0xFFFFFFF8, 0xFC20A204, 0xFFFFFFF8, 0xFC20A204, 0xFFFFFFF8, 0xFC20A203, 0xFFFFFF78, 0xFC20A204, 0xFFFFFFF8, 0xFC111404, 0xFFFFFFF8, 0xFC20A204, 0xFFFFFFF8, 0xFC20A204, 0xFFFFFFF8, 0xFC20A203, 0xFFFFFF78, 0xFC20A204, 0xFFFFFFF8, 0xFC111404, 0xFFFFFFF8, 0xFC20A204, 0xFFFFFFF8, 0xFC20A204, 0xFFFFFFF8, 0xFC20A203, 0xFFFFFF78, 0xFCFF99FF, 0xFFFFAF38, 0xFCFF99FF, 0xFFFFAF38, 0xFCFF99FF, 0xFFFFAF38, 0xFCFF99FF, 0xFFFFAF38, 0xFCFF9883, 0xFFFFAF78, 0xFC15FFFF, 0x2FFD7238, 0xFC15FFFF, 0x2FFD7238, 0xFC15FFFF, 0x2FFD7238, 0xFC15FFFF, 0x2FFD7238, 0xFC15FE03, 0x2FFD7378, 0xFC61E4C1, 0x12FC9238, 0xFC61E4C1, 0x12FC9238, 0xFC61E4C1, 0x12FC9238, 0xFC61E4C1, 0x12FC9238, 0xFC61E4C1, 0x12FC9238, 0xFC61FEC3, 0x11FCF279, 0xFC61FFFF, 0x1FFCF238, 0xFC61FFFF, 0x1FFCF238, 0xFC61FFFF, 0x1FFCF238, 0xFC61FE03, 0x1FFCF378, 0xFC10E228, 0x40C8A449, 0xFC10E228, 0x40C8A449, 0xFC10E228, 0x40C8A449, 0xFC10E228, 0x40C8A449, 0xFC10E228, 0x40C8A449, 0xFC75FEEB, 0xFFFFFDFE, 0xFC75FEEB, 0xFFFFFDFE, 0xFC75FEEB, 0xFFFFFDFE, 0xFC75FEEB, 0xFFFFFDFE, 0xFC75FEEB, 0xFFFFFDFE, 0xFC75FEEB, 0xFFFFFDFE, 0xFC75FEEB, 0xFFFFFDFE, 0xFC75FEEB, 0xFFFFFDFE, 0xFC75FEEB, 0xFFFFFDFE, 0xFC75FEEB, 0xFFFFFDFE, 0xFC75FEEB, 0xFFFFFDFE, 0xFC75FEEB, 0xFFFFFDFE, 0xFC75FEEB, 0xFFFFFDFE, 0xFC75FEEB, 0xFFFFFDFE, 0xFC75FEEB, 0xFFFFFDFE, };
|
||||
|
||||
s32 mdl_textureBaseAddress = 0x8028E000;
|
||||
u32 mdl_textureBaseAddress = 0x8028E000;
|
||||
|
||||
s8 mdl_bgMultiplyColorA = 0;
|
||||
s8 mdl_bgMultiplyColorR = 0;
|
||||
@ -691,13 +691,11 @@ extern TileDescriptor gCurrentTileDescriptor;
|
||||
extern ModelList wModelList;
|
||||
extern ModelList bModelList;
|
||||
|
||||
// TODO: potentially a display list, figure this out
|
||||
extern u32* wModelSpecialDls[32];
|
||||
extern u32* bModelSpecialDls[32];
|
||||
extern ModelCustomGfxList wModelSpecialDls;
|
||||
extern ModelCustomGfxList bModelSpecialDls;
|
||||
|
||||
|
||||
extern ModelCustomGfxBuilder wCustomModelGfxBuilders;
|
||||
extern ModelCustomGfxBuilder bCustomModelGfxBuilders;
|
||||
extern ModelCustomGfxBuilderList wCustomModelGfxBuilders;
|
||||
extern ModelCustomGfxBuilderList bCustomModelGfxBuilders;
|
||||
extern ModelLocalVertexCopy** D_80152190;
|
||||
extern ModelLocalVertexCopy** D_801521D0;
|
||||
|
||||
@ -717,6 +715,7 @@ extern s32 texPannerMainU[MAX_TEX_PANNERS];
|
||||
extern s32 texPannerMainV[MAX_TEX_PANNERS];
|
||||
extern s32 texPannerAuxU[MAX_TEX_PANNERS];
|
||||
extern s32 texPannerAuxV[MAX_TEX_PANNERS];
|
||||
extern u32 mdl_nextTextureAddress;
|
||||
extern u16 mdl_currentTransformGroupChildIndex;
|
||||
extern ModelNode* D_80153370;
|
||||
extern u16 D_80153374;
|
||||
@ -742,6 +741,7 @@ void _delete_shadow(s32 shadowIndex);
|
||||
s32 entity_get_collision_flags(Entity* entity);
|
||||
void entity_free_static_data(StaticEntityData* data);
|
||||
void update_entity_shadow_position(Entity* entity);
|
||||
s32 entity_raycast_down(f32* x, f32* y, f32* z, f32* hitYaw, f32* hitPitch, f32* hitLength);
|
||||
void load_model_transforms(ModelNode* model, ModelNode* parent, Matrix4f mdlTxMtx, s32 treeDepth);
|
||||
void enable_transform_group(u16 modelID);
|
||||
|
||||
@ -1420,7 +1420,7 @@ s32 create_shadow_from_data(StaticShadowData* data, f32 x, f32 y, f32 z) {
|
||||
}
|
||||
}
|
||||
|
||||
ASSERT(i < 60);
|
||||
ASSERT(i < ARRAY_COUNT(*gCurrentShadowListPtr));
|
||||
|
||||
shadow = heap_malloc(sizeof(*shadow));
|
||||
(*gCurrentShadowListPtr)[i] = shadow;
|
||||
@ -1596,9 +1596,60 @@ ApiStatus AssignCrateFlag(Evt* script, s32 isInitialCall) {
|
||||
return ApiStatus_DONE1;
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "a5dd0_len_114e0", create_entity_shadow);
|
||||
s32 create_entity_shadow(Entity* entity, f32 x, f32 y, f32 z) {
|
||||
u16 staticFlags = entity->staticData->flags;
|
||||
s32 type;
|
||||
s16 shadowIndex;
|
||||
|
||||
INCLUDE_ASM(Shadow*, "a5dd0_len_114e0", create_shadow_type, s32 type, f32 x, f32 y, f32 z);
|
||||
if (staticFlags & 0x200) {
|
||||
if (staticFlags & 0x800) {
|
||||
type = 2;
|
||||
} else {
|
||||
type = 3;
|
||||
}
|
||||
} else {
|
||||
type = ((staticFlags >> 11) ^ 1) & 1;
|
||||
}
|
||||
|
||||
shadowIndex = create_shadow_type(type, x, y, z);
|
||||
entity->shadowIndex = shadowIndex;
|
||||
|
||||
get_shadow_by_index(shadowIndex)->flags |= 0xC00000;
|
||||
|
||||
return entity->shadowIndex;
|
||||
}
|
||||
|
||||
s32 create_shadow_type(s32 type, f32 x, f32 y, f32 z) {
|
||||
s32 setFlag200 = FALSE;
|
||||
StaticShadowData* data = &D_802E98BC;
|
||||
s32 shadowIndex;
|
||||
|
||||
switch (type) {
|
||||
case 2:
|
||||
setFlag200 = TRUE;
|
||||
case 0:
|
||||
data = &D_802E98BC;
|
||||
break;
|
||||
case 3:
|
||||
setFlag200 = TRUE;
|
||||
case 1:
|
||||
data = &D_802E9904;
|
||||
break;
|
||||
case 5:
|
||||
setFlag200 = TRUE;
|
||||
case 4:
|
||||
data = &D_802E98E0;
|
||||
break;
|
||||
}
|
||||
|
||||
shadowIndex = create_shadow_from_data(data, x, y, z);
|
||||
|
||||
if (setFlag200) {
|
||||
get_shadow_by_index(shadowIndex)->flags |= 0x200;
|
||||
}
|
||||
|
||||
return shadowIndex;
|
||||
}
|
||||
|
||||
void delete_shadow(s32 shadowIndex) {
|
||||
_delete_shadow(shadowIndex);
|
||||
@ -1719,13 +1770,86 @@ s32 entity_raycast_down(f32* x, f32* y, f32* z, f32* hitYaw, f32* hitPitch, f32*
|
||||
return ret;
|
||||
}
|
||||
|
||||
INCLUDE_ASM(void, "a5dd0_len_114e0", set_standard_shadow_scale, Shadow* shadow, f32 scale);
|
||||
void set_standard_shadow_scale(Shadow* shadow, f32 height) {
|
||||
if (!gGameStatusPtr->isBattle) {
|
||||
shadow->scale.x = 0.13 - (height / 2600.0f);
|
||||
} else {
|
||||
shadow->scale.x = 0.12 - (height / 3600.0f);
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "a5dd0_len_114e0", set_npc_shadow_scale);
|
||||
if (shadow->scale.x < 0.01) {
|
||||
shadow->scale.x = 0.01f;
|
||||
}
|
||||
shadow->scale.z = shadow->scale.x;
|
||||
}
|
||||
|
||||
INCLUDE_ASM(void, "a5dd0_len_114e0", set_peach_shadow_scale, Shadow* shadow, f32 scale);
|
||||
void set_npc_shadow_scale(Shadow* shadow, f32 height, f32 npcRadius) {
|
||||
if (!gGameStatusPtr->isBattle) {
|
||||
shadow->scale.x = 0.13 - (height / 2600.0f);
|
||||
} else {
|
||||
shadow->scale.x = 0.12 - (height / 3600.0f);
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "a5dd0_len_114e0", is_block_on_ground);
|
||||
if (shadow->scale.x < 0.01) {
|
||||
shadow->scale.x = 0.01f;
|
||||
}
|
||||
|
||||
if (npcRadius > 60.0f) {
|
||||
shadow->scale.z = shadow->scale.x * 2.0f;
|
||||
} else {
|
||||
shadow->scale.z = shadow->scale.x;
|
||||
}
|
||||
}
|
||||
|
||||
void set_peach_shadow_scale(Shadow* shadow, f32 scale) {
|
||||
PlayerStatus* playerStatus = &gPlayerStatus;
|
||||
f32 phi_f2 = 0.12f;
|
||||
|
||||
if (!gGameStatusPtr->isBattle) {
|
||||
switch (playerStatus->anim) {
|
||||
case 0xC0018:
|
||||
case 0xC0019:
|
||||
case 0xC001A:
|
||||
case 0xD0008:
|
||||
shadow->scale.x = 0.26f - (scale / 2600.0f);
|
||||
if (shadow->scale.x < 0.01) {
|
||||
shadow->scale.x = 0.01f;
|
||||
}
|
||||
shadow->scale.z = 0.13f - (scale / 2600.0f);
|
||||
if (shadow->scale.z < 0.01) {
|
||||
shadow->scale.z = 0.01f;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
phi_f2 = 0.16f;
|
||||
}
|
||||
|
||||
shadow->scale.x = phi_f2 - (scale / 3600.0f);
|
||||
if (shadow->scale.x < 0.01) {
|
||||
shadow->scale.x = 0.01f;
|
||||
}
|
||||
shadow->scale.z = shadow->scale.x;
|
||||
}
|
||||
|
||||
s32 is_block_on_ground(Entity* block) {
|
||||
f32 x = block->position.x;
|
||||
f32 y = block->position.y;
|
||||
f32 z = block->position.z;
|
||||
f32 hitYaw;
|
||||
f32 hitPitch;
|
||||
f32 hitLength;
|
||||
s32 ret;
|
||||
|
||||
entity_raycast_down(&x, &y, &z, &hitYaw, &hitPitch, &hitLength);
|
||||
|
||||
ret = hitLength;
|
||||
if (ret == 32767) {
|
||||
ret = 0;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void state_delegate_NOP(void) {
|
||||
}
|
||||
@ -1850,14 +1974,66 @@ void step_current_game_mode(void) {
|
||||
}
|
||||
}
|
||||
|
||||
// similar to step_current_game_mode, but calls unk_0C
|
||||
INCLUDE_ASM(s32, "a5dd0_len_114e0", state_do_unk);
|
||||
void state_do_unk(void) {
|
||||
GameMode* gameMode = gMainGameState;
|
||||
s32 i;
|
||||
|
||||
// similar to step_current_game_mode, but calls render
|
||||
INCLUDE_ASM(s32, "a5dd0_len_114e0", state_render_backUI);
|
||||
for (i = 0; i < ARRAY_COUNT(gMainGameState); i++, gameMode++) {
|
||||
if (gameMode->flags != 0) {
|
||||
if (!(gameMode->flags & 4)) {
|
||||
if (!(gameMode->flags & 0x10)) {
|
||||
gameMode->unk_0C();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// calls renderAux and render
|
||||
INCLUDE_ASM(s32, "a5dd0_len_114e0", state_render_frontUI);
|
||||
void state_render_backUI(void) {
|
||||
GameMode* gameMode = gMainGameState;
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(gMainGameState); i++, gameMode++) {
|
||||
if (gameMode->flags != 0) {
|
||||
if (!(gameMode->flags & 4)) {
|
||||
if (!(gameMode->flags & 0x10)) {
|
||||
gameMode->render();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void state_render_frontUI(void) {
|
||||
GameMode* gameMode = gMainGameState;
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(gMainGameState); i++, gameMode++) {
|
||||
if (gameMode->flags != 0) {
|
||||
if (!(gameMode->flags & 4)) {
|
||||
if (!(gameMode->flags & 2)) {
|
||||
if (gameMode->flags & 0x20) {
|
||||
gameMode->renderAux();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// re-initialization needed - evidence of inlining? or just copy/pasting?
|
||||
gameMode = &gMainGameState;
|
||||
for (i = 0; i < ARRAY_COUNT(gMainGameState); i++, gameMode++) {
|
||||
if (gameMode->flags != 0) {
|
||||
if (!(gameMode->flags & 4)) {
|
||||
if (!(gameMode->flags & 2)) {
|
||||
if (gameMode->flags & 0x10) {
|
||||
gameMode->render();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void appendGfx_model(Model* model);
|
||||
INCLUDE_ASM(void, "a5dd0_len_114e0", appendGfx_model, Model*);
|
||||
@ -1885,7 +2061,24 @@ ModelNodeProperty* get_model_property(ModelNode* node, ModelPropertyKeys key) {
|
||||
|
||||
INCLUDE_ASM(s32, "a5dd0_len_114e0", _load_model_textures);
|
||||
|
||||
INCLUDE_ASM(s32, "a5dd0_len_114e0", load_model_textures);
|
||||
void load_model_textures(ModelNode* model, s32 romOffset, s32 size) {
|
||||
s32 battleOffset = ((gGameStatusPtr->isBattle != 0) << 17);
|
||||
|
||||
mdl_nextTextureAddress = mdl_textureBaseAddress + battleOffset;
|
||||
|
||||
if (model != NULL && romOffset != 0 && size != 0) {
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(mdl_textureHandles); i++) {
|
||||
mdl_textureHandles[i].gfx = NULL;
|
||||
}
|
||||
|
||||
mdl_treeIterPos = 0;
|
||||
if (model != NULL) {
|
||||
_load_model_textures();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
s32 mdl_get_child_count(ModelNode* model) {
|
||||
s32 ret = 0;
|
||||
@ -1905,19 +2098,17 @@ s32 mdl_get_child_count(ModelNode* model) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
// Issue with pointer advancement in the gCurrentCustomModelGfxPtr loop (adding 8 bytes instead of 4)
|
||||
#ifdef NON_MATCHING
|
||||
void clear_model_data(void) {
|
||||
s32 i;
|
||||
|
||||
if (!gGameStatusPtr->isBattle) {
|
||||
gCurrentModels = wModelList;
|
||||
gCurrentTransformGroups = wTransformGroups;
|
||||
gCurrentCustomModelGfxPtr = wModelSpecialDls;
|
||||
gCurrentModels = &wModelList;
|
||||
gCurrentTransformGroups = &wTransformGroups;
|
||||
gCurrentCustomModelGfxPtr = &wModelSpecialDls;
|
||||
gCurrentCustomModelGfxBuildersPtr = &wCustomModelGfxBuilders;
|
||||
gCurrentModelTreeRoot = &D_80152214;
|
||||
gCurrentModelLocalVtxBuffers = &D_80152190;
|
||||
mdl_currentModelTreeNodeInfo = D_80152220;
|
||||
mdl_currentModelTreeNodeInfo = &D_80152220;
|
||||
D_801512F0 = &wBgRenderType;
|
||||
mdl_bgMultiplyColorA = 0;
|
||||
mdl_bgMultiplyColorR = 0;
|
||||
@ -1925,13 +2116,13 @@ void clear_model_data(void) {
|
||||
mdl_bgMultiplyColorB = 0;
|
||||
gCurrentFogSettings = &wFogSettings;
|
||||
} else {
|
||||
gCurrentModels = bModelList;
|
||||
gCurrentTransformGroups = bTransformGroups;
|
||||
gCurrentCustomModelGfxPtr = bModelSpecialDls;
|
||||
gCurrentModels = &bModelList;
|
||||
gCurrentTransformGroups = &bTransformGroups;
|
||||
gCurrentCustomModelGfxPtr = &bModelSpecialDls;
|
||||
gCurrentCustomModelGfxBuildersPtr = &bCustomModelGfxBuilders;
|
||||
gCurrentModelTreeRoot = &D_80152218;
|
||||
gCurrentModelLocalVtxBuffers = &D_801521D0;
|
||||
mdl_currentModelTreeNodeInfo = D_80152A20;
|
||||
mdl_currentModelTreeNodeInfo = &D_80152A20;
|
||||
D_801512F0 = &bBgRenderType;
|
||||
gCurrentFogSettings = &bFogSettings;
|
||||
}
|
||||
@ -1945,8 +2136,8 @@ void clear_model_data(void) {
|
||||
}
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(*gCurrentCustomModelGfxPtr); i++) {
|
||||
(*gCurrentCustomModelGfxPtr)[i].pre = 0;
|
||||
(*gCurrentCustomModelGfxBuildersPtr)[i].pre = 0;
|
||||
(*gCurrentCustomModelGfxPtr)[i] = 0;
|
||||
(*gCurrentCustomModelGfxBuildersPtr)[i] = 0;
|
||||
}
|
||||
|
||||
*gCurrentModelTreeRoot = NULL;
|
||||
@ -1973,15 +2164,12 @@ void clear_model_data(void) {
|
||||
texPannerMainU[i] = 0;
|
||||
}
|
||||
}
|
||||
#else
|
||||
INCLUDE_ASM(s32, "a5dd0_len_114e0", clear_model_data);
|
||||
#endif
|
||||
|
||||
void init_model_data(void) {
|
||||
if (!gGameStatusPtr->isBattle) {
|
||||
gCurrentModels = &wModelList;
|
||||
gCurrentTransformGroups = &wTransformGroups;
|
||||
gCurrentCustomModelGfxPtr = wModelSpecialDls;
|
||||
gCurrentCustomModelGfxPtr = &wModelSpecialDls;
|
||||
gCurrentCustomModelGfxBuildersPtr = &wCustomModelGfxBuilders;
|
||||
gCurrentModelTreeRoot = &D_80152214;
|
||||
gCurrentModelLocalVtxBuffers = &D_80152190;
|
||||
@ -1991,7 +2179,7 @@ void init_model_data(void) {
|
||||
} else {
|
||||
gCurrentModels = &bModelList;
|
||||
gCurrentTransformGroups = &bTransformGroups;
|
||||
gCurrentCustomModelGfxPtr = bModelSpecialDls;
|
||||
gCurrentCustomModelGfxPtr = &bModelSpecialDls;
|
||||
gCurrentCustomModelGfxBuildersPtr = &bCustomModelGfxBuilders;
|
||||
gCurrentModelTreeRoot = &D_80152218;
|
||||
gCurrentModelLocalVtxBuffers = &D_801521D0;
|
||||
@ -2530,13 +2718,13 @@ void set_mdl_custom_gfx_set(Model* model, s32 customGfxIndex, u32 fogType) {
|
||||
}
|
||||
|
||||
void set_custom_gfx(s32 customGfxIndex, Gfx* pre, Gfx* post) {
|
||||
(*gCurrentCustomModelGfxPtr)[customGfxIndex].pre = pre;
|
||||
(*gCurrentCustomModelGfxPtr)[customGfxIndex].post = post;
|
||||
(*gCurrentCustomModelGfxPtr)[customGfxIndex * 2] = pre;
|
||||
(*gCurrentCustomModelGfxPtr)[customGfxIndex * 2 + 1] = post;
|
||||
}
|
||||
|
||||
void set_custom_gfx_builders(s32 customGfxIndex, ModelCustomGfxBuilderFunc pre, ModelCustomGfxBuilderFunc post) {
|
||||
(*gCurrentCustomModelGfxBuildersPtr)[customGfxIndex].pre = pre;
|
||||
(*gCurrentCustomModelGfxBuildersPtr)[customGfxIndex].post = post;
|
||||
(*gCurrentCustomModelGfxBuildersPtr)[customGfxIndex * 2] = pre;
|
||||
(*gCurrentCustomModelGfxBuildersPtr)[customGfxIndex * 2 + 1] = post;
|
||||
}
|
||||
|
||||
void build_custom_gfx(void) {
|
||||
@ -2547,18 +2735,18 @@ void build_custom_gfx(void) {
|
||||
|
||||
gSPBranchList(gMasterGfxPos++, 0x00000000);
|
||||
|
||||
for (i = 0; i < 0x10; i++) {
|
||||
preFunc = (*gCurrentCustomModelGfxBuildersPtr)[i].pre;
|
||||
for (i = 0; i < ARRAY_COUNT(*gCurrentCustomModelGfxPtr) / 2; i++) {
|
||||
preFunc = (*gCurrentCustomModelGfxBuildersPtr)[i * 2];
|
||||
|
||||
if (preFunc != NULL) {
|
||||
(*gCurrentCustomModelGfxPtr)[i].pre = gMasterGfxPos;
|
||||
(*gCurrentCustomModelGfxPtr)[i * 2] = gMasterGfxPos;
|
||||
preFunc(i);
|
||||
gSPEndDisplayList(gMasterGfxPos++);
|
||||
}
|
||||
|
||||
postFunc = (*gCurrentCustomModelGfxBuildersPtr)[i].post;
|
||||
postFunc = (*gCurrentCustomModelGfxBuildersPtr)[i * 2 + 1];
|
||||
if (postFunc != NULL) {
|
||||
(*gCurrentCustomModelGfxPtr)[i].post = gMasterGfxPos;
|
||||
(*gCurrentCustomModelGfxPtr)[i * 2 + 1] = gMasterGfxPos;
|
||||
postFunc(i);
|
||||
gSPEndDisplayList(gMasterGfxPos++);
|
||||
}
|
||||
@ -2697,7 +2885,7 @@ void mdl_draw_hidden_panel_surface(Gfx** arg0, u16 treeIndex) {
|
||||
oldGfxPos = gMasterGfxPos;
|
||||
gMasterGfxPos = *arg0;
|
||||
|
||||
copied.flags = 0x81;
|
||||
copied.flags = 0x80 | 0x1;
|
||||
appendGfx_model(&copied);
|
||||
|
||||
*arg0 = gMasterGfxPos;
|
||||
@ -2707,14 +2895,38 @@ void mdl_draw_hidden_panel_surface(Gfx** arg0, u16 treeIndex) {
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "a5dd0_len_114e0", mdl_get_next_texture_address);
|
||||
s32 mdl_get_next_texture_address(s32 size) {
|
||||
u32 offset = mdl_nextTextureAddress - mdl_textureBaseAddress + 0x3F;
|
||||
|
||||
INCLUDE_ASM(s32, "a5dd0_len_114e0", mdl_set_all_fog_mode);
|
||||
offset = (offset >> 6) << 6;
|
||||
|
||||
if (size + offset > 0x28000) {
|
||||
return 0;
|
||||
} else {
|
||||
return mdl_textureBaseAddress + offset;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void mdl_set_all_fog_mode(s32 fogMode) {
|
||||
ModelList* modelList = gCurrentModels;
|
||||
Model* model;
|
||||
s32 fogType = fogMode; // weirdness here and the next line needed to match
|
||||
s32 i = fogMode;
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(*modelList); i++) {
|
||||
model = (*modelList)[i];
|
||||
|
||||
if (model != NULL) {
|
||||
set_mdl_custom_gfx_set(model, -1, fogType);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void clear_render_tasks(void) {
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < 3; i++) {
|
||||
for (i = 0; i < ARRAY_COUNT(mdl_clearRenderTasks); i++) {
|
||||
mdl_renderTaskLists[i] = mdl_clearRenderTasks[i];
|
||||
}
|
||||
|
||||
@ -2725,7 +2937,7 @@ void clear_render_tasks(void) {
|
||||
void clear_render_tasks_alt(void) {
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < 3; i++) {
|
||||
for (i = 0; i < ARRAY_COUNT(mdl_clearRenderTasks); i++) {
|
||||
mdl_renderTaskLists[i] = mdl_clearRenderTasks[i];
|
||||
}
|
||||
|
||||
|
@ -19,7 +19,7 @@ ApiStatus N(func_802A1280_72A9D0)(Evt* script, s32 isInitialCall) {
|
||||
Actor* enemy = get_actor(script->owner1.enemyID);
|
||||
Actor* target;
|
||||
|
||||
sfx_play_sound_at_position(0x231, 0, enemy->walk.goalPos.x, enemy->walk.goalPos.y, enemy->walk.goalPos.z);
|
||||
sfx_play_sound_at_position(0x231, 0, enemy->state.goalPos.x, enemy->state.goalPos.y, enemy->state.goalPos.z);
|
||||
target = get_actor(enemy->targetActorID);
|
||||
dispatch_event_actor(target, 0x39);
|
||||
|
||||
|
@ -51,22 +51,22 @@ ApiStatus func_80238000_6FAD10(Evt* script, s32 isInitialCall) {
|
||||
ApiStatus func_80238244_6FAF54(Evt* script, s32 isInitialCall) {
|
||||
BattleStatus* battleStatus = &gBattleStatus;
|
||||
Actor* partnerActor = battleStatus->partnerActor;
|
||||
ActorMovement* partnerActorMovement = &partnerActor->walk;
|
||||
ActorMovement* partnerActorMovement = &partnerActor->state;
|
||||
|
||||
if (isInitialCall) {
|
||||
partnerActor->walk.currentPos.x = partnerActor->currentPos.x;
|
||||
partnerActor->walk.currentPos.y = partnerActor->currentPos.y;
|
||||
partnerActor->walk.currentPos.z = partnerActor->currentPos.z;
|
||||
partnerActor->state.currentPos.x = partnerActor->currentPos.x;
|
||||
partnerActor->state.currentPos.y = partnerActor->currentPos.y;
|
||||
partnerActor->state.currentPos.z = partnerActor->currentPos.z;
|
||||
}
|
||||
|
||||
add_xz_vec3f(&partnerActorMovement->currentPos, partnerActor->walk.speed, partnerActor->walk.angle);
|
||||
add_xz_vec3f(&partnerActorMovement->currentPos, partnerActor->state.speed, partnerActor->state.angle);
|
||||
|
||||
if (partnerActor->walk.speed < 4.0f) {
|
||||
play_movement_dust_effects(0, partnerActor->walk.currentPos.x, partnerActor->walk.currentPos.y,
|
||||
partnerActor->walk.currentPos.z, partnerActor->walk.angle);
|
||||
if (partnerActor->state.speed < 4.0f) {
|
||||
play_movement_dust_effects(0, partnerActor->state.currentPos.x, partnerActor->state.currentPos.y,
|
||||
partnerActor->state.currentPos.z, partnerActor->state.angle);
|
||||
} else {
|
||||
play_movement_dust_effects(1, partnerActor->walk.currentPos.x, partnerActor->walk.currentPos.y,
|
||||
partnerActor->walk.currentPos.z, partnerActor->walk.angle);
|
||||
play_movement_dust_effects(1, partnerActor->state.currentPos.x, partnerActor->state.currentPos.y,
|
||||
partnerActor->state.currentPos.z, partnerActor->state.angle);
|
||||
}
|
||||
|
||||
partnerActorMovement->speed /= 1.5;
|
||||
|
@ -40,9 +40,9 @@ ApiStatus N(func_80238000_6F10E0)(Evt* script, s32 isInitialCall) {
|
||||
f32 posX = partnerActor->currentPos.x;
|
||||
f32 posY = partnerActor->currentPos.y;
|
||||
f32 posZ = partnerActor->currentPos.z;
|
||||
f32 goalX = partnerActor->walk.goalPos.x;
|
||||
f32 goalY = partnerActor->walk.goalPos.y;
|
||||
f32 goalZ = partnerActor->walk.goalPos.z;
|
||||
f32 goalX = partnerActor->state.goalPos.x;
|
||||
f32 goalY = partnerActor->state.goalPos.y;
|
||||
f32 goalZ = partnerActor->state.goalPos.z;
|
||||
|
||||
script->varTable[0] = (dist3D(posX, posY, posZ, goalX, goalY, goalZ) * 15.0f) / 100.0f;
|
||||
|
||||
@ -79,33 +79,33 @@ INCLUDE_ASM(s32, "battle/partner/goombario", func_8023817C_6F125C);
|
||||
ApiStatus N(func_80238A20_6F1B00)(Evt* script, s32 isInitialCall) {
|
||||
BattleStatus* battleStatus = &gBattleStatus;
|
||||
Actor* partnerActor = gBattleStatus.partnerActor;
|
||||
Vec3f* pos = &partnerActor->walk.currentPos;
|
||||
Vec3f* pos = &partnerActor->state.currentPos;
|
||||
|
||||
if (isInitialCall) {
|
||||
script->functionTemp[0] = 0;
|
||||
}
|
||||
|
||||
if (script->functionTemp[0] == 0) {
|
||||
partnerActor->walk.currentPos.x = partnerActor->currentPos.x;
|
||||
partnerActor->walk.currentPos.y = partnerActor->currentPos.y;
|
||||
partnerActor->walk.currentPos.z = partnerActor->currentPos.z;
|
||||
partnerActor->state.currentPos.x = partnerActor->currentPos.x;
|
||||
partnerActor->state.currentPos.y = partnerActor->currentPos.y;
|
||||
partnerActor->state.currentPos.z = partnerActor->currentPos.z;
|
||||
script->functionTemp[0] = 1;
|
||||
}
|
||||
|
||||
if (partnerActor->walk.velocity > 0.0f) {
|
||||
set_animation(0x100, 0, partnerActor->walk.animJumpRise);
|
||||
if (partnerActor->state.velocity > 0.0f) {
|
||||
set_animation(0x100, 0, partnerActor->state.animJumpRise);
|
||||
}
|
||||
|
||||
if (partnerActor->walk.velocity < 0.0f) {
|
||||
set_animation(0x100, 0, partnerActor->walk.animJumpFall);
|
||||
if (partnerActor->state.velocity < 0.0f) {
|
||||
set_animation(0x100, 0, partnerActor->state.animJumpFall);
|
||||
}
|
||||
|
||||
partnerActor->walk.currentPos.y = (partnerActor->walk.currentPos.y + partnerActor->walk.velocity);
|
||||
partnerActor->walk.velocity = (partnerActor->walk.velocity - partnerActor->walk.acceleration);
|
||||
add_xz_vec3f(pos, partnerActor->walk.speed, partnerActor->walk.angle);
|
||||
partnerActor->currentPos.x = partnerActor->walk.currentPos.x;
|
||||
partnerActor->currentPos.y = partnerActor->walk.currentPos.y;
|
||||
partnerActor->currentPos.z = partnerActor->walk.currentPos.z;
|
||||
partnerActor->state.currentPos.y = (partnerActor->state.currentPos.y + partnerActor->state.velocity);
|
||||
partnerActor->state.velocity = (partnerActor->state.velocity - partnerActor->state.acceleration);
|
||||
add_xz_vec3f(pos, partnerActor->state.speed, partnerActor->state.angle);
|
||||
partnerActor->currentPos.x = partnerActor->state.currentPos.x;
|
||||
partnerActor->currentPos.y = partnerActor->state.currentPos.y;
|
||||
partnerActor->currentPos.z = partnerActor->state.currentPos.z;
|
||||
|
||||
if (partnerActor->currentPos.y < 10.0f) {
|
||||
partnerActor->currentPos.y = 10.0f;
|
||||
|
@ -6,22 +6,22 @@
|
||||
ApiStatus func_80238000_6F5E80(Evt* script, s32 isInitialCall) {
|
||||
BattleStatus* battleStatus = &gBattleStatus;
|
||||
Actor* partnerActor = battleStatus->partnerActor;
|
||||
ActorMovement* partnerActorMovement = &partnerActor->walk;
|
||||
ActorMovement* partnerActorMovement = &partnerActor->state;
|
||||
|
||||
if (isInitialCall) {
|
||||
partnerActor->walk.currentPos.x = partnerActor->currentPos.x;
|
||||
partnerActor->walk.currentPos.y = partnerActor->currentPos.y;
|
||||
partnerActor->walk.currentPos.z = partnerActor->currentPos.z;
|
||||
partnerActor->state.currentPos.x = partnerActor->currentPos.x;
|
||||
partnerActor->state.currentPos.y = partnerActor->currentPos.y;
|
||||
partnerActor->state.currentPos.z = partnerActor->currentPos.z;
|
||||
}
|
||||
|
||||
add_xz_vec3f(&partnerActorMovement->currentPos, partnerActor->walk.speed, partnerActor->walk.angle);
|
||||
add_xz_vec3f(&partnerActorMovement->currentPos, partnerActor->state.speed, partnerActor->state.angle);
|
||||
|
||||
if (partnerActor->walk.speed < 4.0f) {
|
||||
play_movement_dust_effects(0, partnerActor->walk.currentPos.x, partnerActor->walk.currentPos.y,
|
||||
partnerActor->walk.currentPos.z, partnerActor->walk.angle);
|
||||
if (partnerActor->state.speed < 4.0f) {
|
||||
play_movement_dust_effects(0, partnerActor->state.currentPos.x, partnerActor->state.currentPos.y,
|
||||
partnerActor->state.currentPos.z, partnerActor->state.angle);
|
||||
} else {
|
||||
play_movement_dust_effects(1, partnerActor->walk.currentPos.x, partnerActor->walk.currentPos.y,
|
||||
partnerActor->walk.currentPos.z, partnerActor->walk.angle);
|
||||
play_movement_dust_effects(1, partnerActor->state.currentPos.x, partnerActor->state.currentPos.y,
|
||||
partnerActor->state.currentPos.z, partnerActor->state.angle);
|
||||
}
|
||||
|
||||
partnerActorMovement->speed = partnerActorMovement->speed / 1.5;
|
||||
|
@ -1,12 +1,185 @@
|
||||
#include "common.h"
|
||||
#include "effects_internal.h"
|
||||
|
||||
INCLUDE_ASM(s32, "effects/effect_7", fx_7_main);
|
||||
typedef struct Effect7 {
|
||||
/* 0x00 */ s32 unk_00;
|
||||
/* 0x04 */ u16 unk_04;
|
||||
/* 0x08 */ f32 unk_08;
|
||||
/* 0x0C */ f32 unk_0C;
|
||||
/* 0x10 */ f32 unk_10;
|
||||
/* 0x14 */ char unk_14[0x44];
|
||||
/* 0x58 */ f32 unk_58;
|
||||
/* 0x5C */ f32 unk_5C;
|
||||
/* 0x60 */ f32 unk_60;
|
||||
/* 0x64 */ f32 unk_64;
|
||||
/* 0x68 */ f32 unk_68;
|
||||
/* 0x6C */ s32 unk_6C;
|
||||
/* 0x70 */ s32 unk_70;
|
||||
/* 0x74 */ s32 unk_74;
|
||||
} Effect7; // size = 0x78
|
||||
|
||||
void func_E000E16C(void) {
|
||||
s8 D_E000E660[16] = { 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, -1, 0 };
|
||||
|
||||
s8 D_E000E670[20] = { 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 6, 7, 7, 7, -1, 0, 0, 0 };
|
||||
|
||||
s8* D_E000E684[2] = { D_E000E660, D_E000E670 };
|
||||
|
||||
extern Gfx D_09002780[];
|
||||
extern Gfx D_09002868[];
|
||||
extern Gfx D_09002950[];
|
||||
extern Gfx D_09002B20[];
|
||||
extern Gfx D_09002B40[];
|
||||
|
||||
void fx_7_init(EffectInstance* effect);
|
||||
void fx_7_update(EffectInstance* effect);
|
||||
void fx_7_render(EffectInstance* effect);
|
||||
void fx_7_appendGfx(EffectInstance* effect);
|
||||
|
||||
void fx_7_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5) {
|
||||
EffectBlueprint bp;
|
||||
EffectInstance* effect;
|
||||
Effect7* effectPart;
|
||||
s32 numParts = 1;
|
||||
s32 i;
|
||||
|
||||
bp.unk_00 = 0;
|
||||
bp.init = fx_7_init;
|
||||
bp.update = fx_7_update;
|
||||
bp.renderWorld = fx_7_render;
|
||||
bp.unk_14 = NULL;
|
||||
bp.effectIndex = 7;
|
||||
|
||||
effect = shim_create_effect_instance(&bp);
|
||||
effect->numParts = numParts;
|
||||
|
||||
effectPart = shim_general_heap_malloc(numParts * sizeof(*effectPart));
|
||||
effect->data = effectPart;
|
||||
ASSERT(effect->data != NULL);
|
||||
|
||||
shim_mem_clear(effectPart, numParts * sizeof(*effectPart));
|
||||
effectPart->unk_6C = arg0 == 2;
|
||||
effectPart->unk_70 = 0;
|
||||
effectPart->unk_04 = arg0;
|
||||
|
||||
for (i = 0; i < numParts; i++, effectPart++) {
|
||||
effectPart->unk_00 = 1;
|
||||
effectPart->unk_64 = arg4;
|
||||
effectPart->unk_68 = arg5;
|
||||
effectPart->unk_08 = arg1;
|
||||
effectPart->unk_0C = arg2;
|
||||
effectPart->unk_10 = arg3;
|
||||
effectPart->unk_58 = 0.33333334f;
|
||||
effectPart->unk_5C = 1.75f;
|
||||
effectPart->unk_60 = -0.16f;
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "effects/effect_7", func_E000E174);
|
||||
void fx_7_init(EffectInstance* effect) {
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "effects/effect_7", func_E000E244);
|
||||
void fx_7_update(EffectInstance* effect) {
|
||||
Effect7* part = (Effect7*)effect->data;
|
||||
|
||||
INCLUDE_ASM(s32, "effects/effect_7", func_E000E288);
|
||||
part->unk_74 = D_E000E684[part->unk_6C][part->unk_70++];
|
||||
|
||||
if (part->unk_74 < 0) {
|
||||
shim_remove_effect(effect);
|
||||
} else {
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < effect->numParts; i++, part++) {
|
||||
part->unk_08 += part->unk_58 * part->unk_64;
|
||||
part->unk_10 += part->unk_58 * part->unk_68;
|
||||
part->unk_5C = part->unk_5C + part->unk_60;
|
||||
part->unk_0C += part->unk_5C;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fx_7_render(EffectInstance* effect) {
|
||||
RenderTask renderTask;
|
||||
RenderTask* retTask;
|
||||
|
||||
renderTask.appendGfx = fx_7_appendGfx;
|
||||
renderTask.appendGfxArg = effect;
|
||||
renderTask.distance = 0;
|
||||
renderTask.renderMode = RENDER_MODE_28;
|
||||
|
||||
retTask = shim_queue_render_task(&renderTask);
|
||||
retTask->renderMode |= RENDER_MODE_2;
|
||||
}
|
||||
|
||||
void fx_7_appendGfx(EffectInstance* effect) {
|
||||
// effect temp needed to match - maybe EffectInstance is being cast to a a specific of EffectInstance for effect_7
|
||||
EffectInstance* effectTemp = effect;
|
||||
Effect7* part = (Effect7*)effect->data;
|
||||
s32 temp_t3 = part->unk_04;
|
||||
s32 temp_t4 = part->unk_74;
|
||||
s32 cond = FALSE;
|
||||
Matrix4f sp18;
|
||||
Matrix4f sp58;
|
||||
s32 temp_a0;
|
||||
s32 temp_lo;
|
||||
s32 dlist;
|
||||
s32 dlist2;
|
||||
s32 phi_t1;
|
||||
s32 i;
|
||||
|
||||
if (temp_t3 == 0) {
|
||||
dlist2 = D_09002B20;
|
||||
} else {
|
||||
dlist2 = D_09002B40;
|
||||
}
|
||||
|
||||
switch (temp_t3) {
|
||||
case 1:
|
||||
dlist = D_09002868;
|
||||
break;
|
||||
default:
|
||||
dlist = D_09002950;
|
||||
break;
|
||||
case 0:
|
||||
dlist = D_09002780;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
if ((part->unk_6C == 0 && temp_t4 == 6) || (part->unk_6C == 1 && temp_t4 == 7)) {
|
||||
cond = TRUE;
|
||||
}
|
||||
|
||||
gDPPipeSync(gMasterGfxPos++);
|
||||
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(effectTemp->effect->data));
|
||||
gSPDisplayList(gMasterGfxPos++, dlist);
|
||||
gDPSetEnvColor(gMasterGfxPos++, 0, 0, 0, 127);
|
||||
gDPSetPrimColor(gMasterGfxPos++, 0, 0, 230, 222, 222, 110);
|
||||
|
||||
if (temp_t3 == 0) {
|
||||
phi_t1 = 24;
|
||||
} else {
|
||||
phi_t1 = 32;
|
||||
}
|
||||
|
||||
temp_lo = temp_t4 * phi_t1;
|
||||
temp_a0 = temp_lo + phi_t1;
|
||||
|
||||
gDPSetTileSize(gMasterGfxPos++, G_TX_RENDERTILE, temp_lo * 4, 0, (temp_a0 - 1) * 4, ((phi_t1 - 1) * 4));
|
||||
|
||||
if (cond) {
|
||||
gDPSetTileSize(gMasterGfxPos++, 1, temp_a0 * 4, 0, ((temp_lo + (phi_t1 * 2)) - 1) * 4, 0);
|
||||
} else {
|
||||
gDPSetTileSize(gMasterGfxPos++, 1, temp_a0 * 4, 0, ((temp_lo + (phi_t1 * 2)) - 1) * 4, (phi_t1 - 1) * 4);
|
||||
}
|
||||
|
||||
for (i = 0; i < effectTemp->numParts; i++, part++) {
|
||||
shim_guTranslateF(sp18, part->unk_08, part->unk_0C, part->unk_10);
|
||||
shim_guRotateF(sp58, -gCameras[gCurrentCameraID].currentYaw, 0.0f, 1.0f, 0.0f);
|
||||
shim_guMtxCatF(sp58, sp18, sp18);
|
||||
shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]);
|
||||
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
|
||||
G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(gMasterGfxPos++, dlist2);
|
||||
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
|
||||
}
|
||||
gDPPipeSync(gMasterGfxPos++);
|
||||
}
|
||||
|
@ -1,18 +1,190 @@
|
||||
#include "common.h"
|
||||
#include "effects_internal.h"
|
||||
|
||||
INCLUDE_ASM(s32, "effects/effect_8", func_E0010000);
|
||||
typedef struct Effect8 {
|
||||
/* 0x00 */ s32 unk_00;
|
||||
/* 0x04 */ char unk_04[0x2];
|
||||
/* 0x06 */ s16 unk_06;
|
||||
/* 0x08 */ u8 primAlpha;
|
||||
/* 0x09 */ char unk_09[0x3];
|
||||
/* 0x0C */ f32 unk_0C;
|
||||
/* 0x10 */ f32 unk_10;
|
||||
/* 0x14 */ f32 unk_14;
|
||||
/* 0x18 */ f32 unk_18;
|
||||
/* 0x1C */ f32 unk_1C;
|
||||
/* 0x20 */ f32 unk_20;
|
||||
/* 0x24 */ f32 unk_24;
|
||||
/* 0x28 */ f32 unk_28;
|
||||
/* 0x2C */ f32 unk_2C;
|
||||
/* 0x30 */ Mtx unk_30;
|
||||
/* 0x70 */ f32 unk_70;
|
||||
/* 0x74 */ f32 unk_74;
|
||||
/* 0x78 */ f32 unk_78;
|
||||
/* 0x7C */ f32 unk_7C;
|
||||
/* 0x80 */ f32 unk_80;
|
||||
/* 0x84 */ f32 unk_84;
|
||||
/* 0x88 */ f32 unk_88;
|
||||
/* 0x8C */ f32 unk_8C;
|
||||
/* 0x90 */ f32 unk_90;
|
||||
/* 0x94 */ f32 unk_94;
|
||||
} Effect8; // size = 0x98
|
||||
|
||||
INCLUDE_ASM(s32, "effects/effect_8", func_E0010104);
|
||||
void fx_8_init(EffectInstance* effect);
|
||||
void fx_8_update(EffectInstance* effect);
|
||||
void fx_8_render(EffectInstance* effect);
|
||||
void fx_8_appendGfx(EffectInstance* effect);
|
||||
|
||||
INCLUDE_ASM(s32, "effects/effect_8", fx_8_main);
|
||||
extern Gfx D_09000E08[];
|
||||
|
||||
void func_E00103EC(void) {
|
||||
void func_E0010000(Effect8* effect) {
|
||||
Matrix4f sp18;
|
||||
Matrix4f sp58;
|
||||
|
||||
shim_guRotateF(sp18, effect->unk_24, 1.0f, 0.0f, 0.0f);
|
||||
shim_guRotateF(sp58, effect->unk_2C, 0.0f, 0.0f, 1.0f);
|
||||
shim_guMtxCatF(sp58, sp18, sp18);
|
||||
shim_guRotateF(sp58, effect->unk_28, 0.0f, 1.0f, 0.0f);
|
||||
shim_guMtxCatF(sp18, sp58, sp18);
|
||||
shim_guScaleF(sp58, effect->unk_18, effect->unk_1C, effect->unk_20);
|
||||
shim_guMtxCatF(sp58, sp18, sp18);
|
||||
shim_guTranslateF(sp58, effect->unk_0C, effect->unk_10, effect->unk_14);
|
||||
shim_guMtxCatF(sp18, sp58, sp18);
|
||||
shim_guMtxF2L(sp18, &effect->unk_30);
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "effects/effect_8", func_E00103F4);
|
||||
void func_E0010104(Effect8* effect) {
|
||||
effect->unk_70 *= 0.85;
|
||||
effect->unk_0C += effect->unk_70 * effect->unk_90;
|
||||
effect->unk_88 += effect->unk_8C;
|
||||
effect->unk_84 += effect->unk_88;
|
||||
effect->unk_80 += effect->unk_84;
|
||||
effect->unk_10 += effect->unk_80;
|
||||
effect->unk_14 += effect->unk_70 * effect->unk_94;
|
||||
|
||||
INCLUDE_ASM(s32, "effects/effect_8", func_E00104B0);
|
||||
if (effect->unk_80 < 0.0f) {
|
||||
effect->unk_88 = 0.004f;
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "effects/effect_8", func_E00104F4);
|
||||
effect->unk_24 -= 1.0f;
|
||||
if (effect->unk_24 < -100.0f) {
|
||||
effect->unk_24 = -100.0f;
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "effects/effect_8", func_E0010510);
|
||||
void fx_8_main(f32 arg0, f32 arg1, f32 arg2, f32 arg3) {
|
||||
EffectBlueprint bp;
|
||||
EffectInstance* effect;
|
||||
Effect8* part;
|
||||
s32 numParts = 5;
|
||||
f32 angle;
|
||||
s32 i;
|
||||
|
||||
bp.init = fx_8_init;
|
||||
bp.update = fx_8_update;
|
||||
bp.renderWorld = fx_8_render;
|
||||
bp.unk_00 = 0;
|
||||
bp.unk_14 = NULL;
|
||||
bp.effectIndex = 8;
|
||||
|
||||
effect = shim_create_effect_instance(&bp);
|
||||
effect->numParts = numParts;
|
||||
|
||||
part = shim_general_heap_malloc(numParts * sizeof(*part));
|
||||
effect->data = part;
|
||||
ASSERT(effect->data != NULL);
|
||||
|
||||
shim_mem_clear(part, numParts * sizeof(*part));
|
||||
|
||||
for (i = 0; i < numParts; i++, part++) {
|
||||
part->unk_00 = 1;
|
||||
part->unk_28 = arg3 + (i * 72);
|
||||
part->unk_74 = 0.29999998f;
|
||||
part->unk_78 = 0.0f;
|
||||
part->unk_7C = 0.0f;
|
||||
part->unk_0C = arg0;
|
||||
part->unk_10 = arg1;
|
||||
part->unk_14 = arg2;
|
||||
part->unk_18 = 1.0f;
|
||||
part->unk_1C = 1.0f;
|
||||
part->unk_20 = 1.0f;
|
||||
part->primAlpha = 255;
|
||||
part->unk_06 = 60;
|
||||
part->unk_24 = 0.0f;
|
||||
part->unk_2C = 0.0f;
|
||||
part->unk_80 = 1.75f;
|
||||
part->unk_84 = -0.08f;
|
||||
part->unk_70 = -3.9f;
|
||||
part->unk_88 = 0;
|
||||
part->unk_8C = 0;
|
||||
angle = shim_clamp_angle(part->unk_28);
|
||||
part->unk_90 = shim_sin_deg(angle);
|
||||
part->unk_94 = shim_cos_deg(angle);
|
||||
}
|
||||
}
|
||||
|
||||
void fx_8_init(EffectInstance* effect) {
|
||||
}
|
||||
|
||||
void fx_8_update(EffectInstance* effect) {
|
||||
Effect8* part = (Effect8*)effect->data;
|
||||
s32 cond = FALSE;
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < effect->numParts; i++, part++) {
|
||||
if (part->unk_00 != 0) {
|
||||
part->unk_06--;
|
||||
if (part->unk_06 <= 0) {
|
||||
part->unk_00 = 0;
|
||||
} else {
|
||||
cond = TRUE;
|
||||
func_E0010104(part);
|
||||
func_E0010000(part);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!cond) {
|
||||
shim_remove_effect(effect);
|
||||
}
|
||||
}
|
||||
|
||||
void fx_8_render(EffectInstance* effect) {
|
||||
RenderTask renderTask;
|
||||
RenderTask* retTask;
|
||||
|
||||
renderTask.appendGfx = fx_8_appendGfx;
|
||||
renderTask.appendGfxArg = effect;
|
||||
renderTask.distance = 0;
|
||||
renderTask.renderMode = RENDER_MODE_28;
|
||||
|
||||
retTask = shim_queue_render_task(&renderTask);
|
||||
retTask->renderMode |= RENDER_MODE_2;
|
||||
}
|
||||
|
||||
void func_E00104F4(EffectInstance* effect) {
|
||||
shim_remove_effect(effect);
|
||||
}
|
||||
|
||||
void fx_8_appendGfx(EffectInstance* effect) {
|
||||
EffectInstance* effectTemp = effect;
|
||||
Effect8* part = effectTemp->data;
|
||||
s32 i;
|
||||
|
||||
gDPPipeSync(gMasterGfxPos++);
|
||||
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(effectTemp->effect->data));
|
||||
|
||||
for (i = 0; i < effectTemp->numParts; i++, part++) {
|
||||
if (part->unk_00 != 0) {
|
||||
Gfx* dlist = D_09000E08;
|
||||
|
||||
gDisplayContext->matrixStack[gMatrixListPos] = part->unk_30;
|
||||
|
||||
gDPSetPrimColor(gMasterGfxPos++, 0, 0, 112, 96, 24, part->primAlpha);
|
||||
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
|
||||
G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(gMasterGfxPos++, dlist);
|
||||
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
|
||||
}
|
||||
}
|
||||
gDPPipeSync(gMasterGfxPos++);
|
||||
}
|
||||
|
@ -58,7 +58,7 @@ s32 entity_base_block_idle(Entity* entity) {
|
||||
struct802E3650* temp = (struct802E3650*)entity->dataBuf;
|
||||
s32 ret = 0;
|
||||
|
||||
if (is_block_on_ground() != 0) {
|
||||
if (is_block_on_ground(entity) != 0) {
|
||||
if (entity->flags & 0x200000) {
|
||||
ret = 1;
|
||||
entity_base_block_update_slow_sinking(entity);
|
||||
|
12
src/heap.c
12
src/heap.c
@ -15,8 +15,8 @@ s32 general_heap_malloc_tail(s32 size) {
|
||||
return _heap_malloc_tail(&D_802FB800, size);
|
||||
}
|
||||
|
||||
s32 general_heap_free(s32* size) {
|
||||
return _heap_free(&D_802FB800, size);
|
||||
s32 general_heap_free(s32* data) {
|
||||
return _heap_free(&D_802FB800, data);
|
||||
}
|
||||
|
||||
s32 battle_heap_create(void) {
|
||||
@ -32,18 +32,18 @@ s32 func_8002ACDC(void) {
|
||||
}
|
||||
|
||||
void* heap_malloc(s32 size) {
|
||||
if (gGameStatusPtr->isBattle == 0) {
|
||||
if (!gGameStatusPtr->isBattle) {
|
||||
return general_heap_malloc(size);
|
||||
} else {
|
||||
return _heap_malloc(&D_803DA800, size);
|
||||
}
|
||||
}
|
||||
|
||||
s32 heap_free(void* ptr) {
|
||||
s32 heap_free(void* data) {
|
||||
if (gGameStatusPtr->isBattle) {
|
||||
return _heap_free(&D_803DA800, ptr);
|
||||
return _heap_free(&D_803DA800, data);
|
||||
} else {
|
||||
return general_heap_free(ptr);
|
||||
return general_heap_free(data);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
#include "effects.h"
|
||||
|
||||
ApiStatus N(StarSpiritEffectFunc1)(Evt* script, s32 isInitialCall) {
|
||||
StarSpiritEffect* ptr = script->varTable[0];
|
||||
StarSpiritEffect* ptr = (StarSpiritEffect*)script->varTable[0];
|
||||
|
||||
sfx_adjust_env_sound_pos(SOUND_UNKNOWN_A2, 0, ptr->unk_00, ptr->unk_04, ptr->unk_08);
|
||||
|
||||
|
@ -43,7 +43,7 @@ ApiStatus N(UnkFunc52)(Evt* script, s32 isInitialCall) {
|
||||
break;
|
||||
|
||||
case ACTOR_TYPE_DRY_BONES:
|
||||
if (actor->varTable[8] == 1) {
|
||||
if (actor->state.varTable[8] == 1) {
|
||||
evt_set_variable(script, *args, -1);
|
||||
break;
|
||||
}
|
||||
|
@ -7,9 +7,9 @@ ApiStatus N(UnkMoveFunc1)(Evt* script, s32 isInitialCall) {
|
||||
f32 posX = playerActor->currentPos.x;
|
||||
f32 posY = playerActor->currentPos.y;
|
||||
f32 posZ = playerActor->currentPos.z;
|
||||
f32 goalX = playerActor->walk.goalPos.x;
|
||||
f32 goalY = playerActor->walk.goalPos.y;
|
||||
f32 goalZ = playerActor->walk.goalPos.z;
|
||||
f32 goalX = playerActor->state.goalPos.x;
|
||||
f32 goalY = playerActor->state.goalPos.y;
|
||||
f32 goalZ = playerActor->state.goalPos.z;
|
||||
|
||||
script->varTable[0] = (dist3D(posX, posY, posZ, goalX, goalY, goalZ) * 15.0f) / 100.0f;
|
||||
|
||||
|
@ -1,44 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel AddActorVar
|
||||
/* 19A9B4 8026C0D4 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* 19A9B8 8026C0D8 AFB20018 */ sw $s2, 0x18($sp)
|
||||
/* 19A9BC 8026C0DC 0080902D */ daddu $s2, $a0, $zero
|
||||
/* 19A9C0 8026C0E0 AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* 19A9C4 8026C0E4 AFB10014 */ sw $s1, 0x14($sp)
|
||||
/* 19A9C8 8026C0E8 AFB00010 */ sw $s0, 0x10($sp)
|
||||
/* 19A9CC 8026C0EC 8E50000C */ lw $s0, 0xc($s2)
|
||||
/* 19A9D0 8026C0F0 8E050000 */ lw $a1, ($s0)
|
||||
/* 19A9D4 8026C0F4 0C0B1EAF */ jal evt_get_variable
|
||||
/* 19A9D8 8026C0F8 26100004 */ addiu $s0, $s0, 4
|
||||
/* 19A9DC 8026C0FC 0040882D */ daddu $s1, $v0, $zero
|
||||
/* 19A9E0 8026C100 2402FF81 */ addiu $v0, $zero, -0x7f
|
||||
/* 19A9E4 8026C104 16220002 */ bne $s1, $v0, .L8026C110
|
||||
/* 19A9E8 8026C108 00000000 */ nop
|
||||
/* 19A9EC 8026C10C 8E510148 */ lw $s1, 0x148($s2)
|
||||
.L8026C110:
|
||||
/* 19A9F0 8026C110 8E050000 */ lw $a1, ($s0)
|
||||
/* 19A9F4 8026C114 26100004 */ addiu $s0, $s0, 4
|
||||
/* 19A9F8 8026C118 0C0B1EAF */ jal evt_get_variable
|
||||
/* 19A9FC 8026C11C 0240202D */ daddu $a0, $s2, $zero
|
||||
/* 19AA00 8026C120 0240202D */ daddu $a0, $s2, $zero
|
||||
/* 19AA04 8026C124 8E050000 */ lw $a1, ($s0)
|
||||
/* 19AA08 8026C128 0C0B1EAF */ jal evt_get_variable
|
||||
/* 19AA0C 8026C12C 0040802D */ daddu $s0, $v0, $zero
|
||||
/* 19AA10 8026C130 0220202D */ daddu $a0, $s1, $zero
|
||||
/* 19AA14 8026C134 0C09A75B */ jal get_actor
|
||||
/* 19AA18 8026C138 0040882D */ daddu $s1, $v0, $zero
|
||||
/* 19AA1C 8026C13C 2444000C */ addiu $a0, $v0, 0xc
|
||||
/* 19AA20 8026C140 00108080 */ sll $s0, $s0, 2
|
||||
/* 19AA24 8026C144 00902021 */ addu $a0, $a0, $s0
|
||||
/* 19AA28 8026C148 8C83007C */ lw $v1, 0x7c($a0)
|
||||
/* 19AA2C 8026C14C 00711821 */ addu $v1, $v1, $s1
|
||||
/* 19AA30 8026C150 AC83007C */ sw $v1, 0x7c($a0)
|
||||
/* 19AA34 8026C154 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* 19AA38 8026C158 8FB20018 */ lw $s2, 0x18($sp)
|
||||
/* 19AA3C 8026C15C 8FB10014 */ lw $s1, 0x14($sp)
|
||||
/* 19AA40 8026C160 8FB00010 */ lw $s0, 0x10($sp)
|
||||
/* 19AA44 8026C164 24020002 */ addiu $v0, $zero, 2
|
||||
/* 19AA48 8026C168 03E00008 */ jr $ra
|
||||
/* 19AA4C 8026C16C 27BD0020 */ addiu $sp, $sp, 0x20
|
@ -1,38 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel func_80200000
|
||||
/* 3169F0 80200000 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* 3169F4 80200004 3C05AC29 */ lui $a1, 0xac29
|
||||
/* 3169F8 80200008 34A5007B */ ori $a1, $a1, 0x7b
|
||||
/* 3169FC 8020000C 3C06B000 */ lui $a2, 0xb000
|
||||
/* 316A00 80200010 34C606A8 */ ori $a2, $a2, 0x6a8
|
||||
/* 316A04 80200014 3C02A460 */ lui $v0, 0xa460
|
||||
/* 316A08 80200018 34420010 */ ori $v0, $v0, 0x10
|
||||
/* 316A0C 8020001C AFBF0010 */ sw $ra, 0x10($sp)
|
||||
/* 316A10 80200020 8C420000 */ lw $v0, ($v0)
|
||||
/* 316A14 80200024 3C048005 */ lui $a0, %hi(D_8004AA85)
|
||||
/* 316A18 80200028 2484AA85 */ addiu $a0, $a0, %lo(D_8004AA85)
|
||||
/* 316A1C 8020002C 30420003 */ andi $v0, $v0, 3
|
||||
/* 316A20 80200030 10400006 */ beqz $v0, .L8020004C
|
||||
/* 316A24 80200034 3C03A460 */ lui $v1, 0xa460
|
||||
/* 316A28 80200038 34630010 */ ori $v1, $v1, 0x10
|
||||
.L8020003C:
|
||||
/* 316A2C 8020003C 8C620000 */ lw $v0, ($v1)
|
||||
/* 316A30 80200040 30420003 */ andi $v0, $v0, 3
|
||||
/* 316A34 80200044 1440FFFD */ bnez $v0, .L8020003C
|
||||
/* 316A38 80200048 00000000 */ nop
|
||||
.L8020004C:
|
||||
/* 316A3C 8020004C 24C2FE38 */ addiu $v0, $a2, -0x1c8
|
||||
/* 316A40 80200050 3C03A000 */ lui $v1, 0xa000
|
||||
/* 316A44 80200054 00431025 */ or $v0, $v0, $v1
|
||||
/* 316A48 80200058 8C420000 */ lw $v0, ($v0)
|
||||
/* 316A4C 8020005C 00A22823 */ subu $a1, $a1, $v0
|
||||
/* 316A50 80200060 00852021 */ addu $a0, $a0, $a1
|
||||
/* 316A54 80200064 0080F809 */ jalr $a0
|
||||
/* 316A58 80200068 00000000 */ nop
|
||||
/* 316A5C 8020006C 8FBF0010 */ lw $ra, 0x10($sp)
|
||||
/* 316A60 80200070 03E00008 */ jr $ra
|
||||
/* 316A64 80200074 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
/* 316A68 80200078 00000000 */ nop
|
||||
/* 316A6C 8020007C 00000000 */ nop
|
@ -1,180 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel clear_model_data
|
||||
/* AC444 80115D44 3C028007 */ lui $v0, %hi(gGameStatusPtr)
|
||||
/* AC448 80115D48 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0)
|
||||
/* AC44C 80115D4C 80420070 */ lb $v0, 0x70($v0)
|
||||
/* AC450 80115D50 1440002C */ bnez $v0, .L80115E04
|
||||
/* AC454 80115D54 00000000 */ nop
|
||||
/* AC458 80115D58 3C028015 */ lui $v0, %hi(wModelList)
|
||||
/* AC45C 80115D5C 24421770 */ addiu $v0, $v0, %lo(wModelList)
|
||||
/* AC460 80115D60 3C018015 */ lui $at, %hi(gCurrentModels)
|
||||
/* AC464 80115D64 AC2212CC */ sw $v0, %lo(gCurrentModels)($at)
|
||||
/* AC468 80115D68 3C028015 */ lui $v0, %hi(wTransformGroups)
|
||||
/* AC46C 80115D6C 24421F70 */ addiu $v0, $v0, %lo(wTransformGroups)
|
||||
/* AC470 80115D70 3C018015 */ lui $at, %hi(gCurrentTransformGroups)
|
||||
/* AC474 80115D74 AC2212E0 */ sw $v0, %lo(gCurrentTransformGroups)($at)
|
||||
/* AC478 80115D78 3C028015 */ lui $v0, %hi(wModelSpecialDls)
|
||||
/* AC47C 80115D7C 24421F90 */ addiu $v0, $v0, %lo(wModelSpecialDls)
|
||||
/* AC480 80115D80 3C018015 */ lui $at, %hi(gCurrentCustomModelGfxPtr)
|
||||
/* AC484 80115D84 AC2212E8 */ sw $v0, %lo(gCurrentCustomModelGfxPtr)($at)
|
||||
/* AC488 80115D88 3C028015 */ lui $v0, %hi(wCustomModelGfxBuilders)
|
||||
/* AC48C 80115D8C 24422090 */ addiu $v0, $v0, %lo(wCustomModelGfxBuilders)
|
||||
/* AC490 80115D90 3C018015 */ lui $at, %hi(gCurrentCustomModelGfxBuildersPtr)
|
||||
/* AC494 80115D94 AC2212B8 */ sw $v0, %lo(gCurrentCustomModelGfxBuildersPtr)($at)
|
||||
/* AC498 80115D98 3C028015 */ lui $v0, %hi(D_80152214)
|
||||
/* AC49C 80115D9C 24422214 */ addiu $v0, $v0, %lo(D_80152214)
|
||||
/* AC4A0 80115DA0 3C018015 */ lui $at, %hi(gCurrentModelTreeRoot)
|
||||
/* AC4A4 80115DA4 AC2212FC */ sw $v0, %lo(gCurrentModelTreeRoot)($at)
|
||||
/* AC4A8 80115DA8 3C028015 */ lui $v0, %hi(D_80152190)
|
||||
/* AC4AC 80115DAC 24422190 */ addiu $v0, $v0, %lo(D_80152190)
|
||||
/* AC4B0 80115DB0 3C018015 */ lui $at, %hi(gCurrentModelLocalVtxBuffers)
|
||||
/* AC4B4 80115DB4 AC222210 */ sw $v0, %lo(gCurrentModelLocalVtxBuffers)($at)
|
||||
/* AC4B8 80115DB8 3C028015 */ lui $v0, %hi(D_80152220)
|
||||
/* AC4BC 80115DBC 24422220 */ addiu $v0, $v0, %lo(D_80152220)
|
||||
/* AC4C0 80115DC0 3C01800A */ lui $at, %hi(mdl_currentModelTreeNodeInfo)
|
||||
/* AC4C4 80115DC4 AC22A5F4 */ sw $v0, %lo(mdl_currentModelTreeNodeInfo)($at)
|
||||
/* AC4C8 80115DC8 3C028015 */ lui $v0, %hi(wBgRenderType)
|
||||
/* AC4CC 80115DCC 24423220 */ addiu $v0, $v0, %lo(wBgRenderType)
|
||||
/* AC4D0 80115DD0 3C018015 */ lui $at, %hi(D_801512F0)
|
||||
/* AC4D4 80115DD4 AC2212F0 */ sw $v0, %lo(D_801512F0)($at)
|
||||
/* AC4D8 80115DD8 3C028015 */ lui $v0, %hi(wFogSettings)
|
||||
/* AC4DC 80115DDC 24423228 */ addiu $v0, $v0, %lo(wFogSettings)
|
||||
/* AC4E0 80115DE0 3C018015 */ lui $at, %hi(mdl_bgMultiplyColorA)
|
||||
/* AC4E4 80115DE4 A020B74C */ sb $zero, %lo(mdl_bgMultiplyColorA)($at)
|
||||
/* AC4E8 80115DE8 3C018015 */ lui $at, %hi(mdl_bgMultiplyColorR)
|
||||
/* AC4EC 80115DEC A020B74D */ sb $zero, %lo(mdl_bgMultiplyColorR)($at)
|
||||
/* AC4F0 80115DF0 3C018015 */ lui $at, %hi(mdl_bgMultiplyColorG)
|
||||
/* AC4F4 80115DF4 A020B74E */ sb $zero, %lo(mdl_bgMultiplyColorG)($at)
|
||||
/* AC4F8 80115DF8 3C018015 */ lui $at, %hi(mdl_bgMultiplyColorB)
|
||||
/* AC4FC 80115DFC 080457A3 */ j .L80115E8C
|
||||
/* AC500 80115E00 A020B74F */ sb $zero, %lo(mdl_bgMultiplyColorB)($at)
|
||||
.L80115E04:
|
||||
/* AC504 80115E04 3C028015 */ lui $v0, %hi(bModelList)
|
||||
/* AC508 80115E08 24421B70 */ addiu $v0, $v0, %lo(bModelList)
|
||||
/* AC50C 80115E0C 3C018015 */ lui $at, %hi(gCurrentModels)
|
||||
/* AC510 80115E10 AC2212CC */ sw $v0, %lo(gCurrentModels)($at)
|
||||
/* AC514 80115E14 3C028015 */ lui $v0, %hi(bTransformGroups)
|
||||
/* AC518 80115E18 24421F80 */ addiu $v0, $v0, %lo(bTransformGroups)
|
||||
/* AC51C 80115E1C 3C018015 */ lui $at, %hi(gCurrentTransformGroups)
|
||||
/* AC520 80115E20 AC2212E0 */ sw $v0, %lo(gCurrentTransformGroups)($at)
|
||||
/* AC524 80115E24 3C028015 */ lui $v0, %hi(bModelSpecialDls)
|
||||
/* AC528 80115E28 24422010 */ addiu $v0, $v0, %lo(bModelSpecialDls)
|
||||
/* AC52C 80115E2C 3C018015 */ lui $at, %hi(gCurrentCustomModelGfxPtr)
|
||||
/* AC530 80115E30 AC2212E8 */ sw $v0, %lo(gCurrentCustomModelGfxPtr)($at)
|
||||
/* AC534 80115E34 3C028015 */ lui $v0, %hi(bCustomModelGfxBuilders)
|
||||
/* AC538 80115E38 24422110 */ addiu $v0, $v0, %lo(bCustomModelGfxBuilders)
|
||||
/* AC53C 80115E3C 3C018015 */ lui $at, %hi(gCurrentCustomModelGfxBuildersPtr)
|
||||
/* AC540 80115E40 AC2212B8 */ sw $v0, %lo(gCurrentCustomModelGfxBuildersPtr)($at)
|
||||
/* AC544 80115E44 3C028015 */ lui $v0, %hi(D_80152218)
|
||||
/* AC548 80115E48 24422218 */ addiu $v0, $v0, %lo(D_80152218)
|
||||
/* AC54C 80115E4C 3C018015 */ lui $at, %hi(gCurrentModelTreeRoot)
|
||||
/* AC550 80115E50 AC2212FC */ sw $v0, %lo(gCurrentModelTreeRoot)($at)
|
||||
/* AC554 80115E54 3C028015 */ lui $v0, %hi(D_801521D0)
|
||||
/* AC558 80115E58 244221D0 */ addiu $v0, $v0, %lo(D_801521D0)
|
||||
/* AC55C 80115E5C 3C018015 */ lui $at, %hi(gCurrentModelLocalVtxBuffers)
|
||||
/* AC560 80115E60 AC222210 */ sw $v0, %lo(gCurrentModelLocalVtxBuffers)($at)
|
||||
/* AC564 80115E64 3C028015 */ lui $v0, %hi(D_80152A20)
|
||||
/* AC568 80115E68 24422A20 */ addiu $v0, $v0, %lo(D_80152A20)
|
||||
/* AC56C 80115E6C 3C01800A */ lui $at, %hi(mdl_currentModelTreeNodeInfo)
|
||||
/* AC570 80115E70 AC22A5F4 */ sw $v0, %lo(mdl_currentModelTreeNodeInfo)($at)
|
||||
/* AC574 80115E74 3C028015 */ lui $v0, %hi(bBgRenderType)
|
||||
/* AC578 80115E78 24423221 */ addiu $v0, $v0, %lo(bBgRenderType)
|
||||
/* AC57C 80115E7C 3C018015 */ lui $at, %hi(D_801512F0)
|
||||
/* AC580 80115E80 AC2212F0 */ sw $v0, %lo(D_801512F0)($at)
|
||||
/* AC584 80115E84 3C028015 */ lui $v0, %hi(bFogSettings)
|
||||
/* AC588 80115E88 24423248 */ addiu $v0, $v0, %lo(bFogSettings)
|
||||
.L80115E8C:
|
||||
/* AC58C 80115E8C 3C018015 */ lui $at, %hi(gCurrentFogSettings)
|
||||
/* AC590 80115E90 AC223264 */ sw $v0, %lo(gCurrentFogSettings)($at)
|
||||
/* AC594 80115E94 3C028015 */ lui $v0, %hi(gCurrentModels)
|
||||
/* AC598 80115E98 8C4212CC */ lw $v0, %lo(gCurrentModels)($v0)
|
||||
/* AC59C 80115E9C 240400FF */ addiu $a0, $zero, 0xff
|
||||
/* AC5A0 80115EA0 244203FC */ addiu $v0, $v0, 0x3fc
|
||||
.L80115EA4:
|
||||
/* AC5A4 80115EA4 AC400000 */ sw $zero, ($v0)
|
||||
/* AC5A8 80115EA8 2484FFFF */ addiu $a0, $a0, -1
|
||||
/* AC5AC 80115EAC 0481FFFD */ bgez $a0, .L80115EA4
|
||||
/* AC5B0 80115EB0 2442FFFC */ addiu $v0, $v0, -4
|
||||
/* AC5B4 80115EB4 3C028015 */ lui $v0, %hi(gCurrentTransformGroups)
|
||||
/* AC5B8 80115EB8 8C4212E0 */ lw $v0, %lo(gCurrentTransformGroups)($v0)
|
||||
/* AC5BC 80115EBC 24040003 */ addiu $a0, $zero, 3
|
||||
/* AC5C0 80115EC0 2442000C */ addiu $v0, $v0, 0xc
|
||||
.L80115EC4:
|
||||
/* AC5C4 80115EC4 AC400000 */ sw $zero, ($v0)
|
||||
/* AC5C8 80115EC8 2484FFFF */ addiu $a0, $a0, -1
|
||||
/* AC5CC 80115ECC 0481FFFD */ bgez $a0, .L80115EC4
|
||||
/* AC5D0 80115ED0 2442FFFC */ addiu $v0, $v0, -4
|
||||
/* AC5D4 80115ED4 0000202D */ daddu $a0, $zero, $zero
|
||||
/* AC5D8 80115ED8 3C058015 */ lui $a1, %hi(gCurrentCustomModelGfxBuildersPtr)
|
||||
/* AC5DC 80115EDC 8CA512B8 */ lw $a1, %lo(gCurrentCustomModelGfxBuildersPtr)($a1)
|
||||
/* AC5E0 80115EE0 3C038015 */ lui $v1, %hi(gCurrentCustomModelGfxPtr)
|
||||
/* AC5E4 80115EE4 8C6312E8 */ lw $v1, %lo(gCurrentCustomModelGfxPtr)($v1)
|
||||
.L80115EE8:
|
||||
/* AC5E8 80115EE8 AC600000 */ sw $zero, ($v1)
|
||||
/* AC5EC 80115EEC ACA00000 */ sw $zero, ($a1)
|
||||
/* AC5F0 80115EF0 24A50004 */ addiu $a1, $a1, 4
|
||||
/* AC5F4 80115EF4 24840001 */ addiu $a0, $a0, 1
|
||||
/* AC5F8 80115EF8 28820020 */ slti $v0, $a0, 0x20
|
||||
/* AC5FC 80115EFC 1440FFFA */ bnez $v0, .L80115EE8
|
||||
/* AC600 80115F00 24630004 */ addiu $v1, $v1, 4
|
||||
/* AC604 80115F04 0000202D */ daddu $a0, $zero, $zero
|
||||
/* AC608 80115F08 3C05800A */ lui $a1, %hi(mdl_currentModelTreeNodeInfo)
|
||||
/* AC60C 80115F0C 24A5A5F4 */ addiu $a1, $a1, %lo(mdl_currentModelTreeNodeInfo)
|
||||
/* AC610 80115F10 3C028015 */ lui $v0, %hi(gCurrentModelTreeRoot)
|
||||
/* AC614 80115F14 8C4212FC */ lw $v0, %lo(gCurrentModelTreeRoot)($v0)
|
||||
/* AC618 80115F18 240600FF */ addiu $a2, $zero, 0xff
|
||||
/* AC61C 80115F1C AC400000 */ sw $zero, ($v0)
|
||||
.L80115F20:
|
||||
/* AC620 80115F20 8CA20000 */ lw $v0, ($a1)
|
||||
/* AC624 80115F24 00041880 */ sll $v1, $a0, 2
|
||||
/* AC628 80115F28 00621021 */ addu $v0, $v1, $v0
|
||||
/* AC62C 80115F2C A0460000 */ sb $a2, ($v0)
|
||||
/* AC630 80115F30 8CA20000 */ lw $v0, ($a1)
|
||||
/* AC634 80115F34 00621021 */ addu $v0, $v1, $v0
|
||||
/* AC638 80115F38 A0400001 */ sb $zero, 1($v0)
|
||||
/* AC63C 80115F3C 8CA20000 */ lw $v0, ($a1)
|
||||
/* AC640 80115F40 24840001 */ addiu $a0, $a0, 1
|
||||
/* AC644 80115F44 00621821 */ addu $v1, $v1, $v0
|
||||
/* AC648 80115F48 28820200 */ slti $v0, $a0, 0x200
|
||||
/* AC64C 80115F4C 1440FFF4 */ bnez $v0, .L80115F20
|
||||
/* AC650 80115F50 A0600002 */ sb $zero, 2($v1)
|
||||
/* AC654 80115F54 0000202D */ daddu $a0, $zero, $zero
|
||||
/* AC658 80115F58 3C088015 */ lui $t0, %hi(texPannerMainU)
|
||||
/* AC65C 80115F5C 25083268 */ addiu $t0, $t0, %lo(texPannerMainU)
|
||||
/* AC660 80115F60 3C078015 */ lui $a3, %hi(texPannerMainV)
|
||||
/* AC664 80115F64 24E732A8 */ addiu $a3, $a3, %lo(texPannerMainV)
|
||||
/* AC668 80115F68 3C068015 */ lui $a2, %hi(texPannerAuxU)
|
||||
/* AC66C 80115F6C 24C632E8 */ addiu $a2, $a2, %lo(texPannerAuxU)
|
||||
/* AC670 80115F70 3C028015 */ lui $v0, %hi(D_801512F0)
|
||||
/* AC674 80115F74 8C4212F0 */ lw $v0, %lo(D_801512F0)($v0)
|
||||
/* AC678 80115F78 3C058015 */ lui $a1, %hi(texPannerAuxV)
|
||||
/* AC67C 80115F7C 24A53328 */ addiu $a1, $a1, %lo(texPannerAuxV)
|
||||
/* AC680 80115F80 A0400000 */ sb $zero, ($v0)
|
||||
/* AC684 80115F84 3C038015 */ lui $v1, %hi(gCurrentFogSettings)
|
||||
/* AC688 80115F88 8C633264 */ lw $v1, %lo(gCurrentFogSettings)($v1)
|
||||
/* AC68C 80115F8C 2402000A */ addiu $v0, $zero, 0xa
|
||||
/* AC690 80115F90 AC620004 */ sw $v0, 4($v1)
|
||||
/* AC694 80115F94 AC620008 */ sw $v0, 8($v1)
|
||||
/* AC698 80115F98 AC62000C */ sw $v0, 0xc($v1)
|
||||
/* AC69C 80115F9C 240203B6 */ addiu $v0, $zero, 0x3b6
|
||||
/* AC6A0 80115FA0 AC620014 */ sw $v0, 0x14($v1)
|
||||
/* AC6A4 80115FA4 240203E8 */ addiu $v0, $zero, 0x3e8
|
||||
/* AC6A8 80115FA8 AC600000 */ sw $zero, ($v1)
|
||||
/* AC6AC 80115FAC AC600010 */ sw $zero, 0x10($v1)
|
||||
/* AC6B0 80115FB0 AC620018 */ sw $v0, 0x18($v1)
|
||||
.L80115FB4:
|
||||
/* AC6B4 80115FB4 ACA00000 */ sw $zero, ($a1)
|
||||
/* AC6B8 80115FB8 ACC00000 */ sw $zero, ($a2)
|
||||
/* AC6BC 80115FBC ACE00000 */ sw $zero, ($a3)
|
||||
/* AC6C0 80115FC0 AD000000 */ sw $zero, ($t0)
|
||||
/* AC6C4 80115FC4 25080004 */ addiu $t0, $t0, 4
|
||||
/* AC6C8 80115FC8 24E70004 */ addiu $a3, $a3, 4
|
||||
/* AC6CC 80115FCC 24C60004 */ addiu $a2, $a2, 4
|
||||
/* AC6D0 80115FD0 24840001 */ addiu $a0, $a0, 1
|
||||
/* AC6D4 80115FD4 28820010 */ slti $v0, $a0, 0x10
|
||||
/* AC6D8 80115FD8 1440FFF6 */ bnez $v0, .L80115FB4
|
||||
/* AC6DC 80115FDC 24A50004 */ addiu $a1, $a1, 4
|
||||
/* AC6E0 80115FE0 03E00008 */ jr $ra
|
||||
/* AC6E4 80115FE4 00000000 */ nop
|
@ -1,43 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel create_entity_shadow
|
||||
/* A88CC 801121CC 44850000 */ mtc1 $a1, $f0
|
||||
/* A88D0 801121D0 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* A88D4 801121D4 AFB00010 */ sw $s0, 0x10($sp)
|
||||
/* A88D8 801121D8 0080802D */ daddu $s0, $a0, $zero
|
||||
/* A88DC 801121DC AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* A88E0 801121E0 8E020038 */ lw $v0, 0x38($s0)
|
||||
/* A88E4 801121E4 44861000 */ mtc1 $a2, $f2
|
||||
/* A88E8 801121E8 94430000 */ lhu $v1, ($v0)
|
||||
/* A88EC 801121EC 44872000 */ mtc1 $a3, $f4
|
||||
/* A88F0 801121F0 30620200 */ andi $v0, $v1, 0x200
|
||||
/* A88F4 801121F4 10400005 */ beqz $v0, .L8011220C
|
||||
/* A88F8 801121F8 30620800 */ andi $v0, $v1, 0x800
|
||||
/* A88FC 801121FC 10400006 */ beqz $v0, .L80112218
|
||||
/* A8900 80112200 24040003 */ addiu $a0, $zero, 3
|
||||
/* A8904 80112204 08044886 */ j .L80112218
|
||||
/* A8908 80112208 24040002 */ addiu $a0, $zero, 2
|
||||
.L8011220C:
|
||||
/* A890C 8011220C 000312C2 */ srl $v0, $v1, 0xb
|
||||
/* A8910 80112210 38420001 */ xori $v0, $v0, 1
|
||||
/* A8914 80112214 30440001 */ andi $a0, $v0, 1
|
||||
.L80112218:
|
||||
/* A8918 80112218 44050000 */ mfc1 $a1, $f0
|
||||
/* A891C 8011221C 44061000 */ mfc1 $a2, $f2
|
||||
/* A8920 80112220 44072000 */ mfc1 $a3, $f4
|
||||
/* A8924 80112224 0C044898 */ jal create_shadow_type
|
||||
/* A8928 80112228 00000000 */ nop
|
||||
/* A892C 8011222C 00022400 */ sll $a0, $v0, 0x10
|
||||
/* A8930 80112230 00042403 */ sra $a0, $a0, 0x10
|
||||
/* A8934 80112234 0C044181 */ jal get_shadow_by_index
|
||||
/* A8938 80112238 A6020016 */ sh $v0, 0x16($s0)
|
||||
/* A893C 8011223C 8C430000 */ lw $v1, ($v0)
|
||||
/* A8940 80112240 3C0400C0 */ lui $a0, 0xc0
|
||||
/* A8944 80112244 00641825 */ or $v1, $v1, $a0
|
||||
/* A8948 80112248 AC430000 */ sw $v1, ($v0)
|
||||
/* A894C 8011224C 86020016 */ lh $v0, 0x16($s0)
|
||||
/* A8950 80112250 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* A8954 80112254 8FB00010 */ lw $s0, 0x10($sp)
|
||||
/* A8958 80112258 03E00008 */ jr $ra
|
||||
/* A895C 8011225C 27BD0018 */ addiu $sp, $sp, 0x18
|
@ -1,69 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
.section .rodata
|
||||
|
||||
glabel jtbl_8014F928
|
||||
.word L801122B0_A89B0, L801122C4_A89C4, L801122AC_A89AC, L801122C0_A89C0, L801122D8_A89D8, L801122D4_A89D4
|
||||
|
||||
.section .text
|
||||
|
||||
glabel create_shadow_type
|
||||
/* A8960 80112260 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* A8964 80112264 0080182D */ daddu $v1, $a0, $zero
|
||||
/* A8968 80112268 AFB00010 */ sw $s0, 0x10($sp)
|
||||
/* A896C 8011226C 0000802D */ daddu $s0, $zero, $zero
|
||||
/* A8970 80112270 3C04802F */ lui $a0, %hi(D_802E98BC)
|
||||
/* A8974 80112274 248498BC */ addiu $a0, $a0, %lo(D_802E98BC)
|
||||
/* A8978 80112278 44850000 */ mtc1 $a1, $f0
|
||||
/* A897C 8011227C 44861000 */ mtc1 $a2, $f2
|
||||
/* A8980 80112280 44872000 */ mtc1 $a3, $f4
|
||||
/* A8984 80112284 2C620006 */ sltiu $v0, $v1, 6
|
||||
/* A8988 80112288 AFBF0018 */ sw $ra, 0x18($sp)
|
||||
/* A898C 8011228C 10400014 */ beqz $v0, .L801122E0
|
||||
/* A8990 80112290 AFB10014 */ sw $s1, 0x14($sp)
|
||||
/* A8994 80112294 00031080 */ sll $v0, $v1, 2
|
||||
/* A8998 80112298 3C018015 */ lui $at, %hi(jtbl_8014F928)
|
||||
/* A899C 8011229C 00220821 */ addu $at, $at, $v0
|
||||
/* A89A0 801122A0 8C22F928 */ lw $v0, %lo(jtbl_8014F928)($at)
|
||||
/* A89A4 801122A4 00400008 */ jr $v0
|
||||
/* A89A8 801122A8 00000000 */ nop
|
||||
glabel L801122AC_A89AC
|
||||
/* A89AC 801122AC 24100001 */ addiu $s0, $zero, 1
|
||||
glabel L801122B0_A89B0
|
||||
/* A89B0 801122B0 3C04802F */ lui $a0, %hi(D_802E98BC)
|
||||
/* A89B4 801122B4 248498BC */ addiu $a0, $a0, %lo(D_802E98BC)
|
||||
/* A89B8 801122B8 080448B8 */ j .L801122E0
|
||||
/* A89BC 801122BC 00000000 */ nop
|
||||
glabel L801122C0_A89C0
|
||||
/* A89C0 801122C0 24100001 */ addiu $s0, $zero, 1
|
||||
glabel L801122C4_A89C4
|
||||
/* A89C4 801122C4 3C04802F */ lui $a0, %hi(D_802E9904)
|
||||
/* A89C8 801122C8 24849904 */ addiu $a0, $a0, %lo(D_802E9904)
|
||||
/* A89CC 801122CC 080448B8 */ j .L801122E0
|
||||
/* A89D0 801122D0 00000000 */ nop
|
||||
glabel L801122D4_A89D4
|
||||
/* A89D4 801122D4 24100001 */ addiu $s0, $zero, 1
|
||||
glabel L801122D8_A89D8
|
||||
/* A89D8 801122D8 3C04802F */ lui $a0, %hi(D_802E98E0)
|
||||
/* A89DC 801122DC 248498E0 */ addiu $a0, $a0, %lo(D_802E98E0)
|
||||
.L801122E0:
|
||||
/* A89E0 801122E0 44050000 */ mfc1 $a1, $f0
|
||||
/* A89E4 801122E4 44061000 */ mfc1 $a2, $f2
|
||||
/* A89E8 801122E8 44072000 */ mfc1 $a3, $f4
|
||||
/* A89EC 801122EC 0C0446F6 */ jal create_shadow_from_data
|
||||
/* A89F0 801122F0 00000000 */ nop
|
||||
/* A89F4 801122F4 12000006 */ beqz $s0, .L80112310
|
||||
/* A89F8 801122F8 0040882D */ daddu $s1, $v0, $zero
|
||||
/* A89FC 801122FC 0C044181 */ jal get_shadow_by_index
|
||||
/* A8A00 80112300 0220202D */ daddu $a0, $s1, $zero
|
||||
/* A8A04 80112304 8C430000 */ lw $v1, ($v0)
|
||||
/* A8A08 80112308 34630200 */ ori $v1, $v1, 0x200
|
||||
/* A8A0C 8011230C AC430000 */ sw $v1, ($v0)
|
||||
.L80112310:
|
||||
/* A8A10 80112310 0220102D */ daddu $v0, $s1, $zero
|
||||
/* A8A14 80112314 8FBF0018 */ lw $ra, 0x18($sp)
|
||||
/* A8A18 80112318 8FB10014 */ lw $s1, 0x14($sp)
|
||||
/* A8A1C 8011231C 8FB00010 */ lw $s0, 0x10($sp)
|
||||
/* A8A20 80112320 03E00008 */ jr $ra
|
||||
/* A8A24 80112324 27BD0020 */ addiu $sp, $sp, 0x20
|
@ -1,33 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel is_block_on_ground
|
||||
/* A9220 80112B20 27BDFFC8 */ addiu $sp, $sp, -0x38
|
||||
/* A9224 80112B24 27A20028 */ addiu $v0, $sp, 0x28
|
||||
/* A9228 80112B28 AFBF0030 */ sw $ra, 0x30($sp)
|
||||
/* A922C 80112B2C C4800048 */ lwc1 $f0, 0x48($a0)
|
||||
/* A9230 80112B30 C482004C */ lwc1 $f2, 0x4c($a0)
|
||||
/* A9234 80112B34 C4840050 */ lwc1 $f4, 0x50($a0)
|
||||
/* A9238 80112B38 27A40018 */ addiu $a0, $sp, 0x18
|
||||
/* A923C 80112B3C 27A5001C */ addiu $a1, $sp, 0x1c
|
||||
/* A9240 80112B40 27A60020 */ addiu $a2, $sp, 0x20
|
||||
/* A9244 80112B44 27A70024 */ addiu $a3, $sp, 0x24
|
||||
/* A9248 80112B48 E7A00018 */ swc1 $f0, 0x18($sp)
|
||||
/* A924C 80112B4C E7A2001C */ swc1 $f2, 0x1c($sp)
|
||||
/* A9250 80112B50 E7A40020 */ swc1 $f4, 0x20($sp)
|
||||
/* A9254 80112B54 AFA20010 */ sw $v0, 0x10($sp)
|
||||
/* A9258 80112B58 27A2002C */ addiu $v0, $sp, 0x2c
|
||||
/* A925C 80112B5C 0C04497A */ jal entity_raycast_down
|
||||
/* A9260 80112B60 AFA20014 */ sw $v0, 0x14($sp)
|
||||
/* A9264 80112B64 C7A0002C */ lwc1 $f0, 0x2c($sp)
|
||||
/* A9268 80112B68 24027FFF */ addiu $v0, $zero, 0x7fff
|
||||
/* A926C 80112B6C 4600018D */ trunc.w.s $f6, $f0
|
||||
/* A9270 80112B70 44033000 */ mfc1 $v1, $f6
|
||||
/* A9274 80112B74 00000000 */ nop
|
||||
/* A9278 80112B78 50620001 */ beql $v1, $v0, .L80112B80
|
||||
/* A927C 80112B7C 0000182D */ daddu $v1, $zero, $zero
|
||||
.L80112B80:
|
||||
/* A9280 80112B80 8FBF0030 */ lw $ra, 0x30($sp)
|
||||
/* A9284 80112B84 0060102D */ daddu $v0, $v1, $zero
|
||||
/* A9288 80112B88 03E00008 */ jr $ra
|
||||
/* A928C 80112B8C 27BD0038 */ addiu $sp, $sp, 0x38
|
@ -1,39 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel load_model_textures
|
||||
/* AC324 80115C24 3C028007 */ lui $v0, %hi(gGameStatusPtr)
|
||||
/* AC328 80115C28 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0)
|
||||
/* AC32C 80115C2C 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* AC330 80115C30 AFBF0010 */ sw $ra, 0x10($sp)
|
||||
/* AC334 80115C34 80420070 */ lb $v0, 0x70($v0)
|
||||
/* AC338 80115C38 3C038015 */ lui $v1, %hi(mdl_textureBaseAddress)
|
||||
/* AC33C 80115C3C 8C63B748 */ lw $v1, %lo(mdl_textureBaseAddress)($v1)
|
||||
/* AC340 80115C40 0002102B */ sltu $v0, $zero, $v0
|
||||
/* AC344 80115C44 00021440 */ sll $v0, $v0, 0x11
|
||||
/* AC348 80115C48 00621821 */ addu $v1, $v1, $v0
|
||||
/* AC34C 80115C4C 3C018015 */ lui $at, %hi(mdl_nextTextureAddress)
|
||||
/* AC350 80115C50 AC233368 */ sw $v1, %lo(mdl_nextTextureAddress)($at)
|
||||
/* AC354 80115C54 10800011 */ beqz $a0, .L80115C9C
|
||||
/* AC358 80115C58 00000000 */ nop
|
||||
/* AC35C 80115C5C 10A0000F */ beqz $a1, .L80115C9C
|
||||
/* AC360 80115C60 00000000 */ nop
|
||||
/* AC364 80115C64 10C0000D */ beqz $a2, .L80115C9C
|
||||
/* AC368 80115C68 2403007F */ addiu $v1, $zero, 0x7f
|
||||
/* AC36C 80115C6C 3C028016 */ lui $v0, %hi(D_8015C74C)
|
||||
/* AC370 80115C70 2442C74C */ addiu $v0, $v0, %lo(D_8015C74C)
|
||||
.L80115C74:
|
||||
/* AC374 80115C74 AC400000 */ sw $zero, ($v0)
|
||||
/* AC378 80115C78 2463FFFF */ addiu $v1, $v1, -1
|
||||
/* AC37C 80115C7C 0461FFFD */ bgez $v1, .L80115C74
|
||||
/* AC380 80115C80 2442FFBC */ addiu $v0, $v0, -0x44
|
||||
/* AC384 80115C84 3C018015 */ lui $at, %hi(mdl_treeIterPos)
|
||||
/* AC388 80115C88 AC203224 */ sw $zero, %lo(mdl_treeIterPos)($at)
|
||||
/* AC38C 80115C8C 10800003 */ beqz $a0, .L80115C9C
|
||||
/* AC390 80115C90 00000000 */ nop
|
||||
/* AC394 80115C94 0C0456D1 */ jal _load_model_textures
|
||||
/* AC398 80115C98 00000000 */ nop
|
||||
.L80115C9C:
|
||||
/* AC39C 80115C9C 8FBF0010 */ lw $ra, 0x10($sp)
|
||||
/* AC3A0 80115CA0 03E00008 */ jr $ra
|
||||
/* AC3A4 80115CA4 27BD0018 */ addiu $sp, $sp, 0x18
|
@ -1,23 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel mdl_get_next_texture_address
|
||||
/* B3EE4 8011D7E4 3C030002 */ lui $v1, 2
|
||||
/* B3EE8 8011D7E8 3C028015 */ lui $v0, %hi(mdl_nextTextureAddress)
|
||||
/* B3EEC 8011D7EC 8C423368 */ lw $v0, %lo(mdl_nextTextureAddress)($v0)
|
||||
/* B3EF0 8011D7F0 3C058015 */ lui $a1, %hi(mdl_textureBaseAddress)
|
||||
/* B3EF4 8011D7F4 8CA5B748 */ lw $a1, %lo(mdl_textureBaseAddress)($a1)
|
||||
/* B3EF8 8011D7F8 34638000 */ ori $v1, $v1, 0x8000
|
||||
/* B3EFC 8011D7FC 00451023 */ subu $v0, $v0, $a1
|
||||
/* B3F00 8011D800 2442003F */ addiu $v0, $v0, 0x3f
|
||||
/* B3F04 8011D804 00021182 */ srl $v0, $v0, 6
|
||||
/* B3F08 8011D808 00021180 */ sll $v0, $v0, 6
|
||||
/* B3F0C 8011D80C 00822021 */ addu $a0, $a0, $v0
|
||||
/* B3F10 8011D810 0064182B */ sltu $v1, $v1, $a0
|
||||
/* B3F14 8011D814 10600003 */ beqz $v1, .L8011D824
|
||||
/* B3F18 8011D818 00A21021 */ addu $v0, $a1, $v0
|
||||
/* B3F1C 8011D81C 03E00008 */ jr $ra
|
||||
/* B3F20 8011D820 0000102D */ daddu $v0, $zero, $zero
|
||||
.L8011D824:
|
||||
/* B3F24 8011D824 03E00008 */ jr $ra
|
||||
/* B3F28 8011D828 00000000 */ nop
|
@ -1,31 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel mdl_set_all_fog_mode
|
||||
/* B3F2C 8011D82C 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* B3F30 8011D830 AFB10014 */ sw $s1, 0x14($sp)
|
||||
/* B3F34 8011D834 3C118015 */ lui $s1, %hi(gCurrentModels)
|
||||
/* B3F38 8011D838 8E3112CC */ lw $s1, %lo(gCurrentModels)($s1)
|
||||
/* B3F3C 8011D83C AFB20018 */ sw $s2, 0x18($sp)
|
||||
/* B3F40 8011D840 0080902D */ daddu $s2, $a0, $zero
|
||||
/* B3F44 8011D844 AFB00010 */ sw $s0, 0x10($sp)
|
||||
/* B3F48 8011D848 0000802D */ daddu $s0, $zero, $zero
|
||||
/* B3F4C 8011D84C AFBF001C */ sw $ra, 0x1c($sp)
|
||||
.L8011D850:
|
||||
/* B3F50 8011D850 8E240000 */ lw $a0, ($s1)
|
||||
/* B3F54 8011D854 50800005 */ beql $a0, $zero, .L8011D86C
|
||||
/* B3F58 8011D858 26100001 */ addiu $s0, $s0, 1
|
||||
/* B3F5C 8011D85C 2405FFFF */ addiu $a1, $zero, -1
|
||||
/* B3F60 8011D860 0C046F1F */ jal set_mdl_custom_gfx_set
|
||||
/* B3F64 8011D864 0240302D */ daddu $a2, $s2, $zero
|
||||
/* B3F68 8011D868 26100001 */ addiu $s0, $s0, 1
|
||||
.L8011D86C:
|
||||
/* B3F6C 8011D86C 2A020100 */ slti $v0, $s0, 0x100
|
||||
/* B3F70 8011D870 1440FFF7 */ bnez $v0, .L8011D850
|
||||
/* B3F74 8011D874 26310004 */ addiu $s1, $s1, 4
|
||||
/* B3F78 8011D878 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* B3F7C 8011D87C 8FB20018 */ lw $s2, 0x18($sp)
|
||||
/* B3F80 8011D880 8FB10014 */ lw $s1, 0x14($sp)
|
||||
/* B3F84 8011D884 8FB00010 */ lw $s0, 0x10($sp)
|
||||
/* B3F88 8011D888 03E00008 */ jr $ra
|
||||
/* B3F8C 8011D88C 27BD0020 */ addiu $sp, $sp, 0x20
|
@ -1,74 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
.section .rodata
|
||||
|
||||
glabel D_8014F968
|
||||
.double 0.13
|
||||
|
||||
glabel D_8014F970
|
||||
.double 0.12
|
||||
|
||||
glabel D_8014F978
|
||||
.double 0.01
|
||||
|
||||
.section .text
|
||||
|
||||
glabel set_npc_shadow_scale
|
||||
/* A9000 80112900 3C028007 */ lui $v0, %hi(gGameStatusPtr)
|
||||
/* A9004 80112904 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0)
|
||||
/* A9008 80112908 44851000 */ mtc1 $a1, $f2
|
||||
/* A900C 8011290C 80420070 */ lb $v0, 0x70($v0)
|
||||
/* A9010 80112910 44862000 */ mtc1 $a2, $f4
|
||||
/* A9014 80112914 1440000A */ bnez $v0, .L80112940
|
||||
/* A9018 80112918 00000000 */ nop
|
||||
/* A901C 8011291C 3C014522 */ lui $at, 0x4522
|
||||
/* A9020 80112920 34218000 */ ori $at, $at, 0x8000
|
||||
/* A9024 80112924 44810000 */ mtc1 $at, $f0
|
||||
/* A9028 80112928 00000000 */ nop
|
||||
/* A902C 8011292C 46001003 */ div.s $f0, $f2, $f0
|
||||
/* A9030 80112930 3C018015 */ lui $at, %hi(D_8014F968)
|
||||
/* A9034 80112934 D422F968 */ ldc1 $f2, %lo(D_8014F968)($at)
|
||||
/* A9038 80112938 08044A57 */ j .L8011295C
|
||||
/* A903C 8011293C 46000021 */ cvt.d.s $f0, $f0
|
||||
.L80112940:
|
||||
/* A9040 80112940 3C014561 */ lui $at, 0x4561
|
||||
/* A9044 80112944 44810000 */ mtc1 $at, $f0
|
||||
/* A9048 80112948 00000000 */ nop
|
||||
/* A904C 8011294C 46001003 */ div.s $f0, $f2, $f0
|
||||
/* A9050 80112950 3C018015 */ lui $at, %hi(D_8014F970)
|
||||
/* A9054 80112954 D422F970 */ ldc1 $f2, %lo(D_8014F970)($at)
|
||||
/* A9058 80112958 46000021 */ cvt.d.s $f0, $f0
|
||||
.L8011295C:
|
||||
/* A905C 8011295C 46201081 */ sub.d $f2, $f2, $f0
|
||||
/* A9060 80112960 462010A0 */ cvt.s.d $f2, $f2
|
||||
/* A9064 80112964 E482001C */ swc1 $f2, 0x1c($a0)
|
||||
/* A9068 80112968 C480001C */ lwc1 $f0, 0x1c($a0)
|
||||
/* A906C 8011296C 3C018015 */ lui $at, %hi(D_8014F978)
|
||||
/* A9070 80112970 D422F978 */ ldc1 $f2, %lo(D_8014F978)($at)
|
||||
/* A9074 80112974 46000021 */ cvt.d.s $f0, $f0
|
||||
/* A9078 80112978 4622003C */ c.lt.d $f0, $f2
|
||||
/* A907C 8011297C 00000000 */ nop
|
||||
/* A9080 80112980 45000006 */ bc1f .L8011299C
|
||||
/* A9084 80112984 00000000 */ nop
|
||||
/* A9088 80112988 3C013C23 */ lui $at, 0x3c23
|
||||
/* A908C 8011298C 3421D70A */ ori $at, $at, 0xd70a
|
||||
/* A9090 80112990 44810000 */ mtc1 $at, $f0
|
||||
/* A9094 80112994 00000000 */ nop
|
||||
/* A9098 80112998 E480001C */ swc1 $f0, 0x1c($a0)
|
||||
.L8011299C:
|
||||
/* A909C 8011299C 3C014270 */ lui $at, 0x4270
|
||||
/* A90A0 801129A0 44810000 */ mtc1 $at, $f0
|
||||
/* A90A4 801129A4 00000000 */ nop
|
||||
/* A90A8 801129A8 4604003C */ c.lt.s $f0, $f4
|
||||
/* A90AC 801129AC 00000000 */ nop
|
||||
/* A90B0 801129B0 45000005 */ bc1f .L801129C8
|
||||
/* A90B4 801129B4 00000000 */ nop
|
||||
/* A90B8 801129B8 C480001C */ lwc1 $f0, 0x1c($a0)
|
||||
/* A90BC 801129BC 46000000 */ add.s $f0, $f0, $f0
|
||||
/* A90C0 801129C0 03E00008 */ jr $ra
|
||||
/* A90C4 801129C4 E4800024 */ swc1 $f0, 0x24($a0)
|
||||
.L801129C8:
|
||||
/* A90C8 801129C8 C480001C */ lwc1 $f0, 0x1c($a0)
|
||||
/* A90CC 801129CC 03E00008 */ jr $ra
|
||||
/* A90D0 801129D0 E4800024 */ swc1 $f0, 0x24($a0)
|
@ -1,103 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
.section .rodata
|
||||
|
||||
glabel D_8014F980
|
||||
.double 0.01
|
||||
|
||||
glabel D_8014F988
|
||||
.double 0.01
|
||||
|
||||
.section .text
|
||||
|
||||
glabel set_peach_shadow_scale
|
||||
/* A90D4 801129D4 3C028007 */ lui $v0, %hi(gGameStatusPtr)
|
||||
/* A90D8 801129D8 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0)
|
||||
/* A90DC 801129DC 44852000 */ mtc1 $a1, $f4
|
||||
/* A90E0 801129E0 80420070 */ lb $v0, 0x70($v0)
|
||||
/* A90E4 801129E4 3C013DF5 */ lui $at, 0x3df5
|
||||
/* A90E8 801129E8 3421C28F */ ori $at, $at, 0xc28f
|
||||
/* A90EC 801129EC 44811000 */ mtc1 $at, $f2
|
||||
/* A90F0 801129F0 14400036 */ bnez $v0, .L80112ACC
|
||||
/* A90F4 801129F4 3C03000C */ lui $v1, 0xc
|
||||
/* A90F8 801129F8 3C028011 */ lui $v0, %hi(gPlayerStatus)
|
||||
/* A90FC 801129FC 2442EFC8 */ addiu $v0, $v0, %lo(gPlayerStatus)
|
||||
/* A9100 80112A00 8C4500B8 */ lw $a1, 0xb8($v0)
|
||||
/* A9104 80112A04 34630018 */ ori $v1, $v1, 0x18
|
||||
/* A9108 80112A08 00A3182B */ sltu $v1, $a1, $v1
|
||||
/* A910C 80112A0C 1460002C */ bnez $v1, .L80112AC0
|
||||
/* A9110 80112A10 3C02000C */ lui $v0, 0xc
|
||||
/* A9114 80112A14 3442001A */ ori $v0, $v0, 0x1a
|
||||
/* A9118 80112A18 0045102B */ sltu $v0, $v0, $a1
|
||||
/* A911C 80112A1C 10400004 */ beqz $v0, .L80112A30
|
||||
/* A9120 80112A20 3C02000D */ lui $v0, 0xd
|
||||
/* A9124 80112A24 34420008 */ ori $v0, $v0, 8
|
||||
/* A9128 80112A28 14A20025 */ bne $a1, $v0, .L80112AC0
|
||||
/* A912C 80112A2C 00000000 */ nop
|
||||
.L80112A30:
|
||||
/* A9130 80112A30 3C014522 */ lui $at, 0x4522
|
||||
/* A9134 80112A34 34218000 */ ori $at, $at, 0x8000
|
||||
/* A9138 80112A38 44810000 */ mtc1 $at, $f0
|
||||
/* A913C 80112A3C 3C013E85 */ lui $at, 0x3e85
|
||||
/* A9140 80112A40 34211EB8 */ ori $at, $at, 0x1eb8
|
||||
/* A9144 80112A44 44811000 */ mtc1 $at, $f2
|
||||
/* A9148 80112A48 46002103 */ div.s $f4, $f4, $f0
|
||||
/* A914C 80112A4C 46041081 */ sub.s $f2, $f2, $f4
|
||||
/* A9150 80112A50 3C018015 */ lui $at, %hi(D_8014F980)
|
||||
/* A9154 80112A54 D426F980 */ ldc1 $f6, %lo(D_8014F980)($at)
|
||||
/* A9158 80112A58 46001021 */ cvt.d.s $f0, $f2
|
||||
/* A915C 80112A5C 4626003C */ c.lt.d $f0, $f6
|
||||
/* A9160 80112A60 00000000 */ nop
|
||||
/* A9164 80112A64 45000006 */ bc1f .L80112A80
|
||||
/* A9168 80112A68 E482001C */ swc1 $f2, 0x1c($a0)
|
||||
/* A916C 80112A6C 3C013C23 */ lui $at, 0x3c23
|
||||
/* A9170 80112A70 3421D70A */ ori $at, $at, 0xd70a
|
||||
/* A9174 80112A74 44810000 */ mtc1 $at, $f0
|
||||
/* A9178 80112A78 00000000 */ nop
|
||||
/* A917C 80112A7C E480001C */ swc1 $f0, 0x1c($a0)
|
||||
.L80112A80:
|
||||
/* A9180 80112A80 3C013E05 */ lui $at, 0x3e05
|
||||
/* A9184 80112A84 34211EB8 */ ori $at, $at, 0x1eb8
|
||||
/* A9188 80112A88 44810000 */ mtc1 $at, $f0
|
||||
/* A918C 80112A8C 00000000 */ nop
|
||||
/* A9190 80112A90 46040001 */ sub.s $f0, $f0, $f4
|
||||
/* A9194 80112A94 E4800024 */ swc1 $f0, 0x24($a0)
|
||||
/* A9198 80112A98 46000021 */ cvt.d.s $f0, $f0
|
||||
/* A919C 80112A9C 4626003C */ c.lt.d $f0, $f6
|
||||
/* A91A0 80112AA0 00000000 */ nop
|
||||
/* A91A4 80112AA4 4500001C */ bc1f .L80112B18
|
||||
/* A91A8 80112AA8 00000000 */ nop
|
||||
/* A91AC 80112AAC 3C013C23 */ lui $at, 0x3c23
|
||||
/* A91B0 80112AB0 3421D70A */ ori $at, $at, 0xd70a
|
||||
/* A91B4 80112AB4 44810000 */ mtc1 $at, $f0
|
||||
/* A91B8 80112AB8 03E00008 */ jr $ra
|
||||
/* A91BC 80112ABC E4800024 */ swc1 $f0, 0x24($a0)
|
||||
.L80112AC0:
|
||||
/* A91C0 80112AC0 3C013E23 */ lui $at, 0x3e23
|
||||
/* A91C4 80112AC4 3421D70A */ ori $at, $at, 0xd70a
|
||||
/* A91C8 80112AC8 44811000 */ mtc1 $at, $f2
|
||||
.L80112ACC:
|
||||
/* A91CC 80112ACC 3C014561 */ lui $at, 0x4561
|
||||
/* A91D0 80112AD0 44810000 */ mtc1 $at, $f0
|
||||
/* A91D4 80112AD4 00000000 */ nop
|
||||
/* A91D8 80112AD8 46002003 */ div.s $f0, $f4, $f0
|
||||
/* A91DC 80112ADC 46001001 */ sub.s $f0, $f2, $f0
|
||||
/* A91E0 80112AE0 3C018015 */ lui $at, %hi(D_8014F988)
|
||||
/* A91E4 80112AE4 D424F988 */ ldc1 $f4, %lo(D_8014F988)($at)
|
||||
/* A91E8 80112AE8 460000A1 */ cvt.d.s $f2, $f0
|
||||
/* A91EC 80112AEC 4624103C */ c.lt.d $f2, $f4
|
||||
/* A91F0 80112AF0 00000000 */ nop
|
||||
/* A91F4 80112AF4 45000006 */ bc1f .L80112B10
|
||||
/* A91F8 80112AF8 E480001C */ swc1 $f0, 0x1c($a0)
|
||||
/* A91FC 80112AFC 3C013C23 */ lui $at, 0x3c23
|
||||
/* A9200 80112B00 3421D70A */ ori $at, $at, 0xd70a
|
||||
/* A9204 80112B04 44810000 */ mtc1 $at, $f0
|
||||
/* A9208 80112B08 00000000 */ nop
|
||||
/* A920C 80112B0C E480001C */ swc1 $f0, 0x1c($a0)
|
||||
.L80112B10:
|
||||
/* A9210 80112B10 C480001C */ lwc1 $f0, 0x1c($a0)
|
||||
/* A9214 80112B14 E4800024 */ swc1 $f0, 0x24($a0)
|
||||
.L80112B18:
|
||||
/* A9218 80112B18 03E00008 */ jr $ra
|
||||
/* A921C 80112B1C 00000000 */ nop
|
@ -1,61 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
.section .rodata
|
||||
|
||||
glabel D_8014F950
|
||||
.double 0.13
|
||||
|
||||
glabel D_8014F958
|
||||
.double 0.12
|
||||
|
||||
glabel D_8014F960
|
||||
.double 0.01
|
||||
|
||||
.section .text
|
||||
|
||||
glabel set_standard_shadow_scale
|
||||
/* A8F5C 8011285C 3C028007 */ lui $v0, %hi(gGameStatusPtr)
|
||||
/* A8F60 80112860 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0)
|
||||
/* A8F64 80112864 80420070 */ lb $v0, 0x70($v0)
|
||||
/* A8F68 80112868 44851000 */ mtc1 $a1, $f2
|
||||
/* A8F6C 8011286C 1440000A */ bnez $v0, .L80112898
|
||||
/* A8F70 80112870 00000000 */ nop
|
||||
/* A8F74 80112874 3C014522 */ lui $at, 0x4522
|
||||
/* A8F78 80112878 34218000 */ ori $at, $at, 0x8000
|
||||
/* A8F7C 8011287C 44810000 */ mtc1 $at, $f0
|
||||
/* A8F80 80112880 00000000 */ nop
|
||||
/* A8F84 80112884 46001003 */ div.s $f0, $f2, $f0
|
||||
/* A8F88 80112888 3C018015 */ lui $at, %hi(D_8014F950)
|
||||
/* A8F8C 8011288C D422F950 */ ldc1 $f2, %lo(D_8014F950)($at)
|
||||
/* A8F90 80112890 08044A2D */ j .L801128B4
|
||||
/* A8F94 80112894 46000021 */ cvt.d.s $f0, $f0
|
||||
.L80112898:
|
||||
/* A8F98 80112898 3C014561 */ lui $at, 0x4561
|
||||
/* A8F9C 8011289C 44810000 */ mtc1 $at, $f0
|
||||
/* A8FA0 801128A0 00000000 */ nop
|
||||
/* A8FA4 801128A4 46001003 */ div.s $f0, $f2, $f0
|
||||
/* A8FA8 801128A8 3C018015 */ lui $at, %hi(D_8014F958)
|
||||
/* A8FAC 801128AC D422F958 */ ldc1 $f2, %lo(D_8014F958)($at)
|
||||
/* A8FB0 801128B0 46000021 */ cvt.d.s $f0, $f0
|
||||
.L801128B4:
|
||||
/* A8FB4 801128B4 46201081 */ sub.d $f2, $f2, $f0
|
||||
/* A8FB8 801128B8 462010A0 */ cvt.s.d $f2, $f2
|
||||
/* A8FBC 801128BC E482001C */ swc1 $f2, 0x1c($a0)
|
||||
/* A8FC0 801128C0 C480001C */ lwc1 $f0, 0x1c($a0)
|
||||
/* A8FC4 801128C4 3C018015 */ lui $at, %hi(D_8014F960)
|
||||
/* A8FC8 801128C8 D422F960 */ ldc1 $f2, %lo(D_8014F960)($at)
|
||||
/* A8FCC 801128CC 46000021 */ cvt.d.s $f0, $f0
|
||||
/* A8FD0 801128D0 4622003C */ c.lt.d $f0, $f2
|
||||
/* A8FD4 801128D4 00000000 */ nop
|
||||
/* A8FD8 801128D8 45000006 */ bc1f .L801128F4
|
||||
/* A8FDC 801128DC 00000000 */ nop
|
||||
/* A8FE0 801128E0 3C013C23 */ lui $at, 0x3c23
|
||||
/* A8FE4 801128E4 3421D70A */ ori $at, $at, 0xd70a
|
||||
/* A8FE8 801128E8 44810000 */ mtc1 $at, $f0
|
||||
/* A8FEC 801128EC 00000000 */ nop
|
||||
/* A8FF0 801128F0 E480001C */ swc1 $f0, 0x1c($a0)
|
||||
.L801128F4:
|
||||
/* A8FF4 801128F4 C480001C */ lwc1 $f0, 0x1c($a0)
|
||||
/* A8FF8 801128F8 03E00008 */ jr $ra
|
||||
/* A8FFC 801128FC E4800024 */ swc1 $f0, 0x24($a0)
|
@ -1,33 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel state_do_unk
|
||||
/* A95EC 80112EEC 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* A95F0 80112EF0 AFB00010 */ sw $s0, 0x10($sp)
|
||||
/* A95F4 80112EF4 3C108015 */ lui $s0, %hi(gMainGameState)
|
||||
/* A95F8 80112EF8 26101700 */ addiu $s0, $s0, %lo(gMainGameState)
|
||||
/* A95FC 80112EFC AFB10014 */ sw $s1, 0x14($sp)
|
||||
/* A9600 80112F00 0000882D */ daddu $s1, $zero, $zero
|
||||
/* A9604 80112F04 AFBF0018 */ sw $ra, 0x18($sp)
|
||||
.L80112F08:
|
||||
/* A9608 80112F08 96030000 */ lhu $v1, ($s0)
|
||||
/* A960C 80112F0C 5060000A */ beql $v1, $zero, .L80112F38
|
||||
/* A9610 80112F10 26310001 */ addiu $s1, $s1, 1
|
||||
/* A9614 80112F14 30620004 */ andi $v0, $v1, 4
|
||||
/* A9618 80112F18 14400007 */ bnez $v0, .L80112F38
|
||||
/* A961C 80112F1C 26310001 */ addiu $s1, $s1, 1
|
||||
/* A9620 80112F20 30620010 */ andi $v0, $v1, 0x10
|
||||
/* A9624 80112F24 14400004 */ bnez $v0, .L80112F38
|
||||
/* A9628 80112F28 00000000 */ nop
|
||||
/* A962C 80112F2C 8E02000C */ lw $v0, 0xc($s0)
|
||||
/* A9630 80112F30 0040F809 */ jalr $v0
|
||||
/* A9634 80112F34 00000000 */ nop
|
||||
.L80112F38:
|
||||
/* A9638 80112F38 2A220002 */ slti $v0, $s1, 2
|
||||
/* A963C 80112F3C 1440FFF2 */ bnez $v0, .L80112F08
|
||||
/* A9640 80112F40 26100018 */ addiu $s0, $s0, 0x18
|
||||
/* A9644 80112F44 8FBF0018 */ lw $ra, 0x18($sp)
|
||||
/* A9648 80112F48 8FB10014 */ lw $s1, 0x14($sp)
|
||||
/* A964C 80112F4C 8FB00010 */ lw $s0, 0x10($sp)
|
||||
/* A9650 80112F50 03E00008 */ jr $ra
|
||||
/* A9654 80112F54 27BD0020 */ addiu $sp, $sp, 0x20
|
@ -1,33 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel state_render_backUI
|
||||
/* A9658 80112F58 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* A965C 80112F5C AFB00010 */ sw $s0, 0x10($sp)
|
||||
/* A9660 80112F60 3C108015 */ lui $s0, %hi(gMainGameState)
|
||||
/* A9664 80112F64 26101700 */ addiu $s0, $s0, %lo(gMainGameState)
|
||||
/* A9668 80112F68 AFB10014 */ sw $s1, 0x14($sp)
|
||||
/* A966C 80112F6C 0000882D */ daddu $s1, $zero, $zero
|
||||
/* A9670 80112F70 AFBF0018 */ sw $ra, 0x18($sp)
|
||||
.L80112F74:
|
||||
/* A9674 80112F74 96030000 */ lhu $v1, ($s0)
|
||||
/* A9678 80112F78 5060000A */ beql $v1, $zero, .L80112FA4
|
||||
/* A967C 80112F7C 26310001 */ addiu $s1, $s1, 1
|
||||
/* A9680 80112F80 30620004 */ andi $v0, $v1, 4
|
||||
/* A9684 80112F84 14400007 */ bnez $v0, .L80112FA4
|
||||
/* A9688 80112F88 26310001 */ addiu $s1, $s1, 1
|
||||
/* A968C 80112F8C 30620010 */ andi $v0, $v1, 0x10
|
||||
/* A9690 80112F90 14400004 */ bnez $v0, .L80112FA4
|
||||
/* A9694 80112F94 00000000 */ nop
|
||||
/* A9698 80112F98 8E020010 */ lw $v0, 0x10($s0)
|
||||
/* A969C 80112F9C 0040F809 */ jalr $v0
|
||||
/* A96A0 80112FA0 00000000 */ nop
|
||||
.L80112FA4:
|
||||
/* A96A4 80112FA4 2A220002 */ slti $v0, $s1, 2
|
||||
/* A96A8 80112FA8 1440FFF2 */ bnez $v0, .L80112F74
|
||||
/* A96AC 80112FAC 26100018 */ addiu $s0, $s0, 0x18
|
||||
/* A96B0 80112FB0 8FBF0018 */ lw $ra, 0x18($sp)
|
||||
/* A96B4 80112FB4 8FB10014 */ lw $s1, 0x14($sp)
|
||||
/* A96B8 80112FB8 8FB00010 */ lw $s0, 0x10($sp)
|
||||
/* A96BC 80112FBC 03E00008 */ jr $ra
|
||||
/* A96C0 80112FC0 27BD0020 */ addiu $sp, $sp, 0x20
|
@ -1,59 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel state_render_frontUI
|
||||
/* A96C4 80112FC4 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* A96C8 80112FC8 AFB00010 */ sw $s0, 0x10($sp)
|
||||
/* A96CC 80112FCC 3C108015 */ lui $s0, %hi(gMainGameState)
|
||||
/* A96D0 80112FD0 26101700 */ addiu $s0, $s0, %lo(gMainGameState)
|
||||
/* A96D4 80112FD4 AFB10014 */ sw $s1, 0x14($sp)
|
||||
/* A96D8 80112FD8 0000882D */ daddu $s1, $zero, $zero
|
||||
/* A96DC 80112FDC AFBF0018 */ sw $ra, 0x18($sp)
|
||||
.L80112FE0:
|
||||
/* A96E0 80112FE0 96030000 */ lhu $v1, ($s0)
|
||||
/* A96E4 80112FE4 5060000D */ beql $v1, $zero, .L8011301C
|
||||
/* A96E8 80112FE8 26310001 */ addiu $s1, $s1, 1
|
||||
/* A96EC 80112FEC 30620004 */ andi $v0, $v1, 4
|
||||
/* A96F0 80112FF0 5440000A */ bnel $v0, $zero, .L8011301C
|
||||
/* A96F4 80112FF4 26310001 */ addiu $s1, $s1, 1
|
||||
/* A96F8 80112FF8 30620002 */ andi $v0, $v1, 2
|
||||
/* A96FC 80112FFC 14400007 */ bnez $v0, .L8011301C
|
||||
/* A9700 80113000 26310001 */ addiu $s1, $s1, 1
|
||||
/* A9704 80113004 30620020 */ andi $v0, $v1, 0x20
|
||||
/* A9708 80113008 10400004 */ beqz $v0, .L8011301C
|
||||
/* A970C 8011300C 00000000 */ nop
|
||||
/* A9710 80113010 8E020014 */ lw $v0, 0x14($s0)
|
||||
/* A9714 80113014 0040F809 */ jalr $v0
|
||||
/* A9718 80113018 00000000 */ nop
|
||||
.L8011301C:
|
||||
/* A971C 8011301C 2A220002 */ slti $v0, $s1, 2
|
||||
/* A9720 80113020 1440FFEF */ bnez $v0, .L80112FE0
|
||||
/* A9724 80113024 26100018 */ addiu $s0, $s0, 0x18
|
||||
/* A9728 80113028 3C108015 */ lui $s0, %hi(gMainGameState)
|
||||
/* A972C 8011302C 26101700 */ addiu $s0, $s0, %lo(gMainGameState)
|
||||
/* A9730 80113030 0000882D */ daddu $s1, $zero, $zero
|
||||
.L80113034:
|
||||
/* A9734 80113034 96030000 */ lhu $v1, ($s0)
|
||||
/* A9738 80113038 5060000D */ beql $v1, $zero, .L80113070
|
||||
/* A973C 8011303C 26310001 */ addiu $s1, $s1, 1
|
||||
/* A9740 80113040 30620004 */ andi $v0, $v1, 4
|
||||
/* A9744 80113044 5440000A */ bnel $v0, $zero, .L80113070
|
||||
/* A9748 80113048 26310001 */ addiu $s1, $s1, 1
|
||||
/* A974C 8011304C 30620002 */ andi $v0, $v1, 2
|
||||
/* A9750 80113050 14400007 */ bnez $v0, .L80113070
|
||||
/* A9754 80113054 26310001 */ addiu $s1, $s1, 1
|
||||
/* A9758 80113058 30620010 */ andi $v0, $v1, 0x10
|
||||
/* A975C 8011305C 10400004 */ beqz $v0, .L80113070
|
||||
/* A9760 80113060 00000000 */ nop
|
||||
/* A9764 80113064 8E020010 */ lw $v0, 0x10($s0)
|
||||
/* A9768 80113068 0040F809 */ jalr $v0
|
||||
/* A976C 8011306C 00000000 */ nop
|
||||
.L80113070:
|
||||
/* A9770 80113070 2A220002 */ slti $v0, $s1, 2
|
||||
/* A9774 80113074 1440FFEF */ bnez $v0, .L80113034
|
||||
/* A9778 80113078 26100018 */ addiu $s0, $s0, 0x18
|
||||
/* A977C 8011307C 8FBF0018 */ lw $ra, 0x18($sp)
|
||||
/* A9780 80113080 8FB10014 */ lw $s1, 0x14($sp)
|
||||
/* A9784 80113084 8FB00010 */ lw $s0, 0x10($sp)
|
||||
/* A9788 80113088 03E00008 */ jr $ra
|
||||
/* A978C 8011308C 27BD0020 */ addiu $sp, $sp, 0x20
|
@ -1,59 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel func_E000E174
|
||||
/* 32C284 E000E174 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* 32C288 E000E178 AFBF0010 */ sw $ra, 0x10($sp)
|
||||
/* 32C28C E000E17C 8C86000C */ lw $a2, 0xc($a0)
|
||||
/* 32C290 E000E180 8CC2006C */ lw $v0, 0x6c($a2)
|
||||
/* 32C294 E000E184 8CC30070 */ lw $v1, 0x70($a2)
|
||||
/* 32C298 E000E188 00021080 */ sll $v0, $v0, 2
|
||||
/* 32C29C E000E18C 3C01E001 */ lui $at, %hi(D_E000E684)
|
||||
/* 32C2A0 E000E190 00220821 */ addu $at, $at, $v0
|
||||
/* 32C2A4 E000E194 8C22E684 */ lw $v0, %lo(D_E000E684)($at)
|
||||
/* 32C2A8 E000E198 00431021 */ addu $v0, $v0, $v1
|
||||
/* 32C2AC E000E19C 80420000 */ lb $v0, ($v0)
|
||||
/* 32C2B0 E000E1A0 24630001 */ addiu $v1, $v1, 1
|
||||
/* 32C2B4 E000E1A4 ACC30070 */ sw $v1, 0x70($a2)
|
||||
/* 32C2B8 E000E1A8 04410005 */ bgez $v0, .LE000E1C0
|
||||
/* 32C2BC E000E1AC ACC20074 */ sw $v0, 0x74($a2)
|
||||
/* 32C2C0 E000E1B0 0C080128 */ jal shim_remove_effect
|
||||
/* 32C2C4 E000E1B4 00000000 */ nop
|
||||
/* 32C2C8 E000E1B8 0800388E */ j .LE000E238
|
||||
/* 32C2CC E000E1BC 00000000 */ nop
|
||||
.LE000E1C0:
|
||||
/* 32C2D0 E000E1C0 8C820008 */ lw $v0, 8($a0)
|
||||
/* 32C2D4 E000E1C4 1840001C */ blez $v0, .LE000E238
|
||||
/* 32C2D8 E000E1C8 0000282D */ daddu $a1, $zero, $zero
|
||||
/* 32C2DC E000E1CC 24C3000C */ addiu $v1, $a2, 0xc
|
||||
.LE000E1D0:
|
||||
/* 32C2E0 E000E1D0 C462004C */ lwc1 $f2, 0x4c($v1)
|
||||
/* 32C2E4 E000E1D4 C4600058 */ lwc1 $f0, 0x58($v1)
|
||||
/* 32C2E8 E000E1D8 46001082 */ mul.s $f2, $f2, $f0
|
||||
/* 32C2EC E000E1DC 00000000 */ nop
|
||||
/* 32C2F0 E000E1E0 C468004C */ lwc1 $f8, 0x4c($v1)
|
||||
/* 32C2F4 E000E1E4 C460005C */ lwc1 $f0, 0x5c($v1)
|
||||
/* 32C2F8 E000E1E8 46004202 */ mul.s $f8, $f8, $f0
|
||||
/* 32C2FC E000E1EC 00000000 */ nop
|
||||
/* 32C300 E000E1F0 C466FFFC */ lwc1 $f6, -4($v1)
|
||||
/* 32C304 E000E1F4 C4600054 */ lwc1 $f0, 0x54($v1)
|
||||
/* 32C308 E000E1F8 46023180 */ add.s $f6, $f6, $f2
|
||||
/* 32C30C E000E1FC C4620050 */ lwc1 $f2, 0x50($v1)
|
||||
/* 32C310 E000E200 46001080 */ add.s $f2, $f2, $f0
|
||||
/* 32C314 E000E204 C4640004 */ lwc1 $f4, 4($v1)
|
||||
/* 32C318 E000E208 46082100 */ add.s $f4, $f4, $f8
|
||||
/* 32C31C E000E20C C4600000 */ lwc1 $f0, ($v1)
|
||||
/* 32C320 E000E210 24A50001 */ addiu $a1, $a1, 1
|
||||
/* 32C324 E000E214 E466FFFC */ swc1 $f6, -4($v1)
|
||||
/* 32C328 E000E218 46020000 */ add.s $f0, $f0, $f2
|
||||
/* 32C32C E000E21C E4620050 */ swc1 $f2, 0x50($v1)
|
||||
/* 32C330 E000E220 E4640004 */ swc1 $f4, 4($v1)
|
||||
/* 32C334 E000E224 E4600000 */ swc1 $f0, ($v1)
|
||||
/* 32C338 E000E228 8C820008 */ lw $v0, 8($a0)
|
||||
/* 32C33C E000E22C 00A2102A */ slt $v0, $a1, $v0
|
||||
/* 32C340 E000E230 1440FFE7 */ bnez $v0, .LE000E1D0
|
||||
/* 32C344 E000E234 24630078 */ addiu $v1, $v1, 0x78
|
||||
.LE000E238:
|
||||
/* 32C348 E000E238 8FBF0010 */ lw $ra, 0x10($sp)
|
||||
/* 32C34C E000E23C 03E00008 */ jr $ra
|
||||
/* 32C350 E000E240 27BD0018 */ addiu $sp, $sp, 0x18
|
@ -1,21 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel func_E000E244
|
||||
/* 32C354 E000E244 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* 32C358 E000E248 3C02E001 */ lui $v0, %hi(func_E000E288)
|
||||
/* 32C35C E000E24C 2442E288 */ addiu $v0, $v0, %lo(func_E000E288)
|
||||
/* 32C360 E000E250 AFA2001C */ sw $v0, 0x1c($sp)
|
||||
/* 32C364 E000E254 24020028 */ addiu $v0, $zero, 0x28
|
||||
/* 32C368 E000E258 AFA40018 */ sw $a0, 0x18($sp)
|
||||
/* 32C36C E000E25C 27A40010 */ addiu $a0, $sp, 0x10
|
||||
/* 32C370 E000E260 AFBF0020 */ sw $ra, 0x20($sp)
|
||||
/* 32C374 E000E264 AFA00014 */ sw $zero, 0x14($sp)
|
||||
/* 32C378 E000E268 0C080120 */ jal shim_queue_render_task
|
||||
/* 32C37C E000E26C AFA20010 */ sw $v0, 0x10($sp)
|
||||
/* 32C380 E000E270 8C430000 */ lw $v1, ($v0)
|
||||
/* 32C384 E000E274 34630002 */ ori $v1, $v1, 2
|
||||
/* 32C388 E000E278 AC430000 */ sw $v1, ($v0)
|
||||
/* 32C38C E000E27C 8FBF0020 */ lw $ra, 0x20($sp)
|
||||
/* 32C390 E000E280 03E00008 */ jr $ra
|
||||
/* 32C394 E000E284 27BD0028 */ addiu $sp, $sp, 0x28
|
@ -1,262 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel func_E000E288
|
||||
/* 32C398 E000E288 27BDFF38 */ addiu $sp, $sp, -0xc8
|
||||
/* 32C39C E000E28C AFB700B4 */ sw $s7, 0xb4($sp)
|
||||
/* 32C3A0 E000E290 0080B82D */ daddu $s7, $a0, $zero
|
||||
/* 32C3A4 E000E294 AFBF00BC */ sw $ra, 0xbc($sp)
|
||||
/* 32C3A8 E000E298 AFBE00B8 */ sw $fp, 0xb8($sp)
|
||||
/* 32C3AC E000E29C AFB600B0 */ sw $s6, 0xb0($sp)
|
||||
/* 32C3B0 E000E2A0 AFB500AC */ sw $s5, 0xac($sp)
|
||||
/* 32C3B4 E000E2A4 AFB400A8 */ sw $s4, 0xa8($sp)
|
||||
/* 32C3B8 E000E2A8 AFB300A4 */ sw $s3, 0xa4($sp)
|
||||
/* 32C3BC E000E2AC AFB200A0 */ sw $s2, 0xa0($sp)
|
||||
/* 32C3C0 E000E2B0 AFB1009C */ sw $s1, 0x9c($sp)
|
||||
/* 32C3C4 E000E2B4 AFB00098 */ sw $s0, 0x98($sp)
|
||||
/* 32C3C8 E000E2B8 F7B400C0 */ sdc1 $f20, 0xc0($sp)
|
||||
/* 32C3CC E000E2BC 8EE7000C */ lw $a3, 0xc($s7)
|
||||
/* 32C3D0 E000E2C0 3C1E0900 */ lui $fp, 0x900
|
||||
/* 32C3D4 E000E2C4 27DE2B40 */ addiu $fp, $fp, 0x2b40
|
||||
/* 32C3D8 E000E2C8 94EB0004 */ lhu $t3, 4($a3)
|
||||
/* 32C3DC E000E2CC 8CEC0074 */ lw $t4, 0x74($a3)
|
||||
/* 32C3E0 E000E2D0 15600005 */ bnez $t3, .LE000E2E8
|
||||
/* 32C3E4 E000E2D4 0000682D */ daddu $t5, $zero, $zero
|
||||
/* 32C3E8 E000E2D8 3C1E0900 */ lui $fp, 0x900
|
||||
/* 32C3EC E000E2DC 27DE2B20 */ addiu $fp, $fp, 0x2b20
|
||||
/* 32C3F0 E000E2E0 1160000A */ beqz $t3, .LE000E30C
|
||||
/* 32C3F4 E000E2E4 00000000 */ nop
|
||||
.LE000E2E8:
|
||||
/* 32C3F8 E000E2E8 3C0A0900 */ lui $t2, 0x900
|
||||
/* 32C3FC E000E2EC 254A2950 */ addiu $t2, $t2, 0x2950
|
||||
/* 32C400 E000E2F0 24020001 */ addiu $v0, $zero, 1
|
||||
/* 32C404 E000E2F4 15620007 */ bne $t3, $v0, .LE000E314
|
||||
/* 32C408 E000E2F8 00000000 */ nop
|
||||
/* 32C40C E000E2FC 3C0A0900 */ lui $t2, 0x900
|
||||
/* 32C410 E000E300 254A2868 */ addiu $t2, $t2, 0x2868
|
||||
/* 32C414 E000E304 080038C5 */ j .LE000E314
|
||||
/* 32C418 E000E308 00000000 */ nop
|
||||
.LE000E30C:
|
||||
/* 32C41C E000E30C 3C0A0900 */ lui $t2, 0x900
|
||||
/* 32C420 E000E310 254A2780 */ addiu $t2, $t2, 0x2780
|
||||
.LE000E314:
|
||||
/* 32C424 E000E314 8CE3006C */ lw $v1, 0x6c($a3)
|
||||
/* 32C428 E000E318 14600004 */ bnez $v1, .LE000E32C
|
||||
/* 32C42C E000E31C 24020001 */ addiu $v0, $zero, 1
|
||||
/* 32C430 E000E320 24020006 */ addiu $v0, $zero, 6
|
||||
/* 32C434 E000E324 11820006 */ beq $t4, $v0, .LE000E340
|
||||
/* 32C438 E000E328 24020001 */ addiu $v0, $zero, 1
|
||||
.LE000E32C:
|
||||
/* 32C43C E000E32C 14620006 */ bne $v1, $v0, .LE000E348
|
||||
/* 32C440 E000E330 3C04DB06 */ lui $a0, 0xdb06
|
||||
/* 32C444 E000E334 24020007 */ addiu $v0, $zero, 7
|
||||
/* 32C448 E000E338 15820004 */ bne $t4, $v0, .LE000E34C
|
||||
/* 32C44C E000E33C 34840024 */ ori $a0, $a0, 0x24
|
||||
.LE000E340:
|
||||
/* 32C450 E000E340 240D0001 */ addiu $t5, $zero, 1
|
||||
/* 32C454 E000E344 3C04DB06 */ lui $a0, 0xdb06
|
||||
.LE000E348:
|
||||
/* 32C458 E000E348 34840024 */ ori $a0, $a0, 0x24
|
||||
.LE000E34C:
|
||||
/* 32C45C E000E34C 3C05E6DE */ lui $a1, 0xe6de
|
||||
/* 32C460 E000E350 34A5DE6E */ ori $a1, $a1, 0xde6e
|
||||
/* 32C464 E000E354 3C08800A */ lui $t0, %hi(gMasterGfxPos)
|
||||
/* 32C468 E000E358 2508A66C */ addiu $t0, $t0, %lo(gMasterGfxPos)
|
||||
/* 32C46C E000E35C 24090020 */ addiu $t1, $zero, 0x20
|
||||
/* 32C470 E000E360 8D060000 */ lw $a2, ($t0)
|
||||
/* 32C474 E000E364 3C02E700 */ lui $v0, 0xe700
|
||||
/* 32C478 E000E368 00C0182D */ daddu $v1, $a2, $zero
|
||||
/* 32C47C E000E36C 24C60008 */ addiu $a2, $a2, 8
|
||||
/* 32C480 E000E370 AD060000 */ sw $a2, ($t0)
|
||||
/* 32C484 E000E374 AC620000 */ sw $v0, ($v1)
|
||||
/* 32C488 E000E378 24C20008 */ addiu $v0, $a2, 8
|
||||
/* 32C48C E000E37C AC600004 */ sw $zero, 4($v1)
|
||||
/* 32C490 E000E380 AD020000 */ sw $v0, ($t0)
|
||||
/* 32C494 E000E384 24C20010 */ addiu $v0, $a2, 0x10
|
||||
/* 32C498 E000E388 ACC40000 */ sw $a0, ($a2)
|
||||
/* 32C49C E000E38C AD020000 */ sw $v0, ($t0)
|
||||
/* 32C4A0 E000E390 24C20018 */ addiu $v0, $a2, 0x18
|
||||
/* 32C4A4 E000E394 AD020000 */ sw $v0, ($t0)
|
||||
/* 32C4A8 E000E398 8EE30010 */ lw $v1, 0x10($s7)
|
||||
/* 32C4AC E000E39C 00C91021 */ addu $v0, $a2, $t1
|
||||
/* 32C4B0 E000E3A0 AD020000 */ sw $v0, ($t0)
|
||||
/* 32C4B4 E000E3A4 8C63001C */ lw $v1, 0x1c($v1)
|
||||
/* 32C4B8 E000E3A8 3C02DE00 */ lui $v0, 0xde00
|
||||
/* 32C4BC E000E3AC ACC20008 */ sw $v0, 8($a2)
|
||||
/* 32C4C0 E000E3B0 3C02FB00 */ lui $v0, 0xfb00
|
||||
/* 32C4C4 E000E3B4 ACC20010 */ sw $v0, 0x10($a2)
|
||||
/* 32C4C8 E000E3B8 2402007F */ addiu $v0, $zero, 0x7f
|
||||
/* 32C4CC E000E3BC ACC20014 */ sw $v0, 0x14($a2)
|
||||
/* 32C4D0 E000E3C0 3C02FA00 */ lui $v0, 0xfa00
|
||||
/* 32C4D4 E000E3C4 ACC20018 */ sw $v0, 0x18($a2)
|
||||
/* 32C4D8 E000E3C8 3C028000 */ lui $v0, 0x8000
|
||||
/* 32C4DC E000E3CC ACCA000C */ sw $t2, 0xc($a2)
|
||||
/* 32C4E0 E000E3D0 ACC5001C */ sw $a1, 0x1c($a2)
|
||||
/* 32C4E4 E000E3D4 00621821 */ addu $v1, $v1, $v0
|
||||
/* 32C4E8 E000E3D8 15600002 */ bnez $t3, .LE000E3E4
|
||||
/* 32C4EC E000E3DC ACC30004 */ sw $v1, 4($a2)
|
||||
/* 32C4F0 E000E3E0 24090018 */ addiu $t1, $zero, 0x18
|
||||
.LE000E3E4:
|
||||
/* 32C4F4 E000E3E4 01890018 */ mult $t4, $t1
|
||||
/* 32C4F8 E000E3E8 24C20028 */ addiu $v0, $a2, 0x28
|
||||
/* 32C4FC E000E3EC 3C0BF200 */ lui $t3, 0xf200
|
||||
/* 32C500 E000E3F0 AD020000 */ sw $v0, ($t0)
|
||||
/* 32C504 E000E3F4 00002812 */ mflo $a1
|
||||
/* 32C508 E000E3F8 00051080 */ sll $v0, $a1, 2
|
||||
/* 32C50C E000E3FC 30420FFF */ andi $v0, $v0, 0xfff
|
||||
/* 32C510 E000E400 00021300 */ sll $v0, $v0, 0xc
|
||||
/* 32C514 E000E404 004B1025 */ or $v0, $v0, $t3
|
||||
/* 32C518 E000E408 00A92021 */ addu $a0, $a1, $t1
|
||||
/* 32C51C E000E40C 2483FFFF */ addiu $v1, $a0, -1
|
||||
/* 32C520 E000E410 00031880 */ sll $v1, $v1, 2
|
||||
/* 32C524 E000E414 30630FFF */ andi $v1, $v1, 0xfff
|
||||
/* 32C528 E000E418 00031B00 */ sll $v1, $v1, 0xc
|
||||
/* 32C52C E000E41C ACC20020 */ sw $v0, 0x20($a2)
|
||||
/* 32C530 E000E420 2522FFFF */ addiu $v0, $t1, -1
|
||||
/* 32C534 E000E424 00021080 */ sll $v0, $v0, 2
|
||||
/* 32C538 E000E428 304A0FFF */ andi $t2, $v0, 0xfff
|
||||
/* 32C53C E000E42C 006A1825 */ or $v1, $v1, $t2
|
||||
/* 32C540 E000E430 11A00010 */ beqz $t5, .LE000E474
|
||||
/* 32C544 E000E434 ACC30024 */ sw $v1, 0x24($a2)
|
||||
/* 32C548 E000E438 24C20030 */ addiu $v0, $a2, 0x30
|
||||
/* 32C54C E000E43C AD020000 */ sw $v0, ($t0)
|
||||
/* 32C550 E000E440 00041080 */ sll $v0, $a0, 2
|
||||
/* 32C554 E000E444 30420FFF */ andi $v0, $v0, 0xfff
|
||||
/* 32C558 E000E448 00021300 */ sll $v0, $v0, 0xc
|
||||
/* 32C55C E000E44C 004B1025 */ or $v0, $v0, $t3
|
||||
/* 32C560 E000E450 ACC20028 */ sw $v0, 0x28($a2)
|
||||
/* 32C564 E000E454 00091040 */ sll $v0, $t1, 1
|
||||
/* 32C568 E000E458 00A21021 */ addu $v0, $a1, $v0
|
||||
/* 32C56C E000E45C 2442FFFF */ addiu $v0, $v0, -1
|
||||
/* 32C570 E000E460 00021080 */ sll $v0, $v0, 2
|
||||
/* 32C574 E000E464 30420FFF */ andi $v0, $v0, 0xfff
|
||||
/* 32C578 E000E468 00021300 */ sll $v0, $v0, 0xc
|
||||
/* 32C57C E000E46C 0800392C */ j .LE000E4B0
|
||||
/* 32C580 E000E470 3C030100 */ lui $v1, 0x100
|
||||
.LE000E474:
|
||||
/* 32C584 E000E474 24C20030 */ addiu $v0, $a2, 0x30
|
||||
/* 32C588 E000E478 AD020000 */ sw $v0, ($t0)
|
||||
/* 32C58C E000E47C 00041080 */ sll $v0, $a0, 2
|
||||
/* 32C590 E000E480 30420FFF */ andi $v0, $v0, 0xfff
|
||||
/* 32C594 E000E484 00021300 */ sll $v0, $v0, 0xc
|
||||
/* 32C598 E000E488 004B1025 */ or $v0, $v0, $t3
|
||||
/* 32C59C E000E48C ACC20028 */ sw $v0, 0x28($a2)
|
||||
/* 32C5A0 E000E490 00091040 */ sll $v0, $t1, 1
|
||||
/* 32C5A4 E000E494 00A21021 */ addu $v0, $a1, $v0
|
||||
/* 32C5A8 E000E498 2442FFFF */ addiu $v0, $v0, -1
|
||||
/* 32C5AC E000E49C 00021080 */ sll $v0, $v0, 2
|
||||
/* 32C5B0 E000E4A0 30420FFF */ andi $v0, $v0, 0xfff
|
||||
/* 32C5B4 E000E4A4 00021300 */ sll $v0, $v0, 0xc
|
||||
/* 32C5B8 E000E4A8 3C030100 */ lui $v1, 0x100
|
||||
/* 32C5BC E000E4AC 01431825 */ or $v1, $t2, $v1
|
||||
.LE000E4B0:
|
||||
/* 32C5C0 E000E4B0 00431025 */ or $v0, $v0, $v1
|
||||
/* 32C5C4 E000E4B4 ACC2002C */ sw $v0, 0x2c($a2)
|
||||
/* 32C5C8 E000E4B8 8EE20008 */ lw $v0, 8($s7)
|
||||
/* 32C5CC E000E4BC 18400051 */ blez $v0, .LE000E604
|
||||
/* 32C5D0 E000E4C0 0000882D */ daddu $s1, $zero, $zero
|
||||
/* 32C5D4 E000E4C4 27B40058 */ addiu $s4, $sp, 0x58
|
||||
/* 32C5D8 E000E4C8 4480A000 */ mtc1 $zero, $f20
|
||||
/* 32C5DC E000E4CC 3C16800A */ lui $s6, %hi(gDisplayContext)
|
||||
/* 32C5E0 E000E4D0 26D6A674 */ addiu $s6, $s6, %lo(gDisplayContext)
|
||||
/* 32C5E4 E000E4D4 3C158007 */ lui $s5, %hi(gMatrixListPos)
|
||||
/* 32C5E8 E000E4D8 26B541F0 */ addiu $s5, $s5, %lo(gMatrixListPos)
|
||||
/* 32C5EC E000E4DC 3C130001 */ lui $s3, 1
|
||||
/* 32C5F0 E000E4E0 36731630 */ ori $s3, $s3, 0x1630
|
||||
/* 32C5F4 E000E4E4 3C12800A */ lui $s2, %hi(gMasterGfxPos)
|
||||
/* 32C5F8 E000E4E8 2652A66C */ addiu $s2, $s2, %lo(gMasterGfxPos)
|
||||
/* 32C5FC E000E4EC 24F00010 */ addiu $s0, $a3, 0x10
|
||||
.LE000E4F0:
|
||||
/* 32C600 E000E4F0 27A40018 */ addiu $a0, $sp, 0x18
|
||||
/* 32C604 E000E4F4 26310001 */ addiu $s1, $s1, 1
|
||||
/* 32C608 E000E4F8 8E05FFF8 */ lw $a1, -8($s0)
|
||||
/* 32C60C E000E4FC 8E06FFFC */ lw $a2, -4($s0)
|
||||
/* 32C610 E000E500 8E070000 */ lw $a3, ($s0)
|
||||
/* 32C614 E000E504 0C080108 */ jal shim_guTranslateF
|
||||
/* 32C618 E000E508 26100078 */ addiu $s0, $s0, 0x78
|
||||
/* 32C61C E000E50C 3C0E800B */ lui $t6, %hi(gCameras)
|
||||
/* 32C620 E000E510 25CE1D80 */ addiu $t6, $t6, %lo(gCameras)
|
||||
/* 32C624 E000E514 3C038007 */ lui $v1, %hi(gCurrentCameraID)
|
||||
/* 32C628 E000E518 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
|
||||
/* 32C62C E000E51C 4406A000 */ mfc1 $a2, $f20
|
||||
/* 32C630 E000E520 00031080 */ sll $v0, $v1, 2
|
||||
/* 32C634 E000E524 00431021 */ addu $v0, $v0, $v1
|
||||
/* 32C638 E000E528 00021080 */ sll $v0, $v0, 2
|
||||
/* 32C63C E000E52C 00431023 */ subu $v0, $v0, $v1
|
||||
/* 32C640 E000E530 000218C0 */ sll $v1, $v0, 3
|
||||
/* 32C644 E000E534 00431021 */ addu $v0, $v0, $v1
|
||||
/* 32C648 E000E538 000210C0 */ sll $v0, $v0, 3
|
||||
/* 32C64C E000E53C 004E1021 */ addu $v0, $v0, $t6
|
||||
/* 32C650 E000E540 C440006C */ lwc1 $f0, 0x6c($v0)
|
||||
/* 32C654 E000E544 3C073F80 */ lui $a3, 0x3f80
|
||||
/* 32C658 E000E548 46000007 */ neg.s $f0, $f0
|
||||
/* 32C65C E000E54C 44050000 */ mfc1 $a1, $f0
|
||||
/* 32C660 E000E550 0280202D */ daddu $a0, $s4, $zero
|
||||
/* 32C664 E000E554 0C080104 */ jal shim_guRotateF
|
||||
/* 32C668 E000E558 E7B40010 */ swc1 $f20, 0x10($sp)
|
||||
/* 32C66C E000E55C 0280202D */ daddu $a0, $s4, $zero
|
||||
/* 32C670 E000E560 27A50018 */ addiu $a1, $sp, 0x18
|
||||
/* 32C674 E000E564 0C080114 */ jal shim_guMtxCatF
|
||||
/* 32C678 E000E568 00A0302D */ daddu $a2, $a1, $zero
|
||||
/* 32C67C E000E56C 27A40018 */ addiu $a0, $sp, 0x18
|
||||
/* 32C680 E000E570 96A50000 */ lhu $a1, ($s5)
|
||||
/* 32C684 E000E574 8EC20000 */ lw $v0, ($s6)
|
||||
/* 32C688 E000E578 00052980 */ sll $a1, $a1, 6
|
||||
/* 32C68C E000E57C 00B32821 */ addu $a1, $a1, $s3
|
||||
/* 32C690 E000E580 0C080118 */ jal shim_guMtxF2L
|
||||
/* 32C694 E000E584 00452821 */ addu $a1, $v0, $a1
|
||||
/* 32C698 E000E588 3C02DA38 */ lui $v0, 0xda38
|
||||
/* 32C69C E000E58C 34420002 */ ori $v0, $v0, 2
|
||||
/* 32C6A0 E000E590 3C06D838 */ lui $a2, 0xd838
|
||||
/* 32C6A4 E000E594 34C60002 */ ori $a2, $a2, 2
|
||||
/* 32C6A8 E000E598 8E440000 */ lw $a0, ($s2)
|
||||
/* 32C6AC E000E59C 96A30000 */ lhu $v1, ($s5)
|
||||
/* 32C6B0 E000E5A0 0080282D */ daddu $a1, $a0, $zero
|
||||
/* 32C6B4 E000E5A4 24840008 */ addiu $a0, $a0, 8
|
||||
/* 32C6B8 E000E5A8 AE440000 */ sw $a0, ($s2)
|
||||
/* 32C6BC E000E5AC ACA20000 */ sw $v0, ($a1)
|
||||
/* 32C6C0 E000E5B0 24620001 */ addiu $v0, $v1, 1
|
||||
/* 32C6C4 E000E5B4 3063FFFF */ andi $v1, $v1, 0xffff
|
||||
/* 32C6C8 E000E5B8 00031980 */ sll $v1, $v1, 6
|
||||
/* 32C6CC E000E5BC A6A20000 */ sh $v0, ($s5)
|
||||
/* 32C6D0 E000E5C0 8EC20000 */ lw $v0, ($s6)
|
||||
/* 32C6D4 E000E5C4 00731821 */ addu $v1, $v1, $s3
|
||||
/* 32C6D8 E000E5C8 00431021 */ addu $v0, $v0, $v1
|
||||
/* 32C6DC E000E5CC ACA20004 */ sw $v0, 4($a1)
|
||||
/* 32C6E0 E000E5D0 24820008 */ addiu $v0, $a0, 8
|
||||
/* 32C6E4 E000E5D4 AE420000 */ sw $v0, ($s2)
|
||||
/* 32C6E8 E000E5D8 3C02DE00 */ lui $v0, 0xde00
|
||||
/* 32C6EC E000E5DC AC820000 */ sw $v0, ($a0)
|
||||
/* 32C6F0 E000E5E0 24020040 */ addiu $v0, $zero, 0x40
|
||||
/* 32C6F4 E000E5E4 AC9E0004 */ sw $fp, 4($a0)
|
||||
/* 32C6F8 E000E5E8 AC860008 */ sw $a2, 8($a0)
|
||||
/* 32C6FC E000E5EC AC82000C */ sw $v0, 0xc($a0)
|
||||
/* 32C700 E000E5F0 8EE20008 */ lw $v0, 8($s7)
|
||||
/* 32C704 E000E5F4 24840010 */ addiu $a0, $a0, 0x10
|
||||
/* 32C708 E000E5F8 0222102A */ slt $v0, $s1, $v0
|
||||
/* 32C70C E000E5FC 1440FFBC */ bnez $v0, .LE000E4F0
|
||||
/* 32C710 E000E600 AE440000 */ sw $a0, ($s2)
|
||||
.LE000E604:
|
||||
/* 32C714 E000E604 3C03800A */ lui $v1, %hi(gMasterGfxPos)
|
||||
/* 32C718 E000E608 2463A66C */ addiu $v1, $v1, %lo(gMasterGfxPos)
|
||||
/* 32C71C E000E60C 8C620000 */ lw $v0, ($v1)
|
||||
/* 32C720 E000E610 0040202D */ daddu $a0, $v0, $zero
|
||||
/* 32C724 E000E614 24420008 */ addiu $v0, $v0, 8
|
||||
/* 32C728 E000E618 AC620000 */ sw $v0, ($v1)
|
||||
/* 32C72C E000E61C 3C02E700 */ lui $v0, 0xe700
|
||||
/* 32C730 E000E620 AC820000 */ sw $v0, ($a0)
|
||||
/* 32C734 E000E624 AC800004 */ sw $zero, 4($a0)
|
||||
/* 32C738 E000E628 8FBF00BC */ lw $ra, 0xbc($sp)
|
||||
/* 32C73C E000E62C 8FBE00B8 */ lw $fp, 0xb8($sp)
|
||||
/* 32C740 E000E630 8FB700B4 */ lw $s7, 0xb4($sp)
|
||||
/* 32C744 E000E634 8FB600B0 */ lw $s6, 0xb0($sp)
|
||||
/* 32C748 E000E638 8FB500AC */ lw $s5, 0xac($sp)
|
||||
/* 32C74C E000E63C 8FB400A8 */ lw $s4, 0xa8($sp)
|
||||
/* 32C750 E000E640 8FB300A4 */ lw $s3, 0xa4($sp)
|
||||
/* 32C754 E000E644 8FB200A0 */ lw $s2, 0xa0($sp)
|
||||
/* 32C758 E000E648 8FB1009C */ lw $s1, 0x9c($sp)
|
||||
/* 32C75C E000E64C 8FB00098 */ lw $s0, 0x98($sp)
|
||||
/* 32C760 E000E650 D7B400C0 */ ldc1 $f20, 0xc0($sp)
|
||||
/* 32C764 E000E654 03E00008 */ jr $ra
|
||||
/* 32C768 E000E658 27BD00C8 */ addiu $sp, $sp, 0xc8
|
||||
/* 32C76C E000E65C 00000000 */ nop
|
@ -1,99 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel fx_7_main
|
||||
/* 32C110 E000E000 27BDFF98 */ addiu $sp, $sp, -0x68
|
||||
/* 32C114 E000E004 F7B60048 */ sdc1 $f22, 0x48($sp)
|
||||
/* 32C118 E000E008 4485B000 */ mtc1 $a1, $f22
|
||||
/* 32C11C E000E00C F7B80050 */ sdc1 $f24, 0x50($sp)
|
||||
/* 32C120 E000E010 4486C000 */ mtc1 $a2, $f24
|
||||
/* 32C124 E000E014 F7BA0058 */ sdc1 $f26, 0x58($sp)
|
||||
/* 32C128 E000E018 4487D000 */ mtc1 $a3, $f26
|
||||
/* 32C12C E000E01C AFB30034 */ sw $s3, 0x34($sp)
|
||||
/* 32C130 E000E020 0080982D */ daddu $s3, $a0, $zero
|
||||
/* 32C134 E000E024 F7BC0060 */ sdc1 $f28, 0x60($sp)
|
||||
/* 32C138 E000E028 C7BC0078 */ lwc1 $f28, 0x78($sp)
|
||||
/* 32C13C E000E02C 27A40010 */ addiu $a0, $sp, 0x10
|
||||
/* 32C140 E000E030 F7B40040 */ sdc1 $f20, 0x40($sp)
|
||||
/* 32C144 E000E034 C7B4007C */ lwc1 $f20, 0x7c($sp)
|
||||
/* 32C148 E000E038 3C02E001 */ lui $v0, %hi(func_E000E16C)
|
||||
/* 32C14C E000E03C 2442E16C */ addiu $v0, $v0, %lo(func_E000E16C)
|
||||
/* 32C150 E000E040 AFA20018 */ sw $v0, 0x18($sp)
|
||||
/* 32C154 E000E044 3C02E001 */ lui $v0, %hi(func_E000E174)
|
||||
/* 32C158 E000E048 2442E174 */ addiu $v0, $v0, %lo(func_E000E174)
|
||||
/* 32C15C E000E04C AFA2001C */ sw $v0, 0x1c($sp)
|
||||
/* 32C160 E000E050 3C02E001 */ lui $v0, %hi(func_E000E244)
|
||||
/* 32C164 E000E054 2442E244 */ addiu $v0, $v0, %lo(func_E000E244)
|
||||
/* 32C168 E000E058 AFA20020 */ sw $v0, 0x20($sp)
|
||||
/* 32C16C E000E05C 24020007 */ addiu $v0, $zero, 7
|
||||
/* 32C170 E000E060 AFBF0038 */ sw $ra, 0x38($sp)
|
||||
/* 32C174 E000E064 AFB20030 */ sw $s2, 0x30($sp)
|
||||
/* 32C178 E000E068 AFB1002C */ sw $s1, 0x2c($sp)
|
||||
/* 32C17C E000E06C AFB00028 */ sw $s0, 0x28($sp)
|
||||
/* 32C180 E000E070 AFA00010 */ sw $zero, 0x10($sp)
|
||||
/* 32C184 E000E074 AFA00024 */ sw $zero, 0x24($sp)
|
||||
/* 32C188 E000E078 0C080124 */ jal shim_create_effect_instance
|
||||
/* 32C18C E000E07C AFA20014 */ sw $v0, 0x14($sp)
|
||||
/* 32C190 E000E080 24040078 */ addiu $a0, $zero, 0x78
|
||||
/* 32C194 E000E084 24120001 */ addiu $s2, $zero, 1
|
||||
/* 32C198 E000E088 0040802D */ daddu $s0, $v0, $zero
|
||||
/* 32C19C E000E08C 0C08012C */ jal shim_general_heap_malloc
|
||||
/* 32C1A0 E000E090 AE120008 */ sw $s2, 8($s0)
|
||||
/* 32C1A4 E000E094 0040882D */ daddu $s1, $v0, $zero
|
||||
/* 32C1A8 E000E098 16200003 */ bnez $s1, .LE000E0A8
|
||||
/* 32C1AC E000E09C AE11000C */ sw $s1, 0xc($s0)
|
||||
.LE000E0A0:
|
||||
/* 32C1B0 E000E0A0 08003828 */ j .LE000E0A0
|
||||
/* 32C1B4 E000E0A4 00000000 */ nop
|
||||
.LE000E0A8:
|
||||
/* 32C1B8 E000E0A8 0220202D */ daddu $a0, $s1, $zero
|
||||
/* 32C1BC E000E0AC 00122900 */ sll $a1, $s2, 4
|
||||
/* 32C1C0 E000E0B0 00B22823 */ subu $a1, $a1, $s2
|
||||
/* 32C1C4 E000E0B4 0C080130 */ jal shim_mem_clear
|
||||
/* 32C1C8 E000E0B8 000528C0 */ sll $a1, $a1, 3
|
||||
/* 32C1CC E000E0BC 0000202D */ daddu $a0, $zero, $zero
|
||||
/* 32C1D0 E000E0C0 3A620002 */ xori $v0, $s3, 2
|
||||
/* 32C1D4 E000E0C4 2C420001 */ sltiu $v0, $v0, 1
|
||||
/* 32C1D8 E000E0C8 AE22006C */ sw $v0, 0x6c($s1)
|
||||
/* 32C1DC E000E0CC 0092102A */ slt $v0, $a0, $s2
|
||||
/* 32C1E0 E000E0D0 AE200070 */ sw $zero, 0x70($s1)
|
||||
/* 32C1E4 E000E0D4 10400019 */ beqz $v0, .LE000E13C
|
||||
/* 32C1E8 E000E0D8 A6330004 */ sh $s3, 4($s1)
|
||||
/* 32C1EC E000E0DC 24050001 */ addiu $a1, $zero, 1
|
||||
/* 32C1F0 E000E0E0 26230060 */ addiu $v1, $s1, 0x60
|
||||
/* 32C1F4 E000E0E4 3C013EAA */ lui $at, 0x3eaa
|
||||
/* 32C1F8 E000E0E8 3421AAAB */ ori $at, $at, 0xaaab
|
||||
/* 32C1FC E000E0EC 44812000 */ mtc1 $at, $f4
|
||||
/* 32C200 E000E0F0 3C013FE0 */ lui $at, 0x3fe0
|
||||
/* 32C204 E000E0F4 44811000 */ mtc1 $at, $f2
|
||||
/* 32C208 E000E0F8 3C01BE23 */ lui $at, 0xbe23
|
||||
/* 32C20C E000E0FC 3421D70A */ ori $at, $at, 0xd70a
|
||||
/* 32C210 E000E100 44810000 */ mtc1 $at, $f0
|
||||
.LE000E104:
|
||||
/* 32C214 E000E104 24840001 */ addiu $a0, $a0, 1
|
||||
/* 32C218 E000E108 AE250000 */ sw $a1, ($s1)
|
||||
/* 32C21C E000E10C E47C0004 */ swc1 $f28, 4($v1)
|
||||
/* 32C220 E000E110 E4740008 */ swc1 $f20, 8($v1)
|
||||
/* 32C224 E000E114 E476FFA8 */ swc1 $f22, -0x58($v1)
|
||||
/* 32C228 E000E118 E478FFAC */ swc1 $f24, -0x54($v1)
|
||||
/* 32C22C E000E11C E47AFFB0 */ swc1 $f26, -0x50($v1)
|
||||
/* 32C230 E000E120 E464FFF8 */ swc1 $f4, -8($v1)
|
||||
/* 32C234 E000E124 E462FFFC */ swc1 $f2, -4($v1)
|
||||
/* 32C238 E000E128 E4600000 */ swc1 $f0, ($v1)
|
||||
/* 32C23C E000E12C 24630078 */ addiu $v1, $v1, 0x78
|
||||
/* 32C240 E000E130 0092102A */ slt $v0, $a0, $s2
|
||||
/* 32C244 E000E134 1440FFF3 */ bnez $v0, .LE000E104
|
||||
/* 32C248 E000E138 26310078 */ addiu $s1, $s1, 0x78
|
||||
.LE000E13C:
|
||||
/* 32C24C E000E13C 8FBF0038 */ lw $ra, 0x38($sp)
|
||||
/* 32C250 E000E140 8FB30034 */ lw $s3, 0x34($sp)
|
||||
/* 32C254 E000E144 8FB20030 */ lw $s2, 0x30($sp)
|
||||
/* 32C258 E000E148 8FB1002C */ lw $s1, 0x2c($sp)
|
||||
/* 32C25C E000E14C 8FB00028 */ lw $s0, 0x28($sp)
|
||||
/* 32C260 E000E150 D7BC0060 */ ldc1 $f28, 0x60($sp)
|
||||
/* 32C264 E000E154 D7BA0058 */ ldc1 $f26, 0x58($sp)
|
||||
/* 32C268 E000E158 D7B80050 */ ldc1 $f24, 0x50($sp)
|
||||
/* 32C26C E000E15C D7B60048 */ ldc1 $f22, 0x48($sp)
|
||||
/* 32C270 E000E160 D7B40040 */ ldc1 $f20, 0x40($sp)
|
||||
/* 32C274 E000E164 03E00008 */ jr $ra
|
||||
/* 32C278 E000E168 27BD0068 */ addiu $sp, $sp, 0x68
|
@ -1,69 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel func_E0010000
|
||||
/* 32C7A0 E0010000 27BDFF48 */ addiu $sp, $sp, -0xb8
|
||||
/* 32C7A4 E0010004 F7B400A8 */ sdc1 $f20, 0xa8($sp)
|
||||
/* 32C7A8 E0010008 4480A000 */ mtc1 $zero, $f20
|
||||
/* 32C7AC E001000C F7B600B0 */ sdc1 $f22, 0xb0($sp)
|
||||
/* 32C7B0 E0010010 3C013F80 */ lui $at, 0x3f80
|
||||
/* 32C7B4 E0010014 4481B000 */ mtc1 $at, $f22
|
||||
/* 32C7B8 E0010018 AFB1009C */ sw $s1, 0x9c($sp)
|
||||
/* 32C7BC E001001C 0080882D */ daddu $s1, $a0, $zero
|
||||
/* 32C7C0 E0010020 AFBF00A0 */ sw $ra, 0xa0($sp)
|
||||
/* 32C7C4 E0010024 AFB00098 */ sw $s0, 0x98($sp)
|
||||
/* 32C7C8 E0010028 E7B40010 */ swc1 $f20, 0x10($sp)
|
||||
/* 32C7CC E001002C 8E250024 */ lw $a1, 0x24($s1)
|
||||
/* 32C7D0 E0010030 4406B000 */ mfc1 $a2, $f22
|
||||
/* 32C7D4 E0010034 4407A000 */ mfc1 $a3, $f20
|
||||
/* 32C7D8 E0010038 0C080104 */ jal shim_guRotateF
|
||||
/* 32C7DC E001003C 27A40018 */ addiu $a0, $sp, 0x18
|
||||
/* 32C7E0 E0010040 27B00058 */ addiu $s0, $sp, 0x58
|
||||
/* 32C7E4 E0010044 E7B60010 */ swc1 $f22, 0x10($sp)
|
||||
/* 32C7E8 E0010048 8E25002C */ lw $a1, 0x2c($s1)
|
||||
/* 32C7EC E001004C 4406A000 */ mfc1 $a2, $f20
|
||||
/* 32C7F0 E0010050 4407A000 */ mfc1 $a3, $f20
|
||||
/* 32C7F4 E0010054 0C080104 */ jal shim_guRotateF
|
||||
/* 32C7F8 E0010058 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 32C7FC E001005C 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 32C800 E0010060 27A50018 */ addiu $a1, $sp, 0x18
|
||||
/* 32C804 E0010064 0C080114 */ jal shim_guMtxCatF
|
||||
/* 32C808 E0010068 00A0302D */ daddu $a2, $a1, $zero
|
||||
/* 32C80C E001006C E7B40010 */ swc1 $f20, 0x10($sp)
|
||||
/* 32C810 E0010070 8E250028 */ lw $a1, 0x28($s1)
|
||||
/* 32C814 E0010074 4406A000 */ mfc1 $a2, $f20
|
||||
/* 32C818 E0010078 4407B000 */ mfc1 $a3, $f22
|
||||
/* 32C81C E001007C 0C080104 */ jal shim_guRotateF
|
||||
/* 32C820 E0010080 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 32C824 E0010084 27A40018 */ addiu $a0, $sp, 0x18
|
||||
/* 32C828 E0010088 0200282D */ daddu $a1, $s0, $zero
|
||||
/* 32C82C E001008C 0C080114 */ jal shim_guMtxCatF
|
||||
/* 32C830 E0010090 0080302D */ daddu $a2, $a0, $zero
|
||||
/* 32C834 E0010094 8E250018 */ lw $a1, 0x18($s1)
|
||||
/* 32C838 E0010098 8E26001C */ lw $a2, 0x1c($s1)
|
||||
/* 32C83C E001009C 8E270020 */ lw $a3, 0x20($s1)
|
||||
/* 32C840 E00100A0 0C080110 */ jal shim_guScaleF
|
||||
/* 32C844 E00100A4 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 32C848 E00100A8 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 32C84C E00100AC 27A50018 */ addiu $a1, $sp, 0x18
|
||||
/* 32C850 E00100B0 0C080114 */ jal shim_guMtxCatF
|
||||
/* 32C854 E00100B4 00A0302D */ daddu $a2, $a1, $zero
|
||||
/* 32C858 E00100B8 8E25000C */ lw $a1, 0xc($s1)
|
||||
/* 32C85C E00100BC 8E260010 */ lw $a2, 0x10($s1)
|
||||
/* 32C860 E00100C0 8E270014 */ lw $a3, 0x14($s1)
|
||||
/* 32C864 E00100C4 0C080108 */ jal shim_guTranslateF
|
||||
/* 32C868 E00100C8 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 32C86C E00100CC 27A40018 */ addiu $a0, $sp, 0x18
|
||||
/* 32C870 E00100D0 0200282D */ daddu $a1, $s0, $zero
|
||||
/* 32C874 E00100D4 0C080114 */ jal shim_guMtxCatF
|
||||
/* 32C878 E00100D8 0080302D */ daddu $a2, $a0, $zero
|
||||
/* 32C87C E00100DC 27A40018 */ addiu $a0, $sp, 0x18
|
||||
/* 32C880 E00100E0 0C080118 */ jal shim_guMtxF2L
|
||||
/* 32C884 E00100E4 26250030 */ addiu $a1, $s1, 0x30
|
||||
/* 32C888 E00100E8 8FBF00A0 */ lw $ra, 0xa0($sp)
|
||||
/* 32C88C E00100EC 8FB1009C */ lw $s1, 0x9c($sp)
|
||||
/* 32C890 E00100F0 8FB00098 */ lw $s0, 0x98($sp)
|
||||
/* 32C894 E00100F4 D7B600B0 */ ldc1 $f22, 0xb0($sp)
|
||||
/* 32C898 E00100F8 D7B400A8 */ ldc1 $f20, 0xa8($sp)
|
||||
/* 32C89C E00100FC 03E00008 */ jr $ra
|
||||
/* 32C8A0 E0010100 27BD00B8 */ addiu $sp, $sp, 0xb8
|
@ -1,63 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel func_E0010104
|
||||
/* 32C8A4 E0010104 C4800070 */ lwc1 $f0, 0x70($a0)
|
||||
/* 32C8A8 E0010108 3C01E001 */ lui $at, %hi(D_E0010710)
|
||||
/* 32C8AC E001010C D4220710 */ ldc1 $f2, %lo(D_E0010710)($at)
|
||||
/* 32C8B0 E0010110 46000021 */ cvt.d.s $f0, $f0
|
||||
/* 32C8B4 E0010114 46220002 */ mul.d $f0, $f0, $f2
|
||||
/* 32C8B8 E0010118 00000000 */ nop
|
||||
/* 32C8BC E001011C C48A0090 */ lwc1 $f10, 0x90($a0)
|
||||
/* 32C8C0 E0010120 46200020 */ cvt.s.d $f0, $f0
|
||||
/* 32C8C4 E0010124 460A0282 */ mul.s $f10, $f0, $f10
|
||||
/* 32C8C8 E0010128 00000000 */ nop
|
||||
/* 32C8CC E001012C E4800070 */ swc1 $f0, 0x70($a0)
|
||||
/* 32C8D0 E0010130 46000306 */ mov.s $f12, $f0
|
||||
/* 32C8D4 E0010134 C4800094 */ lwc1 $f0, 0x94($a0)
|
||||
/* 32C8D8 E0010138 46006302 */ mul.s $f12, $f12, $f0
|
||||
/* 32C8DC E001013C 00000000 */ nop
|
||||
/* 32C8E0 E0010140 C4820088 */ lwc1 $f2, 0x88($a0)
|
||||
/* 32C8E4 E0010144 C480008C */ lwc1 $f0, 0x8c($a0)
|
||||
/* 32C8E8 E0010148 46001080 */ add.s $f2, $f2, $f0
|
||||
/* 32C8EC E001014C C4800084 */ lwc1 $f0, 0x84($a0)
|
||||
/* 32C8F0 E0010150 46020000 */ add.s $f0, $f0, $f2
|
||||
/* 32C8F4 E0010154 C488000C */ lwc1 $f8, 0xc($a0)
|
||||
/* 32C8F8 E0010158 460A4200 */ add.s $f8, $f8, $f10
|
||||
/* 32C8FC E001015C C4840080 */ lwc1 $f4, 0x80($a0)
|
||||
/* 32C900 E0010160 46002100 */ add.s $f4, $f4, $f0
|
||||
/* 32C904 E0010164 E4800084 */ swc1 $f0, 0x84($a0)
|
||||
/* 32C908 E0010168 C4800014 */ lwc1 $f0, 0x14($a0)
|
||||
/* 32C90C E001016C C4860010 */ lwc1 $f6, 0x10($a0)
|
||||
/* 32C910 E0010170 460C0000 */ add.s $f0, $f0, $f12
|
||||
/* 32C914 E0010174 E4820088 */ swc1 $f2, 0x88($a0)
|
||||
/* 32C918 E0010178 44801000 */ mtc1 $zero, $f2
|
||||
/* 32C91C E001017C 46043180 */ add.s $f6, $f6, $f4
|
||||
/* 32C920 E0010180 E488000C */ swc1 $f8, 0xc($a0)
|
||||
/* 32C924 E0010184 4602203C */ c.lt.s $f4, $f2
|
||||
/* 32C928 E0010188 E4840080 */ swc1 $f4, 0x80($a0)
|
||||
/* 32C92C E001018C E4800014 */ swc1 $f0, 0x14($a0)
|
||||
/* 32C930 E0010190 45000006 */ bc1f .LE00101AC
|
||||
/* 32C934 E0010194 E4860010 */ swc1 $f6, 0x10($a0)
|
||||
/* 32C938 E0010198 3C013B83 */ lui $at, 0x3b83
|
||||
/* 32C93C E001019C 3421126F */ ori $at, $at, 0x126f
|
||||
/* 32C940 E00101A0 44810000 */ mtc1 $at, $f0
|
||||
/* 32C944 E00101A4 00000000 */ nop
|
||||
/* 32C948 E00101A8 E4800088 */ swc1 $f0, 0x88($a0)
|
||||
.LE00101AC:
|
||||
/* 32C94C E00101AC C4800024 */ lwc1 $f0, 0x24($a0)
|
||||
/* 32C950 E00101B0 3C013F80 */ lui $at, 0x3f80
|
||||
/* 32C954 E00101B4 44811000 */ mtc1 $at, $f2
|
||||
/* 32C958 E00101B8 00000000 */ nop
|
||||
/* 32C95C E00101BC 46020001 */ sub.s $f0, $f0, $f2
|
||||
/* 32C960 E00101C0 3C01C2C8 */ lui $at, 0xc2c8
|
||||
/* 32C964 E00101C4 44811000 */ mtc1 $at, $f2
|
||||
/* 32C968 E00101C8 00000000 */ nop
|
||||
/* 32C96C E00101CC 4602003C */ c.lt.s $f0, $f2
|
||||
/* 32C970 E00101D0 00000000 */ nop
|
||||
/* 32C974 E00101D4 45000002 */ bc1f .LE00101E0
|
||||
/* 32C978 E00101D8 E4800024 */ swc1 $f0, 0x24($a0)
|
||||
/* 32C97C E00101DC E4820024 */ swc1 $f2, 0x24($a0)
|
||||
.LE00101E0:
|
||||
/* 32C980 E00101E0 03E00008 */ jr $ra
|
||||
/* 32C984 E00101E4 00000000 */ nop
|
@ -1,57 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel func_E00103F4
|
||||
/* 32CB94 E00103F4 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* 32CB98 E00103F8 AFB40020 */ sw $s4, 0x20($sp)
|
||||
/* 32CB9C E00103FC 0080A02D */ daddu $s4, $a0, $zero
|
||||
/* 32CBA0 E0010400 AFB20018 */ sw $s2, 0x18($sp)
|
||||
/* 32CBA4 E0010404 0000902D */ daddu $s2, $zero, $zero
|
||||
/* 32CBA8 E0010408 AFB3001C */ sw $s3, 0x1c($sp)
|
||||
/* 32CBAC E001040C AFBF0024 */ sw $ra, 0x24($sp)
|
||||
/* 32CBB0 E0010410 AFB10014 */ sw $s1, 0x14($sp)
|
||||
/* 32CBB4 E0010414 AFB00010 */ sw $s0, 0x10($sp)
|
||||
/* 32CBB8 E0010418 8E820008 */ lw $v0, 8($s4)
|
||||
/* 32CBBC E001041C 8E90000C */ lw $s0, 0xc($s4)
|
||||
/* 32CBC0 E0010420 18400017 */ blez $v0, .LE0010480
|
||||
/* 32CBC4 E0010424 0240982D */ daddu $s3, $s2, $zero
|
||||
/* 32CBC8 E0010428 26110006 */ addiu $s1, $s0, 6
|
||||
.LE001042C:
|
||||
/* 32CBCC E001042C 8E020000 */ lw $v0, ($s0)
|
||||
/* 32CBD0 E0010430 5040000E */ beql $v0, $zero, .LE001046C
|
||||
/* 32CBD4 E0010434 26520001 */ addiu $s2, $s2, 1
|
||||
/* 32CBD8 E0010438 96220000 */ lhu $v0, ($s1)
|
||||
/* 32CBDC E001043C 2442FFFF */ addiu $v0, $v0, -1
|
||||
/* 32CBE0 E0010440 A6220000 */ sh $v0, ($s1)
|
||||
/* 32CBE4 E0010444 00021400 */ sll $v0, $v0, 0x10
|
||||
/* 32CBE8 E0010448 5C400003 */ bgtzl $v0, .LE0010458
|
||||
/* 32CBEC E001044C 24130001 */ addiu $s3, $zero, 1
|
||||
/* 32CBF0 E0010450 0800411A */ j .LE0010468
|
||||
/* 32CBF4 E0010454 AE000000 */ sw $zero, ($s0)
|
||||
.LE0010458:
|
||||
/* 32CBF8 E0010458 0C004041 */ jal func_E0010104
|
||||
/* 32CBFC E001045C 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 32CC00 E0010460 0C004000 */ jal func_E0010000
|
||||
/* 32CC04 E0010464 0200202D */ daddu $a0, $s0, $zero
|
||||
.LE0010468:
|
||||
/* 32CC08 E0010468 26520001 */ addiu $s2, $s2, 1
|
||||
.LE001046C:
|
||||
/* 32CC0C E001046C 26310098 */ addiu $s1, $s1, 0x98
|
||||
/* 32CC10 E0010470 8E820008 */ lw $v0, 8($s4)
|
||||
/* 32CC14 E0010474 0242102A */ slt $v0, $s2, $v0
|
||||
/* 32CC18 E0010478 1440FFEC */ bnez $v0, .LE001042C
|
||||
/* 32CC1C E001047C 26100098 */ addiu $s0, $s0, 0x98
|
||||
.LE0010480:
|
||||
/* 32CC20 E0010480 16600003 */ bnez $s3, .LE0010490
|
||||
/* 32CC24 E0010484 00000000 */ nop
|
||||
/* 32CC28 E0010488 0C080128 */ jal shim_remove_effect
|
||||
/* 32CC2C E001048C 0280202D */ daddu $a0, $s4, $zero
|
||||
.LE0010490:
|
||||
/* 32CC30 E0010490 8FBF0024 */ lw $ra, 0x24($sp)
|
||||
/* 32CC34 E0010494 8FB40020 */ lw $s4, 0x20($sp)
|
||||
/* 32CC38 E0010498 8FB3001C */ lw $s3, 0x1c($sp)
|
||||
/* 32CC3C E001049C 8FB20018 */ lw $s2, 0x18($sp)
|
||||
/* 32CC40 E00104A0 8FB10014 */ lw $s1, 0x14($sp)
|
||||
/* 32CC44 E00104A4 8FB00010 */ lw $s0, 0x10($sp)
|
||||
/* 32CC48 E00104A8 03E00008 */ jr $ra
|
||||
/* 32CC4C E00104AC 27BD0028 */ addiu $sp, $sp, 0x28
|
@ -1,21 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel func_E00104B0
|
||||
/* 32CC50 E00104B0 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* 32CC54 E00104B4 3C02E001 */ lui $v0, %hi(func_E0010510)
|
||||
/* 32CC58 E00104B8 24420510 */ addiu $v0, $v0, %lo(func_E0010510)
|
||||
/* 32CC5C E00104BC AFA2001C */ sw $v0, 0x1c($sp)
|
||||
/* 32CC60 E00104C0 24020028 */ addiu $v0, $zero, 0x28
|
||||
/* 32CC64 E00104C4 AFA40018 */ sw $a0, 0x18($sp)
|
||||
/* 32CC68 E00104C8 27A40010 */ addiu $a0, $sp, 0x10
|
||||
/* 32CC6C E00104CC AFBF0020 */ sw $ra, 0x20($sp)
|
||||
/* 32CC70 E00104D0 AFA00014 */ sw $zero, 0x14($sp)
|
||||
/* 32CC74 E00104D4 0C080120 */ jal shim_queue_render_task
|
||||
/* 32CC78 E00104D8 AFA20010 */ sw $v0, 0x10($sp)
|
||||
/* 32CC7C E00104DC 8C430000 */ lw $v1, ($v0)
|
||||
/* 32CC80 E00104E0 34630002 */ ori $v1, $v1, 2
|
||||
/* 32CC84 E00104E4 AC430000 */ sw $v1, ($v0)
|
||||
/* 32CC88 E00104E8 8FBF0020 */ lw $ra, 0x20($sp)
|
||||
/* 32CC8C E00104EC 03E00008 */ jr $ra
|
||||
/* 32CC90 E00104F0 27BD0028 */ addiu $sp, $sp, 0x28
|
@ -1,11 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel func_E00104F4
|
||||
/* 32CC94 E00104F4 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* 32CC98 E00104F8 AFBF0010 */ sw $ra, 0x10($sp)
|
||||
/* 32CC9C E00104FC 0C080128 */ jal shim_remove_effect
|
||||
/* 32CCA0 E0010500 00000000 */ nop
|
||||
/* 32CCA4 E0010504 8FBF0010 */ lw $ra, 0x10($sp)
|
||||
/* 32CCA8 E0010508 03E00008 */ jr $ra
|
||||
/* 32CCAC E001050C 27BD0018 */ addiu $sp, $sp, 0x18
|
@ -1,136 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel func_E0010510
|
||||
/* 32CCB0 E0010510 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* 32CCB4 E0010514 0080602D */ daddu $t4, $a0, $zero
|
||||
/* 32CCB8 E0010518 3C05DB06 */ lui $a1, 0xdb06
|
||||
/* 32CCBC E001051C 34A50024 */ ori $a1, $a1, 0x24
|
||||
/* 32CCC0 E0010520 3C06800A */ lui $a2, %hi(gMasterGfxPos)
|
||||
/* 32CCC4 E0010524 24C6A66C */ addiu $a2, $a2, %lo(gMasterGfxPos)
|
||||
/* 32CCC8 E0010528 3C02E700 */ lui $v0, 0xe700
|
||||
/* 32CCCC E001052C AFB7001C */ sw $s7, 0x1c($sp)
|
||||
/* 32CCD0 E0010530 AFB60018 */ sw $s6, 0x18($sp)
|
||||
/* 32CCD4 E0010534 AFB50014 */ sw $s5, 0x14($sp)
|
||||
/* 32CCD8 E0010538 AFB40010 */ sw $s4, 0x10($sp)
|
||||
/* 32CCDC E001053C AFB3000C */ sw $s3, 0xc($sp)
|
||||
/* 32CCE0 E0010540 AFB20008 */ sw $s2, 8($sp)
|
||||
/* 32CCE4 E0010544 AFB10004 */ sw $s1, 4($sp)
|
||||
/* 32CCE8 E0010548 AFB00000 */ sw $s0, ($sp)
|
||||
/* 32CCEC E001054C 8CC40000 */ lw $a0, ($a2)
|
||||
/* 32CCF0 E0010550 8D88000C */ lw $t0, 0xc($t4)
|
||||
/* 32CCF4 E0010554 0080182D */ daddu $v1, $a0, $zero
|
||||
/* 32CCF8 E0010558 24840008 */ addiu $a0, $a0, 8
|
||||
/* 32CCFC E001055C AC620000 */ sw $v0, ($v1)
|
||||
/* 32CD00 E0010560 AC600004 */ sw $zero, 4($v1)
|
||||
/* 32CD04 E0010564 AC850000 */ sw $a1, ($a0)
|
||||
/* 32CD08 E0010568 8D820010 */ lw $v0, 0x10($t4)
|
||||
/* 32CD0C E001056C 0000482D */ daddu $t1, $zero, $zero
|
||||
/* 32CD10 E0010570 ACC40000 */ sw $a0, ($a2)
|
||||
/* 32CD14 E0010574 8C42001C */ lw $v0, 0x1c($v0)
|
||||
/* 32CD18 E0010578 3C038000 */ lui $v1, 0x8000
|
||||
/* 32CD1C E001057C 00431021 */ addu $v0, $v0, $v1
|
||||
/* 32CD20 E0010580 AC820004 */ sw $v0, 4($a0)
|
||||
/* 32CD24 E0010584 8D820008 */ lw $v0, 8($t4)
|
||||
/* 32CD28 E0010588 24840008 */ addiu $a0, $a0, 8
|
||||
/* 32CD2C E001058C 1840004A */ blez $v0, .LE00106B8
|
||||
/* 32CD30 E0010590 ACC40000 */ sw $a0, ($a2)
|
||||
/* 32CD34 E0010594 3C0F800A */ lui $t7, %hi(gDisplayContext)
|
||||
/* 32CD38 E0010598 25EFA674 */ addiu $t7, $t7, %lo(gDisplayContext)
|
||||
/* 32CD3C E001059C 3C0D8007 */ lui $t5, %hi(gMatrixListPos)
|
||||
/* 32CD40 E00105A0 25AD41F0 */ addiu $t5, $t5, %lo(gMatrixListPos)
|
||||
/* 32CD44 E00105A4 3C0B0001 */ lui $t3, 1
|
||||
/* 32CD48 E00105A8 356B1630 */ ori $t3, $t3, 0x1630
|
||||
/* 32CD4C E00105AC 00C0502D */ daddu $t2, $a2, $zero
|
||||
/* 32CD50 E00105B0 3C13FA00 */ lui $s3, 0xfa00
|
||||
/* 32CD54 E00105B4 3C197060 */ lui $t9, 0x7060
|
||||
/* 32CD58 E00105B8 37391800 */ ori $t9, $t9, 0x1800
|
||||
/* 32CD5C E00105BC 3C12DA38 */ lui $s2, 0xda38
|
||||
/* 32CD60 E00105C0 3C11DE00 */ lui $s1, 0xde00
|
||||
/* 32CD64 E00105C4 3C18D838 */ lui $t8, 0xd838
|
||||
/* 32CD68 E00105C8 37180002 */ ori $t8, $t8, 2
|
||||
/* 32CD6C E00105CC 24100040 */ addiu $s0, $zero, 0x40
|
||||
/* 32CD70 E00105D0 25070070 */ addiu $a3, $t0, 0x70
|
||||
.LE00105D4:
|
||||
/* 32CD74 E00105D4 8D020000 */ lw $v0, ($t0)
|
||||
/* 32CD78 E00105D8 50400032 */ beql $v0, $zero, .LE00106A4
|
||||
/* 32CD7C E00105DC 25290001 */ addiu $t1, $t1, 1
|
||||
/* 32CD80 E00105E0 3C0E0900 */ lui $t6, 0x900
|
||||
/* 32CD84 E00105E4 25CE0E08 */ addiu $t6, $t6, 0xe08
|
||||
/* 32CD88 E00105E8 25040030 */ addiu $a0, $t0, 0x30
|
||||
/* 32CD8C E00105EC 00E0282D */ daddu $a1, $a3, $zero
|
||||
/* 32CD90 E00105F0 95A20000 */ lhu $v0, ($t5)
|
||||
/* 32CD94 E00105F4 8DE30000 */ lw $v1, ($t7)
|
||||
/* 32CD98 E00105F8 00021180 */ sll $v0, $v0, 6
|
||||
/* 32CD9C E00105FC 00621821 */ addu $v1, $v1, $v0
|
||||
/* 32CDA0 E0010600 006B1821 */ addu $v1, $v1, $t3
|
||||
.LE0010604:
|
||||
/* 32CDA4 E0010604 8C940000 */ lw $s4, ($a0)
|
||||
/* 32CDA8 E0010608 8C950004 */ lw $s5, 4($a0)
|
||||
/* 32CDAC E001060C 8C960008 */ lw $s6, 8($a0)
|
||||
/* 32CDB0 E0010610 8C97000C */ lw $s7, 0xc($a0)
|
||||
/* 32CDB4 E0010614 AC740000 */ sw $s4, ($v1)
|
||||
/* 32CDB8 E0010618 AC750004 */ sw $s5, 4($v1)
|
||||
/* 32CDBC E001061C AC760008 */ sw $s6, 8($v1)
|
||||
/* 32CDC0 E0010620 AC77000C */ sw $s7, 0xc($v1)
|
||||
/* 32CDC4 E0010624 24840010 */ addiu $a0, $a0, 0x10
|
||||
/* 32CDC8 E0010628 1485FFF6 */ bne $a0, $a1, .LE0010604
|
||||
/* 32CDCC E001062C 24630010 */ addiu $v1, $v1, 0x10
|
||||
/* 32CDD0 E0010630 8D440000 */ lw $a0, ($t2)
|
||||
/* 32CDD4 E0010634 0080302D */ daddu $a2, $a0, $zero
|
||||
/* 32CDD8 E0010638 24840008 */ addiu $a0, $a0, 8
|
||||
/* 32CDDC E001063C AD440000 */ sw $a0, ($t2)
|
||||
/* 32CDE0 E0010640 ACD30000 */ sw $s3, ($a2)
|
||||
/* 32CDE4 E0010644 90E5FF98 */ lbu $a1, -0x68($a3)
|
||||
/* 32CDE8 E0010648 95A30000 */ lhu $v1, ($t5)
|
||||
/* 32CDEC E001064C 24820008 */ addiu $v0, $a0, 8
|
||||
/* 32CDF0 E0010650 AD420000 */ sw $v0, ($t2)
|
||||
/* 32CDF4 E0010654 24620001 */ addiu $v0, $v1, 1
|
||||
/* 32CDF8 E0010658 A5A20000 */ sh $v0, ($t5)
|
||||
/* 32CDFC E001065C 24820010 */ addiu $v0, $a0, 0x10
|
||||
/* 32CE00 E0010660 AD420000 */ sw $v0, ($t2)
|
||||
/* 32CE04 E0010664 24820018 */ addiu $v0, $a0, 0x18
|
||||
/* 32CE08 E0010668 00B92825 */ or $a1, $a1, $t9
|
||||
/* 32CE0C E001066C 3063FFFF */ andi $v1, $v1, 0xffff
|
||||
/* 32CE10 E0010670 00031980 */ sll $v1, $v1, 6
|
||||
/* 32CE14 E0010674 AD420000 */ sw $v0, ($t2)
|
||||
/* 32CE18 E0010678 ACC50004 */ sw $a1, 4($a2)
|
||||
/* 32CE1C E001067C AC920000 */ sw $s2, ($a0)
|
||||
/* 32CE20 E0010680 8DE20000 */ lw $v0, ($t7)
|
||||
/* 32CE24 E0010684 006B1821 */ addu $v1, $v1, $t3
|
||||
/* 32CE28 E0010688 AC910008 */ sw $s1, 8($a0)
|
||||
/* 32CE2C E001068C AC8E000C */ sw $t6, 0xc($a0)
|
||||
/* 32CE30 E0010690 AC980010 */ sw $t8, 0x10($a0)
|
||||
/* 32CE34 E0010694 AC900014 */ sw $s0, 0x14($a0)
|
||||
/* 32CE38 E0010698 00431021 */ addu $v0, $v0, $v1
|
||||
/* 32CE3C E001069C AC820004 */ sw $v0, 4($a0)
|
||||
/* 32CE40 E00106A0 25290001 */ addiu $t1, $t1, 1
|
||||
.LE00106A4:
|
||||
/* 32CE44 E00106A4 24E70098 */ addiu $a3, $a3, 0x98
|
||||
/* 32CE48 E00106A8 8D820008 */ lw $v0, 8($t4)
|
||||
/* 32CE4C E00106AC 0122102A */ slt $v0, $t1, $v0
|
||||
/* 32CE50 E00106B0 1440FFC8 */ bnez $v0, .LE00105D4
|
||||
/* 32CE54 E00106B4 25080098 */ addiu $t0, $t0, 0x98
|
||||
.LE00106B8:
|
||||
/* 32CE58 E00106B8 3C03800A */ lui $v1, %hi(gMasterGfxPos)
|
||||
/* 32CE5C E00106BC 2463A66C */ addiu $v1, $v1, %lo(gMasterGfxPos)
|
||||
/* 32CE60 E00106C0 8C620000 */ lw $v0, ($v1)
|
||||
/* 32CE64 E00106C4 0040202D */ daddu $a0, $v0, $zero
|
||||
/* 32CE68 E00106C8 24420008 */ addiu $v0, $v0, 8
|
||||
/* 32CE6C E00106CC AC620000 */ sw $v0, ($v1)
|
||||
/* 32CE70 E00106D0 3C02E700 */ lui $v0, 0xe700
|
||||
/* 32CE74 E00106D4 AC820000 */ sw $v0, ($a0)
|
||||
/* 32CE78 E00106D8 AC800004 */ sw $zero, 4($a0)
|
||||
/* 32CE7C E00106DC 8FB7001C */ lw $s7, 0x1c($sp)
|
||||
/* 32CE80 E00106E0 8FB60018 */ lw $s6, 0x18($sp)
|
||||
/* 32CE84 E00106E4 8FB50014 */ lw $s5, 0x14($sp)
|
||||
/* 32CE88 E00106E8 8FB40010 */ lw $s4, 0x10($sp)
|
||||
/* 32CE8C E00106EC 8FB3000C */ lw $s3, 0xc($sp)
|
||||
/* 32CE90 E00106F0 8FB20008 */ lw $s2, 8($sp)
|
||||
/* 32CE94 E00106F4 8FB10004 */ lw $s1, 4($sp)
|
||||
/* 32CE98 E00106F8 8FB00000 */ lw $s0, ($sp)
|
||||
/* 32CE9C E00106FC 03E00008 */ jr $ra
|
||||
/* 32CEA0 E0010700 27BD0020 */ addiu $sp, $sp, 0x20
|
||||
/* 32CEA4 E0010704 00000000 */ nop
|
||||
/* 32CEA8 E0010708 00000000 */ nop
|
||||
/* 32CEAC E001070C 00000000 */ nop
|
@ -1,137 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel fx_8_main
|
||||
/* 32C988 E00101E8 27BDFF80 */ addiu $sp, $sp, -0x80
|
||||
/* 32C98C E00101EC F7BA0068 */ sdc1 $f26, 0x68($sp)
|
||||
/* 32C990 E00101F0 46006686 */ mov.s $f26, $f12
|
||||
/* 32C994 E00101F4 F7BC0070 */ sdc1 $f28, 0x70($sp)
|
||||
/* 32C998 E00101F8 46007706 */ mov.s $f28, $f14
|
||||
/* 32C99C E00101FC 27A40010 */ addiu $a0, $sp, 0x10
|
||||
/* 32C9A0 E0010200 F7BE0078 */ sdc1 $f30, 0x78($sp)
|
||||
/* 32C9A4 E0010204 4486F000 */ mtc1 $a2, $f30
|
||||
/* 32C9A8 E0010208 3C02E001 */ lui $v0, %hi(func_E00103EC)
|
||||
/* 32C9AC E001020C 244203EC */ addiu $v0, $v0, %lo(func_E00103EC)
|
||||
/* 32C9B0 E0010210 AFA20018 */ sw $v0, 0x18($sp)
|
||||
/* 32C9B4 E0010214 3C02E001 */ lui $v0, %hi(func_E00103F4)
|
||||
/* 32C9B8 E0010218 244203F4 */ addiu $v0, $v0, %lo(func_E00103F4)
|
||||
/* 32C9BC E001021C AFA2001C */ sw $v0, 0x1c($sp)
|
||||
/* 32C9C0 E0010220 3C02E001 */ lui $v0, %hi(func_E00104B0)
|
||||
/* 32C9C4 E0010224 244204B0 */ addiu $v0, $v0, %lo(func_E00104B0)
|
||||
/* 32C9C8 E0010228 AFA20020 */ sw $v0, 0x20($sp)
|
||||
/* 32C9CC E001022C 24020008 */ addiu $v0, $zero, 8
|
||||
/* 32C9D0 E0010230 AFBF0048 */ sw $ra, 0x48($sp)
|
||||
/* 32C9D4 E0010234 AFB70044 */ sw $s7, 0x44($sp)
|
||||
/* 32C9D8 E0010238 AFB60040 */ sw $s6, 0x40($sp)
|
||||
/* 32C9DC E001023C AFB5003C */ sw $s5, 0x3c($sp)
|
||||
/* 32C9E0 E0010240 AFB40038 */ sw $s4, 0x38($sp)
|
||||
/* 32C9E4 E0010244 AFB30034 */ sw $s3, 0x34($sp)
|
||||
/* 32C9E8 E0010248 AFB20030 */ sw $s2, 0x30($sp)
|
||||
/* 32C9EC E001024C AFB1002C */ sw $s1, 0x2c($sp)
|
||||
/* 32C9F0 E0010250 AFB00028 */ sw $s0, 0x28($sp)
|
||||
/* 32C9F4 E0010254 F7B80060 */ sdc1 $f24, 0x60($sp)
|
||||
/* 32C9F8 E0010258 F7B60058 */ sdc1 $f22, 0x58($sp)
|
||||
/* 32C9FC E001025C F7B40050 */ sdc1 $f20, 0x50($sp)
|
||||
/* 32CA00 E0010260 AFA7008C */ sw $a3, 0x8c($sp)
|
||||
/* 32CA04 E0010264 AFA00010 */ sw $zero, 0x10($sp)
|
||||
/* 32CA08 E0010268 AFA00024 */ sw $zero, 0x24($sp)
|
||||
/* 32CA0C E001026C 0C080124 */ jal shim_create_effect_instance
|
||||
/* 32CA10 E0010270 AFA20014 */ sw $v0, 0x14($sp)
|
||||
/* 32CA14 E0010274 240402F8 */ addiu $a0, $zero, 0x2f8
|
||||
/* 32CA18 E0010278 24140005 */ addiu $s4, $zero, 5
|
||||
/* 32CA1C E001027C 0040802D */ daddu $s0, $v0, $zero
|
||||
/* 32CA20 E0010280 0C08012C */ jal shim_general_heap_malloc
|
||||
/* 32CA24 E0010284 AE140008 */ sw $s4, 8($s0)
|
||||
/* 32CA28 E0010288 0040882D */ daddu $s1, $v0, $zero
|
||||
/* 32CA2C E001028C 16200003 */ bnez $s1, .LE001029C
|
||||
/* 32CA30 E0010290 AE11000C */ sw $s1, 0xc($s0)
|
||||
.LE0010294:
|
||||
/* 32CA34 E0010294 080040A5 */ j .LE0010294
|
||||
/* 32CA38 E0010298 00000000 */ nop
|
||||
.LE001029C:
|
||||
/* 32CA3C E001029C 0220202D */ daddu $a0, $s1, $zero
|
||||
/* 32CA40 E00102A0 00142880 */ sll $a1, $s4, 2
|
||||
/* 32CA44 E00102A4 00B42821 */ addu $a1, $a1, $s4
|
||||
/* 32CA48 E00102A8 00052880 */ sll $a1, $a1, 2
|
||||
/* 32CA4C E00102AC 00B42823 */ subu $a1, $a1, $s4
|
||||
/* 32CA50 E00102B0 0C080130 */ jal shim_mem_clear
|
||||
/* 32CA54 E00102B4 000528C0 */ sll $a1, $a1, 3
|
||||
/* 32CA58 E00102B8 1280003B */ beqz $s4, .LE00103A8
|
||||
/* 32CA5C E00102BC 0000902D */ daddu $s2, $zero, $zero
|
||||
/* 32CA60 E00102C0 24170001 */ addiu $s7, $zero, 1
|
||||
/* 32CA64 E00102C4 241600FF */ addiu $s6, $zero, 0xff
|
||||
/* 32CA68 E00102C8 2415003C */ addiu $s5, $zero, 0x3c
|
||||
/* 32CA6C E00102CC 26300094 */ addiu $s0, $s1, 0x94
|
||||
/* 32CA70 E00102D0 0240982D */ daddu $s3, $s2, $zero
|
||||
/* 32CA74 E00102D4 3C013E99 */ lui $at, 0x3e99
|
||||
/* 32CA78 E00102D8 34219999 */ ori $at, $at, 0x9999
|
||||
/* 32CA7C E00102DC 4481C000 */ mtc1 $at, $f24
|
||||
/* 32CA80 E00102E0 3C013F80 */ lui $at, 0x3f80
|
||||
/* 32CA84 E00102E4 4481B000 */ mtc1 $at, $f22
|
||||
.LE00102E8:
|
||||
/* 32CA88 E00102E8 44930000 */ mtc1 $s3, $f0
|
||||
/* 32CA8C E00102EC 00000000 */ nop
|
||||
/* 32CA90 E00102F0 46800020 */ cvt.s.w $f0, $f0
|
||||
/* 32CA94 E00102F4 26730048 */ addiu $s3, $s3, 0x48
|
||||
/* 32CA98 E00102F8 C7A6008C */ lwc1 $f6, 0x8c($sp)
|
||||
/* 32CA9C E00102FC 3C01BDA3 */ lui $at, 0xbda3
|
||||
/* 32CAA0 E0010300 3421D70A */ ori $at, $at, 0xd70a
|
||||
/* 32CAA4 E0010304 44811000 */ mtc1 $at, $f2
|
||||
/* 32CAA8 E0010308 3C01C079 */ lui $at, 0xc079
|
||||
/* 32CAAC E001030C 3421999A */ ori $at, $at, 0x999a
|
||||
/* 32CAB0 E0010310 44812000 */ mtc1 $at, $f4
|
||||
/* 32CAB4 E0010314 46003000 */ add.s $f0, $f6, $f0
|
||||
/* 32CAB8 E0010318 26520001 */ addiu $s2, $s2, 1
|
||||
/* 32CABC E001031C AE370000 */ sw $s7, ($s1)
|
||||
/* 32CAC0 E0010320 E600FF94 */ swc1 $f0, -0x6c($s0)
|
||||
/* 32CAC4 E0010324 46000306 */ mov.s $f12, $f0
|
||||
/* 32CAC8 E0010328 3C013FE0 */ lui $at, 0x3fe0
|
||||
/* 32CACC E001032C 44810000 */ mtc1 $at, $f0
|
||||
/* 32CAD0 E0010330 26310098 */ addiu $s1, $s1, 0x98
|
||||
/* 32CAD4 E0010334 E618FFE0 */ swc1 $f24, -0x20($s0)
|
||||
/* 32CAD8 E0010338 AE00FFE4 */ sw $zero, -0x1c($s0)
|
||||
/* 32CADC E001033C AE00FFE8 */ sw $zero, -0x18($s0)
|
||||
/* 32CAE0 E0010340 E61AFF78 */ swc1 $f26, -0x88($s0)
|
||||
/* 32CAE4 E0010344 E61CFF7C */ swc1 $f28, -0x84($s0)
|
||||
/* 32CAE8 E0010348 E61EFF80 */ swc1 $f30, -0x80($s0)
|
||||
/* 32CAEC E001034C E616FF84 */ swc1 $f22, -0x7c($s0)
|
||||
/* 32CAF0 E0010350 E616FF88 */ swc1 $f22, -0x78($s0)
|
||||
/* 32CAF4 E0010354 E616FF8C */ swc1 $f22, -0x74($s0)
|
||||
/* 32CAF8 E0010358 A216FF74 */ sb $s6, -0x8c($s0)
|
||||
/* 32CAFC E001035C A615FF72 */ sh $s5, -0x8e($s0)
|
||||
/* 32CB00 E0010360 AE00FF90 */ sw $zero, -0x70($s0)
|
||||
/* 32CB04 E0010364 AE00FF98 */ sw $zero, -0x68($s0)
|
||||
/* 32CB08 E0010368 AE00FFF4 */ sw $zero, -0xc($s0)
|
||||
/* 32CB0C E001036C AE00FFF8 */ sw $zero, -8($s0)
|
||||
/* 32CB10 E0010370 E602FFF0 */ swc1 $f2, -0x10($s0)
|
||||
/* 32CB14 E0010374 E604FFDC */ swc1 $f4, -0x24($s0)
|
||||
/* 32CB18 E0010378 0C08013C */ jal shim_clamp_angle
|
||||
/* 32CB1C E001037C E600FFEC */ swc1 $f0, -0x14($s0)
|
||||
/* 32CB20 E0010380 46000506 */ mov.s $f20, $f0
|
||||
/* 32CB24 E0010384 0C080140 */ jal shim_sin_deg
|
||||
/* 32CB28 E0010388 4600A306 */ mov.s $f12, $f20
|
||||
/* 32CB2C E001038C 4600A306 */ mov.s $f12, $f20
|
||||
/* 32CB30 E0010390 0C080144 */ jal shim_cos_deg
|
||||
/* 32CB34 E0010394 E600FFFC */ swc1 $f0, -4($s0)
|
||||
/* 32CB38 E0010398 E6000000 */ swc1 $f0, ($s0)
|
||||
/* 32CB3C E001039C 0254102A */ slt $v0, $s2, $s4
|
||||
/* 32CB40 E00103A0 1440FFD1 */ bnez $v0, .LE00102E8
|
||||
/* 32CB44 E00103A4 26100098 */ addiu $s0, $s0, 0x98
|
||||
.LE00103A8:
|
||||
/* 32CB48 E00103A8 8FBF0048 */ lw $ra, 0x48($sp)
|
||||
/* 32CB4C E00103AC 8FB70044 */ lw $s7, 0x44($sp)
|
||||
/* 32CB50 E00103B0 8FB60040 */ lw $s6, 0x40($sp)
|
||||
/* 32CB54 E00103B4 8FB5003C */ lw $s5, 0x3c($sp)
|
||||
/* 32CB58 E00103B8 8FB40038 */ lw $s4, 0x38($sp)
|
||||
/* 32CB5C E00103BC 8FB30034 */ lw $s3, 0x34($sp)
|
||||
/* 32CB60 E00103C0 8FB20030 */ lw $s2, 0x30($sp)
|
||||
/* 32CB64 E00103C4 8FB1002C */ lw $s1, 0x2c($sp)
|
||||
/* 32CB68 E00103C8 8FB00028 */ lw $s0, 0x28($sp)
|
||||
/* 32CB6C E00103CC D7BE0078 */ ldc1 $f30, 0x78($sp)
|
||||
/* 32CB70 E00103D0 D7BC0070 */ ldc1 $f28, 0x70($sp)
|
||||
/* 32CB74 E00103D4 D7BA0068 */ ldc1 $f26, 0x68($sp)
|
||||
/* 32CB78 E00103D8 D7B80060 */ ldc1 $f24, 0x60($sp)
|
||||
/* 32CB7C E00103DC D7B60058 */ ldc1 $f22, 0x58($sp)
|
||||
/* 32CB80 E00103E0 D7B40050 */ ldc1 $f20, 0x50($sp)
|
||||
/* 32CB84 E00103E4 03E00008 */ jr $ra
|
||||
/* 32CB88 E00103E8 27BD0080 */ addiu $sp, $sp, 0x80
|
@ -2224,7 +2224,7 @@ segments:
|
||||
vram: 0xE000E000
|
||||
subsegments:
|
||||
- [0x32C110, c, effect_7]
|
||||
- [0x32c770, data]
|
||||
- [0x32c770]
|
||||
- name: effect_8
|
||||
dir: effects
|
||||
type: code
|
||||
@ -2232,7 +2232,7 @@ segments:
|
||||
vram: 0xE0010000
|
||||
subsegments:
|
||||
- [0x32C7A0, c, effect_8]
|
||||
- [0x32CEB0, data]
|
||||
- [0x32CEB0]
|
||||
- [0x32CEC0, bin] # effect 8,9 gfx
|
||||
- name: effect_9
|
||||
dir: effects
|
||||
|
@ -4897,18 +4897,18 @@ fx_6_update = 0xE000C654; // type:func rom:0x328764
|
||||
fx_6_render = 0xE000C754; // type:func rom:0x328864
|
||||
func_E000C798 = 0xE000C798; // type:func rom:0x3288A8
|
||||
fx_7_main = 0xE000E000; // type:func rom:0x32C110
|
||||
func_E000E16C = 0xE000E16C; // type:func rom:0x32C27C
|
||||
func_E000E174 = 0xE000E174; // type:func rom:0x32C284
|
||||
func_E000E244 = 0xE000E244; // type:func rom:0x32C354
|
||||
func_E000E288 = 0xE000E288; // type:func rom:0x32C398
|
||||
fx_7_init = 0xE000E16C; // type:func rom:0x32C27C
|
||||
fx_7_update = 0xE000E174; // type:func rom:0x32C284
|
||||
fx_7_render = 0xE000E244; // type:func rom:0x32C354
|
||||
fx_7_appendGfx = 0xE000E288; // type:func rom:0x32C398
|
||||
func_E0010000 = 0xE0010000; // type:func rom:0x32C7A0
|
||||
func_E0010104 = 0xE0010104; // type:func rom:0x32C8A4
|
||||
fx_8_main = 0xE00101E8; // type:func rom:0x32C988
|
||||
func_E00103EC = 0xE00103EC; // type:func rom:0x32CB8C
|
||||
func_E00103F4 = 0xE00103F4; // type:func rom:0x32CB94
|
||||
func_E00104B0 = 0xE00104B0; // type:func rom:0x32CC50
|
||||
fx_8_init = 0xE00103EC; // type:func rom:0x32CB8C
|
||||
fx_8_update = 0xE00103F4; // type:func rom:0x32CB94
|
||||
fx_8_render = 0xE00104B0; // type:func rom:0x32CC50
|
||||
func_E00104F4 = 0xE00104F4; // type:func rom:0x32CC94
|
||||
func_E0010510 = 0xE0010510; // type:func rom:0x32CCB0
|
||||
fx_8_appendGfx = 0xE0010510; // type:func rom:0x32CCB0
|
||||
func_E0012000 = 0xE0012000; // type:func rom:0x32DD10
|
||||
func_E0012104 = 0xE0012104; // type:func rom:0x32DE14
|
||||
fx_9_main = 0xE0012204; // type:func rom:0x32DF14
|
||||
@ -19053,7 +19053,6 @@ gCollisionStatus = 0x8015A550; // size:0x28
|
||||
D_8015A578 = 0x8015A578; // type:data
|
||||
D_8015A57A = 0x8015A57A; // type:data
|
||||
mdl_textureHandles = 0x8015A590; // type:data
|
||||
D_8015C74C = 0x8015C74C; // type:data
|
||||
D_8015C790 = 0x8015C790; // type:data
|
||||
D_8015C7A4 = 0x8015C7A4; // type:data
|
||||
D_8015C7A8 = 0x8015C7A8; // type:data
|
||||
|
@ -295,7 +295,6 @@ gCollisionStatus = 0x8015A550;
|
||||
D_8015A578 = 0x8015A578;
|
||||
D_8015A57A = 0x8015A57A;
|
||||
mdl_textureHandles = 0x8015A590;
|
||||
D_8015C74C = 0x8015C74C;
|
||||
D_8015C790 = 0x8015C790;
|
||||
D_8015C7A4 = 0x8015C7A4;
|
||||
D_8015C7A8 = 0x8015C7A8;
|
||||
@ -1278,6 +1277,16 @@ D_FD100008 = 0xFD100008;
|
||||
D_802510B0 = 0x802510B0;
|
||||
D_8026A2B0 = 0x8026A2B0;
|
||||
|
||||
// effect 7
|
||||
D_09002780 = 0x09002780;
|
||||
D_09002868 = 0x09002868;
|
||||
D_09002950 = 0x09002950;
|
||||
D_09002B20 = 0x09002B20;
|
||||
D_09002B40 = 0x09002B40;
|
||||
|
||||
// effect 8
|
||||
D_09000E08 = 0x09000E08;
|
||||
|
||||
// BSS syms found in main overlay
|
||||
#ifndef NON_MATCHING
|
||||
nuScPreNMIFlag = 0x8009A5B0;
|
||||
|
Loading…
Reference in New Issue
Block a user