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:
Ethan Roseman 2021-10-04 00:44:16 +09:00 committed by GitHub
parent c3bf1ad8fa
commit 59050ec3e9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
61 changed files with 818 additions and 2050 deletions

7
Jenkinsfile vendored
View File

@ -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)
}
}
}

View File

@ -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 {

View File

@ -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;

View File

@ -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);

View File

@ -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);

View File

@ -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

View File

@ -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;

View File

@ -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] = {

View File

@ -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) {

View File

@ -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;

View File

@ -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;

View File

@ -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 {

View File

@ -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;
}

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -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();
}

View File

@ -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);
}

View File

@ -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) {

View File

@ -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];
}

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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++);
}

View File

@ -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++);
}

View File

@ -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);

View File

@ -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);
}
}

View File

@ -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);

View File

@ -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;
}

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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;