diff --git a/requirements.txt b/requirements.txt index 941414ac3a..f8d09a8f4a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,3 +5,4 @@ pypng colorama ninja_syntax msgpack +pylibyaml diff --git a/src/101b90_len_8f0.c b/src/101b90_len_8f0.c index 445ad2114a..5b3a629d56 100644 --- a/src/101b90_len_8f0.c +++ b/src/101b90_len_8f0.c @@ -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); diff --git a/src/1b40_len_20b0.c b/src/1b40_len_20b0.c index 9c719fde3e..93345c847e 100644 --- a/src/1b40_len_20b0.c +++ b/src/1b40_len_20b0.c @@ -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(); diff --git a/src/e940_len_290.c b/src/e940_len_290.c index a0734ce1f4..1e506d6bc7 100644 --- a/src/e940_len_290.c +++ b/src/e940_len_290.c @@ -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(); diff --git a/src/ebd0_len_6a0.c b/src/ebd0_len_6a0.c index b3a5a6c146..5dc818e687 100644 --- a/src/ebd0_len_6a0.c +++ b/src/ebd0_len_6a0.c @@ -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(); diff --git a/src/f270_len_1190.c b/src/f270_len_1190.c index 28d38ada4a..9198e22131 100644 --- a/src/f270_len_1190.c +++ b/src/f270_len_1190.c @@ -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(); diff --git a/src/fee30_len_2d60.c b/src/fee30_len_2d60.c deleted file mode 100644 index cbe77f4cd2..0000000000 --- a/src/fee30_len_2d60.c +++ /dev/null @@ -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); diff --git a/src/sprite.c b/src/sprite.c new file mode 100644 index 0000000000..9842daad2f --- /dev/null +++ b/src/sprite.c @@ -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); diff --git a/src/world/world.c b/src/world/world.c index f05e7040c8..5cc251d58d 100644 --- a/src/world/world.c +++ b/src/world/world.c @@ -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(); diff --git a/tools/build/configure.py b/tools/build/configure.py index 3f70c28124..9d57038af7 100755 --- a/tools/build/configure.py +++ b/tools/build/configure.py @@ -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", ) diff --git a/ver/us/asm/nonmatchings/101b90_len_8f0/func_802DF2D8.s b/ver/us/asm/nonmatchings/101b90_len_8f0/func_802DF2D8.s index c2f9f11337..055d3cc5c9 100644 --- a/ver/us/asm/nonmatchings/101b90_len_8f0/func_802DF2D8.s +++ b/ver/us/asm/nonmatchings/101b90_len_8f0/func_802DF2D8.s @@ -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) diff --git a/ver/us/asm/nonmatchings/10400_len_d30/func_80035704.s b/ver/us/asm/nonmatchings/10400_len_d30/func_80035704.s index 7501255e13..444d0a9aca 100644 --- a/ver/us/asm/nonmatchings/10400_len_d30/func_80035704.s +++ b/ver/us/asm/nonmatchings/10400_len_d30/func_80035704.s @@ -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 diff --git a/ver/us/asm/nonmatchings/10400_len_d30/state_step_language_select.s b/ver/us/asm/nonmatchings/10400_len_d30/state_step_language_select.s index 4fe53092cb..acc83422ce 100644 --- a/ver/us/asm/nonmatchings/10400_len_d30/state_step_language_select.s +++ b/ver/us/asm/nonmatchings/10400_len_d30/state_step_language_select.s @@ -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 diff --git a/ver/us/asm/nonmatchings/11a50_len_7a0/step_intro.s b/ver/us/asm/nonmatchings/11a50_len_7a0/step_intro.s index d4ec2b0720..6d74341ac0 100644 --- a/ver/us/asm/nonmatchings/11a50_len_7a0/step_intro.s +++ b/ver/us/asm/nonmatchings/11a50_len_7a0/step_intro.s @@ -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 diff --git a/ver/us/asm/nonmatchings/121f0_len_1290/begin_state_title_screen.s b/ver/us/asm/nonmatchings/121f0_len_1290/begin_state_title_screen.s index d50ac701cf..50d03340ab 100644 --- a/ver/us/asm/nonmatchings/121f0_len_1290/begin_state_title_screen.s +++ b/ver/us/asm/nonmatchings/121f0_len_1290/begin_state_title_screen.s @@ -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 diff --git a/ver/us/asm/nonmatchings/121f0_len_1290/step_title_screen.s b/ver/us/asm/nonmatchings/121f0_len_1290/step_title_screen.s index c3f89c6d15..88c338d60e 100644 --- a/ver/us/asm/nonmatchings/121f0_len_1290/step_title_screen.s +++ b/ver/us/asm/nonmatchings/121f0_len_1290/step_title_screen.s @@ -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 diff --git a/ver/us/asm/nonmatchings/13480_len_3f0/next_demo_scene.s b/ver/us/asm/nonmatchings/13480_len_3f0/next_demo_scene.s index 6bd729c61a..0ce52d9bfb 100644 --- a/ver/us/asm/nonmatchings/13480_len_3f0/next_demo_scene.s +++ b/ver/us/asm/nonmatchings/13480_len_3f0/next_demo_scene.s @@ -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 diff --git a/ver/us/asm/nonmatchings/4DF30/load_demo_battle.s b/ver/us/asm/nonmatchings/4DF30/load_demo_battle.s index 688dc661fa..1221594226 100644 --- a/ver/us/asm/nonmatchings/4DF30/load_demo_battle.s +++ b/ver/us/asm/nonmatchings/4DF30/load_demo_battle.s @@ -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 diff --git a/ver/us/asm/nonmatchings/ebd0_len_6a0/func_80033BC0.s b/ver/us/asm/nonmatchings/ebd0_len_6a0/func_80033BC0.s index f59f21201a..844b13c55e 100644 --- a/ver/us/asm/nonmatchings/ebd0_len_6a0/func_80033BC0.s +++ b/ver/us/asm/nonmatchings/ebd0_len_6a0/func_80033BC0.s @@ -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 diff --git a/ver/us/asm/nonmatchings/ebd0_len_6a0/step_battle.s b/ver/us/asm/nonmatchings/ebd0_len_6a0/step_battle.s index d242ca8691..3d13a0b3ce 100644 --- a/ver/us/asm/nonmatchings/ebd0_len_6a0/step_battle.s +++ b/ver/us/asm/nonmatchings/ebd0_len_6a0/step_battle.s @@ -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 diff --git a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DD8F8.s b/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DD8F8.s deleted file mode 100644 index fde574cc49..0000000000 --- a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DD8F8.s +++ /dev/null @@ -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 diff --git a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DBD40.s b/ver/us/asm/nonmatchings/sprite/func_802DBD40.s similarity index 100% rename from ver/us/asm/nonmatchings/fee30_len_2d60/func_802DBD40.s rename to ver/us/asm/nonmatchings/sprite/func_802DBD40.s diff --git a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DBD8C.s b/ver/us/asm/nonmatchings/sprite/func_802DBD8C.s similarity index 100% rename from ver/us/asm/nonmatchings/fee30_len_2d60/func_802DBD8C.s rename to ver/us/asm/nonmatchings/sprite/func_802DBD8C.s diff --git a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DBDBC.s b/ver/us/asm/nonmatchings/sprite/func_802DBDBC.s similarity index 94% rename from ver/us/asm/nonmatchings/fee30_len_2d60/func_802DBDBC.s rename to ver/us/asm/nonmatchings/sprite/func_802DBDBC.s index 3e53962454..8fecb4083a 100644 --- a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DBDBC.s +++ b/ver/us/asm/nonmatchings/sprite/func_802DBDBC.s @@ -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) diff --git a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DBE78.s b/ver/us/asm/nonmatchings/sprite/func_802DBE78.s similarity index 100% rename from ver/us/asm/nonmatchings/fee30_len_2d60/func_802DBE78.s rename to ver/us/asm/nonmatchings/sprite/func_802DBE78.s diff --git a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DBFC0.s b/ver/us/asm/nonmatchings/sprite/func_802DBFC0.s similarity index 100% rename from ver/us/asm/nonmatchings/fee30_len_2d60/func_802DBFC0.s rename to ver/us/asm/nonmatchings/sprite/func_802DBFC0.s diff --git a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DC008.s b/ver/us/asm/nonmatchings/sprite/func_802DC008.s similarity index 100% rename from ver/us/asm/nonmatchings/fee30_len_2d60/func_802DC008.s rename to ver/us/asm/nonmatchings/sprite/func_802DC008.s diff --git a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DD634.s b/ver/us/asm/nonmatchings/sprite/func_802DD634.s similarity index 100% rename from ver/us/asm/nonmatchings/fee30_len_2d60/func_802DD634.s rename to ver/us/asm/nonmatchings/sprite/func_802DD634.s diff --git a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DD6DC.s b/ver/us/asm/nonmatchings/sprite/func_802DD6DC.s similarity index 100% rename from ver/us/asm/nonmatchings/fee30_len_2d60/func_802DD6DC.s rename to ver/us/asm/nonmatchings/sprite/func_802DD6DC.s diff --git a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DD7B0.s b/ver/us/asm/nonmatchings/sprite/func_802DD7B0.s similarity index 100% rename from ver/us/asm/nonmatchings/fee30_len_2d60/func_802DD7B0.s rename to ver/us/asm/nonmatchings/sprite/func_802DD7B0.s diff --git a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DD820.s b/ver/us/asm/nonmatchings/sprite/func_802DD820.s similarity index 100% rename from ver/us/asm/nonmatchings/fee30_len_2d60/func_802DD820.s rename to ver/us/asm/nonmatchings/sprite/func_802DD820.s diff --git a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DD89C.s b/ver/us/asm/nonmatchings/sprite/func_802DD89C.s similarity index 79% rename from ver/us/asm/nonmatchings/fee30_len_2d60/func_802DD89C.s rename to ver/us/asm/nonmatchings/sprite/func_802DD89C.s index 41c9297893..bbff826284 100644 --- a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DD89C.s +++ b/ver/us/asm/nonmatchings/sprite/func_802DD89C.s @@ -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 diff --git a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DDA8C.s b/ver/us/asm/nonmatchings/sprite/func_802DDA8C.s similarity index 87% rename from ver/us/asm/nonmatchings/fee30_len_2d60/func_802DDA8C.s rename to ver/us/asm/nonmatchings/sprite/func_802DDA8C.s index 6dfa59fa8e..03f1579ee9 100644 --- a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DDA8C.s +++ b/ver/us/asm/nonmatchings/sprite/func_802DDA8C.s @@ -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 diff --git a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DDEC4.s b/ver/us/asm/nonmatchings/sprite/func_802DDEC4.s similarity index 100% rename from ver/us/asm/nonmatchings/fee30_len_2d60/func_802DDEC4.s rename to ver/us/asm/nonmatchings/sprite/func_802DDEC4.s diff --git a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DDEE4.s b/ver/us/asm/nonmatchings/sprite/func_802DDEE4.s similarity index 96% rename from ver/us/asm/nonmatchings/fee30_len_2d60/func_802DDEE4.s rename to ver/us/asm/nonmatchings/sprite/func_802DDEE4.s index 36716aa9d2..dc11d9279f 100644 --- a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DDEE4.s +++ b/ver/us/asm/nonmatchings/sprite/func_802DDEE4.s @@ -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 diff --git a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DDFF8.s b/ver/us/asm/nonmatchings/sprite/func_802DDFF8.s similarity index 100% rename from ver/us/asm/nonmatchings/fee30_len_2d60/func_802DDFF8.s rename to ver/us/asm/nonmatchings/sprite/func_802DDFF8.s diff --git a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DE044.s b/ver/us/asm/nonmatchings/sprite/func_802DE044.s similarity index 92% rename from ver/us/asm/nonmatchings/fee30_len_2d60/func_802DE044.s rename to ver/us/asm/nonmatchings/sprite/func_802DE044.s index e8bba977d7..1d3faa9d83 100644 --- a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DE044.s +++ b/ver/us/asm/nonmatchings/sprite/func_802DE044.s @@ -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) diff --git a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DE0C0.s b/ver/us/asm/nonmatchings/sprite/func_802DE0C0.s similarity index 80% rename from ver/us/asm/nonmatchings/fee30_len_2d60/func_802DE0C0.s rename to ver/us/asm/nonmatchings/sprite/func_802DE0C0.s index 01f3c1e8a1..6f623d3ea0 100644 --- a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DE0C0.s +++ b/ver/us/asm/nonmatchings/sprite/func_802DE0C0.s @@ -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 diff --git a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DE0EC.s b/ver/us/asm/nonmatchings/sprite/func_802DE0EC.s similarity index 93% rename from ver/us/asm/nonmatchings/fee30_len_2d60/func_802DE0EC.s rename to ver/us/asm/nonmatchings/sprite/func_802DE0EC.s index efda1bb977..8603f64a5e 100644 --- a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DE0EC.s +++ b/ver/us/asm/nonmatchings/sprite/func_802DE0EC.s @@ -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 diff --git a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DE2AC.s b/ver/us/asm/nonmatchings/sprite/func_802DE2AC.s similarity index 100% rename from ver/us/asm/nonmatchings/fee30_len_2d60/func_802DE2AC.s rename to ver/us/asm/nonmatchings/sprite/func_802DE2AC.s diff --git a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DE3D8.s b/ver/us/asm/nonmatchings/sprite/func_802DE3D8.s similarity index 100% rename from ver/us/asm/nonmatchings/fee30_len_2d60/func_802DE3D8.s rename to ver/us/asm/nonmatchings/sprite/func_802DE3D8.s diff --git a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DE5C8.s b/ver/us/asm/nonmatchings/sprite/func_802DE5C8.s similarity index 100% rename from ver/us/asm/nonmatchings/fee30_len_2d60/func_802DE5C8.s rename to ver/us/asm/nonmatchings/sprite/func_802DE5C8.s diff --git a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DE5E8.s b/ver/us/asm/nonmatchings/sprite/func_802DE5E8.s similarity index 87% rename from ver/us/asm/nonmatchings/fee30_len_2d60/func_802DE5E8.s rename to ver/us/asm/nonmatchings/sprite/func_802DE5E8.s index 43b4601f68..d0e21494ab 100644 --- a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DE5E8.s +++ b/ver/us/asm/nonmatchings/sprite/func_802DE5E8.s @@ -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 diff --git a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DE748.s b/ver/us/asm/nonmatchings/sprite/func_802DE748.s similarity index 100% rename from ver/us/asm/nonmatchings/fee30_len_2d60/func_802DE748.s rename to ver/us/asm/nonmatchings/sprite/func_802DE748.s diff --git a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DE780.s b/ver/us/asm/nonmatchings/sprite/func_802DE780.s similarity index 100% rename from ver/us/asm/nonmatchings/fee30_len_2d60/func_802DE780.s rename to ver/us/asm/nonmatchings/sprite/func_802DE780.s diff --git a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DE894.s b/ver/us/asm/nonmatchings/sprite/func_802DE894.s similarity index 100% rename from ver/us/asm/nonmatchings/fee30_len_2d60/func_802DE894.s rename to ver/us/asm/nonmatchings/sprite/func_802DE894.s diff --git a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DE8DC.s b/ver/us/asm/nonmatchings/sprite/func_802DE8DC.s similarity index 100% rename from ver/us/asm/nonmatchings/fee30_len_2d60/func_802DE8DC.s rename to ver/us/asm/nonmatchings/sprite/func_802DE8DC.s diff --git a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DE9D8.s b/ver/us/asm/nonmatchings/sprite/func_802DE9D8.s similarity index 91% rename from ver/us/asm/nonmatchings/fee30_len_2d60/func_802DE9D8.s rename to ver/us/asm/nonmatchings/sprite/func_802DE9D8.s index 43d465947f..e88e3792bd 100644 --- a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DE9D8.s +++ b/ver/us/asm/nonmatchings/sprite/func_802DE9D8.s @@ -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 diff --git a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DEA40.s b/ver/us/asm/nonmatchings/sprite/func_802DEA40.s similarity index 80% rename from ver/us/asm/nonmatchings/fee30_len_2d60/func_802DEA40.s rename to ver/us/asm/nonmatchings/sprite/func_802DEA40.s index 4473bab834..7405bea702 100644 --- a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DEA40.s +++ b/ver/us/asm/nonmatchings/sprite/func_802DEA40.s @@ -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 diff --git a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DEA6C.s b/ver/us/asm/nonmatchings/sprite/func_802DEA6C.s similarity index 82% rename from ver/us/asm/nonmatchings/fee30_len_2d60/func_802DEA6C.s rename to ver/us/asm/nonmatchings/sprite/func_802DEA6C.s index 81b5e08c7d..380eac6f55 100644 --- a/ver/us/asm/nonmatchings/fee30_len_2d60/func_802DEA6C.s +++ b/ver/us/asm/nonmatchings/sprite/func_802DEA6C.s @@ -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 diff --git a/ver/us/asm/nonmatchings/fee30_len_2d60/render_sprite.s b/ver/us/asm/nonmatchings/sprite/render_sprite.s similarity index 95% rename from ver/us/asm/nonmatchings/fee30_len_2d60/render_sprite.s rename to ver/us/asm/nonmatchings/sprite/render_sprite.s index 59ea8ef9a5..e173472d32 100644 --- a/ver/us/asm/nonmatchings/fee30_len_2d60/render_sprite.s +++ b/ver/us/asm/nonmatchings/sprite/render_sprite.s @@ -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 diff --git a/ver/us/asm/nonmatchings/fee30_len_2d60/spr_appendMDL_component.s b/ver/us/asm/nonmatchings/sprite/spr_appendMDL_component.s similarity index 100% rename from ver/us/asm/nonmatchings/fee30_len_2d60/spr_appendMDL_component.s rename to ver/us/asm/nonmatchings/sprite/spr_appendMDL_component.s diff --git a/ver/us/asm/nonmatchings/fee30_len_2d60/spr_draw_component.s b/ver/us/asm/nonmatchings/sprite/spr_draw_component.s similarity index 100% rename from ver/us/asm/nonmatchings/fee30_len_2d60/spr_draw_component.s rename to ver/us/asm/nonmatchings/sprite/spr_draw_component.s diff --git a/ver/us/asm/nonmatchings/fee30_len_2d60/update_component.s b/ver/us/asm/nonmatchings/sprite/update_component.s similarity index 99% rename from ver/us/asm/nonmatchings/fee30_len_2d60/update_component.s rename to ver/us/asm/nonmatchings/sprite/update_component.s index 7a81b9f29c..d4190ad4b0 100644 --- a/ver/us/asm/nonmatchings/fee30_len_2d60/update_component.s +++ b/ver/us/asm/nonmatchings/sprite/update_component.s @@ -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 diff --git a/ver/us/asm/nonmatchings/world/area_end/end_00/DF6A20/func_80242680_DF9080.s b/ver/us/asm/nonmatchings/world/area_end/end_00/DF6A20/func_80242680_DF9080.s index 4c9c528052..61d17407c4 100644 --- a/ver/us/asm/nonmatchings/world/area_end/end_00/DF6A20/func_80242680_DF9080.s +++ b/ver/us/asm/nonmatchings/world/area_end/end_00/DF6A20/func_80242680_DF9080.s @@ -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 diff --git a/ver/us/asm/nonmatchings/world/area_end/end_01/E05390/func_80242690_E079F0.s b/ver/us/asm/nonmatchings/world/area_end/end_01/E05390/func_80242690_E079F0.s index 73f143c11d..de581b1aed 100644 --- a/ver/us/asm/nonmatchings/world/area_end/end_01/E05390/func_80242690_E079F0.s +++ b/ver/us/asm/nonmatchings/world/area_end/end_01/E05390/func_80242690_E079F0.s @@ -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 diff --git a/ver/us/asm/nonmatchings/world/area_gv/gv_01/E1E460/func_80240688_E1EAE8.s b/ver/us/asm/nonmatchings/world/area_gv/gv_01/E1E460/func_80240688_E1EAE8.s index a2992bf493..12df21273b 100644 --- a/ver/us/asm/nonmatchings/world/area_gv/gv_01/E1E460/func_80240688_E1EAE8.s +++ b/ver/us/asm/nonmatchings/world/area_gv/gv_01/E1E460/func_80240688_E1EAE8.s @@ -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 diff --git a/ver/us/splat.yaml b/ver/us/splat.yaml index 42321877c6..6bfb4569e2 100644 --- a/ver/us/splat.yaml +++ b/ver/us/splat.yaml @@ -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 diff --git a/ver/us/symbol_addrs.txt b/ver/us/symbol_addrs.txt index 409f72b762..60ace428d4 100644 --- a/ver/us/symbol_addrs.txt +++ b/ver/us/symbol_addrs.txt @@ -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 diff --git a/ver/us/undefined_syms_auto.txt b/ver/us/undefined_syms_auto.txt index eb3c88a1e5..1b310d043c 100644 --- a/ver/us/undefined_syms_auto.txt +++ b/ver/us/undefined_syms_auto.txt @@ -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;