Skip to content

Decomp effect 028 - #83

Merged
roengstrom merged 2 commits into
mainfrom
decomp-effect_028
Sep 8, 2026
Merged

Decomp effect 028#83
roengstrom merged 2 commits into
mainfrom
decomp-effect_028

Conversation

@roengstrom

Copy link
Copy Markdown
Owner

Decomp all functions in the Curaga effect

Curaga's overlay, all 126 functions, with its own header for the storage
and record types the unit publishes.

Most of the engine came across from the two overlays already decompiled:
the eight mesh emitters and the entry point are near-twins of effect_025's
and effect_001's, and func_801A5D4C/func_801A5720 are this overlay's private
copies of bc_object15's sprite packet setup and emitter. The rest is the
Curaga script itself -- the draw list, the strand and trail geometry, the
node spawner and the pose walker.

The types the overlay works in are now named. A script's entity is an
EffectEntity header plus a private tail, so the allocator hands back plain
storage and each script declares its own record; EffectDrawScript and
EffectTintScript are each exactly the size their func_801A0B5C call asks
for. A pose step's 0xC8..0x144 is thirty-two per-frame tables stored as
offsets, which func_801A8CE4 relocates once per effect.

Along the way, three fields that shared code with battle were mistyped:
BattleGfx's 0x14 is a small ordering table for screen overlays, not a glyph
set, and BattleEffectSlot carries an SVECTOR at 0x1C whose Y is the origin
a model's bounds are summed with. Correcting them touches effect_001 and
effect_025, which read the same fields.

gte_ldfcb joins inline_c.h: the far-colour load from three 8-bit
components, scaled into the GTE's 1/16 units, which gte_ldfc does not cover.
@roengstrom roengstrom self-assigned this Sep 8, 2026
@decomp-dev

decomp-dev Bot commented Sep 8, 2026

Copy link
Copy Markdown

Report for SLUS_008.92 (f29ce8d - b4274a3)

Total code: 1253220 bytes (+40700 bytes)
Total functions: 4799 (+126)
📈 Matched code: 49.31% (+1.70%, +40700 bytes)
Total data: 26700 bytes (+164 bytes)
📈 Matched data: 57.86% (+0.26%, +164 bytes)

✅ 129 new matches
Unit Item Bytes Before After
ovl/effect_028/effect_028 func_801A631C +2716 0.00% 100.00%
ovl/effect_028/effect_028 func_801A75F8 +2672 0.00% 100.00%
ovl/effect_028/effect_028 func_801A4ADC +2368 0.00% 100.00%
ovl/effect_028/effect_028 func_801A41E0 +2056 0.00% 100.00%
ovl/effect_028/effect_028 func_801A5720 +1580 0.00% 100.00%
ovl/effect_028/effect_028 func_801A3894 +1096 0.00% 100.00%
ovl/effect_028/effect_028 func_801A2A64 +996 0.00% 100.00%
ovl/effect_028/effect_028 func_801A34D8 +956 0.00% 100.00%
ovl/effect_028/effect_028 func_801A26DC +904 0.00% 100.00%
ovl/effect_028/effect_028 func_801A3150 +904 0.00% 100.00%
ovl/effect_028/effect_028 func_801A23B8 +804 0.00% 100.00%
ovl/effect_028/effect_028 func_801A2E48 +776 0.00% 100.00%
ovl/effect_028/effect_028 func_801A16A4 +732 0.00% 100.00%
ovl/effect_028/effect_028 func_801A20EC +716 0.00% 100.00%
ovl/effect_028/effect_028 func_801A8A1C +712 0.00% 100.00%
ovl/effect_028/effect_028 func_801A9050 +680 0.00% 100.00%
ovl/effect_028/effect_028 func_801A8CE4 +676 0.00% 100.00%
ovl/effect_028/effect_028 func_801A6F58 +648 0.00% 100.00%
ovl/effect_028/effect_028 func_801A5D4C +616 0.00% 100.00%
ovl/effect_028/effect_028 func_801A1078 +588 0.00% 100.00%
ovl/effect_028/effect_028 func_801A3CDC +580 0.00% 100.00%
ovl/effect_028/effect_028 func_801A8184 +564 0.00% 100.00%
ovl/effect_028/effect_028 func_801A73E8 +528 0.00% 100.00%
ovl/effect_028/effect_028 func_801A0000 +520 0.00% 100.00%
ovl/effect_028/effect_028 func_801A3F20 +520 0.00% 100.00%
ovl/effect_028/effect_028 func_801A71E0 +520 0.00% 100.00%
ovl/effect_028/effect_028 func_801A9CF4 +520 0.00% 100.00%
ovl/effect_028/effect_028 func_801A1F58 +404 0.00% 100.00%
ovl/effect_028/effect_028 func_801A065C +400 0.00% 100.00%
ovl/effect_028/effect_028 func_801A07EC +396 0.00% 100.00%

...and 99 more new matches

@roengstrom
roengstrom merged commit 945944a into main Sep 8, 2026
1 check passed
@roengstrom
roengstrom deleted the decomp-effect_028 branch September 8, 2026 17:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant