Game - Watch Super Mario!

@RataWeb
You can change orientation of vertical dual screen games by editing the custom script of LCD-Game-Shrinker.
For example : green bouse.
you can edit /custom/gnw_ghouse.py at line 32 to change orientation.
by default, line 32 is commented, it sets the orientation to normal.
#rom.rotate = True

you can uncomment this line to change dual screen orientation.

You can change this parameter ’rom.rotate’ for all vertical dual screen games.

bzhxx
@bzhxx, when rom.rotate = true, DPAD and other buttons are mapped accordingly? Or we need to remap on the script?
Thanks!
neohroot escribió:@bzhxx, when rom.rotate = true, DPAD and other buttons are mapped accordingly? Or we need to remap on the script?
Thanks!

The DPAD is remapped accordingly. It’s also done in custom script.
You can also change aspect ratio for both orientation using:
# define width and height borders to keep an acceptable ratio
rom.width_border_ratio = 10/100
rom.height_border_ratio = 0

bzhxx
Actualizado el repo principal corrigiendo el problema de salvado savestates y preferencias del retroGo, así como el “resume” al iniciar el emulador, para quienes usamos el OFW + retroGo.
@neohroot
Estoy deseando lanzarme a modificar mi G&W, pero a pesar de que entiendo más menos todo lo que se está haciendo, a la hora de obtener los ficheros me pierdo. Por ejemplo acabas de comentar que se ha actualizado el repo, ¿donde me bajo lo que necesito?, supongo que tengo que compilarlo, pero que compilo?.
Me baje las Roms de mame y los artwork que más me gustaron, tengo todo as las roms listas para prepararlas con la app que los transforma en .bin y jog. Pero me suena que esa app ya no se usa, que ahora es una llamada shrinker o algo así.
¿Al final es obligatorio usar Linux para extraer la OFW? Para parchearla.

Mira que me gusta cacharrear, pero ando muy perdido en este tema. Y le tengo unas ganas locas
@icebox2
Se hizo mas arriba un inicio de guía, revisalo, se lo curró @shxmario, aunque aun no lo tenemos completo por falta de tiempo. Estaría bien tener un “guiaburros” en la wiki, pero a su tiempo.

Entre esta guía básica y lo que indica el repo, en el README tienes como empezar.
Obtén una imagen de linux debian o ubuntu, en vmware o virtualbox, o linux nativo. Imágenes las hay listas para importar en vmware y vbox, y yo estoy preparado una que aun no tengo lista.
Instala las librerías/utilidades necesarias segun la guía para poder compliar, pero antes tienes que leer tu g&w y eliminar la protección que lleva el STM, con los 5 scripts, cambiar la flash interna, etc..
@neohroot
Ok, voy a ver si consigo aclararme, porque lo que comentas ya lo he intentado y me pierdo, jajajajaja. Necesitaré la guía para burros seguro.

Pero, ¿para preparar las roms de G&W que programa se utiliza?, el primero que se usaba o el shrinker…. 🤦🏼‍♂️

Muchas gracias
Bueno intenta entenderlo y hablamos lo que necesites,
Se usa el shrinker, el de Tim ya no.
neohroot escribió:Actualizado el repo principal corrigiendo el problema de salvado savestates y preferencias del retroGo, así como el “resume” al iniciar el emulador, para quienes usamos el OFW + retroGo.


Tengo que actualizar!! A ver si saco tiempo y lo hago esta noche!!!

Poco a poco se van corrigiendo errores y mejorando el emulador!!! La verdad que la scene está haciendo un trabajo extraordinario.

Saludos,
Shark
Mas actualizaciones:

DasBoss ha conseguido programar un patcher alternativo al de Tim, el cual hace todo más facil, solo hay que parchear el FW original, el se encarga de indicar las direcciones y generar el bin, incluso programarlo.
Lo bueno es que ahora accede directamente al retroGo sin pasar por el Launcher, mucho más comodo y “bonito”
Yo por mi parte he modificado el bin, después de generar el parcheado, para poder acceder a retroGo solo con IZQUIERDA+GAME (en lugar de IZQ+GAME+A), lo que lo hace más cómodo.
En el vídeo podéis ver todo esto, ademas de los accesos directos y overlays de control de volumen, brillo y velocidad de emulación.



Aprovecho para enseñar la rom de G&W Donkey Kong en horizontal y en vertical, ya los gustos.
Hola,

Yo ahora con el de Tim, me defiendo bien, ya lo tengo parcheado y volcarlo a la GnW es fácil.

Si que es cierto que modificar el acceso al homebrew por IZQ + A, es mejor. @neohroot ¿Donde lo modificas?

Te pasa que ahora según como, a veces, al entrar o cuando sales del Retro Go ¿se te queda la pantalla en blanco? A mi si, tengo que apagarla y al encenderla vuelve otra vez.

También estoy mirando de poner mas juegos de maquinitas (handhelds), pero modificar el código python para que los mandos/botones cuadren, no es trivial. Y claro, todavía no estan añadidos en el Shrinker de @bzhxx.

Estos son la lista de juegos que hay ROMs:

Elektronika
exospace.zip
merrycook.zip
nupogodi.zip
spacebridge.zip

Gakken
ginv.zip
ginv1000.zip

Konami
kbilly.zip
kblades.zip
kbucky.zip
kcontra.zip
kgarfld.zip
kgradius.zip
ktmnt.zip
ktopgun.zip

Nintendo Game & Watch
gnw_ball.zip
gnw_bfight.zip
gnw_bfightn.zip
gnw_bjack.zip
gnw_boxing.zip
gnw_bsweep.zip
gnw_chef.zip
gnw_climber.zip
gnw_climbern.zip
gnw_dkcirc.zip
gnw_dkjr.zip
gnw_dkjrp.zip
gnw_dkong.zip
gnw_dkong2.zip
gnw_egg.zip
gnw_fire.zip
gnw_fireatk.zip
gnw_fires.zip
gnw_flagman.zip
gnw_gcliff.zip
gnw_ghouse.zip
gnw_helmet.zip
gnw_judge.zip
gnw_lboat.zip
gnw_lion.zip
gnw_manhole.zip
gnw_manholeg.zip
gnw_mario.zip
gnw_mariocm.zip
gnw_mariocmt.zip
gnw_mariotj.zip
gnw_mbaway.zip
gnw_mickdon.zip
gnw_mmouse.zip
gnw_mmousep.zip
gnw_octopus.zip
gnw_opanic.zip
gnw_pchute.zip
gnw_popeye.zip
gnw_rshower.zip
gnw_sbuster.zip
gnw_smb.zip
gnw_smbn.zip
gnw_squish.zip
gnw_ssparky.zip
gnw_stennis.zip
gnw_tbridge.zip
gnw_tfish.zip
gnw_vermin.zip
gnw_zelda.zip

Tiger Electronics
taltbeast.zip
tapollo13.zip
tbatfor.zip
tbatman.zip
tbatmana.zip
tbtoads.zip
tbttf.zip
tddragon.zip
tdennis.zip
tdummies.zip
tflash.zip
tgaunt.zip
tgoldeye.zip
tgoldnaxe.zip
thalone.zip
thalone2.zip
thook.zip
tjdredd.zip
tjpark.zip
tkarnov.zip
tkazaam.zip
tmkombat.zip
tnmarebc.zip
topaliens.zip
trobhood.zip
trobocop3.zip
trockteer.zip
tsddragon.zip
tsf2010.zip
tsfight2.zip
tshadow.zip
tsharr2.zip
tsjam.zip
tskelwarr.zip
tsonic.zip
tsonic2.zip
tspidman.zip
tstrider.zip
tswampt.zip
ttransf2.zip
tvindictr.zip
twworld.zip
txmen.zip
txmenpx.zip

Tronica
tigarden.zip
trshutvoy.zip
trsrescue.zip

Babe and Watch (Montrose)
bride.zip
squeeze.zip

Por cierto, también han cambiado el entorno, mola mucho:



Saludos,
Shark
Siguiendo todo el script de @pjexposito me tira este error al final de todo: en el Retro go

Save data: 450560 bytes
ROM data: 4776945 bytes
Total: 5227505 / 1048576 bytes (plus some metadata).
Error: External flash will overflow!
make: *** [Makefile.common:348: build/roms.a] Error 255

¿alguna idea?, porque no se que me tiene que generar este ultimo comando no que tengo que hacer con lo que me genera.

Estoy desesperado ya con esto. He conseguido bastante, pero sinceramente no me entero de lo que hago en cada paso.
Actualmente tengo soladado el chip de 16 GB y restaurado el firmware original parcheado:

Como le meto el retrogo con las roms?

Yo quiero mantener el firmware orignal y lanzar el retro go.

¿Una ayudita?
@icebox2 probaste con:
make clean
make -j4 EXTFLASH_SIZE_MB=16

Esto es para la opción sin mantener OFW.
Para mantener OFW aprte de parchear como hemos comentado, se compila:

make clean
make -j4 EXTFLASH_SIZE_MB=15 EXTFLASH_OFFSET=1048576 INTFLASH_BANK=2

Para flashear retroGo, con STM32Programmer instalado en Windows (o Linux sin el .exe) u el loader de Tim:
STM32_Programmer_CLI.exe -c port=SWD -w gw_retro_go_intflash.bin 0x08100000
STM32_Programmer_CLI.exe -c port=SWD reset=HWrst -w gw_retro_go_extflash.bin 0x90100000 -el "PATH_TO_THE_STLDR_FILE\ MX25U12835F_GAME-AND-WATCH.stldr" -rst


Encontrarás los bin generados por retroGo dentro de la carpeta BUILD

Luego, o antes da igual, tienes que flashear el OFW parcheado tal como comentaba más arriba:
STM32_Programmer_CLI.exe -c port=SWD -w FICHERO_BIN_OFW_Interno_parcheado.bin 0x08000000
STM32_Programmer_CLI.exe -c port=SWD reset=HWrst -w FICHERO_OFW_Externo.bin 0x90000000 -rst



@RataWeb, lo de la pantalla en blanco lo comentaban por el Discord, puede ser algunos modelos concretos de display, a mi no me ocurre, pásate por allí y dale a la búsqueda que algo hay.
Para modificar hay que tocar el .bin con un editor de texto, ahora se me ocurre el notepad++ con el plugin HexEditor, o el propio Ghidra.
Después de parchearlo con el patcher de Tim, hay que ir a la dirección 0001A13A y cambiar el valor 51 por 41.

Imagen

Con el bin generado con el patcher de DasBoss es de otra manera, si interesa lo pongo.
@neohroot gracias por todo lo q aportas, a ver si me animo y modifico la mia con solo los juegos GW.
Yo de momento desisto. Me va a estallar la cabeza de tanto darle vueltas.

@neohroot, Gracias por tu ayuda, con los comandos que me indicaste pude compilar todo, ya tenia todos los ficheros preparados pero a la hora de flashearlo todo me ha sido imposible.

Desde windows me dice que no encuentra el dispositivo STlink

al ancender ahora la G&W me sale una pantalla negra con pixeles de colores arrriba y como dos codigos QR alargados a los lados. como la Imagen adjunta
Tenia dos memorias asi que desolde la que tenia puesta, le meti la otra y mas de lo mismo.

Le he soldado la original de nuevo y funciona de serie.

Mi mente no da para mas ya!!!. He pedido mas memorias en aliexpress a ver si es que lo que me pasa es que las dos memorias que tenia estan mal..

Gracias a todos por la ayuda. Un saludo.

Adjuntos

@icebox2 eso pasa cuando la flahs externa no la ve, no por que esté mal, si no porque no se ha programado bien.
Recuperando stock en la de 16MB funciona bien?
Si es así es todo tema de programación. Busca los drivers de stlink v2, con el STM32cubeprogrammer actualiza el FW del stlink V2. Abre stm32cubeprobrammer y prueba a ver si te reconoce el stlink, luego conecta la G&W y dale a “connect” y mira a ver si reconoce el STM32H7.


Luego desde el mismo IDE, programa (creo que en el segundo icono de la izquierda) cada binario en la dirección indicada antes, con el “verify” marcado.
Para los que van en la externa (0x90X00000) carga el loader desde el , creo, penúltimo icono de la izquierda previamente.
Usa la batería siempre conectada para programar, que puede ser que el USB no de suficiente potencia.
Ahora ya no conseguía ni meterle la rom de stock con la memoria de 16mb, al usar el ./5 restore… no encontraba nada y daba error.

No se si será drivers la verdad, porque con el mismo programador conseguí extraer el firmware original, parchearlo y volver a meterlo. Pero ahora nada de nada.

Probaré a instalar todo de nuevo, no se que más puede ser, parece que el programador está mal, pero tengo otro que no había usado y me pasa lo mismo.


Algo se me escapa y no consigo dar con lo que es.

Actualizacion: al darle a conectar, me sale este error: Error: No STM32 target found!
Deja todo el rato el
Botón power pulsado, al menos hasta que empiece a programar algo, a ver si lo e cuentra
MAdre mia que ya casi lo tengo, al final he tenido que parchear de nuevo y todo, pero ya estoy en el ultimo proceso
Gracias @neohroot, el truco fue pulsar el boton power...
me queda una duda.
¿de donde saco el fichero: MX25U12835F_GAME-AND-WATCH.stldr?
no lo encuentro por ninguna parte para terminar de flashear

Actualizacion: lo encontre en un link que se paso hace tiempo., a ver que tal

Actualizacion 2: ¡¡¡ Conseguido!!!, madre mia que alegria, ya habia tirado la toalla y al final, como pasa con muchas cosas de programación, por una tonteria estaba atascado.

Gracias @neohroot, si no fuera por tu ayuda lo habria dejado totalmente. Un abrazo. Gente como tu hace grandes los Foros.
neohroot escribió:@RataWeb, lo de la pantalla en blanco lo comentaban por el Discord, puede ser algunos modelos concretos de display, a mi no me ocurre, pásate por allí y dale a la búsqueda que algo hay.
Para modificar hay que tocar el .bin con un editor de texto, ahora se me ocurre el notepad++ con el plugin HexEditor, o el propio Ghidra.
Después de parchearlo con el patcher de Tim, hay que ir a la dirección 0001A13A y cambiar el valor 51 por 41.


Genial, lo probaré y miraré las posibles soluciones que le dan al problema de la pantalla en blanco. Vaya putada que justo sea mi modelo!! Estos de NIntendo son unos putos!!

Saludos,
Shark
Alguien ha sacado alguna guia para tonticos? No me apetece pelearme a tope de cero(demasiados frentes abiertos con los proyectos en los que estoy),aunque si que tengo conocimientos en programacion y cacharreo vario
rockycat está baneado por "troll"
fakemaria escribió:Alguien ha sacado alguna guia para tonticos? No me apetece pelearme a tope de cero(demasiados frentes abiertos con los proyectos en los que estoy),aunque si que tengo conocimientos en programacion y cacharreo vario



estoy igual, lo que no me queda claro es que necesito comprar, ya que veo un programador bastante costoso y otro que parece una usb, a 10 usd, estoy hecho un lio [mamaaaaa]
@rockycat @fakemaria
Se inició una guía por parte de @shxmario, no esta actualizada del todo, poco a poco lo iremos haciendo, pero es un buen inicio.
rockycat escribió:
fakemaria escribió:Alguien ha sacado alguna guia para tonticos? No me apetece pelearme a tope de cero(demasiados frentes abiertos con los proyectos en los que estoy),aunque si que tengo conocimientos en programacion y cacharreo vario



estoy igual, lo que no me queda claro es que necesito comprar, ya que veo un programador bastante costoso y otro que parece una usb, a 10 usd, estoy hecho un lio [mamaaaaa]


Lo único que tienes que comprar es la memoria de 16 gb para cambiarla, que ahora parece que esta complicado, porque parece que no hay muchas, algunos usuarios se han quejado de comprarlas en aliexpress y que les cancelen el envío porque no hay stock real, Leído en Reddit.

Y el programador, yo la mía la hice con el que parece un USB mas económico. Si vas a usar mas veces el programador, pillate uno bueno, pero si es solo para esto.... el mas barato, (dentro de unos limites), alguno que se haya recomedado por aquí que funcione. TE recomendaría el mío, pero lo compre hace un par de años para programar una emisora de radiocontrol, y el chino ya no lo vende.

Para mi lo mas complicado de todo ha sido preparar el ubuntu (linux) en un portátil para que al final todos los comandos que se han posteado por aquí funcionaran.
Aunque también te digo que siguiendo las guías que aquí se han puesto (un poco desordenadas, es cierto), una vez que esta todo preparado, el proceso de parchear el firmware, y preparar el Retro go con las roms, es bastante fácil, seguir los comandos uno a uno.

Una de las cosas que yo no tenia claro, era luego si para añadir roms o si actualizaban el Retro Go si había que hacerlo todo de nuevo, y la respuesta es que no. Es bastante fácil, es solo volver a generar los bin del retrogo y flashearlos, que si lo has conseguido una vez, la segunda es en 5 minutos.

Animaros que merece mucho la pena, pero armaros de paciencia también, en este tema del foro hay muchísima información, y gente muy dispuesta a ayudar en caso de encontraros con problemas.

Yo por mi parte aportare y ayudare en lo que pueda.
@icebox2 problema con linux no voy a tener,tengo el culo pelao de pelearme con dependencias y movidas. Pero soldar y desoldar la memoria me da taco de respeto… soy un muñones soldando
rockycat está baneado por "troll"
@icebox2 gracias entonces no necesito mas que esto, https://www.amazon.es/dp/B081CC3VLV/?tag=eol00-21 verdad, ya si le quiero cambiar la memoria es opcional :)
fakemaria escribió:@icebox2 problema con linux no voy a tener,tengo el culo pelao de pelearme con dependencias y movidas. Pero soldar y desoldar la memoria me da taco de respeto… soy un muñones soldando


Pues yo desde la universidad , no lo había vuelto a tocar.... y me ha costado... la mitad de las veces no sabia ni porque metía esas instrucciones en la terminal, luego acabe entendiéndolo porque quien tuvo ... me venían a la mente flashbacks, pero me costó. Sobre todo actualizar el Openocd a la versión 10 o mas porque la que me metía de origen era la 9 o algo así y no sabia que hacer, luego era todo rollo de PATHS... Ando oxidado.
Si no tienes experiencia con el soldador, se puede complicar desoldar el chip. No es que sea super difícil, pero como tiene componentes minúsculos relativamente cerca, hay que andar con cuidado, luego el soldar de nuevo el chip de 16 GB no es nada, muy fácil.

De todas formas puedes probar a meter cosas en la memoria de 1GB a ver si así te animas a cambiarla, y ya de paso, ves lo que te comento de la soldadura, que lo mismo la ves y piensas... nahh!!, puedo sin problemas...

Yo use la técnica de comunicar todas las patas del chip con estaño en un lado, calentar y levantarlo un poco, luego eliminar el estaño con un chupón y comunicar el otro lado, que sale directamente. luego con malla limpias un poco, porque habrá estaño de mas, y listo para soldar.

Como nota, decir que lo hice 5 veces, porque probé dos chips diferentes, volví al original porque no había sacado correctamente el firmware, o eso pensaba, y volví a soldar los 2 chips, hasta que me quede con el que estaba soldado, en cuanto @neohroot me indico, acertadamente, que la pantalla negra con códigos QR que me salía no indicaba que el chip estuviera mal... con esto te digo que la placa aguanta traqueteo, pero con cuidado..

rockycat escribió:@icebox2 gracias entonces no necesito mas que esto, https://www.amazon.es/dp/B081CC3VLV/?tag=eol00-21 verdad, ya si le quiero cambiar la memoria es opcional :)


Si, uno de esos es el que tengo yo, el mio es negro, pero no creo que importe mucho. No se donde, pero había leído que había unos muy, muy chinos que no iban bien, pero si lo pillas en Amazon y no va bien, lo cambias por otro y listo, eso es lo bueno de Amazon... Animo!!

RataWeb escribió:Hola,

Yo ahora con el de Tim, me defiendo bien, ya lo tengo parcheado y volcarlo a la GnW es fácil.

Si que es cierto que modificar el acceso al homebrew por IZQ + A, es mejor. @neohroot ¿Donde lo modificas?


Con el nuevo Patcher alternativo que comento @neohroot al clonar github, dentro de Core/Scr, en el fichero Main.c al final encuentras esto:

gamepad_t read_buttons() {
gamepad_t gamepad = 0;
gamepad = stock_read_buttons();
if((gamepad & GAMEPAD_LEFT) && (gamepad & GAMEPAD_A) && (gamepad & GAMEPAD_GAME)){
start_bank_2();
}
return gamepad;
}

Si cambias la linea por: if((gamepad & GAMEPAD_LEFT) && (gamepad & GAMEPAD_GAME)){

Ya te genera el .bin para que entres al RetroGo solo pulsando Izq + Game. Así lo hice yo y va genial.
rockywolf está baneado por "troll"
@neohroot Mil gracias por el tutorial, necesito ayuda "urgente", ya que eh hecho todos los pasos exitosamente al pie de la letra, sin embargo, despues de el paso de añadir la rom "make -j4" me crea un archivo flash y no se que hacer con el no se como "flashear" la game and watch me pierdo totalmente :(

En otras palabras no se como finalizar el tutorial, una vez compilado que se hace? dice flashea otra vez con retro go pero me pierdo [mad]
@rockywolf:
make clean
make -j4
make flash

O

make clean
make -j4 flash

Pero fijate en lo que hemos comentado, el ramaño de la flash que tengas, si es mayor de 1MB, lo tienes que especificar, ten en cuenta que retroGo son dos bin, uno para la flash interna y otro para la externa.
Y si quieres mantener OFW, tal como hemos dicho: parchear FW original, compilar para banco 2 y offset de 1MB, y flashear los cuatro bin.
Con make -j solo compilas, con make -j flash compilas y flasheas.
Tambien puedes flashear los bin generados(en la carpeta BUILD) con el STMCubeProgrammer, tanto terminal como GUI, tal como esta un pelin mas arriba.

Yo por ejemplo he parcheado el OFW solo por mantener el reloj, al darle a GAME no saltan los juegos originales, si no retroGo
rockywolf está baneado por "troll"
pjexposito escribió:Prueba a copiar las ROMs de NES sin comprimir y con un nombre de 8 caracteres (lo del nombre no es obligatorio pero te lo digo por descartar). Y deben ir dentro de la carpeta nes. El resto de carpetas pueden estar vacías.


Hola, segui tus instrucciones que veo al compañero le funcionaron pero, me sale este error ya al final

"Cannot find /home/rick1/opt/gcc-arm-none-eabi-10-2020-q4-major/bin//arm-none-eabi-objdump
"
(mensaje borrado)
Buscar las rutas, segun te dice hay algo mal en ella, dos “//“? Revísala, es un poco rara, tienes “opt” en home? Deberia ser en root “/opt”

son sin comprimir, al compilar el parseador comprime todo aquello menor a XXMB (512KB? 256KB? No recuerdo), por el tema de la RAM disponible a la hora de descomprimir.
Buenas, solo avisar que están de rebaja las game and watch súper Mario en media markt a 35€.
El martes tendré la mía.
Quedan muchas aún sin vender, hoy en hipercor habia como 5 o 6.
Si bajan más me pillo otra solo por diógenes XD

Mas guías y recursos del mod:En reddit

Edit:
Nuevas noticias para los que no quieran cambiar la flash externa de 1MB, han conseguido reducir el espacio que ocupa el OFW eliminando la cancion oculta y varias imágenes de forma que quedan libres unos 770KB para roms de nes/gb/g&w, no es mucho para para 4 roms que se quiera tener es una opción de mantener el OFW.
Hola. Vuelvo a las andadas!

Como bien dice @neohroot están trabajando en un custom firmware que elimina algunos huevos de pascual y incluso la rom de Mario 2 (opcional) para que los que tenemos 1 Mb de memoria podamos usar el firmware original junto con el Retro-Go. El repo es este.

Yo hoy por fin he tenido un poco de tiempo libre y he vuelto al cacharreo. Resulta que me he puesto a modificar la consola pero me he dado de bruces con la Raspberry Pi y el Openocd. No había forma de flashear el custom firmware dado que siempre me daba error. Al final he hecho dos cosas. En primer lugar he comentado la linea de scripts/flashloader.sh que especifica que OPENOCD = openocd. De esta forma el script llama al openocd que tengo en bash dentro de la variable OPENOCD y no al que hay en el PATH (siempre me daba error si no la comentaba).
El segundo punto ha sido volver al firmware original, usando el script 5 de game-and-watch-backup. He tratado de flashear sin hacer este paso pero siempre me daba error. Lo he comentado por discord con el creador y ha cambiado un par de cosas del script y ahora parece que funciona mejor.
El segundo paso ha sido meter el retro-go en una posición de memoria distinta a la original para que el firmware parcheado funcione.

Kbeckmann hizo una version personalizada del Openocd pero desgraciadamente la versión que proporciona compilada es para X86. Así que la he descargado de su repositorio y la he compilado para RPi. Haciendo esto ha funcionado todo genial y he podido finalizar el proceso correctamente.

Así que parece que todo funciona OK. He probado la consola, carga el firm original y al pulsar Left+Game me carga el Retro-go. Pero si la apago, no vuelve a funciona. Y en este punto estoy; a ver si esta tarde consigo solucionar el problema y me pongo con la selección de juego.

Un saludo.

Edito:

Al final ya funciona todo. Por lo que parece las instrucciones del readme no eran correctas y se escribía en un lugar de la flash incorrecto. El autor ha corregido el fallo y, ahora sí, tengo el firm original y el retro-go en un mega de capacidad :)
Ya me dirás que super pack (sin ironía, me refiero a la elección de roms) consigues meter en ese espacio, entrarán los marios? Y alguna LCD…
Todavia tengo que probar el GUI con imágenes,
En mi caso que solo me interesa el reloj, quiza se pueda reducir aún más quitando las roms de SMB y SMB 2 J
Pues por ahora:

- Los tres juegos del firmware original
- De Gameboy: Alleyway, Ducktales, Kirby's Pinball Land y Tetris
- De NES: Donkey Kong y Donkey Kong Jr.
- De GW: Donkey Kong (Dual Screen), Fire, Mario's Cement Factory y Super Mario Bros.

Realmente usando la compresión lz4 y eligiendo los pequeñas se pueden meter varios juegos. Además, debido al tamaño de la consola la idea es meter juegos rápidos, sin mucha historia. Posiblemente termine quitando el Kirby y el Ducktales para meter un Picross o similar. Y la NES acabe sustituida por la GG (ojalá metieran compresión a las consolas de Sega).
@pjexposito he leido tu mensaje, quizás puedas ayudarnos a los novatos con una guía paso por paso de como hacerlo todo en la memoria original?


hola chicos, siento ser pesado de cojones. tengo que comprar un lector uart para otro proyecto y me he acordado de este.
¿Cual es el que se sabe seguro que funciona bien para este proyecto?

He intentado buscar la wiki pero no he encontrado absolutamente nada
@fakemaria
Mira a ver si te ayuda:
El manual del compi @shxmario
Como podemos hacer esto como una wiki? Lo estuve mirando pero no tengo la cabeza para indagar mucho la verdad [mad]
@fakemaria, unas páginas atrás @neohroot y yo hicimos una especie de tutorial para otro compañero y al final salió todo bien. Pero la verdad es que es buena idea ponerlo todo en un wiki. A ver si mañana por la mañana tengo un rato y me pongo.

De todas formas, como te digo, si te vas atrás unas páginas vas a ver una especie de guía sobre cómo proceder. Por cierto, vas a usar Rpi?
@pjexposito es lo que mas a mano tengo,pero tengo un portátil con lubuntu por si es mejor. Voy a mirar páginas atrás.
Mil gracias por el curro!!!
Yo he llegado hasta convertir los artworks y meter las roms de Game and watch.
También meter el stlink dentro de la consola y cerrarla, que es mucho más agradecido que tener los cables por ahí, gracias @neohroot. Eso si, ojo con las soldaduras del USB-C.... [+risas] [+risas]
Estoy con el "dual firmware" ya le tengo parcheado, me quedaría flashear a las direcciones, pero todavía no he podido mirarlo.
Sobre como hacerlo con la RPI ni idea, todo comentado lo he hecho con el stlink y ubuntu.
Un saludo
pjexposito escribió:Hola.

Posiblemente mañana me compre una G&W para meterle mano. Me gustaría usar una RPI para no tener que comprar un programador nuevo. He visto algunos tutoriales (como este) y no parece muy difícil. ¿Alguien está flasheando con RPi o no es recomendable? ¿Me puedo encontrar con algún problema? Por otro lado, he visto que con 1Mb de ROM se puede hacer realmente poco, aunque como mucho me gustaría meter un par de juegos y dos o tres roms de G&W. ¿Sería posible? ¿Hay alguna guía sobre los nuevos emuladores y los pros y contras de usar uno u otro?
Como me he incorporado tarde a la fiesta he visto un montón de tutoriales sueltos pero no consigo ordenarlos cronológicamente para saber cuales son las últimas novedades y cual es la mejor forma de meterle mano a la consola; de ahí las preguntas.

Gracias.


a esta guia que comentabas aqui te referías?

la verdad que estaría bien que alguien echase un cable y ordenase todo en una wiki, porque es un pelín caótico y yo creo que frena mucho a la gente de poder disfrutar el sistema!
Realmente a partir de ese post @neohroot hace un post muy chulo con mucha información, que fue el que me sirvió a mi para empezar. Y luego ya hemos añadiendo información durante un par de páginas. Pero sí, es todo muy caótico. Mañana por la mañana no trabajo; a ver si puedo empezar el wiki.

Bueno, he empezado con la wiki pero no me aclaro mucho.

La web es esta por si quereis colaborar.

He cogido varios post que son los que voy a usar para añadir el contenido a la wiki; la idea es meter todo esto

Tuto principal:

hilo_game-watch-super-mario_2391666_s1300#p1751155481


------------


https://drive.google.com/file/d/1kGac4o ... fyIty/view (guía para instalar en rPi sin soldar)


Hola!
Con 1MB, olvidándote de usar el Fw de stock, puedes meter varios de NES, GB y G&W, todo depende de cuáles elijas, mientras no sobrepase 1MB sin comprimir, luego el script de complicación lo comprime en un ratio variable, depende del juego , y puedes recuperar algo para meter alguna rom más.

Con RBP yo no lo he probado, pero hay gente que si lo ha hecho con algún problema que otro, pero ahi no se decirte, pásate por el Discord del proyecto, o por el otro Discord de la peña de EOL.
Supongo que varios problemas vendrán por no establecer bien los PATHs de GCC y demás, (a mi me pasó en debian).

Respecto a los emus, hay dos ramas a destacar de retroGo, la principal (KBECKMANM) va evolucionando con alguna que otra mejora, y la que incluye el emu (BZHXX) de G&W.
Lógicamente a mi me interesa la del emu G&W, que aunque no incluye lo ultimo si tienes esta emulación.
Otra opción es esperar a que las fusionen o hacer un “merge” tú mismo (con algún conocimiento de GIT), para tener las funcionalidades de ambas ramas.
Justamente ahora estoy haciendo una a mano para publicar en mi github, pero acaban de actualizar la principal, a si que creo que voy a esperarme unos días. De paso decir que en la mia pretendo mantener el emulador de GB con relación de aspecto de imagen de la GB original.

Por otro lado otro usuario mejoró el menú de selección de ROMs añadiendo tiles de fotos. Esto resta espacio, pero queda muy curioso.

Recomedacion:
1 - prepara la RBP, o el STLink, las conexiones a la PCB y el linux donde hagas la compilación, con todas ls apps y dependencias necesarias, según los README. En el caso de usar un STLink original o chino, actualizar el FW del mismo desde STM32Programmer si presenta algún problema a la hora de programar.
2 - Desbloquea el STM y crea el backUp, con los 5 scripts de KBECKMANN, (en el README del github) usa el último (5) para recuperar FW de stock y comprobar que funciona.
3 - si tienes nuevo IC (flash), cámbialo, ejecuta de nuevo el script 5 y comprueba que funciona.
4 - Clónate el repo de KBENCKMANM o BZHXX, prepara roms en sus carpetas y a compilar (LARGE_FLASH=1 si usas una de 16MB). En caso de usar una mayor a 16MB, habria que ver alguna cosa más.
5 - en el caso de las ROMS de G&W, tienes que prepararlas con el script de python de BZHXX

Añado la guía para el LCD game shrinker, cortesía de DNA64

(en Discord tienes ls instrucciones, aunque llegado el momento puedo echar una mano ya que se usa python 3 y algunas librerías extra). Necesitas las roms de mame y los artworks específicos de Lee Robson (hydef) que se indican, yo no tuve muchos problemas en encontralos.
6 - preparar una imagen de VMware o un docker que incluya todo esto seria ideal, porque tener que instalar todo de 0 es algo laborioso.
7 - seguramente me deje cosas por el camino, pero lo vamos viendo.


https://discord.gg/vVcwrrHTNJ
https://github.com/kbeckmann/game-and-watch-retro-go
https://github.com/bzhxx/LCD-Game-Shrinker
https://gist.github.com/DNA64/16fed499d ... 0a9638e4ef

--------------


Buen tutorial.

Yo lo instalé ayer en un Mac casi son problemas. Tan sólo al convertir los vectoriales me daba error dado que no encontraba el ejecutable de inkscape. Revisando el código del script vi que existe una variable llamada INKSCAPE_PATH que el script revisa durante la ejecución y que apunta al ejecutable de inkscape. Haciendo un

export INKSCAPE_PATH=/Applications/Inkscape.app/Contents/MacOS/inkscape


solucioné el problema y ahora el script ya funciona bien.


------------

Estaria bien que lo agregarais al tuto para estar todo ordenado por si a alguien mas le pudiera pasar.

Link drivers STlink: https://www.st.com/en/development-tools ... t-software
Link programa act. firmware: https://www.st.com/en/development-tools ... nk007.html


----


Enhorabuena! Qué gusto da cuando al final las cosas salen bien. Ahora, a cacharrear con la consola.

Por cierto, páginas atrás se recomendó el romset 0.229 Merged para poder crear las roms de G&W. Pese a que el romset es correcto, yo recomendaría usar el No-Merged. Lo normal es encontrar el Split o el Merged, por lo que recomiendo usar el CLRMamePro para crear un "mini romset" de las roms de G&W (es fácil, dado que las roms empiezan por gnw-). Una vez se tengan las roms en modo no-merged ya se puede usar el conversor de nuevo.

Digo esto porque hay algunas máquinas (como el Super Mario Bros. Wide Screen) que no aparecen en el romset merged ya que son clones de otras Game & Watch. Al usar el romset No-Merged las roms se separan y el script puede trabajar con ellas de forma normal. Además, al hacerlo así cada rom ocupa de 5 a 15Kb menos. Parece una tontería pero cuando se tiene un Mb para almacenar recuperar 30Kb es una maravilla.

Saludos.


---------

Dave&Fran escribió:
No lo veo, me pierdo con linux.
Segun lo que pone hay que hacer esto:

You will need version 10 or later of arm-gcc-none-eabi toolchain. 10.2.0 and later are known to work well. Please make sure it's installed either in your PATH, or set the environment variable GCC_PATH to the bin directory inside the extracted directory (e.g. /opt/gcc-arm-none-eabi-10-2020-q4-major/bin, /Applications/ARM/bin for macOS).

Tengo descargado y descomprimido el gcc-arm-none-eabi-10-2020-q4-major en descargas aunque ya instale el gcc10. Entiendo que es decirle que lo vaya a buscar a tal sitio no?
Merci

Eso es,
Si pones
SELECCIONARCOPIAR
arm-none-eabi-gcc -v

(Compilador GCC para ARM, NO PARA tu PC (x86/i64), y que se ejecuta en tu PC para compilar binarios con destino ARM/STM)
Debajo del todo aparecera la versión a la que llama del symlink o ruta del path.
Si no es correcta pues tienes que añadir, tal como te dice la ayuda, al PATH, o al menos al GCC_PATH la ruta a la versión 10.X (donde esta el binario ejecutable “gcc”)

Si pones
SELECCIONARCOPIAR
echo $GCC_PATH

Que dice?
Y/o con
SELECCIONARCOPIAR
echo $PATH

te sale la ruta en la variable?

Por otro lado ten cuidado con sustituir GCC del sistema linux, siempre es mejor tener el GCC original y los posteriores descargados para tu arquitectura, o compilados por ti en tu máquina en caso contrario, o descargándote un toolchain GCC, pero en otra ruta y llamar según sea necesario. En este caso el GCC es para el arm/stm, por lo tanto descárgalo compilado, que no tendrás peligro.

Para asegurarte exporta los paths antes de compilar, porque si no en cada reinicio se te irán, a no ser que los añadas a bashrc, bash_profile, etc, y por comodidad hazte un script como el que puse más arriba, el cual exporta lo necesario, compila y flashea de una tacada.
Si no pues teclea comando a comando en la terminal.
SELECCIONARCOPIAR
export ADAPTER=stlink
export OPENOCD="/opt/openocd-git/bin/openocd"
export PATH=$PATH:/opt/gcc-arm-none-eabi-10-2020-q4-major/bin/

Cambia las rutas según lo tengas tu.

*********************
Avances RetroGO
*********************
Probando última actualización:
Holding the `PAUSE/SET` button while pressing other buttons have the following actions:

- `PAUSE/SET` + `TIME` = Toggle speedup between 1x and the last non-1x speed. Defaults to 1.5x.
- `PAUSE/SET` + `UP` = Brightness up.
- `PAUSE/SET` + `DOWN` = Brightness down.
- `PAUSE/SET` + `RIGHT` = Volume up.
- `PAUSE/SET` + `LEFT` = Volume down.
- `PAUSE/SET` + `B` = Load state.
- `PAUSE/SET` + `A` = Save state.
- `PAUSE/SET` + `POWER` = Poweroff WITHOUT save-stating.

Una gozada.


Avisan que vuelve a haber stock de Flash de macronix en farnell, no se si en alguna sitio más, aprovechad.



---------

Hola. Prueba a escribir
SELECCIONARCOPIAR
export PATH=/usr/bin:$PATH


Y luego compila de nuevo.

--------

Hola de nuevo.

Acabo de adaptar el script que usé yo en RPI para que funcione en Ubuntu.

Debes ir copiando y ejecutando cada una de las instrucciones de una en una. Además, hay cuatro líneas en las que debes cambiar mi nombre de usuario (pedro) por el tuyo.

Yo lo he probado en una instalación nueva de Ubuntu y me ha funcionado bien.

Pruébalo y nos cuentas.


sudo apt update
sudo apt upgrade -y
sudo apt install -y binutils-arm-none-eabi python3 libftdi1 lz4 git npm
sudo npm install -y -global xpm@latest
xpm install --global @xpack-dev-tools/openocd@latest
mkdir -p ~/opt
cd ~/opt
wget https://developer.arm.com/-/media/Files ... ux.tar.bz2
tar xvf gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
rm gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2

OJO Debes cambiar pedro por tu nombre de usuario en las cuatro órdenes siguientes

export GCC_PATH=/home/pedro/opt/gcc-arm-none-eabi-10-2020-q4-major/bin/
export OPENOCD=/home/pedro/.local/xPacks/@xpack-dev-tools/openocd/0.11.0-1.1/.content/bin/openocd
echo export GCC_PATH=/home/pedro/opt/gcc-arm-none-eabi-10-2020-q4-major/bin/ >>~/.bashrc
echo export OPENOCD=/home/pedro/.local/xPacks/@xpack-dev-tools/openocd/0.11.0-1.1/.content/bin/openocd >>~/.bashrc



git clone https://github.com/ghidraninja/game-and ... backup.git
git clone https://github.com/ghidraninja/game-and ... loader.git
git clone --recurse-submodules https://github.com/bzhxx/game-and-watch-retro-go
cd ~/opt/game-and-watch-flashloader
make

OJO Antes de ejecutar lo siguiente debes copiar las roms en la carpeta roms de game-and-watch-retro-go


cd ~/opt/game-and-watch-retro-go
make -j8 flash




-------------


Ostras! Como no uso STLink creo que se me olvidó instalar los drivers. Seguramente @neohroot te pueda ayudar en este punto. De todas formas según he visto debes instalar los drivers para Linux de esta forma:

SELECCIONARCOPIAR

wget https://nightly.link/kbeckmann/ubuntu-o ... it.deb.zip
unzip openocd-git.deb.zip
sudo dpkg -i openocd-git_*_amd64.deb
sudo apt-get -y -f install

export ADAPTER=stlink
export OPENOCD="/opt/openocd-git/bin/openocd"


Si durante la instalación del OpenOCD te da problemas, haz lo siguiente:
SELECCIONARCOPIAR
sudo apt install libftdi1-2
sudo apt install libhidapi-hidraw0
sudo apt --fix-broken install
sudo apt install libftdi1-2
sudo apt install libhidapi-hidraw0
sudo dpkg -i openocd-git_*_amd64.deb
sudo apt-get -y -f install


Este código no lo he podido probar porque yo programo con la Rpi, pero debería funcionar. La información está sacada de este post de @shxmario



-----


Por cierto, recordad actualizar el repositorio y los submódulos para que todo funcione bien:

SELECCIONARCOPIAR
git reset --hard
git submodule update --init --recursive
git reset --hard
make -j8 flash


--------


Edito: Resulta que haciendo lo que te he puesto arriba no funciona. Hay que hacer alguna cosa más:

-Descarga Inkscape en formato comprimido. No el instalador. Descomprime el archivo en el escritorio, por ejemplo. Luego, pon la orden que he puesto arriba pero apuntando al archivo del escritorio. Por ejemplo:

SELECCIONARCOPIAR
set INKSCAPE_PATH=c:\Users\pjexp\Desktop\inkscape\bin\inkscape.exe


Ponlo a pelo, sin comillas ni nada.
Hay un problema si lo haces desde el instalador ya que los permisos de Windows no te dejan ejecutar correctamente el Inkscape y da error.


-Luego, descarga el LZ4, de nuevo descomprime en el Escritorio y ejecuta algo parecido a esto:

SELECCIONARCOPIAR
set LZ4_PATH=c:\Users\pjexp\Desktop\lz4_win64_v1_9_3\lz4.exe


Y recuerda instalar las dependencias de Python entrando en la carpeta del script y ejecutando:

SELECCIONARCOPIAR
pip install -r requirements.txt


Con eso debería funcionar.

La verdad es que es un lío ejecutar estos scripts en Windows. Yo te recomiendo que instales WSL en Windows y lo hagas todo desde la consola de Linux; aunque igual son manías.



----


Hola. Vuelvo a las andadas!

Como bien dice @neohroot están trabajando en un custom firmware que elimina algunos huevos de pascual y incluso la rom de Mario 2 (opcional) para que los que tenemos 1 Mb de memoria podamos usar el firmware original junto con el Retro-Go. El repo es este.

Yo hoy por fin he tenido un poco de tiempo libre y he vuelto al cacharreo. Resulta que me he puesto a modificar la consola pero me he dado de bruces con la Raspberry Pi y el Openocd. No había forma de flashear el custom firmware dado que siempre me daba error. Al final he hecho dos cosas. En primer lugar he comentado la linea de scripts/flashloader.sh que especifica que OPENOCD = openocd. De esta forma el script llama al openocd que tengo en bash dentro de la variable OPENOCD y no al que hay en el PATH (siempre me daba error si no la comentaba).
El segundo punto ha sido volver al firmware original, usando el script 5 de game-and-watch-backup. He tratado de flashear sin hacer este paso pero siempre me daba error. Lo he comentado por discord con el creador y ha cambiado un par de cosas del script y ahora parece que funciona mejor.
El segundo paso ha sido meter el retro-go en una posición de memoria distinta a la original para que el firmware parcheado funcione.

Kbeckmann hizo una version personalizada del Openocd pero desgraciadamente la versión que proporciona compilada es para X86. Así que la he descargado de su repositorio y la he compilado para RPi. Haciendo esto ha funcionado todo genial y he podido finalizar el proceso correctamente.

Así que parece que todo funciona OK. He probado la consola, carga el firm original y al pulsar Left+Game me carga el Retro-go. Pero si la apago, no vuelve a funciona. Y en este punto estoy; a ver si esta tarde consigo solucionar el problema y me pongo con la selección de juego.

Un saludo.

Edito:

Al final ya funciona todo. Por lo que parece las instrucciones del readme no eran correctas y se escribía en un lugar de la flash incorrecto. El autor ha corregido el fallo y, ahora sí, tengo el firm original y el retro-go en un mega de capacidad :)


https://github.com/BrianPugh/game-and-watch-patch


------


de forma ordenada. Pero ya veremos como queda.

Por cierto @shxmario se curró un tutorial fantástico aquí. Si no te importa voy a utilizar parte de tu material para el wiki.

Saludos.
No se cómo poner el primer post en modo Wiki XD
bobst escribió:No se cómo poner el primer post en modo Wiki XD


Lo que podrías hacer es editar el título del hilo y sustituir el - por un &.
@pjexposito
Al fin la wiki! Pues vamos editandola poco a poco con la info que shxmario ya puso, como mencioné antes.
Hay muchas cositas que indicar, a sinque poco a poco.
He mandado un mp al moderador para que haga propietario del hilo a @pjexposito
@pjexposito Sin problema, la idea era prepararla con @neohroot, pero genial si al final la sacamos entre todos.

Un saludo
A mi realmente me da igual. Tan solo es activar el primer post como wiki y luego ya podemos colaborar todos. Si alguien quiere el post por mi parte no hay problema.

Edito:

Acabo de añadir los métodos para instalar el software en RPI y en Linux. Si alguien tiene un rato que lo revise por si me he comido algo. A ver si luego puedo poner las instrucciones sobre como flashear la consola.

Edito2:

Añadido el proceso para liberar la consola.
2101 respuestas