f206a4cca6
До сих пор «что изменилось» восстанавливалось только из git log, а он устроен по ПРИЧИНАМ правок, а не по тому, что заметит игрок. Заводим отдельный файл — как это уже сделано у mdview2 (changelog в репозитории ведётся на приложение, а корневой RELEASE_NOTES.md описывает тулчейн и живёт своей жизнью). Начат с v0.9.6: зацеп, зацикленный взмах клинка, кнопка в паласе. Более ранняя история остаётся в git log и досках — переписывать её задним числом смысла нет. ВЕРСИЯ И ДАТА БЕРУТСЯ ИЗ GIT, а не проставляются руками: заголовок записи = имя аннотированного тега, дата = дата его создания (`git for-each-ref refs/tags/<тег>`). Так запись не может разойтись с историей. Правило записано в CLAUDE.md рядом с дисциплиной досок, иначе файл заведётся один раз и умрёт. В запись идёт только то, что видно ИГРОКУ или меняет сборку/запуск, по схеме «симптом -> причина одной фразой -> хеш»; полный разбор остаётся в сообщении коммита и не дублируется. Файл в UTF-8, как остальные доки SprPoP. CP866 у mdview2 — вынужденная мера (его changelog читает сам MDView), здесь такого требования нет. Ссылка добавлена во входные точки docs/README.md. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018T2k4VZrSyERwk6H97Sfi1
74 lines
6.8 KiB
Markdown
74 lines
6.8 KiB
Markdown
# `SprPoP/docs` — индекс
|
||
|
||
Актуальность на 2026-08-26 (перенос из `applications/PoP/roomtest`).
|
||
Сюда взято только то, что ещё читают. Исполненные планы остались архивом
|
||
в `../../PoP/docs/`, закрытые задачи и баги — в `../../PoP/roomtest/`.
|
||
|
||
## Входные точки
|
||
|
||
| Документ | О чём |
|
||
|----------|-------|
|
||
| [`TASKS_OPEN.md`](TASKS_OPEN.md) | **Что берётся в работу сейчас** — начинать отсюда |
|
||
| [`BUGS_OPEN.md`](BUGS_OPEN.md) | Открытые баги и незакрытые оптимизации |
|
||
| [`../CHANGELOG.md`](../CHANGELOG.md) | **Что менялось по релизам** глазами игрока; версия и дата берутся из git-тега |
|
||
| [`impl_diff.md`](impl_diff.md) | **Осознанные расхождения с SDLPoP**: где сделано не дословно и почему. Новое расхождение — записью сюда, а не только комментарием в коде |
|
||
| [`keys.txt`](keys.txt) | **Целевая раскладка управления**, к которой подгоняем SprPoP |
|
||
| [`keys_plan.md`](keys_plan.md) | План перевода на неё: что совпадает, что переназначить, каких функций нет вовсе |
|
||
| [`../assets/orig/README.md`](../assets/orig/README.md) | **Откуда берутся исходные данные**: `make fetch` (SDLPoP + музыка), зачем нужен и почему необязателен `MSDOS/`, `SND_SRC` |
|
||
|
||
## Производительность
|
||
|
||
| Документ | О чём |
|
||
|----------|-------|
|
||
| [`perf_registry.md`](perf_registry.md) | **Реестр оптимизаций**: всё отложенное одним списком |
|
||
| [`perf_backlog.md`](perf_backlog.md) | Отложенная оптимизация отрисовки + **как мерить** (wait-state'ы, границы кадра) |
|
||
| [`perf_green_phase.md`](perf_green_phase.md) | ЗЕЛЁНАЯ фаза (слой фона): раскладка тактов, способы ускорения G1..G6, журнал правок |
|
||
| [`perf_cyan_phase.md`](perf_cyan_phase.md) | ЦИАН фаза (персонажи + передний слой): раскладка тактов, C1..C7, журнал правок |
|
||
| [`perf_l11_room15.md`](perf_l11_room15.md) | Сцена и замер: факел + чомпер + страж (ур.11 к.15) |
|
||
| [`perf_l13_room23.md`](perf_l13_room23.md) | Сцена и метод замера кадра: каскад плит (ур.13 к.23), зонды, канал `clog` |
|
||
| [`resident_budget.md`](resident_budget.md) | Бюджет резидента W1/W2: как мерить и как освобождать |
|
||
| [`layout_plan_v2.md`](layout_plan_v2.md) | Раскладка кода по окнам/банкам/страницам + замеры скорости отрисовки |
|
||
|
||
## Движок и содержание игры
|
||
|
||
| Документ | О чём |
|
||
|----------|-------|
|
||
| [`full_game_plan.md`](full_game_plan.md) | Полноценная игра: автомат состояний, title/intro, demo, таймер, cutscenes, ending, Hall of Fame |
|
||
| [`levels_plan.md`](levels_plan.md) | Уровни: загрузка, переходы, тайлсеты, читы |
|
||
| [`levels_12_15_plan.md`](levels_12_15_plan.md) | Уровни 12/13 (тень, Джафар, падающие плиты) + что такое 14/15 и 0 |
|
||
| [`midtable_analysis.md`](midtable_analysis.md) | Слои отрисовки: back/mid/fore и objtable в оригинале, чего стоит порт |
|
||
| [`room_model_plan.md`](room_model_plan.md) | `kid_room ≠ drawn_room` (straddle): сделан S1, остальное впереди |
|
||
| [`quicksave_plan.md`](quicksave_plan.md) | QuickSave/QuickLoad (реализовано): формат снимка `POPQ` v3 — справочник |
|
||
| [`menu_settings_plan.md`](menu_settings_plan.md) | Pause menu и Settings, `POP.CFG`, VANILLA и задел под ENHANCED |
|
||
| [`palette_plan.md`](palette_plan.md) | Карта всех 256 слотов палитры + механика fade |
|
||
| [`status_line_text.md`](status_line_text.md) | Строка HP как статус-строка: инвентаризация ВСЕХ текстов SDLPoP |
|
||
| [`sound_plan.md`](sound_plan.md) | Звук через CBL: разбор и архитектура |
|
||
| [`music_runtime_index_plan.md`](music_runtime_index_plan.md) | Будущее улучшение: runtime-индексы музыки и PCM-эффектов, смена аудионаборов без перелинковки EXE |
|
||
| [`shadow_render.md`](shadow_render.md) | Вид Тени (OR+XOR) — отложено: почему XOR несовместим с прозрачностью `#FF` |
|
||
| [`roomnav_skip.md`](roomnav_skip.md) | Комнаты для отладочного телепорта `+`/`−`: какие пропускать и почему |
|
||
| [`host_tests_plan.md`](host_tests_plan.md) | Модульные тесты движка под ucsim_z80: два шва, регрессии, дифф против SDLPoP |
|
||
|
||
## Справочники по оригиналу
|
||
|
||
| Документ | О чём |
|
||
|----------|-------|
|
||
| [`PORT_PLAN.md`](PORT_PLAN.md) | Общая карта фаз со статусами; §6 модель движения, §10 режим памяти |
|
||
| [`KID_PLAN.md`](KID_PLAN.md) | Модель персонажа: `char_type`, `actions_*`, устройство `play_seq` |
|
||
| [`gates_spikes_plan.md`](gates_spikes_plan.md) | Раскладка объектов по комнатам, декод `LINKLOC`/`LINKMAP`, ссылки на seg-код |
|
||
| [`PoP/POP-DAT-FormatSpecifications.pdf`](PoP/POP-DAT-FormatSpecifications.pdf) | **Каноническая спецификация форматов `.DAT`** (грепаемая копия — `.txt`) |
|
||
| [`PoP/MSDOS_RESOURCE_FORMAT.md`](PoP/MSDOS_RESOURCE_FORMAT.md) | Наш разбор ресурсов MS-DOS-версии |
|
||
| [`PoP/APPLEII_RESOURCE_FORMAT.md`](PoP/APPLEII_RESOURCE_FORMAT.md) | Наш разбор ресурсов Apple II |
|
||
|
||
## Заделы
|
||
|
||
| Документ | О чём |
|
||
|----------|-------|
|
||
| [`ideas_backlog.md`](ideas_backlog.md) | Осознанно отложенные гипотезы (мышь, PRNG) |
|
||
| [`prng_alternatives.md`](prng_alternatives.md) | Запасные генераторы, если упрёмся в бюджет кадра |
|
||
|
||
## Не переносилось
|
||
|
||
Исполнено целиком, лежит в `../../PoP/docs/`: `frame_pacing_plan.md`
|
||
(фиксированный логический кадр), `l9_invert_plan.md` (зелье переворота),
|
||
`shadow_atlas_plan.md` (запечка атласа Тени).
|