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 на борту.

Для упоротых программистов имеется даже встроенный режим дебага:

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

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

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

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

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

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

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

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

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


  1. GennPen
    18.05.2025 05:09

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

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