Depura un ROM homebrew de Master System que se bloquea en la pantalla de título
Cuándo usarlo: Tu compilación de WLA-DX funciona bien en teoría pero Gearsystem se congela en la pantalla de título.
Requisitos previos
- Gearsystem compilado con MCP habilitado — Clona drhelius/Gearsystem y compila según MCP_README.md
- El ROM y su archivo de símbolos .sym — Salida de tu ensamblador (WLA-DX, asm6, etc.)
Flujo
-
Inicia sin interfaz gráfica (headless) y establece un punto de ruptura en el punto de bloqueoInicia Gearsystem MCP con mi ROM. Establece un punto de ruptura de CPU en la etiqueta
init_vdpy ejecuta.✓ Copiado→ La ejecución se detiene en el punto de ruptura -
Inspecciona el estado de CPU y VRAMMuéstrame los registros Z80 y los primeros 32 bytes de VRAM. ¿Hay algo que parezca mal en este punto de init?✓ Copiado→ Volcado de registros + observaciones sobre lo esperado vs lo actual
-
Ejecuta paso a paso y observa una región de memoria específicaAñade un punto de ruptura de acceso a memoria en $C000 y ejecuta paso a paso hasta que algo escriba allí.✓ Copiado→ Se detiene en la instrucción problemática
Resultado: Una causa raíz (ej. registro VDP escrito antes de que VRAM sea seguro) con la dirección exacta de la instrucción.
Errores comunes
- Símbolos no cargados — las direcciones son opacas — Asegúrate de que .sym coincida con la compilación exacta del ROM; recompila para alinear si es necesario
- El error de temporización solo se reproduce en hardware real, no en el emulador — El emulador tiene limitaciones; para casos extremos de temporización de bus, prueba en un SMS real