Я совсем в детали лезть не хотел, расскажу что видел. Движок к прерываниям не привязан. Всё рисуется в 4Кб буфер в верхней памяти (т.е. 2/3 экрана). Отрисовка довольно быстрая (смотрел только по общим тактам), но с всплесками, в 3 такта они бы точно не уложились (я видел от 200 до 220 тыс. тактов за цикл игры). 3/5 всего времени программа скроллит буфер, тупо, rld : dec hl, (даже dec l не отпимизировали, хотя там на минуту задуматься нужно было). Ну и баг, после каждой rld вставлен nop (похоже, что rld настолько никому не нужная команда, что ребята словили баг в ассемблере).
Поскольку кол-во тактов не постоянно и ни к чему не привязано, экран будет рваться где угодно, на что, в принципе, и весь расчёт. В принципе, с новым скроллом, стоит попробовать привязать движок к прерываниям, как раз в три фрейма всё должно сейчас уложиться.
Я начал делать нормальную сборку пропатченной игры, но что-то завяз с каким-то глупым багом. Сейчас отловлю его, и попробую сделать плавную версию. Ну, настолько плавную, насколько можно с 4 пикселями каждые 3 фрейма!Вообще, если правильно сделать, может получиться очень неплохо, т.к. версия с багом как раз была очень близка по скорости к 3 фреймам.
ВНИМАНИЕ, ПОПРАВКА. При более подробном рассмотрении оказались, что я прозевал такты перебрасывальщика теневого экрана на основной. С учётом этого, мы говорим не о 3 фреймах, а о 4. Не о 200 тыс тактов на цикл, а о 270 тыс. тактов на цикл.
---------- Post added at 17:50 ---------- Previous post was at 17:49 ----------
Вот эту болезнь как раз вылечить несложно будет!))))))))





).
Ответить с цитированием