Мурмулятор — ультрабюджетный микрокомпьютер
Как я познакомился с Мурмулятором? Я искал какой-то недорогой одноплатный компьютер для запуска эмуляторов ретро-компов.Чем меня не устраивало использование эмуляторов на «настоящем» компьютере? Ничем. Просто хотелось отдельное устройство. Я рассматривал вариант покупки старого ноута специально под эту задачу, потом смотрел на Raspberry Pi 400, Orange Pi и на прочие одноплатники. В процессе поисков я наткнулся на видео самостоятельной сборки оригинального одноплатника с бюджетом в $5. Понятно, что впоследствии я в эту сумму и близко не вложился, но данное изделие меня всё-таки зацепило. Вот так у меня и появился первый ZX Murmulator.
ZX Murmulator 10RPI23
К ценам я привязываться не буду, так как они меняются и сильно зависят от локации, но необходимо признать, что комплект для сборки Мурмулятора — это ультрабюджетное решение. Основные расходы — собственно плата микроконтроллера — Raspberry Pi Pico, а готовые комплекты для самостоятельной сборки продаются чуть ли не на всех площадках мира.
Уже после приобретения данной «железячки» я понял, что слегка просчитался, т.к. купил готовую модель с HDMI выходом, а большинство прикладных эмуляторов для неё поддерживали (на тот момент) только VGA. На момент написания данной статьи большинство всё ещё поддерживает именно VGA интерфейс. USB вход для клавиатуры — тоже имел ряд проблем (часть из которых до сих пор не решены, или решены внешними переходниками, см. https://github.com/No0ne/ps2×2pico).
Табличка с сайта https://murmulator.ru/do
Немного почитав материалы по теме (https://t.me/ZX_MURMULATOR и https://murmulator.ru/types), я выбрал другую конфигурацию — VGA-выход и PS/2-клавиатура. Следующий мурмулятор я уже собирал самостоятельно из приобретенного комплекта.
ZX Murmulator v. 1.1
Структурна схема с 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
Структурная схема подключения 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 утилит, но это совсем другая история, которую я возможно как-то тоже вам поведаю…