Game - Watch Super Mario!

Buenas noches,
hoy me he puesto al lio, pero como siempre algo tiene que fallar XD.
Desde ubuntu vmware usando stlink:
export OPENOCD="/opt/openocd-git/bin/openocd" OK
1_sanity_check.sh OK
2_backup_flash.sh OK
3_backup_internal_flash.sh

OK la primera parte, pero la segunda parte donde te hace la verificación (desconectar-conectar y mantener pulsado boton encendido) me dió error y no pudo verificarla.

y ahora el problema cuando hago el paso : 5_restore.sh
me dice: Restoring internal flash failed. Check debug connection and try again.

Intenté lo siguiente tal y como pone en el github:
Something goes wrong during Step 3

Step 3 will change the internal flash of the device. If this step fails it will leave your device in a bricked state. To recover from it run:

./scripts/flashloader.sh <stlink or jlink or rpi> ./backups/flash_backup.bin

If the script can't connect to the device, press & hold down power on the device while running flashloader & try to FULLY powercycle the target between attempts.


pero nada, no consigo que la pille.

Alguna sugerencia? Gracias

Pd: Se supone que tengo los backups: flash_backup.bin, internal_flash_backup.bin y itcm_backup.bin
Dave&Fran escribió:Buenas noches,
hoy me he puesto al lio, pero como siempre algo tiene que fallar XD.
Desde ubuntu vmware usando stlink:
export OPENOCD="/opt/openocd-git/bin/openocd" OK
1_sanity_check.sh OK
2_backup_flash.sh OK
3_backup_internal_flash.sh

OK la primera parte, pero la segunda parte donde te hace la verificación (desconectar-conectar y mantener pulsado boton encendido) me dió error y no pudo verificarla.

y ahora el problema cuando hago el paso : 5_restore.sh
me dice: Restoring internal flash failed. Check debug connection and try again.

Intenté lo siguiente tal y como pone en el github:
Something goes wrong during Step 3

Step 3 will change the internal flash of the device. If this step fails it will leave your device in a bricked state. To recover from it run:

./scripts/flashloader.sh <stlink or jlink or rpi> ./backups/flash_backup.bin

If the script can't connect to the device, press & hold down power on the device while running flashloader & try to FULLY powercycle the target between attempts.


pero nada, no consigo que la pille.

Alguna sugerencia? Gracias

Pd: Se supone que tengo los backups: flash_backup.bin, internal_flash_backup.bin y itcm_backup.bin


Buenas! Haces el ciclo completo de apagado/encendido? Esto implica quitar bateria, desconectar todos los cables usb del PC reconectar y darle de nuevo a l batería.
Prueba dandole al pulsador una vez y/o manteniendo pulsado
neohroot escribió:
Dave&Fran escribió:Buenas noches,
hoy me he puesto al lio, pero como siempre algo tiene que fallar XD.
Desde ubuntu vmware usando stlink:
export OPENOCD="/opt/openocd-git/bin/openocd" OK
1_sanity_check.sh OK
2_backup_flash.sh OK
3_backup_internal_flash.sh

OK la primera parte, pero la segunda parte donde te hace la verificación (desconectar-conectar y mantener pulsado boton encendido) me dió error y no pudo verificarla.

y ahora el problema cuando hago el paso : 5_restore.sh
me dice: Restoring internal flash failed. Check debug connection and try again.

Intenté lo siguiente tal y como pone en el github:
Something goes wrong during Step 3

Step 3 will change the internal flash of the device. If this step fails it will leave your device in a bricked state. To recover from it run:

./scripts/flashloader.sh <stlink or jlink or rpi> ./backups/flash_backup.bin

If the script can't connect to the device, press & hold down power on the device while running flashloader & try to FULLY powercycle the target between attempts.


pero nada, no consigo que la pille.

Alguna sugerencia? Gracias

Pd: Se supone que tengo los backups: flash_backup.bin, internal_flash_backup.bin y itcm_backup.bin


Buenas! Haces el ciclo completo de apagado/encendido? Esto implica quitar bateria, desconectar todos los cables usb del PC reconectar y darle de nuevo a l batería.
Prueba dandole al pulsador una vez y/o manteniendo pulsado


Buenos dias,
pues lo tengo del siguiente modo:

usb stlink conectado
la consola sin bateria, conectada por cable

1- desconecto cable
2- conecto cable y mantengo boton encendido
3- ejecuto ./scripts/flashloader.sh stlink (se encienden luces del stlink) y me pone loading failed.
4- vuelvo al paso 1

No se si se me escapa algo.
Merci
Dave&Fran escribió:
neohroot escribió:
Dave&Fran escribió:Buenas noches,
hoy me he puesto al lio, pero como siempre algo tiene que fallar XD.
Desde ubuntu vmware usando stlink:
export OPENOCD="/opt/openocd-git/bin/openocd" OK
1_sanity_check.sh OK
2_backup_flash.sh OK
3_backup_internal_flash.sh

OK la primera parte, pero la segunda parte donde te hace la verificación (desconectar-conectar y mantener pulsado boton encendido) me dió error y no pudo verificarla.

y ahora el problema cuando hago el paso : 5_restore.sh
me dice: Restoring internal flash failed. Check debug connection and try again.

Intenté lo siguiente tal y como pone en el github:
Something goes wrong during Step 3

Step 3 will change the internal flash of the device. If this step fails it will leave your device in a bricked state. To recover from it run:

./scripts/flashloader.sh <stlink or jlink or rpi> ./backups/flash_backup.bin

If the script can't connect to the device, press & hold down power on the device while running flashloader & try to FULLY powercycle the target between attempts.


pero nada, no consigo que la pille.

Alguna sugerencia? Gracias

Pd: Se supone que tengo los backups: flash_backup.bin, internal_flash_backup.bin y itcm_backup.bin


Buenas! Haces el ciclo completo de apagado/encendido? Esto implica quitar bateria, desconectar todos los cables usb del PC reconectar y darle de nuevo a l batería.
Prueba dandole al pulsador una vez y/o manteniendo pulsado


Buenos dias,
pues lo tengo del siguiente modo:

usb stlink conectado
la consola sin bateria, conectada por cable

1- desconecto cable
2- conecto cable y mantengo boton encendido
3- ejecuto ./scripts/flashloader.sh stlink (se encienden luces del stlink) y me pone loading failed.
4- vuelvo al paso 1

No se si se me escapa algo.
Merci

Prueba a conectar la batería y flashear con ella conectada, si hace falta conectar y desconectar según sea necesario.
Es posible que a la hora del flasheo tu cable USB no suministre suficiente corriente.
Sigo probando, pero ninguna de las maneras, no es que no deje flashear es que no llega a cargar el flashloader.sh, entiendo que luego una vez lo cargue si que con el /flash_backup.bin restauraria la flash.

He cambiado con otro cable y diferentes puertos usb, con bateria y sin bateria y nada, si que debe detectar algo por que demora entre 1 y 2 segundos cuando le doy cargar el flashloader en el terminal mientras aprieto el encendido.

Seguiré insistiendo a ver.
Que versión tienes de openOCD?
openocd -v


Y de GCC arm? (Este en realidad solo afecta cuando compiles, a si que no debería afectarte)
neohroot escribió:Que versión tienes de openOCD?
openocd -v


Y de GCC arm? (Este en realidad solo afecta cuando compiles, a si que no debería afectarte)


[facepalm] perdon por el retraso.
en vez de copiar entero el comando, solo copiaba ./scripts/flashloader.sh stlink en vez de:
./scripts/flashloader.sh stlink ./backups/flash_backup.bin

Ahora me parpadea, pero me dice lo siguiente:
Loaded flashloader, flashing SPI, please wait.
(If this takes more than 2 minutes something went wrong.)
(If the screen blinks rapidly, something went wrong.)
(If the screen blinks slowly, everything worked but the script didn't detect it)
Done!

Ahora si vuelvo al paso 3 me dice que no puede continuar porque ya hay un backup hecho, por ende no me lo verifica.
Como deberia continuar?

Edit: vale, hay que borrar de la carpeta backups el archivo internal_flash_backup.bin y volver al paso 3.
Acabo de volver a hacer el proceso, pero en la verificacion:
Flash successfully flashed. Now do the following procedure:
- Disconnect power from the device
- Power it again
- Press and hold the power button
- Press return (while still holding the power button)!

Dumping internal flash...
Verifying internal flash backup...
The backup of the internal flash failed. Please try again.

me da error.

Pd: Sorry por lo problemas y gracias por las ayudas
Dave&Fran escribió:
neohroot escribió:Que versión tienes de openOCD?
openocd -v


Y de GCC arm? (Este en realidad solo afecta cuando compiles, a si que no debería afectarte)


[facepalm] perdon por el retraso.
en vez de copiar entero el comando, solo copiaba ./scripts/flashloader.sh stlink en vez de:
./scripts/flashloader.sh stlink ./backups/flash_backup.bin

Ahora me parpadea, pero me dice lo siguiente:
Loaded flashloader, flashing SPI, please wait.
(If this takes more than 2 minutes something went wrong.)
(If the screen blinks rapidly, something went wrong.)
(If the screen blinks slowly, everything worked but the script didn't detect it)
Done!

Ahora si vuelvo al paso 3 me dice que no puede continuar porque ya hay un backup hecho, por ende no me lo verifica.
Como deberia continuar?

Edit: vale, hay que borrar de la carpeta backups el archivo internal_flash_backup.bin y volver al paso 3.
Acabo de volver a hacer el proceso, pero en la verificacion:
Flash successfully flashed. Now do the following procedure:
- Disconnect power from the device
- Power it again
- Press and hold the power button
- Press return (while still holding the power button)!

Dumping internal flash...
Verifying internal flash backup...
The backup of the internal flash failed. Please try again.

me da error.

Pd: Sorry por lo problemas y gracias por las ayudas

Aquí ya pueden ser varias cosas:
-El tema de usar la batería
-Openocd diferente a v 0.10
-STlink defectuoso o muy chino (chino profundo)
-VMware + linux y sus drivers… lo mismo el USB passthrough no va bien.
-…

Prueba a hacerte aunque sea un live y realizar el proceso en un linux no virtualizado (debian, ubuntu)
No hay manera, volvi a empezar de 0, desde vmware, copia nueva de ubuntu y siguiendo todos los pasos de la pagina 27.
Probado con bateria y con cable, el openocd es el que instala del tutorial, no se ver con el comando la version que es pero en la carpeta de g&w me sale un archivo que pone openocd-git_0.11.0-274...entiendo que igual es la version 0.11.
El stlink es el mismo que se usó en el tuto y que sale el enlace de compra en el post.
Es raro por que me hace todo bien, la de veces que he vuelto a cargar y copiar el backup de nuevo. Llevo todo el dia con esto. [facepalm]
Probare a usar un live a ver, ya me desespero.
Merci
Tienes alguna Raspberry Pi por casa? Te lo digo por si puedes probar con ella, a ver si así tienes suerte. La verdad es que lo que te pasa es muy raro. Yo también tuve problemas pero al final fue la mezcla de dos factores:

1. Los cables no estaban bien conectados y los conectores se tocaba entre sí o no hacían contacto.
2. La Rpi3 es MUY lenta para realizar las operaciones y aunque el proceso estaba en marcha yo creía que había algún problema y abortaba.

Pero al final conseguí llegar a buen puerto.

Por cierto, estoy haciendo malabarismos para meter juegos en el Mb de memoria de la consola aunque creo que ahora sí que tengo la selección definitiva.
Por otro lado, ¿alguien tiene algún chip de 8/16 Mb de sobra en casa? Parece que los de Aliexpress están dando problemas y que el resto de tiendas tienen el stock agotado.

Saludos.
Si tengo una rpi de las primeras, probaré también si no logro nada con un live cd a ver si tengo mas suerte.
Uso los ganchos para los conectores, en principio parece ser que hacen buen contacto, es que es raro que solo me da problemas ahi, en la verificación.
Es una rpi 1? Te lo digo porque si es así igual no merece la pena y te da timeout al flashear. Pero si es una 3 yo me lanzaba de cabeza a probar. En 10 minutos tienes el sistema preparado y así descartas que sea el programador.
Si puedes soldar mejor.
4 puntos de soldadura de nada, si es que tienes soldador.
De sobra, en mi caso, nothing, pero la del link que puse para en la mia y la de un compi han ido bien.
Yo lo he conseguido hacer con STlink original y stlink chino, sin embargo el del compi no lo pude hacer con su STlink ya que éste no se dejaba actualizar el FW, requerido por el STM32CUBEPROGRAMMER para poder utilizarlo, seguramente un FW solo lectura.
Por cierto, prueba con el openocd 0.10, mira a ver como tienes la variable OPENOCD de linux:
echo $OPENOCD

, a ver donde apunta para el directorio donde se encuentra el binario openocd. Prueba en cualquier ruta lo del “openocd -v”
Puede ser que tengas varias versiones pero la variable apunte al incorrecto.
Si no tienes la 0.10, consíguelo, y exporta la variable OPENOCD como dice el README, usando la ruta sonde se encuentre el binario de la v 0.10
pjexposito escribió:Es una rpi 1? Te lo digo porque si es así igual no merece la pena y te da timeout al flashear. Pero si es una 3 yo me lanzaba de cabeza a probar. En 10 minutos tienes el sistema preparado y así descartas que sea el programador.


jajaja que mala suerte tengo, si es de las primeras. [facepalm] merci por el aviso.
He preguntado en discord, me han contestado que pruebe a usar una version mas antigua del payload pero no se como.
Soldador tengo pero no nos llevamos muy bien XD, podria probar tambien aunque no tengo pines para soldar.
Hola de nuevo.

Tal y como te han comentado en discord, entra en la carpeta del programa de liberación y escribe "git checkout e1143f9". De esta formas descargaras una versión antigua del programa que quizás te permita terminar el flasheo. Suerte!
pjexposito escribió:Hola de nuevo.

Tal y como te han comentado en discord, entra en la carpeta del programa de liberación y escribe "git checkout e1143f9". De esta formas descargaras una versión antigua del programa que quizás te permita terminar el flasheo. Suerte!

He vuelto a partir de 0. Instalacion de ubuntu esta vez la 20.04.1, he instalado todo paso a paso.
Pruebo lo que me han comentado: git checkout e1143f9
Note: switching to 'e1143f9'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

git switch -c <new-branch-name>

Or undo this operation with:

git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at e1143f9 Check hash in step 3

y vuelvo a intentarlo desde el paso 3 y sigue igual, me rindo por hoy.
Prueba a realizar la conexión eléctrica fiable, suelda cables si no tienes pines, ya los desoldarás cuando todo te funcione, aparte de usar un live para sacarte de dudas.
neohroot escribió:Prueba a realizar la conexión eléctrica fiable, suelda cables si no tienes pines, ya los desoldarás cuando todo te funcione, aparte de usar un live para sacarte de dudas.


En portatil, instalación limpia de ubuntu, stlink sustituidos los ganchos por pines (sin soldarlo aun), instalado todo y me sigue pasando lo mismo.
O no hago bien el proceso en el script 3 o el stlink me falla o ya no se, no es que sea tan complicado.
Me desespera porque es que no me pilla de nuevo que llevo juankeando consolas desde ps1 y las he tenido todas.
Joder qué enrevesada es esta cabrona para el hack. ¡Qué pereza hacerlo y lo bien que quedaría con meterle los Marios y los G&W! ¿Nadie lo hace por Jaén o alrededores? XD

Encima... el otro día me dio por echar una sesión de juego un poco más larga y los dedos se me quedaban dormidos de lo pequeña y antiergonómica que es. Si no tuviera esa pantalla IPS tan mona que gasta...
@neohroot @pjexposito

[plas] CONSEGUIDO!!! [plas]

Ya esta liberada! al final se me encendió la bombilla y me dió por comprobar el firmware del Stlink, y zas! Instalé los drivers para windows y al ejecutar el programa había una actualización disponible.

Arranqué el portatil con el ubuntu, borré la carpeta de los backups y empecé el proceso. Sin problemas me la verificó, luego liberé y restauré.

Si es que el proceso es realmente simple, pero cuando falla algo y no sabes por donde tirar se hace complicado.

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/stsw-link009.html#get-software
Link programa act. firmware: https://www.st.com/en/development-tools/stsw-link007.html

Ahora toca seguir con el resto.
Gracias chicos.
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.
@pjexposito
Gracias! lo apunto, yo la verdad que con MAME siempre me he liado ahi, aunque entiendo las diferencias entre los merged/ no merged/ etc, es un fkng cisco!
@Dave&Fran yo como usaba el STM32CUBEPROGRAMMER y el STM32CubeIDE, directamente me actualizaba el fw de los stlink(lo solicitan en cuanto derectan el fw desfasado del stlink), lo primero de todo, no se si lo mencioné en algun Sitio mas arriba de hecho el stlink chino de otro compi no se dejaba actualizar y era inutilizable, en cualquier caso si seria bueno apuntarlo en un punto tipo troubleshooting, junto a todas las otras posibles soluciones que hemos mencionado, porque efectIvamente si no te pierdes.
Buenos dias chicos,
traigo novedades, esta mañana me tirado como un valiente a la piscina a cambiar la memoria por una de 16. [qmparto]

Como no tengo malla para desoldar y poca habilidad con el soldador, he seguido la técnica que usó Tyler Lewis en su video, bastante basta por cierto pero me daba miedo levantar alguna pista y luego el problema hubiera sido mayor, asi que he hecho lo siguiente para evitar eso.

-Aguantando las pistas haciendo presion para asi evitar que se levanten
https://ibb.co/Zc4VkH2
-Una vez cortadas lo mas apurado posible quedan asi
https://ibb.co/GFFZYM5
-Chip puesto encima al estar algo levantado cuesta que se mantenga encima por eso la cinta para sujetarlo
https://ibb.co/LQJRYPW
-Chip soldado
https://ibb.co/TmJ9cSX

Una vez hecho, coloco la bateria y enciendo y pasó lo mismo que le pasó al compañero @shxmario como dijo en el tutorial:
Imagen

En principio parecía que el chip esta mal, asi que como tenia otro, me tocó volver a sufrir para desoldar el chip y poner otro, pero vaya, me salia lo mismo, y pensé que raro dos de dos.

Lo que hay que hacer es lo siguiente:
-Conectamos Stlink y cable a la G&W con la consola apagada
-Preparar el terminal:
export OPENOCD="/opt/openocd-git/bin/openocd"
y luego:
./5_restore.sh stlink
-En el momento que encendamos la consola y antes que se encienda le damos enter para ejecutar la restauración y listo porque si lo hacemos mas tarde que se encienda la pantalla nos salen los caracteres raros que se ven y no deja.

Pues eso, próximos días más.

Un saludo
Bastante limpio!
De todas formas si puedes, dale mas calor con la punta a la patilla, en caso de disponer de flux, o su defecto pasta de soldar, aplícalo para distribuir mejor el calor. La idea es que el estaño cubra bien todos los pads y patillas, te lo digo para que no tengas problemas de soldaduras frias o rotas en el futuro. , Lo ideal también quitar los restos de patillas que cortaste anteriormente.
Debe quedar un “menisco” bien definido, de este tipo:

Imagen
Esto indica que el estaño se ha adherido bien a todas las superficies, gracias a que el calor se ha distribuido bien.
El tema es aplicar calor a la patilla y pad a la vez, aplicar el estaño al propio pad/patilla, y no a la punta del soldador, cuando empieza a fundir esta a la temperatura correcta toda esa unión. A veces ayuda poner una gotita de estaño en el soldador para que con el calor del mismo se reparta mejor.
Si en lugar de menisco es una bola, te pasaste de estaño, si no hay menisco, no existe buena distribución.
El color de la soldadura debe ser brillante, si es apagado u oscuro puede ser una soldadura fría:
Ejemplo de THT, aplicable a SMD:

Imagen
Imagen
Imagen

Ejemplo de como debería quedar con SMD:
Imagen
Imagen
Imagen
El señalado en rojo no ha soldado bien, los verdes están bien, aunque quizá le sobra algo de estaño.

Otro truco, para soldar eliminar restos de estaño con cinta de desoldar, o lo que se pueda con la punta del soldador, haciéndolo sin aplicar mucha fuerza.
Luego colocas estaño solo en un pad, colocas el componente y lo sujetas con el estaño de ese pad aplicando el soldador, una vez sujeto es cuestión de seguir soldando el resto de patillas, haciéndolo como indiqué antes.

[desconectar Bateria]
Para desoldar si es posible no romper las patillas, puedes aprovechar el IC. Con que metas un pegote de estaño que una las 4 patas a cada lado, con el estaño calentando ese pegote vas levantando/calentando por cada lado hasta que salga entero,

Intentad hacerlo con una punta mas fina que la del tio del video, y con algo mas de delicadeza [boma]

Este está mejor, pero el metodo de cortar con cutter no lo veo, corres peligro de cortar pistas que pasen por debajo, es un peligro, el ideal el método 1 o 4:

Para el metodo 4 no hacen falta dos soldadores, con ir aplicando alternativa y rápidamente (manteniendo el estaño fundido), termina saliendo.



el estaño que sobra o bien absorbiendo poco a poco con la punta del soldador, y ésta limpiándola con esponja humedecida, con malla de desoldar o un chupón.

Imagen
Imagen
Imagen

Disculpar el tocho.
Pues nada a mi me queda preparar las no-merged y probar los últimos cambios del repo, que ha habido unos cuantos y ya me empiezo a perder por dejadez…
Brutal @neohroot
Se agradece la lección, yo es que soy bastante novato con el tema de soldaduras, y estos tips van de lujo.

Seguimos!!!

Edit: @neohroot estoy intentando instalar retrogo, justo cuando llego al ultimo paso: make flash me decia que tenia gcc v9.2.1, y despues de casi 3 horas compilando e instalando la version 10.2 me pasa que me sigue dando error diciendome que use gcc version 10.
Si le hago:
sudo update-alternatives --config gcc
me da las opciones disponibles, selecciono la gcc-102
luego compruebo con gcc -v y me pone la 10.2.0
pero al hacer make flash me salta lo mismo, entonces he eliminado con sudo apt-get purge gcc-9 la version antigua, vuelvo a comprobar, me dice que tengo la 10.2.0 pero nada, al hacer make flash me sigue diciendo que que estoy usando gcc version 9.2.1 ¿alguna idea?
Gracias
Lo del path que comentábamos antes, mas arriba, donde apunta la variable?
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
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
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
echo $GCC_PATH

Que dice?
Y/o con
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.
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.
Buff sudor y lagrimas!
Merci por las indicaciones, me ha costado la vida, pero ahora después de hacer lo del path y poner arm-none-eabi-gcc -v y hacer el make flash me sale lo siguiente:
...
gcc version 10.2.1 20201103 (release) (GNU Arm Embedded Toolchain 10-2020-q4-major)
dave@dave-VPCEB3A4E:~$ cd game-and-watch-retro-go
dave@dave-VPCEB3A4E:~/game-and-watch-retro-go$ make flash
La orden «make» está disponible en los siguientes lugares
* /bin/make
* /usr/bin/make
La orden no se pudo encontrar porque «/bin:/usr/bin» no está incluida en la variable de entorno PATH.
make: orden no encontrada
dave@dave-VPCEB3A4E:~/game-and-watch-retro-go$

shit [facepalm]
Hola. Prueba a escribir
export PATH=/usr/bin:$PATH


Y luego compila de nuevo.
pjexposito escribió:Hola. Prueba a escribir
export PATH=/usr/bin:$PATH


Y luego compila de nuevo.


probado y tampoco, si pongo eso y hago make flash me devuelve el error de que tengo gcc 9.2.1
Dave&Fran escribió:Buff sudor y lagrimas!
Merci por las indicaciones, me ha costado la vida, pero ahora después de hacer lo del path y poner arm-none-eabi-gcc -v y hacer el make flash me sale lo siguiente:
...
gcc version 10.2.1 20201103 (release) (GNU Arm Embedded Toolchain 10-2020-q4-major)
dave@dave-VPCEB3A4E:~$ cd game-and-watch-retro-go
dave@dave-VPCEB3A4E:~/game-and-watch-retro-go$ make flash
La orden «make» está disponible en los siguientes lugares
* /bin/make
* /usr/bin/make
La orden no se pudo encontrar porque «/bin:/usr/bin» no está incluida en la variable de entorno PATH.
make: orden no encontrada
dave@dave-VPCEB3A4E:~/game-and-watch-retro-go$

shit [facepalm]

Que dice con un
echo $PATH
dave@dave-VPCEB3A4E:~/game-and-watch-flashloader$ echo $PATH
://home/dave/Escritorio/gcc-arm-none-eabi-10-2020-q4-major/bin/:/opt/gcc-arm-none-eabi-10-2020-q4-major/bin/

eso me pone
Dave&Fran escribió:dave@dave-VPCEB3A4E:~/game-and-watch-flashloader$ echo $PATH
://home/dave/Escritorio/gcc-arm-none-eabi-10-2020-q4-major/bin/:/opt/gcc-arm-none-eabi-10-2020-q4-major/bin/

eso me pone

Vale, parece que has machacado el resto de rutas del PATH, ya que estas últimas tienes que añadirlas a lo que había, no sustotuir.
Para ello se me ocurre que reinicies para recuperar el PATH y al añadir las nuevas, muy importante, indicar ademas de tu ruta, que concatene el resto con el “:$PATH“
Prueba a ver si tienes suerte
No hay manera, se me escapa y ya estoy agobiado con el tema, hay alguna manera de instalar solo el lcd emulator sin tener el retrogo?
No.
Usa linux virtualizado?
Voy a intentar montar una imagen para distribuir con todo listo.
Sigo pensando que tienes problemas con losmñths y las rutas.
neohroot escribió:No.
Usa linux virtualizado?
Voy a intentar montar una imagen para distribuir con todo listo.
Sigo pensando que tienes problemas con losmñths y las rutas.


No,no, hice una instalacion limpia de ubuntu en el portatil.
El problema que no se nada de linux, y cualquier fallo que me sale es un follón, me tiro la vida buscando por internet para solucionarlo hasta que no puedo mas y os lo pregunto.
Pues nada, merci por las ayudas, a ver si de alguna manera lo conseguimos.
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/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.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-watch-backup.git
git clone https://github.com/ghidraninja/game-and-watch-flashloader.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

pjexposito escribió: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/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.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-watch-backup.git
git clone https://github.com/ghidraninja/game-and-watch-flashloader.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




joer sois unos cracks! todo ok, pero al hacer make, con las roms de nes puestas en su carpeta me sale esto>
No roms found! Please add at least one rom to one of the the directories in roms/
make: *** [Makefile.common:310: build/roms.a] Error 255
make: *** Se espera a que terminen otras tareas....
make: *** [Makefile.common:449: Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c] Error 4

han de estar todas las carpetas con roms? solo tengo de nes.

gracias mil
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.
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.


Acabo de instalar en vmware ubuntu y probado con tu script desde 0, perfecto me ha hecho todo el proceso completo, pero parece ser que no me lo ha volcado a la g&w, que raro no?
Realmente no. Para que lo vuelque en la gw debes poner

make flash


Pero por suerte si todo lo anterior te ha funcionado esto último seguro que también. Lo siento pero se me olvidó incluirlo; lo corrijo ya por si alguien lo quiere usar.

Animo que estás a punto!
pjexposito escribió:Realmente no. Para que lo vuelque en la gw debes poner

make flash


Pero por suerte si todo lo anterior te ha funcionado esto último seguro que también. Lo siento pero se me olvidó incluirlo; lo corrijo ya por si alguien lo quiere usar.

Animo que estás a punto!


jajajaj vamos vaaaa, me sale esto:

ake[1]: Entering directory '/home/dave/opt/game-and-watch-retro-go'
[ BASH ] Checking for updated roms
Entering 'LCD-Game-Emulator'
Entering 'retro-go-stm32'
[ LD ] gw_retro_go.elf
text data bss dec hex filename
633707 3628 618184 1255519 13285f build/gw_retro_go.elf
itcram 0 / 65536 (65536 bytes free (0.062 MB))
dtcram 104416 / 131072 (26656 bytes free)
ram_uc 307200 / 307200 (0 bytes free (0.000 MB))
ram 65280 / 69632 (4352 bytes free (0.004 MB))
ram_emu_nes 102788 / 671744 (568956 bytes free (0.543 MB))
ram_emu_gb 0 / 671744 (671744 bytes free (0.641 MB))
ram_emu_sms 0 / 671744 (671744 bytes free (0.641 MB))
ram_emu_pce 0 / 671744 (671744 bytes free (0.641 MB))
ram_emu_gw 0 / 671744 (671744 bytes free (0.641 MB))
ahbram 5760 / 131072 (125312 bytes free (0.120 MB))
flash 66648 / 131072 (64424 bytes free (0.061 MB))
extflash 567071 / 970752 (403681 bytes free (0.385 MB))
saveflash 73728 / 73728 (0 bytes free (0.000 MB))
[ BIN ] gw_retro_go_extflash.bin
../game-and-watch-flashloader/flash_multi.sh build/gw_retro_go_extflash.bin
Preparing chunk 1 / 1 in file /tmp/flash_chunk.DZYJVY
Flashing!
Loading image into RAM...
xPack OpenOCD, x86_64 Open On-Chip Debugger 0.11.0-00155-ge392e485e (2021-03-15-16:43)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
none separate

Info : clock speed 1800 kHz
Error: libusb_open() failed with LIBUSB_ERROR_ACCESS
Error: open failed

segundo intento:
y
Retry count 2/3
Loading image into RAM...
xPack OpenOCD, x86_64 Open On-Chip Debugger 0.11.0-00155-ge392e485e (2021-03-15-16:43)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
none separate

Info : clock speed 1800 kHz
Error: libusb_open() failed with LIBUSB_ERROR_ACCESS
Error: open failed

y el tercero:

Programming of the external flash FAILED after 3 tries.
Please check your debugger and wires connecting to the target.


make[1]: *** [Makefile.common:428: flash_extflash] Error 1
make[1]: Leaving directory '/home/dave/opt/game-and-watch-retro-go'
make: *** [Makefile.common:433: flash] Error 2
dave@ubuntu:~/opt/game-and-watch-retro-go$

WTF!!
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:


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

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


Si durante la instalación del OpenOCD te da problemas, haz lo siguiente:
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
Si estas con vmware, tienes bien configurada la redireccion USB?
Con VMWare me he peleado poco, no estoy muy seguro como hacerlo, pero lo mismo tienes que tocar algo.
sois unos putos cracks!!

Imagen



Conseguido, teneis birras pagadas!!!
Enhorabuena! Ahora a disfrutarla.

Por cierto, ¿cómo resolviste lo del programador?
pjexposito escribió:Enhorabuena! Ahora a disfrutarla.

Por cierto, ¿cómo resolviste lo del programador?

@pjexposito
Eran los drivers tal y como pusistes.
Aunque aun no ha acabado la fiesta, toca instalar el lcd emulator [qmparto]

pregunta: he ido modificando los comandos previos pero me dado cuenta que en la carpeta me salen ya los archivos tuyos de retrogo internal flash y la external flash que los creas cuando modificas las lineas para que inicie retrogo en otra linea del sistema, esos archivos que luego pasas para parchear el firmware son funcionales, me sirven?
No se si te entiendo bien. ¿Hablas de los archivos que crea game-and-watch-retro-go y que luego flasheas en la G&W? Si es así no hacen falta más, dado que se pueden volver a generar al hacer un make flash. Si son los del backup que hiciste al principio del todo, la copia de la flash que se hace en el paso 3 sí que conviene que lo guardes en un lugar seguro.

Saludos.
Me refiero a los gw_retro_go_extflash.bin y el gw_retro_go_intflash.bin, que son los que crea el retrogo una vez se han modificado las lineas, estan modificados ya por ti?
Ahora en el Stock firmware patcher, le pongo en input la internal_flash_backup y en output donde quiero que la guarde pero al darle a parchear me dice que Wrong Firmware, y no se porque.
1770 respuestas