Game - Watch Super Mario!

Buenas

Yo finalmente he conseguido hacer el proceso (con algunos daños físicos en la consola pero bueno cosas del directo xD) mi duda es, hay alguna forma de añadir las ROMs sin tener que volver a abrirla? Es decir en plan copia pega? O tendría que volver a poner stlink y realizar los últimos procesos en los que se meten y escriben estas?
Puedes hacer dos mods, el difícil que es poner el stlink dentro de la consola, y cablear al conector USB C y de ese modo mantener la consola cerrada siempre y con un cable USB estándar porgramar.
O el fácil que es cablear sólo los dos cables SWDIO y SWCLK al conector USB C para mantener la consola cerrada, luego preparas un cable especial que conectas a la consola y donde llevas SWDIO y SWCLK, ademas de GND y Vcc al STlink V2 ya externo.
@neohroot incluso podría soldar los cables a SWDIO, SWCLK y GND de la placa y "sacarlos" de la consola no?

Es decir, podría poner cables que en el extremo sean hembras y cortar un poco la carcasa para ajustarlos de modo que después solo necesitaría conectar los pines machos a estos 3 hembras y al SPI (no sé si me he explicado bien)

Hay algún enlace donde pueda ver los mods?

Lo que me sigue generando dudas es el proceso de añadir/eliminar roms. Sería tan "tedioso" como tener que volver a hacer los 3 últimos pasos del script que he usado hoy hay otra formas más sencilla?
Si claro puedes poner un conector 2.54 normal y cortar carcasa, pero esa solución ni la mencione por no fastidiar la estética de la consola. Yo personalmente no lo haría.
Mods en este mismo hilo hay ejemplos, ademas del discord “oficial” (en primera página del hilo esta el canal).
Yo hice el interno y aunque me costó lo suyo, es muy cómodo.
Yo no uso el menú que usáis, lo hago mas a mano, el proceso básicamente es:
Copiar las roms a sus carpetas correspondientes, incluir la imagen del juego (opcional), compilar, conectar y flashear.
Bueno la estética en principio no me "importa" mucho de hecho la pantalla se ha quedado con una mancha como de húmedad cuando he limpiado los restos de flux con alcohol isopropilico (que es algo que me parece muy raro) así que si se le ve el conector tampoco me preocupa. Además cuando la trastee y sepa bien más o menos como va todo esta se la regalo a mi hermano y monto una más "limpia"

El discord es el de stacksmashing? Si es así estoy dentro voy a bichear a ver
Alguno teneis una imagen de 4Mb con los juegos de Game Watch para la Zelda?
Para que sea hacer el proceso y listo?
Buenas

Alguien sabe como extraer las partidas guardadas? Hay algunos juegos de GB (como zelda o pokemon que lo hacen)

He preguntado en el discord oficial y me han pasado este enlace pero como soy un tollo en linux no me queda claro XD

https://github.com/kbeckmann/game-and-w ... tate-files
Buenas

Me han echado los reyes la del Zelda!!

Y estoy viendo que se puede flashear y meterle roms?
@rafaliyo86 en el github te dice como hacerlo: aquí
Edito: Vale! Acabo de ver que es el mismo link [fies]
Aunque sea Linux al final no deja de ser ejecutar el script, insiste mucho en mantener le elf. Este elf no es mas que el binario compilado, cuando guardes y restaures los save lo hagas con el elf en el directorio BUILD que corresponde al lo que flasheaste en la consola al guardar o recuperar.


@jare efectivamente! Aunque no es trivial , échale un vistazo al primer post.
neohroot escribió:@rafaliyo86 en el github te dice como hacerlo: aquí

@jare efectivamente! Aunque no es trivial , échale un vistazo al primer post.

Me lo mirare

Gracias!
@neohroot entonces yo tendria que entrar en la consola (de linux) y ejecutar este comando?
./scripts/saves_backup.sh build/gw_retro_go.elf

Y si quiero meterlo este: ./scripts/saves_restore.sh build/gw_retro_go.elf

Y lo que se genera en ambos casos es el elf?
No, el elf es el binario completo, o sea, fw parcheado + retrogo + roms,
Con ese script, o con make flash_saves_backup, guardas y recuperas SOLO la región que corresponde a los saves, el elf es lo que genera cada vez que tu compilas con las roms, y ese elf corresponde con los saves que has guardado.

Save states can be backed up using either ./scripts/saves_backup.sh build/gw_retro_go.elf or by running make flash_saves_backup. Make sure to use the elf file that matches what is running on your device! It is a good idea to keep this elf file in case you want to back up at a later time.

Note the same variables that were used to flash have to be set here as well, i.e. ADAPTER, EXTFLASH_SIZE_MB, EXTFLASH_OFFSET, INTFLASH_BANK etc. This is best done with export VARIABLE=value
@narcotic, entiendo que quieres leer una memoria de 64MB ya flasheada? Puedes leerla de una manera mas o menos sencilla con el STM32CubeProgrammer y con un loader para la memoria externa de 64MB, al igual que puedes hacer lo mismo para leer la memoria interna de 128KB.
Revisa en post anteriores que mencionaba esto mismo.
Actualizarlo si claro, dependiendo de la G&W modificada que tengas podrias mejorar ciertos detalles de la última versión, incluyendo nuevos emuladores, nuevamente, revísate los repos que indicamos en el manual.


@neohroot Hola, he instalado el programa en linux y me conecto a la maquinita, ahora que tengo que hacer y que loader seleccionar para guardar la memoria externa?
Ahora no lo tengo delante para indicarte las instrucciones,
Los loaders estan en la web de Tim,
Loaders

Él indica el unas instrucciones para programar solo en una zona y por consola, tu puedes usar el stm32cube cargando el loader para leer la flash externa completa, y sin cargar el loader para leer la interna.

Algo decía hace tiempo en este mismo hilo.
@neohroot entonces (y perdón si soy cansino) el proceso seria conectar mi consola, ejecutar el comando (que guarda archivo) y ua deberia guardarse en el pc? Y en caso de querer restaurarlo ejecutar el comando que graba y en este caso compilar otra vez los juegos y flashearlo?

Es que ya te digo, el tema soldaduras es pan comido pero programación y más en linux 0 idea
Yo despues de tener la consola meses sin abrir me he atrevido a soldarle el chip del mal y programarlo con un stlink chino y una rpi 400, no puedo estar mas contento de que no haya muerto (algun susto si que dio)

Imagen

Imagen
Aún es válido el tutorial de la wiki para hacerlo en la del zelda con la rpi wiki/Game_&_Watch:_Super_Mario_Bros?
Buenas tardes a tod@s
Tras varios días peleando para liberar la maquinita de Zelda con una Raspberry pi3, finalmente lo he conseguido.
Me registro por si sirve de ayuda a alguien que siga los mismos pasos que yo
Habéis hecho una guía muy buena, para mí la mejor, pero quiero añadir pequeños matices para que no os volváis locos los que, como yo, no tengais mucha idea de Linux.

Primero, he usado el último raspbian que hay, descargado desde el Raspberry Pi imager para Windows 10.
Pasar de otras distribuciones preparadas de otras páginas porque a mí por lo menos, me daban errores con openocd.
Luego, a la hora de hacer este paso instalando keystone:

git clone https://github.com/keystone-engine/keystone
cd keystone/bindings/python/
sudo python3 setup.py install

Dejar a la Raspberry tranquila sin tocar nada, puede tardar 15 minutos o hasta 2 horas como me llegó a pasar a mi.
En este siguiente paso:

cd ..
cd game-and-watch-patch
pip3 install -r requirements.txt
make download_sdk
cd ~

más de lo mismo, se puede pegar muchísimo tiempo, tanto que parecerá que se ha colgado la Raspberry.
Ni caso, dejarla hacer el tiempo que haga falta, sabréis que está trabajando porque el led amarillo al lado del rojo estará encendido o parpadeando.

Al llegar al punto de la guía donde dice

cd ~
cd opt
cd game-and-watch-backup
./1_sanity_check.sh

Añadir ./1_sanity_check.sh rpi Zelda

Si no os da error de openocd y pone looks good, adelante.
Si no.... Como yo no tengo ni idea de Linux, hasta donde se, es que algo habéis hecho mal, así que volvería a empezar desde el principio

Si en algún momento a partir de aquí no podéis seguir adelante, pulsar el botón power de la game y watch y dar intro con la instrucción que tengáis, por ejemplo, con
./5_restore.sh rpi Zelda

Si todo sale bien y vais a instalar retro go, llegaréis hasta el paso que dice (no lo hagáis aún)

cd ~
cd opt
cd game-and-watch-retro-go
make -j$(nproc) COMPRESS=lzma flash

A mi me ha funcionado meter este otro :

cd ~
cd opt
cd game-and-watch-retro-go
make -j8 flash GNW_TARGET=zelda

Darle una vez, tardará un rato, y os dará un error.
No pasa nada, habrá reducido el peso de las roms que habéis metido.
Volvéis a poner el siguientr código de nuevo y mantenéis pulsado el botón de encender la Game y watch

make -j8 flash GNW_TARGET=zelda

Ahora sí, empezará a flashear la consola y tendréis en unos minutos instalado retrogo

Si algo falla y se os queda la Game y watch muerta, manteniendo pulsado el botón de encendido, introducis de nuevo el comando:

./5_restore.sh rpi Zelda

Y volvéis a hacer el paso

cd ~
cd opt
cd game-and-watch-retro-go
make -j8 flash GNW_TARGET=zelda

Me costó hacerlo porque no pulsaba power en el momento preciso, y me he vuelto loco!
Escribo esto para ayudar a los que se animen, para que no os desquicieis tanto como yo, y para dar las gracias a todos los que habéis hecho/contribuido en esta guia
Un saludo!!
@Mikelonline19 Gracias, parece que es justo lo que necesitaba saber para cuando en breve me llegue la nueva memoria de 64MB !!! [beer]
Me alegro de poder ayudarte !
Mi consejo, hacer el proceso con cables dupont
yavimaya escribió:Aún es válido el tutorial de la wiki para hacerlo en la del zelda con la rpi wiki/Game_&_Watch:_Super_Mario_Bros?


Yo lo que tuve que cambiar del tuto es que tuve que compilarlo toooooooodo en raspbian OS bullseye 32bits.

El gcc-arm-none-eabi me tardo en compilar 18h. Que dejo aqui el enlace del paquete creado para el que tenga el mismo sistema y no se vuelva loco (no uso el de 64bits porque ahi no funciona el widevine y lo necesito para netflix, amazon, hbo, spotify....)

gcc-arm-none-eabi-10.3-2023.01-armv7l-linux.tar.bz2

El keystone-engine tambien tuve que compilarlo.
Etc etc etc

Pero bueno, ya puedo flashear tanto con la rpi, como con el stlink v2 o con el stm32 nucleo, todo en un solo aparato, suelo usar el stlink mas que nada por comodidad.
@Ninoh-FOX gracias por la currada de compilarlo, soy muy poco paciente XD
Por otro lado, hace tiempo que no pruebo mas allá de 8 bits y G&W, creo que la parte de mega no ha avanzado mucho, alguno os habéis peleado con esas roms?
Lo último que recuerdo era que no había saves y el audio era un poco meh
@neohroot el de github de Sylverb, quitando alguna rom puntual, no me ha dado pegas las roms de MD, de echo va muy muy bien, pero un detalle, no las comprime, se meten directas, asi que cuidado con meter muchas XD

Estoy buscando algo para trimmearlas, pero no encuentro nada de nada.

Edit: y tiene saves

https://github.com/sylverb/game-and-watch-retro-go
@neohroot
No consigo extraer los datos de la memoria, he configurado el loader, pero no tengo muy claro que valor hay que darle a la casilla de size y los otros valores. adjunto pantallazo de como lo tengo configurado.Imagen
Una preguntilla
Como se meten ROMs nuevas en retrogo?
Hay que borrar las que ya están, y meter todas de nuevo y retrogo cada vez?
O hay algún modo de solo tocar las roms?
Y por cierto, se sabe algo sobre si Pokemon plata funciona con el reloj interno de la Game y watch?
Estoy intentando setear el sistema con una rpi3 con una instalacion limpia de debian bullese lite de 32bit del image oficial, pero al hacer este paso del primer script :

git clone https://github.com/kbeckmann/ubuntu-openocd-git-builder
cd ubuntu-openocd-git-builder/
./build.sh


Obtengo este error:

checking for libjaylink >= 0.2... no
configure: error: libjaylink-0.2 is required for the SEGGER J-Link Programmer
make[1]: *** [Makefile:5: all] Error 1
make[1]: Leaving directory '/home/pi/opt/ubuntu-openocd-git-builder/openocd-git'
dh_auto_build: error: make -j4 returned exit code 2
make: *** [debian/rules:4: build] Error 255
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2


y no encuentro documentación de si es una situación normal o no.
Prueba mejor con raspbian
yavimaya escribió:Estoy intentando setear el sistema con una rpi3 con una instalacion limpia de debian bullese lite de 32bit del image oficial, pero al hacer este paso del primer script :

git clone https://github.com/kbeckmann/ubuntu-openocd-git-builder
cd ubuntu-openocd-git-builder/
./build.sh


Obtengo este error:

checking for libjaylink >= 0.2... no
configure: error: libjaylink-0.2 is required for the SEGGER J-Link Programmer
make[1]: *** [Makefile:5: all] Error 1
make[1]: Leaving directory '/home/pi/opt/ubuntu-openocd-git-builder/openocd-git'
dh_auto_build: error: make -j4 returned exit code 2
make: *** [debian/rules:4: build] Error 255
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2


y no encuentro documentación de si es una situación normal o no.


Has probado con "sudo apt install libjaylink*-dev"?

EDIT: ya se cual es tu problema, esta usando un distro de linux anterior a bullseye, me ha pasado en un ordenador con buster. para solucionarlo tendras que compilar la libreria por separado de la siguiente forma:

$ git clone https://gitlab.zapb.de/libjaylink/libjaylink.git
$ cd libjaylink
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install


EDIT2: vale, el programa es tonto y no lee una libreria compilada por uno mismo al no reconocer sus dependencias, pero hay otra solucion.

antes de compilar openocd-git tienes que editar el makefile que esta en ubuntu-openocd-git-builder/openocd-git/makefile de la siguiente forma:

PREFIX=/opt/openocd-git

all: | openocd
   cd openocd; ./bootstrap
   cd openocd; CCACHE=none ./configure --prefix=$(PREFIX) --enable-internal-libjaylink --enable-maintainer-mode --disable-werror $(shell bash ./features.sh)
   $(MAKE) -C openocd

mac: | openocd
   cd openocd; ./bootstrap
   cd openocd; CCACHE=none ./configure --prefix=$(PREFIX) --enable-maintainer-mode --disable-werror --disable-parport --disable-parport-ppdev --disable-doxygen-html $(shell bash ./features_mac.sh)
   $(MAKE) -C openocd

openocd:
   git clone https://repo.or.cz/openocd.git openocd
   cd openocd; patch -p1 < ../../0001-Extend-bank1-and-enable-bank2-of-STM32H7B0VBTx.patch

install:
   $(MAKE) -C openocd install
# udev rules
   install -D -m 0644 -t $(DESTDIR)/lib/udev/rules.d udev/*

clean:
   rm -rf openocd


entonces al escribir ./build.sh te creara por fin el paquete deb para buster.
Por lo que se habló hace ya un año por estos lares con el tema de que las baterías con los años se hinchan...me imagino que no aconsejáis tener este tipo de máquinas precintadas o sin estrenar por coleccionismo y exposición.

Tengo tanto la de Mario como la de Zelda expuestas sin estrenar en una vitrina, imagino que están destinadas a morir con los años si las dejo ahí, así que debería usarlas y/o quitarles la batería entiendo.

¿Qué opináis sobre este tema?

Un saludo.
Arkziel escribió:Por lo que se habló hace ya un año por estos lares con el tema de que las baterías con los años se hinchan...me imagino que no aconsejáis tener este tipo de máquinas precintadas o sin estrenar por coleccionismo y exposición.

Tengo tanto la de Mario como la de Zelda expuestas sin estrenar en una vitrina, imagino que están destinadas a morir con los años si las dejo ahí, así que debería usarlas y/o quitarles la batería entiendo.

¿Qué opináis sobre este tema?

Un saludo.


Las baterias de nintendo no suelen tener ese problema, por lo menos en las gba/nds/3ds nunca he visto el caso de que se inchen.

Por cierto, he metido la paleta que trae el G&W de zelda en el emulador de GB en el de RetroGo, ya esta el codigo fusionado con el del desarrollador.

Imagen

A la izquierda consola de zelda sin modificar, a la derecha consola con retrogo.
2079 respuestas
138, 39, 40, 41, 42