DRAW-COST шаг 2 на доску: цена ОДНОЙ перерисовки персонажа (бегущий Кид — циан ~100%)
This commit is contained in:
@@ -55,7 +55,7 @@
|
||||
| 2 | [L3-CHOMP](#l3-chomp) | **СЛЕДУЮЩАЯ**: чомперы (5 шт) | прохождение ур. 3 |
|
||||
| — | [L3-SKEL](#l3-skel) | скелет ур. 3 — **сделан 2026-08-07**, ждёт финальной приёмки | — |
|
||||
| 3 | [L3-PASS](#l3-pass) | приёмка уровня 3 (обход комнат) | закрытие цели |
|
||||
| — | [DRAW-COST](#draw-cost) | шаг 1 сделан (пропуск неизменившегося персонажа): в покое 210 % -> **116 %** кадрового периода; дальше узкое место — ЛОГИКА (60 % на тик стоящих персонажей) | плавность на ВСЕХ уровнях |
|
||||
| — | [DRAW-COST](#draw-cost) | шаг 1 сделан (пропуск неизменившегося персонажа): в покое 210 % -> **116 %**. ШАГ 2 — цена ОДНОЙ перерисовки: бегущий Кид даёт циан почти 100 % | плавность на ВСЕХ уровнях |
|
||||
| — | [L1-SPEED](#l1-speed) | игра на ~39 % быстрее оригинала | ощущение от ВСЕХ уровней; берётся в любой момент |
|
||||
| — | [TUNE-1](#tune-1) | параметры движка → cfg-файл (сейчас `pop_tune.h`) | отладка таймингов и моды; берётся по мере надобности |
|
||||
|
||||
@@ -358,8 +358,28 @@ W1/W2 (см. [BUG-GUARD-COLOR-1](bug_closed.md#bug-guard-color-1)).
|
||||
понадобится — держать не один прямоугольник, а 3-4 отдельных и мержить
|
||||
только при переполнении.
|
||||
|
||||
**Куда идти дальше — теперь это ЛОГИКА, а не отрисовка.** Разбивка работы
|
||||
кадра брейкпоинтами (комната 3, труп, Кид стоит; всего 500 772 такта):
|
||||
### Шаг 2 (СЛЕДУЮЩИЙ, назначен пользователем): ДВИЖУЩИЙСЯ Кид
|
||||
|
||||
Пропуск закрывает только покой. Наблюдение пользователя 2026-08-08: как
|
||||
только Кид побежал, циан-полоса (спрайт + fore-проход) вырастает почти до
|
||||
**100 % кадрового периода** — и это на ОДНОГО персонажа. То есть цена
|
||||
одной перерисовки персонажа сама по себе непозволительно велика, и её надо
|
||||
резать по существу, а не пропусками.
|
||||
|
||||
Куда смотреть (мерить каждое, метод — `z80_profiling_method`):
|
||||
1. разделить замером спрайт-блит и fore-проход: у fore уже была история
|
||||
78 % кадра до кэша кладки (`pop_fore_layer_cost`), он и сейчас главный
|
||||
подозреваемый;
|
||||
2. fore-проход перебирает 2×2…3 тайла и в каждом разбирает кладку заново —
|
||||
кэш «в этом тайле переднего слоя нет вовсе» снял бы половину;
|
||||
3. расширять перебор ТОЛЬКО по накладным спрайтам (клинок/брызги), а не по
|
||||
всему окну клипа: габарит кадра уже покрыт футпринтом + правилом меча;
|
||||
4. heal + блит спрайта: сейчас это два прохода по одной площади; посмотреть,
|
||||
нельзя ли стирать только РАЗНОСТЬ прямоугольников при мелком сдвиге.
|
||||
|
||||
**Куда идти дальше в ПОКОЕ — там это ЛОГИКА, а не отрисовка.** Разбивка
|
||||
работы кадра брейкпоинтами (комната 3, труп, Кид стоит; всего 500 772
|
||||
такта):
|
||||
|
||||
| участок | тактов | % кадра |
|
||||
|---|---:|---:|
|
||||
|
||||
Reference in New Issue
Block a user