• При регистрации замечена проблемма с электронной почтой gmail.com . Если письма не приходят - используйте другие почтовые сервисы. все вопросы можите оставлять в телеграм канале https://t.me/ConsoleFiXru

Nintendo Game and Watch

ConsoleFiX

Администратор
Регистрация
7 Июн 2021
Сообщения
418
Реакции
31
8582eb56-883d-4968-873a-b2e512b7ff0c.__CR0,0,1464,600_PT0_SX1464_V1___.png
Nintendo Game & Watch: The Legend of Zelda позволит прикоснуться к частичке истории видеоигр. Играйте в легендарные игры серии The Legend of Zelda в формате Game & Watch, как в старые добрые времена! Сражайтесь с кротами в мини-игре Vermin с Линком в качестве главного героя. В лучших традициях Game & Watch, консоль также включает цифровые часы и таймер, с которыми можно взаимодействовать. Отмечайте 35-летие серии вместе с игровой системой Game & Watch: The Legend of Zelda!
На данный момент инструкция находится в стадии формирования и проверки в боевых условиях)

pxl_20220313_151913984.jpg
Прошивка Game and Watch Zelda Edition. Замена памяти и дуалбут.
Внимание! Дуалбут с Зельдой описан только для увеличенной (16 мегабайт и выше) памяти! Если у вас стоит стоковая память - пишите дуалбут с начинкой Марио, либо просто лейте Ретро-Го, без дуалбута.
Screenshot.png

1. Устанавливаем Oracle Virtual Box с официального сайта - https://www.virtualbox.org/wiki/Downloads
2. Скачиваем любой Debian/Ubuntu based дистрибутив линукса. Я использую Мяту (mint), она удобна и неприхотлива. https://linuxmint.com/edition.php?id=302
3. Разворачиваем виртуалку, устанавливаем Мяту. Ставьте легкий пароль на root, чтобы не париться. Пользователя называем user, чтобы дальше идти по инструкции и не менять каждый раз имя в командах! Запоминаем, сколько ядер выделили. Обязательно на установленной системе подключаем образ дополнений гостевой системы (Устройства - подключить образ...), исполняем предложенный автозапуск и перезагружаем виртуалку. Затем в меню "Устройства" включаем функцию drag'n'drop и буфер обмена - появится возможность просто переносить файлы перетаскиванием из хост-системы в виртуалку, очень выручает при наполнении ромами.
4. В установленной мяте открываем терминал, получаем root-права:
Код:
sudo su
Вводим наш пароль и жмякаем enter.
Далее топаем в /home/user (или как там вы свой профиль обозвали), создаем рабочую папочку и переходим туда:
Код:
cd /home/user/
mkdir gnw
cd gnw
5. Устанавливаем необходимые зависимости:
Код:
apt-get install -y git binutils-arm-none-eabi python3 libhidapi-hidraw0 libftdi1 libftdi1-2
6. Устанавливаем патченный openocd (утилита записи для STM32-процессоров):
Код:
wget https://nightly.link/kbeckmann/ubuntu-openocd-git-builder/workflows/docker/master/openocd-git.deb.zip
unzip openocd-git.deb.zip
dpkg -i openocd-git_*_amd64.deb
apt-get -y -f install
7. Качаем и распаковываем тулчейн, прописываем переменную окружения для него:
Код:
wget https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.10/gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2?rev=78196d3461ba4c9089a67b5f33edf82a&hash=5631ACEF1F8F237389F14B41566964EC
tar -xf gcc*
export GCC_PATH="/home/user/gnw/gcc-arm-none-eabi-10.3-2021.10/bin"
8. Прописываем переменную для openocd (нужно делать после каждой перезагрузки, но можно прописать в startup):
Код:
export OPENOCD="/opt/openocd-git/bin/openocd"
9. Тащим следующие репозитории:
Для разлочки:
Код:
git clone --recurse-submodules https://github.com/ghidraninja/game-and-watch-backup
Для создания дуалбута:
Код:
git clone --recurse-submodules https://github.com/BrianPugh/game-and-watch-patch
Мой форк ретро-го с переназначенными кнопками для мегадрайва, во всем остальном полностью идентичен:
Код:
git clone --recurse-submodules https://github.com/rutdarkronin/game-and-watch-retro-go
Или, если хотите оригинальный репозиторий - пожалуйста:
Код:
git clone --recurse-submodules https://github.com/olderzeus/game-and-watch-retro-go
Все готово к работе!
1. Нам понадобятся отвертки: крестовая, тривинг (Y-типа), паяльник, флюс, припой и программатор ST-Link. Можно делать и с Распберри, но в данном гайде это останется за бортом.
2. Втыкаем программатор в ПК и устанавливаем к нему драйвера отсюда - https://forum.cxem.net…tachment.php?id=515147 (откуда угодно, строго говоря)
3. Разбираем консоль. Если будете менять память, то обязательно отпаяйте динамик, отстегните шлейфы и полностью открутите и вытащите плату. Иначе рискуете повредить нежный пластик при замене. Будет обидно потом, что трифорс начал светить криво. Если нет - можно не вынимать плату. Также, можно это сделать уже после дампа и разлочки консоли - тут кому как удобнее.
4. Аккуратно припаиваемся к отладочному порту. Да, именно припаиваемся. Не надо никаких висячих соплей и прочего колхоза - вы будете подавать и снимать питание с консоли, словом шевелить ее, поэтому нужно надежное соединение.
Распиновка есть буквально везде: 2 - SWDIO, 3 - GND, 5 - SWCLK. Больше ничего не надо, никаких 3.3 или 5 вольт, убьете память!
5. Втыкаем программатор в ПК, в диалоге устройств нашей виртуальной машины (контекстное меню снизу справа) жмем правой кнопкой на значок USB и выбираем наш ST-Link.
28000579.jpg
6. Подключаем к консоли кабель Type-C.
Консоль готова к разлочке!
1. Переходим в папку со скриптами:
Код:
cd game-and-watch-backup
2. Зажимаем кнопку питания на консоли и запускаем скрипт:

Код:
./1_sanity_check.sh stlink zelda

Проверки должны пройти.

3. Запускаем скрипт дампа внешней SPI-флешки:

Код:
./2_backup_flash.sh stlink zelda

Скрипт попросит убедиться, что консоль включена - просто включаем ее и жмем Enter.
Если поругается на ошибку - проверяем подключение программатора, пайку, передергиваем питание на консоли, зажимаем кнопку включения и запускаем скрипт. Терпение, дамп занимает примерно 2 минуты.
#
Лог успешного дампа:
root@ammyy-VirtualBox:/home/ammyy/gnw/game-and-watch-backup# ./2_backup_flash.sh stlink zelda
Make sure your Game & Watch is turned on and in the time screen. Press return when ready!

Attempting to dump flash using adapter stlink.
Running OpenOCD... (This can take up to a few minutes.)
Validating ITCM dump...
Extracting checksummed part...
dd if=backups/flash_backup_zelda.bin of=backups/flash_backup_checksummed_zelda.bin bs=16 skip=8192 count=197962
Validating checksum...
Looks good! Successfully backed up the (encrypted) SPI flash to backups/flash_backup_zelda.bin!


4. Теперь дампим внутреннюю память процессора.:

./3_backup_internal_flash.sh stlink zelda

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

root@ammyy-VirtualBox:/home/ammyy/gnw/game-and-watch-backup# ./3_backup_internal_flash.sh stlink zelda
Validating ITCM dump...
This step will overwrite the contents of the SPI flash chip that we backed up in step 2.
It will be restored in step 5. Continue? (y/N)
yGenerating encrypted flash image from backed up data...
Programming payload to SPI flash...
Writing payload to SPI flash failed. Check debug connection and try again.

То необходимо передернуть питание и ОДНОКРАТНО нажать кнопку питания на консоли. Затем запускать скрипт заново. ДЕРЖАТЬ НЕ НАДО!

По окончании записи пэйлоада, необходимо обесточить консоль, заново подать питание, ЗАЖАТЬ кнопку включения и нажать Enter!
Скрипт сам вам это предложит сделать:

Generating encrypted flash image from backed up data...
Programming payload to SPI flash...
Flash successfully programmed. Now do the following procedure:
- Disconnect power from the device
- Power it again
- Press and hold the power button on the device
- The LCD should show a blue screen
- If it's not blue, you can try pressing the Time button on the device
- Press return (while still holding the power button)!

Здесь мы передергиваем питание консоли, зажимаем кнопку включения и жмем Enter! Кнопку держим до победного!

Dumping internal flash...
Verifying internal flash backup...
Device backed up successfully



5. Разлочим возможность записи в память:

./4_unlock_device.sh stlink zelda

Должна пройти разлочка памяти. Аналогично, если ругается на недоступность - зажимаем кнопку питания на консоли и держим до победного.
Лог в случае успеха такой:

oot@ammyy-VirtualBox:/home/ammyy/gnw/game-and-watch-backup# ./4_unlock_device.sh stlink zelda
Unlocking your device will erase its internal flash. Even though your backup
is validated, this still can go wrong. Are you sure? (y/N)
yValidating internal flash backup before proceeding...
Unlocking device... (Takes up to 30 seconds.)
Congratulations, your device has been unlocked. Just a few more steps!
- The Game & Watch will not yet be functional
- Disconnect power from the device for the changes to take full effect
- Power it again
- Run the 5_restore.sh script to restore the SPI and Internal Flash.


6. Восстановим родную прошивку. Этот шаг можно пропустить в том случае, если планируете ставить дуалбут/ретро-го/менять память, т.к. все равно все перезапишется. Но для успокоения и осознания, что все прошло корректно и успешно, можно восстановить и проверить включение консоли:

./5_restore.sh stlink zelda


В результате всех действий, в папке /home/user/gnw/game-and-watch-backup/backups появятся ваши бэкапы. Они нам понадобятся для создания дуалбута.






Настройка программного обеспечения:

********** НЕ ИСПОЛЬЗУЙТЕ 64-БИТНУЮ ОС, ОНА НЕ БУДЕТ РАБОТАТЬ С ЭТИМ РУКОВОДСТВОМ ***********

Это проект был выполнен на Raspberry Pi «2022-04-04-raspios-bulseye-armhf».

с использованием SSH, вам нужно будет клонировать ссылку github ниже

git clone https://github.com/facelesstech/game-and-watch
Этот скрипт настроит все, что вам нужно для резервного копирования и разблокировки вашей игры zelda/mario. Чтобы запустить его, используйте команды ниже

cd game-and-watch sudo apt-get update chmod +x gw-rpi-install-script.sh . gw-rpi-install-script.sh
После завершения установки выполните приведенные ниже команды.

cd ~/opt
Нам нужно выяснить, какую версию xpack-arm-none-eabi-gcc мы только что застопорили. Для этого нам сначала нужно запустить

ls ~/.local/xPacks/@xpack-dev-tools/arm-none-eabi-gcc/
Затем вам нужно будет запустить приведенную ниже команду, но заменить xx.xx-xxx тем, что дала нам последняя команда.

export PATH=$PATH:"/home/pi/.local/xPacks/@xpack-dev-tools/arm-none-eabi-gcc/xx.x.x-x.x.x/.content/bin/"
export OPENOCD="/home/pi/.local/xPacks/@xpack-dev-tools/openocd/0.11.0-4.1/.content/bin/openocd"
cd game-and-watch-backup
./1_sanity_check.sh rpi zelda
Эта последняя команда должна вернуться без каких-либо ошибок. Теперь мы можем перейти к разблокировке вашей игры. Я собираюсь сделать это на моем устройстве Zelda, поэтому, если вы делаете это на устройстве Mario, просто замените Zelda на Mario. Даже если вы выбрали мод USB C pin, я бы перевернул игру экраном в верх и смотрел, потому что она попросит вас несколько раз выключить и снова включить устройство во время разблокировки, я просто отключаю питание разъем аккумулятора, когда мне говорят Сделай так. Также следует упомянуть, что ваше устройство нельзя будет снова использовать, пока не будут выполнены все шаги, поэтому не паникуйте, если оно не включается во время любого из приведенных ниже шагов.

Первая запущенная команда создаст резервную копию вашего внешнего флэш-чипа. Просто введите команду и следуйте инструкциям на экране.

./2_backup_flash.sh rpi zelda
Далее мы создадим резервную копию внутренней флэш-памяти. Снова просто введите команду и следуйте инструкциям на экране.

./3_backup_internal_flash.sh rpi zelda
Следующий шаг фактически разблокирует устройство, чтобы мы могли запустить на нем наш собственный код. Снова просто введите команду и следуйте инструкциям на экране.

./4_unlock_device.sh rpi zelda
Мы почти у цели, просто нужно сделать этот последний шаг, и ваша Game & Watch будут разблокированы и восстановлены до того состояния, в котором они были до того, как мы начали. Снова просто введите команду и следуйте инструкциям на экране.

./5_restore.sh rpi zelda
Если все пошло по плану, и ваша Game & Watch снова работают, мы можем вздохнуть с облегчением. Не забудьте сделать безопасную резервную копию ваших дампов, которые мы только что сделали. Их 3 в папке резервных копий.
Настройка программного обеспечения:
********** НЕ ИСПОЛЬЗУЙТЕ 64-БИТНУЮ ОС, ОНА НЕ БУДЕТ РАБОТАТЬ С ЭТИМ РУКОВОДСТВОМ ***********
Если Вы думали что игры будет устанавливать легче чем разлочить саму приставку - то Вы ошиблись :confused:
Главная проблемой будет сборкой ПО под нашу ARM систему и правильность соблюдения путей для патчей.
:download: openocd-git Брал здесь и собирал с поправкой на ARM. :download: Скачать компилятор отдельно
cd ~/opt/ git clone https://github.com/kbeckmann/ubuntu-openocd-git-builder cd ubuntu-openocd-git-builder ./build.sh sudo dpkg -i openocd-git_*_armhf.deb sudo apt-get -y -f install
Еще внимание нам нужно уделить arm-none-eabi-gcc который мы уже использовали для разлочки Game and Watch, но тут будет он использоваться более широко и требовать версию библиотек выше v10+. Команды на актуальную версию на момент написания мануала:
1. sudo apt update 2. sudo apt upgrade 3. wget https://github.com/xpack-dev-tools/arm-none-eabi-gcc-xpack/releases/download/v10.2.1-1.1/xpackarm-none-eabi-gcc-10.2.1-1.1-linux-arm.tar.gz 4. mkdir -p ~/opt 5. cd ~/opt 6. tar xvf ../xpack-arm-none-eabi-gcc-10.2.1-1.1-linux-arm.tar.gz xpack-arm-none-eabigcc-10.2.1-1.1 7. export PATH=$PATH:/home/pi/opt/xpack-arm-none-eabi-gcc-10.2.1-1.1/bin/ 8. git clone https://github.com/ghidraninja/game-and-watch-backup.git 9. sudo apt install npm 10. npm install --global xpm@latest 11. xpm install --global @xpack-dev-tools/openocd@latest 12. export OPENOCD="/home/pi/.local/xPacks/@xpack-dev-tools/openocd/0.11.0-1.1/.content/bin/openocd" 13. sudo apt-get install binutils-arm-none-eabi python3 libftdi1
Далее нам нужно вернутся в корневой каталог и развернуть инструмент game-and-watch-retro-go:
cd ~/opt/ git clone --recurse-submodules https://github.com/olderzeus/game-and-watch-retro-go cd game-and-watch-retro-go python3 -m pip install -r requirements.txt
Если вам нужно обновить репо, используйте команду ниже:
git pull --recurse-submodules
Проверяем пути и указываем экспорт для библиотеки OPENOCD:
export OPENOCD="/opt/openocd-git/bin/openocd"
make COVERFLOW=1 JPG_QUALITY=90 COMPRESS=lzma GNW_TARGET=zelda flash_all
Но если вы обновили ПЗУ памяти допустим до 64 Мб, используйте эту команду:
make COVERFLOW=1 JPG_QUALITY=90 COMPRESS=lzma EXTFLASH_SIZE_MB=64 GNW_TARGET=zelda flash_all
*Если по какой- то причине программа не видит ваш порт для программирования - укажите его в ручную:
export ADAPTER=rpi




Новый интерфейс и расширение функций еще предстоит опробовать но Ссылку на него уже можно посмотреть тут
game-and-watch-doom-700x396.jpg
Это то, что привлекло мое внимание, когда я исследовал возможности игры и часов. Ближе всего можно сравнить с RetroPie, который объединяет все эмуляторы с хорошим интерфейсом. Исходный сценарий, который мы использовали, клонировал RetroGo Github, но не настраивал его, поэтому нам придется это сделать. Все, что вам нужно сделать, это запустить команду ниже. Сначала нам нужно перейти в папку retrogo, используя команду ниже.

cd ~/opt/game-and-watch-retro-go
Затем установите все требования с помощью команды ниже.

python3 -m pip install -r requirements.txt
apt install gcc-arm-none-eabi
Если вы только что разблокировали игру и смотрите, вам не нужно будет запускать приведенные ниже команды, но если вы перезагрузились или вошли в систему и вышли из своего Raspberry Pi, вам нужно будет выполнить эти команды. Также каждый раз, когда вы входите в свой pi, чтобы запустить игру и посмотреть, вам нужно будет запускать эти команды.

Нам нужно выяснить, какую версию xpack-arm-none-eabi-gcc мы только что застопорили. Для этого нам сначала нужно запустить

ls ~/.local/xPacks/@xpack-dev-tools/arm-none-eabi-gcc/
Затем вам нужно будет запустить приведенную ниже команду, но заменить xx.xx-xxx тем, что дала нам последняя команда.

export PATH=$PATH:/home/pi/.local/xPacks/@xpack-dev-tools/arm-none-eabi-gcc/xx.x.x-x.x.x/.content/bin/
export OPENOCD="/home/pi/.local/xPacks/@xpack-dev-tools/openocd/0.11.0-4.1/.content/bin/openocd"
Вам нужно решить, какие ПЗУ вы собираетесь установить на свое устройство. Я обнаружил, что ПЗУ Gameboy занимают больше всего места, но RetroGo сжимает ПЗУ, чтобы вы могли выжать больше из игры и смотреть. Roms помещаются в /home/pi/opt/game-and-watch-retro-go/roms/ Затем в этой папке вы найдете папки Roms, соответствующие эмуляторам, показанным ниже.

  • ColecoVision (col)
  • Gameboy / Gameboy Color (gb/gbc)
  • Game & Watch / LCD Games (gw)
  • Nintendo Entertainment System (nes)
  • PC Engine / TurboGrafx-16 (pce)
  • Sega Game Gear (gg)
  • Sega Master System (sms)
  • Sega SG-1000 (sg)
Стандартная игра и часы Mario имеют только 1 МБ памяти, но игра Zelda и часы имеют 4 МБ дискового пространства. Если вы хотите узнать, подойдут ли они перед прошивкой, вы можете запустить эти команды ниже. Первая предназначена для Zelda.

make size GNW_TARGET=zelda
и для Марио один

make size GNW_TARGET=mario
После того, как вы разобрались со своими ромами, вам нужно будет прошить образ в игру и посмотреть. Подключите перемычки к открытому разъему или адаптеру USB C и убедитесь, что устройство включено. Команда для Zelda приведена ниже.

make -j8 flash GNW_TARGET=zelda
Это команда Марио.

make -j8 flash GNW_TARGET=mario
Это также будет тема RetroGo с красным для Марио и зеленым для Zelda. Также, если вы переключаетесь с прошивки игры Zelda или Mario и смотрите, вам нужно будет очистить сборку перед переключением, используйте команду ниже.

make clean
Если вы собираетесь обновить свое хранилище, вам нужно будет прочитать ЭТО , в нем будет рассказано все, что вам нужно знать о том, какие флэш-чипы заказывать. Я отправил с MX25U51245GZ4I00, который составляет 64 МБ, максимальный размер, который вы можете использовать. Его можно найти на Aliexpress в единственном количестве, но вам понадобится рабочая станция с горячим воздухом, чтобы снять и припаять новый чип. Вам нужно будет сообщить RetroGo о расширенном хранилище, поэтому, если вы использовали тот же чип, вам нужна команда ниже. Прочитайте ретрого github для разных команд для разных размеров чипов.

make -j8 flash GNW_TARGET=zelda EXTFLASH_SIZE_MB=64
Переделка программатора ST-Link :download:
:4pda: Rasta Faka
Сделал себе вот такую штучку для "удобства" прошивки. Подробной схемы не будет, любители смогут сами собрать подобное на макетной плате, да и распиновки клонов stlink отличаются, универсальной схемы нет. На консольке предполагается выведение контактов swdio, swclk и rst на незадействованные пины разъема type-c.
Отдельно объясню про кнопку. При нажатии происходит замыкание вывода rst на землю, соответственно осуществляется сброс консоли. Очень полезно при прошивке консоли без разборки, не нужно дергать коннектор АКБ, чтобы включить ее после осуществленных манипуляций. Иногда консоль не стартует после прошивки на горячую и можно просто нажать reset. Либо нажать эту кнопку перед прошивкой, вместо зажатия кнопки питания, но это уже индивидуально, retro-go часто не с первого раза стартует.
PXL_20220706_164105965.jpgPXL_20220706_164124129.jpg

Подключение отладчика​

При подключении отладчика убедитесь, что по крайней мере подключены SWDIO, SWDCLK и GND. Ни при каких обстоятельствах не подключайте 3,3 В к разъему VDD. Если ваш отладочный зонд (например, клоны ST-Link) не имеет разъема VTREF, просто оставьте VDD неподключенным. Подключение 3,3 В к VDD, скорее всего, уничтожит вашу флэш-память SPI.

Разъем отладки варианта Zelda имеет ту же распиновку, что и вариант Mario, но имеет два дополнительных разъема (PB3 и N/C). Маленький треугольник указывает на контакт 1.

Поддерживаемые отладчики​

Пожалуйста, используйте официальный ST-Link (не один из маленьких клонов USB-накопителя) или полноразмерный J-Link. Другие могут работать, многие из них не работают с логическими уровнями 1,9 В, используемыми в Game and Watch.

Программисты, с которыми у нас было много проблем: J-Link EDU Mini (не работает), дешевые клоны ST-Link.

Хост Raspberry Pi​

Вы можете использовать Raspberry Pi для резервного копирования игр и часов. В этом случае вам следует использовать установку Raspbian и выполнить шаги, описанные в разделе установки Ubuntu, но на Raspberry Pi. Вам нужно использовать 3 провода: GPIO25 для SWCLK, GPIO24 для SWDIO и GND для GND (в нотации распиновки BCM), или вы можете жестко закодировать свой собственный gpios в openocd/rpi.cfg. Краткую справку по распиновке на RPi можно увидеть, открыв терминал и запустив pinout.
Скриншот 07-07-2022 114136.jpg

Настройка Ubuntu​

Установите необходимые инструменты:

sudo apt-get install binutils-arm-none-eabi python3 libhidapi-hidraw0 libftdi1 libftdi1-2
Примечание. Версия openocd, включенная в Ubuntu 20.04 (0.10.0), не включает функции, необходимые для этих сценариев. Необходима сборка из невыпущенной основной ветки. Пожалуйста, установите более новую версию, либо собрав ее самостоятельно, либо установив готовый пакет, например, из этой ночной сборки , используя xPack или аналогичный.

Альтернативное местоположение openocd​

Если вы использовали вышеупомянутую ночную сборку openocd, она будет находиться в каталоге /opt.

Чтобы использовать эту конкретную версию, вы можете либо экспортировать переменную OPENOCD, либо добавить к своим командам префикс объявления переменной:

export OPENOCD="/opt/openocd-git/bin/openocd"
./1_sanity_check.sh
./2_....
ИЛИ ЖЕ

OPENOCD="/opt/openocd-git/bin/openocd" ; ./1_sanity_check.sh
OPENOCD="/opt/openocd-git/bin/openocd" ; ./2_....
Наконец, вы можете просто запрограммировать некоторые переменные в config.sh.

Настройка Mac​

Использование доморощенного:

brew install --HEAD openocd
brew tap ArmMbed/homebrew-formulae
brew install arm-none-eabi-gcc

Применение​

Перед запуском обязательно отключите аккумулятор, так как он может помешать процессу. Включите устройство с помощью разъема USB-C.

Скрипты разбиты на 5 частей:

  • 1_sanity_check.sh — выполняет проверку работоспособности и проверяет наличие всех необходимых инструментов
  • 2_backup_flash.sh — создает резервную копию содержимого флэш-памяти SPI. Не изменяет содержимое устройства.
  • 3_backup_internal_flash.sh — создает резервную копию внутренней флэш-памяти. Для этого модифицируется содержимое флэш-памяти SPI. Ваше устройство перестанет работать, пока оно не будет восстановлено на шаге 5.
  • 4_unlock_device.sh — отключит активную защиту от чтения. Это сотрет внутреннюю флэш-память STM32.
  • 5_restore.sh - Это восстановит исходную прошивку.
Просто запустите эти скрипты из проверенного каталога один за другим. Все сценарии безопасны для повторного запуска в случае ошибки.

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

Что если что-то пойдет не так​

Пока ваши электрические соединения в порядке и вы ничего не закорачивали/не перенапрягали, велики шансы, что это можно спасти:

Если сценарий не работает и устройство не работает после выключения и включения, повторите сценарий. Если снова не получится, попробуйте удерживать кнопку питания устройства во время выполнения скрипта.

Кроме того, в качестве первого шага попробуйте снизить скорость адаптера. При использовании stlink вы делаете это, добавляя adapter speed 100в качестве последней строки в openocd/interface_stlink.cfg.

Что-то пошло не так на шагах 1 и 2​

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

Что-то пошло не так на шаге 3​

Шаг 3 изменит внутреннюю вспышку устройства. Если этот шаг не удался, ваше устройство останется в кирпичном состоянии. Чтобы восстановиться, выполните:

./restore_only_external_flash.sh <stlink or jlink or rpi> <mario or zelda>
Если скрипт не может подключиться к устройству, нажмите и удерживайте кнопку питания на устройстве во время работы flashloader и попробуйте ПОЛНОСТЬЮ перезагрузить цель между попытками.

Что-то пошло не так на шаге 4​

Шаг 4 вызовет массовое стирание и оставит ваше устройство пустым. Чтобы восстановить его, запустите скрипт 5.

Что-то пошло не так на шаге 5​

Шаг 5 должен быть выполнен успешно, если нет: попробуйте запустить скрипт, удерживая нажатой кнопку питания Game & Watch. Попробуйте выключать и снова включать цель между попытками.

Получение помощи и вклад​

Не стесняйтесь присоединиться к нашему каналу в разногласиях и задавать любые вопросы в службу поддержки в #game-and-watch-support .

Другие каналы:

  • #game-and-watch-hacking Канал для общих разговоров о домашнем пивоварении на Game & Watch! Пожалуйста, никаких ПЗУ, никаких флэш-дампов и т. д., но приветствуются любые вопросы, связанные с кодом, или другие хакерские идеи.
  • #replacement-pcb Здесь мы обсуждаем возможности и разработку сменных печатных плат для игр и часов.
  • Game-and-watch-hacking wiki Справочная вики обо всем, что касается взлома Game & Watch. В том числе внутренности.
GB
Donkey Kong Land
Donkey Kong Land 2
Donkey Kong Land 3
Kirby's Dream Land
Kirby's Dream Land 2
Legend of Zelda, The - Link's Awakening DX
Legend of Zelda, The - Oracle of Ages
Legend of Zelda, The - Oracle of Seasons
Mega Man V
Metroid II - Return of Samus
Prince of Persia
Super Mario Land
Super Mario Land 2 - 6 Golden Coins
Tale Spin

GW
Game & Watch Chef
Game & Watch Donkey Kong Jr. (New Wide Screen)"
Game & Watch Fire (Wide Screen)"
Game & Watch Helmet
Game & Watch Lion
Game & Watch Manhole (Gold)
Game & Watch Octopus
Game & Watch Parachute
Game & Watch Popeye (Wide Screen)
Game & Watch Snoopy Tennis
Game & Watch Tropical Fish
Game & Watch Vermin
Merry Cook
Nu, pogodi!

MD
Aladdin
Battletoads-Double Dragon
Castlevania — Bloodlines
Comix Zone
Desert Strike
Ecco the Dolphin
Jungle Strike
The Lost Vikings
Road Rash 3
Shinobi III - Return of the Ninja Master (USA)
Sonic The Hedgehog (USA, Europe)
Sonic The Hedgehog 2 (World) (Rev A)
Sonic The Hedgehog 3 (Europe)
Super H.Q. (Japan)
Teenage Mutant Ninja Turtles - The Hyperstone Heist (USA)
Tetris (Japan)
The Jungle Book
The Lion King
True Lies
NES
Balloon Fight
Battle City
Boulder Dash
Chip 'n Dale Rescue Rangers
Chip 'n Dale Rescue Rangers 2
Circus Charlie
Contra
Darkwing Duck
Donkey Kong Classics
Dr. Mario by Rinkaku
Duck Tales
Duck Tales 2
Excitebike
Ice Climber
Jackal
Lode Runner
Mappy
Mario Bros
Mega Man 6
Metal Gear
Pac-Man
Prince of Persia
Robocop 3
Super Contra
Super Mario Bros
Super Mario Bros. 2
Super Mario Bros. 3
TaleSpin
Teenage Mutant Ninja Turtles II - Arcade Game
Tennis
Terminator 2 - Judgment Day
Tetris
The Lone Ranger
Tiny Toon Adventures
TMNT III - Manhattan Project
Tom & Jerry (and Tuffy)

PCE
Bomberman '94
Dead Moon
New Adventure Island
Street Fighter II' - Champion Edition

SMS
Land of Illusion Starring Mickey Mouse
Montezuma's Revenge
Ninja Gaiden
Prince of Persia
make -j1 EXTFLASH_SIZE_MB=45 EXTFLASH_OFFSET=4194304 INTFLASH_BANK=2 COVERFLOW=1 GNW_TARGET=zelda flash
:mail: Скачать
Базовый мануал
 

Вложения

  • internal_flash_backup_zelda.bin
    128 KB · Просмотры: 10
  • internal_flash_backup_zelda.rar
    79.6 KB · Просмотры: 6
  • game-and-watch-backup-main.zip
    367.7 KB · Просмотры: 7
  • No_Soldering_Guide_RaspberryPi_only_to_add_games_on_Game_and_Watch_V1.pdf
    438 KB · Просмотры: 6
  • Взлом игр и часов с помощью RPI .pdf
    13.1 MB · Просмотры: 33
  • ubuntu-openocd-git-builder.zip
    11.7 KB · Просмотры: 5
  • gw_rom.zip
    1.5 MB · Просмотры: 4
  • ROM_4Mb_ZELDA.zip
    2.6 MB · Просмотры: 4
Последнее редактирование:
Назад
Сверху