aboutsummaryrefslogtreecommitdiff
path: root/docs/appendices
diff options
context:
space:
mode:
Diffstat (limited to 'docs/appendices')
-rw-r--r--docs/appendices/knowledge-boundaries.md39
-rw-r--r--docs/appendices/script-vm.md20
2 files changed, 6 insertions, 53 deletions
diff --git a/docs/appendices/knowledge-boundaries.md b/docs/appendices/knowledge-boundaries.md
index 6f9553e..661069a 100644
--- a/docs/appendices/knowledge-boundaries.md
+++ b/docs/appendices/knowledge-boundaries.md
@@ -98,42 +98,3 @@ typed schema свойств по consumers, а не по одному имени
Такие ветки реализуются по бинарному коду и synthetic tests, а статус
corpus-verified получают только после реального файла или runtime trace.
-
-## Dynamic-stage requirements
-
-Оставшиеся вопросы нельзя закрыть только статическими архивами. Нужна
-изолированная 32-bit Windows-среда, неизменённые игровые каталоги, manifest
-SHA-256, debugger, API/vtable hooks, controlled clocks/input и автоматический
-launcher, который восстанавливает snapshot, запускает один test case, собирает
-логи и завершает процесс без ручного вмешательства.
-
-Для каждого capture сохраняются build profile, module hashes, mission/resource
-key, configuration, device profile, initial state, input/time script и версии
-инструментов.
-
-## Local evidence requests
-
-Поддерживаемая desktop-платформа — только Windows/Vulkan. Локальный smoke
-`fparkan-vulkan-smoke` уже подтверждает настоящий Win32 surface/swapchain,
-300 кадров, controlled resize и отсутствие validation warnings/errors.
-Это закрывает фундамент Stage 0, но не доказывает визуальный паритет игры.
-
-Следующие доказательства всё ещё нужны именно для Iron3D-compatible рендера:
-
-- capability-gated capture из оригинального GOG процесса с camera/matrix,
- draw/state и frame-boundary provenance;
-- фиксированные Windows Vulkan captures статической модели, lightmapped модели
- и terrain после совпадения backend-neutral command capture;
-- затем controlled captures анимации, FX, прозрачности, теней и атмосферы.
-
-Linux/macOS, GLES2, RG40XX и удалённые portability runners не являются
-acceptance-гейтами этого проекта. Они не должны появляться в списке блокеров
-или подменять Windows evidence.
-
-## Closure criteria
-
-Вопрос считается закрытым только при наличии build fingerprint, raw trace,
-parser trace-а, минимального воспроизводимого input/resource/save/message,
-формального контракта или явно ограниченной гипотезы, differential test для
-изменённых DLL, обновления тематической главы и regression case, запускаемого
-без ручного анализа.
diff --git a/docs/appendices/script-vm.md b/docs/appendices/script-vm.md
index afc63e5..1888f35 100644
--- a/docs/appendices/script-vm.md
+++ b/docs/appendices/script-vm.md
@@ -52,18 +52,11 @@ number, size, operands, control flow, effects, errors и минимальный
GOG `ai.dll` доказывает этот framing двумя consumer-ами: loader по
`0x10001000` открывает `<bundle>.scr`, `varset.var`, `<bundle>.fml`, затем
собирает ровно 73 pointers handlers; `0x10011b20` читает описанную count-driven
-структуру. Команда
+структуру. В GOG `c1m2p.scr` reader находит 73 handler slots,
+9 events, 17 nested records и 20 references, заканчивая на EOF.
+Это подтверждает разбор пакета, но не смысл всех opcodes.
-```powershell
-cargo run -p fparkan-cli -- script inspect `
- 'C:\GOG Games\Parkan - Iron Strategy\MISSIONS\SCRIPTS\c1m2p.scr' --format json
-```
-
-на исходном пакете возвращает `opcode_handler_count=73`, 9 events, 17 nested
-records, 20 references и 0 trailing bytes. Это corpus evidence для reader-а,
-но не разрешение на исполнение неизвестных 73 opcodes.
-
-Теперь установлен selector: loader `0x10001000` создаёт 73 pointers в
+Selector устроен следующим образом: loader `0x10001000` создаёт 73 pointers в
фиксированном порядке, а `0x10011e70` копирует их без перестановки в runtime
array. Во всех 58 GOG `.scr` первый header word каждого nested record равен
`0..72` либо `0xffff_ffff`: соответственно 2095 handler selectors и 3992
@@ -157,9 +150,8 @@ slot2 одновременно в `+0x24/+0x28`, slot3 в `+0x2c` и slot6 в `+
На границе mission runtime выбранный TMA clan `first_resource` теперь
материализуется как отдельный `MissionScriptBundle`: loader нормализует
`<base>.scr`, декодирует его тем же bounded reader-ом и публикует immutable
-package вместе с clan provenance. Headless report выводит число таких packages
-и их named events. Это именно wiring входных данных, не VM execution: Init и
-остальные events пока не dispatch-ятся, а ошибка чтения сохраняет
+package вместе с clan provenance. Это именно wiring входных данных, не VM
+execution: Init и остальные events пока не dispatch-ятся, а ошибка чтения сохраняет
transactional rollback mission loader-а.
TMA properties остаются four raw `u32` words плюс имя, пока consumer/schema не