Доска: ARC-ATLASES закрыта, SND закрыта иначе (PCM вместо AY)
Обе задачи выполнены, но SND — не так, как планировалась: музыка пошла не на AY, а тем же PCM через CBL. Исходные постановки свёрнуты в details, сверху — что фактически сделано и какие грабли попались. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1188,7 +1188,15 @@ N навык M» — отдельная надобность, если пона
|
|||||||
|
|
||||||
**Оговорка по памяти** — та же, что в TUNE-1: парсер холодный, в банк.
|
**Оговорка по памяти** — та же, что в 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).
|
Полный разбор с замерами — [`../docs/sound_plan.md`](../docs/sound_plan.md).
|
||||||
Коротко, почему это оказалось дешевле, чем выглядело:
|
Коротко, почему это оказалось дешевле, чем выглядело:
|
||||||
@@ -1206,6 +1214,8 @@ N навык M» — отдельная надобность, если пона
|
|||||||
|
|
||||||
Фазы З1..З5 и список «проверить артефактом до кодинга» — в доке.
|
Фазы З1..З5 и список «проверить артефактом до кодинга» — в доке.
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
### <a id="mob-spr-emm"></a>MOB-SPR-EMM. Композит падающего куска — в EMM (1284 Б W2)
|
### <a id="mob-spr-emm"></a>MOB-SPR-EMM. Композит падающего куска — в EMM (1284 Б W2)
|
||||||
|
|
||||||
`mob_spr` (`pop_room.c`) — самый крупный буфер в W2: 4 + 64*20 байт под
|
`mob_spr` (`pop_room.c`) — самый крупный буфер в W2: 4 + 64*20 байт под
|
||||||
@@ -1286,7 +1296,22 @@ N навык M» — отдельная надобность, если пона
|
|||||||
**Заодно.** Тот же механизм снимает ограничение `POP_MUS_PAGES` со всех
|
**Заодно.** Тот же механизм снимает ограничение `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 и читатель готовы и работают на звуке:
|
**Что сделано.** Формат PBA1 и читатель готовы и работают на звуке:
|
||||||
`toolchain/pop_pack_arc.py` собирает архив (заголовок 512 Б, записи по 4
|
`toolchain/pop_pack_arc.py` собирает архив (заголовок 512 Б, записи по 4
|
||||||
@@ -1308,6 +1333,8 @@ N навык M» — отдельная надобность, если пона
|
|||||||
меряется по MAME), число файлов на образе, и что каждая сцена по-прежнему
|
меряется по MAME), число файлов на образе, и что каждая сцена по-прежнему
|
||||||
собирается при неполном диске (пути ошибок в `atlas_load`).
|
собирается при неполном диске (пути ошибок в `atlas_load`).
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
### <a id="mem-next"></a>MEM. Следующий шаг разгрузки W1/W2
|
### <a id="mem-next"></a>MEM. Следующий шаг разгрузки W1/W2
|
||||||
|
|
||||||
`pop_ctrl.c` уехал в банк 5 ([MEM-BANK5](TASKS_CLOSED.md#mem-bank5), куча
|
`pop_ctrl.c` уехал в банк 5 ([MEM-BANK5](TASKS_CLOSED.md#mem-bank5), куча
|
||||||
|
|||||||
Reference in New Issue
Block a user