Как скачивать игры на super nintendo mini. Прокачиваем NES Classic Mini

С её 21 предустановленной игрой приесться всем ностальгирующим по 16-битным развлечениям из 90-х, как благую весть фанатам Nintendo принесла команда разработчиков Hakchi2. Взлом SNES Mini оказался делом времени. И это время, судя по всему, уже наступило.

Первое предположение о возможности простого и быстрого взлома консоли SNES Mini появилось незадолго до начала официальных продаж устройства. Базировалась теория на идентичности архитектуры новинки и её предшественника «в лице» прошлогодней NES Classic Mini, сходство с которой в аппаратной части оказалось практически 100-процентным. Метод хакеров-энтузиастов, принявшихся расширять библиотеку игр для SNES Mini методом перемещения ROM-файлов в открывшиеся системные папки, имел переменный успех. Сложность такой процедуры, а также её результативность не оправдывала затраченное время и силы. Для выполнения поставленной задачи было решено прибегнуть к помощи программы Hakchi2, зарекомендовавшей себя в качестве эффективного инструмента для редактирования файловой системы ретро-консолей.

Создатели утилиты Hakchi2, добавившие поддержку консоли SNES Mini в обновлённом до версии v2.20 фирменном ПО, предоставили возможность пользователям заняться самостоятельным «портированием». Такой метод автоматической конвертации в нужный формат гарантирует корректный геймплей примерно для 75 % игр, когда-либо выпускавшихся для SNES. Правда, авторы Hakchi2 просят обратить внимание, что любые непредусмотренные компанией-производителем манипуляции с консолью могут привести к критической ошибке и погрузить ретро-консоль «в вечный сон».

А тем временем SNES Mini из-за ограниченного тиража пользуется очень хорошим спросом. При рекомендованной Nintendo стоимости в $80 ретро-консоли без труда продаются на интернет-площадках типа eBay за вдвое большую сумму. Статистика продаж с момента поступления консоли на полки магазинов свидетельствует о более чем 10 тыс. закрытых лотов с ценником $160 и выше за SNES Mini. Это подстегнуло реселлеров к получению сверхприбыли на сформировавшемся вокруг устройства ажиотаже и привело к росту средней цены на консоль почти до $190.

Компания Nintendo - легенда игрового мира и один из его основоположников. Игры для первых консолей из Японии оказались настолько удачными, что их помнят даже несколько десятков лет спустя. Помнят и любят. Во многом благодаря чувствам геймеров к олдскульным играм компания Nintendo ведет свой бизнес и сейчас.

Причем с новейшими консолями у японской компании дела идут не слишком хорошо. Может быть, именно поэтому в июле прошлого года Nintendo NES Classic, решив попробовать пойти по уже проторенному некогда пути. NES Classic - современная инкарнация NES, которая оснащена современными электронными компонентами и модулями. В частности, здесь есть HDMI-выход. В комплекте с приставкой компания решила поставлять и 30 старых игр.

«Нам захотелось дать поклонникам всех возрастов возможность снова открыть оригинальную систему Nintendo, дать им вспомнить, почему им так нравилась эта консоль… Nintendo Entertainment System: NES Classic Edition идеально подходит всем, кто помнит, как играть в NES, или кто хотел бы дать возможность прочувствовать вкус такой игры новому поколению геймеров», - заявил в свое время Реджинальд Фис-Эме (Reginald «Reggie» Fils-Aimé), президент и главный операционный директор Nintendo of America.

Все это хорошо, но кроме 30 игр, о которых было объявлено в самом начале, компания решила ничего больше не давать геймерам. Было четко объявлено, что официально Nintendo не станет выкладывать больше игр, что, впрочем, не остановило умельцев от поиска самостоятельного решения этой проблемы.

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

Ребята из сообщества NESClassicMods нашли собственное решение. Для того, чтобы оно заработало, необходимо создать файл сохранения в первом слоте Super Mario Bros. В общем-то, это сделать очень легко. После этого необходимо подключить NES Classic Edition к компьютеру через micro-USB кабель, а затем загрузить NES в режиме «FEL». Это можно сделать, удерживая кнопку перезагрузки, одновременно зажимая кнопку включения питания (финт с кнопками необходимо выполнить, когда приставка выключена). Начнется загрузка, и на ПК в это время необходимо начать загрузку «sunxi-FEL». Открытая версия этого ПО находится .

Конечно, все это, включая остальные шаги, необходимо проделывать на свой страх и риск. Дело в том, что требуется копировать файлы с NES Classic на свой ПК, там их редактировать и снова загружать на приставку. Если что-то пойдет не так, консоль может перестать работать, хотя шансы на это и малы. Работать необходимо при помощи приложения, созданного умельцами. В числе прочих возможностей - на приставку можно заливать ROM-файлы игр.


После того, как все сделано, стоит добавить и файл изображения к игре. Затем все нужно запаковать и отправить на приставку. Если все пойдет так, как нужно, на приставке появятся новые игры. Стандартный список тоже неплох, здесь мы видим следующие наименования:
С приставкой поставляются такие игры, как:
  • Balloon Fight
  • Bubble Bobble
  • Castlevania
  • Castlevania II: Simon’s Quest
  • Donkey Kong
  • Donkey Kong Jr.
  • Double Dragon II: The Revenge
  • Dr. Mario
  • Excitebike
  • Final Fantasy
  • Galaga
  • Ghosts N" Goblins
  • Gradius
  • Ice Climber
  • Kid Icarus
  • Kirby’s Adventure
  • Mario Bros.
  • Mega Man 2
  • Metroid
  • Ninja Gaiden
  • Pac-Man
  • Punch-Out!!! Featuring Mr. Dream
  • StarTropics
  • Super C
  • Super Mario Bros.
  • Super Mario Bros. 2
  • Super Mario Bros. 3
  • Tecmo Bowl
  • The Legend of Zelda
  • Zelda II: The Adventure of Link
Но все же геймерам хочется и дополнительных игр, благо, их очень много - всегда есть, во что поиграть.

Стоит отметить, что этому «хаку» немногим более пары дней, так что не слишком большое количество пользователей смогли проверить работоспособность игр, залитых таким необычным образом. Но в Сети уже появились видеоролики с Mega Man, где видно, что никаких проблем нет.


На этом скриншоте хорошо видно, что среди официально предоставленных Nintendo игр на приставке появились и Battletoads

Ограничения аппаратной платформы пока что не вполне ясны. Ясно, что добавлять можно и больше 30 игр, никаких проблем нет. Видео, которое размещено выше, демонстрирует нам систему с 55 играми, где в числе прочих залиты Contra и Battletoads.

Вполне может быть, что усилия сторонних разработчиков будут замечены компанией Nintendo. Хотелось бы надеяться, что она после всего этого начнет официально поставлять официальные версии старых игр, чтобы не заставлять геймеров придумывать различные обходные пути. Ясно, что аппаратная платформа позволяет загружать и дополнительные игры, так что вопрос «почему Nintendo не хочет давать дополнительные игры» остается открытым.

Затем я сделал возможность менять играм различные параметры, добавил возможность выбирать обложки и автоматически их пережимать, добавил кнопку для автоматического поиска обложек в Google, в последний момент решил всё-таки добавить ещё и русский язык помимо моего кривого английского. И вот в таком виде выложил всё это дело в сеть, назвав версией 2.0. Потому что «hakchi2».

Вроде у меня действительно получилось сделать всё так, чтобы программой можно было пользоваться вообще без какой-либо инструкции, она сама запоминает, сдампил ли пользователь ядро, прошил ли он модифицированное ядро, сама говорит, что в какой момент делать. И hakchi2 действительно очень быстро набрала популярность, несмотря на то, что на неё ругались многие антивирусы из-за утилит и драйверов в том же архиве. Многие боялись стать частью русского ботнета.

Наиболее интересные проблемы и задачи

Windows и установка драйверов

Самой сложной проблемой на начальном этапе для меня стала установка драйвера. Если уж я решился сделать программу простой, драйвер должен устанавливаться максимально легко. Мне совсем не хотелось давать пользователям сложные инструкции или посылать их на какой-то сайт качать отдельную утилиту. Я говорю про Zadig .

Это отличное приложение для простой и быстрой установки популярных базовых USB драйверов, в нашем случае это WinUSB . Кстати говоря, не понимаю, почему пользователю нужно выполнять кучу сложных действий, и Windows требует от разработчика цифровой подписи, когда нужно установить драйвер непосредственно от Microsoft. К счастью, у Zadig открытый исходный код, да ещё и с консольной версией в примерах. Я быстро сделал из неё простенькую программу, которая при запуске сразу ставит драйвер.

Тонкости FEL протокола

Стоит ли говорить, сколько багов всплыло в первое время… Больше всего я промучился с ошибкой “pipe read error”, которая возникала в момент, когда не получалось инициализировать устройство после запуска кода в памяти на исполнение. Однако, возникала она не каждый раз, а абсолютно случайно, из-за чего я много раз ошибочно считал, что наконец-то нашёл хоть какую-то закономерность. Но нет, ошибка возникала абсолютно случайно. И больше всего меня напрягло то, что если в момент, когда NES Mini переставала отвечать моей программе, запустить оригинальную hakchi от madmonkey, то консоль выходила из ступора и продолжала работать. То есть madmonkey у себя каким-то образом правильно проводит инициализацию, а у меня что-то неправильно. Но сколько я не изучал его исходники, ничего особенного я там не увидел. В итоге я нашёл программу, которая перехватывает и показывает USB-трафик и начал сравнивать всё побайтово.

Вот пример того, как должна проводиться инициализация/верификация:

У меня возникала проблема именно на втором шаге, при получении ответа. Почему-то приходили совсем не те данные, что я ожидал. Оказалось, что моя ошибка была в том, что в этом случае я пытался выполнить инициализацию заново, с самого начала. Программа от madmonkey (точнее библиотека fel_lib) же в таком случае повторяет, начиная сразу со второго шага, после чего устройство начинает нормально отвечать. Шаманство какое-то, но ошибка исчезла навсегда.

«LED-bug», как прозвали его иностранцы

Однако, помимо этого я столкнулся с гораздо более странным багом. Наверное это самый странный и неочевидый баг за всю мою жизнь. Скрипты для копирования игр по окончании процесса выключают консоль, поэтому пользователю надо дождаться, пока погаснет светодиод. Но очень многие люди жаловались, что светодиод не гаснет даже через полчаса. Люди на форумах делились своим опытом. У кого-то всё идеально работает, а у кого-то светодиод не гаснет. Кто-то считает, что существуют разные версии консолей, у кого-то всё начинало работать на другом компьютере. Десятки людей пытались найти хоть какую-то закономерность. Опять же было много разных иллюзий, но в конце концов нашёлся человек, который нашёл 100% верную закономерность. Поначалу я не поверил, но все в один голос начали это подтверждать.

Моя программа не работает, если её распаковать WinRAR’ом, но работает, если распаковать 7zip’ом. Как такое может быть?

Оказывается, некоторые версии WinRAR’а при определённых условиях не сохраняют атрибуты файлов при распаковке, а когда мы под Windows собираем RAM-диск для ядра Linux, симлинки обязательно должны иметь атрибут “системный”. Самому мне даже в голову не могло прийти то, что проблема в архиваторе, тем более я сам WinRAR’ом пользуюсь. Вскоре я добавил в программу проверку атрибут файлов, и проблема исчезла навсегда. Правда, под Windows 10 иногда почему-то не получается поменять атрибуты, но теперь об этом хотя бы пишется ошибка.

Шрифты

На этом этапе программа стала уже вполне стабильной, но был ещё целый ряд проблем, которые касались самой консоли и её оболочки.

Начать я решил со шрифтов. Проблема в том, что оригинальные шрифты в NES Mini содержат только нужные символы, и названия многих добавленных игр выводились некорректно.

Эта задача казалась вполне решаемой с первого взгляда, ведь прямо в директории с играми лежат файлы «title.fnt» и «copyright.fnt», и надо просто их отредактировать или заменить. Однако, ни один редактор шрифтов не согласился их открывать, нужно как-то понять, что это за формат.

Если поменять эти файлы местами, то текст в названии игр становится маленького размера.

Выходит, шрифт растровый, а не векторный, и в нём символы содержатся в виде рисунков. Если открыть файл в шестнадцатеричном редакторе, то можно увидеть, что каждый шрифт недалеко от начала содержит сигнатуру “BMF”.

Гугление по запросу “BMF font” привело на сайт , где была как утилита для генерации шрифтов, так и подробное описание формата, которое я сразу же бросился читать. Да, каждый файл действительно должен содержать сигнатуру BMF, но в самом начале файла. В случае же NES Mini перед ним шли ещё какие-то 9 байт, в разных файлах они были разными (кроме первого байта). Я понадеялся, что они не нужны или несущественны, но при изменении любого из них, консоль просто не запускалась, демонстрируя чёрный экран. Выходит, что надо обязательно понять смысл этих девяти байт. Первый - всегда единица. Затем два байта - это какие-то значения, потом два нуля. Снова два байта - значения и снова - два нуля. После этого уже шли данные шрифта. Я сразу же подумал, что эти пары похожи на два 32-битных числа. Посмотрел первое, сравнил с размером файла, никаких закономерностей не увидел. Аналогично со вторым, но затем я решил их сложить и получил точный размер файла без этого заголовка. Выходит, эти числа говорят нам о размерах каких-то секций в файле. Я отмотал файл на значение указанное в первых четырёх байтах и увидел заголовок PNG файла.

Я вытащил его оттуда и да, это картинка со всеми символами.

Логично, ведь программа для генерации шрифтов даёт на выходе несколько файлов. У NES Mini же они просто объединены в один. Я аналогично собрал вместе заголовок и файлы сгенерированного шрифта, скинул результат на NES Mini и недостающие символы появились.

Казалось бы, теперь все теперь должны быть довольны, но скоро мне начали писать японские владельцы Famicom Mini, жаловались на то, что у них пропали все иероглифы. Я им вежливо объяснил, что с японским языком у меня плохо, точнее совсем никак. Но не поленился рассказать, что я выяснил, и как самим сгенерировать шрифт. Вскоре мне прислали японский шрифт, и я включил его в дистрибутив.

Скрипты без проблем определяют регион консоли, чтобы выбрать нужный из двух шрифтов. Спасибо японцу под ником xsnake. Сейчас народ уже разобрался и начал активно выкладывать самые разные шрифты, даже Comic Sans есть, куда же без него.

Модификация драйвера игрового контроллера

Люди продолжали просить какой-то нереальный функционал. Многим не хватало возможности нажать кнопку RESET, то есть выйти в меню, не выпуская контроллера из рук. Я сразу же сказал, что это невозможно. Исходников эмулятора у меня нет, поменять функциональность кнопок нет возможности, но вскоре я осознал, что если подключить Classic Controller от Wii (они совместимы), на котором больше кнопок, то кнопка HOME работает именно как выход в меню. То есть в коде эмулятора это предусмотрено. При этом эмулятор использует библиотеку SDL2, у которой открытый исходный код, но пересобирать и заменять такую огромную библиотеку ради такой простой функции как-то не круто. Я опять начал смотреть в исходники, которые предоставляет сама Nintendo, и увидел там исходный код драйвера контроллера. Да это же именно то, что нужно! Внутреннее кодовое название контроллера, кстати, “Clovercon”. От слова “clover” (клевер). Аналогично называется и оболочка на NES Min - Clover, а название самой модели консоли - CLV-001. Думаю, теперь всем понятно, что значит это “CLV”.

Код драйвера весьма простой, и я быстро нашёл, куда вставить всего одну строку:

If (down && select) home = 1;
Скомпилировал драйвер я без особых проблем, что удивительно, ведь с Linux’ом я плохо дружу, а тут вдруг скомпилировал модуль ядра, но обрадовался я рано. Утилита insmod отказывалась загружать этот модуль. После недолгого гугления я понял, что это из-за того, что не совпадает «vermagic». Это строка внутри модуля, которая описывает версию ядра Linux и параметры, с которыми оно собиралось. Делается это банально для того, чтобы убедиться в бинарной совместимости. Короче говоря, собирать драйвер нужно с теми же параметрами ядра, при которых собиралось ядро NES Mini. А откуда мне их знать? Да, Nintendo выложила на своём сайте и исходники ядра, но там нет файла с настройками. Я долго мучился, меняя самые разные параметры ядра, из строки vermagic было примерно ясно, чего не хватает, или что лишнее.

Однако когда строки vermagic совпали и модуль загрузился, система отказывалась реагировать на нажатия кнопок. При этом отладить его было невозможно, т.к. kprint в ядре NES Mini был вырезан, как и буфер dmesg. В итоге я уже почти сдался, потеряв всякую надежду, но залез в раздел “Kernel hacking” и начал снимать все галочки подряд.

Опытные линуксоиды меня наверное засмеют, но в итоге внезапно драйвер заработал. Я своего добился, комбинация down+select стала открывать меню.

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

Volatile char MAGIC_BUTTONS = "MAGIC_BUTTONS:00100100";
Главное - не забыть про директиву «volatile», чтобы компилятор понимал, что строка может меняться «из вне», и что вырезать код её проверки не нужно.

Всё это имело бы огромный смысл, если бы Nintendo не сделала такой короткий провод у контроллеров. Удлинитель теперь просто необходим.

Вскоре появились и люди, которые начали просить турбо-кнопки. Я всегда считал их читерством, к которому нас приучили с детства, ведь в России оригинальные контроллеры практически никто никогда не видел. И я игнорировал эти просьбы, пока они не начали поступать от иностранцев. Думаю, тут рассказывать уже особо нечего, просто очередная модификация драйвера. Теперь можно на секунду зажать select+A или select+B, чтобы включить турбо на соответствующей кнопке. В случае же с Classic Controller’ом кнопки X и Y сразу же работают как турбо A и турбо B.

Преодоление ограничений

Что же касается ограничения на количество игр, тут всё не совсем понятно. Дело в том, что в NES Mini без проблем можно залить примерно 97 игр, но при этом перестают работать сохранения. И чем меньше игр в меню, тем больше сохранений можно сделать, но дело вовсе не в ограничениях размера flash-памяти, места на разделе ещё очень много. Похоже, что оболочка не может или не пытается получить столько оперативной памяти, чтобы загрузить все картинки, ведь каждая сохранённая игра сопровождается скриншотом, и если посчитать общее количество игр, размер их обложек, размер скриншотов и учесть, что в памяти всё это хранится скорее всего в несжатом виде, получается весьма большое число.

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

Так ведь можно запустить не только эмулятор, но и любой скрипт, что не мешает запустить скрипт, который будет монтировать другую директорию с играми, что для пользователя будет выглядеть как папки. Попробовал - получилось!

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

За этот месяц было добавлено и много других разных функций вроде поддержки Game Genie чит-кодов и автоматического заполнения информации об играх, сейчас уже всё и не упомнить.
Было найдено и много багов, интересных особенностей.

Например, консоль отказывается запускаться, если среди игр есть хоть одна, в названии которой подряд идут апостроф и любая цифра. Пришлось ввести проверку на это.

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

Кстати, у встроенного эмулятора много и других параметров, он охотно сам их выводит. Правда, почему-то они не все работают. Например, эмуляцию PAL не получается включить при всём желании. И да, европейская версия консоли содержит американские версии игр. И BIOS для Famicom Disk System там тоже есть, хоть игры для неё и выходили только в Японии. Так что они тоже запускаются.

Из картриджных же игр поддерживается не очень много мапперов, но все самые популярные на месте:

  • 0 (NROM) - простейшие игры без маппера, например Ice Climber, Pac-Man, и т.п.
  • 1 (MMC1) - много хороших игр, второй по популярности маппер.
  • 2 (UxROM - UNROM/UOROM) - игры вроде Castlevania, Contra, Duck Tales и т.п.
  • 3 (CNROM) - много простых игр, но с большим объёмом графики
  • 4 (MMC3) - самый популярный маппер, очень много игр
  • 5 (MMC5) - очень сложный и самый навороченный маппер, удивительно, что есть его поддержка, ведь вроде под него нет ни одной игры в стандартном наборе
  • 7 (AxROM - ANROM/AMROM/etc.) - простой маппер, который используется играми вроде Battletoads.
  • 9 (MMC2) - используется только игрой Punch Out!!
  • 10 (MMC4) - используется только несколькими японскими играми
  • 86 - редкий маппер, мало где используется
  • 87 - редкий маппер, мало где используется
  • 184 - редкий маппер, мало где используется
Однако, меня продолжают заваливать письмами с просьбами добавить в программу поддержку того или иного маппера, не понимая, что это не от меня зависит. Хотя в теории вполне возможно скомпилировать под NES Mini другой эмулятор, но я оставлю эту затею людям поумнее.

Среди оригинальных игр есть одна скрытая. Точнее это не игра, а производственные тесты, что-то вроде сервисного меню. Быть может, какой-то хитрой комбинацией можно получить к нему доступ без танцев с бубном.

CaH4e3 (известный в определённых кругах ромхакер) уже начал дизассемблировать файл эмулятора. Забавный факт - в нём спрятано сообщение от разработчиков. Точнее от некого капитана Ханафуда.

На самом деле ханафуда - это игральные карты, которые Nintendo выпускала в позапрошлом веке. Санчез говорит, что на этот текст есть указатели, то есть какой-то код его использует. Вполне возможно, что это рабочая пасхалка.

Ещё из забавного: если в директории с любой игрой создать папку “pixelart” и положить туда любую PNG картинку, она будет показываться на фоне во время простоя консоли. Тут лучше посмотреть видео из начала статьи, чтобы понять, о чём речь.

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

Итоги

Пожалуй, это первый взлом консоли, который приносит издателям прибыль, а не убытки. Ведь, игры отдельно они не продают, а саму консоль теперь просто сметают с полок магазинов. Такое впечатление, что в Nintendo сидели и с нетерпением ждали, когда же её взломают уже, поэтому и не делали никаких защиты. Так что надеюсь, они не поставят мне страйк. И не засудят, тем более незаконного я вроде как ничего не делаю, пока не распространяю игры.

upd: Самое главное-то и забыл. Вот ссылка на hakchi2 и её исходный код.

А знаете, завершая месяц, почему бы всё-таки, наконец, не вспомнить приятную новость для всех геймеров, которая обрадовала и взбудоражила всех заинтересованных ещё в начале января 2017 года? И даже вовсе не навредила самой Nintendo. Почему? Сейчас расскажу. В общем, аккурат во время посленовогодних праздничных дней у соседей, российскими хакерами была-таки взломана NES Classic Mini, которая представляет собой уменьшенную версию классической 8-битной приставки Nintendo Entertainment System, известной в СНГ под названием Dendy и иже с нею. В другой статье блога я уже сразу же после выхода у нас в СНГ. Но здесь речь идёт о взломе, значительно повышающим ценность консоли в глазах даже ретроградов. Т.к. метод считается софтовым и вмешательство во внутренности приставки вовсе не требуется.

Именно взлом позволил обойти ограничение в 30 предустановленных (хоть в большинстве своём замечательных) игр и «вшить» в консоль практически любые игры из библиотеки бессмертной 8-битной классики, именно те игры, которых вашей душе не хватало для полного счастья.

Таким образом, хакер madmonkey создал и описал ручной способ взлома, при котором большую часть действий вы будете делать сами. Хакер Cluster оптимизировал всё это впоследствии, создав утилиту с интерфейсом, которая будет делать всю “проблемную” часть первичного взлома сама, а также в разы упростит последующую загрузку игр и обложек для них в консоль, позволяя кастомизировать список под себя. По сути, если вы ещё не успели прошить NES Mini вручную ранее способом от madmonkey, то способ от Cluster’а от вас потребует лишь следующее (практически процитирую краткую инструкцию с форума gbx.ru) :
1. Запустить программу, нажать «Ядро — Сдампить ядро», следовать инструкциям на экране.
2. Нажать «Ядро — Прошить пропатченное ядро»
3. Добавить игры, настроить параметры по желанию, выбрать обложку.
4. Закачать выбранные игры в NES Mini.

Теперь вы сможете крайне просто кастомизировать игры в NES Mini.
Установки программа не требует, нужно просто распаковать её в удобное место. Теперь в два клика вы можете добавлять игры и при необходимости менять их параметры (количество игроков, дату выхода и пр.). Программа понятно объяснит, что надо делать с консолью, поможет легко установить драйвер, сама сдампит ядро, сама его пропатчит, сама зашьёт.

А умеет программа hakchi2 с автоматизированным способом прошивки от Cluster’а многое. Здесь будет уместно вновь немного процитировать известный среди геймеров gbx.ru:

— позволяет легко добавлять игры и держать в порядке библиотеку игр;
— позволяет легко менять параметры игр — количество игроков, дату выхода и пр.;
— для продвинутых пользователей позволяет менять параметры запуска игр;
— умеет автоматически гуглить обложки для игр;
— автоматически исправляет неверные заголовки ромов по своей базе;
— при добавлении игр проверяет, поддерживаются ли их мапперы;
— позволяет убирать стандартные 30 игр при необходимости;
— имеет интерфейс на русском и английском языках;
— позволяет насильно добавить игры с другими мапперами, предупреждая, что они, скорее всего, не запустятся;
— предупреждает про лимит в 97 игр;
— позволяет указывать конкретный тип игры на двоих.

Также программа проверяет MD5-сумму дампа ядра и выдаст предупреждение, если оно не соответствует.

Вот вам видео с несложным вариантом прошивки в помощь и в качестве демонстрации.

Видео даже слегка успело устареть в плане содержания. В комментариях под видео на Youtube вышеупомянутый Cluster отметил: «…для hakchi2 не нужен сейв Марио 🙂 И картинки она сама гуглить умеет. И Battle City поддерживается, наверное, просто ром кривой. И с последней версией идёт модификация Zadig, которая сама сразу ставит драйвер…»

И ещё: создатели прошивки на всякий случай предупреждают, что “есть риск превратить вашу приставку в кирпич на этапе прошивки Flash Kernel”, но доселе таких случаев замечено не было. Да, есть ограничение в 97 игр (если больше, любая из них вылетает с ошибкой C8). Хотя, ради спортивного интереса и при желании можно закинуть игр и больше, но без тех же обложек, а шанс вылета останется. Игры стоит использовать американского региона (с индексом (U) в названии рома), т.к. все предустановленные игры являются NTSC-версиями (т.е. американскими) даже в европейской версии NES Mini. Некоторые игры не запускаются или зависают в определённых местах. Например, те же «Robocop 3» и «Battletoads». Некоторые имеют графические артефакты. Но таких игр пока что меньшинство.

И не стоит забывать, что эмулятор этой мини-консоли затачивался в первую очередь для поддержки 30 предустановленных игр. Хотя… Может быть, сотрудники Nintendo и осознавали, что в конце концов кто-нибудь взломает их ретро-консоль, а потому специально для таких людей во внутренних файлах приставки (в данном случае уже для выпущенного для японского рынка аналога — Famicom Mini) было оставлено секретное послание . Без угроз и гневных сообщений. Послание от работников компании оказалось вполне миролюбивым.

«Говорит капитан ханафуды. Запускаю эмуляцию через 3… 2… 1. Много усилий, слёз и бесчисленное количество часов были потрачены на создание этого сокровища. Так что, пожалуйста, держите это место в чистоте и не сломайте тут всё! Пока! Капитан ханафуды.», — гласит скрытое послание.

NES сообщество совсем недавно нашла парочку отличных способов, с помощью которых вы сможете установить на свою NES Classic Mini новые игры. К сожалению, у этой маленькой консоли есть довольно серьезный просчет — на нее нельзя записывать игры, а играть приходиться только в то, что уже записано на ней изначально.

Если вам надоело уже играть в старые игры, то есть довольно простой способ добавить новых на NES Classic Mini. Благодаря усиленным старанием пользователя под ником «iLLNiSS» с ресурса Reddit, мы можем легко записывать новые игры с помощью софтмода под названием «hakchi2».

Заметка: мы не несем никакой ответственности в случае повреждения вашей консоли при ее прошивке с помощью этой модификации. Нужно понимать, что вы модифицируете консоль и осторожность в этом деле всегда приветствуется. Так что делайте это на свой страх и риск.

Теперь давайте перейдем непосредственно к самому интересному — установке софтмода и прошивке консоли.

Необходимый софт:

Вот, собственно, и все. Скачивать огромное количество программ не придется. А если вы уверены, что у вас уже есть Microsoft .NET Framework 3.5, то остается обзавестись только «Hakchi2».

Как устанавливать новые игры на NES Classic Mini

  • Для начала скачайте модификацию «hakchi2» с выше предложенной ссылки.
  • Потом разархивируйте содержимое скачанного архива в новую папку на вашей консоли.
  • Запустите файл «hakchi2.exe».
  • Просмотрите все ROM’ы игр на консоли и решите какие останутся с вами, а которые уйдут в забвение. В общем, отталкивайтесь от свободного места на устройстве.
  • Нажмите на кнопку «Добавить игры» для того, чтобы добавить, собственно, скачанные вами заранее игры. Помните, что формат их должен соответствовать.nes
  • Подключите NES Classic Mini к вашему компьютеру с помощью micro-USB. Удостоверьтесь, что консоль полностью отключена.
  • Теперь нужно загрузить ее в FEL-режиме. Для этого сделайте следующие шаги:
    • Нажмите и удерживайте кнопку Сброса, которая находится спереди консоли.
    • Затем сразу же нажмите кнопку Питания и удерживайте ее совсем недолго.
    • Подождите пару секунд, а затем отпустите кнопку Сброса.

      Заметка: вы не увидите никаких уведомлений от консоли или вашего компьютера, просто продолжайте выполнение шагов.

  • Нажмите на кнопку «Синхронизировать список игр с NES Mini» в утилите «hakchi2» и все готово. В случае если вы не смогли правильно загрузиться в FEL-режим, то вам будет дано уведомление об этом.
  • И наконец-то, перезагрузите вашу консоль NES Classic Mini и наслаждайтесь установленными вами играми.