Собрал платку DIY-A586, некоторое время назад купленную у Павла (chipkin.ru). Решил поделиться впечатлениями и опытом.
Автор разработки Piotr Gozdur aka piotr_go, версия платы v1.9. Есть гитхаб автора, но, на самом деле, информации в сети не так уж много. Особенно, пришлось попотеть, чтобы найти правильные версии ромов для флешки.
Собранная плата
Характеристики:
Плата содержит:
- FPGA Spartan6 XC6SLX9
- 32 МБ 16-битной памяти SDRAM
- 16 МБ флэш-памяти для ядра и ПЗУ
- выход HDMI
- аналоговый аудиовыход + вход для магнитофона
- слот SD-карты (есть вариант с uSD)
- RS232
- 2x порта джойстика
- 2x PS/2 (клавиатура, мышь)
- штырьковый разъем клавиатуры A500
- разъемы для дисковода (питание и данные)
- 2 кнопки (меню и сброс)
- 2 светодиода (назначение зависит от ядра)
- разъем питания USB-C 5В
- размеры 100x100 мм
Во флэш-память платки можно загрузить до 30 конфигураций. Бесплатно можно хранить не более 4-х конфигураций. За $20 автор вышлет ключ, разблокирующий все слоты (нажать 'V' затем 'K').
Сборка
А что тут сказать... Аккуратно собираем по схеме. Ошибок на плате нет. Качественные фото выше я прикрепил. Обратите внимание, что для платы нужен именно ГЕНЕРАТОР 18.432M, а не осциллятор. Припаянный осциллятор мгновенно дает КЗ.
Прошивка
Начальная прошивка встроенной флешки осуществляется любым китайским программатором типа CH341A:
Я использовал программу SiberiaProg-CH341A. Ссылку не привожу - есть много такого рода софта.
Качаем с гитхаба файл main.bin и прошиваем. Игнорируем сообщение о том, что размер не совпадает с размером флеш-памяти.
После прошивки и перезагрузки на экране появляется пустая таблица со слотами конфигураций. Далее, на карточку памяти, отформатированную в FAT32, кладем ядра прошивок в формате .d19 и все файлы .ROM, которые нужны для работы ядер. Я сам запарился искать по всем подряд форумам нужные совместимые прошивки. Поэтому, подготовил архив SDCard.zip.
Нажимаем, стоя в нужном слоте, клавишу Ins и выбираем из папки core нужный конфиг .d19. Обычно, конфигу нужны еще прошивки, которые тоже будут храниться во флеш памяти. Это файлы kickstart для Амиги или файлы ПЗУ для Спектрума (с расширением .ROM). Стоя в начальной таблице, нажимаем F4 и попадаем в содержимое флеш-памяти. Первый раз флеш-память нужно отформатировать. Далее, нажимаем Ins и загружаем все .ROM файлы, которые нам понадобятся.
Готовые конфигурации:
- ZX Spectrum 128 + esxDOS 0.8.9
- Amiga 500+ (авторское ядро mikan)
- NES
- PC Next186 SoC
- RISC-V (Doom, MP3-плеер)
- BMP24, Kolory
Качаем файлы .d19 с гитхаб автора.
Конфиг ZX Spectrum
Вполне неплохо все работает. Игры играют, divMMC эмулируется. Во внутреннюю флешку шить файлы 128.ROM и ESXMMC.ROM. Для работы esxDOS на карту памяти в формате FAT32 нужно распаковать папки BIN, SYS, TMP. Для запуска выбора файлов, жмем F11. Какие-то демки не заработали. Турбо-саунда нет.
Конфиг RISC-V
Есть отлично работающий порт DOOM-а. Нужно создать папку DOOM и в нее положить doom.bin и doom.wad. В файле SDCard уже все есть.
Есть плеер mp3, работает отлично.
Конфиг NES
Говорят, работает отлично. Но что-то у меня не заработал ни один джойстик.
7, 9, 5 не подключаем, 8 - земля, 6 - огонь.
Клавиши управления:
z - select
x - start
c - B
v - A
1/2 - джойстик 1/2
F1/F2/F3 режимы экрана, настройка скалера
Конфиг Амиги:
По характеристикам соответствует примерно A500+. Конфига AGA нет и не будет. Работает очень шустро, хотя совместимость не всегда идеальна (см. видео).
Скорость многих (а может и всех) игр явно выше, чем должна быть. Видимо, проблема в том, что процессор работает на частоте около 90mHZ, так показывает sysinfo. Автор выложил тестовую 'медленную' прошивку v1.8 mikan slow.
Можно выбрать варианты: Kickstart 1.3, Kickstart 3.1, Kickstart 3.1 + SD (это значит, что SD карта у нас выполняет роль винчестера, об этом далее), Kickstart 3.2.2.1 + SD. Последний пункт SD позволяет выбрать любой файл Kickstart с SD карты. Опять же, я все заботливо сложил в папку CORES\amiga. Там все нужные прошивки нужных версий. Для последнего ядра mikan во встроенную память шить (F4-Ins) KICK13.ROM, KICK31.ROM, KICK3221.ROM и SD.ROM. SD.ROM это авторский патч, позволяющий любому kickstart работать с SD картой как с винчестером.
Клавиши управления:
CTRL+ALT+F12 - menu
CTRL+ALT+F11 - reset
CTRL+ALT+PrScr - change of resolution
Джойстик (простейший стандарта Atari, работающие на замыкание) подключать вот так:
У меня заработал почему-то только в разъеме Joystick 2.
Подключение эмулятора дисковода для конфига Амиги:
Прошиваем Gotek в FlashFloppy. Для корректного автоопределения автосмены дискеты для Амиги, первым делом, создаем в корне нашей usb-флешки файл FF.CFG и прописываем в него строку interface = amiga, вставляем флешку в Gotek. Шлейф нужен прямой, неперекрученый. Джампер в положении S0. Еще, у меня установлена перемычка JA-J5, не помню зачем.
Работа с SD картой как с винчестером Amiga
Порядок создания образа винчестера для Амиги и установки на него AmigaOS описан у автора вот тут. Вкратце: создаем образ жесткого диска в формате hdf с помощью WinUAE Amiga emulator. Там же грузим Workbench с дискет .adf, задаем, драйвер uaehf.device для работы с диском. Создаем разделы для логических дисков, форматируем. Затем, записываем полученный образ .hdf на карту памяти.
Есть два варианта: вся sd-карта это один раздел, отформатированный и разбитый как жесткий диск Амиги. И второй вариант, когда на sd-карте есть разделы для DOS, Амиги и FAT32 для хранения прошивок и образов игр для других конфигов. Я оба варианта образов подготовил и выложил, см. ссылки.
Образы записываются на sd-карты с помощью Win32DiskImager или Raspberry Pi Imager или balenaEtcher.
Карточка памяти нужна сравнительно быстрая, лучше всего, не ниже 10 класса. При работе с медленной карточкой в режиме жесткого диска Амиги, встречал много проблем в виде не читающихся секторов.
С чем пока не разобрался
- Конфиг PC Next186 - Пока не разобрался как запустить. Черный экран после рестарта. Если кто тут поможет будет здорово!
- Не смог подобрать работающие джойстики в конфиге NES. Пробовал джойстики от Dendy, ATARI, SMD с разъемом DB9.
- В конфиге Амиги заработал почему-то только джойстик ATARI в разъеме Joystick 2.
Ссылки
Гитхаб проекта DIY-A586
Тема на форуме elektroda.com
Образ HDF размером 1Gb с установленной AmigaOS 3.2
Образ карточки на 4Gb с разделами: 1Gb DOS FAT16, 2GB AmigaOS (не активирована), 1Gb FAT32