mirror of
https://github.com/Xeeynamo/sotn-decomp.git
synced 2024-11-23 04:59:41 +00:00
f86e111fc5
More research on how cutscenes work. I normalized all the various C files as `cutscene.c`, marked all the isolated function as `static` and renamed the main entity as `{STAGE}_CutsceneExec` (e.g. `CEN_CutsceneExec`). I am using the `OVL_EXPORT` to automate the names. TO-DO: - [x] Rename entity as `{STAGE}_EntityCutscene` for consistency - [x] CEN - [x] DRE - [x] NO3 - [x] NZ0 - [x] ST0 - [x] MAR ~~SEL~~ The offset of the portrait data seems to be hardcoded. I have no idea how to resolve these offsets at compilation time. The entire cutscene script thing is very sketchy and horribly designed by the original developers. What a nightmare to integrate into our project. This is how a cutscene script gets decompiled: ``` LOAD_PORTRAIT(0x80188D8C, 0), SET_PORTRAIT(1, 0), SCRIPT_UNKNOWN_11(), PLAY_SOUND(0x37B), WAIT_FOR_SOUND(), SET_SPEED(4), 'T','h','a','t',' ','v','o','i','c','e','!',' ', SET_WAIT(16), SET_SPEED(3), 'A','l','u','c','a','r','d',',', LINE_BREAK(), SET_WAIT(16), SET_FLAG(2), 'i','t','\'','s',' ','y','o','u','!', SET_WAIT(48), NEXT_DIALOG(), ``` |
||
---|---|---|
.. | ||
asm-differ@f5fc9026f0 | ||
dups | ||
function_finder | ||
gfxsotn | ||
lints/sotn-lint | ||
m2c@4ee07ea6b0 | ||
maspsx@d2d24c407c | ||
mwccgap@41429ee969 | ||
saturn-splitter@8d549a8042 | ||
sotn_str | ||
sotn-assets | ||
sotn-debugmodule | ||
sotn-disk | ||
splat_ext | ||
split_jpt_yaml | ||
vab-ex | ||
analyze_calls.py | ||
bin2c.py | ||
decompile.py | ||
dirt_patcher.py | ||
display_texture.py | ||
gfxstage.py | ||
lint-license.py | ||
m2ctx.py | ||
make-config.py | ||
permuter_settings.toml | ||
png2bin.py | ||
png2s.py | ||
progress.py | ||
requirements-debian.txt | ||
requirements-python.txt | ||
richter_symbols.py | ||
spritesheet.py | ||
symbols_test.py | ||
symbols.py | ||
tools.mk |