sotn-decomp/tools
Luciano Ciccariello f86e111fc5
Extract cutscene scripts, portraits and normalize code (#1686)
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(),
```
2024-09-28 19:56:35 -07:00
..
asm-differ@f5fc9026f0 Add mwccgap (#1131) 2024-05-18 11:41:00 +01:00
dups Turn on disassemble_all for most yamls (#1689) 2024-09-28 09:29:16 -07:00
function_finder Revert "Add duplicate match info to function report" (#1688) 2024-09-27 22:12:34 -07:00
gfxsotn CEN cutscene parser (#1680) 2024-09-27 23:13:29 +01:00
lints/sotn-lint sotn-lint support for drawFlags, and flags (#1593) 2024-09-10 21:55:37 +01:00
m2c@4ee07ea6b0 Update m2c 2024-05-19 12:55:28 +01:00
maspsx@d2d24c407c Add bsdmainutils to requirements (#1667) 2024-09-24 16:54:32 -07:00
mwccgap@41429ee969 Update mwccgap (static functions) (#1311) 2024-06-12 09:35:35 -07:00
saturn-splitter@8d549a8042 Split saturn libs, add function (#385) 2023-07-21 22:39:37 +01:00
sotn_str Python virtualenv Support (#1620) 2024-09-17 23:19:20 -07:00
sotn-assets Extract cutscene scripts, portraits and normalize code (#1686) 2024-09-28 19:56:35 -07:00
sotn-debugmodule Change debug button to L2 (#1390) 2024-07-08 08:17:53 +01:00
sotn-disk CEN cutscene parser (#1680) 2024-09-27 23:13:29 +01:00
splat_ext Python virtualenv Support (#1620) 2024-09-17 23:19:20 -07:00
split_jpt_yaml Format code 2023-07-25 17:38:30 +00:00
vab-ex Sound effect extraction WIP (#398) 2023-07-31 12:12:07 -07:00
analyze_calls.py tt_001 duplicate function decomp (#1670) 2024-09-25 00:39:35 -07:00
bin2c.py Python virtualenv Support (#1620) 2024-09-17 23:19:20 -07:00
decompile.py Python virtualenv Support (#1620) 2024-09-17 23:19:20 -07:00
dirt_patcher.py Python virtualenv Support (#1620) 2024-09-17 23:19:20 -07:00
display_texture.py Simplify CLUT fetching system for texture viewer (#1575) 2024-08-25 18:49:28 -04:00
gfxstage.py Python virtualenv Support (#1620) 2024-09-17 23:19:20 -07:00
lint-license.py Add AGPL license (#1565) 2024-09-06 16:14:55 -04:00
m2ctx.py Format code 2023-09-19 22:25:08 +00:00
make-config.py Turn on disassemble_all for most yamls (#1689) 2024-09-28 09:29:16 -07:00
permuter_settings.toml mostly renamings, one func (#33) 2023-01-02 08:57:53 +00:00
png2bin.py Python virtualenv Support (#1620) 2024-09-17 23:19:20 -07:00
png2s.py Python virtualenv Support (#1620) 2024-09-17 23:19:20 -07:00
progress.py #1635: RBO3 overlay (#1671) 2024-09-25 10:02:18 -07:00
requirements-debian.txt Add bsdmainutils to requirements (#1667) 2024-09-24 16:54:32 -07:00
requirements-python.txt Downgrade splat 0.24.7 to 0.24.6 2024-07-29 00:01:16 +01:00
richter_symbols.py Format code 2023-07-25 17:38:30 +00:00
spritesheet.py Python virtualenv Support (#1620) 2024-09-17 23:19:20 -07:00
symbols_test.py Extract and document all functions from main.exe (#736) 2023-11-06 14:53:27 -08:00
symbols.py make-config can now cross-reference symbols across versions (#1677) 2024-09-25 19:45:56 +01:00
tools.mk Match Functions with Same Name in dups (#1449) 2024-07-28 11:48:41 -04:00