Un proyecto de código abierto consigue ejecutar Pokémon Emerald de forma nativa, sin emulador, sobre un microcontrolador RP2350B de 6 dólares. El desarrollador recompila la descompilación oficial del juego (pret/pokeemerald) desde ARMv4T a Cortex-M33 y reimplementa por software el hardware gráfico de la Game Boy Advance en el segundo núcleo del chip.
La placa objetivo es la WeAct Studio Core2350B, con 16 MB de flash QSPI. Todo el juego —código, gráficos, mapas y música— cabe en una imagen de 11,7 MB que se ejecuta directamente desde la memoria flash. A 252 MHz, el núcleo 0 ejecuta la lógica del juego en unos 0,3 ms por fotograma, mientras el núcleo 1 se encarga del renderizado del PPU en alrededor de 12 ms, alimentando un framebuffer RGB565 de 240×160 que se envía por HDMI a 640×480p60 mediante HSTX. Diez botones conectados a GPIO cubren la entrada.
El proyecto hereda las costuras #if WASM del porte a WebAssembly de tripplyons y reutiliza el rasterizador de JavaScript como referencia byte a byte, gracias a un arnés de validación que compara píxel a píxel la salida del PPU en el navegador y en el microcontrolador. Tras varias optimizaciones (tablas LUT por fotograma, máscaras de ventana por línea de escaneo, bucles especializados), el rendimiento pasó de 909 ms a unos 12 ms por fotograma, una mejora de 45 veces.
El juego se puede jugar de principio a fin: arranca, pasa la introducción, permite empezar partida nueva, recorrer el mundo, combatir y guardar. Todos los modos de vídeo (0–4), sprites, ventanas, mezclas y transformaciones afines funcionan correctamente. No hay audio completo (faltan DPCM y reproducción inversa), ni cable de enlace, ni reloj RTC real. El proyecto se distribuye bajo licencia MIT y no está afiliado a Nintendo, Creatures Inc. o GAME FREAK.
