SprPoP: pop_config и pop_hof — из банка 9 в банк 10

Банк 9 дошёл до 98,5% (247 свободных байт), и следующая заметная правка
в menu/status/ui упёрлась бы в потолок.  Критерий переселения тот же, что
у остальной раскладки, — ЧАСТОТА ВЫЗОВА, а не размер: POP.CFG и POP.HOF
работают раз за партию и упираются в диск, где один `open` стоит 51 мс,
так что трамплин банк→банк на их фоне не существует.

Отдельный банк заводить не пришлось: в десятом лежал один pop_pal.c на
485 байт, то есть 3% страницы.  Новой страницы в образе не появилось.

  банк 9:  16137 (98,5%) -> 11948 (72,9%), свободно 247 -> 4436
  банк 10:   485 ( 3,0%) ->  4674 (28,5%), свободно 11710

Переезд безопасен, потому что все публичные функции обоих модулей
помечены __banked: трамплин выбирается по пометке в объявлении, а не по
банку, и непомеченная функция пережила бы переезд только внутри своего
банка.  pop_settings — обычный глобал в W2, виден отовсюду.

Следующий рычаг, если понадобится: pop_menu (4745 байт, 29% банка 9,
работает только при открытом меню).  Трогать нельзя pop_ui, pop_status,
pop_music и pop_timer — они в кадровом пути.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-27 12:49:01 +03:00
parent 808c2a5349
commit c71981fdf9
+10 -3
View File
@@ -82,9 +82,16 @@ BANK7_SRCS := pop_room.c pop_redraw.c
BANK8_SRCS := sprpop_cold.c pop_arc.c pop_level_cold.c pop_kboot.c pop_guard_cold.c \ BANK8_SRCS := sprpop_cold.c pop_arc.c pop_level_cold.c pop_kboot.c pop_guard_cold.c \
pop_shadow.c pop_sfx_cold.c pop_qsave.c pop_qsave_coldio.c \ pop_shadow.c pop_sfx_cold.c pop_qsave.c pop_qsave_coldio.c \
pop_level_qsave.c pop_level_qsave.c
BANK9_SRCS := pop_menu.c pop_status.c pop_music.c pop_config.c pop_app.c pop_timer.c \ BANK9_SRCS := pop_menu.c pop_status.c pop_music.c pop_app.c pop_timer.c \
pop_ui.c pop_title.c pop_demo.c pop_flow.c pop_hof.c pop_ui.c pop_title.c pop_demo.c pop_flow.c
BANK10_SRCS := pop_pal.c # Банк 10 = палитры + РЕДКОЕ С ФАЙЛАМИ. pop_config (POP.CFG) и pop_hof
# (POP.HOF) переехали сюда из банка 9, когда тот дошёл до 98,5% (247 байт
# свободно). Критерий тот же, что и у остальной раскладки, — частота, а не
# размер: обе вещи работают раз за партию и упираются в диск, где `open`
# стоит 51 мс, так что трамплин банк→банк на их фоне не существует.
# Отдельный банк для этого не нужен: в десятом лежал один pop_pal.c на
# 485 байт, то есть 3% страницы.
BANK10_SRCS := pop_pal.c pop_config.c pop_hof.c
BANK11_SRCS := pop_cutscene.c pop_intro.c BANK11_SRCS := pop_cutscene.c pop_intro.c
BANK_NUMS := 1 2 3 4 5 6 7 8 9 10 11 BANK_NUMS := 1 2 3 4 5 6 7 8 9 10 11
BANKED_SRCS := $(foreach n,$(BANK_NUMS),$(BANK$(n)_SRCS)) BANKED_SRCS := $(foreach n,$(BANK_NUMS),$(BANK$(n)_SRCS))