diff options
| author | Valentin Popov <valentin@popov.link> | 2026-10-11 20:57:01 +0300 |
|---|---|---|
| committer | Valentin Popov <valentin@popov.link> | 2026-10-11 20:57:01 +0300 |
| commit | 1af4007433c9c140426ab251a78355691f0e25b3 (patch) | |
| tree | c26f05714a572943704a011522d74b30591ae5e0 /docs/tomes | |
| parent | c90ec80dc0cc90e76b78f84d98d1ac9c5f02c4eb (diff) | |
| download | fparkan-1af4007433c9c140426ab251a78355691f0e25b3.tar.xz fparkan-1af4007433c9c140426ab251a78355691f0e25b3.zip | |
Fix FXID resource reference offsets
Diffstat (limited to 'docs/tomes')
| -rw-r--r-- | docs/tomes/05-render.md | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/docs/tomes/05-render.md b/docs/tomes/05-render.md index b104f7a..01038b7 100644 --- a/docs/tomes/05-render.md +++ b/docs/tomes/05-render.md @@ -735,10 +735,27 @@ struct FxResourceRef64 { }; ``` -Имена сравниваются case-insensitive по ASCII, а tail после первого nul byte -сохраняется. Resolve выполняется при создании command object или лениво при -первом запуске, но ошибка должна включать имя эффекта, номер команды, archive -и resource name. +Offsets относятся к body команды, сразу после `command_word`. Native loaders +получают pointer на всю запись, поэтому record offset на 4 байта больше: + +| Opcode | Body offset | Record offset | +| --- | ---: | ---: | +| 2 | `0x50` | `0x54` | +| 3 | `0x84` | `0x88` | +| 4 | `0x84` | `0x88` | +| 5 | `0x2C` | `0x30` | +| 7 | `0x8C` | `0x90` | +| 8 | `0xB4` | `0xB8` | +| 9 | `0x84` | `0x88` | +| 10 | `0x8C` | `0x90` | + +Parser сохраняет все 64 байта пары, включая suffix после первого nul byte и +пустые поля. Декодированные имена заканчиваются на первом nul byte. +Извлечение dependency не подтверждает визуальную parity команд. + +Имена сравниваются case-insensitive по ASCII. Resolve выполняется при создании +command object или лениво при первом запуске, но ошибка должна включать имя +эффекта, номер команды, archive и resource name. Базовый normalized age: |
