mirror of
https://github.com/pmret/papermario.git
synced 2024-11-18 00:42:34 +01:00
Sprite stuff (#270)
* root-level configure script * fix configure on macos? * fix macos again maybe * fix messages, add asset stack * generate map headers from xml maps * fix sprite_dir asset * git subrepo pull (merge) --force tools/splat subrepo: subdir: "tools/splat" merged: "5e36c45558" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "5e36c45558" git-subrepo: version: "0.4.3" origin: "???" commit: "???" * name sprite.c * almost match func_802DD8F8 * match func_802DD8F8 * crusade against unsigned integers * name some sprite data * add pylibyaml to requirements.txt
This commit is contained in:
parent
52ca40f632
commit
a3e4140101
@ -5,3 +5,4 @@ pypng
|
||||
colorama
|
||||
ninja_syntax
|
||||
msgpack
|
||||
pylibyaml
|
||||
|
@ -4,7 +4,8 @@ INCLUDE_ASM(s32, "101b90_len_8f0", func_802DEAA0);
|
||||
|
||||
INCLUDE_ASM(s32, "101b90_len_8f0", load_sprite);
|
||||
|
||||
INCLUDE_ASM(s32, "101b90_len_8f0", func_802DED60);
|
||||
// spr_init_player_raster_cache
|
||||
INCLUDE_ASM(void, "101b90_len_8f0", func_802DED60, s32 cacheSize, s32 maxRasterSize);
|
||||
|
||||
INCLUDE_ASM(s32, "101b90_len_8f0", func_802DEEA0);
|
||||
|
||||
|
@ -205,7 +205,7 @@ void load_engine_data(void) {
|
||||
clear_script_list();
|
||||
create_cameras_a();
|
||||
clear_player_status();
|
||||
func_802DD8F8(0);
|
||||
spr_init_sprites(0);
|
||||
clear_entity_models();
|
||||
func_8011E224();
|
||||
clear_model_data();
|
||||
|
@ -34,7 +34,7 @@ void step_init_state(void) {
|
||||
clear_dynamic_entity_list();
|
||||
clear_script_list();
|
||||
create_cameras_a();
|
||||
func_802DD8F8(0);
|
||||
spr_init_sprites(0);
|
||||
clear_entity_models();
|
||||
func_8011E224();
|
||||
clear_model_data();
|
||||
|
@ -102,7 +102,7 @@ void step_battle(void) {
|
||||
phi_a0 = 6;
|
||||
}
|
||||
|
||||
func_802DD8F8(phi_a0);
|
||||
spr_init_sprites(phi_a0);
|
||||
|
||||
clear_model_data();
|
||||
func_80148040();
|
||||
|
@ -97,7 +97,7 @@ void state_init_logos(void) {
|
||||
clear_script_list();
|
||||
clear_dynamic_entity_list();
|
||||
func_8011D890();
|
||||
func_802DD8F8(0);
|
||||
spr_init_sprites(0);
|
||||
func_8011E224();
|
||||
clear_entity_models();
|
||||
npc_list_clear();
|
||||
@ -356,7 +356,7 @@ void state_step_pause(void) {
|
||||
battle_heap_create();
|
||||
nuContRmbForceStop();
|
||||
func_80149670(0);
|
||||
func_802DD8F8(0);
|
||||
spr_init_sprites(0);
|
||||
clear_model_data();
|
||||
func_80148040();
|
||||
use_default_background_settings();
|
||||
@ -450,7 +450,7 @@ void state_step_unpause(void) {
|
||||
func_8002ACDC();
|
||||
nuContRmbForceStopEnd();
|
||||
func_80149670(1);
|
||||
func_802DD8F8((*gameStatus)->unk_84);
|
||||
spr_init_sprites((*gameStatus)->unk_84);
|
||||
init_model_data();
|
||||
func_801480F0();
|
||||
init_entity_models();
|
||||
|
@ -1,198 +0,0 @@
|
||||
#include "common.h"
|
||||
|
||||
s32 D_802DF390[] = { 0xFFF00038, 0x00000000, 0x00000000, 0xF0F0F0FF, 0x00100038, 0x00000000, 0x04000000, 0x787878FF,
|
||||
0x00100000, 0x00000000, 0x04000700, 0x000000FF, 0xFFF00000, 0x00000000, 0x00000700, 0x787878FF,
|
||||
};
|
||||
|
||||
s32 D_802DF3D0[] = { 0x028001E0, 0x01FF0000, 0x028001E0, 0x01FF0000, };
|
||||
|
||||
s32 D_802DF3E0[] = { 0x028001E0, 0x01FF0000, 0x028001E0, 0x02000000, };
|
||||
|
||||
Gfx D_802DF3F0[] = {
|
||||
gsSPClearGeometryMode(G_CULL_BOTH | G_LIGHTING),
|
||||
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
|
||||
gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_SHADING_SMOOTH),
|
||||
gsDPSetRenderMode(AA_EN | Z_CMP | Z_UPD | CVG_DST_FULL | ZMODE_OPA | CVG_X_ALPHA | GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_A_MEM), AA_EN | Z_CMP | Z_UPD | CVG_DST_FULL | ZMODE_OPA | CVG_X_ALPHA | GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_A_MEM)),
|
||||
gsSPSetOtherMode(G_SETOTHERMODE_H, G_MDSFT_ALPHADITHER, 18, G_AD_DISABLE | G_CD_DISABLE | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_RGBA16 | G_TL_TILE | G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_802DF428[] = {
|
||||
gsSPClearGeometryMode(G_CULL_BOTH | G_LIGHTING),
|
||||
gsDPSetCombineLERP(0, 0, 0, TEXEL0, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, PRIMITIVE, 0),
|
||||
gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_SHADING_SMOOTH),
|
||||
gsDPSetRenderMode(G_RM_ZB_CLD_SURF, G_RM_ZB_CLD_SURF2),
|
||||
gsSPSetOtherMode(G_SETOTHERMODE_H, G_MDSFT_ALPHADITHER, 18, G_AD_DISABLE | G_CD_DISABLE | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_RGBA16 | G_TL_TILE | G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_802DF460[] = {
|
||||
gsSPClearGeometryMode(G_CULL_BOTH | G_LIGHTING),
|
||||
gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_SHADING_SMOOTH),
|
||||
gsDPSetRenderMode(AA_EN | Z_CMP | Z_UPD | CVG_DST_FULL | ZMODE_OPA | CVG_X_ALPHA | G_RM_PASS, AA_EN | Z_CMP | Z_UPD | CVG_DST_FULL | ZMODE_OPA | CVG_X_ALPHA | GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_A_MEM)),
|
||||
gsSPSetOtherMode(G_SETOTHERMODE_H, G_MDSFT_ALPHADITHER, 18, G_AD_DISABLE | G_CD_DISABLE | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_RGBA16 | G_TL_TILE | G_TD_CLAMP | G_TP_PERSP | G_CYC_2CYCLE | G_PM_NPRIMITIVE),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_802DF490[] = {
|
||||
gsSPClearGeometryMode(G_CULL_BOTH | G_LIGHTING),
|
||||
gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_SHADING_SMOOTH),
|
||||
gsDPSetRenderMode(G_RM_PASS, G_RM_ZB_CLD_SURF2),
|
||||
gsSPSetOtherMode(G_SETOTHERMODE_H, G_MDSFT_ALPHADITHER, 18, G_AD_DISABLE | G_CD_DISABLE | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_RGBA16 | G_TL_TILE | G_TD_CLAMP | G_TP_PERSP | G_CYC_2CYCLE | G_PM_NPRIMITIVE),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
f32 D_802DF4C0 = 1.0f;
|
||||
|
||||
s32 D_802DF4C4[] = { 0x00000006, 0x00000700, 0x000003C6, 0x00000012, 0x00000700, 0x000003C6, 0x0000000A, 0x00000900, 0x00003FC6, 0x00000003, 0x00000700, 0x00000006, 0x00000006, 0x00000900, 0x00003C00, 0x00000006, 0x00000700, 0x0000003E, 0x00000006, 0x00000900, 0x00003C00, 0x00000000, 0x00000000, };
|
||||
|
||||
|
||||
INCLUDE_ASM(s32, "fee30_len_2d60", func_802DBD40);
|
||||
|
||||
// extern s32* gSpriteHeapPtr;
|
||||
// extern s32** D_802DFE44;
|
||||
// extern s32* D_802DFE9C;
|
||||
|
||||
// void func_802DBD40(void) {
|
||||
// s32 i;
|
||||
// s32* phi_v0;
|
||||
// D_802DFE44 = _heap_malloc(&gSpriteHeapPtr, 0x580);
|
||||
|
||||
// for (i = 21; i >= 0; i--) {
|
||||
// D_802DFE44[i] = -1;
|
||||
// }
|
||||
// }
|
||||
|
||||
INCLUDE_ASM(s32, "fee30_len_2d60", func_802DBD8C);
|
||||
|
||||
INCLUDE_ASM(s32, "fee30_len_2d60", func_802DBDBC);
|
||||
|
||||
INCLUDE_ASM(s32, "fee30_len_2d60", func_802DBE78);
|
||||
|
||||
INCLUDE_ASM(s32, "fee30_len_2d60", func_802DBFC0);
|
||||
|
||||
INCLUDE_ASM(s32, "fee30_len_2d60", func_802DC008);
|
||||
|
||||
INCLUDE_ASM(s32, "fee30_len_2d60", spr_appendMDL_component);
|
||||
|
||||
void spr_transform_point(s32 rotX, s32 rotY, s32 rotZ, f32 inX, f32 inY, f32 inZ, f32* outX, f32* outY, f32* outZ) {
|
||||
if (rotX == 0 && rotY == 0 && rotZ == 0) {
|
||||
*outX = inX;
|
||||
*outY = inY;
|
||||
*outZ = inZ;
|
||||
} else {
|
||||
Matrix4f mtx, mtx2;
|
||||
f32 f1, f2, f3, f4, f5, f6, f7, f8, f9;
|
||||
|
||||
guRotateF(&mtx, rotY, 0.0f, 1.0f, 0.0f);
|
||||
guRotateF(&mtx2, rotZ, 0.0f, 0.0f, 1.0f);
|
||||
guMtxCatF(&mtx2, &mtx, &mtx);
|
||||
guRotateF(&mtx2, rotX, 1.0f, 0.0f, 0.0f);
|
||||
guMtxCatF(&mtx2, &mtx, &mtx);
|
||||
|
||||
f1 = (mtx[0][0] * inX);
|
||||
f2 = (mtx[1][0] * inY);
|
||||
f3 = (mtx[2][0] * inZ);
|
||||
f4 = (mtx[0][1] * inX);
|
||||
f5 = (mtx[1][1] * inY);
|
||||
f6 = (mtx[2][1] * inZ);
|
||||
f7 = (mtx[0][2] * inX);
|
||||
f8 = (mtx[1][2] * inY);
|
||||
f9 = (mtx[2][2] * inZ);
|
||||
|
||||
*outX = f1 + f2 + f3;
|
||||
*outY = f4 + f5 + f6;
|
||||
*outZ = f7 + f8 + f9;
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "fee30_len_2d60", spr_draw_component);
|
||||
|
||||
s32 _spr_sign_extend_12bit(u16 val) {
|
||||
s32 temp = val & 0xFFF;
|
||||
|
||||
if (temp & 0x800) {
|
||||
return temp | ~0xFFF;
|
||||
} else {
|
||||
return temp;
|
||||
}
|
||||
}
|
||||
|
||||
s32 _spr_sign_extend_16bit(u16 val) {
|
||||
s32 temp = val & 0xFFFF;
|
||||
|
||||
if (temp & 0x8000) {
|
||||
return temp | ~0xFFFF;
|
||||
} else {
|
||||
return temp;
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "fee30_len_2d60", update_component);
|
||||
|
||||
INCLUDE_ASM(s32, "fee30_len_2d60", func_802DD634);
|
||||
|
||||
INCLUDE_ASM(s32, "fee30_len_2d60", func_802DD6DC);
|
||||
|
||||
INCLUDE_ASM(s32, "fee30_len_2d60", func_802DD7B0);
|
||||
|
||||
INCLUDE_ASM(s32, "fee30_len_2d60", func_802DD820);
|
||||
|
||||
void set_anim_timescale(f32 arg0) {
|
||||
D_802DF4C0 = arg0 * 2.0f;
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "fee30_len_2d60", func_802DD89C);
|
||||
|
||||
INCLUDE_ASM(s32, "fee30_len_2d60", func_802DD8F8);
|
||||
|
||||
void func_802DDA60(void) {
|
||||
func_802DEFB4();
|
||||
func_802DBFC0();
|
||||
}
|
||||
|
||||
s32 func_802DDA84(void) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "fee30_len_2d60", func_802DDA8C);
|
||||
|
||||
INCLUDE_ASM(s32, "fee30_len_2d60", render_sprite);
|
||||
|
||||
INCLUDE_ASM(s32, "fee30_len_2d60", func_802DDEC4);
|
||||
|
||||
INCLUDE_ASM(s32, "fee30_len_2d60", func_802DDEE4);
|
||||
|
||||
INCLUDE_ASM(s32, "fee30_len_2d60", func_802DDFF8);
|
||||
|
||||
INCLUDE_ASM(s32, "fee30_len_2d60", func_802DE044);
|
||||
|
||||
INCLUDE_ASM(s32, "fee30_len_2d60", func_802DE0C0);
|
||||
|
||||
INCLUDE_ASM(s32, "fee30_len_2d60", func_802DE0EC);
|
||||
|
||||
INCLUDE_ASM(s32, "fee30_len_2d60", func_802DE2AC, s32 arg0, s32 arg1, f32 arg2);
|
||||
|
||||
INCLUDE_ASM(s32, "fee30_len_2d60", func_802DE3D8);
|
||||
|
||||
INCLUDE_ASM(s32, "fee30_len_2d60", func_802DE5C8);
|
||||
|
||||
INCLUDE_ASM(s32, "fee30_len_2d60", func_802DE5E8);
|
||||
|
||||
INCLUDE_ASM(s32, "fee30_len_2d60", func_802DE748);
|
||||
|
||||
INCLUDE_ASM(s32, "fee30_len_2d60", func_802DE780);
|
||||
|
||||
INCLUDE_ASM(s32, "fee30_len_2d60", func_802DE894);
|
||||
|
||||
INCLUDE_ASM(s32, "fee30_len_2d60", func_802DE8DC);
|
||||
|
||||
INCLUDE_ASM(s32, "fee30_len_2d60", func_802DE9D8);
|
||||
|
||||
INCLUDE_ASM(s32, "fee30_len_2d60", func_802DEA40);
|
||||
|
||||
INCLUDE_ASM(s32, "fee30_len_2d60", func_802DEA6C);
|
314
src/sprite.c
Normal file
314
src/sprite.c
Normal file
@ -0,0 +1,314 @@
|
||||
#include "common.h"
|
||||
|
||||
struct spr_playerCurrentAnimInfo {
|
||||
/* 0x00 */ SpriteComponent** componentList;
|
||||
/* 0x04 */ s32 animID;
|
||||
/* 0x08 */ s32 unk_08;
|
||||
}; // size = 0xC
|
||||
|
||||
struct D_802DFA48 {
|
||||
s32 unk_00;
|
||||
s32 unk_04;
|
||||
s32 unk_08;
|
||||
s32 unk_0C;
|
||||
s32 unk_10;
|
||||
}; // size = 0x14
|
||||
|
||||
typedef struct PlayerSpriteSet {
|
||||
/// Number of cache entries.
|
||||
/* 0x00 */ s32 cacheSize;
|
||||
|
||||
/// Maximum raster size.
|
||||
/* 0x04 */ s32 rasterSize;
|
||||
|
||||
/// Flags saying which rasters to load into the cache in spr_init_sprites(), with each bit corresponding to the Nth
|
||||
/// raster (with LSB = raster 0).
|
||||
/* 0x08 */ s32 initiallyLoaded;
|
||||
} PlayerSpriteSet; // size = 0xC
|
||||
|
||||
/// Sprite data header.
|
||||
typedef struct SpriteAnimData {
|
||||
/* 0x00 */ s32** rastersOffset;
|
||||
/* 0x04 */ s32** palettesOffset;
|
||||
/* 0x08 */ s32 maxComponents;
|
||||
/* 0x0C */ s32 colorVariations;
|
||||
} SpriteAnimData; // size = 0x10
|
||||
|
||||
extern s32 spr_allocateBtlComponentsOnWorldHeap;
|
||||
extern SpriteAnimData* spr_playerSprites[13];
|
||||
extern s32 spr_playerMaxComponents;
|
||||
extern SpriteAnimData* spr_npcSprites[0xEA];
|
||||
extern struct spr_playerCurrentAnimInfo spr_playerCurrentAnimInfo[3];
|
||||
extern struct D_802DFA48 D_802DFA48[51];
|
||||
extern u8 spr_npcSpriteInstanceCount[];
|
||||
extern s32 gSpriteHeapPtr;
|
||||
|
||||
void func_802DED60(s32 cacheSize, s32 maxRasterSize);
|
||||
|
||||
Vtx spr_defaultQuad[] = {
|
||||
{{{ -16, 56, 0 }, FALSE, { 0, 0 }, { 240, 240, 240, 255 }}},
|
||||
{{{ 16, 56, 0 }, FALSE, { 1024, 0 }, { 120, 120, 120, 255 }}},
|
||||
{{{ 16, 0, 0 }, FALSE, { 1024, 1792 }, { 0, 0, 0, 255 }}},
|
||||
{{{ -16, 0, 0 }, FALSE, { 0, 1792 }, { 120, 120, 120, 255 }}},
|
||||
};
|
||||
|
||||
Vp D_802DF3D0 = {{
|
||||
{ 640, 480, 511, 0 },
|
||||
{ 640, 480, 511, 0 },
|
||||
}};
|
||||
|
||||
Vp D_802DF3E0 = {{
|
||||
{ 640, 480, 511, 0 },
|
||||
{ 640, 480, 512, 0 },
|
||||
}};
|
||||
|
||||
Gfx D_802DF3F0[] = {
|
||||
gsSPClearGeometryMode(G_CULL_BOTH | G_LIGHTING),
|
||||
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
|
||||
gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_SHADING_SMOOTH),
|
||||
gsDPSetRenderMode(AA_EN | Z_CMP | Z_UPD | CVG_DST_FULL | ZMODE_OPA | CVG_X_ALPHA | GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_A_MEM), AA_EN | Z_CMP | Z_UPD | CVG_DST_FULL | ZMODE_OPA | CVG_X_ALPHA | GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_A_MEM)),
|
||||
gsSPSetOtherMode(G_SETOTHERMODE_H, G_MDSFT_ALPHADITHER, 18, G_AD_DISABLE | G_CD_DISABLE | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_RGBA16 | G_TL_TILE | G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_802DF428[] = {
|
||||
gsSPClearGeometryMode(G_CULL_BOTH | G_LIGHTING),
|
||||
gsDPSetCombineLERP(0, 0, 0, TEXEL0, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, PRIMITIVE, 0),
|
||||
gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_SHADING_SMOOTH),
|
||||
gsDPSetRenderMode(G_RM_ZB_CLD_SURF, G_RM_ZB_CLD_SURF2),
|
||||
gsSPSetOtherMode(G_SETOTHERMODE_H, G_MDSFT_ALPHADITHER, 18, G_AD_DISABLE | G_CD_DISABLE | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_RGBA16 | G_TL_TILE | G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_802DF460[] = {
|
||||
gsSPClearGeometryMode(G_CULL_BOTH | G_LIGHTING),
|
||||
gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_SHADING_SMOOTH),
|
||||
gsDPSetRenderMode(AA_EN | Z_CMP | Z_UPD | CVG_DST_FULL | ZMODE_OPA | CVG_X_ALPHA | G_RM_PASS, AA_EN | Z_CMP | Z_UPD | CVG_DST_FULL | ZMODE_OPA | CVG_X_ALPHA | GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_A_MEM)),
|
||||
gsSPSetOtherMode(G_SETOTHERMODE_H, G_MDSFT_ALPHADITHER, 18, G_AD_DISABLE | G_CD_DISABLE | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_RGBA16 | G_TL_TILE | G_TD_CLAMP | G_TP_PERSP | G_CYC_2CYCLE | G_PM_NPRIMITIVE),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_802DF490[] = {
|
||||
gsSPClearGeometryMode(G_CULL_BOTH | G_LIGHTING),
|
||||
gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_SHADING_SMOOTH),
|
||||
gsDPSetRenderMode(G_RM_PASS, G_RM_ZB_CLD_SURF2),
|
||||
gsSPSetOtherMode(G_SETOTHERMODE_H, G_MDSFT_ALPHADITHER, 18, G_AD_DISABLE | G_CD_DISABLE | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_RGBA16 | G_TL_TILE | G_TD_CLAMP | G_TP_PERSP | G_CYC_2CYCLE | G_PM_NPRIMITIVE),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
f32 spr_animUpdateTimeScale = 1.0f;
|
||||
|
||||
// TODO(player raster splat header generation):
|
||||
// - macroify rasterSize based on the biggest raster
|
||||
// - OR values of a generated player raster name enum together for initiallyLoaded bits
|
||||
PlayerSpriteSet spr_playerSpriteSets[] = {
|
||||
/* Mario */ { 6, 0x700, 0x000003C6 },
|
||||
/* Mario */ { 18, 0x700, 0x000003C6 },
|
||||
/* Mario */ { 10, 0x900, 0x00003FC6 },
|
||||
/* Mario */ { 3, 0x700, 0x00000006 },
|
||||
/* Peach */ { 6, 0x900, 0x00003C00 },
|
||||
/* Peach */ { 6, 0x700, 0x0000003E },
|
||||
/* Peach */ { 6, 0x900, 0x00003C00 },
|
||||
};
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", func_802DBD40);
|
||||
|
||||
// extern s32* gSpriteHeapPtr;
|
||||
// extern s32** D_802DFE44;
|
||||
// extern s32* D_802DFE9C;
|
||||
|
||||
// void func_802DBD40(void) {
|
||||
// s32 i;
|
||||
// s32* phi_v0;
|
||||
// D_802DFE44 = _heap_malloc(&gSpriteHeapPtr, 0x580);
|
||||
|
||||
// for (i = 21; i >= 0; i--) {
|
||||
// D_802DFE44[i] = -1;
|
||||
// }
|
||||
// }
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", func_802DBD8C);
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", func_802DBDBC);
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", func_802DBE78);
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", func_802DBFC0);
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", func_802DC008);
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", spr_appendMDL_component);
|
||||
|
||||
void spr_transform_point(s32 rotX, s32 rotY, s32 rotZ, f32 inX, f32 inY, f32 inZ, f32* outX, f32* outY, f32* outZ) {
|
||||
if (rotX == 0 && rotY == 0 && rotZ == 0) {
|
||||
*outX = inX;
|
||||
*outY = inY;
|
||||
*outZ = inZ;
|
||||
} else {
|
||||
Matrix4f mtx, mtx2;
|
||||
f32 f1, f2, f3, f4, f5, f6, f7, f8, f9;
|
||||
|
||||
guRotateF(&mtx, rotY, 0.0f, 1.0f, 0.0f);
|
||||
guRotateF(&mtx2, rotZ, 0.0f, 0.0f, 1.0f);
|
||||
guMtxCatF(&mtx2, &mtx, &mtx);
|
||||
guRotateF(&mtx2, rotX, 1.0f, 0.0f, 0.0f);
|
||||
guMtxCatF(&mtx2, &mtx, &mtx);
|
||||
|
||||
f1 = (mtx[0][0] * inX);
|
||||
f2 = (mtx[1][0] * inY);
|
||||
f3 = (mtx[2][0] * inZ);
|
||||
f4 = (mtx[0][1] * inX);
|
||||
f5 = (mtx[1][1] * inY);
|
||||
f6 = (mtx[2][1] * inZ);
|
||||
f7 = (mtx[0][2] * inX);
|
||||
f8 = (mtx[1][2] * inY);
|
||||
f9 = (mtx[2][2] * inZ);
|
||||
|
||||
*outX = f1 + f2 + f3;
|
||||
*outY = f4 + f5 + f6;
|
||||
*outZ = f7 + f8 + f9;
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", spr_draw_component);
|
||||
|
||||
s32 _spr_sign_extend_12bit(u16 val) {
|
||||
s32 temp = val & 0xFFF;
|
||||
|
||||
if (temp & 0x800) {
|
||||
return temp | ~0xFFF;
|
||||
} else {
|
||||
return temp;
|
||||
}
|
||||
}
|
||||
|
||||
s32 _spr_sign_extend_16bit(u16 val) {
|
||||
s32 temp = val & 0xFFFF;
|
||||
|
||||
if (temp & 0x8000) {
|
||||
return temp | ~0xFFFF;
|
||||
} else {
|
||||
return temp;
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", update_component);
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", func_802DD634);
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", func_802DD6DC);
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", func_802DD7B0);
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", func_802DD820);
|
||||
|
||||
void set_anim_timescale(f32 arg0) {
|
||||
spr_animUpdateTimeScale = arg0 * 2.0f;
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", func_802DD89C);
|
||||
|
||||
void spr_init_sprites(s32 playerSpriteSet) {
|
||||
s32 i;
|
||||
s32 flags;
|
||||
|
||||
spr_allocateBtlComponentsOnWorldHeap = FALSE;
|
||||
_heap_create(&gSpriteHeapPtr, 0x40000);
|
||||
func_8013A37C();
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(spr_playerSprites); i++) {
|
||||
SpriteAnimData** playerSprites = spr_playerSprites;
|
||||
playerSprites[i] = 0;
|
||||
}
|
||||
|
||||
spr_playerMaxComponents = 0;
|
||||
|
||||
if (gGameStatusPtr->peachFlags & 1) {
|
||||
playerSpriteSet = 4;
|
||||
}
|
||||
|
||||
flags = (&spr_playerSpriteSets[playerSpriteSet])->initiallyLoaded;
|
||||
func_802DED60((&spr_playerSpriteSets[playerSpriteSet])->cacheSize, (&spr_playerSpriteSets[playerSpriteSet])->rasterSize);
|
||||
|
||||
for (i = 1; i < 0xE; i++) {
|
||||
if ((flags >> i) & 1) {
|
||||
func_802DD89C(i); // spr_load_player_sprite
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(spr_playerCurrentAnimInfo); i++) {
|
||||
struct spr_playerCurrentAnimInfo* d = &spr_playerCurrentAnimInfo[i];
|
||||
d->componentList = 0;
|
||||
d->animID = -1;
|
||||
}
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(spr_npcSprites); i++) {
|
||||
s32* npcSprites = spr_npcSprites;
|
||||
u8* npcSpriteInstanceCount = spr_npcSpriteInstanceCount;
|
||||
|
||||
npcSprites[i] = 0;
|
||||
npcSpriteInstanceCount[i] = 0;
|
||||
}
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(D_802DFA48); i++) {
|
||||
struct D_802DFA48* d = &D_802DFA48[i];
|
||||
d->unk_00 = 0;
|
||||
d->unk_04 = 0;
|
||||
d->unk_08 = 0;
|
||||
d->unk_0C = -1;
|
||||
d->unk_10 = 0;
|
||||
}
|
||||
|
||||
func_802DBD40(); // spr_init_quad_cache
|
||||
}
|
||||
|
||||
void func_802DDA60(void) {
|
||||
func_802DEFB4();
|
||||
func_802DBFC0();
|
||||
}
|
||||
|
||||
s32 func_802DDA84(void) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", func_802DDA8C);
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", render_sprite);
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", func_802DDEC4);
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", func_802DDEE4);
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", func_802DDFF8);
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", func_802DE044);
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", func_802DE0C0);
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", func_802DE0EC);
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", func_802DE2AC, s32 arg0, s32 arg1, f32 arg2);
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", func_802DE3D8);
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", func_802DE5C8);
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", func_802DE5E8);
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", func_802DE748);
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", func_802DE780);
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", func_802DE894);
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", func_802DE8DC);
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", func_802DE9D8);
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", func_802DEA40);
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", func_802DEA6C);
|
@ -130,7 +130,7 @@ void load_map_by_IDs(s16 areaID, s16 mapID, s16 loadType) {
|
||||
clear_script_list();
|
||||
create_cameras_a();
|
||||
gameStatus2 = &gGameStatusPtr;
|
||||
func_802DD8F8((*gameStatus2)->unk_84);
|
||||
spr_init_sprites((*gameStatus2)->unk_84);
|
||||
func_8011E224();
|
||||
clear_entity_models();
|
||||
npc_list_clear();
|
||||
|
@ -9,6 +9,7 @@ from glob import glob
|
||||
# Configuration:
|
||||
VERSIONS = ["us", "jp"]
|
||||
DO_SHA1_CHECK = True
|
||||
CFLAGS = "-Wuninitialized -Wshadow -Wmissing-braces"
|
||||
|
||||
# Paths:
|
||||
ROOT = Path(__file__).parent.parent.parent
|
||||
@ -76,14 +77,14 @@ def write_ninja_rules(ninja: ninja_syntax.Writer, cpp: str):
|
||||
|
||||
ninja.rule("cc",
|
||||
description="cc($version) $in",
|
||||
command=f"bash -o pipefail -c '{cpp} -w -Iver/$version/build/include -Iinclude -Isrc -D _LANGUAGE_C -D _FINALROM -D VERSION=$version -ffreestanding -DF3DEX_GBI_2 -D_MIPS_SZLONG=32 -MD -MF $out.d $in -o - | {iconv} | {BUILD_TOOLS}/{os_dir}/cc1 -O2 -quiet -G 0 -mcpu=vr4300 -mfix4300 -mips3 -mgp32 -mfp32 -Wuninitialized -Wshadow -o - | {BUILD_TOOLS}/{os_dir}/mips-nintendo-nu64-as -EB -G 0 - -o $out'",
|
||||
command=f"bash -o pipefail -c '{cpp} -w -Iver/$version/build/include -Iinclude -Isrc -D _LANGUAGE_C -D _FINALROM -D VERSION=$version -ffreestanding -DF3DEX_GBI_2 -D_MIPS_SZLONG=32 -MD -MF $out.d $in -o - | {iconv} | {BUILD_TOOLS}/{os_dir}/cc1 -O2 -quiet -G 0 -mcpu=vr4300 -mfix4300 -mips3 -mgp32 -mfp32 {CFLAGS} -o - | {BUILD_TOOLS}/{os_dir}/mips-nintendo-nu64-as -EB -G 0 - -o $out'",
|
||||
depfile="$out.d",
|
||||
deps="gcc",
|
||||
)
|
||||
|
||||
ninja.rule("cc_dsl",
|
||||
description="cc_dsl($version) $in",
|
||||
command=f"bash -o pipefail -c '{cpp} -w -Iver/$version/build/include -Iinclude -Isrc -D _LANGUAGE_C -D _FINALROM -D VERSION=$version -ffreestanding -DF3DEX_GBI_2 -D_MIPS_SZLONG=32 -MD -MF $out.d $in -o - | $python {BUILD_TOOLS}/cc_dsl/compile_script.py | {iconv} | {BUILD_TOOLS}/{os_dir}/cc1 -O2 -quiet -G 0 -mcpu=vr4300 -mfix4300 -mips3 -mgp32 -mfp32 -Wuninitialized -Wshadow -o - | {BUILD_TOOLS}/{os_dir}/mips-nintendo-nu64-as -EB -G 0 - -o $out'",
|
||||
command=f"bash -o pipefail -c '{cpp} -w -Iver/$version/build/include -Iinclude -Isrc -D _LANGUAGE_C -D _FINALROM -D VERSION=$version -ffreestanding -DF3DEX_GBI_2 -D_MIPS_SZLONG=32 -MD -MF $out.d $in -o - | $python {BUILD_TOOLS}/cc_dsl/compile_script.py | {iconv} | {BUILD_TOOLS}/{os_dir}/cc1 -O2 -quiet -G 0 -mcpu=vr4300 -mfix4300 -mips3 -mgp32 -mfp32 {CFLAGS} -o - | {BUILD_TOOLS}/{os_dir}/mips-nintendo-nu64-as -EB -G 0 - -o $out'",
|
||||
depfile="$out.d",
|
||||
deps="gcc",
|
||||
)
|
||||
|
@ -11,8 +11,8 @@ glabel func_802DF2D8
|
||||
/* 1023E0 802DF2F0 00101080 */ sll $v0, $s0, 2
|
||||
/* 1023E4 802DF2F4 00501021 */ addu $v0, $v0, $s0
|
||||
/* 1023E8 802DF2F8 00021100 */ sll $v0, $v0, 4
|
||||
/* 1023EC 802DF2FC 3C03802E */ lui $v1, %hi(D_802DF524)
|
||||
/* 1023F0 802DF300 8C63F524 */ lw $v1, %lo(D_802DF524)($v1)
|
||||
/* 1023EC 802DF2FC 3C03802E */ lui $v1, %hi(spr_allocateBtlComponentsOnWorldHeap)
|
||||
/* 1023F0 802DF300 8C63F524 */ lw $v1, %lo(spr_allocateBtlComponentsOnWorldHeap)($v1)
|
||||
/* 1023F4 802DF304 00512821 */ addu $a1, $v0, $s1
|
||||
/* 1023F8 802DF308 3C048035 */ lui $a0, %hi(gSpriteHeapPtr)
|
||||
/* 1023FC 802DF30C 2484F800 */ addiu $a0, $a0, %lo(gSpriteHeapPtr)
|
||||
|
@ -137,7 +137,7 @@ glabel L80035814_10C14
|
||||
/* 10CD8 800358D8 0C05259C */ jal func_80149670
|
||||
/* 10CDC 800358DC 24040001 */ addiu $a0, $zero, 1
|
||||
/* 10CE0 800358E0 8E020000 */ lw $v0, ($s0)
|
||||
/* 10CE4 800358E4 0C0B763E */ jal func_802DD8F8
|
||||
/* 10CE4 800358E4 0C0B763E */ jal spr_init_sprites
|
||||
/* 10CE8 800358E8 80440084 */ lb $a0, 0x84($v0)
|
||||
/* 10CEC 800358EC 0C0457FA */ jal init_model_data
|
||||
/* 10CF0 800358F0 00000000 */ nop
|
||||
|
@ -138,7 +138,7 @@ glabel state_step_language_select
|
||||
/* 107BC 800353BC 00000000 */ nop
|
||||
/* 107C0 800353C0 0C05259C */ jal func_80149670
|
||||
/* 107C4 800353C4 0000202D */ daddu $a0, $zero, $zero
|
||||
/* 107C8 800353C8 0C0B763E */ jal func_802DD8F8
|
||||
/* 107C8 800353C8 0C0B763E */ jal spr_init_sprites
|
||||
/* 107CC 800353CC 0000202D */ daddu $a0, $zero, $zero
|
||||
/* 107D0 800353D0 0C045751 */ jal clear_model_data
|
||||
/* 107D4 800353D4 00000000 */ nop
|
||||
|
@ -195,7 +195,7 @@ glabel L80036AA0_11EA0
|
||||
/* 11F00 80036B00 00000000 */ nop
|
||||
/* 11F04 80036B04 0C00B7BD */ jal create_cameras_a
|
||||
/* 11F08 80036B08 00000000 */ nop
|
||||
/* 11F0C 80036B0C 0C0B763E */ jal func_802DD8F8
|
||||
/* 11F0C 80036B0C 0C0B763E */ jal spr_init_sprites
|
||||
/* 11F10 80036B10 0000202D */ daddu $a0, $zero, $zero
|
||||
/* 11F14 80036B14 0C0482EC */ jal clear_entity_models
|
||||
/* 11F18 80036B18 00000000 */ nop
|
||||
|
@ -137,7 +137,7 @@ glabel begin_state_title_screen
|
||||
/* 123D8 80036FD8 00000000 */ nop
|
||||
/* 123DC 80036FDC 0C047624 */ jal func_8011D890
|
||||
/* 123E0 80036FE0 00000000 */ nop
|
||||
/* 123E4 80036FE4 0C0B763E */ jal func_802DD8F8
|
||||
/* 123E4 80036FE4 0C0B763E */ jal spr_init_sprites
|
||||
/* 123E8 80036FE8 0000202D */ daddu $a0, $zero, $zero
|
||||
/* 123EC 80036FEC 0C047889 */ jal func_8011E224
|
||||
/* 123F0 80036FF0 00000000 */ nop
|
||||
|
@ -284,7 +284,7 @@ glabel L80037450_12850
|
||||
/* 128A0 800374A0 00000000 */ nop
|
||||
/* 128A4 800374A4 0C050440 */ jal func_80141100
|
||||
/* 128A8 800374A8 00000000 */ nop
|
||||
/* 128AC 800374AC 0C0B763E */ jal func_802DD8F8
|
||||
/* 128AC 800374AC 0C0B763E */ jal spr_init_sprites
|
||||
/* 128B0 800374B0 0000202D */ daddu $a0, $zero, $zero
|
||||
/* 128B4 800374B4 0C04432E */ jal clear_entity_data
|
||||
/* 128B8 800374B8 24040001 */ addiu $a0, $zero, 1
|
||||
|
@ -109,7 +109,7 @@ glabel L800381C8_135C8
|
||||
/* 13664 80038264 00000000 */ nop
|
||||
/* 13668 80038268 0C00B7BD */ jal create_cameras_a
|
||||
/* 1366C 8003826C 00000000 */ nop
|
||||
/* 13670 80038270 0C0B763E */ jal func_802DD8F8
|
||||
/* 13670 80038270 0C0B763E */ jal spr_init_sprites
|
||||
/* 13674 80038274 0000202D */ daddu $a0, $zero, $zero
|
||||
/* 13678 80038278 0C0482EC */ jal clear_entity_models
|
||||
/* 1367C 8003827C 00000000 */ nop
|
||||
|
@ -22,7 +22,7 @@ glabel load_demo_battle
|
||||
/* 4E258 80072E58 00000000 */ nop
|
||||
/* 4E25C 80072E5C 0C00B7BD */ jal create_cameras_a
|
||||
/* 4E260 80072E60 00000000 */ nop
|
||||
/* 4E264 80072E64 0C0B763E */ jal func_802DD8F8
|
||||
/* 4E264 80072E64 0C0B763E */ jal spr_init_sprites
|
||||
/* 4E268 80072E68 0000202D */ daddu $a0, $zero, $zero
|
||||
/* 4E26C 80072E6C 0C047889 */ jal func_8011E224
|
||||
/* 4E270 80072E70 00000000 */ nop
|
||||
|
@ -62,7 +62,7 @@ glabel func_80033BC0
|
||||
/* F0A4 80033CA4 0C00AB28 */ jal battle_heap_create
|
||||
/* F0A8 80033CA8 A062007E */ sb $v0, 0x7e($v1)
|
||||
/* F0AC 80033CAC 8E020000 */ lw $v0, ($s0)
|
||||
/* F0B0 80033CB0 0C0B763E */ jal func_802DD8F8
|
||||
/* F0B0 80033CB0 0C0B763E */ jal spr_init_sprites
|
||||
/* F0B4 80033CB4 80440084 */ lb $a0, 0x84($v0)
|
||||
/* F0B8 80033CB8 0C0457FA */ jal init_model_data
|
||||
/* F0BC 80033CBC 00000000 */ nop
|
||||
|
@ -77,7 +77,7 @@ glabel step_battle
|
||||
/* EDF8 800339F8 A202007E */ sb $v0, 0x7e($s0)
|
||||
/* EDFC 800339FC 24040006 */ addiu $a0, $zero, 6
|
||||
.L80033A00:
|
||||
/* EE00 80033A00 0C0B763E */ jal func_802DD8F8
|
||||
/* EE00 80033A00 0C0B763E */ jal spr_init_sprites
|
||||
/* EE04 80033A04 00000000 */ nop
|
||||
/* EE08 80033A08 0C045751 */ jal clear_model_data
|
||||
/* EE0C 80033A0C 00000000 */ nop
|
||||
|
@ -1,101 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel func_802DD8F8
|
||||
/* 1009E8 802DD8F8 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* 1009EC 802DD8FC AFB10014 */ sw $s1, 0x14($sp)
|
||||
/* 1009F0 802DD900 0080882D */ daddu $s1, $a0, $zero
|
||||
/* 1009F4 802DD904 3C048035 */ lui $a0, %hi(gSpriteHeapPtr)
|
||||
/* 1009F8 802DD908 2484F800 */ addiu $a0, $a0, %lo(gSpriteHeapPtr)
|
||||
/* 1009FC 802DD90C AFBF0018 */ sw $ra, 0x18($sp)
|
||||
/* 100A00 802DD910 AFB00010 */ sw $s0, 0x10($sp)
|
||||
/* 100A04 802DD914 3C01802E */ lui $at, %hi(D_802DF524)
|
||||
/* 100A08 802DD918 AC20F524 */ sw $zero, %lo(D_802DF524)($at)
|
||||
/* 100A0C 802DD91C 0C00A40C */ jal _heap_create
|
||||
/* 100A10 802DD920 3C050004 */ lui $a1, 4
|
||||
/* 100A14 802DD924 0C04E8DF */ jal func_8013A37C
|
||||
/* 100A18 802DD928 2410000C */ addiu $s0, $zero, 0xc
|
||||
/* 100A1C 802DD92C 3C02802E */ lui $v0, %hi(D_802DF578)
|
||||
/* 100A20 802DD930 2442F578 */ addiu $v0, $v0, %lo(D_802DF578)
|
||||
.L802DD934:
|
||||
/* 100A24 802DD934 AC400000 */ sw $zero, ($v0)
|
||||
/* 100A28 802DD938 2610FFFF */ addiu $s0, $s0, -1
|
||||
/* 100A2C 802DD93C 0601FFFD */ bgez $s0, .L802DD934
|
||||
/* 100A30 802DD940 2442FFFC */ addiu $v0, $v0, -4
|
||||
/* 100A34 802DD944 3C028007 */ lui $v0, %hi(gGameStatusPtr)
|
||||
/* 100A38 802DD948 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0)
|
||||
/* 100A3C 802DD94C 3C01802E */ lui $at, %hi(D_802DF580)
|
||||
/* 100A40 802DD950 AC20F580 */ sw $zero, %lo(D_802DF580)($at)
|
||||
/* 100A44 802DD954 9042007E */ lbu $v0, 0x7e($v0)
|
||||
/* 100A48 802DD958 30420001 */ andi $v0, $v0, 1
|
||||
/* 100A4C 802DD95C 54400001 */ bnel $v0, $zero, .L802DD964
|
||||
/* 100A50 802DD960 24110004 */ addiu $s1, $zero, 4
|
||||
.L802DD964:
|
||||
/* 100A54 802DD964 24100001 */ addiu $s0, $zero, 1
|
||||
/* 100A58 802DD968 3C03802E */ lui $v1, %hi(D_802DF4C4)
|
||||
/* 100A5C 802DD96C 2463F4C4 */ addiu $v1, $v1, %lo(D_802DF4C4)
|
||||
/* 100A60 802DD970 02111004 */ sllv $v0, $s1, $s0
|
||||
/* 100A64 802DD974 00511021 */ addu $v0, $v0, $s1
|
||||
/* 100A68 802DD978 00021080 */ sll $v0, $v0, 2
|
||||
/* 100A6C 802DD97C 00431021 */ addu $v0, $v0, $v1
|
||||
/* 100A70 802DD980 8C440000 */ lw $a0, ($v0)
|
||||
/* 100A74 802DD984 8C450004 */ lw $a1, 4($v0)
|
||||
/* 100A78 802DD988 0C0B7B58 */ jal func_802DED60
|
||||
/* 100A7C 802DD98C 8C510008 */ lw $s1, 8($v0)
|
||||
/* 100A80 802DD990 02111007 */ srav $v0, $s1, $s0
|
||||
.L802DD994:
|
||||
/* 100A84 802DD994 30420001 */ andi $v0, $v0, 1
|
||||
/* 100A88 802DD998 50400004 */ beql $v0, $zero, .L802DD9AC
|
||||
/* 100A8C 802DD99C 26100001 */ addiu $s0, $s0, 1
|
||||
/* 100A90 802DD9A0 0C0B7627 */ jal func_802DD89C
|
||||
/* 100A94 802DD9A4 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 100A98 802DD9A8 26100001 */ addiu $s0, $s0, 1
|
||||
.L802DD9AC:
|
||||
/* 100A9C 802DD9AC 2A02000E */ slti $v0, $s0, 0xe
|
||||
/* 100AA0 802DD9B0 1440FFF8 */ bnez $v0, .L802DD994
|
||||
/* 100AA4 802DD9B4 02111007 */ srav $v0, $s1, $s0
|
||||
/* 100AA8 802DD9B8 0000802D */ daddu $s0, $zero, $zero
|
||||
/* 100AAC 802DD9BC 2404FFFF */ addiu $a0, $zero, -1
|
||||
/* 100AB0 802DD9C0 3C03802E */ lui $v1, %hi(D_802DF588)
|
||||
/* 100AB4 802DD9C4 2463F588 */ addiu $v1, $v1, %lo(D_802DF588)
|
||||
.L802DD9C8:
|
||||
/* 100AB8 802DD9C8 AC600000 */ sw $zero, ($v1)
|
||||
/* 100ABC 802DD9CC AC640004 */ sw $a0, 4($v1)
|
||||
/* 100AC0 802DD9D0 26100001 */ addiu $s0, $s0, 1
|
||||
/* 100AC4 802DD9D4 2A020003 */ slti $v0, $s0, 3
|
||||
/* 100AC8 802DD9D8 1440FFFB */ bnez $v0, .L802DD9C8
|
||||
/* 100ACC 802DD9DC 2463000C */ addiu $v1, $v1, 0xc
|
||||
/* 100AD0 802DD9E0 0000802D */ daddu $s0, $zero, $zero
|
||||
/* 100AD4 802DD9E4 3C04802E */ lui $a0, %hi(D_802DF958)
|
||||
/* 100AD8 802DD9E8 2484F958 */ addiu $a0, $a0, %lo(D_802DF958)
|
||||
/* 100ADC 802DD9EC 3C03802E */ lui $v1, %hi(D_802DF5B0)
|
||||
/* 100AE0 802DD9F0 2463F5B0 */ addiu $v1, $v1, %lo(D_802DF5B0)
|
||||
.L802DD9F4:
|
||||
/* 100AE4 802DD9F4 AC600000 */ sw $zero, ($v1)
|
||||
/* 100AE8 802DD9F8 02041021 */ addu $v0, $s0, $a0
|
||||
/* 100AEC 802DD9FC 26100001 */ addiu $s0, $s0, 1
|
||||
/* 100AF0 802DDA00 A0400000 */ sb $zero, ($v0)
|
||||
/* 100AF4 802DDA04 2A0200EA */ slti $v0, $s0, 0xea
|
||||
/* 100AF8 802DDA08 1440FFFA */ bnez $v0, .L802DD9F4
|
||||
/* 100AFC 802DDA0C 24630004 */ addiu $v1, $v1, 4
|
||||
/* 100B00 802DDA10 0000802D */ daddu $s0, $zero, $zero
|
||||
/* 100B04 802DDA14 2404FFFF */ addiu $a0, $zero, -1
|
||||
/* 100B08 802DDA18 3C03802E */ lui $v1, %hi(D_802DFA48)
|
||||
/* 100B0C 802DDA1C 2463FA48 */ addiu $v1, $v1, %lo(D_802DFA48)
|
||||
.L802DDA20:
|
||||
/* 100B10 802DDA20 AC600000 */ sw $zero, ($v1)
|
||||
/* 100B14 802DDA24 AC600004 */ sw $zero, 4($v1)
|
||||
/* 100B18 802DDA28 AC600008 */ sw $zero, 8($v1)
|
||||
/* 100B1C 802DDA2C AC64000C */ sw $a0, 0xc($v1)
|
||||
/* 100B20 802DDA30 AC600010 */ sw $zero, 0x10($v1)
|
||||
/* 100B24 802DDA34 26100001 */ addiu $s0, $s0, 1
|
||||
/* 100B28 802DDA38 2A020033 */ slti $v0, $s0, 0x33
|
||||
/* 100B2C 802DDA3C 1440FFF8 */ bnez $v0, .L802DDA20
|
||||
/* 100B30 802DDA40 24630014 */ addiu $v1, $v1, 0x14
|
||||
/* 100B34 802DDA44 0C0B6F50 */ jal func_802DBD40
|
||||
/* 100B38 802DDA48 00000000 */ nop
|
||||
/* 100B3C 802DDA4C 8FBF0018 */ lw $ra, 0x18($sp)
|
||||
/* 100B40 802DDA50 8FB10014 */ lw $s1, 0x14($sp)
|
||||
/* 100B44 802DDA54 8FB00010 */ lw $s0, 0x10($sp)
|
||||
/* 100B48 802DDA58 03E00008 */ jr $ra
|
||||
/* 100B4C 802DDA5C 27BD0020 */ addiu $sp, $sp, 0x20
|
@ -5,8 +5,8 @@ glabel func_802DBDBC
|
||||
/* FEEAC 802DBDBC 0080382D */ daddu $a3, $a0, $zero
|
||||
/* FEEB0 802DBDC0 00A0402D */ daddu $t0, $a1, $zero
|
||||
/* FEEB4 802DBDC4 00E0182D */ daddu $v1, $a3, $zero
|
||||
/* FEEB8 802DBDC8 3C02802E */ lui $v0, %hi(D_802DF390)
|
||||
/* FEEBC 802DBDCC 2442F390 */ addiu $v0, $v0, %lo(D_802DF390)
|
||||
/* FEEB8 802DBDC8 3C02802E */ lui $v0, %hi(spr_defaultQuad)
|
||||
/* FEEBC 802DBDCC 2442F390 */ addiu $v0, $v0, %lo(spr_defaultQuad)
|
||||
/* FEEC0 802DBDD0 24440040 */ addiu $a0, $v0, 0x40
|
||||
.L802DBDD4:
|
||||
/* FEEC4 802DBDD4 8C490000 */ lw $t1, ($v0)
|
@ -11,11 +11,11 @@ glabel func_802DD89C
|
||||
/* 1009A4 802DD8B4 0C0B7AC3 */ jal load_sprite
|
||||
/* 1009A8 802DD8B8 0000302D */ daddu $a2, $zero, $zero
|
||||
/* 1009AC 802DD8BC 00108080 */ sll $s0, $s0, 2
|
||||
/* 1009B0 802DD8C0 3C04802E */ lui $a0, %hi(D_802DF580)
|
||||
/* 1009B4 802DD8C4 2484F580 */ addiu $a0, $a0, %lo(D_802DF580)
|
||||
/* 1009B8 802DD8C8 3C01802E */ lui $at, %hi(D_802DF548)
|
||||
/* 1009B0 802DD8C0 3C04802E */ lui $a0, %hi(spr_playerMaxComponents)
|
||||
/* 1009B4 802DD8C4 2484F580 */ addiu $a0, $a0, %lo(spr_playerMaxComponents)
|
||||
/* 1009B8 802DD8C8 3C01802E */ lui $at, %hi(spr_playerSprites)
|
||||
/* 1009BC 802DD8CC 00300821 */ addu $at, $at, $s0
|
||||
/* 1009C0 802DD8D0 AC22F548 */ sw $v0, %lo(D_802DF548)($at)
|
||||
/* 1009C0 802DD8D0 AC22F548 */ sw $v0, %lo(spr_playerSprites)($at)
|
||||
/* 1009C4 802DD8D4 8C830000 */ lw $v1, ($a0)
|
||||
/* 1009C8 802DD8D8 8C420008 */ lw $v0, 8($v0)
|
||||
/* 1009CC 802DD8DC 0062182A */ slt $v1, $v1, $v0
|
@ -13,8 +13,8 @@ glabel func_802DDA8C
|
||||
/* 100B9C 802DDAAC 2454FFFF */ addiu $s4, $v0, -1
|
||||
/* 100BA0 802DDAB0 AFB20020 */ sw $s2, 0x20($sp)
|
||||
/* 100BA4 802DDAB4 32F200FF */ andi $s2, $s7, 0xff
|
||||
/* 100BA8 802DDAB8 3C03802E */ lui $v1, %hi(D_802DF588)
|
||||
/* 100BAC 802DDABC 2463F588 */ addiu $v1, $v1, %lo(D_802DF588)
|
||||
/* 100BA8 802DDAB8 3C03802E */ lui $v1, %hi(spr_playerCurrentAnimInfo)
|
||||
/* 100BAC 802DDABC 2463F588 */ addiu $v1, $v1, %lo(spr_playerCurrentAnimInfo)
|
||||
/* 100BB0 802DDAC0 00121040 */ sll $v0, $s2, 1
|
||||
/* 100BB4 802DDAC4 00521021 */ addu $v0, $v0, $s2
|
||||
/* 100BB8 802DDAC8 F7B40040 */ sdc1 $f20, 0x40($sp)
|
||||
@ -31,8 +31,8 @@ glabel func_802DDA8C
|
||||
/* 100BE4 802DDAF4 AC34F57C */ sw $s4, %lo(D_802DF57C)($at)
|
||||
/* 100BE8 802DDAF8 14400013 */ bnez $v0, .L802DDB48
|
||||
/* 100BEC 802DDAFC 32B600FF */ andi $s6, $s5, 0xff
|
||||
/* 100BF0 802DDB00 3C04802E */ lui $a0, %hi(D_802DF580)
|
||||
/* 100BF4 802DDB04 8C84F580 */ lw $a0, %lo(D_802DF580)($a0)
|
||||
/* 100BF0 802DDB00 3C04802E */ lui $a0, %hi(spr_playerMaxComponents)
|
||||
/* 100BF4 802DDB04 8C84F580 */ lw $a0, %lo(spr_playerMaxComponents)($a0)
|
||||
/* 100BF8 802DDB08 0C0B7CB6 */ jal func_802DF2D8
|
||||
/* 100BFC 802DDB0C 00000000 */ nop
|
||||
/* 100C00 802DDB10 0040882D */ daddu $s1, $v0, $zero
|
||||
@ -52,11 +52,11 @@ glabel func_802DDA8C
|
||||
/* 100C34 802DDB44 00000000 */ nop
|
||||
.L802DDB48:
|
||||
/* 100C38 802DDB48 00141080 */ sll $v0, $s4, 2
|
||||
/* 100C3C 802DDB4C 3C03802E */ lui $v1, %hi(D_802DF588)
|
||||
/* 100C40 802DDB50 2463F588 */ addiu $v1, $v1, %lo(D_802DF588)
|
||||
/* 100C44 802DDB54 3C05802E */ lui $a1, %hi(D_802DF548)
|
||||
/* 100C3C 802DDB4C 3C03802E */ lui $v1, %hi(spr_playerCurrentAnimInfo)
|
||||
/* 100C40 802DDB50 2463F588 */ addiu $v1, $v1, %lo(spr_playerCurrentAnimInfo)
|
||||
/* 100C44 802DDB54 3C05802E */ lui $a1, %hi(spr_playerSprites)
|
||||
/* 100C48 802DDB58 00A22821 */ addu $a1, $a1, $v0
|
||||
/* 100C4C 802DDB5C 8CA5F548 */ lw $a1, %lo(D_802DF548)($a1)
|
||||
/* 100C4C 802DDB5C 8CA5F548 */ lw $a1, %lo(spr_playerSprites)($a1)
|
||||
/* 100C50 802DDB60 00121040 */ sll $v0, $s2, 1
|
||||
/* 100C54 802DDB64 00521021 */ addu $v0, $v0, $s2
|
||||
/* 100C58 802DDB68 00021080 */ sll $v0, $v0, 2
|
||||
@ -85,8 +85,8 @@ glabel func_802DDA8C
|
||||
/* 100CB0 802DDBC0 0260282D */ daddu $a1, $s3, $zero
|
||||
/* 100CB4 802DDBC4 AE000008 */ sw $zero, 8($s0)
|
||||
.L802DDBC8:
|
||||
/* 100CB8 802DDBC8 3C02802E */ lui $v0, %hi(D_802DF588)
|
||||
/* 100CBC 802DDBCC 2442F588 */ addiu $v0, $v0, %lo(D_802DF588)
|
||||
/* 100CB8 802DDBC8 3C02802E */ lui $v0, %hi(spr_playerCurrentAnimInfo)
|
||||
/* 100CBC 802DDBCC 2442F588 */ addiu $v0, $v0, %lo(spr_playerCurrentAnimInfo)
|
||||
/* 100CC0 802DDBD0 00121840 */ sll $v1, $s2, 1
|
||||
/* 100CC4 802DDBD4 00721821 */ addu $v1, $v1, $s2
|
||||
/* 100CC8 802DDBD8 00031880 */ sll $v1, $v1, 2
|
@ -18,9 +18,9 @@ glabel func_802DDEE4
|
||||
/* 101008 802DDF18 AFB10024 */ sw $s1, 0x24($sp)
|
||||
/* 10100C 802DDF1C AFB00020 */ sw $s0, 0x20($sp)
|
||||
/* 101010 802DDF20 AFA70054 */ sw $a3, 0x54($sp)
|
||||
/* 101014 802DDF24 3C01802E */ lui $at, %hi(D_802DF588)
|
||||
/* 101014 802DDF24 3C01802E */ lui $at, %hi(spr_playerCurrentAnimInfo)
|
||||
/* 101018 802DDF28 00220821 */ addu $at, $at, $v0
|
||||
/* 10101C 802DDF2C 8C22F588 */ lw $v0, %lo(D_802DF588)($at)
|
||||
/* 10101C 802DDF2C 8C22F588 */ lw $v0, %lo(spr_playerCurrentAnimInfo)($at)
|
||||
/* 101020 802DDF30 8FBE0064 */ lw $fp, 0x64($sp)
|
||||
/* 101024 802DDF34 10400024 */ beqz $v0, .L802DDFC8
|
||||
/* 101028 802DDF38 00C0A82D */ daddu $s5, $a2, $zero
|
@ -8,9 +8,9 @@ glabel func_802DE044
|
||||
/* 101140 802DE050 24A5FFFF */ addiu $a1, $a1, -1
|
||||
/* 101144 802DE054 00051080 */ sll $v0, $a1, 2
|
||||
/* 101148 802DE058 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 10114C 802DE05C 3C04802E */ lui $a0, %hi(D_802DF548)
|
||||
/* 10114C 802DE05C 3C04802E */ lui $a0, %hi(spr_playerSprites)
|
||||
/* 101150 802DE060 00822021 */ addu $a0, $a0, $v0
|
||||
/* 101154 802DE064 8C84F548 */ lw $a0, %lo(D_802DF548)($a0)
|
||||
/* 101154 802DE064 8C84F548 */ lw $a0, %lo(spr_playerSprites)($a0)
|
||||
/* 101158 802DE068 10800011 */ beqz $a0, .L802DE0B0
|
||||
/* 10115C 802DE06C 00061080 */ sll $v0, $a2, 2
|
||||
/* 101160 802DE070 8C830000 */ lw $v1, ($a0)
|
@ -4,9 +4,9 @@
|
||||
glabel func_802DE0C0
|
||||
/* 1011B0 802DE0C0 2484FFFF */ addiu $a0, $a0, -1
|
||||
/* 1011B4 802DE0C4 00042080 */ sll $a0, $a0, 2
|
||||
/* 1011B8 802DE0C8 3C02802E */ lui $v0, %hi(D_802DF548)
|
||||
/* 1011B8 802DE0C8 3C02802E */ lui $v0, %hi(spr_playerSprites)
|
||||
/* 1011BC 802DE0CC 00441021 */ addu $v0, $v0, $a0
|
||||
/* 1011C0 802DE0D0 8C42F548 */ lw $v0, %lo(D_802DF548)($v0)
|
||||
/* 1011C0 802DE0D0 8C42F548 */ lw $v0, %lo(spr_playerSprites)($v0)
|
||||
/* 1011C4 802DE0D4 10400003 */ beqz $v0, .L802DE0E4
|
||||
/* 1011C8 802DE0D8 00000000 */ nop
|
||||
/* 1011CC 802DE0DC 03E00008 */ jr $ra
|
@ -40,14 +40,14 @@ glabel func_802DE0EC
|
||||
/* 10125C 802DE16C 080B78A2 */ j .L802DE288
|
||||
/* 101260 802DE170 2402FFFF */ addiu $v0, $zero, -1
|
||||
.L802DE174:
|
||||
/* 101264 802DE174 3C02802E */ lui $v0, %hi(D_802DF5B0)
|
||||
/* 101268 802DE178 2442F5B0 */ addiu $v0, $v0, %lo(D_802DF5B0)
|
||||
/* 101264 802DE174 3C02802E */ lui $v0, %hi(spr_npcSprites)
|
||||
/* 101268 802DE178 2442F5B0 */ addiu $v0, $v0, %lo(spr_npcSprites)
|
||||
/* 10126C 802DE17C 00628821 */ addu $s1, $v1, $v0
|
||||
/* 101270 802DE180 8E220000 */ lw $v0, ($s1)
|
||||
/* 101274 802DE184 1040000E */ beqz $v0, .L802DE1C0
|
||||
/* 101278 802DE188 0080902D */ daddu $s2, $a0, $zero
|
||||
/* 10127C 802DE18C 3C03802E */ lui $v1, %hi(D_802DF958)
|
||||
/* 101280 802DE190 2463F958 */ addiu $v1, $v1, %lo(D_802DF958)
|
||||
/* 10127C 802DE18C 3C03802E */ lui $v1, %hi(spr_npcSpriteInstanceCount)
|
||||
/* 101280 802DE190 2463F958 */ addiu $v1, $v1, %lo(spr_npcSpriteInstanceCount)
|
||||
/* 101284 802DE194 02831821 */ addu $v1, $s4, $v1
|
||||
/* 101288 802DE198 90620000 */ lbu $v0, ($v1)
|
||||
/* 10128C 802DE19C 24420001 */ addiu $v0, $v0, 1
|
||||
@ -62,9 +62,9 @@ glabel func_802DE0EC
|
||||
.L802DE1C0:
|
||||
/* 1012B0 802DE1C0 2684FFFF */ addiu $a0, $s4, -1
|
||||
/* 1012B4 802DE1C4 24020001 */ addiu $v0, $zero, 1
|
||||
/* 1012B8 802DE1C8 3C01802E */ lui $at, %hi(D_802DF958)
|
||||
/* 1012B8 802DE1C8 3C01802E */ lui $at, %hi(spr_npcSpriteInstanceCount)
|
||||
/* 1012BC 802DE1CC 00340821 */ addu $at, $at, $s4
|
||||
/* 1012C0 802DE1D0 A022F958 */ sb $v0, %lo(D_802DF958)($at)
|
||||
/* 1012C0 802DE1D0 A022F958 */ sb $v0, %lo(spr_npcSpriteInstanceCount)($at)
|
||||
/* 1012C4 802DE1D4 0C0B7AC3 */ jal load_sprite
|
||||
/* 1012C8 802DE1D8 0000282D */ daddu $a1, $zero, $zero
|
||||
/* 1012CC 802DE1DC 0040802D */ daddu $s0, $v0, $zero
|
@ -25,8 +25,8 @@ glabel func_802DE5E8
|
||||
/* 101724 802DE634 080B79CA */ j .L802DE728
|
||||
/* 101728 802DE638 0240102D */ daddu $v0, $s2, $zero
|
||||
.L802DE63C:
|
||||
/* 10172C 802DE63C 3C03802E */ lui $v1, %hi(D_802DF958)
|
||||
/* 101730 802DE640 2463F958 */ addiu $v1, $v1, %lo(D_802DF958)
|
||||
/* 10172C 802DE63C 3C03802E */ lui $v1, %hi(spr_npcSpriteInstanceCount)
|
||||
/* 101730 802DE640 2463F958 */ addiu $v1, $v1, %lo(spr_npcSpriteInstanceCount)
|
||||
/* 101734 802DE644 02231821 */ addu $v1, $s1, $v1
|
||||
/* 101738 802DE648 90620000 */ lbu $v0, ($v1)
|
||||
/* 10173C 802DE64C 2442FFFF */ addiu $v0, $v0, -1
|
||||
@ -49,24 +49,24 @@ glabel func_802DE5E8
|
||||
.L802DE68C:
|
||||
/* 10177C 802DE68C 00521021 */ addu $v0, $v0, $s2
|
||||
/* 101780 802DE690 00021080 */ sll $v0, $v0, 2
|
||||
/* 101784 802DE694 3C03802E */ lui $v1, %hi(D_802DF958)
|
||||
/* 101784 802DE694 3C03802E */ lui $v1, %hi(spr_npcSpriteInstanceCount)
|
||||
/* 101788 802DE698 00711821 */ addu $v1, $v1, $s1
|
||||
/* 10178C 802DE69C 9063F958 */ lbu $v1, %lo(D_802DF958)($v1)
|
||||
/* 10178C 802DE69C 9063F958 */ lbu $v1, %lo(spr_npcSpriteInstanceCount)($v1)
|
||||
/* 101790 802DE6A0 3C10802E */ lui $s0, %hi(D_802DFA4C)
|
||||
/* 101794 802DE6A4 02028021 */ addu $s0, $s0, $v0
|
||||
/* 101798 802DE6A8 8E10FA4C */ lw $s0, %lo(D_802DFA4C)($s0)
|
||||
/* 10179C 802DE6AC 14600008 */ bnez $v1, .L802DE6D0
|
||||
/* 1017A0 802DE6B0 00111080 */ sll $v0, $s1, 2
|
||||
/* 1017A4 802DE6B4 3C01802E */ lui $at, %hi(D_802DF5B0)
|
||||
/* 1017A4 802DE6B4 3C01802E */ lui $at, %hi(spr_npcSprites)
|
||||
/* 1017A8 802DE6B8 00220821 */ addu $at, $at, $v0
|
||||
/* 1017AC 802DE6BC AC20F5B0 */ sw $zero, %lo(D_802DF5B0)($at)
|
||||
/* 1017AC 802DE6BC AC20F5B0 */ sw $zero, %lo(spr_npcSprites)($at)
|
||||
/* 1017B0 802DE6C0 3C048035 */ lui $a0, %hi(gSpriteHeapPtr)
|
||||
/* 1017B4 802DE6C4 2484F800 */ addiu $a0, $a0, %lo(gSpriteHeapPtr)
|
||||
/* 1017B8 802DE6C8 0C00A487 */ jal _heap_free
|
||||
/* 1017BC 802DE6CC 0280282D */ daddu $a1, $s4, $zero
|
||||
.L802DE6D0:
|
||||
/* 1017C0 802DE6D0 3C02802E */ lui $v0, %hi(D_802DF524)
|
||||
/* 1017C4 802DE6D4 8C42F524 */ lw $v0, %lo(D_802DF524)($v0)
|
||||
/* 1017C0 802DE6D0 3C02802E */ lui $v0, %hi(spr_allocateBtlComponentsOnWorldHeap)
|
||||
/* 1017C4 802DE6D4 8C42F524 */ lw $v0, %lo(spr_allocateBtlComponentsOnWorldHeap)($v0)
|
||||
/* 1017C8 802DE6D8 3C048035 */ lui $a0, %hi(gSpriteHeapPtr)
|
||||
/* 1017CC 802DE6DC 2484F800 */ addiu $a0, $a0, %lo(gSpriteHeapPtr)
|
||||
/* 1017D0 802DE6E0 10400003 */ beqz $v0, .L802DE6F0
|
@ -4,9 +4,9 @@
|
||||
glabel func_802DE9D8
|
||||
/* 101AC8 802DE9D8 0080382D */ daddu $a3, $a0, $zero
|
||||
/* 101ACC 802DE9DC 00052880 */ sll $a1, $a1, 2
|
||||
/* 101AD0 802DE9E0 3C04802E */ lui $a0, %hi(D_802DF5B0)
|
||||
/* 101AD0 802DE9E0 3C04802E */ lui $a0, %hi(spr_npcSprites)
|
||||
/* 101AD4 802DE9E4 00852021 */ addu $a0, $a0, $a1
|
||||
/* 101AD8 802DE9E8 8C84F5B0 */ lw $a0, %lo(D_802DF5B0)($a0)
|
||||
/* 101AD8 802DE9E8 8C84F5B0 */ lw $a0, %lo(spr_npcSprites)($a0)
|
||||
/* 101ADC 802DE9EC 14800003 */ bnez $a0, .L802DE9FC
|
||||
/* 101AE0 802DE9F0 00061080 */ sll $v0, $a2, 2
|
||||
/* 101AE4 802DE9F4 03E00008 */ jr $ra
|
@ -3,9 +3,9 @@
|
||||
|
||||
glabel func_802DEA40
|
||||
/* 101B30 802DEA40 00042080 */ sll $a0, $a0, 2
|
||||
/* 101B34 802DEA44 3C02802E */ lui $v0, %hi(D_802DF5B0)
|
||||
/* 101B34 802DEA44 3C02802E */ lui $v0, %hi(spr_npcSprites)
|
||||
/* 101B38 802DEA48 00441021 */ addu $v0, $v0, $a0
|
||||
/* 101B3C 802DEA4C 8C42F5B0 */ lw $v0, %lo(D_802DF5B0)($v0)
|
||||
/* 101B3C 802DEA4C 8C42F5B0 */ lw $v0, %lo(spr_npcSprites)($v0)
|
||||
/* 101B40 802DEA50 14400003 */ bnez $v0, .L802DEA60
|
||||
/* 101B44 802DEA54 00000000 */ nop
|
||||
/* 101B48 802DEA58 03E00008 */ jr $ra
|
@ -3,9 +3,9 @@
|
||||
|
||||
glabel func_802DEA6C
|
||||
/* 101B5C 802DEA6C 00042080 */ sll $a0, $a0, 2
|
||||
/* 101B60 802DEA70 3C02802E */ lui $v0, %hi(D_802DF5B0)
|
||||
/* 101B60 802DEA70 3C02802E */ lui $v0, %hi(spr_npcSprites)
|
||||
/* 101B64 802DEA74 00441021 */ addu $v0, $v0, $a0
|
||||
/* 101B68 802DEA78 8C42F5B0 */ lw $v0, %lo(D_802DF5B0)($v0)
|
||||
/* 101B68 802DEA78 8C42F5B0 */ lw $v0, %lo(spr_npcSprites)($v0)
|
||||
/* 101B6C 802DEA7C 14400003 */ bnez $v0, .L802DEA8C
|
||||
/* 101B70 802DEA80 00000000 */ nop
|
||||
/* 101B74 802DEA84 03E00008 */ jr $ra
|
@ -28,9 +28,9 @@ glabel render_sprite
|
||||
/* 100D8C 802DDC9C 304200FF */ andi $v0, $v0, 0xff
|
||||
/* 100D90 802DDCA0 2443FFFF */ addiu $v1, $v0, -1
|
||||
/* 100D94 802DDCA4 00031080 */ sll $v0, $v1, 2
|
||||
/* 100D98 802DDCA8 3C08802E */ lui $t0, %hi(D_802DF548)
|
||||
/* 100D98 802DDCA8 3C08802E */ lui $t0, %hi(spr_playerSprites)
|
||||
/* 100D9C 802DDCAC 01024021 */ addu $t0, $t0, $v0
|
||||
/* 100DA0 802DDCB0 8D08F548 */ lw $t0, %lo(D_802DF548)($t0)
|
||||
/* 100DA0 802DDCB0 8D08F548 */ lw $t0, %lo(spr_playerSprites)($t0)
|
||||
/* 100DA4 802DDCB4 3C01802E */ lui $at, %hi(D_802DF57C)
|
||||
/* 100DA8 802DDCB8 AC23F57C */ sw $v1, %lo(D_802DF57C)($at)
|
||||
/* 100DAC 802DDCBC 11000053 */ beqz $t0, .L802DDE0C
|
||||
@ -59,9 +59,9 @@ glabel render_sprite
|
||||
.L802DDD14:
|
||||
/* 100E04 802DDD14 24630001 */ addiu $v1, $v1, 1
|
||||
/* 100E08 802DDD18 00031080 */ sll $v0, $v1, 2
|
||||
/* 100E0C 802DDD1C 3C14802E */ lui $s4, %hi(D_802DF548)
|
||||
/* 100E0C 802DDD1C 3C14802E */ lui $s4, %hi(spr_playerSprites)
|
||||
/* 100E10 802DDD20 0282A021 */ addu $s4, $s4, $v0
|
||||
/* 100E14 802DDD24 8E94F548 */ lw $s4, %lo(D_802DF548)($s4)
|
||||
/* 100E14 802DDD24 8E94F548 */ lw $s4, %lo(spr_playerSprites)($s4)
|
||||
/* 100E18 802DDD28 3C01802E */ lui $at, %hi(D_802DF57C)
|
||||
/* 100E1C 802DDD2C AC23F57C */ sw $v1, %lo(D_802DF57C)($at)
|
||||
/* 100E20 802DDD30 8E940000 */ lw $s4, ($s4)
|
||||
@ -138,9 +138,9 @@ glabel render_sprite
|
||||
/* 100F08 802DDE18 000A1040 */ sll $v0, $t2, 1
|
||||
/* 100F0C 802DDE1C 004A1021 */ addu $v0, $v0, $t2
|
||||
/* 100F10 802DDE20 00021080 */ sll $v0, $v0, 2
|
||||
/* 100F14 802DDE24 3C10802E */ lui $s0, %hi(D_802DF588)
|
||||
/* 100F14 802DDE24 3C10802E */ lui $s0, %hi(spr_playerCurrentAnimInfo)
|
||||
/* 100F18 802DDE28 02028021 */ addu $s0, $s0, $v0
|
||||
/* 100F1C 802DDE2C 8E10F588 */ lw $s0, %lo(D_802DF588)($s0)
|
||||
/* 100F1C 802DDE2C 8E10F588 */ lw $s0, %lo(spr_playerCurrentAnimInfo)($s0)
|
||||
/* 100F20 802DDE30 3C022000 */ lui $v0, 0x2000
|
||||
/* 100F24 802DDE34 00821024 */ and $v0, $a0, $v0
|
||||
/* 100F28 802DDE38 54400001 */ bnel $v0, $zero, .L802DDE40
|
@ -26,8 +26,8 @@ glabel update_component
|
||||
/* 100260 802DD170 4481A000 */ mtc1 $at, $f20
|
||||
/* 100264 802DD174 8E300008 */ lw $s0, 8($s1)
|
||||
/* 100268 802DD178 C620000C */ lwc1 $f0, 0xc($s1)
|
||||
/* 10026C 802DD17C 3C01802E */ lui $at, %hi(D_802DF4C0)
|
||||
/* 100270 802DD180 C422F4C0 */ lwc1 $f2, %lo(D_802DF4C0)($at)
|
||||
/* 10026C 802DD17C 3C01802E */ lui $at, %hi(spr_animUpdateTimeScale)
|
||||
/* 100270 802DD180 C422F4C0 */ lwc1 $f2, %lo(spr_animUpdateTimeScale)($at)
|
||||
/* 100274 802DD184 4600A786 */ mov.s $f30, $f20
|
||||
/* 100278 802DD188 46020001 */ sub.s $f0, $f0, $f2
|
||||
/* 10027C 802DD18C 44801000 */ mtc1 $zero, $f2
|
@ -24,8 +24,8 @@ glabel func_80242680_DF9080
|
||||
/* DF90CC 802426CC AFA20014 */ sw $v0, 0x14($sp)
|
||||
/* DF90D0 802426D0 8E050004 */ lw $a1, 4($s0)
|
||||
/* DF90D4 802426D4 24020001 */ addiu $v0, $zero, 1
|
||||
/* DF90D8 802426D8 3C01802E */ lui $at, %hi(D_802DF524)
|
||||
/* DF90DC 802426DC AC22F524 */ sw $v0, %lo(D_802DF524)($at)
|
||||
/* DF90D8 802426D8 3C01802E */ lui $at, %hi(spr_allocateBtlComponentsOnWorldHeap)
|
||||
/* DF90DC 802426DC AC22F524 */ sw $v0, %lo(spr_allocateBtlComponentsOnWorldHeap)($at)
|
||||
/* DF90E0 802426E0 0C00E219 */ jal npc_create_standard
|
||||
/* DF90E4 802426E4 27A40010 */ addiu $a0, $sp, 0x10
|
||||
/* DF90E8 802426E8 0C00E2B7 */ jal get_npc_by_index
|
||||
|
@ -24,8 +24,8 @@ glabel func_80242690_E079F0
|
||||
/* E07A3C 802426DC AFA20014 */ sw $v0, 0x14($sp)
|
||||
/* E07A40 802426E0 8E050004 */ lw $a1, 4($s0)
|
||||
/* E07A44 802426E4 24020001 */ addiu $v0, $zero, 1
|
||||
/* E07A48 802426E8 3C01802E */ lui $at, %hi(D_802DF524)
|
||||
/* E07A4C 802426EC AC22F524 */ sw $v0, %lo(D_802DF524)($at)
|
||||
/* E07A48 802426E8 3C01802E */ lui $at, %hi(spr_allocateBtlComponentsOnWorldHeap)
|
||||
/* E07A4C 802426EC AC22F524 */ sw $v0, %lo(spr_allocateBtlComponentsOnWorldHeap)($at)
|
||||
/* E07A50 802426F0 0C00E219 */ jal npc_create_standard
|
||||
/* E07A54 802426F4 27A40010 */ addiu $a0, $sp, 0x10
|
||||
/* E07A58 802426F8 0C00E2B7 */ jal get_npc_by_index
|
||||
|
@ -29,7 +29,7 @@ glabel func_80240688_E1EAE8
|
||||
/* E1EB48 802406E8 00000000 */ nop
|
||||
/* E1EB4C 802406EC 0C00B7BD */ jal create_cameras_a
|
||||
/* E1EB50 802406F0 00000000 */ nop
|
||||
/* E1EB54 802406F4 0C0B763E */ jal func_802DD8F8
|
||||
/* E1EB54 802406F4 0C0B763E */ jal spr_init_sprites
|
||||
/* E1EB58 802406F8 0000202D */ daddu $a0, $zero, $zero
|
||||
/* E1EB5C 802406FC 0C0482EC */ jal clear_entity_models
|
||||
/* E1EB60 80240700 00000000 */ nop
|
||||
|
@ -424,9 +424,9 @@ segments:
|
||||
start: 0xFEE30
|
||||
vram: 0x802DBD40
|
||||
subsegments:
|
||||
- [0x0fee30, c, fee30_len_2d60]
|
||||
- [0x0fee30, c, sprite]
|
||||
- [0x101b90, c, 101b90_len_8f0]
|
||||
- [0x102480, .data, fee30_len_2d60]
|
||||
- [0x102480, .data, sprite]
|
||||
- type: code
|
||||
start: 0x102610
|
||||
vram: 0x802E0D90
|
||||
|
@ -3057,7 +3057,7 @@ func_802DD7B0 = 0x802DD7B0; // type:func rom:0x1008A0
|
||||
func_802DD820 = 0x802DD820; // type:func rom:0x100910
|
||||
set_anim_timescale = 0x802DD88C; // type:func rom:0x10097C
|
||||
func_802DD89C = 0x802DD89C; // type:func rom:0x10098C
|
||||
func_802DD8F8 = 0x802DD8F8; // type:func rom:0x1009E8
|
||||
spr_init_sprites = 0x802DD8F8; // type:func rom:0x1009E8
|
||||
func_802DDA60 = 0x802DDA60; // type:func rom:0x100B50
|
||||
func_802DDA84 = 0x802DDA84; // type:func rom:0x100B74
|
||||
func_802DDA8C = 0x802DDA8C; // type:func rom:0x100B7C
|
||||
@ -20285,27 +20285,27 @@ gWorldMapVars = 0x802DBCA8; // size:0x40
|
||||
gBattleMapVars = 0x802DBCE8; // size:0x40
|
||||
D_802DBD28 = 0x802DBD28; // type:data
|
||||
gBattleMapFlags = 0x802DBD34; // size:0xC
|
||||
D_802DF390 = 0x802DF390; // type:data
|
||||
spr_defaultQuad = 0x802DF390; // type:data
|
||||
D_802DF3D0 = 0x802DF3D0; // type:data
|
||||
D_802DF3E0 = 0x802DF3E0; // type:data
|
||||
D_802DF3F0 = 0x802DF3F0; // type:data
|
||||
D_802DF428 = 0x802DF428; // type:data
|
||||
D_802DF460 = 0x802DF460; // type:data
|
||||
D_802DF490 = 0x802DF490; // type:data
|
||||
D_802DF4C0 = 0x802DF4C0; // type:data
|
||||
D_802DF4C4 = 0x802DF4C4; // type:data
|
||||
D_802DF524 = 0x802DF524; // type:data
|
||||
spr_animUpdateTimeScale = 0x802DF4C0; // type:data
|
||||
spr_playerSpriteSets = 0x802DF4C4; // type:data
|
||||
spr_allocateBtlComponentsOnWorldHeap = 0x802DF524; // type:data
|
||||
D_802DF530 = 0x802DF530; // type:data
|
||||
D_802DF540 = 0x802DF540; // type:data
|
||||
D_802DF548 = 0x802DF548; // type:data
|
||||
spr_playerSprites = 0x802DF548; // type:data
|
||||
D_802DF578 = 0x802DF578; // type:data
|
||||
D_802DF57C = 0x802DF57C; // type:data
|
||||
D_802DF580 = 0x802DF580; // type:data
|
||||
D_802DF588 = 0x802DF588; // type:data
|
||||
spr_playerMaxComponents = 0x802DF580; // type:data
|
||||
spr_playerCurrentAnimInfo = 0x802DF588; // type:data
|
||||
D_802DF58C = 0x802DF58C; // type:data
|
||||
D_802DF590 = 0x802DF590; // type:data
|
||||
D_802DF5B0 = 0x802DF5B0; // type:data
|
||||
D_802DF958 = 0x802DF958; // type:data
|
||||
spr_npcSprites = 0x802DF5B0; // type:data
|
||||
spr_npcSpriteInstanceCount = 0x802DF958; // type:data
|
||||
D_802DFA48 = 0x802DFA48; // type:data
|
||||
D_802DFA4C = 0x802DFA4C; // type:data
|
||||
D_802DFA58 = 0x802DFA58; // type:data
|
||||
|
@ -2166,27 +2166,27 @@ gWorldMapVars = 0x802DBCA8;
|
||||
gBattleMapVars = 0x802DBCE8;
|
||||
D_802DBD28 = 0x802DBD28;
|
||||
gBattleMapFlags = 0x802DBD34;
|
||||
D_802DF390 = 0x802DF390;
|
||||
spr_defaultQuad = 0x802DF390;
|
||||
D_802DF3D0 = 0x802DF3D0;
|
||||
D_802DF3E0 = 0x802DF3E0;
|
||||
D_802DF3F0 = 0x802DF3F0;
|
||||
D_802DF428 = 0x802DF428;
|
||||
D_802DF460 = 0x802DF460;
|
||||
D_802DF490 = 0x802DF490;
|
||||
D_802DF4C0 = 0x802DF4C0;
|
||||
D_802DF4C4 = 0x802DF4C4;
|
||||
D_802DF524 = 0x802DF524;
|
||||
spr_animUpdateTimeScale = 0x802DF4C0;
|
||||
spr_playerSpriteSets = 0x802DF4C4;
|
||||
spr_allocateBtlComponentsOnWorldHeap = 0x802DF524;
|
||||
D_802DF530 = 0x802DF530;
|
||||
D_802DF540 = 0x802DF540;
|
||||
D_802DF548 = 0x802DF548;
|
||||
spr_playerSprites = 0x802DF548;
|
||||
D_802DF578 = 0x802DF578;
|
||||
D_802DF57C = 0x802DF57C;
|
||||
D_802DF580 = 0x802DF580;
|
||||
D_802DF588 = 0x802DF588;
|
||||
spr_playerMaxComponents = 0x802DF580;
|
||||
spr_playerCurrentAnimInfo = 0x802DF588;
|
||||
D_802DF58C = 0x802DF58C;
|
||||
D_802DF590 = 0x802DF590;
|
||||
D_802DF5B0 = 0x802DF5B0;
|
||||
D_802DF958 = 0x802DF958;
|
||||
spr_npcSprites = 0x802DF5B0;
|
||||
spr_npcSpriteInstanceCount = 0x802DF958;
|
||||
D_802DFA48 = 0x802DFA48;
|
||||
D_802DFA4C = 0x802DFA4C;
|
||||
D_802DFA58 = 0x802DFA58;
|
||||
|
Loading…
Reference in New Issue
Block a user