Удалось на эмуляторе разогнать игру до нормальной скорости, 25 кадр/с.
Выбор не большой: или успевать за 2 прерывания и тогда частота будет 25 кадров, или за 3 прерывания, тогда 16.
Сделал вывод всех спрайтов через цепочки типа ld (hl),NN: inc hl. В версии Amstrad так выводится только ГГ, а у меня уже все, кто не на краю экрана.
Но на железе оно и не подумало разгоняться!
System test 4.30R выдаёт такие скоростя в тактах:
Эмулятор: 71680, turbo 143360
Реальный: 69888, turbo 123872
Получается, мне надо выжать ещё 20к тактов. Подозреваю, что надо опять переделывать скролл и теперь на работу через стек. Если это вообще возможно.
Снова посмотрел на версию для BaseConf – а там оно работает на 14 Мгц и притом активно использует вывод через стек…
Текущую версию положил туда же.
https://cloud.mail.ru/public/o1Fb/X9Mt1Hg14
https://drive.google.com/drive/folde...2I?usp=sharing
2021.08.01
Ускорен вывод спрайтов
На эмуляторе выдаёт 25 кадров, на реальном железе 16
Добавлен автоогонь (но с ним слишком легко)
Используется 84 страницы памяти из 128
upd. Добавил в первый пост видео своего кривого прохождения.
https://youtu.be/ff2MlP-HO5M




Scorpion ZS 256 Turbo+/GMX 2MB/SMUC v1.3 OP/CF-IDE 2GB/TS ARM/Covox #DD/FDD 5'25/FDD 3'5/AT Kbrd & Mouse Ctrl v2.5/Universal PS/2 Kbrd Ctrl/ZX WiFi
Ответить с цитированием