ZX Spectrum разработки «Sinclair Research Ltd» и его клоны - несомненная веха в истории бытового компьютеростроения. Если брать верхнюю оценку, всего было произведено до 9 миллионов ZX Spectrum и его клонов, что делает его одним из самых массовых домашних компьютеров 1980-х годов (на втором месте после Commodore 64 - порядка 17 млн. экземпляров). Многие люди, владельцы Спектрума, Пентагона, или Ленинграда, в далёких 80-ых, в настоящее время переживают ностальгию по ушедшему детству/отрочеству/юности... Что питает спрос на антикварные и новодельные "спектрумы".

Понятно, что существует огромное число всевозможных эмуляторов, которые дают возможность поиграть в детство. Но далеко не всем они "заходят". Кому-то надо, чтобы было более железно, лампово и старо-клавиатурно, кто-то хочет просто повозиться с микросхемами тех лет... Вот для них и продают наборы для самостоятельной сборки всевозможных "ленинградов" и "нео-пи-си". Однако, есть и промежуточный спрос - чтобы эмулятор, т.к. оно дешевле, но чтобы отдельная коробочка, т.к. оно более "железно".

Выбор в этой нише тоже достаточно разнообразен, но я бы хотел остановиться на Мурмуляторе и его клонах (см. другие мои статьи на эту тему). Для него существует 5 немного различающихся реализаций спектрума: technocat, fast-beta, speccyP, fruit-bat и pico-spec. Все они имеют свои положительные и отрицательные грани, например, первый - очень хорош для мобильных реализаций на компактных устройствах с TFT-дисплеями, т.к. имеет продвинутую экранную клавиатуру, но все они достаточно универсальны и имеют похожий движок. Несколько выделяется из их ряда только pico-spec, т.к. только у него движок асинхронный, что позволяет очень точно отрисовывать всякие занимательные бордюрные эффекты, которые часто попадаются в демо-сцене и в редких играх. Недостатки pico-spec'а являются продолжением его достоиств - сложность синхронизации звука. У pico-spec'а, пожалуй, худшая реализация звукового тракта. Правда, замечают это далеко не все - в основном те, кто хочет себе спектрум для прослушивания трекерной музыки. Для игр качество звука вполне приемлемое.

Вот на pico-spec'е я и собираюсь немного остановиться подробнее, т.к. являюсь автором этого порта. Изначально у меня и в мыслях не было делать эмулятор Спектрума под Мурмулятор, т.к. их и так до чёрта. Но меня убедительно просили "хотя бы попробовать", т.к. существующие версии не удовлетворяли взыскательных пользователей, мол, часто картинка кривая получается. Постоянно приводили примеры, и хвалили ESPectrum - реализацию эмулятора "спесси" на микроконтроллере ESP32 (поддерживает "из коробки" платы Lilygo TTGO VGA32, Antonio Villena's ESPectrum board и Olimex ESP32-SBC-FabGL). Платы не сказать чтобы дешёвые, но вполне доступные. Понятно, что Мурмулятор дешевле, плюс - заточен под самостоятельную сборку, что потенциально ещё сильнее снижает стоимость изделия (если лапки прямые).

К моменту начала портирования, существовала только 1.2 версия ESPectrum, а дальше реализации несколько разошлись по набору возможностей, хотя, со временем, наверняка часть фич будут портированы или бэкпортированы.

И так, что умеет pico-spec? Начать стоит со списка эмулируемых машин:

  • оригинальный ZX Spectrum 48K;

  • оригинальный ZX Spectrum 128K;

  • советский клон ZX Spectrum 128K - Pentagon 128K,

  • его расширения: Pentagon 512K и Pentagon 1024K

  • и совсем редкий зверь - советская приставка на основе спекрума - Эльф (ALF TV GAME)

выбор машины
выбор машины
выбор ROM
выбор ROM

Для ZX Spectrum 128K доступны прошивки с различными расширениями (Amstrad ZX Spectrum 128K +2 и ZX81+):

ZX Spectrum 128K ROM-set
ZX Spectrum 128K ROM-set

Режим ZX81+ - для поддержки совсем уж старых доспекрумных игр, которые на нашем бывшем советском пространстве не шибко распространены, но всё это наследие ESPectrum, который делали ребята на западе под свои нужды. А вот пентагоны 512K и 1024K - это уже местная (моя) доработка. Для них не нужен отдельный ROM, поэтому они используют оригинальный, от Pentagon 128K. Все они используют одинаковый ROM с TR-DOS версии 5.03:

TR-DOS start screen
TR-DOS start screen

Ну и зачем нам TR-DOS без дисковода? Конечно, он есть! Эмулируется контроллер Betadisk, который умеет монтировать образы дисков в виде TRD и SCL-файлов, расположенных на sd-карточке Мурмулятора.

Выбор диска
Выбор диска
Выбор образа диска
Выбор образа диска

Звёздочкой помечены допустимые для монтирования в качестве диска файлы.

Совсем редкой игрушкой, эмулируемой в pico-spec'е, является Эльф:

ALF TV Game
ALF TV Game

Для него существует даже отдельная прошивка-клон ESPectrum - pico-alf, в которой нет других спектрумов. И, вероятно, я посвящу ему отдельную статью.

Естественно, pico-spec поддерживает загрузку TAP-файлов (оцифрованных определённым образом записей магнитофонной ленты) - стандарт "de facto" для распространения спектрумовских программ.

Выбор TAP-файла
Выбор TAP-файла

Поддерживаются два режима загрузки: fast-flash и обычный. Если быстрый способ не срабатывает, а такое бывает достаточно часто, то приходится загружать по-старинке, ожидая конца загрузки. Для этого в меню имеется отдельный пункт: Play/Stop. Для совсем сложных случаев (и такие встречаются) имеется Tape browser, который позволяет перемещаться по секциям загрузки.

Пример просмотра TAP-файла
Пример просмотра TAP-файла

В режиме загрузки ТАР-файлов можно прочитать и WAV-файл, а вот MP3-только конвертировать в WAV, а затем загрузить. На потоковою обработку mp3 микроконтроллера всё же не хватает.

За процессом загрузки можно следить, используя встроенное окно расширенной информации (доступно по F8):

File load progress
File load progress

Более современный и надёжный способ - использовать слепки памяти и состояния процессора, при этом pico-spec поддерживает 3 формата слепков: .SNA, .z80 и .p-файлы:

Загрузка слепка
Загрузка слепка

В слепке сохранён и тип машины, т.е. эмулятор автоматически переключится на необходимый формат эмуляции.

Так же, для любителей хардкора, поддерживается загрузка с реального магнитофона (в качестве которого часто сейчас используют мобильник с соответствующим wav или mp3-файлом)

real audio-in
real audio-in

Надо заметить, что загрузка реального звука очень "нежная", и малейший сбой или помеха покорёжит входной поток данных. Рекомендуется на это время отключить мессенджеры, чтобы не "блямкали", и следить за качеством питания всех устройств, участвующих в процессе загрузки. В pico-spec тоже хватает теневых процессов, которые могут повредить входящий поток аудиоданных. Все эти процессы приостанавливаются, соотв. что-то может перестать работать. Рекомендуется включать Real sound-in только на время загрузки программы, и выключать сразу по её окончании. Турбо-загрузчики официально не поддерживаются, но бывает что "везёт", и удаётся загрузить даже ленту, записанную турбо-загрузчиком.

А теперь - чит, которого мы были лишены в 80-ых - горячие сохранения (снепшоты)! Сколько раз приходилось бросать игру, т.к. не удавалось сохранить промежуточный результат, и приходилось начинать с начала? В эмуляторах мы лишены этой проблемы - сохраниться можно в любой момент, и загрузить игру с любого сохранённого момента.

слоты сохранения
слоты сохранения

Все эти сохранения являются полноценными .SNA-файлами, т.е. их можно передавать друзьям, для "доигрывания" (лежат в "скрытой" папке /spec/.p на sd-карточке).

Не смотря на то, что качество эмулируемого звука в pico-spec далеко от идеала, но благодаря обильным настройкам можно выбрать приемлемый вариант звучания любимой игры:

Управление Турбо-саундом
Управление Турбо-саундом
Выбор стерео-режима
Выбор стерео-режима
Полное отключение OPL-чипов
Полное отключение OPL-чипов

Бывает, что игра написана настолько криво, что эмуляция никак не может справиться с потоком звуковых эффектов, для этого предусмотрен пропуск кадров (троттлинг):

Управление пропуском кадров
Управление пропуском кадров

Изредка встречаются игры, которые не могут быть корректно воспроизведены даже с троттлингом (например, Maniac Miner 128). Для таких индивидуумов имеется турбо-режим - режим разгона виртуального z80 (центрального процессора в Спектруме). В нормальном спектруме z80 работает на частоте 3.5 МГц, но турбо режим даёт возможность переключить его на 7, 14 и 28 Мгц (Alt+F2). Следить за загрузкой процессора и частотой кадров можно в плашке доступной по F8. Цвет фона плашки отражает "скорость" процессора. Синий - 3.5, красный - 7, и т.п.

Virtual Z80 7 МГц
Virtual Z80 7 МГц

Если присматривать за параметром IDL, то видно, как начинаются тормоза при выходе этого параметра в отрицательную область (но надо найти подходящую игру, которая так сильно загрузит проц). Менее заметны тормоза при снижении FPS (штатные значения находятся в диапазоне 48-50 Гц)

Необходимо заметить, что pico-spec поддерживает несколько аппаратных платформ и версий мурмулятора. И в рамках одной платформы бывают сильно разные конфигурации. Например, наличие PSRAM серьёзно повышает производительность в режимах Pentagon 512K/1024K. Как именно определилась текущая платформа - можно запросить у прошивки по Alt+F1:

RP2350B Pimoroni Pico Plus 2
RP2350B Pimoroni Pico Plus 2

На скриншоте выше - наиболее мощная на сегодняшний день конфигурация: Murmulator с SPI PSRAM + RP2350B от Pimoroni (Pco Plus 2) с QSPI PSRAM на борту. К слову, рекомендую, при возможности, брать VGA вариант, т.к. под него больше всего прошивок всяких разных других устройств:

Всяко-разные прошивки под Мурмулятор
Всяко-разные прошивки под Мурмулятор

Вернёмся к pico-spec'у. Для упоротых программистов имеется даже встроенный режим дебага:

Меню для программистов
Меню для программистов
дебагер
дебагер
краткая справка по горячим кнопкам дебагера
краткая справка по горячим кнопкам дебагера

В дебагере поддерживаются основные необходимые функции, но без излишеств.

В основном меню тоже есть имеется небольшая справка по горячим кнопкам:

горячие кнопки
горячие кнопки

А ещё, со времён ESPectrum в pico-spec'е сохранилась красивая анимированная заставка:

заставка
заставка

Рассказывать про pico-spec в деталях можно ещё много, но основое я вам, ребята, поведал.

Для тех, кто не смог собрать/достать/купить Мурмулятор, существуют пара альтернатив: Waveshare RP2040-PiZero и Olimex RP2040-PICO-PC, под оба изделия имеются прошивки pico-spec'а. Но, если интересно моё мнение - берите Olimex RP2040-PICO-PC и Pimoroni RP2350B Pico Plus 2. Это если нет возможности добыть Мурмулятор или Френк.

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


  1. GennPen
    18.05.2025 05:09

    А теперь - чит, которого мы были лишены в 80-ых - горячие сохранения (снепшоты)! Сколько раз приходилось бросать игру, т.к. не удавалось сохранить промежуточный результат, и приходилось начинать с начала?

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


    1. mikeveng73 Автор
      18.05.2025 05:09

      Да, было много всяких полукустарных реализаций. Чаще всего она просто NMI вызывала, а оно уже что-то к чему прикручено. И чего только не прикручивали - и дебагер туда вешали, и файловый менеджер... Забавно, что это наша местная придумка. На западе оно встречалось сильно реже. А тут - прям поветрие ))


      1. lemur-galago
        18.05.2025 05:09

        Справедливости ради, кнопка Magic, о которой, скорее всего, говорится выше была не полукустарной штукой, а фишкой контроллера betadisk (хотя она, конечно же вызывала nmi). Реализация у betadisk была достаточно кривой. В частности содержимое регистров процессора записывалось в стек и смещение вершины стека могло попортить что-то нужное в ОЗУ ну и, емнип, не все регистры процессора сохранялись, поэтому не всегда можно было потом продолжить игру.


        1. mikeveng73 Автор
          18.05.2025 05:09

          Вроде в Скорпионе она была и без бетадиска, и вызывала дебагер, но уже не уверен. Столько лет прошло..


          1. ash_lm
            18.05.2025 05:09

            В Скорпионе она вызывала встроенный, как они называли, теневой сервис - монитор от MOA, а там и дебагер и классическая "magic", и что-то ещё.

            P.S. из интересного: в любимом мной питерском электронном журнале ZX-Format при нажатии на кнопку "magic" на ZX-Scorpion вызывался вообще свой шуточный монитор.


        1. yappari
          18.05.2025 05:09

          Была и антимэджиковая защита, когда стек переносился на начало экрана. Соответственно, всё валилось и после записи и при попытке запуска дампа. Правда в самом дампе после можно было с переменным успехом поковыряться. Также был вариант с программированием контроллера, когда он вгонялся в состояние, при котором нажатие Мэджика просто портило диск (писался мусор).


  1. Man105
    18.05.2025 05:09

    Ставил эмулятор и настольгические ощущения были только 15 минут. Рад что людям нравится такая игрушка.


    1. mikeveng73 Автор
      18.05.2025 05:09

      Да, от писишного эмуля у меня тоже ощущения не те. А вот отдельный девайс - очень близко к необходимому )


  1. RealOldGamer
    18.05.2025 05:09

    Так сразу и не соображу, какую версию pico-spec накатывать на мурмулятор ultimate


    1. mikeveng73 Автор
      18.05.2025 05:09

      не помню, есть ли на Ultimate (у меня его пока нет) переключение на PWM, есть ли там VGA-выход. Если есть, и сейчас в нём стоит первая пика "зелёная", то m1p1-spec-2048-378-PWM-VGA-1.2.B.uf2 из последнего релиза: https://github.com/DnCraptor/pico-spec/releases/tag/v.1.2.B
      если отличается железяка, то надо посмотреть другие. там есть "легенда", по которой расшифровывается имя файла


      1. RealOldGamer
        18.05.2025 05:09

        на плате написано v. 2.3, значит m2p2-spec-378-GP8-PWM-HDMI-1.2.B.uf2


        1. mikeveng73 Автор
          18.05.2025 05:09

          Не, вряд-ли. Те версии к версии оригинального Мурмуля вряд-ли имеют отношение. Мурмуль 2.0 вышел совсем недавно, и Ультимейтов к нему я ещё не видел. Там же другой пинаут. А в прошивке m1 - обозначат пинаут Мурмуля от первой версии, p1 - первая пика, что к версии мурмуля не имеет отношения.


        1. mikeveng73 Автор
          18.05.2025 05:09

          получил подтверждение - на Ультимейте пинаут от первого Мурмуля. Дальше - зависит от того, какая на нём стоит пика, к чему подключен монитор, а по звуку - рекомендую перекинуть джампера в режим PWM. i2s чуток похуже звучит (на мой вкус)


    1. mristerflare
      18.05.2025 05:09

      https://github.com/DnCraptor/pico-spec/releases/download/v.1.2.9/m1p1-spec-2048-378-I2S-HDMI-1.2.9.uf2


      1. mikeveng73 Автор
        18.05.2025 05:09

        почти. https://github.com/DnCraptor/pico-spec/releases/tag/v.1.2.B - вышла новая версия - 1.2.B


  1. rabitagorgor
    18.05.2025 05:09

    У меня есть Murmulator Ultimate на первой RP (то есть m1p1 версия). Хотелось бы его апргрейднуть до m1p2, но не уверен, какая именно плата из 2350 туда подойдёт и заработает. Читал, что там есть какие-то тонкости по питанию на разных платах.

    Можете, пожалуйста, подсказать - что купить из p2, чтобы можно было просто поставить её в мурмулятор m1, и чтобы заработало без перепайки какой-либо?


    1. mikeveng73 Автор
      18.05.2025 05:09

      Мой выбор - "Pimoroni Pico Plus 2", но она дорогая и трудно достать. Оригинальная "Raspberry Pi Pico 2" - тоже очень хороша, с теми же проблемами. Чуть легче добыть "Waveshare RP2350-Plus", и совсем частые - китайские "нонеймы" чёрного цвета. Они наиболее глючные.


      1. rabitagorgor
        18.05.2025 05:09

        То есть, ту же Pimoroni Pico Plus 2 можно просто прошить версией m1p2 - и она сразу заработает в первом мурмуляторе ультимэйт без перепайки и еще чего-либо?


    1. Maxpower2k
      18.05.2025 05:09

      Поставил оригинальную, вот такую
      https://sl.aliexpress.ru/p?key=yC8q3qM

      Все прекрасно работает.


      1. mikeveng73 Автор
        18.05.2025 05:09

        Да, зелёная - это хороший выбор. Бывают китайские подделки, но заранее понять, подделка или нет - я не знаю, как именно.


      1. rabitagorgor
        18.05.2025 05:09

        Спасибо за ссылку!


  1. NeriaLab
    18.05.2025 05:09

    Была бы ещё такая вещь для советского компьютера "Специалист" была бы. Именно с последнего я и увлёкся компами в 8.5 лет



    1. rabitagorgor
      18.05.2025 05:09

      Для мурмулятора есть: https://murmulator.ru/emu80

      Правда, там нужна уже пико 2.


  1. perfect_genius
    18.05.2025 05:09

    Фотографии экрана интерфейса, да ещё и в PNG. Спасибо, что не в 4к.


    1. ioccy
      18.05.2025 05:09

      А кто будет возмущаться, тому приложим .tiff


      1. Zara6502
        18.05.2025 05:09

        TIFF это контейнер, внутри может лежать JPG, а вот TGA 24 bit это было бы сильно.


    1. mikeveng73 Автор
      18.05.2025 05:09

      Пощёлкал мобилой и вставил. Сильно тяжёлые? Я думал, интерфейс хабра их пожмёт.


      1. ponikrf
        18.05.2025 05:09

        Претензия в том, что вы обязаны были захватить картинку через HDMI карту и сделать скриншоты. Потом обрезать их и сжать их до нативного для ZX Spectrum разрешения ;)


        1. mikeveng73 Автор
          18.05.2025 05:09

          Не, с моника мобилкой - более ламповые картинки ))


  1. apcs660
    18.05.2025 05:09

    Сколько я их перепаял.. Щупаешь пальцами плату, находишь место вызывающее рассинрон и впаиваешь туда мелкий конденсатор.

    А музыкальные процессоры?

    Спасибо, вспомнил ночные загрузки игр с подкруткой головки магнитофона.


  1. NutsUnderline
    18.05.2025 05:09

    Очень тяжело было врубиться "что ты такое". везде упомянуты pico а на картинках почему то espspectrum везде. мне очень не хватило фразы в самом самом начале "Мурмулятор это эмулятор ZX Spectrum и всяких разных других микрокопьютеров на основе микроконтроллеров pico 2040/2035", да и на сайте Мурмулятора ее нет. Ну и что он умеет как минимум HDMI, TFT и TV. Осознать эти простые факты в общем то можно по сайту, но после их вывления вся статья стала простой и последовательной.

    в качестве лирического отступления хотелось бы почитать кто это все разрабатывал и откуда такое название

    ну и для полноты кругозора уже про zx spectrum хотелось бы больше тестов всяческих демок с мультиколорными атрибутами


    1. mikeveng73 Автор
      18.05.2025 05:09

      Принято. Поправлю. А вообще, есть тэги в статье, например: https://habr.com/ru/search/?target_type=posts&order=relevance&q=[мурмулятор] - рекомендую ознакомиться.


      1. NutsUnderline
        18.05.2025 05:09

        спасибо, я, хоть и стараюсь читать все-все заголовки статей, все равно пропускаю что то такое интересненькое. в данном случае мне кажется более интересно что есть современная полноценная платформа со всеми фичами и без долгой загрузки, как с линуксом, удобная далеко не только для эмуляторов. Однако растет именно как платформа для эмуляторов и представлена в первую очередь как эмуляторная. При этом всяких разных "спектрумов" ну столько понаделано, в самых разных разновидностях, куда бы уж еще. у меня в голове не укладывается как такое происходит.


  1. Grommy
    18.05.2025 05:09

    Спасибо, заказал вчера, после Вашей статьи, уже едет :)

    Предвкушаю :)))