diff --git a/applications/PoP/roomtest/roomtest_cold.c b/applications/PoP/roomtest/roomtest_cold.c index a9b26cb..2b77fc6 100644 --- a/applications/PoP/roomtest/roomtest_cold.c +++ b/applications/PoP/roomtest/roomtest_cold.c @@ -530,12 +530,19 @@ void pop_flip_screen(void) __banked * прямую копию уже чистой картинки. Дешевле полной перерисовки комнаты * на порядок: 0..4 тайла против 6.2 млн тактов (14.5 кадра, замер MAME * 2026-08-12) — а копия отражения стоит всего 2.1 кадра. */ + /* ВНИМАНИЕ на систему координат: pop_upside к этому моменту УЖЕ + * переключён (главный цикл делает это перед вызовом), а картинка на + * экране нарисована ещё в СТАРОЙ. Чистить её надо по старым + * координатам, иначе чёрный бар ложится в зеркальное место — на экране + * оставался чёрный квадрат, а пламя так и не стиралось. */ + pop_upside = (uint8_t)!pop_upside; /* временно: система ЭКРАНА */ gfx_set_draw_page(front); for (i = 0; i < 30; i++) { uint8_t t = room_fg[i]; if (t == 19 || t == 30) /* факел / факел с щебнем */ pop_torch_wipe(i / 10, i % 10); } + pop_upside = (uint8_t)!pop_upside; /* вернуть новое состояние */ gfx_set_draw_page(back); gfx_copy_page(&area, GFX_COPY_VFLIP); /* источник — видимая страница */