SprPoP: сняты последние глушения насоса — палитра на смене уровня и загрузки треков
Замер тем же способом (брейк на pop_sfx_fill + печать totalcycles, три окна по 800 вызовов = 9 секунд каждое, с уже снятыми глушениями): период насоса 245 760 тактов (медиана во всех окнах) максимум 245 832 / 270 096 / 311 346 (1,00 / 1,10 / 1,27 периода) пропущено порций 0 Порция считается пропущенной, когда зазор доходит до ДВУХ периодов: сама порция отдаётся железу за период до того, как она понадобится, поэтому опоздание обработчика на 1,1 мс — джиттер, а не потеря. Запас десятикратный. Поэтому сняты и оставшиеся места: * палитра через BIOS на переходе БЕЗ катсцены (sprpop_cold.c) — то самое, где ловили скрежет 2026-08-25; в комментарии помечено, что при возврате скрежета возвращать надо именно сюда; * массовые чтения треков и ресурсов под чёрным экраном (pop_intro.c): первая реплика PV, трек заставки между уровнями, «время вышло», ресурсы финала. Осталось только то, что глушит звук ПО СМЫСЛУ, а не ради защиты: выходы из сцен (pop_music_free + pause), уход в титры и в игру, выключение по Ctrl+S. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -227,7 +227,12 @@ int8_t pop_level_change(uint8_t back) __banked
|
||||
* почти всегда — поймано пользователем 2026-08-25. Ветка с
|
||||
* катсценой свободна от этого: pop_pre_cutscene_show глушит
|
||||
* звук первым действием. */
|
||||
pop_sfx_pause();
|
||||
/* Глушение снято 2026-08-28 (замер: загрузка уровня насос не
|
||||
* морит — 500 вызовов подряд, максимум 245 832 такта при
|
||||
* дедлайне 251 000). Прежнее обоснование — скрежет на палитре
|
||||
* через BIOS ($A4 с запрещёнными прерываниями), пойманный на
|
||||
* переходе без катсцены 2026-08-25. Если он вернётся, это
|
||||
* единственное место, куда его надо возвращать. */
|
||||
/* Без fade: старый кадр гасим сразу и обязательно даём
|
||||
* показать один чёрный растр ДО диска/перерисовки. */
|
||||
pop_pal_apply(POP_PAL_DIM_BLACK);
|
||||
|
||||
Reference in New Issue
Block a user