summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEthan Roseman <ethteck@gmail.com>2020-07-19 19:42:59 -0400
committerGitHub <noreply@github.com>2020-07-19 19:42:59 -0400
commite672778b0ef99c1f20efa643f9d02ff4d3417a0c (patch)
tree6daed02792f223820eeca8b339542e5f19358c2f /src
parent3dd521eef510605bd05ed821ef125c8c983440b2 (diff)
Fx bootstrap (#278)
* script * update * dun?
Diffstat (limited to 'src')
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Blast/z_eff_ss_blast.c38
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Blast/z_eff_ss_blast.h13
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Bomb/z_eff_ss_bomb.c38
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Bomb/z_eff_ss_bomb.h13
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.c38
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.h13
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Bubble/z_eff_ss_bubble.c38
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Bubble/z_eff_ss_bubble.h13
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_D_Fire/z_eff_ss_d_fire.c38
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_D_Fire/z_eff_ss_d_fire.h13
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Dead_Db/z_eff_ss_dead_db.c38
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Dead_Db/z_eff_ss_dead_db.h13
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.c38
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.h13
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.c38
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.h13
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.c38
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.h13
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Dt_Bubble/z_eff_ss_dt_bubble.c38
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Dt_Bubble/z_eff_ss_dt_bubble.h13
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_En_Fire/z_eff_ss_en_fire.c38
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_En_Fire/z_eff_ss_en_fire.h13
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.c38
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.h13
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Extra/z_eff_ss_extra.c38
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Extra/z_eff_ss_extra.h13
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Fcircle/z_eff_ss_fcircle.c38
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Fcircle/z_eff_ss_fcircle.h13
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Fhg_Flash/z_eff_ss_fhg_flash.c38
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Fire_Tail/z_eff_ss_fire_tail.c38
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Fire_Tail/z_eff_ss_fire_tail.h13
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_G_Fire/z_eff_ss_g_fire.c38
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_G_Fire/z_eff_ss_g_fire.h13
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_G_Magma/z_eff_ss_g_magma.c38
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_G_Magma/z_eff_ss_g_magma.h13
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_G_Magma2/z_eff_ss_g_magma2.c38
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_G_Magma2/z_eff_ss_g_magma2.h13
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_G_Ripple/z_eff_ss_g_ripple.c38
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_G_Ripple/z_eff_ss_g_ripple.h13
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_G_Spk/z_eff_ss_g_spk.c38
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_G_Spk/z_eff_ss_g_spk.h13
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_G_Splash/z_eff_ss_g_splash.c38
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_G_Splash/z_eff_ss_g_splash.h13
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.c38
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h13
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_HitMark/z_eff_ss_hitmark.c38
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_HitMark/z_eff_ss_hitmark.h13
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Ice_Piece/z_eff_ss_ice_piece.c38
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Ice_Piece/z_eff_ss_ice_piece.h13
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Ice_Smoke/z_eff_ss_ice_smoke.c38
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Ice_Smoke/z_eff_ss_ice_smoke.h13
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_K_Fire/z_eff_ss_k_fire.c38
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_K_Fire/z_eff_ss_k_fire.h13
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.c40
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h13
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_KiraKira/z_eff_ss_kirakira.c38
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_KiraKira/z_eff_ss_kirakira.h13
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Lightning/z_eff_ss_lightning.c38
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Lightning/z_eff_ss_lightning.h13
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Sibuki/z_eff_ss_sibuki.c38
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Sibuki/z_eff_ss_sibuki.h13
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Sibuki2/z_eff_ss_sibuki2.c38
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Sibuki2/z_eff_ss_sibuki2.h13
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Stick/z_eff_ss_stick.c38
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Stick/z_eff_ss_stick.h13
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Stone1/z_eff_ss_stone1.c38
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_Stone1/z_eff_ss_stone1.h13
67 files changed, 1620 insertions, 103 deletions
diff --git a/src/overlays/effects/ovl_Effect_Ss_Blast/z_eff_ss_blast.c b/src/overlays/effects/ovl_Effect_Ss_Blast/z_eff_ss_blast.c
index 77c3b7629..e71a83034 100644
--- a/src/overlays/effects/ovl_Effect_Ss_Blast/z_eff_ss_blast.c
+++ b/src/overlays/effects/ovl_Effect_Ss_Blast/z_eff_ss_blast.c
@@ -1,7 +1,39 @@
-#include <ultra64.h>
-#include <global.h>
+/*
+ * File: z_eff_ss_blast.c
+ * Overlay: ovl_Effect_Ss_Blast
+ * Description:
+ */
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Blast/func_8099EDB0.s")
+#include "z_eff_ss_blast.h"
+
+typedef enum {
+ /* 0x00 */ SS_BLAST_0,
+ /* 0x01 */ SS_BLAST_1,
+ /* 0x02 */ SS_BLAST_2,
+ /* 0x03 */ SS_BLAST_3,
+ /* 0x04 */ SS_BLAST_4,
+ /* 0x05 */ SS_BLAST_5,
+ /* 0x06 */ SS_BLAST_6,
+ /* 0x07 */ SS_BLAST_7,
+ /* 0x08 */ SS_BLAST_8,
+ /* 0x09 */ SS_BLAST_9,
+ /* 0x0A */ SS_BLAST_A,
+ /* 0x0B */ SS_BLAST_B,
+ /* 0x0C */ SS_BLAST_C,
+} EffectSsBlastRegs;
+
+u32 EffectSsBlast_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
+void EffectSsBlast_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
+void EffectSsBlast_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
+
+/*
+EffectSsInit Effect_Ss_Blast_InitVars = {
+ EFFECT_SS_BLAST,
+ EffectSsBlast_Init,
+};
+*/
+
+#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Blast/EffectSsBlast_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Blast/func_8099EF08.s")
diff --git a/src/overlays/effects/ovl_Effect_Ss_Blast/z_eff_ss_blast.h b/src/overlays/effects/ovl_Effect_Ss_Blast/z_eff_ss_blast.h
new file mode 100644
index 000000000..39b4bda60
--- /dev/null
+++ b/src/overlays/effects/ovl_Effect_Ss_Blast/z_eff_ss_blast.h
@@ -0,0 +1,13 @@
+#ifndef _Z_EFF_SS_BLAST_H_
+#define _Z_EFF_SS_BLAST_H_
+
+#include <ultra64.h>
+#include <global.h>
+
+typedef struct {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ Vec3f velocity;
+ /* 0x18 */ Vec3f accel;
+} EffectSsBlastInitParams; // size = 0x
+
+#endif
diff --git a/src/overlays/effects/ovl_Effect_Ss_Bomb/z_eff_ss_bomb.c b/src/overlays/effects/ovl_Effect_Ss_Bomb/z_eff_ss_bomb.c
index 45fe73bc8..c7062a842 100644
--- a/src/overlays/effects/ovl_Effect_Ss_Bomb/z_eff_ss_bomb.c
+++ b/src/overlays/effects/ovl_Effect_Ss_Bomb/z_eff_ss_bomb.c
@@ -1,7 +1,39 @@
-#include <ultra64.h>
-#include <global.h>
+/*
+ * File: z_eff_ss_bomb.c
+ * Overlay: ovl_Effect_Ss_Bomb
+ * Description:
+ */
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Bomb/func_8099F1B0.s")
+#include "z_eff_ss_bomb.h"
+
+typedef enum {
+ /* 0x00 */ SS_BOMB_0,
+ /* 0x01 */ SS_BOMB_1,
+ /* 0x02 */ SS_BOMB_2,
+ /* 0x03 */ SS_BOMB_3,
+ /* 0x04 */ SS_BOMB_4,
+ /* 0x05 */ SS_BOMB_5,
+ /* 0x06 */ SS_BOMB_6,
+ /* 0x07 */ SS_BOMB_7,
+ /* 0x08 */ SS_BOMB_8,
+ /* 0x09 */ SS_BOMB_9,
+ /* 0x0A */ SS_BOMB_A,
+ /* 0x0B */ SS_BOMB_B,
+ /* 0x0C */ SS_BOMB_C,
+} EffectSsBombRegs;
+
+u32 EffectSsBomb_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
+void EffectSsBomb_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
+void EffectSsBomb_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
+
+/*
+EffectSsInit Effect_Ss_Bomb_InitVars = {
+ EFFECT_SS_BOMB,
+ EffectSsBomb_Init,
+};
+*/
+
+#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Bomb/EffectSsBomb_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Bomb/func_8099F274.s")
diff --git a/src/overlays/effects/ovl_Effect_Ss_Bomb/z_eff_ss_bomb.h b/src/overlays/effects/ovl_Effect_Ss_Bomb/z_eff_ss_bomb.h
new file mode 100644
index 000000000..9e877e90d
--- /dev/null
+++ b/src/overlays/effects/ovl_Effect_Ss_Bomb/z_eff_ss_bomb.h
@@ -0,0 +1,13 @@
+#ifndef _Z_EFF_SS_BOMB_H_
+#define _Z_EFF_SS_BOMB_H_
+
+#include <ultra64.h>
+#include <global.h>
+
+typedef struct {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ Vec3f velocity;
+ /* 0x18 */ Vec3f accel;
+} EffectSsBombInitParams; // size = 0x
+
+#endif
diff --git a/src/overlays/effects/ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.c b/src/overlays/effects/ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.c
index b4985f3bb..460bc6fd5 100644
--- a/src/overlays/effects/ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.c
+++ b/src/overlays/effects/ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.c
@@ -1,7 +1,39 @@
-#include <ultra64.h>
-#include <global.h>
+/*
+ * File: z_eff_ss_bomb2.c
+ * Overlay: ovl_Effect_Ss_Bomb2
+ * Description:
+ */
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Bomb2/func_8099F650.s")
+#include "z_eff_ss_bomb2.h"
+
+typedef enum {
+ /* 0x00 */ SS_BOMB2_0,
+ /* 0x01 */ SS_BOMB2_1,
+ /* 0x02 */ SS_BOMB2_2,
+ /* 0x03 */ SS_BOMB2_3,
+ /* 0x04 */ SS_BOMB2_4,
+ /* 0x05 */ SS_BOMB2_5,
+ /* 0x06 */ SS_BOMB2_6,
+ /* 0x07 */ SS_BOMB2_7,
+ /* 0x08 */ SS_BOMB2_8,
+ /* 0x09 */ SS_BOMB2_9,
+ /* 0x0A */ SS_BOMB2_A,
+ /* 0x0B */ SS_BOMB2_B,
+ /* 0x0C */ SS_BOMB2_C,
+} EffectSsBomb2Regs;
+
+u32 EffectSsBomb2_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
+void EffectSsBomb2_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
+void EffectSsBomb2_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
+
+/*
+EffectSsInit Effect_Ss_Bomb2_InitVars = {
+ EFFECT_SS_BOMB2,
+ EffectSsBomb2_Init,
+};
+*/
+
+#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Bomb2/EffectSsBomb2_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Bomb2/func_8099F748.s")
diff --git a/src/overlays/effects/ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.h b/src/overlays/effects/ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.h
new file mode 100644
index 000000000..605f48b45
--- /dev/null
+++ b/src/overlays/effects/ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.h
@@ -0,0 +1,13 @@
+#ifndef _Z_EFF_SS_BOMB2_H_
+#define _Z_EFF_SS_BOMB2_H_
+
+#include <ultra64.h>
+#include <global.h>
+
+typedef struct {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ Vec3f velocity;
+ /* 0x18 */ Vec3f accel;
+} EffectSsBomb2InitParams; // size = 0x
+
+#endif
diff --git a/src/overlays/effects/ovl_Effect_Ss_Bubble/z_eff_ss_bubble.c b/src/overlays/effects/ovl_Effect_Ss_Bubble/z_eff_ss_bubble.c
index 8ee11f8e5..af991d86d 100644
--- a/src/overlays/effects/ovl_Effect_Ss_Bubble/z_eff_ss_bubble.c
+++ b/src/overlays/effects/ovl_Effect_Ss_Bubble/z_eff_ss_bubble.c
@@ -1,7 +1,39 @@
-#include <ultra64.h>
-#include <global.h>
+/*
+ * File: z_eff_ss_bubble.c
+ * Overlay: ovl_Effect_Ss_Bubble
+ * Description:
+ */
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Bubble/func_809A0040.s")
+#include "z_eff_ss_bubble.h"
+
+typedef enum {
+ /* 0x00 */ SS_BUBBLE_0,
+ /* 0x01 */ SS_BUBBLE_1,
+ /* 0x02 */ SS_BUBBLE_2,
+ /* 0x03 */ SS_BUBBLE_3,
+ /* 0x04 */ SS_BUBBLE_4,
+ /* 0x05 */ SS_BUBBLE_5,
+ /* 0x06 */ SS_BUBBLE_6,
+ /* 0x07 */ SS_BUBBLE_7,
+ /* 0x08 */ SS_BUBBLE_8,
+ /* 0x09 */ SS_BUBBLE_9,
+ /* 0x0A */ SS_BUBBLE_A,
+ /* 0x0B */ SS_BUBBLE_B,
+ /* 0x0C */ SS_BUBBLE_C,
+} EffectSsBubbleRegs;
+
+u32 EffectSsBubble_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
+void EffectSsBubble_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
+void EffectSsBubble_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
+
+/*
+EffectSsInit Effect_Ss_Bubble_InitVars = {
+ EFFECT_SS_BUBBLE,
+ EffectSsBubble_Init,
+};
+*/
+
+#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Bubble/EffectSsBubble_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Bubble/func_809A01CC.s")
diff --git a/src/overlays/effects/ovl_Effect_Ss_Bubble/z_eff_ss_bubble.h b/src/overlays/effects/ovl_Effect_Ss_Bubble/z_eff_ss_bubble.h
new file mode 100644
index 000000000..d9710fec1
--- /dev/null
+++ b/src/overlays/effects/ovl_Effect_Ss_Bubble/z_eff_ss_bubble.h
@@ -0,0 +1,13 @@
+#ifndef _Z_EFF_SS_BUBBLE_H_
+#define _Z_EFF_SS_BUBBLE_H_
+
+#include <ultra64.h>
+#include <global.h>
+
+typedef struct {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ Vec3f velocity;
+ /* 0x18 */ Vec3f accel;
+} EffectSsBubbleInitParams; // size = 0x
+
+#endif
diff --git a/src/overlays/effects/ovl_Effect_Ss_D_Fire/z_eff_ss_d_fire.c b/src/overlays/effects/ovl_Effect_Ss_D_Fire/z_eff_ss_d_fire.c
index be8a0129c..0ed4a214b 100644
--- a/src/overlays/effects/ovl_Effect_Ss_D_Fire/z_eff_ss_d_fire.c
+++ b/src/overlays/effects/ovl_Effect_Ss_D_Fire/z_eff_ss_d_fire.c
@@ -1,7 +1,39 @@
-#include <ultra64.h>
-#include <global.h>
+/*
+ * File: z_eff_ss_d_fire.c
+ * Overlay: ovl_Effect_Ss_D_Fire
+ * Description:
+ */
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_D_Fire/func_809A0550.s")
+#include "z_eff_ss_d_fire.h"
+
+typedef enum {
+ /* 0x00 */ SS_D_FIRE_0,
+ /* 0x01 */ SS_D_FIRE_1,
+ /* 0x02 */ SS_D_FIRE_2,
+ /* 0x03 */ SS_D_FIRE_3,
+ /* 0x04 */ SS_D_FIRE_4,
+ /* 0x05 */ SS_D_FIRE_5,
+ /* 0x06 */ SS_D_FIRE_6,
+ /* 0x07 */ SS_D_FIRE_7,
+ /* 0x08 */ SS_D_FIRE_8,
+ /* 0x09 */ SS_D_FIRE_9,
+ /* 0x0A */ SS_D_FIRE_A,
+ /* 0x0B */ SS_D_FIRE_B,
+ /* 0x0C */ SS_D_FIRE_C,
+} EffectSsD_FireRegs;
+
+u32 EffectSsDFire_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
+void EffectSsDFire_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
+void EffectSsDFire_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
+
+/*
+EffectSsInit Effect_Ss_D_Fire_InitVars = {
+ EFFECT_SS_D_FIRE,
+ EffectSsDFire_Init,
+};
+*/
+
+#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_D_Fire/EffectSsDFire_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_D_Fire/func_809A0698.s")
diff --git a/src/overlays/effects/ovl_Effect_Ss_D_Fire/z_eff_ss_d_fire.h b/src/overlays/effects/ovl_Effect_Ss_D_Fire/z_eff_ss_d_fire.h
new file mode 100644
index 000000000..36bfa9eea
--- /dev/null
+++ b/src/overlays/effects/ovl_Effect_Ss_D_Fire/z_eff_ss_d_fire.h
@@ -0,0 +1,13 @@
+#ifndef _Z_EFF_SS_D_FIRE_H_
+#define _Z_EFF_SS_D_FIRE_H_
+
+#include <ultra64.h>
+#include <global.h>
+
+typedef struct {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ Vec3f velocity;
+ /* 0x18 */ Vec3f accel;
+} EffectSsDFireInitParams; // size = 0x
+
+#endif
diff --git a/src/overlays/effects/ovl_Effect_Ss_Dead_Db/z_eff_ss_dead_db.c b/src/overlays/effects/ovl_Effect_Ss_Dead_Db/z_eff_ss_dead_db.c
index 4f75a5671..0d2bc6c02 100644
--- a/src/overlays/effects/ovl_Effect_Ss_Dead_Db/z_eff_ss_dead_db.c
+++ b/src/overlays/effects/ovl_Effect_Ss_Dead_Db/z_eff_ss_dead_db.c
@@ -1,7 +1,39 @@
-#include <ultra64.h>
-#include <global.h>
+/*
+ * File: z_eff_ss_dead_db.c
+ * Overlay: ovl_Effect_Ss_Dead_Db
+ * Description:
+ */
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Dead_Db/func_809A0AA0.s")
+#include "z_eff_ss_dead_db.h"
+
+typedef enum {
+ /* 0x00 */ SS_DEAD_DB_0,
+ /* 0x01 */ SS_DEAD_DB_1,
+ /* 0x02 */ SS_DEAD_DB_2,
+ /* 0x03 */ SS_DEAD_DB_3,
+ /* 0x04 */ SS_DEAD_DB_4,
+ /* 0x05 */ SS_DEAD_DB_5,
+ /* 0x06 */ SS_DEAD_DB_6,
+ /* 0x07 */ SS_DEAD_DB_7,
+ /* 0x08 */ SS_DEAD_DB_8,
+ /* 0x09 */ SS_DEAD_DB_9,
+ /* 0x0A */ SS_DEAD_DB_A,
+ /* 0x0B */ SS_DEAD_DB_B,
+ /* 0x0C */ SS_DEAD_DB_C,
+} EffectSsDead_DbRegs;
+
+u32 EffectSsDeadDb_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
+void EffectSsDeadDb_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
+void EffectSsDeadDb_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
+
+/*
+EffectSsInit Effect_Ss_Dead_Db_InitVars = {
+ EFFECT_SS_DEAD_DB,
+ EffectSsDeadDb_Init,
+};
+*/
+
+#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Dead_Db/EffectSsDeadDb_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Dead_Db/func_809A0BB8.s")
diff --git a/src/overlays/effects/ovl_Effect_Ss_Dead_Db/z_eff_ss_dead_db.h b/src/overlays/effects/ovl_Effect_Ss_Dead_Db/z_eff_ss_dead_db.h
new file mode 100644
index 000000000..e180a2077
--- /dev/null
+++ b/src/overlays/effects/ovl_Effect_Ss_Dead_Db/z_eff_ss_dead_db.h
@@ -0,0 +1,13 @@
+#ifndef _Z_EFF_SS_DEAD_DB_H_
+#define _Z_EFF_SS_DEAD_DB_H_
+
+#include <ultra64.h>
+#include <global.h>
+
+typedef struct {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ Vec3f velocity;
+ /* 0x18 */ Vec3f accel;
+} EffectSsDeadDbInitParams; // size = 0x
+
+#endif
diff --git a/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.c b/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.c
index 582ea22b0..e8770367d 100644
--- a/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.c
+++ b/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.c
@@ -1,7 +1,39 @@
-#include <ultra64.h>
-#include <global.h>
+/*
+ * File: z_eff_ss_dead_dd.c
+ * Overlay: ovl_Effect_Ss_Dead_Dd
+ * Description:
+ */
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Dead_Dd/func_809A0FE0.s")
+#include "z_eff_ss_dead_dd.h"
+
+typedef enum {
+ /* 0x00 */ SS_DEAD_DD_0,
+ /* 0x01 */ SS_DEAD_DD_1,
+ /* 0x02 */ SS_DEAD_DD_2,
+ /* 0x03 */ SS_DEAD_DD_3,
+ /* 0x04 */ SS_DEAD_DD_4,
+ /* 0x05 */ SS_DEAD_DD_5,
+ /* 0x06 */ SS_DEAD_DD_6,
+ /* 0x07 */ SS_DEAD_DD_7,
+ /* 0x08 */ SS_DEAD_DD_8,
+ /* 0x09 */ SS_DEAD_DD_9,
+ /* 0x0A */ SS_DEAD_DD_A,
+ /* 0x0B */ SS_DEAD_DD_B,
+ /* 0x0C */ SS_DEAD_DD_C,
+} EffectSsDead_DdRegs;
+
+u32 EffectSsDeadDd_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
+void EffectSsDeadDd_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
+void EffectSsDeadDd_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
+
+/*
+EffectSsInit Effect_Ss_Dead_Dd_InitVars = {
+ EFFECT_SS_DEAD_DD,
+ EffectSsDeadDd_Init,
+};
+*/
+
+#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Dead_Dd/EffectSsDeadDd_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Dead_Dd/func_809A12B4.s")
diff --git a/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.h b/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.h
new file mode 100644
index 000000000..66a8a85e8
--- /dev/null
+++ b/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.h
@@ -0,0 +1,13 @@
+#ifndef _Z_EFF_SS_DEAD_DD_H_
+#define _Z_EFF_SS_DEAD_DD_H_
+
+#include <ultra64.h>
+#include <global.h>
+
+typedef struct {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ Vec3f velocity;
+ /* 0x18 */ Vec3f accel;
+} EffectSsDeadDdInitParams; // size = 0x
+
+#endif
diff --git a/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.c b/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.c
index d4995444a..6171df808 100644
--- a/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.c
+++ b/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.c
@@ -1,7 +1,39 @@
-#include <ultra64.h>
-#include <global.h>
+/*
+ * File: z_eff_ss_dead_ds.c
+ * Overlay: ovl_Effect_Ss_Dead_Ds
+ * Description:
+ */
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Dead_Ds/func_809A1610.s")
+#include "z_eff_ss_dead_ds.h"
+
+typedef enum {
+ /* 0x00 */ SS_DEAD_DS_0,
+ /* 0x01 */ SS_DEAD_DS_1,
+ /* 0x02 */ SS_DEAD_DS_2,
+ /* 0x03 */ SS_DEAD_DS_3,
+ /* 0x04 */ SS_DEAD_DS_4,
+ /* 0x05 */ SS_DEAD_DS_5,
+ /* 0x06 */ SS_DEAD_DS_6,
+ /* 0x07 */ SS_DEAD_DS_7,
+ /* 0x08 */ SS_DEAD_DS_8,
+ /* 0x09 */ SS_DEAD_DS_9,
+ /* 0x0A */ SS_DEAD_DS_A,
+ /* 0x0B */ SS_DEAD_DS_B,
+ /* 0x0C */ SS_DEAD_DS_C,
+} EffectSsDead_DsRegs;
+
+u32 EffectSsDeadDs_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
+void EffectSsDeadDs_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
+void EffectSsDeadDs_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
+
+/*
+EffectSsInit Effect_Ss_Dead_Ds_InitVars = {
+ EFFECT_SS_DEAD_DS,
+ EffectSsDeadDs_Init,
+};
+*/
+
+#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Dead_Ds/EffectSsDeadDs_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Dead_Ds/func_809A16F4.s")
diff --git a/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.h b/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.h
new file mode 100644
index 000000000..95064ff01
--- /dev/null
+++ b/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.h
@@ -0,0 +1,13 @@
+#ifndef _Z_EFF_SS_DEAD_DS_H_
+#define _Z_EFF_SS_DEAD_DS_H_
+
+#include <ultra64.h>
+#include <global.h>
+
+typedef struct {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ Vec3f velocity;
+ /* 0x18 */ Vec3f accel;
+} EffectSsDeadDsInitParams; // size = 0x
+
+#endif
diff --git a/src/overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.c b/src/overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.c
index 722d46889..9374353b0 100644
--- a/src/overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.c
+++ b/src/overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.c
@@ -1,6 +1,38 @@
-#include <ultra64.h>
-#include <global.h>
+/*
+ * File: z_eff_ss_dead_sound.c
+ * Overlay: ovl_Effect_Ss_Dead_Sound
+ * Description:
+ */
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Dead_Sound/func_809A1B30.s")
+#include "z_eff_ss_dead_sound.h"
+
+typedef enum {
+ /* 0x00 */ SS_DEAD_SOUND_0,
+ /* 0x01 */ SS_DEAD_SOUND_1,
+ /* 0x02 */ SS_DEAD_SOUND_2,
+ /* 0x03 */ SS_DEAD_SOUND_3,
+ /* 0x04 */ SS_DEAD_SOUND_4,
+ /* 0x05 */ SS_DEAD_SOUND_5,
+ /* 0x06 */ SS_DEAD_SOUND_6,
+ /* 0x07 */ SS_DEAD_SOUND_7,
+ /* 0x08 */ SS_DEAD_SOUND_8,
+ /* 0x09 */ SS_DEAD_SOUND_9,
+ /* 0x0A */ SS_DEAD_SOUND_A,
+ /* 0x0B */ SS_DEAD_SOUND_B,
+ /* 0x0C */ SS_DEAD_SOUND_C,
+} EffectSsDead_SoundRegs;
+
+u32 EffectSsDeadSound_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
+void EffectSsDeadSound_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
+void EffectSsDeadSound_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
+
+/*
+EffectSsInit Effect_Ss_Dead_Sound_InitVars = {
+ EFFECT_SS_DEAD_SOUND,
+ EffectSsDeadSound_Init,
+};
+*/
+
+#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Dead_Sound/EffectSsDeadSound_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Dead_Sound/func_809A1BD8.s")
diff --git a/src/overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.h b/src/overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.h
new file mode 100644
index 000000000..504bdaf7e
--- /dev/null
+++ b/src/overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.h
@@ -0,0 +1,13 @@
+#ifndef _Z_EFF_SS_DEAD_SOUND_H_
+#define _Z_EFF_SS_DEAD_SOUND_H_
+
+#include <ultra64.h>
+#include <global.h>
+
+typedef struct {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ Vec3f velocity;
+ /* 0x18 */ Vec3f accel;
+} EffectSsDeadSoundInitParams; // size = 0x
+
+#endif
diff --git a/src/overlays/effects/ovl_Effect_Ss_Dt_Bubble/z_eff_ss_dt_bubble.c b/src/overlays/effects/ovl_Effect_Ss_Dt_Bubble/z_eff_ss_dt_bubble.c
index 45f0eb9bf..0f4cf4e97 100644
--- a/src/overlays/effects/ovl_Effect_Ss_Dt_Bubble/z_eff_ss_dt_bubble.c
+++ b/src/overlays/effects/ovl_Effect_Ss_Dt_Bubble/z_eff_ss_dt_bubble.c
@@ -1,7 +1,39 @@
-#include <ultra64.h>
-#include <global.h>
+/*
+ * File: z_eff_ss_dt_bubble.c
+ * Overlay: ovl_Effect_Ss_Dt_Bubble
+ * Description:
+ */
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Dt_Bubble/func_809A1CB0.s")
+#include "z_eff_ss_dt_bubble.h"
+
+typedef enum {
+ /* 0x00 */ SS_DT_BUBBLE_0,
+ /* 0x01 */ SS_DT_BUBBLE_1,
+ /* 0x02 */ SS_DT_BUBBLE_2,
+ /* 0x03 */ SS_DT_BUBBLE_3,
+ /* 0x04 */ SS_DT_BUBBLE_4,
+ /* 0x05 */ SS_DT_BUBBLE_5,
+ /* 0x06 */ SS_DT_BUBBLE_6,
+ /* 0x07 */ SS_DT_BUBBLE_7,
+ /* 0x08 */ SS_DT_BUBBLE_8,
+ /* 0x09 */ SS_DT_BUBBLE_9,
+ /* 0x0A */ SS_DT_BUBBLE_A,
+ /* 0x0B */ SS_DT_BUBBLE_B,
+ /* 0x0C */ SS_DT_BUBBLE_C,
+} EffectSsDt_BubbleRegs;
+
+u32 EffectSsDtBubble_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
+void EffectSsDtBubble_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
+void EffectSsDtBubble_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
+
+/*
+EffectSsInit Effect_Ss_Dt_Bubble_InitVars = {
+ EFFECT_SS_DT_BUBBLE,
+ EffectSsDtBubble_Init,
+};
+*/
+
+#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Dt_Bubble/EffectSsDtBubble_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Dt_Bubble/func_809A1F04.s")
diff --git a/src/overlays/effects/ovl_Effect_Ss_Dt_Bubble/z_eff_ss_dt_bubble.h b/src/overlays/effects/ovl_Effect_Ss_Dt_Bubble/z_eff_ss_dt_bubble.h
new file mode 100644
index 000000000..29e04550e
--- /dev/null
+++ b/src/overlays/effects/ovl_Effect_Ss_Dt_Bubble/z_eff_ss_dt_bubble.h
@@ -0,0 +1,13 @@
+#ifndef _Z_EFF_SS_DT_BUBBLE_H_
+#define _Z_EFF_SS_DT_BUBBLE_H_
+
+#include <ultra64.h>
+#include <global.h>
+
+typedef struct {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ Vec3f velocity;
+ /* 0x18 */ Vec3f accel;
+} EffectSsDtBubbleInitParams; // size = 0x
+
+#endif
diff --git a/src/overlays/effects/ovl_Effect_Ss_En_Fire/z_eff_ss_en_fire.c b/src/overlays/effects/ovl_Effect_Ss_En_Fire/z_eff_ss_en_fire.c
index eb6d647d6..229e1e3d2 100644
--- a/src/overlays/effects/ovl_Effect_Ss_En_Fire/z_eff_ss_en_fire.c
+++ b/src/overlays/effects/ovl_Effect_Ss_En_Fire/z_eff_ss_en_fire.c
@@ -1,7 +1,39 @@
-#include <ultra64.h>
-#include <global.h>
+/*
+ * File: z_eff_ss_en_fire.c
+ * Overlay: ovl_Effect_Ss_En_Fire
+ * Description:
+ */
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_En_Fire/func_809A2B60.s")
+#include "z_eff_ss_en_fire.h"
+
+typedef enum {
+ /* 0x00 */ SS_EN_FIRE_0,
+ /* 0x01 */ SS_EN_FIRE_1,
+ /* 0x02 */ SS_EN_FIRE_2,
+ /* 0x03 */ SS_EN_FIRE_3,
+ /* 0x04 */ SS_EN_FIRE_4,
+ /* 0x05 */ SS_EN_FIRE_5,
+ /* 0x06 */ SS_EN_FIRE_6,
+ /* 0x07 */ SS_EN_FIRE_7,
+ /* 0x08 */ SS_EN_FIRE_8,
+ /* 0x09 */ SS_EN_FIRE_9,
+ /* 0x0A */ SS_EN_FIRE_A,
+ /* 0x0B */ SS_EN_FIRE_B,
+ /* 0x0C */ SS_EN_FIRE_C,
+} EffectSsEn_FireRegs;
+
+u32 EffectSsEnFire_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
+void EffectSsEnFire_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
+void EffectSsEnFire_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
+
+/*
+EffectSsInit Effect_Ss_En_Fire_InitVars = {
+ EFFECT_SS_EN_FIRE,
+ EffectSsEnFire_Init,
+};
+*/
+
+#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_En_Fire/EffectSsEnFire_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_En_Fire/func_809A2D28.s")
diff --git a/src/overlays/effects/ovl_Effect_Ss_En_Fire/z_eff_ss_en_fire.h b/src/overlays/effects/ovl_Effect_Ss_En_Fire/z_eff_ss_en_fire.h
new file mode 100644
index 000000000..4d3072339
--- /dev/null
+++ b/src/overlays/effects/ovl_Effect_Ss_En_Fire/z_eff_ss_en_fire.h
@@ -0,0 +1,13 @@
+#ifndef _Z_EFF_SS_EN_FIRE_H_
+#define _Z_EFF_SS_EN_FIRE_H_
+
+#include <ultra64.h>
+#include <global.h>
+
+typedef struct {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ Vec3f velocity;
+ /* 0x18 */ Vec3f accel;
+} EffectSsEnFireInitParams; // size = 0x
+
+#endif
diff --git a/src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.c b/src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.c
index b34074f31..96489a197 100644
--- a/src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.c
+++ b/src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.c
@@ -1,7 +1,39 @@
-#include <ultra64.h>
-#include <global.h>
+/*
+ * File: z_eff_ss_en_ice.c
+ * Overlay: ovl_Effect_Ss_En_Ice
+ * Description:
+ */
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_En_Ice/func_809A3330.s")
+#include "z_eff_ss_en_ice.h"
+
+typedef enum {
+ /* 0x00 */ SS_EN_ICE_0,
+ /* 0x01 */ SS_EN_ICE_1,
+ /* 0x02 */ SS_EN_ICE_2,
+ /* 0x03 */ SS_EN_ICE_3,
+ /* 0x04 */ SS_EN_ICE_4,
+ /* 0x05 */ SS_EN_ICE_5,
+ /* 0x06 */ SS_EN_ICE_6,
+ /* 0x07 */ SS_EN_ICE_7,
+ /* 0x08 */ SS_EN_ICE_8,
+ /* 0x09 */ SS_EN_ICE_9,
+ /* 0x0A */ SS_EN_ICE_A,
+ /* 0x0B */ SS_EN_ICE_B,
+ /* 0x0C */ SS_EN_ICE_C,
+} EffectSsEn_IceRegs;
+
+u32 EffectSsEnIce_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
+void EffectSsEnIce_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
+void EffectSsEnIce_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
+
+/*
+EffectSsInit Effect_Ss_En_Ice_InitVars = {
+ EFFECT_SS_EN_ICE,
+ EffectSsEnIce_Init,
+};
+*/
+
+#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_En_Ice/EffectSsEnIce_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_En_Ice/func_809A35DC.s")
diff --git a/src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.h b/src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.h
new file mode 100644
index 000000000..5ca6a9e4d
--- /dev/null
+++ b/src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.h
@@ -0,0 +1,13 @@
+#ifndef _Z_EFF_SS_EN_ICE_H_
+#define _Z_EFF_SS_EN_ICE_H_
+
+#include <ultra64.h>
+#include <global.h>
+
+typedef struct {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ Vec3f velocity;
+ /* 0x18 */ Vec3f accel;
+} EffectSsEnIceInitParams; // size = 0x
+
+#endif
diff --git a/src/overlays/effects/ovl_Effect_Ss_Extra/z_eff_ss_extra.c b/src/overlays/effects/ovl_Effect_Ss_Extra/z_eff_ss_extra.c
index d3c9b4edb..691c563a3 100644
--- a/src/overlays/effects/ovl_Effect_Ss_Extra/z_eff_ss_extra.c
+++ b/src/overlays/effects/ovl_Effect_Ss_Extra/z_eff_ss_extra.c
@@ -1,7 +1,39 @@
-#include <ultra64.h>
-#include <global.h>
+/*
+ * File: z_eff_ss_extra.c
+ * Overlay: ovl_Effect_Ss_Extra
+ * Description:
+ */
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Extra/func_809A3CC0.s")
+#include "z_eff_ss_extra.h"
+
+typedef enum {
+ /* 0x00 */ SS_EXTRA_0,
+ /* 0x01 */ SS_EXTRA_1,
+ /* 0x02 */ SS_EXTRA_2,
+ /* 0x03 */ SS_EXTRA_3,
+ /* 0x04 */ SS_EXTRA_4,
+ /* 0x05 */ SS_EXTRA_5,
+ /* 0x06 */ SS_EXTRA_6,
+ /* 0x07 */ SS_EXTRA_7,
+ /* 0x08 */ SS_EXTRA_8,
+ /* 0x09 */ SS_EXTRA_9,
+ /* 0x0A */ SS_EXTRA_A,
+ /* 0x0B */ SS_EXTRA_B,
+ /* 0x0C */ SS_EXTRA_C,
+} EffectSsExtraRegs;
+
+u32 EffectSsExtra_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
+void EffectSsExtra_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
+void EffectSsExtra_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
+
+/*
+EffectSsInit Effect_Ss_Extra_InitVars = {
+ EFFECT_SS_EXTRA,
+ EffectSsExtra_Init,
+};
+*/
+
+#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Extra/EffectSsExtra_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Extra/func_809A3E00.s")
diff --git a/src/overlays/effects/ovl_Effect_Ss_Extra/z_eff_ss_extra.h b/src/overlays/effects/ovl_Effect_Ss_Extra/z_eff_ss_extra.h
new file mode 100644
index 000000000..de35e3c92
--- /dev/null
+++ b/src/overlays/effects/ovl_Effect_Ss_Extra/z_eff_ss_extra.h
@@ -0,0 +1,13 @@
+#ifndef _Z_EFF_SS_EXTRA_H_
+#define _Z_EFF_SS_EXTRA_H_
+
+#include <ultra64.h>
+#include <global.h>
+
+typedef struct {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ Vec3f velocity;
+ /* 0x18 */ Vec3f accel;
+} EffectSsExtraInitParams; // size = 0x
+
+#endif
diff --git a/src/overlays/effects/ovl_Effect_Ss_Fcircle/z_eff_ss_fcircle.c b/src/overlays/effects/ovl_Effect_Ss_Fcircle/z_eff_ss_fcircle.c
index 3da011570..116933f26 100644
--- a/src/overlays/effects/ovl_Effect_Ss_Fcircle/z_eff_ss_fcircle.c
+++ b/src/overlays/effects/ovl_Effect_Ss_Fcircle/z_eff_ss_fcircle.c
@@ -1,7 +1,39 @@
-#include <ultra64.h>
-#include <global.h>
+/*
+ * File: z_eff_ss_fcircle.c
+ * Overlay: ovl_Effect_Ss_Fcircle
+ * Description:
+ */
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Fcircle/func_809A4120.s")
+#include "z_eff_ss_fcircle.h"
+
+typedef enum {
+ /* 0x00 */ SS_FCIRCLE_0,
+ /* 0x01 */ SS_FCIRCLE_1,
+ /* 0x02 */ SS_FCIRCLE_2,
+ /* 0x03 */ SS_FCIRCLE_3,
+ /* 0x04 */ SS_FCIRCLE_4,
+ /* 0x05 */ SS_FCIRCLE_5,
+ /* 0x06 */ SS_FCIRCLE_6,
+ /* 0x07 */ SS_FCIRCLE_7,
+ /* 0x08 */ SS_FCIRCLE_8,
+ /* 0x09 */ SS_FCIRCLE_9,
+ /* 0x0A */ SS_FCIRCLE_A,
+ /* 0x0B */ SS_FCIRCLE_B,
+ /* 0x0C */ SS_FCIRCLE_C,
+} EffectSsFcircleRegs;
+
+u32 EffectSsFcircle_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
+void EffectSsFcircle_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
+void EffectSsFcircle_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
+
+/*
+EffectSsInit Effect_Ss_Fcircle_InitVars = {
+ EFFECT_SS_FCIRCLE,
+ EffectSsFcircle_Init,
+};
+*/
+
+#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Fcircle/EffectSsFcircle_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Fcircle/func_809A41DC.s")
diff --git a/src/overlays/effects/ovl_Effect_Ss_Fcircle/z_eff_ss_fcircle.h b/src/overlays/effects/ovl_Effect_Ss_Fcircle/z_eff_ss_fcircle.h
new file mode 100644
index 000000000..ded270d02
--- /dev/null
+++ b/src/overlays/effects/ovl_Effect_Ss_Fcircle/z_eff_ss_fcircle.h
@@ -0,0 +1,13 @@
+#ifndef _Z_EFF_SS_FCIRCLE_H_
+#define _Z_EFF_SS_FCIRCLE_H_
+
+#include <ultra64.h>
+#include <global.h>
+
+typedef struct {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ Vec3f velocity;
+ /* 0x18 */ Vec3f accel;
+} EffectSsFcircleInitParams; // size = 0x
+
+#endif
diff --git a/src/overlays/effects/ovl_Effect_Ss_Fhg_Flash/z_eff_ss_fhg_flash.c b/src/overlays/effects/ovl_Effect_Ss_Fhg_Flash/z_eff_ss_fhg_flash.c
index c04ee27c9..4273e6ef8 100644
--- a/src/overlays/effects/ovl_Effect_Ss_Fhg_Flash/z_eff_ss_fhg_flash.c
+++ b/src/overlays/effects/ovl_Effect_Ss_Fhg_Flash/z_eff_ss_fhg_flash.c
@@ -1,7 +1,39 @@
-#include <ultra64.h>
-#include <global.h>
+/*
+ * File: z_eff_ss_fhg_flash.c
+ * Overlay: ovl_Effect_Ss_Fhg_Flash
+ * Description:
+ */
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Fhg_Flash/func_809A4660.s")
+#include "z_eff_ss_fhg_flash.h"
+
+typedef enum {
+ /* 0x00 */ SS_FHG_FLASH_0,
+ /* 0x01 */ SS_FHG_FLASH_1,
+ /* 0x02 */ SS_FHG_FLASH_2,
+ /* 0x03 */ SS_FHG_FLASH_3,
+ /* 0x04 */ SS_FHG_FLASH_4,
+ /* 0x05 */ SS_FHG_FLASH_5,
+ /* 0x06 */ SS_FHG_FLASH_6,
+ /* 0x07 */ SS_FHG_FLASH_7,
+ /* 0x08 */ SS_FHG_FLASH_8,
+ /* 0x09 */ SS_FHG_FLASH_9,
+ /* 0x0A */ SS_FHG_FLASH_A,
+ /* 0x0B */ SS_FHG_FLASH_B,
+ /* 0x0C */ SS_FHG_FLASH_C,
+} EffectSsFhg_FlashRegs;
+
+u32 EffectSsFhgFlash_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
+void EffectSsFhgFlash_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
+void EffectSsFhgFlash_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
+
+/*
+EffectSsInit Effect_Ss_Fhg_Flash_InitVars = {
+ EFFECT_SS_FHG_FLASH,
+ EffectSsFhgFlash_Init,
+};
+*/
+
+#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Fhg_Flash/EffectSsFhgFlash_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Fhg_Flash/func_809A49B8.s")
diff --git a/src/overlays/effects/ovl_Effect_Ss_Fire_Tail/z_eff_ss_fire_tail.c b/src/overlays/effects/ovl_Effect_Ss_Fire_Tail/z_eff_ss_fire_tail.c
index 09ef8ed75..dd21cbdc5 100644
--- a/src/overlays/effects/ovl_Effect_Ss_Fire_Tail/z_eff_ss_fire_tail.c
+++ b/src/overlays/effects/ovl_Effect_Ss_Fire_Tail/z_eff_ss_fire_tail.c
@@ -1,7 +1,39 @@
-#include <ultra64.h>
-#include <global.h>
+/*
+ * File: z_eff_ss_fire_tail.c
+ * Overlay: ovl_Effect_Ss_Fire_Tail
+ * Description:
+ */
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Fire_Tail/func_809A5740.s")
+#include "z_eff_ss_fire_tail.h"
+
+typedef enum {
+ /* 0x00 */ SS_FIRE_TAIL_0,
+ /* 0x01 */ SS_FIRE_TAIL_1,
+ /* 0x02 */ SS_FIRE_TAIL_2,
+ /* 0x03 */ SS_FIRE_TAIL_3,
+ /* 0x04 */ SS_FIRE_TAIL_4,
+ /* 0x05 */ SS_FIRE_TAIL_5,
+ /* 0x06 */ SS_FIRE_TAIL_6,
+ /* 0x07 */ SS_FIRE_TAIL_7,
+ /* 0x08 */ SS_FIRE_TAIL_8,
+ /* 0x09 */ SS_FIRE_TAIL_9,
+ /* 0x0A */ SS_FIRE_TAIL_A,
+ /* 0x0B */ SS_FIRE_TAIL_B,
+ /* 0x0C */ SS_FIRE_TAIL_C,
+} EffectSsFire_TailRegs;
+
+u32 EffectSsFireTail_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
+void EffectSsFireTail_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
+void EffectSsFireTail_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
+
+/*
+EffectSsInit Effect_Ss_Fire_Tail_InitVars = {
+ EFFECT_SS_FIRE_TAIL,
+ EffectSsFireTail_Init,
+};
+*/
+
+#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Fire_Tail/EffectSsFireTail_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Fire_Tail/func_809A5858.s")
diff --git a/src/overlays/effects/ovl_Effect_Ss_Fire_Tail/z_eff_ss_fire_tail.h b/src/overlays/effects/ovl_Effect_Ss_Fire_Tail/z_eff_ss_fire_tail.h
new file mode 100644
index 000000000..a1c8b6c28
--- /dev/null
+++ b/src/overlays/effects/ovl_Effect_Ss_Fire_Tail/z_eff_ss_fire_tail.h
@@ -0,0 +1,13 @@
+#ifndef _Z_EFF_SS_FIRE_TAIL_H_
+#define _Z_EFF_SS_FIRE_TAIL_H_
+
+#include <ultra64.h>
+#include <global.h>
+
+typedef struct {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ Vec3f velocity;
+ /* 0x18 */ Vec3f accel;
+} EffectSsFireTailInitParams; // size = 0x
+
+#endif
diff --git a/src/overlays/effects/ovl_Effect_Ss_G_Fire/z_eff_ss_g_fire.c b/src/overlays/effects/ovl_Effect_Ss_G_Fire/z_eff_ss_g_fire.c
index 943976af0..de412f969 100644
--- a/src/overlays/effects/ovl_Effect_Ss_G_Fire/z_eff_ss_g_fire.c
+++ b/src/overlays/effects/ovl_Effect_Ss_G_Fire/z_eff_ss_g_fire.c
@@ -1,7 +1,39 @@
-#include <ultra64.h>
-#include <global.h>
+/*
+ * File: z_eff_ss_g_fire.c
+ * Overlay: ovl_Effect_Ss_G_Fire
+ * Description:
+ */
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_G_Fire/func_809A5ED0.s")
+#include "z_eff_ss_g_fire.h"
+
+typedef enum {
+ /* 0x00 */ SS_G_FIRE_0,
+ /* 0x01 */ SS_G_FIRE_1,
+ /* 0x02 */ SS_G_FIRE_2,
+ /* 0x03 */ SS_G_FIRE_3,
+ /* 0x04 */ SS_G_FIRE_4,
+ /* 0x05 */ SS_G_FIRE_5,
+ /* 0x06 */ SS_G_FIRE_6,
+ /* 0x07 */ SS_G_FIRE_7,
+ /* 0x08 */ SS_G_FIRE_8,
+ /* 0x09 */ SS_G_FIRE_9,
+ /* 0x0A */ SS_G_FIRE_A,
+ /* 0x0B */ SS_G_FIRE_B,
+ /* 0x0C */ SS_G_FIRE_C,
+} EffectSsG_FireRegs;
+
+u32 EffectSsGFire_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
+void EffectSsGFire_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
+void EffectSsGFire_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
+
+/*
+EffectSsInit Effect_Ss_G_Fire_InitVars = {
+ EFFECT_SS_G_FIRE,
+ EffectSsGFire_Init,
+};
+*/
+
+#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_G_Fire/EffectSsGFire_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_G_Fire/func_809A6010.s")
diff --git a/src/overlays/effects/ovl_Effect_Ss_G_Fire/z_eff_ss_g_fire.h b/src/overlays/effects/ovl_Effect_Ss_G_Fire/z_eff_ss_g_fire.h
new file mode 100644
index 000000000..e4bf699af
--- /dev/null
+++ b/src/overlays/effects/ovl_Effect_Ss_G_Fire/z_eff_ss_g_fire.h
@@ -0,0 +1,13 @@
+#ifndef _Z_EFF_SS_G_FIRE_H_
+#define _Z_EFF_SS_G_FIRE_H_
+
+#include <ultra64.h>
+#include <global.h>
+
+typedef struct {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ Vec3f velocity;
+ /* 0x18 */ Vec3f accel;
+} EffectSsGFireInitParams; // size = 0x
+
+#endif
diff --git a/src/overlays/effects/ovl_Effect_Ss_G_Magma/z_eff_ss_g_magma.c b/src/overlays/effects/ovl_Effect_Ss_G_Magma/z_eff_ss_g_magma.c
index 6dc514c3b..45bc5d790 100644
--- a/src/overlays/effects/ovl_Effect_Ss_G_Magma/z_eff_ss_g_magma.c
+++ b/src/overlays/effects/ovl_Effect_Ss_G_Magma/z_eff_ss_g_magma.c
@@ -1,7 +1,39 @@
-#include <ultra64.h>
-#include <global.h>
+/*
+ * File: z_eff_ss_g_magma.c
+ * Overlay: ovl_Effect_Ss_G_Magma
+ * Description:
+ */
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_G_Magma/func_809A6150.s")
+#include "z_eff_ss_g_magma.h"
+
+typedef enum {
+ /* 0x00 */ SS_G_MAGMA_0,
+ /* 0x01 */ SS_G_MAGMA_1,
+ /* 0x02 */ SS_G_MAGMA_2,
+ /* 0x03 */ SS_G_MAGMA_3,
+ /* 0x04 */ SS_G_MAGMA_4,
+ /* 0x05 */ SS_G_MAGMA_5,
+ /* 0x06 */ SS_G_MAGMA_6,
+ /* 0x07 */ SS_G_MAGMA_7,
+ /* 0x08 */ SS_G_MAGMA_8,
+ /* 0x09 */ SS_G_MAGMA_9,
+ /* 0x0A */ SS_G_MAGMA_A,
+ /* 0x0B */ SS_G_MAGMA_B,
+ /* 0x0C */ SS_G_MAGMA_C,
+} EffectSsG_MagmaRegs;
+
+u32 EffectSsGMagma_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
+void EffectSsGMagma_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
+void EffectSsGMagma_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
+
+/*
+EffectSsInit Effect_Ss_G_Magma_InitVars = {
+ EFFECT_SS_G_MAGMA,
+ EffectSsGMagma_Init,
+};
+*/
+
+#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_G_Magma/EffectSsGMagma_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_G_Magma/func_809A62A8.s")
diff --git a/src/overlays/effects/ovl_Effect_Ss_G_Magma/z_eff_ss_g_magma.h b/src/overlays/effects/ovl_Effect_Ss_G_Magma/z_eff_ss_g_magma.h
new file mode 100644
index 000000000..cda7afd11
--- /dev/null
+++ b/src/overlays/effects/ovl_Effect_Ss_G_Magma/z_eff_ss_g_magma.h
@@ -0,0 +1,13 @@
+#ifndef _Z_EFF_SS_G_MAGMA_H_
+#define _Z_EFF_SS_G_MAGMA_H_
+
+#include <ultra64.h>
+#include <global.h>
+
+typedef struct {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ Vec3f velocity;
+ /* 0x18 */ Vec3f accel;
+} EffectSsGMagmaInitParams; // size = 0x
+
+#endif
diff --git a/src/overlays/effects/ovl_Effect_Ss_G_Magma2/z_eff_ss_g_magma2.c b/src/overlays/effects/ovl_Effect_Ss_G_Magma2/z_eff_ss_g_magma2.c
index 23d10a5ac..f5ed4510c 100644
--- a/src/overlays/effects/ovl_Effect_Ss_G_Magma2/z_eff_ss_g_magma2.c
+++ b/src/overlays/effects/ovl_Effect_Ss_G_Magma2/z_eff_ss_g_magma2.c
@@ -1,7 +1,39 @@
-#include <ultra64.h>
-#include <global.h>
+/*
+ * File: z_eff_ss_g_magma2.c
+ * Overlay: ovl_Effect_Ss_G_Magma2
+ * Description:
+ */
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_G_Magma2/func_809A63A0.s")
+#include "z_eff_ss_g_magma2.h"
+
+typedef enum {
+ /* 0x00 */ SS_G_MAGMA2_0,
+ /* 0x01 */ SS_G_MAGMA2_1,
+ /* 0x02 */ SS_G_MAGMA2_2,
+ /* 0x03 */ SS_G_MAGMA2_3,
+ /* 0x04 */ SS_G_MAGMA2_4,
+ /* 0x05 */ SS_G_MAGMA2_5,
+ /* 0x06 */ SS_G_MAGMA2_6,
+ /* 0x07 */ SS_G_MAGMA2_7,
+ /* 0x08 */ SS_G_MAGMA2_8,
+ /* 0x09 */ SS_G_MAGMA2_9,
+ /* 0x0A */ SS_G_MAGMA2_A,
+ /* 0x0B */ SS_G_MAGMA2_B,
+ /* 0x0C */ SS_G_MAGMA2_C,
+} EffectSsG_Magma2Regs;
+
+u32 EffectSsGMagma2_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
+void EffectSsGMagma2_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
+void EffectSsGMagma2_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
+
+/*
+EffectSsInit Effect_Ss_G_Magma2_InitVars = {
+ EFFECT_SS_G_MAGMA2,
+ EffectSsGMagma2_Init,
+};
+*/
+
+#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_G_Magma2/EffectSsGMagma2_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_G_Magma2/func_809A6568.s")
diff --git a/src/overlays/effects/ovl_Effect_Ss_G_Magma2/z_eff_ss_g_magma2.h b/src/overlays/effects/ovl_Effect_Ss_G_Magma2/z_eff_ss_g_magma2.h
new file mode 100644
index 000000000..c96c27ac1
--- /dev/null
+++ b/src/overlays/effects/ovl_Effect_Ss_G_Magma2/z_eff_ss_g_magma2.h
@@ -0,0 +1,13 @@
+#ifndef _Z_EFF_SS_G_MAGMA2_H_
+#define _Z_EFF_SS_G_MAGMA2_H_
+
+#include <ultra64.h>
+#include <global.h>
+
+typedef struct {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ Vec3f velocity;
+ /* 0x18 */ Vec3f accel;
+} EffectSsGMagma2InitParams; // size = 0x
+
+#endif
diff --git a/src/overlays/effects/ovl_Effect_Ss_G_Ripple/z_eff_ss_g_ripple.c b/src/overlays/effects/ovl_Effect_Ss_G_Ripple/z_eff_ss_g_ripple.c
index 169d45524..bd8e0bb3e 100644
--- a/src/overlays/effects/ovl_Effect_Ss_G_Ripple/z_eff_ss_g_ripple.c
+++ b/src/overlays/effects/ovl_Effect_Ss_G_Ripple/z_eff_ss_g_ripple.c
@@ -1,7 +1,39 @@
-#include <ultra64.h>
-#include <global.h>
+/*
+ * File: z_eff_ss_g_ripple.c
+ * Overlay: ovl_Effect_Ss_G_Ripple
+ * Description:
+ */
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_G_Ripple/func_809A6960.s")
+#include "z_eff_ss_g_ripple.h"
+
+typedef enum {
+ /* 0x00 */ SS_G_RIPPLE_0,
+ /* 0x01 */ SS_G_RIPPLE_1,
+ /* 0x02 */ SS_G_RIPPLE_2,
+ /* 0x03 */ SS_G_RIPPLE_3,
+ /* 0x04 */ SS_G_RIPPLE_4,
+ /* 0x05 */ SS_G_RIPPLE_5,
+ /* 0x06 */ SS_G_RIPPLE_6,
+ /* 0x07 */ SS_G_RIPPLE_7,
+ /* 0x08 */ SS_G_RIPPLE_8,
+ /* 0x09 */ SS_G_RIPPLE_9,
+ /* 0x0A */ SS_G_RIPPLE_A,
+ /* 0x0B */ SS_G_RIPPLE_B,
+ /* 0x0C */ SS_G_RIPPLE_C,
+} EffectSsG_RippleRegs;
+
+u32 EffectSsGRipple_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
+void EffectSsGRipple_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
+void EffectSsGRipple_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
+
+/*
+EffectSsInit Effect_Ss_G_Ripple_InitVars = {
+ EFFECT_SS_G_RIPPLE,
+ EffectSsGRipple_Init,
+};
+*/
+
+#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_G_Ripple/EffectSsGRipple_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_G_Ripple/func_809A6AD8.s")
diff --git a/src/overlays/effects/ovl_Effect_Ss_G_Ripple/z_eff_ss_g_ripple.h b/src/overlays/effects/ovl_Effect_Ss_G_Ripple/z_eff_ss_g_ripple.h
new file mode 100644
index 000000000..f0231b087
--- /dev/null
+++ b/src/overlays/effects/ovl_Effect_Ss_G_Ripple/z_eff_ss_g_ripple.h
@@ -0,0 +1,13 @@
+#ifndef _Z_EFF_SS_G_RIPPLE_H_
+#define _Z_EFF_SS_G_RIPPLE_H_
+
+#include <ultra64.h>
+#include <global.h>
+
+typedef struct {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ Vec3f velocity;
+ /* 0x18 */ Vec3f accel;
+} EffectSsGRippleInitParams; // size = 0x
+
+#endif
diff --git a/src/overlays/effects/ovl_Effect_Ss_G_Spk/z_eff_ss_g_spk.c b/src/overlays/effects/ovl_Effect_Ss_G_Spk/z_eff_ss_g_spk.c
index 50c1df035..944540b5f 100644
--- a/src/overlays/effects/ovl_Effect_Ss_G_Spk/z_eff_ss_g_spk.c
+++ b/src/overlays/effects/ovl_Effect_Ss_G_Spk/z_eff_ss_g_spk.c
@@ -1,7 +1,39 @@
-#include <ultra64.h>
-#include <global.h>
+/*
+ * File: z_eff_ss_g_spk.c
+ * Overlay: ovl_Effect_Ss_G_Spk
+ * Description:
+ */
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_G_Spk/func_809A6F30.s")
+#include "z_eff_ss_g_spk.h"
+
+typedef enum {
+ /* 0x00 */ SS_G_SPK_0,
+ /* 0x01 */ SS_G_SPK_1,
+ /* 0x02 */ SS_G_SPK_2,
+ /* 0x03 */ SS_G_SPK_3,
+ /* 0x04 */ SS_G_SPK_4,
+ /* 0x05 */ SS_G_SPK_5,
+ /* 0x06 */ SS_G_SPK_6,
+ /* 0x07 */ SS_G_SPK_7,
+ /* 0x08 */ SS_G_SPK_8,
+ /* 0x09 */ SS_G_SPK_9,
+ /* 0x0A */ SS_G_SPK_A,
+ /* 0x0B */ SS_G_SPK_B,
+ /* 0x0C */ SS_G_SPK_C,
+} EffectSsG_SpkRegs;
+
+u32 EffectSsGSpk_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
+void EffectSsGSpk_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
+void EffectSsGSpk_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
+
+/*
+EffectSsInit Effect_Ss_G_Spk_InitVars = {
+ EFFECT_SS_G_SPK,
+ EffectSsGSpk_Init,
+};
+*/
+
+#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_G_Spk/EffectSsGSpk_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_G_Spk/func_809A70A0.s")
diff --git a/src/overlays/effects/ovl_Effect_Ss_G_Spk/z_eff_ss_g_spk.h b/src/overlays/effects/ovl_Effect_Ss_G_Spk/z_eff_ss_g_spk.h
new file mode 100644
index 000000000..394e68a75
--- /dev/null
+++ b/src/overlays/effects/ovl_Effect_Ss_G_Spk/z_eff_ss_g_spk.h
@@ -0,0 +1,13 @@
+#ifndef _Z_EFF_SS_G_SPK_H_
+#define _Z_EFF_SS_G_SPK_H_
+
+#include <ultra64.h>
+#include <global.h>
+
+typedef struct {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ Vec3f velocity;
+ /* 0x18 */ Vec3f accel;
+} EffectSsGSpkInitParams; // size = 0x
+
+#endif
diff --git a/src/overlays/effects/ovl_Effect_Ss_G_Splash/z_eff_ss_g_splash.c b/src/overlays/effects/ovl_Effect_Ss_G_Splash/z_eff_ss_g_splash.c
index 87496873a..f78b75128 100644
--- a/src/overlays/effects/ovl_Effect_Ss_G_Splash/z_eff_ss_g_splash.c
+++ b/src/overlays/effects/ovl_Effect_Ss_G_Splash/z_eff_ss_g_splash.c
@@ -1,7 +1,39 @@
-#include <ultra64.h>
-#include <global.h>
+/*
+ * File: z_eff_ss_g_splash.c
+ * Overlay: ovl_Effect_Ss_G_Splash
+ * Description:
+ */
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_G_Splash/func_809A7540.s")
+#include "z_eff_ss_g_splash.h"
+
+typedef enum {
+ /* 0x00 */ SS_G_SPLASH_0,
+ /* 0x01 */ SS_G_SPLASH_1,
+ /* 0x02 */ SS_G_SPLASH_2,
+ /* 0x03 */ SS_G_SPLASH_3,
+ /* 0x04 */ SS_G_SPLASH_4,
+ /* 0x05 */ SS_G_SPLASH_5,
+ /* 0x06 */ SS_G_SPLASH_6,
+ /* 0x07 */ SS_G_SPLASH_7,
+ /* 0x08 */ SS_G_SPLASH_8,
+ /* 0x09 */ SS_G_SPLASH_9,
+ /* 0x0A */ SS_G_SPLASH_A,
+ /* 0x0B */ SS_G_SPLASH_B,
+ /* 0x0C */ SS_G_SPLASH_C,
+} EffectSsG_SplashRegs;
+
+u32 EffectSsGSplash_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
+void EffectSsGSplash_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
+void EffectSsGSplash_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
+
+/*
+EffectSsInit Effect_Ss_G_Splash_InitVars = {
+ EFFECT_SS_G_SPLASH,
+ EffectSsGSplash_Init,
+};
+*/
+
+#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_G_Splash/EffectSsGSplash_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_G_Splash/func_809A7760.s")
diff --git a/src/overlays/effects/ovl_Effect_Ss_G_Splash/z_eff_ss_g_splash.h b/src/overlays/effects/ovl_Effect_Ss_G_Splash/z_eff_ss_g_splash.h
new file mode 100644
index 000000000..9116d22f0
--- /dev/null
+++ b/src/overlays/effects/ovl_Effect_Ss_G_Splash/z_eff_ss_g_splash.h
@@ -0,0 +1,13 @@
+#ifndef _Z_EFF_SS_G_SPLASH_H_
+#define _Z_EFF_SS_G_SPLASH_H_
+
+#include <ultra64.h>
+#include <global.h>
+
+typedef struct {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ Vec3f velocity;
+ /* 0x18 */ Vec3f accel;
+} EffectSsGSplashInitParams; // size = 0x
+
+#endif
diff --git a/src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.c b/src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.c
index 4dca04f29..d9b254f6a 100644
--- a/src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.c
+++ b/src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.c
@@ -1,9 +1,41 @@
-#include <ultra64.h>
-#include <global.h>
+/*
+ * File: z_eff_ss_hahen.c
+ * Overlay: ovl_Effect_Ss_Hahen
+ * Description:
+ */
+
+#include "z_eff_ss_hahen.h"
+
+typedef enum {
+ /* 0x00 */ SS_HAHEN_0,
+ /* 0x01 */ SS_HAHEN_1,
+ /* 0x02 */ SS_HAHEN_2,
+ /* 0x03 */ SS_HAHEN_3,
+ /* 0x04 */ SS_HAHEN_4,
+ /* 0x05 */ SS_HAHEN_5,
+ /* 0x06 */ SS_HAHEN_6,
+ /* 0x07 */ SS_HAHEN_7,
+ /* 0x08 */ SS_HAHEN_8,
+ /* 0x09 */ SS_HAHEN_9,
+ /* 0x0A */ SS_HAHEN_A,
+ /* 0x0B */ SS_HAHEN_B,
+ /* 0x0C */ SS_HAHEN_C,
+} EffectSsHahenRegs;
+
+u32 EffectSsHahen_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
+void EffectSsHahen_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
+void EffectSsHahen_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
+
+/*
+EffectSsInit Effect_Ss_Hahen_InitVars = {
+ EFFECT_SS_HAHEN,
+ EffectSsHahen_Init,
+};
+*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Hahen/func_809A79F0.s")
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Hahen/func_809A7A60.s")
+#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Hahen/EffectSsHahen_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Hahen/func_809A7BFC.s")
diff --git a/src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h b/src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h
new file mode 100644
index 000000000..6f79985f1
--- /dev/null
+++ b/src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h
@@ -0,0 +1,13 @@
+#ifndef _Z_EFF_SS_HAHEN_H_
+#define _Z_EFF_SS_HAHEN_H_
+
+#include <ultra64.h>
+#include <global.h>
+
+typedef struct {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ Vec3f velocity;
+ /* 0x18 */ Vec3f accel;
+} EffectSsHahenInitParams; // size = 0x
+
+#endif
diff --git a/src/overlays/effects/ovl_Effect_Ss_HitMark/z_eff_ss_hitmark.c b/src/overlays/effects/ovl_Effect_Ss_HitMark/z_eff_ss_hitmark.c
index 7574886ed..5086175d2 100644
--- a/src/overlays/effects/ovl_Effect_Ss_HitMark/z_eff_ss_hitmark.c
+++ b/src/overlays/effects/ovl_Effect_Ss_HitMark/z_eff_ss_hitmark.c
@@ -1,7 +1,39 @@
-#include <ultra64.h>
-#include <global.h>
+/*
+ * File: z_eff_ss_hitmark.c
+ * Overlay: ovl_Effect_Ss_HitMark
+ * Description:
+ */
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_HitMark/func_809A8150.s")
+#include "z_eff_ss_hitmark.h"
+
+typedef enum {
+ /* 0x00 */ SS_HITMARK_0,
+ /* 0x01 */ SS_HITMARK_1,
+ /* 0x02 */ SS_HITMARK_2,
+ /* 0x03 */ SS_HITMARK_3,
+ /* 0x04 */ SS_HITMARK_4,
+ /* 0x05 */ SS_HITMARK_5,
+ /* 0x06 */ SS_HITMARK_6,
+ /* 0x07 */ SS_HITMARK_7,
+ /* 0x08 */ SS_HITMARK_8,
+ /* 0x09 */ SS_HITMARK_9,
+ /* 0x0A */ SS_HITMARK_A,
+ /* 0x0B */ SS_HITMARK_B,
+ /* 0x0C */ SS_HITMARK_C,
+} EffectSsHitMarkRegs;
+
+u32 EffectSsHitMark_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
+void EffectSsHitMark_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
+void EffectSsHitMark_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
+
+/*
+EffectSsInit Effect_Ss_HitMark_InitVars = {
+ EFFECT_SS_HITMARK,
+ EffectSsHitMark_Init,
+};
+*/
+
+#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_HitMark/EffectSsHitMark_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_HitMark/func_809A824C.s")
diff --git a/src/overlays/effects/ovl_Effect_Ss_HitMark/z_eff_ss_hitmark.h b/src/overlays/effects/ovl_Effect_Ss_HitMark/z_eff_ss_hitmark.h
new file mode 100644
index 000000000..c7bd65b72
--- /dev/null
+++ b/src/overlays/effects/ovl_Effect_Ss_HitMark/z_eff_ss_hitmark.h
@@ -0,0 +1,13 @@
+#ifndef _Z_EFF_SS_HITMARK_H_
+#define _Z_EFF_SS_HITMARK_H_
+
+#include <ultra64.h>
+#include <global.h>
+
+typedef struct {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ Vec3f velocity;
+ /* 0x18 */ Vec3f accel;
+} EffectSsHitMarkInitParams; // size = 0x
+
+#endif
diff --git a/src/overlays/effects/ovl_Effect_Ss_Ice_Piece/z_eff_ss_ice_piece.c b/src/overlays/effects/ovl_Effect_Ss_Ice_Piece/z_eff_ss_ice_piece.c
index 91092b680..ed209cfff 100644
--- a/src/overlays/effects/ovl_Effect_Ss_Ice_Piece/z_eff_ss_ice_piece.c
+++ b/src/overlays/effects/ovl_Effect_Ss_Ice_Piece/z_eff_ss_ice_piece.c
@@ -1,7 +1,39 @@
-#include <ultra64.h>
-#include <global.h>
+/*
+ * File: z_eff_ss_ice_piece.c
+ * Overlay: ovl_Effect_Ss_Ice_Piece
+ * Description:
+ */
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Ice_Piece/func_809A8700.s")
+#include "z_eff_ss_ice_piece.h"
+
+typedef enum {
+ /* 0x00 */ SS_ICE_PIECE_0,
+ /* 0x01 */ SS_ICE_PIECE_1,
+ /* 0x02 */ SS_ICE_PIECE_2,
+ /* 0x03 */ SS_ICE_PIECE_3,
+ /* 0x04 */ SS_ICE_PIECE_4,
+ /* 0x05 */ SS_ICE_PIECE_5,
+ /* 0x06 */ SS_ICE_PIECE_6,
+ /* 0x07 */ SS_ICE_PIECE_7,
+ /* 0x08 */ SS_ICE_PIECE_8,
+ /* 0x09 */ SS_ICE_PIECE_9,
+ /* 0x0A */ SS_ICE_PIECE_A,
+ /* 0x0B */ SS_ICE_PIECE_B,
+ /* 0x0C */ SS_ICE_PIECE_C,
+} EffectSsIce_PieceRegs;
+
+u32 EffectSsIcePiece_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
+void EffectSsIcePiece_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
+void EffectSsIcePiece_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
+
+/*
+EffectSsInit Effect_Ss_Ice_Piece_InitVars = {
+ EFFECT_SS_ICE_PIECE,
+ EffectSsIcePiece_Init,
+};
+*/
+
+#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Ice_Piece/EffectSsIcePiece_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Ice_Piece/func_809A8850.s")
diff --git a/src/overlays/effects/ovl_Effect_Ss_Ice_Piece/z_eff_ss_ice_piece.h b/src/overlays/effects/ovl_Effect_Ss_Ice_Piece/z_eff_ss_ice_piece.h
new file mode 100644
index 000000000..698271607
--- /dev/null
+++ b/src/overlays/effects/ovl_Effect_Ss_Ice_Piece/z_eff_ss_ice_piece.h
@@ -0,0 +1,13 @@
+#ifndef _Z_EFF_SS_ICE_PIECE_H_
+#define _Z_EFF_SS_ICE_PIECE_H_
+
+#include <ultra64.h>
+#include <global.h>
+
+typedef struct {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ Vec3f velocity;
+ /* 0x18 */ Vec3f accel;
+} EffectSsIcePieceInitParams; // size = 0x
+
+#endif
diff --git a/src/overlays/effects/ovl_Effect_Ss_Ice_Smoke/z_eff_ss_ice_smoke.c b/src/overlays/effects/ovl_Effect_Ss_Ice_Smoke/z_eff_ss_ice_smoke.c
index ff7c85ba1..728940461 100644
--- a/src/overlays/effects/ovl_Effect_Ss_Ice_Smoke/z_eff_ss_ice_smoke.c
+++ b/src/overlays/effects/ovl_Effect_Ss_Ice_Smoke/z_eff_ss_ice_smoke.c
@@ -1,7 +1,39 @@
-#include <ultra64.h>
-#include <global.h>
+/*
+ * File: z_eff_ss_ice_smoke.c
+ * Overlay: ovl_Effect_Ss_Ice_Smoke
+ * Description:
+ */
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Ice_Smoke/func_809A8BF0.s")
+#include "z_eff_ss_ice_smoke.h"
+
+typedef enum {
+ /* 0x00 */ SS_ICE_SMOKE_0,
+ /* 0x01 */ SS_ICE_SMOKE_1,
+ /* 0x02 */ SS_ICE_SMOKE_2,
+ /* 0x03 */ SS_ICE_SMOKE_3,
+ /* 0x04 */ SS_ICE_SMOKE_4,
+ /* 0x05 */ SS_ICE_SMOKE_5,
+ /* 0x06 */ SS_ICE_SMOKE_6,
+ /* 0x07 */ SS_ICE_SMOKE_7,
+ /* 0x08 */ SS_ICE_SMOKE_8,
+ /* 0x09 */ SS_ICE_SMOKE_9,
+ /* 0x0A */ SS_ICE_SMOKE_A,
+ /* 0x0B */ SS_ICE_SMOKE_B,
+ /* 0x0C */ SS_ICE_SMOKE_C,
+} EffectSsIce_SmokeRegs;
+
+u32 EffectSsIceSmoke_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
+void EffectSsIceSmoke_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
+void EffectSsIceSmoke_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
+
+/*
+EffectSsInit Effect_Ss_Ice_Smoke_InitVars = {
+ EFFECT_SS_ICE_SMOKE,
+ EffectSsIceSmoke_Init,
+};
+*/
+
+#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Ice_Smoke/EffectSsIceSmoke_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Ice_Smoke/func_809A8D18.s")
diff --git a/src/overlays/effects/ovl_Effect_Ss_Ice_Smoke/z_eff_ss_ice_smoke.h b/src/overlays/effects/ovl_Effect_Ss_Ice_Smoke/z_eff_ss_ice_smoke.h
new file mode 100644
index 000000000..5b77bca96
--- /dev/null
+++ b/src/overlays/effects/ovl_Effect_Ss_Ice_Smoke/z_eff_ss_ice_smoke.h
@@ -0,0 +1,13 @@
+#ifndef _Z_EFF_SS_ICE_SMOKE_H_
+#define _Z_EFF_SS_ICE_SMOKE_H_
+
+#include <ultra64.h>
+#include <global.h>
+
+typedef struct {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ Vec3f velocity;
+ /* 0x18 */ Vec3f accel;
+} EffectSsIceSmokeInitParams; // size = 0x
+
+#endif
diff --git a/src/overlays/effects/ovl_Effect_Ss_K_Fire/z_eff_ss_k_fire.c b/src/overlays/effects/ovl_Effect_Ss_K_Fire/z_eff_ss_k_fire.c
index 6e6749a9b..eea951f08 100644
--- a/src/overlays/effects/ovl_Effect_Ss_K_Fire/z_eff_ss_k_fire.c
+++ b/src/overlays/effects/ovl_Effect_Ss_K_Fire/z_eff_ss_k_fire.c
@@ -1,7 +1,39 @@
-#include <ultra64.h>
-#include <global.h>
+/*
+ * File: z_eff_ss_k_fire.c
+ * Overlay: ovl_Effect_Ss_K_Fire
+ * Description:
+ */
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_K_Fire/func_809A91B0.s")
+#include "z_eff_ss_k_fire.h"
+
+typedef enum {
+ /* 0x00 */ SS_K_FIRE_0,
+ /* 0x01 */ SS_K_FIRE_1,
+ /* 0x02 */ SS_K_FIRE_2,
+ /* 0x03 */ SS_K_FIRE_3,
+ /* 0x04 */ SS_K_FIRE_4,
+ /* 0x05 */ SS_K_FIRE_5,
+ /* 0x06 */ SS_K_FIRE_6,
+ /* 0x07 */ SS_K_FIRE_7,
+ /* 0x08 */ SS_K_FIRE_8,
+ /* 0x09 */ SS_K_FIRE_9,
+ /* 0x0A */ SS_K_FIRE_A,
+ /* 0x0B */ SS_K_FIRE_B,
+ /* 0x0C */ SS_K_FIRE_C,
+} EffectSsK_FireRegs;
+
+u32 EffectSsKFire_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
+void EffectSsKFire_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
+void EffectSsKFire_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
+
+/*
+EffectSsInit Effect_Ss_K_Fire_InitVars = {
+ EFFECT_SS_K_FIRE,
+ EffectSsKFire_Init,
+};
+*/
+
+#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_K_Fire/EffectSsKFire_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_K_Fire/func_809A9280.s")
diff --git a/src/overlays/effects/ovl_Effect_Ss_K_Fire/z_eff_ss_k_fire.h b/src/overlays/effects/ovl_Effect_Ss_K_Fire/z_eff_ss_k_fire.h
new file mode 100644
index 000000000..b21a83473
--- /dev/null
+++ b/src/overlays/effects/ovl_Effect_Ss_K_Fire/z_eff_ss_k_fire.h
@@ -0,0 +1,13 @@
+#ifndef _Z_EFF_SS_K_FIRE_H_
+#define _Z_EFF_SS_K_FIRE_H_
+
+#include <ultra64.h>
+#include <global.h>
+
+typedef struct {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ Vec3f velocity;
+ /* 0x18 */ Vec3f accel;
+} EffectSsKFireInitParams; // size = 0x
+
+#endif
diff --git a/src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.c b/src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.c
index 1b1cd9d50..044c5e035 100644
--- a/src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.c
+++ b/src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.c
@@ -1,7 +1,39 @@
-#include <ultra64.h>
-#include <global.h>
-
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Kakera/func_809A9680.s")
+/*
+ * File: z_eff_ss_kakera.c
+ * Overlay: ovl_Effect_Ss_Kakera
+ * Description:
+ */
+
+#include "z_eff_ss_kakera.h"
+
+typedef enum {
+ /* 0x00 */ SS_KAKERA_0,
+ /* 0x01 */ SS_KAKERA_1,
+ /* 0x02 */ SS_KAKERA_2,
+ /* 0x03 */ SS_KAKERA_3,
+ /* 0x04 */ SS_KAKERA_4,
+ /* 0x05 */ SS_KAKERA_5,
+ /* 0x06 */ SS_KAKERA_6,
+ /* 0x07 */ SS_KAKERA_7,
+ /* 0x08 */ SS_KAKERA_8,
+ /* 0x09 */ SS_KAKERA_9,
+ /* 0x0A */ SS_KAKERA_A,
+ /* 0x0B */ SS_KAKERA_B,
+ /* 0x0C */ SS_KAKERA_C,
+} EffectSsKakeraRegs;
+
+u32 EffectSsKakera_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
+void EffectSsKakera_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
+void EffectSsKakera_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
+
+/*
+EffectSsInit Effect_Ss_Kakera_InitVars = {
+ EFFECT_SS_KAKERA,
+ EffectSsKakera_Init,
+};
+*/
+
+#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Kakera/EffectSsKakera_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Kakera/func_809A9818.s")
diff --git a/src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h b/src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h
new file mode 100644
index 000000000..304c06e0d
--- /dev/null
+++ b/src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h
@@ -0,0 +1,13 @@
+#ifndef _Z_EFF_SS_KAKERA_H_
+#define _Z_EFF_SS_KAKERA_H_
+
+#include <ultra64.h>
+#include <global.h>
+
+typedef struct {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ Vec3f velocity;
+ /* 0x18 */ Vec3f accel;
+} EffectSsKakeraInitParams; // size = 0x
+
+#endif
diff --git a/src/overlays/effects/ovl_Effect_Ss_KiraKira/z_eff_ss_kirakira.c b/src/overlays/effects/ovl_Effect_Ss_KiraKira/z_eff_ss_kirakira.c
index 553f11791..57c07f77b 100644
--- a/src/overlays/effects/ovl_Effect_Ss_KiraKira/z_eff_ss_kirakira.c
+++ b/src/overlays/effects/ovl_Effect_Ss_KiraKira/z_eff_ss_kirakira.c
@@ -1,7 +1,39 @@
-#include <ultra64.h>
-#include <global.h>
+/*
+ * File: z_eff_ss_kirakira.c
+ * Overlay: ovl_Effect_Ss_KiraKira
+ * Description:
+ */
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_KiraKira/func_809AA810.s")
+#include "z_eff_ss_kirakira.h"
+
+typedef enum {
+ /* 0x00 */ SS_KIRAKIRA_0,
+ /* 0x01 */ SS_KIRAKIRA_1,
+ /* 0x02 */ SS_KIRAKIRA_2,
+ /* 0x03 */ SS_KIRAKIRA_3,
+ /* 0x04 */ SS_KIRAKIRA_4,
+ /* 0x05 */ SS_KIRAKIRA_5,
+ /* 0x06 */ SS_KIRAKIRA_6,
+ /* 0x07 */ SS_KIRAKIRA_7,
+ /* 0x08 */ SS_KIRAKIRA_8,
+ /* 0x09 */ SS_KIRAKIRA_9,
+ /* 0x0A */ SS_KIRAKIRA_A,
+ /* 0x0B */ SS_KIRAKIRA_B,
+ /* 0x0C */ SS_KIRAKIRA_C,
+} EffectSsKiraKiraRegs;
+
+u32 EffectSsKiraKira_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
+void EffectSsKiraKira_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
+void EffectSsKiraKira_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
+
+/*
+EffectSsInit Effect_Ss_KiraKira_InitVars = {
+ EFFECT_SS_KIRAKIRA,
+ EffectSsKiraKira_Init,
+};
+*/
+
+#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_KiraKira/EffectSsKiraKira_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_KiraKira/func_809AA9AC.s")
diff --git a/src/overlays/effects/ovl_Effect_Ss_KiraKira/z_eff_ss_kirakira.h b/src/overlays/effects/ovl_Effect_Ss_KiraKira/z_eff_ss_kirakira.h
new file mode 100644
index 000000000..9ee728398
--- /dev/null
+++ b/src/overlays/effects/ovl_Effect_Ss_KiraKira/z_eff_ss_kirakira.h
@@ -0,0 +1,13 @@
+#ifndef _Z_EFF_SS_KIRAKIRA_H_
+#define _Z_EFF_SS_KIRAKIRA_H_
+
+#include <ultra64.h>
+#include <global.h>
+
+typedef struct {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ Vec3f velocity;
+ /* 0x18 */ Vec3f accel;
+} EffectSsKiraKiraInitParams; // size = 0x
+
+#endif
diff --git a/src/overlays/effects/ovl_Effect_Ss_Lightning/z_eff_ss_lightning.c b/src/overlays/effects/ovl_Effect_Ss_Lightning/z_eff_ss_lightning.c
index cf29b1521..6945ebac8 100644
--- a/src/overlays/effects/ovl_Effect_Ss_Lightning/z_eff_ss_lightning.c
+++ b/src/overlays/effects/ovl_Effect_Ss_Lightning/z_eff_ss_lightning.c
@@ -1,7 +1,39 @@
-#include <ultra64.h>
-#include <global.h>
+/*
+ * File: z_eff_ss_lightning.c
+ * Overlay: ovl_Effect_Ss_Lightning
+ * Description:
+ */
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Lightning/func_809AAEF0.s")
+#include "z_eff_ss_lightning.h"
+
+typedef enum {
+ /* 0x00 */ SS_LIGHTNING_0,
+ /* 0x01 */ SS_LIGHTNING_1,
+ /* 0x02 */ SS_LIGHTNING_2,
+ /* 0x03 */ SS_LIGHTNING_3,
+ /* 0x04 */ SS_LIGHTNING_4,
+ /* 0x05 */ SS_LIGHTNING_5,
+ /* 0x06 */ SS_LIGHTNING_6,
+ /* 0x07 */ SS_LIGHTNING_7,
+ /* 0x08 */ SS_LIGHTNING_8,
+ /* 0x09 */ SS_LIGHTNING_9,
+ /* 0x0A */ SS_LIGHTNING_A,
+ /* 0x0B */ SS_LIGHTNING_B,
+ /* 0x0C */ SS_LIGHTNING_C,
+} EffectSsLightningRegs;
+
+u32 EffectSsLightning_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
+void EffectSsLightning_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
+void EffectSsLightning_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
+
+/*
+EffectSsInit Effect_Ss_Lightning_InitVars = {
+ EFFECT_SS_LIGHTNING,
+ EffectSsLightning_Init,
+};
+*/
+
+#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Lightning/EffectSsLightning_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Lightning/func_809AAFD4.s")
diff --git a/src/overlays/effects/ovl_Effect_Ss_Lightning/z_eff_ss_lightning.h b/src/overlays/effects/ovl_Effect_Ss_Lightning/z_eff_ss_lightning.h
new file mode 100644
index 000000000..22b5e6c9e
--- /dev/null
+++ b/src/overlays/effects/ovl_Effect_Ss_Lightning/z_eff_ss_lightning.h
@@ -0,0 +1,13 @@
+#ifndef _Z_EFF_SS_LIGHTNING_H_
+#define _Z_EFF_SS_LIGHTNING_H_
+
+#include <ultra64.h>
+#include <global.h>
+
+typedef struct {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ Vec3f velocity;
+ /* 0x18 */ Vec3f accel;
+} EffectSsLightningInitParams; // size = 0x
+
+#endif
diff --git a/src/overlays/effects/ovl_Effect_Ss_Sibuki/z_eff_ss_sibuki.c b/src/overlays/effects/ovl_Effect_Ss_Sibuki/z_eff_ss_sibuki.c
index 5daf2d6cb..2dfe3b2b9 100644
--- a/src/overlays/effects/ovl_Effect_Ss_Sibuki/z_eff_ss_sibuki.c
+++ b/src/overlays/effects/ovl_Effect_Ss_Sibuki/z_eff_ss_sibuki.c
@@ -1,7 +1,39 @@
-#include <ultra64.h>
-#include <global.h>
+/*
+ * File: z_eff_ss_sibuki.c
+ * Overlay: ovl_Effect_Ss_Sibuki
+ * Description:
+ */
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Sibuki/func_809AB630.s")
+#include "z_eff_ss_sibuki.h"
+
+typedef enum {
+ /* 0x00 */ SS_SIBUKI_0,
+ /* 0x01 */ SS_SIBUKI_1,
+ /* 0x02 */ SS_SIBUKI_2,
+ /* 0x03 */ SS_SIBUKI_3,
+ /* 0x04 */ SS_SIBUKI_4,
+ /* 0x05 */ SS_SIBUKI_5,
+ /* 0x06 */ SS_SIBUKI_6,
+ /* 0x07 */ SS_SIBUKI_7,
+ /* 0x08 */ SS_SIBUKI_8,
+ /* 0x09 */ SS_SIBUKI_9,
+ /* 0x0A */ SS_SIBUKI_A,
+ /* 0x0B */ SS_SIBUKI_B,
+ /* 0x0C */ SS_SIBUKI_C,
+} EffectSsSibukiRegs;
+
+u32 EffectSsSibuki_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
+void EffectSsSibuki_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
+void EffectSsSibuki_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
+
+/*
+EffectSsInit Effect_Ss_Sibuki_InitVars = {
+ EFFECT_SS_SIBUKI,
+ EffectSsSibuki_Init,
+};
+*/
+
+#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Sibuki/EffectSsSibuki_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Sibuki/func_809AB7EC.s")
diff --git a/src/overlays/effects/ovl_Effect_Ss_Sibuki/z_eff_ss_sibuki.h b/src/overlays/effects/ovl_Effect_Ss_Sibuki/z_eff_ss_sibuki.h
new file mode 100644
index 000000000..4778c010c
--- /dev/null
+++ b/src/overlays/effects/ovl_Effect_Ss_Sibuki/z_eff_ss_sibuki.h
@@ -0,0 +1,13 @@
+#ifndef _Z_EFF_SS_SIBUKI_H_
+#define _Z_EFF_SS_SIBUKI_H_
+
+#include <ultra64.h>
+#include <global.h>
+
+typedef struct {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ Vec3f velocity;
+ /* 0x18 */ Vec3f accel;
+} EffectSsSibukiInitParams; // size = 0x
+
+#endif
diff --git a/src/overlays/effects/ovl_Effect_Ss_Sibuki2/z_eff_ss_sibuki2.c b/src/overlays/effects/ovl_Effect_Ss_Sibuki2/z_eff_ss_sibuki2.c
index 9a080975f..1ad49398a 100644
--- a/src/overlays/effects/ovl_Effect_Ss_Sibuki2/z_eff_ss_sibuki2.c
+++ b/src/overlays/effects/ovl_Effect_Ss_Sibuki2/z_eff_ss_sibuki2.c
@@ -1,7 +1,39 @@
-#include <ultra64.h>
-#include <global.h>
+/*
+ * File: z_eff_ss_sibuki2.c
+ * Overlay: ovl_Effect_Ss_Sibuki2
+ * Description:
+ */
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Sibuki2/func_809ABD60.s")
+#include "z_eff_ss_sibuki2.h"
+
+typedef enum {
+ /* 0x00 */ SS_SIBUKI2_0,
+ /* 0x01 */ SS_SIBUKI2_1,
+ /* 0x02 */ SS_SIBUKI2_2,
+ /* 0x03 */ SS_SIBUKI2_3,
+ /* 0x04 */ SS_SIBUKI2_4,
+ /* 0x05 */ SS_SIBUKI2_5,
+ /* 0x06 */ SS_SIBUKI2_6,
+ /* 0x07 */ SS_SIBUKI2_7,
+ /* 0x08 */ SS_SIBUKI2_8,
+ /* 0x09 */ SS_SIBUKI2_9,
+ /* 0x0A */ SS_SIBUKI2_A,
+ /* 0x0B */ SS_SIBUKI2_B,
+ /* 0x0C */ SS_SIBUKI2_C,
+} EffectSsSibuki2Regs;
+
+u32 EffectSsSibuki2_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
+void EffectSsSibuki2_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
+void EffectSsSibuki2_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
+
+/*
+EffectSsInit Effect_Ss_Sibuki2_InitVars = {
+ EFFECT_SS_SIBUKI2,
+ EffectSsSibuki2_Init,
+};
+*/
+
+#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Sibuki2/EffectSsSibuki2_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Sibuki2/func_809ABE0C.s")
diff --git a/src/overlays/effects/ovl_Effect_Ss_Sibuki2/z_eff_ss_sibuki2.h b/src/overlays/effects/ovl_Effect_Ss_Sibuki2/z_eff_ss_sibuki2.h
new file mode 100644
index 000000000..0df7d93f6
--- /dev/null
+++ b/src/overlays/effects/ovl_Effect_Ss_Sibuki2/z_eff_ss_sibuki2.h
@@ -0,0 +1,13 @@
+#ifndef _Z_EFF_SS_SIBUKI2_H_
+#define _Z_EFF_SS_SIBUKI2_H_
+
+#include <ultra64.h>
+#include <global.h>
+
+typedef struct {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ Vec3f velocity;
+ /* 0x18 */ Vec3f accel;
+} EffectSsSibuki2InitParams; // size = 0x
+
+#endif
diff --git a/src/overlays/effects/ovl_Effect_Ss_Stick/z_eff_ss_stick.c b/src/overlays/effects/ovl_Effect_Ss_Stick/z_eff_ss_stick.c
index 1fc5e5b32..17bcdd4a8 100644
--- a/src/overlays/effects/ovl_Effect_Ss_Stick/z_eff_ss_stick.c
+++ b/src/overlays/effects/ovl_Effect_Ss_Stick/z_eff_ss_stick.c
@@ -1,7 +1,39 @@
-#include <ultra64.h>
-#include <global.h>
+/*
+ * File: z_eff_ss_stick.c
+ * Overlay: ovl_Effect_Ss_Stick
+ * Description:
+ */
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Stick/func_809AC2D0.s")
+#include "z_eff_ss_stick.h"
+
+typedef enum {
+ /* 0x00 */ SS_STICK_0,
+ /* 0x01 */ SS_STICK_1,
+ /* 0x02 */ SS_STICK_2,
+ /* 0x03 */ SS_STICK_3,
+ /* 0x04 */ SS_STICK_4,
+ /* 0x05 */ SS_STICK_5,
+ /* 0x06 */ SS_STICK_6,
+ /* 0x07 */ SS_STICK_7,
+ /* 0x08 */ SS_STICK_8,
+ /* 0x09 */ SS_STICK_9,
+ /* 0x0A */ SS_STICK_A,
+ /* 0x0B */ SS_STICK_B,
+ /* 0x0C */ SS_STICK_C,
+} EffectSsStickRegs;
+
+u32 EffectSsStick_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
+void EffectSsStick_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
+void EffectSsStick_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
+
+/*
+EffectSsInit Effect_Ss_Stick_InitVars = {
+ EFFECT_SS_STICK,
+ EffectSsStick_Init,
+};
+*/
+
+#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Stick/EffectSsStick_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Stick/func_809AC42C.s")
diff --git a/src/overlays/effects/ovl_Effect_Ss_Stick/z_eff_ss_stick.h b/src/overlays/effects/ovl_Effect_Ss_Stick/z_eff_ss_stick.h
new file mode 100644
index 000000000..52a5726b8
--- /dev/null
+++ b/src/overlays/effects/ovl_Effect_Ss_Stick/z_eff_ss_stick.h
@@ -0,0 +1,13 @@
+#ifndef _Z_EFF_SS_STICK_H_
+#define _Z_EFF_SS_STICK_H_
+
+#include <ultra64.h>
+#include <global.h>
+
+typedef struct {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ Vec3f velocity;
+ /* 0x18 */ Vec3f accel;
+} EffectSsStickInitParams; // size = 0x
+
+#endif
diff --git a/src/overlays/effects/ovl_Effect_Ss_Stone1/z_eff_ss_stone1.c b/src/overlays/effects/ovl_Effect_Ss_Stone1/z_eff_ss_stone1.c
index 04790b427..fed1e60e4 100644
--- a/src/overlays/effects/ovl_Effect_Ss_Stone1/z_eff_ss_stone1.c
+++ b/src/overlays/effects/ovl_Effect_Ss_Stone1/z_eff_ss_stone1.c
@@ -1,7 +1,39 @@
-#include <ultra64.h>
-#include <global.h>
+/*
+ * File: z_eff_ss_stone1.c
+ * Overlay: ovl_Effect_Ss_Stone1
+ * Description:
+ */
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Stone1/func_809AC700.s")
+#include "z_eff_ss_stone1.h"
+
+typedef enum {
+ /* 0x00 */ SS_STONE1_0,
+ /* 0x01 */ SS_STONE1_1,
+ /* 0x02 */ SS_STONE1_2,
+ /* 0x03 */ SS_STONE1_3,
+ /* 0x04 */ SS_STONE1_4,
+ /* 0x05 */ SS_STONE1_5,
+ /* 0x06 */ SS_STONE1_6,
+ /* 0x07 */ SS_STONE1_7,
+ /* 0x08 */ SS_STONE1_8,
+ /* 0x09 */ SS_STONE1_9,
+ /* 0x0A */ SS_STONE1_A,
+ /* 0x0B */ SS_STONE1_B,
+ /* 0x0C */ SS_STONE1_C,
+} EffectSsStone1Regs;
+
+u32 EffectSsStone1_Init(GlobalContext* globalCtx, u32 index, EffectSs* this, void* initParamsx);
+void EffectSsStone1_Draw(GlobalContext* globalCtx, u32 index, EffectSs* this);
+void EffectSsStone1_Update(GlobalContext* globalCtx, u32 index, EffectSs* this);
+
+/*
+EffectSsInit Effect_Ss_Stone1_InitVars = {
+ EFFECT_SS_STONE1,
+ EffectSsStone1_Init,
+};
+*/
+
+#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Stone1/EffectSsStone1_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/effects/ovl_Effect_Ss_Stone1/func_809AC78C.s")
diff --git a/src/overlays/effects/ovl_Effect_Ss_Stone1/z_eff_ss_stone1.h b/src/overlays/effects/ovl_Effect_Ss_Stone1/z_eff_ss_stone1.h
new file mode 100644
index 000000000..e14927a93
--- /dev/null
+++ b/src/overlays/effects/ovl_Effect_Ss_Stone1/z_eff_ss_stone1.h
@@ -0,0 +1,13 @@
+#ifndef _Z_EFF_SS_STONE1_H_
+#define _Z_EFF_SS_STONE1_H_
+
+#include <ultra64.h>
+#include <global.h>
+
+typedef struct {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ Vec3f velocity;
+ /* 0x18 */ Vec3f accel;
+} EffectSsStone1InitParams; // size = 0x
+
+#endif