chore: simplify project to engine docs and tests
Remove planning and acceptance scaffolding while retaining the native Vulkan mission preview, format readers, runtime algorithms, and ordinary Rust tests. Keep the book aligned with the runnable project and validate checked-in shaders without generated tool metadata.
This commit is contained in:
@@ -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, запускаемого
|
||||
без ручного анализа.
|
||||
|
||||
@@ -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 не
|
||||
|
||||
Reference in New Issue
Block a user