ZXDOS+ в качестве ZX Spectrum Next


Продолжаем обзор интересного устройства родом из Испании: ZXDOS+

ZXDOS+: вид слева

Первое впечатление у нас уже было, BIOS и его прошивку разобрали, использование его в качестве полноценного ZX Spectrum вместе с esxDOS тоже оценивали. И теперь надо двигаться дальше — проверять остальные возможности, т.е. «ядра», которые могут быть залиты в прошивку FPGA-платы, находящейся в основе этой коробчонки.

И начнём с того, что меня сразу зацепило при первом просмотре информации об этом устройстве — поддержке работы в режиме ZX Spectrum Next. Заинтересовало потому что изначально я его и хотел прикупить, но каждый раз жаба брала за горло и уговаривала, что эмуляторы, мол, нынче хороши… Да, но хоть эмуляторы очень хороши, но запускать каждый раз комп ради загрузки эмулятора — это излишнее расточительство и времени и денег. С другой стороны, ZX Spectrum Next занимает всё-таки прилично места, а если его каждый раз вытаскивать и подключать к монитору, то это будет напрягать. И вот пока я сам с собой боролся — вот тут и наткнулся на этот интересный девайс, который как раз почти ничего не занимал, да и стоил заметно дешевле Next‘а. При этом, судя по обзору, ничем от него при работе не отличался.

Начало работы

Само ядро ZX Spectrum Next уже было загружено в устройство, так что всё работало «из коробки», но, во-первых, лучше всё-таки установить версию поновее (с исправленными багами), а, во-вторых, без софта (операционной системы NextZXOS) на SD-карте ядро не заработает. Так что сначала идём на GitHub за новым ядром (скачиваем последнее, где в названии zxnext), прошиваем его в ZXDOS+, потом идём на сайт ZX Spectrum Next и скачиваем последний дистрибутив (на момент написания статьи это была версия 1.3.2) и распаковываем его в корень SD-карты. Причём, не обязательно это должна быть отдельная SD-карта, данный дистрибутив прекрасно работает совместно с esxDOS и ему подходит как FAT16, так и FAT32 в качестве файловой системы.

И вот у нас полноценный ZX Spectrum Next:

Видеорежимы

После всего этого в BIOS надо выбрать новое ядро по умолчанию для запуска и всё должно нормально стартануть. Но это если у вас монитор нормальный и, если вы читали мануал 🙂 Потому что в инструкции где-то на 30 странице описаны «горячие клавиши», которые переключают видеорежимы: F2 — переключает удвоение разрешения (необходимо только для SCART), F3 — переключает между 50 и 60 Hz вертикальной частоты обновления. Если этого не знать, то можно долго пялится в монитор с надписью о том что видеорежим не поддерживается. Ну и не всякий монитор или телевизор через VGA заведётся без проблем. Один из моих телевизоров ни в одном из режимов так и не заработал. Зато оба монитора (и совсем старый и новый) прекрасно работали и в 50 и в 60 герцах. Но ещё при работе чистого ядра ZX Spectrum меня напрягало низкое разрешение на новом широком мониторе, и тут было примерно тоже самое. А всё-таки 800×600 вместо родного 1920×1200 выглядит очень «не очень»:

Кривые «лесенки», потерянные вертикали у букв — неряшливо всё это выглядит

Но тут я решил перебрать все доступные видеорежимы в ZX Spectrum Next аналогично тому, как я это сделал для ядра Spectrum (только там переключать можно было только частоту вертикального обновления в BIOS). А тут при старте ядра Next‘а можно было выбрать какие выходы перебирать (нас VGA интересует):

И в цикле будут переключаться видеорежимы, пока пользователь не остановится на одном. И тут мне повезло: один из режимов на моем мониторе выставил очень приличное разрешение — 1920 на 540 пикселей:

ВидеорежимРазр. монитора Iiyama 25″Частота гор.разв. монитора Iiyama 25″Частота верт.разв. монитора Iiyama 25″Разр. монитора BENQ 17″Частота верт.разв. монитора BENQ 17″
Mode 0/50 Hz/scan*2720×5763149720×40050
Mode 0/60 Hz/scan*2720×5763158640×48058
Mode 1/50 Hz/scan*2720×5763150720×40050
Mode 1/60 Hz/scan*2640×4803159640×48060
Mode 2/50 Hz/scan*21920×5403252800×60052
Mode 2/60 Hz/scan*2640×5003261640×48061
Mode 3/50 Hz/scan*2800×6003353800×60053
Mode 3/60 Hz/scan*2640×5003362640×48062
Mode 4/50 Hz/scan*2800×6003455800×60055
Mode 4/60 Hz/scan*2640×4803464640×48064
Mode 5/50 Hz/scan*2800×6003556800×60056
Mode 5/60 Hz/scan*2640×4803567640×48067
Mode 6/50 Hz/scan*2800×6003658800×60058
Mode 6/60 Hz/scan*2640×5003669640×48069

В результате можно было наслаждаться чёткими лесенками и ровными буквами:

А вот так уже лучше!

Это, пожалуй, стало самой весомой причиной, почему я по умолчанию теперь загружаю именно ядро от Next‘а, а не использую чистый Spectrum.

Загрузка игр и приложений

Менеджер файлов в ZX Spectrum Next очень приличный:

Наконец-то поддерживаются длинные имена файлов (в отличие от того же esxDOS), пусть и некоторые буквы сливаются вместе (шрифт не очень удачный). Посмотрите сами на скриншот выше — без длинных имён было бы совсем не разобраться что есть что. И это я ещё привёл в порядок скачанный срез коллекции игр с сайта https://worldofspectrum.org/: собрал все повторы и разные выпуски игр для каждой игры в свои каталоги с помощью самописного bat-скрипта (запускается в каждом каталоге по первым буквам: A, B, С и т.д.):

Setlocal EnableDelayedExpansion
@echo off
set name_dir=_
for /d %%i in (*.*) do (
  if "!name_dir!" neq "%%~ndpi" (
    set cnt_dir=0
    for /d %%j in (%%~ndpi.*) do set /a cnt_dir=!cnt_dir!+1
    for /d %%j in (%%~ndpi48*.*) do set /a cnt_dir=!cnt_dir!+1
    for /d %%j in (%%~ndpi128*.*) do set /a cnt_dir=!cnt_dir!+1
    for /d %%j in (%%~ndpiPart*.*) do set /a cnt_dir=!cnt_dir!+1
    for /d %%j in (%%~ndpiDemo*.*) do set /a cnt_dir=!cnt_dir!+1
    for /d %%j in (%%~ndpi_*.*) do set /a cnt_dir=!cnt_dir!+1
    for /d %%j in (%%~ndpi(*.*) do set /a cnt_dir=!cnt_dir!+1
    for /d %%j in (%%~ndpi1*.*) do set /a cnt_dir=!cnt_dir!+1
    for /d %%j in (%%~ndpi2*.*) do set /a cnt_dir=!cnt_dir!+1
    for /d %%j in (%%~ndpi3*.*) do set /a cnt_dir=!cnt_dir!+1
    for /d %%j in (%%~ndpi4*.*) do set /a cnt_dir=!cnt_dir!+1
    for /d %%j in (%%~ndpi5*.*) do set /a cnt_dir=!cnt_dir!+1
    for /d %%j in (%%~ndpi6*.*) do set /a cnt_dir=!cnt_dir!+1
    for /d %%j in (%%~ndpi7*.*) do set /a cnt_dir=!cnt_dir!+1
    for /d %%j in (%%~ndpi8*.*) do set /a cnt_dir=!cnt_dir!+1
    for /d %%j in (%%~ndpi9*.*) do set /a cnt_dir=!cnt_dir!+1
    if !cnt_dir! gtr 1 (
      mkdir %%~ndpi
      for /d %%j in (%%~ndpi*) do (
        move %%j %%~ndpi
      )
      for %%k in (scr\%%~ni*.scr) do (
        move %%k %%~ndpi
      )
    ) 
    set name_dir=%%~ndpi
  )  
)

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

Вот тут меня ожидала одна подстава, точнее даже две. Во-первых, это то что не поддерживается загрузка файлов в формате TZX. Проблема не особо важная, поскольку практически всегда можно найти вариант в формате TAP, но это же ещё искать надо… Есть, конечно, конвертеры, но я смог найти только один: TZX2TAP v0.21 by LCD’10 — под Windows с GUI, но без возможности его массового применения в скрипте.

И есть ещё один интересный вариант, с конвертацией непосредственно в менеджере файлов ZX Spectrum Next: tzx2tap by Chris Young. Для того, чтобы это работало надо:

  • Скопировать файл TZX2TAP в папку DOT в корне SD-карты;
  • Скопировать файл tzxconv.bas в папку NEXTZXOS в корне SD-карты;
  • Настроить расширения файлового менеджера — в файл browser.cfg (в каталоге NEXTZXOS) добавить новую строчку выше имеющейся там и начинающейся с TZX: TZX<.tzx2tap -b "|":load "c:/nextzxos/tzxconv.bas":let f$="|":goto 9000

По итогу, при открытии TZX-файла будет запущена его конвертация в TAP-файл, который будет сохранён в том же каталоге и будет предложено его запустить.

А вот вторая проблема более насущная: Next вообще не поддерживает никакие образы дискет ZX Spectrum, т.е. огромная часть игр просто недоступна (включая огромный вклад российских разработчиков), а часть лишена удобных подгрузок или сохранений. И походу это официальная позиция разработчиков Next‘а, хотя я до конца и не понял, что в ней больше: беспокойства по поводу нелегальности TRD-образов или им было просто неохота реализовывать эту поддержку, тем более что на Западе TR-DOS вообще практически не был распространён.

В итоге, рекомендация для загрузки TRD-файлов была одна — использование esxDOS. Поэтому я сначала и использовал ядро чистого Спектрума, но потом догадался, что тот же esxDOS можно использовать и совместно с NextZXOS. Для этого надо всего лишь положить файл esxmmc.bin в каталог /machines/next/ на SD-карту. Всё остальное, что касается esxDOS остаётся в силе — он точно так же должен быть развернут на SD-карте.

А далее надо остановить загрузку NextZXOS клавишей SPACE и перейти к настройкам NextZXOS клавишей E и там включить Divmmc:

Ну и запускать конфигурацию не ZX Spectrum Next, а другой вариант, например, ZX Spectrum 128k:

И если всё будет сделано правильно, то после старта NextZXOS произойдёт старт esxDOS:

И откроется экран обычного спектрума.

Памятная надпись!

После этого можно уже будет с помощью клавиши F10 вызывать прерывание divMMC и попасть в экран файлового менеджера esxDOS:

И вот только так нам станут доступны образы дискет в формате TRD (SCL, как я уже писал ранее, придётся конвертировать). К сожалению, FDI не поддерживается, а ведь только в этом формате можно хранить диски с защитой от копирования (и хорошо, что всё уже взломано до нас!).

Настройки и отличия

Самое главное отличие ZX Spectrum Next — это поддержка приложений разработанных специально для этой платформы. Т.е. это не просто очередной «железный эмулятор» ZX Spectrum, а полноценный 8-битный компьютер (без клешинга!). И под него выходят новые игры, например, на днях вышел релиз Delta’s Shadow. Она, конечно, работает и под чистым Спектрумом, но гораздо круче выглядит именно в версии для ZX Spectrum Next. А вот и релиз игры на youtube-канале sinc LAIR:

Ну и понятно, что настройки BIOS ZXDOS+ особого значения не имеют при выборе ZX Spectrum Next — у него есть своя страница настроек и свои параметры разных конфигураций (скриншот приведён выше). Перечислю часть того, что удалось заметить отличающегося от ядра ZX Spectrum:

  • В тех случаях, когда для ядра ZX Spectrum приходилось «колдовать» в BIOS с настройками таймингов и памяти, тут всё работало без всякого вмешательства (и даже без выбора конфигурации Soviet Timings).
  • Есть возможность переназначить кнопки мыши (мне удобнее в UFO2 играть с перевёрнутыми — левой кнопкой ходить, а правой — стрелять).
  • TurboSound — поддержка двух чипов AY для воспроизведения одновременно 6-каналов.
  • Поддержка Kempstone-мыши тоже есть, но тут есть возможность настроить чувствительность (DPI), иногда без этого никак не обойтись.
  • И минус по джойстикам: если в BIOS ZXDOS+ я мог использовать одновременно два джойстика подключенных к нему (один как Kempstone, второй как Sinclair), то в NextZXOS у меня это никак не получалось. Оно скорее заточено под эмуляцию джойстиков на клавиатуре.

Итого

В конце-концов ядро ZX Spectrum Next стало для меня основным на ZXDOS+. В основном из-за видеорежима, позволяющего нормально задействовать мой монитор (даже для загрузки «дискет» в TRD-формате я опять же выберу esxDOS внутри Next‘а). Но и нормальный файловый менеджер тоже вносит свой вклад, так что если мне надо загрузить что-нибудь с «ленты», то я предпочту опять же Next. Аналогично для программ с поддержкой кемпстон-мыши.

Единственное, когда мне сейчас приходится переключаться на стандартное ядро Спектрума — это одновременная поддержка двух джойстиков. Ну и Next проигрывает в скорости загрузки ядру чистого Spectrum с esxDOS, хотя это и несущественно (несколько секунд).

ZXDOS+ в качестве ZX Spectrum Next: 3 комментария

  1. Уведомление: ZXDOS+ и MSX — Дюк Юсупов

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google photo

Для комментария используется ваша учётная запись Google. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s