Uzix | микроблог

#Fpga

Портировал на MiSTer FPGA свежую версию TSConf с некоторыми доработками. Отли...

Портировал на MiSTer FPGA свежую версию TSConf с некоторыми доработками. Отличия от официального ядра TSConf для MiSTer:

  • Синхронизировано с апстримом TSConf на 15 июля 2026 года
  • Видеорежимы 48.8 и 60 Гц
  • Поддержка OPL3 (на основе кода из ao486)
  • Вывод MIDI через порты ввода-вывода AY (нужно включить в меню мистера UART MODE CONNECTION - MIDI)
  • UART через ZiFi-совместимые порты
  • Улучшено качество звука на аналоговых платах MiSTer FPGA без ЦАП I2S
  • Два настраиваемых джойстика с поддержкой режимов 8-битного Kempston, Sinclair, Cursor и QAOPM
  • Поддержка колеса мыши Kempston
  • Возможность поменять местами кнопки мыши Kempston
  • Раскладка клавиатуры приведена в соответствие с ZX Evolution
  • Улучшена совместимость с контроллерами клавиатур PS/2
  • Можно одновременно использовать две SD-карты: карта № 1 — VHD-образ, хранящийся на основной SD-карте MiSTer, а карта № 2 — физическая дополнительная SD-карта. Если VHD-образ не подключён, физическая дополнительная SD-карта становится картой № 1
  • Переключаемая панорама PSG: ABC или ACB
  • Выход магнитофона подмешивается в общий аудиовыход
  • Исправлен видеоглюк в Demorama
  • Различные улучшения и исправления, о которых даже я уже не помню

Ссылка на исходный код и бинарники: https://github.com/UzixLS/TSConf_MiSTer

Обновил ядро TSConf для MIST...

Обновил ядро TSConf для MIST:

  • Исправлено зависание при старте Bomberman Evolution;
  • MIDI выход теперь обрабатывается с обоих чипов AY (больше нет необходимости выбирать правильный чип в плеере WC).

https://github.com/UzixLS/TSConf_MiST

TSConf_250219.rbf 354.7 KB

Впилил в ядро NES для MIST...

Впилил в ядро NES для MIST поддержку светового пистолета. На VGA-мониторе работают даже немодифицированные оригинальные ромы, обычно работающие только на ЭЛТ-телевизорах. Для подключения пистолета нужно спаять простой переходник на 4 провода и подключить его ко второму порту DB9 на MIST.

nes_241008_zapper.rbf 362.8 KB zapper games.zip 195.3 KB

Обновил TSConf для MIST...

Обновил TSConf для MIST до версии 241005.

  • Добавлена поддержка колёсика мыши
  • Подтюнен звук AY чтобы точнее соответствовать звучанию zxtune и zx-multisound
  • Covox теперь выводится в оба канала (раньше выводился только в левый)
  • Исправлен ход часов если в MIST нет RTC
  • Исправлено чтение RTC из бейсика
  • Раскладка клавиш приведена в соответствие с таковой в ZX Evolution
  • Исправлена работа курсорных клавиш в бейсике (раньше при нажатии на кнопку могла случайным образом нажиматься цифра)
  • Улучшена обработка одновременного нажатия нескольких клавиш
  • Доработано считывание сканкодов клавиатуры для лучшей совместимости с разным софтом

https://github.com/UzixLS/TSConf_MiST

TSConf.r01 32.0 KB TSConf.rom 64.0 KB TSConf_241005.rbf 353.3 KB

TSConf на MiST

Последние 3 недели я занимался портированием TSConf на MiST, и вот, наконец, порт достиг того состояния, когда уже можно сделать релиз.

Что такое TSConf? Это, если можно так выразиться, сильно проапгрейженый ZX Spectrum со спрайтами, тайлами, DMA и прочими наворотами. Изначально TSConf создавался для ZX Evolution, но со временем его портировали на другие платформы, например MiSTer и Karabas Go.

Что умеет данный порт? VDAC 1, RTC, ZiFi (WiFi), магнитофонный вход/выход, выход MIDI, TurboSound FM, General Sound (2 Мб), SAA1099, SounDrive, поддержка мыши и двух джойстиков по стандартам Kempston/Sinclair/Cursor.

Как установить? Скопировать файлы TSConf.rom, TSConf.r01 и TSConf_240921.rbf в корень SD-карты, отформатированной в FAT32, распаковать Wild Commander и залить рядом любимые демки/игры/музыку для спектрума и для TSConf. Если нужно чтобы ядро запускалось автоматически (без меню) при включении MiST, то переименовать TSConf_240921.rbf в core.rbf.

Исходный код: https://github.com/UzixLS/TSConf_MiST

wc.zip 262.0 KB

Оно работает!

Наконец-то спустя недели освоения ПЛИС и Verilog удалось запрограммировать и испытать текстовый VGA/RS-232 терминал. Вот как это выглядит:

А вот как это выглядит со стороны ПК:

Device : EP1C3T144C8
Timing Models : Final
Total logic elements : 412 / 2,910 ( 14 % )
Total pins : 46 / 104 ( 44 % )
Total virtual pins : 0
Total memory bits : 20,510 / 59,904 ( 34 % )
Total PLLs : 0 / 1 ( 0 % )

ОЗУ на моей отладочной плате, к сожалению, не предусмотрено. Поэтому приходится экономить по максимуму. Например, шрифт содержит только самые основные символы и только в верхнем регистре. Но оно работает! Теперь буду прикручивать к этому процессор.