Skip to content

Commit

Permalink
fox_effects decompiled (sonicdcer#77)
Browse files Browse the repository at this point in the history
* Match 5 funcs

* Match func_8007E93C

* Match func_8007EBB8

* Match func_8007ED54

* Match func_8007EE68

* 0.017453292f to M_DTOR

* format

* 3 more matches

* Match 2 more

* 2 more matches

* Match func_8007F958

* Match func_8007FBE0

* Match func_8007FD84

* Match func_8007FE88

* 5 new matches

* Match func_80080D04

* Match func_800815DC and func_8008165C

* Match func_80081BEC

* MAtch func_80081B24

* Match 2 more

* 3 more matches

* Small tweaks

* Give names to function params

* Match func_80080ACC

* MAtch func_80083D2C

* Match func_800837EC

* WIP func_80081C5C

* Add view of rodata that needs to be migrated somewhere

* Match func_80081C5C!

* Fix bss reordering, and formatting.

* Add a submodule of m2c, and a new script for generating the context for a file, and a m2c output to an ignored folder.

* Migrate rodata

* Start importing data for sf_77E40.c

* Successful data migration for sf_77E40.c

* make format

* Reorganzie data for sf_77E40.c

* Try stubbing a PRINTF, to help with RODATA strings.

* Rename sf_77E40 to fox_effect

* Rename Object_8C to Effect

* make format...

* Rename gObjects8C to gEffects
  • Loading branch information
Ryan-Myers authored Jan 13, 2024
1 parent abfeeee commit 8e80880
Show file tree
Hide file tree
Showing 28 changed files with 4,994 additions and 3,030 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,5 @@ ctx.c.m2c
/build
tools/mio0
tools/ido-recomp
.venv/
.venv/
m2cfiles/
5 changes: 4 additions & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,7 @@
url = https://github.com/simonlindholm/asm-processor
[submodule "tools/asm-differ"]
path = tools/asm-differ
url = https://github.com/simonlindholm/asm-differ
url = https://github.com/simonlindholm/asm-differ
[submodule "tools/m2c"]
path = tools/m2c
url = https://github.com/matt-kempster/m2c
265 changes: 136 additions & 129 deletions include/functions.h
Original file line number Diff line number Diff line change
Expand Up @@ -215,13 +215,13 @@ void func_80060D94(s32);
void func_80060F30(Vec3f* , u32 , s32 );
void Object_Kill(Object*, Vec3f*);
s32 func_80060FE4(Vec3f*, f32);
void Object_SetInfo(ObjectInfo*, u32);
void Object_SetInfo(ObjectInfo* info, u32 objId);
void Object_80_Initialize(Object_80*);
void Object_4C_Initialize(Object_4C*);
void Object_2F4_Initialize(Object_2F4*);
void Boss_Initialize(Boss*);
void Item_Initialize(Item*);
void Object_8C_Initialize(Object_8C*);
void Effect_Initialize(Effect*);
void func_80061B68(void);
void func_80061CD0(void);
void func_80061E48(Object_2F4* , f32 , f32 , f32 );
Expand All @@ -233,6 +233,7 @@ void func_80062C38(f32, f32);
s32 func_800631A8(Vec3f*, f32*, Vec3f*);
s32 func_8006326C(Vec3f* , Vec3f* , ObjectId , Object* );
s32 func_8006351C(s32 , Vec3f* , Vec3f* , s32 );
s32 func_801A55D4(s32 , Vec3f* , Vec3f* , s32 );
void func_800652CC(Object_80*);
void func_800654E4(Object *);
void func_800656D4(Object_2F4*);
Expand Down Expand Up @@ -265,7 +266,7 @@ void func_80068C48(Item*);
void func_80068C88(Item*);
void func_80068FE0(Object_4C*);
void func_800690D0(s32, ObjectId);
void func_80069924(Object_8C *);
void func_80069924(Effect *);
void func_800693E8(Object_2F4 *);
void func_80069658(Boss *);
void func_800696F8(Object_80 *);
Expand All @@ -276,7 +277,7 @@ void Boss_Update(Boss *);
void Object_80_Update(Object_80 *);
void Object_4C_Update(Object_4C *);
void Item_Update(Item *);
void Object_8C_Update(Object_8C *);
void Effect_Update(Effect *);
void func_8006A06C(UnkEntity30*);
void func_8006A38C(void);
void Object_UpdateAll(void);
Expand All @@ -295,6 +296,7 @@ void func_8006BB78(Object_2F4*);
void func_8006C008(Object_2F4*);
void func_8006D350(Object_80*);
void func_8006EEFC(s32, f32, f32, f32, f32, f32, f32, f32, f32, f32);
void func_8006F0D8(f32 xPos, f32 yPos, f32 zPos, f32 arg3);
void func_80072594(Object_2F4*);
s32 func_80074F90(Object_80*);
void func_80074FF0(Object_2F4*);
Expand All @@ -303,134 +305,139 @@ void func_8007717C(Object_2F4 *);
void func_800771CC(Object_2F4*);
void func_80077218(Object_2F4*);

// sf_77E40
void func_80077240(f32 posX, f32 posY, f32 posZ, s32 );
// fox_effect
void func_80077240(f32 posX, f32 posY, f32 posZ, s32 hits);
void func_8007729C(void);
void func_80077790(void);
Object_8C* func_8007783C(ObjectId objId);
void func_8007797C(f32 posX, f32 posY, f32 posZ, f32 , f32 , f32 , f32 );
void func_80077A00(Object_8C* );
void func_80077A7C(Object_8C* );
void func_80077B78(Object_8C* );
void func_80077B84(Object_8C* );
void func_80078038(Object_8C* );
void func_800780F8(Object_8C* );
void func_800783C0(Object_8C* );
void func_80078438(Object_8C* );
void func_800784B4(Object_8C* );
void func_80078550(Object_8C* );
void func_80078604(Object_8C* );
void func_8007868C(Object_8C* );
void func_8007879C(Object_8C* );
void func_800788B0(Object_8C* );
void func_80078A64(Object_8C* );
void func_80078AEC(Object_8C* );
void func_80078B8C(Object_8C *);
void func_80078BE0(Object_8C* );
void func_80078C84(Object_8C* );
void func_80078CE8(Object_8C* );
void func_80078E50(f32 posX, f32 posY, f32 posZ, f32 );
void func_80078EBC(Object_8C* );
void func_80078F78(Object_8C* );
void func_8007905C(Object_8C* , f32 posX, f32 posY, f32 posZ, f32 , u8 );
void func_800794CC(f32 posX, f32 posY, f32 posZ, f32 );
void func_8007953C(f32 posX, f32 posY, f32 posZ, f32 );
void func_800795AC(f32 posX, f32 posY, f32 posZ, f32 );
void func_80079618(f32 posX, f32 posY, f32 posZ, f32 );
void func_8007968C(Object_8C *);
Effect* func_8007783C(ObjectId objId);
void func_8007797C(f32 posX, f32 posY, f32 posZ, f32 velX, f32 velY, f32 velZ, f32 scale2);
void func_80077A00(Effect* );
void func_80077A7C(Effect* );
void func_80077B78(Effect* );
void func_80077B84(Effect* );
void func_80078038(Effect* );
void func_800780F8(Effect* );
void func_800783C0(Effect* );
void func_80078438(Effect* );
void func_800784B4(Effect* );
void func_80078550(Effect* );
void func_80078604(Effect* );
void func_8007868C(Effect* );
void func_8007879C(Effect* );
void func_800788B0(Effect* );
void func_80078A64(Effect* );
void func_80078AEC(Effect* );
void func_80078B8C(Effect *);
void func_80078BE0(Effect* );
void func_80078C84(Effect* );
void func_80078CE8(Effect* );
void func_80078E50(f32 posX, f32 posY, f32 posZ, f32 scale2);
void func_80078EBC(Effect* );
void func_80078F78(Effect* );
void func_800794CC(f32 posX, f32 posY, f32 posZ, f32 scale2);
void func_8007953C(f32 posX, f32 posY, f32 posZ, f32 scale2);
void func_800795AC(f32 posX, f32 posY, f32 posZ, f32 scale2);
void func_80079618(f32 posX, f32 posY, f32 posZ, f32 scale2);
void func_8007968C(Effect *);
s32 func_800798C4(s32 , Gfx** , Vec3f* , Vec3f* , void* ); //OverrideLimbDraw
void func_800798F0(Object_8C* );
void func_8007A28C(Object_8C* );
void func_8007A3C0(Object_8C* );
void func_8007A568(f32 xPos, f32 yPos, f32 zPos, f32 );
void func_8007A5F8(Object_8C* , Vec3f* , u32 );
void func_8007A6F0(Vec3f *, s32);
void func_8007A748(Object_8C*);
s32 func_8007A774(Player*, Object_8C*, f32);
void func_8007A818(Object_8C*, f32 posX, f32 posY, f32 posZ, f32, u8, u8, u16);
void func_8007A900(f32 posX, f32 posY, f32 posZ, f32, u8, u8, u16);
void func_8007A994(Object_8C*);
void func_8007AA60(Object_8C*);
void func_8007AB50(Object_8C*);
void func_8007ACE0(f32, f32, f32, f32, f32, f32);
void func_8007ADF4(f32 , f32 posY, f32 , f32 , f32 );
void func_8007AFD0(f32 posX, f32 posZ, f32 , f32 , f32 );
void func_8007B040(Object_8C*);
void func_8007B0F4(Object_8C*);
void func_8007B228(f32 posX, f32 posY, f32 posZ, f32 );
void func_8007B344(f32 xPos, f32 yPos, f32 zPos, f32 , s32 );
void func_8007B3B8(Object_8C*);
void func_8007B550(f32 posX, f32 posY, f32 posZ, f32 , s32 );
void func_8007B5C0(Object_8C*);
void func_8007B62C(Object_8C*);
void func_8007B670(Object_8C*);
void func_8007B67C(Object_8C*);
void func_8007B758(Object_8C*);
void func_8007B8F8(f32 posX, f32 posY, f32 posZ, f32 );
void func_8007B960(Object_8C*);
void func_8007BC7C(f32 posX, f32 posY, f32 posZ, f32);
void func_8007BCE8(Object_8C*);
void func_8007B9DC(Object_8C*);
void func_8007BDE0(Object_8C*);
void func_8007BE54(Object_8C*);
void func_8007BEE8(Object_8C*);
void func_8007BFFC(f32 posX, f32 posY, f32 posZ, f32 x, f32 y, f32 z, f32 arg6, s32 arg7);
void func_8007C120(f32 posX, f32 posY, f32 posZ, f32 x, f32 y, f32 z, f32 arg6, s32 arg7);
void func_8007C250(Object_8C*);
void func_8007C484(f32 posX, f32 posY, f32 posZ, f32 x, f32 y, f32 z, f32 arg6, s32 arg7);
void func_8007C50C(Object_8C*);
void func_8007C688(f32 posX, f32 posY, f32 posZ, f32 arg3, s32 arg4);
void func_8007C8C4(Object_8C*);
void func_8007C85C(f32 posX, f32 posY, f32 posZ, f32 arg3);
void func_8007C9E0(Object_8C*);
void func_8007CAF0(Object_8C*);
void func_800798F0(Effect* );
void func_8007A28C(Effect* );
void func_8007A3C0(Effect* );
void func_8007A568(f32 xPos, f32 yPos, f32 zPos, f32 scale1);
void func_8007A5F8(Effect* , Vec3f* pos, u32 sfxId);
void func_8007A6F0(Vec3f* pos, s32 sfxId);
void func_8007A748(Effect*);
s32 func_8007A774(Player*, Effect*, f32);
void func_8007A900(f32 posX, f32 posY, f32 posZ, f32 scale1, u8, u8, u16);
void func_8007A994(Effect*);
void func_8007AA60(Effect*);
void func_8007AB50(Effect*);
void func_8007ACE0(f32 posX, f32 posY, f32 posZ, f32 scale2, f32 scale1, f32 rotY);
void func_8007ADF4(f32 posX, f32 posY, f32 posZ, f32 scale2, f32 scale1);
void func_8007AFD0(f32 posX, f32 posZ, f32 velX, f32 velZ, f32 scale1);
void func_8007B040(Effect*);
void func_8007B0F4(Effect*);
void func_8007B228(f32 posX, f32 posY, f32 posZ, f32 scale1);
void func_8007B344(f32 xPos, f32 yPos, f32 zPos, f32 scale1, s32 );
void func_8007B3B8(Effect*);
void func_8007B550(f32 posX, f32 posY, f32 posZ, f32 scale1, s32 );
void func_8007B5C0(Effect*);
void func_8007B62C(Effect*);
void func_8007B670(Effect*);
void func_8007B67C(Effect*);
void func_8007B758(Effect*);
void func_8007B8F8(f32 posX, f32 posY, f32 posZ, f32 scale2);
void func_8007B960(Effect*);
void func_8007BC7C(f32 posX, f32 posY, f32 posZ, f32 scale2);
void func_8007BCE8(Effect*);
void func_8007B9DC(Effect*);
void func_8007BDE0(Effect*);
void func_8007BE54(Effect*);
void func_8007BEE8(Effect*);
void func_8007BFFC(f32 posX, f32 posY, f32 posZ, f32 velX, f32 velY, f32 velZ, f32 scale2, s32 timer50);
void func_8007C120(f32 posX, f32 posY, f32 posZ, f32 velX, f32 velY, f32 velZ, f32 scale2, s32 timer50);
void func_8007C250(Effect*);
void func_8007C484(f32 posX, f32 posY, f32 posZ, f32 velX, f32 velY, f32 velZ, f32 scale2, s32 arg7);
void func_8007C50C(Effect*);
void func_8007C688(f32 posX, f32 posY, f32 posZ, f32 scale2, s32 timer50);
void func_8007C8C4(Effect*);
void func_8007C85C(f32 posX, f32 posY, f32 posZ, f32 scale2);
void func_8007C9E0(Effect*);
void func_8007CAF0(Effect*);
void func_8007CF30(f32 posX, f32 posY, f32 posZ, f32 scale2);
void func_8007D074(f32 posX, f32 posY, f32 posZ, f32 scale2);
void func_8007D0E0(f32 posX, f32 posY, f32 posZ, f32 scale2);
void func_8007D10C(f32 posX, f32 posY, f32 posZ, f32 scale2);
void func_8007D1E0(f32 posX, f32 posY, f32 posZ, f32 scale2);
void func_8007D24C(f32 posX, f32 posY, f32 posZ, f32 scale2);
void func_8007D2C8(f32, f32, f32, f32);
void func_8007D2F4(Object_8C*);
void func_8007D55C(Object_8C*);
void func_8007D748(Object_8C*);
void func_8007D8A8(Object_8C*);
void func_8007D9DC(f32, f32, f32, f32, f32, s32);
void func_8007DA58(Object_8C*);
void func_8007DAE4(Object_8C*);
void func_8007DB70(Object_8C*);
void func_8007DED4(Object_8C*);
void func_8007E014(Object_8C*);
void func_8007E258(Object_8C*);
void func_8007E298(Object_8C*);
void func_8007E330(Object_8C*);
void func_8007E3E4(Object_8C*);
void func_8007E45C(Object_8C*);
void func_8007E5CC(Object_8C*);
void func_8007E648(Object_8C*);
void func_8007E93C(Object_8C *, u16 , f32 , f32 , f32 , f32 );
void func_8007F04C(s32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32);
void func_8007F20C(s32 , f32 , f32 , f32 , f32 );
void func_8007F438(Object_8C*);
void func_8007F6B0(Object_8C*);
void func_8007F958(Object_8C*);
void func_8007FBE0(Object_8C*);
void func_8007FE88(Object_8C*);
void func_800802B8(Object_8C*);
void func_800802D8(Object_8C*);
void func_800802F8(Object_8C*);
void func_80080360(Object_8C*);
void func_8008040C(Object_8C*);
void func_8008092C(Object_8C*);
void func_80080ACC(Object_8C*);
void func_80080D04(Object_8C*);
void func_80081C5C(Object_8C*);
void func_80082F78(Object_8C*);
void func_800837EC(Object_8C*);
void func_80083B8C(Object_8C*);
void func_80083D2C(f32 , f32 , f32 , f32 );
void func_80083FA8(Object_8C*);
void func_80084194(Object_8C*);
void func_8007D2C8(f32 posX, f32 posY, f32 posZ, f32 scale2);
void func_8007D2F4(Effect*);
void func_8007D55C(Effect*);
void func_8007D748(Effect*);
void func_8007D8A8(Effect*);
void func_8007D9DC(f32 posX, f32 posY, f32 posZ, f32 scale2, f32 scale1, s32 timer50);
void func_8007DA58(Effect*);
void func_8007DAE4(Effect*);
void func_8007DB70(Effect*);
void func_8007DED4(Effect*);
void func_8007E014(Effect*);
void func_8007E258(Effect*);
void func_8007E298(Effect*);
void func_8007E330(Effect*);
void func_8007E3E4(Effect*);
void func_8007E45C(Effect*);
void func_8007E5CC(Effect*);
void func_8007E648(Effect*);
void func_8007E93C(Effect* effect, u32 objId, f32 posX, f32 posY, f32 posZ, f32 arg5);
void func_8007EE68(s32 objId, Vec3f* pos, Vec3f* rot, Vec3f* arg3, Vec3f* arg4, f32 scale2);
void func_8007F04C(s32 objId, f32 posX, f32 posY, f32 posZ, f32 rotX, f32 rotY, f32 rotZ, f32 unkX, f32 unkY, f32 unkZ, f32 velX, f32 velY, f32 velZ, f32 scale2);
void func_8007F11C(s32 objId, f32 posX, f32 posY, f32 posZ, f32 arg4);
void func_8007F20C(s32 objId, f32 posX, f32 posY, f32 posZ, f32 arg4);
void func_8007F438(Effect*);
void func_8007F6B0(Effect*);
void func_8007F958(Effect*);
void func_8007FBE0(Effect*);
void func_8007FE88(Effect*);
s32 func_8007FD84(Effect*);
void func_800802B8(Effect*);
void func_800802D8(Effect*);
void func_800802F8(Effect*);
void func_80080360(Effect*);
void func_8008040C(Effect*);
void func_8008092C(Effect*);
void func_80080ACC(Effect*);
void func_80080D04(Effect*);
void func_800815DC(void);
void func_80081A8C(f32 posX, f32 posY, f32 posZ, f32 scale2, s32 arg4);
void func_80081BEC(f32 posX, f32 posY, f32 posZ, f32 scale2, s32 arg4);
void func_80081C5C(Effect*);
void func_80082F78(Effect*);
void func_800837EC(Effect*);
void func_80083B8C(Effect*);
void func_80083C70(Effect* effect, f32 posX, f32 posY, f32 posZ, f32 velX, f32 velY, f32 velZ, f32 arg7, s32 arg8);
void func_80083D2C(f32 posX, f32 posY, f32 posZ, f32 srcZ);
void func_80083FA8(Effect*);
void func_80084194(Effect*);

// fox_fade
void func_80084370(s32);
Expand Down Expand Up @@ -476,8 +483,8 @@ void func_80092EC0(Object_2F4*);
void func_80093164(Object_2F4*);
void func_800935E8(Player*);
void func_80095604(Player*);
void func_80094954(Object_8C*);
void func_80094BBC(Object_8C*);
void func_80094954(Effect*);
void func_80094BBC(Effect*);
void func_80094D20(f32, f32);

// fox_97F80
Expand Down Expand Up @@ -514,7 +521,7 @@ void func_800A5FA0(Vec3f* , u32 , s32 );
void func_800A6070(Vec3f* arg0, u32 arg1);
void func_800A6148(void);
void func_800A69F8(s32 , f32 , f32 , f32 );
void Player_ApplyDamage(Player *, s32, s32);
void Player_ApplyDamage(Player* player, s32 direction, s32 damage);
bool func_800A73E4(f32* , s32* , f32 posX, f32 posY, f32 posZ);
s32 func_800A78C4(Hitbox* hitbox, f32 , f32 , f32 , f32 , f32 , f32 );
void func_800A8BA4(Player* player);
Expand Down Expand Up @@ -660,8 +667,8 @@ void func_E16C50_8019EA7C(Object_2F4*);
void func_E16C50_8019F20C(Object_2F4*);
void func_E16C50_8019F7AC(Object_2F4*);
void func_E16C50_801A003C(Object_2F4*);
void func_E16C50_801A0120(Object_8C*);
void func_E16C50_801A0AF0(Object_8C*);
void func_E16C50_801A0120(Effect*);
void func_E16C50_801A0AF0(Effect*);
void func_E16C50_801A10F4(Player* player);
void func_E16C50_801A5B3C(Boss*);
void func_E16C50_801A71B8(Boss*);
Expand All @@ -676,7 +683,7 @@ void func_E16C50_801ABA40(PlayerShot*);
void func_E16C50_801AC274(Player*);
void func_E16C50_801AC8A8(f32, f32, f32, f32, s32);
void func_E16C50_801AC8A8(f32, f32, f32, f32, s32);
void func_E16C50_801AC918(Object_8C*);
void func_E16C50_801AC918(Effect*);
void func_E16C50_801ACBB4(void);
void func_E16C50_801ACE50(Player*);
void func_E16C50_801AD328(Player*);
Expand Down
6 changes: 6 additions & 0 deletions include/macros.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,10 @@
#define CYCLES_TO_USEC(c) (((u64)(c)*(1000000LL/15625LL))/(osClockRate/15625LL))
#define CYCLES_TO_MSEC(c) ((s32)CYCLES_TO_USEC(c)/1000)

#if defined(__sgi)
#define PRINTF
#else
#define PRINTF(...)
#endif

#endif // MACROS_H
4 changes: 2 additions & 2 deletions include/sf64math.h
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,8 @@ void Matrix_RotateZ(Matrix*, f32, u8);
void Matrix_RotateAxis(Matrix*, f32, f32, f32, f32, u8);
void Matrix_ToMtx(Mtx *dest);
void Matrix_FromMtx(Mtx *src, Matrix *dest);
void Matrix_MultVec3f(Matrix*, Vec3f*, Vec3f*);
void Matrix_MultVec3fNoTranslate(Matrix*, Vec3f*, Vec3f*);
void Matrix_MultVec3f(Matrix* mtx, Vec3f* src, Vec3f* dest);
void Matrix_MultVec3fNoTranslate(Matrix* mtx, Vec3f* src, Vec3f* dest);
void Matrix_GetYRPAngles(Matrix*, Vec3f*);
void Matrix_GetXYZAngles(Matrix*, Vec3f*);
void Matrix_LookAt(Matrix*, f32, f32, f32, f32, f32, f32, f32, f32, f32, u8);
Expand Down
Loading

0 comments on commit 8e80880

Please sign in to comment.