Как я познакомился с Мурмулятором? Я искал какой-то недорогой одноплатный компьютер для запуска эмуляторов ретро-компов.Чем меня не устраивало использование эмуляторов на "настоящем" компьютере? Ничем. Просто хотелось отдельное устройство. Я рассматривал вариант покупки старого ноута специально под эту задачу, потом смотрел на Raspberry Pi 400, Orange Pi и на прочие одноплатники. В процессе поисков я наткнулся на видео самостоятельной сборки оригинального одноплатника с бюджетом в $5. Понятно, что впоследствии я в эту сумму и близко не вложился, но данное изделие меня всё-таки зацепило. Вот так у меня и появился первый ZX Murmulator.

ZX Murmulator 10RPI23
ZX Murmulator 10RPI23

К ценам я привязываться не буду, так как они меняются и сильно зависят от локации, но необходимо признать, что комплект для сборки Мурмулятора - это ультрабюджетное решение. Основные расходы - собственно плата микроконтроллера - Raspberry Pi Pico, а готовые комплекты для самостоятельной сборки продаются чуть ли не на всех площадках мира.

Уже после приобретения данной "железячки" я понял, что слегка просчитался, т.к. купил готовую модель с HDMI выходом, а большинство прикладных эмуляторов для неё поддерживали (на тот момент) только VGA. На момент написания данной статьи большинство всё ещё поддерживает именно VGA интерфейс. USB вход для клавиатуры - тоже имел ряд проблем (часть из которых до сих пор не решены, или решены внешними переходниками, см. https://github.com/No0ne/ps2x2pico).

Табличка с сайта https://murmulator.ru/do
Табличка с сайта https://murmulator.ru/do

Немного почитав материалы по теме (https://t.me/ZX_MURMULATOR и https://murmulator.ru/types), я выбрал другую конфигурацию - VGA-выход и PS/2-клавиатура. Следующий мурмулятор я уже собирал самостоятельно из приобретенного комплекта.

ZX Murmulator v.1.1
ZX Murmulator v.1.1
Структурна схема с https://github.com/AlexEkb4ever/MURMULATOR_classical_scheme
Структурна схема с https://github.com/AlexEkb4ever/MURMULATOR_classical_scheme

Если посмотреть слегка отстранённо, что из себя представляет Мурмулятор? Мурмулятор - это плата-переходник от Raspberry Pi Pico к определённой конфигурации периферии. И уже под эту конфигурацию народ затачивает прошивки под "пику", которые и являются эмуляторами.

Учитывая, что паять настольно мелкие штукенции, как ламели разъёма SD-карты, я тогда ещё не умел, то запорол пайку, навешал где-то соплей и непропаев, и долгое время обходился вообще без SD-карты. Но использовать Мурмулятор без карточки - тоскливое занятие, т.к. очень сильно ограничен выбор подходящего ПО, и того, что оно может в данном режиме делать. Тут вмешалась судьба )) Дело в том, что сам я - програмист. И если какой-то программы нет, то её достаточно всего лишь написать, или адаптировать/портировать существующую.

Начал я с pico-nes (https://github.com/xrip/pico-nes) - эмулятора приставки Dendy-8, известной так же, как NES (Nintendo Entertainment System). Благо, разрабатывать ничего было уже не надо, а адаптация под отсутствие SD-карты прошла достаточно просто - сделал прошивку со встроенными играми, потом ещё одну, потом прикрутил LZW-упаковку встроенных игр, т.е. развлекался по-полной. Дошёл до упаковки 37-ми игр в одну прошивку и... починил SD-карту.

Теперь прошивки со встроенными играми потеряли актуальность, но программерский зуд меня не оставлял, поэтому я поучаствовал в разработке ещё нескольких прошивок. В частности, для pico-xt (https://github.com/xrip/pico-xt) я полностью переработал подсистему виртуальной памяти, реализовал эмуляцию HIMEM, UMB, XMS, EMS, реализовал swap и скрестил его с работой внешней PSRAM, которая к тому времени появилась у Мурмуляторов, в виде навесного модуля.

Модуль ESP PSRAM 64H
Модуль ESP PSRAM 64H
Структурная схема подключения PSRAM
Структурная схема подключения PSRAM

Потом я поучаствовал в "озвучивании" этого ХТ-эмулятора... Принц Персии, который не должен на таком железе даже запускаться - он играл музычку виртуальным AdLib'ом! Wolf 3D, работающий под ХТ - восторг! Для меня. Не все любят и понимают увлечение ретро-эмуляторами.

В дальнейшем я участвовал ещё в нескольких проектах совместно с xrip (https://github.com/xrip), ну и самостоятельно портировал эмуляторы: Atari 800 (https://github.com/DnCraptor/atari800), РК-86 (https://github.com/DnCraptor/pico-rk86), БК-0010/11М (https://github.com/DnCraptor/PICO-BK), Apple //e (https://github.com/DnCraptor/pico-iie), правда, последний пока без поддержки дисководов.

Ребята из комьюнити тоже не сидели на попе ровно и создали внушительную коллекцию всяких эмуляторов, которые возглавляет набор эмуляторов ZX Spectrum, в честь которого и названо устройство - ZX Murmulator. Наиболее впечатляющая коллекция прошивок для мурмулятора собрана тут: https://murmulator.ru/firmware-zx и тут https://murmulator.ru/firmware-cross.

ZX Murmulator - относительно молодой проект с не очень большим комьюнити, но мы рады будем вас приветствовать в наших рядах.

В настоящее время активно разрабатывается ZX Murmulator OS - операционная система под Мурмулятор (https://github.com/DnCraptor/murmulator-os). Она уже существует в версии 0.2.6, в которой имеется интерпретатор Бейсика, аналог mc, mcedit, cmd, многих unix/dos утилит, но это совсем другая история, которую я возможно как-то тоже вам поведаю...

Комментарии (4)


  1. Javian
    31.08.2024 11:45
    +2

    Видел несколько раз в телеграмм чатах упоминания слова "мурмулятор". Но что имелось ввиду нагуглил не с первого раза. Нехватает в сети статей, видео с демонстрацией работы.


  1. jobless
    31.08.2024 11:45

    Беглый поиск не дал результатов на тему поддерживаемых мониторов/разрешений для vga/hdmi.


    1. mikeveng73 Автор
      31.08.2024 11:45
      +1

      Основное разрешение VGA 640х480 60Гц, есть режимы с разрешениями 800*600 и 1024*768, например pico-bk работает в физическом режиме 1024*768@60 с утроением строк и удвоением пикселов (для 512*256). В HDMI, насколько я помню, часто используется 75 Гц кадровой, но 60 - тоже бывает. Оно в конечном итоге зависит уже не от устройства, а от программиста - какой драйвер подцепил, такое и будет.


  1. NickSin
    31.08.2024 11:45
    +2

    Вот это я понимаю, замурчательно)