RG350/RG280¶
Enlaces¶
General¶
- Dingoonity Wiki
- Anbernic RG-350 Wiki
- Documentación SOC, HDMI y drivers Windows
- How to make an OPK
- RG 350 Tips, Emulators and Resources - Wagner's TechTalk
- RGHandhelds device info
- Writing Software for the RG350M Gaming Handheld
Blogs, Foros¶
- Foro en elotrolado.net. Algunos posts escogidos:
- Foro en Dingoonity.org. Algunos hilos escogidos:
- RG350 Subreddit
- Blog de pcercuei
Emuladores, Ports y Aplicaciones¶
- Repositorios:
- Ports y Emuladores de Gameblabla:
- Ficheros SBI
- UniBIOS for Neo Geo
- Scrapers:
- Romcenter (ROM Manager)
- Conversión de ISOs PlayStation a PBP
- Mods de emuladores:
- Repositorio de código de juegos/clones Open Source
- Testeo colaborativo de juegos FBA/MAME promovido por @cejudin
- Retro Game Corps Arcade Guide
- Retro Game Corps Ports Guide
Sistema¶
- Retro Game Handhelds
- CFW de Ninoh-FOX
- Buildroot:
- OpenDingux: Parece el repositorio upstream del Buildroot para dispositivos basados en opendingux.
- Tonyjih
- Ninoh-FOX
- gokr
- soarquin
- od-contrib
- glebm
- Toolchain:
- Linux kernel:
- OpenDingux: Parece el repositorio upstream del kernel para dispositivos basados en OpenDingux. Incluye los experimentos de pcercuei.
- Tonyjih
- Ninoh-FOX
- OpenDingux nightly builds
- State of OpenDingux Beta
- Frontends:
- GMenu2X: Documentación. Themes:
- PyMenu: Monográfico
- SimpleMenu: Monográfico. Themes:
- EmulationStation: Monográfico. Themes:
Hardware¶
- Teardown
- Placas de RG350M y RG350P
- Para imprimir:
- Repuestos componentes:
- Repuestos oficiales en Aliexpress
- Pantalla 240p (HP350S001):
- Pantalla 480p (JT035IPS02-V0):
- Cristal pantalla
- Protector de pantalla:
- Carcasa silicona
- Stick analógico modelo original RG350:
- Kit conversión stick plano
- Botones cristal
- Pack botones SNES y sticks de perfil bajo
- Conductice Rubber Pad:
- Sticks de perfil bajo:
- Baterías (ver detalles al final del apartado Batería):
- Batería 3,7V 4900mAh: 30,17€ Incluye conector JST. Se anuncia como repuesto para RG350/M.
- Adaptadores WiFi compatibles con BASE y ROGUE (listados en directorio
/lib/modules/3.12.0-dingux\+/kernel/drivers/net/wireless/
):Realtek RTL8188EU
150Mb/s (BASE y ROGUE)Realtek RTL8188FU
150Mb/s (sólo ROGUE)Realtek RTL8192CU
300Mb/s (BASE y ROGUE)- Por ejemplo éste para el que necesitaremos además un adaptador para USB tipo C.
- Adaptadores WiFi compatibles con OD beta (listados en directorio
/lib/modules/5.15.0-rc6-opendingux/kernel/drivers/net/wireless/
):Realtek RTL8192CU
Mediatek MT7601U
Conceptos¶
Emuladores / Juegos / Ports / Aplicaciones¶
Cada elemento que aparece en el lanzador, en las distintas secciones, es una especie de acceso directo. Algunos llevan a comandos o ejecutables que hay en el sistema (fundamentalmente los de la sección Settings) pero normalmente nosotros sólo vamos a tratar con los que provengan de OPKs.
Los OPKs son paquetes (una especie de ZIP) que podemos asimilar a una aplicación de móvil. Un OPK o aplicación puede ser un emulador, un juego o port, una utilidad, etc. Dentro del OPK en un fichero se le dice al lanzador en qué categoría debe aparecer. Básicamente las secciones que se ven y que se recorren con L1 y R1:
- Applications
- Emulators
- Games
- Settings
Los ports son los que aparecen en Games. Nada impide que un emulador aparezca dentro de Games, pero todo el mundo pone las cosas siguiendo esta organización. Un port es una aplicación que ejecuta un juego concreto, normalmente un clásico, del que se dispone del código y que alguien ha compilado para OpenDingux que es el sistema de la RG-350. También en Games están los remakes hechos por aficionados o homebrew.
Un emulador es una aplicación, normalmente también de código abierto, que alguien ha compilado para OpenDingux. El emulador no contiene el código de ningún juego en concreto ni la BIOS de la máquina que emula. En teoría esto permite la libre distribución de los emuladores. Un emulador simula por software (virtualiza) un sistema que normalmente puede ejecutar códigos de juegos distintos que venían en cartucho, CD, un chip de memoria, tarjeta de memoria, etc. Son las ROMs.
En resumen:
- Port o juego: Un juego concreto normalmente un clásico de PC, un remake, juego indie o homebrew. En la RG350 tendrán forma de OPK.
- Emulador: Virtualiza una máquina que puede ejecutar varios juegos/ROMS. En cualquier máquina emuladora como la RG-350 tendrán distintas formas (.bin, .zip, .iso, .pbp, .smc, .nes, .sms, hasta el infinito). También suelen venir en forma de OPK.
Las ROMs y su organización¶
Las ROMs son los volcados a fichero del soporte digital donde se almacenaba el código y los datos (sonidos por ejemplo) del juego en la máquina original. En viejas recreativas y en máquinas de cartucho, este soporte solían ser chips de memoria no volátil. En las máquinas más modernas normalmente son CDs, DVDs, Bluray's. Las ROMs en la RG350 se suelen colocar en la tarjeta microSD externa. Pueden ir en la interna pero suele complicar el proceso de actualización del firmware. En cuanto a la estructura de carpetas, puede ser cualquiera ya que los emuladores normalmente al abrirlos, presentan una especie de explorador de archivos para seleccionar la ruta y archivo de la ROM a ejecutar.
A pesar de que las ROMs puedan estar en cualquier lugar, todo el mundo tiende a utilizar una estructura similar en la que los distintos sistemas se meten dentro de una carpeta llamada roms
en la raíz de la tarjeta. Cada sistema a su vez suele ser otra carpeta con el acrónimo de la máquina como nombre. Más o menos se utilizan los siguientes acrónimos:
- FBA: Final Burn Alpha
- FC: NES (por Famicom)
- GB: Gameboy
- GBA: Gameboy Advance
- GBC: Gameboy Color
- GG: SEGA GameGear
- MD: SEGA Megadrive
- NGP: NeoGeo Pocket
- PCE: PC Engine / TurboGrafx-16
- PS: Sony PlayStation
- SFC: SuperNES (por Super Famicom)
- SMS: SEGA MasterSystem
- WSC: WonderSwan
La importancia de las BIOS¶
Las BIOS son unos ficheros parecidos a las ROMs que a diferencia de éstas están siempre presentes en la máquina. Es decir, así como las ROMs son código particular de cada juego, que digamos entra y sale de la máquina (cuando cambias el CD o cartucho), la BIOS también es código pero permanente de la máquina. Está guardado en un chip y contiene el código que se ejecuta cuando arranca la máquina (los menús de lanzamiento de juegos por ejemplo en consolas avanzadas) y librerías que utilizan los desarrolladores para hacer los juegos más fáciles de programar.
Los emuladores o bien incorporan una reimplementación de la BIOS (como el HLE de Pcsx4all) o bien es necesario que la pongamos nosotros. Aún en ese primer caso es conveniente utilizar la BIOS original. Si no la incluyen los emuladores es porque son código propietario del fabricante de la máquina, lo que impediría la libre distribución del emulador. Lo mismo que sucede con las ROMs.
Más adelante se incluye un listado de dónde buscan las BIOS los distintos emuladores.
BIOS de PlayStation¶
Siguiendo con el ejemplo de la BIOS HLE del emulador Pcsx4all, no es la real que puso Sony en sus máquinas, sino una BIOS que alguien prepararó haciendo ingeniería inversa por lo que nunca queda igual que la original. Esto se hace para poder distribuir el emulador y que sea funcional desde un principio. Porque si se incluye la BIOS original se comete un delito de propiedad intelectual y si no se incluye ningún tipo de BIOS el emulador ni siquiera arranca. Entonces se pone algo para salir del paso pero luego se le pide a los usuarios que busquen por su cuenta la BIOS original y la incorporen al emulador.
Para pasar de usar la BIOS emulada (HLE) a una original, primero hay que colocarla en el directorio /media/data/local/home/.pcsx4all/bios/
, después arrancar el emulador, entrar en las opciones (tecla Power
), abrir la sección Core settings
y allí desactivar HLE emulated BIOS
y seleccionar en Set BIOS file
una de las que hayamos situado en el directorio indicado anteriormente. Por ejemplo:
Sistemas de archivo¶
OpenDingux, el sistema que utiliza la RG350, es una distribución Linux. Por tanto es un sistema UNIX. En UNIX no existe el concepto de las unidades (como las típicas C:, D:, etc en Windows). Todo forma parte de un árbol de directorios cuya raíz es la /
o root. Esto no quiere decir que un UNIX sólo pueda tener una unidad de almacenamiento. Lo que ocurre es que las distintas unidades se "montan" en distintos puntos del árbol de directorios.
El árbol de directorios base sobre el que se montan las unidades es ese archivo rootfs.squashfs
(el nombre quiere decir "sistema de archivos raíz") que puede verse al pinchar la tarjeta interna en el PC poco antes de flashearla con otro firmware. Ahí comprimido está todo el sistema menos lo que se monta desde las tarjetas de memoria.
La tarjeta interna tiene dos particiones. La primera contiene el árbol root como hemos comentado, el kernel (del que no vamos a hablar, aunque es muy importante) y es de tipo FAT32, por eso se puede ver en Windows. Básicamente contiene el sistema. La segunda partición se monta en /media/data
y está dedicada a contener la información de soporte a las aplicaciones, es decir configuraciones, librerías, archivos de datos (savestates por ejemplo) y las propias aplicaciones instaladas en la tarjeta interna. El formato de esta partición es EXT3, propio de Linux y por eso no se monta en Windows.
La tarjeta externa funciona de forma parecida a la segunda partición de la interna, es decir, sirve para contener aplicaciones y archivos de usuario, por ejemplo es donde se suelen colocar las ROMs. La única partición de esta tarjeta se monta en /media/sdcard
. Esta tarjeta externa puede estar en formatos FAT32 o los propios de Linux (ext2, ext3, ext4). ROGUE soporta además exFAT, lo que permite aprovechar mejor las tarjetas de gran capacidad. En esta tarjeta lo único importante en cuanto a la estructura de carpetas es que exista en la raíz de la misma un directorio llamado apps
(si está en formato FAT32 o exFAT será indiferente si está en mayúsculas, ya que estos sistemas de archivos no distinguen mayúsculas y minúsculas). El resto de cosas que pongamos en esta tarjeta (fundamentalmente ROMs) podrán organizarse como queramos (ver apartado Las ROMs y su organización).
Existe cierta confusión sobre si hay que formatear la tarjeta interna. En realidad la imagen que se graba o flashea (como se suele decir) incluye el formato. Flashear una tarjeta microSD es reconstruir el formato y el contenido de otra tarjeta, es decir clonarla. La imagen es un volcado bit a bit de la tarjeta original (forma y contenido). Entonces, ¿por qué sugieren muchos videos y procedimientos formatear la microSD a la que luego se le va a flashear una imagen? Sospecho que es para hacer desaparecer las dos particiones de la tarjeta con el firmware que vamos a sobreescribir, para que luego no haya dudas de lo que hay que seleccionar en el programa de flasheo. Eso en Windows. En Linux se puede hacer muy fácilmente referencia a la tarjeta en sí, además de a las particiones, por lo que el formateo previo es redundante. En resumen, que en teoría da igual el formato en que está la tarjeta antes de flashear la imagen. El flasheo "construye" el formato a la vez que le da contenido. Es como estampar un vinilo a partir de un molde master.
Conexión de red¶
El puerto USB2 cuando se conecta al PC se monta como una tarjeta de red adicional. Por ejemplo en una máquina Linux aparece este adaptador al conectar el cable:
enp0s29u1u2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.1.1.1 netmask 255.255.255.252 broadcast 10.1.1.3
inet6 fe80::f721:afcb:94:3078 prefixlen 64 scopeid 0x20<link>
ether a6:7b:58:c5:fe:30 txqueuelen 1000 (Ethernet)
RX packets 13 bytes 2786 (2.7 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 24 bytes 4097 (4.0 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Ahí puede verse que se define una red con un rango de IPs muy reducido (sólo 2 bits). El PC toma la IP 10.1.1.1
y la consola la 10.1.1.2
.
Si hacemos una detección de puertos abiertos en la máquina a través de este adaptador de red veremos que se encuentran abiertos los puertos correspondientes a FTP, SSH (lo que nos permite hacer transmisiones SCP y SFTP) y Telnet:
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
23/tcp open telnet
Por defecto el sistema de red está configurado para utilizar password. Se desactiva abriendo la aplicación Network que hay en la sección Settings
Como el enrutado del adaptador éste no da salida a internet no hay problema de inseguridad por quitar el password. El programa anterior sólo es se utiliza para cambiar esos ajustes, no es necesario que esté abierto para que funcione la conectividad.
En Windows un buen programa para transferir archivos por FTP a la consola es WinSCP. A partir del minuto 3:45 de este vídeo (en inglés) se ve cómo se usa. Este otro vídeo (en español) también muestra el proceso.
En Linux no es necesario, pero en Windows, dependiendo de la versión hay que instalar un driver. En el post inicial de este foro lo comentan. También se describe a partir del minuto 19:42 de este vídeo.
Cambio de iconos a las aplicaciones¶
Los iconos de los OPKs que muestra Gmenu2x (ya sean emuladores, juegos, ports o utilidades) se pueden cambiar muy fácilmente. Algo que se suele hacer es cambiar el icono de los emuladores para que representen a la máquina emulada.
Para cambiarlos hay dos opciones:
-
Copiar el fichero (.PNG por ejemplo) en cualquier lugar de alguna de las tarjetas (un buen sitio puede ser el mismo directorio
apps
), editar el OPK (pulsando Select) y cambiarlo en el campoIcon
(esta opción sólo está disponible en ROGUE): -
Desempaquetar los OPKs de los emuladores, cambiar el icono y volver a empaquetar. Para desempaquetar/reempaquetar ver la sección Gestión de OPKs más adelante.
En la opción 1, en el pantallazo, puede verse que el icono lo está cogiendo de dentro del OPK del propio emulador (el paso al interior es con el #
). Pero se puede elegir cualquier ruta del sistema de ficheros.
Batería¶
El puerto de carga de la RG350 es el etiquetado como USB2. Es un conector USB tipo C.
Los cargadores USB tipo C son más complejos que los microUSB. Con las nuevas tecnologías de carga rápida de los móviles, el cargador no se limita a enviar corriente al dispositivo, sino que hay una negociación previa, una especie de protocolo. Fue famoso el problema de la Raspberry Pi 4 por el cual no se podía alimentar con algunos alimentadores tipo C porque identificaban a la Raspberry de forma incorrecta y luego se negaban a darle corriente. Además de todo esto, da la impresión de que la RG350 tiene una circuitería de carga muy elemental (por los distintos comportamientos que tiene el LED de carga entre los distintos usuarios).
Por todos estos motivos, si hay que elegir un cargador, mejor optar por uno sencillo, no uno preparado para gestionar carga rápida por USB-C. Escoger uno de sólo 5 Voltios (los de carga rápida tienen tensión variable de hasta 12V) y entre 1 y 1.5 Amperios.
Una buena opción es cargar conectandola a un PC. Los puertos USB de un PC están limitados a 500mA, lo que se puede considerar una carga lenta, lo que en realidad es saludable para la batería.
La batería de la RG350 es de 3,7V y 2.5Ah. Los alimentadores USB son de 5V. Considerando la diferencia de 3,7 a 5 como la pérdida de rendimiento que hay en el proceso (aproximación burda), se pueden echar las cuentas más fácilmente. Estos serían los tiempos con cargadores de distintas intensidades:
Intensidad de carga | Tiempo para carga completa |
---|---|
2,5A | 1 hora |
1A | 2,5 horas |
500mA (PC) | 5 horas |
Todos estos tiempos son en el peor de los casos cuando la carga necesaria sea completa.
El LED de la consola informa de varios aspectos de la batería de la siguiente manera:
Estado LED | Significado |
---|---|
Verde fijo | Consola encendida con batería con buen nivel de carga. También indica carga completada cuando cargamos la batería con la consola encendida, al pasar de rojo a verde |
Parpadeo en verde | Batería baja |
Rojo fijo | Cargando (tanto con consola encendida como apagada) |
Apagado | Carga completada (con la consola apagada) |
Algunos usuarios comentan que no llegan a ver apagarse nunca el LED rojo cuando la cargan con la consola apagada. Esto parece indicar que el circuito de carga no es muy avanzado y en ocasiones no es capaz de determinar correctamente el final de la carga. Es evidente que el firmware no gestiona el nivel de carga con estadísticas como hacen los modernos smartphones por lo que el mismo se debe calcular casi directamente en función de la tensión medida en la batería, que puede diferir entre las distintas unidades o incluso factores externos como la temperatura. En esos casos, tener en cuenta los tiempos de carga indicados más arriba en función de la intensidad del cargador utilizado, para desconectar el cargador cuando haya pasado dicho tiempo.
En cuanto al reemplazo de la batería original, un usuario al que se le hinchó la suya, le quitó la cinta que la envuelve y pega a la tapa trasera y encontró que la batería era ésta:
Esta batería tiene un conector de cinta como el siguiente:
al que se le ha soldado el cable:
El modelo oficial parece ser el siguiente:
De dimensiones: 68.60 x 48.70 x 5.54mm
Al final del cable soldado al conector de cinta, se encuentra un conector Micro JST 1.25mm 2-Pin:
Algunas medidas tomadas con polímetro sobre la batería en operación y carga:
- Intensidad de descarga: 385mA (GMenu2X) - 480mA (Tekken3)
- Tensión de descarga: 4,10V (casi llena)
- Tensión de carga: 4,20V
- Tensión de batería: 4,18V (casi llena)
Otra incidencia que se ha observado varias veces es la de las baterías que parecen no querer cargarse más. En estos casos, además de hacer los evidentes cambios del material de carga (cargador y/o cable), puede intentarse hacer un "power cycle" de la siguiente forma:
- Abrir la consola y desconectar la batería del conector.
- Mantener pulsado el botón Power durante 30 segundos.
- Volver a conectar la batería, cerrar la consola e intentar cargar de nuevo.
FAQ¶
¿Qué máquinas puedo emular?¶
En general la PlayStation original (o PS1) marca el techo. Incluso en esta máquina hay juegos particularmente exigentes que hacen sudar al procesador de la RG350 que se nota sobre todo en el sonido y la fluidez de las animaciones. Otras máquinas de potencia parecida que por tanto podrían dar problemas con emuladores poco eficientes son la Game Boy Advance o incluso la SuperNintendo en los juegos que incluían chips especiales en el cartucho. Con máquinas más complejas como N64, Dreamcast o PSP podemos llegar a encontrar emuladores, pero eso no significa que vayan a resultar jugables.
¿Qué es un romset?¶
Romset = set de ROMs, es decir un conjunto cerrado y definido de ROMs. En los emuladores de máquinas arcade suele manejarse el término más que con el resto de emuladores, aunque también aplica. Por ejemplo, cuando decimos que xMAME soporta el romset 84, quiere decir que es capaz de emular todas las ROMs contenidas en ese set. Los sets se definen con unos ficheros XML llamados DATs que se pueden consultar aquí. De hecho la forma de verificar si una ROM está correctamente definida para ser ejecutada en xMAME, FBA o MAME4all es echar mano de estos DATs revisando los nombres tanto de la ROM como de los ficheros que la constituyen, así como sus hashes. Los romsets soportados por xMAME, MAME4All y FBA son los siguientes:
- xMAME:
- MAME4All: 0.37b5, también conocido como 0.41
- FBA: 0.2.97.44
- RetroArch core MAME2003: v0.78
- RetroArch core MAME2003+: v0.78
En este documento se listan todos los romsets que se manejan habitualmente en RG350.
Este artículo es un buen tutorial sobre cómo podemos gestionar y solucionar los problemas que tengamos al montar un romset.
¿Cómo se activan los sticks analógicos en los juegos de PS?¶
Depende del juego. Es decir, hay juegos que no los soportan porque son anteriores a la aparición del Dual Analog o del Dual Shock (mediados y finales de 1997, respectivamente). Hay por tanto que probar en cada juego todas las opciones que aparecen en Core settings > Analog Mode
:
No es lo mismo (porque no deja de ser digital), pero siempre existe la opción de usar la emulación de la cruceta con el stick izquierdo pulsando Power + B.
En los juegos de PlayStation en formato CUE+BIN ¿qué archivos tengo que copiar a la consola?¶
El cue
no es necesario si el bin
es único. Es decir si hay un bin
y un cue
con copiar el bin
a la consola es suficiente. Si hay un cue
y por ejemplo 8 bin
(esto puede ocurrir en los juegos que tenían pistas de audio en el CD según cómo se haya hecho el dump) entonces sí interesa copiar el cue
y lanza el juego desde él. En esos casos lo más recomendable es empaquetar todas las pistas en pbp
que ocupa menos y es un sólo archivo. Si se utilizan los cue+bin
en los lanzadores aparece varias veces el mismo nombre del juego repetido tantas como ficheros cue
y bin
tengamos (en el ejemplo anterior 1+8=9 veces).
El cue
es una especie de directorio de las pistas que contenía el disco. De hecho es un fichero de texto que se puede leer. Si se le da sólo un bin
el emulador se adapta y entiende que es la única pista que tiene que usar y que lo contiene todo. Como curiosidad, si el juego es de los de varias pistas y se copia sólo el primer bin
(que solía ser la pista que contenía el código del juego) también funciona, pero entonces el juego se ejecuta sin pistas de audio.
¿Por qué salen los juegos de GBC en blanco y negro en Gambatte?¶
Algunos cartuchos de Game Boy eran mixtos, es decir servían tanto para la Game Boy original como la Color. Cuando el juego se insertaba en la consola correspondiente mostraba los gráficos adecuados. En Gambatte, al ser un mismo emulador para las dos máquinas, hay que seleccionar el tipo de máquina con que queremos ejecutar la ROM mixta. El ajuste está en Settings > System
. Priority DMG
se corresponde con la Game Boy original y Priority GBC
con la Game Boy Color. Así pues lo más recomendable es ajustar el segundo valor. Así los juegos de la Game Boy original (extensión .gb
normalmente) se ejecutarán en blanco y negro y los de la Game Boy Color (extensión .gbc
normalmente) en color:
Como tras hacer este cambio tenemos que reiniciar el emulador, hay que hacer que el nuevo valor sea el predeterminado seleccionando Save as default
y luego confirmando:
¿Qué formato hay que dar a la tarjeta interna antes de flashear el firmware?¶
La interna no es necesario formatearla antes de flashear la imagen, a pesar de todo lo que se lee por ahí. El flasheo es formateo+instalación de datos, así que el formato previo se sobreescribe.
¿Qué tamaño es recomendable que tenga la tarjeta interna?¶
Si sólo es para alojar el sistema, hasta con una de 4GB sería suficiente. Si se quiere meter además emuladores y ROMs, entonces hay que subir el tamaño lo que se considere que se va a necesitar. En el debate sobre qué tarjeta poner más grande (si la interna o la externa), hay que tener en cuenta que pasar cosas por cable a la interna es muy lento. Lo más rápido para incorporar contenidos es copiarlos a la externa directamente en el ordenador. También hay considerar que mantener muchos contenidos en la interna dificulta los cambios de firmware en el futuro (no las actualizaciones) ya que se sustituye completamente el contenido de esta tarjeta. En esa situación habría que rescatar los contenidos previamente por cable, lo que como hemos dicho ya es lento. Una opción más rápida sería copiar de la interna a la externa por medio de DinguxCmdr, pero esto demuestra que antes de llegar a esa situación sería mejor idea mantener esos ficheros directamente en la tarjeta externa.
¿Cómo se soluciona el petardeo de sonido en las últimas versiones de ROGUE?¶
- Abrir la aplicación
Sound Mixer
de la secciónSettings
en GMenu2X - Poner el volumen PCM y el master a 0%
- Reiniciar
- Poner el volumen PCM sobre 80% y el MASTER a 100%
- Reiniciar
(Fuente)
Opciones para actualizar el firmware RG350-ROGUE-CFW¶
Entre los assets de cada release encontramos tres opciones:
Tipo | Descarga | Descripción |
---|---|---|
Update | RG350 RG350M |
Es una aplicación OpenDingux, por tanto se ejecuta desde la propia consola. No formatea, sino que sustituye los archivos que han cambiado en el nuevo firmware respecto de un sistema anterior. Recomendable para no perder ajustes de usuario, aunque dependiendo de la versión del sistema de partida puede no quedar del todo fino. Se recomienda utilizar esta opción sólo para actualizar entre versiones de ROGUE, es decir si se parte de BASE, hay que utilizar una de las dos siguientes (preferentemente la última). |
Flasher | RG350 | Es una aplicación OpenDingux, por tanto se ejecuta desde la propia consola. Formatea completamente la SD interna con el nuevo firmware por lo que se pierden ajustes del usuario. Recomendable para solucionar problemas en updates que no han quedado bien. En este video se ilustra todo el procedimiento. |
sd_image.bin | RG350 RG350M |
Es una imagen para flashear la tarjeta interna desde un ordenador. Es parecida a la opción 2 y la única que sirve si se parte de un sistema que no arranca. La imagen ocupa más porque es un volcado de todo lo que contiene la SD (incluidos los espacios vacíos de la tarjeta). El proceso incorpora la complejidad adicional de tener que utilizar algunas utilidades poco habituales, y en el modelo normal de la consola, además el tener que abrirla para extraer la microSD interna. En este video (en inglés) se ilustra todo el procedimiento. La primera parte de este otro vídeo también muestra el proceso, esta vez en español. |
Así pues, para la primera actualización (y posteriores) se puede utilizar cualquier método. Dependiendo de la situación es más recomendable uno que otro. En general empezar por la opción 1, si no queda bien pasar a la 2 y si tampoco queda bien o no es posible utilizarlo porque la consola no arranca, usar el método 3.
Flash de SD interna¶
De los procesos de actualización descritos en el apartado anterior, el que más dudas y temores plantea es el tercero. Sin embargo es el más recomendable ya que nos permite cambiar la tarjeta por una de más calidad, lo que a la larga es beneficioso.
Los pasos para realizar el flasheo de la tarjeta interna son los siguientes:
- En el modelo de RG350 original, abrir la consola (en los modelos RG350P y M no es necesario al estar accesible la tarjeta INT desde el exterior). El tornillo inferior izquierdo tiene encima un sello que no se puede despegar entero; se desintegra. Sólo hay que tener cuidado con no partir el cable de la batería por darle un tirón. Es perfectamente normal que se descuelguen los gatillos L y R. No pasa nada, nos ocuparemos de ello justo antes de cerrar.
- Sacar la SD rompiendo un nuevo sello que no se puede despegar de una pieza. Sale a cachos. Si no se ha flasheado anteriormente la tarjeta interna por otros medios, se recomienda apartarla, es decir guardarla como está y flashear otra tarjeta. Las recomendaciones para la tarjeta son que tenga 16GB class 10. Sería suficiente con una tarjeta de 4GB, ya que el sistema ocupa menos de 1GB, pero tarjetas de esa capacidad ya no se suelen encontrar y de hacerlo, lo más probable es que sea una tarjeta vieja y lenta.
- Bajar la imágen que queremos flashear. Existen dos ramas (para el caso de ROGUE consultar el apartado anterior):
- Instalar uno de estos programas:
- Montar la tarjeta elegida para flashear en el PC con un adaptador o lector.
- Utilizando el programa del punto 4 flashear la imagen (hay quien recomienda formatear antes pero considero que confunde el proceso más que otra cosa). En este documento de la fundación Raspberry Pi se detallan los pasos para flashear una imagen de sistema para esta placa. El proceso es idéntico en RG350 (cambiando la imagen naturalmente).
- Expulsar la SD del ordenador.
- Pinchar en la RG y cerrarla cuidando de que encajen bien los gatillos L/R.
Desde Linux el paso 6 de la lista anterior se puede hacer con este comando desde consola (adaptando el nombre del dispositivo si en nuestro sistema es distinto):
$ sudo dd if=sd_image.bin of=/dev/mmcblk0 bs=2M
Gestión de OPKs¶
Este artículo del viejo wiki de la GCW Zero (que afortunadamente se conserva en archive.org), documenta muy bien cómo construir un OPK y algunos de los parámetros que contienen sus ficheros.
En Linux se puede hacer y deshacer un OPK muy fácilmente con los siguientes comandos:
- Descompresión:
unsquashfs fichero.opk
- Compresión:
mksquashfs directorio fichero.opk -all-root -noappend -no-exports -no-xattrs
Cheatsheets¶
Versiones del firmware BASE¶
En BASE no se muestra la versión del firmware (como sí hace ROGUE), por lo que hay que adivinar la versión en base a la fecha de creación:
Fecha | Versión |
---|---|
2019-10-10 | 1.4 |
2019-10-18 | 1.5 |
2019-10-27 | 1.5.1 |
2019-11-10 (build date) | 1.6 |
2019-11-17 (build date) | 1.7 |
Flags de ROGUE¶
Existen 5 ficheros ocultos en el directorio /media/data
que sirven para activar varias tareas de mantenimiento/instalación inicial durante el arranque. Para reactivarlos sólo hay que borrar el fichero correspondiente que se crea al finalizar la operación:
Fichero | Operación |
---|---|
.clean |
Comprobación del sistema de ficheros. |
.linker |
Instala los links para GMenu2X de los programas preinstalados. Se comprueba durante el script de arranque /usr/sbin/frontend_start |
.partition_resized |
Redimensiona la partición data de la SD interna para aprovechar todo el espacio disponible en la tarjeta ejecutando este script. |
.reconfig |
Borra algunos ficheros residuales SSH, de otros programas y de estado (como el volumen y brillo) ejecutando este script. |
.swapon |
Crea el fichero para la memoria SWAP ejecutando este script. |
Controles stock/ROGUE¶
Función | Shortcut |
---|---|
Ajuste de nitidez (hardware scaling) | Power + Up/Down |
Emulación de crucerta con stick izquierdo | Power + B |
Ajuste de brillo | Power + Volumen+/Volumen- |
Fuerza el escalado de la pantalla | Power + A |
Pantallazo (se guarda en /media/data/local/home/screenshots ) |
Power + X |
Emulación de ratón con stick derecho (los botones son L2/R2) | Power + R1 |
Fuerza la salida al frontend (normalmente GMenu2X) | Power + Select |
Reset | Power + Start or Reset button |
Forzar apagado | Power mantenido 4 segundos |
Salvapantallas en GMenu2X | Power |
Controles ODbeta¶
Función | Shortcut |
---|---|
Apagar el sistema | Mantener POWER |
Reinicio del sistema | Power + Start + Select |
Forzar cierre de aplicación actual | Power + Select |
Subir volumen sonido | Power + UP |
Bajar volumen sonido | Power + DOWN |
Subir brillo pantalla | Power + RIGHT |
Bajar brillo pantalla | Power + LEFT |
Modo de relación de aspecto en el escalado por hardware | Power + A |
Activa/desactiva el modo ratón (anteriormente POWER + L1) | Power + B |
Suspender sistema (pulsar POWER para despertar) | Power + Y |
Captura de pantalla (en ~/screenshots ) |
Power + X |
Muestra la salida de los scripts de arranque en lugar del logo de boot | A (durante el arranque) |
Boot mode del sistema. Luego seguir esta guía para flashear por USB | Select (durante el arranque) |
Estos controles están definidos en el fichero /etc/pwswd.conf
. Si se quieren cambiar, hay que copiar dicho fichero a /media/data/local/etc/pwswd.conf
con los cambios deseados.
Controles emuladores¶
Emulador/Aplicación | Función | Shortcut |
---|---|---|
SimpleMenu | Todos | Listado |
FBA (CPS/NeoGeo) | Todos | Listado |
FBA (CPS/NeoGeo) | Salir | L1+R1+Start > Exit o Power > Exit |
FBA RetroArch con UniBIOS | Entrar en ajustes UniBIOS | A+B+Y |
ScummVM | Todos | Listado |
ScummVM | Salir | Start |
xMAME | Todos | Listado |
xMAME | Salir | Select + L1 + R1 |
Daphne | Todos | Listado |
Daphne | Salir | Select |
OpenBOR | Todos | Listado |
OpenBOR | Salir | Salir primero del juego (normalmente con Quit) y luego pulsar Y en el interfaz de OpenBOR (a pesar de que en la leyenda pone X) |
MAME4All | Todos | Listado |
MAME4All | Salir | Power |
Gambatte (GB/GBC) | Salir | Power > QUIT o R1 > QUIT |
ReGBA (GBA) | Salir | Power > Exit o Select + Start > Exit |
Game & Watch | Salir | Select |
FCEUX (NES) | Salir | Power > Exit |
PocketSNES (SNES) | Salir | Select + Start > Exit |
Genesis Plus GX (GG/SMS) | Salir | Power > Quit o Select + Start > Exit |
Genesis Plus GX (GG/SMS) | Save state | Select + L1 |
Genesis Plus GX (GG/SMS) | Load state | Select + R1 |
Picodrive (MD) | Salir | Select > Exit |
PCSX4All (PS) | Salir | Power > Quit |
Temper (PCE) | Salir | Power > Exit Temper |
NGPCEmu (NGP) | Salir | Power > Quit |
Race (NGP) | Salir | Select + Start > Exit |
SwanEmu (WS) | Salir | Power > Quit |
Stella (A2600) | Salir | Start > Exit Game (desplazando cursor con stick izquierdo y confirmando con A) |
A5200 | Salir | Select+Start > Exit |
ProSystem (A7800) | Salir | Select+Start > Exit |
Handy (LYNX) | Salir | Power |
JzIntv (Intellivision) | Select > Quit to rom chooser o Power |
|
ColecoD (ColecoVision) | Salir | Select+Start > Exit |
Retro8 (PICO8) | Salir | Select |
DOSBox | Salir | Hay que localizar la opción del juego en ejecución para salir a DOS |
Puntos de montaje de las tarjetas¶
Directorio | Elemento montado |
---|---|
/media/system |
Primera partición de la SD interna |
/media/data |
Segunda partición de la SD interna |
/media/sdcard |
Primera partición de la SD externa |
Directorios/Ficheros interesantes stock/ROGUE¶
En este documento se indican rutas importantes de varios emuladores y ports populares.
Directorio | Contenido |
---|---|
/media/data/local/home/ |
Configuraciones de emuladores, ports y aplicaciones en general. Es el llamado Home del sistema. Enlace simbólico desde /media/home |
/media/data/apps/ |
Aplicaciones (.opk ) instaladas en la tarjeta interna |
/media/sdcard/apps/ |
Aplicaciones (.opk ) instaladas en la tarjeta externa |
/usr/share/gmenu2x/sections/ |
Lanzadores de las aplicaciones y settings preinstaladas en el sistema y que se unen a las instaladas por el usuario en /media/data/local/home/.gmenu2x/sections/ |
/var/log/messages |
Logs del sistema |
/var/log/gmenu2x.log |
Log de GMenu2X |
/proc/ |
Ficheros asociados a procesos en ejecución como cpuinfo que muestra información sobre el procesador |
/media/data/local/home/.gmenu2x/skins |
Themes de GMenu2X |
/media/data/local/home/.gmenu2x/skins/<tema>/wallpapers/ |
Wallpapers |
/usr/sbin/frontend_start |
Lanzador de frontend predeterminado |
/media/data/local/sbin/frontend_start |
Lanzador de frontend personalizado |
/media/home |
Enlace simbólico de /media/data/local/home |
/usr/local |
Enlace simbólico de /media/data/local |
/usr/share/scriptrunner/scripts |
Scripts preinstalados en ScriptRunner |
/sys/class/power_supply/battery/ |
Ficheros de control de batería; voltage_now da el voltaje actual de la batería |
/sys/class/graphics/fb0/ |
Ficheros de control de la pantalla; bits_per_pixel da la profundidad de color |
/usr/share/gmenu2x/sections/ |
Lanzadores de aplicaciones preinstaladas en rootfs |
/usr/share/gcwconnect/gcwzero.ttf |
Tipo de letra de GCWZero |
/proc/cmdline |
Permite conocer el modelo de consola (argumento hwvariant ) |
/sys/devices/platform/jz-lcd.0/graphics/fb0/modes o /sys/class/graphics/fb0/modes |
Permiten conocer la resolución de la pantalla en Stock/ROGUE |
Directorios/Ficheros interesantes OpenDingux beta¶
Directorio | Contenido |
---|---|
/sys/devices/platform/13050000.lcd-controller/graphics/fb0/modes |
Permite conocer la resolución de la pantalla |
/sys/class/graphics/fb0/virtual_size |
Modo del framebuffer |
/media/data/local/share/opendingux/loading.png |
Pantalla mostrada durante las transiciones de modo |
~/.autostart |
Script para lanzar el frontend. Si no existe se lanza GMenu2X por defecto |
/sys/kernel/debug/gpio |
Estado de los GPIOs del procesador y correspondencia con controles |
/sys/class/power_supply/jz-battery/voltage_max_design |
Voltaje de batería considerado como carga máxima (4,2V actualmente) |
/sys/class/power_supply/jz-battery/voltage_min_design |
Voltaje de batería considerado como carga mínima (3,4V actualmente) |
/sys/class/power_supply/jz-battery/voltage_now |
Voltaje actual de la batería |
/sys/class/power_supply/usb-charger/online |
Sensor del puerto de carga (0:Desconectado, 1:Conectado). No indica si la consola se está cargando, sólo si hay un cable conectado |
/etc/pwswd.conf |
Atajos predeterminados de pwswd |
/media/data/local/etc/pwswd.conf |
Atajos de pwswd personalizados por usuario |
Directorios de savestates¶
Sistema | Emulador | Directorio |
---|---|---|
Atari 2600 | Stella | /media/data/local/home/.stella/state |
Atari 7800 | ProSystem | Mismo directorio de las ROMs |
Capcom System I, II, III y Neo Geo | FBA | /media/data/local/home/.fba/saves |
NES | FCEUX | /media/data/local/home/.fceux/fcs |
Game Boy y Game Boy Color | Gambatte | /media/data/local/home/.gambatte/saves |
Game Boy Advance | ReGBA | /media/data/local/home/.gpsp |
Game Gear y MasterSystem | SMS Plus | /media/data/local/home/.smsplus/state |
Game Gear y MasterSystem | Genesis Plus | /media/data/local/home/.genplus/saves |
Atari Lynx | Handy | /media/data/local/home/.handy |
Mega Drive | PicoDrive | /media/data/local/home/.picodrive/mds |
Neo Geo Pocket | NGPCEmu | /media/data/local/home/.ngpcemu/sstates |
PC Engine | Temper | /media/data/local/home/.temper/save_states |
PlayStation | PCSX4All | /media/data/local/home/.pcsx4all/sstates y /media/data/local/home/.pcsx4all/memcards |
SNES | PocketSNES | /media/data/local/home/.pocketsnes |
WonderSwan | SwanEmu | /media/data/local/home/.swanemu/sstates |
Arcade | xMAME | /media/data/local/share/xmame/xmame52/sta , /media/data/local/share/xmame/xmame69/sta y /media/data/local/share/xmame/xmame84/sta |
ScummVM | ScummVM | /media/data/local/home/.local/share/scummvm/saves |
OpenBOR | OpenBOR | /media/data/local/home/.OpenBOR/Saves |
Port | Cave Story | /media/data/local/home/.nxengine |
Port | VVVVVV | /media/data/local/home/.local/share/VVVVVV/saves |
Port | Super Methane Bros. | /media/data/local/home/.methane |
Port | SORR | /media/data/local/home/.sorrv5/savegame |
BIOS¶
Sistema | Emulador | Directorio | Fichero |
---|---|---|---|
Atari 5200 | A5200 | /media/data/local/home |
5200.rom |
Atari Lynx | Handy | /media/data/local/home/.handy |
lynxboot.img |
Gameboy | Gambatte | /media/data/local/home/.gambatte/bios/ |
gb_bios.bin |
Gameboy Color | Gambatte | /media/data/local/home/.gambatte/bios/ |
gbc_bios.bin |
Gameboy Advance | Gpsp | /media/data/local/home/.gpsp/ |
gba_bios.bin |
MegaCD | Picodrive | /media/data/local/home/.picodrive/ |
bios_CD_E.bin ; bios_CD_J.bin ; bios_CD_U.bin |
NeoGeo | Mismo directorio de las ROMs | neogeo.zip/uni-bios.rom |
|
PC-Engine CD | Temper | /media/data/local/home/.Temper/syscards/ |
syscard3.pce |
PlayStation | Pcsx4all | /media/data/local/home/.pcsx4all/bios/ |
psxonpsp660.bin ; scph1001.bin ; scph5500.bin ; scph5501.bin ; scph5502.bin |
GPIOs¶
rg280v:~ $ sudo cat /sys/kernel/debug/gpio
Password:
gpiochip0: GPIOs 0-31, parent: platform/10010000.pin-controller, GPIOA:
gpio-30 ( |Power button ) in hi IRQ ACTIVE LOW
gpiochip1: GPIOs 32-63, parent: platform/10010000.pin-controller, GPIOB:
gpio-34 ( |cd ) in lo IRQ ACTIVE LOW
gpio-37 ( |vbus ) in hi IRQ
gpio-42 ( |Left shoulder button) in hi IRQ ACTIVE LOW
gpio-43 ( |R2 shoulder button ) in hi IRQ ACTIVE LOW
gpio-44 ( |Volume+ button ) in hi IRQ ACTIVE LOW
gpio-45 ( |Volume- button ) in hi IRQ ACTIVE LOW
gpio-52 ( |L2 shoulder button ) in hi IRQ ACTIVE LOW
gpio-53 ( |Start button ) in hi IRQ ACTIVE LOW
gpio-62 ( |power ) out lo ACTIVE LOW
gpiochip2: GPIOs 64-95, parent: platform/10010000.pin-controller, GPIOC:
gpiochip3: GPIOs 96-127, parent: platform/10010000.pin-controller, GPIOD:
gpio-114 ( |Select button ) in lo IRQ
gpiochip4: GPIOs 128-159, parent: platform/10010000.pin-controller, GPIOE:
gpio-130 ( |reset ) out hi ACTIVE LOW
gpio-137 ( |regulator@1 ) out lo ACTIVE LOW
gpio-143 ( |sck ) out lo
gpio-144 ( |spi0 CS0 ) out hi ACTIVE LOW
gpio-145 ( |mosi ) out lo
gpio-148 ( |Button B ) in hi IRQ ACTIVE LOW
gpio-149 ( |D-pad up ) in hi IRQ ACTIVE LOW
gpio-151 ( |D-pad left ) in hi IRQ ACTIVE LOW
gpio-152 ( |D-pad right ) in hi IRQ ACTIVE LOW
gpio-153 ( |D-pad down ) in hi IRQ ACTIVE LOW
gpio-154 ( |Right shoulder butto) in hi IRQ ACTIVE LOW
gpio-155 ( |Button X ) in hi IRQ ACTIVE LOW
gpio-156 ( |Button Y ) in hi IRQ ACTIVE LOW
gpio-157 ( |Button A ) in hi IRQ ACTIVE LOW
gpiochip5: GPIOs 160-191, parent: platform/10010000.pin-controller, GPIOF:
gpio-163 ( |enable ) out hi ACTIVE LOW
gpio-180 ( |enable ) out lo
gpio-181 ( |Headphone detection ) in hi IRQ
Códigos teclas para mappers DOSBOX¶
Control | Código | Tecla de PC en mapper predeterminado |
---|---|---|
A | 306 | key_lctrl |
B | 308 | key_lalt |
X | 32 | key_space |
Y | 304 | key_lshift |
L1 | 9 | key_tab |
L2 | 280 | key_pageup |
R1 | 8 | key_bspace |
R2 | 281 | key_pagedown |
UP | 273 | key_up |
DOWN | 274 | key_down |
LEFT | 276 | key_left |
RIGHT | 275 | key_right |
START | 13 | key_enter |
SELECT | 27 | key_esc |
POWER | 278 | key_home |
Códigos teclas en OpenDingux Beta¶
Los códigos de las teclas cambian en el nuevo firmware beta:
Control | Código |
---|---|
A | 285 |
B | 312 |
X | 57 |
Y | 42 |
L1 | 15 |
L2 | 73 |
R1 | 14 |
R2 | 81 |
UP | 72 |
DOWN | 80 |
LEFT | 75 |
RIGHT | 77 |
START | ?? |
SELECT | ?? |
POWER | ?? |
Solución de problemas¶
Corrupción de lanzador¶
En ocasiones no se muestra correctamente el icono de una aplicación, o no apunta a donde debería. Puede suceder cuando hay dos OPK's con el mismo nombre en la SD interna y externa, y se borra uno de ellos por ejemplo. Para resetear la información, entrar en la sección donde esté el problema dentro de el directorio /media/data/local/home/.gmenu2x/sections
y borrar el nombre de la aplicación problemática. Lo que hay allí no es la aplicación en sí sino un fichero tipo .desktop
con metainformación (icono, descripción, etc.).
Colocar lanzadores en secciones nuevas de GMenu2X¶
GMenu2X permite crear nuevas secciones y codificar en los .desktop
que hay dentro de los OPKs que los lanzadores se muestren en esas secciones. Por algún motivo el mecanismo no fnunciona del todo bien y si la sección no es de las tradicionales (applications
, emulators
, settings
, games
), al editar el lanzador no se persisten los cambios ya que no se generan los ficheros de enlace en ~/.gmenu2x/sections
. Podemos engañar a GMenu2X para que genere estos ficheros siguiendo estos pasos:
- Crear el OPK con el
.desktop
apuntando a una sección de las que no dan problemas, por ejemploemulators
. - Transferir el OPK a la consola y editar el lanzador haciendo un cambio menor, como por ejemplo el filtro de extensiones, para que se genere el fichero de link en
~/.gmenu2x/sections/emulators
. - Cambiar el parámetro
Categories
(es decir la sección) en el.desktop
del OPK poniendo la que interese en lugar deemulators
, por ejemplodoom
. - Transferir el nuevo OPK a la consola.
- Reiniciar GMenu2X para asegurarnos de que se lean todos los cambios.
A partir de entonces aparece el lanzador en su sección (doom
en el ejemplo) y si se edita se persisten los cambios sin problemas.
Como dato adicional, para que la nueva sección tenga icono propio, hay que colocar un icono png de 32x32 con el mismo nombre de la sección creada (doom.png
en el ejemplo) en la ruta: /media/data/local/home/.gmenu2x/skins/<theme>/sections
donde <theme>
se corresponde con el skin que estemos usando.
Programas que se cierran¶
En ocasiones los emuladores, aplicaciones o frontends (EmulationStation, PyMenu, SimpleMenu, etc.) cuando no están bien configurados se cierran sin dar más explicaciones al abrirlos o durante su manipulación. Para tener algo que analizar, si los hemos lanzado desde GMenu2X, podemos activar un log que nos ofrecerá la salida de error en la invocación de estos programas. Para activarla hay que entrar en los ajustes de GMenu2X y poner a ON el parámetro Output logs
(Archivos de registro de sucesos
si tenemos el interfaz en español):
Una vez que en el log haya algo que mostrar aparecerá un lanzador nuevo de nombre Log Viewer
(Lector de Registros de sucesos
si tenemos el interfaz en español) donde podremos consultar la salida de error del proceso que se ha cerrado y con suerte obtener alguna pista sobre el motivo del cierre:
Particularidades juegos¶
- Metal Gear Solid (PS): Desactivar HLE en el emulador y seleccionar BIOS
scph1001.bin
(instrucciones aquí). Realmente este ajuste, aunque imprescindible para MGS y otros, es recomendable en general. - Metal Gear Solid (PS): En un momento dado del juego (alerta Spoiler) hay que superar un boss cambiando el mando de puerto en la consola original. Como con la RG esto no se puede hacer, hay un truco que consiste en llamar mucho al coronel, entonces se puede quitarles las vendas a los bustos que hay detras, y el boss se desconcierta haciendo que cueste menos derrotarle. Otra opción es descargar todo el cargador contra él, que alguna vez le darás.
- Final Fantasy VIII, IX y algunos juegos europeos (PS): Necesitan parche anticopy o poner el archivo
.sbi
correspondiente a cada cd en el mismo directorio y con el mismo nombre. Ficheros SBI - Harry Potter y la Cámara secreta, Vagrant Story, Ape Escape y Bugs Bunny & Taz - Time Busters (PS): Estos juegos se quedan atascado en los videos introductorios. La solución es cambiar la opción
Core settings > Emulation core
derec
aint
. El emulador es más lento pero más preciso y se puede superar ese punto. En ese momento grabar un savestate, volver a ponerrec
enCore settings > Emulation core
y finalmente cargar el savestate. En el Vagrant Story elAnalog Mode
que soporta este juego esDualShock
. Recordar además que este juego es de los que necesita SBI. Aquí se ofrece otra solución para los casos en que cambiar de modo de emulación sea demasiado engorroso (por tener que estar haciéndolo continuamente). - Dragon Ball Z: The Legacy of Goku (GBA): Este juego al poco de empezar a jugar en algunos emuladores muestra el error
Este juego no funcionará con el hardware encontrado
. Intentar el truco que comentan en este comentario. - VVVVVV (port): Si hay problemas durante el arranque (pantalla en negro), borrar el directorio de settings
/usr/local/home/.local/share/VVVVVV/
. Si no existe la ruta previa al directorioVVVVVV
, es decir/usr/local/home/.local/share/
el juego abrirá pero no guardará los estados. En ese caso crear manualmente la ruta desde terminal o DinguxCmdr. - Run and Gun (XMAME): Para saltar el Memory Check, enchufar un teclado al puerto USB1/OTG y pulsar F7. Otra opción es mapear L2 a F2 (
Service mode
enInput (this game)
) y R2 a F3 (Reset game
enInput (general)
) y pulsarlos a la vez. -
Parasite Eve 2 y Vandal Hearts 1/2 (PS): Estos juegos tienen un fix específico para ellos en las opciones del emulador:
-
InuYasha Sengoku Battle (PS): Este juego tiene un fix específico para ellos en las opciones del emulador:
-
Full Throttle (ScummVM): En la lucha contra los moteros se hace muy difícil pasar por falta de potencia de la máquina. No cambia de arma y a veces sí lo hace pero demasiado lento. Para mejorar la situación hacer estos ajustes temporales para pasar esa parte:
Particularidades emuladores¶
- A5200 (Atari 5200): Hay que colocar la BIOS en
/media/data/local/home/5200.rom
. Las ROMs pueden estar en cualquier lugar porque el emulador permite seleccionarlas al abrirlo mediante un explorador de ficheros, pero deben estar descomprimidas y con extensión.a52
. - ReGBA: La resolución de pantalla de Game Boy Advance es de 240x160, lo que hace que si se quiere aprovechar bien la pantalla de la RG350 haya que utilizar algún tipo de escalado. Los siguientes son los más recomendados (se ajustan en
Display settings > Image scaling
en ReGBA):None
: Encaja la resolución de GBA pixel a pixel en la pantalla de la RG. Tiene el inconveniente de que la pantalla queda un poco pequeña. Si se utiliza la versión modificada sin bezel que se puede bajar aquí no se verá el marco con aspecto de GBA SP que trae la aplicación original.Aspect, bilinear
: Scaling recomendado por muchos usuarios.Hardware
: Nos permitirá ajustar el enfoque manualmente, a continuación se describe el proceso. Empezamos pulsandoPower+A
hasta poner las bandas negras arriba y abajo. Luego pulsamosPower+Abajo
varias veces hasta alcanzar el mínimo, momento en el que se pierde toda la difuminación del escalado. Ahora ejecutamos un juego que tenga varios elementos críticos en pantalla como texto y/o sprites detallados. PulsandoPower+Arriba
iremos aumentando el grado de interpolación de los gráficos. Si lo llevamos hasta el extremo (pulsandoPower+Arriba
muchas veces) veremos cómo la imagen termina por coger mucho ruido. Se trata pues de localizar el equilibrio en un buen nivel de interpolación sin que llegue a aparecer ruido.
-
Pcsx4all (PS): Algunos juegos de PS superan la resolución de la pantalla de la RG350 (320x240). En esos juegos los textos pueden llegar a leerse mal. En esos casos configurar el parámetro
Video scaling
deGPU settings
al valorhardware
y luego durante el juego utilizar la combinación de teclasPower+A
para conmutar entre los distintos modos de scaling. También podremos ajustar el grado de interpolación del scaling pulsandoPower+Arriba
yPower+Abajo
de la misma forma que se ha descrito en el caso de ReGBA.
Modos de arranque seguro¶
Durante el arranque se puede modificar la forma de iniciar el sistema pulsando algunas teclas:
Y
: Carga el último kernel que funcionó correctamente.X
: Carga el último sistema de archivos (rootfs) que funcionó correctamente.X+Y
: Carga el último sistema (kernel+rootfs) que funcionó correctamente.
Corrupción de archivos de texto¶
Linux y Windows utilizan distintos sistemas para codificar los retornos de carro de los ficheros de texto. Si creamos o editamos uno de estos ficheros y luego lo transferimos a la RG350, dependiendo del uso que vaya a tener ese fichero podría no funcionar. Unos ficheros especialmente sensibles son los scripts como el que determina el lanzador de aplicacione predeterminado, es decir /media/data/local/sbin/frontend_start
. Para reconvertir los ficheros de texto del formato de Windows al de Linux existe una pequeña utilidad llamada dos2unix
. Para utilizarla tenemos que conectar con la RG350 por SSH para tener acceso a una terminal o utilizar la aplicación de terminal ST-SDL
. Desde uno de estos terminales ejecutaremos:
RG350:/media/data/local/home # dos2unix fichero_a_convertir.txt
Backup de home¶
El directorio /home/data/local/home
pertenece a la tarjeta interna y es de los más importantes puesto que es donde la mayoría (por no decir todos) los programas (emuladores, ports, aplicaciones) guardan sus ajustes (como los savestates de los emuladores o las memory cards de pcsx4all). Cuando flasheamos la tarjeta interna (con las opciones 2 y 3 del apartado Opciones para actualizar el firmware RG350-ROGUE-CFW) el contenido de este directorio se pierde. Una idea sería hacer un respaldo del mismo en la tarjeta externa (que no se altera durante el flasheo) y luego restaurarlo.
Podemos hacer el backup lanzando un comando de terminal ya sea conectando por SSH o utilizando una aplicación de terminal (como ST-SDL
). El comando para realizar el backup es:
tar -cf /media/sdcard/home_backup.tar -C /media/data/local home
En caso de querer excluir algún directorio concreto que ocupe mucho y que tengamos respaldado por otro lado (por ejemplo si tuviéramos las ROMs allí), utilizar el parámetro --exclude
. Vamos a ver cómo se excluirían por ejemplo las imágenes de previsualización de FBA:
tar -cf /media/sdcard/home_backup.tar -C /media/data/local --exclude=home/.fba/previews home
Para restaurar:
tar -xf /media/sdcard/home_backup.tar -C /media/data/local
El comando no es sensible a la ruta, es decir puede lanzarse desde cualquier directorio y genera el fichero home_backup.tar
en la raíz de la tarjeta externa (ruta /media/sdcard/
en el sistema de la consola).
Aquí puede leerse un monográfico sobre el tema.
Monográficos en blog¶
- Primeros pasos con la consola RG350
- Instalación y configuración de FBA
- Instalación y configuración de xMAME
- Instalación y configuración de MAME4All
- Instalación y configuración de ScummVM
- Integración de ScummVM en lanzadores con selección de ROMs como SimpleMenu
- Instalación y configuración de Daphne
- Instalación y configuración de OpenBOR
- Instalación y configuración de DOSBox
- Generación de previews de las roms instaladas
- Instalación y configuración de launcher SimpleMenu
- Instalación y configuración de launcher PyMenu
- Instalación y configuración de launcher EmulationStation
- Conexión a internet a través de cable USB
- Cómo hacer backup para no perder savestates y configuraciones de emuladores
- Py Backup. Aplicación para gestionar backups
- Compilación de Buildroot con toolchain en un contenedor Docker
- Ejemplos de compilación de algunas aplicaciones por medio del toolchain en Docker
- Procedimiento para generar una imagen de tarjeta SD flasheable
- Integración en frontends y mejora en la gestión del modo vertical en FBA
- Interfaz de ajustes para las ROMs de xMAME lanzadas desde SimpleMenu
- Sustitución de pantalla por la del modelo M
- Instalador RetroArch