V6Z80P - Back for Good
Наверно, ведь у TV точки выводятся с частотой 7 МГц, а на монитор ПО СТАНДАРТУ надо выводить с частотой 25,175 МГц. Поэтому нужен какой-то буфер для согласования частот. При преобразовании в 60 Гц возможны небольшие мерцания, но они малозаметны, так как старые игры или медленные или сами идут рывками. Кроме этого в современных телевизорах возможно есть такое же преобразование из 50 в 60. Или в переходниках SCART-HDMI.
А для нового быстрого режима нужно избежать преобразования частот кадров. Поэтому придется частоту INT тоже сделать 60 Гц. Длительность кадров и интервал между импульсами INT, немного уменьшится с 20 до 16.7 мс, зато процессор разгрузится и мы сможем сделать INT в том месте кадра, где нам удобнее. И изображение будет без рывков и мерцаний.
Последний раз редактировалось zx-kit; 27.06.2015 в 16:43.
"L-256"
V6Z80P - Back for Good
В стандартном режиме Спектрума INT формируется примерно в начале кадрового импульса. Но место INT выбрано не очень удачно. Было бы больше времени на построение следующего экрана игры, если бы он формировался не в самой нижней точке кадра, а как только закончится изображение на телевизоре последней точки экрана 256x192. Тогда мы смогли бы сразу начать построение нового экрана.
Я предлагаю в новом режиме так и сделать. То есть в новом режиме частота и положение импульсов INT для Z80 новое.
Последний раз редактировалось zx-kit; 27.06.2015 в 17:28.
"L-256"
Поправил. Теперь сигнал INT приходит после вывода последней точки. Отключается сигналом INTA. Можно даже сделать возможность задавать его положение к примеру после последней точки в каждой строке. Хотя это пока не нужно.
zst, у тебя Speccy2010 рабочая? Я могу пересобрать тестовый проект для неё, U8 и U9.
Хорошо. У меня из девборд только Speccy2010. Пока без второго SD разъема. Проект под Speccy2010 нужен с выходом на аналоговый VGA. Сначала поизучаю, потом тоже подключусь, если знаний хватит.
Я вот думаю надо такие этапы отладки.
Сделать развертку VGA.
Потом новый контроллер SDRAM с чтение 8 точек сканера в кванте 0. На экране будет мусор.
Потом в кванте 3 добавить запись 8 точек в SDRAM. Записать сигналы типа цветных полос с 32 градациями яркости (любая часть картинки в 1 посте).
Потом добавить возможность включения/выключения нового режима из программы в машинных кодах. Для этого нужно выбрать, или оно уже есть средство для загрузки программ. Достаточно sna образа, который легко получить в компиляторе на PC.
Еще нужно выбрать расположение экрана, даже двух в SDRAM.
Пока такие отрывочные наброски, но уже можно начать двигаться. А глобальный план и спецификацию пока не составляй. Можно мелкими шажками пока.
"L-256"
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
V6Z80P - Back for Good
В стандартном режиме у нас есть время на рисование на экране только во время верхнего бордера. А время во время нижнего бордера пропадает зря.
Надеюсь они оба будут работать аналогично.Вообще, не понятно где этот "сдвиг инта" в конфе спека mvv или в конфе-видео карты.
В стандартном режиме INT должен остаться на старом месте, чтобы времянки в старых играх не уплыли.
---------- Post added at 20:48 ---------- Previous post was at 20:44 ----------
Выполняем пожелание программистов.
"L-256"
Предлагаю распределить память следующим образом:
Начиная с 0 адреса - буфер спрайтов размером 6.5 Мбайт
Буфер экрана 1 - 256 Кбайт
Буфер экрана 2 - 256 Кбайт
ZX ОЗУ - 1 Мбайт
"L-256"
Лучше добавить регистры:
1) адрес видео буфера 0
2) адрес видео буфера 1
3) управления (бит 0=0 отображается буфер 0; 1=буфер 1)
Хотя хватит одного регистра адреса видео буфера, дальше меняя его, можно хоть 10 буферов в памяти переключать. А так-как видео память линейная, то это ещё можно использовать как сдвиг вверх/вниз на строку или на х строк.
Со спрайтами и блиттером пока повременить. Сейчас доделаю тестовую конфигурацию для U16, потом перенесу на Speccy2010 (нужно будет припаять второй SD разъем для возможности работы DivMMC для загрузки ПО).
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)