Важная информация

User Tag List

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

Тема: DIY-A586 v1.9

  1. #1
    Guru Аватар для SoftLight
    Регистрация
    28.02.2005
    Адрес
    Москва
    Сообщений
    2,123
    Спасибо Благодарностей отдано 
    803
    Спасибо Благодарностей получено 
    513
    Поблагодарили
    281 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    Smile DIY-A586 v1.9

    Собрал платку 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
    Последний раз редактировалось SoftLight; 05.11.2024 в 00:16.

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

    CityAceE (05.11.2024), creator (04.11.2024), djking (04.11.2024), Froggy (03.11.2024), korova (13.11.2024), Sergey (22.11.2024), shadwork (04.11.2024), valerium (04.11.2024)

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

  4. #2
    Guru Аватар для creator
    Регистрация
    02.07.2006
    Адрес
    Новосибирск
    Сообщений
    2,219
    Спасибо Благодарностей отдано 
    480
    Спасибо Благодарностей получено 
    241
    Поблагодарили
    144 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SoftLight Посмотреть сообщение
    Обратите внимание, что для платы нужен именно ГЕНЕРАТОР 18.432M, а не осциллятор. Припаянный осциллятор мгновенно дает КЗ.
    В чём разница? Тоже сталкивался с КЗ. Обескуражен.
    В правильно заданном вопросе содержится половина ответа

  5. #3
    Guru Аватар для SoftLight
    Регистрация
    28.02.2005
    Адрес
    Москва
    Сообщений
    2,123
    Спасибо Благодарностей отдано 
    803
    Спасибо Благодарностей получено 
    513
    Поблагодарили
    281 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от creator Посмотреть сообщение
    В чём разница? Тоже сталкивался с КЗ. Обескуражен.
    У осциллятора на 4 ноге земля (по крайней мере у того, что я купил на Aliexpress). А по схеме должно быть питание.

    это плохо
    это хорошо

  6. Этот пользователь поблагодарил SoftLight за это полезное сообщение:

    creator (05.11.2024)

  7. #4
    Junior
    Регистрация
    13.11.2024
    Адрес
    г. Рязань
    Сообщений
    1
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Подтверждаю, у меня также не заработал ни джойстик от денди, ни джойстик от сеги. Начал искать информацию, нашёл и ролик от автора проекта, и его посты на форуме electroda, ознакомился со всем. Как я понял, он взял джойстик от SNES, отрезал от него его родной коннектор, зачем-то воткнул туда какой-то PIC-контроллер, зашил его прошивкой(прошивка доступна). Подключил на 9 пиновый разъём, и показывает что джойстик работает, и в меню, и в эмуляторе NES. В общем поддерживаются по всей видимости только вот такие нечеловеческие джои, у меня что-то особого желания так искромсать нормальный джойстик не появилось. Если кто разберётся как без перепайки подключить нормальные джойстики - дайте пожалуйста знать как это можно сделать.

    Цитата Сообщение от SoftLight Посмотреть сообщение
    С чем пока не разобрался
    PC Next186: Я с этим ядром как раз больше всего игрался, автор выложил пример дампа флешки, с предустановленным DOS в урезанном виде, ага, вижу в 1м сообщение ссылку на этот образ "Образ карточки на 4Gb",
    меня сперва смущало что предлагаемый DOS урезан, я разобрался как можно быстро и удобно накатить DOS(если интересует - могу записать видео как это сделать из-под ОС Linux). Почему у Вас могла бы не стартовать корка причин наверное только две:
    1. Маловероятная - используемая флеш карта медленная. Тут всё понятно, попробуйте разных.
    2. Вероятная - предположу что используемый чип ОЗУ не успевает в рабочие тайминги. Кажется корка Next186 выдалась самой высокочастотной(либо на равне с risc-v, можете провериться ещё этой коркой), и на форуме electroda где-то были сообщения о том что у кого-то не работала именно корка Next186, на что сразу был задан вопрос про чип ОЗУ. Какой чип Вы запаяли? Я у себя использовал "W9825G6KH-5I", предварительно сверившись по даташиту, что он поддерживает частоты требуемого чипа.

    Я перепробовал в нём множество 16 битных игр, много чего прекрасно работает. Из исключений на которые я наткнулся это "THE FANTASTIC ADVENTURES OF DIZZY", экран отвратительно время от времени мерцает тёмным фоном, играть можно, но неприятно, и "Dangerous Dave in the Haunted Mansion", экран очень часто темнеет, играть невозможно. Ну и неприятно что не работает CGA графика, но я пробовал на телевизоре только, если кто к монитору подключил и у него игры с CGA графикой работают на DIY-A586, поделитесь пожалуйста этими сведениями. Игры с CGA графикой запускаются, но артефачат так, что, ничего не видно, а то и чёрный экран и всё. Зато куча топовых квестов(от лукасов, от сиерры), дюна 2 работают шикарно. Особенно приятно играть в игры с Русской локализацией.
    Про софтверную часть:
    По софту из отладчиков запустился только INSIGHT, с его помощью я выяснил что системный софт может использовать инструкцию "smsw" с аргументом "ax", для определения конфигурации машинки, на которой взлетает. И в DIY-A586 не реализована эта инструкция, хотя реализовать её проблем не вижу от слова совсем, она должна входить в набор инструкций 80286. А вот в INSIGHT видимо как-то это сделали по другому, благодаря чему он запустился. И вот было бы здорово под эту инструкцию на уровне прошивки заглушку вбить, которая сделает return 0(либо 1, пишу по памяти), чтоб дополнительный системный софт мог запускаться, если конечно ещё чего не повылазит. Есть ещё вариант добавить обработчик неизвестных инструкций на обработчик прерывания int 06h(либо в код БИОСа, либо написать резидентную программу), но я этого ещё не сделал, ленюсь. Работают всякие просмотрщики RAM памяти, это может также пригодиться для исследования работы MS-DOS на этой машинке.
    Про память:
    На железке распаяно 32 Мб RAM, тогда как DOS штатной прошивкой биоса ограничен только 2Мб, я попробовал перебил это значение на 32Мб(не только строковый вывод, но и само значение), в исходных кодах БИОС от автора, собрал, зашил в железку, после чего DOS у меня начал намного чаще зависать при запуске игр. Потом нагуглил что 16 битный DOS максимум может быть доступно 16Мб ОЗУ, но это значение в биос ещё вводить не пробовал. Было бы интересно еслиб кто мог рассказать про устройство памяти 80286, шлюз A20, и возможность преодоления барьера в 16Мб ОЗУ, конкретно в контексте ДУЯ(теории я и сам перечитал достаточно). Пока откатился обратно на родной биос.
    Про файловую систему:
    Я перепробовал несколько DOS(MS-DOS6.22, FreeDOS, SvarDOS и COMPAQ MS-DOS 3.31), очень хотел найти возможность развернуть DOS на разделе fat16b, это чтоб размер раздела был больше 2х Гб. Выяснилось что все DOS'ы которые устанавливаются, поддерживают только fat16, соответственно раздел под DOS всегда будет ограничен всего лишь 2 Гб. А COMPAQ DOS вообще не устанавливается, ему видите ли какую-то особую инструкцию ЦПУ подавай. Если кто преодолел барьер в 2Гб доступного дискового пространства, то поделитесь пожалуйста как это сделать.
    Про COM порт:
    Также на борту платы имеется COM-порт, я в него пробовал подключать 2 разных модели мышки, и ни одна в DOS не завелась, работала только мышь PS/2(я на время эксперимента её отключал конечно же). Если у кого завелась мышка в DOS(или амиге) на COM порту, дайте пожалуйста также знать, такое тоже интересно.
    Про verilog:
    Из исходников предоставленных автором корка Next186 прекрасно собирается. Изначально я допускал ошибку и загружал IDE Vivado, а потом опытные товарищи мне подсказали что Vivado предназначено для работы только с более новыми чипами, и для 6 спартана нужно Xilinx ISE. Я установил ISE, и сперва попробовал собираться из-под мейкфайла приложенного к исходным кодам, без каких-либо проблем сборка прошла на ура. Тогда я без какого-либо опыта работы с FPGA решил ручками набрать новый проект. По привычке забросил исходники из корня, и пытался их собирать. По полученным ошибкам понял чего не хватает, добросил нехватающие файлы, после чего сборщик начал ругаться на превышение 9k LUTS, и я обратил внимание на опции оптимизации в мейкфайле, разобрался где выставить, задал такие же в проекте, после чего корка начала собираться. Но я в неё никаких изменений не вносил. Из идей: есть некий проект graphics gremlin, вроде как прокачанная корка Next186 для ZxUNO, на котором используется точно такой же чип, и вроде как заявлена поддержка нормально работающей CGA графики. Было бы интересно попробовать перенести эти изменения для DIY. Если кто на уне игрался с график гремлином и мог бы подробно описать визуальные отличия - пишите, было бы интересно узнать об этом.

    С амигой я покаместь вообще не игрался.
    Последний раз редактировалось korova; 15.11.2024 в 15:04.

  8. Этот пользователь поблагодарил korova за это полезное сообщение:

    SoftLight (13.11.2024)

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

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

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

Похожие темы

  1. Ответов: 7
    Последнее: 09.03.2023, 13:28

Метки этой темы

Ваши права

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