Koriki Os
Una compilación de Aplicaciones muy interesante para tu Miyoo Mini

En noviembre del 2023 adquirí en una oferta una Miyoo Mini +, como cualquier consola de origen chino, o prácticamente todo el hardware, donde más penalizan es en el software, en este caso fue sobre seguro y la adquirí con mente de meter Onion Os, con el cual he tenido hasta hace poco, con sus más o sus menos, ahora, aprovechando la nueva actualización he probado KorikiOS.
Antes de nada
Como ya he declarado en múltiples ocasiones, soy usuario muy asiduo de Batocera, hasta el punto de que he adoptado su forma de organizar sus partidas (principalmente) en todos mis emuladores, ya que las sincronizo contra un servidor central, para evitar perderlas. Eso significa que, cuando llego a una nueva máquina, lo primero que busco es que pueda importar “la filosofía” de carpetas y es de lo que más valoro, que pueda cambiar, el que quiere el cambio, soy yo, no puedo obligar a los demás, pero que me dejen cambiarlo.
Conociendo Koriki OS
Koriki OS es, como comentamos, un conjunto de aplicaciones, que modifica el frontend y parte del back-end, además, añade aplicaciones útiles para su gestión tanto local como remota, algunas también presentes en Onion OS, aquí algunas brillan más. Como menú, tiene SimpleMenu que es la principal razón para quedarme en este sistema, es simple, funcional y modificarlo es increíblemente intuitivo.
Como back-end tenemos RetroArch 1.14.0, frente al 1.15.0 de Onion OS (vamos por la 1.19.1), no he ido comprobando los Cores de manera independiente, pero está en versiones iguales o muy parecidas, podría intentar hacer un “mezcladillo” pero lo dejo para futuro. En ambos casos el port está desarrollado por Eggs@2026, pero no encuentro un repositorio como tal.
Entre las aplicaciones de sistema, destaca el gestor wifi, algo que en Onion OS solo puedes tener una red, aquí se configuran activos independientes por AP, permitiendo tener varias redes y no estar todo el día escribiendo la clave.
Como punto negativo, no tiene un buscador directo, si puedes moverle ágilmente por el menú, sin embargo, no tienes una búsqueda exacta.
Puñeteando el sistema
Recordar, esto va sobre FAT32 no sobre exFAT, así que si usáis Windows, mirar una herramienta para formatear en FAT32, no lleva instalador, se pega y pálante.
En mi caso, el nombre de las carpetas y la forma de almacenar las partidas no cuadraban con mi filosofía y el emulador por defecto de algunos sistemas no era el que yo quería, así que vamos a empezar a tocar por aquí.
Primera parada, Simplemenu
Simplemenu se encuentra dentro de SD/.simplemenu
y es lo primero que vamos a modificar.
- Yo no quiero Microordenadores, una pantalla de 2.8" no ayuda.
- Aunque esto es adelantarme, no quiero la sección Overlay, es consumo de CPU/RAM y en algunos casos puede dar tirones, me lo puedo ahorrar.
- Muchos emuladores por defecto no me interesan o directamente no los quiero, como es el caso de FBA, después del golpe bajo que dio no lo quiero ni ver.
La estructura, es fácil de entender, tienes un fichero config.ini
con una configuración general del menú, incluye los parámetros de overclock, cambiar datos aquí (como puede ser la ruta de imágenes) es más estructural que funcional.
La carpeta que “más caña” le vamos a meter es section_groups
y la otra que debemos saber qué hace es launchers
.
section_groups
Es el corazón de simplemenu, nada más entrar y si ya has visto la Miyoo encendida, verás que son las secciones del menú. Vamos a centrarnos en 1 handhelds.ini
.
En la primera línea tenemos un resumen de todas las consolas que va a soportar este menú, es una referencia a los objetos de abajo.
[CONSOLES]
consoleList = ARDUINO,GAME BOY,GAME BOY COLOR,GAME BOY ADVANCE,NINTENDO DS,GAME & WATCH,GAME GEAR,ATARI LYNX,NEO GEO POCKET,WONDERSWAN,POKEMON MINI,SUPERVISION
Ahora, dentro de cada objeto de la lista, tendremos los parámetros que usa para invocar la llamada
[NEO GEO POCKET]
execs = /mnt/SDCARD/.simplemenu/launchers/race_libretro,/mnt/SDCARD/.simplemenu/launchers/mednafen_ngp_libretro
romDirs = /mnt/SDCARD/Roms/NGP/
romExts = .ngp,.ngc,.ngpc,.npc,.zip,.7z
scaling = 1
- La primera línea es el ejecutable, (recordar que ya he hablado de launchers), es jerárquico, eso significa que si no tocas nada, el primero sea el Core de Race.
- La segunda línea es la referencia a donde buscar las roms, dentro de la estructura de la Miyoo, cambiando dicha ruta ya cambiaria donde se pueden almacenar.
- La tercera línea es la extensión, qué extensiones queremos que vea, esto es muy importante en emuladores de sistemas con CD-ROM cuando usas BIN+CUE.
Ejemplo real
Me gusta tener las Neo Geo Pocket separadas, entre la versión b/n y la color, además si va mednafen el resto al banquillo. Lo primero es añadir al inicio en el objeto CONSOLES
la opción NEO GEO POCKET COLOR
, también si vamos a los Theme
veremos que ya existía especiación.
[NEO GEO POCKET COLOR]
logo = resources/ngpc/logo.png
system = resources/ngpc/system.png
Una vez declarado en CONSOLES
creamos el objeto, y modificamos execs
en ambas para que el primero sea mednafen.
Ahora en romDirs
la ruta, donde las vamos a almacenar y ya para rizar el rizo, cambiamos las extensiones por seguridad, terminaríamos con algo así.
[NEO GEO POCKET]
execs = /mnt/SDCARD/.simplemenu/launchers/mednafen_ngp_libretro, /mnt/SDCARD/.simplemenu/launchers/race_libretro
romDirs = /mnt/SDCARD/Roms/ngp/
romExts = .ngp,.npc,.zip,.7z
scaling = 1
[NEO GEO POCKET COLOR]
execs = /mnt/SDCARD/.simplemenu/launchers/mednafen_ngp_libretro, /mnt/SDCARD/.simplemenu/launchers/race_libretro
romDirs = /mnt/SDCARD/Roms/ngpc/
romExts = .ngc,.ngpc,.zip,.7z
scaling = 1
Ahora, cuando volvamos a nuestra Miyoo, tendríamos el nuevo elemento en el menú.
Una vez tengas lo menús a tu gusto, copia scripts
y section_groups
dentro de la APP SectionsSelector
, por si un día lo tocas sin querer, que puedas recuperarlo. Es fácil el dónde, pero si no caes, dentro de sus secciones en default
.
launchers
Los launchers es donde llama el elemento al ser seleccionado, para seguir con el ejemplo, es el mednafen_ngp_libretro que llama al pulsar un juego de Neo geo Pocket. Estos NO son las aplicaciones, en el enlace al arranque y la forma de llamar al Core.
#!/bin/sh
cd /mnt/SDCARD/RetroArch/
HOME=/mnt/SDCARD/RetroArch/
runsvr=`/customer/app/jsonval audiofix`
if [ "$runsvr" != "0" ] ; then
LD_PRELOAD=/mnt/SDCARD/Koriki/lib/libpadsp.so nice -n -20 /mnt/SDCARD/RetroArch/retroarch -v -L /mnt/SDCARD/RetroArch/.retroarch/cores/mednafen_ngp_libretro.so "$1"
else
nice -n -20 /mnt/SDCARD/RetroArch/retroarch -v -L /mnt/SDCARD/RetroArch/.retroarch/cores/mednafen_ngp_libretro.so "$1"
fi
Es un script fácil de leer.
Se dirige a /mnt/SDCARD/RetroArch/
y mira por JSON audiofix
(esto desde el menú de se ajusta), si no está ajustado (o si lo está la diferencia es muy básica), lanza sin prioridad RetroArch con el core mednafen_ngp_libretro
a la ruta que lo invoco.
En este caso no tiene más parámetros, algunas llamadas tienen una llamada más larga al componente de audio, pero en esencial es igual, todo el trabajo, la configuración del Core, es delegado a RetroArch, lo que me parece un acierto.
Terminando con Simplemenu
Cambiar el menú es fácil, yo no quiero Microordenadores, borro home computers.ini
, que quiero X emulador por defecto, cambio la línea, me hace falta un sistema adicional que soporta, pero no está en el menú, revisamos que esté en la theme
que estamos usando y lo declaramos. En un rato ya tendríamos los menús y las estructuras a gusto del usuario, para más información en la wiki Content-installation tenemos más datos.
A tocar el corazon, Retroarch
Como bien indica el FAQ, si quieres reconfigurar RetroArch, borra Retroarch/.retroarch/config
y Retroarch/.retroarch/retroarch.cfg
.
No suelo ser amigo de los overlay, no tengo en nada de los fondos negros, y consumen menos recursos, si quiero que tenga apariencia de CRT, pongo el CRT, necesito que sea ágil, no vistoso, pero eso yo, otros tienen su opinión tan respetable como cualquiera.
En mi caso, he realizado una criba de Cores que no voy a usar, tanto del menú como del propio RetroArch (localizados en Retroarch/.retroarch/cores
).
Si os habéis cargado la configuración completa, y no la vais a escribir a mano (3240 líneas), primero desde el menú, vamos a apps
y ejecutamos RetroArch para crear la configuración general.
Este es muy subjetivo, yo tengo claro lo que busco
- Resolución *máxima 640480**
- Respetar el ratio, pero que no sea por enteros.
- Las partidas, savestate y capturas de pantalla se almacenan según el nombre del directorio.
- Intervalo de SRAM de 30 Seg.
- La configuración NO se sobrescribe al cerrar.
- Activar RetroAchievements en Hardcore.
- Coloco los Hot_Keys a mi gusto (con el estilo de Batocera).
El resto de configuraciones la delego a los Core, que se distribuirán por core y carpeta donde se ejecuta el contenido.
Ya según el Core esto cambiará incluso dentro del mismo sistema, recuerda que está en quick menu > Core Options
lo mismo para los botones que están en la misma zona, esto lo hago así, para que la configuración de GB no afecte a MEGADRIVE. Cuanto más segmentada, más fácil es sanear algún parámetro.
Como había comentado, RetroArch de Onion era la 1.15 y la de Koriki 1.14, pero lo realmente importante es comprobar los Cores. En este caso prácticamente tienen la misma versión, pero en algunos casos, Koriki tiene alguna versión más actual. Un ejemplo, FinalBurn Neo, en Koriki tiene “v1.0.0.02” y en Onion “v1.0.0.01”. No es una diferencia abismal, pero existir existe.
Al tener unos Cores más actuales, lo del “mezcladillo” lo dejamos aparcado. El núcleo a 1.15 puede esperar.
Cribado de Cores.
De serie, Koriki trae hasta Core de Sega Saturn, por poner un ejemplo, algo que ya sabes que posiblemente no cargue ni la bios, el procesador a 1 GHz da lo que da.
En mi caso, he ido modificando los Cores por defecto según los siguientes criterios.
- Funcionalidad y RetroAchievements.
- Funcionalidad.
- Relativamente Funcional.
- Descartado.
La mayoría cumple con la 1, puede que tengan alguna bajada puntual, pero en general rinden muy bien, excepto los siguientes sistemas.
- Snes, mednafen supafaust, es muy estable, pero no tiene RetroAchievements, Snes9x petardea el sonido (en algunos juegos), aún sigo dándole vueltas, ya que me interesa usar Snes9x 1.61, pero si no se puede, no se puede.
- PC-FX, está puesto exclusivamente para “cacharrear”, petardea un montón, pero vi el Core y claro, tenía que probar.
- Mundo Sega, sí, porque siempre dudo entre picodrive y genesis plus gx, posiblemente porque les he metido muchas horas y me cuesta decidir. Genesis plus gx suele tener más opciones de configuración, principalmente en Mega CD/Sega CD, no obstante picodrive funciona óptimamente en una tostadora, al final cuesta donde asentarse.
El cribar Cores es simplemente ahorro de espacio y facilidad a la hora de leer (y si encuentro como, actualizar), total, teniendo mgba no me veo usando nunca vga next, por poner un ejemplo.
También voy a aprovechar que no va mal Snes9x 1.6 X para añadir los subsistemas de "satellaview" y "sufami turbo", rozan mucho mas la curiosidad que el jugar, pero veo interesante incluirlos, además están dentro de las nomenclaturas de carpetas.
Volviendo al Koriki Os
Es verdad que he dedicado gran parte de este artículo a cómo cocinarlo, pero, siempre he considerado muy positivo las cosas documentadas que se dejan cocinar a distintos niveles y en este caso es muy viable.
Ahora debería ponerme con los Ports que ya existen y mirar si puedo meter algo nuevo, estos días ya he ido probando cosas nuevas, pero esto lo dejo para más adelante.
Estamos ante un sistema funcional, tiene buena versión de Cores, y el que lo puedas decorar a tu gusto es un puntazo, incluso he jugado a cosas.
No me esperaba simplemenu tan amigable y el resto a falta de documentación, el propio código te explica como va, de 10.
Enlaces
- Si lo quieres descargar lo más limpio posible, ir a su repositorio de github.
- Todo lo que he ido tocando durante este artículo, como los cambios, lo tenéis en mí Fork.
- He subido las Bíos que he necesitado a archive.org.