Где была моя ночка...
1. Пофиксал багу с отображением спрайтов с отрицательной вертикальной координатой.
2. По многочисленным просьбам breeze^fbn запилил кувалдометр заюзанных в строке циклов ДРАМы. Виден в режиме окна 448х320.
3. Добавил глюкание ТС-двига при обсосе циклов ДРАМы (терь всио аля-натюрель).
4. Впилил модель кеша, который позволяет избежать функционала п.3.
5. Вейтовая турба (14 МГц) взята на глаз
и эмулируется в тактах неточно! Дает лишь примерное представление о вещах, впрочем, довольно близкое к реальности.
------------------
Как известно, память хотят все. Причем хотят не в байтах, а в разах. Количество разов за
ночь строку видео весьма ограниченно, и составляет 448.
Чем жырнее видео, чем выше частота проца, тем драма иппётсо чаще. Весьма нихуёва ее хочет ТС-двиг. Он ее хочет по
1 циклу на каждые 4 пикселя тайлово/спрайтовой графики
в строке.
Даже если тайл/спрайт скрыт под чем-то другим. Если переусердствовать, можно получить вот что.
На нижеследующем скриншоте при помощи специально оборудованного r0bat-ом теста видно, что происходит если переусердствовать.
- no_cache.png (30.25 KiB) Viewed 17657 times
Пояснения к рис.1:
- зеленые полоски - циклы проца
- желтые полоски - циклы фоновой графики (заметьте, как они различаются в разных режимах)
- розовые гламурные полоски - циклы ТС-движла
- две полоски... ну вы поняли.
Как с этим бороться.
1. Выключать фоновую графику где не нужна.
2. Использовать тайлы с номером 0 на пустых областях тайловых слоев, ибо двиг их игнорирует.
3. Разумно планировать слои тайлов/срайтов.
4. Везде где тока можно включать кеш.
На еще более нижеследующем скриншоте видно, что будет, если вместо обычного стирального порошка использовать always с крылышками (включен кеш). Видно, что пару хилых циклов проц отжирает лишь вначале фрейма, остальное время выполняет код из кеша, будь то halt либо jr $.
- cache.png (30.35 KiB) Viewed 17657 times