diff --git a/src/101b90_len_8f0.c b/src/101b90_len_8f0.c index 83ef885f76..63c45a15b6 100644 --- a/src/101b90_len_8f0.c +++ b/src/101b90_len_8f0.c @@ -6,20 +6,24 @@ #define SPRITE_ROM_START 0x1943000 + 0x10 extern s32 spr_allocateBtlComponentsOnWorldHeap; -extern s32 D_802DFEB0[]; -extern s32 D_802DFEB8[]; -extern s32 PlayerRasterSetsLoaded; -extern s32 PlayerRasterBufferSetOffsets[13]; -extern s32 D_802E0090[]; -extern s32 PlayerRasterHeader; -extern s32 D_802E0C14[]; -extern s32 D_802E0C20[]; -extern s32 PlayerRasterCacheSize; -extern s32 PlayerRasterMaxSize; -extern s32 SpriteDataHeader[]; -extern s32 D_802E0C64; -extern s32 D_802E0C68; -extern PlayerSpriteCacheEntry PlayerRasterCache[18]; + +BSS s32 D_802DFEB0[2]; +BSS s32 D_802DFEB8[101]; +BSS s32 PlayerRasterSetsLoaded; +BSS s32 PlayerRasterBufferSetOffsets[13]; +BSS s32 D_802D0084[3]; // unused? +BSS s32 D_802E0090[0x2E0]; // correct length? + +BSS s32 PlayerRasterHeader; +BSS s32 D_802E0C14[3]; +BSS s32 D_802E0C20[14]; +BSS s32 PlayerRasterCacheSize; +BSS s32 PlayerRasterMaxSize; +BSS s32 SpriteDataHeader[1]; // ? +BSS s32 D_802E0C64; +BSS s32 D_802E0C68; +BSS s32 D_802E0C6C; // unused? +BSS PlayerSpriteCacheEntry PlayerRasterCache[18]; INCLUDE_ASM(s32, "101b90_len_8f0", spr_swizzle_anim_offsets); diff --git a/src/891b0_len_fb0.c b/src/891b0_len_fb0.c index 53c6e41975..2c8eb39ee9 100644 --- a/src/891b0_len_fb0.c +++ b/src/891b0_len_fb0.c @@ -8,15 +8,25 @@ void func_800F0864(void); void func_800F09EC(void); void func_800F0B3C(void); -extern s32 D_80109480; +s32 D_80109480 = 0; +f32 D_80109484 = 0.0f; +s16 D_80109488[] = {4, 0}; +f32 D_8010948C = 0.0f; +s16 D_80109490 = 4; +s16 D_80109492 = 5; +s32 D_80109494 = 0; +f32 D_80109498 = 0.0f; +s16 D_8010949C = 4; +s16 D_8010949E = 0; +f32 D_801094A0 = 0.0f; +s16 D_801094A4 = 4; +s16 D_801094A6 = 0; +s32 D_801094A8 = 0; +s16 D_801094AC = 4; +s16 D_801094AE = 4; + extern s32 D_8010CFF0; extern s32 D_8010CFF4; -extern f32 D_8010948C; -extern s16 D_80109490; -extern s16 D_80109492; -extern s32 D_80109494; -extern s16 D_801094A4; -extern s32 D_801094A8; void func_800EFD00(void) { } @@ -65,18 +75,16 @@ void func_800EFD08(void) { INCLUDE_ASM(s32, "891b0_len_fb0", func_800EFE2C); -#ifdef NON_EQUIVALENT // requires data migration + float weirdness in the last if void func_800F0248(void) { PlayerStatus* playerStatus = &gPlayerStatus; f32 sin, cos, x, y, z; + f32 t1; if (playerStatus->actionState == ACTION_STATE_JUMP && playerStatus->timeInAir == 1 && D_80109492 == 5) { - fx_flower_splash( - playerStatus->position.x, - playerStatus->position.y + 14.0f, - playerStatus->position.z, - D_8010948C - ); + z = playerStatus->position.z; // TODO weird use of temps required to match + x = playerStatus->position.y + 14.0f; + y = D_8010948C; + fx_flower_splash(playerStatus->position.x, x, z, y); D_8010948C = clamp_angle(D_8010948C + 35.0f); D_80109492 = 0; return; @@ -96,41 +104,32 @@ void func_800F0248(void) { } if (D_80109490++ > 0) { + f32 colliderDiameter; D_80109490 = 0; sin_cos_rad(DEG_TO_RAD(clamp_angle(-playerStatus->currentYaw)), &sin, &cos); - x = (playerStatus->colliderDiameter * sin * -0.4f) + playerStatus->position.x; - z = (playerStatus->colliderDiameter * cos * -0.4f) + playerStatus->position.z; + colliderDiameter = playerStatus->colliderDiameter; + + x = playerStatus->position.x + (colliderDiameter * sin * -0.4f); + z = playerStatus->position.z + (colliderDiameter * cos * -0.4f); y = playerStatus->position.y + 15.5f; - fx_flower_trail( - 0, - x, - y, - z, - -playerStatus->currentYaw + rand_int(10) - 5.0f, - D_80109494 - ); + fx_flower_trail(0, x, y, z, -playerStatus->currentYaw + rand_int(10) - 5.0f, D_80109494); D_80109494 = !D_80109494; } } -#else -INCLUDE_ASM(s32, "891b0_len_fb0", func_800F0248); -#endif INCLUDE_ASM(s32, "891b0_len_fb0", func_800F0490); -#ifdef NON_MATCHING // requires data migration void func_800F0864(void) { - f32 sin, cos; PlayerStatus* playerStatus = &gPlayerStatus; + f32 sin, cos; - if ( - ( - playerStatus->actionState != ACTION_STATE_WALK && playerStatus->actionState != ACTION_STATE_RUN && - !(playerStatus->actionState == ACTION_STATE_SPIN && playerStatus->actionSubstate == 0) && - playerStatus->actionState != ACTION_STATE_LAND && playerStatus->actionState != ACTION_STATE_IDLE - ) || playerStatus->flags >= 0 + if (playerStatus->actionState != ACTION_STATE_WALK && + playerStatus->actionState != ACTION_STATE_RUN && + (playerStatus->actionState != ACTION_STATE_SPIN || playerStatus->actionSubstate != 0) && + ((playerStatus->actionState != ACTION_STATE_LAND && playerStatus->actionState != ACTION_STATE_IDLE) || + playerStatus->flags >= 0) ) { D_801094A4 = 4; return; @@ -149,13 +148,59 @@ void func_800F0864(void) { D_801094A8 = !D_801094A8; } } -#else -INCLUDE_ASM(s32, "891b0_len_fb0", func_800F0864); -#endif -INCLUDE_ASM(s32, "891b0_len_fb0", func_800F09EC); +void func_800F09EC(void) { + PlayerStatus* playerStatus = &gPlayerStatus; + f32 sin, cos; -INCLUDE_ASM(s32, "891b0_len_fb0", func_800F0B3C); + if (playerStatus->actionState != ACTION_STATE_WALK && + playerStatus->actionState != ACTION_STATE_RUN && + (playerStatus->actionState != ACTION_STATE_SPIN || playerStatus->actionSubstate != 0) && + ((playerStatus->actionState != ACTION_STATE_LAND && playerStatus->actionState != ACTION_STATE_IDLE) || + playerStatus->flags >= 0) + ) { + D_801094AC = 4; + return; + } + + if (D_801094AC++ >= 4) { + D_801094AC = 0; + sin_cos_rad(DEG_TO_RAD(clamp_angle(-playerStatus->currentYaw)), &sin, &cos); + fx_falling_leaves( + 0, + playerStatus->position.x + (playerStatus->colliderDiameter * sin * 0.2f), + 40.0f, + playerStatus->position.z + (playerStatus->colliderDiameter * cos * 0.2f) + ); + } +} + +void func_800F0B3C(void) { + PlayerStatus* playerStatus = &gPlayerStatus; + f32 sin, cos; + + if (playerStatus->actionState != ACTION_STATE_WALK && + playerStatus->actionState != ACTION_STATE_RUN && + (playerStatus->actionState != ACTION_STATE_SPIN || playerStatus->actionSubstate != 0) && + ((playerStatus->actionState != ACTION_STATE_LAND && playerStatus->actionState != ACTION_STATE_IDLE) || + playerStatus->flags >= 0) + ) { + D_801094AE = 4; + return; + } + + if (D_801094AE++ >= 4) { + D_801094AE = 0; + sin_cos_rad(DEG_TO_RAD(clamp_angle(-playerStatus->currentYaw)), &sin, &cos); + fx_rising_bubble( + 0, + playerStatus->position.x + (playerStatus->colliderDiameter * sin * 0.2f), + playerStatus->position.y + 0.0f, + playerStatus->position.z + (playerStatus->colliderDiameter * cos * 0.2f), + 0.0f + ); + } +} void func_800F0C9C(void) { } diff --git a/src/8a160_len_700.c b/src/8a160_len_700.c index db09085cf0..5bf37d9440 100644 --- a/src/8a160_len_700.c +++ b/src/8a160_len_700.c @@ -1,55 +1,182 @@ #include "common.h" -typedef struct { - /* 0x00 */ u8 unk0; - /* 0x01 */ u8 unk1; - /* 0x02 */ u8 unk2; - /* 0x03 */ char unk3[4]; - /* 0x07 */ s8 unk7; - /* 0x08 */ f32 unk8; - /* 0x0C */ f32 unkC; - /* 0x10 */ char unk10[8]; - /* 0x18 */ f32 unk18; -} sub_struct_func_800F0CB0; +#include "A2960.png.inc.c" -typedef struct { - /* 0x00 */ sub_struct_func_800F0CB0 unk00[0x39]; -} struct_func_800F0CB0; +Vp D_801096B0 = { + .vp = { + .vscale = { 640, 480, 511, 0 }, + .vtrans = { 640, 480, 511, 0 } + } +}; -extern struct_func_800F0CB0 D_8010D000[]; +#include "A2B70.vtx.inc.c" -void func_800F0CB0(s32 arg0, f32 arg1, f32 arg2, f32 arg3) { - struct_func_800F0CB0* temp_a1 = &D_8010D000[arg0]; - sub_struct_func_800F0CB0* phi_a1 = &temp_a1->unk00[0]; - s32 temp_v1 = 0x39; - s32 phi_v1; +#include "A2BC0.gfx.inc.c" +#include "A2C88.gfx.inc.c" + +u8 D_80109800[32] = { + 40, 90, 81, 72, 65, 59, 53, 47, 43, 38, 34, 31, 28, 25, 22, 20, 18, 16, 15, 13, 12, 10, 9, 8, 7, 7, 6, 5, 5, 4, 0, 0 +}; + +Vec2b D_80109820[56] = { + { 247, 105 }, { 239, 87 }, { 17, 87 }, { 9, 105 }, { 0, 122 }, { 230, 69 }, { 26, 69 }, { 221, 52 }, { 35, 52 }, + { 202, 49 }, { 186, 255 }, { 200, 241 }, { 0, 200 }, { 56, 241 }, { 70, 255 }, { 54, 49 }, { 196, 222 }, + { 239, 191 }, { 17, 191 }, { 60, 222 }, { 85, 13 }, { 74, 46 }, { 99, 27 }, { 93, 43 }, { 12, 33 }, { 12, 22 }, + { 24, 22 }, { 24, 33 }, { 12, 10 }, { 24, 10 }, { 24, 45 }, { 232, 33 }, { 232, 22 }, { 232, 45 }, { 113, 40 }, + { 193, 203 }, { 190, 183 }, { 182, 46 }, { 163, 43 }, { 35, 182 }, { 52, 173 }, { 12, 45 }, { 244, 22 }, + { 244, 33 }, { 232, 10 }, { 244, 10 }, { 244, 45 }, { 204, 173 }, { 221, 182 }, { 186, 164 }, { 171, 13 }, + { 157, 27 }, { 143, 40 }, { 63, 203 }, { 66, 183 }, { 70, 164 } +}; + +typedef struct Unk8a160 { + /* 0x00 */ u8 alive; + /* 0x01 */ s8 timeLeft; + /* 0x02 */ u8 lifetime; + /* 0x03 */ Color_RGBA8 rgba; + /* 0x07 */ s8 lodVal; + /* 0x08 */ f32 x; + /* 0x0C */ f32 y; + /* 0x10 */ Vec2f vel; + /* 0x18 */ f32 scale; +} Unk8a160; // size = 0x1C + +typedef struct Unk8a160Outer { + /* 0x00 */ Unk8a160 subs[57]; // one base + 56 others? +} Unk8a160Outer; + +extern Unk8a160Outer D_8010D000[1]; + +void func_800F0CB0(s32 arg0, f32 x, f32 y, f32 scale) { + Unk8a160Outer* outer = &D_8010D000[arg0]; + Unk8a160* sub = &outer->subs[0]; + s32 numSubstructs = ARRAY_COUNT(outer->subs); + s32 i; if (arg0 <= 0) { - phi_a1->unk0 = 1; - phi_a1->unk8 = arg1; - phi_a1->unkC = arg2; - phi_a1->unk18 = arg3; - phi_a1->unk1 = 0x28; - phi_a1->unk2 = 0; - phi_a1 = &temp_a1->unk00[1]; - phi_v1 = 1; - while (phi_v1 < temp_v1) { - phi_a1->unk7 = (s32) (-(f32) phi_v1 * 0.0f) - 1; - phi_v1++; - phi_a1++; + sub->alive = TRUE; + sub->x = x; + sub->y = y; + sub->scale = scale; + sub->timeLeft = 40; + sub->lifetime = 0; + sub = &outer->subs[1]; + + for (i = 1; i < numSubstructs; i++, sub++) { + sub->lodVal = (s32) (-((f32) i) * 0.0f) - 1; } } } void func_800F0D5C(void) { - struct_func_800F0CB0* temp = &D_8010D000[0]; - s32 i = 0; + Unk8a160Outer* outer = &D_8010D000[0]; + s32 i; - for (i; i < 1; i++) { - temp[i].unk00[0].unk0 = 0; + for (i = 0; i < 1; i++) { + outer[i].subs[0].alive = FALSE; } } -INCLUDE_ASM(s32, "8a160_len_700", func_800F0D80); +void func_800F0D80(void) { + Unk8a160Outer* outer; + s32 i; + s32 j; -INCLUDE_ASM(s32, "8a160_len_700", func_800F102C); + for (i = 0; i < ARRAY_COUNT(D_8010D000); i++, outer++) { + outer = &D_8010D000[i]; + + if (outer->subs[0].alive) { + outer->subs[0].timeLeft--; + outer->subs[0].lifetime++; + + if (outer->subs[0].timeLeft < 0) { + outer->subs[0].alive = FALSE; + } else { + Unk8a160* sub = &outer->subs[0]; + s32 baseTimeLeft = sub->timeLeft; + f32 baseX = sub->x; + f32 baseY = sub->y; + + sub++; + for (j = 1; j < ARRAY_COUNT(outer->subs); j++, sub++) { + sub->lodVal++; + if (sub->lodVal >= 30) { + if (baseTimeLeft < 30) { + sub->lodVal = -31; + } else { + sub->lodVal = 0; + } + } + + if (sub->lodVal >= 0) { + if (sub->lodVal == 0) { + f32 tx = D_80109820[j - 1].x; + f32 ty = D_80109820[j - 1].y; + u8 t = 127; + + sub->vel.x = tx * 0.1; + sub->vel.y = -ty * 0.1; + sub->x = baseX; + sub->y = baseY; + sub->scale = 1.0f; + sub->rgba.r = rand_int(t); + sub->rgba.g = rand_int(t - sub->rgba.r); + sub->rgba.b = rand_int(t - sub->rgba.g - sub->rgba.r); + sub->rgba.a = 255; + sub->rgba.r += 128; + sub->rgba.g += 128; + sub->rgba.b += 128; + } + sub->x += sub->vel.x; + sub->y += sub->vel.y; + sub->vel.x *= 0.92; + sub->vel.y *= 0.92; + sub->scale = (f32) D_80109800[sub->lodVal] * 0.04; + } + } + } + } + } +} + +void func_800F102C(void) { + Matrix4f sp20, sp60; + Unk8a160Outer* outer; + s32 i; + s32 j; + + gDPPipeSync(gMasterGfxPos++); + gSPSegment(gMasterGfxPos++, 0x00, 0x00000000); + gDPSetScissor(gMasterGfxPos++, G_SC_NON_INTERLACE, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT); + gSPViewport(gMasterGfxPos++, &D_801096B0); + + guOrthoF(sp20, 0.0f, SCREEN_WIDTH, SCREEN_HEIGHT, 0.0f, -100.0f, 100.0f, 1.0f); + guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]); + + gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); + gSPDisplayList(gMasterGfxPos++, D_80109710); + gDPSetEnvColor(gMasterGfxPos++, 127, 127, 127, 127); + + for (i = 0; i < ARRAY_COUNT(D_8010D000); i++, outer++) { + outer = &D_8010D000[i]; + + if (outer->subs[0].alive) { + Unk8a160* it = &outer->subs[0]; + f32 baseScale = it->scale; + + it++; + for (j = 1; j < ARRAY_COUNT(outer->subs); j++, it++) { + if (it->lodVal >= 0) { + guPositionF(sp60, 0.0f, 0.0f, gGameStatusPtr->frameCounter * 10, it->scale * baseScale, + it->x, it->y, 0.0f); + guMtxF2L(sp60, &gDisplayContext->matrixStack[gMatrixListPos]); + + gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], + G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW); + gDPSetPrimColor(gMasterGfxPos++, 0, 80 - it->lodVal, it->rgba.r, it->rgba.g, it->rgba.b, it->rgba.a); + gSPDisplayList(gMasterGfxPos++, D_801097D8); + gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW); + } + } + } + } +} diff --git a/src/battle/action_cmd/air_lift.c b/src/battle/action_cmd/air_lift.c index 5ca13280e7..bf416beae9 100644 --- a/src/battle/action_cmd/air_lift.c +++ b/src/battle/action_cmd/air_lift.c @@ -15,7 +15,6 @@ extern s32 D_80294340; s32 D_802A9852_4292C0[] = { 0, 25, 50, 75, 75, 0, 0, 0 }; -BSS s32 air_lift_bss_pre[2]; BSS s32 air_lift_bss_0; ApiStatus func_802A9000_428A70(Evt* script, s32 isInitialCall) { diff --git a/src/battle/area_isk_part_1/stage/isk_04.c b/src/battle/area_isk_part_1/stage/isk_04.c index ad516d6a14..da5564be1a 100644 --- a/src/battle/area_isk_part_1/stage/isk_04.c +++ b/src/battle/area_isk_part_1/stage/isk_04.c @@ -5,7 +5,6 @@ #define NAMESPACE b_area_isk_part_1_isk_04 -BSS char N(pad)[8]; // BSS has bad alignment. Should be 0x10 aligned. BSS EffectInstance* N(D_80224D60); BSS EffectInstance* N(D_80224D64); diff --git a/src/battle/area_isk_part_1/stage/isk_05.c b/src/battle/area_isk_part_1/stage/isk_05.c index afb87a0738..858c6e2b4f 100644 --- a/src/battle/area_isk_part_1/stage/isk_05.c +++ b/src/battle/area_isk_part_1/stage/isk_05.c @@ -4,7 +4,6 @@ #define NAMESPACE b_area_isk_part_1_isk_05 -BSS char N(pad)[8]; // BSS has bad alignment. Should be 0x10 aligned. BSS EffectInstance* N(D_80224D70); BSS EffectInstance* N(D_80224D74); diff --git a/src/battle/area_isk_part_1/stage/isk_06.c b/src/battle/area_isk_part_1/stage/isk_06.c index c7e2e15558..37aeb8cba6 100644 --- a/src/battle/area_isk_part_1/stage/isk_06.c +++ b/src/battle/area_isk_part_1/stage/isk_06.c @@ -4,7 +4,6 @@ #define NAMESPACE b_area_isk_part_1_isk_06 -BSS char N(pad)[8]; // BSS has bad alignment. Should be 0x10 aligned. BSS EffectInstance* N(D_80224D80); ApiStatus func_80218A50_4E3190(Evt* script, s32 isInitialCall) { diff --git a/src/battle/area_isk_part_1/stage/isk_06b.c b/src/battle/area_isk_part_1/stage/isk_06b.c index 59c6bc00ac..90707d3d27 100644 --- a/src/battle/area_isk_part_1/stage/isk_06b.c +++ b/src/battle/area_isk_part_1/stage/isk_06b.c @@ -5,7 +5,6 @@ #define NAMESPACE b_area_isk_part_1_isk_06b -BSS char N(pad)[8]; // BSS has bad alignment. Should be 0x10 aligned. BSS EffectInstance* N(D_80224DA0); ApiStatus func_80218B30_4E3270(Evt* script, s32 isInitialCall) { diff --git a/src/battle/area_isk_part_1/stage/isk_07.c b/src/battle/area_isk_part_1/stage/isk_07.c index 169eeeecc5..9d626eef5e 100644 --- a/src/battle/area_isk_part_1/stage/isk_07.c +++ b/src/battle/area_isk_part_1/stage/isk_07.c @@ -4,7 +4,6 @@ #define NAMESPACE b_area_isk_part_1_isk_07 -BSS char N(pad)[8]; // BSS has bad alignment. Should be 0x10 aligned. BSS EffectInstance* N(D_80224D90); ApiStatus func_80218AC0_4E3200(Evt* script, s32 isInitialCall) { diff --git a/src/battle/area_isk_part_1/stage/isk_08.c b/src/battle/area_isk_part_1/stage/isk_08.c index 4cd87140d9..54e0feffc5 100644 --- a/src/battle/area_isk_part_1/stage/isk_08.c +++ b/src/battle/area_isk_part_1/stage/isk_08.c @@ -4,7 +4,6 @@ #define NAMESPACE b_area_isk_part_1_isk_08 -BSS char N(pad)[8]; // BSS has bad alignment. Should be 0x10 aligned. BSS EffectInstance* N(D_80224DB0); ApiStatus func_80218BA0_4E32E0(Evt* script, s32 isInitialCall) { diff --git a/src/battle/area_mac/actor/lee.c b/src/battle/area_mac/actor/lee.c index 89537a5680..20e05ae32a 100644 --- a/src/battle/area_mac/actor/lee.c +++ b/src/battle/area_mac/actor/lee.c @@ -112,7 +112,6 @@ extern EvtScript N(handleEvent_8021D600); extern EvtScript N(nextTurn_8022A038); extern EvtScript N(copyPartner); -BSS char N(pad)[8]; // BSS Alignment Hack BSS s32 D_80232C20[12]; BSS s32 D_80232C50; diff --git a/src/battle/area_trd_part_2/actor/blue_ninja_koopa.c b/src/battle/area_trd_part_2/actor/blue_ninja_koopa.c index b6ef3eb35a..91221deafa 100644 --- a/src/battle/area_trd_part_2/actor/blue_ninja_koopa.c +++ b/src/battle/area_trd_part_2/actor/blue_ninja_koopa.c @@ -148,8 +148,6 @@ s32 N(idleAnimations_8022B6DC)[] = { #include "common/StartRumbleWithParams.inc.c" -// TODO: This pad is here due to rodata having subalign 4, while bss is 0x10 aligned as normal. -BSS static char pad; #include "common/UnkWhirlwindEffectFunc.inc.c" #include "common/UnkEnemyFunc.inc.c" diff --git a/src/battle/area_trd_part_2/actor/fake_bowser.c b/src/battle/area_trd_part_2/actor/fake_bowser.c index 23622ad16b..7a0e5173b0 100644 --- a/src/battle/area_trd_part_2/actor/fake_bowser.c +++ b/src/battle/area_trd_part_2/actor/fake_bowser.c @@ -25,8 +25,6 @@ extern EvtScript N(8021F630); extern EvtScript N(80222C44); extern EvtScript N(80223870); -// TODO: This pad is here due to rodata having subalign 4, while bss is 0x10 aligned as normal. -BSS static char pad; BSS s32 D_80235FC0[31]; #include "common/StartRumbleWithParams.inc.c" diff --git a/src/battle/area_trd_part_2/actor/green_ninja_koopa.c b/src/battle/area_trd_part_2/actor/green_ninja_koopa.c index e0e51eb3ad..2ba265d209 100644 --- a/src/battle/area_trd_part_2/actor/green_ninja_koopa.c +++ b/src/battle/area_trd_part_2/actor/green_ninja_koopa.c @@ -148,8 +148,6 @@ s32 N(idleAnimations_8022579C)[] = { #include "common/StartRumbleWithParams.inc.c" -// TODO: This pad is here due to rodata having subalign 4, while bss is 0x10 aligned as normal. -BSS static char pad; #include "common/UnkWhirlwindEffectFunc.inc.c" #include "common/UnkEnemyFunc.inc.c" diff --git a/src/battle/area_trd_part_2/actor/red_ninja_koopa.c b/src/battle/area_trd_part_2/actor/red_ninja_koopa.c index a716906396..de752500eb 100644 --- a/src/battle/area_trd_part_2/actor/red_ninja_koopa.c +++ b/src/battle/area_trd_part_2/actor/red_ninja_koopa.c @@ -148,8 +148,6 @@ s32 N(idleAnimations_8022873C)[] = { #include "common/StartRumbleWithParams.inc.c" -// TODO: This pad is here due to rodata having subalign 4, while bss is 0x10 aligned as normal. -BSS static char pad; #include "common/UnkWhirlwindEffectFunc.inc.c" #include "common/UnkEnemyFunc.inc.c" diff --git a/src/battle/area_trd_part_2/actor/yellow_ninja_koopa.c b/src/battle/area_trd_part_2/actor/yellow_ninja_koopa.c index eff9af88b1..af42eaa8dd 100644 --- a/src/battle/area_trd_part_2/actor/yellow_ninja_koopa.c +++ b/src/battle/area_trd_part_2/actor/yellow_ninja_koopa.c @@ -148,8 +148,6 @@ s32 N(idleAnimations_8022E67C)[] = { #include "common/StartRumbleWithParams.inc.c" -// TODO: This pad is here due to rodata having subalign 4, while bss is 0x10 aligned as normal. -BSS static char pad; #include "common/UnkWhirlwindEffectFunc.inc.c" #include "common/UnkEnemyFunc.inc.c" diff --git a/src/battle/item/mystery.c b/src/battle/item/mystery.c index 6b980caec6..16219678bd 100644 --- a/src/battle/item/mystery.c +++ b/src/battle/item/mystery.c @@ -4,8 +4,6 @@ #include "battle/item/mystery.png.h" #include "pause/pause_common.h" -BSS s32 D_802A25B8[2]; - #include "ItemRefund.inc.c" extern s32 D_802A25C8[7]; diff --git a/src/battle/item/strange_cake.c b/src/battle/item/strange_cake.c index 1f6f3608a0..f071344675 100644 --- a/src/battle/item/strange_cake.c +++ b/src/battle/item/strange_cake.c @@ -6,8 +6,6 @@ #include "battle/item/strange_cake2.png.h" #include "battle/item/strange_cake3.png.h" -BSS s32 D_802A2DC8[2]; - #include "ItemRefund.inc.c" extern HudScript* N(D_802A2848_732B48)[]; diff --git a/src/e20eb0.c b/src/e20eb0.c index 338cdb9104..8c9197ac5e 100644 --- a/src/e20eb0.c +++ b/src/e20eb0.c @@ -5,9 +5,6 @@ #include "common/UnkAngleFunc1.inc.c" #include "speech_bubble.png.h" -#include "speech_bubble.png.inc.c" -#include "speech_bubble.pal.inc.c" -#include "speech_bubble_dlist.gfx.inc.c" typedef struct UnkE20EB0 { /* 0x00 */ Npc* unk_00; @@ -24,6 +21,10 @@ typedef struct UnkE20EB0 { BSS UnkE20EB0 D_802B79C0_E21870; +#include "speech_bubble.png.inc.c" +#include "speech_bubble.pal.inc.c" +#include "speech_bubble_dlist.gfx.inc.c" + UnkE20EB0* D_802B79A8_E21858 = &D_802B79C0_E21870; void func_802B742C(void); diff --git a/src/effects/lil_oink.c b/src/effects/lil_oink.c index 51efd67250..1bd320366e 100644 --- a/src/effects/lil_oink.c +++ b/src/effects/lil_oink.c @@ -178,6 +178,7 @@ void lil_oink_appendGfx(void* effect) { shim_guPositionF(sp20, 0.0f, 180.0f - data->rot[i], 0.0f, 1.0f, data->x[i], data->y[i] + data->jumpOffset[i], data->z[i]); shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]); + gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(gMasterGfxPos++, D_E0114718[data->type[i]]); diff --git a/src/effects/tattle_window.c b/src/effects/tattle_window.c index 5ab522e73a..3800d59ae2 100644 --- a/src/effects/tattle_window.c +++ b/src/effects/tattle_window.c @@ -38,6 +38,7 @@ D_E00D8818_Entry D_E00D8818[] = { { .unk_00 = 0x0000, .unk_02 = 0x00, .unk_03 = 0xAA }, { .unk_00 = 0x0000, .unk_02 = 0x00, .unk_03 = 0x78 }, { .unk_00 = 0x0000, .unk_02 = 0x00, .unk_03 = 0x3C }, + { .unk_00 = 0x0000, .unk_02 = 0x00, .unk_03 = 0x00 }, }; EffectInstance* tattle_window_main(s32 arg0, f32 x, f32 y, f32 z, f32 arg4, s32 arg5) { diff --git a/src/hud_element.c b/src/hud_element.c index 0c26998cd9..fd95164a4c 100644 --- a/src/hud_element.c +++ b/src/hud_element.c @@ -193,7 +193,7 @@ void hud_element_load_script(HudElement* hudElement, HudScript* anim) { capacity = gHudElementCacheCapacity / 2; } ASSERT(capacity > *gHudElementCacheSize + gHudElementSizes[preset].size); - nuPiReadRom((s32)icon_present_VRAM + raster, entry->data, gHudElementSizes[preset].size); + nuPiReadRom((s32)icon_present_ROM_START + raster, entry->data, gHudElementSizes[preset].size); *gHudElementCacheSize += gHudElementSizes[preset].size; if (!gGameStatusPtr->isBattle) { *pos = i; @@ -229,7 +229,7 @@ void hud_element_load_script(HudElement* hudElement, HudScript* anim) { capacity = gHudElementCacheCapacity / 2; } ASSERT(capacity > *gHudElementCacheSize + 32); - nuPiReadRom((s32)icon_present_VRAM + palette, entry->data, 32); + nuPiReadRom((s32)icon_present_ROM_START + palette, entry->data, 32); *gHudElementCacheSize += 32; if (!gGameStatusPtr->isBattle) { *pos = i; diff --git a/src/main.c b/src/main.c index 4e3582150c..8784b753de 100644 --- a/src/main.c +++ b/src/main.c @@ -1,7 +1,11 @@ #include "common.h" #include "nu/nusys.h" +#ifdef VERSION_US s16 D_80074010 = 8; // might be an array, could be size 1-8 +#else +extern s16 D_80074010; +#endif void gfxRetrace_Callback(s32); void gfxPreNMI_Callback(void); diff --git a/src/main_loop.c b/src/main_loop.c index e17309eb08..ec49407f93 100644 --- a/src/main_loop.c +++ b/src/main_loop.c @@ -251,12 +251,12 @@ void gfx_draw_frame(void) { void load_engine_data(void) { s32 i; - dma_copy(FEE30_ROM_START, FEE30_ROM_END, FEE30_VRAM); - dma_copy(_759B0_ROM_START, _759B0_ROM_END, _759B0_VRAM); + dma_copy(engine4_ROM_START, engine4_ROM_END, engine4_VRAM); + dma_copy(engine1_ROM_START, engine1_ROM_END, engine1_VRAM); dma_copy(evt_ROM_START, evt_ROM_END, evt_VRAM); - dma_copy(_102610_ROM_START, _102610_ROM_END, _102610_VRAM); - dma_copy(A5DD0_ROM_START, A5DD0_ROM_END, A5DD0_VRAM); - dma_copy(_10CC10_ROM_START, _10CC10_ROM_END, _10CC10_VRAM); + dma_copy(entity_ROM_START, entity_ROM_END, entity_VRAM); + dma_copy(engine2_ROM_START, engine2_ROM_END, engine2_VRAM); + dma_copy(font_width_ROM_START, font_width_ROM_END, font_width_VRAM); gOverrideFlags = 0; gGameStatusPtr->unk_79 = 0; diff --git a/src/os/39cb0_len_100.c b/src/os/39cb0_len_100.c index dd3debf787..9635833b26 100644 --- a/src/os/39cb0_len_100.c +++ b/src/os/39cb0_len_100.c @@ -7,7 +7,7 @@ extern u64 nuScStack[NU_SC_STACK_SIZE / sizeof(u64)]; // probably should be at 0x8009A630, unless D_8009A630 (what's technically used in boot_idle) isn't nuIdleFunc -BSS void (*nuIdleFunc)(void); +extern void (*nuIdleFunc)(void); void nuBoot(void) { osInitialize(); diff --git a/src/sprite.c b/src/sprite.c index 7e9b34edf5..593d03e88a 100644 --- a/src/sprite.c +++ b/src/sprite.c @@ -1,20 +1,26 @@ #include "sprite.h" -extern s32 spr_allocateBtlComponentsOnWorldHeap; -extern s32 D_802DF540; -extern SpriteAnimData* spr_playerSprites[13]; -extern s32 D_802DF57C; -extern s32 spr_playerMaxComponents; -extern PlayerCurrentAnimInfo spr_playerCurrentAnimInfo[3]; -extern SpriteAnimData* NpcSpriteData[0xEA]; -extern u8 NpcSpriteInstanceCount[0xEA]; -extern SpriteInstance SpriteInstances[51]; - -extern Quad* D_802DFE44; -extern s32 D_802DFE48[22]; -extern s32 D_802DFEA0[3]; -extern s32 SpriteUpdateNotifyValue; -extern s32 MaxLoadedSpriteInstanceID; +BSS s32 D_802DF520; // unused? +BSS s32 spr_allocateBtlComponentsOnWorldHeap; +BSS s32 D_802DF528[2]; // unused? +BSS s32 MaxLoadedSpriteInstanceID; +BSS s32 D_802DF534[3]; // unused? +BSS s32 D_802DF540; +BSS s32 D_802DF544; // unused? +BSS SpriteAnimData* spr_playerSprites[13]; +BSS s32 D_802DF57C; +BSS s32 spr_playerMaxComponents; +BSS s32 D_802DF584; // unused? +BSS PlayerCurrentAnimInfo spr_playerCurrentAnimInfo[3]; +BSS s32 D_802DF5AC; // unused? +BSS SpriteAnimData* NpcSpriteData[234]; +BSS u8 NpcSpriteInstanceCount[234]; +BSS s32 D_802DFA44; // unused? +BSS SpriteInstance SpriteInstances[51]; +BSS Quad* D_802DFE44; +BSS s32 D_802DFE48[22]; +BSS s32 D_802DFEA0[3]; +BSS s32 SpriteUpdateNotifyValue; SpriteComponent** spr_allocate_components(s32); void spr_load_npc_extra_anims(SpriteAnimData*, u32*); @@ -379,7 +385,7 @@ void spr_component_update_commands(SpriteComponent* comp, SpriteAnimComponent* a f32 rotX, rotY, rotZ; f32 scaleX, scaleY, scaleZ; s32 changedFlags; - + u16* bufPos; u16* gotoPos; s32 cmdValue; @@ -389,19 +395,19 @@ void spr_component_update_commands(SpriteComponent* comp, SpriteAnimComponent* a scaleY = 1.0f; scaleX = 1.0f; changedFlags = 0; - + bufPos = comp->readPos; gotoPos = (u16*) -1; - + comp->waitTime -= spr_animUpdateTimeScale; - + while (comp->waitTime <= 0.0f) { // overflow check if (bufPos >= &anim->cmdList[anim->cmdListSize / 2]) { bufPos = anim->cmdList; break; } - + switch (*bufPos & 0xF000) { // 0VVV // Wait @@ -530,7 +536,7 @@ void spr_component_update_commands(SpriteComponent* comp, SpriteAnimComponent* a break; } } // end loop - + comp->readPos = bufPos; if (changedFlags & 1) { comp->posOffset.x = posX; @@ -655,7 +661,7 @@ void spr_load_player_sprite(s32 spriteIndex) { void spr_init_sprites(s32 playerSpriteSet) { s32 loadedFlags; s32 i; - + spr_allocateBtlComponentsOnWorldHeap = FALSE; _heap_create(&gSpriteHeapPtr, 0x40000); fold_init(); @@ -730,13 +736,13 @@ s32 spr_draw_player_sprite(s32 spriteInstanceID, s32 yaw, s32 arg2, u16** palett camRelativeYaw = yaw; spriteAnimIndex = spriteInstanceID & 0xFF; - + animID = spr_playerCurrentAnimInfo[spriteAnimIndex].animID; if (animID == -1) { return 0; } - + spriteIndex = ((animID >> 0x10) & 0xFF) - 1; D_802DF57C = spriteIndex; if (spr_playerSprites[spriteIndex] == NULL) { @@ -756,7 +762,7 @@ s32 spr_draw_player_sprite(s32 spriteInstanceID, s32 yaw, s32 arg2, u16** palett break; } } - + if (!(spriteInstanceID & 0x40000000)) { camRelativeYaw += (s32) -gCameras[gCurrentCamID].currentYaw; if (camRelativeYaw > 360) { @@ -771,15 +777,15 @@ s32 spr_draw_player_sprite(s32 spriteInstanceID, s32 yaw, s32 arg2, u16** palett } else { zscale = 1.5f; } - + if (spriteInstanceID & 0x10000000) { zscale = 0.0f - zscale; } - + D_802DFEA0[0] = 0; D_802DFEA0[1] = camRelativeYaw; D_802DFEA0[2] = 0; - + if (spriteInstanceID & 0x80000000) { if (arg2 == 0) { return 0; @@ -788,7 +794,7 @@ s32 spr_draw_player_sprite(s32 spriteInstanceID, s32 yaw, s32 arg2, u16** palett } else { alpha = 255; } - + compList = spr_playerCurrentAnimInfo[spriteAnimIndex].componentList; if (spriteInstanceID & 0x20000000) { drawPalettes = paletteList; @@ -875,7 +881,7 @@ s32 spr_load_npc_sprite(s32 animID, u32* extraAnimList) { s32 spriteIndex = (animID >> 0x10) & 0x7FFF; s32 useTailAlloc = (u32)animID >> 0x1F; - + for (i = 0; i < ARRAY_COUNT(SpriteInstances); i++) { if (SpriteInstances[i].spriteIndex == 0) { break; @@ -924,7 +930,7 @@ s32 spr_update_sprite(s32 spriteInstanceID, s32 animID, f32 timeScale) { s32 palID; s32 i = spriteInstanceID & 0xFF; s32 animIndex = animID & 0xFF; - + animData = SpriteInstances[i].spriteData; compList = SpriteInstances[i].componentList; animList = &animData->animListStart[animIndex]; diff --git a/src/state_file_select.c b/src/state_file_select.c index 497b0cbe15..51692153f2 100644 --- a/src/state_file_select.c +++ b/src/state_file_select.c @@ -14,7 +14,7 @@ NUPiOverlaySegment D_8007798C = { .textStart = filemenu_TEXT_START, .textEnd = filemenu_TEXT_END, .dataStart = filemenu_DATA_START, - .dataEnd = filemenu_DATA_END, + .dataEnd = filemenu_RODATA_END, .bssStart = filemenu_BSS_START, .bssEnd = filemenu_BSS_END, }; diff --git a/src/state_pause.c b/src/state_pause.c index 3aad8990ad..d8336c3501 100644 --- a/src/state_pause.c +++ b/src/state_pause.c @@ -14,7 +14,7 @@ NUPiOverlaySegment D_8007795C = { .textStart = pause_TEXT_START, .textEnd = pause_TEXT_END, .dataStart = pause_DATA_START, - .dataEnd = pause_DATA_END, + .dataEnd = pause_RODATA_END, .bssStart = pause_BSS_START, .bssEnd = pause_BSS_END, }; diff --git a/src/world/action/hit_lava.c b/src/world/action/hit_lava.c index 685fa36333..064639edd0 100644 --- a/src/world/action/hit_lava.c +++ b/src/world/action/hit_lava.c @@ -23,7 +23,6 @@ void action_update_hit_lava(void) { f32 componentSpeed; s32 completeAxes; // number of axes along which the 'return motion' is complete - static s32 pad[2]; // curious static f32 LaunchVelocity; static f32 LaunchInterpPhase; // used to interp launch velocity static f32 ReturnAngle; diff --git a/tools/splat/.gitrepo b/tools/splat/.gitrepo index 763bc0fe37..65bc3e3d4f 100644 --- a/tools/splat/.gitrepo +++ b/tools/splat/.gitrepo @@ -6,7 +6,7 @@ [subrepo] remote = https://github.com/ethteck/splat.git branch = master - commit = b681843a788a48824ca60d5063a8f6494e444ddc - parent = de8a76e84bb952636a1caee8408417bcedf4a326 + commit = 6c02ec5ecdc1c742ce8ad6cd57480ad65bc802cd + parent = c09278de7a93519feec010692b0be377d5e860de method = merge cmdver = 0.4.3 diff --git a/tools/splat/CHANGELOG.md b/tools/splat/CHANGELOG.md index 53e084737d..81ad1fb905 100644 --- a/tools/splat/CHANGELOG.md +++ b/tools/splat/CHANGELOG.md @@ -1,5 +1,20 @@ # splat Release Notes +### 0.10.0: The Linker Script Update + +Linker scripts splat produces are now capable of being shift-friendly. Rom addresses will automatically shift, and ram addresses will still be hard-coded unless the new segment option `follows_vram` is specified. The value of this option should be the name of a segment (a) that this segment (b) should follow in memory. If a grows or shrinks, b's start address will also do so to accommodate it. + +The `enable_ld_alignment_hack` option and corresponding behavior has been removed. This proved to add too much complexity to the linker script generation code and was becoming quite a burden to keep dealing with. Apologies for any inconvenience this may cause. But trust me: in the long run, it's good you won't be depending on that madness. + +### 0.9.5 +* Changes have been made to the linker script such that it is more shiftable. Rather than setting the rom position to hard-coded addresses, it increments the position by the size of the previous segment. Some projects may experience some alignment-related issues after this change. If specified, the new segment option `align: n` will add an `ALIGN(n)` directive for that section's linker segment. + +### 0.9.4 +* A new linker script section is now automatically created when the .bss section begins, using NOLOAD as opposed to the previous hacky rom rewinding we were previously doing. Additionally, `ld_section_labels` now includes `.rodata` by default. + +### 0.9.3 +* Added `add_set_gp_64` option (true by default), which allows controlling whether to add ".set gp=64" to asm/hasm files + ### 0.9.2 * Added "palette" argument to ci4/ci8 segments so that segments' palettes can be manually specified diff --git a/tools/splat/segtypes/common/code.py b/tools/splat/segtypes/common/code.py index 8f68e79aed..837caaeef2 100644 --- a/tools/splat/segtypes/common/code.py +++ b/tools/splat/segtypes/common/code.py @@ -2,7 +2,6 @@ from collections import OrderedDict from typing import Dict, List, Optional, Tuple import typing from segtypes.common.group import CommonSegGroup -from segtypes.common.linker_section import dotless_type from segtypes.segment import RomAddr, Segment from util import log, options from util.range import Range @@ -10,6 +9,11 @@ from util.symbols import Symbol CODE_TYPES = ["c", "asm", "hasm"] + +def dotless_type(type: str) -> str: + return type[1:] if type[0] == "." else type + + # code group class CommonSegCode(CommonSegGroup): def __init__( @@ -50,6 +54,7 @@ class CommonSegCode(CommonSegGroup): self.jtbl_glabels_to_add = set() self.jumptables: Dict[int, Tuple[int, int]] = {} self.rodata_syms: Dict[int, List[Symbol]] = {} + self.align = 0x10 @property def needs_symbols(self) -> bool: diff --git a/tools/splat/segtypes/common/group.py b/tools/splat/segtypes/common/group.py index 029c6734ba..f53feea0aa 100644 --- a/tools/splat/segtypes/common/group.py +++ b/tools/splat/segtypes/common/group.py @@ -1,5 +1,4 @@ from typing import List, Optional -from segtypes.common.linker_section import dotless_type from segtypes.common.segment import CommonSegment from segtypes.segment import RomAddr, Segment from util import log diff --git a/tools/splat/segtypes/common/linker_section.py b/tools/splat/segtypes/common/linker_section.py deleted file mode 100644 index c54639026b..0000000000 --- a/tools/splat/segtypes/common/linker_section.py +++ /dev/null @@ -1,12 +0,0 @@ -from dataclasses import dataclass - - -def dotless_type(type: str) -> str: - return type[1:] if type[0] == "." else type - - -@dataclass -class LinkerSection: - name: str - started: bool = False - ended: bool = False diff --git a/tools/splat/segtypes/linker_entry.py b/tools/splat/segtypes/linker_entry.py index 8a9cf24138..6d53808015 100644 --- a/tools/splat/segtypes/linker_entry.py +++ b/tools/splat/segtypes/linker_entry.py @@ -1,7 +1,7 @@ -from typing import Union, List +from dataclasses import dataclass +from typing import Dict, Optional, OrderedDict, Union, List from pathlib import Path from segtypes.common.data import CommonSegData -from segtypes.common.linker_section import LinkerSection, dotless_type from segtypes.n64.img import N64SegImg from segtypes.n64.palette import N64SegPalette from util import options @@ -70,6 +70,19 @@ def get_segment_cname(segment: Segment) -> str: return to_cname(name) +@dataclass +class LinkerSection: + name: str + started: bool = False + ended: bool = False + + @property + def section_type(self) -> str: + if self.name == ".rdata": + return ".rodata" + return self.name + + class LinkerEntry: def __init__( self, segment: Segment, src_paths: List[Path], object_path: Path, section: str @@ -84,6 +97,13 @@ class LinkerEntry: else: self.object_path = path_to_object_path(object_path) + @property + def section_type(self) -> str: + if self.section == ".rdata": + return ".rodata" + else: + return self.section + class LinkerWriter: def __init__(self): @@ -98,64 +118,78 @@ class LinkerWriter: self._writeln("SECTIONS") self._begin_block() + self._writeln(f"__romPos = 0;") if options.get_gp() is not None: self._writeln("_gp = " + f"0x{options.get_gp():X};") - def add(self, segment: Segment): + # Adds all the entries of a segment to the linker script buffer + def add(self, segment: Segment, next_segment: Optional[Segment]): entries = segment.get_linker_entries() self.entries.extend(entries) - self._begin_segment(segment) - seg_name = get_segment_cname(segment) - section_labels = [ - LinkerSection(l) - for l in options.ld_section_labels() - if l in options.get_section_order() - ] + section_labels: OrderedDict[str, LinkerSection] = OrderedDict( + { + l: LinkerSection(l) + for l in options.get_section_order() + if l in options.ld_section_labels() + } + ) + + # Start the first linker section + + self._write_symbol(f"{seg_name}_ROM_START", "__romPos") + + if entries[0].section_type == ".bss": + self._begin_bss_segment(segment, is_first=True) + self._write_symbol(f"{seg_name}_BSS_START", ".") + if ".bss" in section_labels: + section_labels[".bss"].started = True + else: + self._begin_segment(segment) + + last_seen_sections: Dict[LinkerEntry, str] = {} + + # Find where sections are last seen + for entry in reversed(entries): + if ( + entry.section_type in section_labels.keys() + and entry.section_type not in last_seen_sections.values() + ): + last_seen_sections[entry] = entry.section_type - force_new_section = False cur_section = None - - for i, entry in enumerate(entries): + prev_section = None + for entry in entries: + entering_bss = False + leaving_bss = False cur_section = entry.section - if cur_section == "linker": # TODO: isinstance is preferable + if cur_section == "linker": self._end_block() self._begin_segment(entry.segment) continue elif cur_section == "linker_offset": - self._write_symbol( - f"{get_segment_cname(entry.segment)}_OFFSET", - f". - {get_segment_cname(segment)}_ROM_START", - ) + self._write_symbol(f"{get_segment_cname(entry.segment)}_OFFSET", f".") continue - for i, section in enumerate(section_labels): - if not section.started and section.name == cur_section: - if i > 0: - if not section_labels[i - 1].ended: - section_labels[i - 1].ended = True - self._write_symbol( - f"{seg_name}{section_labels[i - 1].name.upper()}_END", - ".", - ) - section.started = True - self._write_symbol(f"{seg_name}{section.name.upper()}_START", ".") + for i, section in enumerate(section_labels.values()): + # If we haven't seen this section yet + if not section.started and section.section_type == entry.section_type: + if prev_section == ".bss": + leaving_bss = True + elif cur_section == ".bss": + entering_bss = True - if options.enable_ld_alignment_hack(): - start = entry.segment.rom_start - if isinstance(start, int): - # Create new sections for non-subalign alignment (hack) - if start % 0x10 != 0 and i != 0 or force_new_section: - self._end_block() - self._begin_segment(entry.segment, mid_segment=True) - force_new_section = False - - if start % 0x10 != 0 and i != 0: - force_new_section = True + if not ( + entering_bss or leaving_bss + ): # Don't write a START symbol if we are about to end the section + self._write_symbol( + f"{seg_name}{entry.section_type.upper()}_START", "." + ) + section_labels[entry.section_type].started = True if ( entry.object_path @@ -170,24 +204,45 @@ class LinkerWriter: ) self._write_symbol(path_cname, ".") - # Write out manual entries for images inside .data segments - seg = entry.segment - if isinstance(seg, CommonSegData): - for subseg in seg.subsegments: - if isinstance(subseg, N64SegImg): - self._write_symbol( - get_segment_cname(subseg), f"0x{subseg.rom_start:X}" - ) + # Create new linker section for BSS + if entering_bss or leaving_bss: + # If this is the last entry of its type, add the END marker for the section we're ending + if entry in last_seen_sections and section_labels[entry.section_type].started: + self._write_symbol( + f"{seg_name}{last_seen_sections[entry].upper()}_END", "." + ) + section_labels[last_seen_sections[entry]].ended = True - self._writeln(f"{entry.object_path}({cur_section});") + self._end_block() - for section in section_labels: - if section.started and not section.ended: - self._write_symbol( - f"{seg_name}_{dotless_type(section.name).upper()}_END", "." - ) + if entering_bss: + self._begin_bss_segment(segment) + else: + self._begin_segment(segment) - self._end_segment(segment) + self._write_symbol(f"{seg_name}{entry.section_type.upper()}_START", ".") + section_labels[cur_section].started = True + + # Write THIS linker entry + self._writeln(f"{entry.object_path}({cur_section});") + else: + # Write THIS linker entry + self._writeln(f"{entry.object_path}({cur_section});") + + # If this is the last entry of its type, add the END marker for the section we're ending + if entry in last_seen_sections: + self._write_symbol(f"{seg_name}{cur_section.upper()}_END", ".") + section_labels[cur_section].ended = True + + prev_section = cur_section + + # End all un-ended sections + for section in section_labels.values(): + if (section.started and not section.ended): + self._write_symbol(f"{seg_name}_{section.name.upper()}_END", ".") + + all_bss = all(e.section == ".bss" for e in entries) + self._end_segment(segment, next_segment, all_bss) def save_linker_script(self): if self.linker_discard_section: @@ -245,25 +300,14 @@ class LinkerWriter: if symbol not in self.symbols: self.symbols.append(symbol) - def _begin_segment(self, segment: Segment, mid_segment=False): - # force location if not shiftable/auto - if not self.shiftable and isinstance(segment.rom_start, int): - self._writeln(f"__romPos = 0x{segment.rom_start:X};") + def _begin_segment(self, segment: Segment): + if segment.follows_vram_segment: + vram_str = get_segment_cname(segment.follows_vram_segment) + "_VRAM_END " else: - # TODO: align 0x10, preferably - pass - - self._writeln(f". = __romPos;") - - vram = segment.vram_start - vram_str = f"0x{vram:X} " if isinstance(vram, int) else "" + vram_str = f"0x{segment.vram_start:X} " if isinstance(segment.vram_start, int) else "" name = get_segment_cname(segment) - if mid_segment: - name += to_cname(segment.type) - - self._write_symbol(f"{name}_ROM_START", "__romPos") self._write_symbol(f"{name}_VRAM", f"ADDR(.{name})") self._writeln( @@ -271,21 +315,42 @@ class LinkerWriter: ) self._begin_block() - def _end_segment(self, segment: Segment): + def _begin_bss_segment(self, segment: Segment, is_first: bool = False): + if segment.follows_vram_segment: + vram_str = get_segment_cname(segment.follows_vram_segment) + "_VRAM_END " + else: + vram_str = f"0x{segment.vram_start:X} " if isinstance(segment.vram_start, int) else "" + + name = get_segment_cname(segment) + "_bss" + + self._write_symbol(f"{name}_VRAM", f"ADDR(.{name})") + + if is_first: + addr_str = vram_str + "(NOLOAD)" + else: + addr_str = "(NOLOAD)" + + self._writeln(f".{name} {addr_str} : SUBALIGN({segment.subalign})") + self._begin_block() + + def _end_segment( + self, segment: Segment, next_segment: Optional[Segment] = None, all_bss=False + ): self._end_block() name = get_segment_cname(segment) - # force end if not shiftable/auto - if ( - not self.shiftable - and isinstance(segment.rom_start, int) - and isinstance(segment.rom_end, int) - ): - self._write_symbol(f"{name}_ROM_END", segment.rom_end) - self._writeln(f"__romPos = 0x{segment.rom_end:X};") - else: + if not all_bss: self._writeln(f"__romPos += SIZEOF(.{name});") - self._write_symbol(f"{name}_ROM_END", "__romPos") + + # Align directive + if segment.align: + self._writeln( + f"__romPos = (__romPos + {segment.align - 1}) & ~{segment.align - 1}; /* align {segment.align} */" + ) + + self._write_symbol(f"{name}_ROM_END", "__romPos") + + self._write_symbol(f"{name}_VRAM_END", ".") self._writeln("") diff --git a/tools/splat/segtypes/n64/asm.py b/tools/splat/segtypes/n64/asm.py index 6db27bfd32..898ca36b0d 100644 --- a/tools/splat/segtypes/n64/asm.py +++ b/tools/splat/segtypes/n64/asm.py @@ -13,7 +13,8 @@ class N64SegAsm(CommonSegAsm): ret.append("# assembler directives") ret.append(".set noat # allow manual use of $at") ret.append(".set noreorder # don't insert nops after branches") - ret.append(".set gp=64 # allow use of 64-bit general purpose registers") + if options.get_add_set_gp_64(): + ret.append(".set gp=64 # allow use of 64-bit general purpose registers") ret.append("") preamble = options.get_generated_s_preamble() if preamble: diff --git a/tools/splat/segtypes/n64/hasm.py b/tools/splat/segtypes/n64/hasm.py index 5f9e607986..a271075f66 100644 --- a/tools/splat/segtypes/n64/hasm.py +++ b/tools/splat/segtypes/n64/hasm.py @@ -13,7 +13,8 @@ class N64SegHasm(CommonSegHasm): ret.append("# assembler directives") ret.append(".set noat # allow manual use of $at") ret.append(".set noreorder # don't insert nops after branches") - ret.append(".set gp=64 # allow use of 64-bit general purpose registers") + if options.get_add_set_gp_64(): + ret.append(".set gp=64 # allow use of 64-bit general purpose registers") ret.append("") preamble = options.get_generated_s_preamble() if preamble: diff --git a/tools/splat/segtypes/segment.py b/tools/splat/segtypes/segment.py index c4a274fc39..c5f626a76e 100644 --- a/tools/splat/segtypes/segment.py +++ b/tools/splat/segtypes/segment.py @@ -23,6 +23,12 @@ def parse_segment_vram(segment: Union[dict, list]) -> Optional[int]: return None +def parse_segment_align(segment: Union[dict, list]) -> Optional[int]: + if isinstance(segment, dict) and "align" in segment: + return int(segment["align"]) + return None + + def parse_segment_subalign(segment: Union[dict, list]) -> int: default = options.get_subalign() if isinstance(segment, dict): @@ -37,6 +43,12 @@ def parse_segment_section_order(segment: Union[dict, list]) -> List[str]: return default +def parse_segment_follows_vram(segment: Union[dict, list]) -> Optional[str]: + if isinstance(segment, dict): + return segment.get("follows_vram", None) + return None + + class Segment: require_unique_name = True @@ -163,6 +175,7 @@ class Segment: self.vram_start = vram_start self.extract = extract + self.align: Optional[int] = None self.given_subalign = given_subalign self.exclusive_ram_id = exclusive_ram_id self.given_dir = given_dir @@ -170,12 +183,14 @@ class Segment: int, List[Symbol] ] = {} # Symbols known to be in this segment self.given_section_order: List[str] = options.get_section_order() + self.follows_vram: Optional[str] = None self.given_symbol_name_format = symbol_name_format self.given_symbol_name_format_no_rom = symbol_name_format_no_rom self.parent: Optional[Segment] = None self.sibling: Optional[Segment] = None + self.follows_vram_segment: Optional[Segment] = None self.args: List[str] = args self.yaml = yaml @@ -233,7 +248,13 @@ class Segment: args=args, yaml=yaml, ) - cls.given_section_order = parse_segment_section_order(yaml) + ret.given_section_order = parse_segment_section_order(yaml) + + if not ret.follows_vram: + ret.follows_vram = parse_segment_follows_vram(yaml) + + if not ret.align: + ret.align = parse_segment_align(yaml) return ret @property diff --git a/tools/splat/split.py b/tools/splat/split.py index fbe8eb852b..d76ee7f225 100755 --- a/tools/splat/split.py +++ b/tools/splat/split.py @@ -1,7 +1,7 @@ #! /usr/bin/env python3 import hashlib -from typing import Dict, List, Union, Set, Any +from typing import Dict, List, Optional, Union, Set, Any import argparse import spimdisasm import rabbitizer @@ -20,7 +20,7 @@ from util.symbols import Symbol from intervaltree import Interval, IntervalTree -VERSION = "0.9.2" +VERSION = "0.10.0" parser = argparse.ArgumentParser( description="Split a rom given a rom, a config, and output directory" @@ -57,7 +57,7 @@ def initialize_segments(config_segments: Union[dict, list]) -> List[Segment]: segment_roms = IntervalTree() segment_rams = IntervalTree() - seen_segment_names: Set[str] = set() + segments_by_name: Dict[str, Segment] = {} ret = [] for i, seg_yaml in enumerate(config_segments): @@ -77,10 +77,10 @@ def initialize_segments(config_segments: Union[dict, list]) -> List[Segment]: ) if segment.require_unique_name: - if segment.name in seen_segment_names: + if segment.name in segments_by_name: log.error(f"segment name '{segment.name}' is not unique") - seen_segment_names.add(segment.name) + segments_by_name[segment.name] = segment ret.append(segment) if ( @@ -96,6 +96,14 @@ def initialize_segments(config_segments: Union[dict, list]) -> List[Segment]: ): segment_rams.addi(segment.vram_start, segment.vram_end, segment) + for segment in ret: + if segment.follows_vram: + if segment.follows_vram not in segments_by_name: + log.error( + f"segment '{segment.name}' follows_vram segment'{segment.follows_vram}' does not exist" + ) + segment.follows_vram_segment = segments_by_name[segment.follows_vram] + return ret @@ -375,12 +383,17 @@ def main(config_path, base_dir, target_path, modes, verbose, use_cache=True): if options.mode_active("ld"): global linker_writer linker_writer = LinkerWriter() - for segment in tqdm.tqdm( - all_segments, - total=len(all_segments), - desc=f"Writing linker script {brief_seg_name(segment, 20)}", + for i, segment in enumerate( + tqdm.tqdm( + all_segments, + total=len(all_segments), + desc=f"Writing linker script {brief_seg_name(segment, 20)}", + ) ): - linker_writer.add(segment) + next_segment: Optional[Segment] = None + if i < len(all_segments) - 1: + next_segment = all_segments[i + 1] + linker_writer.add(segment, next_segment) linker_writer.save_linker_script() linker_writer.save_symbol_header() diff --git a/tools/splat/util/options.py b/tools/splat/util/options.py index d16e76792b..5272f9503c 100644 --- a/tools/splat/util/options.py +++ b/tools/splat/util/options.py @@ -256,14 +256,9 @@ def linker_discard_section() -> bool: return opts.get("linker_discard_section", True) -# Determines whether to use a silly hack in the linker script to maybe help enforce alignment (DO NOT USE?) -def enable_ld_alignment_hack() -> bool: - return opts.get("enable_ld_alignment_hack", False) - - # Determines the list of section labels that are to be added to the linker script def ld_section_labels() -> List[str]: - return opts.get("ld_section_labels", [".text", ".data", ".bss"]) + return opts.get("ld_section_labels", [".text", ".data", ".rodata", ".bss"]) ################################################################################ @@ -364,6 +359,11 @@ def get_mips_abi_float_regs() -> str: return opts.get("mips_abi_float_regs", "numeric") +# Determines whether to ad ".set gp=64 to asm/hasm files" +def get_add_set_gp_64() -> bool: + return opts.get("add_set_gp_64", True) + + ################################################################################ # N64-specific options ################################################################################ diff --git a/ver/jp/splat.yaml b/ver/jp/splat.yaml index 0f2df47a08..f35b003cee 100644 --- a/ver/jp/splat.yaml +++ b/ver/jp/splat.yaml @@ -228,5 +228,5 @@ segments: - [0x4AC70, c, jp/4AC70] - [0x4E580, bin] - [0x1E00000, pm_map_data, mapfs] - - [0x027BCB14, bin] + - [0x27BCB14, bin] - [0x2800000] diff --git a/ver/us/asm/data/A2930.data.s b/ver/us/asm/data/A2930.data.s deleted file mode 100644 index d45fe90592..0000000000 --- a/ver/us/asm/data/A2930.data.s +++ /dev/null @@ -1,66 +0,0 @@ -.include "macro.inc" - -.section .data - -dlabel D_80109480 -.word 0x00000000 - -dlabel D_80109484 -.float 0.0 - -dlabel D_80109488 -.short 0x0004, 0x0000 - -dlabel D_8010948C -.word 0x00000000 - -dlabel D_80109490 -.short 0x0004 - -dlabel D_80109492 -.short 0x0005 - -dlabel D_80109494 -.word 0x00000000 - -dlabel D_80109498 -.word 0x00000000 - -dlabel D_8010949C -.short 0x0004, 0x0000 - -dlabel D_801094A0 -.word 0x00000000 - -dlabel D_801094A4 -.short 0x0004, 0x0000 - -dlabel D_801094A8 -.word 0x00000000 - -dlabel D_801094AC -.short 0x0004 - -dlabel D_801094AE -.short 0x0004 - -dlabel D_801094B0 -.word 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000204, 0x02000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000306, 0x03000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010419, 0x04010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0002184E, 0x18020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01044E8F, 0x4E040100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x02187FAF, 0x7F180200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x044EAFFF, 0xAF4E0401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0x187FDFFF, 0xDF7F1802, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000105, 0x5EAFFFFF, 0xFFAF5E05, 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0001043E, 0x8FFFFFFF, 0xFFFF8F3E, 0x04010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01043D8F, 0xDFFFFFFF, 0xFFFFDF8F, 0x3D040100, 0x00000000, 0x00000000, 0x00000000, 0x00000102, 0x064E8FDF, 0xFFFFFFFF, 0xFFFFFFDF, 0x8F4E0602, 0x01000000, 0x00000000, 0x00000000, 0x01020419, 0x5F9FFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFF9F5F19, 0x04020100, 0x00000000, 0x00010203, 0x04184E7F, 0xAFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFAF7F, 0x4E180403, 0x02010000, 0x0002194E, 0x5F7FAFDF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFDF, 0xAF7F5F4E, 0x19020000 - -dlabel D_801096B0 -.word 0x028001E0, 0x01FF0000, 0x028001E0, 0x01FF0000 - -dlabel D_801096C0 -.word 0x00000005, 0x00000000, 0x0400FC00, 0xFFFFFF00, 0xFFFB0000, 0x00000000, 0xFC000400, 0xFFFFFF00, 0x00000000, 0x00000000, 0x04000400, 0xFFFFFFFF, 0x0000FFFB, 0x00000000, 0x04000C00, 0xFFFFFF00, 0x00050000, 0x00000000, 0x0C000400, 0xFFFFFF00 - -dlabel D_80109710 -.word 0xE7000000, 0x00000000, 0xD7000002, 0xFFFFFFFF, 0xE3000A01, 0x00100000, 0xE3000C00, 0x00000000, 0xE3000D01, 0x00000000, 0xE3000F00, 0x00000000, 0xE3001001, 0x00000000, 0xE3001201, 0x00002000, 0xE2001D00, 0x00000000, 0xE3001402, 0x00000C00, 0xE200001C, 0x0C184B50, 0xFC161209, 0x540DC93F, 0xFC16120B, 0x540DC93F, 0xE3001001, 0x00000000, 0xFD68001F, D_801094B0, 0xF5680800, 0x070D0250, 0xE6000000, 0x00000000, 0xF4000000, 0x0707C03C, 0xE7000000, 0x00000000, 0xF5680800, 0x000D0250, 0xF2000000, 0x0007C03C, 0xF2000000, 0x0007C07C, 0xD9FDF9FF, 0x00000000, 0xD9FFFFFF, 0x00200004, 0xDF000000, 0x00000000 - -dlabel D_801097D8 -.word 0x0100500A, D_801096C0, 0x06000204, 0x00020604, 0x06040608, 0x00000408, 0xE7000000, 0x00000000, 0xDF000000, 0x00000000 - -dlabel D_80109800 -.word 0x285A5148, 0x413B352F, 0x2B26221F, 0x1C191614, 0x12100F0D, 0x0C0A0908, 0x07070605, 0x05040000 - -dlabel D_80109820 -.word 0xF769EF57, 0x11570969, 0x007AE645, 0x1A45DD34, 0x2334CA31, 0xBAFFC8F1, 0x00C838F1, 0x46FF3631, 0xC4DEEFBF, 0x11BF3CDE, 0x550D4A2E, 0x631B5D2B, 0x0C210C16, 0x18161821, 0x0C0A180A, 0x182DE821, 0xE816E82D, 0x7128C1CB, 0xBEB7B62E, 0xA32B23B6, 0x34AD0C2D, 0xF416F421, 0xE80AF40A, 0xF42DCCAD, 0xDDB6BAA4, 0xAB0D9D1B, 0x8F283FCB, 0x42B746A4 diff --git a/ver/us/asm/nonmatchings/891b0_len_fb0/func_800F0248.s b/ver/us/asm/nonmatchings/891b0_len_fb0/func_800F0248.s deleted file mode 100644 index f8bf6cd364..0000000000 --- a/ver/us/asm/nonmatchings/891b0_len_fb0/func_800F0248.s +++ /dev/null @@ -1,154 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_800F0248 -/* 896F8 800F0248 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* 896FC 800F024C AFB00020 */ sw $s0, 0x20($sp) -/* 89700 800F0250 3C108011 */ lui $s0, %hi(gPlayerStatus) -/* 89704 800F0254 2610EFC8 */ addiu $s0, $s0, %lo(gPlayerStatus) -/* 89708 800F0258 AFBF0028 */ sw $ra, 0x28($sp) -/* 8970C 800F025C AFB10024 */ sw $s1, 0x24($sp) -/* 89710 800F0260 F7B80040 */ sdc1 $f24, 0x40($sp) -/* 89714 800F0264 F7B60038 */ sdc1 $f22, 0x38($sp) -/* 89718 800F0268 F7B40030 */ sdc1 $f20, 0x30($sp) -/* 8971C 800F026C 820300B4 */ lb $v1, 0xb4($s0) -/* 89720 800F0270 24020003 */ addiu $v0, $zero, 3 -/* 89724 800F0274 1462001B */ bne $v1, $v0, .L800F02E4 -/* 89728 800F0278 24020001 */ addiu $v0, $zero, 1 -/* 8972C 800F027C 860300C0 */ lh $v1, 0xc0($s0) -/* 89730 800F0280 14620018 */ bne $v1, $v0, .L800F02E4 -/* 89734 800F0284 24020005 */ addiu $v0, $zero, 5 -/* 89738 800F0288 3C118011 */ lui $s1, %hi(D_80109492) -/* 8973C 800F028C 26319492 */ addiu $s1, $s1, %lo(D_80109492) -/* 89740 800F0290 86230000 */ lh $v1, ($s1) -/* 89744 800F0294 14620013 */ bne $v1, $v0, .L800F02E4 -/* 89748 800F0298 00000000 */ nop -/* 8974C 800F029C C60C0028 */ lwc1 $f12, 0x28($s0) -/* 89750 800F02A0 8E060030 */ lw $a2, 0x30($s0) -/* 89754 800F02A4 C600002C */ lwc1 $f0, 0x2c($s0) -/* 89758 800F02A8 3C014160 */ lui $at, 0x4160 -/* 8975C 800F02AC 44817000 */ mtc1 $at, $f14 -/* 89760 800F02B0 3C108011 */ lui $s0, %hi(D_8010948C) -/* 89764 800F02B4 2610948C */ addiu $s0, $s0, %lo(D_8010948C) -/* 89768 800F02B8 8E070000 */ lw $a3, ($s0) -/* 8976C 800F02BC 0C01BEE4 */ jal fx_flower_splash -/* 89770 800F02C0 460E0380 */ add.s $f14, $f0, $f14 -/* 89774 800F02C4 C6000000 */ lwc1 $f0, ($s0) -/* 89778 800F02C8 3C01420C */ lui $at, 0x420c -/* 8977C 800F02CC 44816000 */ mtc1 $at, $f12 -/* 89780 800F02D0 0C00A6C9 */ jal clamp_angle -/* 89784 800F02D4 460C0300 */ add.s $f12, $f0, $f12 -/* 89788 800F02D8 E6000000 */ swc1 $f0, ($s0) -/* 8978C 800F02DC 0803C11C */ j .L800F0470 -/* 89790 800F02E0 A6200000 */ sh $zero, ($s1) -.L800F02E4: -/* 89794 800F02E4 3C038011 */ lui $v1, %hi(D_80109492) -/* 89798 800F02E8 24639492 */ addiu $v1, $v1, %lo(D_80109492) -/* 8979C 800F02EC 94620000 */ lhu $v0, ($v1) -/* 897A0 800F02F0 24420001 */ addiu $v0, $v0, 1 -/* 897A4 800F02F4 A4620000 */ sh $v0, ($v1) -/* 897A8 800F02F8 00021400 */ sll $v0, $v0, 0x10 -/* 897AC 800F02FC 00021403 */ sra $v0, $v0, 0x10 -/* 897B0 800F0300 28420006 */ slti $v0, $v0, 6 -/* 897B4 800F0304 14400002 */ bnez $v0, .L800F0310 -/* 897B8 800F0308 24020005 */ addiu $v0, $zero, 5 -/* 897BC 800F030C A4620000 */ sh $v0, ($v1) -.L800F0310: -/* 897C0 800F0310 920200B4 */ lbu $v0, 0xb4($s0) -/* 897C4 800F0314 2442FFFF */ addiu $v0, $v0, -1 -/* 897C8 800F0318 2C420002 */ sltiu $v0, $v0, 2 -/* 897CC 800F031C 1440000A */ bnez $v0, .L800F0348 -/* 897D0 800F0320 3C02FF00 */ lui $v0, 0xff00 -/* 897D4 800F0324 8E0300B4 */ lw $v1, 0xb4($s0) -/* 897D8 800F0328 3442FF00 */ ori $v0, $v0, 0xff00 -/* 897DC 800F032C 00621824 */ and $v1, $v1, $v0 -/* 897E0 800F0330 3C021A00 */ lui $v0, 0x1a00 -/* 897E4 800F0334 10620004 */ beq $v1, $v0, .L800F0348 -/* 897E8 800F0338 00000000 */ nop -/* 897EC 800F033C 3C018011 */ lui $at, %hi(D_80109490) -/* 897F0 800F0340 0803C11C */ j .L800F0470 -/* 897F4 800F0344 A4209490 */ sh $zero, %lo(D_80109490)($at) -.L800F0348: -/* 897F8 800F0348 3C048011 */ lui $a0, %hi(D_80109490) -/* 897FC 800F034C 24849490 */ addiu $a0, $a0, %lo(D_80109490) -/* 89800 800F0350 94820000 */ lhu $v0, ($a0) -/* 89804 800F0354 24430001 */ addiu $v1, $v0, 1 -/* 89808 800F0358 00021400 */ sll $v0, $v0, 0x10 -/* 8980C 800F035C 18400044 */ blez $v0, .L800F0470 -/* 89810 800F0360 A4830000 */ sh $v1, ($a0) -/* 89814 800F0364 C60C0084 */ lwc1 $f12, 0x84($s0) -/* 89818 800F0368 A4800000 */ sh $zero, ($a0) -/* 8981C 800F036C 0C00A6C9 */ jal clamp_angle -/* 89820 800F0370 46006307 */ neg.s $f12, $f12 -/* 89824 800F0374 3C0140C9 */ lui $at, 0x40c9 -/* 89828 800F0378 34210FD0 */ ori $at, $at, 0xfd0 -/* 8982C 800F037C 44811000 */ mtc1 $at, $f2 -/* 89830 800F0380 00000000 */ nop -/* 89834 800F0384 46020002 */ mul.s $f0, $f0, $f2 -/* 89838 800F0388 00000000 */ nop -/* 8983C 800F038C 27A50018 */ addiu $a1, $sp, 0x18 -/* 89840 800F0390 3C0143B4 */ lui $at, 0x43b4 -/* 89844 800F0394 44816000 */ mtc1 $at, $f12 -/* 89848 800F0398 27A6001C */ addiu $a2, $sp, 0x1c -/* 8984C 800F039C 0C00A82D */ jal sin_cos_rad -/* 89850 800F03A0 460C0303 */ div.s $f12, $f0, $f12 -/* 89854 800F03A4 860200B2 */ lh $v0, 0xb2($s0) -/* 89858 800F03A8 C7A20018 */ lwc1 $f2, 0x18($sp) -/* 8985C 800F03AC 44822000 */ mtc1 $v0, $f4 -/* 89860 800F03B0 00000000 */ nop -/* 89864 800F03B4 46802120 */ cvt.s.w $f4, $f4 -/* 89868 800F03B8 46022082 */ mul.s $f2, $f4, $f2 -/* 8986C 800F03BC 00000000 */ nop -/* 89870 800F03C0 C7A0001C */ lwc1 $f0, 0x1c($sp) -/* 89874 800F03C4 46002102 */ mul.s $f4, $f4, $f0 -/* 89878 800F03C8 00000000 */ nop -/* 8987C 800F03CC 3C01BECC */ lui $at, 0xbecc -/* 89880 800F03D0 3421CCCD */ ori $at, $at, 0xcccd -/* 89884 800F03D4 44810000 */ mtc1 $at, $f0 -/* 89888 800F03D8 00000000 */ nop -/* 8988C 800F03DC 46001082 */ mul.s $f2, $f2, $f0 -/* 89890 800F03E0 00000000 */ nop -/* 89894 800F03E4 46002102 */ mul.s $f4, $f4, $f0 -/* 89898 800F03E8 00000000 */ nop -/* 8989C 800F03EC C6000028 */ lwc1 $f0, 0x28($s0) -/* 898A0 800F03F0 46020600 */ add.s $f24, $f0, $f2 -/* 898A4 800F03F4 C6000030 */ lwc1 $f0, 0x30($s0) -/* 898A8 800F03F8 C602002C */ lwc1 $f2, 0x2c($s0) -/* 898AC 800F03FC 46040580 */ add.s $f22, $f0, $f4 -/* 898B0 800F0400 3C014178 */ lui $at, 0x4178 -/* 898B4 800F0404 44810000 */ mtc1 $at, $f0 -/* 898B8 800F0408 2404000A */ addiu $a0, $zero, 0xa -/* 898BC 800F040C 0C00A67F */ jal rand_int -/* 898C0 800F0410 46001500 */ add.s $f20, $f2, $f0 -/* 898C4 800F0414 0000202D */ daddu $a0, $zero, $zero -/* 898C8 800F0418 44821000 */ mtc1 $v0, $f2 -/* 898CC 800F041C 00000000 */ nop -/* 898D0 800F0420 468010A0 */ cvt.s.w $f2, $f2 -/* 898D4 800F0424 C6000084 */ lwc1 $f0, 0x84($s0) -/* 898D8 800F0428 3C108011 */ lui $s0, %hi(D_80109494) -/* 898DC 800F042C 26109494 */ addiu $s0, $s0, %lo(D_80109494) -/* 898E0 800F0430 4405C000 */ mfc1 $a1, $f24 -/* 898E4 800F0434 4407B000 */ mfc1 $a3, $f22 -/* 898E8 800F0438 46000007 */ neg.s $f0, $f0 -/* 898EC 800F043C 46020000 */ add.s $f0, $f0, $f2 -/* 898F0 800F0440 3C0140A0 */ lui $at, 0x40a0 -/* 898F4 800F0444 44811000 */ mtc1 $at, $f2 -/* 898F8 800F0448 4406A000 */ mfc1 $a2, $f20 -/* 898FC 800F044C 46020001 */ sub.s $f0, $f0, $f2 -/* 89900 800F0450 C6020000 */ lwc1 $f2, ($s0) -/* 89904 800F0454 468010A0 */ cvt.s.w $f2, $f2 -/* 89908 800F0458 E7A20014 */ swc1 $f2, 0x14($sp) -/* 8990C 800F045C 0C01BEFC */ jal fx_flower_trail -/* 89910 800F0460 E7A00010 */ swc1 $f0, 0x10($sp) -/* 89914 800F0464 8E020000 */ lw $v0, ($s0) -/* 89918 800F0468 2C420001 */ sltiu $v0, $v0, 1 -/* 8991C 800F046C AE020000 */ sw $v0, ($s0) -.L800F0470: -/* 89920 800F0470 8FBF0028 */ lw $ra, 0x28($sp) -/* 89924 800F0474 8FB10024 */ lw $s1, 0x24($sp) -/* 89928 800F0478 8FB00020 */ lw $s0, 0x20($sp) -/* 8992C 800F047C D7B80040 */ ldc1 $f24, 0x40($sp) -/* 89930 800F0480 D7B60038 */ ldc1 $f22, 0x38($sp) -/* 89934 800F0484 D7B40030 */ ldc1 $f20, 0x30($sp) -/* 89938 800F0488 03E00008 */ jr $ra -/* 8993C 800F048C 27BD0048 */ addiu $sp, $sp, 0x48 diff --git a/ver/us/asm/nonmatchings/891b0_len_fb0/func_800F0864.s b/ver/us/asm/nonmatchings/891b0_len_fb0/func_800F0864.s deleted file mode 100644 index 960b482f81..0000000000 --- a/ver/us/asm/nonmatchings/891b0_len_fb0/func_800F0864.s +++ /dev/null @@ -1,106 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_800F0864 -/* 89D14 800F0864 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 89D18 800F0868 AFB10024 */ sw $s1, 0x24($sp) -/* 89D1C 800F086C 3C118011 */ lui $s1, %hi(gPlayerStatus) -/* 89D20 800F0870 2631EFC8 */ addiu $s1, $s1, %lo(gPlayerStatus) -/* 89D24 800F0874 AFBF0028 */ sw $ra, 0x28($sp) -/* 89D28 800F0878 AFB00020 */ sw $s0, 0x20($sp) -/* 89D2C 800F087C 922400B4 */ lbu $a0, 0xb4($s1) -/* 89D30 800F0880 2482FFFF */ addiu $v0, $a0, -1 -/* 89D34 800F0884 2C420002 */ sltiu $v0, $v0, 2 -/* 89D38 800F0888 14400013 */ bnez $v0, .L800F08D8 -/* 89D3C 800F088C 3C02FF00 */ lui $v0, 0xff00 -/* 89D40 800F0890 8E2300B4 */ lw $v1, 0xb4($s1) -/* 89D44 800F0894 3442FF00 */ ori $v0, $v0, 0xff00 -/* 89D48 800F0898 00621824 */ and $v1, $v1, $v0 -/* 89D4C 800F089C 3C021A00 */ lui $v0, 0x1a00 -/* 89D50 800F08A0 1062000D */ beq $v1, $v0, .L800F08D8 -/* 89D54 800F08A4 00041600 */ sll $v0, $a0, 0x18 -/* 89D58 800F08A8 00021E03 */ sra $v1, $v0, 0x18 -/* 89D5C 800F08AC 2402000A */ addiu $v0, $zero, 0xa -/* 89D60 800F08B0 10620003 */ beq $v1, $v0, .L800F08C0 -/* 89D64 800F08B4 00000000 */ nop -/* 89D68 800F08B8 14600004 */ bnez $v1, .L800F08CC -/* 89D6C 800F08BC 24020004 */ addiu $v0, $zero, 4 -.L800F08C0: -/* 89D70 800F08C0 8E220000 */ lw $v0, ($s1) -/* 89D74 800F08C4 04400004 */ bltz $v0, .L800F08D8 -/* 89D78 800F08C8 24020004 */ addiu $v0, $zero, 4 -.L800F08CC: -/* 89D7C 800F08CC 3C018011 */ lui $at, %hi(D_801094A4) -/* 89D80 800F08D0 0803C276 */ j .L800F09D8 -/* 89D84 800F08D4 A42294A4 */ sh $v0, %lo(D_801094A4)($at) -.L800F08D8: -/* 89D88 800F08D8 3C048011 */ lui $a0, %hi(D_801094A4) -/* 89D8C 800F08DC 248494A4 */ addiu $a0, $a0, %lo(D_801094A4) -/* 89D90 800F08E0 94820000 */ lhu $v0, ($a0) -/* 89D94 800F08E4 24430001 */ addiu $v1, $v0, 1 -/* 89D98 800F08E8 00021400 */ sll $v0, $v0, 0x10 -/* 89D9C 800F08EC 00021403 */ sra $v0, $v0, 0x10 -/* 89DA0 800F08F0 28420004 */ slti $v0, $v0, 4 -/* 89DA4 800F08F4 14400038 */ bnez $v0, .L800F09D8 -/* 89DA8 800F08F8 A4830000 */ sh $v1, ($a0) -/* 89DAC 800F08FC C62C0084 */ lwc1 $f12, 0x84($s1) -/* 89DB0 800F0900 A4800000 */ sh $zero, ($a0) -/* 89DB4 800F0904 0C00A6C9 */ jal clamp_angle -/* 89DB8 800F0908 46006307 */ neg.s $f12, $f12 -/* 89DBC 800F090C 3C0140C9 */ lui $at, 0x40c9 -/* 89DC0 800F0910 34210FD0 */ ori $at, $at, 0xfd0 -/* 89DC4 800F0914 44811000 */ mtc1 $at, $f2 -/* 89DC8 800F0918 00000000 */ nop -/* 89DCC 800F091C 46020002 */ mul.s $f0, $f0, $f2 -/* 89DD0 800F0920 00000000 */ nop -/* 89DD4 800F0924 27A6001C */ addiu $a2, $sp, 0x1c -/* 89DD8 800F0928 3C0143B4 */ lui $at, 0x43b4 -/* 89DDC 800F092C 44816000 */ mtc1 $at, $f12 -/* 89DE0 800F0930 27A50018 */ addiu $a1, $sp, 0x18 -/* 89DE4 800F0934 0C00A82D */ jal sin_cos_rad -/* 89DE8 800F0938 460C0303 */ div.s $f12, $f0, $f12 -/* 89DEC 800F093C 862200B2 */ lh $v0, 0xb2($s1) -/* 89DF0 800F0940 C7A40018 */ lwc1 $f4, 0x18($sp) -/* 89DF4 800F0944 44821000 */ mtc1 $v0, $f2 -/* 89DF8 800F0948 00000000 */ nop -/* 89DFC 800F094C 468010A0 */ cvt.s.w $f2, $f2 -/* 89E00 800F0950 46041102 */ mul.s $f4, $f2, $f4 -/* 89E04 800F0954 00000000 */ nop -/* 89E08 800F0958 C7A0001C */ lwc1 $f0, 0x1c($sp) -/* 89E0C 800F095C 46001082 */ mul.s $f2, $f2, $f0 -/* 89E10 800F0960 00000000 */ nop -/* 89E14 800F0964 3C013E4C */ lui $at, 0x3e4c -/* 89E18 800F0968 3421CCCD */ ori $at, $at, 0xcccd -/* 89E1C 800F096C 44810000 */ mtc1 $at, $f0 -/* 89E20 800F0970 00000000 */ nop -/* 89E24 800F0974 46002102 */ mul.s $f4, $f4, $f0 -/* 89E28 800F0978 00000000 */ nop -/* 89E2C 800F097C 46001082 */ mul.s $f2, $f2, $f0 -/* 89E30 800F0980 00000000 */ nop -/* 89E34 800F0984 C62C0028 */ lwc1 $f12, 0x28($s1) -/* 89E38 800F0988 46046300 */ add.s $f12, $f12, $f4 -/* 89E3C 800F098C C6200030 */ lwc1 $f0, 0x30($s1) -/* 89E40 800F0990 3C108011 */ lui $s0, %hi(D_801094A8) -/* 89E44 800F0994 261094A8 */ addiu $s0, $s0, %lo(D_801094A8) -/* 89E48 800F0998 46020000 */ add.s $f0, $f0, $f2 -/* 89E4C 800F099C C6220084 */ lwc1 $f2, 0x84($s1) -/* 89E50 800F09A0 3C013FC0 */ lui $at, 0x3fc0 -/* 89E54 800F09A4 44817000 */ mtc1 $at, $f14 -/* 89E58 800F09A8 46001087 */ neg.s $f2, $f2 -/* 89E5C 800F09AC 44060000 */ mfc1 $a2, $f0 -/* 89E60 800F09B0 C620002C */ lwc1 $f0, 0x2c($s1) -/* 89E64 800F09B4 44071000 */ mfc1 $a3, $f2 -/* 89E68 800F09B8 460E0380 */ add.s $f14, $f0, $f14 -/* 89E6C 800F09BC C6000000 */ lwc1 $f0, ($s0) -/* 89E70 800F09C0 46800020 */ cvt.s.w $f0, $f0 -/* 89E74 800F09C4 0C01BF44 */ jal fx_footprint -/* 89E78 800F09C8 E7A00010 */ swc1 $f0, 0x10($sp) -/* 89E7C 800F09CC 8E020000 */ lw $v0, ($s0) -/* 89E80 800F09D0 2C420001 */ sltiu $v0, $v0, 1 -/* 89E84 800F09D4 AE020000 */ sw $v0, ($s0) -.L800F09D8: -/* 89E88 800F09D8 8FBF0028 */ lw $ra, 0x28($sp) -/* 89E8C 800F09DC 8FB10024 */ lw $s1, 0x24($sp) -/* 89E90 800F09E0 8FB00020 */ lw $s0, 0x20($sp) -/* 89E94 800F09E4 03E00008 */ jr $ra -/* 89E98 800F09E8 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/ver/us/asm/nonmatchings/891b0_len_fb0/func_800F09EC.s b/ver/us/asm/nonmatchings/891b0_len_fb0/func_800F09EC.s deleted file mode 100644 index 29aec7f8d5..0000000000 --- a/ver/us/asm/nonmatchings/891b0_len_fb0/func_800F09EC.s +++ /dev/null @@ -1,92 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_800F09EC -/* 89E9C 800F09EC 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 89EA0 800F09F0 AFB00018 */ sw $s0, 0x18($sp) -/* 89EA4 800F09F4 3C108011 */ lui $s0, %hi(gPlayerStatus) -/* 89EA8 800F09F8 2610EFC8 */ addiu $s0, $s0, %lo(gPlayerStatus) -/* 89EAC 800F09FC AFBF001C */ sw $ra, 0x1c($sp) -/* 89EB0 800F0A00 920400B4 */ lbu $a0, 0xb4($s0) -/* 89EB4 800F0A04 2482FFFF */ addiu $v0, $a0, -1 -/* 89EB8 800F0A08 2C420002 */ sltiu $v0, $v0, 2 -/* 89EBC 800F0A0C 14400013 */ bnez $v0, .L800F0A5C -/* 89EC0 800F0A10 3C02FF00 */ lui $v0, 0xff00 -/* 89EC4 800F0A14 8E0300B4 */ lw $v1, 0xb4($s0) -/* 89EC8 800F0A18 3442FF00 */ ori $v0, $v0, 0xff00 -/* 89ECC 800F0A1C 00621824 */ and $v1, $v1, $v0 -/* 89ED0 800F0A20 3C021A00 */ lui $v0, 0x1a00 -/* 89ED4 800F0A24 1062000D */ beq $v1, $v0, .L800F0A5C -/* 89ED8 800F0A28 00041600 */ sll $v0, $a0, 0x18 -/* 89EDC 800F0A2C 00021E03 */ sra $v1, $v0, 0x18 -/* 89EE0 800F0A30 2402000A */ addiu $v0, $zero, 0xa -/* 89EE4 800F0A34 10620003 */ beq $v1, $v0, .L800F0A44 -/* 89EE8 800F0A38 00000000 */ nop -/* 89EEC 800F0A3C 14600004 */ bnez $v1, .L800F0A50 -/* 89EF0 800F0A40 24020004 */ addiu $v0, $zero, 4 -.L800F0A44: -/* 89EF4 800F0A44 8E020000 */ lw $v0, ($s0) -/* 89EF8 800F0A48 04400004 */ bltz $v0, .L800F0A5C -/* 89EFC 800F0A4C 24020004 */ addiu $v0, $zero, 4 -.L800F0A50: -/* 89F00 800F0A50 3C018011 */ lui $at, %hi(D_801094AC) -/* 89F04 800F0A54 0803C2CB */ j .L800F0B2C -/* 89F08 800F0A58 A42294AC */ sh $v0, %lo(D_801094AC)($at) -.L800F0A5C: -/* 89F0C 800F0A5C 3C048011 */ lui $a0, %hi(D_801094AC) -/* 89F10 800F0A60 248494AC */ addiu $a0, $a0, %lo(D_801094AC) -/* 89F14 800F0A64 94820000 */ lhu $v0, ($a0) -/* 89F18 800F0A68 24430001 */ addiu $v1, $v0, 1 -/* 89F1C 800F0A6C 00021400 */ sll $v0, $v0, 0x10 -/* 89F20 800F0A70 00021403 */ sra $v0, $v0, 0x10 -/* 89F24 800F0A74 28420004 */ slti $v0, $v0, 4 -/* 89F28 800F0A78 1440002C */ bnez $v0, .L800F0B2C -/* 89F2C 800F0A7C A4830000 */ sh $v1, ($a0) -/* 89F30 800F0A80 C60C0084 */ lwc1 $f12, 0x84($s0) -/* 89F34 800F0A84 A4800000 */ sh $zero, ($a0) -/* 89F38 800F0A88 0C00A6C9 */ jal clamp_angle -/* 89F3C 800F0A8C 46006307 */ neg.s $f12, $f12 -/* 89F40 800F0A90 3C0140C9 */ lui $at, 0x40c9 -/* 89F44 800F0A94 34210FD0 */ ori $at, $at, 0xfd0 -/* 89F48 800F0A98 44811000 */ mtc1 $at, $f2 -/* 89F4C 800F0A9C 00000000 */ nop -/* 89F50 800F0AA0 46020002 */ mul.s $f0, $f0, $f2 -/* 89F54 800F0AA4 00000000 */ nop -/* 89F58 800F0AA8 27A50010 */ addiu $a1, $sp, 0x10 -/* 89F5C 800F0AAC 3C0143B4 */ lui $at, 0x43b4 -/* 89F60 800F0AB0 44816000 */ mtc1 $at, $f12 -/* 89F64 800F0AB4 27A60014 */ addiu $a2, $sp, 0x14 -/* 89F68 800F0AB8 0C00A82D */ jal sin_cos_rad -/* 89F6C 800F0ABC 460C0303 */ div.s $f12, $f0, $f12 -/* 89F70 800F0AC0 860200B2 */ lh $v0, 0xb2($s0) -/* 89F74 800F0AC4 C7A40010 */ lwc1 $f4, 0x10($sp) -/* 89F78 800F0AC8 44821000 */ mtc1 $v0, $f2 -/* 89F7C 800F0ACC 00000000 */ nop -/* 89F80 800F0AD0 468010A0 */ cvt.s.w $f2, $f2 -/* 89F84 800F0AD4 46041102 */ mul.s $f4, $f2, $f4 -/* 89F88 800F0AD8 00000000 */ nop -/* 89F8C 800F0ADC C7A00014 */ lwc1 $f0, 0x14($sp) -/* 89F90 800F0AE0 46001082 */ mul.s $f2, $f2, $f0 -/* 89F94 800F0AE4 00000000 */ nop -/* 89F98 800F0AE8 3C013E4C */ lui $at, 0x3e4c -/* 89F9C 800F0AEC 3421CCCD */ ori $at, $at, 0xcccd -/* 89FA0 800F0AF0 44810000 */ mtc1 $at, $f0 -/* 89FA4 800F0AF4 00000000 */ nop -/* 89FA8 800F0AF8 46002102 */ mul.s $f4, $f4, $f0 -/* 89FAC 800F0AFC 00000000 */ nop -/* 89FB0 800F0B00 46001082 */ mul.s $f2, $f2, $f0 -/* 89FB4 800F0B04 00000000 */ nop -/* 89FB8 800F0B08 C6000028 */ lwc1 $f0, 0x28($s0) -/* 89FBC 800F0B0C 46040000 */ add.s $f0, $f0, $f4 -/* 89FC0 800F0B10 44050000 */ mfc1 $a1, $f0 -/* 89FC4 800F0B14 C6000030 */ lwc1 $f0, 0x30($s0) -/* 89FC8 800F0B18 46020000 */ add.s $f0, $f0, $f2 -/* 89FCC 800F0B1C 3C064220 */ lui $a2, 0x4220 -/* 89FD0 800F0B20 44070000 */ mfc1 $a3, $f0 -/* 89FD4 800F0B24 0C01C244 */ jal fx_falling_leaves -/* 89FD8 800F0B28 0000202D */ daddu $a0, $zero, $zero -.L800F0B2C: -/* 89FDC 800F0B2C 8FBF001C */ lw $ra, 0x1c($sp) -/* 89FE0 800F0B30 8FB00018 */ lw $s0, 0x18($sp) -/* 89FE4 800F0B34 03E00008 */ jr $ra -/* 89FE8 800F0B38 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/ver/us/asm/nonmatchings/891b0_len_fb0/func_800F0B3C.s b/ver/us/asm/nonmatchings/891b0_len_fb0/func_800F0B3C.s deleted file mode 100644 index 7e0bf032e9..0000000000 --- a/ver/us/asm/nonmatchings/891b0_len_fb0/func_800F0B3C.s +++ /dev/null @@ -1,96 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_800F0B3C -/* 89FEC 800F0B3C 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 89FF0 800F0B40 AFB00020 */ sw $s0, 0x20($sp) -/* 89FF4 800F0B44 3C108011 */ lui $s0, %hi(gPlayerStatus) -/* 89FF8 800F0B48 2610EFC8 */ addiu $s0, $s0, %lo(gPlayerStatus) -/* 89FFC 800F0B4C AFBF0024 */ sw $ra, 0x24($sp) -/* 8A000 800F0B50 920400B4 */ lbu $a0, 0xb4($s0) -/* 8A004 800F0B54 2482FFFF */ addiu $v0, $a0, -1 -/* 8A008 800F0B58 2C420002 */ sltiu $v0, $v0, 2 -/* 8A00C 800F0B5C 14400013 */ bnez $v0, .L800F0BAC -/* 8A010 800F0B60 3C02FF00 */ lui $v0, 0xff00 -/* 8A014 800F0B64 8E0300B4 */ lw $v1, 0xb4($s0) -/* 8A018 800F0B68 3442FF00 */ ori $v0, $v0, 0xff00 -/* 8A01C 800F0B6C 00621824 */ and $v1, $v1, $v0 -/* 8A020 800F0B70 3C021A00 */ lui $v0, 0x1a00 -/* 8A024 800F0B74 1062000D */ beq $v1, $v0, .L800F0BAC -/* 8A028 800F0B78 00041600 */ sll $v0, $a0, 0x18 -/* 8A02C 800F0B7C 00021E03 */ sra $v1, $v0, 0x18 -/* 8A030 800F0B80 2402000A */ addiu $v0, $zero, 0xa -/* 8A034 800F0B84 10620003 */ beq $v1, $v0, .L800F0B94 -/* 8A038 800F0B88 00000000 */ nop -/* 8A03C 800F0B8C 14600004 */ bnez $v1, .L800F0BA0 -/* 8A040 800F0B90 24020004 */ addiu $v0, $zero, 4 -.L800F0B94: -/* 8A044 800F0B94 8E020000 */ lw $v0, ($s0) -/* 8A048 800F0B98 04400004 */ bltz $v0, .L800F0BAC -/* 8A04C 800F0B9C 24020004 */ addiu $v0, $zero, 4 -.L800F0BA0: -/* 8A050 800F0BA0 3C018011 */ lui $at, %hi(D_801094AE) -/* 8A054 800F0BA4 0803C323 */ j .L800F0C8C -/* 8A058 800F0BA8 A42294AE */ sh $v0, %lo(D_801094AE)($at) -.L800F0BAC: -/* 8A05C 800F0BAC 3C048011 */ lui $a0, %hi(D_801094AE) -/* 8A060 800F0BB0 248494AE */ addiu $a0, $a0, %lo(D_801094AE) -/* 8A064 800F0BB4 94820000 */ lhu $v0, ($a0) -/* 8A068 800F0BB8 24430001 */ addiu $v1, $v0, 1 -/* 8A06C 800F0BBC 00021400 */ sll $v0, $v0, 0x10 -/* 8A070 800F0BC0 00021403 */ sra $v0, $v0, 0x10 -/* 8A074 800F0BC4 28420004 */ slti $v0, $v0, 4 -/* 8A078 800F0BC8 14400030 */ bnez $v0, .L800F0C8C -/* 8A07C 800F0BCC A4830000 */ sh $v1, ($a0) -/* 8A080 800F0BD0 C60C0084 */ lwc1 $f12, 0x84($s0) -/* 8A084 800F0BD4 A4800000 */ sh $zero, ($a0) -/* 8A088 800F0BD8 0C00A6C9 */ jal clamp_angle -/* 8A08C 800F0BDC 46006307 */ neg.s $f12, $f12 -/* 8A090 800F0BE0 3C0140C9 */ lui $at, 0x40c9 -/* 8A094 800F0BE4 34210FD0 */ ori $at, $at, 0xfd0 -/* 8A098 800F0BE8 44811000 */ mtc1 $at, $f2 -/* 8A09C 800F0BEC 00000000 */ nop -/* 8A0A0 800F0BF0 46020002 */ mul.s $f0, $f0, $f2 -/* 8A0A4 800F0BF4 00000000 */ nop -/* 8A0A8 800F0BF8 27A50018 */ addiu $a1, $sp, 0x18 -/* 8A0AC 800F0BFC 3C0143B4 */ lui $at, 0x43b4 -/* 8A0B0 800F0C00 44816000 */ mtc1 $at, $f12 -/* 8A0B4 800F0C04 27A6001C */ addiu $a2, $sp, 0x1c -/* 8A0B8 800F0C08 0C00A82D */ jal sin_cos_rad -/* 8A0BC 800F0C0C 460C0303 */ div.s $f12, $f0, $f12 -/* 8A0C0 800F0C10 860200B2 */ lh $v0, 0xb2($s0) -/* 8A0C4 800F0C14 C7A40018 */ lwc1 $f4, 0x18($sp) -/* 8A0C8 800F0C18 44821000 */ mtc1 $v0, $f2 -/* 8A0CC 800F0C1C 00000000 */ nop -/* 8A0D0 800F0C20 468010A0 */ cvt.s.w $f2, $f2 -/* 8A0D4 800F0C24 46041102 */ mul.s $f4, $f2, $f4 -/* 8A0D8 800F0C28 00000000 */ nop -/* 8A0DC 800F0C2C C7A0001C */ lwc1 $f0, 0x1c($sp) -/* 8A0E0 800F0C30 46001082 */ mul.s $f2, $f2, $f0 -/* 8A0E4 800F0C34 00000000 */ nop -/* 8A0E8 800F0C38 3C013E4C */ lui $at, 0x3e4c -/* 8A0EC 800F0C3C 3421CCCD */ ori $at, $at, 0xcccd -/* 8A0F0 800F0C40 44810000 */ mtc1 $at, $f0 -/* 8A0F4 800F0C44 00000000 */ nop -/* 8A0F8 800F0C48 46002102 */ mul.s $f4, $f4, $f0 -/* 8A0FC 800F0C4C 00000000 */ nop -/* 8A100 800F0C50 46001082 */ mul.s $f2, $f2, $f0 -/* 8A104 800F0C54 00000000 */ nop -/* 8A108 800F0C58 44803000 */ mtc1 $zero, $f6 -/* 8A10C 800F0C5C C600002C */ lwc1 $f0, 0x2c($s0) -/* 8A110 800F0C60 46060000 */ add.s $f0, $f0, $f6 -/* 8A114 800F0C64 44060000 */ mfc1 $a2, $f0 -/* 8A118 800F0C68 C6000028 */ lwc1 $f0, 0x28($s0) -/* 8A11C 800F0C6C 46040000 */ add.s $f0, $f0, $f4 -/* 8A120 800F0C70 44050000 */ mfc1 $a1, $f0 -/* 8A124 800F0C74 C6000030 */ lwc1 $f0, 0x30($s0) -/* 8A128 800F0C78 46020000 */ add.s $f0, $f0, $f2 -/* 8A12C 800F0C7C 44070000 */ mfc1 $a3, $f0 -/* 8A130 800F0C80 0000202D */ daddu $a0, $zero, $zero -/* 8A134 800F0C84 0C01C16C */ jal fx_rising_bubble -/* 8A138 800F0C88 E7A60010 */ swc1 $f6, 0x10($sp) -.L800F0C8C: -/* 8A13C 800F0C8C 8FBF0024 */ lw $ra, 0x24($sp) -/* 8A140 800F0C90 8FB00020 */ lw $s0, 0x20($sp) -/* 8A144 800F0C94 03E00008 */ jr $ra -/* 8A148 800F0C98 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/ver/us/asm/nonmatchings/8a160_len_700/func_800F0D80.s b/ver/us/asm/nonmatchings/8a160_len_700/func_800F0D80.s deleted file mode 100644 index 15ad8a0bea..0000000000 --- a/ver/us/asm/nonmatchings/8a160_len_700/func_800F0D80.s +++ /dev/null @@ -1,197 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.section .rodata - -dlabel D_8010C310 -.double 0.1 - -dlabel D_8010C318 -.double 0.92 - -dlabel D_8010C320 -.double 0.04, 0.0 - -.section .text - -glabel func_800F0D80 -/* 8A230 800F0D80 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* 8A234 800F0D84 F7B60040 */ sdc1 $f22, 0x40($sp) -/* 8A238 800F0D88 3C018011 */ lui $at, %hi(D_8010C310) -/* 8A23C 800F0D8C D436C310 */ ldc1 $f22, %lo(D_8010C310)($at) -/* 8A240 800F0D90 F7B40038 */ sdc1 $f20, 0x38($sp) -/* 8A244 800F0D94 3C018011 */ lui $at, %hi(D_8010C318) -/* 8A248 800F0D98 D434C318 */ ldc1 $f20, %lo(D_8010C318)($at) -/* 8A24C 800F0D9C AFB40020 */ sw $s4, 0x20($sp) -/* 8A250 800F0DA0 0000A02D */ daddu $s4, $zero, $zero -/* 8A254 800F0DA4 AFBE0030 */ sw $fp, 0x30($sp) -/* 8A258 800F0DA8 3C1E8011 */ lui $fp, %hi(D_80109820) -/* 8A25C 800F0DAC 27DE9820 */ addiu $fp, $fp, %lo(D_80109820) -/* 8A260 800F0DB0 AFB60028 */ sw $s6, 0x28($sp) -/* 8A264 800F0DB4 2416007F */ addiu $s6, $zero, 0x7f -/* 8A268 800F0DB8 AFB7002C */ sw $s7, 0x2c($sp) -/* 8A26C 800F0DBC 3C178011 */ lui $s7, %hi(D_80109800) -/* 8A270 800F0DC0 26F79800 */ addiu $s7, $s7, %lo(D_80109800) -/* 8A274 800F0DC4 AFB3001C */ sw $s3, 0x1c($sp) -/* 8A278 800F0DC8 0280982D */ daddu $s3, $s4, $zero -/* 8A27C 800F0DCC AFBF0034 */ sw $ra, 0x34($sp) -/* 8A280 800F0DD0 AFB50024 */ sw $s5, 0x24($sp) -/* 8A284 800F0DD4 AFB20018 */ sw $s2, 0x18($sp) -/* 8A288 800F0DD8 AFB10014 */ sw $s1, 0x14($sp) -/* 8A28C 800F0DDC AFB00010 */ sw $s0, 0x10($sp) -/* 8A290 800F0DE0 F7BA0050 */ sdc1 $f26, 0x50($sp) -/* 8A294 800F0DE4 F7B80048 */ sdc1 $f24, 0x48($sp) -.L800F0DE8: -/* 8A298 800F0DE8 3C058011 */ lui $a1, %hi(D_8010D000) -/* 8A29C 800F0DEC 24A5D000 */ addiu $a1, $a1, %lo(D_8010D000) -/* 8A2A0 800F0DF0 02651821 */ addu $v1, $s3, $a1 -/* 8A2A4 800F0DF4 90620000 */ lbu $v0, ($v1) -/* 8A2A8 800F0DF8 5040007A */ beql $v0, $zero, .L800F0FE4 -/* 8A2AC 800F0DFC 26940001 */ addiu $s4, $s4, 1 -/* 8A2B0 800F0E00 90620001 */ lbu $v0, 1($v1) -/* 8A2B4 800F0E04 2442FFFF */ addiu $v0, $v0, -1 -/* 8A2B8 800F0E08 A0620001 */ sb $v0, 1($v1) -/* 8A2BC 800F0E0C 90620002 */ lbu $v0, 2($v1) -/* 8A2C0 800F0E10 80640001 */ lb $a0, 1($v1) -/* 8A2C4 800F0E14 24420001 */ addiu $v0, $v0, 1 -/* 8A2C8 800F0E18 04810003 */ bgez $a0, .L800F0E28 -/* 8A2CC 800F0E1C A0620002 */ sb $v0, 2($v1) -/* 8A2D0 800F0E20 0803C3F8 */ j .L800F0FE0 -/* 8A2D4 800F0E24 A0600000 */ sb $zero, ($v1) -.L800F0E28: -/* 8A2D8 800F0E28 0080A82D */ daddu $s5, $a0, $zero -/* 8A2DC 800F0E2C 24120001 */ addiu $s2, $zero, 1 -/* 8A2E0 800F0E30 24700034 */ addiu $s0, $v1, 0x34 -/* 8A2E4 800F0E34 0000882D */ daddu $s1, $zero, $zero -/* 8A2E8 800F0E38 C47A0008 */ lwc1 $f26, 8($v1) -/* 8A2EC 800F0E3C C478000C */ lwc1 $f24, 0xc($v1) -.L800F0E40: -/* 8A2F0 800F0E40 9202FFEF */ lbu $v0, -0x11($s0) -/* 8A2F4 800F0E44 24420001 */ addiu $v0, $v0, 1 -/* 8A2F8 800F0E48 A202FFEF */ sb $v0, -0x11($s0) -/* 8A2FC 800F0E4C 00021600 */ sll $v0, $v0, 0x18 -/* 8A300 800F0E50 00021603 */ sra $v0, $v0, 0x18 -/* 8A304 800F0E54 2842001E */ slti $v0, $v0, 0x1e -/* 8A308 800F0E58 14400006 */ bnez $v0, .L800F0E74 -/* 8A30C 800F0E5C 2AA2001E */ slti $v0, $s5, 0x1e -/* 8A310 800F0E60 10400003 */ beqz $v0, .L800F0E70 -/* 8A314 800F0E64 2402FFE1 */ addiu $v0, $zero, -0x1f -/* 8A318 800F0E68 0803C39D */ j .L800F0E74 -/* 8A31C 800F0E6C A202FFEF */ sb $v0, -0x11($s0) -.L800F0E70: -/* 8A320 800F0E70 A200FFEF */ sb $zero, -0x11($s0) -.L800F0E74: -/* 8A324 800F0E74 8202FFEF */ lb $v0, -0x11($s0) -/* 8A328 800F0E78 04420055 */ bltzl $v0, .L800F0FD0 -/* 8A32C 800F0E7C 26310002 */ addiu $s1, $s1, 2 -/* 8A330 800F0E80 14400031 */ bnez $v0, .L800F0F48 -/* 8A334 800F0E84 023E1821 */ addu $v1, $s1, $fp -/* 8A338 800F0E88 80620000 */ lb $v0, ($v1) -/* 8A33C 800F0E8C 44821000 */ mtc1 $v0, $f2 -/* 8A340 800F0E90 00000000 */ nop -/* 8A344 800F0E94 468010A0 */ cvt.s.w $f2, $f2 -/* 8A348 800F0E98 460010A1 */ cvt.d.s $f2, $f2 -/* 8A34C 800F0E9C 46361082 */ mul.d $f2, $f2, $f22 -/* 8A350 800F0EA0 00000000 */ nop -/* 8A354 800F0EA4 80620001 */ lb $v0, 1($v1) -/* 8A358 800F0EA8 44820000 */ mtc1 $v0, $f0 -/* 8A35C 800F0EAC 00000000 */ nop -/* 8A360 800F0EB0 46800020 */ cvt.s.w $f0, $f0 -/* 8A364 800F0EB4 46000007 */ neg.s $f0, $f0 -/* 8A368 800F0EB8 46000021 */ cvt.d.s $f0, $f0 -/* 8A36C 800F0EBC 46360002 */ mul.d $f0, $f0, $f22 -/* 8A370 800F0EC0 00000000 */ nop -/* 8A374 800F0EC4 3C013F80 */ lui $at, 0x3f80 -/* 8A378 800F0EC8 44812000 */ mtc1 $at, $f4 -/* 8A37C 800F0ECC 2404007F */ addiu $a0, $zero, 0x7f -/* 8A380 800F0ED0 E61AFFF0 */ swc1 $f26, -0x10($s0) -/* 8A384 800F0ED4 E618FFF4 */ swc1 $f24, -0xc($s0) -/* 8A388 800F0ED8 E6040000 */ swc1 $f4, ($s0) -/* 8A38C 800F0EDC 462010A0 */ cvt.s.d $f2, $f2 -/* 8A390 800F0EE0 E602FFF8 */ swc1 $f2, -8($s0) -/* 8A394 800F0EE4 46200020 */ cvt.s.d $f0, $f0 -/* 8A398 800F0EE8 0C00A67F */ jal rand_int -/* 8A39C 800F0EEC E600FFFC */ swc1 $f0, -4($s0) -/* 8A3A0 800F0EF0 A202FFEB */ sb $v0, -0x15($s0) -/* 8A3A4 800F0EF4 304400FF */ andi $a0, $v0, 0xff -/* 8A3A8 800F0EF8 0C00A67F */ jal rand_int -/* 8A3AC 800F0EFC 02C42023 */ subu $a0, $s6, $a0 -/* 8A3B0 800F0F00 A202FFEC */ sb $v0, -0x14($s0) -/* 8A3B4 800F0F04 304400FF */ andi $a0, $v0, 0xff -/* 8A3B8 800F0F08 9202FFEB */ lbu $v0, -0x15($s0) -/* 8A3BC 800F0F0C 02C42023 */ subu $a0, $s6, $a0 -/* 8A3C0 800F0F10 0C00A67F */ jal rand_int -/* 8A3C4 800F0F14 00822023 */ subu $a0, $a0, $v0 -/* 8A3C8 800F0F18 9203FFEB */ lbu $v1, -0x15($s0) -/* 8A3CC 800F0F1C A202FFED */ sb $v0, -0x13($s0) -/* 8A3D0 800F0F20 240200FF */ addiu $v0, $zero, 0xff -/* 8A3D4 800F0F24 A202FFEE */ sb $v0, -0x12($s0) -/* 8A3D8 800F0F28 9202FFEC */ lbu $v0, -0x14($s0) -/* 8A3DC 800F0F2C 24630080 */ addiu $v1, $v1, 0x80 -/* 8A3E0 800F0F30 A203FFEB */ sb $v1, -0x15($s0) -/* 8A3E4 800F0F34 9203FFED */ lbu $v1, -0x13($s0) -/* 8A3E8 800F0F38 24420080 */ addiu $v0, $v0, 0x80 -/* 8A3EC 800F0F3C A202FFEC */ sb $v0, -0x14($s0) -/* 8A3F0 800F0F40 24630080 */ addiu $v1, $v1, 0x80 -/* 8A3F4 800F0F44 A203FFED */ sb $v1, -0x13($s0) -.L800F0F48: -/* 8A3F8 800F0F48 C600FFF8 */ lwc1 $f0, -8($s0) -/* 8A3FC 800F0F4C 46000021 */ cvt.d.s $f0, $f0 -/* 8A400 800F0F50 46340002 */ mul.d $f0, $f0, $f20 -/* 8A404 800F0F54 00000000 */ nop -/* 8A408 800F0F58 C602FFFC */ lwc1 $f2, -4($s0) -/* 8A40C 800F0F5C 460010A1 */ cvt.d.s $f2, $f2 -/* 8A410 800F0F60 46341082 */ mul.d $f2, $f2, $f20 -/* 8A414 800F0F64 00000000 */ nop -/* 8A418 800F0F68 C608FFF0 */ lwc1 $f8, -0x10($s0) -/* 8A41C 800F0F6C C604FFF8 */ lwc1 $f4, -8($s0) -/* 8A420 800F0F70 C606FFF4 */ lwc1 $f6, -0xc($s0) -/* 8A424 800F0F74 46044200 */ add.s $f8, $f8, $f4 -/* 8A428 800F0F78 C604FFFC */ lwc1 $f4, -4($s0) -/* 8A42C 800F0F7C 8202FFEF */ lb $v0, -0x11($s0) -/* 8A430 800F0F80 46043180 */ add.s $f6, $f6, $f4 -/* 8A434 800F0F84 00571021 */ addu $v0, $v0, $s7 -/* 8A438 800F0F88 E608FFF0 */ swc1 $f8, -0x10($s0) -/* 8A43C 800F0F8C E606FFF4 */ swc1 $f6, -0xc($s0) -/* 8A440 800F0F90 46200020 */ cvt.s.d $f0, $f0 -/* 8A444 800F0F94 462010A0 */ cvt.s.d $f2, $f2 -/* 8A448 800F0F98 E600FFF8 */ swc1 $f0, -8($s0) -/* 8A44C 800F0F9C E602FFFC */ swc1 $f2, -4($s0) -/* 8A450 800F0FA0 90420000 */ lbu $v0, ($v0) -/* 8A454 800F0FA4 3C018011 */ lui $at, %hi(D_8010C320) -/* 8A458 800F0FA8 D422C320 */ ldc1 $f2, %lo(D_8010C320)($at) -/* 8A45C 800F0FAC 44820000 */ mtc1 $v0, $f0 -/* 8A460 800F0FB0 00000000 */ nop -/* 8A464 800F0FB4 46800020 */ cvt.s.w $f0, $f0 -/* 8A468 800F0FB8 46000021 */ cvt.d.s $f0, $f0 -/* 8A46C 800F0FBC 46220002 */ mul.d $f0, $f0, $f2 -/* 8A470 800F0FC0 00000000 */ nop -/* 8A474 800F0FC4 46200020 */ cvt.s.d $f0, $f0 -/* 8A478 800F0FC8 E6000000 */ swc1 $f0, ($s0) -/* 8A47C 800F0FCC 26310002 */ addiu $s1, $s1, 2 -.L800F0FD0: -/* 8A480 800F0FD0 26520001 */ addiu $s2, $s2, 1 -/* 8A484 800F0FD4 2A420039 */ slti $v0, $s2, 0x39 -/* 8A488 800F0FD8 1440FF99 */ bnez $v0, .L800F0E40 -/* 8A48C 800F0FDC 2610001C */ addiu $s0, $s0, 0x1c -.L800F0FE0: -/* 8A490 800F0FE0 26940001 */ addiu $s4, $s4, 1 -.L800F0FE4: -/* 8A494 800F0FE4 1A80FF80 */ blez $s4, .L800F0DE8 -/* 8A498 800F0FE8 2673063C */ addiu $s3, $s3, 0x63c -/* 8A49C 800F0FEC 8FBF0034 */ lw $ra, 0x34($sp) -/* 8A4A0 800F0FF0 8FBE0030 */ lw $fp, 0x30($sp) -/* 8A4A4 800F0FF4 8FB7002C */ lw $s7, 0x2c($sp) -/* 8A4A8 800F0FF8 8FB60028 */ lw $s6, 0x28($sp) -/* 8A4AC 800F0FFC 8FB50024 */ lw $s5, 0x24($sp) -/* 8A4B0 800F1000 8FB40020 */ lw $s4, 0x20($sp) -/* 8A4B4 800F1004 8FB3001C */ lw $s3, 0x1c($sp) -/* 8A4B8 800F1008 8FB20018 */ lw $s2, 0x18($sp) -/* 8A4BC 800F100C 8FB10014 */ lw $s1, 0x14($sp) -/* 8A4C0 800F1010 8FB00010 */ lw $s0, 0x10($sp) -/* 8A4C4 800F1014 D7BA0050 */ ldc1 $f26, 0x50($sp) -/* 8A4C8 800F1018 D7B80048 */ ldc1 $f24, 0x48($sp) -/* 8A4CC 800F101C D7B60040 */ ldc1 $f22, 0x40($sp) -/* 8A4D0 800F1020 D7B40038 */ ldc1 $f20, 0x38($sp) -/* 8A4D4 800F1024 03E00008 */ jr $ra -/* 8A4D8 800F1028 27BD0058 */ addiu $sp, $sp, 0x58 diff --git a/ver/us/asm/nonmatchings/8a160_len_700/func_800F102C.s b/ver/us/asm/nonmatchings/8a160_len_700/func_800F102C.s deleted file mode 100644 index 068038ff45..0000000000 --- a/ver/us/asm/nonmatchings/8a160_len_700/func_800F102C.s +++ /dev/null @@ -1,233 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_800F102C -/* 8A4DC 800F102C 27BDFF28 */ addiu $sp, $sp, -0xd8 -/* 8A4E0 800F1030 3C090050 */ lui $t1, 0x50 -/* 8A4E4 800F1034 352903C0 */ ori $t1, $t1, 0x3c0 -/* 8A4E8 800F1038 3C0ADC08 */ lui $t2, 0xdc08 -/* 8A4EC 800F103C 354A0008 */ ori $t2, $t2, 8 -/* 8A4F0 800F1040 27A40020 */ addiu $a0, $sp, 0x20 -/* 8A4F4 800F1044 AFB100A4 */ sw $s1, 0xa4($sp) -/* 8A4F8 800F1048 3C110001 */ lui $s1, 1 -/* 8A4FC 800F104C 36311630 */ ori $s1, $s1, 0x1630 -/* 8A500 800F1050 AFB700BC */ sw $s7, 0xbc($sp) -/* 8A504 800F1054 0000B82D */ daddu $s7, $zero, $zero -/* 8A508 800F1058 AFB600B8 */ sw $s6, 0xb8($sp) -/* 8A50C 800F105C 27B60060 */ addiu $s6, $sp, 0x60 -/* 8A510 800F1060 3C02800A */ lui $v0, %hi(gDisplayContext) -/* 8A514 800F1064 2442A674 */ addiu $v0, $v0, %lo(gDisplayContext) -/* 8A518 800F1068 AFBE00C0 */ sw $fp, 0xc0($sp) -/* 8A51C 800F106C 0040F02D */ daddu $fp, $v0, $zero -/* 8A520 800F1070 3C028007 */ lui $v0, %hi(gMatrixListPos) -/* 8A524 800F1074 244241F0 */ addiu $v0, $v0, %lo(gMatrixListPos) -/* 8A528 800F1078 AFB300AC */ sw $s3, 0xac($sp) -/* 8A52C 800F107C 0040982D */ daddu $s3, $v0, $zero -/* 8A530 800F1080 AFB500B4 */ sw $s5, 0xb4($sp) -/* 8A534 800F1084 3C150001 */ lui $s5, 1 -/* 8A538 800F1088 36B51630 */ ori $s5, $s5, 0x1630 -/* 8A53C 800F108C AFB400B0 */ sw $s4, 0xb0($sp) -/* 8A540 800F1090 02E0A02D */ daddu $s4, $s7, $zero -/* 8A544 800F1094 AFB000A0 */ sw $s0, 0xa0($sp) -/* 8A548 800F1098 3C10800A */ lui $s0, %hi(gMasterGfxPos) -/* 8A54C 800F109C 2610A66C */ addiu $s0, $s0, %lo(gMasterGfxPos) -/* 8A550 800F10A0 3C02E700 */ lui $v0, 0xe700 -/* 8A554 800F10A4 AFBF00C4 */ sw $ra, 0xc4($sp) -/* 8A558 800F10A8 AFB200A8 */ sw $s2, 0xa8($sp) -/* 8A55C 800F10AC F7B600D0 */ sdc1 $f22, 0xd0($sp) -/* 8A560 800F10B0 F7B400C8 */ sdc1 $f20, 0xc8($sp) -/* 8A564 800F10B4 8E030000 */ lw $v1, ($s0) -/* 8A568 800F10B8 3C0643A0 */ lui $a2, 0x43a0 -/* 8A56C 800F10BC 3C074370 */ lui $a3, 0x4370 -/* 8A570 800F10C0 44800000 */ mtc1 $zero, $f0 -/* 8A574 800F10C4 3C0142C8 */ lui $at, 0x42c8 -/* 8A578 800F10C8 44811000 */ mtc1 $at, $f2 -/* 8A57C 800F10CC 3C013F80 */ lui $at, 0x3f80 -/* 8A580 800F10D0 44812000 */ mtc1 $at, $f4 -/* 8A584 800F10D4 0060402D */ daddu $t0, $v1, $zero -/* 8A588 800F10D8 44050000 */ mfc1 $a1, $f0 -/* 8A58C 800F10DC 3C01C2C8 */ lui $at, 0xc2c8 -/* 8A590 800F10E0 44810000 */ mtc1 $at, $f0 -/* 8A594 800F10E4 24630008 */ addiu $v1, $v1, 8 -/* 8A598 800F10E8 AE030000 */ sw $v1, ($s0) -/* 8A59C 800F10EC AD020000 */ sw $v0, ($t0) -/* 8A5A0 800F10F0 24620008 */ addiu $v0, $v1, 8 -/* 8A5A4 800F10F4 AD000004 */ sw $zero, 4($t0) -/* 8A5A8 800F10F8 AE020000 */ sw $v0, ($s0) -/* 8A5AC 800F10FC 3C02DB06 */ lui $v0, 0xdb06 -/* 8A5B0 800F1100 AC620000 */ sw $v0, ($v1) -/* 8A5B4 800F1104 24620010 */ addiu $v0, $v1, 0x10 -/* 8A5B8 800F1108 AC600004 */ sw $zero, 4($v1) -/* 8A5BC 800F110C AE020000 */ sw $v0, ($s0) -/* 8A5C0 800F1110 3C02ED00 */ lui $v0, 0xed00 -/* 8A5C4 800F1114 AC620008 */ sw $v0, 8($v1) -/* 8A5C8 800F1118 24620018 */ addiu $v0, $v1, 0x18 -/* 8A5CC 800F111C AC69000C */ sw $t1, 0xc($v1) -/* 8A5D0 800F1120 AE020000 */ sw $v0, ($s0) -/* 8A5D4 800F1124 4485B000 */ mtc1 $a1, $f22 -/* 8A5D8 800F1128 3C028011 */ lui $v0, %hi(D_801096B0) -/* 8A5DC 800F112C 244296B0 */ addiu $v0, $v0, %lo(D_801096B0) -/* 8A5E0 800F1130 AC6A0010 */ sw $t2, 0x10($v1) -/* 8A5E4 800F1134 AC620014 */ sw $v0, 0x14($v1) -/* 8A5E8 800F1138 E7A20018 */ swc1 $f2, 0x18($sp) -/* 8A5EC 800F113C E7A4001C */ swc1 $f4, 0x1c($sp) -/* 8A5F0 800F1140 AFA50010 */ sw $a1, 0x10($sp) -/* 8A5F4 800F1144 0C018E44 */ jal guOrthoF -/* 8A5F8 800F1148 E7A00014 */ swc1 $f0, 0x14($sp) -/* 8A5FC 800F114C 27A40020 */ addiu $a0, $sp, 0x20 -/* 8A600 800F1150 96650000 */ lhu $a1, ($s3) -/* 8A604 800F1154 8FC20000 */ lw $v0, ($fp) -/* 8A608 800F1158 00052980 */ sll $a1, $a1, 6 -/* 8A60C 800F115C 00B12821 */ addu $a1, $a1, $s1 -/* 8A610 800F1160 0C019D40 */ jal guMtxF2L -/* 8A614 800F1164 00452821 */ addu $a1, $v0, $a1 -/* 8A618 800F1168 3C03DA38 */ lui $v1, 0xda38 -/* 8A61C 800F116C 34630007 */ ori $v1, $v1, 7 -/* 8A620 800F1170 3C067F7F */ lui $a2, 0x7f7f -/* 8A624 800F1174 34C67F7F */ ori $a2, $a2, 0x7f7f -/* 8A628 800F1178 8E040000 */ lw $a0, ($s0) -/* 8A62C 800F117C 96620000 */ lhu $v0, ($s3) -/* 8A630 800F1180 0080282D */ daddu $a1, $a0, $zero -/* 8A634 800F1184 24840008 */ addiu $a0, $a0, 8 -/* 8A638 800F1188 AE040000 */ sw $a0, ($s0) -/* 8A63C 800F118C ACA30000 */ sw $v1, ($a1) -/* 8A640 800F1190 24430001 */ addiu $v1, $v0, 1 -/* 8A644 800F1194 3042FFFF */ andi $v0, $v0, 0xffff -/* 8A648 800F1198 00021180 */ sll $v0, $v0, 6 -/* 8A64C 800F119C A6630000 */ sh $v1, ($s3) -/* 8A650 800F11A0 8FC30000 */ lw $v1, ($fp) -/* 8A654 800F11A4 00511021 */ addu $v0, $v0, $s1 -/* 8A658 800F11A8 00621821 */ addu $v1, $v1, $v0 -/* 8A65C 800F11AC 24820008 */ addiu $v0, $a0, 8 -/* 8A660 800F11B0 ACA30004 */ sw $v1, 4($a1) -/* 8A664 800F11B4 AE020000 */ sw $v0, ($s0) -/* 8A668 800F11B8 3C02DE00 */ lui $v0, 0xde00 -/* 8A66C 800F11BC AC820000 */ sw $v0, ($a0) -/* 8A670 800F11C0 3C028011 */ lui $v0, %hi(D_80109710) -/* 8A674 800F11C4 24429710 */ addiu $v0, $v0, %lo(D_80109710) -/* 8A678 800F11C8 AC820004 */ sw $v0, 4($a0) -/* 8A67C 800F11CC 24820010 */ addiu $v0, $a0, 0x10 -/* 8A680 800F11D0 AE020000 */ sw $v0, ($s0) -/* 8A684 800F11D4 3C02FB00 */ lui $v0, 0xfb00 -/* 8A688 800F11D8 AC820008 */ sw $v0, 8($a0) -/* 8A68C 800F11DC AC86000C */ sw $a2, 0xc($a0) -.L800F11E0: -/* 8A690 800F11E0 3C0B8011 */ lui $t3, %hi(D_8010D000) -/* 8A694 800F11E4 256BD000 */ addiu $t3, $t3, %lo(D_8010D000) -/* 8A698 800F11E8 028B1821 */ addu $v1, $s4, $t3 -/* 8A69C 800F11EC 90620000 */ lbu $v0, ($v1) -/* 8A6A0 800F11F0 5040005C */ beql $v0, $zero, .L800F1364 -/* 8A6A4 800F11F4 26F70001 */ addiu $s7, $s7, 1 -/* 8A6A8 800F11F8 C4740018 */ lwc1 $f20, 0x18($v1) -/* 8A6AC 800F11FC 24120001 */ addiu $s2, $zero, 1 -/* 8A6B0 800F1200 3C11800A */ lui $s1, %hi(gMasterGfxPos) -/* 8A6B4 800F1204 2631A66C */ addiu $s1, $s1, %lo(gMasterGfxPos) -/* 8A6B8 800F1208 24700022 */ addiu $s0, $v1, 0x22 -.L800F120C: -/* 8A6BC 800F120C 82020001 */ lb $v0, 1($s0) -/* 8A6C0 800F1210 0440004F */ bltz $v0, .L800F1350 -/* 8A6C4 800F1214 02C0202D */ daddu $a0, $s6, $zero -/* 8A6C8 800F1218 C6000012 */ lwc1 $f0, 0x12($s0) -/* 8A6CC 800F121C 4405B000 */ mfc1 $a1, $f22 -/* 8A6D0 800F1220 3C028007 */ lui $v0, %hi(gGameStatusPtr) -/* 8A6D4 800F1224 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0) -/* 8A6D8 800F1228 4406B000 */ mfc1 $a2, $f22 -/* 8A6DC 800F122C 94430134 */ lhu $v1, 0x134($v0) -/* 8A6E0 800F1230 46140002 */ mul.s $f0, $f0, $f20 -/* 8A6E4 800F1234 00000000 */ nop -/* 8A6E8 800F1238 00031080 */ sll $v0, $v1, 2 -/* 8A6EC 800F123C 00431021 */ addu $v0, $v0, $v1 -/* 8A6F0 800F1240 00021040 */ sll $v0, $v0, 1 -/* 8A6F4 800F1244 44823000 */ mtc1 $v0, $f6 -/* 8A6F8 800F1248 00000000 */ nop -/* 8A6FC 800F124C 468031A0 */ cvt.s.w $f6, $f6 -/* 8A700 800F1250 44073000 */ mfc1 $a3, $f6 -/* 8A704 800F1254 E7A00010 */ swc1 $f0, 0x10($sp) -/* 8A708 800F1258 C6000002 */ lwc1 $f0, 2($s0) -/* 8A70C 800F125C E7A00014 */ swc1 $f0, 0x14($sp) -/* 8A710 800F1260 C6000006 */ lwc1 $f0, 6($s0) -/* 8A714 800F1264 E7B6001C */ swc1 $f22, 0x1c($sp) -/* 8A718 800F1268 0C018FC4 */ jal guPositionF -/* 8A71C 800F126C E7A00018 */ swc1 $f0, 0x18($sp) -/* 8A720 800F1270 02C0202D */ daddu $a0, $s6, $zero -/* 8A724 800F1274 96650000 */ lhu $a1, ($s3) -/* 8A728 800F1278 8FC20000 */ lw $v0, ($fp) -/* 8A72C 800F127C 00052980 */ sll $a1, $a1, 6 -/* 8A730 800F1280 00B52821 */ addu $a1, $a1, $s5 -/* 8A734 800F1284 0C019D40 */ jal guMtxF2L -/* 8A738 800F1288 00452821 */ addu $a1, $v0, $a1 -/* 8A73C 800F128C 3C08D838 */ lui $t0, 0xd838 -/* 8A740 800F1290 8E240000 */ lw $a0, ($s1) -/* 8A744 800F1294 35080002 */ ori $t0, $t0, 2 -/* 8A748 800F1298 0080282D */ daddu $a1, $a0, $zero -/* 8A74C 800F129C 24840008 */ addiu $a0, $a0, 8 -/* 8A750 800F12A0 AE240000 */ sw $a0, ($s1) -/* 8A754 800F12A4 96620000 */ lhu $v0, ($s3) -/* 8A758 800F12A8 3C03DA38 */ lui $v1, 0xda38 -/* 8A75C 800F12AC ACA30000 */ sw $v1, ($a1) -/* 8A760 800F12B0 24430001 */ addiu $v1, $v0, 1 -/* 8A764 800F12B4 3042FFFF */ andi $v0, $v0, 0xffff -/* 8A768 800F12B8 00021180 */ sll $v0, $v0, 6 -/* 8A76C 800F12BC A6630000 */ sh $v1, ($s3) -/* 8A770 800F12C0 8FC30000 */ lw $v1, ($fp) -/* 8A774 800F12C4 00551021 */ addu $v0, $v0, $s5 -/* 8A778 800F12C8 00621821 */ addu $v1, $v1, $v0 -/* 8A77C 800F12CC 24820008 */ addiu $v0, $a0, 8 -/* 8A780 800F12D0 ACA30004 */ sw $v1, 4($a1) -/* 8A784 800F12D4 AE220000 */ sw $v0, ($s1) -/* 8A788 800F12D8 82030001 */ lb $v1, 1($s0) -/* 8A78C 800F12DC 24020050 */ addiu $v0, $zero, 0x50 -/* 8A790 800F12E0 00431023 */ subu $v0, $v0, $v1 -/* 8A794 800F12E4 304200FF */ andi $v0, $v0, 0xff -/* 8A798 800F12E8 3C03FA00 */ lui $v1, 0xfa00 -/* 8A79C 800F12EC 00431025 */ or $v0, $v0, $v1 -/* 8A7A0 800F12F0 AC820000 */ sw $v0, ($a0) -/* 8A7A4 800F12F4 9203FFFD */ lbu $v1, -3($s0) -/* 8A7A8 800F12F8 9205FFFE */ lbu $a1, -2($s0) -/* 8A7AC 800F12FC 9206FFFF */ lbu $a2, -1($s0) -/* 8A7B0 800F1300 92070000 */ lbu $a3, ($s0) -/* 8A7B4 800F1304 24820010 */ addiu $v0, $a0, 0x10 -/* 8A7B8 800F1308 AE220000 */ sw $v0, ($s1) -/* 8A7BC 800F130C 3C02DE00 */ lui $v0, 0xde00 -/* 8A7C0 800F1310 AC820008 */ sw $v0, 8($a0) -/* 8A7C4 800F1314 3C028011 */ lui $v0, %hi(D_801097D8) -/* 8A7C8 800F1318 244297D8 */ addiu $v0, $v0, %lo(D_801097D8) -/* 8A7CC 800F131C AC82000C */ sw $v0, 0xc($a0) -/* 8A7D0 800F1320 24820018 */ addiu $v0, $a0, 0x18 -/* 8A7D4 800F1324 AE220000 */ sw $v0, ($s1) -/* 8A7D8 800F1328 24020040 */ addiu $v0, $zero, 0x40 -/* 8A7DC 800F132C AC880010 */ sw $t0, 0x10($a0) -/* 8A7E0 800F1330 AC820014 */ sw $v0, 0x14($a0) -/* 8A7E4 800F1334 00031E00 */ sll $v1, $v1, 0x18 -/* 8A7E8 800F1338 00052C00 */ sll $a1, $a1, 0x10 -/* 8A7EC 800F133C 00651825 */ or $v1, $v1, $a1 -/* 8A7F0 800F1340 00063200 */ sll $a2, $a2, 8 -/* 8A7F4 800F1344 00661825 */ or $v1, $v1, $a2 -/* 8A7F8 800F1348 00671825 */ or $v1, $v1, $a3 -/* 8A7FC 800F134C AC830004 */ sw $v1, 4($a0) -.L800F1350: -/* 8A800 800F1350 26520001 */ addiu $s2, $s2, 1 -/* 8A804 800F1354 2A420039 */ slti $v0, $s2, 0x39 -/* 8A808 800F1358 1440FFAC */ bnez $v0, .L800F120C -/* 8A80C 800F135C 2610001C */ addiu $s0, $s0, 0x1c -/* 8A810 800F1360 26F70001 */ addiu $s7, $s7, 1 -.L800F1364: -/* 8A814 800F1364 1AE0FF9E */ blez $s7, .L800F11E0 -/* 8A818 800F1368 2694063C */ addiu $s4, $s4, 0x63c -/* 8A81C 800F136C 8FBF00C4 */ lw $ra, 0xc4($sp) -/* 8A820 800F1370 8FBE00C0 */ lw $fp, 0xc0($sp) -/* 8A824 800F1374 8FB700BC */ lw $s7, 0xbc($sp) -/* 8A828 800F1378 8FB600B8 */ lw $s6, 0xb8($sp) -/* 8A82C 800F137C 8FB500B4 */ lw $s5, 0xb4($sp) -/* 8A830 800F1380 8FB400B0 */ lw $s4, 0xb0($sp) -/* 8A834 800F1384 8FB300AC */ lw $s3, 0xac($sp) -/* 8A838 800F1388 8FB200A8 */ lw $s2, 0xa8($sp) -/* 8A83C 800F138C 8FB100A4 */ lw $s1, 0xa4($sp) -/* 8A840 800F1390 8FB000A0 */ lw $s0, 0xa0($sp) -/* 8A844 800F1394 D7B600D0 */ ldc1 $f22, 0xd0($sp) -/* 8A848 800F1398 D7B400C8 */ ldc1 $f20, 0xc8($sp) -/* 8A84C 800F139C 03E00008 */ jr $ra -/* 8A850 800F13A0 27BD00D8 */ addiu $sp, $sp, 0xd8 -/* 8A854 800F13A4 00000000 */ nop -/* 8A858 800F13A8 00000000 */ nop -/* 8A85C 800F13AC 00000000 */ nop diff --git a/ver/us/splat.yaml b/ver/us/splat.yaml index bb67aee3e9..888e8be024 100644 --- a/ver/us/splat.yaml +++ b/ver/us/splat.yaml @@ -7,7 +7,6 @@ options: mnemonic_ljust: 10 platform: n64 subalign: 8 - auto_all_sections: [".data", ".rodata", ".bss"] asm_data_macro: "dlabel" base_path: ../.. @@ -357,9 +356,11 @@ segments: - [0x72A60, bin, gspF3DEX2kawase_fifo_data] - [0x72E80, bin, n_aspMain_data] - [0x73130] - - type: code + - name: engine1 + type: code start: 0x759B0 vram: 0x800DC500 + follows_vram: main subsegments: - [0x759B0, c, bss2] - [0x759B0, c, npc_collision] @@ -761,7 +762,18 @@ segments: - [0x9DA58] - [0x9DA60, rgba32, ui/stat_flower, 16, 16] - [0x9DE60] - - [0xA2930, data] + - [0xA2930, .data, 891b0_len_fb0] + - [0xA2960, .data, 8a160_len_700] + - start: 0xA2960 + type: .data + name: 8a160_len_700 + subsegments: + - [0xA2960, ia8, A2960, 32, 16] + - [0xA2B60] # Vp + - [0xA2B70, vtx, A2B70] + - [0xA2BC0, gfx, A2BC0] + - [0xA2C88, gfx, A2C88] + - [0xA2CB0] - [0xA2D40, .data, 8a860_len_3f30] - start: 0xA2D90 type: .data @@ -783,9 +795,11 @@ segments: - [0xA5078, vtx, vtx/drawbox1] - [0xA50B8] - [0xA5100] - - type: code + - name: engine2 + type: code start: 0xA5DD0 vram: 0x8010F6D0 + follows_vram: engine1 subsegments: - [0xA5DD0, c, bss3] - [0xA5DD0, c, a5dd0_len_114e0] @@ -832,7 +846,8 @@ segments: - [0xE59D0, .data, audio/sfx] - [0xE5DF0, .data, audio/e0b30_len_b80] - [0xE5E40] - - type: code + - name: evt + type: code dir: evt start: 0xE79B0 vram: 0x802C3000 @@ -850,16 +865,20 @@ segments: - [0xFBE10, c, fx_api] - [0xFE0B0, c, demo_api] - [0xFE650] - - type: code + - name: engine4 + type: code start: 0xFEE30 vram: 0x802DBD40 + # follows_vram: evt subsegments: - [0x0FEE30, c, sprite] - [0x101B90, c, 101b90_len_8f0] - [0x102480] - - type: code + - name: entity + type: code start: 0x102610 vram: 0x802E0D90 + follows_vram: engine4 subsegments: - [0x102610, c, entity/Shadow] - [0x102660, c, entity/SaveBlock] @@ -902,15 +921,17 @@ segments: - [0x10C780, .data, entity/BlueWarpPipe] - [0x10C830, .data, entity/Signpost] - [0x10C880] - - type: code + - name: font_width + type: code start: 0x10CC10 vram: 0x802EB3D0 subsegments: - [0x10CC10, data] # font width data - type: group dir: charset + vram: 0 start: 0x10F1B0 - subsegments: # TODO shiftability: what is going on here + subsegments: - [0x10F1B0, linker_offset, standard] - [0x10F1B0, pm_charset, standard, 16, 16, 0xA6] - [0x1144B0, linker_offset, standard_pal] @@ -923,6 +944,7 @@ segments: - [0x116498, pm_charset_palettes, subtitle, 1] - [0x1164A8, pm_charset_palettes, title, 1] - [0x1164B8, ci8, peach_letter, 150, 105] + - [0x11A23E, bin] # padding (needed atm, will fix when added to c file) - [0x11A240, palette, peach_letter] - [0x11A440, bin] - name: ui_images @@ -1085,6 +1107,7 @@ segments: dir: pause start: 0x135EE0 vram: 0x80242BA0 + follows_vram: ui_images subsegments: - [0x135EE0, c, pause_main] - [0x137ED0, c, pause_tabs] @@ -1143,6 +1166,7 @@ segments: type: code start: 0x163400 vram: 0x80242BA0 + follows_vram: ui_images subsegments: - [0x163400, c, 163400] - [0x165490, c, 165490] @@ -2383,13 +2407,11 @@ segments: - type: code start: 0x316C00 vram: 0x802AE000 - overlay: True subsegments: - [0x316C00, c] - type: code start: 0x316D90 vram: 0x802AE000 - overlay: True subsegments: - [0x316D90, c, 316d90] - type: code @@ -2402,7 +2424,6 @@ segments: name: world_partner_goombario start: 0x317020 vram: 0x802BD100 - overlay: True subsegments: - [0x317020, c, goombario] - [0x317B60] @@ -2411,7 +2432,6 @@ segments: name: world_partner_bombette start: 0x317E50 vram: 0x802BD100 - overlay: True subsegments: - [0x317E50, c, bombette] - [0x3195D0] @@ -2420,7 +2440,6 @@ segments: name: world_partner_parakarry start: 0x319670 vram: 0x802BD100 - overlay: True subsegments: - [0x319670, c, parakarry] - [0x31B000] @@ -2429,7 +2448,6 @@ segments: name: world_partner_kooper start: 0x31B120 vram: 0x802BD100 - overlay: True subsegments: - [0x31B120, c, kooper] - [0x31CB60] @@ -2438,7 +2456,6 @@ segments: name: world_partner_watt start: 0x31CC70 vram: 0x802BD100 - overlay: True subsegments: - [0x31CC70, c, watt] - [0x31DDC0] @@ -2447,7 +2464,6 @@ segments: name: world_partner_sushie start: 0x31DE70 vram: 0x802BD100 - overlay: True subsegments: - [0x31DE70, c, sushie] - [0x320B20] @@ -2456,7 +2472,6 @@ segments: name: world_partner_lakilester start: 0x320C50 vram: 0x802BD100 - overlay: True subsegments: - [0x320C50, c, lakilester] - [0x3239B0] @@ -2465,7 +2480,6 @@ segments: name: world_partner_bow start: 0x323A50 vram: 0x802BD100 - overlay: True subsegments: - [0x323A50, c, bow] - [0x324930] @@ -2474,7 +2488,6 @@ segments: name: world_partner_goompa start: 0x324A10 vram: 0x802BD100 - overlay: True subsegments: - [0x324A10, c, goompa] - [0x324E80] @@ -2483,7 +2496,6 @@ segments: name: world_partner_goombaria start: 0x324F10 vram: 0x802BD100 - overlay: True subsegments: - [0x324F10, c, goombaria] - [0x325000] @@ -2492,17 +2504,19 @@ segments: name: world_partner_twink start: 0x325070 vram: 0x802BD100 - overlay: True subsegments: - [0x325070, c, twink] - [0x325160] - type: code start: 0x3251D0 vram: 0x802C0000 - overlay: True subsegments: - [0x3251D0, c, 3251D0] - [0x3255E0] + +############### +### Effects ### +############### - type: code start: 0x325AD0 vram: 0xE0200000 @@ -2562,7 +2576,9 @@ segments: subsegments: - [0x328110, c, landing_dust] - [0x328D20] - - [0x328EA0, bin] # landing_dust, walking_dust, smoke_ring, smoke_impact, smoke_burst gfx + - start: 0x328EA0 # landing_dust, walking_dust, smoke_ring, smoke_impact, smoke_burst gfx + type: bin + align: 16 - name: effect_walking_dust dir: effects type: code @@ -3535,7 +3551,9 @@ segments: subsegments: - [0x3A70F0, c, quizmo_audience] - [0x3A7710] - - [0x3A77A0, bin] # quizmo_audience gfx + - start: 0x3A77A0 # quizmo_audience gfx + type: bin + align: 16 - name: effect_butterflies dir: effects type: code @@ -3654,7 +3672,9 @@ segments: subsegments: - [0x3B7B80, c, water_fountain] - [0x3B8470] - - [0x3B8860, bin] # water_fountain gfx + - start: 0x3B8860 # water_fountain gfx + type: bin + align: 16 - name: effect_underwater dir: effects type: code @@ -3663,7 +3683,9 @@ segments: subsegments: - [0x3B8BD0, c, underwater] - [0x3B9A50] - - [0x3B9A70, bin] # underwater gfx + - start: 0x3B9A70 # underwater gfx + type: bin + align: 16 - name: effect_lightning_bolt dir: effects type: code @@ -4128,7 +4150,9 @@ segments: subsegments: - [0x3FEAE0, c, lil_oink] - [0x3FF180] - - [0x3FF250, bin] # lil_oink gfx + - start: 0x3FF250 # lil_oink gfx + type: bin + align: 16 - name: effect_something_rotating dir: effects type: code @@ -4181,6 +4205,7 @@ segments: - [0x404E40, data] - type: group # partner_buff gfx start: 0x404F40 + align: 16 subsegments: - start: 0x404F40 type: ci4 @@ -4273,6 +4298,10 @@ segments: - [0x414BA0, c, effect_86] - [0x415020] - [0x415060, bin] # effect_86 gfx + +####################### +### Action Commands ### +####################### - type: code start: 0x415D90 vram: 0x802A1000 @@ -4284,7 +4313,6 @@ segments: vram: 0x802A9000 dir: battle/action_cmd name: action_cmd_jump - overlay: True subsegments: - [0x4219F0, c, jump] - [0x421FC0] @@ -4293,7 +4321,6 @@ segments: vram: 0x802A9000 dir: battle/action_cmd name: action_cmd_hammer - overlay: True subsegments: - [0x422000, c, hammer] - [0x422A90] @@ -4302,7 +4329,6 @@ segments: vram: 0x802A9000 dir: battle/action_cmd name: action_cmd_flee - overlay: True subsegments: - [0x422AD0, c, flee] - [0x4233B0] @@ -4311,7 +4337,6 @@ segments: vram: 0x802A9000 dir: battle/action_cmd name: action_cmd_break_free - overlay: True subsegments: - [0x4233F0, c, break_free] - [0x423C30] @@ -4320,7 +4345,6 @@ segments: vram: 0x802A9000 dir: battle/action_cmd name: action_cmd_whirlwind - overlay: True subsegments: - [0x423C70, c, whirlwind] - start: 0x424550 @@ -4350,7 +4374,6 @@ segments: vram: 0x802A9000 dir: battle/action_cmd name: action_cmd_stop_leech - overlay: True subsegments: - [0x425590, c, stop_leech] - [0x425B10] @@ -4359,7 +4382,6 @@ segments: vram: 0x802A9000 dir: battle/action_cmd name: action_cmd_07 - overlay: True subsegments: - [0x425B50, c, "07"] - [0x426130] @@ -4368,7 +4390,6 @@ segments: vram: 0x802A9000 dir: battle/action_cmd name: action_cmd_dizzy_shell - overlay: True subsegments: - [0x426170, c, dizzy_shell] - [0x426970] @@ -4377,7 +4398,6 @@ segments: vram: 0x802A9000 dir: battle/action_cmd name: action_cmd_fire_shell - overlay: True subsegments: - [0x4269D0, c, fire_shell] - [0x427320] @@ -4386,7 +4406,6 @@ segments: vram: 0x802A9000 dir: battle/action_cmd name: action_cmd_0A - overlay: True subsegments: - [0x4273B0, c, 0A] - [0x427A30] @@ -4395,7 +4414,6 @@ segments: vram: 0x802A9000 dir: battle/action_cmd name: action_cmd_bomb - overlay: True subsegments: - [0x427A70, c, bomb] - [0x428280] @@ -4404,7 +4422,6 @@ segments: vram: 0x802A9000 dir: battle/action_cmd name: action_cmd_body_slam - overlay: True subsegments: - [0x4282E0, c, body_slam] - [0x428A30] @@ -4413,7 +4430,6 @@ segments: vram: 0x802A9000 dir: battle/action_cmd name: action_cmd_air_lift - overlay: True subsegments: - [0x428A70, c, air_lift] - [0x4292C0] @@ -4422,7 +4438,6 @@ segments: vram: 0x802A9000 dir: battle/action_cmd name: action_cmd_air_raid - overlay: True subsegments: - [0x429320, c, air_raid] - [0x429C90] @@ -4431,7 +4446,6 @@ segments: vram: 0x802A9000 dir: battle/action_cmd name: action_cmd_squirt - overlay: True subsegments: - [0x429D20, c, squirt] - [0x42A480] @@ -4440,7 +4454,6 @@ segments: vram: 0x802A9000 dir: battle/action_cmd name: action_cmd_water_block - overlay: True subsegments: - [0x42A4F0, c, water_block] - start: 0x42B650 @@ -4470,7 +4483,6 @@ segments: vram: 0x802A9000 dir: battle/action_cmd name: action_cmd_tidal_wave - overlay: True subsegments: - [0x42C6F0, c, tidal_wave] - [0x42CEB0] @@ -4479,7 +4491,6 @@ segments: vram: 0x802A9000 dir: battle/action_cmd name: action_cmd_power_shock - overlay: True subsegments: - [0x42CF10, c, power_shock] - [0x42D9B0] @@ -4488,7 +4499,6 @@ segments: vram: 0x802A9000 dir: battle/action_cmd name: action_cmd_mega_shock - overlay: True subsegments: - [0x42DA10, c, mega_shock] - [0x42E342] # todo offset ? @@ -4497,7 +4507,6 @@ segments: vram: 0x802A9000 dir: battle/action_cmd name: action_cmd_smack - overlay: True subsegments: - [0x42E3A0, c, smack] - [0x42ED70] @@ -4506,7 +4515,6 @@ segments: vram: 0x802A9000 dir: battle/action_cmd name: action_cmd_spiny_surge - overlay: True subsegments: - [0x42EE20, c, spiny_surge] - [0x42F680] @@ -4515,7 +4523,6 @@ segments: vram: 0x802A9000 dir: battle/action_cmd name: action_cmd_hurricane - overlay: True subsegments: - [0x42F6E0, c, hurricane] - [0x42FFC0] @@ -4524,16 +4531,18 @@ segments: vram: 0x802A9000 dir: battle/action_cmd name: action_cmd_spook - overlay: True subsegments: - [0x430020, c, spook] - [0x430940] + +#################### +### Battle Areas ### +#################### - dir: battle/area_kmr_part_1 type: code start: 0x4309A0 vram: 0x80218000 subalign: 4 - overlay: True subsegments: - [0x4309A0, c, area] - [0x4309A0, c, actor/goomba] @@ -4550,7 +4559,6 @@ segments: start: 0x439A90 vram: 0x80218000 subalign: 4 - overlay: True subsegments: - [0x439A90, c, area] - [0x439A90, c, actor/blue_goomba] @@ -4570,7 +4578,6 @@ segments: start: 0x447440 vram: 0x80218000 subalign: 4 - overlay: True subsegments: - [0x447440, c, area] - [0x447440, c, actor/spiked_goomba] @@ -4597,7 +4604,6 @@ segments: type: code start: 0x464490 vram: 0x80218000 - overlay: True subsegments: - [0x464490, c, actor/chan] - [0x464560, c, actor/lee] @@ -4612,7 +4618,6 @@ segments: type: code start: 0x47F0B0 vram: 0x80218000 - overlay: True subsegments: - [0x47F0B0, c, actor/goombario_tutor] - [0x47F0D0, c, actor/ember] @@ -4627,7 +4632,6 @@ segments: start: 0x48D1A0 vram: 0x80218000 subalign: 4 - overlay: True subsegments: - [0x48D1A0, c, area] - [0x48D1A0, c, actor/goomba] @@ -4646,7 +4650,6 @@ segments: type: code start: 0x4A10A0 vram: 0x80218000 - overlay: True subsegments: - [0x4A10A0, c, area] - [0x4A10A0, c, actor/bullet_bill] @@ -4674,7 +4677,6 @@ segments: start: 0x4B11F0 vram: 0x80218000 subalign: 4 - overlay: True subsegments: - [0x4B11F0, c, area] - [0x4B11F0, c, actor/fake_bowser] @@ -4699,7 +4701,6 @@ segments: type: code start: 0x4CF1B0 vram: 0x80218000 - overlay: True subsegments: - [0x4CF1B0, c, area] - [0x4CF1B0, c, actor/eldstar] @@ -4710,7 +4711,6 @@ segments: start: 0x4D01F0 vram: 0x80218000 subalign: 4 - overlay: True subsegments: - [0x4D01F0, c, area] - [0x4D01F0, c, actor/cleft] @@ -4726,7 +4726,6 @@ segments: start: 0x4DA5E0 vram: 0x80218000 subalign: 16 # BSS alignment hack - overlay: True subsegments: - [0x4DA5E0, c, actor/pokey] - [0x4DA6B0, c, actor/bandit] @@ -4737,7 +4736,6 @@ segments: type: code start: 0x4E2740 vram: 0x80218000 - overlay: True subsegments: - [0x4E2740, c, actor/pokey_mummy] - [0x4E2810, c, actor/swooper] @@ -4763,7 +4761,6 @@ segments: type: code start: 0x4EF4A0 vram: 0x80218000 - overlay: True subsegments: - [0x4EF4A0, c, actor/chain_chomp] - [0x4EFB30, c, actor/tutankoopa] @@ -4785,7 +4782,6 @@ segments: type: code start: 0x4F7BE0 vram: 0x80218000 - overlay: True subsegments: - [0x4F7BE0, c, actor/forest_fuzzy] - [0x4F7D50, c, actor/bzzap] @@ -4797,7 +4793,6 @@ segments: type: code start: 0x4FEA50 vram: 0x80218000 - overlay: True subsegments: - [0x4FEA50, c, actor/hypergoomba] - [0x4FED30, c, actor/hyper_paragoomba] @@ -4816,7 +4811,6 @@ segments: type: code start: 0x50F020 vram: 0x80218000 - overlay: True subsegments: - [0x50F020, c, actor/clubba] - [0x50F020, c, actor/tubba_blubba] @@ -4831,7 +4825,6 @@ segments: type: code start: 0x5125D0 vram: 0x80218000 - overlay: True subsegments: - [0x5125D0, c, actor/red_shy_guy] - [0x5126A0, c, actor/blue_shy_guy] @@ -4859,7 +4852,6 @@ segments: type: code start: 0x52B6A0 vram: 0x80218000 - overlay: True subsegments: - [0x52B6A0, c, actor/general_guy] - [0x52B7C0, c, actor/toy_tank] @@ -4870,49 +4862,42 @@ segments: type: code start: 0x543570 vram: 0x80231000 - overlay: True subsegments: - [0x543570, c, actor/shy_squad] - dir: battle/area_omo2_2 type: code start: 0x5483E0 vram: 0x80231000 - overlay: True subsegments: - [0x5483E0, c, actor/stilt_guy] - dir: battle/area_omo2_3 type: code start: 0x54CC70 vram: 0x80231000 - overlay: True subsegments: - [0x54CC70, c, actor/shy_stack] - dir: battle/area_omo2_4 type: code start: 0x552440 vram: 0x80231000 - overlay: True subsegments: - [0x552440, c, actor/signal_guy] - dir: battle/area_omo2_5 type: code start: 0x552BB0 vram: 0x80231000 - overlay: True subsegments: - [0x552BB0, c, actor/shy_squad_dup] - dir: battle/area_omo2_6 type: code start: 0x556C90 vram: 0x80231000 - overlay: True subsegments: - [0x556C90, c, actor/shy_guy_dup] - dir: battle/area_omo3 type: code start: 0x5573E0 vram: 0x80218000 - overlay: True subsegments: - [0x5573E0, c] - [0x557A80, c] @@ -4928,7 +4913,6 @@ segments: type: code start: 0x56E2A0 vram: 0x80218000 - overlay: True subsegments: - [0x56E2A0, c, actor/fuzzipede] - [0x56E800, c, stage/kgr_01] @@ -4938,7 +4922,6 @@ segments: type: code start: 0x573920 vram: 0x80218000 - overlay: True subsegments: - [0x573920, c, actor/spear_guy] - [0x5739F0, c, actor/hurt_plant] @@ -4960,7 +4943,6 @@ segments: type: code start: 0x584940 vram: 0x80218000 - overlay: True subsegments: - [0x584940, c, actor/putrid_piranha] - [0x584B90, c, actor/white_magikoopa] @@ -4978,7 +4960,6 @@ segments: type: code start: 0x58C2F0 vram: 0x80218000 - overlay: True subsegments: - [0x58C2F0, c, actor/lava_bubble] - [0x58C420, c, actor/putrid_piranha] @@ -4999,7 +4980,6 @@ segments: type: code start: 0x59E6E0 vram: 0x80218000 - overlay: True subsegments: - [0x59E6E0, c] - [0x59F420, c] @@ -5009,7 +4989,6 @@ segments: type: code start: 0x5B14B0 vram: 0x80218000 - overlay: True subsegments: - [0x5B14B0, c] - [0x5B16A0, c] @@ -5022,7 +5001,6 @@ segments: type: code start: 0x5CE690 vram: 0x80218000 - overlay: True subsegments: - [0x5CE690, c] - [0x5CF2D0, c] @@ -5031,7 +5009,6 @@ segments: type: code start: 0x5EC490 vram: 0x80218000 - overlay: True subsegments: - [0x5EC490, c] - [0x5EC560, c] @@ -5047,7 +5024,6 @@ segments: type: code start: 0x608AB0 vram: 0x80218000 - overlay: True subsegments: - [0x608AB0, c] - [0x608CB0, c] @@ -5059,7 +5035,6 @@ segments: type: code start: 0x6186F0 vram: 0x80218000 - overlay: True subsegments: - [0x6186F0, c] - [0x6187C0, c] @@ -5072,7 +5047,6 @@ segments: type: code start: 0x623BA0 vram: 0x80218000 - overlay: True subsegments: - [0x623BA0, c, actor/duplighost] - [0x625190, c, actor/gulpit] @@ -5091,7 +5065,6 @@ segments: type: code start: 0x63D1E0 vram: 0x80218000 - overlay: True subsegments: - [0x63D1E0, c, actor/monstar] - [0x63D710, c, actor/paragoomba] @@ -5132,7 +5105,6 @@ segments: type: code start: 0x648E10 vram: 0x80218000 - overlay: True subsegments: - [0x648E10, c] - [0x649050, c] @@ -5146,7 +5118,6 @@ segments: start: 0x660750 vram: 0x80218000 subalign: 16 # BSS alignment hack - overlay: True subsegments: - [0x660750, c, actor/crystal_king] - [0x660D20, c, actor/crystal_bit] @@ -5156,7 +5127,6 @@ segments: type: code start: 0x669D80 vram: 0x80218000 - overlay: True subsegments: - [0x669D80, c, actor/duplighost] - [0x66B370, c, actor/swoopula] @@ -5174,7 +5144,6 @@ segments: type: code start: 0x684A30 vram: 0x80218000 - overlay: True subsegments: - [0x684A30, c] - [0x684B00, c] @@ -5185,7 +5154,6 @@ segments: type: code start: 0x69F200 vram: 0x80218000 - overlay: True subsegments: - [0x69F200, c] - [0x69F320, c] @@ -5196,7 +5164,6 @@ segments: type: code start: 0x6BBB90 vram: 0x80218000 - overlay: True subsegments: - [0x6BBB90, c] - [0x6BBC60, c] @@ -5206,7 +5173,6 @@ segments: type: code start: 0x6CC070 vram: 0x80218000 - overlay: True subsegments: - [0x6CC070, c] - [0x6CC1C0, c] @@ -5215,7 +5181,6 @@ segments: type: code start: 0x6DBDA0 vram: 0x80218000 - overlay: True subsegments: - [0x6DBDA0, c] - [0x6DC2F0, c] @@ -5224,7 +5189,6 @@ segments: type: code start: 0x6DDDC0 vram: 0x80218000 - overlay: True subsegments: - [0x6DDDC0, c] - [0x6DDE90, c] @@ -5237,12 +5201,15 @@ segments: - [0x6DE4A0, c] - [0x6DE650, c] - [0x6DE670, data] + +####################### +### Battle Partners ### +####################### - name: battle_partner_goompa dir: battle/partner type: code start: 0x6F0B30 vram: 0x80238000 - overlay: True subsegments: - [0x6F0B30, c, goompa] - name: battle_partner_goombario @@ -5250,7 +5217,6 @@ segments: type: code start: 0x6F10E0 vram: 0x80238000 - overlay: True subsegments: - [0x6F10E0, c, goombario] - [0x6F2290] @@ -5259,7 +5225,6 @@ segments: type: code start: 0x6F5E80 vram: 0x80238000 - overlay: True subsegments: - [0x6F5E80, c, kooper] - [0x6F62B0] @@ -5268,7 +5233,6 @@ segments: type: code start: 0x6FAD10 vram: 0x80238000 - overlay: True subsegments: - [0x6FAD10, c, bombette] - [0x6FB350] @@ -5277,7 +5241,6 @@ segments: type: code start: 0x6FFD80 vram: 0x80238000 - overlay: True subsegments: - [0x6FFD80, c, parakarry] - [0x701590, data] @@ -5286,7 +5249,6 @@ segments: type: code start: 0x703AF0 vram: 0x80238000 - overlay: True subsegments: - [0x703AF0, c, watt] - [0x704A80, data] @@ -5295,7 +5257,6 @@ segments: type: code start: 0x707CA0 vram: 0x80238000 - overlay: True subsegments: - [0x707CA0, c, sushie] - [0x708B70, data] @@ -5304,7 +5265,6 @@ segments: type: code start: 0x70BD10 vram: 0x80238000 - overlay: True subsegments: - [0x70BD10, c, lakilester] - [0x70DEE0, data, 70DED0] @@ -5314,7 +5274,6 @@ segments: type: code start: 0x710EF0 vram: 0x80238000 - overlay: True subsegments: - [0x710EF0, c, bow] - [0x7111F0, data] @@ -5323,16 +5282,18 @@ segments: type: code start: 0x714CF0 vram: 0x80238000 - overlay: True subsegments: - [0x714CF0, c, twink] - [0x714DC0, data] + +#################### +### Battle Items ### +#################### - name: mushroom dir: battle/item type: code start: 0x715850 vram: 0x802A1000 - overlay: True subsegments: - [0x715850, c, mushroom] - [0x715E50] @@ -5341,7 +5302,6 @@ segments: type: code start: 0x716C60 vram: 0x802A1000 - overlay: True subsegments: - [0x716C60, c, fire_flower] - [0x717060] @@ -5350,7 +5310,6 @@ segments: type: code start: 0x7179D0 vram: 0x802A1000 - overlay: True subsegments: - [0x7179D0, c, dusty_hammer] - start: 0x717C10 @@ -5365,7 +5324,6 @@ segments: type: code start: 0x718850 vram: 0x802A1000 - overlay: True subsegments: - [0x718850, c, pow_block] - [0x718BF0] @@ -5374,7 +5332,6 @@ segments: type: code start: 0x719970 vram: 0x802A1000 - overlay: True subsegments: - [0x719970, c, pebble] - start: 0x719BB0 @@ -5389,7 +5346,6 @@ segments: type: code start: 0x71A7F0 vram: 0x802A1000 - overlay: True subsegments: - [0x71A7F0, c, volt_shroom] - [0x71AA70] @@ -5398,7 +5354,6 @@ segments: type: code start: 0x71B1A0 vram: 0x802A1000 - overlay: True subsegments: - [0x71B1A0, c, thunder_rage] - [0x71B640] @@ -5407,7 +5362,6 @@ segments: type: code start: 0x71BE30 vram: 0x802A1000 - overlay: True subsegments: - [0x71BE30, c, snowman_doll] - [0x71C270] @@ -5416,7 +5370,6 @@ segments: type: code start: 0x71CCE0 vram: 0x802A1000 - overlay: True subsegments: - [0x71CCE0, c, dried_shroom] - [0x71D010] @@ -5425,7 +5378,6 @@ segments: type: code start: 0x71D770 vram: 0x802A1000 - overlay: True subsegments: - [0x71D770, c, shooting_star] - [0x71DCC0] @@ -5434,7 +5386,6 @@ segments: type: code start: 0x71E650 vram: 0x802A1000 - overlay: True subsegments: - [0x71E650, c, sleepy_sheep] - start: 0x71EFC0 @@ -5454,7 +5405,6 @@ segments: type: code start: 0x7215A0 vram: 0x802A1000 - overlay: True subsegments: - [0x7215A0, c, stone_cap] - [0x721970] @@ -5463,7 +5413,6 @@ segments: type: code start: 0x722000 vram: 0x802A1000 - overlay: True subsegments: - [0x722000, c, tasty_tonic] - [0x7222D0] @@ -5472,7 +5421,6 @@ segments: type: code start: 0x722B40 vram: 0x802A1000 - overlay: True subsegments: - [0x722B40, c, thunder_bolt] - [0x722FE0] @@ -5481,7 +5429,6 @@ segments: type: code start: 0x723780 vram: 0x802A1000 - overlay: True subsegments: - [0x723780, c, ultra_shroom] - [0x723AB0] @@ -5490,7 +5437,6 @@ segments: type: code start: 0x724240 vram: 0x802A1000 - overlay: True subsegments: - [0x724240, c, unknown_item] - [0x724570] @@ -5499,7 +5445,6 @@ segments: type: code start: 0x724CE0 vram: 0x802A1000 - overlay: True subsegments: - [0x724CE0, c, super_soda] - [0x725210] @@ -5508,7 +5453,6 @@ segments: type: code start: 0x725F60 vram: 0x802A1000 - overlay: True subsegments: - [0x725F60, c, hustle_drink] - [0x726240] @@ -5517,7 +5461,6 @@ segments: type: code start: 0x726DD0 vram: 0x802A1000 - overlay: True subsegments: - [0x726DD0, c, stop_watch] - [0x727120] @@ -5526,7 +5469,6 @@ segments: type: code start: 0x727910 vram: 0x802A1000 - overlay: True subsegments: - [0x727910, c, dizzy_dial] - [0x727CE0] @@ -5535,7 +5477,6 @@ segments: type: code start: 0x7285E0 vram: 0x802A1000 - overlay: True subsegments: - [0x7285E0, c, please_come_back] - [0x728820] @@ -5544,7 +5485,6 @@ segments: type: code start: 0x728EC0 vram: 0x802A1000 - overlay: True subsegments: - [0x728EC0, c, egg_missile] - start: 0x7291D0 @@ -5566,7 +5506,6 @@ segments: type: code start: 0x72A750 vram: 0x802A1000 - overlay: True subsegments: - [0x72A750, c, insecticide_herb] - start: 0x72AB70 @@ -5582,7 +5521,6 @@ segments: type: code start: 0x72B910 vram: 0x802A1000 - overlay: True subsegments: - [0x72B910, c, fright_jar] - [0x72BC60] @@ -5591,7 +5529,6 @@ segments: type: code start: 0x72C5B0 vram: 0x802A1000 - overlay: True subsegments: - [0x72C5B0, c, mystery] - start: 0x72CF00 @@ -5607,7 +5544,6 @@ segments: type: code start: 0x72DB70 vram: 0x802A1000 - overlay: True subsegments: - [0x72DB70, c, repel_gel] - [0x72DE00] @@ -5616,7 +5552,6 @@ segments: type: code start: 0x72E530 vram: 0x802A1000 - overlay: True subsegments: - [0x72E530, c, life_shroom] - [0x72EA20] @@ -5625,7 +5560,6 @@ segments: type: code start: 0x72F720 vram: 0x802A1000 - overlay: True subsegments: - [0x72F720, c, coconut] - start: 0x72F960 @@ -5641,7 +5575,6 @@ segments: type: code start: 0x7305A0 vram: 0x802A1000 - overlay: True subsegments: - [0x7305A0, c, electro_pop] - [0x730AE0] @@ -5650,7 +5583,6 @@ segments: type: code start: 0x731300 vram: 0x802A1000 - overlay: True subsegments: - [0x731300, c, strange_cake] - start: 0x731EA0 @@ -5670,15 +5602,17 @@ segments: type: code start: 0x7330D0 vram: 0x802A1000 - overlay: True subsegments: - [0x7330D0, c, food] - [0x733700] + +#################### +### Battle Moves ### +#################### - dir: battle/move/hammer type: code start: 0x7345A0 vram: 0x802A1000 - overlay: True subsegments: - [0x7345A0, c, hammer] - [0x734650] @@ -5686,7 +5620,6 @@ segments: type: code start: 0x737890 vram: 0x802A1000 - overlay: True subsegments: - [0x737890, c, spin_smash] - [0x737A20] @@ -5694,7 +5627,6 @@ segments: type: code start: 0x73AED0 vram: 0x802A1000 - overlay: True subsegments: - [0x73AED0, c, quake_hammer] - [0x73AF80] @@ -5702,7 +5634,6 @@ segments: type: code start: 0x73D860 vram: 0x802A1000 - overlay: True subsegments: - [0x73D860, c, jump] - [0x73D9A0] @@ -5710,7 +5641,6 @@ segments: type: code start: 0x740CC0 vram: 0x802A1000 - overlay: True subsegments: - [0x740CC0, c] - [0x740DB0, data] @@ -5718,7 +5648,6 @@ segments: type: code start: 0x743DF0 vram: 0x802A1000 - overlay: True subsegments: - [0x743DF0, c] - [0x743FF0, data] @@ -5726,7 +5655,6 @@ segments: type: code start: 0x746E10 vram: 0x802A1000 - overlay: True subsegments: - [0x746E10, c] - [0x746F00, data] @@ -5734,7 +5662,6 @@ segments: type: code start: 0x748DD0 vram: 0x802A1000 - overlay: True subsegments: - [0x748DD0, c] - [0x748EC0, data] @@ -5742,7 +5669,6 @@ segments: type: code start: 0x74AD90 vram: 0x802A1000 - overlay: True subsegments: - [0x74AD90, c] - [0x74AF40, data] @@ -5750,7 +5676,6 @@ segments: type: code start: 0x74D570 vram: 0x802A1000 - overlay: True subsegments: - [0x74D570, c] - [0x74D850, data] @@ -5758,7 +5683,6 @@ segments: type: code start: 0x74F130 vram: 0x802A1000 - overlay: True subsegments: - [0x74F130, c] - [0x74F3D0, data] @@ -5766,7 +5690,6 @@ segments: type: code start: 0x752450 vram: 0x802A1000 - overlay: True subsegments: - [0x752450, c] - [0x752500, data] @@ -5774,7 +5697,6 @@ segments: type: code start: 0x756780 vram: 0x802A1000 - overlay: True subsegments: - [0x756780, c] - [0x756900, data] @@ -5782,7 +5704,6 @@ segments: type: code start: 0x7595B0 vram: 0x802A1000 - overlay: True subsegments: - [0x7595B0, c] - [0x7598D0, data] @@ -5790,7 +5711,6 @@ segments: type: code start: 0x75C980 vram: 0x802A1000 - overlay: True subsegments: - [0x75C980, c] - [0x75CCE0, data] @@ -5798,7 +5718,6 @@ segments: type: code start: 0x75E5D0 vram: 0x802A1000 - overlay: True subsegments: - [0x75E5D0, c] - [0x75E8F0, data] @@ -5806,7 +5725,6 @@ segments: type: code start: 0x761920 vram: 0x802A1000 - overlay: True subsegments: - [0x761920, c] - [0x761C80, data] @@ -5814,7 +5732,6 @@ segments: type: code start: 0x763540 vram: 0x802A1000 - overlay: True subsegments: - [0x763540, c] - [0x7635F0, data] @@ -5822,7 +5739,6 @@ segments: type: code start: 0x765C20 vram: 0x802A1000 - overlay: True subsegments: - [0x765C20, c, auto_jump] - [0x765D10] @@ -5830,7 +5746,6 @@ segments: type: code start: 0x767C90 vram: 0x802A1000 - overlay: True subsegments: - [0x767C90, c] - [0x767D40, data] @@ -5838,7 +5753,6 @@ segments: type: code start: 0x76A830 vram: 0x802A1000 - overlay: True subsegments: - [0x76A830, c, auto_multibounce] - [0x76A920] @@ -5846,7 +5760,6 @@ segments: type: code start: 0x76D760 vram: 0x802A1000 - overlay: True subsegments: - [0x76D760, c] - [0x76D850, data] @@ -5854,7 +5767,6 @@ segments: type: code start: 0x76F330 vram: 0x802A1000 - overlay: True subsegments: - [0x76F330, c] - [0x76F420, data] @@ -5862,7 +5774,6 @@ segments: type: code start: 0x770F30 vram: 0x802A1000 - overlay: True subsegments: - [0x770F30, c] - [0x771020, data] @@ -5870,7 +5781,6 @@ segments: type: code start: 0x772BA0 vram: 0x802A1000 - overlay: True subsegments: - [0x772BA0, c] - [0x772C50, data] @@ -5878,7 +5788,6 @@ segments: type: code start: 0x775100 vram: 0x802A1000 - overlay: True subsegments: - [0x775100, c] - [0x7751B0, data] @@ -5886,7 +5795,6 @@ segments: type: code start: 0x777690 vram: 0x802A1000 - overlay: True subsegments: - [0x777690, c] - [0x777740, data] @@ -5894,7 +5802,6 @@ segments: type: code start: 0x779C90 vram: 0x802A1000 - overlay: True subsegments: - [0x779C90, c] - [0x779E30, data] @@ -5902,7 +5809,6 @@ segments: type: code start: 0x77CB80 vram: 0x802A1000 - overlay: True subsegments: - [0x77CB80, c] - [0x77CC30, data] @@ -5910,7 +5816,6 @@ segments: type: code start: 0x77F240 vram: 0x802A1000 - overlay: True subsegments: - [0x77F240, c] - [0x77F3D0, data] @@ -5918,7 +5823,6 @@ segments: type: code start: 0x781920 vram: 0x802A1000 - overlay: True subsegments: - [0x781920, c] - [0x781AF0, data] @@ -5926,7 +5830,6 @@ segments: type: code start: 0x783BA0 vram: 0x802A1000 - overlay: True subsegments: - [0x783BA0, c] - [0x783C90, data] @@ -5934,7 +5837,6 @@ segments: type: code start: 0x785B20 vram: 0x802A1000 - overlay: True subsegments: - [0x785B20, c] - [0x785C20, data] @@ -5942,7 +5844,6 @@ segments: type: code start: 0x789E60 vram: 0x802A1000 - overlay: True subsegments: - [0x789E60, c] - [0x78A490] @@ -5950,7 +5851,6 @@ segments: type: code start: 0x78B600 vram: 0x802A1000 - overlay: True subsegments: - [0x78B600, c] - [0x78C070] @@ -5958,7 +5858,6 @@ segments: type: code start: 0x78D150 vram: 0x802A1000 - overlay: True subsegments: - [0x78D150, c] - [0x78D770] @@ -5966,7 +5865,6 @@ segments: type: code start: 0x78E7D0 vram: 0x802A1000 - overlay: True subsegments: - [0x78E7D0, c] - [0x78EEC0] @@ -5974,7 +5872,6 @@ segments: type: code start: 0x7900D0 vram: 0x802A1000 - overlay: True subsegments: - [0x7900D0, c] - [0x7909C0] @@ -5982,7 +5879,6 @@ segments: type: code start: 0x791D90 vram: 0x802A1000 - overlay: True subsegments: - [0x791D90, c] - [0x7923C0] @@ -5990,7 +5886,6 @@ segments: type: code start: 0x793D20 vram: 0x802A1000 - overlay: True subsegments: - [0x793D20, c] - [0x794240] @@ -5998,7 +5893,6 @@ segments: type: code start: 0x7952E0 vram: 0x802A1000 - overlay: True subsegments: - [0x7952E0, c] - [0x7959B0] @@ -6006,7 +5900,6 @@ segments: type: code start: 0x796FC0 vram: 0x802A1000 - overlay: True subsegments: - [0x796FC0, c] - [0x7984B0] @@ -6014,7 +5907,6 @@ segments: type: code start: 0x7997B0 vram: 0x802A1000 - overlay: True subsegments: - [0x7997B0, c] - [0x79ACA0] @@ -6022,7 +5914,6 @@ segments: type: code start: 0x79BFA0 vram: 0x802A1000 - overlay: True subsegments: - [0x79BFA0, c] - [0x79C4D0] @@ -6030,20 +5921,17 @@ segments: type: code start: 0x79D8A0 vram: 0x802A1000 - overlay: True subsegments: - [0x79D8A0, c] - [0x79DE50] - type: code # todo identify start: 0x79EF40 vram: 0x802A1000 - overlay: True subsegments: - [0x79EF40, bin] - type: code # todo identify start: 0x7A89A0 vram: 0x802A1000 - overlay: True subsegments: - [0x7A89A0, bin] - [0x7B5960, bin] # todo identify @@ -6051,7 +5939,6 @@ segments: type: code start: 0x7E0E80 vram: 0x80280000 - overlay: True subsegments: - [0x7E0E80, c] - [0x7E2AA0, c] @@ -6060,10 +5947,13 @@ segments: - [0x7E4D00, .data, 7E0E80] - [0x7E4EF0, data] - [0x7E7380] + +############ +### Maps ### +############ - name: machi dir: world/area_mac/machi type: code - overlay: True start: 0x7E73A0 vram: 0x80240000 subsegments: @@ -6077,7 +5967,6 @@ segments: - name: mac_00 dir: world/area_mac/mac_00 type: code - overlay: True start: 0x7EAD10 vram: 0x80240000 subsegments: @@ -6100,7 +5989,6 @@ segments: - name: mac_01 dir: world/area_mac/mac_01 type: code - overlay: True start: 0x800880 vram: 0x80240000 subsegments: @@ -6122,7 +6010,6 @@ segments: - name: mac_02 dir: world/area_mac/mac_02 type: code - overlay: True start: 0x8232C0 vram: 0x80240000 subsegments: @@ -6141,7 +6028,6 @@ segments: - name: mac_03 dir: world/area_mac/mac_03 type: code - overlay: True start: 0x831800 vram: 0x80240000 subsegments: @@ -6160,7 +6046,6 @@ segments: - name: mac_04 dir: world/area_mac/mac_04 type: code - overlay: True start: 0x842BD0 vram: 0x80240000 subsegments: @@ -6184,7 +6069,6 @@ segments: - name: mac_05 dir: world/area_mac/mac_05 type: code - overlay: True start: 0x852170 vram: 0x80240000 subsegments: @@ -6201,7 +6085,6 @@ segments: - name: mac_06 dir: world/area_mac/mac_06 type: code - overlay: True start: 0x864B40 vram: 0x80240000 subsegments: @@ -6215,7 +6098,6 @@ segments: - name: tik_01 dir: world/area_tik/tik_01 type: code - overlay: True start: 0x8694B0 vram: 0x80240000 subsegments: @@ -6230,7 +6112,6 @@ segments: - name: tik_02 dir: world/area_tik/tik_02 type: code - overlay: True start: 0x86C740 vram: 0x80240000 subsegments: @@ -6245,7 +6126,6 @@ segments: - name: tik_03 dir: world/area_tik/tik_03 type: code - overlay: True start: 0x86EB00 vram: 0x80240000 subsegments: @@ -6261,7 +6141,6 @@ segments: - name: tik_04 dir: world/area_tik/tik_04 type: code - overlay: True start: 0x871A30 vram: 0x80240000 subsegments: @@ -6276,7 +6155,6 @@ segments: - name: tik_05 dir: world/area_tik/tik_05 type: code - overlay: True start: 0x874DC0 vram: 0x80240000 subsegments: @@ -6291,7 +6169,6 @@ segments: - name: tik_06 dir: world/area_tik/tik_06 type: code - overlay: True start: 0x876EE0 vram: 0x80240000 subsegments: @@ -6305,7 +6182,6 @@ segments: - name: tik_07 dir: world/area_tik/tik_07 type: code - overlay: True start: 0x879BE0 vram: 0x80240000 subsegments: @@ -6320,7 +6196,6 @@ segments: - name: tik_08 dir: world/area_tik/tik_08 type: code - overlay: True start: 0x87EDF0 vram: 0x80240000 subsegments: @@ -6335,7 +6210,6 @@ segments: - name: tik_09 dir: world/area_tik/tik_09 type: code - overlay: True start: 0x8821C0 vram: 0x80240000 subsegments: @@ -6350,7 +6224,6 @@ segments: - name: tik_10 dir: world/area_tik/tik_10 type: code - overlay: True start: 0x8863C0 vram: 0x80240000 subsegments: @@ -6364,7 +6237,6 @@ segments: - name: tik_12 dir: world/area_tik/tik_12 type: code - overlay: True start: 0x888BD0 vram: 0x80240000 subsegments: @@ -6379,7 +6251,6 @@ segments: - name: tik_14 dir: world/area_tik/tik_14 type: code - overlay: True start: 0x88D600 vram: 0x80240000 subsegments: @@ -6393,7 +6264,6 @@ segments: - name: tik_15 dir: world/area_tik/tik_15 type: code - overlay: True start: 0x88FBA0 vram: 0x80240000 subsegments: @@ -6407,7 +6277,6 @@ segments: - name: tik_17 dir: world/area_tik/tik_17 type: code - overlay: True start: 0x892A20 vram: 0x80240000 subsegments: @@ -6421,7 +6290,6 @@ segments: - name: tik_18 dir: world/area_tik/tik_18 type: code - overlay: True start: 0x8956E0 vram: 0x80240000 subsegments: @@ -6435,7 +6303,6 @@ segments: - name: tik_19 dir: world/area_tik/tik_19 type: code - overlay: True start: 0x8975E0 vram: 0x80240000 subsegments: @@ -6448,7 +6315,6 @@ segments: - name: tik_20 dir: world/area_tik/tik_20 type: code - overlay: True start: 0x89A350 vram: 0x80240000 subsegments: @@ -6461,7 +6327,6 @@ segments: - name: tik_21 dir: world/area_tik/tik_21 type: code - overlay: True start: 0x89D7A0 vram: 0x80240000 subsegments: @@ -6473,7 +6338,6 @@ segments: - name: tik_22 dir: world/area_tik/tik_22 type: code - overlay: True start: 0x89FEC0 vram: 0x80240000 subsegments: @@ -6485,7 +6349,6 @@ segments: - name: tik_23 dir: world/area_tik/tik_23 type: code - overlay: True start: 0x8A23D0 vram: 0x80240000 subsegments: @@ -6498,7 +6361,6 @@ segments: - name: tik_24 dir: world/area_tik/tik_24 type: code - overlay: True start: 0x8A5A80 vram: 0x80240000 subsegments: @@ -6513,7 +6375,6 @@ segments: - name: tik_25 dir: world/area_tik/tik_25 type: code - overlay: True start: 0x8A7F80 vram: 0x80240000 subsegments: @@ -6526,7 +6387,6 @@ segments: - name: kgr_01 dir: world/area_kgr/kgr_01 type: code - overlay: True start: 0x8A9A10 vram: 0x80240000 subsegments: @@ -6539,7 +6399,6 @@ segments: - name: kgr_02 dir: world/area_kgr/kgr_02 type: code - overlay: True start: 0x8AA450 vram: 0x80240000 subsegments: @@ -6553,7 +6412,6 @@ segments: - name: kmr_00 dir: world/area_kmr/kmr_00 type: code - overlay: True start: 0x8ABF90 vram: 0x80240000 subsegments: @@ -6567,7 +6425,6 @@ segments: - name: kmr_02 dir: world/area_kmr/kmr_02 type: code - overlay: True start: 0x8B0070 vram: 0x80240000 subsegments: @@ -6588,7 +6445,6 @@ segments: - name: kmr_03 dir: world/area_kmr/kmr_03 type: code - overlay: True start: 0x8C7F90 vram: 0x80240000 subsegments: @@ -6601,7 +6457,6 @@ segments: - name: kmr_04 dir: world/area_kmr/kmr_04 type: code - overlay: True start: 0x8CA900 vram: 0x80240000 subsegments: @@ -6615,7 +6470,6 @@ segments: - name: kmr_05 dir: world/area_kmr/kmr_05 type: code - overlay: True start: 0x8CE070 vram: 0x80240000 subsegments: @@ -6629,7 +6483,6 @@ segments: - name: kmr_06 dir: world/area_kmr/kmr_06 type: code - overlay: True start: 0x8D1510 vram: 0x80240000 subsegments: @@ -6643,7 +6496,6 @@ segments: - name: kmr_07 dir: world/area_kmr/kmr_07 type: code - overlay: True start: 0x8D3DC0 vram: 0x80240000 subsegments: @@ -6654,7 +6506,6 @@ segments: - name: kmr_09 dir: world/area_kmr/kmr_09 type: code - overlay: True start: 0x8D5E00 vram: 0x80240000 subsegments: @@ -6666,7 +6517,6 @@ segments: - name: kmr_10 dir: world/area_kmr/kmr_10 type: code - overlay: True start: 0x8D84D0 vram: 0x80240000 subsegments: @@ -6680,7 +6530,6 @@ segments: - name: kmr_11 dir: world/area_kmr/kmr_11 type: code - overlay: True start: 0x8DA100 vram: 0x80240000 subsegments: @@ -6698,7 +6547,6 @@ segments: - name: kmr_12 dir: world/area_kmr/kmr_12 type: code - overlay: True start: 0x8EB360 vram: 0x80240000 subsegments: @@ -6708,7 +6556,6 @@ segments: - name: kmr_20 dir: world/area_kmr/kmr_20 type: code - overlay: True start: 0x8EBE20 vram: 0x80240000 subsegments: @@ -6737,7 +6584,6 @@ segments: - name: kmr_21 dir: world/area_kmr/kmr_21 type: code - overlay: True start: 0x8FEE80 vram: 0x80240000 subsegments: @@ -6748,7 +6594,6 @@ segments: - name: kmr_22 dir: world/area_kmr/kmr_22 type: code - overlay: True start: 0x8FF670 vram: 0x80240000 subsegments: @@ -6761,7 +6606,6 @@ segments: - name: kmr_23 dir: world/area_kmr/kmr_23 type: code - overlay: True start: 0x907A30 vram: 0x80240000 subsegments: @@ -6772,7 +6616,6 @@ segments: - name: kmr_24 dir: world/area_kmr/kmr_24 type: code - overlay: True start: 0x90B240 vram: 0x80240000 subsegments: @@ -6783,7 +6626,6 @@ segments: - name: kmr_30 dir: world/area_kmr/kmr_30 type: code - overlay: True start: 0x90B6D0 vram: 0x80240000 subsegments: @@ -6795,7 +6637,6 @@ segments: - name: iwa_00 dir: world/area_iwa/iwa_00 type: code - overlay: True start: 0x90CC40 vram: 0x80240000 subsegments: @@ -6806,7 +6647,6 @@ segments: - name: iwa_01 dir: world/area_iwa/iwa_01 type: code - overlay: True start: 0x90F6B0 vram: 0x80240000 subsegments: @@ -6821,7 +6661,6 @@ segments: - name: iwa_02 dir: world/area_iwa/iwa_02 type: code - overlay: True start: 0x915D70 vram: 0x80240000 subsegments: @@ -6833,7 +6672,6 @@ segments: - name: iwa_03 dir: world/area_iwa/iwa_03 type: code - overlay: True start: 0x918BB0 vram: 0x80240000 subsegments: @@ -6846,7 +6684,6 @@ segments: - name: iwa_04 dir: world/area_iwa/iwa_04 type: code - overlay: True start: 0x91B8E0 vram: 0x80240000 subsegments: @@ -6858,7 +6695,6 @@ segments: - name: iwa_10 dir: world/area_iwa/iwa_10 type: code - overlay: True start: 0x91E570 vram: 0x80240000 subsegments: @@ -6878,7 +6714,6 @@ segments: - name: iwa_11 dir: world/area_iwa/iwa_11 type: code - overlay: True start: 0x9269F0 vram: 0x80240000 subsegments: @@ -6892,7 +6727,6 @@ segments: - name: sbk_00 dir: world/area_sbk/sbk_00 type: code - overlay: True start: 0x929270 vram: 0x80240000 subsegments: @@ -6902,7 +6736,6 @@ segments: - name: sbk_01 dir: world/area_sbk/sbk_01 type: code - overlay: True start: 0x929A90 vram: 0x80240000 subsegments: @@ -6912,7 +6745,6 @@ segments: - name: sbk_02 dir: world/area_sbk/sbk_02 type: code - overlay: True start: 0x92A2B0 vram: 0x80240000 subsegments: @@ -6927,7 +6759,6 @@ segments: - name: sbk_03 dir: world/area_sbk/sbk_03 type: code - overlay: True start: 0x92F8B0 vram: 0x80240000 subsegments: @@ -6939,7 +6770,6 @@ segments: - name: sbk_04 dir: world/area_sbk/sbk_04 type: code - overlay: True start: 0x9304D0 vram: 0x80240000 subsegments: @@ -6951,7 +6781,6 @@ segments: - name: sbk_05 dir: world/area_sbk/sbk_05 type: code - overlay: True start: 0x930CF0 vram: 0x80240000 subsegments: @@ -6964,7 +6793,6 @@ segments: - name: sbk_06 dir: world/area_sbk/sbk_06 type: code - overlay: True start: 0x9325C0 vram: 0x80240000 subsegments: @@ -6977,7 +6805,6 @@ segments: - name: sbk_10 dir: world/area_sbk/sbk_10 type: code - overlay: True start: 0x933C80 vram: 0x80240000 subsegments: @@ -6988,7 +6815,6 @@ segments: - name: sbk_11 dir: world/area_sbk/sbk_11 type: code - overlay: True start: 0x934040 vram: 0x80240000 subsegments: @@ -7000,7 +6826,6 @@ segments: - name: sbk_12 dir: world/area_sbk/sbk_12 type: code - overlay: True start: 0x934D40 vram: 0x80240000 subsegments: @@ -7012,7 +6837,6 @@ segments: - name: sbk_13 dir: world/area_sbk/sbk_13 type: code - overlay: True start: 0x9357E0 vram: 0x80240000 subsegments: @@ -7024,7 +6848,6 @@ segments: - name: sbk_14 dir: world/area_sbk/sbk_14 type: code - overlay: True start: 0x9366E0 vram: 0x80240000 subsegments: @@ -7035,7 +6858,6 @@ segments: - name: sbk_15 dir: world/area_sbk/sbk_15 type: code - overlay: True start: 0x936CD0 vram: 0x80240000 subsegments: @@ -7047,7 +6869,6 @@ segments: - name: sbk_16 dir: world/area_sbk/sbk_16 type: code - overlay: True start: 0x937570 vram: 0x80240000 subsegments: @@ -7059,7 +6880,6 @@ segments: - name: sbk_20 dir: world/area_sbk/sbk_20 type: code - overlay: True start: 0x938590 vram: 0x80240000 subsegments: @@ -7072,7 +6892,6 @@ segments: - name: sbk_21 dir: world/area_sbk/sbk_21 type: code - overlay: True start: 0x939560 vram: 0x80240000 subsegments: @@ -7082,7 +6901,6 @@ segments: - name: sbk_22 dir: world/area_sbk/sbk_22 type: code - overlay: True start: 0x939930 vram: 0x80240000 subsegments: @@ -7094,7 +6912,6 @@ segments: - name: sbk_23 dir: world/area_sbk/sbk_23 type: code - overlay: True start: 0x93A760 vram: 0x80240000 subsegments: @@ -7105,7 +6922,6 @@ segments: - name: sbk_24 dir: world/area_sbk/sbk_24 type: code - overlay: True start: 0x93AC30 vram: 0x80240000 subsegments: @@ -7118,7 +6934,6 @@ segments: - name: sbk_25 dir: world/area_sbk/sbk_25 type: code - overlay: True start: 0x93C280 vram: 0x80240000 subsegments: @@ -7132,7 +6947,6 @@ segments: - name: sbk_26 dir: world/area_sbk/sbk_26 type: code - overlay: True start: 0x93DCD0 vram: 0x80240000 subsegments: @@ -7146,7 +6960,6 @@ segments: - name: sbk_30 dir: world/area_sbk/sbk_30 type: code - overlay: True start: 0x93F5B0 vram: 0x80240000 subsegments: @@ -7156,7 +6969,6 @@ segments: - name: sbk_31 dir: world/area_sbk/sbk_31 type: code - overlay: True start: 0x944000 vram: 0x80240000 subsegments: @@ -7168,7 +6980,6 @@ segments: - name: sbk_32 dir: world/area_sbk/sbk_32 type: code - overlay: True start: 0x944A60 vram: 0x80240000 subsegments: @@ -7179,7 +6990,6 @@ segments: - name: sbk_33 dir: world/area_sbk/sbk_33 type: code - overlay: True start: 0x9459D0 vram: 0x80240000 subsegments: @@ -7190,7 +7000,6 @@ segments: - name: sbk_34 dir: world/area_sbk/sbk_34 type: code - overlay: True start: 0x945ED0 vram: 0x80240000 subsegments: @@ -7203,7 +7012,6 @@ segments: - name: sbk_35 dir: world/area_sbk/sbk_35 type: code - overlay: True start: 0x9486B0 vram: 0x80240000 subsegments: @@ -7215,7 +7023,6 @@ segments: - name: sbk_36 dir: world/area_sbk/sbk_36 type: code - overlay: True start: 0x949E60 vram: 0x80240000 subsegments: @@ -7227,7 +7034,6 @@ segments: - name: sbk_40 dir: world/area_sbk/sbk_40 type: code - overlay: True start: 0x94B3A0 vram: 0x80240000 subsegments: @@ -7240,7 +7046,6 @@ segments: - name: sbk_41 dir: world/area_sbk/sbk_41 type: code - overlay: True start: 0x94C040 vram: 0x80240000 subsegments: @@ -7251,7 +7056,6 @@ segments: - name: sbk_42 dir: world/area_sbk/sbk_42 type: code - overlay: True start: 0x94C510 vram: 0x80240000 subsegments: @@ -7263,7 +7067,6 @@ segments: - name: sbk_43 dir: world/area_sbk/sbk_43 type: code - overlay: True start: 0x94D170 vram: 0x80240000 subsegments: @@ -7274,7 +7077,6 @@ segments: - name: sbk_44 dir: world/area_sbk/sbk_44 type: code - overlay: True start: 0x94D5A0 vram: 0x80240000 subsegments: @@ -7286,7 +7088,6 @@ segments: - name: sbk_45 dir: world/area_sbk/sbk_45 type: code - overlay: True start: 0x94E4A0 vram: 0x80240000 subsegments: @@ -7297,7 +7098,6 @@ segments: - name: sbk_46 dir: world/area_sbk/sbk_46 type: code - overlay: True start: 0x94E9A0 vram: 0x80240000 subsegments: @@ -7312,7 +7112,6 @@ segments: - name: sbk_50 dir: world/area_sbk/sbk_50 type: code - overlay: True start: 0x950610 vram: 0x80240000 subsegments: @@ -7322,7 +7121,6 @@ segments: - name: sbk_51 dir: world/area_sbk/sbk_51 type: code - overlay: True start: 0x950970 vram: 0x80240000 subsegments: @@ -7334,7 +7132,6 @@ segments: - name: sbk_52 dir: world/area_sbk/sbk_52 type: code - overlay: True start: 0x951670 vram: 0x80240000 subsegments: @@ -7345,7 +7142,6 @@ segments: - name: sbk_53 dir: world/area_sbk/sbk_53 type: code - overlay: True start: 0x951AE0 vram: 0x80240000 subsegments: @@ -7357,7 +7153,6 @@ segments: - name: sbk_54 dir: world/area_sbk/sbk_54 type: code - overlay: True start: 0x952580 vram: 0x80240000 subsegments: @@ -7368,7 +7163,6 @@ segments: - name: sbk_55 dir: world/area_sbk/sbk_55 type: code - overlay: True start: 0x952A50 vram: 0x80240000 subsegments: @@ -7382,7 +7176,6 @@ segments: - name: sbk_56 dir: world/area_sbk/sbk_56 type: code - overlay: True start: 0x953FC0 vram: 0x80240000 subsegments: @@ -7394,7 +7187,6 @@ segments: - name: sbk_60 dir: world/area_sbk/sbk_60 type: code - overlay: True start: 0x9569F0 vram: 0x80240000 subsegments: @@ -7406,7 +7198,6 @@ segments: - name: sbk_61 dir: world/area_sbk/sbk_61 type: code - overlay: True start: 0x956F90 vram: 0x80240000 subsegments: @@ -7417,7 +7208,6 @@ segments: - name: sbk_62 dir: world/area_sbk/sbk_62 type: code - overlay: True start: 0x957350 vram: 0x80240000 subsegments: @@ -7429,7 +7219,6 @@ segments: - name: sbk_63 dir: world/area_sbk/sbk_63 type: code - overlay: True start: 0x957D70 vram: 0x80240000 subsegments: @@ -7441,7 +7230,6 @@ segments: - name: sbk_64 dir: world/area_sbk/sbk_64 type: code - overlay: True start: 0x958590 vram: 0x80240000 subsegments: @@ -7452,7 +7240,6 @@ segments: - name: sbk_65 dir: world/area_sbk/sbk_65 type: code - overlay: True start: 0x958950 vram: 0x80240000 subsegments: @@ -7462,7 +7249,6 @@ segments: - name: sbk_66 dir: world/area_sbk/sbk_66 type: code - overlay: True start: 0x958CB0 vram: 0x80240000 subsegments: @@ -7476,7 +7262,6 @@ segments: - name: sbk_99 dir: world/area_sbk/sbk_99 type: code - overlay: True start: 0x95AEB0 vram: 0x80240000 subsegments: @@ -7487,7 +7272,6 @@ segments: - name: dro_01 dir: world/area_dro/dro_01 type: code - overlay: True start: 0x95B200 vram: 0x80240000 subsegments: @@ -7499,7 +7283,6 @@ segments: - name: dro_02 dir: world/area_dro/dro_02 type: code - overlay: True start: 0x9691C0 vram: 0x80240000 subsegments: @@ -7517,7 +7300,6 @@ segments: - name: isk_01 dir: world/area_isk/isk_01 type: code - overlay: True start: 0x978140 vram: 0x80240000 subsegments: @@ -7529,7 +7311,6 @@ segments: - name: isk_02 dir: world/area_isk/isk_02 type: code - overlay: True start: 0x978710 vram: 0x80240000 subsegments: @@ -7545,7 +7326,6 @@ segments: - name: isk_03 dir: world/area_isk/isk_03 type: code - overlay: True start: 0x979E50 vram: 0x80240000 subsegments: @@ -7557,7 +7337,6 @@ segments: - name: isk_04 dir: world/area_isk/isk_04 type: code - overlay: True start: 0x97B630 vram: 0x80240000 subsegments: @@ -7573,7 +7352,6 @@ segments: - name: isk_05 dir: world/area_isk/isk_05 type: code - overlay: True start: 0x97DAD0 vram: 0x80240000 subsegments: @@ -7585,7 +7363,6 @@ segments: - name: isk_06 dir: world/area_isk/isk_06 type: code - overlay: True start: 0x980A20 vram: 0x80240000 subsegments: @@ -7597,7 +7374,6 @@ segments: - name: isk_07 dir: world/area_isk/isk_07 type: code - overlay: True start: 0x982440 vram: 0x80240000 subsegments: @@ -7614,7 +7390,6 @@ segments: - name: isk_08 dir: world/area_isk/isk_08 type: code - overlay: True start: 0x984E30 vram: 0x80240000 subsegments: @@ -7626,7 +7401,6 @@ segments: - name: isk_09 dir: world/area_isk/isk_09 type: code - overlay: True start: 0x9864E0 vram: 0x80240000 subsegments: @@ -7641,7 +7415,6 @@ segments: - name: isk_10 dir: world/area_isk/isk_10 type: code - overlay: True start: 0x988B60 vram: 0x80240000 subsegments: @@ -7652,7 +7425,6 @@ segments: - name: isk_11 dir: world/area_isk/isk_11 type: code - overlay: True start: 0x98AA10 vram: 0x80240000 subsegments: @@ -7668,7 +7440,6 @@ segments: - name: isk_12 dir: world/area_isk/isk_12 type: code - overlay: True start: 0x98D640 vram: 0x80240000 subsegments: @@ -7681,7 +7452,6 @@ segments: - name: isk_13 dir: world/area_isk/isk_13 type: code - overlay: True start: 0x98F7E0 vram: 0x80240000 subsegments: @@ -7692,7 +7462,6 @@ segments: - name: isk_14 dir: world/area_isk/isk_14 type: code - overlay: True start: 0x992730 vram: 0x80240000 subsegments: @@ -7704,7 +7473,6 @@ segments: - name: isk_16 dir: world/area_isk/isk_16 type: code - overlay: True start: 0x9951F0 vram: 0x80240000 subsegments: @@ -7718,7 +7486,6 @@ segments: - name: isk_18 dir: world/area_isk/isk_18 type: code - overlay: True start: 0x997F70 vram: 0x80240000 subsegments: @@ -7730,7 +7497,6 @@ segments: - name: isk_19 dir: world/area_isk/isk_19 type: code - overlay: True start: 0x999740 vram: 0x80240000 subsegments: @@ -7742,7 +7508,6 @@ segments: - name: trd_00 dir: world/area_trd/trd_00 type: code - overlay: True start: 0x999C70 vram: 0x80240000 subsegments: @@ -7757,7 +7522,6 @@ segments: - name: trd_01 dir: world/area_trd/trd_01 type: code - overlay: True start: 0x99C990 vram: 0x80240000 subsegments: @@ -7772,7 +7536,6 @@ segments: - name: trd_02 dir: world/area_trd/trd_02 type: code - overlay: True start: 0x9A0FE0 vram: 0x80240000 subsegments: @@ -7786,7 +7549,6 @@ segments: - name: trd_03 dir: world/area_trd/trd_03 type: code - overlay: True start: 0x9A4650 vram: 0x80240000 subsegments: @@ -7801,7 +7563,6 @@ segments: - name: trd_04 dir: world/area_trd/trd_04 type: code - overlay: True start: 0x9A83F0 vram: 0x80240000 subsegments: @@ -7815,7 +7576,6 @@ segments: - name: trd_05 dir: world/area_trd/trd_05 type: code - overlay: True start: 0x9AE700 vram: 0x80240000 subsegments: @@ -7829,7 +7589,6 @@ segments: - name: trd_06 dir: world/area_trd/trd_06 type: code - overlay: True start: 0x9B1790 vram: 0x80240000 subsegments: @@ -7844,7 +7603,6 @@ segments: - name: trd_07 dir: world/area_trd/trd_07 type: code - overlay: True start: 0x9B6980 vram: 0x80240000 subsegments: @@ -7858,7 +7616,6 @@ segments: - name: trd_08 dir: world/area_trd/trd_08 type: code - overlay: True start: 0x9BB2A0 vram: 0x80240000 subsegments: @@ -7871,7 +7628,6 @@ segments: - name: trd_09 dir: world/area_trd/trd_09 type: code - overlay: True start: 0x9BD660 vram: 0x80240000 subsegments: @@ -7886,7 +7642,6 @@ segments: - name: trd_10 dir: world/area_trd/trd_10 type: code - overlay: True start: 0x9C2910 vram: 0x80240000 subsegments: @@ -7899,7 +7654,6 @@ segments: - name: nok_01 dir: world/area_nok/nok_01 type: code - overlay: True start: 0x9C53E0 vram: 0x80240000 subsegments: @@ -7917,7 +7671,6 @@ segments: - name: nok_02 dir: world/area_nok/nok_02 type: code - overlay: True start: 0x9D7020 vram: 0x80240000 subsegments: @@ -7941,7 +7694,6 @@ segments: - name: nok_03 dir: world/area_nok/nok_03 type: code - overlay: True start: 0x9EB7F0 vram: 0x80240000 subsegments: @@ -7953,7 +7705,6 @@ segments: - name: nok_04 dir: world/area_nok/nok_04 type: code - overlay: True start: 0x9EDBF0 vram: 0x80240000 subsegments: @@ -7966,7 +7717,6 @@ segments: - name: nok_11 dir: world/area_nok/nok_11 type: code - overlay: True start: 0x9F4A40 vram: 0x80240000 subsegments: @@ -7978,7 +7728,6 @@ segments: - name: nok_12 dir: world/area_nok/nok_12 type: code - overlay: True start: 0x9FA7F0 vram: 0x80240000 subsegments: @@ -7997,7 +7746,6 @@ segments: - name: nok_13 dir: world/area_nok/nok_13 type: code - overlay: True start: 0xA00600 vram: 0x80240000 subsegments: @@ -8012,7 +7760,6 @@ segments: - name: nok_14 dir: world/area_nok/nok_14 type: code - overlay: True start: 0xA02840 vram: 0x80240000 subsegments: @@ -8028,7 +7775,6 @@ segments: - name: nok_15 dir: world/area_nok/nok_15 type: code - overlay: True start: 0xA06F00 vram: 0x80240000 subsegments: @@ -8042,7 +7788,6 @@ segments: - name: hos_00 dir: world/area_hos/hos_00 type: code - overlay: True start: 0xA0BCF0 vram: 0x80240000 subsegments: @@ -8060,7 +7805,6 @@ segments: - name: hos_01 dir: world/area_hos/hos_01 type: code - overlay: True start: 0xA10880 vram: 0x80240000 subsegments: @@ -8076,7 +7820,6 @@ segments: - name: hos_02 dir: world/area_hos/hos_02 type: code - overlay: True start: 0xA16220 vram: 0x80240000 subsegments: @@ -8092,7 +7835,6 @@ segments: - name: hos_03 dir: world/area_hos/hos_03 type: code - overlay: True start: 0xA1B100 vram: 0x80240000 subsegments: @@ -8111,7 +7853,6 @@ segments: - name: hos_04 dir: world/area_hos/hos_04 type: code - overlay: True start: 0xA26ED0 vram: 0x80240000 subsegments: @@ -8131,7 +7872,6 @@ segments: - name: hos_05 dir: world/area_hos/hos_05 type: code - overlay: True start: 0xA2A240 vram: 0x80240000 subsegments: @@ -8149,7 +7889,6 @@ segments: - name: hos_06 dir: world/area_hos/hos_06 type: code - overlay: True start: 0xA394E0 vram: 0x80240000 subsegments: @@ -8166,7 +7905,6 @@ segments: - name: hos_10 dir: world/area_hos/hos_10 type: code - overlay: True start: 0xA3F740 vram: 0x80240000 subsegments: @@ -8182,7 +7920,6 @@ segments: - name: hos_20 dir: world/area_hos/hos_20 type: code - overlay: True start: 0xA45930 vram: 0x80240000 subsegments: @@ -8194,7 +7931,6 @@ segments: - name: kpa_01 dir: world/area_kpa/kpa_01 type: code - overlay: True start: 0xA46F60 vram: 0x80240000 subsegments: @@ -8208,7 +7944,6 @@ segments: - name: kpa_03 dir: world/area_kpa/kpa_03 type: code - overlay: True start: 0xA485C0 vram: 0x80240000 subsegments: @@ -8222,7 +7957,6 @@ segments: - name: kpa_04 dir: world/area_kpa/kpa_04 type: code - overlay: True start: 0xA4BF60 vram: 0x80240000 subsegments: @@ -8233,7 +7967,6 @@ segments: - name: kpa_08 dir: world/area_kpa/kpa_08 type: code - overlay: True start: 0xA4CA20 vram: 0x80240000 subsegments: @@ -8247,7 +7980,6 @@ segments: - name: kpa_09 dir: world/area_kpa/kpa_09 type: code - overlay: True start: 0xA4F000 vram: 0x80240000 subsegments: @@ -8261,7 +7993,6 @@ segments: - name: kpa_10 dir: world/area_kpa/kpa_10 type: code - overlay: True start: 0xA51980 vram: 0x80240000 subsegments: @@ -8272,7 +8003,6 @@ segments: - name: kpa_11 dir: world/area_kpa/kpa_11 type: code - overlay: True start: 0xA528C0 vram: 0x80240000 subsegments: @@ -8286,7 +8016,6 @@ segments: - name: kpa_12 dir: world/area_kpa/kpa_12 type: code - overlay: True start: 0xA54950 vram: 0x80240000 subsegments: @@ -8299,7 +8028,6 @@ segments: - name: kpa_13 dir: world/area_kpa/kpa_13 type: code - overlay: True start: 0xA55F20 vram: 0x80240000 subsegments: @@ -8313,7 +8041,6 @@ segments: - name: kpa_14 dir: world/area_kpa/kpa_14 type: code - overlay: True start: 0xA574B0 vram: 0x80240000 subsegments: @@ -8328,7 +8055,6 @@ segments: - name: kpa_15 dir: world/area_kpa/kpa_15 type: code - overlay: True start: 0xA59390 vram: 0x80240000 subsegments: @@ -8340,7 +8066,6 @@ segments: - name: kpa_16 dir: world/area_kpa/kpa_16 type: code - overlay: True start: 0xA5A030 vram: 0x80240000 subsegments: @@ -8352,7 +8077,6 @@ segments: - name: kpa_17 dir: world/area_kpa/kpa_17 type: code - overlay: True start: 0xA5CA20 vram: 0x80240000 subsegments: @@ -8365,7 +8089,6 @@ segments: - name: kpa_32 dir: world/area_kpa/kpa_32 type: code - overlay: True start: 0xA5E0C0 vram: 0x80240000 subsegments: @@ -8377,7 +8100,6 @@ segments: - name: kpa_33 dir: world/area_kpa/kpa_33 type: code - overlay: True start: 0xA5F080 vram: 0x80240000 subsegments: @@ -8389,7 +8111,6 @@ segments: - name: kpa_40 dir: world/area_kpa/kpa_40 type: code - overlay: True start: 0xA60040 vram: 0x80240000 subsegments: @@ -8400,7 +8121,6 @@ segments: - name: kpa_41 dir: world/area_kpa/kpa_41 type: code - overlay: True start: 0xA60470 vram: 0x80240000 subsegments: @@ -8411,7 +8131,6 @@ segments: - name: kpa_50 dir: world/area_kpa/kpa_50 type: code - overlay: True start: 0xA609D0 vram: 0x80240000 subsegments: @@ -8422,7 +8141,6 @@ segments: - name: kpa_51 dir: world/area_kpa/kpa_51 type: code - overlay: True start: 0xA64090 vram: 0x80240000 subsegments: @@ -8435,7 +8153,6 @@ segments: - name: kpa_52 dir: world/area_kpa/kpa_52 type: code - overlay: True start: 0xA67100 vram: 0x80240000 subsegments: @@ -8449,7 +8166,6 @@ segments: - name: kpa_53 dir: world/area_kpa/kpa_53 type: code - overlay: True start: 0xA6ACA0 vram: 0x80240000 subsegments: @@ -8462,7 +8178,6 @@ segments: - name: kpa_60 dir: world/area_kpa/kpa_60 type: code - overlay: True start: 0xA6CB00 vram: 0x80240000 subsegments: @@ -8473,7 +8188,6 @@ segments: - name: kpa_61 dir: world/area_kpa/kpa_61 type: code - overlay: True start: 0xA6E3E0 vram: 0x80240000 subsegments: @@ -8487,7 +8201,6 @@ segments: - name: kpa_62 dir: world/area_kpa/kpa_62 type: code - overlay: True start: 0xA72220 vram: 0x80240000 subsegments: @@ -8499,7 +8212,6 @@ segments: - name: kpa_63 dir: world/area_kpa/kpa_63 type: code - overlay: True start: 0xA735B0 vram: 0x80240000 subsegments: @@ -8512,7 +8224,6 @@ segments: - name: kpa_70 dir: world/area_kpa/kpa_70 type: code - overlay: True start: 0xA74870 vram: 0x80240000 subsegments: @@ -8525,7 +8236,6 @@ segments: - name: kpa_81 dir: world/area_kpa/kpa_81 type: code - overlay: True start: 0xA784C0 vram: 0x80240000 subsegments: @@ -8538,7 +8248,6 @@ segments: - name: kpa_82 dir: world/area_kpa/kpa_82 type: code - overlay: True start: 0xA7A500 vram: 0x80240000 subsegments: @@ -8551,7 +8260,6 @@ segments: - name: kpa_83 dir: world/area_kpa/kpa_83 type: code - overlay: True start: 0xA83490 vram: 0x80240000 subsegments: @@ -8564,7 +8272,6 @@ segments: - name: kpa_90 dir: world/area_kpa/kpa_90 type: code - overlay: True start: 0xA867B0 vram: 0x80240000 subsegments: @@ -8575,7 +8282,6 @@ segments: - name: kpa_91 dir: world/area_kpa/kpa_91 type: code - overlay: True start: 0xA86A50 vram: 0x80240000 subsegments: @@ -8589,7 +8295,6 @@ segments: - name: kpa_94 dir: world/area_kpa/kpa_94 type: code - overlay: True start: 0xA8C7C0 vram: 0x80240000 subsegments: @@ -8600,7 +8305,6 @@ segments: - name: kpa_95 dir: world/area_kpa/kpa_95 type: code - overlay: True start: 0xA8CA80 vram: 0x80240000 subsegments: @@ -8614,7 +8318,6 @@ segments: - name: kpa_96 dir: world/area_kpa/kpa_96 type: code - overlay: True start: 0xA927C0 vram: 0x80240000 subsegments: @@ -8625,7 +8328,6 @@ segments: - name: kpa_100 dir: world/area_kpa/kpa_100 type: code - overlay: True start: 0xA93160 vram: 0x80240000 subsegments: @@ -8637,7 +8339,6 @@ segments: - name: kpa_101 dir: world/area_kpa/kpa_101 type: code - overlay: True start: 0xA93440 vram: 0x80240000 subsegments: @@ -8649,7 +8350,6 @@ segments: - name: kpa_102 dir: world/area_kpa/kpa_102 type: code - overlay: True start: 0xA93740 vram: 0x80240000 subsegments: @@ -8662,7 +8362,6 @@ segments: - name: kpa_111 dir: world/area_kpa/kpa_111 type: code - overlay: True start: 0xA99590 vram: 0x80240000 subsegments: @@ -8675,7 +8374,6 @@ segments: - name: kpa_112 dir: world/area_kpa/kpa_112 type: code - overlay: True start: 0xA9C990 vram: 0x80240000 subsegments: @@ -8686,7 +8384,6 @@ segments: - name: kpa_113 dir: world/area_kpa/kpa_113 type: code - overlay: True start: 0xA9CC30 vram: 0x80240000 subsegments: @@ -8700,7 +8397,6 @@ segments: - name: kpa_114 dir: world/area_kpa/kpa_114 type: code - overlay: True start: 0xA9E980 vram: 0x80240000 subsegments: @@ -8711,7 +8407,6 @@ segments: - name: kpa_115 dir: world/area_kpa/kpa_115 type: code - overlay: True start: 0xA9ED40 vram: 0x80240000 subsegments: @@ -8724,7 +8419,6 @@ segments: - name: kpa_116 dir: world/area_kpa/kpa_116 type: code - overlay: True start: 0xAA1EE0 vram: 0x80240000 subsegments: @@ -8735,7 +8429,6 @@ segments: - name: kpa_117 dir: world/area_kpa/kpa_117 type: code - overlay: True start: 0xAA2180 vram: 0x80240000 subsegments: @@ -8746,7 +8439,6 @@ segments: - name: kpa_118 dir: world/area_kpa/kpa_118 type: code - overlay: True start: 0xAA23C0 vram: 0x80240000 subsegments: @@ -8757,7 +8449,6 @@ segments: - name: kpa_119 dir: world/area_kpa/kpa_119 type: code - overlay: True start: 0xAA2660 vram: 0x80240000 subsegments: @@ -8769,7 +8460,6 @@ segments: - name: kpa_121 dir: world/area_kpa/kpa_121 type: code - overlay: True start: 0xAA28F0 vram: 0x80240000 subsegments: @@ -8780,7 +8470,6 @@ segments: - name: kpa_130 dir: world/area_kpa/kpa_130 type: code - overlay: True start: 0xAA2D20 vram: 0x80240000 subsegments: @@ -8792,7 +8481,6 @@ segments: - name: kpa_133 dir: world/area_kpa/kpa_133 type: code - overlay: True start: 0xAA7480 vram: 0x80240000 subsegments: @@ -8807,7 +8495,6 @@ segments: - name: kpa_134 dir: world/area_kpa/kpa_134 type: code - overlay: True start: 0xAA8FA0 vram: 0x80240000 subsegments: @@ -8823,7 +8510,6 @@ segments: - name: osr_00 dir: world/area_osr/osr_00 type: code - overlay: True start: 0xAAC830 vram: 0x80240000 subsegments: @@ -8835,7 +8521,6 @@ segments: - name: osr_01 dir: world/area_osr/osr_01 type: code - overlay: True start: 0xAAFFF0 vram: 0x80240000 subsegments: @@ -8849,7 +8534,6 @@ segments: - name: osr_02 dir: world/area_osr/osr_02 type: code - overlay: True start: 0xAB2170 vram: 0x80240000 subsegments: @@ -8865,7 +8549,6 @@ segments: - name: osr_03 dir: world/area_osr/osr_03 type: code - overlay: True start: 0xAB6290 vram: 0x80240000 subsegments: @@ -8880,7 +8563,6 @@ segments: - name: osr_04 dir: world/area_osr/osr_04 type: code - overlay: True start: 0xAB92B0 vram: 0x80240000 subsegments: @@ -8891,7 +8573,6 @@ segments: - name: kkj_00 dir: world/area_kkj/kkj_00 type: code - overlay: True start: 0xABB290 vram: 0x80240000 subsegments: @@ -8906,7 +8587,6 @@ segments: - name: kkj_01 dir: world/area_kkj/kkj_01 type: code - overlay: True start: 0xAC5170 vram: 0x80240000 subsegments: @@ -8918,7 +8598,6 @@ segments: - name: kkj_02 dir: world/area_kkj/kkj_02 type: code - overlay: True start: 0xAC8D20 vram: 0x80240000 subsegments: @@ -8930,7 +8609,6 @@ segments: - name: kkj_03 dir: world/area_kkj/kkj_03 type: code - overlay: True start: 0xAC9710 vram: 0x80240000 subsegments: @@ -8944,7 +8622,6 @@ segments: - name: kkj_10 dir: world/area_kkj/kkj_10 type: code - overlay: True start: 0xACAB20 vram: 0x80240000 subsegments: @@ -8959,7 +8636,6 @@ segments: - name: kkj_11 dir: world/area_kkj/kkj_11 type: code - overlay: True start: 0xACE140 vram: 0x80240000 subsegments: @@ -8976,7 +8652,6 @@ segments: - name: kkj_12 dir: world/area_kkj/kkj_12 type: code - overlay: True start: 0xAD4090 vram: 0x80240000 subsegments: @@ -8987,7 +8662,6 @@ segments: - name: kkj_13 dir: world/area_kkj/kkj_13 type: code - overlay: True start: 0xAD5ED0 vram: 0x80240000 subsegments: @@ -9004,7 +8678,6 @@ segments: - name: kkj_14 dir: world/area_kkj/kkj_14 type: code - overlay: True start: 0xADAEA0 vram: 0x80240000 subsegments: @@ -9028,7 +8701,6 @@ segments: - name: kkj_15 dir: world/area_kkj/kkj_15 type: code - overlay: True start: 0xAE5590 vram: 0x80240000 subsegments: @@ -9050,7 +8722,6 @@ segments: - name: kkj_16 dir: world/area_kkj/kkj_16 type: code - overlay: True start: 0xAED410 vram: 0x80240000 subsegments: @@ -9064,7 +8735,6 @@ segments: - name: kkj_17 dir: world/area_kkj/kkj_17 type: code - overlay: True start: 0xAF1C60 vram: 0x80240000 subsegments: @@ -9076,7 +8746,6 @@ segments: - name: kkj_18 dir: world/area_kkj/kkj_18 type: code - overlay: True start: 0xAF2CA0 vram: 0x80240000 subsegments: @@ -9091,7 +8760,6 @@ segments: - name: kkj_19 dir: world/area_kkj/kkj_19 type: code - overlay: True start: 0xAF7950 vram: 0x80240000 subsegments: @@ -9105,7 +8773,6 @@ segments: - name: kkj_20 dir: world/area_kkj/kkj_20 type: code - overlay: True start: 0xAFDB40 vram: 0x80240000 subsegments: @@ -9119,7 +8786,6 @@ segments: - name: kkj_21 dir: world/area_kkj/kkj_21 type: code - overlay: True start: 0xB022A0 vram: 0x80240000 subsegments: @@ -9129,7 +8795,6 @@ segments: - name: kkj_22 dir: world/area_kkj/kkj_22 type: code - overlay: True start: 0xB024F0 vram: 0x80240000 subsegments: @@ -9140,7 +8805,6 @@ segments: - name: kkj_23 dir: world/area_kkj/kkj_23 type: code - overlay: True start: 0xB02880 vram: 0x80240000 subsegments: @@ -9156,7 +8820,6 @@ segments: - name: kkj_24 dir: world/area_kkj/kkj_24 type: code - overlay: True start: 0xB06570 vram: 0x80240000 subsegments: @@ -9168,7 +8831,6 @@ segments: - name: kkj_25 dir: world/area_kkj/kkj_25 type: code - overlay: True start: 0xB06A00 vram: 0x80240000 subsegments: @@ -9186,7 +8848,6 @@ segments: - name: kkj_26 dir: world/area_kkj/kkj_26 type: code - overlay: True start: 0xB13120 vram: 0x80240000 subsegments: @@ -9198,7 +8859,6 @@ segments: - name: kkj_27 dir: world/area_kkj/kkj_27 type: code - overlay: True start: 0xB13D70 vram: 0x80240000 subsegments: @@ -9211,7 +8871,6 @@ segments: - name: kkj_28 dir: world/area_kkj/kkj_28 type: code - overlay: True start: 0xB14EA0 vram: 0x80240000 subsegments: @@ -9221,7 +8880,6 @@ segments: - name: kkj_29 dir: world/area_kkj/kkj_29 type: code - overlay: True start: 0xB150B0 vram: 0x80240000 subsegments: @@ -9234,7 +8892,6 @@ segments: - name: tst_01 dir: world/area_tst/tst_01 type: code - overlay: True start: 0xB1A900 vram: 0x80240000 subsegments: @@ -9245,7 +8902,6 @@ segments: - name: tst_02 dir: world/area_tst/tst_02 type: code - overlay: True start: 0xB1AC30 vram: 0x80240000 subsegments: @@ -9256,7 +8912,6 @@ segments: - name: tst_03 dir: world/area_tst/tst_03 type: code - overlay: True start: 0xB1AF80 vram: 0x80240000 subsegments: @@ -9267,7 +8922,6 @@ segments: - name: tst_04 dir: world/area_tst/tst_04 type: code - overlay: True start: 0xB1B570 vram: 0x80240000 subsegments: @@ -9282,7 +8936,6 @@ segments: - name: tst_10 dir: world/area_tst/tst_10 type: code - overlay: True start: 0xB1C540 vram: 0x80240000 subsegments: @@ -9292,7 +8945,6 @@ segments: - name: tst_11 dir: world/area_tst/tst_11 type: code - overlay: True start: 0xB1CA50 vram: 0x80240000 subsegments: @@ -9302,7 +8954,6 @@ segments: - name: tst_12 dir: world/area_tst/tst_12 type: code - overlay: True start: 0xB1D2F0 vram: 0x80240000 subsegments: @@ -9310,7 +8961,6 @@ segments: - name: tst_13 dir: world/area_tst/tst_13 type: code - overlay: True start: 0xB1D760 vram: 0x80240000 subsegments: @@ -9320,7 +8970,6 @@ segments: - name: tst_20 dir: world/area_tst/tst_20 type: code - overlay: True start: 0xB20470 vram: 0x80240000 subsegments: @@ -9328,7 +8977,6 @@ segments: - name: jan_00 dir: world/area_jan/jan_00 type: code - overlay: True start: 0xB20540 vram: 0x80240000 subsegments: @@ -9344,7 +8992,6 @@ segments: - name: jan_01 dir: world/area_jan/jan_01 type: code - overlay: True start: 0xB28030 vram: 0x80240000 subsegments: @@ -9359,7 +9006,6 @@ segments: - name: jan_02 dir: world/area_jan/jan_02 type: code - overlay: True start: 0xB2C470 vram: 0x80240000 subsegments: @@ -9376,7 +9022,6 @@ segments: - name: jan_03 dir: world/area_jan/jan_03 type: code - overlay: True start: 0xB34BD0 vram: 0x80240000 subsegments: @@ -9392,7 +9037,6 @@ segments: - name: jan_04 dir: world/area_jan/jan_04 type: code - overlay: True start: 0xB44770 vram: 0x80240000 subsegments: @@ -9417,7 +9061,6 @@ segments: - name: jan_05 dir: world/area_jan/jan_05 type: code - overlay: True start: 0xB4AA70 vram: 0x80240000 subsegments: @@ -9437,7 +9080,6 @@ segments: - name: jan_06 dir: world/area_jan/jan_06 type: code - overlay: True start: 0xB52830 vram: 0x80240000 subsegments: @@ -9457,7 +9099,6 @@ segments: - name: jan_07 dir: world/area_jan/jan_07 type: code - overlay: True start: 0xB59870 vram: 0x80240000 subsegments: @@ -9473,7 +9114,6 @@ segments: - name: jan_08 dir: world/area_jan/jan_08 type: code - overlay: True start: 0xB5E2B0 vram: 0x80240000 subsegments: @@ -9491,7 +9131,6 @@ segments: - name: jan_09 dir: world/area_jan/jan_09 type: code - overlay: True start: 0xB65AB0 vram: 0x80240000 subsegments: @@ -9507,7 +9146,6 @@ segments: - name: jan_10 dir: world/area_jan/jan_10 type: code - overlay: True start: 0xB6C390 vram: 0x80240000 subsegments: @@ -9525,7 +9163,6 @@ segments: - name: jan_11 dir: world/area_jan/jan_11 type: code - overlay: True start: 0xB70860 vram: 0x80240000 subsegments: @@ -9538,7 +9175,6 @@ segments: - name: jan_12 dir: world/area_jan/jan_12 type: code - overlay: True start: 0xB730B0 vram: 0x80240000 subsegments: @@ -9551,7 +9187,6 @@ segments: - name: jan_13 dir: world/area_jan/jan_13 type: code - overlay: True start: 0xB767B0 vram: 0x80240000 subsegments: @@ -9564,7 +9199,6 @@ segments: - name: jan_14 dir: world/area_jan/jan_14 type: code - overlay: True start: 0xB7A050 vram: 0x80240000 subsegments: @@ -9578,7 +9212,6 @@ segments: - name: jan_15 dir: world/area_jan/jan_15 type: code - overlay: True start: 0xB7D920 vram: 0x80240000 subsegments: @@ -9592,7 +9225,6 @@ segments: - name: jan_16 dir: world/area_jan/jan_16 type: code - overlay: True start: 0xB80000 vram: 0x80240000 subsegments: @@ -9605,7 +9237,6 @@ segments: - name: jan_17 dir: world/area_jan/jan_17 type: code - overlay: True start: 0xB837C0 vram: 0x80240000 subsegments: @@ -9617,7 +9248,6 @@ segments: - name: jan_18 dir: world/area_jan/jan_18 type: code - overlay: True start: 0xB83B90 vram: 0x80240000 subsegments: @@ -9628,7 +9258,6 @@ segments: - name: jan_19 dir: world/area_jan/jan_19 type: code - overlay: True start: 0xB83E60 vram: 0x80240000 subsegments: @@ -9639,7 +9268,6 @@ segments: - name: jan_22 dir: world/area_jan/jan_22 type: code - overlay: True start: 0xB84180 vram: 0x80240000 subsegments: @@ -9653,7 +9281,6 @@ segments: - name: jan_23 dir: world/area_jan/jan_23 type: code - overlay: True start: 0xB8FCD0 vram: 0x80240000 subsegments: @@ -9664,7 +9291,6 @@ segments: - name: mim_01 dir: world/area_mim/mim_01 type: code - overlay: True start: 0xB93440 vram: 0x80240000 subsegments: @@ -9679,7 +9305,6 @@ segments: - name: mim_02 dir: world/area_mim/mim_02 type: code - overlay: True start: 0xB97C00 vram: 0x80240000 subsegments: @@ -9693,7 +9318,6 @@ segments: - name: mim_03 dir: world/area_mim/mim_03 type: code - overlay: True start: 0xB9B480 vram: 0x80240000 subsegments: @@ -9706,7 +9330,6 @@ segments: - name: mim_04 dir: world/area_mim/mim_04 type: code - overlay: True start: 0xB9D960 vram: 0x80240000 subsegments: @@ -9721,7 +9344,6 @@ segments: - name: mim_05 dir: world/area_mim/mim_05 type: code - overlay: True start: 0xBA0730 vram: 0x80240000 subsegments: @@ -9734,7 +9356,6 @@ segments: - name: mim_06 dir: world/area_mim/mim_06 type: code - overlay: True start: 0xBA4780 vram: 0x80240000 subsegments: @@ -9749,7 +9370,6 @@ segments: - name: mim_07 dir: world/area_mim/mim_07 type: code - overlay: True start: 0xBAA140 vram: 0x80240000 subsegments: @@ -9766,7 +9386,6 @@ segments: - name: mim_08 dir: world/area_mim/mim_08 type: code - overlay: True start: 0xBAD940 vram: 0x80240000 subsegments: @@ -9780,7 +9399,6 @@ segments: - name: mim_09 dir: world/area_mim/mim_09 type: code - overlay: True start: 0xBB2E00 vram: 0x80240000 subsegments: @@ -9794,7 +9412,6 @@ segments: - name: mim_10 dir: world/area_mim/mim_10 type: code - overlay: True start: 0xBB59E0 vram: 0x80240000 subsegments: @@ -9807,7 +9424,6 @@ segments: - name: mim_11 dir: world/area_mim/mim_11 type: code - overlay: True start: 0xBB7070 vram: 0x80240000 subsegments: @@ -9821,7 +9437,6 @@ segments: - name: mim_12 dir: world/area_mim/mim_12 type: code - overlay: True start: 0xBBB380 vram: 0x80240000 subsegments: @@ -9834,7 +9449,6 @@ segments: - name: obk_01 dir: world/area_obk/obk_01 type: code - overlay: True start: 0xBBD1A0 vram: 0x80240000 subsegments: @@ -9848,7 +9462,6 @@ segments: - name: obk_02 dir: world/area_obk/obk_02 type: code - overlay: True start: 0xBC2A90 vram: 0x80240000 subsegments: @@ -9863,7 +9476,6 @@ segments: - name: obk_03 dir: world/area_obk/obk_03 type: code - overlay: True start: 0xBC4280 vram: 0x80240000 subsegments: @@ -9881,7 +9493,6 @@ segments: - name: obk_04 dir: world/area_obk/obk_04 type: code - overlay: True start: 0xBC7E60 vram: 0x80240000 subsegments: @@ -9896,7 +9507,6 @@ segments: - name: obk_05 dir: world/area_obk/obk_05 type: code - overlay: True start: 0xBCD060 vram: 0x80240000 subsegments: @@ -9910,7 +9520,6 @@ segments: - name: obk_06 dir: world/area_obk/obk_06 type: code - overlay: True start: 0xBCE690 vram: 0x80240000 subsegments: @@ -9922,7 +9531,6 @@ segments: - name: obk_07 dir: world/area_obk/obk_07 type: code - overlay: True start: 0xBCEBF0 vram: 0x80240000 subsegments: @@ -9939,7 +9547,6 @@ segments: - name: obk_08 dir: world/area_obk/obk_08 type: code - overlay: True start: 0xBD3870 vram: 0x80240000 subsegments: @@ -9955,7 +9562,6 @@ segments: - name: obk_09 dir: world/area_obk/obk_09 type: code - overlay: True start: 0xBDA7B0 vram: 0x80240000 subsegments: @@ -9970,7 +9576,6 @@ segments: - name: arn_02 dir: world/area_arn/arn_02 type: code - overlay: True start: 0xBDD1B0 vram: 0x80240000 subsegments: @@ -9981,7 +9586,6 @@ segments: - name: arn_03 dir: world/area_arn/arn_03 type: code - overlay: True start: 0xBDED90 vram: 0x80240000 subsegments: @@ -9992,7 +9596,6 @@ segments: - name: arn_04 dir: world/area_arn/arn_04 type: code - overlay: True start: 0xBE37B0 vram: 0x80240000 subsegments: @@ -10003,7 +9606,6 @@ segments: - name: arn_05 dir: world/area_arn/arn_05 type: code - overlay: True start: 0xBE7BE0 vram: 0x80240000 subsegments: @@ -10014,7 +9616,6 @@ segments: - name: arn_07 dir: world/area_arn/arn_07 type: code - overlay: True start: 0xBECDF0 vram: 0x80240000 subsegments: @@ -10029,7 +9630,6 @@ segments: - name: arn_08 dir: world/area_arn/arn_08 type: code - overlay: True start: 0xBF47A0 vram: 0x80240000 subsegments: @@ -10041,7 +9641,6 @@ segments: - name: arn_09 dir: world/area_arn/arn_09 type: code - overlay: True start: 0xBF6060 vram: 0x80240000 subsegments: @@ -10052,7 +9651,6 @@ segments: - name: arn_10 dir: world/area_arn/arn_10 type: code - overlay: True start: 0xBF6A00 vram: 0x80240000 subsegments: @@ -10062,7 +9660,6 @@ segments: - name: arn_11 dir: world/area_arn/arn_11 type: code - overlay: True start: 0xBF7680 vram: 0x80240000 subsegments: @@ -10072,7 +9669,6 @@ segments: - name: arn_12 dir: world/area_arn/arn_12 type: code - overlay: True start: 0xBF8790 vram: 0x80240000 subsegments: @@ -10082,7 +9678,6 @@ segments: - name: arn_13 dir: world/area_arn/arn_13 type: code - overlay: True start: 0xBF9410 vram: 0x80240000 subsegments: @@ -10092,7 +9687,6 @@ segments: - name: dgb_00 dir: world/area_dgb/dgb_00 type: code - overlay: True start: 0xBFA0A0 vram: 0x80240000 subsegments: @@ -10102,7 +9696,6 @@ segments: - name: dgb_01 dir: world/area_dgb/dgb_01 type: code - overlay: True start: 0xBFD880 vram: 0x80240000 subsegments: @@ -10432,7 +10025,6 @@ segments: - name: dgb_02 dir: world/area_dgb/dgb_02 type: code - overlay: True start: 0xC2EBA0 vram: 0x80240000 subsegments: @@ -10441,7 +10033,6 @@ segments: - name: dgb_03 dir: world/area_dgb/dgb_03 type: code - overlay: True start: 0xC314E0 vram: 0x80240000 subsegments: @@ -10451,7 +10042,6 @@ segments: - name: dgb_04 dir: world/area_dgb/dgb_04 type: code - overlay: True start: 0xC36530 vram: 0x80240000 subsegments: @@ -10460,7 +10050,6 @@ segments: - name: dgb_05 dir: world/area_dgb/dgb_05 type: code - overlay: True start: 0xC3AA10 vram: 0x80240000 subsegments: @@ -10469,7 +10058,6 @@ segments: - name: dgb_06 dir: world/area_dgb/dgb_06 type: code - overlay: True start: 0xC3D080 vram: 0x80240000 subsegments: @@ -10478,7 +10066,6 @@ segments: - name: dgb_07 dir: world/area_dgb/dgb_07 type: code - overlay: True start: 0xC3DBF0 vram: 0x80240000 subsegments: @@ -10487,7 +10074,6 @@ segments: - name: dgb_08 dir: world/area_dgb/dgb_08 type: code - overlay: True start: 0xC3FDB0 vram: 0x80240000 subsegments: @@ -10496,7 +10082,6 @@ segments: - name: dgb_09 dir: world/area_dgb/dgb_09 type: code - overlay: True start: 0xC46BE0 vram: 0x80240000 subsegments: @@ -10505,7 +10090,6 @@ segments: - name: dgb_10 dir: world/area_dgb/dgb_10 type: code - overlay: True start: 0xC4C390 vram: 0x80240000 subsegments: @@ -10514,7 +10098,6 @@ segments: - name: dgb_11 dir: world/area_dgb/dgb_11 type: code - overlay: True start: 0xC4D3E0 vram: 0x80240000 subsegments: @@ -10523,7 +10106,6 @@ segments: - name: dgb_12 dir: world/area_dgb/dgb_12 type: code - overlay: True start: 0xC4DEF0 vram: 0x80240000 subsegments: @@ -10532,7 +10114,6 @@ segments: - name: dgb_13 dir: world/area_dgb/dgb_13 type: code - overlay: True start: 0xC4E960 vram: 0x80240000 subsegments: @@ -10541,7 +10122,6 @@ segments: - name: dgb_14 dir: world/area_dgb/dgb_14 type: code - overlay: True start: 0xC4F030 vram: 0x80240000 subsegments: @@ -10550,7 +10130,6 @@ segments: - name: dgb_15 dir: world/area_dgb/dgb_15 type: code - overlay: True start: 0xC4F510 vram: 0x80240000 subsegments: @@ -10560,7 +10139,6 @@ segments: - name: dgb_16 dir: world/area_dgb/dgb_16 type: code - overlay: True start: 0xC52540 vram: 0x80240000 subsegments: @@ -10569,7 +10147,6 @@ segments: - name: dgb_17 dir: world/area_dgb/dgb_17 type: code - overlay: True start: 0xC55A60 vram: 0x80240000 subsegments: @@ -10578,7 +10155,6 @@ segments: - name: dgb_18 dir: world/area_dgb/dgb_18 type: code - overlay: True start: 0xC55F40 vram: 0x80240000 subsegments: @@ -10588,7 +10164,6 @@ segments: - name: kzn_01 dir: world/area_kzn/kzn_01 type: code - overlay: True start: 0xC599D0 vram: 0x80240000 subsegments: @@ -10598,7 +10173,6 @@ segments: - name: kzn_02 dir: world/area_kzn/kzn_02 type: code - overlay: True start: 0xC5A740 vram: 0x80240000 subsegments: @@ -10613,7 +10187,6 @@ segments: - name: kzn_03 dir: world/area_kzn/kzn_03 type: code - overlay: True start: 0xC60D10 vram: 0x80240000 subsegments: @@ -10628,7 +10201,6 @@ segments: - name: kzn_04 dir: world/area_kzn/kzn_04 type: code - overlay: True start: 0xC68130 vram: 0x80240000 subsegments: @@ -10642,7 +10214,6 @@ segments: - name: kzn_05 dir: world/area_kzn/kzn_05 type: code - overlay: True start: 0xC6C0D0 vram: 0x80240000 subsegments: @@ -10652,7 +10223,6 @@ segments: - name: kzn_06 dir: world/area_kzn/kzn_06 type: code - overlay: True start: 0xC6C920 vram: 0x80240000 subsegments: @@ -10664,7 +10234,6 @@ segments: - name: kzn_07 dir: world/area_kzn/kzn_07 type: code - overlay: True start: 0xC6E330 vram: 0x80240000 subsegments: @@ -10678,7 +10247,6 @@ segments: - name: kzn_08 dir: world/area_kzn/kzn_08 type: code - overlay: True start: 0xC71480 vram: 0x80240000 subsegments: @@ -10691,7 +10259,6 @@ segments: - name: kzn_09 dir: world/area_kzn/kzn_09 type: code - overlay: True start: 0xC76CE0 vram: 0x80240000 subsegments: @@ -10705,7 +10272,6 @@ segments: - name: kzn_10 dir: world/area_kzn/kzn_10 type: code - overlay: True start: 0xC7E180 vram: 0x80240000 subsegments: @@ -10717,7 +10283,6 @@ segments: - name: kzn_11 dir: world/area_kzn/kzn_11 type: code - overlay: True start: 0xC801A0 vram: 0x80240000 subsegments: @@ -10731,7 +10296,6 @@ segments: - name: kzn_17 dir: world/area_kzn/kzn_17 type: code - overlay: True start: 0xC85AB0 vram: 0x80240000 subsegments: @@ -10744,7 +10308,6 @@ segments: - name: kzn_18 dir: world/area_kzn/kzn_18 type: code - overlay: True start: 0xC8C0A0 vram: 0x80240000 subsegments: @@ -10756,7 +10319,6 @@ segments: - name: kzn_19 dir: world/area_kzn/kzn_19 type: code - overlay: True start: 0xC8DBB0 vram: 0x80240000 subsegments: @@ -10771,7 +10333,6 @@ segments: - name: kzn_20 dir: world/area_kzn/kzn_20 type: code - overlay: True start: 0xC95F30 vram: 0x80240000 subsegments: @@ -10783,7 +10344,6 @@ segments: - name: kzn_22 dir: world/area_kzn/kzn_22 type: code - overlay: True start: 0xC9A200 vram: 0x80240000 subsegments: @@ -10796,7 +10356,6 @@ segments: - name: kzn_23 dir: world/area_kzn/kzn_23 type: code - overlay: True start: 0xC9C300 vram: 0x80240000 subsegments: @@ -10809,7 +10368,6 @@ segments: - name: flo_00 dir: world/area_flo/flo_00 type: code - overlay: True start: 0xC9DF20 vram: 0x80240000 subsegments: @@ -10820,7 +10378,6 @@ segments: - name: flo_03 dir: world/area_flo/flo_03 type: code - overlay: True start: 0xCA72A0 vram: 0x80240000 subsegments: @@ -10830,7 +10387,6 @@ segments: - name: flo_07 dir: world/area_flo/flo_07 type: code - overlay: True start: 0xCAC1F0 vram: 0x80240000 subsegments: @@ -10840,7 +10396,6 @@ segments: - name: flo_08 dir: world/area_flo/flo_08 type: code - overlay: True start: 0xCAED40 vram: 0x80240000 subsegments: @@ -10852,7 +10407,6 @@ segments: - name: flo_09 dir: world/area_flo/flo_09 type: code - overlay: True start: 0xCB5000 vram: 0x80240000 subsegments: @@ -10864,7 +10418,6 @@ segments: - name: flo_10 dir: world/area_flo/flo_10 type: code - overlay: True start: 0xCB9200 vram: 0x80240000 subsegments: @@ -10877,7 +10430,6 @@ segments: - name: flo_11 dir: world/area_flo/flo_11 type: code - overlay: True start: 0xCBDCD0 vram: 0x80240000 subsegments: @@ -10886,7 +10438,6 @@ segments: - name: flo_12 dir: world/area_flo/flo_12 type: code - overlay: True start: 0xCC0E30 vram: 0x80240000 subsegments: @@ -10896,7 +10447,6 @@ segments: - name: flo_13 dir: world/area_flo/flo_13 type: code - overlay: True start: 0xCC3810 vram: 0x80240000 subsegments: @@ -10907,7 +10457,6 @@ segments: - name: flo_14 dir: world/area_flo/flo_14 type: code - overlay: True start: 0xCCB310 vram: 0x80240000 subsegments: @@ -10918,7 +10467,6 @@ segments: - name: flo_15 dir: world/area_flo/flo_15 type: code - overlay: True start: 0xCD06C0 vram: 0x80240000 subsegments: @@ -10927,7 +10475,6 @@ segments: - name: flo_16 dir: world/area_flo/flo_16 type: code - overlay: True start: 0xCD1E30 vram: 0x80240000 subsegments: @@ -10940,7 +10487,6 @@ segments: - name: flo_17 dir: world/area_flo/flo_17 type: code - overlay: True start: 0xCD72E0 vram: 0x80240000 subsegments: @@ -10951,7 +10497,6 @@ segments: - name: flo_18 dir: world/area_flo/flo_18 type: code - overlay: True start: 0xCDC6A0 vram: 0x80240000 subsegments: @@ -10962,7 +10507,6 @@ segments: - name: flo_19 dir: world/area_flo/flo_19 type: code - overlay: True start: 0xCE36F0 vram: 0x80240000 subsegments: @@ -10971,7 +10515,6 @@ segments: - name: flo_21 dir: world/area_flo/flo_21 type: code - overlay: True start: 0xCE6700 vram: 0x80240000 subsegments: @@ -10981,7 +10524,6 @@ segments: - name: flo_22 dir: world/area_flo/flo_22 type: code - overlay: True start: 0xCEC240 vram: 0x80240000 subsegments: @@ -10992,7 +10534,6 @@ segments: - name: flo_23 dir: world/area_flo/flo_23 type: code - overlay: True start: 0xCEE260 vram: 0x80240000 subsegments: @@ -11002,7 +10543,6 @@ segments: - name: flo_24 dir: world/area_flo/flo_24 type: code - overlay: True start: 0xCF0940 vram: 0x80240000 subsegments: @@ -11013,7 +10553,6 @@ segments: - name: flo_25 dir: world/area_flo/flo_25 type: code - overlay: True start: 0xCF2BD0 vram: 0x80240000 subsegments: @@ -11025,7 +10564,6 @@ segments: - name: sam_01 dir: world/area_sam/sam_01 type: code - overlay: True start: 0xCF7B70 vram: 0x80240000 subsegments: @@ -11039,7 +10577,6 @@ segments: - name: sam_02 dir: world/area_sam/sam_02 type: code - overlay: True start: 0xD05730 vram: 0x80240000 subsegments: @@ -11054,7 +10591,6 @@ segments: - name: sam_03 dir: world/area_sam/sam_03 type: code - overlay: True start: 0xD110C0 vram: 0x80240000 subsegments: @@ -11066,7 +10602,6 @@ segments: - name: sam_04 dir: world/area_sam/sam_04 type: code - overlay: True start: 0xD135D0 vram: 0x80240000 subsegments: @@ -11082,7 +10617,6 @@ segments: - name: sam_05 dir: world/area_sam/sam_05 type: code - overlay: True start: 0xD187E0 vram: 0x80240000 subsegments: @@ -11096,7 +10630,6 @@ segments: - name: sam_06 dir: world/area_sam/sam_06 type: code - overlay: True start: 0xD1FE90 vram: 0x80240000 subsegments: @@ -11110,7 +10643,6 @@ segments: - name: sam_07 dir: world/area_sam/sam_07 type: code - overlay: True start: 0xD2BD30 vram: 0x80240000 subsegments: @@ -11124,7 +10656,6 @@ segments: - name: sam_08 dir: world/area_sam/sam_08 type: code - overlay: True start: 0xD2FC80 vram: 0x80240000 subsegments: @@ -11138,7 +10669,6 @@ segments: - name: sam_09 dir: world/area_sam/sam_09 type: code - overlay: True start: 0xD362F0 vram: 0x80240000 subsegments: @@ -11150,7 +10680,6 @@ segments: - name: sam_10 dir: world/area_sam/sam_10 type: code - overlay: True start: 0xD37800 vram: 0x80240000 subsegments: @@ -11163,7 +10692,6 @@ segments: - name: sam_11 dir: world/area_sam/sam_11 type: code - overlay: True start: 0xD3A5D0 vram: 0x80240000 subsegments: @@ -11181,7 +10709,6 @@ segments: - name: sam_12 dir: world/area_sam/sam_12 type: code - overlay: True start: 0xD4BA20 vram: 0x80240000 subsegments: @@ -11196,7 +10723,6 @@ segments: - name: pra_01 dir: world/area_pra/pra_01 type: code - overlay: True start: 0xD4D040 vram: 0x80240000 subsegments: @@ -11210,7 +10736,6 @@ segments: - name: pra_02 dir: world/area_pra/pra_02 type: code - overlay: True start: 0xD4FFF0 vram: 0x80240000 subsegments: @@ -11224,7 +10749,6 @@ segments: - name: pra_03 dir: world/area_pra/pra_03 type: code - overlay: True start: 0xD53CB0 vram: 0x80240000 subsegments: @@ -11237,7 +10761,6 @@ segments: - name: pra_04 dir: world/area_pra/pra_04 type: code - overlay: True start: 0xD54690 vram: 0x80240000 subsegments: @@ -11252,7 +10775,6 @@ segments: - name: pra_05 dir: world/area_pra/pra_05 type: code - overlay: True start: 0xD55BB0 vram: 0x80240000 subsegments: @@ -11264,7 +10786,6 @@ segments: - name: pra_06 dir: world/area_pra/pra_06 type: code - overlay: True start: 0xD57430 vram: 0x80240000 subsegments: @@ -11275,7 +10796,6 @@ segments: - name: pra_09 dir: world/area_pra/pra_09 type: code - overlay: True start: 0xD58890 vram: 0x80240000 subsegments: @@ -11287,7 +10807,6 @@ segments: - name: pra_10 dir: world/area_pra/pra_10 type: code - overlay: True start: 0xD5F2B0 vram: 0x80240000 subsegments: @@ -11299,7 +10818,6 @@ segments: - name: pra_11 dir: world/area_pra/pra_11 type: code - overlay: True start: 0xD61500 vram: 0x80240000 subsegments: @@ -11312,7 +10830,6 @@ segments: - name: pra_12 dir: world/area_pra/pra_12 type: code - overlay: True start: 0xD62D10 vram: 0x80240000 subsegments: @@ -11323,7 +10840,6 @@ segments: - name: pra_13 dir: world/area_pra/pra_13 type: code - overlay: True start: 0xD645E0 vram: 0x80240000 subsegments: @@ -11336,7 +10852,6 @@ segments: - name: pra_14 dir: world/area_pra/pra_14 type: code - overlay: True start: 0xD67D00 vram: 0x80240000 subsegments: @@ -11349,7 +10864,6 @@ segments: - name: pra_15 dir: world/area_pra/pra_15 type: code - overlay: True start: 0xD69810 vram: 0x80240000 subsegments: @@ -11362,7 +10876,6 @@ segments: - name: pra_16 dir: world/area_pra/pra_16 type: code - overlay: True start: 0xD69B20 vram: 0x80240000 subsegments: @@ -11374,7 +10887,6 @@ segments: - name: pra_18 dir: world/area_pra/pra_18 type: code - overlay: True start: 0xD6B620 vram: 0x80240000 subsegments: @@ -11387,7 +10899,6 @@ segments: - name: pra_19 dir: world/area_pra/pra_19 type: code - overlay: True start: 0xD6E9B0 vram: 0x80240000 subsegments: @@ -11400,7 +10911,6 @@ segments: - name: pra_20 dir: world/area_pra/pra_20 type: code - overlay: True start: 0xD763A0 vram: 0x80240000 subsegments: @@ -11412,7 +10922,6 @@ segments: - name: pra_21 dir: world/area_pra/pra_21 type: code - overlay: True start: 0xD77F20 vram: 0x80240000 subsegments: @@ -11425,7 +10934,6 @@ segments: - name: pra_22 dir: world/area_pra/pra_22 type: code - overlay: True start: 0xD78880 vram: 0x80240000 subsegments: @@ -11438,7 +10946,6 @@ segments: - name: pra_27 dir: world/area_pra/pra_27 type: code - overlay: True start: 0xD799F0 vram: 0x80240000 subsegments: @@ -11450,7 +10957,6 @@ segments: - name: pra_28 dir: world/area_pra/pra_28 type: code - overlay: True start: 0xD7B2A0 vram: 0x80240000 subsegments: @@ -11462,7 +10968,6 @@ segments: - name: pra_29 dir: world/area_pra/pra_29 type: code - overlay: True start: 0xD7CB50 vram: 0x80240000 subsegments: @@ -11475,7 +10980,6 @@ segments: - name: pra_31 dir: world/area_pra/pra_31 type: code - overlay: True start: 0xD7ED60 vram: 0x80240000 subsegments: @@ -11490,7 +10994,6 @@ segments: - name: pra_32 dir: world/area_pra/pra_32 type: code - overlay: True start: 0xD86A00 vram: 0x80240000 subsegments: @@ -11502,7 +11005,6 @@ segments: - name: pra_33 dir: world/area_pra/pra_33 type: code - overlay: True start: 0xD896E0 vram: 0x80240000 subsegments: @@ -11515,7 +11017,6 @@ segments: - name: pra_34 dir: world/area_pra/pra_34 type: code - overlay: True start: 0xD8B3B0 vram: 0x80240000 subsegments: @@ -11528,7 +11029,6 @@ segments: - name: pra_35 dir: world/area_pra/pra_35 type: code - overlay: True start: 0xD8D250 vram: 0x80240000 subsegments: @@ -11543,7 +11043,6 @@ segments: - name: pra_36 dir: world/area_pra/pra_36 type: code - overlay: True start: 0xD91700 vram: 0x80240000 subsegments: @@ -11554,7 +11053,6 @@ segments: - name: pra_37 dir: world/area_pra/pra_37 type: code - overlay: True start: 0xD92F40 vram: 0x80240000 subsegments: @@ -11565,7 +11063,6 @@ segments: - name: pra_38 dir: world/area_pra/pra_38 type: code - overlay: True start: 0xD955F0 vram: 0x80240000 subsegments: @@ -11576,7 +11073,6 @@ segments: - name: pra_39 dir: world/area_pra/pra_39 type: code - overlay: True start: 0xD97890 vram: 0x80240000 subsegments: @@ -11587,7 +11083,6 @@ segments: - name: pra_40 dir: world/area_pra/pra_40 type: code - overlay: True start: 0xD999B0 vram: 0x80240000 subsegments: @@ -11600,7 +11095,6 @@ segments: - name: omo_01 dir: world/area_omo/omo_01 type: code - overlay: True start: 0xD9AEF0 vram: 0x80240000 subsegments: @@ -11615,7 +11109,6 @@ segments: - name: omo_02 dir: world/area_omo/omo_02 type: code - overlay: True start: 0xD9D4D0 vram: 0x80240000 subsegments: @@ -11631,7 +11124,6 @@ segments: - name: omo_03 dir: world/area_omo/omo_03 type: code - overlay: True start: 0xDA5240 vram: 0x80240000 subsegments: @@ -11644,7 +11136,6 @@ segments: - name: omo_04 dir: world/area_omo/omo_04 type: code - overlay: True start: 0xDAD400 vram: 0x80240000 subsegments: @@ -11656,7 +11147,6 @@ segments: - name: omo_05 dir: world/area_omo/omo_05 type: code - overlay: True start: 0xDB22C0 vram: 0x80240000 subsegments: @@ -11668,7 +11158,6 @@ segments: - name: omo_06 dir: world/area_omo/omo_06 type: code - overlay: True start: 0xDB7910 vram: 0x80240000 subsegments: @@ -11682,7 +11171,6 @@ segments: - name: omo_07 dir: world/area_omo/omo_07 type: code - overlay: True start: 0xDBD2B0 vram: 0x80240000 subsegments: @@ -11699,7 +11187,6 @@ segments: - name: omo_08 dir: world/area_omo/omo_08 type: code - overlay: True start: 0xDC43D0 vram: 0x80240000 subsegments: @@ -11713,7 +11200,6 @@ segments: - name: omo_09 dir: world/area_omo/omo_09 type: code - overlay: True start: 0xDCCCD0 vram: 0x80240000 subsegments: @@ -11734,7 +11220,6 @@ segments: - name: omo_10 dir: world/area_omo/omo_10 type: code - overlay: True start: 0xDD79B0 vram: 0x80240000 subsegments: @@ -11747,7 +11232,6 @@ segments: - name: omo_11 dir: world/area_omo/omo_11 type: code - overlay: True start: 0xDDC830 vram: 0x80240000 subsegments: @@ -11760,7 +11244,6 @@ segments: - name: omo_12 dir: world/area_omo/omo_12 type: code - overlay: True start: 0xDDF310 vram: 0x80240000 subsegments: @@ -11773,7 +11256,6 @@ segments: - name: omo_13 dir: world/area_omo/omo_13 type: code - overlay: True start: 0xDE2490 vram: 0x80240000 subsegments: @@ -11788,7 +11270,6 @@ segments: - name: omo_14 dir: world/area_omo/omo_14 type: code - overlay: True start: 0xDE56B0 vram: 0x80240000 subsegments: @@ -11801,7 +11282,6 @@ segments: - name: omo_15 dir: world/area_omo/omo_15 type: code - overlay: True start: 0xDE8770 vram: 0x80240000 subsegments: @@ -11812,7 +11292,6 @@ segments: - name: omo_16 dir: world/area_omo/omo_16 type: code - overlay: True start: 0xDEBED0 vram: 0x80240000 subsegments: @@ -11824,7 +11303,6 @@ segments: - name: omo_17 dir: world/area_omo/omo_17 type: code - overlay: True start: 0xDEEEA0 vram: 0x80240000 subsegments: @@ -11840,7 +11318,6 @@ segments: - name: end_00 dir: world/area_end/end_00 type: code - overlay: True start: 0xDF6A00 vram: 0x80240000 subsegments: @@ -11857,7 +11334,6 @@ segments: - name: end_01 dir: world/area_end/end_01 type: code - overlay: True start: 0xE05360 vram: 0x80240000 subsegments: @@ -11875,7 +11351,6 @@ segments: - name: mgm_00 dir: world/area_mgm/mgm_00 type: code - overlay: True start: 0xE0E7A0 vram: 0x80240000 subsegments: @@ -11888,7 +11363,6 @@ segments: - name: mgm_01 dir: world/area_mgm/mgm_01 type: code - overlay: True start: 0xE12760 vram: 0x80240000 subsegments: @@ -11901,7 +11375,6 @@ segments: - name: mgm_02 dir: world/area_mgm/mgm_02 type: code - overlay: True start: 0xE15D80 vram: 0x80240000 subsegments: @@ -11914,7 +11387,6 @@ segments: - name: mgm_03 dir: world/area_mgm/mgm_03 type: code - overlay: True start: 0xE1E380 vram: 0x80240000 subsegments: @@ -11922,14 +11394,12 @@ segments: - name: gv_01 dir: world/area_gv/gv_01 type: code - overlay: True start: 0xE1E460 vram: 0x80240000 subsegments: - [0xE1E460, c] - [0xE1EC20, data] - type: code - overlay: True start: 0xE20110 vram: 0x802B7000 subsegments: @@ -11937,7 +11407,6 @@ segments: - [0xE20B30, data] - [0xE20DD0] - type: code - overlay: True start: 0xE20EB0 vram: 0x802B7000 subsegments: @@ -11952,7 +11421,6 @@ segments: - [0xE21858] - [0xE21860] - type: code - overlay: True start: 0xE21870 vram: 0x802B7000 subsegments: @@ -11960,7 +11428,6 @@ segments: - [0xE21EB0, data] - [0xE22590] - type: code - overlay: True start: 0xE225B0 vram: 0x802B7000 subsegments: @@ -11972,7 +11439,6 @@ segments: dir: world/action start: 0xE23260 vram: 0x802B6000 - overlay: True subsegments: - [0xE23260, c, idle] - [0xE23690] @@ -11981,7 +11447,6 @@ segments: dir: world/action start: 0xE236E0 vram: 0x802B6000 - overlay: True subsegments: - [0xE236E0, c, walk] - [0xE23FF0] @@ -11990,7 +11455,6 @@ segments: dir: world/action start: 0xE24040 vram: 0x802B6000 - overlay: True subsegments: - [0xE24040, c, jump] - type: code @@ -11998,7 +11462,6 @@ segments: dir: world/action start: 0xE245D0 vram: 0x802B6000 - overlay: True subsegments: - [0xE245D0, c, step_up] - [0xE248D0] @@ -12007,7 +11470,6 @@ segments: dir: world/action start: 0xE24920 vram: 0x802B6000 - overlay: True subsegments: - [0xE24920, c, land] - type: code @@ -12015,7 +11477,6 @@ segments: dir: world/action start: 0xE24ED0 vram: 0x802B6000 - overlay: True subsegments: - [0xE24ED0, c, hammer] - [0xE25C80, data, hammer] @@ -12025,7 +11486,6 @@ segments: dir: world/action start: 0xE25D60 vram: 0x802B6000 - overlay: True subsegments: - [0xE25D60, c, spin] - [0xE26700] @@ -12034,7 +11494,6 @@ segments: dir: world/action start: 0xE26710 vram: 0x802B6000 - overlay: True subsegments: - [0xE26710, c, tornado_jump] - [0xE26DA0] @@ -12043,7 +11502,6 @@ segments: dir: world/action start: 0xE26DE0 vram: 0x802B6000 - overlay: True subsegments: - [0xE26DE0, c, spin_jump] - [0xE274C0] @@ -12052,7 +11510,6 @@ segments: dir: world/action start: 0xE27510 vram: 0x802B6000 - overlay: True subsegments: - [0xE27510, c, slide] - [0xE27C50] @@ -12061,7 +11518,6 @@ segments: dir: world/action start: 0xE27C90 vram: 0x802B6000 - overlay: True subsegments: - [0xE27C90, c, hit_fire] - type: code @@ -12069,7 +11525,6 @@ segments: dir: world/action start: 0xE27F40 vram: 0x802B6000 - overlay: True subsegments: - [0xE27F40, c, hit_lava] - [0xE28790] @@ -12078,7 +11533,6 @@ segments: dir: world/action start: 0xE287F0 vram: 0x802B6000 - overlay: True subsegments: - [0xE287F0, c, knockback] - type: code @@ -12086,7 +11540,6 @@ segments: dir: world/action start: 0xE28A30 vram: 0x802B6000 - overlay: True subsegments: - [0xE28A30, c, misc] - [0xE29190] @@ -12095,7 +11548,6 @@ segments: dir: world/action start: 0xE291A0 vram: 0x802B6000 - overlay: True subsegments: - [0xE291A0, c, use_munchlesia] - [0xE29450] @@ -12104,7 +11556,6 @@ segments: dir: world/action start: 0xE29470 vram: 0x802B6000 - overlay: True subsegments: - [0xE29470, c, use_spinning_flower] - [0xE2A300] @@ -12113,7 +11564,6 @@ segments: dir: world/action start: 0xE2A340 vram: 0x802B6000 - overlay: True subsegments: - [0xE2A340, c, use_tweester] - [0xE2A690, data, use_tweester] @@ -12123,7 +11573,6 @@ segments: dir: world/action start: 0xE2A6B0 vram: 0x802B6000 - overlay: True subsegments: - [0xE2A6B0, c, sneaky_parasol] - [0xE2B430, data, sneaky_parasol] @@ -12132,7 +11581,6 @@ segments: dir: entity/default start: 0xE2B530 vram: 0x802BAE00 - overlay: True subsegments: - [0xE2B530, c, Padlock] - [0xE2BE40, c, BoardedFloor] @@ -12142,7 +11590,6 @@ segments: dir: entity/jan_iwa start: 0xE2D730 vram: 0x802BAE00 - overlay: True subsegments: - [0xE2D730, c, Plants1] - [0xE2E5F0, c, Plants2] @@ -12152,7 +11599,6 @@ segments: dir: entity/sbk_omo start: 0xE2F750 vram: 0x802BAE00 - overlay: True subsegments: - [0xE2F750, c, Tweester] - [0xE307C0, c, StarBoxLauncher] @@ -13293,10 +12739,13 @@ segments: - [0xE9E690, palette, BombableRock] - [0xE9E6B0] - [0xE9ECD0, bin] # unk data + +################# +### Dead maps ### +################# - type: code start: 0xEA0900 vram: 0x80240000 - overlay: True subsegments: - [0xEA0900, c] - [0xEA0C10, c, EA0C10] @@ -13306,7 +12755,6 @@ segments: - type: code start: 0xEA6FD0 vram: 0x80240000 - overlay: True subsegments: - [0xEA6FD0, c] - [0xEA7010, c] @@ -13315,7 +12763,6 @@ segments: - type: code start: 0xEA8AE0 vram: 0x80240000 - overlay: True subsegments: - [0xEA8AE0, c] - [0xEAA810, data] @@ -13323,7 +12770,6 @@ segments: - type: code start: 0xEB0E60 vram: 0x80240000 - overlay: True subsegments: - [0xEB0E60, c] - [0xEB1170, c] @@ -13331,7 +12777,6 @@ segments: - type: code start: 0xEB5130 vram: 0x80240000 - overlay: True subsegments: - [0xEB5130, c] - [0xEB5470, c] @@ -13339,7 +12784,6 @@ segments: - type: code start: 0xEB7230 vram: 0x80240000 - overlay: True subsegments: - [0xEB7230, c] - [0xEB7540, c, EB7540] @@ -13348,7 +12792,6 @@ segments: - type: code start: 0xEB8E50 vram: 0x80240000 - overlay: True subsegments: - [0xEB8E50, c, EB8E50] - [0xEB8E90, c, EB8E90] @@ -13358,7 +12801,6 @@ segments: - type: code start: 0xEC2200 vram: 0x80240000 - overlay: True subsegments: - [0xEC2200, c, EC2200] - [0xEC2240, c, EC2240] @@ -13368,7 +12810,6 @@ segments: - type: code start: 0xEC71B0 vram: 0x80240000 - overlay: True subsegments: - [0xEC71B0, c] - [0xEC7590, c] @@ -13376,7 +12817,6 @@ segments: - type: code start: 0xEC9D00 vram: 0x80240000 - overlay: True subsegments: - [0xEC9D00, c] - [0xECAA40, c] @@ -13388,7 +12828,6 @@ segments: - type: code start: 0xECFFF0 vram: 0x80240000 - overlay: True subsegments: - [0xECFFF0, c] - [0xED0030, c] @@ -13399,7 +12838,6 @@ segments: - type: code start: 0xED4220 vram: 0x80240000 - overlay: True subsegments: - [0xED4220, c] - [0xED4260, c] @@ -13410,7 +12848,6 @@ segments: - type: code start: 0xED8E20 vram: 0x80240000 - overlay: True subsegments: - [0xED8E20, c, ED8E20] - [0xED9170, data] @@ -13418,7 +12855,6 @@ segments: - type: code start: 0xEDBFE0 vram: 0x80240000 - overlay: True subsegments: - [0xEDBFE0, c] - [0xEDC020, c] @@ -13426,7 +12862,6 @@ segments: - type: code start: 0xEDE9C0 vram: 0x80240000 - overlay: True subsegments: - [0xEDE9C0, c] - [0xEDEA00, c, EDEA00] @@ -13436,7 +12871,6 @@ segments: - type: code start: 0xEE65B0 vram: 0x80240000 - overlay: True subsegments: - [0xEE65B0, c] - [0xEE70C0, c] @@ -13446,7 +12880,6 @@ segments: - type: code start: 0xEED100 vram: 0x80240000 - overlay: True subsegments: - [0xEED100, c] - [0xEED140, c] @@ -13458,7 +12891,6 @@ segments: - type: code start: 0xEF2610 vram: 0x80240000 - overlay: True subsegments: - [0xEF2610, c] - [0xEF2650, c] @@ -13468,7 +12900,6 @@ segments: - type: code start: 0xEF7A80 vram: 0x80240000 - overlay: True subsegments: - [0xEF7A80, c] - [0xEF7FB0, c] @@ -13477,7 +12908,6 @@ segments: - type: code start: 0xEFEB00 vram: 0x80240000 - overlay: True subsegments: - [0xEFEB00, c] - [0xEFF440, bin] # some of this is audio-related and not part of this overlay @@ -13632,20 +13062,47 @@ segments: - [0x199A8C0, bin] # Retro sprites - [0x199BB00, bin] # Princess Peach sprites - [0x19E0970, bin] # Player sprite Yay0 table (following 13 entries) - - [0x19E09A8, Yay0] - - [0x19E1390, Yay0] - - [0x19E1888, Yay0] - - [0x19E2330, Yay0] - - [0x19E2DE0, Yay0] - - [0x19E3208, Yay0] - - [0x19E3BA8, Yay0] - - [0x19E3FD8, Yay0] - - [0x19E4828, Yay0] - - [0x19E4BE0, Yay0] - - [0x19E5758, Yay0] - - [0x19E5950, Yay0] - - [0x19E62A0, Yay0] - - start: 0x19E67B8 # TODO shiftability + - start: 0x19E09A8 + type: Yay0 + align: 8 + - start: 0x19E1390 + type: Yay0 + align: 8 + - start: 0x19E1888 + type: Yay0 + align: 8 + - start: 0x19E2330 + type: Yay0 + align: 8 + - start: 0x19E2DE0 + type: Yay0 + align: 8 + - start: 0x19E3208 + type: Yay0 + align: 8 + - start: 0x19E3BA8 + type: Yay0 + align: 8 + - start: 0x19E3FD8 + type: Yay0 + align: 8 + - start: 0x19E4828 + type: Yay0 + align: 8 + - start: 0x19E4BE0 + type: Yay0 + align: 8 + - start: 0x19E5758 + type: Yay0 + align: 8 + - start: 0x19E5950 + type: Yay0 + align: 8 + - start: 0x19E62A0 + type: Yay0 + align: 8 + - start: 0x19E67B8 + align: 8 type: pm_npc_sprites dir: sprite name: npc @@ -13938,6 +13395,6 @@ segments: - [0x1E00000, bin] # junk (player sprite data; can be zeroed out with no effect) - [0x1E40000, pm_map_data, mapfs] - type: bin - start: 0x27FEE22 # TODO shiftability + start: 0x27FEE22 subalign: 2 - [0x2800000] diff --git a/ver/us/symbol_addrs.txt b/ver/us/symbol_addrs.txt index 0cc5cdbce5..88e630d982 100644 --- a/ver/us/symbol_addrs.txt +++ b/ver/us/symbol_addrs.txt @@ -27217,7 +27217,6 @@ D_802DFEB0 = 0x802DFEB0; // type:data D_802DFEB8 = 0x802DFEB8; // type:data PlayerRasterSetsLoaded = 0x802E004C; // type:data PlayerRasterBufferSetOffsets = 0x802E0050; // type:data -D_802E0080 = 0x802E0080; // type:data D_802E0090 = 0x802E0090; // type:data PlayerRasterHeader = 0x802E0C10; // type:data D_802E0C14 = 0x802E0C14; // type:data diff --git a/ver/us/undefined_syms.txt b/ver/us/undefined_syms.txt index 97fb166f10..edd877f15a 100644 --- a/ver/us/undefined_syms.txt +++ b/ver/us/undefined_syms.txt @@ -1148,36 +1148,7 @@ gWorldMapVars = 0x802DBCA8; gBattleMapVars = 0x802DBCE8; DoorModelsSwingCCW = 0x802DBD28; gBattleMapFlags = 0x802DBD34; -spr_allocateBtlComponentsOnWorldHeap = 0x802DF524; -MaxLoadedSpriteInstanceID = 0x802DF530; -D_802DF540 = 0x802DF540; -spr_playerSprites = 0x802DF548; -D_802DF57C = 0x802DF57C; -spr_playerMaxComponents = 0x802DF580; -spr_playerCurrentAnimInfo = 0x802DF588; -NpcSpriteData = 0x802DF5B0; -NpcSpriteInstanceCount = 0x802DF958; -SpriteInstances = 0x802DFA48; -D_802DFE44 = 0x802DFE44; -D_802DFE48 = 0x802DFE48; -D_802DFE9C = 0x802DFE9C; -D_802DFEA0 = 0x802DFEA0; -SpriteUpdateNotifyValue = 0x802DFEAC; -D_802DFEB0 = 0x802DFEB0; -D_802DFEB8 = 0x802DFEB8; -PlayerRasterSetsLoaded = 0x802E004C; -PlayerRasterBufferSetOffsets = 0x802E0050; -D_802E0080 = 0x802E0080; -D_802E0090 = 0x802E0090; -PlayerRasterHeader = 0x802E0C10; -D_802E0C14 = 0x802E0C14; -D_802E0C20 = 0x802E0C20; -PlayerRasterCacheSize = 0x802E0C58; -PlayerRasterMaxSize = 0x802E0C5C; -SpriteDataHeader = 0x802E0C60; -D_802E0C64 = 0x802E0C64; -D_802E0C68 = 0x802E0C68; -PlayerRasterCache = 0x802E0C70; + SaveBlockTutorialPrinterClosed = 0x802EB390; SaveBlockResultPrinterClosed = 0x802EB394; SaveBlockTutorialPrinter = 0x802EB398;