From 77ee6c819b91fe6c4794989d1281f81821ad52b7 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Mon, 17 Oct 2022 05:51:58 -0400 Subject: [PATCH] More libultra and appendGfx_player_actor (#829) * libultra stuff * vi stuff * initialize.c * bss stuff * appendGfx_player_actor --- include/functions.h | 2 +- include/gcc/stdarg.h | 121 ++ include/{ => libc}/xstdio.h | 3 +- src/182B30.c | 317 +++-- src/main.c | 8 +- src/os/contpfs.c | 4 +- src/os/contramread.c | 2 +- src/os/guRotate.c | 4 +- src/os/initialize.c | 105 +- src/os/nusys/nuContMgr.c | 7 +- src/os/sprintf.c | 2 +- src/os/vi.c | 47 +- src/os/vitbl.c | 6 + src/os/xldtob.c | 307 ++++- src/os/xlitob.c | 61 +- src/os/xprintf.c | 37 +- ver/jp/undefined_syms.txt | 1 + ver/us/asm/bss.s | 2 +- ver/us/asm/data/70C20.data.s | 78 -- .../182B30/appendGfx_player_actor.s | 1149 ----------------- .../os/initialize/__createSpeedParam.s | 50 - .../os/initialize/__osInitialize_common.s | 194 --- ver/us/asm/nonmatchings/os/vi/__osViInit.s | 77 -- ver/us/asm/nonmatchings/os/xldtob/_Genld.s | 403 ------ ver/us/asm/nonmatchings/os/xldtob/_Ldtob.s | 334 ----- .../asm/nonmatchings/os/xldtob/_Ldunscale.s | 46 - ver/us/asm/nonmatchings/os/xlitob/_Litob.s | 164 --- ver/us/splat.yaml | 15 +- ver/us/symbol_addrs.txt | 10 +- ver/us/undefined_syms.txt | 7 +- 30 files changed, 863 insertions(+), 2700 deletions(-) create mode 100644 include/gcc/stdarg.h rename include/{ => libc}/xstdio.h (94%) delete mode 100644 ver/us/asm/data/70C20.data.s delete mode 100644 ver/us/asm/nonmatchings/182B30/appendGfx_player_actor.s delete mode 100644 ver/us/asm/nonmatchings/os/initialize/__createSpeedParam.s delete mode 100644 ver/us/asm/nonmatchings/os/initialize/__osInitialize_common.s delete mode 100644 ver/us/asm/nonmatchings/os/vi/__osViInit.s delete mode 100644 ver/us/asm/nonmatchings/os/xldtob/_Genld.s delete mode 100644 ver/us/asm/nonmatchings/os/xldtob/_Ldtob.s delete mode 100644 ver/us/asm/nonmatchings/os/xldtob/_Ldunscale.s delete mode 100644 ver/us/asm/nonmatchings/os/xlitob/_Litob.s diff --git a/include/functions.h b/include/functions.h index c367e17e83..5be3857dc7 100644 --- a/include/functions.h +++ b/include/functions.h @@ -6,7 +6,7 @@ #include "map.h" #include "enums.h" #include "stdlib/stdarg.h" -#include "xstdio.h" +#include "libc/xstdio.h" f32 fabsf(f32 f); f64 fabs(f64 f); diff --git a/include/gcc/stdarg.h b/include/gcc/stdarg.h new file mode 100644 index 0000000000..af337f66ec --- /dev/null +++ b/include/gcc/stdarg.h @@ -0,0 +1,121 @@ +#ifndef _STDARG_H +#define _STDARG_H +/* ---------------------------------------- */ +/* VARARGS for MIPS/GNU CC */ +/* */ +/* */ +/* */ +/* */ +/* ---------------------------------------- */ + +/* These macros implement varargs for GNU C--either traditional or ANSU. */ + +/* Define __gnuc_va_list. */ + +#ifndef __GNUC_VA_LIST +#define __GNUC_VA_LIST +typedef char * __gnuc_va_list; +#endif /* not __GNUC_VA_LIST */ + +/* If this is for internal libc use, don't define anything but + __gnuc_va_list. */ +#if defined (_STDARG_H) || defined (_VARARGS_H) + +/* In GCC version 2, we want an ellipsis at the end of the declaration + of the argument list. GCC version 1 can't parse it. */ + +#if __GNUC__ > 1 +#define __va_ellipsis ... +#else +#define __va_ellipsis +#endif + +#if __mips>=3 +#define __va_rounded_size(__TYPE) \ + (((sizeof (__TYPE) + 8 - 1) / 8) * 8) +#else +#define __va_rounded_size(__TYPE) \ + (((sizeof (__TYPE) + sizeof (int) - 1) / sizeof (int)) * sizeof (int)) +#endif + +/* Get definitions for _MIPS_SIM_ABI64 etc. */ +#ifdef _MIPS_SIM +#include +#endif + +#ifdef _STDARG_H +#if defined(_MIPS_SIM) && (_MIPS_SIM == _MIPS_SIM_ABI64) +#define va_start(__AP, __LASTARG) \ + (__AP = __builtin_next_arg (__LASTARG) - 64 \ + + (__builtin_args_info (2) > 8 ? 64 : __builtin_args_info(2) * 8)) +#else +#define va_start(__AP, __LASTARG) \ + (__AP = (__gnuc_va_list) __builtin_next_arg (__LASTARG)) +#endif + +#else +#define va_alist __builtin_va_alist +#if __mips>=3 +/* This assumes that `long long int' is always a 64 bit type. */ +#define va_dcl long long int __builtin_va_alist; __va_ellipsis +#else +#define va_dcl int __builtin_va_alist; __va_ellipsis +#endif +/* Need alternate code for _MIPS_SIM_ABI64, but don't use that symbol + because it may not be defined. */ +#if defined(_MIPS_SIM) && (_MIPS_SIM == _MIPS_SIM_ABI64) +#define va_start(__AP) \ + (__AP = __builtin_next_arg () - 64 \ + + (__builtin_args_info (2) > 8 ? 64 : __builtin_args_info(2) * 8)) +#else +#define va_start(__AP) __AP = (char *) &__builtin_va_alist +#endif +#endif + +#ifndef va_end +void va_end (__gnuc_va_list); /* Defined in libgcc.a */ +#endif +#define va_end(__AP) ((void)0) + +/* We cast to void * and then to TYPE * because this avoids + a warning about increasing the alignment requirement. */ +/* The __mips>=3 cases are reversed from the 32 bit cases, because the standard + 32 bit calling convention left-aligns all parameters smaller than a word, + whereas the __mips>=3 calling convention does not (and hence they are + right aligned). */ +#if __mips>=3 +#ifdef __MIPSEB__ +#define va_arg(__AP, __type) \ + ((__type *) (void *) (__AP = (char *) ((((__PTRDIFF_TYPE__)__AP + 8 - 1) & -8) \ + + __va_rounded_size (__type))))[-1] +#else +#define va_arg(__AP, __type) \ + ((__AP = (char *) ((((__PTRDIFF_TYPE__)__AP + 8 - 1) & -8) \ + + __va_rounded_size (__type))), \ + *(__type *) (void *) (__AP - __va_rounded_size (__type))) +#endif + +#else /* not __mips>=3 */ + +#ifdef __MIPSEB__ +/* For big-endian machines. */ +#define va_arg(__AP, __type) \ + ((__AP = (char *) ((__alignof__ (__type) > 4 \ + ? ((int)__AP + 8 - 1) & -8 \ + : ((int)__AP + 4 - 1) & -4) \ + + __va_rounded_size (__type))), \ + *(__type *) (void *) (__AP - __va_rounded_size (__type))) +#else +/* For little-endian machines. */ +#define va_arg(__AP, __type) \ + ((__type *) (void *) (__AP = (char *) ((__alignof__(__type) > 4 \ + ? ((int)__AP + 8 - 1) & -8 \ + : ((int)__AP + 4 - 1) & -4) \ + + __va_rounded_size(__type))))[-1] +#endif +#endif + +typedef __gnuc_va_list va_list; + +#endif /* defined (_STDARG_H) || defined (_VARARGS_H) */ +#endif diff --git a/include/xstdio.h b/include/libc/xstdio.h similarity index 94% rename from include/xstdio.h rename to include/libc/xstdio.h index 6e00114155..107f1bc9bc 100755 --- a/include/xstdio.h +++ b/include/libc/xstdio.h @@ -1,7 +1,8 @@ #ifndef _XSTDIO_H #define _XSTDIO_H #include "PR/ultratypes.h" -#include "stdlib/stdarg.h" +#include "gcc/stdlib.h" +#include "gcc/stdarg.h" typedef struct { /* 0x0 */ union { diff --git a/src/182B30.c b/src/182B30.c index 8ee680135c..d2ac27deae 100644 --- a/src/182B30.c +++ b/src/182B30.c @@ -13,6 +13,22 @@ extern s16 D_80284134[]; void update_player_actor_shadow(void); void appendGfx_npc_actor(s32 isPartner, s32 actorIndex); +void create_status_chill_out(s32 iconID); +void enable_status_2(s32 iconID); +void enable_status_chill_out(s32 iconID); +void enable_status_debuff(s16); +void enable_status_transparent(s16); +void enable_status_icon_boost_jump(s32 iconID); +void enable_status_icon_boost_hammer(s32 iconID); +s32 func_80265CE8(u32*, s32); +void func_80266DAC(Actor* actor, s32 arg1); +void create_status_icon_boost_hammer(s32 iconID); +void create_status_icon_boost_jump(s32 iconID); +void create_status_icon_peril(s32 iconID); +void create_status_icon_danger(s32 iconID); +void set_status_icons_offset(s32 iconID, s32 offsetY, s32 arg2); +void set_status_icons_properties(s32 iconID, f32 x, f32 y, f32 z, s32 arg, s32 arg2, s32 radius, s32 offsetY); + void func_802571F0(s32, Actor*); void func_80259494(ActorPart*); void func_8025950C(ActorPart*, s32, Matrix4f); @@ -707,16 +723,6 @@ void update_hero_shadows(void) { void func_80255FD8(void) { } -void create_status_chill_out(s32 iconID); -void enable_status_2(s32 iconID); -void enable_status_chill_out(s32 iconID); -void enable_status_debuff(s16); -void enable_status_transparent(s16); -s32 func_80265CE8(u32*, s32); -void func_80266DAC(Actor* actor, s32 arg1); -void set_status_icons_offset(s32 iconID, s32 offsetY, s32 arg2); -void set_status_icons_properties(s32 iconID, f32 x, f32 y, f32 z, s32 arg, s32 arg2, s32 radius, s32 offsetY); - void appendGfx_npc_actor(s32 isPartner, s32 actorIndex) { BattleStatus* battleStatus = &gBattleStatus; Matrix4f mtxRotX, mtxRotY, mtxRotZ, mtxRotation; @@ -900,15 +906,15 @@ void appendGfx_npc_actor(s32 isPartner, s32 actorIndex) { } } while (0); // required to match func_80266DAC(actor, 0xC); - cond2 = 1; + cond2 = TRUE; func_80266EE8(actor, 0); decorChanged = TRUE; } if (isPartner && (gPlayerData.currentPartner == PARTNER_WATT)) { - if (cond2 == 0) { + if (!cond2) { func_80266DAC(actor, 9); } - cond2 = 1; + cond2 = TRUE; } } if (actor->isGlowing) { @@ -918,30 +924,30 @@ void appendGfx_npc_actor(s32 isPartner, s32 actorIndex) { decorChanged = TRUE; } if (actor->debuff == STATUS_POISON) { - if (cond2 == 0) { + if (!cond2) { func_80266DAC(actor, 6); } - cond2 = 1; + cond2 = TRUE; } if (actor->debuff == STATUS_PARALYZE) { - if (cond2 == 0) { + if (!cond2) { func_80266DAC(actor, 7); } - cond2 = 1; + cond2 = TRUE; } if (actor->debuff == STATUS_FEAR) { - if (cond2 == 0) { + if (!cond2) { func_80266DAC(actor, 5); } - cond2 = 1; + cond2 = TRUE; } if (actor->staticStatus == STATUS_STATIC) { - if (cond2 == 0) { + if (!cond2) { func_80266DAC(actor, 4); } - cond2 = 1; + cond2 = TRUE; } - if ((cond2 == 0) && !(part->flags & ACTOR_PART_FLAG_1000000)) { + if ((!cond2) && !(part->flags & ACTOR_PART_FLAG_1000000)) { func_80266DAC(actor, 0); } if ((!decorChanged) && !(part->flags & ACTOR_PART_FLAG_1000000)) { @@ -1331,7 +1337,6 @@ void update_player_actor_shadow(void) { } } -#ifdef NON_EQUIVALENT void appendGfx_player_actor(void* arg0) { BattleStatus* battleStatus = &gBattleStatus; PlayerData* playerData = &gPlayerData; @@ -1345,26 +1350,26 @@ void appendGfx_player_actor(void* arg0) { ActorPart* playerParts; EffectInstance* effect; f32 playerPosX, playerPosY, playerPosZ, playerYaw; - f32 dx, dy, dz; s32 cond1, cond2, cond3, cond4; u32 lastAnim; - player = gBattleStatus.playerActor; - partner = gBattleStatus.partnerActor; + player = battleStatus->playerActor; + partner = battleStatus->partnerActor; playerParts = player->partsTable; playerPosX = player->currentPos.x + player->headOffset.x; playerPosY = player->currentPos.y + player->headOffset.y + player->unk_19A; playerPosZ = player->currentPos.z + player->headOffset.z; - playerYaw = player->yaw; - playerParts->yaw = playerYaw; + playerYaw = playerParts->yaw = player->yaw; - player->disableEffect->data.disableX->pos.x = playerPosX + ((player->actorBlueprint->statusIconOffset.x + player->unk_194) * player->scalingFactor); - player->disableEffect->data.disableX->pos.y = playerPosY + ((player->actorBlueprint->statusIconOffset.y + player->unk_195) * player->scalingFactor); + player->disableEffect->data.disableX->pos.x = playerPosX + + ((player->actorBlueprint->statusIconOffset.x + player->unk_194) * player->scalingFactor); + player->disableEffect->data.disableX->pos.y = playerPosY + + ((player->actorBlueprint->statusIconOffset.y + player->unk_195) * player->scalingFactor); player->disableEffect->data.disableX->pos.z = playerPosZ; - if (!(gBattleStatus.flags1 & 4) && (player->flags & 0x08000000)) { + if (!(gBattleStatus.flags1 & BS_FLAGS1_4) && (player->flags & ACTOR_FLAG_8000000)) { if (player->disableDismissTimer != 0) { player->disableDismissTimer--; player->disableEffect->data.disableX->pos.y = -1000.0f; @@ -1375,8 +1380,11 @@ void appendGfx_player_actor(void* arg0) { player->disableEffect->data.disableX->pos.y = -1000.0f; player->disableDismissTimer = 10; } + if (battleStatus->waterBlockTurnsLeft != 0) { - if ((gBattleStatus.flags1 & 8) || (!(gBattleStatus.flags1 & 4) && (player->flags & 0x08000000))) { + if ((gBattleStatus.flags1 & BS_FLAGS1_8) || + (!(gBattleStatus.flags1 & BS_FLAGS1_4) && (player->flags & ACTOR_FLAG_8000000))) + { effect = battleStatus->waterBlockEffect; effect->data.waterBlock->pos.x = playerPosX; effect->data.waterBlock->pos.y = playerPosY; @@ -1389,7 +1397,9 @@ void appendGfx_player_actor(void* arg0) { } } if (battleStatus->cloudNineTurnsLeft != 0) { - if ((gBattleStatus.flags1 & 8) || (!(gBattleStatus.flags1 & 4) && (player->flags & 0x08000000))) { + if ((gBattleStatus.flags1 & BS_FLAGS1_8) || + (!(gBattleStatus.flags1 & BS_FLAGS1_4) && (player->flags & ACTOR_FLAG_8000000))) + { effect = battleStatus->cloudNineEffect; effect->data.endingDecals->pos.x = playerPosX; effect->data.endingDecals->pos.y = playerPosY; @@ -1402,11 +1412,13 @@ void appendGfx_player_actor(void* arg0) { effect->data.endingDecals->pos.z = playerPosZ; } } - if (player->debuff == 7) { + if (player->debuff == STATUS_FROZEN) { effect = player->icePillarEffect; if (player->icePillarEffect != NULL) { - if ((gBattleStatus.flags1 & 8) || (!(gBattleStatus.flags1 & 4) && (player->flags & 0x08000000))) { - effect->data.icePillar->pos.x = (f32) (playerPosX - 8.0f); + if ((gBattleStatus.flags1 & BS_FLAGS1_8) || + (!(gBattleStatus.flags1 & BS_FLAGS1_4) && (player->flags & ACTOR_FLAG_8000000))) + { + effect->data.icePillar->pos.x = playerPosX - 8.0f; effect->data.icePillar->pos.y = playerPosY; effect->data.icePillar->pos.z = playerPosZ; effect->data.icePillar->unk_20 = player->size.y / 24.0; @@ -1415,6 +1427,10 @@ void appendGfx_player_actor(void* arg0) { effect->data.icePillar->pos.y = -1000.0f; effect->data.icePillar->pos.z = 0.0f; } + } else { + effect->data.icePillar->pos.x = 0.0f; + effect->data.icePillar->pos.y = -1000.0f; + effect->data.icePillar->pos.z = 0.0f; } } else { effect = player->icePillarEffect; @@ -1423,20 +1439,22 @@ void appendGfx_player_actor(void* arg0) { player->icePillarEffect = NULL; } } - if (!(gBattleStatus.flags2 & 0x10000) && !(gBattleStatus.flags1 & 4) && (player->flags & 0x08000000)) { + + if (!(gBattleStatus.flags2 & BS_FLAGS2_10000) && !(gBattleStatus.flags1 & BS_FLAGS1_4) && (player->flags & ACTOR_FLAG_8000000)) { battleStatus->buffEffect->data.partnerBuff->unk_02 = 1; } else { battleStatus->buffEffect->data.partnerBuff->unk_02 = 0; } + do { - if (player->debuff == 0xA) { - player->scalingFactor += ((0.4 - player->scalingFactor) / 6.0); + if (player->debuff == STATUS_SHRINK) { + player->scalingFactor += (0.4 - player->scalingFactor) / 6.0; } else { - player->scalingFactor += ((1.0 - player->scalingFactor) / 6.0); + player->scalingFactor += (1.0 - player->scalingFactor) / 6.0; } } while (0); // required to match - if (player->flags & 0x08000000) { + if (player->flags & ACTOR_FLAG_8000000) { if (battleStatus->hammerCharge > 0) { create_status_icon_boost_hammer(player->hudElementDataIndex); remove_status_icon_boost_jump(player->hudElementDataIndex); @@ -1454,15 +1472,17 @@ void appendGfx_player_actor(void* arg0) { enable_status_icon_boost_hammer(player->hudElementDataIndex); } - if ((player->flags & 0x08000000) && !(gBattleStatus.flags2 & 0x40)) { + if ((player->flags & ACTOR_FLAG_8000000) && !(gBattleStatus.flags2 & BS_FLAGS2_40)) { if (playerData->curHP > 1) { remove_status_icon_peril(player->hudElementDataIndex); - if (playerData->curHP > 5) { - remove_status_icon_danger(player->hudElementDataIndex); - } else { - create_status_icon_danger(player->hudElementDataIndex); - remove_status_icon_peril(player->hudElementDataIndex); - } + do { + if (playerData->curHP <= 5) { + create_status_icon_danger(player->hudElementDataIndex); + remove_status_icon_peril(player->hudElementDataIndex); + } else { + remove_status_icon_danger(player->hudElementDataIndex); + } + } while (0); // required to match } else { create_status_icon_peril(player->hudElementDataIndex); remove_status_icon_danger(player->hudElementDataIndex); @@ -1473,9 +1493,16 @@ void appendGfx_player_actor(void* arg0) { } if (player->transparentStatus == 0xE) { - playerParts->flags |= 0x100; + playerParts->flags |= ACTOR_PART_FLAG_100; + + if (FALSE) { // TODO required to match - also whyyyyyy compiler, whyyyyy + back: + playerParts->currentAnimation = func_80265D44(8); + create_status_debuff(player->hudElementDataIndex, 8); + goto end; + } } else { - playerParts->flags &= ~0x100; + playerParts->flags &= ~ACTOR_PART_FLAG_100; } do { @@ -1486,10 +1513,20 @@ void appendGfx_player_actor(void* arg0) { lastAnim = playerParts->currentAnimation; } while (0); // required to match - if (((((gBattleStatus.flags2 & 0xA) == 2) && (partner != NULL)) || (gBattleStatus.outtaSightActive > 0)) && !(player->flags & 0x20000000) && ((partner == NULL) || !(partner->flags & 0x200000))) { - if (!(gBattleStatus.flags2 & 0x100000)) { - if ((player->debuff != 3) && (player->debuff != 5) && (player->debuff != 7) && (player->debuff != 8)) { - if ((player->transparentStatus != 0xE) && (player->stoneStatus != 0xC) && ((gBattleStatus.outtaSightActive > 0) || (gBattleStatus.flags2 & 2))) { + if (((((gBattleStatus.flags2 & (BS_FLAGS2_8 | BS_FLAGS2_2)) == BS_FLAGS2_2) && (partner != NULL)) || (battleStatus->outtaSightActive > 0)) && + !(player->flags & ACTOR_FLAG_20000000) && + ((partner == NULL) || !(partner->flags & ACTOR_FLAG_NO_ATTACK))) + { + if (!(gBattleStatus.flags2 & BS_FLAGS2_100000)) { + if ((player->debuff != STATUS_FEAR) && + (player->debuff != STATUS_PARALYZE) && + (player->debuff != STATUS_FROZEN) && + (player->debuff != STATUS_STOP)) + { + if ((player->transparentStatus != STATUS_TRANSPARENT) && + (player->stoneStatus != STATUS_STONE) && + ((battleStatus->outtaSightActive > 0) || (gBattleStatus.flags2 & BS_FLAGS2_2))) + { if (is_ability_active(0x15)) { playerParts->currentAnimation = func_80265D44(0x13); } else if (player->debuff == 6) { @@ -1499,12 +1536,12 @@ void appendGfx_player_actor(void* arg0) { } else { playerParts->currentAnimation = func_80265D44(0x12); } - spr_update_player_sprite(0, (s32) playerParts->currentAnimation, playerParts->animationRate); + spr_update_player_sprite(0, playerParts->currentAnimation, playerParts->animationRate); cond1 = TRUE; } } - if (player->debuff != 9) { + if (player->debuff != STATUS_POISON) { func_80266DAC(player, 0xC); } else { func_80266DAC(player, 0xD); @@ -1515,79 +1552,80 @@ void appendGfx_player_actor(void* arg0) { cond3 = TRUE; } } - if (player->stoneStatus == 0xC) { + + if (player->stoneStatus == STATUS_STONE) { playerParts->currentAnimation = func_80265D44(0xC); spr_update_player_sprite(0, playerParts->currentAnimation, playerParts->animationRate); cond1 = TRUE; - if (cond2 == 0) { + if (!cond2) { func_80266DAC(player, 0); } func_80266EE8(player, 0); - cond2 = 1; + cond2 = TRUE; enable_status_debuff(player->hudElementDataIndex); - cond3 = 1; + cond3 = TRUE; enable_status_2(player->hudElementDataIndex); - cond4 = 1; + cond4 = TRUE; enable_status_transparent(player->hudElementDataIndex); enable_status_chill_out(player->hudElementDataIndex); } - if ((player->flags & 0x04000000) && (cond1 == 0)) { + if ((player->flags & ACTOR_FLAG_4000000) && !cond1) { s32 temp = playerParts->currentAnimation; if (temp == func_80265D44(0xC)) { playerParts->currentAnimation = func_80265D44(1); } } - if (is_ability_active(0x15) != 0) { - if (cond2 == 0) { + if (is_ability_active(ABILITY_BERSERKER)) { + if (!cond2) { func_80266DAC(player, 8); } - cond2 = 1; + cond2 = TRUE; } - if (player->debuff == 9) { - if (cond2 == 0) { + if (player->debuff == STATUS_POISON) { + if (!cond2) { func_80266DAC(player, 6); } - cond2 = 1; + cond2 = TRUE; } - if (player->debuff == 5) { - if (cond2 == 0) { + if (player->debuff == STATUS_PARALYZE) { + if (!cond2) { func_80266DAC(player, 7); } - cond2 = 1; + cond2 = TRUE; } - if (player->staticStatus == 0xB) { - if (cond2 == 0) { + if (player->staticStatus == STATUS_STATIC) { + if (!cond2) { func_80266DAC(player, 4); } - cond2 = 1; + cond2 = TRUE; } if (battleStatus->turboChargeTurnsLeft != 0) { - if (cond3 == 0) { + if (!cond3) { func_80266EE8(player, 0xB); } - cond3 = 1; + cond3 = TRUE; } - if (is_ability_active(0x13) != 0) { - if (cond2 == 0) { + if (is_ability_active(ABILITY_ZAP_TAP)) { + if (!cond2) { func_80266DAC(player, 4); } - cond2 = 1; + cond2 = TRUE; } - if (cond2 == 0) { + if (!cond2) { func_80266DAC(player, 0); } - if (cond3 == 0) { + if (!cond3) { func_80266EE8(player, 0); } - if (player->flags & 0x04000000) { + if (player->flags & ACTOR_FLAG_4000000) { if (battleStatus->hustleTurns != 0) { playerParts->currentAnimation = func_80265D44(0x19); - cond1 = 1; - } else if (cond1 == 0) { + cond1 = TRUE; + } else if (!cond1) { s32 temp = func_80265D44(1); do { if (temp == func_80265D44(0x19)) { @@ -1597,87 +1635,88 @@ void appendGfx_player_actor(void* arg0) { } do { - if (player->debuff == 7) { + if (player->debuff == STATUS_FROZEN) { if (!cond1) { playerParts->currentAnimation = func_80265D44(7); - cond1 = 1; + cond1 = TRUE; } } else if (player->debuff != STATUS_SHRINK) { - if (player->debuff == 9) { + if (player->debuff == STATUS_POISON) { if (!cond1) { playerParts->currentAnimation = func_80265D44(9); - cond1 = 1; + cond1 = TRUE; } - } else if (player->debuff == 4) { + } else if (player->debuff == STATUS_DIZZY) { if (!cond1) { playerParts->currentAnimation = func_80265D44(4); - cond1 = 1; + cond1 = TRUE; } - } else if (player->debuff == 6) { + } else if (player->debuff == STATUS_SLEEP) { if (!cond1) { playerParts->currentAnimation = func_80265D44(6); - cond1 = 1; + cond1 = TRUE; } - } else if (player->debuff == 5) { + } else if (player->debuff == STATUS_PARALYZE) { if (!cond1) { playerParts->currentAnimation = func_80265D44(5); - cond1 = 1; + cond1 = TRUE; } } else { - if (player_team_is_ability_active(player, 0x15) != 0) { - if (cond1 == 0) { + if (player_team_is_ability_active(player, ABILITY_BERSERKER)) { + if (!cond1) { playerParts->currentAnimation = func_80265D44(0x10); - cond1 = 1; + cond1 = TRUE; } } } } - if (is_ability_active(0x13) != 0) { - if (cond1 == 0) { + if (is_ability_active(ABILITY_ZAP_TAP)) { + if (!cond1) { playerParts->currentAnimation = func_80265D44(0xB); - cond1 = 1; + cond1 = TRUE; } - player->staticStatus = 0xB; - player->staticDuration = 0x7F; - } else if ((player->staticStatus == (s8) 0xB) && (cond1 == 0)) { + player->staticStatus = STATUS_STATIC; + player->staticDuration = 127; + } else if ((player->staticStatus == STATUS_STATIC) && !cond1) { playerParts->currentAnimation = func_80265D44(0xB); - cond1 = 1; + cond1 = TRUE; } - if ((player->transparentStatus == 0xE) || (playerParts->flags & 0x100)) { - if (cond1 == 0) { + if ((player->transparentStatus == STATUS_TRANSPARENT) || (playerParts->flags & ACTOR_PART_FLAG_100)) { + if (!cond1) { playerParts->currentAnimation = func_80265D44(0xE); - cond1 = 1; + cond1 = TRUE; } - create_status_transparent((s32) player->hudElementDataIndex, 0xE); + create_status_transparent(player->hudElementDataIndex, 0xE); } - if (cond1 == 0) { + if (!cond1) { playerParts->currentAnimation = func_80265D44(1); } } while(0); // needed to match } - if (!(gBattleStatus.flags1 & 4) && (player->flags & 0x08000000)) { - if (cond4 == 0) { + + if (!(gBattleStatus.flags1 & BS_FLAGS1_4) && (player->flags & ACTOR_FLAG_8000000)) { + if (!cond4) { do { - if (player->debuff == 0x9) { + if (player->debuff == STATUS_POISON) { create_status_debuff(player->hudElementDataIndex, player->debuff); - } else if (player->debuff == 6) { + } else if (player->debuff == STATUS_SLEEP) { create_status_debuff(player->hudElementDataIndex, player->debuff); - } else if (player->debuff == 5) { + } else if (player->debuff == STATUS_PARALYZE) { create_status_debuff(player->hudElementDataIndex, player->debuff); - } else if (player->debuff == 4) { + } else if (player->debuff == STATUS_DIZZY) { create_status_debuff(player->hudElementDataIndex, player->debuff); - } else if (player->debuff == 10) { + } else if (player->debuff == STATUS_SHRINK) { create_status_debuff(player->hudElementDataIndex, player->debuff); - } else if (player->debuff == 7) { + } else if (player->debuff == STATUS_FROZEN) { create_status_debuff(player->hudElementDataIndex, player->debuff); } } while (0); // required to match - if ((cond4 == 0) && ((is_ability_active(0x13) != 0) || (player->staticStatus == 0xB))) { - create_status_static((s32) player->hudElementDataIndex, 0xB); + if (!cond4 && (is_ability_active(ABILITY_ZAP_TAP) || (player->staticStatus == STATUS_STATIC))) { + create_status_static(player->hudElementDataIndex, 0xB); } } - if ((player->transparentStatus == 0xE) || (playerParts->flags & 0x100)) { - create_status_transparent((s32) player->hudElementDataIndex, 0xE); + if ((player->transparentStatus == STATUS_TRANSPARENT) || (playerParts->flags & ACTOR_PART_FLAG_100)) { + create_status_transparent(player->hudElementDataIndex, 0xE); } } else { enable_status_debuff(player->hudElementDataIndex); @@ -1686,18 +1725,18 @@ void appendGfx_player_actor(void* arg0) { enable_status_chill_out(player->hudElementDataIndex); } - if (player->debuff != 8) { - if (cond1 == 0) { + if (player->debuff != STATUS_STOP) { + if (!cond1) { s32 temp = playerParts->currentAnimation; if (temp == func_80265D44(8)) { playerParts->currentAnimation = func_80265D44(1); } } } else { - playerParts->currentAnimation = func_80265D44(8); - create_status_debuff(player->hudElementDataIndex, 8); + goto back; } - + +end: set_status_icons_properties(player->hudElementDataIndex, playerPosX, playerPosY, playerPosZ, player->actorBlueprint->statusIconOffset.x * player->scalingFactor, @@ -1708,13 +1747,13 @@ void appendGfx_player_actor(void* arg0) { player->size.y * player->scalingFactor, player->size.x * player->scalingFactor); - dx = playerPosX + playerParts->unkOffset[0]; - dy = playerPosY + playerParts->unkOffset[1]; - dz = playerPosZ; - playerParts->currentPos.x = dx; - playerParts->currentPos.y = dy; - playerParts->currentPos.z = dz; - guTranslateF(mtxTranslate, dx, dy, dz); + playerPosX += playerParts->unkOffset[0]; + playerPosY += playerParts->unkOffset[1]; + + playerParts->currentPos.x = playerPosX; + playerParts->currentPos.y = playerPosY; + playerParts->currentPos.z = playerPosZ; + guTranslateF(mtxTranslate, playerPosX, playerPosY, playerPosZ); guTranslateF(mtxPivotOn, -player->rotationPivotOffset.x * player->scalingFactor, @@ -1749,9 +1788,6 @@ void appendGfx_player_actor(void* arg0) { func_802591EC(0, playerParts, clamp_angle(playerYaw + 180.0f), mtxTransform, 0); _add_part_decoration(playerParts); } -#else -INCLUDE_ASM(void, "182B30", appendGfx_player_actor); -#endif void func_80258E14(void* arg0) { Matrix4f mtxRotX, mtxRotY, mtxRotZ, mtxRotation, mtxScale; @@ -1924,7 +1960,7 @@ void func_8025950C(ActorPart* part, s32 yaw, Matrix4f mtx) { if (decor->unk_768 != 0) { decor->spritePalettes = spr_get_npc_palettes(part->currentAnimation >> 0x10); decor->numSpritePalettes = 0; - while ((s32) decor->spritePalettes[decor->numSpritePalettes] != -1) { + while (decor->spritePalettes[decor->numSpritePalettes] != (PAL_PTR) -1) { decor->numSpritePalettes++; } @@ -1994,7 +2030,7 @@ void func_802597B0(ActorPart* part, s32 yaw, Matrix4f mtx) { decor->spritePalettes = spr_get_player_palettes(part->currentAnimation >> 16); decor->numSpritePalettes = 0; - while ((s32) decor->spritePalettes[decor->numSpritePalettes] != -1) { + while (decor->spritePalettes[decor->numSpritePalettes] != (PAL_PTR) -1) { decor->numSpritePalettes++; } @@ -3002,7 +3038,6 @@ void func_8025BAA0(s32 arg0, ActorPart* part, s32 yaw, s32 arg3, Matrix4f mtx, s } void func_8025C120(s32 arg0, ActorPart* part, s32 yaw, Matrix4f mtx, s32 arg4) { - DecorationTable* decor = part->decorationTable; PAL_PTR color1; PAL_PTR color2; @@ -3016,13 +3051,13 @@ void func_8025C120(s32 arg0, ActorPart* part, s32 yaw, Matrix4f mtx, s32 arg4) { if (arg0 == 0) { decor->spritePalettes = spr_get_player_palettes(part->currentAnimation >> 16); decor->numSpritePalettes = 0; - while ((s32) decor->spritePalettes[decor->numSpritePalettes] != -1) { + while (decor->spritePalettes[decor->numSpritePalettes] != (PAL_PTR) -1) { decor->numSpritePalettes++; } } else { decor->spritePalettes = spr_get_npc_palettes(part->currentAnimation >> 16); decor->numSpritePalettes = 0; - while ((s32) decor->spritePalettes[decor->numSpritePalettes] != -1) { + while (decor->spritePalettes[decor->numSpritePalettes] != (PAL_PTR) -1) { decor->numSpritePalettes++; } decor->spriteColorVariations = spr_get_npc_color_variations(part->currentAnimation >> 16); diff --git a/src/main.c b/src/main.c index 8784b753de..f282ead5e0 100644 --- a/src/main.c +++ b/src/main.c @@ -25,14 +25,12 @@ extern s16 D_80073E08; extern s16 D_80073E0A; extern s32 D_80073E10[]; extern u16* D_8009A680; -extern OSViMode _osViModeNtscLan1; -extern OSViMode _osViModeMPalLan1; void boot_main(void) { #ifdef VERSION_JP if (osTvType == OS_TV_NTSC) { nuGfxDisplayOff(); - osViSetMode(&_osViModeNtscLan1); + osViSetMode(&osViModeNtscLan1); osViSetSpecialFeatures(OS_VI_GAMMA_OFF | OS_VI_GAMMA_DITHER_OFF | OS_VI_DIVOT_ON | OS_VI_DITHER_FILTER_ON); nuGfxDisplayOff(); } else { @@ -40,10 +38,10 @@ void boot_main(void) { } #else // VERSION_JP if (osTvType == OS_TV_NTSC) { - osViSetMode(&_osViModeNtscLan1); + osViSetMode(&osViModeNtscLan1); osViSetSpecialFeatures(OS_VI_GAMMA_OFF | OS_VI_GAMMA_DITHER_OFF | OS_VI_DIVOT_ON | OS_VI_DITHER_FILTER_ON); } else if (osTvType == OS_TV_MPAL) { - osViSetMode(&_osViModeMPalLan1); + osViSetMode(&osViModeMpalLan1); osViSetSpecialFeatures(OS_VI_GAMMA_OFF | OS_VI_GAMMA_DITHER_OFF | OS_VI_DIVOT_ON | OS_VI_DITHER_FILTER_ON); } else { PANIC(); diff --git a/src/os/contpfs.c b/src/os/contpfs.c index bd69786dd4..1e34c67adc 100644 --- a/src/os/contpfs.c +++ b/src/os/contpfs.c @@ -1,9 +1,9 @@ #include "PR/controller.h" #include "macros.h" -extern u8 __osPfsInodeCacheBank; -extern int __osPfsInodeCacheChannel; extern __OSInode __osPfsInodeCache; +s32 __osPfsInodeCacheChannel = -1; +u8 __osPfsInodeCacheBank = 250; u16 __osSumcalc(u8 *ptr, int length) { int i; diff --git a/src/os/contramread.c b/src/os/contramread.c index 3a7fbf1429..9ac9bd171b 100644 --- a/src/os/contramread.c +++ b/src/os/contramread.c @@ -2,7 +2,7 @@ #include "PR/osint.h" #include "PR/siint.h" -extern int __osPfsLastChannel; +s32 __osPfsLastChannel = -1; s32 __osContRamRead(OSMesgQueue *mq, int channel, u16 address, u8 *buffer) { s32 ret; diff --git a/src/os/guRotate.c b/src/os/guRotate.c index acff531d50..c8cf3a7d2c 100644 --- a/src/os/guRotate.c +++ b/src/os/guRotate.c @@ -3,8 +3,6 @@ f32 sin_rad(f32 x); f32 cos_rad(f32 x); -extern float D_800958C0; - void guRotateF(float mf[4][4], float a, float x, float y, float z) { static float dtor = 3.1415926 / 180.0; float sine; @@ -13,7 +11,7 @@ void guRotateF(float mf[4][4], float a, float x, float y, float z) { float xs, ys, zs; guNormalize(&x, &y, &z); - a *= D_800958C0; // change to dtor later? + a *= dtor; sine = sin_rad(a); cosine = cos_rad(a); t = 1.0f - cosine; diff --git a/src/os/initialize.c b/src/os/initialize.c index e3c750302f..bc8266d902 100644 --- a/src/os/initialize.c +++ b/src/os/initialize.c @@ -1,9 +1,108 @@ -#include "ultra64.h" #include "include_asm.h" +#include "PR/os_internal.h" +#include "PR/rcp.h" -INCLUDE_ASM(s32, "os/initialize", __createSpeedParam) +typedef struct +{ + /* 0x0 */ unsigned int inst1; + /* 0x4 */ unsigned int inst2; + /* 0x8 */ unsigned int inst3; + /* 0xC */ unsigned int inst4; +} __osExceptionVector; +extern __osExceptionVector __osExceptionPreamble; -INCLUDE_ASM(void, "os/initialize", __osInitialize_common, void); +extern OSPiHandle __Dom1SpeedParam; +extern OSPiHandle __Dom2SpeedParam; + +OSTime osClockRate = OS_CLOCK_RATE; +s32 osViClock = VI_NTSC_CLOCK; +u32 __osShutdown = 0; +u32 __OSGlobalIntMask = OS_IM_ALL; +#ifdef _FINALROM +extern u32 __osFinalrom; +#else +void* __printfunc = NULL; +u32 __kmc_pt_mode; +#endif + +s32 paddingmeowplol[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + +void __createSpeedParam(void) { + __Dom1SpeedParam.type = DEVICE_TYPE_INIT; + __Dom1SpeedParam.latency = IO_READ(PI_BSD_DOM1_LAT_REG); + __Dom1SpeedParam.pulse = IO_READ(PI_BSD_DOM1_PWD_REG); + __Dom1SpeedParam.pageSize = IO_READ(PI_BSD_DOM1_PGS_REG); + __Dom1SpeedParam.relDuration = IO_READ(PI_BSD_DOM1_RLS_REG); + + __Dom2SpeedParam.type = DEVICE_TYPE_INIT; + __Dom2SpeedParam.latency = IO_READ(PI_BSD_DOM2_LAT_REG); + __Dom2SpeedParam.pulse = IO_READ(PI_BSD_DOM2_PWD_REG); + __Dom2SpeedParam.pageSize = IO_READ(PI_BSD_DOM2_PGS_REG); + __Dom2SpeedParam.relDuration = IO_READ(PI_BSD_DOM2_RLS_REG); +} + +void __osInitialize_common() { + u32 pifdata; + +#ifdef _FINALROM + __osFinalrom = TRUE; +#endif + + __osSetSR(__osGetSR() | SR_CU1); //enable fpu + __osSetFpcCsr(FPCSR_FS | FPCSR_EV); //flush denorm to zero, enable invalid operation + __osSetWatchLo(0x4900000); + + while (__osSiRawReadIo(PIF_RAM_END - 3, &pifdata)) { //last byte of joychannel ram + ; + } + while (__osSiRawWriteIo(PIF_RAM_END - 3, pifdata | 8)) { + ; //todo: magic contant + } + *(__osExceptionVector *)UT_VEC = __osExceptionPreamble; + *(__osExceptionVector *)XUT_VEC = __osExceptionPreamble; + *(__osExceptionVector *)ECC_VEC = __osExceptionPreamble; + *(__osExceptionVector *)E_VEC = __osExceptionPreamble; + osWritebackDCache((void *)UT_VEC, E_VEC - UT_VEC + sizeof(__osExceptionVector)); + osInvalICache((void *)UT_VEC, E_VEC - UT_VEC + sizeof(__osExceptionVector)); + __createSpeedParam(); + osUnmapTLBAll(); + osMapTLBRdb(); + osClockRate = osClockRate * 3 / 4; + + if (osResetType == 0 ) { // cold reset + bzero(osAppNMIBuffer, OS_APP_NMI_BUFSIZE); + } + + if (osTvType == OS_TV_PAL) { + osViClock = VI_PAL_CLOCK; + } else if (osTvType == OS_TV_MPAL) { + osViClock = VI_MPAL_CLOCK; + } else { + osViClock = VI_NTSC_CLOCK; + } + + // Wait until there are no RCP interrupts + if (__osGetCause() & CAUSE_IP5) { + while (TRUE) { + ; + } + } + + IO_WRITE(AI_CONTROL_REG, AI_CONTROL_DMA_ON); + IO_WRITE(AI_DACRATE_REG, AI_MAX_DAC_RATE - 1); + IO_WRITE(AI_BITRATE_REG, AI_MAX_BIT_RATE - 1); +} void __osInitialize_autodetect(void) { +#ifndef _FINALROM + if (__checkHardware_msp()) { + __osInitialize_msp(); + } else if (__checkHardware_kmc()) { + __osInitialize_kmc(); + } else if (__checkHardware_isv()) { + __osInitialize_isv(); + } else { + __osInitialize_emu(); + } +#endif } diff --git a/src/os/nusys/nuContMgr.c b/src/os/nusys/nuContMgr.c index 16bf6cf19c..ddd0294658 100644 --- a/src/os/nusys/nuContMgr.c +++ b/src/os/nusys/nuContMgr.c @@ -24,10 +24,9 @@ NUCallBackList nuContCallBack = { 0, }; -// BSS -extern OSMesg nuContWaitMesgBuf; -extern OSMesg nuContDataMutexBuf; -extern OSMesgQueue nuContDataMutexQ; +OSMesg nuContWaitMesgBuf; +OSMesg nuContDataMutexBuf; +OSMesgQueue nuContDataMutexQ; u8 nuContMgrInit(void) { s32 i; diff --git a/src/os/sprintf.c b/src/os/sprintf.c index 58a96cb204..fe711a5ebf 100644 --- a/src/os/sprintf.c +++ b/src/os/sprintf.c @@ -1,5 +1,5 @@ #include "ultra64.h" -#include "xstdio.h" +#include "libc/xstdio.h" static char *proutSprintf(char *dst, const char *src, size_t count); diff --git a/src/os/vi.c b/src/os/vi.c index 56a207afb7..bd909455f9 100644 --- a/src/os/vi.c +++ b/src/os/vi.c @@ -1,4 +1,49 @@ #include "ultra64.h" #include "include_asm.h" +#include "macros.h" +#include "PR/os_internal.h" +#include "PR/R4300.h" +#include "PR/rcp.h" +#include "PR/viint.h" -INCLUDE_ASM(s32, "os/vi", __osViInit); +static __OSViContext vi[2] ALIGNED(8) = {{0}, {0}}; +__OSViContext *__osViCurr = &vi[0]; +__OSViContext *__osViNext = &vi[1]; + +s32 meowp12345[] = {0, 0}; + +OSViMode osViModePalLan1 = { + 0x10, + { 0x0000311E, 0x00000140, 0x04541E3A, 0x00000271, 0x00170C69, 0x0C6F0C6D, 0x00800300, 0x00000200, 0x00000000 }, + { + { 0x00000280, 0x00000400, 0x005F0239, 0x0009026B, 0x00000002 }, + { 0x00000280, 0x00000400, 0x005F0239, 0x0009026B, 0x00000002 } + } +}; + +void __osViInit(void) { + bzero(vi, sizeof(vi)); + __osViCurr = &vi[0]; + __osViNext = &vi[1]; + __osViNext->retraceCount = 1; + __osViCurr->retraceCount = 1; + __osViNext->framep = (void*)K0BASE; + __osViCurr->framep = (void*)K0BASE; + + if (osTvType == OS_TV_TYPE_PAL) { + __osViNext->modep = &osViModePalLan1; + } else if (osTvType == OS_TV_TYPE_MPAL) { + __osViNext->modep = &osViModeMpalLan1; + } else { + __osViNext->modep = &osViModeNtscLan1; + } + + __osViNext->state = VI_STATE_BLACK; + __osViNext->control = __osViNext->modep->comRegs.ctrl; + + while (IO_READ(VI_CURRENT_REG) > 10) { //wait for vsync? + } + + IO_WRITE(VI_CONTROL_REG, 0); //pixel size blank (no data, no sync) + __osViSwapContext(); +} diff --git a/src/os/vitbl.c b/src/os/vitbl.c index 19d0d87051..49973e14b0 100644 --- a/src/os/vitbl.c +++ b/src/os/vitbl.c @@ -1740,3 +1740,9 @@ OSViMode osViModeTable[56] = { } } }; + +// TODO move into separate files and define properly + +OSViMode osViModeNtscLan1 = { 0x02, { 0x0000311E, 0x00000140, 0x03E52239, 0x0000020D, 0x00000C15, 0x0C150C15, 0x006C02EC, 0x00000200, 0x00000000 }, { { 0x00000280, 0x00000400, 0x002501FF, 0x000E0204, 0x00000002 }, { 0x00000280, 0x00000400, 0x002501FF, 0x000E0204, 0x00000002 } } }; + +OSViMode osViModeMpalLan1 = { 0x1E, { 0x0000311E, 0x00000140, 0x04651E39, 0x0000020D, 0x00040C11, 0x0C190C1A, 0x006C02EC, 0x00000200, 0x00000000 }, { { 0x00000280, 0x00000400, 0x002501FF, 0x000E0204, 0x00000002 }, { 0x00000280, 0x00000400, 0x002501FF, 0x000E0204, 0x00000002 } } }; diff --git a/src/os/xldtob.c b/src/os/xldtob.c index 15326ba92d..560b69d3d3 100644 --- a/src/os/xldtob.c +++ b/src/os/xldtob.c @@ -1,8 +1,305 @@ -#include "ultra64.h" -#include "include_asm.h" +#include "gcc/stdlib.h" +#include "gcc/string.h" +#include "libc/xstdio.h" -INCLUDE_ASM(s32, "os/xldtob", _Ldtob); +#define BUFF_LEN 0x20 -INCLUDE_ASM(s32, "os/xldtob", _Ldunscale); +static s16 _Ldunscale(s16* pex, _Pft* px); +static void _Genld(_Pft* px, char code, u8* p, s16 nsig, s16 xexp); -INCLUDE_ASM(s32, "os/xldtob", _Genld); +static const double pows[] = {10e0L, 10e1L, 10e3L, 10e7L, 10e15L, 10e31L, 10e63L, 10e127L, 10e255L}; + +// float properties +#define _D0 0 +#define _DBIAS 0x3ff +#define _DLONG 1 +#define _DOFF 4 +#define _FBIAS 0x7e +#define _FOFF 7 +#define _FRND 1 +#define _LBIAS 0x3ffe +#define _LOFF 15 +// integer properties +#define _C2 1 +#define _CSIGN 1 +#define _ILONG 0 +#define _MBMAX 8 +#define NAN 2 +#define INF 1 +#define FINITE -1 +#define _DFRAC ((1 << _DOFF) - 1) +#define _DMASK (0x7fff & ~_DFRAC) +#define _DMAX ((1 << (15 - _DOFF)) - 1) +#define _DNAN (0x8000 | _DMAX << _DOFF | 1 << (_DOFF - 1)) +#define _DSIGN 0x8000 +#define _D1 1 // big-endian order +#define _D2 2 +#define _D3 3 + +#define ALIGN(s, align) (((u32)(s) + ((align)-1)) & ~((align)-1)) + +void _Ldtob(_Pft* px, char code) { + char buff[BUFF_LEN]; + char *p; + f64 ldval; + s16 err; + s16 nsig; + s16 xexp; + + // char unused[0x4]; + p = buff; + ldval = px->v.ld; + + if (px->prec < 0) { + px->prec = 6; + } else if (px->prec == 0 && (code == 'g' || code == 'G')) { + px->prec = 1; + } + + err = _Ldunscale(&xexp, px); + if (err > 0) { + memcpy(px->s, err == 2 ? "NaN" : "Inf", px->n1 = 3); + return; + } else if (err == 0) { + nsig = 0; + xexp = 0; + } else { + int i; + int n; + + if (ldval < 0) { + ldval = -ldval; + } + + // what + if ((xexp = xexp * 30103 / 100000 - 4) < 0) { + n = ALIGN(-xexp, 4), xexp = -n; + + for (i = 0; n > 0; n >>= 1, i++) { + if (n & 1) { + ldval *= pows[i]; + } + } + } else if (xexp > 0) { + f64 factor = 1; + + xexp &= ~3; + + for (n = xexp, i = 0; n > 0; n >>= 1, i++) { + if (n & 1) { + factor *= pows[i]; + } + } + + ldval /= factor; + } + { + int gen = px->prec + ((code == 'f') ? 10 + xexp : 6); + + if (gen > 0x13) { + gen = 0x13; + } + + for (*p++ = '0'; gen > 0 && 0 < ldval; p += 8) { + int j; + int lo = ldval; + + if ((gen -= 8) > 0) { + ldval = (ldval - lo) * 1e8; + } + + for (p += 8, j = 8; lo > 0 && --j >= 0;) { + ldiv_t qr = ldiv(lo, 10); + *--p = qr.rem + '0', lo = qr.quot; + } + + while (--j >= 0) { + *--p = '0'; + } + } + + gen = p - &buff[1]; + + for (p = &buff[1], xexp += 7; *p == '0'; p++) { + --gen, --xexp; + } + + nsig = px->prec + ((code == 'f') ? xexp + 1 : ((code == 'e' || code == 'E') ? 1 : 0)); + + if (gen < nsig) { + nsig = gen; + } + + if (nsig > 0) { + char drop = nsig < gen && '5' <= p[nsig] ? '9' : '0'; + int n; + + for (n = nsig; p[--n] == drop;) { + --nsig; + } + + if (drop == '9') { + ++p[n]; + } + + if (n < 0) { + --p, ++nsig, ++xexp; + } + } + } + } + + _Genld(px, code, p, nsig, xexp); +} + +s16 _Ldunscale(s16* pex, _Pft* px) { + u16* ps = (u16*) px; + s16 xchar = (ps[_D0] & _DMASK) >> _DOFF; + + + if (xchar == _DMAX) { + *pex = 0; + + return (ps[_D0] & _DFRAC) || ps[_D1] || ps[_D2] || ps[_D3] ? 2 : 1; + } else if (xchar > 0) { + ps[_D0] = (ps[_D0] & ~_DMASK) | 0x3FF0; + *pex = xchar - 0x3FE; + return -1; + } else if (xchar < 0) { + return 2; + } else { + *pex = 0; + return 0; + } +} + +void _Genld(_Pft* px, char code, u8* p, s16 nsig, s16 xexp) { + const unsigned char point = '.'; + + if (nsig <= 0) { + nsig = 1, p = "0"; // memes + } + + if (code == 'f' || (code == 'g' || code == 'G') && xexp >= -4 && xexp < px->prec) { + xexp += 1; + if (code != 'f') { + if (((px->flags & 8) == 0) && nsig < px->prec) { + px->prec = nsig; + } + + px->prec -= xexp; + if (px->prec < 0) { + px->prec = 0; + } + } + + if (xexp <= 0) { + px->s[px->n1++] = '0'; + + if (px->prec > 0 || (px->flags & 8)) { + px->s[px->n1++] = point; + } + + if (px->prec < -xexp) { + xexp = -px->prec; + } + + px->nz1 = -xexp; + px->prec += xexp; + + if (px->prec < nsig) { + nsig = px->prec; + } + + memcpy(&px->s[px->n1], p, px->n2 = nsig); // , memes (this one is insane) + px->nz2 = px->prec - nsig; + } else if (nsig < xexp) { + memcpy(&px->s[px->n1], p, nsig); + px->n1 += nsig; + px->nz1 = xexp - nsig; + if (px->prec > 0 || (px->flags & 8)) { + px->s[px->n1] = point; + px->n2 += 1; + } + + px->nz2 = px->prec; + } else { + memcpy(&px->s[px->n1], p, xexp); + px->n1 += xexp; + nsig -= xexp; + + if (px->prec > 0 || (px->flags & 8)) { + px->s[px->n1++] = point; + } + + if (px->prec < nsig) { + nsig = px->prec; + } + + memcpy(&px->s[px->n1], &p[xexp], nsig); + px->n1 += nsig; + px->nz1 = px->prec - nsig; + } + } else { + if (code == 'g' || code == 'G') { + if (nsig < px->prec) { + px->prec = nsig; + } + + if (--px->prec < 0) { + px->prec = 0; + } + + if (code == 'g') { + code = 'e'; + } else { + code = 'E'; + } + } + + px->s[px->n1++] = *p++; + + if (px->prec > 0 || (px->flags & 8)) { + px->s[px->n1++] = point; + } + + if (px->prec > 0) { + if (px->prec < --nsig) { + nsig = px->prec; + } + + memcpy(&px->s[px->n1], p, nsig); + px->n1 += nsig; + px->nz1 = px->prec - nsig; + } + + p = &px->s[px->n1]; + *p++ = code; + + if (xexp >= 0) { + *p++ = '+'; + } else { + *p++ = '-'; + xexp = -xexp; + } + + if (xexp >= 100) { + if (xexp >= 1000) { + *p++ = (xexp / 1000) + '0', xexp %= 1000; // , memes + } + *p++ = (xexp / 100) + '0', xexp %= 100; // , memes + } + *p++ = (xexp / 10) + '0', xexp %= 10; // , memes + + *p++ = xexp + '0'; + px->n2 = (size_t)p - ((size_t)px->s + px->n1); + } + + if ((px->flags & 0x14) == 0x10) { + s32 n = px->n0 + px->n1 + px->nz1 + px->n2 + px->nz2; + + if (n < px->width) { + px->nz0 = px->width - n; + } + } +} diff --git a/src/os/xlitob.c b/src/os/xlitob.c index 5150ec5bbe..1dda46497e 100644 --- a/src/os/xlitob.c +++ b/src/os/xlitob.c @@ -1,4 +1,59 @@ -#include "ultra64.h" -#include "include_asm.h" +#include "gcc/stdlib.h" +#include "gcc/string.h" +#include "libc/xstdio.h" -INCLUDE_ASM(s32, "os/xlitob", _Litob); +#define BUFF_LEN 0x18 + +static char ldigs[] = "0123456789abcdef"; +static char udigs[] = "0123456789ABCDEF"; + +void _Litob(_Pft *args, char type) { + char buff[BUFF_LEN]; + const char *digs; + s32 base; + s32 i; + unsigned long long ullval; + + if (type == 'X') { + digs = udigs; + } else { + digs = ldigs; + } + + base = (type == 'o') ? 8 : ((type != 'x' && type != 'X') ? 10 : 16); + i = BUFF_LEN; + ullval = args->v.ll; + + if ((type == 'd' || type == 'i') && args->v.ll < 0) { + ullval = -ullval; + } + + if (ullval != 0 || args->prec != 0) { + buff[--i] = digs[ullval % base]; + } + + args->v.ll = ullval / base; + + while (args->v.ll > 0 && i > 0) { + lldiv_t qr = lldiv(args->v.ll, base); + + args->v.ll = qr.quot; + buff[--i] = digs[qr.rem]; + } + + args->n1 = BUFF_LEN - i; + + memcpy(args->s, buff + i, args->n1); + + if (args->n1 < args->prec) { + args->nz0 = args->prec - args->n1; + } + + if (args->prec < 0 && (args->flags & (FLAGS_ZERO | FLAGS_MINUS)) == FLAGS_ZERO) { + i = args->width - args->n0 - args->nz0 - args->n1; + + if (i > 0) { + args->nz0 += i; + } + } +} diff --git a/src/os/xprintf.c b/src/os/xprintf.c index 8ebc6abcb2..cfe5aee2c0 100644 --- a/src/os/xprintf.c +++ b/src/os/xprintf.c @@ -1,5 +1,5 @@ #include "stdlib/stdarg.h" -#include "xstdio.h" +#include "libc/xstdio.h" #include "gcc/string.h" #define isdigit(x) ((x >= '0' && x <= '9')) @@ -31,13 +31,8 @@ else \ return x.nchar; \ } - -char spaces[] = " "; -char zeroes[] = "00000000000000000000000000000000"; - -// INCLUDE_ASM(s32, "os/3FEA0", _Printf); - -// INCLUDE_ASM(s32, "os/3FEA0", _Putfld); +static char spaces[] = " "; +static char zeroes[] = "00000000000000000000000000000000"; static void _Putfld(_Pft *pf, va_list *pap, char code, char *ac); @@ -49,7 +44,7 @@ int _Printf(outfun prout, char *arg, const char *fmt, va_list args) { static const char fchar[] = {' ', '+', '-', '#', '0', '\0'}; static const int fbit[] = {FLAGS_SPACE, FLAGS_PLUS, FLAGS_MINUS, FLAGS_HASH, FLAGS_ZERO, 0}; char ac[32]; - + x.nchar = 0; for (;;) { @@ -58,15 +53,15 @@ int _Printf(outfun prout, char *arg, const char *fmt, va_list args) { for (c = *s; c != 0 && c != '%';) { c = *++s; } - + PUT(fmt, s - fmt); - + if (c == 0) { return x.nchar; } - + fmt = ++s; - + for (x.flags = 0; (t = strchr(fchar, *s)) != NULL; s++) { x.flags |= fbit[t - fchar]; } @@ -93,7 +88,7 @@ int _Printf(outfun prout, char *arg, const char *fmt, va_list args) { } x.qual = strchr("hlL", *s) ? *s++ : '\0'; - + if (x.qual == 'l' && *s == 'l') { x.qual = 'L'; ++s; @@ -101,22 +96,22 @@ int _Printf(outfun prout, char *arg, const char *fmt, va_list args) { _Putfld(&x, &args, *s, ac); x.width -= x.n0 + x.nz0 + x.n1 + x.nz1 + x.n2 + x.nz2; - + if (!(x.flags & FLAGS_MINUS)) { PAD(spaces, x.width); } - + PUT(ac, x.n0); PAD(zeroes, x.nz0); PUT(x.s, x.n1); PAD(zeroes, x.nz1); PUT(x.s + x.n1, x.n2); PAD(zeroes, x.nz2); - + if (x.flags & FLAGS_MINUS) { PAD(spaces, x.width); } - + fmt = s + 1; } return 0; @@ -224,11 +219,11 @@ static void _Putfld(_Pft *x, va_list *args, char type, char *buff) { case 's': x->s = va_arg(*args, char *); x->n1 = strlen(x->s); - + if (x->prec >= 0 && x->n1 > x->prec) { x->n1 = x->prec; } - + break; case '%': buff[x->n0++] = '%'; @@ -239,4 +234,4 @@ static void _Putfld(_Pft *x, va_list *args, char type, char *buff) { } } -static const f32 padding = 0.0f; +static const s32 padding[] = {0, 0}; diff --git a/ver/jp/undefined_syms.txt b/ver/jp/undefined_syms.txt index 76bc8d28d1..aadb8abde3 100644 --- a/ver/jp/undefined_syms.txt +++ b/ver/jp/undefined_syms.txt @@ -1 +1,2 @@ osTvType = 0x80000300; +osViModeNtscLan1 = 0x80095800; diff --git a/ver/us/asm/bss.s b/ver/us/asm/bss.s index 4a59350414..5f3eb9acf7 100644 --- a/ver/us/asm/bss.s +++ b/ver/us/asm/bss.s @@ -139,7 +139,7 @@ dlabel nuGfxCfb dlabel D_8009A65C .space 4 -dlabel D_8009A660 +dlabel __osFinalrom .space 4 dlabel gBGMPlayerA diff --git a/ver/us/asm/data/70C20.data.s b/ver/us/asm/data/70C20.data.s deleted file mode 100644 index a428904a5d..0000000000 --- a/ver/us/asm/data/70C20.data.s +++ /dev/null @@ -1,78 +0,0 @@ -.include "macro.inc" - -.section .data - -dlabel _osViModeNtscLan1 -.word 0x02000000, 0x0000311E, 0x00000140, 0x03E52239, 0x0000020D, 0x00000C15, 0x0C150C15, 0x006C02EC, 0x00000200, 0x00000000, 0x00000280, 0x00000400, 0x002501FF, 0x000E0204, 0x00000002, 0x00000280, 0x00000400, 0x002501FF, 0x000E0204, 0x00000002 - -dlabel _osViModeMPalLan1 -.word 0x1E000000, 0x0000311E, 0x00000140, 0x04651E39, 0x0000020D, 0x00040C11, 0x0C190C1A, 0x006C02EC, 0x00000200, 0x00000000, 0x00000280, 0x00000400, 0x002501FF, 0x000E0204, 0x00000002, 0x00000280, 0x00000400, 0x002501FF, 0x000E0204, 0x00000002 - -dlabel D_800958C0 -.float 0.017453292, 0.0, 0.0, 0.0 - -dlabel __osPfsInodeCacheChannel -.word 0xFFFFFFFF - -dlabel __osPfsInodeCacheBank -.byte 0xFA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - -dlabel __osPfsLastChannel -.word 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000 - -dlabel D_800958F0 -.word 0x00000000 - -dlabel D_800958F4 -.word 0x03B9ACA0 - -dlabel osViClock -.word 0x02E6D354 - -dlabel __osShutdown -.word 0x00000000 - -dlabel __OSGlobalIntMask -.word 0x003FFF01, 0x00000000, 0x00000000, 0x00000000 - -dlabel D_80095910 -.word 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - -dlabel D_80095938 -.word 0x00000000, 0x00000000 - -dlabel D_80095940 -.ascii "0123456789abcdef\0\0\0\0" - -dlabel D_80095954 -.ascii "0123456789ABCDEF\0\0\0\0\0\0\0\0\0\0\0\0" - -dlabel vi -.short 0x0000 - -dlabel D_80095972 -.short 0x0000 - -dlabel D_80095974 -.word 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - -dlabel D_800959A0 -.short 0x0000 - -dlabel D_800959A2 -.short 0x0000 - -dlabel D_800959A4 -.word 0x00000000 - -dlabel D_800959A8 -.word 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 - -dlabel __osViCurr -.word vi - -dlabel __osViNext -.word D_800959A0, 0x00000000, 0x00000000 - -dlabel D_800959E0 -.word 0x10000000, 0x0000311E, 0x00000140, 0x04541E3A, 0x00000271, 0x00170C69, 0x0C6F0C6D, 0x00800300, 0x00000200, 0x00000000, 0x00000280, 0x00000400, 0x005F0239, 0x0009026B, 0x00000002, 0x00000280, 0x00000400, 0x005F0239, 0x0009026B, 0x00000002 diff --git a/ver/us/asm/nonmatchings/182B30/appendGfx_player_actor.s b/ver/us/asm/nonmatchings/182B30/appendGfx_player_actor.s deleted file mode 100644 index 337fd3304a..0000000000 --- a/ver/us/asm/nonmatchings/182B30/appendGfx_player_actor.s +++ /dev/null @@ -1,1149 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.section .rodata - -dlabel D_8029D388 -.double 0.4 - -dlabel D_8029D390 -.double 0.7142857142857143 - -.section .text - -glabel appendGfx_player_actor -/* 186684 80257DA4 27BDFD18 */ addiu $sp, $sp, -0x2e8 -/* 186688 80257DA8 AFB402B0 */ sw $s4, 0x2b0($sp) -/* 18668C 80257DAC 3C14800E */ lui $s4, %hi(gBattleStatus) -/* 186690 80257DB0 2694C070 */ addiu $s4, $s4, %lo(gBattleStatus) -/* 186694 80257DB4 AFBF02C4 */ sw $ra, 0x2c4($sp) -/* 186698 80257DB8 AFBE02C0 */ sw $fp, 0x2c0($sp) -/* 18669C 80257DBC AFB702BC */ sw $s7, 0x2bc($sp) -/* 1866A0 80257DC0 AFB602B8 */ sw $s6, 0x2b8($sp) -/* 1866A4 80257DC4 AFB502B4 */ sw $s5, 0x2b4($sp) -/* 1866A8 80257DC8 AFB302AC */ sw $s3, 0x2ac($sp) -/* 1866AC 80257DCC AFB202A8 */ sw $s2, 0x2a8($sp) -/* 1866B0 80257DD0 AFB102A4 */ sw $s1, 0x2a4($sp) -/* 1866B4 80257DD4 AFB002A0 */ sw $s0, 0x2a0($sp) -/* 1866B8 80257DD8 F7BA02E0 */ sdc1 $f26, 0x2e0($sp) -/* 1866BC 80257DDC F7B802D8 */ sdc1 $f24, 0x2d8($sp) -/* 1866C0 80257DE0 F7B602D0 */ sdc1 $f22, 0x2d0($sp) -/* 1866C4 80257DE4 F7B402C8 */ sdc1 $f20, 0x2c8($sp) -/* 1866C8 80257DE8 8E9600D8 */ lw $s6, 0xd8($s4) -/* 1866CC 80257DEC 8E9000DC */ lw $s0, 0xdc($s4) -/* 1866D0 80257DF0 8ED701F4 */ lw $s7, 0x1f4($s6) -/* 1866D4 80257DF4 C6C8018C */ lwc1 $f8, 0x18c($s6) -/* 1866D8 80257DF8 86C40150 */ lh $a0, 0x150($s6) -/* 1866DC 80257DFC C6C60144 */ lwc1 $f6, 0x144($s6) -/* 1866E0 80257E00 86C50152 */ lh $a1, 0x152($s6) -/* 1866E4 80257E04 C6C40148 */ lwc1 $f4, 0x148($s6) -/* 1866E8 80257E08 82C6019A */ lb $a2, 0x19a($s6) -/* 1866EC 80257E0C 86C70154 */ lh $a3, 0x154($s6) -/* 1866F0 80257E10 C6CA014C */ lwc1 $f10, 0x14c($s6) -/* 1866F4 80257E14 E6E80064 */ swc1 $f8, 0x64($s7) -/* 1866F8 80257E18 8EC20008 */ lw $v0, 8($s6) -/* 1866FC 80257E1C 82C30194 */ lb $v1, 0x194($s6) -/* 186700 80257E20 80420024 */ lb $v0, 0x24($v0) -/* 186704 80257E24 C6C00188 */ lwc1 $f0, 0x188($s6) -/* 186708 80257E28 00431021 */ addu $v0, $v0, $v1 -/* 18670C 80257E2C 44821000 */ mtc1 $v0, $f2 -/* 186710 80257E30 00000000 */ nop -/* 186714 80257E34 468010A0 */ cvt.s.w $f2, $f2 -/* 186718 80257E38 46001082 */ mul.s $f2, $f2, $f0 -/* 18671C 80257E3C 00000000 */ nop -/* 186720 80257E40 44840000 */ mtc1 $a0, $f0 -/* 186724 80257E44 00000000 */ nop -/* 186728 80257E48 46800020 */ cvt.s.w $f0, $f0 -/* 18672C 80257E4C 46003500 */ add.s $f20, $f6, $f0 -/* 186730 80257E50 8EC20440 */ lw $v0, 0x440($s6) -/* 186734 80257E54 4602A080 */ add.s $f2, $f20, $f2 -/* 186738 80257E58 8C42000C */ lw $v0, 0xc($v0) -/* 18673C 80257E5C E4420008 */ swc1 $f2, 8($v0) -/* 186740 80257E60 8EC20008 */ lw $v0, 8($s6) -/* 186744 80257E64 82C30195 */ lb $v1, 0x195($s6) -/* 186748 80257E68 80420025 */ lb $v0, 0x25($v0) -/* 18674C 80257E6C C6C00188 */ lwc1 $f0, 0x188($s6) -/* 186750 80257E70 00431021 */ addu $v0, $v0, $v1 -/* 186754 80257E74 44821000 */ mtc1 $v0, $f2 -/* 186758 80257E78 00000000 */ nop -/* 18675C 80257E7C 468010A0 */ cvt.s.w $f2, $f2 -/* 186760 80257E80 46001082 */ mul.s $f2, $f2, $f0 -/* 186764 80257E84 00000000 */ nop -/* 186768 80257E88 44850000 */ mtc1 $a1, $f0 -/* 18676C 80257E8C 00000000 */ nop -/* 186770 80257E90 46800020 */ cvt.s.w $f0, $f0 -/* 186774 80257E94 46002100 */ add.s $f4, $f4, $f0 -/* 186778 80257E98 44860000 */ mtc1 $a2, $f0 -/* 18677C 80257E9C 00000000 */ nop -/* 186780 80257EA0 46800020 */ cvt.s.w $f0, $f0 -/* 186784 80257EA4 46002600 */ add.s $f24, $f4, $f0 -/* 186788 80257EA8 8EC20440 */ lw $v0, 0x440($s6) -/* 18678C 80257EAC 4602C080 */ add.s $f2, $f24, $f2 -/* 186790 80257EB0 8C42000C */ lw $v0, 0xc($v0) -/* 186794 80257EB4 44870000 */ mtc1 $a3, $f0 -/* 186798 80257EB8 00000000 */ nop -/* 18679C 80257EBC 46800020 */ cvt.s.w $f0, $f0 -/* 1867A0 80257EC0 E442000C */ swc1 $f2, 0xc($v0) -/* 1867A4 80257EC4 8EC20440 */ lw $v0, 0x440($s6) -/* 1867A8 80257EC8 46005580 */ add.s $f22, $f10, $f0 -/* 1867AC 80257ECC 8C42000C */ lw $v0, 0xc($v0) -/* 1867B0 80257ED0 3C118011 */ lui $s1, %hi(gPlayerData) -/* 1867B4 80257ED4 2631F290 */ addiu $s1, $s1, %lo(gPlayerData) -/* 1867B8 80257ED8 E4560010 */ swc1 $f22, 0x10($v0) -/* 1867BC 80257EDC 8E820000 */ lw $v0, ($s4) -/* 1867C0 80257EE0 30420004 */ andi $v0, $v0, 4 -/* 1867C4 80257EE4 1440001D */ bnez $v0, .L80257F5C -/* 1867C8 80257EE8 46004686 */ mov.s $f26, $f8 -/* 1867CC 80257EEC 8EC20000 */ lw $v0, ($s6) -/* 1867D0 80257EF0 3C030800 */ lui $v1, 0x800 -/* 1867D4 80257EF4 00431024 */ and $v0, $v0, $v1 -/* 1867D8 80257EF8 10400018 */ beqz $v0, .L80257F5C -/* 1867DC 80257EFC 00000000 */ nop -/* 1867E0 80257F00 82C2021D */ lb $v0, 0x21d($s6) -/* 1867E4 80257F04 92C4021D */ lbu $a0, 0x21d($s6) -/* 1867E8 80257F08 10400008 */ beqz $v0, .L80257F2C -/* 1867EC 80257F0C 2482FFFF */ addiu $v0, $a0, -1 -/* 1867F0 80257F10 8EC30440 */ lw $v1, 0x440($s6) -/* 1867F4 80257F14 3C01C47A */ lui $at, 0xc47a -/* 1867F8 80257F18 44810000 */ mtc1 $at, $f0 -/* 1867FC 80257F1C A2C2021D */ sb $v0, 0x21d($s6) -/* 186800 80257F20 8C62000C */ lw $v0, 0xc($v1) -/* 186804 80257F24 08095FDE */ j .L80257F78 -/* 186808 80257F28 E440000C */ swc1 $f0, 0xc($v0) -.L80257F2C: -/* 18680C 80257F2C C6C00188 */ lwc1 $f0, 0x188($s6) -/* 186810 80257F30 3C013FE8 */ lui $at, 0x3fe8 -/* 186814 80257F34 44811800 */ mtc1 $at, $f3 -/* 186818 80257F38 44801000 */ mtc1 $zero, $f2 -/* 18681C 80257F3C 46000021 */ cvt.d.s $f0, $f0 -/* 186820 80257F40 46220002 */ mul.d $f0, $f0, $f2 -/* 186824 80257F44 00000000 */ nop -/* 186828 80257F48 8EC20440 */ lw $v0, 0x440($s6) -/* 18682C 80257F4C 8C42000C */ lw $v0, 0xc($v0) -/* 186830 80257F50 46200020 */ cvt.s.d $f0, $f0 -/* 186834 80257F54 08095FDE */ j .L80257F78 -/* 186838 80257F58 E4400034 */ swc1 $f0, 0x34($v0) -.L80257F5C: -/* 18683C 80257F5C 8EC20440 */ lw $v0, 0x440($s6) -/* 186840 80257F60 3C01C47A */ lui $at, 0xc47a -/* 186844 80257F64 44810000 */ mtc1 $at, $f0 -/* 186848 80257F68 8C42000C */ lw $v0, 0xc($v0) -/* 18684C 80257F6C E440000C */ swc1 $f0, 0xc($v0) -/* 186850 80257F70 2402000A */ addiu $v0, $zero, 0xa -/* 186854 80257F74 A2C2021D */ sb $v0, 0x21d($s6) -.L80257F78: -/* 186858 80257F78 8282009D */ lb $v0, 0x9d($s4) -/* 18685C 80257F7C 1040001B */ beqz $v0, .L80257FEC -/* 186860 80257F80 00000000 */ nop -/* 186864 80257F84 3C03800E */ lui $v1, %hi(gBattleStatus) -/* 186868 80257F88 8C63C070 */ lw $v1, %lo(gBattleStatus)($v1) -/* 18686C 80257F8C 30620008 */ andi $v0, $v1, 8 -/* 186870 80257F90 14400007 */ bnez $v0, .L80257FB0 -/* 186874 80257F94 30620004 */ andi $v0, $v1, 4 -/* 186878 80257F98 1440000B */ bnez $v0, .L80257FC8 -/* 18687C 80257F9C 3C030800 */ lui $v1, 0x800 -/* 186880 80257FA0 8EC20000 */ lw $v0, ($s6) -/* 186884 80257FA4 00431024 */ and $v0, $v0, $v1 -/* 186888 80257FA8 10400007 */ beqz $v0, .L80257FC8 -/* 18688C 80257FAC 00000000 */ nop -.L80257FB0: -/* 186890 80257FB0 8E8400A0 */ lw $a0, 0xa0($s4) -/* 186894 80257FB4 8C82000C */ lw $v0, 0xc($a0) -/* 186898 80257FB8 E4540004 */ swc1 $f20, 4($v0) -/* 18689C 80257FBC 8C82000C */ lw $v0, 0xc($a0) -/* 1868A0 80257FC0 08095FF9 */ j .L80257FE4 -/* 1868A4 80257FC4 E4580008 */ swc1 $f24, 8($v0) -.L80257FC8: -/* 1868A8 80257FC8 8E8400A0 */ lw $a0, 0xa0($s4) -/* 1868AC 80257FCC 3C01C47A */ lui $at, 0xc47a -/* 1868B0 80257FD0 44810000 */ mtc1 $at, $f0 -/* 1868B4 80257FD4 8C82000C */ lw $v0, 0xc($a0) -/* 1868B8 80257FD8 E4540004 */ swc1 $f20, 4($v0) -/* 1868BC 80257FDC 8C82000C */ lw $v0, 0xc($a0) -/* 1868C0 80257FE0 E4400008 */ swc1 $f0, 8($v0) -.L80257FE4: -/* 1868C4 80257FE4 8C82000C */ lw $v0, 0xc($a0) -/* 1868C8 80257FE8 E456000C */ swc1 $f22, 0xc($v0) -.L80257FEC: -/* 1868CC 80257FEC 828200A4 */ lb $v0, 0xa4($s4) -/* 1868D0 80257FF0 10400020 */ beqz $v0, .L80258074 -/* 1868D4 80257FF4 00000000 */ nop -/* 1868D8 80257FF8 3C03800E */ lui $v1, %hi(gBattleStatus) -/* 1868DC 80257FFC 8C63C070 */ lw $v1, %lo(gBattleStatus)($v1) -/* 1868E0 80258000 30620008 */ andi $v0, $v1, 8 -/* 1868E4 80258004 14400007 */ bnez $v0, .L80258024 -/* 1868E8 80258008 30620004 */ andi $v0, $v1, 4 -/* 1868EC 8025800C 14400010 */ bnez $v0, .L80258050 -/* 1868F0 80258010 3C030800 */ lui $v1, 0x800 -/* 1868F4 80258014 8EC20000 */ lw $v0, ($s6) -/* 1868F8 80258018 00431024 */ and $v0, $v0, $v1 -/* 1868FC 8025801C 1040000C */ beqz $v0, .L80258050 -/* 186900 80258020 00000000 */ nop -.L80258024: -/* 186904 80258024 8E8400A8 */ lw $a0, 0xa8($s4) -/* 186908 80258028 8C82000C */ lw $v0, 0xc($a0) -/* 18690C 8025802C E4540004 */ swc1 $f20, 4($v0) -/* 186910 80258030 8C82000C */ lw $v0, 0xc($a0) -/* 186914 80258034 E4580008 */ swc1 $f24, 8($v0) -/* 186918 80258038 8C82000C */ lw $v0, 0xc($a0) -/* 18691C 8025803C E456000C */ swc1 $f22, 0xc($v0) -/* 186920 80258040 8C82000C */ lw $v0, 0xc($a0) -/* 186924 80258044 C6C00188 */ lwc1 $f0, 0x188($s6) -/* 186928 80258048 0809601D */ j .L80258074 -/* 18692C 8025804C E4400010 */ swc1 $f0, 0x10($v0) -.L80258050: -/* 186930 80258050 8E8400A8 */ lw $a0, 0xa8($s4) -/* 186934 80258054 3C01C47A */ lui $at, 0xc47a -/* 186938 80258058 44810000 */ mtc1 $at, $f0 -/* 18693C 8025805C 8C82000C */ lw $v0, 0xc($a0) -/* 186940 80258060 E4540004 */ swc1 $f20, 4($v0) -/* 186944 80258064 8C82000C */ lw $v0, 0xc($a0) -/* 186948 80258068 E4400008 */ swc1 $f0, 8($v0) -/* 18694C 8025806C 8C82000C */ lw $v0, 0xc($a0) -/* 186950 80258070 E456000C */ swc1 $f22, 0xc($v0) -.L80258074: -/* 186954 80258074 82C30210 */ lb $v1, 0x210($s6) -/* 186958 80258078 24020007 */ addiu $v0, $zero, 7 -/* 18695C 8025807C 1462002E */ bne $v1, $v0, .L80258138 -/* 186960 80258080 00000000 */ nop -/* 186964 80258084 8EC40228 */ lw $a0, 0x228($s6) -/* 186968 80258088 10800022 */ beqz $a0, .L80258114 -/* 18696C 8025808C 00000000 */ nop -/* 186970 80258090 3C03800E */ lui $v1, %hi(gBattleStatus) -/* 186974 80258094 8C63C070 */ lw $v1, %lo(gBattleStatus)($v1) -/* 186978 80258098 30620008 */ andi $v0, $v1, 8 -/* 18697C 8025809C 14400007 */ bnez $v0, .L802580BC -/* 186980 802580A0 30620004 */ andi $v0, $v1, 4 -/* 186984 802580A4 1440001B */ bnez $v0, .L80258114 -/* 186988 802580A8 3C030800 */ lui $v1, 0x800 -/* 18698C 802580AC 8EC20000 */ lw $v0, ($s6) -/* 186990 802580B0 00431024 */ and $v0, $v0, $v1 -/* 186994 802580B4 10400017 */ beqz $v0, .L80258114 -/* 186998 802580B8 00000000 */ nop -.L802580BC: -/* 18699C 802580BC 3C014100 */ lui $at, 0x4100 -/* 1869A0 802580C0 44810000 */ mtc1 $at, $f0 -/* 1869A4 802580C4 00000000 */ nop -/* 1869A8 802580C8 4600A001 */ sub.s $f0, $f20, $f0 -/* 1869AC 802580CC 8C82000C */ lw $v0, 0xc($a0) -/* 1869B0 802580D0 E4400004 */ swc1 $f0, 4($v0) -/* 1869B4 802580D4 8C82000C */ lw $v0, 0xc($a0) -/* 1869B8 802580D8 E4580008 */ swc1 $f24, 8($v0) -/* 1869BC 802580DC 8C82000C */ lw $v0, 0xc($a0) -/* 1869C0 802580E0 E456000C */ swc1 $f22, 0xc($v0) -/* 1869C4 802580E4 92C20191 */ lbu $v0, 0x191($s6) -/* 1869C8 802580E8 3C014038 */ lui $at, 0x4038 -/* 1869CC 802580EC 44811800 */ mtc1 $at, $f3 -/* 1869D0 802580F0 44801000 */ mtc1 $zero, $f2 -/* 1869D4 802580F4 44820000 */ mtc1 $v0, $f0 -/* 1869D8 802580F8 00000000 */ nop -/* 1869DC 802580FC 46800021 */ cvt.d.w $f0, $f0 -/* 1869E0 80258100 46220003 */ div.d $f0, $f0, $f2 -/* 1869E4 80258104 8C82000C */ lw $v0, 0xc($a0) -/* 1869E8 80258108 46200020 */ cvt.s.d $f0, $f0 -/* 1869EC 8025810C 08096055 */ j .L80258154 -/* 1869F0 80258110 E4400020 */ swc1 $f0, 0x20($v0) -.L80258114: -/* 1869F4 80258114 8C82000C */ lw $v0, 0xc($a0) -/* 1869F8 80258118 3C01C47A */ lui $at, 0xc47a -/* 1869FC 8025811C 44810000 */ mtc1 $at, $f0 -/* 186A00 80258120 AC400004 */ sw $zero, 4($v0) -/* 186A04 80258124 8C82000C */ lw $v0, 0xc($a0) -/* 186A08 80258128 E4400008 */ swc1 $f0, 8($v0) -/* 186A0C 8025812C 8C82000C */ lw $v0, 0xc($a0) -/* 186A10 80258130 08096055 */ j .L80258154 -/* 186A14 80258134 AC40000C */ sw $zero, 0xc($v0) -.L80258138: -/* 186A18 80258138 8EC40228 */ lw $a0, 0x228($s6) -/* 186A1C 8025813C 10800005 */ beqz $a0, .L80258154 -/* 186A20 80258140 00000000 */ nop -/* 186A24 80258144 8C820000 */ lw $v0, ($a0) -/* 186A28 80258148 34420010 */ ori $v0, $v0, 0x10 -/* 186A2C 8025814C AC820000 */ sw $v0, ($a0) -/* 186A30 80258150 AEC00228 */ sw $zero, 0x228($s6) -.L80258154: -/* 186A34 80258154 3C04800E */ lui $a0, %hi(gBattleStatus) -/* 186A38 80258158 2484C070 */ addiu $a0, $a0, %lo(gBattleStatus) -/* 186A3C 8025815C 8C820004 */ lw $v0, 4($a0) -/* 186A40 80258160 3C030001 */ lui $v1, 1 -/* 186A44 80258164 00431024 */ and $v0, $v0, $v1 -/* 186A48 80258168 1440001A */ bnez $v0, .L802581D4 -/* 186A4C 8025816C 00000000 */ nop -/* 186A50 80258170 8C820000 */ lw $v0, ($a0) -/* 186A54 80258174 30420004 */ andi $v0, $v0, 4 -/* 186A58 80258178 14400016 */ bnez $v0, .L802581D4 -/* 186A5C 8025817C 3C030800 */ lui $v1, 0x800 -/* 186A60 80258180 8EC20000 */ lw $v0, ($s6) -/* 186A64 80258184 00431024 */ and $v0, $v0, $v1 -/* 186A68 80258188 10400012 */ beqz $v0, .L802581D4 -/* 186A6C 8025818C 00000000 */ nop -/* 186A70 80258190 8E82043C */ lw $v0, 0x43c($s4) -/* 186A74 80258194 8C43000C */ lw $v1, 0xc($v0) -/* 186A78 80258198 24020001 */ addiu $v0, $zero, 1 -/* 186A7C 8025819C 08096078 */ j .L802581E0 -/* 186A80 802581A0 A4620002 */ sh $v0, 2($v1) -.L802581A4: -/* 186A84 802581A4 C6C00188 */ lwc1 $f0, 0x188($s6) -/* 186A88 802581A8 3C01802A */ lui $at, %hi(D_8029D388) -/* 186A8C 802581AC D422D388 */ ldc1 $f2, %lo(D_8029D388)($at) -/* 186A90 802581B0 46000021 */ cvt.d.s $f0, $f0 -/* 186A94 802581B4 46201081 */ sub.d $f2, $f2, $f0 -/* 186A98 802581B8 3C014018 */ lui $at, 0x4018 -/* 186A9C 802581BC 44812800 */ mtc1 $at, $f5 -/* 186AA0 802581C0 44802000 */ mtc1 $zero, $f4 -/* 186AA4 802581C4 00000000 */ nop -/* 186AA8 802581C8 46241083 */ div.d $f2, $f2, $f4 -/* 186AAC 802581CC 08096088 */ j .L80258220 -/* 186AB0 802581D0 46220000 */ add.d $f0, $f0, $f2 -.L802581D4: -/* 186AB4 802581D4 8E82043C */ lw $v0, 0x43c($s4) -/* 186AB8 802581D8 8C42000C */ lw $v0, 0xc($v0) -/* 186ABC 802581DC A4400002 */ sh $zero, 2($v0) -.L802581E0: -/* 186AC0 802581E0 82C30210 */ lb $v1, 0x210($s6) -/* 186AC4 802581E4 2402000A */ addiu $v0, $zero, 0xa -/* 186AC8 802581E8 1062FFEE */ beq $v1, $v0, .L802581A4 -/* 186ACC 802581EC 00000000 */ nop -/* 186AD0 802581F0 C6C00188 */ lwc1 $f0, 0x188($s6) -/* 186AD4 802581F4 3C013FF0 */ lui $at, 0x3ff0 -/* 186AD8 802581F8 44812800 */ mtc1 $at, $f5 -/* 186ADC 802581FC 44802000 */ mtc1 $zero, $f4 -/* 186AE0 80258200 46000021 */ cvt.d.s $f0, $f0 -/* 186AE4 80258204 46202101 */ sub.d $f4, $f4, $f0 -/* 186AE8 80258208 3C014018 */ lui $at, 0x4018 -/* 186AEC 8025820C 44811800 */ mtc1 $at, $f3 -/* 186AF0 80258210 44801000 */ mtc1 $zero, $f2 -/* 186AF4 80258214 00000000 */ nop -/* 186AF8 80258218 46222103 */ div.d $f4, $f4, $f2 -/* 186AFC 8025821C 46240000 */ add.d $f0, $f0, $f4 -.L80258220: -/* 186B00 80258220 46200020 */ cvt.s.d $f0, $f0 -/* 186B04 80258224 E6C00188 */ swc1 $f0, 0x188($s6) -/* 186B08 80258228 8EC20000 */ lw $v0, ($s6) -/* 186B0C 8025822C 3C030800 */ lui $v1, 0x800 -/* 186B10 80258230 00431024 */ and $v0, $v0, $v1 -/* 186B14 80258234 10400019 */ beqz $v0, .L8025829C -/* 186B18 80258238 00000000 */ nop -/* 186B1C 8025823C 82820096 */ lb $v0, 0x96($s4) -/* 186B20 80258240 18400007 */ blez $v0, .L80258260 -/* 186B24 80258244 00000000 */ nop -/* 186B28 80258248 0C011F4C */ jal create_status_icon_boost_hammer -/* 186B2C 8025824C 86C40436 */ lh $a0, 0x436($s6) -/* 186B30 80258250 0C011F29 */ jal remove_status_icon_boost_jump -/* 186B34 80258254 86C40436 */ lh $a0, 0x436($s6) -/* 186B38 80258258 0809609A */ j .L80258268 -/* 186B3C 8025825C 00000000 */ nop -.L80258260: -/* 186B40 80258260 0C011F70 */ jal remove_status_icon_boost_hammer -/* 186B44 80258264 86C40436 */ lh $a0, 0x436($s6) -.L80258268: -/* 186B48 80258268 82820097 */ lb $v0, 0x97($s4) -/* 186B4C 8025826C 18400007 */ blez $v0, .L8025828C -/* 186B50 80258270 00000000 */ nop -/* 186B54 80258274 0C011F05 */ jal create_status_icon_boost_jump -/* 186B58 80258278 86C40436 */ lh $a0, 0x436($s6) -/* 186B5C 8025827C 0C011F70 */ jal remove_status_icon_boost_hammer -/* 186B60 80258280 86C40436 */ lh $a0, 0x436($s6) -/* 186B64 80258284 080960AB */ j .L802582AC -/* 186B68 80258288 00000000 */ nop -.L8025828C: -/* 186B6C 8025828C 0C011F29 */ jal remove_status_icon_boost_jump -/* 186B70 80258290 86C40436 */ lh $a0, 0x436($s6) -/* 186B74 80258294 080960AB */ j .L802582AC -/* 186B78 80258298 00000000 */ nop -.L8025829C: -/* 186B7C 8025829C 0C011F40 */ jal enable_status_icon_boost_jump -/* 186B80 802582A0 86C40436 */ lh $a0, 0x436($s6) -/* 186B84 802582A4 0C011F87 */ jal enable_status_icon_boost_hammer -/* 186B88 802582A8 86C40436 */ lh $a0, 0x436($s6) -.L802582AC: -/* 186B8C 802582AC 8EC20000 */ lw $v0, ($s6) -/* 186B90 802582B0 3C030800 */ lui $v1, 0x800 -/* 186B94 802582B4 00431024 */ and $v0, $v0, $v1 -/* 186B98 802582B8 1040001C */ beqz $v0, .L8025832C -/* 186B9C 802582BC 00000000 */ nop -/* 186BA0 802582C0 3C02800E */ lui $v0, %hi(gBattleStatus+0x4) -/* 186BA4 802582C4 8C42C074 */ lw $v0, %lo(gBattleStatus+0x4)($v0) -/* 186BA8 802582C8 30420040 */ andi $v0, $v0, 0x40 -/* 186BAC 802582CC 14400017 */ bnez $v0, .L8025832C -/* 186BB0 802582D0 00000000 */ nop -/* 186BB4 802582D4 82220002 */ lb $v0, 2($s1) -/* 186BB8 802582D8 28420002 */ slti $v0, $v0, 2 -/* 186BBC 802582DC 14400009 */ bnez $v0, .L80258304 -/* 186BC0 802582E0 00000000 */ nop -/* 186BC4 802582E4 0C01203D */ jal remove_status_icon_peril -/* 186BC8 802582E8 86C40436 */ lh $a0, 0x436($s6) -/* 186BCC 802582EC 82220002 */ lb $v0, 2($s1) -/* 186BD0 802582F0 28420006 */ slti $v0, $v0, 6 -/* 186BD4 802582F4 14400007 */ bnez $v0, .L80258314 -/* 186BD8 802582F8 00000000 */ nop -/* 186BDC 802582FC 080960CD */ j .L80258334 -/* 186BE0 80258300 00000000 */ nop -.L80258304: -/* 186BE4 80258304 0C012019 */ jal create_status_icon_peril -/* 186BE8 80258308 86C40436 */ lh $a0, 0x436($s6) -/* 186BEC 8025830C 080960CD */ j .L80258334 -/* 186BF0 80258310 00000000 */ nop -.L80258314: -/* 186BF4 80258314 0C01205C */ jal create_status_icon_danger -/* 186BF8 80258318 86C40436 */ lh $a0, 0x436($s6) -/* 186BFC 8025831C 0C01203D */ jal remove_status_icon_peril -/* 186C00 80258320 86C40436 */ lh $a0, 0x436($s6) -/* 186C04 80258324 080960CF */ j .L8025833C -/* 186C08 80258328 00000000 */ nop -.L8025832C: -/* 186C0C 8025832C 0C01203D */ jal remove_status_icon_peril -/* 186C10 80258330 86C40436 */ lh $a0, 0x436($s6) -.L80258334: -/* 186C14 80258334 0C012080 */ jal remove_status_icon_danger -/* 186C18 80258338 86C40436 */ lh $a0, 0x436($s6) -.L8025833C: -/* 186C1C 8025833C 82C30218 */ lb $v1, 0x218($s6) -/* 186C20 80258340 2402000E */ addiu $v0, $zero, 0xe -/* 186C24 80258344 1462000C */ bne $v1, $v0, .L80258378 -/* 186C28 80258348 2403FEFF */ addiu $v1, $zero, -0x101 -/* 186C2C 8025834C 8EE20000 */ lw $v0, ($s7) -/* 186C30 80258350 080960E0 */ j .L80258380 -/* 186C34 80258354 34420100 */ ori $v0, $v0, 0x100 -.L80258358: -/* 186C38 80258358 0C099751 */ jal func_80265D44 -/* 186C3C 8025835C 24040008 */ addiu $a0, $zero, 8 -/* 186C40 80258360 AEE20088 */ sw $v0, 0x88($s7) -/* 186C44 80258364 86C40436 */ lh $a0, 0x436($s6) -/* 186C48 80258368 0C011E08 */ jal create_status_debuff -/* 186C4C 8025836C 24050008 */ addiu $a1, $zero, 8 -/* 186C50 80258370 08096272 */ j .L802589C8 -/* 186C54 80258374 00000000 */ nop -.L80258378: -/* 186C58 80258378 8EE20000 */ lw $v0, ($s7) -/* 186C5C 8025837C 00431024 */ and $v0, $v0, $v1 -.L80258380: -/* 186C60 80258380 AEE20000 */ sw $v0, ($s7) -/* 186C64 80258384 0000882D */ daddu $s1, $zero, $zero -/* 186C68 80258388 0220902D */ daddu $s2, $s1, $zero -/* 186C6C 8025838C 0220982D */ daddu $s3, $s1, $zero -/* 186C70 80258390 8EFE0088 */ lw $fp, 0x88($s7) -/* 186C74 80258394 3C02800E */ lui $v0, %hi(gBattleStatus+0x4) -/* 186C78 80258398 8C42C074 */ lw $v0, %lo(gBattleStatus+0x4)($v0) -/* 186C7C 8025839C 24030002 */ addiu $v1, $zero, 2 -/* 186C80 802583A0 3042000A */ andi $v0, $v0, 0xa -/* 186C84 802583A4 14430003 */ bne $v0, $v1, .L802583B4 -/* 186C88 802583A8 0220A82D */ daddu $s5, $s1, $zero -/* 186C8C 802583AC 16000004 */ bnez $s0, .L802583C0 -/* 186C90 802583B0 00000000 */ nop -.L802583B4: -/* 186C94 802583B4 8282009A */ lb $v0, 0x9a($s4) -/* 186C98 802583B8 18400047 */ blez $v0, .L802584D8 -/* 186C9C 802583BC 00000000 */ nop -.L802583C0: -/* 186CA0 802583C0 8EC20000 */ lw $v0, ($s6) -/* 186CA4 802583C4 3C032000 */ lui $v1, 0x2000 -/* 186CA8 802583C8 00431024 */ and $v0, $v0, $v1 -/* 186CAC 802583CC 14400042 */ bnez $v0, .L802584D8 -/* 186CB0 802583D0 00000000 */ nop -/* 186CB4 802583D4 12000005 */ beqz $s0, .L802583EC -/* 186CB8 802583D8 3C030020 */ lui $v1, 0x20 -/* 186CBC 802583DC 8E020000 */ lw $v0, ($s0) -/* 186CC0 802583E0 00431024 */ and $v0, $v0, $v1 -/* 186CC4 802583E4 1440003C */ bnez $v0, .L802584D8 -/* 186CC8 802583E8 00000000 */ nop -.L802583EC: -/* 186CCC 802583EC 3C04800E */ lui $a0, %hi(gBattleStatus+0x4) -/* 186CD0 802583F0 8C84C074 */ lw $a0, %lo(gBattleStatus+0x4)($a0) -/* 186CD4 802583F4 3C020010 */ lui $v0, 0x10 -/* 186CD8 802583F8 00821024 */ and $v0, $a0, $v0 -/* 186CDC 802583FC 14400036 */ bnez $v0, .L802584D8 -/* 186CE0 80258400 24020003 */ addiu $v0, $zero, 3 -/* 186CE4 80258404 82C30210 */ lb $v1, 0x210($s6) -/* 186CE8 80258408 10620027 */ beq $v1, $v0, .L802584A8 -/* 186CEC 8025840C 24020005 */ addiu $v0, $zero, 5 -/* 186CF0 80258410 10620025 */ beq $v1, $v0, .L802584A8 -/* 186CF4 80258414 24020007 */ addiu $v0, $zero, 7 -/* 186CF8 80258418 10620023 */ beq $v1, $v0, .L802584A8 -/* 186CFC 8025841C 24020008 */ addiu $v0, $zero, 8 -/* 186D00 80258420 10620021 */ beq $v1, $v0, .L802584A8 -/* 186D04 80258424 2402000E */ addiu $v0, $zero, 0xe -/* 186D08 80258428 82C30218 */ lb $v1, 0x218($s6) -/* 186D0C 8025842C 1062001D */ beq $v1, $v0, .L802584A4 -/* 186D10 80258430 2402000C */ addiu $v0, $zero, 0xc -/* 186D14 80258434 82C30214 */ lb $v1, 0x214($s6) -/* 186D18 80258438 1062001A */ beq $v1, $v0, .L802584A4 -/* 186D1C 8025843C 00000000 */ nop -/* 186D20 80258440 8282009A */ lb $v0, 0x9a($s4) -/* 186D24 80258444 1C400003 */ bgtz $v0, .L80258454 -/* 186D28 80258448 30820002 */ andi $v0, $a0, 2 -/* 186D2C 8025844C 10400015 */ beqz $v0, .L802584A4 -/* 186D30 80258450 00000000 */ nop -.L80258454: -/* 186D34 80258454 0C03A752 */ jal is_ability_active -/* 186D38 80258458 24040015 */ addiu $a0, $zero, 0x15 -/* 186D3C 8025845C 1440000A */ bnez $v0, .L80258488 -/* 186D40 80258460 24040013 */ addiu $a0, $zero, 0x13 -/* 186D44 80258464 82C30210 */ lb $v1, 0x210($s6) -/* 186D48 80258468 24020006 */ addiu $v0, $zero, 6 -/* 186D4C 8025846C 14620003 */ bne $v1, $v0, .L8025847C -/* 186D50 80258470 24020004 */ addiu $v0, $zero, 4 -/* 186D54 80258474 08096122 */ j .L80258488 -/* 186D58 80258478 24040015 */ addiu $a0, $zero, 0x15 -.L8025847C: -/* 186D5C 8025847C 14620002 */ bne $v1, $v0, .L80258488 -/* 186D60 80258480 24040012 */ addiu $a0, $zero, 0x12 -/* 186D64 80258484 24040018 */ addiu $a0, $zero, 0x18 -.L80258488: -/* 186D68 80258488 0C099751 */ jal func_80265D44 -/* 186D6C 8025848C 24110001 */ addiu $s1, $zero, 1 -/* 186D70 80258490 AEE20088 */ sw $v0, 0x88($s7) -/* 186D74 80258494 8EE50088 */ lw $a1, 0x88($s7) -/* 186D78 80258498 8EE60090 */ lw $a2, 0x90($s7) -/* 186D7C 8025849C 0C0B76A3 */ jal spr_update_player_sprite -/* 186D80 802584A0 0000202D */ daddu $a0, $zero, $zero -.L802584A4: -/* 186D84 802584A4 82C30210 */ lb $v1, 0x210($s6) -.L802584A8: -/* 186D88 802584A8 24020009 */ addiu $v0, $zero, 9 -/* 186D8C 802584AC 10620003 */ beq $v1, $v0, .L802584BC -/* 186D90 802584B0 02C0202D */ daddu $a0, $s6, $zero -/* 186D94 802584B4 08096130 */ j .L802584C0 -/* 186D98 802584B8 2405000C */ addiu $a1, $zero, 0xc -.L802584BC: -/* 186D9C 802584BC 2405000D */ addiu $a1, $zero, 0xd -.L802584C0: -/* 186DA0 802584C0 0C099B6B */ jal func_80266DAC -/* 186DA4 802584C4 24120001 */ addiu $s2, $zero, 1 -/* 186DA8 802584C8 02C0202D */ daddu $a0, $s6, $zero -/* 186DAC 802584CC 0C099BBA */ jal func_80266EE8 -/* 186DB0 802584D0 0000282D */ daddu $a1, $zero, $zero -/* 186DB4 802584D4 0240982D */ daddu $s3, $s2, $zero -.L802584D8: -/* 186DB8 802584D8 82C30214 */ lb $v1, 0x214($s6) -/* 186DBC 802584DC 2402000C */ addiu $v0, $zero, 0xc -/* 186DC0 802584E0 1462001C */ bne $v1, $v0, .L80258554 -/* 186DC4 802584E4 00000000 */ nop -/* 186DC8 802584E8 0C099751 */ jal func_80265D44 -/* 186DCC 802584EC 0040202D */ daddu $a0, $v0, $zero -/* 186DD0 802584F0 0000202D */ daddu $a0, $zero, $zero -/* 186DD4 802584F4 0040282D */ daddu $a1, $v0, $zero -/* 186DD8 802584F8 8EE60090 */ lw $a2, 0x90($s7) -/* 186DDC 802584FC 24110001 */ addiu $s1, $zero, 1 -/* 186DE0 80258500 0C0B76A3 */ jal spr_update_player_sprite -/* 186DE4 80258504 AEE50088 */ sw $a1, 0x88($s7) -/* 186DE8 80258508 16400004 */ bnez $s2, .L8025851C -/* 186DEC 8025850C 02C0202D */ daddu $a0, $s6, $zero -/* 186DF0 80258510 0C099B6B */ jal func_80266DAC -/* 186DF4 80258514 0000282D */ daddu $a1, $zero, $zero -/* 186DF8 80258518 02C0202D */ daddu $a0, $s6, $zero -.L8025851C: -/* 186DFC 8025851C 0C099BBA */ jal func_80266EE8 -/* 186E00 80258520 0000282D */ daddu $a1, $zero, $zero -/* 186E04 80258524 86C40436 */ lh $a0, 0x436($s6) -/* 186E08 80258528 0C011E3E */ jal enable_status_debuff -/* 186E0C 8025852C 24120001 */ addiu $s2, $zero, 1 -/* 186E10 80258530 86C40436 */ lh $a0, 0x436($s6) -/* 186E14 80258534 0C011E80 */ jal enable_status_2 -/* 186E18 80258538 0240982D */ daddu $s3, $s2, $zero -/* 186E1C 8025853C 86C40436 */ lh $a0, 0x436($s6) -/* 186E20 80258540 0C011EC2 */ jal enable_status_transparent -/* 186E24 80258544 0240A82D */ daddu $s5, $s2, $zero -/* 186E28 80258548 86C40436 */ lh $a0, 0x436($s6) -/* 186E2C 8025854C 0C011EF9 */ jal enable_status_chill_out -/* 186E30 80258550 00000000 */ nop -.L80258554: -/* 186E34 80258554 8EC20000 */ lw $v0, ($s6) -/* 186E38 80258558 3C030400 */ lui $v1, 0x400 -/* 186E3C 8025855C 00431024 */ and $v0, $v0, $v1 -/* 186E40 80258560 1040000B */ beqz $v0, .L80258590 -/* 186E44 80258564 00000000 */ nop -/* 186E48 80258568 16200009 */ bnez $s1, .L80258590 -/* 186E4C 8025856C 00000000 */ nop -/* 186E50 80258570 8EF00088 */ lw $s0, 0x88($s7) -/* 186E54 80258574 0C099751 */ jal func_80265D44 -/* 186E58 80258578 2404000C */ addiu $a0, $zero, 0xc -/* 186E5C 8025857C 16020004 */ bne $s0, $v0, .L80258590 -/* 186E60 80258580 00000000 */ nop -/* 186E64 80258584 0C099751 */ jal func_80265D44 -/* 186E68 80258588 24040001 */ addiu $a0, $zero, 1 -/* 186E6C 8025858C AEE20088 */ sw $v0, 0x88($s7) -.L80258590: -/* 186E70 80258590 0C03A752 */ jal is_ability_active -/* 186E74 80258594 24040015 */ addiu $a0, $zero, 0x15 -/* 186E78 80258598 10400007 */ beqz $v0, .L802585B8 -/* 186E7C 8025859C 00000000 */ nop -/* 186E80 802585A0 16400005 */ bnez $s2, .L802585B8 -/* 186E84 802585A4 24120001 */ addiu $s2, $zero, 1 -/* 186E88 802585A8 02C0202D */ daddu $a0, $s6, $zero -/* 186E8C 802585AC 0C099B6B */ jal func_80266DAC -/* 186E90 802585B0 24050008 */ addiu $a1, $zero, 8 -/* 186E94 802585B4 24120001 */ addiu $s2, $zero, 1 -.L802585B8: -/* 186E98 802585B8 82C30210 */ lb $v1, 0x210($s6) -/* 186E9C 802585BC 24020009 */ addiu $v0, $zero, 9 -/* 186EA0 802585C0 14620009 */ bne $v1, $v0, .L802585E8 -/* 186EA4 802585C4 24020005 */ addiu $v0, $zero, 5 -/* 186EA8 802585C8 16400007 */ bnez $s2, .L802585E8 -/* 186EAC 802585CC 24120001 */ addiu $s2, $zero, 1 -/* 186EB0 802585D0 02C0202D */ daddu $a0, $s6, $zero -/* 186EB4 802585D4 0C099B6B */ jal func_80266DAC -/* 186EB8 802585D8 24050006 */ addiu $a1, $zero, 6 -/* 186EBC 802585DC 24120001 */ addiu $s2, $zero, 1 -/* 186EC0 802585E0 82C30210 */ lb $v1, 0x210($s6) -/* 186EC4 802585E4 24020005 */ addiu $v0, $zero, 5 -.L802585E8: -/* 186EC8 802585E8 14620007 */ bne $v1, $v0, .L80258608 -/* 186ECC 802585EC 00000000 */ nop -/* 186ED0 802585F0 16400005 */ bnez $s2, .L80258608 -/* 186ED4 802585F4 24120001 */ addiu $s2, $zero, 1 -/* 186ED8 802585F8 02C0202D */ daddu $a0, $s6, $zero -/* 186EDC 802585FC 0C099B6B */ jal func_80266DAC -/* 186EE0 80258600 24050007 */ addiu $a1, $zero, 7 -/* 186EE4 80258604 24120001 */ addiu $s2, $zero, 1 -.L80258608: -/* 186EE8 80258608 82C30212 */ lb $v1, 0x212($s6) -/* 186EEC 8025860C 2402000B */ addiu $v0, $zero, 0xb -/* 186EF0 80258610 14620007 */ bne $v1, $v0, .L80258630 -/* 186EF4 80258614 00000000 */ nop -/* 186EF8 80258618 16400005 */ bnez $s2, .L80258630 -/* 186EFC 8025861C 24120001 */ addiu $s2, $zero, 1 -/* 186F00 80258620 02C0202D */ daddu $a0, $s6, $zero -/* 186F04 80258624 0C099B6B */ jal func_80266DAC -/* 186F08 80258628 24050004 */ addiu $a1, $zero, 4 -/* 186F0C 8025862C 24120001 */ addiu $s2, $zero, 1 -.L80258630: -/* 186F10 80258630 8282009B */ lb $v0, 0x9b($s4) -/* 186F14 80258634 10400007 */ beqz $v0, .L80258654 -/* 186F18 80258638 00000000 */ nop -/* 186F1C 8025863C 16600005 */ bnez $s3, .L80258654 -/* 186F20 80258640 24130001 */ addiu $s3, $zero, 1 -/* 186F24 80258644 02C0202D */ daddu $a0, $s6, $zero -/* 186F28 80258648 0C099BBA */ jal func_80266EE8 -/* 186F2C 8025864C 2405000B */ addiu $a1, $zero, 0xb -/* 186F30 80258650 24130001 */ addiu $s3, $zero, 1 -.L80258654: -/* 186F34 80258654 0C03A752 */ jal is_ability_active -/* 186F38 80258658 24040013 */ addiu $a0, $zero, 0x13 -/* 186F3C 8025865C 10400007 */ beqz $v0, .L8025867C -/* 186F40 80258660 00000000 */ nop -/* 186F44 80258664 16400005 */ bnez $s2, .L8025867C -/* 186F48 80258668 24120001 */ addiu $s2, $zero, 1 -/* 186F4C 8025866C 02C0202D */ daddu $a0, $s6, $zero -/* 186F50 80258670 0C099B6B */ jal func_80266DAC -/* 186F54 80258674 24050004 */ addiu $a1, $zero, 4 -/* 186F58 80258678 24120001 */ addiu $s2, $zero, 1 -.L8025867C: -/* 186F5C 8025867C 16400003 */ bnez $s2, .L8025868C -/* 186F60 80258680 02C0202D */ daddu $a0, $s6, $zero -/* 186F64 80258684 0C099B6B */ jal func_80266DAC -/* 186F68 80258688 0000282D */ daddu $a1, $zero, $zero -.L8025868C: -/* 186F6C 8025868C 16600003 */ bnez $s3, .L8025869C -/* 186F70 80258690 02C0202D */ daddu $a0, $s6, $zero -/* 186F74 80258694 0C099BBA */ jal func_80266EE8 -/* 186F78 80258698 0000282D */ daddu $a1, $zero, $zero -.L8025869C: -/* 186F7C 8025869C 8EC20000 */ lw $v0, ($s6) -/* 186F80 802586A0 3C030400 */ lui $v1, 0x400 -/* 186F84 802586A4 00431024 */ and $v0, $v0, $v1 -/* 186F88 802586A8 1040007D */ beqz $v0, .L802588A0 -/* 186F8C 802586AC 00000000 */ nop -/* 186F90 802586B0 8282008B */ lb $v0, 0x8b($s4) -/* 186F94 802586B4 10400015 */ beqz $v0, .L8025870C -/* 186F98 802586B8 00000000 */ nop -/* 186F9C 802586BC 0C099751 */ jal func_80265D44 -/* 186FA0 802586C0 24040019 */ addiu $a0, $zero, 0x19 -/* 186FA4 802586C4 AEE20088 */ sw $v0, 0x88($s7) -/* 186FA8 802586C8 080961CF */ j .L8025873C -/* 186FAC 802586CC 24110001 */ addiu $s1, $zero, 1 -.L802586D0: -/* 186FB0 802586D0 86C40436 */ lh $a0, 0x436($s6) -/* 186FB4 802586D4 08096241 */ j .L80258904 -/* 186FB8 802586D8 24050009 */ addiu $a1, $zero, 9 -.L802586DC: -/* 186FBC 802586DC 86C40436 */ lh $a0, 0x436($s6) -/* 186FC0 802586E0 08096241 */ j .L80258904 -/* 186FC4 802586E4 24050006 */ addiu $a1, $zero, 6 -.L802586E8: -/* 186FC8 802586E8 86C40436 */ lh $a0, 0x436($s6) -/* 186FCC 802586EC 08096241 */ j .L80258904 -/* 186FD0 802586F0 24050005 */ addiu $a1, $zero, 5 -.L802586F4: -/* 186FD4 802586F4 86C40436 */ lh $a0, 0x436($s6) -/* 186FD8 802586F8 08096241 */ j .L80258904 -/* 186FDC 802586FC 24050004 */ addiu $a1, $zero, 4 -.L80258700: -/* 186FE0 80258700 86C40436 */ lh $a0, 0x436($s6) -/* 186FE4 80258704 08096241 */ j .L80258904 -/* 186FE8 80258708 2405000A */ addiu $a1, $zero, 0xa -.L8025870C: -/* 186FEC 8025870C 1620000B */ bnez $s1, .L8025873C -/* 186FF0 80258710 00000000 */ nop -/* 186FF4 80258714 0C099751 */ jal func_80265D44 -/* 186FF8 80258718 24040001 */ addiu $a0, $zero, 1 -/* 186FFC 8025871C 0040802D */ daddu $s0, $v0, $zero -/* 187000 80258720 0C099751 */ jal func_80265D44 -/* 187004 80258724 24040019 */ addiu $a0, $zero, 0x19 -/* 187008 80258728 16020004 */ bne $s0, $v0, .L8025873C -/* 18700C 8025872C 00000000 */ nop -/* 187010 80258730 0C099751 */ jal func_80265D44 -/* 187014 80258734 24040001 */ addiu $a0, $zero, 1 -/* 187018 80258738 AEE20088 */ sw $v0, 0x88($s7) -.L8025873C: -/* 18701C 8025873C 82C30210 */ lb $v1, 0x210($s6) -/* 187020 80258740 24020007 */ addiu $v0, $zero, 7 -/* 187024 80258744 54620005 */ bnel $v1, $v0, .L8025875C -/* 187028 80258748 2402000A */ addiu $v0, $zero, 0xa -/* 18702C 8025874C 16200026 */ bnez $s1, .L802587E8 -/* 187030 80258750 0040202D */ daddu $a0, $v0, $zero -/* 187034 80258754 080961F7 */ j .L802587DC -/* 187038 80258758 00000000 */ nop -.L8025875C: -/* 18703C 8025875C 10620022 */ beq $v1, $v0, .L802587E8 -/* 187040 80258760 24020009 */ addiu $v0, $zero, 9 -/* 187044 80258764 54620005 */ bnel $v1, $v0, .L8025877C -/* 187048 80258768 24020004 */ addiu $v0, $zero, 4 -/* 18704C 8025876C 1620001E */ bnez $s1, .L802587E8 -/* 187050 80258770 0040202D */ daddu $a0, $v0, $zero -/* 187054 80258774 080961F7 */ j .L802587DC -/* 187058 80258778 00000000 */ nop -.L8025877C: -/* 18705C 8025877C 54620005 */ bnel $v1, $v0, .L80258794 -/* 187060 80258780 24020006 */ addiu $v0, $zero, 6 -/* 187064 80258784 16200018 */ bnez $s1, .L802587E8 -/* 187068 80258788 0040202D */ daddu $a0, $v0, $zero -/* 18706C 8025878C 080961F7 */ j .L802587DC -/* 187070 80258790 00000000 */ nop -.L80258794: -/* 187074 80258794 54620005 */ bnel $v1, $v0, .L802587AC -/* 187078 80258798 24020005 */ addiu $v0, $zero, 5 -/* 18707C 8025879C 16200012 */ bnez $s1, .L802587E8 -/* 187080 802587A0 0040202D */ daddu $a0, $v0, $zero -/* 187084 802587A4 080961F7 */ j .L802587DC -/* 187088 802587A8 00000000 */ nop -.L802587AC: -/* 18708C 802587AC 14620005 */ bne $v1, $v0, .L802587C4 -/* 187090 802587B0 02C0202D */ daddu $a0, $s6, $zero -/* 187094 802587B4 1620000C */ bnez $s1, .L802587E8 -/* 187098 802587B8 0040202D */ daddu $a0, $v0, $zero -/* 18709C 802587BC 080961F7 */ j .L802587DC -/* 1870A0 802587C0 00000000 */ nop -.L802587C4: -/* 1870A4 802587C4 0C099CAB */ jal player_team_is_ability_active -/* 1870A8 802587C8 24050015 */ addiu $a1, $zero, 0x15 -/* 1870AC 802587CC 10400006 */ beqz $v0, .L802587E8 -/* 1870B0 802587D0 00000000 */ nop -/* 1870B4 802587D4 16200004 */ bnez $s1, .L802587E8 -/* 1870B8 802587D8 24040010 */ addiu $a0, $zero, 0x10 -.L802587DC: -/* 1870BC 802587DC 0C099751 */ jal func_80265D44 -/* 1870C0 802587E0 24110001 */ addiu $s1, $zero, 1 -/* 1870C4 802587E4 AEE20088 */ sw $v0, 0x88($s7) -.L802587E8: -/* 1870C8 802587E8 0C03A752 */ jal is_ability_active -/* 1870CC 802587EC 24040013 */ addiu $a0, $zero, 0x13 -/* 1870D0 802587F0 1040000C */ beqz $v0, .L80258824 -/* 1870D4 802587F4 2402000B */ addiu $v0, $zero, 0xb -/* 1870D8 802587F8 16200006 */ bnez $s1, .L80258814 -/* 1870DC 802587FC 2402000B */ addiu $v0, $zero, 0xb -/* 1870E0 80258800 0C099751 */ jal func_80265D44 -/* 1870E4 80258804 2404000B */ addiu $a0, $zero, 0xb -/* 1870E8 80258808 AEE20088 */ sw $v0, 0x88($s7) -/* 1870EC 8025880C 24110001 */ addiu $s1, $zero, 1 -/* 1870F0 80258810 2402000B */ addiu $v0, $zero, 0xb -.L80258814: -/* 1870F4 80258814 A2C20212 */ sb $v0, 0x212($s6) -/* 1870F8 80258818 2402007F */ addiu $v0, $zero, 0x7f -/* 1870FC 8025881C 08096212 */ j .L80258848 -/* 187100 80258820 A2C20213 */ sb $v0, 0x213($s6) -.L80258824: -/* 187104 80258824 82C30212 */ lb $v1, 0x212($s6) -/* 187108 80258828 14620007 */ bne $v1, $v0, .L80258848 -/* 18710C 8025882C 00000000 */ nop -/* 187110 80258830 16200005 */ bnez $s1, .L80258848 -/* 187114 80258834 00000000 */ nop -/* 187118 80258838 0C099751 */ jal func_80265D44 -/* 18711C 8025883C 0040202D */ daddu $a0, $v0, $zero -/* 187120 80258840 AEE20088 */ sw $v0, 0x88($s7) -/* 187124 80258844 24110001 */ addiu $s1, $zero, 1 -.L80258848: -/* 187128 80258848 82C30218 */ lb $v1, 0x218($s6) -/* 18712C 8025884C 2402000E */ addiu $v0, $zero, 0xe -/* 187130 80258850 10620005 */ beq $v1, $v0, .L80258868 -/* 187134 80258854 00000000 */ nop -/* 187138 80258858 8EE20000 */ lw $v0, ($s7) -/* 18713C 8025885C 30420100 */ andi $v0, $v0, 0x100 -/* 187140 80258860 1040000A */ beqz $v0, .L8025888C -/* 187144 80258864 00000000 */ nop -.L80258868: -/* 187148 80258868 16200005 */ bnez $s1, .L80258880 -/* 18714C 8025886C 00000000 */ nop -/* 187150 80258870 0C099751 */ jal func_80265D44 -/* 187154 80258874 2404000E */ addiu $a0, $zero, 0xe -/* 187158 80258878 AEE20088 */ sw $v0, 0x88($s7) -/* 18715C 8025887C 24110001 */ addiu $s1, $zero, 1 -.L80258880: -/* 187160 80258880 86C40436 */ lh $a0, 0x436($s6) -/* 187164 80258884 0C011E8C */ jal create_status_transparent -/* 187168 80258888 2405000E */ addiu $a1, $zero, 0xe -.L8025888C: -/* 18716C 8025888C 16200004 */ bnez $s1, .L802588A0 -/* 187170 80258890 00000000 */ nop -/* 187174 80258894 0C099751 */ jal func_80265D44 -/* 187178 80258898 24040001 */ addiu $a0, $zero, 1 -/* 18717C 8025889C AEE20088 */ sw $v0, 0x88($s7) -.L802588A0: -/* 187180 802588A0 3C02800E */ lui $v0, %hi(gBattleStatus) -/* 187184 802588A4 8C42C070 */ lw $v0, %lo(gBattleStatus)($v0) -/* 187188 802588A8 30420004 */ andi $v0, $v0, 4 -/* 18718C 802588AC 14400030 */ bnez $v0, .L80258970 -/* 187190 802588B0 3C030800 */ lui $v1, 0x800 -/* 187194 802588B4 8EC20000 */ lw $v0, ($s6) -/* 187198 802588B8 00431024 */ and $v0, $v0, $v1 -/* 18719C 802588BC 1040002C */ beqz $v0, .L80258970 -/* 1871A0 802588C0 00000000 */ nop -/* 1871A4 802588C4 16A0001D */ bnez $s5, .L8025893C -/* 1871A8 802588C8 24020009 */ addiu $v0, $zero, 9 -/* 1871AC 802588CC 82C30210 */ lb $v1, 0x210($s6) -/* 1871B0 802588D0 1062FF7F */ beq $v1, $v0, .L802586D0 -/* 1871B4 802588D4 24020006 */ addiu $v0, $zero, 6 -/* 1871B8 802588D8 1062FF80 */ beq $v1, $v0, .L802586DC -/* 1871BC 802588DC 24020005 */ addiu $v0, $zero, 5 -/* 1871C0 802588E0 1062FF81 */ beq $v1, $v0, .L802586E8 -/* 1871C4 802588E4 24020004 */ addiu $v0, $zero, 4 -/* 1871C8 802588E8 1062FF82 */ beq $v1, $v0, .L802586F4 -/* 1871CC 802588EC 2402000A */ addiu $v0, $zero, 0xa -/* 1871D0 802588F0 1062FF83 */ beq $v1, $v0, .L80258700 -/* 1871D4 802588F4 24020007 */ addiu $v0, $zero, 7 -/* 1871D8 802588F8 14620004 */ bne $v1, $v0, .L8025890C -/* 1871DC 802588FC 0040282D */ daddu $a1, $v0, $zero -/* 1871E0 80258900 86C40436 */ lh $a0, 0x436($s6) -.L80258904: -/* 1871E4 80258904 0C011E08 */ jal create_status_debuff -/* 1871E8 80258908 00000000 */ nop -.L8025890C: -/* 1871EC 8025890C 16A0000B */ bnez $s5, .L8025893C -/* 1871F0 80258910 00000000 */ nop -/* 1871F4 80258914 0C03A752 */ jal is_ability_active -/* 1871F8 80258918 24040013 */ addiu $a0, $zero, 0x13 -/* 1871FC 8025891C 14400004 */ bnez $v0, .L80258930 -/* 187200 80258920 2402000B */ addiu $v0, $zero, 0xb -/* 187204 80258924 82C30212 */ lb $v1, 0x212($s6) -/* 187208 80258928 14620004 */ bne $v1, $v0, .L8025893C -/* 18720C 8025892C 00000000 */ nop -.L80258930: -/* 187210 80258930 86C40436 */ lh $a0, 0x436($s6) -/* 187214 80258934 0C011E4A */ jal create_status_static -/* 187218 80258938 2405000B */ addiu $a1, $zero, 0xb -.L8025893C: -/* 18721C 8025893C 82C30218 */ lb $v1, 0x218($s6) -/* 187220 80258940 2402000E */ addiu $v0, $zero, 0xe -/* 187224 80258944 10620005 */ beq $v1, $v0, .L8025895C -/* 187228 80258948 00000000 */ nop -/* 18722C 8025894C 8EE20000 */ lw $v0, ($s7) -/* 187230 80258950 30420100 */ andi $v0, $v0, 0x100 -/* 187234 80258954 1040000E */ beqz $v0, .L80258990 -/* 187238 80258958 00000000 */ nop -.L8025895C: -/* 18723C 8025895C 86C40436 */ lh $a0, 0x436($s6) -/* 187240 80258960 0C011E8C */ jal create_status_transparent -/* 187244 80258964 2405000E */ addiu $a1, $zero, 0xe -/* 187248 80258968 08096264 */ j .L80258990 -/* 18724C 8025896C 00000000 */ nop -.L80258970: -/* 187250 80258970 0C011E3E */ jal enable_status_debuff -/* 187254 80258974 86C40436 */ lh $a0, 0x436($s6) -/* 187258 80258978 0C011E80 */ jal enable_status_2 -/* 18725C 8025897C 86C40436 */ lh $a0, 0x436($s6) -/* 187260 80258980 0C011EC2 */ jal enable_status_transparent -/* 187264 80258984 86C40436 */ lh $a0, 0x436($s6) -/* 187268 80258988 0C011EF9 */ jal enable_status_chill_out -/* 18726C 8025898C 86C40436 */ lh $a0, 0x436($s6) -.L80258990: -/* 187270 80258990 82C30210 */ lb $v1, 0x210($s6) -/* 187274 80258994 24020008 */ addiu $v0, $zero, 8 -/* 187278 80258998 1062FE6F */ beq $v1, $v0, .L80258358 -/* 18727C 8025899C 00000000 */ nop -/* 187280 802589A0 16200009 */ bnez $s1, .L802589C8 -/* 187284 802589A4 00000000 */ nop -/* 187288 802589A8 8EF00088 */ lw $s0, 0x88($s7) -/* 18728C 802589AC 0C099751 */ jal func_80265D44 -/* 187290 802589B0 0040202D */ daddu $a0, $v0, $zero -/* 187294 802589B4 16020004 */ bne $s0, $v0, .L802589C8 -/* 187298 802589B8 00000000 */ nop -/* 18729C 802589BC 0C099751 */ jal func_80265D44 -/* 1872A0 802589C0 24040001 */ addiu $a0, $zero, 1 -/* 1872A4 802589C4 AEE20088 */ sw $v0, 0x88($s7) -.L802589C8: -/* 1872A8 802589C8 8EC20008 */ lw $v0, 8($s6) -/* 1872AC 802589CC 80420024 */ lb $v0, 0x24($v0) -/* 1872B0 802589D0 C6C20188 */ lwc1 $f2, 0x188($s6) -/* 1872B4 802589D4 44820000 */ mtc1 $v0, $f0 -/* 1872B8 802589D8 00000000 */ nop -/* 1872BC 802589DC 46800020 */ cvt.s.w $f0, $f0 -/* 1872C0 802589E0 46020002 */ mul.s $f0, $f0, $f2 -/* 1872C4 802589E4 00000000 */ nop -/* 1872C8 802589E8 86C40436 */ lh $a0, 0x436($s6) -/* 1872CC 802589EC 4600038D */ trunc.w.s $f14, $f0 -/* 1872D0 802589F0 E7AE0010 */ swc1 $f14, 0x10($sp) -/* 1872D4 802589F4 8EC20008 */ lw $v0, 8($s6) -/* 1872D8 802589F8 80420025 */ lb $v0, 0x25($v0) -/* 1872DC 802589FC C6C20188 */ lwc1 $f2, 0x188($s6) -/* 1872E0 80258A00 44820000 */ mtc1 $v0, $f0 -/* 1872E4 80258A04 00000000 */ nop -/* 1872E8 80258A08 46800020 */ cvt.s.w $f0, $f0 -/* 1872EC 80258A0C 46020002 */ mul.s $f0, $f0, $f2 -/* 1872F0 80258A10 00000000 */ nop -/* 1872F4 80258A14 4600038D */ trunc.w.s $f14, $f0 -/* 1872F8 80258A18 E7AE0014 */ swc1 $f14, 0x14($sp) -/* 1872FC 80258A1C 8EC20008 */ lw $v0, 8($s6) -/* 187300 80258A20 80420026 */ lb $v0, 0x26($v0) -/* 187304 80258A24 C6C20188 */ lwc1 $f2, 0x188($s6) -/* 187308 80258A28 44820000 */ mtc1 $v0, $f0 -/* 18730C 80258A2C 00000000 */ nop -/* 187310 80258A30 46800020 */ cvt.s.w $f0, $f0 -/* 187314 80258A34 46020002 */ mul.s $f0, $f0, $f2 -/* 187318 80258A38 00000000 */ nop -/* 18731C 80258A3C 4600038D */ trunc.w.s $f14, $f0 -/* 187320 80258A40 E7AE0018 */ swc1 $f14, 0x18($sp) -/* 187324 80258A44 8EC20008 */ lw $v0, 8($s6) -/* 187328 80258A48 80420027 */ lb $v0, 0x27($v0) -/* 18732C 80258A4C C6C20188 */ lwc1 $f2, 0x188($s6) -/* 187330 80258A50 44820000 */ mtc1 $v0, $f0 -/* 187334 80258A54 00000000 */ nop -/* 187338 80258A58 46800020 */ cvt.s.w $f0, $f0 -/* 18733C 80258A5C 46020002 */ mul.s $f0, $f0, $f2 -/* 187340 80258A60 00000000 */ nop -/* 187344 80258A64 4405A000 */ mfc1 $a1, $f20 -/* 187348 80258A68 4406C000 */ mfc1 $a2, $f24 -/* 18734C 80258A6C 4407B000 */ mfc1 $a3, $f22 -/* 187350 80258A70 4600038D */ trunc.w.s $f14, $f0 -/* 187354 80258A74 0C011DE3 */ jal set_status_icons_properties -/* 187358 80258A78 E7AE001C */ swc1 $f14, 0x1c($sp) -/* 18735C 80258A7C 92C20191 */ lbu $v0, 0x191($s6) -/* 187360 80258A80 C6C40188 */ lwc1 $f4, 0x188($s6) -/* 187364 80258A84 44821000 */ mtc1 $v0, $f2 -/* 187368 80258A88 00000000 */ nop -/* 18736C 80258A8C 468010A0 */ cvt.s.w $f2, $f2 -/* 187370 80258A90 46041082 */ mul.s $f2, $f2, $f4 -/* 187374 80258A94 00000000 */ nop -/* 187378 80258A98 92C20190 */ lbu $v0, 0x190($s6) -/* 18737C 80258A9C 44820000 */ mtc1 $v0, $f0 -/* 187380 80258AA0 00000000 */ nop -/* 187384 80258AA4 46800020 */ cvt.s.w $f0, $f0 -/* 187388 80258AA8 46040002 */ mul.s $f0, $f0, $f4 -/* 18738C 80258AAC 00000000 */ nop -/* 187390 80258AB0 86C40436 */ lh $a0, 0x436($s6) -/* 187394 80258AB4 4600138D */ trunc.w.s $f14, $f2 -/* 187398 80258AB8 44057000 */ mfc1 $a1, $f14 -/* 18739C 80258ABC 4600038D */ trunc.w.s $f14, $f0 -/* 1873A0 80258AC0 44067000 */ mfc1 $a2, $f14 -/* 1873A4 80258AC4 0C011DFD */ jal set_status_icons_offset -/* 1873A8 80258AC8 00000000 */ nop -/* 1873AC 80258ACC 86E20068 */ lh $v0, 0x68($s7) -/* 1873B0 80258AD0 44820000 */ mtc1 $v0, $f0 -/* 1873B4 80258AD4 00000000 */ nop -/* 1873B8 80258AD8 46800020 */ cvt.s.w $f0, $f0 -/* 1873BC 80258ADC 4600A500 */ add.s $f20, $f20, $f0 -/* 1873C0 80258AE0 86E2006A */ lh $v0, 0x6a($s7) -/* 1873C4 80258AE4 27B501E0 */ addiu $s5, $sp, 0x1e0 -/* 1873C8 80258AE8 44820000 */ mtc1 $v0, $f0 -/* 1873CC 80258AEC 00000000 */ nop -/* 1873D0 80258AF0 46800020 */ cvt.s.w $f0, $f0 -/* 1873D4 80258AF4 4600C600 */ add.s $f24, $f24, $f0 -/* 1873D8 80258AF8 4407B000 */ mfc1 $a3, $f22 -/* 1873DC 80258AFC 4405A000 */ mfc1 $a1, $f20 -/* 1873E0 80258B00 4406C000 */ mfc1 $a2, $f24 -/* 1873E4 80258B04 02A0202D */ daddu $a0, $s5, $zero -/* 1873E8 80258B08 AEE70060 */ sw $a3, 0x60($s7) -/* 1873EC 80258B0C AEE50058 */ sw $a1, 0x58($s7) -/* 1873F0 80258B10 0C019E40 */ jal guTranslateF -/* 1873F4 80258B14 AEE6005C */ sw $a2, 0x5c($s7) -/* 1873F8 80258B18 86C20168 */ lh $v0, 0x168($s6) -/* 1873FC 80258B1C C6C20188 */ lwc1 $f2, 0x188($s6) -/* 187400 80258B20 00021023 */ negu $v0, $v0 -/* 187404 80258B24 44820000 */ mtc1 $v0, $f0 -/* 187408 80258B28 00000000 */ nop -/* 18740C 80258B2C 46800020 */ cvt.s.w $f0, $f0 -/* 187410 80258B30 46020002 */ mul.s $f0, $f0, $f2 -/* 187414 80258B34 00000000 */ nop -/* 187418 80258B38 86C2016A */ lh $v0, 0x16a($s6) -/* 18741C 80258B3C 00021023 */ negu $v0, $v0 -/* 187420 80258B40 44050000 */ mfc1 $a1, $f0 -/* 187424 80258B44 44820000 */ mtc1 $v0, $f0 -/* 187428 80258B48 00000000 */ nop -/* 18742C 80258B4C 46800020 */ cvt.s.w $f0, $f0 -/* 187430 80258B50 46020002 */ mul.s $f0, $f0, $f2 -/* 187434 80258B54 00000000 */ nop -/* 187438 80258B58 86C2016C */ lh $v0, 0x16c($s6) -/* 18743C 80258B5C 00021023 */ negu $v0, $v0 -/* 187440 80258B60 44060000 */ mfc1 $a2, $f0 -/* 187444 80258B64 44820000 */ mtc1 $v0, $f0 -/* 187448 80258B68 00000000 */ nop -/* 18744C 80258B6C 46800020 */ cvt.s.w $f0, $f0 -/* 187450 80258B70 46020002 */ mul.s $f0, $f0, $f2 -/* 187454 80258B74 00000000 */ nop -/* 187458 80258B78 27B40160 */ addiu $s4, $sp, 0x160 -/* 18745C 80258B7C 44070000 */ mfc1 $a3, $f0 -/* 187460 80258B80 0C019E40 */ jal guTranslateF -/* 187464 80258B84 0280202D */ daddu $a0, $s4, $zero -/* 187468 80258B88 86C20168 */ lh $v0, 0x168($s6) -/* 18746C 80258B8C C6C20188 */ lwc1 $f2, 0x188($s6) -/* 187470 80258B90 44820000 */ mtc1 $v0, $f0 -/* 187474 80258B94 00000000 */ nop -/* 187478 80258B98 46800020 */ cvt.s.w $f0, $f0 -/* 18747C 80258B9C 46020002 */ mul.s $f0, $f0, $f2 -/* 187480 80258BA0 00000000 */ nop -/* 187484 80258BA4 86C2016A */ lh $v0, 0x16a($s6) -/* 187488 80258BA8 44050000 */ mfc1 $a1, $f0 -/* 18748C 80258BAC 44820000 */ mtc1 $v0, $f0 -/* 187490 80258BB0 00000000 */ nop -/* 187494 80258BB4 46800020 */ cvt.s.w $f0, $f0 -/* 187498 80258BB8 46020002 */ mul.s $f0, $f0, $f2 -/* 18749C 80258BBC 00000000 */ nop -/* 1874A0 80258BC0 86C2016C */ lh $v0, 0x16c($s6) -/* 1874A4 80258BC4 44060000 */ mfc1 $a2, $f0 -/* 1874A8 80258BC8 44820000 */ mtc1 $v0, $f0 -/* 1874AC 80258BCC 00000000 */ nop -/* 1874B0 80258BD0 46800020 */ cvt.s.w $f0, $f0 -/* 1874B4 80258BD4 46020002 */ mul.s $f0, $f0, $f2 -/* 1874B8 80258BD8 00000000 */ nop -/* 1874BC 80258BDC 27B301A0 */ addiu $s3, $sp, 0x1a0 -/* 1874C0 80258BE0 44070000 */ mfc1 $a3, $f0 -/* 1874C4 80258BE4 4480A000 */ mtc1 $zero, $f20 -/* 1874C8 80258BE8 0C019E40 */ jal guTranslateF -/* 1874CC 80258BEC 0260202D */ daddu $a0, $s3, $zero -/* 1874D0 80258BF0 3C013F80 */ lui $at, 0x3f80 -/* 1874D4 80258BF4 4481B000 */ mtc1 $at, $f22 -/* 1874D8 80258BF8 E7B40010 */ swc1 $f20, 0x10($sp) -/* 1874DC 80258BFC 8EC5015C */ lw $a1, 0x15c($s6) -/* 1874E0 80258C00 4407A000 */ mfc1 $a3, $f20 -/* 1874E4 80258C04 4406B000 */ mfc1 $a2, $f22 -/* 1874E8 80258C08 0C019EC8 */ jal guRotateF -/* 1874EC 80258C0C 27A40020 */ addiu $a0, $sp, 0x20 -/* 1874F0 80258C10 27B10060 */ addiu $s1, $sp, 0x60 -/* 1874F4 80258C14 E7B40010 */ swc1 $f20, 0x10($sp) -/* 1874F8 80258C18 8EC50160 */ lw $a1, 0x160($s6) -/* 1874FC 80258C1C 4406A000 */ mfc1 $a2, $f20 -/* 187500 80258C20 4407B000 */ mfc1 $a3, $f22 -/* 187504 80258C24 0C019EC8 */ jal guRotateF -/* 187508 80258C28 0220202D */ daddu $a0, $s1, $zero -/* 18750C 80258C2C 27B000A0 */ addiu $s0, $sp, 0xa0 -/* 187510 80258C30 4406A000 */ mfc1 $a2, $f20 -/* 187514 80258C34 0200202D */ daddu $a0, $s0, $zero -/* 187518 80258C38 E7B60010 */ swc1 $f22, 0x10($sp) -/* 18751C 80258C3C 8EC50164 */ lw $a1, 0x164($s6) -/* 187520 80258C40 0C019EC8 */ jal guRotateF -/* 187524 80258C44 00C0382D */ daddu $a3, $a2, $zero -/* 187528 80258C48 0220202D */ daddu $a0, $s1, $zero -/* 18752C 80258C4C 27A50020 */ addiu $a1, $sp, 0x20 -/* 187530 80258C50 27B10220 */ addiu $s1, $sp, 0x220 -/* 187534 80258C54 0C019D80 */ jal guMtxCatF -/* 187538 80258C58 0220302D */ daddu $a2, $s1, $zero -/* 18753C 80258C5C 0220202D */ daddu $a0, $s1, $zero -/* 187540 80258C60 0200282D */ daddu $a1, $s0, $zero -/* 187544 80258C64 27B200E0 */ addiu $s2, $sp, 0xe0 -/* 187548 80258C68 0C019D80 */ jal guMtxCatF -/* 18754C 80258C6C 0240302D */ daddu $a2, $s2, $zero -/* 187550 80258C70 C6C60170 */ lwc1 $f6, 0x170($s6) -/* 187554 80258C74 3C01802A */ lui $at, %hi(D_8029D390) -/* 187558 80258C78 D428D390 */ ldc1 $f8, %lo(D_8029D390)($at) -/* 18755C 80258C7C 460031A1 */ cvt.d.s $f6, $f6 -/* 187560 80258C80 46283182 */ mul.d $f6, $f6, $f8 -/* 187564 80258C84 00000000 */ nop -/* 187568 80258C88 C6C20174 */ lwc1 $f2, 0x174($s6) -/* 18756C 80258C8C 460010A1 */ cvt.d.s $f2, $f2 -/* 187570 80258C90 46281082 */ mul.d $f2, $f2, $f8 -/* 187574 80258C94 00000000 */ nop -/* 187578 80258C98 C6C40178 */ lwc1 $f4, 0x178($s6) -/* 18757C 80258C9C 46002121 */ cvt.d.s $f4, $f4 -/* 187580 80258CA0 46282102 */ mul.d $f4, $f4, $f8 -/* 187584 80258CA4 00000000 */ nop -/* 187588 80258CA8 C6C00188 */ lwc1 $f0, 0x188($s6) -/* 18758C 80258CAC 46000021 */ cvt.d.s $f0, $f0 -/* 187590 80258CB0 46203182 */ mul.d $f6, $f6, $f0 -/* 187594 80258CB4 00000000 */ nop -/* 187598 80258CB8 46201082 */ mul.d $f2, $f2, $f0 -/* 18759C 80258CBC 00000000 */ nop -/* 1875A0 80258CC0 82E20074 */ lb $v0, 0x74($s7) -/* 1875A4 80258CC4 44820000 */ mtc1 $v0, $f0 -/* 1875A8 80258CC8 00000000 */ nop -/* 1875AC 80258CCC 46800021 */ cvt.d.w $f0, $f0 -/* 1875B0 80258CD0 46201082 */ mul.d $f2, $f2, $f0 -/* 1875B4 80258CD4 00000000 */ nop -/* 1875B8 80258CD8 27B00120 */ addiu $s0, $sp, 0x120 -/* 1875BC 80258CDC 46202120 */ cvt.s.d $f4, $f4 -/* 1875C0 80258CE0 44072000 */ mfc1 $a3, $f4 -/* 1875C4 80258CE4 462031A0 */ cvt.s.d $f6, $f6 -/* 1875C8 80258CE8 44053000 */ mfc1 $a1, $f6 -/* 1875CC 80258CEC 462010A0 */ cvt.s.d $f2, $f2 -/* 1875D0 80258CF0 44061000 */ mfc1 $a2, $f2 -/* 1875D4 80258CF4 0C019DF0 */ jal guScaleF -/* 1875D8 80258CF8 0200202D */ daddu $a0, $s0, $zero -/* 1875DC 80258CFC 0200202D */ daddu $a0, $s0, $zero -/* 1875E0 80258D00 0280282D */ daddu $a1, $s4, $zero -/* 1875E4 80258D04 0C019D80 */ jal guMtxCatF -/* 1875E8 80258D08 0220302D */ daddu $a2, $s1, $zero -/* 1875EC 80258D0C 0220202D */ daddu $a0, $s1, $zero -/* 1875F0 80258D10 0240282D */ daddu $a1, $s2, $zero -/* 1875F4 80258D14 27B00260 */ addiu $s0, $sp, 0x260 -/* 1875F8 80258D18 0C019D80 */ jal guMtxCatF -/* 1875FC 80258D1C 0200302D */ daddu $a2, $s0, $zero -/* 187600 80258D20 0200202D */ daddu $a0, $s0, $zero -/* 187604 80258D24 0260282D */ daddu $a1, $s3, $zero -/* 187608 80258D28 0C019D80 */ jal guMtxCatF -/* 18760C 80258D2C 0220302D */ daddu $a2, $s1, $zero -/* 187610 80258D30 0220202D */ daddu $a0, $s1, $zero -/* 187614 80258D34 02A0282D */ daddu $a1, $s5, $zero -/* 187618 80258D38 0C019D80 */ jal guMtxCatF -/* 18761C 80258D3C 0200302D */ daddu $a2, $s0, $zero -/* 187620 80258D40 8EE50088 */ lw $a1, 0x88($s7) -/* 187624 80258D44 13C50004 */ beq $fp, $a1, .L80258D58 -/* 187628 80258D48 00000000 */ nop -/* 18762C 80258D4C 8EE60090 */ lw $a2, 0x90($s7) -/* 187630 80258D50 0C0B76A3 */ jal spr_update_player_sprite -/* 187634 80258D54 0000202D */ daddu $a0, $zero, $zero -.L80258D58: -/* 187638 80258D58 3C014334 */ lui $at, 0x4334 -/* 18763C 80258D5C 4481A000 */ mtc1 $at, $f20 -/* 187640 80258D60 00000000 */ nop -/* 187644 80258D64 4614D500 */ add.s $f20, $f26, $f20 -/* 187648 80258D68 0C00A6C9 */ jal clamp_angle -/* 18764C 80258D6C 4600A306 */ mov.s $f12, $f20 -/* 187650 80258D70 0000202D */ daddu $a0, $zero, $zero -/* 187654 80258D74 02E0282D */ daddu $a1, $s7, $zero -/* 187658 80258D78 4600038D */ trunc.w.s $f14, $f0 -/* 18765C 80258D7C 44067000 */ mfc1 $a2, $f14 -/* 187660 80258D80 0C097210 */ jal func_8025C840 -/* 187664 80258D84 0080382D */ daddu $a3, $a0, $zero -/* 187668 80258D88 0C00A6C9 */ jal clamp_angle -/* 18766C 80258D8C 4600A306 */ mov.s $f12, $f20 -/* 187670 80258D90 0000202D */ daddu $a0, $zero, $zero -/* 187674 80258D94 02E0282D */ daddu $a1, $s7, $zero -/* 187678 80258D98 4600038D */ trunc.w.s $f14, $f0 -/* 18767C 80258D9C 44067000 */ mfc1 $a2, $f14 -/* 187680 80258DA0 0C097332 */ jal func_8025CCC8 -/* 187684 80258DA4 0080382D */ daddu $a3, $a0, $zero -/* 187688 80258DA8 0C00A6C9 */ jal clamp_angle -/* 18768C 80258DAC 4600A306 */ mov.s $f12, $f20 -/* 187690 80258DB0 0000202D */ daddu $a0, $zero, $zero -/* 187694 80258DB4 02E0282D */ daddu $a1, $s7, $zero -/* 187698 80258DB8 4600038D */ trunc.w.s $f14, $f0 -/* 18769C 80258DBC 44067000 */ mfc1 $a2, $f14 -/* 1876A0 80258DC0 0200382D */ daddu $a3, $s0, $zero -/* 1876A4 80258DC4 0C09647B */ jal func_802591EC -/* 1876A8 80258DC8 AFA00010 */ sw $zero, 0x10($sp) -/* 1876AC 80258DCC 0C0973B2 */ jal _add_part_decoration -/* 1876B0 80258DD0 02E0202D */ daddu $a0, $s7, $zero -/* 1876B4 80258DD4 8FBF02C4 */ lw $ra, 0x2c4($sp) -/* 1876B8 80258DD8 8FBE02C0 */ lw $fp, 0x2c0($sp) -/* 1876BC 80258DDC 8FB702BC */ lw $s7, 0x2bc($sp) -/* 1876C0 80258DE0 8FB602B8 */ lw $s6, 0x2b8($sp) -/* 1876C4 80258DE4 8FB502B4 */ lw $s5, 0x2b4($sp) -/* 1876C8 80258DE8 8FB402B0 */ lw $s4, 0x2b0($sp) -/* 1876CC 80258DEC 8FB302AC */ lw $s3, 0x2ac($sp) -/* 1876D0 80258DF0 8FB202A8 */ lw $s2, 0x2a8($sp) -/* 1876D4 80258DF4 8FB102A4 */ lw $s1, 0x2a4($sp) -/* 1876D8 80258DF8 8FB002A0 */ lw $s0, 0x2a0($sp) -/* 1876DC 80258DFC D7BA02E0 */ ldc1 $f26, 0x2e0($sp) -/* 1876E0 80258E00 D7B802D8 */ ldc1 $f24, 0x2d8($sp) -/* 1876E4 80258E04 D7B602D0 */ ldc1 $f22, 0x2d0($sp) -/* 1876E8 80258E08 D7B402C8 */ ldc1 $f20, 0x2c8($sp) -/* 1876EC 80258E0C 03E00008 */ jr $ra -/* 1876F0 80258E10 27BD02E8 */ addiu $sp, $sp, 0x2e8 diff --git a/ver/us/asm/nonmatchings/os/initialize/__createSpeedParam.s b/ver/us/asm/nonmatchings/os/initialize/__createSpeedParam.s deleted file mode 100644 index 65a06045a8..0000000000 --- a/ver/us/asm/nonmatchings/os/initialize/__createSpeedParam.s +++ /dev/null @@ -1,50 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel __createSpeedParam -/* 45A50 8006A650 3C05A460 */ lui $a1, 0xa460 -/* 45A54 8006A654 34A50014 */ ori $a1, $a1, 0x14 -/* 45A58 8006A658 3C06A460 */ lui $a2, 0xa460 -/* 45A5C 8006A65C 34C60018 */ ori $a2, $a2, 0x18 -/* 45A60 8006A660 3C07A460 */ lui $a3, 0xa460 -/* 45A64 8006A664 34E7001C */ ori $a3, $a3, 0x1c -/* 45A68 8006A668 3C08A460 */ lui $t0, 0xa460 -/* 45A6C 8006A66C 35080020 */ ori $t0, $t0, 0x20 -/* 45A70 8006A670 3C09A460 */ lui $t1, 0xa460 -/* 45A74 8006A674 35290024 */ ori $t1, $t1, 0x24 -/* 45A78 8006A678 3C04A460 */ lui $a0, 0xa460 -/* 45A7C 8006A67C 34840028 */ ori $a0, $a0, 0x28 -/* 45A80 8006A680 3C03A460 */ lui $v1, 0xa460 -/* 45A84 8006A684 3463002C */ ori $v1, $v1, 0x2c -/* 45A88 8006A688 3C02A460 */ lui $v0, 0xa460 -/* 45A8C 8006A68C 34420030 */ ori $v0, $v0, 0x30 -/* 45A90 8006A690 8CA50000 */ lw $a1, ($a1) -/* 45A94 8006A694 8CC60000 */ lw $a2, ($a2) -/* 45A98 8006A698 8CE70000 */ lw $a3, ($a3) -/* 45A9C 8006A69C 8D080000 */ lw $t0, ($t0) -/* 45AA0 8006A6A0 8D290000 */ lw $t1, ($t1) -/* 45AA4 8006A6A4 8C840000 */ lw $a0, ($a0) -/* 45AA8 8006A6A8 8C630000 */ lw $v1, ($v1) -/* 45AAC 8006A6AC 8C4A0000 */ lw $t2, ($v0) -/* 45AB0 8006A6B0 24020007 */ addiu $v0, $zero, 7 -/* 45AB4 8006A6B4 3C01800B */ lui $at, %hi(D_800B451C) -/* 45AB8 8006A6B8 A022451C */ sb $v0, %lo(D_800B451C)($at) -/* 45ABC 8006A6BC 3C01800B */ lui $at, %hi(D_800B1B0C) -/* 45AC0 8006A6C0 A0221B0C */ sb $v0, %lo(D_800B1B0C)($at) -/* 45AC4 8006A6C4 3C01800B */ lui $at, %hi(D_800B451D) -/* 45AC8 8006A6C8 A025451D */ sb $a1, %lo(D_800B451D)($at) -/* 45ACC 8006A6CC 3C01800B */ lui $at, %hi(D_800B4520) -/* 45AD0 8006A6D0 A0264520 */ sb $a2, %lo(D_800B4520)($at) -/* 45AD4 8006A6D4 3C01800B */ lui $at, %hi(D_800B451E) -/* 45AD8 8006A6D8 A027451E */ sb $a3, %lo(D_800B451E)($at) -/* 45ADC 8006A6DC 3C01800B */ lui $at, %hi(D_800B451F) -/* 45AE0 8006A6E0 A028451F */ sb $t0, %lo(D_800B451F)($at) -/* 45AE4 8006A6E4 3C01800B */ lui $at, %hi(D_800B1B0D) -/* 45AE8 8006A6E8 A0291B0D */ sb $t1, %lo(D_800B1B0D)($at) -/* 45AEC 8006A6EC 3C01800B */ lui $at, %hi(D_800B1B10) -/* 45AF0 8006A6F0 A0241B10 */ sb $a0, %lo(D_800B1B10)($at) -/* 45AF4 8006A6F4 3C01800B */ lui $at, %hi(D_800B1B0E) -/* 45AF8 8006A6F8 A0231B0E */ sb $v1, %lo(D_800B1B0E)($at) -/* 45AFC 8006A6FC 3C01800B */ lui $at, %hi(D_800B1B0F) -/* 45B00 8006A700 03E00008 */ jr $ra -/* 45B04 8006A704 A02A1B0F */ sb $t2, %lo(D_800B1B0F)($at) diff --git a/ver/us/asm/nonmatchings/os/initialize/__osInitialize_common.s b/ver/us/asm/nonmatchings/os/initialize/__osInitialize_common.s deleted file mode 100644 index 07c07f066a..0000000000 --- a/ver/us/asm/nonmatchings/os/initialize/__osInitialize_common.s +++ /dev/null @@ -1,194 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel __osInitialize_common -/* 45B08 8006A708 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 45B0C 8006A70C 24020001 */ addiu $v0, $zero, 1 -/* 45B10 8006A710 AFBF0018 */ sw $ra, 0x18($sp) -/* 45B14 8006A714 3C01800A */ lui $at, %hi(D_8009A660) -/* 45B18 8006A718 0C01B19C */ jal __osGetSR -/* 45B1C 8006A71C AC22A660 */ sw $v0, %lo(D_8009A660)($at) -/* 45B20 8006A720 3C042000 */ lui $a0, 0x2000 -/* 45B24 8006A724 0C01B1A8 */ jal __osSetSR -/* 45B28 8006A728 00442025 */ or $a0, $v0, $a0 -/* 45B2C 8006A72C 3C040100 */ lui $a0, 0x100 -/* 45B30 8006A730 0C01B1A4 */ jal __osSetFpcCsr -/* 45B34 8006A734 34840800 */ ori $a0, $a0, 0x800 -/* 45B38 8006A738 0C01B1AC */ jal __osSetWatchLo -/* 45B3C 8006A73C 3C040490 */ lui $a0, 0x490 -/* 45B40 8006A740 3C041FC0 */ lui $a0, 0x1fc0 -.L8006A744: -/* 45B44 8006A744 348407FC */ ori $a0, $a0, 0x7fc -/* 45B48 8006A748 0C01B1F0 */ jal __osSiRawReadIo -/* 45B4C 8006A74C 27A50010 */ addiu $a1, $sp, 0x10 -/* 45B50 8006A750 1440FFFC */ bnez $v0, .L8006A744 -/* 45B54 8006A754 3C041FC0 */ lui $a0, 0x1fc0 -.L8006A758: -/* 45B58 8006A758 8FA50010 */ lw $a1, 0x10($sp) -/* 45B5C 8006A75C 3C041FC0 */ lui $a0, 0x1fc0 -/* 45B60 8006A760 348407FC */ ori $a0, $a0, 0x7fc -/* 45B64 8006A764 0C01B204 */ jal __osSiRawWriteIo -/* 45B68 8006A768 34A50008 */ ori $a1, $a1, 8 -/* 45B6C 8006A76C 1440FFFA */ bnez $v0, .L8006A758 -/* 45B70 8006A770 00000000 */ nop -/* 45B74 8006A774 3C028007 */ lui $v0, %hi(func_8006A9F0) -/* 45B78 8006A778 2442A9F0 */ addiu $v0, $v0, %lo(func_8006A9F0) -/* 45B7C 8006A77C 3C068000 */ lui $a2, 0x8000 -/* 45B80 8006A780 8C430000 */ lw $v1, ($v0) -/* 45B84 8006A784 8C440004 */ lw $a0, 4($v0) -/* 45B88 8006A788 8C450008 */ lw $a1, 8($v0) -/* 45B8C 8006A78C ACC30000 */ sw $v1, ($a2) -/* 45B90 8006A790 ACC40004 */ sw $a0, 4($a2) -/* 45B94 8006A794 ACC50008 */ sw $a1, 8($a2) -/* 45B98 8006A798 8C43000C */ lw $v1, 0xc($v0) -/* 45B9C 8006A79C ACC3000C */ sw $v1, 0xc($a2) -/* 45BA0 8006A7A0 3C068000 */ lui $a2, 0x8000 -/* 45BA4 8006A7A4 34C60080 */ ori $a2, $a2, 0x80 -/* 45BA8 8006A7A8 8C430000 */ lw $v1, ($v0) -/* 45BAC 8006A7AC 8C440004 */ lw $a0, 4($v0) -/* 45BB0 8006A7B0 8C450008 */ lw $a1, 8($v0) -/* 45BB4 8006A7B4 ACC30000 */ sw $v1, ($a2) -/* 45BB8 8006A7B8 ACC40004 */ sw $a0, 4($a2) -/* 45BBC 8006A7BC ACC50008 */ sw $a1, 8($a2) -/* 45BC0 8006A7C0 8C43000C */ lw $v1, 0xc($v0) -/* 45BC4 8006A7C4 ACC3000C */ sw $v1, 0xc($a2) -/* 45BC8 8006A7C8 3C068000 */ lui $a2, 0x8000 -/* 45BCC 8006A7CC 34C60100 */ ori $a2, $a2, 0x100 -/* 45BD0 8006A7D0 8C430000 */ lw $v1, ($v0) -/* 45BD4 8006A7D4 8C440004 */ lw $a0, 4($v0) -/* 45BD8 8006A7D8 8C450008 */ lw $a1, 8($v0) -/* 45BDC 8006A7DC ACC30000 */ sw $v1, ($a2) -/* 45BE0 8006A7E0 ACC40004 */ sw $a0, 4($a2) -/* 45BE4 8006A7E4 ACC50008 */ sw $a1, 8($a2) -/* 45BE8 8006A7E8 8C43000C */ lw $v1, 0xc($v0) -/* 45BEC 8006A7EC ACC3000C */ sw $v1, 0xc($a2) -/* 45BF0 8006A7F0 3C068000 */ lui $a2, 0x8000 -/* 45BF4 8006A7F4 34C60180 */ ori $a2, $a2, 0x180 -/* 45BF8 8006A7F8 8C430000 */ lw $v1, ($v0) -/* 45BFC 8006A7FC 8C440004 */ lw $a0, 4($v0) -/* 45C00 8006A800 8C450008 */ lw $a1, 8($v0) -/* 45C04 8006A804 ACC30000 */ sw $v1, ($a2) -/* 45C08 8006A808 ACC40004 */ sw $a0, 4($a2) -/* 45C0C 8006A80C ACC50008 */ sw $a1, 8($a2) -/* 45C10 8006A810 8C43000C */ lw $v1, 0xc($v0) -/* 45C14 8006A814 ACC3000C */ sw $v1, 0xc($a2) -/* 45C18 8006A818 3C048000 */ lui $a0, 0x8000 -/* 45C1C 8006A81C 0C018614 */ jal osWritebackDCache -/* 45C20 8006A820 24050190 */ addiu $a1, $zero, 0x190 -/* 45C24 8006A824 3C048000 */ lui $a0, 0x8000 -/* 45C28 8006A828 0C0185F4 */ jal osInvalICache -/* 45C2C 8006A82C 24050190 */ addiu $a1, $zero, 0x190 -/* 45C30 8006A830 3C05A460 */ lui $a1, 0xa460 -/* 45C34 8006A834 34A50014 */ ori $a1, $a1, 0x14 -/* 45C38 8006A838 3C06A460 */ lui $a2, 0xa460 -/* 45C3C 8006A83C 34C60018 */ ori $a2, $a2, 0x18 -/* 45C40 8006A840 3C07A460 */ lui $a3, 0xa460 -/* 45C44 8006A844 34E7001C */ ori $a3, $a3, 0x1c -/* 45C48 8006A848 3C08A460 */ lui $t0, 0xa460 -/* 45C4C 8006A84C 35080020 */ ori $t0, $t0, 0x20 -/* 45C50 8006A850 3C09A460 */ lui $t1, 0xa460 -/* 45C54 8006A854 35290024 */ ori $t1, $t1, 0x24 -/* 45C58 8006A858 3C04A460 */ lui $a0, 0xa460 -/* 45C5C 8006A85C 34840028 */ ori $a0, $a0, 0x28 -/* 45C60 8006A860 3C03A460 */ lui $v1, 0xa460 -/* 45C64 8006A864 3463002C */ ori $v1, $v1, 0x2c -/* 45C68 8006A868 3C02A460 */ lui $v0, 0xa460 -/* 45C6C 8006A86C 34420030 */ ori $v0, $v0, 0x30 -/* 45C70 8006A870 8CA50000 */ lw $a1, ($a1) -/* 45C74 8006A874 8CC60000 */ lw $a2, ($a2) -/* 45C78 8006A878 8CE70000 */ lw $a3, ($a3) -/* 45C7C 8006A87C 8D080000 */ lw $t0, ($t0) -/* 45C80 8006A880 8D290000 */ lw $t1, ($t1) -/* 45C84 8006A884 8C840000 */ lw $a0, ($a0) -/* 45C88 8006A888 8C630000 */ lw $v1, ($v1) -/* 45C8C 8006A88C 8C4A0000 */ lw $t2, ($v0) -/* 45C90 8006A890 24020007 */ addiu $v0, $zero, 7 -/* 45C94 8006A894 3C01800B */ lui $at, %hi(D_800B451C) -/* 45C98 8006A898 A022451C */ sb $v0, %lo(D_800B451C)($at) -/* 45C9C 8006A89C 3C01800B */ lui $at, %hi(D_800B1B0C) -/* 45CA0 8006A8A0 A0221B0C */ sb $v0, %lo(D_800B1B0C)($at) -/* 45CA4 8006A8A4 3C01800B */ lui $at, %hi(D_800B451D) -/* 45CA8 8006A8A8 A025451D */ sb $a1, %lo(D_800B451D)($at) -/* 45CAC 8006A8AC 3C01800B */ lui $at, %hi(D_800B4520) -/* 45CB0 8006A8B0 A0264520 */ sb $a2, %lo(D_800B4520)($at) -/* 45CB4 8006A8B4 3C01800B */ lui $at, %hi(D_800B451E) -/* 45CB8 8006A8B8 A027451E */ sb $a3, %lo(D_800B451E)($at) -/* 45CBC 8006A8BC 3C01800B */ lui $at, %hi(D_800B451F) -/* 45CC0 8006A8C0 A028451F */ sb $t0, %lo(D_800B451F)($at) -/* 45CC4 8006A8C4 3C01800B */ lui $at, %hi(D_800B1B0D) -/* 45CC8 8006A8C8 A0291B0D */ sb $t1, %lo(D_800B1B0D)($at) -/* 45CCC 8006A8CC 3C01800B */ lui $at, %hi(D_800B1B10) -/* 45CD0 8006A8D0 A0241B10 */ sb $a0, %lo(D_800B1B10)($at) -/* 45CD4 8006A8D4 3C01800B */ lui $at, %hi(D_800B1B0E) -/* 45CD8 8006A8D8 A0231B0E */ sb $v1, %lo(D_800B1B0E)($at) -/* 45CDC 8006A8DC 3C01800B */ lui $at, %hi(D_800B1B0F) -/* 45CE0 8006A8E0 0C019A58 */ jal osUnmapTLBAll -/* 45CE4 8006A8E4 A02A1B0F */ sb $t2, %lo(D_800B1B0F)($at) -/* 45CE8 8006A8E8 0C01B28C */ jal osMapTLBRdb -/* 45CEC 8006A8EC 00000000 */ nop -/* 45CF0 8006A8F0 3C028009 */ lui $v0, %hi(D_800958F0) -/* 45CF4 8006A8F4 8C4258F0 */ lw $v0, %lo(D_800958F0)($v0) -/* 45CF8 8006A8F8 3C038009 */ lui $v1, %hi(D_800958F4) -/* 45CFC 8006A8FC 8C6358F4 */ lw $v1, %lo(D_800958F4)($v1) -/* 45D00 8006A900 00022040 */ sll $a0, $v0, 1 -/* 45D04 8006A904 000337C2 */ srl $a2, $v1, 0x1f -/* 45D08 8006A908 00862025 */ or $a0, $a0, $a2 -/* 45D0C 8006A90C 00032840 */ sll $a1, $v1, 1 -/* 45D10 8006A910 00A32821 */ addu $a1, $a1, $v1 -/* 45D14 8006A914 00A3302B */ sltu $a2, $a1, $v1 -/* 45D18 8006A918 00822021 */ addu $a0, $a0, $v0 -/* 45D1C 8006A91C 00862021 */ addu $a0, $a0, $a2 -/* 45D20 8006A920 24060000 */ addiu $a2, $zero, 0 -/* 45D24 8006A924 0C01B8C4 */ jal __udivdi3 -/* 45D28 8006A928 24070004 */ addiu $a3, $zero, 4 -/* 45D2C 8006A92C 3C048000 */ lui $a0, %hi(D_8000030C) -/* 45D30 8006A930 8C84030C */ lw $a0, %lo(D_8000030C)($a0) -/* 45D34 8006A934 3C018009 */ lui $at, %hi(D_800958F0) -/* 45D38 8006A938 AC2258F0 */ sw $v0, %lo(D_800958F0)($at) -/* 45D3C 8006A93C 3C018009 */ lui $at, %hi(D_800958F4) -/* 45D40 8006A940 14800005 */ bnez $a0, .L8006A958 -/* 45D44 8006A944 AC2358F4 */ sw $v1, %lo(D_800958F4)($at) -/* 45D48 8006A948 3C048000 */ lui $a0, %hi(D_8000031C) -/* 45D4C 8006A94C 2484031C */ addiu $a0, $a0, %lo(D_8000031C) -/* 45D50 8006A950 0C01925C */ jal bzero -/* 45D54 8006A954 24050040 */ addiu $a1, $zero, 0x40 -.L8006A958: -/* 45D58 8006A958 3C038000 */ lui $v1, %hi(osTvType) -/* 45D5C 8006A95C 8C630300 */ lw $v1, %lo(osTvType)($v1) -/* 45D60 8006A960 54600004 */ bnel $v1, $zero, .L8006A974 -/* 45D64 8006A964 24020002 */ addiu $v0, $zero, 2 -/* 45D68 8006A968 3C0202F5 */ lui $v0, 0x2f5 -/* 45D6C 8006A96C 0801AA62 */ j .L8006A988 -/* 45D70 8006A970 3442B2D2 */ ori $v0, $v0, 0xb2d2 -.L8006A974: -/* 45D74 8006A974 14620003 */ bne $v1, $v0, .L8006A984 -/* 45D78 8006A978 3C0202E6 */ lui $v0, 0x2e6 -/* 45D7C 8006A97C 0801AA62 */ j .L8006A988 -/* 45D80 8006A980 3442025C */ ori $v0, $v0, 0x25c -.L8006A984: -/* 45D84 8006A984 3442D354 */ ori $v0, $v0, 0xd354 -.L8006A988: -/* 45D88 8006A988 3C018009 */ lui $at, %hi(osViClock) -/* 45D8C 8006A98C 0C01B198 */ jal __osGetCause -/* 45D90 8006A990 AC2258F8 */ sw $v0, %lo(osViClock)($at) -/* 45D94 8006A994 30421000 */ andi $v0, $v0, 0x1000 -/* 45D98 8006A998 10400003 */ beqz $v0, .L8006A9A8 -/* 45D9C 8006A99C 3C03A450 */ lui $v1, 0xa450 -.L8006A9A0: -/* 45DA0 8006A9A0 0801AA68 */ j .L8006A9A0 -/* 45DA4 8006A9A4 00000000 */ nop -.L8006A9A8: -/* 45DA8 8006A9A8 34630008 */ ori $v1, $v1, 8 -/* 45DAC 8006A9AC 3C04A450 */ lui $a0, 0xa450 -/* 45DB0 8006A9B0 34840010 */ ori $a0, $a0, 0x10 -/* 45DB4 8006A9B4 3C05A450 */ lui $a1, 0xa450 -/* 45DB8 8006A9B8 34A50014 */ ori $a1, $a1, 0x14 -/* 45DBC 8006A9BC 24020001 */ addiu $v0, $zero, 1 -/* 45DC0 8006A9C0 AC620000 */ sw $v0, ($v1) -/* 45DC4 8006A9C4 24023FFF */ addiu $v0, $zero, 0x3fff -/* 45DC8 8006A9C8 AC820000 */ sw $v0, ($a0) -/* 45DCC 8006A9CC 2402000F */ addiu $v0, $zero, 0xf -/* 45DD0 8006A9D0 ACA20000 */ sw $v0, ($a1) -/* 45DD4 8006A9D4 8FBF0018 */ lw $ra, 0x18($sp) -/* 45DD8 8006A9D8 03E00008 */ jr $ra -/* 45DDC 8006A9DC 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/ver/us/asm/nonmatchings/os/vi/__osViInit.s b/ver/us/asm/nonmatchings/os/vi/__osViInit.s deleted file mode 100644 index dbdfcdf1fe..0000000000 --- a/ver/us/asm/nonmatchings/os/vi/__osViInit.s +++ /dev/null @@ -1,77 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel __osViInit -/* 47E90 8006CA90 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 47E94 8006CA94 AFB00010 */ sw $s0, 0x10($sp) -/* 47E98 8006CA98 3C108009 */ lui $s0, %hi(vi) -/* 47E9C 8006CA9C 26105970 */ addiu $s0, $s0, %lo(vi) -/* 47EA0 8006CAA0 02002021 */ addu $a0, $s0, $zero -/* 47EA4 8006CAA4 AFBF0014 */ sw $ra, 0x14($sp) -/* 47EA8 8006CAA8 0C01925C */ jal bzero -/* 47EAC 8006CAAC 24050060 */ addiu $a1, $zero, 0x60 -/* 47EB0 8006CAB0 3C038000 */ lui $v1, %hi(osTvType) -/* 47EB4 8006CAB4 8C630300 */ lw $v1, %lo(osTvType)($v1) -/* 47EB8 8006CAB8 3C018009 */ lui $at, %hi(__osViCurr) -/* 47EBC 8006CABC AC3059D0 */ sw $s0, %lo(__osViCurr)($at) -/* 47EC0 8006CAC0 26100030 */ addiu $s0, $s0, 0x30 -/* 47EC4 8006CAC4 24020001 */ addiu $v0, $zero, 1 -/* 47EC8 8006CAC8 3C018009 */ lui $at, %hi(D_800959A2) -/* 47ECC 8006CACC A42259A2 */ sh $v0, %lo(D_800959A2)($at) -/* 47ED0 8006CAD0 3C018009 */ lui $at, %hi(D_80095972) -/* 47ED4 8006CAD4 A4225972 */ sh $v0, %lo(D_80095972)($at) -/* 47ED8 8006CAD8 3C028000 */ lui $v0, 0x8000 -/* 47EDC 8006CADC 3C018009 */ lui $at, %hi(__osViNext) -/* 47EE0 8006CAE0 AC3059D4 */ sw $s0, %lo(__osViNext)($at) -/* 47EE4 8006CAE4 3C018009 */ lui $at, %hi(D_800959A4) -/* 47EE8 8006CAE8 AC2259A4 */ sw $v0, %lo(D_800959A4)($at) -/* 47EEC 8006CAEC 3C018009 */ lui $at, %hi(D_80095974) -/* 47EF0 8006CAF0 AC225974 */ sw $v0, %lo(D_80095974)($at) -/* 47EF4 8006CAF4 14600004 */ bnez $v1, .L8006CB08 -/* 47EF8 8006CAF8 24020002 */ addiu $v0, $zero, 2 -/* 47EFC 8006CAFC 3C028009 */ lui $v0, %hi(D_800959E0) -/* 47F00 8006CB00 0801B2C9 */ j .L8006CB24 -/* 47F04 8006CB04 244259E0 */ addiu $v0, $v0, %lo(D_800959E0) -.L8006CB08: -/* 47F08 8006CB08 14620004 */ bne $v1, $v0, .L8006CB1C -/* 47F0C 8006CB0C 00000000 */ nop -/* 47F10 8006CB10 3C028009 */ lui $v0, %hi(_osViModeMPalLan1) -/* 47F14 8006CB14 0801B2C9 */ j .L8006CB24 -/* 47F18 8006CB18 24425870 */ addiu $v0, $v0, %lo(_osViModeMPalLan1) -.L8006CB1C: -/* 47F1C 8006CB1C 3C028009 */ lui $v0, %hi(_osViModeNtscLan1) -/* 47F20 8006CB20 24425820 */ addiu $v0, $v0, %lo(_osViModeNtscLan1) -.L8006CB24: -/* 47F24 8006CB24 3C018009 */ lui $at, %hi(D_800959A8) -/* 47F28 8006CB28 AC2259A8 */ sw $v0, %lo(D_800959A8)($at) -/* 47F2C 8006CB2C 3C038009 */ lui $v1, %hi(__osViNext) -/* 47F30 8006CB30 8C6359D4 */ lw $v1, %lo(__osViNext)($v1) -/* 47F34 8006CB34 8C640008 */ lw $a0, 8($v1) -/* 47F38 8006CB38 24020020 */ addiu $v0, $zero, 0x20 -/* 47F3C 8006CB3C A4620000 */ sh $v0, ($v1) -/* 47F40 8006CB40 8C820004 */ lw $v0, 4($a0) -/* 47F44 8006CB44 3C04A440 */ lui $a0, 0xa440 -/* 47F48 8006CB48 34840010 */ ori $a0, $a0, 0x10 -/* 47F4C 8006CB4C AC62000C */ sw $v0, 0xc($v1) -/* 47F50 8006CB50 8C820000 */ lw $v0, ($a0) -/* 47F54 8006CB54 2C42000B */ sltiu $v0, $v0, 0xb -/* 47F58 8006CB58 14400007 */ bnez $v0, .L8006CB78 -/* 47F5C 8006CB5C 3C02A440 */ lui $v0, 0xa440 -/* 47F60 8006CB60 3C03A440 */ lui $v1, 0xa440 -/* 47F64 8006CB64 34630010 */ ori $v1, $v1, 0x10 -.L8006CB68: -/* 47F68 8006CB68 8C620000 */ lw $v0, ($v1) -/* 47F6C 8006CB6C 2C42000B */ sltiu $v0, $v0, 0xb -/* 47F70 8006CB70 1040FFFD */ beqz $v0, .L8006CB68 -/* 47F74 8006CB74 3C02A440 */ lui $v0, 0xa440 -.L8006CB78: -/* 47F78 8006CB78 AC400000 */ sw $zero, ($v0) -/* 47F7C 8006CB7C 0C019C1C */ jal __osViSwapContext -/* 47F80 8006CB80 00000000 */ nop -/* 47F84 8006CB84 8FBF0014 */ lw $ra, 0x14($sp) -/* 47F88 8006CB88 8FB00010 */ lw $s0, 0x10($sp) -/* 47F8C 8006CB8C 03E00008 */ jr $ra -/* 47F90 8006CB90 27BD0018 */ addiu $sp, $sp, 0x18 -/* 47F94 8006CB94 00000000 */ nop -/* 47F98 8006CB98 00000000 */ nop -/* 47F9C 8006CB9C 00000000 */ nop diff --git a/ver/us/asm/nonmatchings/os/xldtob/_Genld.s b/ver/us/asm/nonmatchings/os/xldtob/_Genld.s deleted file mode 100644 index 4727eef247..0000000000 --- a/ver/us/asm/nonmatchings/os/xldtob/_Genld.s +++ /dev/null @@ -1,403 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.section .rodata - -dlabel D_80099E30 -.ascii "0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - -.section .text - -glabel _Genld -/* 474B4 8006C0B4 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 474B8 8006C0B8 AFB20018 */ sw $s2, 0x18($sp) -/* 474BC 8006C0BC 00C09021 */ addu $s2, $a2, $zero -/* 474C0 8006C0C0 8FA60040 */ lw $a2, 0x40($sp) -/* 474C4 8006C0C4 AFB10014 */ sw $s1, 0x14($sp) -/* 474C8 8006C0C8 00808821 */ addu $s1, $a0, $zero -/* 474CC 8006C0CC AFB3001C */ sw $s3, 0x1c($sp) -/* 474D0 8006C0D0 00A09821 */ addu $s3, $a1, $zero -/* 474D4 8006C0D4 AFB50024 */ sw $s5, 0x24($sp) -/* 474D8 8006C0D8 00E0A821 */ addu $s5, $a3, $zero -/* 474DC 8006C0DC 00073C00 */ sll $a3, $a3, 0x10 -/* 474E0 8006C0E0 AFBF0028 */ sw $ra, 0x28($sp) -/* 474E4 8006C0E4 AFB40020 */ sw $s4, 0x20($sp) -/* 474E8 8006C0E8 AFB00010 */ sw $s0, 0x10($sp) -/* 474EC 8006C0EC 1CE00004 */ bgtz $a3, .L8006C100 -/* 474F0 8006C0F0 00C0A021 */ addu $s4, $a2, $zero -/* 474F4 8006C0F4 24150001 */ addiu $s5, $zero, 1 -/* 474F8 8006C0F8 3C12800A */ lui $s2, %hi(D_80099E30) -/* 474FC 8006C0FC 26529E30 */ addiu $s2, $s2, %lo(D_80099E30) -.L8006C100: -/* 47500 8006C100 00051600 */ sll $v0, $a1, 0x18 -/* 47504 8006C104 00022603 */ sra $a0, $v0, 0x18 -/* 47508 8006C108 24050066 */ addiu $a1, $zero, 0x66 -/* 4750C 8006C10C 1085000F */ beq $a0, $a1, .L8006C14C -/* 47510 8006C110 38830067 */ xori $v1, $a0, 0x67 -/* 47514 8006C114 2C630001 */ sltiu $v1, $v1, 1 -/* 47518 8006C118 38820047 */ xori $v0, $a0, 0x47 -/* 4751C 8006C11C 2C420001 */ sltiu $v0, $v0, 1 -/* 47520 8006C120 00621825 */ or $v1, $v1, $v0 -/* 47524 8006C124 106000B4 */ beqz $v1, .L8006C3F8 -/* 47528 8006C128 00061400 */ sll $v0, $a2, 0x10 -/* 4752C 8006C12C 00021C03 */ sra $v1, $v0, 0x10 -/* 47530 8006C130 2862FFFC */ slti $v0, $v1, -4 -/* 47534 8006C134 1440009B */ bnez $v0, .L8006C3A4 -/* 47538 8006C138 00131600 */ sll $v0, $s3, 0x18 -/* 4753C 8006C13C 8E220024 */ lw $v0, 0x24($s1) -/* 47540 8006C140 0062102A */ slt $v0, $v1, $v0 -/* 47544 8006C144 10400097 */ beqz $v0, .L8006C3A4 -/* 47548 8006C148 00131600 */ sll $v0, $s3, 0x18 -.L8006C14C: -/* 4754C 8006C14C 10850011 */ beq $a0, $a1, .L8006C194 -/* 47550 8006C150 24D40001 */ addiu $s4, $a2, 1 -/* 47554 8006C154 8E220030 */ lw $v0, 0x30($s1) -/* 47558 8006C158 30420008 */ andi $v0, $v0, 8 -/* 4755C 8006C15C 14400006 */ bnez $v0, .L8006C178 -/* 47560 8006C160 00151C00 */ sll $v1, $s5, 0x10 -/* 47564 8006C164 8E220024 */ lw $v0, 0x24($s1) -/* 47568 8006C168 00031C03 */ sra $v1, $v1, 0x10 -/* 4756C 8006C16C 0062102A */ slt $v0, $v1, $v0 -/* 47570 8006C170 54400001 */ bnel $v0, $zero, .L8006C178 -/* 47574 8006C174 AE230024 */ sw $v1, 0x24($s1) -.L8006C178: -/* 47578 8006C178 8E230024 */ lw $v1, 0x24($s1) -/* 4757C 8006C17C 00141400 */ sll $v0, $s4, 0x10 -/* 47580 8006C180 00021403 */ sra $v0, $v0, 0x10 -/* 47584 8006C184 00621823 */ subu $v1, $v1, $v0 -/* 47588 8006C188 04610002 */ bgez $v1, .L8006C194 -/* 4758C 8006C18C AE230024 */ sw $v1, 0x24($s1) -/* 47590 8006C190 AE200024 */ sw $zero, 0x24($s1) -.L8006C194: -/* 47594 8006C194 00141400 */ sll $v0, $s4, 0x10 -/* 47598 8006C198 00029C03 */ sra $s3, $v0, 0x10 -/* 4759C 8006C19C 1E600036 */ bgtz $s3, .L8006C278 -/* 475A0 8006C1A0 00151400 */ sll $v0, $s5, 0x10 -/* 475A4 8006C1A4 8E240014 */ lw $a0, 0x14($s1) -/* 475A8 8006C1A8 8E230008 */ lw $v1, 8($s1) -/* 475AC 8006C1AC 24820001 */ addiu $v0, $a0, 1 -/* 475B0 8006C1B0 00641821 */ addu $v1, $v1, $a0 -/* 475B4 8006C1B4 AE220014 */ sw $v0, 0x14($s1) -/* 475B8 8006C1B8 24020030 */ addiu $v0, $zero, 0x30 -/* 475BC 8006C1BC A0620000 */ sb $v0, ($v1) -/* 475C0 8006C1C0 8E220024 */ lw $v0, 0x24($s1) -/* 475C4 8006C1C4 1C400005 */ bgtz $v0, .L8006C1DC -/* 475C8 8006C1C8 00000000 */ nop -/* 475CC 8006C1CC 8E220030 */ lw $v0, 0x30($s1) -/* 475D0 8006C1D0 30420008 */ andi $v0, $v0, 8 -/* 475D4 8006C1D4 10400009 */ beqz $v0, .L8006C1FC -/* 475D8 8006C1D8 00141400 */ sll $v0, $s4, 0x10 -.L8006C1DC: -/* 475DC 8006C1DC 8E240014 */ lw $a0, 0x14($s1) -/* 475E0 8006C1E0 8E230008 */ lw $v1, 8($s1) -/* 475E4 8006C1E4 24820001 */ addiu $v0, $a0, 1 -/* 475E8 8006C1E8 00641821 */ addu $v1, $v1, $a0 -/* 475EC 8006C1EC AE220014 */ sw $v0, 0x14($s1) -/* 475F0 8006C1F0 2402002E */ addiu $v0, $zero, 0x2e -/* 475F4 8006C1F4 A0620000 */ sb $v0, ($v1) -/* 475F8 8006C1F8 00141400 */ sll $v0, $s4, 0x10 -.L8006C1FC: -/* 475FC 8006C1FC 8E230024 */ lw $v1, 0x24($s1) -/* 47600 8006C200 00021403 */ sra $v0, $v0, 0x10 -/* 47604 8006C204 00021023 */ negu $v0, $v0 -/* 47608 8006C208 0062102A */ slt $v0, $v1, $v0 -/* 4760C 8006C20C 54400001 */ bnel $v0, $zero, .L8006C214 -/* 47610 8006C210 0003A023 */ negu $s4, $v1 -.L8006C214: -/* 47614 8006C214 00141400 */ sll $v0, $s4, 0x10 -/* 47618 8006C218 8E240024 */ lw $a0, 0x24($s1) -/* 4761C 8006C21C 00021403 */ sra $v0, $v0, 0x10 -/* 47620 8006C220 00021823 */ negu $v1, $v0 -/* 47624 8006C224 AE230018 */ sw $v1, 0x18($s1) -/* 47628 8006C228 00822021 */ addu $a0, $a0, $v0 -/* 4762C 8006C22C 00151400 */ sll $v0, $s5, 0x10 -/* 47630 8006C230 00021403 */ sra $v0, $v0, 0x10 -/* 47634 8006C234 0082102A */ slt $v0, $a0, $v0 -/* 47638 8006C238 10400002 */ beqz $v0, .L8006C244 -/* 4763C 8006C23C AE240024 */ sw $a0, 0x24($s1) -/* 47640 8006C240 0080A821 */ addu $s5, $a0, $zero -.L8006C244: -/* 47644 8006C244 02402821 */ addu $a1, $s2, $zero -/* 47648 8006C248 8E220008 */ lw $v0, 8($s1) -/* 4764C 8006C24C 8E240014 */ lw $a0, 0x14($s1) -/* 47650 8006C250 00158400 */ sll $s0, $s5, 0x10 -/* 47654 8006C254 00108403 */ sra $s0, $s0, 0x10 -/* 47658 8006C258 02003021 */ addu $a2, $s0, $zero -/* 4765C 8006C25C AE30001C */ sw $s0, 0x1c($s1) -/* 47660 8006C260 0C01929D */ jal memcpy -/* 47664 8006C264 00442021 */ addu $a0, $v0, $a0 -/* 47668 8006C268 8E220024 */ lw $v0, 0x24($s1) -/* 4766C 8006C26C 00501023 */ subu $v0, $v0, $s0 -/* 47670 8006C270 0801B17B */ j .L8006C5EC -/* 47674 8006C274 AE220020 */ sw $v0, 0x20($s1) -.L8006C278: -/* 47678 8006C278 00028403 */ sra $s0, $v0, 0x10 -/* 4767C 8006C27C 0213102A */ slt $v0, $s0, $s3 -/* 47680 8006C280 1040001C */ beqz $v0, .L8006C2F4 -/* 47684 8006C284 02402821 */ addu $a1, $s2, $zero -/* 47688 8006C288 8E220008 */ lw $v0, 8($s1) -/* 4768C 8006C28C 8E240014 */ lw $a0, 0x14($s1) -/* 47690 8006C290 02003021 */ addu $a2, $s0, $zero -/* 47694 8006C294 0C01929D */ jal memcpy -/* 47698 8006C298 00442021 */ addu $a0, $v0, $a0 -/* 4769C 8006C29C 8E230014 */ lw $v1, 0x14($s1) -/* 476A0 8006C2A0 8E240024 */ lw $a0, 0x24($s1) -/* 476A4 8006C2A4 02701023 */ subu $v0, $s3, $s0 -/* 476A8 8006C2A8 AE220018 */ sw $v0, 0x18($s1) -/* 476AC 8006C2AC 00701821 */ addu $v1, $v1, $s0 -/* 476B0 8006C2B0 1C800005 */ bgtz $a0, .L8006C2C8 -/* 476B4 8006C2B4 AE230014 */ sw $v1, 0x14($s1) -/* 476B8 8006C2B8 8E220030 */ lw $v0, 0x30($s1) -/* 476BC 8006C2BC 30420008 */ andi $v0, $v0, 8 -/* 476C0 8006C2C0 10400009 */ beqz $v0, .L8006C2E8 -/* 476C4 8006C2C4 00000000 */ nop -.L8006C2C8: -/* 476C8 8006C2C8 8E220008 */ lw $v0, 8($s1) -/* 476CC 8006C2CC 8E230014 */ lw $v1, 0x14($s1) -/* 476D0 8006C2D0 00431021 */ addu $v0, $v0, $v1 -/* 476D4 8006C2D4 2403002E */ addiu $v1, $zero, 0x2e -/* 476D8 8006C2D8 A0430000 */ sb $v1, ($v0) -/* 476DC 8006C2DC 8E22001C */ lw $v0, 0x1c($s1) -/* 476E0 8006C2E0 24420001 */ addiu $v0, $v0, 1 -/* 476E4 8006C2E4 AE22001C */ sw $v0, 0x1c($s1) -.L8006C2E8: -/* 476E8 8006C2E8 8E220024 */ lw $v0, 0x24($s1) -/* 476EC 8006C2EC 0801B17B */ j .L8006C5EC -/* 476F0 8006C2F0 AE220020 */ sw $v0, 0x20($s1) -.L8006C2F4: -/* 476F4 8006C2F4 8E220008 */ lw $v0, 8($s1) -/* 476F8 8006C2F8 8E240014 */ lw $a0, 0x14($s1) -/* 476FC 8006C2FC 02603021 */ addu $a2, $s3, $zero -/* 47700 8006C300 0C01929D */ jal memcpy -/* 47704 8006C304 00442021 */ addu $a0, $v0, $a0 -/* 47708 8006C308 8E220014 */ lw $v0, 0x14($s1) -/* 4770C 8006C30C 8E230024 */ lw $v1, 0x24($s1) -/* 47710 8006C310 02B4A823 */ subu $s5, $s5, $s4 -/* 47714 8006C314 00533021 */ addu $a2, $v0, $s3 -/* 47718 8006C318 1C600005 */ bgtz $v1, .L8006C330 -/* 4771C 8006C31C AE260014 */ sw $a2, 0x14($s1) -/* 47720 8006C320 8E220030 */ lw $v0, 0x30($s1) -/* 47724 8006C324 30420008 */ andi $v0, $v0, 8 -/* 47728 8006C328 10400007 */ beqz $v0, .L8006C348 -/* 4772C 8006C32C 00000000 */ nop -.L8006C330: -/* 47730 8006C330 8E220008 */ lw $v0, 8($s1) -/* 47734 8006C334 24C30001 */ addiu $v1, $a2, 1 -/* 47738 8006C338 AE230014 */ sw $v1, 0x14($s1) -/* 4773C 8006C33C 2403002E */ addiu $v1, $zero, 0x2e -/* 47740 8006C340 00461021 */ addu $v0, $v0, $a2 -/* 47744 8006C344 A0430000 */ sb $v1, ($v0) -.L8006C348: -/* 47748 8006C348 8E230024 */ lw $v1, 0x24($s1) -/* 4774C 8006C34C 00151400 */ sll $v0, $s5, 0x10 -/* 47750 8006C350 00021403 */ sra $v0, $v0, 0x10 -/* 47754 8006C354 0062102A */ slt $v0, $v1, $v0 -/* 47758 8006C358 54400001 */ bnel $v0, $zero, .L8006C360 -/* 4775C 8006C35C 0060A821 */ addu $s5, $v1, $zero -.L8006C360: -/* 47760 8006C360 00142C00 */ sll $a1, $s4, 0x10 -/* 47764 8006C364 00052C03 */ sra $a1, $a1, 0x10 -/* 47768 8006C368 02452821 */ addu $a1, $s2, $a1 -/* 4776C 8006C36C 8E220008 */ lw $v0, 8($s1) -/* 47770 8006C370 8E240014 */ lw $a0, 0x14($s1) -/* 47774 8006C374 00158400 */ sll $s0, $s5, 0x10 -/* 47778 8006C378 00108403 */ sra $s0, $s0, 0x10 -/* 4777C 8006C37C 02003021 */ addu $a2, $s0, $zero -/* 47780 8006C380 0C01929D */ jal memcpy -/* 47784 8006C384 00442021 */ addu $a0, $v0, $a0 -/* 47788 8006C388 8E220014 */ lw $v0, 0x14($s1) -/* 4778C 8006C38C 8E230024 */ lw $v1, 0x24($s1) -/* 47790 8006C390 00501021 */ addu $v0, $v0, $s0 -/* 47794 8006C394 00701823 */ subu $v1, $v1, $s0 -/* 47798 8006C398 AE220014 */ sw $v0, 0x14($s1) -/* 4779C 8006C39C 0801B17B */ j .L8006C5EC -/* 477A0 8006C3A0 AE230018 */ sw $v1, 0x18($s1) -.L8006C3A4: -/* 477A4 8006C3A4 00021603 */ sra $v0, $v0, 0x18 -/* 477A8 8006C3A8 38430067 */ xori $v1, $v0, 0x67 -/* 477AC 8006C3AC 2C640001 */ sltiu $a0, $v1, 1 -/* 477B0 8006C3B0 38420047 */ xori $v0, $v0, 0x47 -/* 477B4 8006C3B4 2C420001 */ sltiu $v0, $v0, 1 -/* 477B8 8006C3B8 00821025 */ or $v0, $a0, $v0 -/* 477BC 8006C3BC 1040000E */ beqz $v0, .L8006C3F8 -/* 477C0 8006C3C0 00151C00 */ sll $v1, $s5, 0x10 -/* 477C4 8006C3C4 8E220024 */ lw $v0, 0x24($s1) -/* 477C8 8006C3C8 00031C03 */ sra $v1, $v1, 0x10 -/* 477CC 8006C3CC 0062102A */ slt $v0, $v1, $v0 -/* 477D0 8006C3D0 54400001 */ bnel $v0, $zero, .L8006C3D8 -/* 477D4 8006C3D4 AE230024 */ sw $v1, 0x24($s1) -.L8006C3D8: -/* 477D8 8006C3D8 8E220024 */ lw $v0, 0x24($s1) -/* 477DC 8006C3DC 2442FFFF */ addiu $v0, $v0, -1 -/* 477E0 8006C3E0 04410002 */ bgez $v0, .L8006C3EC -/* 477E4 8006C3E4 AE220024 */ sw $v0, 0x24($s1) -/* 477E8 8006C3E8 AE200024 */ sw $zero, 0x24($s1) -.L8006C3EC: -/* 477EC 8006C3EC 00041023 */ negu $v0, $a0 -/* 477F0 8006C3F0 30420065 */ andi $v0, $v0, 0x65 -/* 477F4 8006C3F4 34530045 */ ori $s3, $v0, 0x45 -.L8006C3F8: -/* 477F8 8006C3F8 8E240014 */ lw $a0, 0x14($s1) -/* 477FC 8006C3FC 24820001 */ addiu $v0, $a0, 1 -/* 47800 8006C400 AE220014 */ sw $v0, 0x14($s1) -/* 47804 8006C404 8E220008 */ lw $v0, 8($s1) -/* 47808 8006C408 92430000 */ lbu $v1, ($s2) -/* 4780C 8006C40C 00441021 */ addu $v0, $v0, $a0 -/* 47810 8006C410 A0430000 */ sb $v1, ($v0) -/* 47814 8006C414 8E220024 */ lw $v0, 0x24($s1) -/* 47818 8006C418 1C400005 */ bgtz $v0, .L8006C430 -/* 4781C 8006C41C 26520001 */ addiu $s2, $s2, 1 -/* 47820 8006C420 8E220030 */ lw $v0, 0x30($s1) -/* 47824 8006C424 30420008 */ andi $v0, $v0, 8 -/* 47828 8006C428 10400008 */ beqz $v0, .L8006C44C -/* 4782C 8006C42C 00000000 */ nop -.L8006C430: -/* 47830 8006C430 8E240014 */ lw $a0, 0x14($s1) -/* 47834 8006C434 8E230008 */ lw $v1, 8($s1) -/* 47838 8006C438 24820001 */ addiu $v0, $a0, 1 -/* 4783C 8006C43C 00641821 */ addu $v1, $v1, $a0 -/* 47840 8006C440 AE220014 */ sw $v0, 0x14($s1) -/* 47844 8006C444 2402002E */ addiu $v0, $zero, 0x2e -/* 47848 8006C448 A0620000 */ sb $v0, ($v1) -.L8006C44C: -/* 4784C 8006C44C 8E230024 */ lw $v1, 0x24($s1) -/* 47850 8006C450 18600015 */ blez $v1, .L8006C4A8 -/* 47854 8006C454 26A2FFFF */ addiu $v0, $s5, -1 -/* 47858 8006C458 0040A821 */ addu $s5, $v0, $zero -/* 4785C 8006C45C 00021400 */ sll $v0, $v0, 0x10 -/* 47860 8006C460 00021403 */ sra $v0, $v0, 0x10 -/* 47864 8006C464 0062102A */ slt $v0, $v1, $v0 -/* 47868 8006C468 54400001 */ bnel $v0, $zero, .L8006C470 -/* 4786C 8006C46C 0060A821 */ addu $s5, $v1, $zero -.L8006C470: -/* 47870 8006C470 02402821 */ addu $a1, $s2, $zero -/* 47874 8006C474 8E220008 */ lw $v0, 8($s1) -/* 47878 8006C478 8E240014 */ lw $a0, 0x14($s1) -/* 4787C 8006C47C 00158400 */ sll $s0, $s5, 0x10 -/* 47880 8006C480 00108403 */ sra $s0, $s0, 0x10 -/* 47884 8006C484 02003021 */ addu $a2, $s0, $zero -/* 47888 8006C488 0C01929D */ jal memcpy -/* 4788C 8006C48C 00442021 */ addu $a0, $v0, $a0 -/* 47890 8006C490 8E220014 */ lw $v0, 0x14($s1) -/* 47894 8006C494 8E230024 */ lw $v1, 0x24($s1) -/* 47898 8006C498 00501021 */ addu $v0, $v0, $s0 -/* 4789C 8006C49C 00701823 */ subu $v1, $v1, $s0 -/* 478A0 8006C4A0 AE220014 */ sw $v0, 0x14($s1) -/* 478A4 8006C4A4 AE230018 */ sw $v1, 0x18($s1) -.L8006C4A8: -/* 478A8 8006C4A8 8E220008 */ lw $v0, 8($s1) -/* 478AC 8006C4AC 8E230014 */ lw $v1, 0x14($s1) -/* 478B0 8006C4B0 00439021 */ addu $s2, $v0, $v1 -/* 478B4 8006C4B4 A2530000 */ sb $s3, ($s2) -/* 478B8 8006C4B8 00141400 */ sll $v0, $s4, 0x10 -/* 478BC 8006C4BC 04400005 */ bltz $v0, .L8006C4D4 -/* 478C0 8006C4C0 26520001 */ addiu $s2, $s2, 1 -/* 478C4 8006C4C4 2402002B */ addiu $v0, $zero, 0x2b -/* 478C8 8006C4C8 A2420000 */ sb $v0, ($s2) -/* 478CC 8006C4CC 0801B139 */ j .L8006C4E4 -/* 478D0 8006C4D0 26520001 */ addiu $s2, $s2, 1 -.L8006C4D4: -/* 478D4 8006C4D4 2402002D */ addiu $v0, $zero, 0x2d -/* 478D8 8006C4D8 A2420000 */ sb $v0, ($s2) -/* 478DC 8006C4DC 26520001 */ addiu $s2, $s2, 1 -/* 478E0 8006C4E0 0014A023 */ negu $s4, $s4 -.L8006C4E4: -/* 478E4 8006C4E4 00142C00 */ sll $a1, $s4, 0x10 -/* 478E8 8006C4E8 00052403 */ sra $a0, $a1, 0x10 -/* 478EC 8006C4EC 28820064 */ slti $v0, $a0, 0x64 -/* 478F0 8006C4F0 14400027 */ bnez $v0, .L8006C590 -/* 478F4 8006C4F4 3C036666 */ lui $v1, 0x6666 -/* 478F8 8006C4F8 288203E8 */ slti $v0, $a0, 0x3e8 -/* 478FC 8006C4FC 14400012 */ bnez $v0, .L8006C548 -/* 47900 8006C500 3C0351EB */ lui $v1, 0x51eb -/* 47904 8006C504 3C021062 */ lui $v0, 0x1062 -/* 47908 8006C508 34424DD3 */ ori $v0, $v0, 0x4dd3 -/* 4790C 8006C50C 00820018 */ mult $a0, $v0 -/* 47910 8006C510 000517C3 */ sra $v0, $a1, 0x1f -/* 47914 8006C514 00004010 */ mfhi $t0 -/* 47918 8006C518 00081983 */ sra $v1, $t0, 6 -/* 4791C 8006C51C 00621823 */ subu $v1, $v1, $v0 -/* 47920 8006C520 24620030 */ addiu $v0, $v1, 0x30 -/* 47924 8006C524 A2420000 */ sb $v0, ($s2) -/* 47928 8006C528 26520001 */ addiu $s2, $s2, 1 -/* 4792C 8006C52C 00031140 */ sll $v0, $v1, 5 -/* 47930 8006C530 00431023 */ subu $v0, $v0, $v1 -/* 47934 8006C534 00021080 */ sll $v0, $v0, 2 -/* 47938 8006C538 00431021 */ addu $v0, $v0, $v1 -/* 4793C 8006C53C 000210C0 */ sll $v0, $v0, 3 -/* 47940 8006C540 0082A023 */ subu $s4, $a0, $v0 -/* 47944 8006C544 3C0351EB */ lui $v1, 0x51eb -.L8006C548: -/* 47948 8006C548 3463851F */ ori $v1, $v1, 0x851f -/* 4794C 8006C54C 00141400 */ sll $v0, $s4, 0x10 -/* 47950 8006C550 00022403 */ sra $a0, $v0, 0x10 -/* 47954 8006C554 00830018 */ mult $a0, $v1 -/* 47958 8006C558 000217C3 */ sra $v0, $v0, 0x1f -/* 4795C 8006C55C 00004010 */ mfhi $t0 -/* 47960 8006C560 00081943 */ sra $v1, $t0, 5 -/* 47964 8006C564 00621823 */ subu $v1, $v1, $v0 -/* 47968 8006C568 24620030 */ addiu $v0, $v1, 0x30 -/* 4796C 8006C56C A2420000 */ sb $v0, ($s2) -/* 47970 8006C570 26520001 */ addiu $s2, $s2, 1 -/* 47974 8006C574 00031040 */ sll $v0, $v1, 1 -/* 47978 8006C578 00431021 */ addu $v0, $v0, $v1 -/* 4797C 8006C57C 000210C0 */ sll $v0, $v0, 3 -/* 47980 8006C580 00431021 */ addu $v0, $v0, $v1 -/* 47984 8006C584 00021080 */ sll $v0, $v0, 2 -/* 47988 8006C588 0082A023 */ subu $s4, $a0, $v0 -/* 4798C 8006C58C 3C036666 */ lui $v1, 0x6666 -.L8006C590: -/* 47990 8006C590 34636667 */ ori $v1, $v1, 0x6667 -/* 47994 8006C594 00141400 */ sll $v0, $s4, 0x10 -/* 47998 8006C598 00022403 */ sra $a0, $v0, 0x10 -/* 4799C 8006C59C 00830018 */ mult $a0, $v1 -/* 479A0 8006C5A0 000217C3 */ sra $v0, $v0, 0x1f -/* 479A4 8006C5A4 00004010 */ mfhi $t0 -/* 479A8 8006C5A8 00081883 */ sra $v1, $t0, 2 -/* 479AC 8006C5AC 00621823 */ subu $v1, $v1, $v0 -/* 479B0 8006C5B0 24620030 */ addiu $v0, $v1, 0x30 -/* 479B4 8006C5B4 A2420000 */ sb $v0, ($s2) -/* 479B8 8006C5B8 26520001 */ addiu $s2, $s2, 1 -/* 479BC 8006C5BC 00031080 */ sll $v0, $v1, 2 -/* 479C0 8006C5C0 00431021 */ addu $v0, $v0, $v1 -/* 479C4 8006C5C4 00021040 */ sll $v0, $v0, 1 -/* 479C8 8006C5C8 00822023 */ subu $a0, $a0, $v0 -/* 479CC 8006C5CC 24840030 */ addiu $a0, $a0, 0x30 -/* 479D0 8006C5D0 A2440000 */ sb $a0, ($s2) -/* 479D4 8006C5D4 8E220008 */ lw $v0, 8($s1) -/* 479D8 8006C5D8 8E230014 */ lw $v1, 0x14($s1) -/* 479DC 8006C5DC 26520001 */ addiu $s2, $s2, 1 -/* 479E0 8006C5E0 00431021 */ addu $v0, $v0, $v1 -/* 479E4 8006C5E4 02421023 */ subu $v0, $s2, $v0 -/* 479E8 8006C5E8 AE22001C */ sw $v0, 0x1c($s1) -.L8006C5EC: -/* 479EC 8006C5EC 8E220030 */ lw $v0, 0x30($s1) -/* 479F0 8006C5F0 24030010 */ addiu $v1, $zero, 0x10 -/* 479F4 8006C5F4 30420014 */ andi $v0, $v0, 0x14 -/* 479F8 8006C5F8 1443000F */ bne $v0, $v1, .L8006C638 -/* 479FC 8006C5FC 00000000 */ nop -/* 47A00 8006C600 8E22000C */ lw $v0, 0xc($s1) -/* 47A04 8006C604 8E230014 */ lw $v1, 0x14($s1) -/* 47A08 8006C608 8E240018 */ lw $a0, 0x18($s1) -/* 47A0C 8006C60C 00431021 */ addu $v0, $v0, $v1 -/* 47A10 8006C610 00441021 */ addu $v0, $v0, $a0 -/* 47A14 8006C614 8E23001C */ lw $v1, 0x1c($s1) -/* 47A18 8006C618 8E240020 */ lw $a0, 0x20($s1) -/* 47A1C 8006C61C 8E250028 */ lw $a1, 0x28($s1) -/* 47A20 8006C620 00431021 */ addu $v0, $v0, $v1 -/* 47A24 8006C624 00441821 */ addu $v1, $v0, $a0 -/* 47A28 8006C628 0065102A */ slt $v0, $v1, $a1 -/* 47A2C 8006C62C 10400002 */ beqz $v0, .L8006C638 -/* 47A30 8006C630 00A31023 */ subu $v0, $a1, $v1 -/* 47A34 8006C634 AE220010 */ sw $v0, 0x10($s1) -.L8006C638: -/* 47A38 8006C638 8FBF0028 */ lw $ra, 0x28($sp) -/* 47A3C 8006C63C 8FB50024 */ lw $s5, 0x24($sp) -/* 47A40 8006C640 8FB40020 */ lw $s4, 0x20($sp) -/* 47A44 8006C644 8FB3001C */ lw $s3, 0x1c($sp) -/* 47A48 8006C648 8FB20018 */ lw $s2, 0x18($sp) -/* 47A4C 8006C64C 8FB10014 */ lw $s1, 0x14($sp) -/* 47A50 8006C650 8FB00010 */ lw $s0, 0x10($sp) -/* 47A54 8006C654 03E00008 */ jr $ra -/* 47A58 8006C658 27BD0030 */ addiu $sp, $sp, 0x30 -/* 47A5C 8006C65C 00000000 */ nop diff --git a/ver/us/asm/nonmatchings/os/xldtob/_Ldtob.s b/ver/us/asm/nonmatchings/os/xldtob/_Ldtob.s deleted file mode 100644 index 997fc67797..0000000000 --- a/ver/us/asm/nonmatchings/os/xldtob/_Ldtob.s +++ /dev/null @@ -1,334 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.section .rodata - -dlabel D_80099DD0 -.word 0x40240000, 0x00000000, 0x40590000, 0x00000000, 0x40C38800, 0x00000000, 0x4197D784, 0x00000000, 0x4341C379, 0x37E08000, 0x4693B8B5, 0xB5056E17, 0x4D384F03, 0xE93FF9F5, 0x5A827748, 0xF9301D32, 0x75154FDD, 0x7F73BF3C - -dlabel D_80099E18 -.word 0x4E614E00 - -dlabel D_80099E1C -.word 0x496E6600 - -dlabel D_80099E20 -.double 1.0 - -dlabel D_80099E28 -.double 100000000.0 - -.section .text - -glabel _Ldtob -/* 46FD0 8006BBD0 27BDFF80 */ addiu $sp, $sp, -0x80 -/* 46FD4 8006BBD4 AFB30054 */ sw $s3, 0x54($sp) -/* 46FD8 8006BBD8 00809821 */ addu $s3, $a0, $zero -/* 46FDC 8006BBDC AFB1004C */ sw $s1, 0x4c($sp) -/* 46FE0 8006BBE0 27B10018 */ addiu $s1, $sp, 0x18 -/* 46FE4 8006BBE4 AFBF0060 */ sw $ra, 0x60($sp) -/* 46FE8 8006BBE8 AFB5005C */ sw $s5, 0x5c($sp) -/* 46FEC 8006BBEC AFB40058 */ sw $s4, 0x58($sp) -/* 46FF0 8006BBF0 AFB20050 */ sw $s2, 0x50($sp) -/* 46FF4 8006BBF4 AFB00048 */ sw $s0, 0x48($sp) -/* 46FF8 8006BBF8 F7B80078 */ sdc1 $f24, 0x78($sp) -/* 46FFC 8006BBFC F7B60070 */ sdc1 $f22, 0x70($sp) -/* 47000 8006BC00 F7B40068 */ sdc1 $f20, 0x68($sp) -/* 47004 8006BC04 8E630024 */ lw $v1, 0x24($s3) -/* 47008 8006BC08 D6740000 */ ldc1 $f20, ($s3) -/* 4700C 8006BC0C 04610003 */ bgez $v1, .L8006BC1C -/* 47010 8006BC10 00A0A821 */ addu $s5, $a1, $zero -/* 47014 8006BC14 0801AF12 */ j .L8006BC48 -/* 47018 8006BC18 24020006 */ addiu $v0, $zero, 6 -.L8006BC1C: -/* 4701C 8006BC1C 1460000C */ bnez $v1, .L8006BC50 -/* 47020 8006BC20 27A40038 */ addiu $a0, $sp, 0x38 -/* 47024 8006BC24 00051600 */ sll $v0, $a1, 0x18 -/* 47028 8006BC28 00021603 */ sra $v0, $v0, 0x18 -/* 4702C 8006BC2C 38430067 */ xori $v1, $v0, 0x67 -/* 47030 8006BC30 2C630001 */ sltiu $v1, $v1, 1 -/* 47034 8006BC34 38420047 */ xori $v0, $v0, 0x47 -/* 47038 8006BC38 2C420001 */ sltiu $v0, $v0, 1 -/* 4703C 8006BC3C 00621825 */ or $v1, $v1, $v0 -/* 47040 8006BC40 10600003 */ beqz $v1, .L8006BC50 -/* 47044 8006BC44 24020001 */ addiu $v0, $zero, 1 -.L8006BC48: -/* 47048 8006BC48 AE620024 */ sw $v0, 0x24($s3) -/* 4704C 8006BC4C 27A40038 */ addiu $a0, $sp, 0x38 -.L8006BC50: -/* 47050 8006BC50 0C01B007 */ jal _Ldunscale -/* 47054 8006BC54 02602821 */ addu $a1, $s3, $zero -/* 47058 8006BC58 00021400 */ sll $v0, $v0, 0x10 -/* 4705C 8006BC5C 00021C03 */ sra $v1, $v0, 0x10 -/* 47060 8006BC60 18600010 */ blez $v1, .L8006BCA4 -/* 47064 8006BC64 24020002 */ addiu $v0, $zero, 2 -/* 47068 8006BC68 3C06800A */ lui $a2, %hi(D_80099E1C) -/* 4706C 8006BC6C 24C69E1C */ addiu $a2, $a2, %lo(D_80099E1C) -/* 47070 8006BC70 8E670008 */ lw $a3, 8($s3) -/* 47074 8006BC74 14620003 */ bne $v1, $v0, .L8006BC84 -/* 47078 8006BC78 24020003 */ addiu $v0, $zero, 3 -/* 4707C 8006BC7C 3C06800A */ lui $a2, %hi(D_80099E18) -/* 47080 8006BC80 24C69E18 */ addiu $a2, $a2, %lo(D_80099E18) -.L8006BC84: -/* 47084 8006BC84 AE620014 */ sw $v0, 0x14($s3) -/* 47088 8006BC88 80C20000 */ lb $v0, ($a2) -/* 4708C 8006BC8C 80C30001 */ lb $v1, 1($a2) -/* 47090 8006BC90 80C40002 */ lb $a0, 2($a2) -/* 47094 8006BC94 A0E20000 */ sb $v0, ($a3) -/* 47098 8006BC98 A0E30001 */ sb $v1, 1($a3) -/* 4709C 8006BC9C 0801AFFB */ j .L8006BFEC -/* 470A0 8006BCA0 A0E40002 */ sb $a0, 2($a3) -.L8006BCA4: -/* 470A4 8006BCA4 14600003 */ bnez $v1, .L8006BCB4 -/* 470A8 8006BCA8 00003821 */ addu $a3, $zero, $zero -/* 470AC 8006BCAC 0801AFF2 */ j .L8006BFC8 -/* 470B0 8006BCB0 A7A00038 */ sh $zero, 0x38($sp) -.L8006BCB4: -/* 470B4 8006BCB4 44800000 */ mtc1 $zero, $f0 -/* 470B8 8006BCB8 44800800 */ mtc1 $zero, $f1 -/* 470BC 8006BCBC 00000000 */ nop -/* 470C0 8006BCC0 4620A03C */ c.lt.d $f20, $f0 -/* 470C4 8006BCC4 00000000 */ nop -/* 470C8 8006BCC8 00000000 */ nop -/* 470CC 8006BCCC 45030001 */ bc1tl .L8006BCD4 -/* 470D0 8006BCD0 4620A507 */ neg.d $f20, $f20 -.L8006BCD4: -/* 470D4 8006BCD4 87A30038 */ lh $v1, 0x38($sp) -/* 470D8 8006BCD8 24027597 */ addiu $v0, $zero, 0x7597 -/* 470DC 8006BCDC 00620018 */ mult $v1, $v0 -/* 470E0 8006BCE0 00001812 */ mflo $v1 -/* 470E4 8006BCE4 3C0214F8 */ lui $v0, 0x14f8 -/* 470E8 8006BCE8 3442B589 */ ori $v0, $v0, 0xb589 -/* 470EC 8006BCEC 00620018 */ mult $v1, $v0 -/* 470F0 8006BCF0 00031FC3 */ sra $v1, $v1, 0x1f -/* 470F4 8006BCF4 00004010 */ mfhi $t0 -/* 470F8 8006BCF8 00081343 */ sra $v0, $t0, 0xd -/* 470FC 8006BCFC 00431023 */ subu $v0, $v0, $v1 -/* 47100 8006BD00 2443FFFC */ addiu $v1, $v0, -4 -/* 47104 8006BD04 00031400 */ sll $v0, $v1, 0x10 -/* 47108 8006BD08 00021403 */ sra $v0, $v0, 0x10 -/* 4710C 8006BD0C 04410013 */ bgez $v0, .L8006BD5C -/* 47110 8006BD10 A7A30038 */ sh $v1, 0x38($sp) -/* 47114 8006BD14 00021023 */ negu $v0, $v0 -/* 47118 8006BD18 24420003 */ addiu $v0, $v0, 3 -/* 4711C 8006BD1C 2403FFFC */ addiu $v1, $zero, -4 -/* 47120 8006BD20 00431824 */ and $v1, $v0, $v1 -/* 47124 8006BD24 00031023 */ negu $v0, $v1 -/* 47128 8006BD28 1860001F */ blez $v1, .L8006BDA8 -/* 4712C 8006BD2C A7A20038 */ sh $v0, 0x38($sp) -/* 47130 8006BD30 3C04800A */ lui $a0, %hi(D_80099DD0) -/* 47134 8006BD34 24849DD0 */ addiu $a0, $a0, %lo(D_80099DD0) -.L8006BD38: -/* 47138 8006BD38 30620001 */ andi $v0, $v1, 1 -/* 4713C 8006BD3C 10400003 */ beqz $v0, .L8006BD4C -/* 47140 8006BD40 00031843 */ sra $v1, $v1, 1 -/* 47144 8006BD44 D4800000 */ ldc1 $f0, ($a0) -/* 47148 8006BD48 4620A502 */ mul.d $f20, $f20, $f0 -.L8006BD4C: -/* 4714C 8006BD4C 1C60FFFA */ bgtz $v1, .L8006BD38 -/* 47150 8006BD50 24840008 */ addiu $a0, $a0, 8 -/* 47154 8006BD54 0801AF6A */ j .L8006BDA8 -/* 47158 8006BD58 00000000 */ nop -.L8006BD5C: -/* 4715C 8006BD5C 18400012 */ blez $v0, .L8006BDA8 -/* 47160 8006BD60 2402FFFC */ addiu $v0, $zero, -4 -/* 47164 8006BD64 3C01800A */ lui $at, %hi(D_80099E20) -/* 47168 8006BD68 D4229E20 */ ldc1 $f2, %lo(D_80099E20)($at) -/* 4716C 8006BD6C 00621024 */ and $v0, $v1, $v0 -/* 47170 8006BD70 00021C00 */ sll $v1, $v0, 0x10 -/* 47174 8006BD74 00031C03 */ sra $v1, $v1, 0x10 -/* 47178 8006BD78 1860000A */ blez $v1, .L8006BDA4 -/* 4717C 8006BD7C A7A20038 */ sh $v0, 0x38($sp) -/* 47180 8006BD80 3C04800A */ lui $a0, %hi(D_80099DD0) -/* 47184 8006BD84 24849DD0 */ addiu $a0, $a0, %lo(D_80099DD0) -.L8006BD88: -/* 47188 8006BD88 30620001 */ andi $v0, $v1, 1 -/* 4718C 8006BD8C 10400003 */ beqz $v0, .L8006BD9C -/* 47190 8006BD90 00031843 */ sra $v1, $v1, 1 -/* 47194 8006BD94 D4800000 */ ldc1 $f0, ($a0) -/* 47198 8006BD98 46201082 */ mul.d $f2, $f2, $f0 -.L8006BD9C: -/* 4719C 8006BD9C 1C60FFFA */ bgtz $v1, .L8006BD88 -/* 471A0 8006BDA0 24840008 */ addiu $a0, $a0, 8 -.L8006BDA4: -/* 471A4 8006BDA4 4622A503 */ div.d $f20, $f20, $f2 -.L8006BDA8: -/* 471A8 8006BDA8 8E640024 */ lw $a0, 0x24($s3) -/* 471AC 8006BDAC 00151600 */ sll $v0, $s5, 0x18 -/* 471B0 8006BDB0 00021603 */ sra $v0, $v0, 0x18 -/* 471B4 8006BDB4 24030066 */ addiu $v1, $zero, 0x66 -/* 471B8 8006BDB8 14430004 */ bne $v0, $v1, .L8006BDCC -/* 471BC 8006BDBC 24920006 */ addiu $s2, $a0, 6 -/* 471C0 8006BDC0 87A30038 */ lh $v1, 0x38($sp) -/* 471C4 8006BDC4 2482000A */ addiu $v0, $a0, 0xa -/* 471C8 8006BDC8 00439021 */ addu $s2, $v0, $v1 -.L8006BDCC: -/* 471CC 8006BDCC 2A420014 */ slti $v0, $s2, 0x14 -/* 471D0 8006BDD0 50400001 */ beql $v0, $zero, .L8006BDD8 -/* 471D4 8006BDD4 24120013 */ addiu $s2, $zero, 0x13 -.L8006BDD8: -/* 471D8 8006BDD8 24020030 */ addiu $v0, $zero, 0x30 -/* 471DC 8006BDDC A2220000 */ sb $v0, ($s1) -/* 471E0 8006BDE0 26310001 */ addiu $s1, $s1, 1 -/* 471E4 8006BDE4 4480C000 */ mtc1 $zero, $f24 -/* 471E8 8006BDE8 4480C800 */ mtc1 $zero, $f25 -/* 471EC 8006BDEC 3C01800A */ lui $at, %hi(D_80099E28) -/* 471F0 8006BDF0 D4369E28 */ ldc1 $f22, %lo(D_80099E28)($at) -/* 471F4 8006BDF4 24140030 */ addiu $s4, $zero, 0x30 -.L8006BDF8: -/* 471F8 8006BDF8 4634C03C */ c.lt.d $f24, $f20 -/* 471FC 8006BDFC 24030001 */ addiu $v1, $zero, 1 -/* 47200 8006BE00 00000000 */ nop -/* 47204 8006BE04 45010002 */ bc1t .L8006BE10 -/* 47208 8006BE08 0012102A */ slt $v0, $zero, $s2 -/* 4720C 8006BE0C 00001821 */ addu $v1, $zero, $zero -.L8006BE10: -/* 47210 8006BE10 00431024 */ and $v0, $v0, $v1 -/* 47214 8006BE14 10400021 */ beqz $v0, .L8006BE9C -/* 47218 8006BE18 2652FFF8 */ addiu $s2, $s2, -8 -/* 4721C 8006BE1C 4620A00D */ trunc.w.d $f0, $f20 -/* 47220 8006BE20 44050000 */ mfc1 $a1, $f0 -/* 47224 8006BE24 00000000 */ nop -/* 47228 8006BE28 1A400006 */ blez $s2, .L8006BE44 -/* 4722C 8006BE2C 26310008 */ addiu $s1, $s1, 8 -/* 47230 8006BE30 44850000 */ mtc1 $a1, $f0 -/* 47234 8006BE34 00000000 */ nop -/* 47238 8006BE38 46800021 */ cvt.d.w $f0, $f0 -/* 4723C 8006BE3C 4620A001 */ sub.d $f0, $f20, $f0 -/* 47240 8006BE40 46360502 */ mul.d $f20, $f0, $f22 -.L8006BE44: -/* 47244 8006BE44 18A00010 */ blez $a1, .L8006BE88 -/* 47248 8006BE48 24100008 */ addiu $s0, $zero, 8 -/* 4724C 8006BE4C 2610FFFF */ addiu $s0, $s0, -1 -.L8006BE50: -/* 47250 8006BE50 0600000D */ bltz $s0, .L8006BE88 -/* 47254 8006BE54 27A40040 */ addiu $a0, $sp, 0x40 -/* 47258 8006BE58 0C01B588 */ jal ldiv -/* 4725C 8006BE5C 2406000A */ addiu $a2, $zero, 0xa -/* 47260 8006BE60 8FA20044 */ lw $v0, 0x44($sp) -/* 47264 8006BE64 2631FFFF */ addiu $s1, $s1, -1 -/* 47268 8006BE68 24420030 */ addiu $v0, $v0, 0x30 -/* 4726C 8006BE6C A2220000 */ sb $v0, ($s1) -/* 47270 8006BE70 8FA50040 */ lw $a1, 0x40($sp) -/* 47274 8006BE74 1CA0FFF6 */ bgtz $a1, .L8006BE50 -/* 47278 8006BE78 2610FFFF */ addiu $s0, $s0, -1 -/* 4727C 8006BE7C 0801AFA3 */ j .L8006BE8C -/* 47280 8006BE80 00000000 */ nop -.L8006BE84: -/* 47284 8006BE84 A2340000 */ sb $s4, ($s1) -.L8006BE88: -/* 47288 8006BE88 2610FFFF */ addiu $s0, $s0, -1 -.L8006BE8C: -/* 4728C 8006BE8C 0603FFFD */ bgezl $s0, .L8006BE84 -/* 47290 8006BE90 2631FFFF */ addiu $s1, $s1, -1 -/* 47294 8006BE94 0801AF7E */ j .L8006BDF8 -/* 47298 8006BE98 26310008 */ addiu $s1, $s1, 8 -.L8006BE9C: -/* 4729C 8006BE9C 2623FFFF */ addiu $v1, $s1, -1 -/* 472A0 8006BEA0 27A20018 */ addiu $v0, $sp, 0x18 -/* 472A4 8006BEA4 00629023 */ subu $s2, $v1, $v0 -/* 472A8 8006BEA8 97A20038 */ lhu $v0, 0x38($sp) -/* 472AC 8006BEAC 83A30019 */ lb $v1, 0x19($sp) -/* 472B0 8006BEB0 24420007 */ addiu $v0, $v0, 7 -/* 472B4 8006BEB4 A7A20038 */ sh $v0, 0x38($sp) -/* 472B8 8006BEB8 24020030 */ addiu $v0, $zero, 0x30 -/* 472BC 8006BEBC 14620009 */ bne $v1, $v0, .L8006BEE4 -/* 472C0 8006BEC0 27B10019 */ addiu $s1, $sp, 0x19 -/* 472C4 8006BEC4 24030030 */ addiu $v1, $zero, 0x30 -.L8006BEC8: -/* 472C8 8006BEC8 97A20038 */ lhu $v0, 0x38($sp) -/* 472CC 8006BECC 26310001 */ addiu $s1, $s1, 1 -/* 472D0 8006BED0 2442FFFF */ addiu $v0, $v0, -1 -/* 472D4 8006BED4 A7A20038 */ sh $v0, 0x38($sp) -/* 472D8 8006BED8 82220000 */ lb $v0, ($s1) -/* 472DC 8006BEDC 1043FFFA */ beq $v0, $v1, .L8006BEC8 -/* 472E0 8006BEE0 2652FFFF */ addiu $s2, $s2, -1 -.L8006BEE4: -/* 472E4 8006BEE4 8E650024 */ lw $a1, 0x24($s3) -/* 472E8 8006BEE8 00151600 */ sll $v0, $s5, 0x18 -/* 472EC 8006BEEC 00022603 */ sra $a0, $v0, 0x18 -/* 472F0 8006BEF0 24020066 */ addiu $v0, $zero, 0x66 -/* 472F4 8006BEF4 14820005 */ bne $a0, $v0, .L8006BF0C -/* 472F8 8006BEF8 38830065 */ xori $v1, $a0, 0x65 -/* 472FC 8006BEFC 87A30038 */ lh $v1, 0x38($sp) -/* 47300 8006BF00 24A20001 */ addiu $v0, $a1, 1 -/* 47304 8006BF04 0801AFC8 */ j .L8006BF20 -/* 47308 8006BF08 00433821 */ addu $a3, $v0, $v1 -.L8006BF0C: -/* 4730C 8006BF0C 2C630001 */ sltiu $v1, $v1, 1 -/* 47310 8006BF10 38820045 */ xori $v0, $a0, 0x45 -/* 47314 8006BF14 2C420001 */ sltiu $v0, $v0, 1 -/* 47318 8006BF18 00621825 */ or $v1, $v1, $v0 -/* 4731C 8006BF1C 00A33821 */ addu $a3, $a1, $v1 -.L8006BF20: -/* 47320 8006BF20 00071400 */ sll $v0, $a3, 0x10 -/* 47324 8006BF24 00021403 */ sra $v0, $v0, 0x10 -/* 47328 8006BF28 0242102A */ slt $v0, $s2, $v0 -/* 4732C 8006BF2C 54400001 */ bnel $v0, $zero, .L8006BF34 -/* 47330 8006BF30 02403821 */ addu $a3, $s2, $zero -.L8006BF34: -/* 47334 8006BF34 00071400 */ sll $v0, $a3, 0x10 -/* 47338 8006BF38 00022403 */ sra $a0, $v0, 0x10 -/* 4733C 8006BF3C 18800022 */ blez $a0, .L8006BFC8 -/* 47340 8006BF40 0092102A */ slt $v0, $a0, $s2 -/* 47344 8006BF44 10400008 */ beqz $v0, .L8006BF68 -/* 47348 8006BF48 24030030 */ addiu $v1, $zero, 0x30 -/* 4734C 8006BF4C 02241021 */ addu $v0, $s1, $a0 -/* 47350 8006BF50 80420000 */ lb $v0, ($v0) -/* 47354 8006BF54 28420035 */ slti $v0, $v0, 0x35 -/* 47358 8006BF58 38420001 */ xori $v0, $v0, 1 -/* 4735C 8006BF5C 00021023 */ negu $v0, $v0 -/* 47360 8006BF60 30420039 */ andi $v0, $v0, 0x39 -/* 47364 8006BF64 34430030 */ ori $v1, $v0, 0x30 -.L8006BF68: -/* 47368 8006BF68 2485FFFF */ addiu $a1, $a0, -1 -/* 4736C 8006BF6C 02252021 */ addu $a0, $s1, $a1 -/* 47370 8006BF70 80820000 */ lb $v0, ($a0) -/* 47374 8006BF74 54430008 */ bnel $v0, $v1, .L8006BF98 -/* 47378 8006BF78 24020039 */ addiu $v0, $zero, 0x39 -/* 4737C 8006BF7C 00403021 */ addu $a2, $v0, $zero -.L8006BF80: -/* 47380 8006BF80 2484FFFF */ addiu $a0, $a0, -1 -/* 47384 8006BF84 80820000 */ lb $v0, ($a0) -/* 47388 8006BF88 24E7FFFF */ addiu $a3, $a3, -1 -/* 4738C 8006BF8C 1046FFFC */ beq $v0, $a2, .L8006BF80 -/* 47390 8006BF90 24A5FFFF */ addiu $a1, $a1, -1 -/* 47394 8006BF94 24020039 */ addiu $v0, $zero, 0x39 -.L8006BF98: -/* 47398 8006BF98 14620004 */ bne $v1, $v0, .L8006BFAC -/* 4739C 8006BF9C 02251821 */ addu $v1, $s1, $a1 -/* 473A0 8006BFA0 90620000 */ lbu $v0, ($v1) -/* 473A4 8006BFA4 24420001 */ addiu $v0, $v0, 1 -/* 473A8 8006BFA8 A0620000 */ sb $v0, ($v1) -.L8006BFAC: -/* 473AC 8006BFAC 04A10007 */ bgez $a1, .L8006BFCC -/* 473B0 8006BFB0 02602021 */ addu $a0, $s3, $zero -/* 473B4 8006BFB4 97A20038 */ lhu $v0, 0x38($sp) -/* 473B8 8006BFB8 2631FFFF */ addiu $s1, $s1, -1 -/* 473BC 8006BFBC 24E70001 */ addiu $a3, $a3, 1 -/* 473C0 8006BFC0 24420001 */ addiu $v0, $v0, 1 -/* 473C4 8006BFC4 A7A20038 */ sh $v0, 0x38($sp) -.L8006BFC8: -/* 473C8 8006BFC8 02602021 */ addu $a0, $s3, $zero -.L8006BFCC: -/* 473CC 8006BFCC 00152E00 */ sll $a1, $s5, 0x18 -/* 473D0 8006BFD0 87A20038 */ lh $v0, 0x38($sp) -/* 473D4 8006BFD4 00052E03 */ sra $a1, $a1, 0x18 -/* 473D8 8006BFD8 02203021 */ addu $a2, $s1, $zero -/* 473DC 8006BFDC 00073C00 */ sll $a3, $a3, 0x10 -/* 473E0 8006BFE0 00073C03 */ sra $a3, $a3, 0x10 -/* 473E4 8006BFE4 0C01B02D */ jal _Genld -/* 473E8 8006BFE8 AFA20010 */ sw $v0, 0x10($sp) -.L8006BFEC: -/* 473EC 8006BFEC 8FBF0060 */ lw $ra, 0x60($sp) -/* 473F0 8006BFF0 8FB5005C */ lw $s5, 0x5c($sp) -/* 473F4 8006BFF4 8FB40058 */ lw $s4, 0x58($sp) -/* 473F8 8006BFF8 8FB30054 */ lw $s3, 0x54($sp) -/* 473FC 8006BFFC 8FB20050 */ lw $s2, 0x50($sp) -/* 47400 8006C000 8FB1004C */ lw $s1, 0x4c($sp) -/* 47404 8006C004 8FB00048 */ lw $s0, 0x48($sp) -/* 47408 8006C008 D7B80078 */ ldc1 $f24, 0x78($sp) -/* 4740C 8006C00C D7B60070 */ ldc1 $f22, 0x70($sp) -/* 47410 8006C010 D7B40068 */ ldc1 $f20, 0x68($sp) -/* 47414 8006C014 03E00008 */ jr $ra -/* 47418 8006C018 27BD0080 */ addiu $sp, $sp, 0x80 diff --git a/ver/us/asm/nonmatchings/os/xldtob/_Ldunscale.s b/ver/us/asm/nonmatchings/os/xldtob/_Ldunscale.s deleted file mode 100644 index c30642dade..0000000000 --- a/ver/us/asm/nonmatchings/os/xldtob/_Ldunscale.s +++ /dev/null @@ -1,46 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel _Ldunscale -/* 4741C 8006C01C 94A30000 */ lhu $v1, ($a1) -/* 47420 8006C020 30627FF0 */ andi $v0, $v1, 0x7ff0 -/* 47424 8006C024 00023902 */ srl $a3, $v0, 4 -/* 47428 8006C028 00E03021 */ addu $a2, $a3, $zero -/* 4742C 8006C02C 240207FF */ addiu $v0, $zero, 0x7ff -/* 47430 8006C030 14C20011 */ bne $a2, $v0, .L8006C078 -/* 47434 8006C034 00A04021 */ addu $t0, $a1, $zero -/* 47438 8006C038 A4800000 */ sh $zero, ($a0) -/* 4743C 8006C03C 94A20000 */ lhu $v0, ($a1) -/* 47440 8006C040 3042000F */ andi $v0, $v0, 0xf -/* 47444 8006C044 14400019 */ bnez $v0, .L8006C0AC -/* 47448 8006C048 24020002 */ addiu $v0, $zero, 2 -/* 4744C 8006C04C 94A20002 */ lhu $v0, 2($a1) -/* 47450 8006C050 14400016 */ bnez $v0, .L8006C0AC -/* 47454 8006C054 24020002 */ addiu $v0, $zero, 2 -/* 47458 8006C058 94A20004 */ lhu $v0, 4($a1) -/* 4745C 8006C05C 14400013 */ bnez $v0, .L8006C0AC -/* 47460 8006C060 24020002 */ addiu $v0, $zero, 2 -/* 47464 8006C064 94A20006 */ lhu $v0, 6($a1) -/* 47468 8006C068 14400010 */ bnez $v0, .L8006C0AC -/* 4746C 8006C06C 24020002 */ addiu $v0, $zero, 2 -/* 47470 8006C070 0801B02B */ j .L8006C0AC -/* 47474 8006C074 24020001 */ addiu $v0, $zero, 1 -.L8006C078: -/* 47478 8006C078 18C00007 */ blez $a2, .L8006C098 -/* 4747C 8006C07C 2402FFFF */ addiu $v0, $zero, -1 -/* 47480 8006C080 3063800F */ andi $v1, $v1, 0x800f -/* 47484 8006C084 34633FF0 */ ori $v1, $v1, 0x3ff0 -/* 47488 8006C088 A5030000 */ sh $v1, ($t0) -/* 4748C 8006C08C 24E3FC02 */ addiu $v1, $a3, -0x3fe -/* 47490 8006C090 0801B02B */ j .L8006C0AC -/* 47494 8006C094 A4830000 */ sh $v1, ($a0) -.L8006C098: -/* 47498 8006C098 04C00003 */ bltz $a2, .L8006C0A8 -/* 4749C 8006C09C 00001021 */ addu $v0, $zero, $zero -/* 474A0 8006C0A0 0801B02B */ j .L8006C0AC -/* 474A4 8006C0A4 A4800000 */ sh $zero, ($a0) -.L8006C0A8: -/* 474A8 8006C0A8 24020002 */ addiu $v0, $zero, 2 -.L8006C0AC: -/* 474AC 8006C0AC 03E00008 */ jr $ra -/* 474B0 8006C0B0 00000000 */ nop diff --git a/ver/us/asm/nonmatchings/os/xlitob/_Litob.s b/ver/us/asm/nonmatchings/os/xlitob/_Litob.s deleted file mode 100644 index 331d2cf69f..0000000000 --- a/ver/us/asm/nonmatchings/os/xlitob/_Litob.s +++ /dev/null @@ -1,164 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel _Litob -/* 46D80 8006B980 27BDFFA0 */ addiu $sp, $sp, -0x60 -/* 46D84 8006B984 AFB10044 */ sw $s1, 0x44($sp) -/* 46D88 8006B988 00808821 */ addu $s1, $a0, $zero -/* 46D8C 8006B98C AFB60058 */ sw $s6, 0x58($sp) -/* 46D90 8006B990 3C168009 */ lui $s6, %hi(D_80095940) -/* 46D94 8006B994 26D65940 */ addiu $s6, $s6, %lo(D_80095940) -/* 46D98 8006B998 00A02021 */ addu $a0, $a1, $zero -/* 46D9C 8006B99C 00052E00 */ sll $a1, $a1, 0x18 -/* 46DA0 8006B9A0 00052E03 */ sra $a1, $a1, 0x18 -/* 46DA4 8006B9A4 24020058 */ addiu $v0, $zero, 0x58 -/* 46DA8 8006B9A8 AFBF005C */ sw $ra, 0x5c($sp) -/* 46DAC 8006B9AC AFB50054 */ sw $s5, 0x54($sp) -/* 46DB0 8006B9B0 AFB40050 */ sw $s4, 0x50($sp) -/* 46DB4 8006B9B4 AFB3004C */ sw $s3, 0x4c($sp) -/* 46DB8 8006B9B8 AFB20048 */ sw $s2, 0x48($sp) -/* 46DBC 8006B9BC 14A20003 */ bne $a1, $v0, .L8006B9CC -/* 46DC0 8006B9C0 AFB00040 */ sw $s0, 0x40($sp) -/* 46DC4 8006B9C4 3C168009 */ lui $s6, %hi(D_80095954) -/* 46DC8 8006B9C8 26D65954 */ addiu $s6, $s6, %lo(D_80095954) -.L8006B9CC: -/* 46DCC 8006B9CC 2402006F */ addiu $v0, $zero, 0x6f -/* 46DD0 8006B9D0 10A20009 */ beq $a1, $v0, .L8006B9F8 -/* 46DD4 8006B9D4 38A30078 */ xori $v1, $a1, 0x78 -/* 46DD8 8006B9D8 0003182B */ sltu $v1, $zero, $v1 -/* 46DDC 8006B9DC 38A20058 */ xori $v0, $a1, 0x58 -/* 46DE0 8006B9E0 0002102B */ sltu $v0, $zero, $v0 -/* 46DE4 8006B9E4 00621824 */ and $v1, $v1, $v0 -/* 46DE8 8006B9E8 10600004 */ beqz $v1, .L8006B9FC -/* 46DEC 8006B9EC 24130010 */ addiu $s3, $zero, 0x10 -/* 46DF0 8006B9F0 0801AE7F */ j .L8006B9FC -/* 46DF4 8006B9F4 2413000A */ addiu $s3, $zero, 0xa -.L8006B9F8: -/* 46DF8 8006B9F8 24130008 */ addiu $s3, $zero, 8 -.L8006B9FC: -/* 46DFC 8006B9FC 8E340000 */ lw $s4, ($s1) -/* 46E00 8006BA00 8E350004 */ lw $s5, 4($s1) -/* 46E04 8006BA04 00041600 */ sll $v0, $a0, 0x18 -/* 46E08 8006BA08 00021603 */ sra $v0, $v0, 0x18 -/* 46E0C 8006BA0C 38430064 */ xori $v1, $v0, 0x64 -/* 46E10 8006BA10 2C630001 */ sltiu $v1, $v1, 1 -/* 46E14 8006BA14 38420069 */ xori $v0, $v0, 0x69 -/* 46E18 8006BA18 2C420001 */ sltiu $v0, $v0, 1 -/* 46E1C 8006BA1C 00621825 */ or $v1, $v1, $v0 -/* 46E20 8006BA20 10600008 */ beqz $v1, .L8006BA44 -/* 46E24 8006BA24 24120018 */ addiu $s2, $zero, 0x18 -/* 46E28 8006BA28 8E220000 */ lw $v0, ($s1) -/* 46E2C 8006BA2C 04410005 */ bgez $v0, .L8006BA44 -/* 46E30 8006BA30 00000000 */ nop -/* 46E34 8006BA34 0015A823 */ negu $s5, $s5 -/* 46E38 8006BA38 0014A023 */ negu $s4, $s4 -/* 46E3C 8006BA3C 0015102B */ sltu $v0, $zero, $s5 -/* 46E40 8006BA40 0282A023 */ subu $s4, $s4, $v0 -.L8006BA44: -/* 46E44 8006BA44 56800007 */ bnel $s4, $zero, .L8006BA64 -/* 46E48 8006BA48 2652FFFF */ addiu $s2, $s2, -1 -/* 46E4C 8006BA4C 56A00005 */ bnel $s5, $zero, .L8006BA64 -/* 46E50 8006BA50 2652FFFF */ addiu $s2, $s2, -1 -/* 46E54 8006BA54 8E220024 */ lw $v0, 0x24($s1) -/* 46E58 8006BA58 1040000D */ beqz $v0, .L8006BA90 -/* 46E5C 8006BA5C 02603821 */ addu $a3, $s3, $zero -/* 46E60 8006BA60 2652FFFF */ addiu $s2, $s2, -1 -.L8006BA64: -/* 46E64 8006BA64 02603821 */ addu $a3, $s3, $zero -/* 46E68 8006BA68 00003021 */ addu $a2, $zero, $zero -/* 46E6C 8006BA6C 02802021 */ addu $a0, $s4, $zero -/* 46E70 8006BA70 02A02821 */ addu $a1, $s5, $zero -/* 46E74 8006BA74 27B00018 */ addiu $s0, $sp, 0x18 -/* 46E78 8006BA78 0C01BA1C */ jal __umoddi3 -/* 46E7C 8006BA7C 02128021 */ addu $s0, $s0, $s2 -/* 46E80 8006BA80 02C31021 */ addu $v0, $s6, $v1 -/* 46E84 8006BA84 90420000 */ lbu $v0, ($v0) -/* 46E88 8006BA88 A2020000 */ sb $v0, ($s0) -/* 46E8C 8006BA8C 02603821 */ addu $a3, $s3, $zero -.L8006BA90: -/* 46E90 8006BA90 00003021 */ addu $a2, $zero, $zero -/* 46E94 8006BA94 02802021 */ addu $a0, $s4, $zero -/* 46E98 8006BA98 0C01B8C4 */ jal __udivdi3 -/* 46E9C 8006BA9C 02A02821 */ addu $a1, $s5, $zero -/* 46EA0 8006BAA0 AE220000 */ sw $v0, ($s1) -/* 46EA4 8006BAA4 AE230004 */ sw $v1, 4($s1) -/* 46EA8 8006BAA8 27A20018 */ addiu $v0, $sp, 0x18 -/* 46EAC 8006BAAC 02428021 */ addu $s0, $s2, $v0 -.L8006BAB0: -/* 46EB0 8006BAB0 8E220000 */ lw $v0, ($s1) -/* 46EB4 8006BAB4 1C400006 */ bgtz $v0, .L8006BAD0 -/* 46EB8 8006BAB8 00001821 */ addu $v1, $zero, $zero -/* 46EBC 8006BABC 14400006 */ bnez $v0, .L8006BAD8 -/* 46EC0 8006BAC0 0012102A */ slt $v0, $zero, $s2 -/* 46EC4 8006BAC4 8E220004 */ lw $v0, 4($s1) -/* 46EC8 8006BAC8 10400003 */ beqz $v0, .L8006BAD8 -/* 46ECC 8006BACC 0012102A */ slt $v0, $zero, $s2 -.L8006BAD0: -/* 46ED0 8006BAD0 24030001 */ addiu $v1, $zero, 1 -/* 46ED4 8006BAD4 0012102A */ slt $v0, $zero, $s2 -.L8006BAD8: -/* 46ED8 8006BAD8 00621024 */ and $v0, $v1, $v0 -/* 46EDC 8006BADC 10400014 */ beqz $v0, .L8006BB30 -/* 46EE0 8006BAE0 02601821 */ addu $v1, $s3, $zero -/* 46EE4 8006BAE4 8E260000 */ lw $a2, ($s1) -/* 46EE8 8006BAE8 8E270004 */ lw $a3, 4($s1) -/* 46EEC 8006BAEC 001317C3 */ sra $v0, $s3, 0x1f -/* 46EF0 8006BAF0 AFA20010 */ sw $v0, 0x10($sp) -/* 46EF4 8006BAF4 AFA30014 */ sw $v1, 0x14($sp) -/* 46EF8 8006BAF8 0C01B5A9 */ jal lldiv -/* 46EFC 8006BAFC 27A40030 */ addiu $a0, $sp, 0x30 -/* 46F00 8006BB00 8FA20030 */ lw $v0, 0x30($sp) -/* 46F04 8006BB04 8FA30034 */ lw $v1, 0x34($sp) -/* 46F08 8006BB08 AE220000 */ sw $v0, ($s1) -/* 46F0C 8006BB0C AE230004 */ sw $v1, 4($s1) -/* 46F10 8006BB10 8FA20038 */ lw $v0, 0x38($sp) -/* 46F14 8006BB14 8FA3003C */ lw $v1, 0x3c($sp) -/* 46F18 8006BB18 02C31021 */ addu $v0, $s6, $v1 -/* 46F1C 8006BB1C 90420000 */ lbu $v0, ($v0) -/* 46F20 8006BB20 2610FFFF */ addiu $s0, $s0, -1 -/* 46F24 8006BB24 2652FFFF */ addiu $s2, $s2, -1 -/* 46F28 8006BB28 0801AEAC */ j .L8006BAB0 -/* 46F2C 8006BB2C A2020000 */ sb $v0, ($s0) -.L8006BB30: -/* 46F30 8006BB30 8E240008 */ lw $a0, 8($s1) -/* 46F34 8006BB34 27A50018 */ addiu $a1, $sp, 0x18 -/* 46F38 8006BB38 00B22821 */ addu $a1, $a1, $s2 -/* 46F3C 8006BB3C 24060018 */ addiu $a2, $zero, 0x18 -/* 46F40 8006BB40 00D23023 */ subu $a2, $a2, $s2 -/* 46F44 8006BB44 0C01929D */ jal memcpy -/* 46F48 8006BB48 AE260014 */ sw $a2, 0x14($s1) -/* 46F4C 8006BB4C 8E240014 */ lw $a0, 0x14($s1) -/* 46F50 8006BB50 8E230024 */ lw $v1, 0x24($s1) -/* 46F54 8006BB54 0083102A */ slt $v0, $a0, $v1 -/* 46F58 8006BB58 10400002 */ beqz $v0, .L8006BB64 -/* 46F5C 8006BB5C 00641023 */ subu $v0, $v1, $a0 -/* 46F60 8006BB60 AE220010 */ sw $v0, 0x10($s1) -.L8006BB64: -/* 46F64 8006BB64 8E220024 */ lw $v0, 0x24($s1) -/* 46F68 8006BB68 0441000F */ bgez $v0, .L8006BBA8 -/* 46F6C 8006BB6C 24030010 */ addiu $v1, $zero, 0x10 -/* 46F70 8006BB70 8E220030 */ lw $v0, 0x30($s1) -/* 46F74 8006BB74 30420014 */ andi $v0, $v0, 0x14 -/* 46F78 8006BB78 1443000B */ bne $v0, $v1, .L8006BBA8 -/* 46F7C 8006BB7C 00000000 */ nop -/* 46F80 8006BB80 8E220028 */ lw $v0, 0x28($s1) -/* 46F84 8006BB84 8E23000C */ lw $v1, 0xc($s1) -/* 46F88 8006BB88 8E250010 */ lw $a1, 0x10($s1) -/* 46F8C 8006BB8C 8E240014 */ lw $a0, 0x14($s1) -/* 46F90 8006BB90 00431023 */ subu $v0, $v0, $v1 -/* 46F94 8006BB94 00451023 */ subu $v0, $v0, $a1 -/* 46F98 8006BB98 00449023 */ subu $s2, $v0, $a0 -/* 46F9C 8006BB9C 1A400002 */ blez $s2, .L8006BBA8 -/* 46FA0 8006BBA0 00B21021 */ addu $v0, $a1, $s2 -/* 46FA4 8006BBA4 AE220010 */ sw $v0, 0x10($s1) -.L8006BBA8: -/* 46FA8 8006BBA8 8FBF005C */ lw $ra, 0x5c($sp) -/* 46FAC 8006BBAC 8FB60058 */ lw $s6, 0x58($sp) -/* 46FB0 8006BBB0 8FB50054 */ lw $s5, 0x54($sp) -/* 46FB4 8006BBB4 8FB40050 */ lw $s4, 0x50($sp) -/* 46FB8 8006BBB8 8FB3004C */ lw $s3, 0x4c($sp) -/* 46FBC 8006BBBC 8FB20048 */ lw $s2, 0x48($sp) -/* 46FC0 8006BBC0 8FB10044 */ lw $s1, 0x44($sp) -/* 46FC4 8006BBC4 8FB00040 */ lw $s0, 0x40($sp) -/* 46FC8 8006BBC8 03E00008 */ jr $ra -/* 46FCC 8006BBCC 27BD0060 */ addiu $sp, $sp, 0x60 diff --git a/ver/us/splat.yaml b/ver/us/splat.yaml index 633855b5d8..aa59bc43f6 100644 --- a/ver/us/splat.yaml +++ b/ver/us/splat.yaml @@ -235,7 +235,7 @@ segments: - [0x457C0, c, os/contramwrite, gcc_272 -O3] - [0x459D0, hasm, os/parameters] # Needs actual symbols added - [0x45A30, c, os/afterprenmi, gcc_272 -O3] - - [0x45A50, c, os/initialize] + - [0x45A50, c, os/initialize, gcc_272 -O3] - [0x45DF0, hasm, os/exceptasm] - [0x46760, hasm, os/__osDisableInt] - [0x467D0, hasm, os/__osRestoreInt] @@ -247,8 +247,8 @@ segments: - [0x46AE0, c, os/epirawwrite, gcc_272 -O3] - [0x46C50, c, os/ai, gcc_272 -O3] - [0x46C70, hasm, os/bcmp] - - [0x46D80, c, os/xlitob] - - [0x46FD0, c, os/xldtob] + - [0x46D80, c, os/xlitob, gcc_272 -O3] + - [0x46FD0, c, os/xldtob, gcc_272 -O3] - [0x47A60, hasm, os/__osGetCause] - [0x47A70, hasm, os/__osGetSR] - [0x47A80, hasm, os/__osSetCompare] @@ -265,7 +265,7 @@ segments: - [0x47C60, c, os/crc, gcc_272 -O3] - [0x47D50, c, os/destroythread, gcc_272 -O3] - [0x47E30, hasm, os/osMapTLBRdb] - - [0x47E90, c, os/vi] + - [0x47E90, c, os/vi, gcc_272 -O3] - [0x47FA0, c, os/vigetcurrcontext, gcc_272 -O3] - [0x47FB0, hasm, os/padding] - [0x47FC0, hasm, os/guNormalize] @@ -359,7 +359,12 @@ segments: - [0x6FA70, .data, os/timerintr] # libultra data - [auto, .data, os/vimgr] - [auto, .data, os/vitbl] - - [0x70C20, data, 70C20] + - [auto, .data, os/guRotate] + - [auto, .data, os/contpfs] + - [auto, .data, os/contramread] + - [auto, .data, os/initialize] + - [auto, .data, os/xlitob] + - [auto, .data, os/vi] - [0x70E30, .data, battle/battle] - [0x71430, bin, gspF3DEX2kawase_fifo_text] - [0x72A60, bin, gspF3DEX2kawase_fifo_data] diff --git a/ver/us/symbol_addrs.txt b/ver/us/symbol_addrs.txt index 08e912fdf8..548f75afad 100644 --- a/ver/us/symbol_addrs.txt +++ b/ver/us/symbol_addrs.txt @@ -2437,8 +2437,8 @@ __osRunQueue = 0x80094658; // type:data rom:0x6FA58 __osActiveQueue = 0x8009465C; // type:data rom:0x6FA5C __osRunningThread = 0x80094660; // type:data rom:0x6FA60 osViModeTable = 0x800946A0; // rom:0x6FAA0 -_osViModeNtscLan1 = 0x80095820; // type:data rom:0x70C20 -_osViModeMPalLan1 = 0x80095870; // type:data rom:0x70C70 +osViModeNtscLan1 = 0x80095820; // type:data rom:0x70C20 +osViModeMpalLan1 = 0x80095870; // type:data rom:0x70C70 gBattleAreas = 0x80095A30; // type:data rom:0x70E30 size:0x600 D_80097D30 = 0x80097D30; // type:data rom:0x73130 D_80097DC8 = 0x80097DC8; // type:data rom:0x731C8 @@ -2590,7 +2590,7 @@ gOverrideFlags = 0x8009A650; // type:data rom:0x75A50 D_8009A654 = 0x8009A654; // type:data rom:0x75A54 nuGfxCfb = 0x8009A658; // type:data rom:0x75A58 D_8009A65C = 0x8009A65C; // type:data rom:0x75A5C -D_8009A660 = 0x8009A660; // type:data rom:0x75A60 +__osFinalrom = 0x8009A660; // type:data rom:0x75A60 gBGMPlayerA = 0x8009A664; // type:data rom:0x75A64 D_8009A668 = 0x8009A668; // type:data rom:0x75A68 gMasterGfxPos = 0x8009A66C; // rom:0x75A6C @@ -25715,9 +25715,9 @@ obfuscated_general_heap_create = 0x7012BC11; // type:data D_7599F6D8 = 0x7599F6D8; // type:data osTvType = 0x80000300; // osRomBase = 0x80000308; // type:data -D_8000030C = 0x8000030C; // type:data +osResetType = 0x8000030C; // type:data osMemSize = 0x80000318; // type:data -D_8000031C = 0x8000031C; // type:data +osAppNMIBuffer = 0x8000031C; // type:data obfuscated_load_engine_data = 0x80026AC7; // type:data dead_atan2 = 0x8002AF70; // type:data obfuscated_create_audio_system = 0x8004AA85; // type:data diff --git a/ver/us/undefined_syms.txt b/ver/us/undefined_syms.txt index d752fce943..6b93d1ff87 100644 --- a/ver/us/undefined_syms.txt +++ b/ver/us/undefined_syms.txt @@ -26,6 +26,9 @@ D_F0000008 = 0xF0000008; D_F5000007 = 0xF5000007; D_FA000028 = 0xFA000028; D_FD100008 = 0xFD100008; +__osExceptionPreamble = 0x8006A9F0; +D_80095910 = 0x80095910; +D_80095938 = 0x80095938; // Obfuscation symbols obfuscated_battle_heap_create = battle_heap_create - 0xFEFFFFF; @@ -189,8 +192,8 @@ osRomBase = 0x80000308; osMemSize = 0x80000318; gBackgroundImage = 0x80200000; D_80200000 = 0x80200000; -D_8000030C = 0x8000030C; -D_8000031C = 0x8000031C; +osResetType = 0x8000030C; +osAppNMIBuffer = 0x8000031C; D_800A08C0 = 0x800A08C0; // effect tlb stuff