Carga de juegos

Cómo un juego (main.lua + sprites) llega de la SD/flash a ejecutarse en la consola

1 · El ciclo de vida completo

ENCENDER BOOT ROM → FIRMWARE (motor + launcher) init: pantalla · I2S · botones · Lua(PSRAM) LAUNCHER: escanea SD → lista de juegos SIDELOAD USB / WiFi MENÚ: elegir juego CARGAR: main.lua + sprites → PSRAM JUEGO CORRIENDO (update cada frame) ESC → volver al menú

2 · Qué contiene un "juego" en la SD

/juegos/mario/ main.lualógica (bytecode) sprites.sprimágenes RGB565 niveles.datmapas / tiles meta.jsonnombre, portada loader PSRAM (16 MB) — lo que usa el juego en ejecución bytecode LualuaL_loadbuffer sprites (punteros)registerSprite(id, …) heap de Lualua_newstate(psram) framebuffer doble320×480 ×2 alternativa: flash interna 16 MB (sin SD) SD (GB) = almacenamiento permanente · flash = lo mismo sin lector SD

3 · Orden de llamadas al cargar un juego

Secuencia en el loader: 1. leer sprites.spr 2. copiar a PSRAM 3. registerSprite(id, w, h) 4. cargar main.lua 5. init() + loop El loader es el próximo módulo a implementar (hoy en main.cpp está como TODO). El formato .spr y .dat también.
Estado actual: el motor, la API y la carga de Lua en PSRAM están hechos y compilados. Lo que falta es el loader (leer la SD e inyectar sprites + main.lua) y definir los formatos .spr (sprites) y .dat (niveles). Es el siguiente paso lógico.
juego (archivos) PSRAM / núcleo launcher/loader sideload / retorno