Доска: ARC-ATLASES закрыта, SND закрыта иначе (PCM вместо AY)

Обе задачи выполнены, но SND — не так, как планировалась: музыка пошла не
на AY, а тем же PCM через CBL. Исходные постановки свёрнуты в details,
сверху — что фактически сделано и какие грабли попались.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-26 12:04:37 +03:00
parent 4086dde1f1
commit 5d912f0f3f
+29 -2
View File
@@ -1188,7 +1188,15 @@ N навык M» — отдельная надобность, если пона
**Оговорка по памяти** — та же, что в TUNE-1: парсер холодный, в банк.
### <a id="snd"></a>SND. Звук — эффекты через CBL, музыка на AY
### <a id="snd"></a>SND. Звук — эффекты через CBL, музыка на AY — ЗАКРЫТА ИНАЧЕ 2026-08-26
> **Решение пересмотрено.** Музыка пошла НЕ на AY, а тем же PCM через CBL:
> записи DOS-версии укладываются в формат железа без единого преобразования
> в рантайме (`../docs/sound_plan.md` §4). Озвучены заставка, сцены между
> уровнями и игровые джинглы — 21 трек. Единственный неозвученный кусок —
> финал `won`, см. [MUS-WON](#mus-won).
<details><summary>исходная постановка (путь A на AY)</summary>
Полный разбор с замерами — [`../docs/sound_plan.md`](../docs/sound_plan.md).
Коротко, почему это оказалось дешевле, чем выглядело:
@@ -1206,6 +1214,8 @@ N навык M» — отдельная надобность, если пона
Фазы З1..З5 и список «проверить артефактом до кодинга» — в доке.
</details>
### <a id="mob-spr-emm"></a>MOB-SPR-EMM. Композит падающего куска — в EMM (1284 Б W2)
`mob_spr` (`pop_room.c`) — самый крупный буфер в W2: 4 + 64*20 байт под
@@ -1286,7 +1296,22 @@ N навык M» — отдельная надобность, если пона
**Заодно.** Тот же механизм снимает ограничение `POP_MUS_PAGES` со всех
треков: сейчас каждый должен помещаться в память целиком.
### <a id="arc-atlases"></a>ARC-ATLASES. Атласы — в архивы PBA1, как звук и музыка
### <a id="arc-atlases"></a>ARC-ATLASES. Атласы — в архивы PBA1 — ЗАКРЫТА 2026-08-26
> **Сделано.** Восемь архивов: kid (58 атласов), pv (78), shadow (32), bg
> (25), title (20), guard (10), vizier (5), skel (4). На образе было 232
> файла, стало 8 архивов плюс шесть палитр, `kid.ani` и таблицы уровней.
> Индексы печатает упаковщик (`ARC_<ГРУППА>_<ФАЙЛ>`), серии код проверяет
> статически. `atlas_load` разделён: `atlas_attach` принимает уже
> прочитанную страницу, поэтому чтение из архива не дублирует проверку
> магии. Грабля, стоившая отладки: имя архива обязано лежать в том же
> банке, что и код, который его читает, — строковый литерал из чужого банка
> после переключения W3 показывает на другие данные; поэтому наружу отдаётся
> НОМЕР архива (`pop_arc_open_id`).
>
> Остаток на будущее — палитры, см. [PAL-ARC](#pal-arc).
<details><summary>исходная постановка</summary>
**Что сделано.** Формат PBA1 и читатель готовы и работают на звуке:
`toolchain/pop_pack_arc.py` собирает архив (заголовок 512 Б, записи по 4
@@ -1308,6 +1333,8 @@ N навык M» — отдельная надобность, если пона
меряется по MAME), число файлов на образе, и что каждая сцена по-прежнему
собирается при неполном диске (пути ошибок в `atlas_load`).
</details>
### <a id="mem-next"></a>MEM. Следующий шаг разгрузки W1/W2
`pop_ctrl.c` уехал в банк 5 ([MEM-BANK5](TASKS_CLOSED.md#mem-bank5), куча