El sitio personal de David Colmenero (D_Skywalk)

El largo calvario del OpenGL ES

Os voy a contar la historia de como me meto en otro “fregao” todo empezó hace más de 2 años jugando con mi RG35xx, me encanta darle a la consola, pero la veía muy desaprovechada. Mucho, mucho.

Fijaros si era básico el trabajo oficial de Anbernic que para empezar el firmware oficial no tenía activado ni la fpu del cortex-a9 y por supuesto de la GPU, ¿qué PowerVR qué? xD

RG35XX - Modelo Antiguo

Para la compañía está claro, si quieres algo que sea capaz de funcionar mejor, gastate más pasta con el nuevo modelo XXYYZZ. Es una forma artificial de capar consolas que son capaces de dar mucho más. Pero no interesa.

A mi eso me da igual, yo disfrutaba mucho de mi consola con MinUI su elegancia, simplicidad y rapidez. Además todo integrado con esos menús sencillos y directos a lo básico. Este sistema por si no lo conocéis facilita mucho jugar y no complicarte con pantallazos y chorradas. Pones la rom en la carpeta con el nombre del emulador que quieres que lo lance entre paréntisis y a jugar. Simple, sencillo, genial!

Pero claro, como su base es el firmware oficial y aunque hacían un pequeño hack para poder activar la FPU, la GPU seguía totalmente apagada. Afortunadamente esto lo arregló Koriki que lo activaron y permitían usar shaders, escalar con la GPU y todo eso hacía que la consola gastara menos batería. El único problema es que usaban una interfaz, para mi horrible y recargada, ya no me apetece tanta chorrada.

Y me nació la idea de unificar esos dos mundos MinUI+Koriki dando lugar a… MiaUI!

MiaUI - RG35XX Firmware

Pero no iba a ser un camino de rosas, esta larga travesía tenía un problema, estas consolas baratas usan viejo hardware con viejas GPUs de móviles (OpenGL ES) y programar aquí no era tan fácil como yo me esperaba. Tienes que hacerlo todo con shaders, no hay operaciones normales de OpenGL y prácticamente todos los ejemplos y tutoriales no valen de nada. No puedes poner unas fuentes usando una superficie, solo puedes iniciar el entorno, subir los shaders y jugar con estos, no tienes nada más. Y en el verano de 2024 empecé por lo típico, pongamos un sprite y comprobemos las diferencias a ver cuanto ganamos…

La diferencia como véis era brutal, 2000 objetos en pantalla usando GPU VS 200 por software (aunque tiraba de DMA). Asi que el esfuerzo valía la pena. Poner una navecita fue sencillo, pero mi idea de implementar completamente MinUI con la GPU se hacía imposible ya en lo más básico, era incapaz de poner imágenes y renderizar fuentes a la vez. Así que la única versión que logré sacar en agosto de 2025 para el grupo era todo por software (SDL2) y aunque la base era koriki, al final no ganaba casi nada…
Batalla Perdida.

Libro de OpenGL ES 2.0 ES

Pero lejos de rendirme me puse a buscar y leerme libros de OpenGL intentando avanzar y aprender. También hice la prueba a ver si la IAs ayudaban en algo, pero eran un desastre (ya que la documentación en internet era casi nula) hacían unaz mezclas sin pies ni cabeza. Probé también en intentar con antiguos compañeros de trabajo por si me podían darme alguna pista e incluso con amigos de mercury que han hecho muchas cosas de móviles, … sin suerte.

El tiempo pasó y algo cansado, me puse esta navidad con el proyecto de Gameboy, quizás ese refresco mental me hizo retomarlo a mediados de enero con nuevas perspectivas. Además un compañero de Skydance, Marcelo, me dijo que le diera una nueva oportunidad a la IA que había mejorado mucho en estos últimos meses y recuerdo que me hizo una corrección de un shader que yo no me había fijado… total que a los pocos días ya tenía unas fuentes y un par de pantallazos renderizandose con la GPU!!

GLES - Core básico

Tras algunas semanas más de trabajo el 16 de febrero de 2026 tenía el primer overlay funcionando con un shader usando mi implementación de OpenGL ES 2.0 😱

¡Por fin! ver funcionando la NDS, N64 y ver que el DOSBox ya no se arrastraba, al evitar tener que hacer cálculos por software para pintar. Joder, fue un chute de moral brutal.

Y ya. Estas últimas semanas ha sido trabajo de afinar para dejarla como soñábamos, porque al final también en el grupo de allahu han aportado sus ideas, locuras y tiempo de testeo :)

El fruto de tooooodo este trabajo, para una consola ya casi extinta, lo tenéis recopilado en este github:

https://github.com/DSkywalk/MiaUI-GPU-RG35XX

Mi consejo, compradla está barata y MiaUI va de vicio! xD

Un Saludo!

comments powered by Disqus