feat(runtime): project factory-2 selector 6 metadata
This commit is contained in:
7 files changed
+1856
-29
No files matched your search
@@ -536,6 +536,41 @@ MSH-часть проверки подтверждает начальный сн
|
||||
остаётся статическим выводом по RVA `AniMesh.dll+0xa460`, а последующие
|
||||
изменения в полном Control/animation tick-е не проверялись.
|
||||
|
||||
Устройство фабрики `2` через selector `6` читает `+0x174` только при текущем descriptor tag `2`,
|
||||
затем проверяет, что устройство создано фабрикой `2` и поле доступно. Значение
|
||||
должно быть конечным нормальным числом или нулём любого знака. Строки в
|
||||
`[27..35)` и `[35..43)` читаются до первого NUL: хвост игнорируется,
|
||||
ASCII-регистр не важен. После изменения пустая строка оставляет старые биты;
|
||||
пустая пара конструктора уже совпадает и не вызывает пересчёт. Проверка не
|
||||
использует список имён: нужен один корневой mesh `BULL` из `ObjectsRegistry`,
|
||||
без дочерних компонентов и записей timeline; все типизированные записи должны
|
||||
иметь tag `17`, а эффекты и таблица NDP — разбираться полностью. Число строк
|
||||
NDP произвольно, включая пустую таблицу.
|
||||
|
||||
Сканер возвращает коды выбранной начальной группы в исходном порядке. Допустимы
|
||||
`1/4/12`. `Some([])` означает, что по полному разбору данных команд нет: группа
|
||||
отсутствует, пуста или сырое беззнаковое значение индекса не меньше числа
|
||||
групп. `None` означает неподдержанный либо неполный разбор; повреждённые данные
|
||||
дают ошибку. Для выбранного opcode `4` нужны FXID-типы `2/3/4/5/7/8/9` и
|
||||
допустимые CPT-смещения внутри компонента; типы `1/6/10` остаются недоступными.
|
||||
Непредставленный ключ или число не превращаются в ноль. Если распознанный
|
||||
ресурс повреждён, новая миссия завершается ошибкой до публикации, сохраняя
|
||||
прежние мир и RNG.
|
||||
|
||||
Загрузка лицензированной AutoDemo и Rust-запрос selector `6` охватили 12
|
||||
устройств и семь пар с битовыми значениями:
|
||||
`bb_m_01=43f98000`, `bm_m_01=44228000`, `bl_l_01=436a0000`,
|
||||
`br_b_01=44c80000`, `bf_b_01=443b8000`, `bl_m_01=443b4000`,
|
||||
`bm_l_01=43340000`. Все семь значений совпали с замороженными арифметическими
|
||||
векторами. Пятнадцать изолированных вызовов selector `35` оригинальной DLL
|
||||
(включая семь однострочных BULL-таблиц) проверили арифметику при x87 control
|
||||
word `0x007f`, но не создавали полный native World. Таблица Control-устройств
|
||||
Rust по-прежнему строится при полной загрузке
|
||||
Unit DAT. CPU-проекция не воспроизводит временное создание объектов оригинала и
|
||||
его побочные эффекты FX, звука и RNG, размещение в World или следующий Control
|
||||
tick. Полное размещение объектов, игровой tick, Handler 43 и другие
|
||||
неподдержанные форматы остаются открытыми.
|
||||
|
||||
Для provider-строки Rust хранит amount `+0x08`, накопитель `+0x10`, обработанное
|
||||
количество `+0x0c`, долю `+0x14`, стадию `+0x18` и flags `+0x28` раздельно.
|
||||
Инициализатор `Control.dll+0xf940` кладёт результат selector `3` в текущее и
|
||||
|
||||
Reference in new issue
Block a user