• v0.9.0 602c3a20fa

    SprPoP 0.9.0: катсцены идут в темпе оригинала, звук больше не рвётся

    snark13 released this 2026-08-28 19:08:15 +03:00 | 60 commits to main since this release

    ТЕМП КАТСЦЕН. Делитель был верный (6 тиков оригинала = 5 кадров луча у всех
    сцен, у pv_scene 6->8->7), ломало место отсчёта: кадр рисовался целиком, и
    только потом ждали vsync и ещё четыре — отрисовка ПРИБАВЛЯЛАСЬ к делителю
    (замер: 49 тиков/с вместо 60). Теперь она разложена на блоки, каждый влезает
    в кадровый интервал, после каждого ждём vsync; фон восстанавливаем только по
    картинке (200 строк вместо 256). Удешевлять сцену не понадобилось.

    ЕДИНЫЕ ЧАСЫ. У сцены с Джафаром было две шкалы, и выбор между ними делался
    гонкой на старте — от прогона к прогону кода реплики приходилась на другое
    место картинки. Ветка по насосу CBL убрана, осталcя счёт кадров луча;
    подгонка PV_MAGIC_LEAD (100 тиков) снята вместе с причиной.

    КОНЕЦ УРОВНЯ ЖДЁТ МЕЛОДИЮ (порт seg003:387) — экран пройденного уровня живёт,
    пока звучит трек, в том числе при выключенной музыке (счётчик по длине
    записи). Трек заставки между уровнями переживает загрузку следующего:
    порядок оригинала — загрузка под музыку, потом чернота до конца трека, потом
    показ уровня.

    ЗВУК НЕ ГЛУШИМ РАДИ ОПЕРАЦИЙ. Заплатка «закрыть CBL на время перерисовки
    или диска» стояла в девяти местах и была слышна как паузы. Замер (брейк на
    pop_sfx_fill + totalcycles, окна по 800 вызовов): период 245 760 тактов,
    максимум зазора 1,27 периода, потеря начинается с двух — запас десятикратный.
    Сняты все защитные глушения (меню, фейды, палитра на смене уровня, POP.CFG,
    quicksave, массовые чтения треков); остались только смысловые — выход из
    сцены, уход в титры/игру, Ctrl+S.

    Проверено пользователем: переход 2->3, все катсцены, интро, «won», HOF,
    F6/F9 — скрежета и пауз нет.

    Downloads