Uzix | микроблог

#Электроника

Портировал на 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

Сдул пыль со старого проекта - PCI-OPL3...

Сдул пыль со старого проекта - PCI-OPL3. Полтора года назад остановился на том, что в некотором софте карта определяется через раз. Как работает алгоритм детекта? Код записывает значение в регистр чипа OPL для запуска таймера, ждёт некоторое время, а затем читает регистр статуса - переполнился таймер или нет. Чтение и запись регистров на карте работают стабильно и без ошибок. Но, как оказалось, слишком быстро. Чтобы не реализовывать полноценную задержку на системном таймере, авторы некоторого софта полагались на то, что длительность инструкции чтения/записи регистров будет фиксирована, и для создания задержки просто делали несколько чтений в цикле. Для ISA это работало, для PCI уже нет.

В своей карте я применил PCI-ISA мост CH365P. Он довольно примитивный и не умеет растягивать I/O циклы, а значит это придётся делать софтово. Для этого вместе с кодексом я набросал простой драйвер, который через EMM386 перехватывает обращения к портам карты и вставляет дополнительные циклы ожидания.

На первый взгляд это работает нормально. Попроверяю ещё - и можно релизить.

Понемногу продвигается IO плата...

Понемногу продвигается IO плата для MiSTer FPGA. Кстати, кто-нибудь встречал переходник с MicroSD на FFC (тонкий шлейф)? Хочу вывести карту памяти с платы Мистера на заднюю панель, но для этого нужно делать отдельную плату толщиной 0.6-0.8мм, может есть что-нибудь готовое?

Бывает вот сидишь...

Бывает вот сидишь, потихоньку ковыряешься в заброшенном проекте, правишь в коде свои глупые ошибки. И, ВНЕЗАПНО, в самый неожиданный момент оно начинает работать :o

SPDIF в OtterlyMIDI заиграл. Я успел пожалеть что решил сделать его по хардкору - без специализированного модуля SAI (которого нет в дешёвых попсовых контроллерах), а жонглируя битами в I2S + в последнем свободном SPI. Но каким-то магическим образом биты всё же встали на свои места, сложились в манчестерский код, который сложился в семплы, которые сложились в музыку. Ура!

Весь день потратил на замену...

Весь день потратил на замену севшей ламповой подсветки в мониторе на светодиодную. Я никогда раньше не лазил внутрь мониторов и был морально готов после этого “ремонта” нести его в мусорку. Но, на удивление, всё прошло по большей части гладко. Основную проблему составило крепление светодиодной ленты на двухсторонний скотч - сначала скотч, а затем и лента норовили приклеится как им вздумается. а не как положено. Ну и без пары сломанных пластиковых защёлок не обошлось :( Но всё же по итогу монитор заработал.

Чем мне приглянулся этот монитор? Он большой (19") и квадратный (5:4) - раз. Два - есть VGA и DVI. Три - держит 15кГц строчную и 48/50Гц кадровую на VGA - хотя тут справляется на четыре с минусом и некоторые режимы работают кривовато . Но самое вкусное - в родном 1280x1024 он держит 48/50 Гц на DVI - что делает его, наверное, идеальным монитором для MiSTer - со включённой постобработкой картинки на Мистере (сканлайны, симуляция ЭЛТ и т.п.) картинка просто идеальная: нет подёргиваний при плавном скролле. которые характерны для эмуляторов и скалеров, работающих в 60Гц. А так же нет характерных для VGA искажений ширины/высоты некоторых колонок и строк пикселей - что можно заметить на тонких спектрумовских шрифтах, или, ещё лучше, на пиксельной шахматной заливке, которая на VGA на LCD-мониторах обычно превращается в кашу.

Не так давно решил отправиться на покой...

Не так давно решил отправиться на покой мини-компьютер, служивший мне с 2015 верой и правдой сначала подкроватным сервером, а потом подтелевизорной эмуляторной машиной с Batocera. Не то чтобы я много играл (скорее, больше настраивал :)), но потерю захотелось восполнить. По этому поводу я таки прогрелся на покупку MiSTer FPGA.

Формат с проводами, торчащими во все стороны, я плохо перевариваю, и по этому поводу начал разработку ThinITX-материнки для китайского варианта DE10-Nano. Планирую на ней сделать 24-бит цвет на VGA (против 18 бит у китая), I2S звуковой ЦАП с предусилителем (однобитный у китая), SPDIF/TOSLINK, АЦП для магнитофонного входа (у китая нет), RTC, WiFi/BT адаптер в формате MiniPCIE, MT32-Pi на борту, 4 USB порта сзади + 1 внутри + гребёнки под 4 USB спереди, SNAC со встроенным шифтером на 5В/3.3В, управление ARGB-подсветкой (куда ж без этого), питание от 12В, защиты от перенапряжения, превышения тока и короткого замыкания (отдельные шины питания для мистера и USB).

Ещё в китай-девайсе мне не нравится радиатор и вентилятор на нём. По-хорошему, такие вещи должны иметь отдельное крепление, а не быть приклеены к BGA чипу, который когда-нибудь может из-за этого словить отвал шаров (особенно когда вентилятор выработает ресурс и начнёт давать сильные вибрации). С этим не очень понятно что делать, но как минимум стойки для вентилятора 92x92 предусмотреть можно (а заодно и регулировку его оборотов в зависимости от температуры FPGA).

ВГшка, но не та...

Целая огромная коробка на одну микросхему, да ещё и с бумажной инструкцией - такой роскоши даже официальные поставщики Альтеры (у которых я покупал дорогущий циклон для миста) себе не позволяют :)