From 50570881f538d67bc823e8b4b8ca23f2cc4e4b95 Mon Sep 17 00:00:00 2001 From: Alexander Petrov Date: Fri, 28 Aug 2026 16:28:17 +0300 Subject: [PATCH] =?UTF-8?q?SprPoP:=20=D0=BF=D0=BE=D0=B4=D0=B3=D0=BE=D0=BD?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=BC=D0=BE=D0=BB=D0=BD=D0=B8=D0=B8=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=B4=20=D0=BC=D1=83=D0=B7=D1=8B=D0=BA=D1=83=20=D1=81?= =?UTF-8?q?=D0=BD=D1=8F=D1=82=D0=B0=20=E2=80=94=20=D0=BF=D1=80=D0=B8=D1=87?= =?UTF-8?q?=D0=B8=D0=BD=D0=B0=20=D1=83=D1=81=D1=82=D1=80=D0=B0=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PV_MAGIC_LEAD двигал жест заклинания (замах, шаг назад, вспышка) на 100 тиков (1,67 с) раньше сценария: сцена была render-bound, шла ~49 тиков/с вместо 60, а реплика играла по реальному времени — кода приходила раньше молнии. После перевода сцены на единые часы и блочную отрисовку подгонка стала вредной: молния била больше чем на секунду РАНЬШЕ коды (проверка пользователем). Ставим 0; константу оставляем на месте — если запись другого набора (mt32/ogg) разъедется, крутить надо её. Co-Authored-By: Claude Opus 5 --- applications/SprPoP/src/pop_intro.c | 34 ++++++++++++++--------------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/applications/SprPoP/src/pop_intro.c b/applications/SprPoP/src/pop_intro.c index 154a09b..451a4af 100644 --- a/applications/SprPoP/src/pop_intro.c +++ b/applications/SprPoP/src/pop_intro.c @@ -83,26 +83,24 @@ enum { PV_MUS_4_LOAD = PV_DIALOG1_START + 54, /* подкачка m52 */ PV_WALK2_START = PV_DIALOG1_START + 176, PV_DIALOG2_START = PV_DIALOG1_START + 416, - /* ЗАКЛИНАНИЕ СДВИНУТО РАНЬШЕ СЦЕНАРИЯ — ПОДГОНКА ПОД МУЗЫКУ. + /* ПОДГОНКА ЗАКЛИНАНИЯ ПОД МУЗЫКУ СНЯТА (2026-08-28): теперь 0. * - * Сцена render-bound: кадр рисуется дороже своего бюджета, кадровая - * ветка пейсинга догона не имеет, и анимация идёт ~49 тиков в секунду - * вместо 60. Реплика Джафара при этом играет по РЕАЛЬНОМУ времени и - * успевает кончиться, когда шкала стоит на 1854 вместо 2028 (замер в - * MAME 2026-08-27 зондом на конец трека: длина насосу отдана полная, - * 1403 порции, курсор дошёл до последней страницы — трек доигрывает - * целиком, отстаёт именно картинка). + * История: сцена была render-bound — кадр рисовался дороже своего + * бюджета, кадровая ветка пейсинга догона не имела, и анимация шла + * ~49 тиков в секунду вместо 60 (замер 2026-08-27). Реплика Джафара + * при этом играет по РЕАЛЬНОМУ времени, поэтому кода приходила + * примерно на секунду раньше молнии, и жест целиком (замах, шаг + * назад, вспышка) сдвигали раньше сценария на подобранные на слух + * 100 тиков. * - * Из-за этого кода реплики приходила примерно на секунду раньше - * молнии. Честное лечение — удешевить кадр сцены; до тех пор двигаем - * жест целиком (замах, шаг назад, вспышка), чтобы он не сломался - * внутри себя. Величина подобрана НА СЛУХ и уточняется прогоном: - * расчётные полсотни тиков (секунда отставания при ~49 тиках/с) на - * слух почти не изменили картины, поэтому взято вдвое больше. - * - * Эффектов дверей это не касается: у них и звук, и картинка идут по - * одной и той же шкале и разъехаться не могут. */ - PV_MAGIC_LEAD = 100, + * Причину убрали: отрисовка разложена по кадровым интервалам + * (pv_restore_bg), сцена идёт по единственным часам — кадрам луча, — + * и подкачка трека оплачивается интервалом (pop_music_load_step). + * После этого подгонка стала вредной: молния била больше чем на + * секунду раньше коды (проверка пользователем 2026-08-28). Константу + * оставляем на месте — если запись другого набора (mt32/ogg) снова + * разъедется, крутить надо её, а не тайминги сценария. */ + PV_MAGIC_LEAD = 0, PV_RAISE_START = PV_DIALOG1_START + 696 - PV_MAGIC_LEAD, PV_STEPBACK_START = PV_DIALOG1_START + 703 - PV_MAGIC_LEAD, PV_MAGIC_START = PV_DIALOG1_START + 822 - PV_MAGIC_LEAD,