Published: dom 30 agosto 2026
By Oscar (glimmerptr) Triano
In Tecnología .
tags: programación empotrado
Translations:
en
Portando un juego raylib para la anbernic con muos
Tengo una anbernic con muos como sistema. Yo he pensado en por qué no usar estas máquinas para algo mas que emulación, como hacer juegos para este tipo de máquinas con portmaster.
Todo esto lo he hecho en un Arch, Endeavour OS, en un x86_64, así que tendrás que adaptar los pasos al sistema que tienes.
Portmaster
Portmaster es una plataforma que facilita la instalación de juegos desde otras plataformas, ya sea con un entorno de ejecución u ofreciendo versiones nativas de estos juegos.
Para este caso uso westonpack, mas que nada porque al parecer muos usa el framebuffer /dev/fb0 para dibujar en pantalla en vez DRM/KMS como usa raylib.
Westonpack es un entorno de ejecución que emula una pila gráfica que se encuentra típicamente en un escritorio Linux y no en un linux pensado para empotrados.
Preparación del entorno de construcción
Leyendo esto https://portmaster.games/porting.html puedes tener tu entorno para portar juegos con raylib. En este apartado voy a describir cómo monté el mío.
Necesitas tener instalado en tu sistema debootstrap y qemu-user-static-binfmt .
Adapto pasos que necesitamos de https://wiki.debian.org/Debootstrap .
> mkdir debian-arm64
> sudo debootstrap --arch=arm64 stable debian-arm64 http://deb.debian.org/debian/
Una vez terminado hacemos chroot ahí
> sudo chroot debian-arm64/
Si está bien instalado qemu-user-static-binfmt en el host, en el chroot al hacer
> uname -m
debería salir
aarch64
Instalación y configuración de paquetes
Haz esto en la terminal dentro de chroot.
> apt install cmake-curses-gui build-essential libsdl2-dev
Descarga el codigo fuente de la versión actual de raylib (por esta fecha) https://github.com/raysan5/raylib/archive/refs/tags/6.0.tar.gz en el root, o en otra parte de tu entorno chroot.
Personalmente para trabajar cómodamente en el root del chroot desde fuera doy todos los permisos de mi usuario y grupo al /root del chroot (no el /root del host).
Extrae el zip y entra en el directorio.
> tar -xzf raylib-6.0.tar.gz
> cd raylib-6.0
> ccmake .
Presiona la tecla C (Configure)
Una vez terminada la configuración inicial
Editamos estos campos hasta que queden así, no borramos campos.
BUILD_EXAMPLES OFF
OPENGL_VERSION 2.1
PLATFORM SDL
De nuevo, configure, hasta que salga Generate (tecla G), y presiona G para generar. Sal y haz
Una vez listo, copia tu juego en una carpeta dentro del chroot y cuando compiles añades estas bibliotecas
-ldrm -lgbm -lEGL -lGL
Westonpack
Sigue las instrucciones indicadas en https://github.com/binarycounter/Westonpack/wiki/SDL2-on-X11-Example#running-sdl2-games-that-require-x11 .
Y copia y adapta el script https://github.com/binarycounter/Westonpack/wiki/SDL2-on-X11-Example#example-script-opengl-2 para tu port.
Como mínimo con renombrar los nombres del port basta. Renombra el script al nombre de tu port.
Empaquetando para pruebas
La estrucutura del port al final quedaría
port
├── nombre-juego
│ ├── assets
│ │ ├── loquesea
│ │
│ ├── libs.aarch64 Mete todas las bibliotecas que usa tu juego aquí
│ │ └── libraylib.so.600 Esto si has compilado raylib como biblioteca dinámica
│ ├── nombre-juego.aarch64
│ └── x11sdllib
│ └── libSDL2-2.0.so.0
└── nombre-juego.sh
Subiendo a tu maquinita
Usa scp o sftp para subir el port a tu máquina para probarlo
Copia /port/nombre-juego a ports/nombre-juego
Copia /port/nombre-juego.sh a ROMS/Ports/nombre-juego.sh
Portmaster aquí habla de matar la interfaz gráfica para probar el juego desde terminal,
con los pasos anteriores podemos mantener la interfaz y probar el juego como si fuera descargado de Portmaster.
Esta estructura es para pruebas nada más, para un empaquetamiento para portmaster faltan archivos de metadatos .
Esto es todo por el momento, para cualquier aclaración o detalle por favor contacta conmigo.