понедельник, 27 июля 2020 г.

Про SEGA Mega Drive Mini.



Дождался, когда в интернете появится полноценный инструментарий для прошивки mini-консоли от SEGA, и заказал саму консоль. Брал специально японскую версию из-за контроллера с 6-ю кнопками, чтобы потом локти не кусать, когда в той же Lost Vikings придётся выделывать хитрые аккорды вместо отсутствующий кнопок.
В продаже видел два типа комплектации - простой и с буквой "W" в названии. Второй комплект включает в себя два контроллера. Я заказывал именно его.

USB-кабель в комплекте практически бесполезен, потому что в нём разведены только линии питания. Энергопотребление консоли довольно маленькое, так что питать её можно даже от портов системного блока.

У самого корпуса есть открывающийся бутафорский слот для картриджа, которого не было на той же SNES mini от Nintendo. Крышка порта расширения тоже снимается, но за ней ожидаемо ничего нет. Регулятор громкости двигается, но ничего не регулирует.

В качестве интерфейса подключения контроллеров используется USB. При этом порты имеют полноценное питание, а не урезанное до 100 мА как PS Mini от Sony. Без плясок с паяльником можно подключить USB-флешку или другой контроллер. В случае контроллера придётся помучиться с настройкой соответствия кнопок.

Подключать контроллер к компьютеру я пробовал. Определяется как "6B controller", работающий по протоколу DirectInput.


Схема кнопок такая:
A -> 3
B -> 2
C -> 6
X -> 4
Y -> 1
Z -> 5
Start -> 10
Mode -> 9

Кнопки 7 и 8 физически никуда не выведены.

Для сравнения схема кнопок контроллера Retroflag в режиме DirectInput:
A -> 1
B -> 2
C -> 10
X -> 3
Y -> 4
Z -> 9
Start -> 8
Select -> 7
RB -> 6 (расположена на месте Mode)
LB -> 5

Кнопки 11-16 физически никуда не выведены.

Получается такая каша при попытке использования стороннего контроллера.

Аппаратно же консоль является практически клоном SNES mini. Думаю, что благодаря этому возможность прошивки появилась для неё довольно быстро. А из-за наличия сразу двух USB-портов можно не городить дополнительный обвес для подключения флешки.

И о способах прошивки.

Существует минимум два инструментария для прошивки консоли. Я пробовал оба.

Первый - это Project Lunar. Внешне очень похож на Project Eris (BleemSync) от той же команды. При прошивке выполняется резервное копирование содержимого приставки. Этот архив будет необходим для восстановления исходного состояния. При включении после прошивки появляется меню, из которого можно запустить RetroArch или же стоковую оболочку. Добавление игр производится с помощью программы для ПК.

Мне этот вариант не очень понравился, поэтому я довольно быстро откатил приставку в исходное состояние.

Второй - это Hakchi2 CE. Та же самая программа, которая использовалась для прошивки NES mini и SNES mini. В неё тоже добавили поддержку SEGA MD mini. Здесь всё точно так же, как и с консолями Nintendo. Используется стоковая оболочка для запуска, но есть возможность расширять функционал приставки различными модами из встроенного магазина. Вставленная флешка подхватывается автоматически, так что можно иметь два независимых набор игр: на флешке и внутри консоли. Игры можно добавлять практически в несколько щелчков мыши. При этом описание и обложка добавляются автоматически. Вручную приходится формировать только корешок (spine), но и для этого есть встроенный поиск изображений и шаблоны.

Игры на подключённую флешку можно добавлять прямо на запущенную консоль, подключённую по USB. Программа hakchi2 CE в этом случае в строке состояния отображает количество общей и свободной памяти подключённой флешки, а не встроенной памяти. При этом одну и ту же флешку можно использовать как для NES/SNES mini, так и для SEGA MD mini при условии, что выбрано раздельное хранение игр.

А теперь и грустном.

Прозрачной интеграции RetroArch для запуска сторонних игр тут не получается из-за особенностей процесса сохранения состояния. Если в SNES mini при нажатии Reset происходило сохранение состояния с завершением работы эмулятора, то тут встроенный эмулятор позволяет сохранять и загружать состояние в любой момент времени.

Для RetroArch приходится выбирать в меню слот для сохранения и через него же сохранять и загружать состояние игры.

Так же наблюдаются странности при использование внутриигровых сохранений. Если при вставленной флешке играть в игру из стокового комплекта, то запись состояния производится на флешку, а дамп SRAM с внутриигровыми сохранениями пишется в память приставки.

Со сторонними играми всё ещё сложнее, потому что при использовании встроенного эмулятора внутриигровые сохранения не работают совсем, хотя сохранение состояния работает корректно. При запуске той же Phantasy Star 2 на моменте проверки сохранений вместо пустых ячеек показывается какой-то мусор, в самой игре сохранение выполняется, но после перезапуска вместо сохранений опять показывается мусор.

С резервным копированием тоже всё сложно.

Если RetroArch записывает сохранённые состояния по слотам в раздельные каталоги для игр и слотов, то встроенный эмулятор их пишет в какую-то свою хитрую базу из которой пофайлово не получается выделить данные одной конкретной игры.