User Tag List

Показано с 1 по 3 из 3

Тема: Видеокарта для ZX на основе DivGMX

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    23.04.2020
    Адрес
    г. Тотьма
    Сообщений
    904
    Спасибо Благодарностей отдано 
    273
    Спасибо Благодарностей получено 
    341
    Поблагодарили
    182 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Видеокарта для ZX на основе DivGMX

    Решил я, что для спектрума сделали мало видеокарт в слот. Могу вспомнить максимум две.
    А у меня есть замечательная карта DivGMX, на основе которой можно сделать очень мощную карточку. И не только для видео.
    У неё есть выход hdmi, она с базовой прошивкой умеет показывать стандартный экран, вписывая его в режим 640*480*60Гц.
    https://zx-pk.ru/threads/27225-divgm...ghlight=divgmx

    Я стал с нуля пытаться освоить vhdl. После пары месяцев битв, что-то всё-таки сделал. По крайне мере статичную картинку можно посмотреть.

    На данный момент я добавил поверх стандартного ещё экран, который почти повторяет mode 4 от компьютера SAM Coupé:

    • режим 4: 256×192, линейный 4 бита на пиксел (16 цветов из палитры 128) = 24 КБ.

    У этого экрана прозрачен цвет номер 0, сквозь него виден стандартный экран ZX.
    Также почти прикручена аппаратная прокрутка всего экрана.

    Вот картинка для примера. Запущена на Эволюции (просто она была под рукой).
    Некоторые цвета ещё не правильные, но видно, что на спектруме теперь есть коричневый цвет ).



    Делал на основе прошивки divgmx_ep4_basic20170429. На гитхабе свежее не нашёл.
    Хотя существует релиз divgmx_ep4_basic20181030, но без исходников.
    Только для микросхемы ep4ce10e22c8n.
    На Scorpion GMX работать не будет...
    На Evolution пока что не показывает второй спектрумовский экран...

    В целом главная задача выполнена - картинка есть.

    Буду дополнять тему...
    Последний раз редактировалось izzx; 18.12.2025 в 21:22.

    Скрытый текст


    https://drive.google.com/drive/folde...xZ83juCuaBe32I

    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
    Leningrad 1/Sega Joy Adapter
    DivGMX
    ZX Spectrum +2A
    ZX Evolution rev. C

    TCK Computer 486DX2-66/512K Tridend 9000i/8MB SIMM72/CF-IDE 512MB/ESS 1869/CNet CN200/FDD 5'25/FDD 3'5
    [свернуть]

    Эти 3 пользователя(ей) поблагодарили izzx за это полезное сообщение:

    creator(19.12.2025), Djoni(19.12.2025), Xela(19.12.2025)

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    23.04.2020
    Адрес
    г. Тотьма
    Сообщений
    904
    Спасибо Благодарностей отдано 
    273
    Спасибо Благодарностей получено 
    341
    Поблагодарили
    182 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Сейчас частота работы карты:

    • с шиной ZX - 112 Мгц. То есть чтение/запись идёт с такой частотой, а не постоянно. Как-то это работает, хотя есть сомнения в стабильности. По-моему на Эве надёжнее всего работает на частоте процессора 7 Мгц.
    • с памятью sdram - 84 Мгц. Память динамическая sdram на 32 Мб. MT48LC32M8A2 должна тянуть по-моему до 133 Мгц.
    • hdmi - 25.2 Мгц.


    Внутренней памяти vram в чипе ep4ce10e22c8n всего 423936/8=52992 байт.

    В прошивке есть виртуальный процессор Z80 на частоте 40 Мгц. Он используется для отрисовки меню OSD.

    Для отрисовки стандартного экрана ZX карта мониторит шину компьютера. Считывает все записи в память страниц 5, 7 и копирует во внутреннюю память чипа, виртуальную двухпортовую микросхему vram размером 16 кб. По 8 кб на каждый экран.
    И одновременно выводит по hdmi содержимое этой памяти.
    Также карта следит за записью в порты #7ffd, #fe.

    Моя идея в том, что карта подменяет ПЗУ компьютера на свою память sdram. Таким образом можно пользоваться областью 0000-3fff как видеопамятью, по специальным портам переключать страницы.
    Планировал сделать разрешение 256*192*256 цветов. То есть три страницы по 16384 байт = 49152 байт.
    Но работу с sdram я не осилил. Оказалось, в режиме случайного чтения она тратит на каждый байт целых 7 тактов на своей частоте. А это слишком медленно для отрисовки каждой строки изображения.
    Как я ни бился, изображение дрожало, байты читались не стабильно.
    Когда сделал во внутренней памяти промежуточный буфер для одной строки в 256 байт, стало получше. Но конец строки всё равно "дребезжал".
    Мне посоветовали работать с sdram по-другому, читать сразу несколько байт. Но не понятно как увязать это с чтением этой же памяти со стороны компьютера.

    Так что я переделал проект на работу только с внутренней памятью vram. Она успевает читать/писать за один такт.
    Последний раз редактировалось izzx; 19.12.2025 в 11:27.

    Скрытый текст


    https://drive.google.com/drive/folde...xZ83juCuaBe32I

    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
    Leningrad 1/Sega Joy Adapter
    DivGMX
    ZX Spectrum +2A
    ZX Evolution rev. C

    TCK Computer 486DX2-66/512K Tridend 9000i/8MB SIMM72/CF-IDE 512MB/ESS 1869/CNet CN200/FDD 5'25/FDD 3'5
    [свернуть]

  4. #3

    Регистрация
    23.04.2020
    Адрес
    г. Тотьма
    Сообщений
    904
    Спасибо Благодарностей отдано 
    273
    Спасибо Благодарностей получено 
    341
    Поблагодарили
    182 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Итак, экран 24576 байт. Я "разделил" его на три страницы по 8192 байта, которые включаются в область ПЗУ.
    Когда в одном байте два пикселя, это, конечно. не очень удобно. Но зато занимает в два раза меньше памяти.
    Но зато аппаратная прокрутка по горизонту тоже будет по 2 пикселя за раз. Это не очень хорошо, но можно использовать.

    Я сделал несколько портов ввода/вывода с общим младшим адресом 91 (#5b).
    Для управления экранами, страницами памяти карты, палитрой. Больше 20 портов.

    На данный момент свободной внутренней памяти осталось около 6 кб. Можно попробовать добавить немного маленьких спрайтов.
    Возможно, это пригодится чтобы обесклешивать главного героя в играх. Просто рисовать на втором экране поверх спрайта на обычном экране.

    Также будет возможность использовать 4 Мб памяти sdram как просто память.

    Каринку для SAM Coupé можно подготовить в DaDither, это удобно.

    Предстоит доработка всего этого, тестирование.
    Не понятно как будет на практике смотреться 60Гц, в то время как на спектруме 50. Надо ли добавлять какие-то прерывания по началу экрана, строки.
    Если попробовать синхронизироваться с сигналом int спектрума, то наверное не все телевизоры такое поймут. Особенно 48 Гц.


    Вот тут снял немного видео с экрана:
    https://drive.google.com/drive/folde...x56U7nyETo0Q0_

    Кстати, когда компьютер пишет в видеопамять, то при конфликтах видеоконтроллер читает байты не по тем адресам, и на экране появляется небольшой "снег". Прямо как фирменная особенность настоящего ZX!
    Это можно разглядеть на видео.
    Понятно, что изображение надо менять не во время прохода луча, тогда всё будет ок.

    После сброса загружается палитра со стандартными цветами ZX. И второй экран выключается, на всякий случай.
    Последний раз редактировалось izzx; 19.12.2025 в 15:31.

    Скрытый текст


    https://drive.google.com/drive/folde...xZ83juCuaBe32I

    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
    Leningrad 1/Sega Joy Adapter
    DivGMX
    ZX Spectrum +2A
    ZX Evolution rev. C

    TCK Computer 486DX2-66/512K Tridend 9000i/8MB SIMM72/CF-IDE 512MB/ESS 1869/CNet CN200/FDD 5'25/FDD 3'5
    [свернуть]

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)

Похожие темы

  1. Ответов: 0
    Последнее: 04.09.2025, 15:58
  2. Видеокарта для Спека
    от PavelZX в разделе Изображение
    Ответов: 73
    Последнее: 13.11.2020, 15:21
  3. Ответов: 13
    Последнее: 22.04.2017, 14:31
  4. Видеокарта для Скорпионов
    от alone в разделе Scorpion
    Ответов: 20
    Последнее: 17.05.2014, 00:00
  5. Ответов: 0
    Последнее: 17.06.2010, 16:36

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •