Оглавление
WMB и WiFiMe
Основная проблема PassMe заключалась в том, что это была крайне неудобная конструкция, которая еще и сильно торчала из слота для Nintendo DS картриджей. Конечно, PassMe можно было убрать из этого уравнения, если установить прошивку FlashMe на Nintendo DS. Но получилась немного странная история. Чтобы использовать FlashMe вам нужно было купить PassMe, надобность в котором отпадала сразу после установки FlashMe.
Со временем появился и второй способ перепрошивки, через уязвимость находящуюся в DS Download Play.
Как известно, Nintendo вложили очень много сил в разработку беспроводных возможностей Nintendo DS. Имея две консоли NDS, можно напрямую играть без всяких роутеров. Это, кстати, отличительная черта Nintendo до сих пор. Они добавляют Wi-Fi возможности в свои консоли, но не делают это бездумно – мол подключись к Wi-Fi роутеру с интернетом и тогда тебе будет счастье. Нет, многие консоли Nintendo умеют не только подключаться к роутеру и получать данные от него, а еще и отправлять свой сигнал, который может быть принят на другой консоли.
13 апреля 2005 года Tim Schuerewegen выпускает драйвер и программу, которые копируют возможности PassMe, но используют при этом беспроводные возможности консоли.
Эта технология называлась WMB (Wireless MultiBoot Hack).
История
История этого способа взлома начинается с поста на форуме Warp Pipe.
MetalSonic53 написал, что включил программу PictoChat и начинал набирать сообщения, посылая их в комнату чата, а Nintendo DS стала работать как точка доступа и транслировать сигнал вовне. Он зафиксировал это, когда использовал программу Network Stumbler.
Оказалось, что Mac адрес, указанный сверху (00-09-BF) принадлежит компании Nintendo. А скорость 2 Мбит/с указывала на стандарт IEEE 802.11b.
Это сообщение репостнули на форуме gbadev.org. И после этого участники сообщества начали изучать как функционирует Wi-Fi на Nintendo DS. Общение растянулось на целых 34 страницы.
По итогу оказалось, что существует три проблемы:
1. Нужно было иметь 2 Nintendo DS и 2 игры, которые имели сетевой режим, потому что нормально контактировать с роутером консоль не могла. Точнее дело даже было не в консоли, а в том, что она отправляла сигналы, а роутер их просто не понимал.
DrEggman поставил на своем роутере LinkSys MAC-адрес от Nintendo DS и роутер чуть не сошел с ума. После этого пользователь Darkain купил две консоли с двумя играми и выложил запись перехвата пакетов между консолями.
2. Нужно было расшифровать пакеты, которыми обменивались между собой консоли. Пользователи форума долго грешили на то, что Darkain не смог правильно перехватить пакеты и часть из них была потеряна. Но в итоге оказалось, что Nintendo DS просто сжимала пакеты, а на другой консоли они разархивировались. После того как участники комьюнити это поняли, они смогли правильно открыть пакеты данных и работать с ними.
3. В итоге оказалось, что и не каждый роутер подходит. Большинство чипсетов, работающие со стандартом Wi-Fi 802.11, были спроектированы таким образом, что не могли отправлять несовместимые пакеты данных, а порою еще и пытались исправить их. По своей сути в Nintendo DS стояли чипы, которые работали по технологии "Ni-Fi" (реализация Wi-Fi от Nintendo), а не использовали стандарт Wi-Fi 802.11.
Когда во всем этом разобрались, а участие в этом принимало очень много людей (Darkain, Tim Schuerewegen, DarkFader и другие), Tim Schuerewegen разработал свой драйвер для Wi-Fi плат на чипсете RT2500 и RT2560. И только после этого всё заработало как надо.
Wireless MultiBoot Hack
Суть этой технологии заключалась в том, что вы могли запустить на Nintendo DS демо версию игры или homebrew программы без использования устройства PassMe.
Признаться честно, у меня были некоторые сомнения на тему того, что проще? Купить PassMe или попробовать прошить консоль через WMB. Но в 2023 году первый PassMe с нужной игрой (от Natrium42 или Lynx) уже не найти в продаже, а вот WMB запустить все еще можно. Проблема только в том, что там отнюдь не всё так просто.
Вам понадобится специальная PCI или PCMCIA Wi-Fi плата на чипсете RT2500 или RT2560.
Когда у вас появится такая плата, то вам нужно было установить для нее специальные драйвера. По сути получается, что вы не сможете использовать эту плату для обычного Wi-Fi, она подходит только для работы с Nintendo DS Download Station.
Для того, чтобы понять какая плата вам нужна посмотрите список: Беспроводные устройства 802.11g на базе чипсета Ralink RT2500.
Лично я купил карту PCMCIA Asus WL-107G. Обратите внимание, если вы решите повторить мой путь, то вам понадобится еще и старый ноутбук на Windows XP. Я еще пару лет назад купил себе Dell Inspiron 510m, и он меня постоянно спасает.
Еще нужно, чтобы прошивка вашей DS была не выше третей версии. Прочитать подробнее о версиях прошивки Nintendo DS можно в статье: «Прошивка Nintendo DS».
Если у вас уже есть компьютер на Windows XP, совместимая Wi-Fi плата на чипсете RT2500 и Nintendo DS с прошивкой не выше третьей версии, то можно приступать.
Подготовка
Скачайте два архива.
rt2560_app_wmb_1_5_2.zip
– программа для работы с WMB;
rt2560_driver_1_0_0_8.zip
– драйвера для Wi-Fi платы.
Установите вашу Wi-Fi плату в компьютер и включите его. Когда компьютер загрузиться и распознает новое устройство, то предложит установить драйвера. На этом этапе вам и нужно подсунуть те драйвера, которые находятся в архиве rt2560_driver_1_0_0_8.zip
.
После установки драйверов. Ваша Wi-Fi плата отобразиться в диспетчере устройств таким образом:
Это значит, что плата распозналась и драйвера к ней подошли. В ином случае у вас не та плата.
Бывает так, что в одной и той же карте могут встречаться разные наборы микросхем.
Дальше нужно разархивировать rt2560_app_wmb_1_5_2.zip
в корень диска C:\. После этого переименуйте эту папку во что-нибудь попроще, например, назовите папку nds.
У вас должно получится так (на диске C:\ находится папка nds, а в ней уже файлы wmb.exe, wmb-xp64.exe, папка data и другие):
Положите в папку data (C:\nds\data) демоверсию игры или программу, которую вы хотите передать на Nintendo DS. В моем случае это демоверсия игры Brain Age, файл называется brain_age_demo.nds
.
Теперь мы полностью готовы.
Запускаем Wireless MultiBoot Hack
Если нажать два раза на файл wmb.exe, то откроется черное окошко и сразу погаснет. Эта программа предназначена для запуска из командной строки. Поэтому нажимаем "Пуск" – "Выполнить" в окошке "Запуск программы" вводим cmd и нажимаем OK. Открывается окошко командной строки:
Если у вас открылся не диск C:\ (как у меня), то наберите C: и нажмите Enter.
Теперь вам нужно войти в папку nds, для этого наберите cd nds и нажмите Enter.
И вот на этом этапе нужно ввести название файла, который мы хотим запустить – wmb.exe. Но если просто запустить программу, то появится ошибка: error: parameter -data is required.
Программа запустилась, но ругается, что не указаны данные, которые вы хотите передать. Повторим прошлую команду, но укажем нужный нам файл (обратите внимание, вы можете задать абсолютный путь до файла, но если вы его поместили в папку data, то можно просто написать название файла).
Вводим wmb.exe -data brain_age_demo.nds и нажимаем Enter.
Программа пытается загрузить файл brain_age_demo.nds и говорит, что все ок. После этого появляется надпись: Sending multiboot beacons & waiting for authentication.
Теперь нужно включить свою Nintendo DS и зайти в меню DS Download Play и там вы увидите, что ваша демоверсия игры (или homebrew приложение) передается через Wi-Fi.
Дальше нужно нажать A и еще раз подтвердить, что вы хотите загрузить этот файл.
После этого пойдет загрузка файла на консоль.
На самом же компьютере пойдет процесс загрузки.
А на консоли запустится демка.
Поговорим об одной ошибке. Если после надписи Sending multiboot beacons & waiting for authentication начинает постоянно появляться фраза DeviceWritePacket() failed:
То для решения этой проблемы вам нужно перезагрузить Wi-Fi плату. Нажмите правой кнопкой мышки на иконку "Мой компьютер" и выберите "Свойства". Дальше откройте вкладку "оборудование" и нажмите на кнопку "Диспетчер устройств". Нужно открыть вкладку "Nintendo DS – 802.11" (нажав на плюсик около этой надписи) и нажать правой кнопкой на "Ralink RT2560 Device" после чего нажать на кнопку "Свойства". В открывшемся меню перейти на вкладку "Advanced" и просто нажать OK.
Плата перезагрузиться и начнет работать. Можно вернуться обратно в командную строку и повторить команду. В этот раз все будет нормально.
Я советую делать это в случае наличия любых ошибок.
WiFiMe
Запуск демоверсий игры – это конечно прикольно. Но самая интересная фишка WMB именно в том, что с ее помощью можно запускать .nds файлы с Game Boy Advance флеш-картриджа. Эта возможность называется WiFiMe.
Что вам понадобится?
1. Game Boy Advance флеш-картридж, умеющий запускаться в режиме NDS, например, так умеет самый дешевый Supercard (плюс нужна карта памяти для него).
2. Нужно скачать архив wifime.zip
Обратите внимание. WiFiMe использует возможности и функционал WMB, а значит все те шаги, которые я выполнил выше, должны быть пройдены вами!
Если у вас все готово, то можно приступать.
Разархивируйте архив wifime.zip
. Скопируйте получившуюся папку wifime и вставьте ее в папку data. У вас должен получится путь C:\nds\data\wifime\ и там должно находится 5 файлов: arm7, arm9, beacons, header, rsa.
После этого запускаем программу wmb, но уже с командой wmb.exe -data wifime
Появятся надписи wifime ok и Sending multiboot beacons & waiting for authentication.
Теперь вставляем в Nintendo DS ваш флеш-картридж и включаем консоль. Заходим в DS Download Station и выбираем наш Wireless Multiboot “WiFiMe”. Два раза нажимаем А и процесс загрузки начинается.
На данном этапе наш флеш-картридж запустится в режиме Nintendo DS и можно будет запустить ту же самую демоверсию игры или, например, начать перепрошивку консоли с помощью FlashMe.