Files
Sprinter-SDCC/applications/SprPoP/docs
snark13 63bfd997a9 SprPoP: звук мигания, равномерные часы, полоса HP после рестарта, надпись ждёт мелодию
Четыре правки прогона 2026-08-31.  Две ПРОВЕРЕНЫ пользователем в MAME
(звук мигания, порядок «мелодия -> надпись»), две ждут проверки — образ
собран.

ЗВУК МИГАНИЯ (проверено).  Упаковщик научился синтезировать ноты PC-
спикера в обычный сэмпл: заголовок с темпом, тройки «частота + длина»,
меандр на нашей частоте вывода.  Берём из нот ТОЛЬКО номера, которых нет
ни в оцифровке, ни среди мелодий, — иначе синтез перекрыл бы музыку,
которую мы играем из MUS/.  На поставке SDLPoP это ровно один номер: 38,
сигнал под мигание «Press Button»; 31, 34 и 42 там пустые заглушки.
Громкость по слуховой проверке снижена вдвое (44 -> 22): на полном
размахе сигнал перекрикивал игру.  EXE не меняется — раскладка читается с
диска, набор занял те же 9 страниц.

НАДПИСЬ ЖДЁТ МЕЛОДИЮ (проверено).  Порядок оригинала: ветка мёртвого
(seg006:1351) на седьмом шаге выходит, пока звук играет, и «Press Button»
появляется только после музыки смерти.  Чтобы ожидание не было
принудительным, три быстрых пути (Ctrl+A, обе быстрые загрузки, пункты
меню) музыку глушат — оригинал при Ctrl+A делает то же (seg000:0617).
Обычная кнопка во время мелодии не действует: она ответ НА надпись.

ЧАСЫ (ждёт проверки).  Тик стоит столько кадров ЛУЧА, сколько их в кадре
режима NORMAL, поэтому FAST/FASTEST больше не ускоряют время.  Считаем
ФАКТИЧЕСКИ прошедшие кадры луча, а не ожидаемый делитель: логический кадр
не всегда укладывается в бюджет, и часы «по делителю» шли рывками (первый
прогон это показал — «несколько секунд быстро, потом притормаживание»).
Вклад одного вызова ограничен, иначе пауза и меню прыгнули бы вперёд.
Четыре новых теста: NORMAL не сдвинулся ни на тик (и вне боя, и в бою),
FAST и FASTEST держат реальное время.

ПОЛОСА HP ПОСЛЕ Ctrl+A (ждёт проверки).  Корень: счётчик считает
СТРАНИЦЫ, а тратился по КАДРАМ — между двумя вызовами переворота может не
быть, и оба прохода уходили в одну страницу, вторая оставалась с
делениями прошлого боя.  Теперь проход тратится только при смене
gfx_get_draw_page().  Плюс полная чистка всей ширины при инвалидации:
старая полоса могла заходить под статус-текст, где щадящая чистка её не
трогала; текст сразу перезапрашивается.

Все 16 наборов host-тестов зелёные, check_bank_calls чист.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011MsUsEFAQfsjjQpJ7RtKVY
2026-08-31 23:10:35 +03:00
..

SprPoP/docs — индекс

Актуальность на 2026-08-26 (перенос из applications/PoP/roomtest). Сюда взято только то, что ещё читают. Исполненные планы остались архивом в ../../PoP/docs/, закрытые задачи и баги — в ../../PoP/roomtest/.

Входные точки

Документ О чём
TASKS_OPEN.md Что берётся в работу сейчас — начинать отсюда
BUGS_OPEN.md Открытые баги и незакрытые оптимизации
impl_diff.md Осознанные расхождения с SDLPoP: где сделано не дословно и почему. Новое расхождение — записью сюда, а не только комментарием в коде
keys.txt Целевая раскладка управления, к которой подгоняем SprPoP
keys_plan.md План перевода на неё: что совпадает, что переназначить, каких функций нет вовсе
../assets/orig/README.md Откуда берутся исходные данные: make fetch (SDLPoP + музыка), зачем нужен и почему необязателен MSDOS/, SND_SRC

Производительность

Документ О чём
perf_registry.md Реестр оптимизаций: всё отложенное одним списком
perf_backlog.md Отложенная оптимизация отрисовки + как мерить (wait-state'ы, границы кадра)
perf_green_phase.md ЗЕЛЁНАЯ фаза (слой фона): раскладка тактов, способы ускорения G1..G6, журнал правок
perf_cyan_phase.md ЦИАН фаза (персонажи + передний слой): раскладка тактов, C1..C7, журнал правок
perf_l11_room15.md Сцена и замер: факел + чомпер + страж (ур.11 к.15)
perf_l13_room23.md Сцена и метод замера кадра: каскад плит (ур.13 к.23), зонды, канал clog
resident_budget.md Бюджет резидента W1/W2: как мерить и как освобождать
layout_plan_v2.md Раскладка кода по окнам/банкам/страницам + замеры скорости отрисовки

Движок и содержание игры

Документ О чём
full_game_plan.md Полноценная игра: автомат состояний, title/intro, demo, таймер, cutscenes, ending, Hall of Fame
levels_plan.md Уровни: загрузка, переходы, тайлсеты, читы
levels_12_15_plan.md Уровни 12/13 (тень, Джафар, падающие плиты) + что такое 14/15 и 0
midtable_analysis.md Слои отрисовки: back/mid/fore и objtable в оригинале, чего стоит порт
room_model_plan.md kid_room ≠ drawn_room (straddle): сделан S1, остальное впереди
quicksave_plan.md QuickSave/QuickLoad (реализовано): формат снимка POPQ v3 — справочник
menu_settings_plan.md Pause menu и Settings, POP.CFG, VANILLA и задел под ENHANCED
palette_plan.md Карта всех 256 слотов палитры + механика fade
status_line_text.md Строка HP как статус-строка: инвентаризация ВСЕХ текстов SDLPoP
sound_plan.md Звук через CBL: разбор и архитектура
music_runtime_index_plan.md Будущее улучшение: runtime-индексы музыки и PCM-эффектов, смена аудионаборов без перелинковки EXE
shadow_render.md Вид Тени (OR+XOR) — отложено: почему XOR несовместим с прозрачностью #FF
roomnav_skip.md Комнаты для отладочного телепорта +/: какие пропускать и почему
host_tests_plan.md Модульные тесты движка под ucsim_z80: два шва, регрессии, дифф против SDLPoP

Справочники по оригиналу

Документ О чём
PORT_PLAN.md Общая карта фаз со статусами; §6 модель движения, §10 режим памяти
KID_PLAN.md Модель персонажа: char_type, actions_*, устройство play_seq
gates_spikes_plan.md Раскладка объектов по комнатам, декод LINKLOC/LINKMAP, ссылки на seg-код
PoP/POP-DAT-FormatSpecifications.pdf Каноническая спецификация форматов .DAT (грепаемая копия — .txt)
PoP/MSDOS_RESOURCE_FORMAT.md Наш разбор ресурсов MS-DOS-версии
PoP/APPLEII_RESOURCE_FORMAT.md Наш разбор ресурсов Apple II

Заделы

Документ О чём
ideas_backlog.md Осознанно отложенные гипотезы (мышь, PRNG)
prng_alternatives.md Запасные генераторы, если упрёмся в бюджет кадра

Не переносилось

Исполнено целиком, лежит в ../../PoP/docs/: frame_pacing_plan.md (фиксированный логический кадр), l9_invert_plan.md (зелье переворота), shadow_atlas_plan.md (запечка атласа Тени).