Files
Sprinter-SDCC/applications
snark13 e261a35acb Замер в MAME: A/B со сборкой до правок, деления в горячем пути = 0
Обе сборки прогнаны полным циклом (make hdd -> рестарт MAME -> уровень 1),
сцена «комната 1, Кид стоит, соперника нет», скриншоты идентичны.  Фазы
сняты брейкпоинтами на out (_io_border), a, медиана по 60 кадрам:

  спрайты      129 568 -> 127 510   (-2 058)
  работа/кадр  391 258 -> 389 221   (-2 037)
  остальные фазы совпали такт в такт

Счётчик делений (bp на __divsint/__modsint/__divuchar/__moduchar с
печатью адреса возврата):

  комната 1, только Кид : 1,00 __divsint/кадр (возврат 0xD3AA = pop_cdraw) -> 0
  комната 3, бой стража : 2,01 __divsint/кадр                              -> 0

Экономия ровно в фазе спрайтов и ровно на стоимость одного вызова
(2 058 тактов против документированной оценки ~2 400).

Честные оговорки записаны в TASKS_OPEN: период цикла как был 3 растровых
кадра, так и остался (выигрыш ушёл в запас, 40 800 вместо 38 700);
остальные правки в этой сцене не срабатывают; тайминги комнаты 3
несравнимы между прогонами (живой страж + pop_char_skip_mask), оттуда взят
только счётчик делений.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-10 21:02:35 +03:00
..