Game & Watch: Super Mario Bros.

Se ha solicitado el borrado de este artículo.

Razón: He cambiado el nombre. El original-este- tiene un punto al final que genera conflictos al usar la url

Game & Watch: Super Mario Bros. (G&W) es una consola lanzada por Nintendo el 13 de noviembre de 2020. Se trata de una revisión de la consola original Game & Watch de 1980, relanzada para celebrar el 35.º aniversario de Super Mario Bros.

NSwitch_GameWatch_Fun_Hardware_image600w.png

A diferencia de la consola original, la Game & Watch Super Mario Bros. incluye una pantalla LCD en color y un pad direccional similar al del mando de la NES además de un botón extra.

A nivel de software se incluyen los juegos Super Mario Bros., Super Mario Bros.: The Lost Levels y Ball (versión Mario) además de un reloj digital repleto de huevos de pascua. Todo esto ocupando un total de 1 Mb, memoria total disponible en la consola.

La consola dispone de un puerto de carga USB C y una batería estimada de 8 horas. Este puerto tan sólo tiene habilitadas la líneas de voltaje y de tierra con lo que no es posible conectarlo a un ordenador para poder realizar modificaciones. La única forma de modificar la consola por tanto pasa por abrirla y comunicarnos directamente con el procesador mediante los puertos de debug de la placa.

La G&W monta un procesador con arquitectura STM32 bloqueada contra escritura. Por suerte la scene ha conseguido desbloquear este procesador por lo que actualmente es posible realizar lecturas y escrituras en la flash sin problemas.

Debemos recordar que la consola dispone tan sólo de 1 Mb de memoria flash aunque como veremos más adelante esto se puede cambiar si se reemplaza el chip de memoria por otro mayor.

= Scene =

Aviso: la modificación de la consola conlleva la pérdida de la garantía del fabricante y además puede dejarla inutilizable. Aunque se trata de un proceso bastante seguro es necesario realizar conexiones directas entre un programador y los puertos de debug de la placa; cualquier contacto mal hecho o cualquier cruce de cables puede freir la consola y romperla sin posibilidad de reparación. Por supuesto no nos responsabilizamos de nada de lo que pueda ocurrir al usar estos tutoriales.

Tal y como se ha comentado, el chip de la consola viene bloqueado de origen, lo que imposibilita la instalación de software casero. Por ello, el primer paso a realizar antes de instalar homebrew es el de desbloquear el procesador de la G&W.

Desbloqueando la G&W

Para realizar el desbloqueo es necesario abrir la consola con un destornillador Y 2.0 y conectar un programador a ciertos puntos de la placa. Luego, mediante unos scripts de linux se realiza el proceso. Este proceso debe realizarse con la batería cargada al 100% y NO se debe conectar la consola al cable USB. Sólo debe usarse la batería dado que el voltaje es más estable que el dado por el conector USB-C de carga.

Para realizar el proceso es necesario un programador ST-Link V2; se recomienda que sea original aunque también es posible conseguirlo en webs chinas (en este caso suelen ser clones). También puede realizarse el proceso con una Raspberry Pi (3 o 4). En el tutorial veremos ambos casos. También es necesario utilizar Linux (Ubuntu 20.04 compatible), bien mediante una máquina virtual o bien ejecutado directamente en el ordenador.

Instalando el software en ordenador

Esta parte del tutorial es una adaptación resumida de estas instrucciones. Desde la consola de linux ejecutamos la siguiente orden para instalar parte del software necesario.

sudo apt-get install binutils-arm-none-eabi python3 libhidapi-hidraw0 libftdi1 libftdi1-2 git

Una vez terminado hay que instalar una versión personalizada de openocd, que será el software encargado de flashear los archivos a la consola. Para ello, ejecutamos lo siguiente:

wget https://nightly.link/kbeckmann/ubuntu-openocd-git-builder/workflows/docker/master/openocd-git.deb.zip
unzip openocd-git.deb.zip
sudo dpkg -i openocd-git_*_amd64.deb
sudo apt-get -y -f install
echo export OPENOCD=/opt/openocd-git/bin/openocd >>~/.bashrc
export OPENOCD="/opt/openocd-git/bin/openocd"

Una vez tenemos instalado el software de apoyo vamos a instalar los scripts que nos permitan liberar la G&W.

cd ~
mkdir opt
cd opt
git clone https://github.com/ghidraninja/game-and-watch-backup

Con esto el software está instalado. Ahora toca conectar el hardware.

Para ello es necesario conectar los cables de la siguiente forma:

ST-Link 2: SWCLK->Sonda o soldar cable -> Game & Watch SWCLK ST-Link 4: SWDIO->Sonda o soldar cable -> Game & Watch SWDIO ST-Link 6: GND ->Sonda o soldar cable -> Game & Watch GND

Los puntos de la G&W son estos:

Conexiongw.jpg

Hecho esto, podemos empezar el proceso de liberación. Se trata de 5 pasos. Cada uno se encarga de un proceso vital en la liberación y no se debe saltar al paso siguiente hasta haber completado el actual. En algunos pasos el ordenador nos dará instrucciones sobre como proceder. Es importante seguirlas tal y como se exponen. Por cierto, en algunos momentos puede parecer que el proceso se ha parado pero no es así; algunos pasos pueden tardar hasta 5 minutos en completarse.

Para liberar escribimos lo siguiente.

cd ~
cd opt
cd game-and-watch-backup
./1_sanity_check.sh
./2_backup_flash.sh stlink
./3_backup_internal_flash.sh stlink
./4_unlock_device.sh stlink
./5_restore.sh stlink

Una vez realizados estos pasos, la consola debería estar liberada. Si durante alguno de los pasos os da error y os indica que no se puede conectar con la consola, mantened pulsado el botón de encendido durante el proceso.