Сообщение от
Дмитрий2012
Многие наверно уже видели мои видео как работают некоторые демки на Aleste... Они либо ужасно глючат, либо совсем не запускаются. Например, вот здесь можно посмотреть
https://youtu.be/ka-p9EdqPZY?list=PL...If6K5U7o&t=196
Еще обнаружил осциллографом на своем экземпляре собранной платы, что в некоторых частях «демок» пропадает сигнал vsync HY , естественно при этом на экране ничего не видно, слышна одна музыка.
Трудно утверждать наверняка, но выглядит как неработоспособный компьютер. Давайте уточним моменты.
На оригинальном CPC128 стояла заказная микросхема обвязки, которая работала вместе с с процессором и CRT. Заглянуть внутрь никто не мог поэтому компьютер гоняли вдоль и поперек пока не разобрались с логикой внутри. 100% гарантии никто дать не может. Но это было точное, до одного такта повторние выходных сигналов, при всех возможных условиях которые могут сложиться в CRT. Кроме того, на тот момент времени, небыло ни одной игры или демки кокторая бы это опровергала.
Сам CRT формирует адрес для выборки из памяти для видеоконтроллера, а также горизонтальнй и вертикальный импульс (не путать синхросигналом). А вот та самая заказная микросхема формровала синхросигнал и сигналы прерываний. И это было сложнее всего, ибо логика формирования скрыта в в ней, а сигналы эти были слишком хаотичны при различных возможных вариантах настроек в CRT. (Кстати кажется были разные несколько отличающиеся имплементации этого CRT)
Еще один момент, точность импулсов прерывания очень сильно влияла на результат в играх. К примеру в этот момент белые треугольники справа могли не стоять на своем месте из за того что прерывание на 1мкс правее или левее во времени. (это не диагноз, просто иллюстрация)
Так вот, была сделана схема на В63,D64,D65,D77,D66,D49,... Которая формируют SYNC,HY и SINT в зависимости от номера текущей строки в кадре и от положения внутри самой строки. В дополнении к этому сигналы KK0..3 и MK1..3, перекодирут матрицу клавиатуры из "любой" в CPC128. Вам необходимо разобратся как работает этот узел, и вдумчиво исследовать его в момент вопроизведения вашей демки.
На входе узла
Код:
1M - тактовая 1мгц
HX - горизонтальный импульс от CRT
HY - вертикальный импульс от CRT
На выходе узла
Код:
SYNC* - синхросигнал
HY* - сигнал каждая Х строка экрана (кажется х=27)
SINT* - прерывание
Но вот что меня смущает вашей демке. В этот момент времени. Порушенность в красном прямоугольнике никак не похожа на плохой синхросигнал. Это больше похоже на баг в программе, или сбой в работе процессора или памяти.
В этот момент времени, не понятно что с красный текстом. уж CRT контроллер не может его так "отметелить"
Стоило бы написать тест памяти который оттестирует ее с маппером в режиме совместимостис CPC.
Не исключено, что эта демка не вольно написана так что не работает на этом клоне. Скажем CRT программируется в режим при котором HY перестает формироваться. Тогда имплементация Aleste встанет как уставший конь. Не исключено что версия CPC в этом случает переходила в автогенерацию. Однако характер искажений на экране очень странный и больше похож на неправильное функционирование системы в целом.
P.S. D62 перекодирует запись в регистр управления памяти CPC в регистр маппера, а также цвет палитры CPC в цвет палитры MSX режима.
- - - Добавлено - - -
P.S. Есть еще момент. Файлы которые лежат на сайте алесты, найдены в архивах друзей спустя годы. Насчет версии этих файлов, были ли они последние или нет, никто точно утверждать не может.