Разгрузка W1: смена уровня и служебный слой — в банк 8

_main занимал 3658 байт резидента, и добрая половина этого — события «раз
в партию». Вынесены целиком:

- pop_level_change — смена уровня (катсцена, гашение, загрузка, палитра,
  звук): 61 строка, наружу осталось одно условие и вызов;
- pop_frame_ui — меню, F10 и QuickSave/Load: 58 строк, плюс туда же уехали
  edge-состояния клавиш и сами коды клавиш (снаружи они больше не нужны).

_CODE 24102 -> 23626, запас W2 вырос с 86 до 559 байт.

Заодно три правки по замечаниям:

- затемнение фона под меню считалось числом «2», а шкала ступеней выросла
  с 4 до 32 — фон почти не гас. Теперь доля от шкалы (POP_PAL_DIM_BLACK/2);
  тем же прошлись по остаткам pop_pal_apply(4);
- в катсценах персонажи появлялись только после fade in: первый кадр
  рисуется ПОД чёрной палитрой, и картинка проявляется целиком, вместе с
  актёрами (cut_scene_8/9/12_short/ending, pre_room_animated,
  intro_pv_animated);
- отладочная полоса по умолчанию выключена.

Host-тесты: 15 наборов. Проверено в MAME: меню открывается и закрывается,
фон под ним затемнён, полосы нет.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-26 11:42:56 +03:00
parent f66fd0e1b6
commit 0b15ed7b8f
7 changed files with 251 additions and 134 deletions
+5 -1
View File
@@ -687,7 +687,11 @@ int8_t pop_menu_process(void) __banked
getfillsettings(&saved_fill);
pop_sfx_pause(); /* snapshot/dim + первый full redraw */
pop_pal_snapshot();
pop_pal_menu_dim(2); /* 50%, диапазон UI остаётся ярким */
/* 50 % яркости; диапазон UI остаётся ярким. Долю берём от шкалы, а не
* числом: ступеней стало 32 вместо четырёх, и прежняя «2» означала бы
* теперь затемнение на одну шестнадцатую — фон под меню почти не гас
* (поймано пользователем 2026-08-26). */
pop_pal_menu_dim(POP_PAL_DIM_BLACK / 2);
menu_draw(sel);
for (;;) {