diff --git a/include/effects.h b/include/effects.h index ddfcb4598a..e1bd3036b5 100644 --- a/include/effects.h +++ b/include/effects.h @@ -2349,32 +2349,28 @@ typedef struct Effect76FXData { } Effect76FXData; // size = unknown typedef struct FireworkRocketFXData { - /* 0x00 */ s32 unk_00; - /* 0x04 */ f32 unk_04; - /* 0x08 */ f32 unk_08; - /* 0x0C */ f32 unk_0C; - /* 0x10 */ f32 unk_10; - /* 0x14 */ f32 unk_14; - /* 0x18 */ f32 unk_18; - /* 0x1C */ s32 unk_1C; - /* 0x20 */ s32 unk_20; - /* 0x24 */ s32 unk_24; - /* 0x28 */ s32 unk_28; - /* 0x2C */ s32 unk_2C; - /* 0x30 */ s32 unk_30; + /* 0x00 */ s32 variation; + /* 0x04 */ Vec3f pos; + /* 0x10 */ Vec3f velocity; + /* 0x1C */ s32 timeLeft; + /* 0x20 */ s32 lifeTime; + /* 0x24 */ s32 r; + /* 0x28 */ s32 g; + /* 0x2C */ s32 b; + /* 0x30 */ s32 minBlurAlpha; /* 0x34 */ s32 unk_34; /* 0x38 */ s32 unk_38; /* 0x3C */ s32 unk_3C; /* 0x40 */ s32 unk_40; - /* 0x44 */ f32 unk_44; - /* 0x48 */ f32 unk_48; - /* 0x4C */ s32 unk_4C; - /* 0x50 */ f32 unk_50[4]; - /* 0x60 */ f32 unk_60[4]; - /* 0x70 */ f32 unk_70[4]; - /* 0x80 */ f32 unk_80[4]; - /* 0x90 */ f32 unk_90[4]; - /* 0xA0 */ f32 unk_A0[4]; + /* 0x44 */ f32 radius; + /* 0x48 */ f32 maxRadius; + /* 0x4C */ s32 isExploded; + /* 0x50 */ f32 rocketX[4]; + /* 0x60 */ f32 rocketY[4]; + /* 0x70 */ f32 rocketZ[4]; + /* 0x80 */ f32 rocketVelocityX[4]; + /* 0x90 */ f32 rocketVelocityY[4]; + /* 0xA0 */ f32 rocketVelocityZ[4]; } FireworkRocketFXData; // size = 0xB0 typedef struct PeachStarBeamSpirit { diff --git a/src/101b90_len_8f0.c b/src/101b90_len_8f0.c index 46a716f02a..c8ab8128e2 100644 --- a/src/101b90_len_8f0.c +++ b/src/101b90_len_8f0.c @@ -11,21 +11,19 @@ extern s32 spr_allocateBtlComponentsOnWorldHeap; -BSS s32 D_802DFEB0[2]; +BSS s32 spr_asset_entry[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 PlayerRasterHeader[3]; +BSS s32 D_802E0C1C; 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 SpriteDataHeader[3]; BSS s32 D_802E0C6C; // unused? BSS PlayerSpriteCacheEntry PlayerRasterCache[18]; @@ -64,86 +62,95 @@ void spr_swizzle_anim_offsets(s32 arg0, s32 base, void* spriteData) { } } -#ifdef NON_EQUIVALENT -SpriteAnimData* spr_load_sprite(s32 idx, s32 arg1, s32 arg2) { +SpriteAnimData* spr_load_sprite(s32 idx, s32 isPlayerSprite, s32 useTailAlloc) { SpriteAnimData* animData; s32 base; s32 i; + s32 compressedSize; + s32* ptr1; + IMG_PTR image; + s32 count; + s32** data; + s32** palettes; - s32 temp_s0; - s32 temp_s0_2; - s32 temp_v0_2; - s32 temp_v0_3; - s32* temp_a1_3; - s32** var_s2; - u16** var_v1; - s32* temp_v0; - - if (arg1) { - base = D_802E0C64; + if (isPlayerSprite) { + base = SpriteDataHeader[1]; } else { - base = D_802E0C68; - } - nuPiReadRom(base + (idx * 4), &D_802DFEB0, 8U); - - temp_s0 = ALIGN8(D_802DFEB0[1] - D_802DFEB0[0]); - temp_v0 = general_heap_malloc(temp_s0); - nuPiReadRom(base + D_802DFEB0[0], temp_v0, temp_s0); - - if (arg2) { - temp_v0++; - animData = _heap_malloc_tail(&gSpriteHeapPtr, *temp_v0); - } else { - temp_v0++; - animData = _heap_malloc(&gSpriteHeapPtr, *temp_v0); + base = SpriteDataHeader[2]; } - decode_yay0(temp_v0, animData); - general_heap_free(temp_v0); + // read current and next sprite offsets, so we can find the difference + nuPiReadRom(base + idx * 4, &spr_asset_entry, sizeof(spr_asset_entry)); - temp_v0_2 = ((u32) animData / 4) * 4; - var_s2 = animData->rastersOffset + temp_v0_2; - animData->rastersOffset = var_s2; + compressedSize = ALIGN8(spr_asset_entry[1] - spr_asset_entry[0]); + data = general_heap_malloc(compressedSize); + nuPiReadRom(base + spr_asset_entry[0], data, compressedSize); - while (*var_s2 != PTR_LIST_END) { - temp_a1_3 = *var_s2 + temp_v0_2; - *var_s2 = temp_a1_3; - var_s2++; - if (!arg1) { - *temp_a1_3 += temp_v0_2; + ptr1 = (s32*)data; + // skip 4 bytes: 'YAY0' signature + ptr1++; + + if (useTailAlloc) { + animData = _heap_malloc_tail(&gSpriteHeapPtr, *ptr1); + } else { + animData = _heap_malloc(&gSpriteHeapPtr, *ptr1); + } + decode_yay0(data, animData); + general_heap_free(data); + + // swizzle raster array + data = (s32**)animData->rastersOffset; + data = SPR_SWIZZLE(ALIGN4(animData), data); + animData->rastersOffset = (SpriteRasterCacheEntry**)data; + + while (TRUE) { + ptr1 = *data; + if (ptr1 == PTR_LIST_END) { + break; + } + // swizzle each raster cache entry + ptr1 = SPR_SWIZZLE(ALIGN4(animData), ptr1); + *data++ = ptr1; + image = ((SpriteRasterCacheEntry*)ptr1)->image; + + if (!isPlayerSprite) { + // swizzle image pointer in the cache entry + image = SPR_SWIZZLE(ALIGN4(animData), image); + *ptr1 = (s32)image; } } - if (arg1) { - D_802E0050[idx] = D_802E004C; - temp_s0_2 = D_802E0C20[idx + 1] - D_802E0C20[idx]; - nuPiReadRom(D_802E0C60[0] + D_802E0C14[0] + D_802E0C20[idx], &D_802DFEB8, 0x194); - for (i = 0; i < temp_s0_2; i++) { - D_802E0090[D_802E004C++] = D_802DFEB8[i]; + if (isPlayerSprite) { + PlayerRasterBufferSetOffsets[idx] = PlayerRasterSetsLoaded; + count = D_802E0C20[idx + 1] - D_802E0C20[idx]; + nuPiReadRom(SpriteDataHeader[0] + PlayerRasterHeader[1] + sizeof(u32) * D_802E0C20[idx], D_802DFEB8, sizeof(D_802DFEB8)); + for (i = 0; i < count; i++) { + D_802E0090[PlayerRasterSetsLoaded++] = D_802DFEB8[i]; } } - temp_v0_3 = ((u32) animData / 4) * 4; - var_v1 = animData->palettesOffset + temp_v0_3; - animData->palettesOffset = var_v1; - - while (*var_v1 != -1) { - *var_v1 += temp_v0_3; - var_v1++; + // swizzle palettes array + palettes = SPR_SWIZZLE(ALIGN4(animData), animData->palettesOffset); + animData->palettesOffset = (PAL_PTR*)palettes; + while (TRUE) { + ptr1 = *palettes; + if (ptr1 == PTR_LIST_END) { + break; + } + // swizzle each palette pointer + ptr1 = SPR_SWIZZLE(ALIGN4(animData), ptr1); + *palettes++ = ptr1; } spr_swizzle_anim_offsets(0, 0, animData); return animData; } -#else -INCLUDE_ASM(s32, "101b90_len_8f0", spr_load_sprite); -#endif void spr_init_player_raster_cache(s32 cacheSize, s32 maxRasterSize) { void* raster; s32 i; - nuPiReadRom(SPRITE_ROM_START, &SpriteDataHeader, 0xC); + nuPiReadRom(SPRITE_ROM_START, &SpriteDataHeader, sizeof(SpriteDataHeader)); PlayerRasterCacheSize = cacheSize; PlayerRasterMaxSize = maxRasterSize; SpriteDataHeader[0] += SPRITE_ROM_START; @@ -163,8 +170,8 @@ void spr_init_player_raster_cache(s32 cacheSize, s32 maxRasterSize) { PlayerRasterBufferSetOffsets[i] = 0; } PlayerRasterSetsLoaded = 0; - nuPiReadRom(SpriteDataHeader[0], &PlayerRasterHeader, 0xC); - nuPiReadRom(SpriteDataHeader[0] + PlayerRasterHeader, D_802E0C20, 0x38); + nuPiReadRom(SpriteDataHeader[0], &PlayerRasterHeader, sizeof(PlayerRasterHeader)); + nuPiReadRom(SpriteDataHeader[0] + PlayerRasterHeader[0], D_802E0C20, sizeof(D_802E0C20)); } IMG_PTR spr_get_player_raster(s32 rasterIndex, s32 playerSpriteID) { @@ -193,7 +200,7 @@ IMG_PTR spr_get_player_raster(s32 rasterIndex, s32 playerSpriteID) { temp_s0->spriteIndex = playerSpriteID; temp_s0->lazyDeleteTime = 2; temp_a2 = D_802E0090[PlayerRasterBufferSetOffsets[playerSpriteID] + rasterIndex]; - nuPiReadRom(*SpriteDataHeader + (temp_a2 & 0xFFFFF), temp_s0->raster, (temp_a2 >> 0x10) & 0xFFF0); + nuPiReadRom(SpriteDataHeader[0] + (temp_a2 & 0xFFFFF), temp_s0->raster, (temp_a2 >> 0x10) & 0xFFF0); return temp_s0->raster; } @@ -209,13 +216,136 @@ void spr_update_player_raster_cache(void) { } } -void spr_load_npc_extra_anims(SpriteAnimData*, u32*); -INCLUDE_ASM(s32, "101b90_len_8f0", spr_load_npc_extra_anims); +void spr_load_npc_extra_anims(SpriteAnimData* header, u32* extraAnimList) { + u8* src; + s32 imgID; + s32 rasterSize; + s32 remaining; + u16 animCmd; + u16* cmdList; + u32 extraAnimID; + u8* dataPos; + void* copyEnd; + SpriteAnimComponent* comp; + SpriteAnimComponent** compList; + void* writePos; + SpriteRasterCacheEntry** rasterList; + SpriteRasterCacheEntry* raster; + u16** oldPalList; + u16* palette; + // one extra required for 'done' sentinel + s32 sawRaster[100 + 1]; + s32 i; + + for (i = 0; i < ARRAY_COUNT(sawRaster) - 1; i++) { + sawRaster[i] = FALSE; + } + + while ((extraAnimID = *extraAnimList++) != -1) { + compList = header->animListStart[extraAnimID & 0xFF]; + while ((comp = *compList++) != PTR_LIST_END) { + cmdList = comp->cmdList; + remaining = (s16) comp->cmdListSize / 2; + while (remaining > 0) { + animCmd = *cmdList++; + remaining--; + switch (animCmd & 0xF000) { + case 0x1000: + i = animCmd; // required to match + imgID = i & 0xFF; + if (imgID < ARRAY_COUNT(sawRaster) - 1) { + sawRaster[imgID] = TRUE; + } + break; + case 0x3000: + cmdList++; + remaining--; + // fallthrough + case 0x4000: + cmdList++; + remaining--; + // fallthrough + case 0x7000: + case 0x5000: + cmdList++; + remaining--; + // fallthrough + case 0x0000: + case 0x2000: + case 0x6000: + case 0x8000: + break; + } + } + } + } + + rasterList = header->rastersOffset; + raster = *rasterList; + dataPos = raster->image; + + for (i = 0; i < ARRAY_COUNT(sawRaster) - 1; i++) { + if ((raster = *rasterList) == PTR_LIST_END) { + break; + } + if (sawRaster[i]) { + src = raster->image; + rasterSize = (raster->width * raster->height) / 2; + copyEnd = &dataPos[rasterSize]; + rasterSize += 8; + if (dataPos != src) { + raster->image = dataPos; + bcopy(src, dataPos, rasterSize); + } + *rasterList = copyEnd; + dataPos += rasterSize; + } + rasterList++; + } + // sentinel value to mark end of valid data + sawRaster[i] = TRUE; + + writePos = dataPos; + + // copy raster list + rasterList = header->rastersOffset; + header->rastersOffset = writePos; + + for (i = 0; i < ARRAY_COUNT(sawRaster) - 1; i++) { + raster = *rasterList++; + if (sawRaster[i]) { + *(SpriteRasterCacheEntry**) writePos = raster; + } else { + *(SpriteRasterCacheEntry**) writePos = (SpriteRasterCacheEntry*) copyEnd; + } + writePos += 4; + if (raster == PTR_LIST_END) { + break; + } + } + + // copy palette list + oldPalList = header->palettesOffset; + header->palettesOffset = writePos; + + for (i = 0; i < ARRAY_COUNT(sawRaster) - 1; i++) { + raster = (SpriteRasterCacheEntry*)*oldPalList++; // required to match + *(u16**)writePos = (u16*)raster; + writePos += 4; + if (raster == PTR_LIST_END) { + break; + } + } + + _heap_realloc(&gSpriteHeapPtr, header, (s32)writePos - (s32)header); +} + #ifdef NON_MATCHING SpriteComponent** spr_allocate_components(s32 count) { s32 listSize; void** heap; + SpriteComponent **new_var; SpriteComponent** listStart; SpriteComponent* component; SpriteComponent** listPos; @@ -228,19 +358,18 @@ SpriteComponent** spr_allocate_components(s32 count) { totalSize = (count * sizeof(SpriteComponent)) + listSize; if (spr_allocateBtlComponentsOnWorldHeap) { - heap = _heap_malloc(&heap_generalHead, totalSize); + listStart = _heap_malloc(&heap_generalHead, totalSize); } else { - heap = _heap_malloc(&gSpriteHeapPtr, totalSize); + listStart = _heap_malloc(&gSpriteHeapPtr, totalSize); } - listStart = (SpriteComponent**) heap; - listPos = listStart; - component = (SpriteComponent*)(heap + (listSize / 4)); + component = listPos = listStart; + + component = (SpriteComponent*)((s32)(component) + (listSize / 4) * 4); // fill list values for (i = 0; i < count; i++) { - *listPos = component; - listPos++; + *listPos++ = component; component++; } *listPos = PTR_LIST_END; diff --git a/src/effects/confetti.c b/src/effects/confetti.c index 7a827dc21f..3054ff72d1 100644 --- a/src/effects/confetti.c +++ b/src/effects/confetti.c @@ -44,8 +44,6 @@ void func_E0088000(ConfettiFXData* part) { part->unk_20 = 120; } -// weirdness abound -#ifdef NON_EQUIVALENT EffectInstance* confetti_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5) { EffectBlueprint bp; EffectBlueprint* bpPtr = &bp; @@ -112,33 +110,43 @@ EffectInstance* confetti_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, effect = shim_create_effect_instance(bpPtr); effect->numParts = numParts; - data = effect->data.fireworkRocket = shim_general_heap_malloc(numParts * sizeof(*data)); - ASSERT(effect->data.fireworkRocket != NULL); + data = effect->data.confetti = (ConfettiFXData*)shim_general_heap_malloc(numParts * sizeof(*data)); + ASSERT(effect->data.confetti != NULL); data->unk_04 = arg1; data->unk_08 = arg2; data->unk_0C = arg3; data->unk_24 = 0; - data->unk_00 = arg0; data->unk_20 = arg5; + data->unk_00 = arg0; data->unk_2C = np; data->unk_28 = 255; + data++; temp_fp = shim_rand_int(360); for (i = 0; i < np; i++, data++) { temp_f30 = sp28 * (func_E0200000(100) * 0.01f); - if ((u32) arg0 < 7U) { - - } - temp_f28 = 2.0 * (sp28 * 0.5); - var_v0 = i; - if (i < 0) { - var_v0 = i + 3; + switch (arg0) { + case 0: + case 4: + temp_f28 = sp28 * 0.5 * 2.0; + break; + case 1: + case 5: + temp_f28 = sp28 * 0.5 * 2.0; + break; + case 2: + case 6: + temp_f28 = sp28 * 0.5 * 2.0; + break; } + temp_f28 = sp28 * 0.5 * 2.0; + theta2 = D_E0088D08[i % 4]; theta = ((i * 360.0f) / np) + temp_fp; - data->unk_30 = arg0; - theta2 = D_E0088D08[i - ((var_v0 >> 2) * 4)]; + + data->unk_00 = arg0; + sinTheta = shim_sin_deg(theta); cosTheta = shim_cos_deg(theta); sinTheta2 = shim_sin_deg(theta2); @@ -147,14 +155,14 @@ EffectInstance* confetti_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, func_E0088000(data); data->unk_30 = i * 3; } else { - data->unk_0C = temp_f30 * sinTheta2; - data->unk_18 = temp_f28 * sinTheta2; data->unk_04 = temp_f30 * sinTheta * cosTheta2; data->unk_08 = temp_f30 * cosTheta * cosTheta2; + data->unk_0C = temp_f30 * sinTheta2; data->unk_10 = temp_f28 * sinTheta * cosTheta2; data->unk_14 = (temp_f28 * cosTheta * cosTheta2) + 1.0f; + data->unk_18 = temp_f28 * sinTheta2; if (arg0 >= 4) { - data->unk_1C = -0.02 - (((i + 1) % 3) * 0.02); + data->unk_1C = -0.02 - ((i + 1) % 3) * 0.02; } else { data->unk_1C = 0.0f; } @@ -163,9 +171,6 @@ EffectInstance* confetti_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, } return effect; } -#else -INCLUDE_ASM(s32, "effects/confetti", confetti_main); -#endif void confetti_init(EffectInstance* effect) { } diff --git a/src/effects/firework_rocket.c b/src/effects/firework_rocket.c index 43d093577e..f4fcbf1b59 100644 --- a/src/effects/firework_rocket.c +++ b/src/effects/firework_rocket.c @@ -1,13 +1,15 @@ #include "common.h" #include "effects_internal.h" +void shim_func_80138D88(s32, s32, s32, s32, f32); + void firework_rocket_init(EffectInstance* effect); void firework_rocket_render(EffectInstance* effect); void firework_rocket_update(EffectInstance* effect); void firework_rocket_appendGfx(void* effect); typedef struct FireworkRocketUnk { - /* 0x00 */ Color_RGB8* unk_00; + /* 0x00 */ Vec3b* sparks; /* 0x04 */ s32 num; } FireworkRocketUnk; // size = 0x8 @@ -17,42 +19,58 @@ extern Gfx D_09000158_3E54A8[]; Gfx* D_E010ACC0[] = { D_09000158_3E54A8, D_09000158_3E54A8, D_09000158_3E54A8 }; Gfx* D_E010ACCC[] = { D_09000080_3E53D0, D_09000080_3E53D0, D_09000080_3E53D0 }; -Color_RGB8 D_E010ACD8[] = { - {36, 0, 93}, {54, 216, 74}, {67, 0, 74}, {82, 220, 45}, {89, 0, 45}, {60, 190, 45}, {21, 192, 74}, {28, 171, 45}, - {10, 158, 15}, {49, 170, 15}, {166, 216, 15}, {169, 237, 45}, {157, 0, 15}, {184, 203, 45}, {169, 19, 45}, - {166, 40, 15}, {190, 73, 15}, {184, 53, 45}, {211, 77, 45}, {225, 94, 15}, {247, 89, 45}, {184, 53, 45}, - {11, 222, 93}, {0, 0, 100}, {202, 216, 74}, {184, 203, 45}, {211, 179, 45}, {166, 216, 15}, {190, 183, 15}, - {11, 222, 93}, {235, 192, 74}, {21, 192, 74}, {247, 167, 45}, {28, 171, 45}, {10, 98, 15}, {80, 198, 15}, - {97, 235, 15}, {49, 170, 15}, {10, 158, 15}, {225, 162, 15}, {190, 183, 15}, {49, 86, 15}, {80, 58, 15}, - {97, 21, 15}, {227, 235, 93}, {0, 0, 100}, {11, 34, 93}, {227, 21, 93}, {21, 64, 74}, {235, 64, 74}, {202, 40, 74}, - {28, 85, 45}, {67, 0, 74}, {89, 0, 45}, {36, 0, 93}, {0, 0, 100}, {11, 34, 93}, {54, 40, 74}, {21, 64, 74}, - {202, 40, 74}, {184, 53, 45}, {0, 0, 100}, {227, 235, 93}, {189, 0, 74}, {202, 216, 74}, {227, 21, 93}, {0, 0, 100}, - {60, 190, 45}, {82, 220, 45}, {89, 0, 45}, {28, 171, 45}, {28, 171, 45}, {247, 167, 45}, {211, 179, 45}, - {184, 203, 45}, {60, 66, 45}, {28, 85, 45}, {82, 36, 45}, {28, 85, 45}, {89, 0, 45}, {247, 89, 45}, {211, 77, 45}, - {184, 53, 45}, {49, 86, 15}, {10, 98, 15}, {82, 36, 45}, {97, 235, 15}, {97, 21, 15}, {60, 66, 45}, {28, 85, 45}, - {169, 19, 45}, {190, 73, 15}, {166, 40, 15}, {169, 237, 45}, {184, 203, 45} +Vec3b D_E010ACD8[] = { + { 36, 0, 93 }, { 54, -40, 74 }, { 67, 0, 74 }, { 82, -36, 45 }, { 89, 0, 45 }, + { 60, -66, 45 }, { 21, -64, 74 }, { 28, -85, 45 }, { 10, -98, 15 }, { 49, -86, 15 }, + { -90, -40, 15 }, { -87, -19, 45 }, { -99, 0, 15 }, { -72, -53, 45 }, { -87, 19, 45 }, + { -90, 40, 15 }, { -66, 73, 15 }, { -72, 53, 45 }, { -45, 77, 45 }, { -31, 94, 15 }, + { -9, 89, 45 }, { -72, 53, 45 }, { 11, -34, 93 }, { 0, 0, 100 }, { -54, -40, 74 }, + { -72, -53, 45 }, { -45, -77, 45 }, { -90, -40, 15 }, { -66, -73, 15 }, { 11, -34, 93 }, + { -21, -64, 74 }, { 21, -64, 74 }, { -9, -89, 45 }, { 28, -85, 45 }, { 10, 98, 15 }, + { 80, -58, 15 }, { 97, -21, 15 }, { 49, -86, 15 }, { 10, -98, 15 }, { -31, -94, 15 }, + { -66, -73, 15 }, { 49, 86, 15 }, { 80, 58, 15 }, { 97, 21, 15 }, { -29, -21, 93 }, + { 0, 0, 100 }, { 11, 34, 93 }, { -29, 21, 93 }, { 21, 64, 74 }, { -21, 64, 74 }, + { -54, 40, 74 }, { 28, 85, 45 }, { 67, 0, 74 }, { 89, 0, 45 }, { 36, 0, 93 }, + { 0, 0, 100 }, { 11, 34, 93 }, { 54, 40, 74 }, { 21, 64, 74 }, { -54, 40, 74 }, + { -72, 53, 45 }, { 0, 0, 100 }, { -29, -21, 93 }, { -67, 0, 74 }, { -54, -40, 74 }, + { -29, 21, 93 }, { 0, 0, 100 }, { 60, -66, 45 }, { 82, -36, 45 }, { 89, 0, 45 }, + { 28, -85, 45 }, { 28, -85, 45 }, { -9, -89, 45 }, { -45, -77, 45 }, { -72, -53, 45 }, + { 60, 66, 45 }, { 28, 85, 45 }, { 82, 36, 45 }, { 28, 85, 45 }, { 89, 0, 45 }, + { -9, 89, 45 }, { -45, 77, 45 }, { -72, 53, 45 }, { 49, 86, 15 }, { 10, 98, 15 }, + { 82, 36, 45 }, { 97, -21, 15 }, { 97, 21, 15 }, { 60, 66, 45 }, { 28, 85, 45 }, + { -87, 19, 45 }, { -66, 73, 15 }, { -90, 40, 15 }, { -87, -19, 45 }, { -72, -53, 45 }, }; -Color_RGB8 D_E010ADF8[] = { - {208, 241, 0}, {220, 230, 22}, {211, 0, 22}, {208, 15, 0}, {220, 26, 22}, {227, 40, 0}, {220, 26, 22}, - {242, 43, 22}, {0, 50, 0}, {14, 43, 22}, {8, 231, 43}, {14, 213, 22}, {36, 230, 22}, {26, 0, 43}, {0, 0, 50}, - {0, 206, 0}, {29, 216, 0}, {45, 0, 22}, {29, 216, 0}, {36, 230, 22}, {14, 213, 22}, {48, 241, 0}, {45, 0, 22}, - {0, 206, 0}, {14, 213, 22}, {242, 213, 22}, {227, 216, 0}, {220, 230, 22}, {29, 40, 0}, {36, 26, 22}, {48, 15, 0}, - {14, 43, 22}, {45, 0, 22}, {0, 0, 50}, {8, 25, 43}, {235, 15, 43}, {14, 43, 22}, {26, 0, 43}, {45, 0, 22}, - {0, 0, 50}, {8, 25, 43}, {235, 241, 43}, {0, 0, 50}, {220, 230, 22}, {8, 231, 43}, {0, 0, 50}, {235, 15, 43}, - {235, 241, 43}, {220, 26, 22}, {242, 43, 22}, {220, 26, 22}, {29, 40, 0}, {0, 50, 0}, {36, 26, 22}, {48, 241, 0}, - {48, 15, 0}, {14, 43, 22}, {242, 213, 22}, {208, 241, 0}, {227, 216, 0}, {14, 213, 22}, {211, 0, 22}, - {220, 230, 22}, {227, 40, 0}, {208, 15, 0}, {0, 0, 0} +Vec3b D_E010ADF8[] = { + { -48, -15, 0 }, { -36, -26, 22 }, { -45, 0, 22 }, { -48, 15, 0 }, { -36, 26, 22 }, + { -29, 40, 0 }, { -36, 26, 22 }, { -14, 43, 22 }, { 0, 50, 0 }, { 14, 43, 22 }, + { 8, -25, 43 }, { 14, -43, 22 }, { 36, -26, 22 }, { 26, 0, 43 }, { 0, 0, 50 }, + { 0, -50, 0 }, { 29, -40, 0 }, { 45, 0, 22 }, { 29, -40, 0 }, { 36, -26, 22 }, + { 14, -43, 22 }, { 48, -15, 0 }, { 45, 0, 22 }, { 0, -50, 0 }, { 14, -43, 22 }, + { -14, -43, 22 }, { -29, -40, 0 }, { -36, -26, 22 }, { 29, 40, 0 }, { 36, 26, 22 }, + { 48, 15, 0 }, { 14, 43, 22 }, { 45, 0, 22 }, { 0, 0, 50 }, { 8, 25, 43 }, + { -21, 15, 43 }, { 14, 43, 22 }, { 26, 0, 43 }, { 45, 0, 22 }, { 0, 0, 50 }, + { 8, 25, 43 }, { -21, -15, 43 }, { 0, 0, 50 }, { -36, -26, 22 }, { 8, -25, 43 }, + { 0, 0, 50 }, { -21, 15, 43 }, { -21, -15, 43 }, { -36, 26, 22 }, { -14, 43, 22 }, + { -36, 26, 22 }, { 29, 40, 0 }, { 0, 50, 0 }, { 36, 26, 22 }, { 48, -15, 0 }, + { 48, 15, 0 }, { 14, 43, 22 }, { -14, -43, 22 }, { -48, -15, 0 }, { -29, -40, 0 }, + { 14, -43, 22 }, { -45, 0, 22 }, { -36, -26, 22 }, { -29, 40, 0 }, { -48, 15, 0 }, + { 0, 0, 0 }, }; -Color_RGB8 D_E010AEC0[] = { - {247, 105, 0}, {239, 87, 0}, {17, 87, 0}, {9, 105, 0}, {0, 122, 0}, {230, 69, 0}, {26, 69, 0}, {221, 52, 0}, - {35, 52, 0}, {202, 49, 0}, {186, 255, 0}, {200, 241, 0}, {0, 200, 0}, {56, 241, 0}, {70, 255, 0}, {54, 49, 0}, - {196, 222, 0}, {239, 191, 0}, {17, 191, 0}, {60, 222, 0}, {85, 13, 0}, {74, 46, 0}, {99, 27, 0}, {93, 43, 0}, - {12, 33, 0}, {12, 22, 0}, {24, 22, 0}, {24, 33, 0}, {12, 10, 0}, {24, 10, 0}, {24, 45, 0}, {232, 33, 0}, - {232, 22, 0}, {232, 45, 0}, {113, 40, 0}, {193, 203, 0}, {190, 183, 0}, {182, 46, 0}, {163, 43, 0}, {35, 182, 0}, - {52, 173, 0}, {12, 45, 0}, {244, 22, 0}, {244, 33, 0}, {232, 10, 0}, {244, 10, 0}, {244, 45, 0}, {204, 173, 0}, - {221, 182, 0}, {186, 164, 0}, {171, 13, 0}, {157, 27, 0}, {143, 40, 0}, {63, 203, 0}, {66, 183, 0}, {70, 164, 0} +Vec3b D_E010AEC0[] = { + { -9, 105, 0 }, { -17, 87, 0 }, { 17, 87, 0 }, { 9, 105, 0 }, { 0, 122, 0 }, + { -26, 69, 0 }, { 26, 69, 0 }, { -35, 52, 0 }, { 35, 52, 0 }, { -54, 49, 0 }, + { -70, -1, 0 }, { -56, -15, 0 }, { 0, -56, 0 }, { 56, -15, 0 }, { 70, -1, 0 }, + { 54, 49, 0 }, { -60, -34, 0 }, { -17, -65, 0 }, { 17, -65, 0 }, { 60, -34, 0 }, + { 85, 13, 0 }, { 74, 46, 0 }, { 99, 27, 0 }, { 93, 43, 0 }, { 12, 33, 0 }, + { 12, 22, 0 }, { 24, 22, 0 }, { 24, 33, 0 }, { 12, 10, 0 }, { 24, 10, 0 }, + { 24, 45, 0 }, { -24, 33, 0 }, { -24, 22, 0 }, { -24, 45, 0 }, { 113, 40, 0 }, + { -63, -53, 0 }, { -66, -73, 0 }, { -74, 46, 0 }, { -93, 43, 0 }, { 35, -74, 0 }, + { 52, -83, 0 }, { 12, 45, 0 }, { -12, 22, 0 }, { -12, 33, 0 }, { -24, 10, 0 }, + { -12, 10, 0 }, { -12, 45, 0 }, { -52, -83, 0 }, { -35, -74, 0 }, { -70, -92, 0 }, + { -85, 13, 0 }, { -99, 27, 0 }, { -113, 40, 0 }, { 63, -53, 0 }, { 66, -73, 0 }, + { 70, -92, 0 }, }; FireworkRocketUnk D_E010AF68[] = { @@ -61,10 +79,10 @@ FireworkRocketUnk D_E010AF68[] = { {D_E010AEC0, ARRAY_COUNT(D_E010AEC0)} }; -s32 D_E010AF80 = 0; -s32 D_E010AF84 = 0; +s32 firework_rocket_frame_counter = 0; +s32 firework_rocket_blur_alpha = 0; -EffectInstance* firework_rocket_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, s32 arg8) { +EffectInstance* firework_rocket_main(s32 variation, f32 centerX, f32 centerY, f32 centerZ, f32 velX, f32 velY, f32 velZ, f32 radius, s32 duration) { EffectBlueprint bp; EffectInstance* effect; FireworkRocketFXData* data; @@ -83,38 +101,38 @@ EffectInstance* firework_rocket_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 data = effect->data.fireworkRocket = shim_general_heap_malloc(numParts * sizeof(*data)); ASSERT(effect->data.fireworkRocket != NULL); - data->unk_00 = arg0; - data->unk_20 = 0; - if (arg8 <= 0) { - data->unk_1C = 1000; + data->variation = variation; + data->lifeTime = 0; + if (duration <= 0) { + data->timeLeft = 1000; } else { - data->unk_1C = arg8 + 32; + data->timeLeft = duration + 32; } - data->unk_4C = 0; - data->unk_30 = 255; - data->unk_04 = arg1; - data->unk_08 = arg2; - data->unk_0C = arg3; - data->unk_44 = 0; - data->unk_10 = arg4; - data->unk_14 = arg5; - data->unk_18 = arg6; - data->unk_48 = arg7; - data->unk_2C = 100; - data->unk_38 = 100; - data->unk_24 = 255; - data->unk_28 = 255; + data->isExploded = FALSE; + data->minBlurAlpha = 255; + data->pos.x = centerX; + data->pos.y = centerY; + data->pos.z = centerZ; + data->radius = 0; + data->velocity.x = velX; + data->velocity.y = velY; + data->velocity.z = velZ; + data->maxRadius = radius; + data->r = 255; + data->g = 255; + data->b = 100; data->unk_34 = 255; + data->unk_38 = 100; data->unk_3C = 150; data->unk_40 = 255; for (i = 0; i < 4; i++) { - data->unk_50[i] = data->unk_04; - data->unk_60[i] = data->unk_08 - 1000.0f; - data->unk_70[i] = data->unk_0C; - data->unk_80[i] = 0; - data->unk_90[i] = 0; - data->unk_A0[i] = 0; + data->rocketX[i] = data->pos.x; + data->rocketY[i] = data->pos.y - 1000.0f; + data->rocketZ[i] = data->pos.z; + data->rocketVelocityX[i] = 0; + data->rocketVelocityY[i] = 0; + data->rocketVelocityZ[i] = 0; } return effect; @@ -126,66 +144,66 @@ void firework_rocket_init(EffectInstance* effect) { void firework_rocket_update(EffectInstance* effect) { FireworkRocketFXData* data = effect->data.fireworkRocket; f32 factor; - s32 unk_20; + s32 lifeTime; s32 i; - if (effect->flags & 0x10) { - effect->flags &= ~0x10; - data->unk_1C = 16; + if (effect->flags & EFFECT_INSTANCE_FLAGS_10) { + effect->flags &= ~EFFECT_INSTANCE_FLAGS_10; + data->timeLeft = 16; } - if (data->unk_1C < 1000) { - data->unk_1C--; + if (data->timeLeft < 1000) { + data->timeLeft--; } - data->unk_20++; + data->lifeTime++; - if (data->unk_1C < 0) { + if (data->timeLeft < 0) { shim_remove_effect(effect); return; } - unk_20 = data->unk_20; + lifeTime = data->lifeTime; - if (data->unk_1C < 32) { - data->unk_30 = data->unk_1C * 8; + if (data->timeLeft < 32) { + data->minBlurAlpha = data->timeLeft * 8; } - if (data->unk_4C == 1) { + if (data->isExploded == TRUE) { factor = 0.95f; - data->unk_04 += data->unk_10; - data->unk_08 += data->unk_14; - data->unk_0C += data->unk_18; - data->unk_10 *= factor; - data->unk_14 *= factor; - data->unk_18 *= factor; - data->unk_44 += (data->unk_48 - data->unk_44) * 0.11; - data->unk_14 -= 0.15; + data->pos.x += data->velocity.x; + data->pos.y += data->velocity.y; + data->pos.z += data->velocity.z; + data->velocity.x *= factor; + data->velocity.y *= factor; + data->velocity.z *= factor; + data->radius += (data->maxRadius - data->radius) * 0.11; + data->velocity.y -= 0.15; return; } - i = unk_20 & 3; - data->unk_50[i] = data->unk_04 - data->unk_10 * (32 - unk_20); - data->unk_60[i] = data->unk_08 - data->unk_14 * (32 - unk_20) - - (80.0f - shim_sin_deg((s32) (unk_20 * 90) >> 5) * 80.0f); - data->unk_70[i] = data->unk_0C - data->unk_18 * (32 - unk_20); - data->unk_80[i] = (shim_rand_int(10) - 5) * 0.1f; - data->unk_90[i] = (shim_rand_int(10) - 5) * 0.1f; - data->unk_A0[i] = (shim_rand_int(10) - 5) * 0.1f; + i = lifeTime & 3; + data->rocketX[i] = data->pos.x - data->velocity.x * (32 - lifeTime); + data->rocketY[i] = data->pos.y - data->velocity.y * (32 - lifeTime) + - (80.0f - shim_sin_deg((s32)(lifeTime * 90) >> 5) * 80.0f); + data->rocketZ[i] = data->pos.z - data->velocity.z * (32 - lifeTime); + data->rocketVelocityX[i] = (shim_rand_int(10) - 5) * 0.1f; + data->rocketVelocityY[i] = (shim_rand_int(10) - 5) * 0.1f; + data->rocketVelocityZ[i] = (shim_rand_int(10) - 5) * 0.1f; for (i = 0; i < 4; i++) { - data->unk_50[i] += data->unk_80[i]; - data->unk_60[i] += data->unk_90[i]; - data->unk_70[i] += data->unk_A0[i]; - data->unk_90[i] -= 0.15; - if (unk_20 >= 27) { - data->unk_60[i] = -1000.0f; + data->rocketX[i] += data->rocketVelocityX[i]; + data->rocketY[i] += data->rocketVelocityY[i]; + data->rocketZ[i] += data->rocketVelocityZ[i]; + data->rocketVelocityY[i] -= 0.15; + if (lifeTime >= 27) { + data->rocketY[i] = -1000.0f; } } - if (unk_20 >= 32) { - data->unk_4C = 1; - data->unk_20 = 1; + if (lifeTime >= 32) { + data->isExploded = TRUE; + data->lifeTime = 1; } } @@ -202,4 +220,120 @@ void firework_rocket_render(EffectInstance* effect) { retTask->renderMode |= RENDER_TASK_FLAG_2; } -INCLUDE_ASM(s32, "effects/firework_rocket", firework_rocket_appendGfx); +void firework_rocket_appendGfx(void* effect) { + FireworkRocketFXData* data = ((EffectInstance*)effect)->data.fireworkRocket; + Camera* camera = &gCameras[gCurrentCameraID]; + s32 minBlurAlpha = data->minBlurAlpha; + s32 variation = data->variation; + f32 mtx_0_0, mtx_0_1, mtx_0_2, mtx_0_3; + f32 mtx_1_0, mtx_1_1, mtx_1_2, mtx_1_3; + f32 mtx_2_0, mtx_2_1, mtx_2_2, mtx_2_3; + f32 mtx_3_0, mtx_3_1, mtx_3_2, mtx_3_3; + f32 sinTheta, cosTheta; + f32 centerX, centerY, centerZ; + f32 negYaw; + f32 x, y, z; + f32 outX, outY, outZ, outS; + f32 radius; + s32 isExploded; + s32 numSparks; + Vec3b* sparkDir; + s32 i; + + negYaw = -camera->currentYaw; + sinTheta = shim_sin_deg(negYaw); + cosTheta = shim_cos_deg(negYaw); + isExploded = data->isExploded; + if (firework_rocket_frame_counter != gGameStatusPtr->frameCounter) { + // draw previous frame to create motion blur effect + shim_func_80138D88(10, 10, SCREEN_WIDTH - 10, SCREEN_HEIGHT - 10, firework_rocket_blur_alpha * 0.8); + firework_rocket_frame_counter = gGameStatusPtr->frameCounter; + firework_rocket_blur_alpha = 0; + } + if (firework_rocket_blur_alpha < minBlurAlpha) { + firework_rocket_blur_alpha = minBlurAlpha; + } + + gDPPipeSync(gMasterGfxPos++); + gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data)); + + mtx_0_0 = camera->perspectiveMatrix[0][0]; + mtx_0_1 = camera->perspectiveMatrix[0][1]; + mtx_0_2 = camera->perspectiveMatrix[0][2]; + mtx_0_3 = camera->perspectiveMatrix[0][3]; + mtx_1_0 = camera->perspectiveMatrix[1][0]; + mtx_1_1 = camera->perspectiveMatrix[1][1]; + mtx_1_2 = camera->perspectiveMatrix[1][2]; + mtx_1_3 = camera->perspectiveMatrix[1][3]; + mtx_2_0 = camera->perspectiveMatrix[2][0]; + mtx_2_1 = camera->perspectiveMatrix[2][1]; + mtx_2_2 = camera->perspectiveMatrix[2][2]; + mtx_2_3 = camera->perspectiveMatrix[2][3]; + mtx_3_0 = camera->perspectiveMatrix[3][0]; + mtx_3_1 = camera->perspectiveMatrix[3][1]; + mtx_3_2 = camera->perspectiveMatrix[3][2]; + mtx_3_3 = camera->perspectiveMatrix[3][3]; + + gSPDisplayList(gMasterGfxPos++, D_E010ACCC[variation]); + centerX = data->pos.x; + centerY = data->pos.y; + centerZ = data->pos.z; + radius = data->radius; + gDPSetPrimColor(gMasterGfxPos++, 0, 0, data->r, data->g, data->b, minBlurAlpha); + gDPSetEnvColor(gMasterGfxPos++, data->r, data->g, data->b, 0); + + if (isExploded == TRUE) { + sparkDir = D_E010AF68[variation].sparks; + numSparks = D_E010AF68[variation].num; + } else { + sparkDir = NULL; + numSparks = 4; + } + + for (i = 0; i < numSparks; i++, sparkDir++) { + if (isExploded == TRUE) { + // create blinking effect + if (shim_rand_int(16) < 6) { + continue; + } + x = (sparkDir->x * cosTheta + sparkDir->z * sinTheta) * radius + centerX; + y = sparkDir->y * radius + centerY; + z = (-sparkDir->x * sinTheta + sparkDir->z * cosTheta) * radius + centerZ; + } else { + x = data->rocketX[i]; + y = data->rocketY[i]; + z = data->rocketZ[i]; + } + + // convert world coords to screen coords + outX = mtx_0_0 * x + mtx_1_0 * y + mtx_2_0 * z + mtx_3_0; + outY = mtx_0_1 * x + mtx_1_1 * y + mtx_2_1 * z + mtx_3_1; + outZ = mtx_0_2 * x + mtx_1_2 * y + mtx_2_2 * z + mtx_3_2; + outS = mtx_0_3 * x + mtx_1_3 * y + mtx_2_3 * z + mtx_3_3; + + if (outS != 0.0f) { + outS = 1.0f / outS; + x = outX * outS; + y = -outY * outS; + z = outZ * outS; + + if (z <= -1.0f || x <= -1.0f || x >= 1.0f || y <= -1.0f || y >= 1.0f) { + continue; + } + z = 4.0f; // required to match + + x = (x + 1.0f) * camera->viewportW * 0.5; + x += camera->viewportStartX; + x *= 4.0f; + + y = (y + 1.0f) * camera->viewportH * 0.5; + y += camera->viewportStartY; + y *= 4.0f; + + gSPScisTextureRectangle(gMasterGfxPos++, + x, y, x + 8.0f, y + 8.0f, + G_TX_RENDERTILE, 4 << 5, 4 << 5, 16 << 10, 16 << 10); + } + } +} + diff --git a/src/sprite.c b/src/sprite.c index 63a581affc..c64619ff9e 100644 --- a/src/sprite.c +++ b/src/sprite.c @@ -825,7 +825,54 @@ s32 func_802DDA84(void) { return 0; } -INCLUDE_ASM(void, "sprite", spr_update_player_sprite, s32 arg0, s32 arg1, f32 arg2); +s32 spr_update_player_sprite(s32 spriteInstanceID, s32 animID, f32 timeScale) { + u32* spriteData; + SpriteComponent** compList; + SpriteComponent* component; + SpriteAnimComponent** animList; + SpriteRasterCacheEntry** rasterList; + s32 spriteId = ((animID >> 16) & 0xFF) - 1; + s32 i = spriteInstanceID & 0xFF; + s32 animIndex = animID & 0xFF; + D_802DF57C = spriteId; + + if (spr_playerCurrentAnimInfo[i].componentList == NULL) { + compList = spr_allocate_components(spr_playerMaxComponents); + spr_playerCurrentAnimInfo[i].componentList = compList; + while (*compList != PTR_LIST_END) { + component = *compList; + component->unk_4C = func_8013A704(1); + compList++; + } + } + + spriteData = (u32*)spr_playerSprites[spriteId]; + compList = spr_playerCurrentAnimInfo[i].componentList; + + if (spriteData == NULL) { + return 0; + } + + rasterList = (SpriteRasterCacheEntry**)*spriteData; + spriteData += 4 + animIndex; + animList = (SpriteAnimComponent**)*spriteData; + + spr_set_anim_timescale(timeScale); + if ((spriteInstanceID & DRAW_SPRITE_OVERRIDE_ALPHA) || + (animID & ~0x01000000) != (spr_playerCurrentAnimInfo[i].animID & ~0x01000000)) + { + spr_init_anim_state(compList, animList); + spr_playerCurrentAnimInfo[i].notifyValue = 0; + } + + spr_playerCurrentAnimInfo[i].animID = animID; + + if (!(spriteInstanceID & DRAW_SPRITE_OVERRIDE_YAW)) { + spr_playerCurrentAnimInfo[i].notifyValue = spr_component_update(spr_playerCurrentAnimInfo[i].notifyValue, + compList, animList, rasterList, 0); + } + return spr_playerCurrentAnimInfo[i].notifyValue; +} s32 spr_draw_player_sprite(s32 spriteInstanceID, s32 yaw, s32 alphaIn, u16** paletteList, Matrix4f mtx) { s32 i = spriteInstanceID & 0xFF; @@ -1026,8 +1073,6 @@ s32 spr_load_npc_sprite(s32 animID, u32* extraAnimList) { return listIndex; } -// animList being odd -#ifdef NON_MATCHING s32 spr_update_sprite(s32 spriteInstanceID, s32 animID, f32 timeScale) { u32* spriteData; SpriteComponent** compList; @@ -1039,13 +1084,11 @@ s32 spr_update_sprite(s32 spriteInstanceID, s32 animID, f32 timeScale) { s32 animIndex = animID & 0xFF; compList = SpriteInstances[i].componentList; - spriteData = SpriteInstances[i].spriteData; + spriteData = (u32*)SpriteInstances[i].spriteData; - rasterList = *spriteData++; - spriteData++; - spriteData++; - spriteData++; - animList = spriteData[animIndex]; + rasterList = (SpriteRasterCacheEntry**)*spriteData; + spriteData += 4 + animIndex; + animList = (SpriteAnimComponent**)*spriteData; palID = (animID >> 8) & 0xFF; spr_set_anim_timescale(timeScale); @@ -1060,9 +1103,6 @@ s32 spr_update_sprite(s32 spriteInstanceID, s32 animID, f32 timeScale) { } return SpriteInstances[i].notifyValue; } -#else -INCLUDE_ASM(s32, "sprite", spr_update_sprite, s32 arg0, s32 arg1, f32 arg2); -#endif s32 spr_draw_npc_sprite(s32 spriteInstanceID, s32 yaw, s32 arg2, PAL_PTR* paletteList, Matrix4f mtx) { s32 i = spriteInstanceID & 0xFF; @@ -1216,51 +1256,47 @@ void func_802DE894(s32 spriteIdx, s32 foldType, s32 foldArg0, s32 foldArg1, s32 func_802DE780(spriteIdx, -1, foldType, foldArg0, foldArg1, foldArg2, foldArg3, foldArg4); } -// animList issue -#ifdef NON_MATCHING s32 func_802DE8DC(s32 spriteIdx, s32 compListIdx, s32* outX, s32* outY, s32* outZ) { SpriteInstance* sprite = &SpriteInstances[spriteIdx]; - SpriteAnimComponent** animList; - SpriteComponent** compList; + SpriteAnimComponent** animCompList; SpriteAnimComponent* anim; + SpriteComponent** compList; SpriteComponent* comp; u8 animID; s32 i; + u32* spriteData; if (sprite->componentList == NULL) { - return spriteIdx * 20; + return; } animID = sprite->currentAnimID; - if (animID == 0xFF) { - return 0xFF; - } - - animList = sprite->spriteData->animListStart[animID]; - compList = sprite->componentList; - i = 0; - while (*compList != PTR_LIST_END) { - if (i == compListIdx) { - do { - anim = *animList; + if (animID != 255) { + spriteData = (u32*)sprite->spriteData; + spriteData += 4 + animID; + animCompList = (SpriteAnimComponent**)*spriteData; + compList = sprite->componentList; + i = 0; + while (*compList != PTR_LIST_END) { + if (i == compListIdx) { + anim = *animCompList; comp = *compList; - } while (0); // TODO required to match - *outX = comp->compPos.x + anim->compOffset.x; - *outY = comp->compPos.y + anim->compOffset.y; - *outZ = comp->compPos.z + anim->compOffset.z; - return 0; - } - i++; - compList++; - if (*animList != PTR_LIST_END) { - animList++; + *outX = comp->compPos.x + anim->compOffset.x; + *outY = comp->compPos.y + anim->compOffset.y; + *outZ = comp->compPos.z + anim->compOffset.z; + return 0; + } + i++; + compList++; + if (*animCompList != PTR_LIST_END) { + animCompList++; + } } + } else { + return; } return -1; } -#else -INCLUDE_ASM(s32, "sprite", func_802DE8DC); -#endif s32 spr_get_npc_raster_info(SpriteRasterInfo* out, s32 npcSpriteID, s32 rasterIndex) { SpriteAnimData* sprite = NpcSpriteData[npcSpriteID]; diff --git a/src/world/area_kmr/kmr_30/kmr_30_3_the_end.c b/src/world/area_kmr/kmr_30/kmr_30_3_the_end.c index f35c3291da..6f15a0f372 100644 --- a/src/world/area_kmr/kmr_30/kmr_30_3_the_end.c +++ b/src/world/area_kmr/kmr_30/kmr_30_3_the_end.c @@ -13,7 +13,7 @@ API_CALLABLE(N(ChooseFireworkColors)) { colG1 = colG2 = rand_int(inv); inv = 255 - colG1; colB1 = colB2 = rand_int(inv - colR1); - + colR1 += rand_int(128); colG1 += rand_int(128); colB1 += rand_int(128); @@ -40,9 +40,9 @@ API_CALLABLE(N(ChooseFireworkColors)) { colB2 = 255; } - effect->data.fireworkRocket->unk_24 = colR1; - effect->data.fireworkRocket->unk_28 = colG1; - effect->data.fireworkRocket->unk_2C = colB1; + effect->data.fireworkRocket->r = colR1; + effect->data.fireworkRocket->g = colG1; + effect->data.fireworkRocket->b = colB1; effect->data.fireworkRocket->unk_34 = colR2; effect->data.fireworkRocket->unk_38 = colG2; effect->data.fireworkRocket->unk_3C = colB2; diff --git a/ver/us/asm/nonmatchings/101b90_len_8f0/spr_load_npc_extra_anims.s b/ver/us/asm/nonmatchings/101b90_len_8f0/spr_load_npc_extra_anims.s deleted file mode 100644 index 3d45e96ac1..0000000000 --- a/ver/us/asm/nonmatchings/101b90_len_8f0/spr_load_npc_extra_anims.s +++ /dev/null @@ -1,206 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel spr_load_npc_extra_anims -/* 1020FC 802DF00C 27BDFE30 */ addiu $sp, $sp, -0x1d0 -/* 102100 802DF010 AFB601C0 */ sw $s6, 0x1c0($sp) -/* 102104 802DF014 0080B02D */ daddu $s6, $a0, $zero -/* 102108 802DF018 AFB101AC */ sw $s1, 0x1ac($sp) -/* 10210C 802DF01C 24110063 */ addiu $s1, $zero, 0x63 -/* 102110 802DF020 27A2019C */ addiu $v0, $sp, 0x19c -/* 102114 802DF024 AFBF01C8 */ sw $ra, 0x1c8($sp) -/* 102118 802DF028 AFB701C4 */ sw $s7, 0x1c4($sp) -/* 10211C 802DF02C AFB501BC */ sw $s5, 0x1bc($sp) -/* 102120 802DF030 AFB401B8 */ sw $s4, 0x1b8($sp) -/* 102124 802DF034 AFB301B4 */ sw $s3, 0x1b4($sp) -/* 102128 802DF038 AFB201B0 */ sw $s2, 0x1b0($sp) -/* 10212C 802DF03C AFB001A8 */ sw $s0, 0x1a8($sp) -.L802DF040: -/* 102130 802DF040 AC400000 */ sw $zero, ($v0) -/* 102134 802DF044 2631FFFF */ addiu $s1, $s1, -1 -/* 102138 802DF048 0621FFFD */ bgez $s1, .L802DF040 -/* 10213C 802DF04C 2442FFFC */ addiu $v0, $v0, -4 -/* 102140 802DF050 8CA30000 */ lw $v1, ($a1) -/* 102144 802DF054 2402FFFF */ addiu $v0, $zero, -1 -/* 102148 802DF058 1062004B */ beq $v1, $v0, .L802DF188 -/* 10214C 802DF05C 24A50004 */ addiu $a1, $a1, 4 -/* 102150 802DF060 0040602D */ daddu $t4, $v0, $zero -/* 102154 802DF064 24124000 */ addiu $s2, $zero, 0x4000 -/* 102158 802DF068 24111000 */ addiu $s1, $zero, 0x1000 -/* 10215C 802DF06C 24102000 */ addiu $s0, $zero, 0x2000 -/* 102160 802DF070 240F3000 */ addiu $t7, $zero, 0x3000 -/* 102164 802DF074 240E6000 */ addiu $t6, $zero, 0x6000 -/* 102168 802DF078 240D5000 */ addiu $t5, $zero, 0x5000 -.L802DF07C: -/* 10216C 802DF07C 306200FF */ andi $v0, $v1, 0xff -/* 102170 802DF080 00021080 */ sll $v0, $v0, 2 -/* 102174 802DF084 02C21021 */ addu $v0, $s6, $v0 -/* 102178 802DF088 080B7C5C */ j .L802DF170 -/* 10217C 802DF08C 8C480010 */ lw $t0, 0x10($v0) -.L802DF090: -/* 102180 802DF090 94620004 */ lhu $v0, 4($v1) -/* 102184 802DF094 8C660000 */ lw $a2, ($v1) -/* 102188 802DF098 00021400 */ sll $v0, $v0, 0x10 -/* 10218C 802DF09C 00021C03 */ sra $v1, $v0, 0x10 -/* 102190 802DF0A0 000217C2 */ srl $v0, $v0, 0x1f -/* 102194 802DF0A4 00621821 */ addu $v1, $v1, $v0 -/* 102198 802DF0A8 00031843 */ sra $v1, $v1, 1 -/* 10219C 802DF0AC 18600030 */ blez $v1, .L802DF170 -/* 1021A0 802DF0B0 00000000 */ nop -/* 1021A4 802DF0B4 240B7000 */ addiu $t3, $zero, 0x7000 -/* 1021A8 802DF0B8 27A90010 */ addiu $t1, $sp, 0x10 -/* 1021AC 802DF0BC 240A0001 */ addiu $t2, $zero, 1 -.L802DF0C0: -/* 1021B0 802DF0C0 94C70000 */ lhu $a3, ($a2) -/* 1021B4 802DF0C4 24C60002 */ addiu $a2, $a2, 2 -/* 1021B8 802DF0C8 30E4F000 */ andi $a0, $a3, 0xf000 -/* 1021BC 802DF0CC 10920022 */ beq $a0, $s2, .L802DF158 -/* 1021C0 802DF0D0 2463FFFF */ addiu $v1, $v1, -1 -/* 1021C4 802DF0D4 28824001 */ slti $v0, $a0, 0x4001 -/* 1021C8 802DF0D8 1040000B */ beqz $v0, .L802DF108 -/* 1021CC 802DF0DC 00000000 */ nop -/* 1021D0 802DF0E0 10910015 */ beq $a0, $s1, .L802DF138 -/* 1021D4 802DF0E4 28821001 */ slti $v0, $a0, 0x1001 -/* 1021D8 802DF0E8 1440001F */ bnez $v0, .L802DF168 -/* 1021DC 802DF0EC 00000000 */ nop -/* 1021E0 802DF0F0 1090001D */ beq $a0, $s0, .L802DF168 -/* 1021E4 802DF0F4 00000000 */ nop -/* 1021E8 802DF0F8 508F0016 */ beql $a0, $t7, .L802DF154 -/* 1021EC 802DF0FC 24C60002 */ addiu $a2, $a2, 2 -/* 1021F0 802DF100 080B7C5A */ j .L802DF168 -/* 1021F4 802DF104 00000000 */ nop -.L802DF108: -/* 1021F8 802DF108 108E0017 */ beq $a0, $t6, .L802DF168 -/* 1021FC 802DF10C 28826001 */ slti $v0, $a0, 0x6001 -/* 102200 802DF110 10400005 */ beqz $v0, .L802DF128 -/* 102204 802DF114 00000000 */ nop -/* 102208 802DF118 508D0012 */ beql $a0, $t5, .L802DF164 -/* 10220C 802DF11C 24C60002 */ addiu $a2, $a2, 2 -/* 102210 802DF120 080B7C5A */ j .L802DF168 -/* 102214 802DF124 00000000 */ nop -.L802DF128: -/* 102218 802DF128 508B000E */ beql $a0, $t3, .L802DF164 -/* 10221C 802DF12C 24C60002 */ addiu $a2, $a2, 2 -/* 102220 802DF130 080B7C5A */ j .L802DF168 -/* 102224 802DF134 00000000 */ nop -.L802DF138: -/* 102228 802DF138 30E400FF */ andi $a0, $a3, 0xff -/* 10222C 802DF13C 28820064 */ slti $v0, $a0, 0x64 -/* 102230 802DF140 10400009 */ beqz $v0, .L802DF168 -/* 102234 802DF144 00041080 */ sll $v0, $a0, 2 -/* 102238 802DF148 01221021 */ addu $v0, $t1, $v0 -/* 10223C 802DF14C 080B7C5A */ j .L802DF168 -/* 102240 802DF150 AC4A0000 */ sw $t2, ($v0) -.L802DF154: -/* 102244 802DF154 2463FFFF */ addiu $v1, $v1, -1 -.L802DF158: -/* 102248 802DF158 24C60002 */ addiu $a2, $a2, 2 -/* 10224C 802DF15C 2463FFFF */ addiu $v1, $v1, -1 -/* 102250 802DF160 24C60002 */ addiu $a2, $a2, 2 -.L802DF164: -/* 102254 802DF164 2463FFFF */ addiu $v1, $v1, -1 -.L802DF168: -/* 102258 802DF168 1C60FFD5 */ bgtz $v1, .L802DF0C0 -/* 10225C 802DF16C 00000000 */ nop -.L802DF170: -/* 102260 802DF170 8D030000 */ lw $v1, ($t0) -/* 102264 802DF174 146CFFC6 */ bne $v1, $t4, .L802DF090 -/* 102268 802DF178 25080004 */ addiu $t0, $t0, 4 -/* 10226C 802DF17C 8CA30000 */ lw $v1, ($a1) -/* 102270 802DF180 146CFFBE */ bne $v1, $t4, .L802DF07C -/* 102274 802DF184 24A50004 */ addiu $a1, $a1, 4 -.L802DF188: -/* 102278 802DF188 0000882D */ daddu $s1, $zero, $zero -/* 10227C 802DF18C 8ED30000 */ lw $s3, ($s6) -/* 102280 802DF190 2417FFFF */ addiu $s7, $zero, -1 -/* 102284 802DF194 8E650000 */ lw $a1, ($s3) -/* 102288 802DF198 27B40010 */ addiu $s4, $sp, 0x10 -/* 10228C 802DF19C 8CB20000 */ lw $s2, ($a1) -.L802DF1A0: -/* 102290 802DF1A0 8E650000 */ lw $a1, ($s3) -/* 102294 802DF1A4 50B70019 */ beql $a1, $s7, .L802DF20C -/* 102298 802DF1A8 0240302D */ daddu $a2, $s2, $zero -/* 10229C 802DF1AC 8E820000 */ lw $v0, ($s4) -/* 1022A0 802DF1B0 50400011 */ beql $v0, $zero, .L802DF1F8 -/* 1022A4 802DF1B4 26730004 */ addiu $s3, $s3, 4 -/* 1022A8 802DF1B8 90A30004 */ lbu $v1, 4($a1) -/* 1022AC 802DF1BC 90A20005 */ lbu $v0, 5($a1) -/* 1022B0 802DF1C0 00620018 */ mult $v1, $v0 -/* 1022B4 802DF1C4 8CA40000 */ lw $a0, ($a1) -/* 1022B8 802DF1C8 0000C012 */ mflo $t8 -/* 1022BC 802DF1CC 00188043 */ sra $s0, $t8, 1 -/* 1022C0 802DF1D0 0250A821 */ addu $s5, $s2, $s0 -/* 1022C4 802DF1D4 12440005 */ beq $s2, $a0, .L802DF1EC -/* 1022C8 802DF1D8 26100008 */ addiu $s0, $s0, 8 -/* 1022CC 802DF1DC ACB20000 */ sw $s2, ($a1) -/* 1022D0 802DF1E0 0240282D */ daddu $a1, $s2, $zero -/* 1022D4 802DF1E4 0C019194 */ jal bcopy -/* 1022D8 802DF1E8 0200302D */ daddu $a2, $s0, $zero -.L802DF1EC: -/* 1022DC 802DF1EC AE750000 */ sw $s5, ($s3) -/* 1022E0 802DF1F0 02509021 */ addu $s2, $s2, $s0 -/* 1022E4 802DF1F4 26730004 */ addiu $s3, $s3, 4 -.L802DF1F8: -/* 1022E8 802DF1F8 26310001 */ addiu $s1, $s1, 1 -/* 1022EC 802DF1FC 2A220064 */ slti $v0, $s1, 0x64 -/* 1022F0 802DF200 1440FFE7 */ bnez $v0, .L802DF1A0 -/* 1022F4 802DF204 26940004 */ addiu $s4, $s4, 4 -/* 1022F8 802DF208 0240302D */ daddu $a2, $s2, $zero -.L802DF20C: -/* 1022FC 802DF20C 00111080 */ sll $v0, $s1, 2 -/* 102300 802DF210 0000882D */ daddu $s1, $zero, $zero -/* 102304 802DF214 27A40010 */ addiu $a0, $sp, 0x10 -/* 102308 802DF218 00821021 */ addu $v0, $a0, $v0 -/* 10230C 802DF21C 24030001 */ addiu $v1, $zero, 1 -/* 102310 802DF220 AC430000 */ sw $v1, ($v0) -/* 102314 802DF224 8ED30000 */ lw $s3, ($s6) -/* 102318 802DF228 2407FFFF */ addiu $a3, $zero, -1 -/* 10231C 802DF22C AEC60000 */ sw $a2, ($s6) -.L802DF230: -/* 102320 802DF230 8E650000 */ lw $a1, ($s3) -/* 102324 802DF234 8C820000 */ lw $v0, ($a0) -/* 102328 802DF238 10400003 */ beqz $v0, .L802DF248 -/* 10232C 802DF23C 26730004 */ addiu $s3, $s3, 4 -/* 102330 802DF240 080B7C93 */ j .L802DF24C -/* 102334 802DF244 ACC50000 */ sw $a1, ($a2) -.L802DF248: -/* 102338 802DF248 ACD50000 */ sw $s5, ($a2) -.L802DF24C: -/* 10233C 802DF24C 10A70005 */ beq $a1, $a3, .L802DF264 -/* 102340 802DF250 24C60004 */ addiu $a2, $a2, 4 -/* 102344 802DF254 26310001 */ addiu $s1, $s1, 1 -/* 102348 802DF258 2A220064 */ slti $v0, $s1, 0x64 -/* 10234C 802DF25C 1440FFF4 */ bnez $v0, .L802DF230 -/* 102350 802DF260 24840004 */ addiu $a0, $a0, 4 -.L802DF264: -/* 102354 802DF264 0000882D */ daddu $s1, $zero, $zero -/* 102358 802DF268 8EC30004 */ lw $v1, 4($s6) -/* 10235C 802DF26C 2404FFFF */ addiu $a0, $zero, -1 -/* 102360 802DF270 AEC60004 */ sw $a2, 4($s6) -.L802DF274: -/* 102364 802DF274 8C650000 */ lw $a1, ($v1) -/* 102368 802DF278 24630004 */ addiu $v1, $v1, 4 -/* 10236C 802DF27C ACC50000 */ sw $a1, ($a2) -/* 102370 802DF280 10A40005 */ beq $a1, $a0, .L802DF298 -/* 102374 802DF284 24C60004 */ addiu $a2, $a2, 4 -/* 102378 802DF288 26310001 */ addiu $s1, $s1, 1 -/* 10237C 802DF28C 2A220064 */ slti $v0, $s1, 0x64 -/* 102380 802DF290 1440FFF8 */ bnez $v0, .L802DF274 -/* 102384 802DF294 00000000 */ nop -.L802DF298: -/* 102388 802DF298 3C048035 */ lui $a0, %hi(gSpriteHeapPtr) -/* 10238C 802DF29C 2484F800 */ addiu $a0, $a0, %lo(gSpriteHeapPtr) -/* 102390 802DF2A0 02C0282D */ daddu $a1, $s6, $zero -/* 102394 802DF2A4 0C00A4B1 */ jal _heap_realloc -/* 102398 802DF2A8 00C53023 */ subu $a2, $a2, $a1 -/* 10239C 802DF2AC 8FBF01C8 */ lw $ra, 0x1c8($sp) -/* 1023A0 802DF2B0 8FB701C4 */ lw $s7, 0x1c4($sp) -/* 1023A4 802DF2B4 8FB601C0 */ lw $s6, 0x1c0($sp) -/* 1023A8 802DF2B8 8FB501BC */ lw $s5, 0x1bc($sp) -/* 1023AC 802DF2BC 8FB401B8 */ lw $s4, 0x1b8($sp) -/* 1023B0 802DF2C0 8FB301B4 */ lw $s3, 0x1b4($sp) -/* 1023B4 802DF2C4 8FB201B0 */ lw $s2, 0x1b0($sp) -/* 1023B8 802DF2C8 8FB101AC */ lw $s1, 0x1ac($sp) -/* 1023BC 802DF2CC 8FB001A8 */ lw $s0, 0x1a8($sp) -/* 1023C0 802DF2D0 03E00008 */ jr $ra -/* 1023C4 802DF2D4 27BD01D0 */ addiu $sp, $sp, 0x1d0 diff --git a/ver/us/asm/nonmatchings/101b90_len_8f0/spr_load_sprite.s b/ver/us/asm/nonmatchings/101b90_len_8f0/spr_load_sprite.s deleted file mode 100644 index 80f2429970..0000000000 --- a/ver/us/asm/nonmatchings/101b90_len_8f0/spr_load_sprite.s +++ /dev/null @@ -1,163 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel spr_load_sprite -/* 101BFC 802DEB0C 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 101C00 802DEB10 AFB50024 */ sw $s5, 0x24($sp) -/* 101C04 802DEB14 0080A82D */ daddu $s5, $a0, $zero -/* 101C08 802DEB18 AFB40020 */ sw $s4, 0x20($sp) -/* 101C0C 802DEB1C 00A0A02D */ daddu $s4, $a1, $zero -/* 101C10 802DEB20 AFB60028 */ sw $s6, 0x28($sp) -/* 101C14 802DEB24 00C0B02D */ daddu $s6, $a2, $zero -/* 101C18 802DEB28 AFBF002C */ sw $ra, 0x2c($sp) -/* 101C1C 802DEB2C AFB3001C */ sw $s3, 0x1c($sp) -/* 101C20 802DEB30 AFB20018 */ sw $s2, 0x18($sp) -/* 101C24 802DEB34 AFB10014 */ sw $s1, 0x14($sp) -/* 101C28 802DEB38 12800005 */ beqz $s4, .L802DEB50 -/* 101C2C 802DEB3C AFB00010 */ sw $s0, 0x10($sp) -/* 101C30 802DEB40 3C13802E */ lui $s3, %hi(D_802E0C64) -/* 101C34 802DEB44 8E730C64 */ lw $s3, %lo(D_802E0C64)($s3) -/* 101C38 802DEB48 080B7AD7 */ j .L802DEB5C -/* 101C3C 802DEB4C 00152080 */ sll $a0, $s5, 2 -.L802DEB50: -/* 101C40 802DEB50 3C13802E */ lui $s3, %hi(D_802E0C68) -/* 101C44 802DEB54 8E730C68 */ lw $s3, %lo(D_802E0C68)($s3) -/* 101C48 802DEB58 00152080 */ sll $a0, $s5, 2 -.L802DEB5C: -/* 101C4C 802DEB5C 02642021 */ addu $a0, $s3, $a0 -/* 101C50 802DEB60 3C11802E */ lui $s1, %hi(D_802DFEB0) -/* 101C54 802DEB64 2631FEB0 */ addiu $s1, $s1, %lo(D_802DFEB0) -/* 101C58 802DEB68 0220282D */ daddu $a1, $s1, $zero -/* 101C5C 802DEB6C 0C017D24 */ jal nuPiReadRom -/* 101C60 802DEB70 24060008 */ addiu $a2, $zero, 8 -/* 101C64 802DEB74 8E300004 */ lw $s0, 4($s1) -/* 101C68 802DEB78 8E220000 */ lw $v0, ($s1) -/* 101C6C 802DEB7C 02028023 */ subu $s0, $s0, $v0 -/* 101C70 802DEB80 26100007 */ addiu $s0, $s0, 7 -/* 101C74 802DEB84 2402FFF8 */ addiu $v0, $zero, -8 -/* 101C78 802DEB88 02028024 */ and $s0, $s0, $v0 -/* 101C7C 802DEB8C 0C00AB0A */ jal general_heap_malloc -/* 101C80 802DEB90 0200202D */ daddu $a0, $s0, $zero -/* 101C84 802DEB94 0040902D */ daddu $s2, $v0, $zero -/* 101C88 802DEB98 0240282D */ daddu $a1, $s2, $zero -/* 101C8C 802DEB9C 8E240000 */ lw $a0, ($s1) -/* 101C90 802DEBA0 0200302D */ daddu $a2, $s0, $zero -/* 101C94 802DEBA4 0C017D24 */ jal nuPiReadRom -/* 101C98 802DEBA8 02642021 */ addu $a0, $s3, $a0 -/* 101C9C 802DEBAC 12C00008 */ beqz $s6, .L802DEBD0 -/* 101CA0 802DEBB0 26450004 */ addiu $a1, $s2, 4 -/* 101CA4 802DEBB4 8CA50000 */ lw $a1, ($a1) -/* 101CA8 802DEBB8 3C048035 */ lui $a0, %hi(gSpriteHeapPtr) -/* 101CAC 802DEBBC 2484F800 */ addiu $a0, $a0, %lo(gSpriteHeapPtr) -/* 101CB0 802DEBC0 0C00A459 */ jal _heap_malloc_tail -/* 101CB4 802DEBC4 00000000 */ nop -/* 101CB8 802DEBC8 080B7AFA */ j .L802DEBE8 -/* 101CBC 802DEBCC 0040882D */ daddu $s1, $v0, $zero -.L802DEBD0: -/* 101CC0 802DEBD0 8CA50000 */ lw $a1, ($a1) -/* 101CC4 802DEBD4 3C048035 */ lui $a0, %hi(gSpriteHeapPtr) -/* 101CC8 802DEBD8 2484F800 */ addiu $a0, $a0, %lo(gSpriteHeapPtr) -/* 101CCC 802DEBDC 0C00A41B */ jal _heap_malloc -/* 101CD0 802DEBE0 00000000 */ nop -/* 101CD4 802DEBE4 0040882D */ daddu $s1, $v0, $zero -.L802DEBE8: -/* 101CD8 802DEBE8 0240202D */ daddu $a0, $s2, $zero -/* 101CDC 802DEBEC 0C01BB7C */ jal decode_yay0 -/* 101CE0 802DEBF0 0220282D */ daddu $a1, $s1, $zero -/* 101CE4 802DEBF4 0C00AB1E */ jal general_heap_free -/* 101CE8 802DEBF8 0240202D */ daddu $a0, $s2, $zero -/* 101CEC 802DEBFC 2404FFFF */ addiu $a0, $zero, -1 -/* 101CF0 802DEC00 00111082 */ srl $v0, $s1, 2 -/* 101CF4 802DEC04 8E320000 */ lw $s2, ($s1) -/* 101CF8 802DEC08 00021080 */ sll $v0, $v0, 2 -/* 101CFC 802DEC0C 02429021 */ addu $s2, $s2, $v0 -/* 101D00 802DEC10 AE320000 */ sw $s2, ($s1) -.L802DEC14: -/* 101D04 802DEC14 8E450000 */ lw $a1, ($s2) -/* 101D08 802DEC18 10A40008 */ beq $a1, $a0, .L802DEC3C -/* 101D0C 802DEC1C 00A22821 */ addu $a1, $a1, $v0 -/* 101D10 802DEC20 AE450000 */ sw $a1, ($s2) -/* 101D14 802DEC24 8CA30000 */ lw $v1, ($a1) -/* 101D18 802DEC28 1680FFFA */ bnez $s4, .L802DEC14 -/* 101D1C 802DEC2C 26520004 */ addiu $s2, $s2, 4 -/* 101D20 802DEC30 00621821 */ addu $v1, $v1, $v0 -/* 101D24 802DEC34 080B7B05 */ j .L802DEC14 -/* 101D28 802DEC38 ACA30000 */ sw $v1, ($a1) -.L802DEC3C: -/* 101D2C 802DEC3C 1280002D */ beqz $s4, .L802DECF4 -/* 101D30 802DEC40 00151880 */ sll $v1, $s5, 2 -/* 101D34 802DEC44 3C13802E */ lui $s3, %hi(D_802DFEB8) -/* 101D38 802DEC48 2673FEB8 */ addiu $s3, $s3, %lo(D_802DFEB8) -/* 101D3C 802DEC4C 0260282D */ daddu $a1, $s3, $zero -/* 101D40 802DEC50 24060194 */ addiu $a2, $zero, 0x194 -/* 101D44 802DEC54 3C12802E */ lui $s2, %hi(PlayerRasterSetsLoaded) -/* 101D48 802DEC58 2652004C */ addiu $s2, $s2, %lo(PlayerRasterSetsLoaded) -/* 101D4C 802DEC5C 8E420000 */ lw $v0, ($s2) -/* 101D50 802DEC60 3C04802E */ lui $a0, %hi(D_802E0C20) -/* 101D54 802DEC64 24840C20 */ addiu $a0, $a0, %lo(D_802E0C20) -/* 101D58 802DEC68 3C01802E */ lui $at, %hi(PlayerRasterBufferSetOffsets) -/* 101D5C 802DEC6C 00230821 */ addu $at, $at, $v1 -/* 101D60 802DEC70 AC220050 */ sw $v0, %lo(PlayerRasterBufferSetOffsets)($at) -/* 101D64 802DEC74 26A20001 */ addiu $v0, $s5, 1 -/* 101D68 802DEC78 00021080 */ sll $v0, $v0, 2 -/* 101D6C 802DEC7C 00441021 */ addu $v0, $v0, $a0 -/* 101D70 802DEC80 00641821 */ addu $v1, $v1, $a0 -/* 101D74 802DEC84 3C04802E */ lui $a0, %hi(SpriteDataHeader) -/* 101D78 802DEC88 8C840C60 */ lw $a0, %lo(SpriteDataHeader)($a0) -/* 101D7C 802DEC8C 3C07802E */ lui $a3, %hi(D_802E0C14) -/* 101D80 802DEC90 8CE70C14 */ lw $a3, %lo(D_802E0C14)($a3) -/* 101D84 802DEC94 8C680000 */ lw $t0, ($v1) -/* 101D88 802DEC98 8C420000 */ lw $v0, ($v0) -/* 101D8C 802DEC9C 00872021 */ addu $a0, $a0, $a3 -/* 101D90 802DECA0 00081880 */ sll $v1, $t0, 2 -/* 101D94 802DECA4 00832021 */ addu $a0, $a0, $v1 -/* 101D98 802DECA8 0C017D24 */ jal nuPiReadRom -/* 101D9C 802DECAC 00488023 */ subu $s0, $v0, $t0 -/* 101DA0 802DECB0 1A000010 */ blez $s0, .L802DECF4 -/* 101DA4 802DECB4 0000302D */ daddu $a2, $zero, $zero -/* 101DA8 802DECB8 3C08802E */ lui $t0, %hi(D_802E0090) -/* 101DAC 802DECBC 25080090 */ addiu $t0, $t0, %lo(D_802E0090) -/* 101DB0 802DECC0 0240382D */ daddu $a3, $s2, $zero -/* 101DB4 802DECC4 0260282D */ daddu $a1, $s3, $zero -.L802DECC8: -/* 101DB8 802DECC8 8CA40000 */ lw $a0, ($a1) -/* 101DBC 802DECCC 24A50004 */ addiu $a1, $a1, 4 -/* 101DC0 802DECD0 8CE30000 */ lw $v1, ($a3) -/* 101DC4 802DECD4 24C60001 */ addiu $a2, $a2, 1 -/* 101DC8 802DECD8 00031080 */ sll $v0, $v1, 2 -/* 101DCC 802DECDC 24630001 */ addiu $v1, $v1, 1 -/* 101DD0 802DECE0 00481021 */ addu $v0, $v0, $t0 -/* 101DD4 802DECE4 AC440000 */ sw $a0, ($v0) -/* 101DD8 802DECE8 00D0102A */ slt $v0, $a2, $s0 -/* 101DDC 802DECEC 1440FFF6 */ bnez $v0, .L802DECC8 -/* 101DE0 802DECF0 ACE30000 */ sw $v1, ($a3) -.L802DECF4: -/* 101DE4 802DECF4 2404FFFF */ addiu $a0, $zero, -1 -/* 101DE8 802DECF8 00111082 */ srl $v0, $s1, 2 -/* 101DEC 802DECFC 8E230004 */ lw $v1, 4($s1) -/* 101DF0 802DED00 00021080 */ sll $v0, $v0, 2 -/* 101DF4 802DED04 00621821 */ addu $v1, $v1, $v0 -/* 101DF8 802DED08 AE230004 */ sw $v1, 4($s1) -.L802DED0C: -/* 101DFC 802DED0C 8C650000 */ lw $a1, ($v1) -/* 101E00 802DED10 10A40004 */ beq $a1, $a0, .L802DED24 -/* 101E04 802DED14 00A22821 */ addu $a1, $a1, $v0 -/* 101E08 802DED18 AC650000 */ sw $a1, ($v1) -/* 101E0C 802DED1C 080B7B43 */ j .L802DED0C -/* 101E10 802DED20 24630004 */ addiu $v1, $v1, 4 -.L802DED24: -/* 101E14 802DED24 0000202D */ daddu $a0, $zero, $zero -/* 101E18 802DED28 0080282D */ daddu $a1, $a0, $zero -/* 101E1C 802DED2C 0C0B7AA8 */ jal spr_swizzle_anim_offsets -/* 101E20 802DED30 0220302D */ daddu $a2, $s1, $zero -/* 101E24 802DED34 0220102D */ daddu $v0, $s1, $zero -/* 101E28 802DED38 8FBF002C */ lw $ra, 0x2c($sp) -/* 101E2C 802DED3C 8FB60028 */ lw $s6, 0x28($sp) -/* 101E30 802DED40 8FB50024 */ lw $s5, 0x24($sp) -/* 101E34 802DED44 8FB40020 */ lw $s4, 0x20($sp) -/* 101E38 802DED48 8FB3001C */ lw $s3, 0x1c($sp) -/* 101E3C 802DED4C 8FB20018 */ lw $s2, 0x18($sp) -/* 101E40 802DED50 8FB10014 */ lw $s1, 0x14($sp) -/* 101E44 802DED54 8FB00010 */ lw $s0, 0x10($sp) -/* 101E48 802DED58 03E00008 */ jr $ra -/* 101E4C 802DED5C 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/ver/us/asm/nonmatchings/effects/confetti/confetti_main.s b/ver/us/asm/nonmatchings/effects/confetti/confetti_main.s deleted file mode 100644 index 5530584524..0000000000 --- a/ver/us/asm/nonmatchings/effects/confetti/confetti_main.s +++ /dev/null @@ -1,308 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.section .rodata - -dlabel jtbl_E0088D30 -.word .LE00881F4_38AFE4, .LE00881FC_38AFEC, .LE0088204_38AFF4, .LE008820C_38AFFC, .LE00881F4_38AFE4, .LE00881FC_38AFEC, .LE0088204_38AFF4, 0 - -dlabel jtbl_E0088D50 -.word .LE0088230_38B020, .LE0088240_38B030, .LE0088250_38B040, .LE0088250_38B040, .LE0088230_38B020, .LE0088240_38B030, .LE0088250_38B040, 0 - -dlabel jtbl_E0088D70 -.word .LE0088374, .LE0088374, .LE0088374, .LE0088374, .LE0088374, .LE0088374, .LE0088374, 0x00000000 - -dlabel D_E0088D90 -.double 0.02 - -dlabel D_E0088D98 -.double -0.02 - -.section .text - -glabel confetti_main -/* 38AF6C E008817C 27BDFF78 */ addiu $sp, $sp, -0x88 -/* 38AF70 E0088180 F7B40058 */ sdc1 $f20, 0x58($sp) -/* 38AF74 E0088184 4485A000 */ mtc1 $a1, $f20 -/* 38AF78 E0088188 AFB50044 */ sw $s5, 0x44($sp) -/* 38AF7C E008818C 0080A82D */ daddu $s5, $a0, $zero -/* 38AF80 E0088190 F7B60060 */ sdc1 $f22, 0x60($sp) -/* 38AF84 E0088194 4486B000 */ mtc1 $a2, $f22 -/* 38AF88 E0088198 F7B80068 */ sdc1 $f24, 0x68($sp) -/* 38AF8C E008819C 4487C000 */ mtc1 $a3, $f24 -/* 38AF90 E00881A0 2EA20007 */ sltiu $v0, $s5, 7 -/* 38AF94 E00881A4 AFBF0054 */ sw $ra, 0x54($sp) -/* 38AF98 E00881A8 AFBE0050 */ sw $fp, 0x50($sp) -/* 38AF9C E00881AC AFB7004C */ sw $s7, 0x4c($sp) -/* 38AFA0 E00881B0 AFB60048 */ sw $s6, 0x48($sp) -/* 38AFA4 E00881B4 AFB40040 */ sw $s4, 0x40($sp) -/* 38AFA8 E00881B8 AFB3003C */ sw $s3, 0x3c($sp) -/* 38AFAC E00881BC AFB20038 */ sw $s2, 0x38($sp) -/* 38AFB0 E00881C0 AFB10034 */ sw $s1, 0x34($sp) -/* 38AFB4 E00881C4 AFB00030 */ sw $s0, 0x30($sp) -/* 38AFB8 E00881C8 F7BE0080 */ sdc1 $f30, 0x80($sp) -/* 38AFBC E00881CC F7BC0078 */ sdc1 $f28, 0x78($sp) -/* 38AFC0 E00881D0 F7BA0070 */ sdc1 $f26, 0x70($sp) -/* 38AFC4 E00881D4 1040000D */ beqz $v0, .LE008820C_38AFFC -/* 38AFC8 E00881D8 27A40010 */ addiu $a0, $sp, 0x10 -/* 38AFCC E00881DC 00151080 */ sll $v0, $s5, 2 -/* 38AFD0 E00881E0 3C01E009 */ lui $at, %hi(jtbl_E0088D30) -/* 38AFD4 E00881E4 00220821 */ addu $at, $at, $v0 -/* 38AFD8 E00881E8 8C228D30 */ lw $v0, %lo(jtbl_E0088D30)($at) -/* 38AFDC E00881EC 00400008 */ jr $v0 -/* 38AFE0 E00881F0 00000000 */ nop -.LE00881F4_38AFE4: -/* 38AFE4 E00881F4 08022084 */ j .LE0088210 -/* 38AFE8 E00881F8 2413000C */ addiu $s3, $zero, 0xc -.LE00881FC_38AFEC: -/* 38AFEC E00881FC 08022084 */ j .LE0088210 -/* 38AFF0 E0088200 24130012 */ addiu $s3, $zero, 0x12 -.LE0088204_38AFF4: -/* 38AFF4 E0088204 08022084 */ j .LE0088210 -/* 38AFF8 E0088208 24130018 */ addiu $s3, $zero, 0x18 -.LE008820C_38AFFC: -/* 38AFFC E008820C 24130030 */ addiu $s3, $zero, 0x30 -.LE0088210: -/* 38B000 E0088210 2EA20007 */ sltiu $v0, $s5, 7 -/* 38B004 E0088214 1040000E */ beqz $v0, .LE0088250_38B040 -/* 38B008 E0088218 00151080 */ sll $v0, $s5, 2 -/* 38B00C E008821C 3C01E009 */ lui $at, %hi(jtbl_E0088D50) -/* 38B010 E0088220 00220821 */ addu $at, $at, $v0 -/* 38B014 E0088224 8C228D50 */ lw $v0, %lo(jtbl_E0088D50)($at) -/* 38B018 E0088228 00400008 */ jr $v0 -/* 38B01C E008822C 00000000 */ nop -.LE0088230_38B020: -/* 38B020 E0088230 3C014040 */ lui $at, 0x4040 -/* 38B024 E0088234 44818000 */ mtc1 $at, $f16 -/* 38B028 E0088238 08022098 */ j .LE0088260 -/* 38B02C E008823C E7B00028 */ swc1 $f16, 0x28($sp) -.LE0088240_38B030: -/* 38B030 E0088240 3C014080 */ lui $at, 0x4080 -/* 38B034 E0088244 44818000 */ mtc1 $at, $f16 -/* 38B038 E0088248 08022098 */ j .LE0088260 -/* 38B03C E008824C E7B00028 */ swc1 $f16, 0x28($sp) -.LE0088250_38B040: -/* 38B040 E0088250 3C0140A0 */ lui $at, 0x40a0 -/* 38B044 E0088254 44818000 */ mtc1 $at, $f16 -/* 38B048 E0088258 00000000 */ nop -/* 38B04C E008825C E7B00028 */ swc1 $f16, 0x28($sp) -.LE0088260: -/* 38B050 E0088260 3C02E009 */ lui $v0, %hi(confetti_init) -/* 38B054 E0088264 244285A0 */ addiu $v0, $v0, %lo(confetti_init) -/* 38B058 E0088268 AC820008 */ sw $v0, 8($a0) -/* 38B05C E008826C 3C02E009 */ lui $v0, %hi(confetti_update) -/* 38B060 E0088270 244285A8 */ addiu $v0, $v0, %lo(confetti_update) -/* 38B064 E0088274 AC82000C */ sw $v0, 0xc($a0) -/* 38B068 E0088278 3C02E009 */ lui $v0, %hi(confetti_render) -/* 38B06C E008827C 244287A8 */ addiu $v0, $v0, %lo(confetti_render) -/* 38B070 E0088280 AC820010 */ sw $v0, 0x10($a0) -/* 38B074 E0088284 24020044 */ addiu $v0, $zero, 0x44 -/* 38B078 E0088288 AC800000 */ sw $zero, ($a0) -/* 38B07C E008828C AC800014 */ sw $zero, 0x14($a0) -/* 38B080 E0088290 0C080124 */ jal shim_create_effect_instance -/* 38B084 E0088294 AC820004 */ sw $v0, 4($a0) -/* 38B088 E0088298 26630001 */ addiu $v1, $s3, 1 -/* 38B08C E008829C 00032040 */ sll $a0, $v1, 1 -/* 38B090 E00882A0 00832021 */ addu $a0, $a0, $v1 -/* 38B094 E00882A4 00042080 */ sll $a0, $a0, 2 -/* 38B098 E00882A8 00832021 */ addu $a0, $a0, $v1 -/* 38B09C E00882AC 00042080 */ sll $a0, $a0, 2 -/* 38B0A0 E00882B0 0040B02D */ daddu $s6, $v0, $zero -/* 38B0A4 E00882B4 0C08012C */ jal shim_general_heap_malloc -/* 38B0A8 E00882B8 AEC30008 */ sw $v1, 8($s6) -/* 38B0AC E00882BC 0040902D */ daddu $s2, $v0, $zero -/* 38B0B0 E00882C0 16400003 */ bnez $s2, .LE00882D0 -/* 38B0B4 E00882C4 AED2000C */ sw $s2, 0xc($s6) -.LE00882C8: -/* 38B0B8 E00882C8 080220B2 */ j .LE00882C8 -/* 38B0BC E00882CC 00000000 */ nop -.LE00882D0: -/* 38B0C0 E00882D0 E6540004 */ swc1 $f20, 4($s2) -/* 38B0C4 E00882D4 E6560008 */ swc1 $f22, 8($s2) -/* 38B0C8 E00882D8 E658000C */ swc1 $f24, 0xc($s2) -/* 38B0CC E00882DC AE400024 */ sw $zero, 0x24($s2) -/* 38B0D0 E00882E0 8FA2009C */ lw $v0, 0x9c($sp) -/* 38B0D4 E00882E4 24040168 */ addiu $a0, $zero, 0x168 -/* 38B0D8 E00882E8 AE550000 */ sw $s5, ($s2) -/* 38B0DC E00882EC AE53002C */ sw $s3, 0x2c($s2) -/* 38B0E0 E00882F0 AE420020 */ sw $v0, 0x20($s2) -/* 38B0E4 E00882F4 240200FF */ addiu $v0, $zero, 0xff -/* 38B0E8 E00882F8 AE420028 */ sw $v0, 0x28($s2) -/* 38B0EC E00882FC 0C080138 */ jal shim_rand_int -/* 38B0F0 E0088300 26520034 */ addiu $s2, $s2, 0x34 -/* 38B0F4 E0088304 0000882D */ daddu $s1, $zero, $zero -/* 38B0F8 E0088308 12600092 */ beqz $s3, .LE0088554 -/* 38B0FC E008830C 0040F02D */ daddu $fp, $v0, $zero -/* 38B100 E0088310 3C03E009 */ lui $v1, %hi(jtbl_E0088D70) -/* 38B104 E0088314 24638D70 */ addiu $v1, $v1, %lo(jtbl_E0088D70) -/* 38B108 E0088318 00151080 */ sll $v0, $s5, 2 -/* 38B10C E008831C 0043B821 */ addu $s7, $v0, $v1 -/* 38B110 E0088320 26500030 */ addiu $s0, $s2, 0x30 -/* 38B114 E0088324 0220A02D */ daddu $s4, $s1, $zero -.LE0088328: -/* 38B118 E0088328 0C080000 */ jal func_E0200000 -/* 38B11C E008832C 24040064 */ addiu $a0, $zero, 0x64 -/* 38B120 E0088330 3C013C23 */ lui $at, 0x3c23 -/* 38B124 E0088334 3421D70A */ ori $at, $at, 0xd70a -/* 38B128 E0088338 44810000 */ mtc1 $at, $f0 -/* 38B12C E008833C 44821000 */ mtc1 $v0, $f2 -/* 38B130 E0088340 00000000 */ nop -/* 38B134 E0088344 468010A0 */ cvt.s.w $f2, $f2 -/* 38B138 E0088348 46001082 */ mul.s $f2, $f2, $f0 -/* 38B13C E008834C 00000000 */ nop -/* 38B140 E0088350 C7B00028 */ lwc1 $f16, 0x28($sp) -/* 38B144 E0088354 2EA20007 */ sltiu $v0, $s5, 7 -/* 38B148 E0088358 46028782 */ mul.s $f30, $f16, $f2 -/* 38B14C E008835C 00000000 */ nop -/* 38B150 E0088360 10400006 */ beqz $v0, .LE008837C -/* 38B154 E0088364 46008021 */ cvt.d.s $f0, $f16 -/* 38B158 E0088368 8EE20000 */ lw $v0, ($s7) -/* 38B15C E008836C 080220DF */ j .LE008837C -/* 38B160 E0088370 00000000 */ nop -.LE0088374: -/* 38B164 E0088374 C7B00028 */ lwc1 $f16, 0x28($sp) -/* 38B168 E0088378 46008021 */ cvt.d.s $f0, $f16 -.LE008837C: -/* 38B16C E008837C 3C013FE0 */ lui $at, 0x3fe0 -/* 38B170 E0088380 44818800 */ mtc1 $at, $f17 -/* 38B174 E0088384 44808000 */ mtc1 $zero, $f16 -/* 38B178 E0088388 00000000 */ nop -/* 38B17C E008838C 46300002 */ mul.d $f0, $f0, $f16 -/* 38B180 E0088390 00000000 */ nop -/* 38B184 E0088394 46200000 */ add.d $f0, $f0, $f0 -/* 38B188 E0088398 0220102D */ daddu $v0, $s1, $zero -/* 38B18C E008839C 06210002 */ bgez $s1, .LE00883A8 -/* 38B190 E00883A0 46200720 */ cvt.s.d $f28, $f0 -/* 38B194 E00883A4 26220003 */ addiu $v0, $s1, 3 -.LE00883A8: -/* 38B198 E00883A8 00021083 */ sra $v0, $v0, 2 -/* 38B19C E00883AC 4491A000 */ mtc1 $s1, $f20 -/* 38B1A0 E00883B0 00000000 */ nop -/* 38B1A4 E00883B4 4680A520 */ cvt.s.w $f20, $f20 -/* 38B1A8 E00883B8 00021080 */ sll $v0, $v0, 2 -/* 38B1AC E00883BC 3C0143B4 */ lui $at, 0x43b4 -/* 38B1B0 E00883C0 44810000 */ mtc1 $at, $f0 -/* 38B1B4 E00883C4 02221023 */ subu $v0, $s1, $v0 -/* 38B1B8 E00883C8 4600A502 */ mul.s $f20, $f20, $f0 -/* 38B1BC E00883CC 00000000 */ nop -/* 38B1C0 E00883D0 3C08E009 */ lui $t0, %hi(D_E0088D08) -/* 38B1C4 E00883D4 25088D08 */ addiu $t0, $t0, %lo(D_E0088D08) -/* 38B1C8 E00883D8 00481021 */ addu $v0, $v0, $t0 -/* 38B1CC E00883DC 90420000 */ lbu $v0, ($v0) -/* 38B1D0 E00883E0 44930000 */ mtc1 $s3, $f0 -/* 38B1D4 E00883E4 00000000 */ nop -/* 38B1D8 E00883E8 46800020 */ cvt.s.w $f0, $f0 -/* 38B1DC E00883EC 4600A503 */ div.s $f20, $f20, $f0 -/* 38B1E0 E00883F0 449E0000 */ mtc1 $fp, $f0 -/* 38B1E4 E00883F4 00000000 */ nop -/* 38B1E8 E00883F8 46800020 */ cvt.s.w $f0, $f0 -/* 38B1EC E00883FC 4600A500 */ add.s $f20, $f20, $f0 -/* 38B1F0 E0088400 AE550000 */ sw $s5, ($s2) -/* 38B1F4 E0088404 4482B000 */ mtc1 $v0, $f22 -/* 38B1F8 E0088408 00000000 */ nop -/* 38B1FC E008840C 4680B5A0 */ cvt.s.w $f22, $f22 -/* 38B200 E0088410 0C080140 */ jal shim_sin_deg -/* 38B204 E0088414 4600A306 */ mov.s $f12, $f20 -/* 38B208 E0088418 4600A306 */ mov.s $f12, $f20 -/* 38B20C E008841C 0C080144 */ jal shim_cos_deg -/* 38B210 E0088420 46000606 */ mov.s $f24, $f0 -/* 38B214 E0088424 4600B306 */ mov.s $f12, $f22 -/* 38B218 E0088428 0C080140 */ jal shim_sin_deg -/* 38B21C E008842C 46000686 */ mov.s $f26, $f0 -/* 38B220 E0088430 4600B306 */ mov.s $f12, $f22 -/* 38B224 E0088434 0C080144 */ jal shim_cos_deg -/* 38B228 E0088438 46000506 */ mov.s $f20, $f0 -/* 38B22C E008843C 24020003 */ addiu $v0, $zero, 3 -/* 38B230 E0088440 16A20005 */ bne $s5, $v0, .LE0088458 -/* 38B234 E0088444 46000386 */ mov.s $f14, $f0 -/* 38B238 E0088448 0C022000 */ jal func_E0088000 -/* 38B23C E008844C 0240202D */ daddu $a0, $s2, $zero -/* 38B240 E0088450 0802214F */ j .LE008853C -/* 38B244 E0088454 AE140000 */ sw $s4, ($s0) -.LE0088458: -/* 38B248 E0088458 4618F182 */ mul.s $f6, $f30, $f24 -/* 38B24C E008845C 00000000 */ nop -/* 38B250 E0088460 461AF202 */ mul.s $f8, $f30, $f26 -/* 38B254 E0088464 00000000 */ nop -/* 38B258 E0088468 4618E082 */ mul.s $f2, $f28, $f24 -/* 38B25C E008846C 00000000 */ nop -/* 38B260 E0088470 4614F302 */ mul.s $f12, $f30, $f20 -/* 38B264 E0088474 00000000 */ nop -/* 38B268 E0088478 461AE002 */ mul.s $f0, $f28, $f26 -/* 38B26C E008847C 00000000 */ nop -/* 38B270 E0088480 4614E102 */ mul.s $f4, $f28, $f20 -/* 38B274 E0088484 00000000 */ nop -/* 38B278 E0088488 460E3182 */ mul.s $f6, $f6, $f14 -/* 38B27C E008848C 00000000 */ nop -/* 38B280 E0088490 460E4202 */ mul.s $f8, $f8, $f14 -/* 38B284 E0088494 00000000 */ nop -/* 38B288 E0088498 460E1082 */ mul.s $f2, $f2, $f14 -/* 38B28C E008849C 00000000 */ nop -/* 38B290 E00884A0 3C013F80 */ lui $at, 0x3f80 -/* 38B294 E00884A4 44815000 */ mtc1 $at, $f10 -/* 38B298 E00884A8 460E0002 */ mul.s $f0, $f0, $f14 -/* 38B29C E00884AC 00000000 */ nop -/* 38B2A0 E00884B0 2AA20004 */ slti $v0, $s5, 4 -/* 38B2A4 E00884B4 E60CFFDC */ swc1 $f12, -0x24($s0) -/* 38B2A8 E00884B8 E604FFE8 */ swc1 $f4, -0x18($s0) -/* 38B2AC E00884BC E606FFD4 */ swc1 $f6, -0x2c($s0) -/* 38B2B0 E00884C0 460A0000 */ add.s $f0, $f0, $f10 -/* 38B2B4 E00884C4 E608FFD8 */ swc1 $f8, -0x28($s0) -/* 38B2B8 E00884C8 E602FFE0 */ swc1 $f2, -0x20($s0) -/* 38B2BC E00884CC 14400018 */ bnez $v0, .LE0088530 -/* 38B2C0 E00884D0 E600FFE4 */ swc1 $f0, -0x1c($s0) -/* 38B2C4 E00884D4 3C025555 */ lui $v0, 0x5555 -/* 38B2C8 E00884D8 34425556 */ ori $v0, $v0, 0x5556 -/* 38B2CC E00884DC 26240001 */ addiu $a0, $s1, 1 -/* 38B2D0 E00884E0 00820018 */ mult $a0, $v0 -/* 38B2D4 E00884E4 00041FC3 */ sra $v1, $a0, 0x1f -/* 38B2D8 E00884E8 3C01E009 */ lui $at, %hi(D_E0088D90) -/* 38B2DC E00884EC D4208D90 */ ldc1 $f0, %lo(D_E0088D90)($at) -/* 38B2E0 E00884F0 00004010 */ mfhi $t0 -/* 38B2E4 E00884F4 01031823 */ subu $v1, $t0, $v1 -/* 38B2E8 E00884F8 00031040 */ sll $v0, $v1, 1 -/* 38B2EC E00884FC 00431021 */ addu $v0, $v0, $v1 -/* 38B2F0 E0088500 00822023 */ subu $a0, $a0, $v0 -/* 38B2F4 E0088504 44841000 */ mtc1 $a0, $f2 -/* 38B2F8 E0088508 00000000 */ nop -/* 38B2FC E008850C 468010A1 */ cvt.d.w $f2, $f2 -/* 38B300 E0088510 46201082 */ mul.d $f2, $f2, $f0 -/* 38B304 E0088514 00000000 */ nop -/* 38B308 E0088518 3C01E009 */ lui $at, %hi(D_E0088D98) -/* 38B30C E008851C D4208D98 */ ldc1 $f0, %lo(D_E0088D98)($at) -/* 38B310 E0088520 46220001 */ sub.d $f0, $f0, $f2 -/* 38B314 E0088524 46200020 */ cvt.s.d $f0, $f0 -/* 38B318 E0088528 0802214D */ j .LE0088534 -/* 38B31C E008852C E600FFEC */ swc1 $f0, -0x14($s0) -.LE0088530: -/* 38B320 E0088530 AE00FFEC */ sw $zero, -0x14($s0) -.LE0088534: -/* 38B324 E0088534 32220003 */ andi $v0, $s1, 3 -/* 38B328 E0088538 AE020000 */ sw $v0, ($s0) -.LE008853C: -/* 38B32C E008853C 26940003 */ addiu $s4, $s4, 3 -/* 38B330 E0088540 26310001 */ addiu $s1, $s1, 1 -/* 38B334 E0088544 26100034 */ addiu $s0, $s0, 0x34 -/* 38B338 E0088548 0233102A */ slt $v0, $s1, $s3 -/* 38B33C E008854C 1440FF76 */ bnez $v0, .LE0088328 -/* 38B340 E0088550 26520034 */ addiu $s2, $s2, 0x34 -.LE0088554: -/* 38B344 E0088554 02C0102D */ daddu $v0, $s6, $zero -/* 38B348 E0088558 8FBF0054 */ lw $ra, 0x54($sp) -/* 38B34C E008855C 8FBE0050 */ lw $fp, 0x50($sp) -/* 38B350 E0088560 8FB7004C */ lw $s7, 0x4c($sp) -/* 38B354 E0088564 8FB60048 */ lw $s6, 0x48($sp) -/* 38B358 E0088568 8FB50044 */ lw $s5, 0x44($sp) -/* 38B35C E008856C 8FB40040 */ lw $s4, 0x40($sp) -/* 38B360 E0088570 8FB3003C */ lw $s3, 0x3c($sp) -/* 38B364 E0088574 8FB20038 */ lw $s2, 0x38($sp) -/* 38B368 E0088578 8FB10034 */ lw $s1, 0x34($sp) -/* 38B36C E008857C 8FB00030 */ lw $s0, 0x30($sp) -/* 38B370 E0088580 D7BE0080 */ ldc1 $f30, 0x80($sp) -/* 38B374 E0088584 D7BC0078 */ ldc1 $f28, 0x78($sp) -/* 38B378 E0088588 D7BA0070 */ ldc1 $f26, 0x70($sp) -/* 38B37C E008858C D7B80068 */ ldc1 $f24, 0x68($sp) -/* 38B380 E0088590 D7B60060 */ ldc1 $f22, 0x60($sp) -/* 38B384 E0088594 D7B40058 */ ldc1 $f20, 0x58($sp) -/* 38B388 E0088598 03E00008 */ jr $ra -/* 38B38C E008859C 27BD0088 */ addiu $sp, $sp, 0x88 diff --git a/ver/us/asm/nonmatchings/effects/firework_rocket/firework_rocket_appendGfx.s b/ver/us/asm/nonmatchings/effects/firework_rocket/firework_rocket_appendGfx.s deleted file mode 100644 index df21fd0a7e..0000000000 --- a/ver/us/asm/nonmatchings/effects/firework_rocket/firework_rocket_appendGfx.s +++ /dev/null @@ -1,534 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.section .rodata - -dlabel D_E010AFA8 -.double 0.8 - -.section .text - -glabel firework_rocket_appendGfx -/* 3E4888 E010A4E8 27BDFF30 */ addiu $sp, $sp, -0xd0 -/* 3E488C E010A4EC AFB70094 */ sw $s7, 0x94($sp) -/* 3E4890 E010A4F0 0080B82D */ daddu $s7, $a0, $zero -/* 3E4894 E010A4F4 3C038007 */ lui $v1, %hi(gCurrentCameraID) -/* 3E4898 E010A4F8 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1) -/* 3E489C E010A4FC 3C04800B */ lui $a0, %hi(gCameras) -/* 3E48A0 E010A500 24841D80 */ addiu $a0, $a0, %lo(gCameras) -/* 3E48A4 E010A504 AFBF009C */ sw $ra, 0x9c($sp) -/* 3E48A8 E010A508 AFBE0098 */ sw $fp, 0x98($sp) -/* 3E48AC E010A50C AFB60090 */ sw $s6, 0x90($sp) -/* 3E48B0 E010A510 AFB5008C */ sw $s5, 0x8c($sp) -/* 3E48B4 E010A514 AFB40088 */ sw $s4, 0x88($sp) -/* 3E48B8 E010A518 AFB30084 */ sw $s3, 0x84($sp) -/* 3E48BC E010A51C AFB20080 */ sw $s2, 0x80($sp) -/* 3E48C0 E010A520 AFB1007C */ sw $s1, 0x7c($sp) -/* 3E48C4 E010A524 AFB00078 */ sw $s0, 0x78($sp) -/* 3E48C8 E010A528 F7BE00C8 */ sdc1 $f30, 0xc8($sp) -/* 3E48CC E010A52C F7BC00C0 */ sdc1 $f28, 0xc0($sp) -/* 3E48D0 E010A530 F7BA00B8 */ sdc1 $f26, 0xb8($sp) -/* 3E48D4 E010A534 F7B800B0 */ sdc1 $f24, 0xb0($sp) -/* 3E48D8 E010A538 F7B600A8 */ sdc1 $f22, 0xa8($sp) -/* 3E48DC E010A53C F7B400A0 */ sdc1 $f20, 0xa0($sp) -/* 3E48E0 E010A540 8EF1000C */ lw $s1, 0xc($s7) -/* 3E48E4 E010A544 00031080 */ sll $v0, $v1, 2 -/* 3E48E8 E010A548 00431021 */ addu $v0, $v0, $v1 -/* 3E48EC E010A54C 00021080 */ sll $v0, $v0, 2 -/* 3E48F0 E010A550 00431023 */ subu $v0, $v0, $v1 -/* 3E48F4 E010A554 000218C0 */ sll $v1, $v0, 3 -/* 3E48F8 E010A558 00431021 */ addu $v0, $v0, $v1 -/* 3E48FC E010A55C 000210C0 */ sll $v0, $v0, 3 -/* 3E4900 E010A560 00449021 */ addu $s2, $v0, $a0 -/* 3E4904 E010A564 C654006C */ lwc1 $f20, 0x6c($s2) -/* 3E4908 E010A568 8E330030 */ lw $s3, 0x30($s1) -/* 3E490C E010A56C 8E360000 */ lw $s6, ($s1) -/* 3E4910 E010A570 4600A507 */ neg.s $f20, $f20 -/* 3E4914 E010A574 0C080140 */ jal shim_sin_deg -/* 3E4918 E010A578 4600A306 */ mov.s $f12, $f20 -/* 3E491C E010A57C 4600A306 */ mov.s $f12, $f20 -/* 3E4920 E010A580 0C080144 */ jal shim_cos_deg -/* 3E4924 E010A584 E7A00058 */ swc1 $f0, 0x58($sp) -/* 3E4928 E010A588 3C148007 */ lui $s4, %hi(gGameStatusPtr) -/* 3E492C E010A58C 2694419C */ addiu $s4, $s4, %lo(gGameStatusPtr) -/* 3E4930 E010A590 E7A0005C */ swc1 $f0, 0x5c($sp) -/* 3E4934 E010A594 8E820000 */ lw $v0, ($s4) -/* 3E4938 E010A598 3C15E011 */ lui $s5, %hi(D_E010AF80) -/* 3E493C E010A59C 26B5AF80 */ addiu $s5, $s5, %lo(D_E010AF80) -/* 3E4940 E010A5A0 94430134 */ lhu $v1, 0x134($v0) -/* 3E4944 E010A5A4 8EA20000 */ lw $v0, ($s5) -/* 3E4948 E010A5A8 8E3E004C */ lw $fp, 0x4c($s1) -/* 3E494C E010A5AC 10430013 */ beq $v0, $v1, .LE010A5FC -/* 3E4950 E010A5B0 2404000A */ addiu $a0, $zero, 0xa -/* 3E4954 E010A5B4 3C10E011 */ lui $s0, %hi(D_E010AF84) -/* 3E4958 E010A5B8 2610AF84 */ addiu $s0, $s0, %lo(D_E010AF84) -/* 3E495C E010A5BC 3C01E011 */ lui $at, %hi(D_E010AFA8) -/* 3E4960 E010A5C0 D422AFA8 */ ldc1 $f2, %lo(D_E010AFA8)($at) -/* 3E4964 E010A5C4 C6000000 */ lwc1 $f0, ($s0) -/* 3E4968 E010A5C8 46800021 */ cvt.d.w $f0, $f0 -/* 3E496C E010A5CC 46220002 */ mul.d $f0, $f0, $f2 -/* 3E4970 E010A5D0 00000000 */ nop -/* 3E4974 E010A5D4 0080282D */ daddu $a1, $a0, $zero -/* 3E4978 E010A5D8 24060136 */ addiu $a2, $zero, 0x136 -/* 3E497C E010A5DC 240700E6 */ addiu $a3, $zero, 0xe6 -/* 3E4980 E010A5E0 46200020 */ cvt.s.d $f0, $f0 -/* 3E4984 E010A5E4 0C08018C */ jal shim_func_80138D88 -/* 3E4988 E010A5E8 E7A00010 */ swc1 $f0, 0x10($sp) -/* 3E498C E010A5EC 8E820000 */ lw $v0, ($s4) -/* 3E4990 E010A5F0 94420134 */ lhu $v0, 0x134($v0) -/* 3E4994 E010A5F4 AE000000 */ sw $zero, ($s0) -/* 3E4998 E010A5F8 AEA20000 */ sw $v0, ($s5) -.LE010A5FC: -/* 3E499C E010A5FC 3C03E011 */ lui $v1, %hi(D_E010AF84) -/* 3E49A0 E010A600 2463AF84 */ addiu $v1, $v1, %lo(D_E010AF84) -/* 3E49A4 E010A604 8C620000 */ lw $v0, ($v1) -/* 3E49A8 E010A608 0053102A */ slt $v0, $v0, $s3 -/* 3E49AC E010A60C 54400001 */ bnel $v0, $zero, .LE010A614 -/* 3E49B0 E010A610 AC730000 */ sw $s3, ($v1) -.LE010A614: -/* 3E49B4 E010A614 3C04DB06 */ lui $a0, 0xdb06 -/* 3E49B8 E010A618 3C07800A */ lui $a3, %hi(gMasterGfxPos) -/* 3E49BC E010A61C 24E7A66C */ addiu $a3, $a3, %lo(gMasterGfxPos) -/* 3E49C0 E010A620 34840024 */ ori $a0, $a0, 0x24 -/* 3E49C4 E010A624 8CE50000 */ lw $a1, ($a3) -/* 3E49C8 E010A628 3C02E700 */ lui $v0, 0xe700 -/* 3E49CC E010A62C 00A0182D */ daddu $v1, $a1, $zero -/* 3E49D0 E010A630 24A50008 */ addiu $a1, $a1, 8 -/* 3E49D4 E010A634 ACE50000 */ sw $a1, ($a3) -/* 3E49D8 E010A638 AC620000 */ sw $v0, ($v1) -/* 3E49DC E010A63C AC600004 */ sw $zero, 4($v1) -/* 3E49E0 E010A640 ACA40000 */ sw $a0, ($a1) -/* 3E49E4 E010A644 8EE30010 */ lw $v1, 0x10($s7) -/* 3E49E8 E010A648 24A20008 */ addiu $v0, $a1, 8 -/* 3E49EC E010A64C ACE20000 */ sw $v0, ($a3) -/* 3E49F0 E010A650 8C62001C */ lw $v0, 0x1c($v1) -/* 3E49F4 E010A654 3C038000 */ lui $v1, 0x8000 -/* 3E49F8 E010A658 00431021 */ addu $v0, $v0, $v1 -/* 3E49FC E010A65C ACA20004 */ sw $v0, 4($a1) -/* 3E4A00 E010A660 C64E00D4 */ lwc1 $f14, 0xd4($s2) -/* 3E4A04 E010A664 E7AE0018 */ swc1 $f14, 0x18($sp) -/* 3E4A08 E010A668 C64E00D8 */ lwc1 $f14, 0xd8($s2) -/* 3E4A0C E010A66C E7AE001C */ swc1 $f14, 0x1c($sp) -/* 3E4A10 E010A670 C64E00DC */ lwc1 $f14, 0xdc($s2) -/* 3E4A14 E010A674 E7AE0020 */ swc1 $f14, 0x20($sp) -/* 3E4A18 E010A678 C64E00E0 */ lwc1 $f14, 0xe0($s2) -/* 3E4A1C E010A67C E7AE0024 */ swc1 $f14, 0x24($sp) -/* 3E4A20 E010A680 C64E00E4 */ lwc1 $f14, 0xe4($s2) -/* 3E4A24 E010A684 E7AE0028 */ swc1 $f14, 0x28($sp) -/* 3E4A28 E010A688 C64E00E8 */ lwc1 $f14, 0xe8($s2) -/* 3E4A2C E010A68C E7AE002C */ swc1 $f14, 0x2c($sp) -/* 3E4A30 E010A690 C64E00EC */ lwc1 $f14, 0xec($s2) -/* 3E4A34 E010A694 E7AE0030 */ swc1 $f14, 0x30($sp) -/* 3E4A38 E010A698 C64E00F0 */ lwc1 $f14, 0xf0($s2) -/* 3E4A3C E010A69C E7AE0034 */ swc1 $f14, 0x34($sp) -/* 3E4A40 E010A6A0 C64E00F4 */ lwc1 $f14, 0xf4($s2) -/* 3E4A44 E010A6A4 E7AE0038 */ swc1 $f14, 0x38($sp) -/* 3E4A48 E010A6A8 C64E00F8 */ lwc1 $f14, 0xf8($s2) -/* 3E4A4C E010A6AC E7AE003C */ swc1 $f14, 0x3c($sp) -/* 3E4A50 E010A6B0 C64E00FC */ lwc1 $f14, 0xfc($s2) -/* 3E4A54 E010A6B4 E7AE0040 */ swc1 $f14, 0x40($sp) -/* 3E4A58 E010A6B8 C64E0100 */ lwc1 $f14, 0x100($s2) -/* 3E4A5C E010A6BC E7AE0044 */ swc1 $f14, 0x44($sp) -/* 3E4A60 E010A6C0 C64E0104 */ lwc1 $f14, 0x104($s2) -/* 3E4A64 E010A6C4 E7AE0048 */ swc1 $f14, 0x48($sp) -/* 3E4A68 E010A6C8 C64E0108 */ lwc1 $f14, 0x108($s2) -/* 3E4A6C E010A6CC E7AE004C */ swc1 $f14, 0x4c($sp) -/* 3E4A70 E010A6D0 C64E010C */ lwc1 $f14, 0x10c($s2) -/* 3E4A74 E010A6D4 E7AE0050 */ swc1 $f14, 0x50($sp) -/* 3E4A78 E010A6D8 C64E0110 */ lwc1 $f14, 0x110($s2) -/* 3E4A7C E010A6DC 3C02DE00 */ lui $v0, 0xde00 -/* 3E4A80 E010A6E0 E7AE0054 */ swc1 $f14, 0x54($sp) -/* 3E4A84 E010A6E4 ACA20008 */ sw $v0, 8($a1) -/* 3E4A88 E010A6E8 00161080 */ sll $v0, $s6, 2 -/* 3E4A8C E010A6EC 3C03E011 */ lui $v1, %hi(D_E010ACCC) -/* 3E4A90 E010A6F0 00621821 */ addu $v1, $v1, $v0 -/* 3E4A94 E010A6F4 8C63ACCC */ lw $v1, %lo(D_E010ACCC)($v1) -/* 3E4A98 E010A6F8 24A20010 */ addiu $v0, $a1, 0x10 -/* 3E4A9C E010A6FC ACE20000 */ sw $v0, ($a3) -/* 3E4AA0 E010A700 ACA3000C */ sw $v1, 0xc($a1) -/* 3E4AA4 E010A704 C62E0004 */ lwc1 $f14, 4($s1) -/* 3E4AA8 E010A708 E7AE0060 */ swc1 $f14, 0x60($sp) -/* 3E4AAC E010A70C C62E0008 */ lwc1 $f14, 8($s1) -/* 3E4AB0 E010A710 E7AE0064 */ swc1 $f14, 0x64($sp) -/* 3E4AB4 E010A714 C62E000C */ lwc1 $f14, 0xc($s1) -/* 3E4AB8 E010A718 E7AE0068 */ swc1 $f14, 0x68($sp) -/* 3E4ABC E010A71C C63E0044 */ lwc1 $f30, 0x44($s1) -/* 3E4AC0 E010A720 24A20018 */ addiu $v0, $a1, 0x18 -/* 3E4AC4 E010A724 ACE20000 */ sw $v0, ($a3) -/* 3E4AC8 E010A728 3C02FA00 */ lui $v0, 0xfa00 -/* 3E4ACC E010A72C ACA20010 */ sw $v0, 0x10($a1) -/* 3E4AD0 E010A730 92220027 */ lbu $v0, 0x27($s1) -/* 3E4AD4 E010A734 9224002B */ lbu $a0, 0x2b($s1) -/* 3E4AD8 E010A738 9226002F */ lbu $a2, 0x2f($s1) -/* 3E4ADC E010A73C 24A30020 */ addiu $v1, $a1, 0x20 -/* 3E4AE0 E010A740 ACE30000 */ sw $v1, ($a3) -/* 3E4AE4 E010A744 3C03FB00 */ lui $v1, 0xfb00 -/* 3E4AE8 E010A748 ACA30018 */ sw $v1, 0x18($a1) -/* 3E4AEC E010A74C 326300FF */ andi $v1, $s3, 0xff -/* 3E4AF0 E010A750 00021600 */ sll $v0, $v0, 0x18 -/* 3E4AF4 E010A754 00042400 */ sll $a0, $a0, 0x10 -/* 3E4AF8 E010A758 00441025 */ or $v0, $v0, $a0 -/* 3E4AFC E010A75C 00063200 */ sll $a2, $a2, 8 -/* 3E4B00 E010A760 00461025 */ or $v0, $v0, $a2 -/* 3E4B04 E010A764 00431025 */ or $v0, $v0, $v1 -/* 3E4B08 E010A768 ACA20014 */ sw $v0, 0x14($a1) -/* 3E4B0C E010A76C 92220027 */ lbu $v0, 0x27($s1) -/* 3E4B10 E010A770 9224002B */ lbu $a0, 0x2b($s1) -/* 3E4B14 E010A774 9223002F */ lbu $v1, 0x2f($s1) -/* 3E4B18 E010A778 00021600 */ sll $v0, $v0, 0x18 -/* 3E4B1C E010A77C 00042400 */ sll $a0, $a0, 0x10 -/* 3E4B20 E010A780 00441025 */ or $v0, $v0, $a0 -/* 3E4B24 E010A784 00031A00 */ sll $v1, $v1, 8 -/* 3E4B28 E010A788 00431025 */ or $v0, $v0, $v1 -/* 3E4B2C E010A78C ACA2001C */ sw $v0, 0x1c($a1) -/* 3E4B30 E010A790 24020001 */ addiu $v0, $zero, 1 -/* 3E4B34 E010A794 17C20009 */ bne $fp, $v0, .LE010A7BC -/* 3E4B38 E010A798 0000A02D */ daddu $s4, $zero, $zero -/* 3E4B3C E010A79C 3C03E011 */ lui $v1, %hi(D_E010AF68) -/* 3E4B40 E010A7A0 2463AF68 */ addiu $v1, $v1, %lo(D_E010AF68) -/* 3E4B44 E010A7A4 001610C0 */ sll $v0, $s6, 3 -/* 3E4B48 E010A7A8 00431021 */ addu $v0, $v0, $v1 -/* 3E4B4C E010A7AC 8C540000 */ lw $s4, ($v0) -/* 3E4B50 E010A7B0 8C570004 */ lw $s7, 4($v0) -/* 3E4B54 E010A7B4 080429F1 */ j .LE010A7C4 -/* 3E4B58 E010A7B8 0000A82D */ daddu $s5, $zero, $zero -.LE010A7BC: -/* 3E4B5C E010A7BC 24170004 */ addiu $s7, $zero, 4 -/* 3E4B60 E010A7C0 0000A82D */ daddu $s5, $zero, $zero -.LE010A7C4: -/* 3E4B64 E010A7C4 1AE00129 */ blez $s7, .LE010AC6C -/* 3E4B68 E010A7C8 26930001 */ addiu $s3, $s4, 1 -/* 3E4B6C E010A7CC 3C16800A */ lui $s6, %hi(gMasterGfxPos) -/* 3E4B70 E010A7D0 26D6A66C */ addiu $s6, $s6, %lo(gMasterGfxPos) -/* 3E4B74 E010A7D4 0220802D */ daddu $s0, $s1, $zero -/* 3E4B78 E010A7D8 3C013F80 */ lui $at, 0x3f80 -/* 3E4B7C E010A7DC 4481E000 */ mtc1 $at, $f28 -.LE010A7E0: -/* 3E4B80 E010A7E0 24020001 */ addiu $v0, $zero, 1 -/* 3E4B84 E010A7E4 17C20030 */ bne $fp, $v0, .LE010A8A8 -/* 3E4B88 E010A7E8 00000000 */ nop -/* 3E4B8C E010A7EC 0C080138 */ jal shim_rand_int -/* 3E4B90 E010A7F0 24040010 */ addiu $a0, $zero, 0x10 -/* 3E4B94 E010A7F4 28420006 */ slti $v0, $v0, 6 -/* 3E4B98 E010A7F8 54400117 */ bnel $v0, $zero, .LE010AC58 -/* 3E4B9C E010A7FC 26100004 */ addiu $s0, $s0, 4 -/* 3E4BA0 E010A800 82830000 */ lb $v1, ($s4) -/* 3E4BA4 E010A804 C7AE005C */ lwc1 $f14, 0x5c($sp) -/* 3E4BA8 E010A808 44832000 */ mtc1 $v1, $f4 -/* 3E4BAC E010A80C 00000000 */ nop -/* 3E4BB0 E010A810 46802120 */ cvt.s.w $f4, $f4 -/* 3E4BB4 E010A814 460E2102 */ mul.s $f4, $f4, $f14 -/* 3E4BB8 E010A818 00000000 */ nop -/* 3E4BBC E010A81C 82620001 */ lb $v0, 1($s3) -/* 3E4BC0 E010A820 C7AE0058 */ lwc1 $f14, 0x58($sp) -/* 3E4BC4 E010A824 44823000 */ mtc1 $v0, $f6 -/* 3E4BC8 E010A828 00000000 */ nop -/* 3E4BCC E010A82C 468031A0 */ cvt.s.w $f6, $f6 -/* 3E4BD0 E010A830 460E3002 */ mul.s $f0, $f6, $f14 -/* 3E4BD4 E010A834 00000000 */ nop -/* 3E4BD8 E010A838 82620000 */ lb $v0, ($s3) -/* 3E4BDC E010A83C 44821000 */ mtc1 $v0, $f2 -/* 3E4BE0 E010A840 00000000 */ nop -/* 3E4BE4 E010A844 468010A0 */ cvt.s.w $f2, $f2 -/* 3E4BE8 E010A848 461E1082 */ mul.s $f2, $f2, $f30 -/* 3E4BEC E010A84C 00000000 */ nop -/* 3E4BF0 E010A850 46002100 */ add.s $f4, $f4, $f0 -/* 3E4BF4 E010A854 00031823 */ negu $v1, $v1 -/* 3E4BF8 E010A858 44830000 */ mtc1 $v1, $f0 -/* 3E4BFC E010A85C 00000000 */ nop -/* 3E4C00 E010A860 46800020 */ cvt.s.w $f0, $f0 -/* 3E4C04 E010A864 460E0002 */ mul.s $f0, $f0, $f14 -/* 3E4C08 E010A868 00000000 */ nop -/* 3E4C0C E010A86C C7AE005C */ lwc1 $f14, 0x5c($sp) -/* 3E4C10 E010A870 460E3182 */ mul.s $f6, $f6, $f14 -/* 3E4C14 E010A874 00000000 */ nop -/* 3E4C18 E010A878 461E2102 */ mul.s $f4, $f4, $f30 -/* 3E4C1C E010A87C 00000000 */ nop -/* 3E4C20 E010A880 46060000 */ add.s $f0, $f0, $f6 -/* 3E4C24 E010A884 461E0002 */ mul.s $f0, $f0, $f30 -/* 3E4C28 E010A888 00000000 */ nop -/* 3E4C2C E010A88C C7AE0064 */ lwc1 $f14, 0x64($sp) -/* 3E4C30 E010A890 460E1680 */ add.s $f26, $f2, $f14 -/* 3E4C34 E010A894 C7AE0060 */ lwc1 $f14, 0x60($sp) -/* 3E4C38 E010A898 460E2600 */ add.s $f24, $f4, $f14 -/* 3E4C3C E010A89C C7AE0068 */ lwc1 $f14, 0x68($sp) -/* 3E4C40 E010A8A0 08042A2D */ j .LE010A8B4 -/* 3E4C44 E010A8A4 460E0100 */ add.s $f4, $f0, $f14 -.LE010A8A8: -/* 3E4C48 E010A8A8 C6180050 */ lwc1 $f24, 0x50($s0) -/* 3E4C4C E010A8AC C61A0060 */ lwc1 $f26, 0x60($s0) -/* 3E4C50 E010A8B0 C6040070 */ lwc1 $f4, 0x70($s0) -.LE010A8B4: -/* 3E4C54 E010A8B4 C7AE0018 */ lwc1 $f14, 0x18($sp) -/* 3E4C58 E010A8B8 46187182 */ mul.s $f6, $f14, $f24 -/* 3E4C5C E010A8BC 00000000 */ nop -/* 3E4C60 E010A8C0 C7AE0028 */ lwc1 $f14, 0x28($sp) -/* 3E4C64 E010A8C4 461A7402 */ mul.s $f16, $f14, $f26 -/* 3E4C68 E010A8C8 00000000 */ nop -/* 3E4C6C E010A8CC C7AE0038 */ lwc1 $f14, 0x38($sp) -/* 3E4C70 E010A8D0 46047482 */ mul.s $f18, $f14, $f4 -/* 3E4C74 E010A8D4 00000000 */ nop -/* 3E4C78 E010A8D8 C7AE001C */ lwc1 $f14, 0x1c($sp) -/* 3E4C7C E010A8DC 46187202 */ mul.s $f8, $f14, $f24 -/* 3E4C80 E010A8E0 00000000 */ nop -/* 3E4C84 E010A8E4 C7AE002C */ lwc1 $f14, 0x2c($sp) -/* 3E4C88 E010A8E8 461A7302 */ mul.s $f12, $f14, $f26 -/* 3E4C8C E010A8EC 00000000 */ nop -/* 3E4C90 E010A8F0 C7AE003C */ lwc1 $f14, 0x3c($sp) -/* 3E4C94 E010A8F4 46047502 */ mul.s $f20, $f14, $f4 -/* 3E4C98 E010A8F8 00000000 */ nop -/* 3E4C9C E010A8FC C7AE0020 */ lwc1 $f14, 0x20($sp) -/* 3E4CA0 E010A900 46187282 */ mul.s $f10, $f14, $f24 -/* 3E4CA4 E010A904 00000000 */ nop -/* 3E4CA8 E010A908 C7AE0030 */ lwc1 $f14, 0x30($sp) -/* 3E4CAC E010A90C 461A7382 */ mul.s $f14, $f14, $f26 -/* 3E4CB0 E010A910 00000000 */ nop -/* 3E4CB4 E010A914 E7AE0070 */ swc1 $f14, 0x70($sp) -/* 3E4CB8 E010A918 C7AE0040 */ lwc1 $f14, 0x40($sp) -/* 3E4CBC E010A91C 46047582 */ mul.s $f22, $f14, $f4 -/* 3E4CC0 E010A920 00000000 */ nop -/* 3E4CC4 E010A924 C7AE0024 */ lwc1 $f14, 0x24($sp) -/* 3E4CC8 E010A928 46187002 */ mul.s $f0, $f14, $f24 -/* 3E4CCC E010A92C 00000000 */ nop -/* 3E4CD0 E010A930 C7AE0034 */ lwc1 $f14, 0x34($sp) -/* 3E4CD4 E010A934 461A7082 */ mul.s $f2, $f14, $f26 -/* 3E4CD8 E010A938 00000000 */ nop -/* 3E4CDC E010A93C C7AE0044 */ lwc1 $f14, 0x44($sp) -/* 3E4CE0 E010A940 46047102 */ mul.s $f4, $f14, $f4 -/* 3E4CE4 E010A944 00000000 */ nop -/* 3E4CE8 E010A948 46103180 */ add.s $f6, $f6, $f16 -/* 3E4CEC E010A94C 46123180 */ add.s $f6, $f6, $f18 -/* 3E4CF0 E010A950 460C4200 */ add.s $f8, $f8, $f12 -/* 3E4CF4 E010A954 46144200 */ add.s $f8, $f8, $f20 -/* 3E4CF8 E010A958 46020000 */ add.s $f0, $f0, $f2 -/* 3E4CFC E010A95C 46040000 */ add.s $f0, $f0, $f4 -/* 3E4D00 E010A960 C7AE0054 */ lwc1 $f14, 0x54($sp) -/* 3E4D04 E010A964 460E0080 */ add.s $f2, $f0, $f14 -/* 3E4D08 E010A968 C7AE0048 */ lwc1 $f14, 0x48($sp) -/* 3E4D0C E010A96C 460E3100 */ add.s $f4, $f6, $f14 -/* 3E4D10 E010A970 C7AE0070 */ lwc1 $f14, 0x70($sp) -/* 3E4D14 E010A974 460E5280 */ add.s $f10, $f10, $f14 -/* 3E4D18 E010A978 C7AE004C */ lwc1 $f14, 0x4c($sp) -/* 3E4D1C E010A97C 460E4200 */ add.s $f8, $f8, $f14 -/* 3E4D20 E010A980 46165280 */ add.s $f10, $f10, $f22 -/* 3E4D24 E010A984 44807000 */ mtc1 $zero, $f14 -/* 3E4D28 E010A988 00000000 */ nop -/* 3E4D2C E010A98C 460E1032 */ c.eq.s $f2, $f14 -/* 3E4D30 E010A990 C7AE0050 */ lwc1 $f14, 0x50($sp) -/* 3E4D34 E010A994 450100AF */ bc1t .LE010AC54 -/* 3E4D38 E010A998 460E5000 */ add.s $f0, $f10, $f14 -/* 3E4D3C E010A99C 4602E083 */ div.s $f2, $f28, $f2 -/* 3E4D40 E010A9A0 46022602 */ mul.s $f24, $f4, $f2 -/* 3E4D44 E010A9A4 00000000 */ nop -/* 3E4D48 E010A9A8 46020102 */ mul.s $f4, $f0, $f2 -/* 3E4D4C E010A9AC 00000000 */ nop -/* 3E4D50 E010A9B0 46004007 */ neg.s $f0, $f8 -/* 3E4D54 E010A9B4 46020682 */ mul.s $f26, $f0, $f2 -/* 3E4D58 E010A9B8 00000000 */ nop -/* 3E4D5C E010A9BC 3C01BF80 */ lui $at, 0xbf80 -/* 3E4D60 E010A9C0 44817000 */ mtc1 $at, $f14 -/* 3E4D64 E010A9C4 00000000 */ nop -/* 3E4D68 E010A9C8 460E203E */ c.le.s $f4, $f14 -/* 3E4D6C E010A9CC 00000000 */ nop -/* 3E4D70 E010A9D0 450300A1 */ bc1tl .LE010AC58 -/* 3E4D74 E010A9D4 26100004 */ addiu $s0, $s0, 4 -/* 3E4D78 E010A9D8 460EC03E */ c.le.s $f24, $f14 -/* 3E4D7C E010A9DC 00000000 */ nop -/* 3E4D80 E010A9E0 4503009D */ bc1tl .LE010AC58 -/* 3E4D84 E010A9E4 26100004 */ addiu $s0, $s0, 4 -/* 3E4D88 E010A9E8 4618E03E */ c.le.s $f28, $f24 -/* 3E4D8C E010A9EC 00000000 */ nop -/* 3E4D90 E010A9F0 45030099 */ bc1tl .LE010AC58 -/* 3E4D94 E010A9F4 26100004 */ addiu $s0, $s0, 4 -/* 3E4D98 E010A9F8 460ED03E */ c.le.s $f26, $f14 -/* 3E4D9C E010A9FC 00000000 */ nop -/* 3E4DA0 E010AA00 45030095 */ bc1tl .LE010AC58 -/* 3E4DA4 E010AA04 26100004 */ addiu $s0, $s0, 4 -/* 3E4DA8 E010AA08 461AE03E */ c.le.s $f28, $f26 -/* 3E4DAC E010AA0C 00000000 */ nop -/* 3E4DB0 E010AA10 45030091 */ bc1tl .LE010AC58 -/* 3E4DB4 E010AA14 26100004 */ addiu $s0, $s0, 4 -/* 3E4DB8 E010AA18 8642000A */ lh $v0, 0xa($s2) -/* 3E4DBC E010AA1C 461CC000 */ add.s $f0, $f24, $f28 -/* 3E4DC0 E010AA20 44821000 */ mtc1 $v0, $f2 -/* 3E4DC4 E010AA24 00000000 */ nop -/* 3E4DC8 E010AA28 468010A0 */ cvt.s.w $f2, $f2 -/* 3E4DCC E010AA2C 46020002 */ mul.s $f0, $f0, $f2 -/* 3E4DD0 E010AA30 00000000 */ nop -/* 3E4DD4 E010AA34 3C013FE0 */ lui $at, 0x3fe0 -/* 3E4DD8 E010AA38 44817800 */ mtc1 $at, $f15 -/* 3E4DDC E010AA3C 44807000 */ mtc1 $zero, $f14 -/* 3E4DE0 E010AA40 46000021 */ cvt.d.s $f0, $f0 -/* 3E4DE4 E010AA44 462E0002 */ mul.d $f0, $f0, $f14 -/* 3E4DE8 E010AA48 00000000 */ nop -/* 3E4DEC E010AA4C 8642000C */ lh $v0, 0xc($s2) -/* 3E4DF0 E010AA50 461CD080 */ add.s $f2, $f26, $f28 -/* 3E4DF4 E010AA54 44822000 */ mtc1 $v0, $f4 -/* 3E4DF8 E010AA58 00000000 */ nop -/* 3E4DFC E010AA5C 46802120 */ cvt.s.w $f4, $f4 -/* 3E4E00 E010AA60 46041082 */ mul.s $f2, $f2, $f4 -/* 3E4E04 E010AA64 00000000 */ nop -/* 3E4E08 E010AA68 460010A1 */ cvt.d.s $f2, $f2 -/* 3E4E0C E010AA6C 462E1082 */ mul.d $f2, $f2, $f14 -/* 3E4E10 E010AA70 00000000 */ nop -/* 3E4E14 E010AA74 8642000E */ lh $v0, 0xe($s2) -/* 3E4E18 E010AA78 46200620 */ cvt.s.d $f24, $f0 -/* 3E4E1C E010AA7C 44820000 */ mtc1 $v0, $f0 -/* 3E4E20 E010AA80 00000000 */ nop -/* 3E4E24 E010AA84 46800020 */ cvt.s.w $f0, $f0 -/* 3E4E28 E010AA88 4600C600 */ add.s $f24, $f24, $f0 -/* 3E4E2C E010AA8C 3C014080 */ lui $at, 0x4080 -/* 3E4E30 E010AA90 44812000 */ mtc1 $at, $f4 -/* 3E4E34 E010AA94 00000000 */ nop -/* 3E4E38 E010AA98 4604C602 */ mul.s $f24, $f24, $f4 -/* 3E4E3C E010AA9C 00000000 */ nop -/* 3E4E40 E010AAA0 86420010 */ lh $v0, 0x10($s2) -/* 3E4E44 E010AAA4 44820000 */ mtc1 $v0, $f0 -/* 3E4E48 E010AAA8 00000000 */ nop -/* 3E4E4C E010AAAC 46800020 */ cvt.s.w $f0, $f0 -/* 3E4E50 E010AAB0 462016A0 */ cvt.s.d $f26, $f2 -/* 3E4E54 E010AAB4 4600D680 */ add.s $f26, $f26, $f0 -/* 3E4E58 E010AAB8 3C014100 */ lui $at, 0x4100 -/* 3E4E5C E010AABC 44810000 */ mtc1 $at, $f0 -/* 3E4E60 E010AAC0 8EC40000 */ lw $a0, ($s6) -/* 3E4E64 E010AAC4 4600C000 */ add.s $f0, $f24, $f0 -/* 3E4E68 E010AAC8 24820008 */ addiu $v0, $a0, 8 -/* 3E4E6C E010AACC AEC20000 */ sw $v0, ($s6) -/* 3E4E70 E010AAD0 4604D682 */ mul.s $f26, $f26, $f4 -/* 3E4E74 E010AAD4 00000000 */ nop -/* 3E4E78 E010AAD8 4600038D */ trunc.w.s $f14, $f0 -/* 3E4E7C E010AADC 44027000 */ mfc1 $v0, $f14 -/* 3E4E80 E010AAE0 00000000 */ nop -/* 3E4E84 E010AAE4 00021400 */ sll $v0, $v0, 0x10 -/* 3E4E88 E010AAE8 00021403 */ sra $v0, $v0, 0x10 -/* 3E4E8C E010AAEC 18400005 */ blez $v0, .LE010AB04 -/* 3E4E90 E010AAF0 30420FFF */ andi $v0, $v0, 0xfff -/* 3E4E94 E010AAF4 00021300 */ sll $v0, $v0, 0xc -/* 3E4E98 E010AAF8 3C03E400 */ lui $v1, 0xe400 -/* 3E4E9C E010AAFC 08042AC2 */ j .LE010AB08 -/* 3E4EA0 E010AB00 00431825 */ or $v1, $v0, $v1 -.LE010AB04: -/* 3E4EA4 E010AB04 3C03E400 */ lui $v1, 0xe400 -.LE010AB08: -/* 3E4EA8 E010AB08 3C014100 */ lui $at, 0x4100 -/* 3E4EAC E010AB0C 44810000 */ mtc1 $at, $f0 -/* 3E4EB0 E010AB10 00000000 */ nop -/* 3E4EB4 E010AB14 4600D000 */ add.s $f0, $f26, $f0 -/* 3E4EB8 E010AB18 4600038D */ trunc.w.s $f14, $f0 -/* 3E4EBC E010AB1C 44027000 */ mfc1 $v0, $f14 -/* 3E4EC0 E010AB20 00000000 */ nop -/* 3E4EC4 E010AB24 00021400 */ sll $v0, $v0, 0x10 -/* 3E4EC8 E010AB28 00021403 */ sra $v0, $v0, 0x10 -/* 3E4ECC E010AB2C 18400004 */ blez $v0, .LE010AB40 -/* 3E4ED0 E010AB30 AC830000 */ sw $v1, ($a0) -/* 3E4ED4 E010AB34 30420FFF */ andi $v0, $v0, 0xfff -/* 3E4ED8 E010AB38 00621025 */ or $v0, $v1, $v0 -/* 3E4EDC E010AB3C AC820000 */ sw $v0, ($a0) -.LE010AB40: -/* 3E4EE0 E010AB40 4600C38D */ trunc.w.s $f14, $f24 -/* 3E4EE4 E010AB44 44027000 */ mfc1 $v0, $f14 -/* 3E4EE8 E010AB48 00000000 */ nop -/* 3E4EEC E010AB4C 00021400 */ sll $v0, $v0, 0x10 -/* 3E4EF0 E010AB50 00021403 */ sra $v0, $v0, 0x10 -/* 3E4EF4 E010AB54 18400004 */ blez $v0, .LE010AB68 -/* 3E4EF8 E010AB58 24840004 */ addiu $a0, $a0, 4 -/* 3E4EFC E010AB5C 30420FFF */ andi $v0, $v0, 0xfff -/* 3E4F00 E010AB60 08042ADB */ j .LE010AB6C -/* 3E4F04 E010AB64 00021B00 */ sll $v1, $v0, 0xc -.LE010AB68: -/* 3E4F08 E010AB68 0000182D */ daddu $v1, $zero, $zero -.LE010AB6C: -/* 3E4F0C E010AB6C 4600D38D */ trunc.w.s $f14, $f26 -/* 3E4F10 E010AB70 44027000 */ mfc1 $v0, $f14 -/* 3E4F14 E010AB74 00000000 */ nop -/* 3E4F18 E010AB78 00021400 */ sll $v0, $v0, 0x10 -/* 3E4F1C E010AB7C 00021403 */ sra $v0, $v0, 0x10 -/* 3E4F20 E010AB80 18400004 */ blez $v0, .LE010AB94 -/* 3E4F24 E010AB84 AC830000 */ sw $v1, ($a0) -/* 3E4F28 E010AB88 30420FFF */ andi $v0, $v0, 0xfff -/* 3E4F2C E010AB8C 00621025 */ or $v0, $v1, $v0 -/* 3E4F30 E010AB90 AC820000 */ sw $v0, ($a0) -.LE010AB94: -/* 3E4F34 E010AB94 8EC20000 */ lw $v0, ($s6) -/* 3E4F38 E010AB98 0040182D */ daddu $v1, $v0, $zero -/* 3E4F3C E010AB9C 24420008 */ addiu $v0, $v0, 8 -/* 3E4F40 E010ABA0 AEC20000 */ sw $v0, ($s6) -/* 3E4F44 E010ABA4 3C02E100 */ lui $v0, 0xe100 -/* 3E4F48 E010ABA8 AC620000 */ sw $v0, ($v1) -/* 3E4F4C E010ABAC 4600C38D */ trunc.w.s $f14, $f24 -/* 3E4F50 E010ABB0 44027000 */ mfc1 $v0, $f14 -/* 3E4F54 E010ABB4 00000000 */ nop -/* 3E4F58 E010ABB8 00021400 */ sll $v0, $v0, 0x10 -/* 3E4F5C E010ABBC 00021403 */ sra $v0, $v0, 0x10 -/* 3E4F60 E010ABC0 04410008 */ bgez $v0, .LE010ABE4 -/* 3E4F64 E010ABC4 24630004 */ addiu $v1, $v1, 4 -/* 3E4F68 E010ABC8 000221C0 */ sll $a0, $v0, 7 -/* 3E4F6C E010ABCC 5C800001 */ bgtzl $a0, .LE010ABD4 -/* 3E4F70 E010ABD0 0000202D */ daddu $a0, $zero, $zero -.LE010ABD4: -/* 3E4F74 E010ABD4 24020080 */ addiu $v0, $zero, 0x80 -/* 3E4F78 E010ABD8 00441023 */ subu $v0, $v0, $a0 -/* 3E4F7C E010ABDC 08042AFA */ j .LE010ABE8 -/* 3E4F80 E010ABE0 00022C00 */ sll $a1, $v0, 0x10 -.LE010ABE4: -/* 3E4F84 E010ABE4 3C050080 */ lui $a1, 0x80 -.LE010ABE8: -/* 3E4F88 E010ABE8 44807000 */ mtc1 $zero, $f14 -/* 3E4F8C E010ABEC 00000000 */ nop -/* 3E4F90 E010ABF0 460ED03C */ c.lt.s $f26, $f14 -/* 3E4F94 E010ABF4 00000000 */ nop -/* 3E4F98 E010ABF8 4500000C */ bc1f .LE010AC2C -/* 3E4F9C E010ABFC 34A20080 */ ori $v0, $a1, 0x80 -/* 3E4FA0 E010AC00 4600D38D */ trunc.w.s $f14, $f26 -/* 3E4FA4 E010AC04 44027000 */ mfc1 $v0, $f14 -/* 3E4FA8 E010AC08 00000000 */ nop -/* 3E4FAC E010AC0C 00021400 */ sll $v0, $v0, 0x10 -/* 3E4FB0 E010AC10 00022243 */ sra $a0, $v0, 9 -/* 3E4FB4 E010AC14 5C800001 */ bgtzl $a0, .LE010AC1C -/* 3E4FB8 E010AC18 0000202D */ daddu $a0, $zero, $zero -.LE010AC1C: -/* 3E4FBC E010AC1C 24020080 */ addiu $v0, $zero, 0x80 -/* 3E4FC0 E010AC20 00441023 */ subu $v0, $v0, $a0 -/* 3E4FC4 E010AC24 3042FFFF */ andi $v0, $v0, 0xffff -/* 3E4FC8 E010AC28 00A21025 */ or $v0, $a1, $v0 -.LE010AC2C: -/* 3E4FCC E010AC2C AC620000 */ sw $v0, ($v1) -/* 3E4FD0 E010AC30 3C044000 */ lui $a0, 0x4000 -/* 3E4FD4 E010AC34 8EC20000 */ lw $v0, ($s6) -/* 3E4FD8 E010AC38 34844000 */ ori $a0, $a0, 0x4000 -/* 3E4FDC E010AC3C 0040182D */ daddu $v1, $v0, $zero -/* 3E4FE0 E010AC40 24420008 */ addiu $v0, $v0, 8 -/* 3E4FE4 E010AC44 AEC20000 */ sw $v0, ($s6) -/* 3E4FE8 E010AC48 3C02F100 */ lui $v0, 0xf100 -/* 3E4FEC E010AC4C AC620000 */ sw $v0, ($v1) -/* 3E4FF0 E010AC50 AC640004 */ sw $a0, 4($v1) -.LE010AC54: -/* 3E4FF4 E010AC54 26100004 */ addiu $s0, $s0, 4 -.LE010AC58: -/* 3E4FF8 E010AC58 26B50001 */ addiu $s5, $s5, 1 -/* 3E4FFC E010AC5C 26730003 */ addiu $s3, $s3, 3 -/* 3E5000 E010AC60 02B7102A */ slt $v0, $s5, $s7 -/* 3E5004 E010AC64 1440FEDE */ bnez $v0, .LE010A7E0 -/* 3E5008 E010AC68 26940003 */ addiu $s4, $s4, 3 -.LE010AC6C: -/* 3E500C E010AC6C 8FBF009C */ lw $ra, 0x9c($sp) -/* 3E5010 E010AC70 8FBE0098 */ lw $fp, 0x98($sp) -/* 3E5014 E010AC74 8FB70094 */ lw $s7, 0x94($sp) -/* 3E5018 E010AC78 8FB60090 */ lw $s6, 0x90($sp) -/* 3E501C E010AC7C 8FB5008C */ lw $s5, 0x8c($sp) -/* 3E5020 E010AC80 8FB40088 */ lw $s4, 0x88($sp) -/* 3E5024 E010AC84 8FB30084 */ lw $s3, 0x84($sp) -/* 3E5028 E010AC88 8FB20080 */ lw $s2, 0x80($sp) -/* 3E502C E010AC8C 8FB1007C */ lw $s1, 0x7c($sp) -/* 3E5030 E010AC90 8FB00078 */ lw $s0, 0x78($sp) -/* 3E5034 E010AC94 D7BE00C8 */ ldc1 $f30, 0xc8($sp) -/* 3E5038 E010AC98 D7BC00C0 */ ldc1 $f28, 0xc0($sp) -/* 3E503C E010AC9C D7BA00B8 */ ldc1 $f26, 0xb8($sp) -/* 3E5040 E010ACA0 D7B800B0 */ ldc1 $f24, 0xb0($sp) -/* 3E5044 E010ACA4 D7B600A8 */ ldc1 $f22, 0xa8($sp) -/* 3E5048 E010ACA8 D7B400A0 */ ldc1 $f20, 0xa0($sp) -/* 3E504C E010ACAC 03E00008 */ jr $ra -/* 3E5050 E010ACB0 27BD00D0 */ addiu $sp, $sp, 0xd0 -/* 3E5054 E010ACB4 00000000 */ nop -/* 3E5058 E010ACB8 00000000 */ nop -/* 3E505C E010ACBC 00000000 */ nop diff --git a/ver/us/asm/nonmatchings/sprite/func_802DE8DC.s b/ver/us/asm/nonmatchings/sprite/func_802DE8DC.s deleted file mode 100644 index 84b62f75ba..0000000000 --- a/ver/us/asm/nonmatchings/sprite/func_802DE8DC.s +++ /dev/null @@ -1,71 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802DE8DC -/* 1019CC 802DE8DC 3C03802E */ lui $v1, %hi(SpriteInstances) -/* 1019D0 802DE8E0 2463FA48 */ addiu $v1, $v1, %lo(SpriteInstances) -/* 1019D4 802DE8E4 00041080 */ sll $v0, $a0, 2 -/* 1019D8 802DE8E8 00441021 */ addu $v0, $v0, $a0 -/* 1019DC 802DE8EC 00021080 */ sll $v0, $v0, 2 -/* 1019E0 802DE8F0 00434021 */ addu $t0, $v0, $v1 -/* 1019E4 802DE8F4 8D030004 */ lw $v1, 4($t0) -/* 1019E8 802DE8F8 10600035 */ beqz $v1, .L802DE9D0 -/* 1019EC 802DE8FC 8FAB0010 */ lw $t3, 0x10($sp) -/* 1019F0 802DE900 910A000F */ lbu $t2, 0xf($t0) -/* 1019F4 802DE904 240200FF */ addiu $v0, $zero, 0xff -/* 1019F8 802DE908 11420031 */ beq $t2, $v0, .L802DE9D0 -/* 1019FC 802DE90C 0060202D */ daddu $a0, $v1, $zero -/* 101A00 802DE910 000A1080 */ sll $v0, $t2, 2 -/* 101A04 802DE914 8D030008 */ lw $v1, 8($t0) -/* 101A08 802DE918 24420010 */ addiu $v0, $v0, 0x10 -/* 101A0C 802DE91C 00621821 */ addu $v1, $v1, $v0 -/* 101A10 802DE920 8C680000 */ lw $t0, ($v1) -/* 101A14 802DE924 8C830000 */ lw $v1, ($a0) -/* 101A18 802DE928 2402FFFF */ addiu $v0, $zero, -1 -/* 101A1C 802DE92C 10620028 */ beq $v1, $v0, .L802DE9D0 -/* 101A20 802DE930 0000482D */ daddu $t1, $zero, $zero -/* 101A24 802DE934 0040182D */ daddu $v1, $v0, $zero -.L802DE938: -/* 101A28 802DE938 1525001D */ bne $t1, $a1, .L802DE9B0 -/* 101A2C 802DE93C 25290001 */ addiu $t1, $t1, 1 -/* 101A30 802DE940 8D030000 */ lw $v1, ($t0) -/* 101A34 802DE944 8C840000 */ lw $a0, ($a0) -/* 101A38 802DE948 84620006 */ lh $v0, 6($v1) -/* 101A3C 802DE94C C4800028 */ lwc1 $f0, 0x28($a0) -/* 101A40 802DE950 44821000 */ mtc1 $v0, $f2 -/* 101A44 802DE954 00000000 */ nop -/* 101A48 802DE958 468010A0 */ cvt.s.w $f2, $f2 -/* 101A4C 802DE95C 46020000 */ add.s $f0, $f0, $f2 -/* 101A50 802DE960 4600010D */ trunc.w.s $f4, $f0 -/* 101A54 802DE964 E4C40000 */ swc1 $f4, ($a2) -/* 101A58 802DE968 84620008 */ lh $v0, 8($v1) -/* 101A5C 802DE96C C480002C */ lwc1 $f0, 0x2c($a0) -/* 101A60 802DE970 44821000 */ mtc1 $v0, $f2 -/* 101A64 802DE974 00000000 */ nop -/* 101A68 802DE978 468010A0 */ cvt.s.w $f2, $f2 -/* 101A6C 802DE97C 46020000 */ add.s $f0, $f0, $f2 -/* 101A70 802DE980 4600010D */ trunc.w.s $f4, $f0 -/* 101A74 802DE984 E4E40000 */ swc1 $f4, ($a3) -/* 101A78 802DE988 8462000A */ lh $v0, 0xa($v1) -/* 101A7C 802DE98C C4820030 */ lwc1 $f2, 0x30($a0) -/* 101A80 802DE990 44820000 */ mtc1 $v0, $f0 -/* 101A84 802DE994 00000000 */ nop -/* 101A88 802DE998 46800020 */ cvt.s.w $f0, $f0 -/* 101A8C 802DE99C 46001080 */ add.s $f2, $f2, $f0 -/* 101A90 802DE9A0 4600110D */ trunc.w.s $f4, $f2 -/* 101A94 802DE9A4 E5640000 */ swc1 $f4, ($t3) -/* 101A98 802DE9A8 03E00008 */ jr $ra -/* 101A9C 802DE9AC 0000102D */ daddu $v0, $zero, $zero -.L802DE9B0: -/* 101AA0 802DE9B0 8D020000 */ lw $v0, ($t0) -/* 101AA4 802DE9B4 10430002 */ beq $v0, $v1, .L802DE9C0 -/* 101AA8 802DE9B8 24840004 */ addiu $a0, $a0, 4 -/* 101AAC 802DE9BC 25080004 */ addiu $t0, $t0, 4 -.L802DE9C0: -/* 101AB0 802DE9C0 8C820000 */ lw $v0, ($a0) -/* 101AB4 802DE9C4 1443FFDC */ bne $v0, $v1, .L802DE938 -/* 101AB8 802DE9C8 00000000 */ nop -/* 101ABC 802DE9CC 2402FFFF */ addiu $v0, $zero, -1 -.L802DE9D0: -/* 101AC0 802DE9D0 03E00008 */ jr $ra -/* 101AC4 802DE9D4 00000000 */ nop diff --git a/ver/us/asm/nonmatchings/sprite/spr_update_player_sprite.s b/ver/us/asm/nonmatchings/sprite/spr_update_player_sprite.s deleted file mode 100644 index 2d1d820867..0000000000 --- a/ver/us/asm/nonmatchings/sprite/spr_update_player_sprite.s +++ /dev/null @@ -1,119 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel spr_update_player_sprite -/* 100B7C 802DDA8C 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* 100B80 802DDA90 AFB70034 */ sw $s7, 0x34($sp) -/* 100B84 802DDA94 0080B82D */ daddu $s7, $a0, $zero -/* 100B88 802DDA98 AFB5002C */ sw $s5, 0x2c($sp) -/* 100B8C 802DDA9C 00A0A82D */ daddu $s5, $a1, $zero -/* 100B90 802DDAA0 00151403 */ sra $v0, $s5, 0x10 -/* 100B94 802DDAA4 304200FF */ andi $v0, $v0, 0xff -/* 100B98 802DDAA8 AFB40028 */ sw $s4, 0x28($sp) -/* 100B9C 802DDAAC 2454FFFF */ addiu $s4, $v0, -1 -/* 100BA0 802DDAB0 AFB20020 */ sw $s2, 0x20($sp) -/* 100BA4 802DDAB4 32F200FF */ andi $s2, $s7, 0xff -/* 100BA8 802DDAB8 3C03802E */ lui $v1, %hi(spr_playerCurrentAnimInfo) -/* 100BAC 802DDABC 2463F588 */ addiu $v1, $v1, %lo(spr_playerCurrentAnimInfo) -/* 100BB0 802DDAC0 00121040 */ sll $v0, $s2, 1 -/* 100BB4 802DDAC4 00521021 */ addu $v0, $v0, $s2 -/* 100BB8 802DDAC8 F7B40040 */ sdc1 $f20, 0x40($sp) -/* 100BBC 802DDACC 4486A000 */ mtc1 $a2, $f20 -/* 100BC0 802DDAD0 00021080 */ sll $v0, $v0, 2 -/* 100BC4 802DDAD4 AFB00018 */ sw $s0, 0x18($sp) -/* 100BC8 802DDAD8 00438021 */ addu $s0, $v0, $v1 -/* 100BCC 802DDADC AFBF0038 */ sw $ra, 0x38($sp) -/* 100BD0 802DDAE0 AFB60030 */ sw $s6, 0x30($sp) -/* 100BD4 802DDAE4 AFB30024 */ sw $s3, 0x24($sp) -/* 100BD8 802DDAE8 AFB1001C */ sw $s1, 0x1c($sp) -/* 100BDC 802DDAEC 8E020000 */ lw $v0, ($s0) -/* 100BE0 802DDAF0 3C01802E */ lui $at, %hi(D_802DF57C) -/* 100BE4 802DDAF4 AC34F57C */ sw $s4, %lo(D_802DF57C)($at) -/* 100BE8 802DDAF8 14400013 */ bnez $v0, .L802DDB48 -/* 100BEC 802DDAFC 32B600FF */ andi $s6, $s5, 0xff -/* 100BF0 802DDB00 3C04802E */ lui $a0, %hi(spr_playerMaxComponents) -/* 100BF4 802DDB04 8C84F580 */ lw $a0, %lo(spr_playerMaxComponents)($a0) -/* 100BF8 802DDB08 0C0B7CB6 */ jal spr_allocate_components -/* 100BFC 802DDB0C 00000000 */ nop -/* 100C00 802DDB10 0040882D */ daddu $s1, $v0, $zero -/* 100C04 802DDB14 AE110000 */ sw $s1, ($s0) -/* 100C08 802DDB18 8E230000 */ lw $v1, ($s1) -/* 100C0C 802DDB1C 2402FFFF */ addiu $v0, $zero, -1 -/* 100C10 802DDB20 10620009 */ beq $v1, $v0, .L802DDB48 -/* 100C14 802DDB24 0040982D */ daddu $s3, $v0, $zero -.L802DDB28: -/* 100C18 802DDB28 8E300000 */ lw $s0, ($s1) -/* 100C1C 802DDB2C 0C04E9C1 */ jal func_8013A704 -/* 100C20 802DDB30 24040001 */ addiu $a0, $zero, 1 -/* 100C24 802DDB34 26310004 */ addiu $s1, $s1, 4 -/* 100C28 802DDB38 AE02004C */ sw $v0, 0x4c($s0) -/* 100C2C 802DDB3C 8E220000 */ lw $v0, ($s1) -/* 100C30 802DDB40 1453FFF9 */ bne $v0, $s3, .L802DDB28 -/* 100C34 802DDB44 00000000 */ nop -.L802DDB48: -/* 100C38 802DDB48 00141080 */ sll $v0, $s4, 2 -/* 100C3C 802DDB4C 3C03802E */ lui $v1, %hi(spr_playerCurrentAnimInfo) -/* 100C40 802DDB50 2463F588 */ addiu $v1, $v1, %lo(spr_playerCurrentAnimInfo) -/* 100C44 802DDB54 3C05802E */ lui $a1, %hi(spr_playerSprites) -/* 100C48 802DDB58 00A22821 */ addu $a1, $a1, $v0 -/* 100C4C 802DDB5C 8CA5F548 */ lw $a1, %lo(spr_playerSprites)($a1) -/* 100C50 802DDB60 00121040 */ sll $v0, $s2, 1 -/* 100C54 802DDB64 00521021 */ addu $v0, $v0, $s2 -/* 100C58 802DDB68 00021080 */ sll $v0, $v0, 2 -/* 100C5C 802DDB6C 00438021 */ addu $s0, $v0, $v1 -/* 100C60 802DDB70 8E110000 */ lw $s1, ($s0) -/* 100C64 802DDB74 10A00026 */ beqz $a1, .L802DDC10 -/* 100C68 802DDB78 0000102D */ daddu $v0, $zero, $zero -/* 100C6C 802DDB7C 00161080 */ sll $v0, $s6, 2 -/* 100C70 802DDB80 24420010 */ addiu $v0, $v0, 0x10 -/* 100C74 802DDB84 8CB40000 */ lw $s4, ($a1) -/* 100C78 802DDB88 00A22821 */ addu $a1, $a1, $v0 -/* 100C7C 802DDB8C 8CB30000 */ lw $s3, ($a1) -/* 100C80 802DDB90 0C0B7623 */ jal spr_set_anim_timescale -/* 100C84 802DDB94 4600A306 */ mov.s $f12, $f20 -/* 100C88 802DDB98 06E00007 */ bltz $s7, .L802DDBB8 -/* 100C8C 802DDB9C 3C02FEFF */ lui $v0, 0xfeff -/* 100C90 802DDBA0 3442FFFF */ ori $v0, $v0, 0xffff -/* 100C94 802DDBA4 8E030004 */ lw $v1, 4($s0) -/* 100C98 802DDBA8 02A22024 */ and $a0, $s5, $v0 -/* 100C9C 802DDBAC 00621824 */ and $v1, $v1, $v0 -/* 100CA0 802DDBB0 10830005 */ beq $a0, $v1, .L802DDBC8 -/* 100CA4 802DDBB4 00000000 */ nop -.L802DDBB8: -/* 100CA8 802DDBB8 0220202D */ daddu $a0, $s1, $zero -/* 100CAC 802DDBBC 0C0B7608 */ jal spr_init_anim_state -/* 100CB0 802DDBC0 0260282D */ daddu $a1, $s3, $zero -/* 100CB4 802DDBC4 AE000008 */ sw $zero, 8($s0) -.L802DDBC8: -/* 100CB8 802DDBC8 3C02802E */ lui $v0, %hi(spr_playerCurrentAnimInfo) -/* 100CBC 802DDBCC 2442F588 */ addiu $v0, $v0, %lo(spr_playerCurrentAnimInfo) -/* 100CC0 802DDBD0 00121840 */ sll $v1, $s2, 1 -/* 100CC4 802DDBD4 00721821 */ addu $v1, $v1, $s2 -/* 100CC8 802DDBD8 00031880 */ sll $v1, $v1, 2 -/* 100CCC 802DDBDC 00628021 */ addu $s0, $v1, $v0 -/* 100CD0 802DDBE0 3C024000 */ lui $v0, 0x4000 -/* 100CD4 802DDBE4 02E21024 */ and $v0, $s7, $v0 -/* 100CD8 802DDBE8 14400008 */ bnez $v0, .L802DDC0C -/* 100CDC 802DDBEC AE150004 */ sw $s5, 4($s0) -/* 100CE0 802DDBF0 0220282D */ daddu $a1, $s1, $zero -/* 100CE4 802DDBF4 0260302D */ daddu $a2, $s3, $zero -/* 100CE8 802DDBF8 AFA00010 */ sw $zero, 0x10($sp) -/* 100CEC 802DDBFC 8E040008 */ lw $a0, 8($s0) -/* 100CF0 802DDC00 0C0B75B7 */ jal spr_component_update -/* 100CF4 802DDC04 0280382D */ daddu $a3, $s4, $zero -/* 100CF8 802DDC08 AE020008 */ sw $v0, 8($s0) -.L802DDC0C: -/* 100CFC 802DDC0C 8E020008 */ lw $v0, 8($s0) -.L802DDC10: -/* 100D00 802DDC10 8FBF0038 */ lw $ra, 0x38($sp) -/* 100D04 802DDC14 8FB70034 */ lw $s7, 0x34($sp) -/* 100D08 802DDC18 8FB60030 */ lw $s6, 0x30($sp) -/* 100D0C 802DDC1C 8FB5002C */ lw $s5, 0x2c($sp) -/* 100D10 802DDC20 8FB40028 */ lw $s4, 0x28($sp) -/* 100D14 802DDC24 8FB30024 */ lw $s3, 0x24($sp) -/* 100D18 802DDC28 8FB20020 */ lw $s2, 0x20($sp) -/* 100D1C 802DDC2C 8FB1001C */ lw $s1, 0x1c($sp) -/* 100D20 802DDC30 8FB00018 */ lw $s0, 0x18($sp) -/* 100D24 802DDC34 D7B40040 */ ldc1 $f20, 0x40($sp) -/* 100D28 802DDC38 03E00008 */ jr $ra -/* 100D2C 802DDC3C 27BD0048 */ addiu $sp, $sp, 0x48 diff --git a/ver/us/asm/nonmatchings/sprite/spr_update_sprite.s b/ver/us/asm/nonmatchings/sprite/spr_update_sprite.s deleted file mode 100644 index ae87631c18..0000000000 --- a/ver/us/asm/nonmatchings/sprite/spr_update_sprite.s +++ /dev/null @@ -1,82 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel spr_update_sprite -/* 10139C 802DE2AC 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 1013A0 802DE2B0 AFB5002C */ sw $s5, 0x2c($sp) -/* 1013A4 802DE2B4 0080A82D */ daddu $s5, $a0, $zero -/* 1013A8 802DE2B8 AFB20020 */ sw $s2, 0x20($sp) -/* 1013AC 802DE2BC 32B200FF */ andi $s2, $s5, 0xff -/* 1013B0 802DE2C0 3C03802E */ lui $v1, %hi(SpriteInstances) -/* 1013B4 802DE2C4 2463FA48 */ addiu $v1, $v1, %lo(SpriteInstances) -/* 1013B8 802DE2C8 00121080 */ sll $v0, $s2, 2 -/* 1013BC 802DE2CC 00521021 */ addu $v0, $v0, $s2 -/* 1013C0 802DE2D0 00021080 */ sll $v0, $v0, 2 -/* 1013C4 802DE2D4 AFB00018 */ sw $s0, 0x18($sp) -/* 1013C8 802DE2D8 00438021 */ addu $s0, $v0, $v1 -/* 1013CC 802DE2DC AFB1001C */ sw $s1, 0x1c($sp) -/* 1013D0 802DE2E0 30B100FF */ andi $s1, $a1, 0xff -/* 1013D4 802DE2E4 00111080 */ sll $v0, $s1, 2 -/* 1013D8 802DE2E8 24420010 */ addiu $v0, $v0, 0x10 -/* 1013DC 802DE2EC 00052A03 */ sra $a1, $a1, 8 -/* 1013E0 802DE2F0 AFB40028 */ sw $s4, 0x28($sp) -/* 1013E4 802DE2F4 AFBF0038 */ sw $ra, 0x38($sp) -/* 1013E8 802DE2F8 AFB70034 */ sw $s7, 0x34($sp) -/* 1013EC 802DE2FC AFB60030 */ sw $s6, 0x30($sp) -/* 1013F0 802DE300 AFB30024 */ sw $s3, 0x24($sp) -/* 1013F4 802DE304 8E030008 */ lw $v1, 8($s0) -/* 1013F8 802DE308 8E130004 */ lw $s3, 4($s0) -/* 1013FC 802DE30C 44866000 */ mtc1 $a2, $f12 -/* 101400 802DE310 8C770000 */ lw $s7, ($v1) -/* 101404 802DE314 00621821 */ addu $v1, $v1, $v0 -/* 101408 802DE318 8C760000 */ lw $s6, ($v1) -/* 10140C 802DE31C 0C0B7623 */ jal spr_set_anim_timescale -/* 101410 802DE320 30B400FF */ andi $s4, $a1, 0xff -/* 101414 802DE324 06A00004 */ bltz $s5, .L802DE338 -/* 101418 802DE328 0260202D */ daddu $a0, $s3, $zero -/* 10141C 802DE32C 9202000F */ lbu $v0, 0xf($s0) -/* 101420 802DE330 10510008 */ beq $v0, $s1, .L802DE354 -/* 101424 802DE334 3C024000 */ lui $v0, 0x4000 -.L802DE338: -/* 101428 802DE338 0C0B7608 */ jal spr_init_anim_state -/* 10142C 802DE33C 02C0282D */ daddu $a1, $s6, $zero -/* 101430 802DE340 00141200 */ sll $v0, $s4, 8 -/* 101434 802DE344 00511025 */ or $v0, $v0, $s1 -/* 101438 802DE348 AE02000C */ sw $v0, 0xc($s0) -/* 10143C 802DE34C AE000010 */ sw $zero, 0x10($s0) -/* 101440 802DE350 3C024000 */ lui $v0, 0x4000 -.L802DE354: -/* 101444 802DE354 02A21024 */ and $v0, $s5, $v0 -/* 101448 802DE358 1440000F */ bnez $v0, .L802DE398 -/* 10144C 802DE35C 00121080 */ sll $v0, $s2, 2 -/* 101450 802DE360 0260282D */ daddu $a1, $s3, $zero -/* 101454 802DE364 3C02802E */ lui $v0, %hi(SpriteInstances) -/* 101458 802DE368 2442FA48 */ addiu $v0, $v0, %lo(SpriteInstances) -/* 10145C 802DE36C 00128080 */ sll $s0, $s2, 2 -/* 101460 802DE370 02128021 */ addu $s0, $s0, $s2 -/* 101464 802DE374 00108080 */ sll $s0, $s0, 2 -/* 101468 802DE378 02028021 */ addu $s0, $s0, $v0 -/* 10146C 802DE37C 02C0302D */ daddu $a2, $s6, $zero -/* 101470 802DE380 AFB40010 */ sw $s4, 0x10($sp) -/* 101474 802DE384 8E040010 */ lw $a0, 0x10($s0) -/* 101478 802DE388 0C0B75B7 */ jal spr_component_update -/* 10147C 802DE38C 02E0382D */ daddu $a3, $s7, $zero -/* 101480 802DE390 AE020010 */ sw $v0, 0x10($s0) -/* 101484 802DE394 00121080 */ sll $v0, $s2, 2 -.L802DE398: -/* 101488 802DE398 00521021 */ addu $v0, $v0, $s2 -/* 10148C 802DE39C 00021080 */ sll $v0, $v0, 2 -/* 101490 802DE3A0 3C01802E */ lui $at, %hi(SpriteInstances + 0x10) -/* 101494 802DE3A4 00220821 */ addu $at, $at, $v0 -/* 101498 802DE3A8 8C22FA58 */ lw $v0, %lo(SpriteInstances + 0x10)($at) -/* 10149C 802DE3AC 8FBF0038 */ lw $ra, 0x38($sp) -/* 1014A0 802DE3B0 8FB70034 */ lw $s7, 0x34($sp) -/* 1014A4 802DE3B4 8FB60030 */ lw $s6, 0x30($sp) -/* 1014A8 802DE3B8 8FB5002C */ lw $s5, 0x2c($sp) -/* 1014AC 802DE3BC 8FB40028 */ lw $s4, 0x28($sp) -/* 1014B0 802DE3C0 8FB30024 */ lw $s3, 0x24($sp) -/* 1014B4 802DE3C4 8FB20020 */ lw $s2, 0x20($sp) -/* 1014B8 802DE3C8 8FB1001C */ lw $s1, 0x1c($sp) -/* 1014BC 802DE3CC 8FB00018 */ lw $s0, 0x18($sp) -/* 1014C0 802DE3D0 03E00008 */ jr $ra -/* 1014C4 802DE3D4 27BD0040 */ addiu $sp, $sp, 0x40 diff --git a/ver/us/symbol_addrs.txt b/ver/us/symbol_addrs.txt index c13238161b..e693dc3b08 100644 --- a/ver/us/symbol_addrs.txt +++ b/ver/us/symbol_addrs.txt @@ -27153,7 +27153,7 @@ D_802DFE48 = 0x802DFE48; // type:data D_802DFE9C = 0x802DFE9C; // type:data D_802DFEA0 = 0x802DFEA0; // type:data SpriteUpdateNotifyValue = 0x802DFEAC; // type:data -D_802DFEB0 = 0x802DFEB0; // type:data +spr_asset_entry = 0x802DFEB0; // type:data D_802DFEB8 = 0x802DFEB8; // type:data PlayerRasterSetsLoaded = 0x802E004C; // type:data PlayerRasterBufferSetOffsets = 0x802E0050; // type:data