- Global _ [0x60]
- Unused
.bss.
- Global __AI_SRC_INIT (void)
- Probably its own function, but it has two return values (
rise48
and diff
).
- Global __CARDFormatRegionAsync (s32 chan, u16 encode, CARDCallback callback)
Eliminate cast to CARDCallback.
Eliminate cast to CARDCallback.
- Global __CARDFreeBlock (s32 chan, u16 nBlock, CARDCallback callback)
- Looks like a missing inline.
- Global __CARDRead (s32 chan, u32 addr, u32 length, void *dst, CARDCallback callback)
- Eliminate cast to CARDCallback.
- Global __CARDSeek (CARDFileInfo *fileInfo, s32 length, s32 offset, CARDControl **pcard)
- CARDFileInfo::offset seems like size_t.
- Global __CARDStart (s32 chan, CARDCallback txCallback, CARDCallback exiCallback)
- Eliminate cast to CARDCallback.
- Global __CARDUpdateDir (s32 chan, CARDCallback callback)
- Eliminate cast to CARDCallback.
- Global __CARDUpdateFatBlock (s32 chan, u16 *fat, CARDCallback callback)
- Eliminate cast to CARDCallback.
- Global __DSP_boot_task (DSPTaskInfo *task)
- Unused assignment. Is this writing to a hardware reg?
- Global __fstLoad (void)
- Unused assignment.
- Global _eti_init_info_ []
- HACK: Should be
_eti_init_info
. We can't use the appropriate name yet due to the linker not being able to generate it.
- Global _HSD_JObjGetScaleX (HSD_JObj *jobj)
- Remove when strings can be reused
- Global _HSD_JObjGetScaleY (HSD_JObj *jobj)
- Remove when strings can be reused
- Global _HSD_JObjGetScaleZ (HSD_JObj *jobj)
- Remove when strings can be reused
- Global _HSD_ZListSort (void)
- Create and use an offsetof macro to get ZList sort.texedge and sort.xlu
- Global ABS (x)
- Is fabs_inline fake? See ftCo_AttackS3_CheckInput.
- Global ARInit (u32 *stack_index_addr, u32 num_entries)
- Should be a call to one of the OS_TIMER_CLOCK macros
- Global BlockReadCallback (s32 chan, s32 result)
- Eliminate cast to CARDCallback.
- Global BlockWriteCallback (s32 chan, s32 result)
- Eliminate cast to CARDCallback.
- Global bool
- Maybe some versions of MetroWerks support
_Bool
?
- Global Camera_80029C88 (CameraMovement *movement, f32)
- r3 and r4 need to be swapped in this function to get a match
- Global Camera_8002A28C (void)
- Mostly register allocation preventing a match here.
- Global CARDCreateAsync (s32 chan, const char *fileName, u32 size, CARDFileInfo *fileInfo, CARDCallback callback)
Used only by hsd_803AAA48.
CARDControl::sectorSize is probably size_t.
Eliminate cast to CARDCallback.
Eliminate cast to CARDCallback.
- Global CARDDeleteAsync (s32 chan, const char *fileName, CARDCallback callback)
- Eliminate casts to CARDCallback.
- Global CARDFastDeleteAsync (s32 chan, s32 fileNo, CARDCallback callback)
- Eliminate casts to CARDCallback.
- Global CARDGetXferredBytes (s32 chan)
- Used only by hsd_803AAA48
- Global CARDMountAsync (s32 chan, void *workArea, CARDCallback detachCallback, CARDCallback attachCallback)
eliminate cast to EXICallback
Eliminate cast to CARDCallback.
Eliminate cast to CARDCallback.
eliminate cast to EXICallback
- Global CARDRead (CARDFileInfo *fileinfo, void *buf, u32 length, u32 offset)
- Eliminate cast to CARDCallback.
- Global CARDReadAsync (CARDFileInfo *fileInfo, void *buf, s32 length, s32 offset, CARDCallback callback)
Eliminate cast to CARDCallback.
Eliminate cast to CARDCallback.
- Global CARDSetStatusAsync (s32 chan, s32 fileNo, CARDStat *stat, CARDCallback callback)
- Used only by hsd_803AAA48.
- Global CARDWrite (CARDFileInfo *info, void *buf, s32 length, s32 offset)
- Eliminate cast to CARDCallback.
- Global CARDWriteAsync (CARDFileInfo *fileInfo, const void *buf, u32 length, s32 offset, CARDCallback callback)
- Eliminate cast to CARDCallback.
- Global checkItemThrowInput (ftCo_GObj *gobj)
- This probably doesn't exist; see ftCo_AttackAir_CheckItemThrowInput.
- Global CollData::x104
- this is the start of a substruct with size 0x2C
- Global Collide_LeftWallPush
- This is the same as MPCOLL_RIGHTWALL, etc. Pick a naming convention.
- Struct CommandInfo
- Unify with ftCmdScript
- Global COMMON_DATA_F32
- Fix common data struct
- File common_structs.h
- Delete this.
- Global COPY_ATTRS (gobj, attributeName)
- Remove declarations. Doesn't really need to be a macro.
- Global doAirHitColl (HSD_GObj *gobj)
- Can maybe me combined with doAirColl.
- Global doAnim0 (HSD_GObj *gobj)
- GET_FIGHTER
- Global doAnim1 (HSD_GObj *gobj)
- GET_FIGHTER
- Global doColl (Fighter_GObj *gobj, ftSeak_MotionState msid)
- Named flags.
- Global doIasa (ftCo_GObj *gobj)
- Some kind of missing
bool
inline
- Global DoMount (EXIChannel chan)
- Eliminate cast to CARDCallback.
- Global DOUBLE_PI32
- Move elsewhere.
- Global EraseCallback (s32 chan, s32 result)
Eliminate cast to CARDCallback.
Eliminate cast to CARDCallback.
- Global fabsf (f32 x)
- Move elsewhere.
- Global Fighter_804D64FC
- Fighter_804D64FC..Fighter_804D6550 are initialized to 0 in Fighter_LoadCommonData, probably all pointers
- Global Fighter_procUpdate (Fighter_GObj *gobj)
incompatible-pointer-types
because bad headers
We set this velocity to 0 after applying it. Is this SDI or ASDI?
- Global filename
- Should be
__FILE__
- Global flt_804D7FD8
- float order hack
- Global fn_800F6AC8 (HSD_GObj *gobj)
- Named flags.
- Global fn_8012CEE0 (HSD_GObj *)
- Move to C file
- Global foo (s32 chan)
sp1C
is a struct.
- Global forceFloatOrder0 (void)
- Float order hack.
- Global forceFloatOrder1 (void)
- Float order hack.
- Global forceFloatOrder2 (void)
- Float order hack.
- Global FormatCallback (s32 chan, s32 result)
Eliminate cast to CARDCallback.
Eliminate cast to CARDCallback.
- File ft_0877.dox
- Fix formatting
- Global ft_8007C2E0 (Fighter *fp0, HitCapsule *hit0, Fighter *fp1, HitCapsule *hit1)
- This is just the same inline twice.
- Global ft_CheckGroundAndLedge (Fighter_GObj *gobj, s32 direction)
- Name does not follow our conventions.
- Global ftBossLib_8015C270 (void)
- Get msid
- Global ftBossLib_8015C2A8 (void)
- Get msid
- Global ftBossLib_8015C2E0 (void)
- Get ASIDs
- Global ftBossLib_8015C31C (void)
- Get ASIDs
- Global ftBossLib_8015C6BC (void)
- Can be GET_FIGHTER when inlines are fixed.
- Global ftCa_SpecialAirN_IASA (HSD_GObj *gobj)
- Fake double assignment.
- Global ftCa_SpecialAirN_Phys (HSD_GObj *gobj)
- Fake double assignment.
- Global ftCa_SpecialLw_Coll (HSD_GObj *gobj)
- Pull out these check functions
- File ftCa_SpecialS.dox
- Fix formatting
- Global ftCa_SpecialS_OnDetect (HSD_GObj *gobj)
- It might be possible to merge this with the below branch.
- Global ftCamera_UpdateCameraBox (HSD_GObj *gobj)
lol
this line changes everything lol
- Global ftCaptain_SpecialN_GetAngleVel (Fighter *fp)
Join declarations and assignments somehow.
Eliminate f
.
- Global ftCheckThrowB0 (Fighter *fp)
- This and ftCheckThrowB3, etc. are probably one macro or something.
- Global ftCl_AppealS_Anim (HSD_GObj *gobj)
- There might be only one
Fighter*
here.
- Global ftCo_8008EB58 (ftCo_GObj *gobj)
- Inline depth.
- Global ftCo_80091AD8 (ftCo_GObj *gobj, int mv_x20)
inline
of ftCo_80091A4C and something else.
- Global ftCo_80092F2C (HSD_GObj *gobj, bool arg1)
- What happens to this value?
- Global ftCo_800932DC (ftCo_GObj *gobj)
- Fake.
- Global ftCo_800939B4 (ftCo_GObj *gobj)
- Shares a lot of code with ftCo_800923B4
- Global ftCo_80093A50 (ftCo_GObj *gobj)
- Shared code with ftCo_8009388C.
- Global ftCo_80095328 (HSD_GObj *arg0, bool *arg1)
- A lot of shared code with ftCo_80094EA4.
- Global ftCo_800958FC (HSD_GObj *gobj, FtMotionId msid)
- Mostly just an inline of ftCo_800957F4.
- Global ftCo_8009AB9C (ftCo_GObj *gobj)
- Shared code with ftCo_8009AEA4.
- Global ftCo_8009B040 (ftCo_GObj *gobj)
- Shared code with ftCo_8009AEA4.
- Global ftCo_8009CB40 (Fighter *fp, ssize_t bone_idx, bool, Fighter_Part)
-
- Global ftCo_800A0148 (UNK_PARAMS)
- Static functions belong in #ftCo_0A01.c
- Global ftCo_800A0508 (ftCo_Fighter *fp)
- Shared code with ftCo_800A963C?
- Global ftCo_800A0F00 (ftCo_GObj *gobj)
- This matches if ft_80087A80 returns an
int
.
- Global ftCo_800A50D4 (ftCo_Fighter *fp)
- ftCo_800A4A40 but with ftCo_IsAlly. Same inline somehow.
- Global ftCo_800B462C (ftCo_Fighter *fp)
- Static declarations belong in #ftCo_0B3E.c
- Global ftCo_800BCAF4 (ftCo_GObj *gobj)
- Shared code with ftCo_800BC9C8. Simple
inline
doesn't work.
- Global ftCo_800BCE64 (ftCo_GObj *gobj, FtMotionId msid)
- Use ftCo_Thrown_Enter.
- Global ftCo_800BD0E8 (ftCo_GObj *gobj, FtMotionId msid)
- SOLUTION 0
- Global ftCo_800BDA50 (ftKb_GObj *gobj)
- Which
mv
is this?
- Global ftCo_800BDB58 (ftCo_GObj *gobj, ftKb_GObj *thrower_gobj)
- Possibly another callback in inlineB2
- Global ftCo_800BE000 (ftCo_GObj *gobj, ftKb_GObj *thrower_gobj)
- Possibly another callback in inlineB2
- Global ftCo_800C0694 (Fighter *fp)
- Wrong return type. Union?
- Global ftCo_800C1E64 (HSD_GObj *pPlayerEntityStruct, s32, s32, u8, f32)
- UnclePunch Map file: AS_203_PassiveWalljump_Walljump
- Global ftCo_800C23FC (ftCo_GObj *gobj)
- Shared code with ftCo_800C1E64.
- Global ftCo_800C5614 (ftCo_GObj *gobj)
- Cannot move below
fp
, which suggests an inline
- Global ftCo_800C57B4 (ftCo_GObj *gobj)
- Cannot move below
fp
, which suggests an inline
- Global ftCo_800C5A98 (ftCo_GObj *gobj)
- Cannot move below
fp
, which suggests an inline
- Global ftCo_800C5B88 (ftCo_GObj *gobj, enum_t)
- Cannot move below
fp
, which suggests an inline
- Global ftCo_800C5D34 (ftCo_GObj *gobj)
- Cannot move below
fp
, which suggests an inline
- Global ftCo_800C5F88 (ftCo_GObj *gobj)
- Cannot move below
fp
, which suggests an inline
- Global ftCo_800C6150 (ftCo_GObj *gobj)
- ftCo_800C7070
- Global ftCo_800C7070 (ftCo_GObj *gobj)
- ftCo_800C6150
- Global ftCo_800DEAE8 (HSD_GObj *gobj, enum_t asid0, enum_t asid1)
- enum params
- Global ftCo_803C60E0 []
- Is this
\0\0\0\0
a split? Shouldn't be possible given ftCo_804D89D8...
- Global ftCo_AttackAir_CheckItemThrowInput (ftCo_GObj *gobj)
- This is exactly checkItemThrowInput but it uses too much stack for ftCo_AttackAirLw_IASA to call it.
- Global ftCo_AttackS4_8008C114 (ftCo_GObj *gobj)
- Can maybe be combined with ftCo_AttackS4_CheckInput
- Global ftCo_Damage_CalcKnockback (ftCo_Fighter *fp)
- Probably a
switch
.
- Global ftCo_GuardOff_IASA (ftCo_GObj *gobj)
- RETURN_IF chain
- Global ftCo_GuardReflect_IASA (HSD_GObj *gobj)
- Inline depth.
- Global ftCo_OttottoWait_Coll (ftCo_GObj *gobj)
- Shared code with ftCo_Ottotto_Coll
- Global ftCo_ThrownCopyStar_Coll (ftCo_GObj *gobj)
- Shared code with ftCo_ThrownKirbyStar_Coll but an inline uses too much stack.
- Global ftCo_ThrownKirbyStar_Coll (ftCo_GObj *gobj)
- Shared code with ftCo_ThrownCopyStar_Coll but an inline uses too much stack.
- Global ftColl_800764DC (Fighter_GObj *gobj)
- GET_FIGHTER adds an instruction
- Global ftColl_80076ED8 (Fighter *fp0, HitCapsule *hit0, Fighter *fp1, HitCapsule *hit1)
- inline
- Global ftColl_8007B1B8 (Fighter_GObj *gobj, ShieldDesc *shield, HSD_GObjEvent cb)
shield
is AbsorbDesc, and AbsorbDesc is part of ShieldDesc
- Global ftCommon_8007CEF4 (ftCo_Fighter *)
- This surely calls ftCommon_8007CE94 somehow...
- Global ftCommon_8007FA58 (ftCo_GObj *, Item_GObj *)
- This is an inline.
- Global ftCommon_8007FE84 (ftCo_GObj *, ftCo_GObj *, s32, float)
- static
- Global ftCommon_800804EC (ftCo_Fighter *)
DataOffset_PlayerScale_MultiplyBySomething
- Global ftCommonData::x6D8 [1]
- expand to actual size
- Global ftDk_Init_OnLoad (HSD_GObj *gobj)
- GET_FIGHTER
- Global ftDk_MS_346_800E05E4 (HSD_GObj *gobj)
- GET_FIGHTER
- Global ftDk_MS_348_800E04A4 (HSD_GObj *gobj, s32 arg1)
- GET_FIGHTER
- Global ftDk_SpecialAirS_Phys (HSD_GObj *gobj)
- Fix control flow.
- Struct ftDonkey_MotionVars::ftDonkey_State5Vars
- Rename to correct state.
- Struct ftDonkey_MotionVars::ftDonkey_State7Vars
- Rename to correct state.
- Struct ftDonkey_MotionVars::ftDonkey_State8Vars
- Rename to correct state.
- Global ftFox_SpecialLw_InlinePhys (HSD_GObj *gobj)
- Shared
inline
with other functions in this file.
- Global ftFox_SpecialLw_Turn_Inline (HSD_GObj *gobj)
- Degrees-to-radians constant.
- Global ftFx_AppealS_CheckIfUsed (Fighter *fp)
- Fix formatting
- Global ftFx_SpecialAirHi_Coll (HSD_GObj *gobj)
This match is definitely fake.
Rework this entire match.
- Global ftFx_SpecialAirNLoop_Anim (HSD_GObj *gobj)
Unused assignment.
Fake assignment.
- Global ftFx_SpecialHi_Anim (HSD_GObj *gobj)
- Common inline with ftFx_SpecialAirHi_Anim.
- Global ftFx_SpecialHi_Phys (HSD_GObj *gobj)
- Possibly common inline with ftFx_SpecialAirHi_Phys.
- Global ftFx_SpecialHiHoldAir_Coll (HSD_GObj *gobj)
- Ternary operator should be possible here somehow.
- Global ftFx_SpecialLw_CreateLoopGFX (HSD_GObj *gobj)
- Shared
inline
with ftFx_SpecialLw_CreateStartGFX.
- Global ftFx_SpecialLwLoop_Anim (HSD_GObj *gobj)
- Shared
inline
with ftFx_SpecialAirLwLoop_Anim.
- Global ftFx_SpecialLwTurn_Anim (HSD_GObj *gobj)
- Shared
inline
with ftFx_SpecialAirLwTurn_Anim.
- Global ftFx_SpecialN_CreateBlasterShot (HSD_GObj *gobj)
Seems fake, probably one or more missing inline
functions.
Shared inline
with ftFx_SpecialNLoop_Anim and ftFx_SpecialAirNLoop_Anim.
- Global ftFx_SpecialN_FtGetHoldJoint (HSD_GObj *gobj, Vec3 *pos)
- Shared
inline
with ftFx_SpecialN_ItGetHoldJoint.
- Global ftFx_SpecialNLoop_Anim (HSD_GObj *gobj)
- Fake assignment.
- Global ftFx_SpecialS_CheckGhostRemove (HSD_GObj *gobj)
enum
- Global ftGw_SpecialLw_AbsorbThink_DecideAction (HSD_GObj *gobj)
enum
- Global ftGw_SpecialLw_Anim (HSD_GObj *gobj)
Shared inline
with ftGw_SpecialAirLw_Anim.
Frame number constant
- Global ftGw_SpecialLw_IASA (HSD_GObj *gobj)
- Shared
inline
with ftGw_SpecialAirLw_IASA.
- Global ftGw_SpecialLw_ItemCheckPanicRemove (HSD_GObj *gobj)
enum
- Global ftGw_SpecialLw_ItemPanicSetup (HSD_GObj *gobj)
- Can't move below
_
.
- Global ftGw_SpecialLw_UpdateBucketModel (HSD_GObj *gobj)
enum
for parts
- Global ftGw_SpecialLwShoot_Anim (HSD_GObj *gobj)
- Shared
inline
with ftGw_SpecialAirLwShoot_Anim.
- Global ftGw_SpecialLwShoot_ReleaseOil (HSD_GObj *gobj)
Shared inline
with ftGw_SpecialAirLwShoot_ReleaseOil
Please for the love of god stop copy-pasting code
- Global ftGw_SpecialN_Loop (HSD_GObj *gobj, float anim_frame)
- Shared
inline
with ftGw_SpecialAirN_Loop.
- Global ftGw_SpecialS_Enter (HSD_GObj *gobj)
- Shared
inline
with ftGw_SpecialAirS_Enter.
- Global ftGw_SpecialS_GetRandomInt (HSD_GObj *gobj)
- getFighter can be factored out somehow.
- Global ftGw_SpecialS_ItemCheckJudgementRemove (HSD_GObj *gobj)
enum
- Struct ftKb_DatAttrs
- Every hat is its own struct.
- Global ftKb_Init_800EE528 (void)
- Bad cast.
- Global ftKb_MF_MultiJump
- Clean up factorization
- Global ftKb_SpecialNGw_8010CC6C (HSD_GObj *gobj)
- Named flags.
- Global ftKb_SpecialNGw_8010CCD4 (HSD_GObj *gobj)
- Named flags.
- Global ftKb_SpecialNNs_800FED38 (HSD_GObj *gobj)
da
can't move below fp
- Global ftKb_SpecialNNs_800FEDD0 (HSD_GObj *gobj)
da
can't move below fp
- Global ftKb_SpecialNPe_8010C8D8 (HSD_GObj *gobj)
Flag names.
da
can't move below fp
- Global ftKb_SpecialNPe_8010C9CC (HSD_GObj *gobj)
Named flags.
da
can't move below fp
- Struct ftKoopa_MotionVars::ftKoopa_SpecialSVars
- Possibly #ftKoopa_State1Vars.
- Struct ftKoopa_MotionVars::ftKoopa_State1Vars
- Proper state name.
- Global ftKp_Init_OnLoad (HSD_GObj *gobj)
- GET_FIGHTER is 8 bytes too much stack but it should be possible
- Global ftKp_SpecialAirSHit_IASA (HSD_GObj *gobj)
da
can't move below @ fp.
Shared inline with ftKp_SpecialSHit_IASA.
- Global ftKp_SpecialS_8013322C (HSD_GObj *gobj)
fp0
cannot move below fp1
, which is very strange. Perhaps there is a temporary Fighter*
somewhere.
- Global ftKp_SpecialSHit_Anim (HSD_GObj *gobj)
Combine fp0
with other branch somehow
Combine fp0
with other branch somehow
- Global ftKp_SpecialSHit_IASA (HSD_GObj *gobj)
Shared inline with ftKp_SpecialAirSHit_IASA.
da
can't move below @ fp.
- Global ftLg_SpecialAirS2_Coll (HSD_GObj *gobj)
- Named flags
- Global ftLg_SpecialS_Anim (HSD_GObj *gobj)
- Shared
inline
with ftLg_SpecialAirS_Anim.
- Global ftLg_SpecialS_Enter (HSD_GObj *gobj)
- Shared
inline
with ftLg_SpecialAirS_Enter.
- Global ftLg_SpecialSHold_Anim (HSD_GObj *gobj)
- Shared
inline
with ftLg_SpecialAirSHold_Anim.
- Global ftLg_SpecialSHold_Enter (HSD_GObj *gobj)
- Shared
inline
with ftLg_SpecialAirSHold_Enter.
- Global ftLib_80086198 (HSD_GObj *)
- Figure out how these are really declared
- Global ftLib_8008741C (u32)
- Is
i
really u32?
- Global ftLk_SpecialAirLw_Coll (HSD_GObj *gobj)
- Verify MSID.
- Global ftLk_SpecialAirN_Enter (ftLk_GObj *gobj)
GET_FIGHTER
Share more code with ftLk_SpecialN_Enter.
- Global ftLk_SpecialAirNEnd_Coll (ftLk_GObj *gobj)
- Combine with ftLk_SpecialNEnd_Coll.
- Global ftLk_SpecialAirNStart_IASA (ftLk_GObj *gobj)
- Same as ftLk_SpecialNStart_IASA with different MSID
- Global ftLk_SpecialAirS_Enter (HSD_GObj *gobj)
- Share code with ftLk_SpecialS_Enter. A simple inline won't work.
- Global ftLk_SpecialLw_Coll (HSD_GObj *gobj)
- Verify MSID.
- Global ftLk_SpecialN_Enter (ftLk_GObj *gobj)
- GET_FIGHTER
- Global ftLk_SpecialN_UnsetArrow (ftLk_GObj *gobj)
- Does this actually do anything? Doesn't seem to return
bool
.
- Global ftLk_SpecialN_UnsetFv14 (ftLk_GObj *gobj)
- Does this actually do anything? Doesn't seem to return
bool
.
- Global ftLk_SpecialNStart_IASA (ftLk_GObj *gobj)
- Shared with ftLk_SpecialNLoop_IASA
- Global ftLk_SpecialS1Empty_Coll (HSD_GObj *gobj)
- Share code with ftLk_SpecialS1_Coll.
- Global ftLuigi_SpecialS_Setup (HSD_GObj *gobj)
- Use GET_FIGHTER.
- Module ftmasterhand
- These splits work with the floats but are not what one would expect for the text section.
- Global ftMewtwo_SpecialHi_SetVars (HSD_GObj *gobj)
- This is like three functions in one. Split it.
- Global ftMh_BackCrush_Anim (HSD_GObj *gobj)
- GET_JOBJ
- Global ftMh_Drill_Phys (HSD_GObj *gobj)
- GET_FIGHTER
- Global ftMh_FingerGun1_Phys (HSD_GObj *gobj)
- Not enough stack for GET_FIGHTER; inline issue.
- Global ftMh_MS_343_801510B0 (HSD_GObj *gobj)
- Probably same file if ftMh_MS_343_801511FC is getting implicitly passed.
- Global ftMh_MS_349_80151CA8 (HSD_GObj *gobj)
- The code matches, but is this right?
- Global ftMh_MS_370_80153D2C (HSD_GObj *gobj)
- GET_FIGHTER and GET_JOBJ both cause regswaps here, but they probably shouldn't.
- Global ftMh_MS_389_80150C8C (HSD_GObj *gobj)
- the
#pragma
above is preventing use of GET_FIGHTER.
- Global ftMh_SweepLoop_Anim (HSD_GObj *gobj)
- GET_FIGHTER
- Global ftMh_TagApplaud_Anim (HSD_GObj *gobj)
- inlined? possibly shared with ftMh_TagCrush_Anim
- Global ftMh_Wait1_1_Phys (HSD_GObj *gobj)
- GET_FIGHTER doesn't fit the stack.
- Global ftMh_Wait1_2_Phys (HSD_GObj *gobj)
- GET_FIGHTER
- Global ftMh_WalkLoop_Anim (HSD_GObj *gobj)
- GET_FIGHTER uses slightly too much stack; inline issue.
- Global ftMh_WalkLoop_Phys (HSD_GObj *gobj)
- GET_FIGHTER
- Global ftMr_Init_OnLoad (HSD_GObj *gobj)
- GET_FIGHTER is too much stack. Problem with PUSH_ATTRS?
- Global ftMr_SpecialS_CreateCape (HSD_GObj *gobj)
- Can't move below
_
.
- Global ftMr_SpecialS_Phys (HSD_GObj *gobj)
- Cannot be moved above
unused0
or below unused1
.
- Global ftMs_SpecialAirLwHit_Anim (HSD_GObj *gobj)
register swap:
required for some reason
- Global ftMs_SpecialLwHit_Anim (HSD_GObj *gobj)
required for some reason
register swap:
- Global ftMs_SpecialN_80136A1C (HSD_GObj *gobj)
- Named flags.
- Global ftMs_SpecialN_80136A7C (HSD_GObj *gobj)
- Named flags.
- Global ftMs_SpecialN_80136DB4 (HSD_GObj *gobj)
- Named flags.
- Global ftMs_SpecialN_80136E14 (HSD_GObj *gobj)
- Named flags.
- Global ftMs_SpecialN_801371FC (HSD_GObj *gobj)
- Named flags.
- Global ftMs_SpecialN_801372A8 (HSD_GObj *gobj)
- Named flags.
- Global ftMt_SpecialAirHi_Enter (HSD_GObj *gobj)
- Express as a fraction or something.
- Global ftMt_SpecialAirS_AirToGround (HSD_GObj *gobj)
- GET_FIGHTER
- Global ftMt_SpecialHi_Enter (HSD_GObj *gobj)
Probably a missing inline
function.
Shared inline
with ftMt_SpecialAirHi_Enter.
- Global ftMt_SpecialN_ReleaseShadowBall (HSD_GObj *gobj)
Missing inline
function(s).
Missing inline
function(s).
- File ftNs_AttackHi4.dox
- Fix formatting
- Global ftNs_AttackHi4_YoyoApplySmash (HSD_GObj *gobj)
- Stack is too messed up for GET_FIGHTER.
- Global ftNs_AttackHi4_YoyoCheckEnvColl (HSD_GObj *gobj, Vec3 *ECBUnk, Vec3 *ECBUnk2, float float_unk)
- Define flags.
- Global ftNs_AttackHi4_YoyoSetHitPos (HSD_GObj *gobj)
- Can't move below
fp
.
- Global ftNs_AttackHi4_YoyoSetHitPosUnk (HSD_GObj *gobj, float arg8)
- Can't move below
fp
.
- Global ftNs_AttackHi4_YoyoSetUnkPos (HSD_GObj *gobj, Vec3 *arg1)
Remove dont_inline
. This is probably a result of incorrectly splitting out the function.
GET_FIGHTER is prevented by dont_inline
.
- Global ftNs_AttackHi4_YoyoThink_IsRemove (HSD_GObj *gobj)
- Stack is too messed up for GET_FIGHTER.
- File ftNs_Init.dox
- Fix formatting
- Global ftNs_SpecialAirNRelease_IASA (HSD_GObj *gobj)
- Nested return value
- Global ftNs_SpecialHi_Enter (HSD_GObj *gobj)
Rewrite this.
Try to move these close to usage
- Global ftNs_SpecialNRelease_IASA (HSD_GObj *gobj)
- Nested return value
- Global ftNs_SpecialNStart_Anim (HSD_GObj *gobj)
- Can't move below
_
.
- Global ftPe_8011D598 (HSD_GObj *gobj)
- Can maybe use ensureUnkItem?
- Global ftPe_Float_IASA (HSD_GObj *gobj)
- Call #checkContinueFloatInput
- Global ftPe_SpecialHiStart_IASA (HSD_GObj *gobj)
- GET_FIGHTER
- Global ftpickupitem_80094D90 (ftCo_GObj *gobj)
- ftpickupitem_80094DF8
- Struct ftPikachu_MotionVars::ftPikachu_State2Vars
- Proper state name.
- Struct ftPikachu_MotionVars::ftPikachu_State3Vars
- Proper state name.
- Global ftPk_SpecialAirHi_Enter (HSD_GObj *gobj)
- Can't move below
fp
.
- Global ftPk_SpecialAirHiEnd_Coll (HSD_GObj *gobj)
Fix weird control flow.
Eliminate cast (by changing type of ftPikachuAttributes::height_attributes)
- Global ftPk_SpecialAirHiStart0_Coll (HSD_GObj *gobj)
- Fix weird control flow.
- Global ftPk_SpecialHi_Enter (HSD_GObj *gobj)
- Can't move below
fp
.
- Global ftPk_SpecialHiEnd_Coll (HSD_GObj *gobj)
- Eliminate cast (by changing type of ftPikachuAttributes::height_attributes)
- Global ftPk_SpecialHiStart1_Coll (HSD_GObj *gobj)
- Eliminate cast (by changing type of field)
- Global ftPk_SpecialLw_ChangeMotion_Unk00 (HSD_GObj *gobj)
- GET_FIGHTER
- Global ftPk_SpecialLw_ChangeMotion_Unk02 (HSD_GObj *gobj)
- GET_FIGHTER
- Global ftPk_SpecialLw_ChangeMotion_Unk04 (HSD_GObj *gobj)
- GET_FIGHTER
- Global ftPk_SpecialLw_ChangeMotion_Unk06 (HSD_GObj *gobj)
- GET_FIGHTER
- Global ftPk_SpecialLw_SpawnEffect (HSD_GObj *gobj)
- Result of an inner function.
- Global ftPr_SpecialAirNEnd_Coll (Fighter_GObj *gobj)
Named flags.
Maybe shared inline with ftPr_SpecialNEnd_Coll?
- Global ftPr_SpecialAirNStart_Anim (HSD_GObj *gobj)
- Named flags.
- Global ftPr_SpecialNEnd_Coll (Fighter_GObj *gobj)
- Named flags.
- Global ftPr_SpecialNStart_Coll (HSD_GObj *gobj)
- Named flags.
- Global ftPr_SpecialS_8013D764 (HSD_GObj *gobj)
- Named flags.
- Struct ftSamus_MotionVars::ftSamus_State2Vars
- Proper state name.
- Struct ftSamus_MotionVars::ftSamus_State3Vars
- Proper state name.
- Struct ftSamus_MotionVars::ftSamus_State5Vars
- Proper state name.
- Struct ftSamus_MotionVars::ftSamus_State6Vars
- Proper state name.
- Global ftSk_SpecialNLoop_Coll (Fighter_GObj *gobj)
- Named flags.
- Global ftSk_SpecialNStart_Coll (Fighter_GObj *gobj)
- Named flags.
- Global ftSk_SpecialS_80110AEC (HSD_GObj *gobj)
- The inlines in this file are wrong; this block should be ftSk_SpecialS_ZeroHitboxPositions.
- Global ftSk_SpecialS_80111830 (HSD_GObj *gobj)
- Split into two functions, one with
- Global ftSk_SpecialS_CheckInitChain (HSD_GObj *gobj)
- Probably an inline.
- Global ftSk_SpecialSEnd_Anim (HSD_GObj *gobj)
- Split inner function
- Global ftSs_Init_LoadSpecialAttrs (HSD_GObj *gobj)
- Shared code wit ftPk_Init_LoadSpecialAttrs
- Global ftSs_SpecialLw_Coll (HSD_GObj *gobj)
- Remove cast.
- Struct ftYoshi_MotionVars::ftYoshi_State2Vars
- Proper state name.
- Global ftYs_Init_8012BE3C (HSD_GObj *gobj)
- Some kind of inline here.
- Global ftYs_MF_Special
- Fix names
- Global ftYs_Shield_8012C49C (HSD_GObj *gobj)
- Why is this still using
fp0
?
- Global ftZd_SpecialAirHiStart_1_Coll (HSD_GObj *gobj)
sa
can't move below coll_data
, which suggests a function boundary.
- Global func_80151484_inline1 (HSD_GObj *gobj)
- GET_FIGHTER
- Global get_jobj (HSD_GObj *gobj)
- Figure out how to use GET_JOBJ instead.
- Global get_max_and_fill_stack (void)
- What.
- Global get_zero (void)
- Float reorder hack until hopefully fixing my_sqrtf fixes it.
- Global GetFighterData (HSD_GObj *gobj)
- ftNs_AttackHi4_Anim literally won't match under any circumstances unless this inline is used to get
Fighter*
.
- Global gmScriptEventCast (p_event, type)
- Fix naming.
- Global grBattle_8021A20C (HSD_GObj *)
- Missing cast
- Global grDatFiles_803E0848
- Bad split?
- Global grDatFiles_803E0924
- Bad split?
- Global grNBa_803E7E38
- Not ideal
clang-format
behavior. Removing the trailing comma is arguably worse.
- File ground.c
- Don't hardcode 8
- File ground.dox
- Get stage's "yakumono" ("about"?) param
- Global Ground_801C24F8 (s32, u32, s32 *)
Even weirder.
Weird comparison, but typing UnkBgmStruct::x10 as signed
doesn't match and neither does typing BGM_Undefined as unsigned
.
phi_r30
probably belongs to an inline
.
- Global Ground_801C3128 (s32, void(*)(s32))
cur
cannot be swapped below max
, hinting at a missing inline
function.
Unused variable; is this an argument?
- Global Ground_801C32D4 (s32, s32)
Shared inline
with Ground_801C33C0.
Might be an inline
starting here.
- Global Ground_801C33C0 (s32, s32)
- Might be an
inline
starting here.
- Global Ground_801C4100 (HSD_JObj *jobj)
- Why isn't this emitted to
jobj.c
?
- Global Ground_801C4210 (void)
- With a hard-coded range for
i
, very unlikely it's not returning an enum
. Probably preset joints (accesses a list of HSD_JObj).
- Global grTCaptain_8021FD04 (int gobj_id)
- Can't move below
callbacks
.
- Global grTMewtwo_80222284 (int index)
- Can't move below
callbacks
.
- Global grTPeach_80222958 (int arg0)
- Can't move below
callbacks
.
- Global GXSetCPUFifo (GXFifoObj *fifo)
- : This is weird; try to match without it.
- Global GXTexRegionCallback )(void)
- Signature unknown.
- Global HALF_PI32
- Move elsewhere.
- Global handleColl (HSD_GObj *gobj)
- GET_FIGHTER
- Global hasExtraFighterId (ftMapping *data)
- This can be used in more places when functions are fixed to use correct structs.
- Global HSD_ASSERT (line, cond)
Take file
as another arg, ignore it if BUGFIX
.
Add another variant that takes a string for cond
.
- Global HSD_FogSet (HSD_Fog *)
- Eliminate cast
- Global HSD_GObj_80391070 (HSD_GObj *gobj, int arg1)
- don't inline HSD_GObj_80390EB8 is there a file boundary between HSD_GObj_80390EB8 and HSD_GObj_80391070?
- Struct HSD_GObjList
- Belongs in
melee/
somewhere
- Global HSD_JObjRemoveAll (HSD_JObj *)
- Regswaps
- Global HSD_Pad
PascalCase
members
- Global HSD_PadLibData
- Circular dependency
- Global HSD_SisLib_804D1124 [5]
- HSD_SisLib_804D1124 is of type SIS.
- Global ifStatus_802F69C0 (s32, s32)
- Inline with callback arg
- Global ifStatus_802F6AF8 (s32)
- Inline with callback arg
- Global ifStatus_802F6C04 (s32)
- Inline with callback arg
- Global ifStatus_802F6D10 (s32)
- Inline with callback arg
- Global inlineA0 (ftCo_GObj *gobj, HSD_GObjEvent cb)
- ftCo_CaptureWaitKoopa_Anim
- Global inlineA0 (ftCo_GObj *gobj, enum_t arg1, enum_t arg2, Fighter_Part part, float *param)
- This is a common inline. Needs to be solved and placed in a header. Could also be a real library function.
- Global inlineA0 (Fighter *fp0, Fighter *fp1, HitCapsule *hit1, Vec3 *ef_pos, float dmg)
ftColl_80076808(fp1, hit1, 3, fp0, true);
int_dmg = getEnvDmg(dmg);
Probably the same function as inlineA1
- Global inlineA1 (Fighter *fp0, HitCapsule *hit0, Fighter *fp1, HitCapsule *hit1, Vec3 *ef_pos, float dmg)
ftColl_80076808(fp1, hit1, 3, fp0, false);
int_dmg = getEnvDmg(dmg);
- Global inlineB0 (Fighter *fp0, HitCapsule *hitbox, Fighter *fp1, int arg3, bool(*cb)(HitCapsule *hit, int arg1, void *fp))
- ftColl_80076808
- Global inlineB0 (Fighter_GObj *gobj)
- Can probably share some more code with inlineA2
- Global inlineM0 (float x)
- Maybe a macro?
- Global InternalStageId
- Finish values, use
PascalCase
- File it_266F.dox
-
- File it_26B1.dox
-
- Global it_8026B9A8 (Item_GObj *gobj, HSD_GObj *arg1, Fighter_Part arg2)
- Not enough stack for GET_JOBJ.
- Global it_8026BB88 (Item_GObj *gobj, Vec3 *pos)
- Why is this always zero? Stripped something?
- Global it_8026BBCC (Item_GObj *gobj, Vec3 *pos)
- Why is this always zero? Stripped something?
- Global it_8026BDCC (Item_GObj *gobj)
- Each of these is an inlined function. Some are already defined.
- Global it_8026BE28 (Item_GObj *gobj)
- Each of these is an inlined function. Some are already defined.
- Global it_8026C258 (Vec3 *vector, float facingDir)
- Why is this cast to
short
necessary?
- Global it_80285084 (Item_GObj *gobj)
- Shared code with it_802851FC.
- Global it_80285140 (Item_GObj *gobj)
- Shared code with it_802851FC.
- Global it_802C0DBC (u32 arg0)
arg0
is likely a HSD_GObj*
.
- Global it_802F2D98 (Item_GObj *gobj, ftKb_GObj *owner_gobj)
- Shared code with it_802F2BFC.
- Global it_804D6D14
- Probably size_t but that needs to be changed to
unsigned int
first.
- File itCharItems.h
- Restructure this, possibly items/chara/types.h
- File itCommonItems.h
- Restructure this, possibly items/common/types.h
- File item.dox
-
- Global Item::entered_hitlag
- What function is
8026a62c
?
- Global Item::jumped_on
- What function is
80269bac
?
- Global Item::on_accessory
- What does this mean?
- Global Item_802682F0 (HSD_GObj *gobj)
- Needs some serious cleaning.
- Global ItemDynamics::count
Combine with ftDynamics? Can see in it_8027163C that this struct does not work perfectly
- Struct ItemStateTable
- Size unknown.
- File itsword.c
- A lot of duplicate code here, can maybe be cleaned up with inlines.
- Global lbColl_80007B78 (Mtx, Mtx, float, float)
- Eliminate casts.
- Global lbColl_JObjSetupMatrix (HSD_JObj *)
This is an inlined copy of JObjSetupMatrix from lbColl_80007BCC which was too deeply nested to inline. Remove this when matching lbColl_80007BCC.
This is inlined into lbcoll, and linker deduplication only kept that definition. Rename it back to HSD_JObjSetupMatrix once lbcoll is matched.
- Global lightset [9]
- attempt decomp once param types are known
- Global LObjRelease (HSD_Class *o)
- Unused stack
- Global M_PI
Fix these to be in a single file, not math.h
Fix these to be in a single file, not math.h
- Global MAX_STICK_MAG
- Move elsewhere.
- Global MotionState::_
- Try to match without this being a
union
.
- Global mpColl_80043558 (CollData *, s32)
- dummy stack in func_80043324_inline2 breaks this function
- Global mpColl_80043C6C (CollData *, s32, s32)
- Fix signature of mpLib_800501CC.
- Global mpColl_804D7F9C
- float order hack
- Global MPCOLL_RIGHTWALL
- These (and CollData::env_flags) should be a bitfield struct
- Global mpIsland_8005A728 (void)
- Rewrite as a struct ptr
- Global mpLib_800567C0 (s32 wall_id, Vec3 *ecb_side_vtx, Vec3 *result)
- Params not confirmed.
- Global neg1
- Fix weird forward declaration
- Global OS_RESET_RESTART
enum
- File OSInit.c
- Should be called
OS.c
.
- File OSInit.h
- Should be called
OS.h
.
- Global PAD_ERR_NO_CONTROLLER
- Circular dependency
- Struct plAllocInfo2
Probably the same struct as plAllocInfo, figure out how to make them work as one.
Probably the same struct as plAllocInfo, figure out how to make them work as one.
- Global Player_80031AD0 (int slot)
Eliminate cast.
Eliminate cast.
- Global Player_80036978 (s32 slot, s32 arg1)
- Eliminate cast.
- Global Player_80036EA0 (s32 slot)
- Eliminate cast.
- Global PObjInfoInit (void)
- Several differently-signed comparisons appear in asserts, likely indicating the sign of one of the variables is declared incorrectly
- Global resolveIKJoint1 (HSD_JObj *jobj)
- Variables
var_f27
and var_f28
are used uninitialized whenever 'if' condition is false.
- Global return_void (void)
- Float order hack.
- Global return_void2 (void)
- Float order hack.
- Global return_void3 (void)
- Float order hack.
- Global RunCallback (HSD_GObj *gobj, HSD_GObjEvent arg1)
- Could this be a higher-level inline in gobjproc.h or something?
- Global setupAirStart (HSD_GObj *gobj)
- Too much stack for resetVel.
- Global SetupSharedVtxModelMtx (HSD_PObj *pobj, Mtx vmtx, Mtx pmtx, u32 rendermode)
- Unused stack
- Global SFX_NONE
- Create an
enum
for SFX IDs.
- Struct SisLibUnkStruct
- SIS
- Global SOLUTION
- Real solution is
0
. Inline needs to be fixed.
- Struct SpawnItem
-
- Global SpawnItem::hold_kind
- 0 = capsule.
- Directory src/melee/ft/chara
- Rename to
entities
to match gr
and it
.
- Directory src/melee/gr
- Create
entities
directory to hold individual stages.
- Directory src/melee/it
- Create
entities
directory to hold individual items.
- Directory src/sysdolphin/baselib
- Rename this to a root directory called
HSD
or hsd
and delete its parent (sysdolphin
).
- Global Stage_80224E64 (enum_t, Vec3 *)
- Needs to be HSD_ASSERT. Also remove fake zero-byte padding.
- Global StaleMoveTable::total_attack_count
- pl_800386D8_t starts at +2C
- Global stateCoverClosed_CMD (DVDCommandBlock *)
- Incorrect cast.
- Global STATIC_ASSERT (sizeof(struct Camera)==0x3A4)
- Size should be 0x39C like cm_80452C68
- Global StaticPlayer::player_character
- External ID.
- Global StaticPlayer::player_state
- 0x02 In-Game (includes dead). 0x00 Otherwise.
- Global StaticPlayer::slot_type
- 0 is HMN, 1 is CPU, 2 is Demo, 3 n/a
- File stdbool.h
- Assumes
__PPCGEKKO__
.
- File stddef.h
- Assumes
__PPCGEKKO__
.
- Union Struct2070
- Rename this and its members; investigate using it elsewhere.
- Struct Struct2074
- See if this should likewise be instituted for item->xD94 thru xDA4_word/xDA8_short
- Global transition_flags
- Share with ftCa_Init_MotionStateTable
- Global transition_flags1
- Combine common flags with transition_flags0.
- Global transition_flags2
Combine common flags with transition_flags0.
Combine common flags with transition_flags0.
- Global transition_flags3
- Combine common flags with transition_flags0.
- Global true
- Make this and false part of an
enum
. Fake usages, such as assigning to a u32
, will need to be addressed.
- Global un_804D7004_t
- When accessing, neither struct with s8 fields, nor s8 array, seem to match. Also tried volatile struct and volatile fields. Size is 0xC.
- Global UnlockedCallback (s32 chan, s32 result)
- Eliminate cast to CARDCallback.
- Global usize_t
- Rename to
size_t
when size_t is deleted.
- Global wrapper (ftCo_GObj *gobj)
- This is fake.