From 1af4007433c9c140426ab251a78355691f0e25b3 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Sun, 11 Oct 2026 21:57:01 +0400 Subject: Fix FXID resource reference offsets --- docs/tomes/05-render.md | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) (limited to 'docs') 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: -- cgit v1.2.3