чтобы некоторые эффекты не тормозили.
Вид для печати
зарелизил исправленную версию
---------- Post added at 23:39 ---------- Previous post was at 23:31 ----------
запусти пожалуйста на зеленом скорпе вот этот тестик: http://zx.pk.ru/attachment.php?attac...0&d=1317941524
и выложи сюда фотку экрана, по ней можно будет тайминги точно восстановить (если там задержек нет :))
у меня на плате сделана перемычка на счётчик (вместо одного сигнала другой),
без этой доработки телевизор samsung не синхронизировал изображение.
кажется она влияет на прорисовку бордюра, поэтому отображение тестовой картинки может быть некорректным. вечером попробую.
Имелось ввиду как бы вторая глобальная часть, после надписи THE END - мультиколорная часть StarWars. Чтобы запустить под эмулем демку, после ее старта, в настройках эмулятора в Betadisk (хотя, по хорошему, он должен значится как beta128, а не betadisk) выстави галочку на WD93 No delays и нажми Apply.
я в satisfaction копался давно, но насколько помню там загрузка частей стандартная #3d13, напрямую сделано только отрубание magic кнопки.
Я запустил демо на эмуле по алгоритму описанному выше. Та версия, что у ААА по мультиколору ничем не отличается от той, что ты хотел увидеть в моей версии, так что ничего не потерял:)
Верно, в оригинальной версии от Cоdebasters. В моей версии дема полностью перепакована, пофиксена в плане мультиколора, вроде еще пофиксен 6-й бит, чтобы правильно через полупорт странички щелкались в части с кубом + добавлен турбо-загрузчик. Чей именно косяк (эмулятора или кода загрузчика) в не совсем хорошей работы turbo loader-а я сейчас не скажу, но на моем реальном скорпе всё работало без проблем. Бегло посмотрев код предположил, что зависание связано с тем, что после загрузки очередной части загрузчик тормозит диск (гасит лампочку), а потом при попытки загрузить следующую часть и происходит зависание на чтении порта #ff.
update: Сейчас проверил в Unreal, пропатчил загрузчик, чтобы не гасил движок дисковода - демо грузится и без No Delay.
Автору темы -- небольшое дополнение относительно кол-ва тактов в строке. Нисколько не удивлюсь, если есть или были машины и с 256 тактами на строку, о чем тут вроде никто не говорил. Соображения чисто практические: [почти] полностью используется частотный потенциал проца -- раз, можно немного упростить схему -- два, кадровую можно поднять до 57 Гц -- три (как следствие, имеем меньший фликкер, что всегда приятно). Пропорциональность изображения нарушится, это да, но в случае монитора или отдельного ТВ это непринципиально -- один раз отстроили и забыли про проблему.
Кроме того, 216 тактов могло быть и в несколько более изощренном, но опять-таки продиктованном реалиями случае: плавно регулируемый генклок (позволяет ловить макс частоту работы схемы при отладке), а для генерирования растра -- кварц от копеечной китайской монтаны, которую еще в конце 80ых можно было найти в любой деревне (строчная в <5% от стандарта). Синхронизация через счетчик числа тактов в строке, при 216 проц пашет на 3.55 (или выше).
Сейчас более досконально проанализировал работу загрузчика. В общем, в процедуре гашения лампочки дисковода (торможение диска) используется вот такой вот алгоритм:
Далее, когда загрузчик пытается загрузить новую часть демо, то turbo loader виснет на процедуре #3fe5 при чтении порта #ff в ожидании сигнала intrq, судя по всему. Вроде бы так. Это актуально для эмулятора Unreal, но, судя по всему и для ZXMAK2 тоже.Код:xor a - гасим лампочку, bit 3 загрузки головки выставляем в 0
out (#1f),a
ld a,#d0 - принудительно прерываем выполнение команды
out (#1f),a
ret
Faster, а команду восстановление Турболоадер отсылает?