diff options
| author | Valentin Popov <valentin@popov.link> | 2026-10-29 18:43:09 +0300 |
|---|---|---|
| committer | Valentin Popov <valentin@popov.link> | 2026-10-29 18:43:09 +0300 |
| commit | 1d20509b052c0b3e2db2a8bd86756f007041ab21 (patch) | |
| tree | 109f42cb4f8fef5aeeba52969ec847fdab82dc59 /docs/appendices/knowledge-boundaries.md | |
| parent | d3a0f8c7ffafc9ae2d8f9efe5d7a730c1fa0173d (diff) | |
| download | fparkan-1d20509b052c0b3e2db2a8bd86756f007041ab21.tar.xz fparkan-1d20509b052c0b3e2db2a8bd86756f007041ab21.zip | |
feat(runtime): support class-9 and default Control budgets
Diffstat (limited to 'docs/appendices/knowledge-boundaries.md')
| -rw-r--r-- | docs/appendices/knowledge-boundaries.md | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/docs/appendices/knowledge-boundaries.md b/docs/appendices/knowledge-boundaries.md index dcc14fe..626469f 100644 --- a/docs/appendices/knowledge-boundaries.md +++ b/docs/appendices/knowledge-boundaries.md @@ -360,13 +360,16 @@ API `distribute_loaded_mission_control_provider_amount` переносит Три API работают только с CPU-проекцией и не подключены к GPU/window path или игровому Control clock. Отдельный -`advance_loaded_mission_control_budget` переносит `0x2d340` для factory -callbacks `15/19` и current descriptor tags `15/19` (категории `0/1`); ставки сохраняются -в текущих полях `+0x5dc/+0x5e0`. Он выполняется транзакционно, а неизвестный -callback, provider или диапазон числа возвращает ошибку без частичного +`advance_loaded_mission_control_budget` переносит `0x2d340` для фабричных +callbacks `9`, `15`, `19` и общей default-пары; category lookup использует +текущий descriptor tag из подтверждённого префикса `0..=34`. Ставки сохраняются +в `+0x5dc/+0x5e0`. Шаг выполняется транзакционно, а неподдержанный +специализированный callback, provider или диапазон числа возвращает ошибку без частичного изменения. Тест с нулевым знаменателем генератора подтверждает откат после уже выполненного изменения потребителем. Пустая таблица всё равно записывает в оба поля отрицательный ноль; -неактивный callback не требует provider lookup. Gate `+0x618` изначально +неактивный callback не требует provider lookup. Class-9 constructor начинает +шесть значений `+0x98..+0xac` с `1.0` и шесть дельт `+0xb0..+0xc4` с нуля; +`INTO` сохраняет эти runtime-массивы. Gate `+0x618` изначально выключен; событие `7` задаёт его по правилу `gate = (arg == 2)` и вызывает `0x2dc20`, только если gate изменился. События Control в Rust пока не исполняются, поэтому ресурсный шаг вызывается явно и не подключён к часам. @@ -418,13 +421,16 @@ rate, изменение provider и собственного множителя подтверждают текущие ставки `+0x5dc/+0x5e0`, включая значения `0.2`/`0.4` у потребителя tag 15, пустой результат `-0.0` и невырожденную пару исходных устройств tag 19/tag 15 при `dt = 0.375`; Rust-тест повторяет поля этой пары -на синтетической таблице. Реализация принимает только описанные factory и -category tags; остальные callbacks и состояния остаются явными ошибками. +на синтетической таблице. Rust переносит class-9 rate/update и шестизначную +adjustment `0x25a90`, общую default callback-пару `0x21860/0x21890`, а также +category map только для current descriptor tags `0..=34`. Специализированные +factory callbacks вне этого набора остаются явными ошибками. Лицензированный `min_l_n1.dat` содержит исходные factory/current tags `[19, 19, 9, 15, 12, 12, 13, 13, 26, 25, 21]`. Публичный API оставляет всю -таблицу без изменений при не конечном интервале и при первом неподдержанном -current tag `9`; полный бюджетный проход для этой реальной таблицы поэтому не -проверен. Успешные бюджетные native-векторы используют синтетические +таблицу без изменений при не конечном интервале. Для конечного интервала +предварительная проверка распознаёт категории, но находит неподдержанный +factory tag `26` и отклоняет вызов до вычисления ставок и обновлений; полный +бюджетный проход для этой реальной таблицы поэтому не проверен. Успешные бюджетные native-векторы используют синтетические NDP/Node38-строки и подтверждают локальные переходы и порядок вызовов, а не полный Control tick на миссии. Прямые oracle-вызовы `0x11220` для одиночной строки используют `updateEffects = false`, что исключает ветвь Control FX и |
