Como parte del trabajo que he estado haciendo para responder this question about the technical workings of a glitch in Pokémon Red, he estado buscando una forma de utilizar un depurador estándar para depurar una ROM de Game Boy. Aunque muchos de los emuladores que he encontrado tienen algún soporte para la depuración, nada de lo que he encontrado hasta ahora ha sido útil.Emulador de Game Boy con un depurador completo?
Como telón de fondo, a partir de ahora he tratado de utilizar el Avance Visual Boy características integradas de hacer la depuración, pero no son particularmente útiles para lo que estoy tratando de hacer. VBA carece de la capacidad de establecer puntos de interrupción, y dado que avanza al nivel de cuadros en lugar de instrucciones, no puedo ver cómo se está ejecutando el código cuando realmente lo necesito. Aunque VBA dice que es compatible con la depuración de GDB, he sido completamente incapaz de hacerlo funcionar. Probé la compilación cruzada de GDB para ARM según las instrucciones, pero no pude hacer que GDB se conectara al emulador (reconocería que había un programa para conectarse, pero me informó que el protocolo había sido violado). Repetí esto con éxito similar tanto en Windows con Cygwin como en Ubuntu Linux. Un amigo y yo intentamos usar Insight/GDB, pero nos encontramos exactamente con los mismos problemas.
También traté de usar el depurador NO $ GBA, pero se negó a cargar mi ROM para Pokémon Rojo (y luego me insultó diciendo que nada de lo que intentara hacer lo arreglaría, ya que el archivo era simplemente plano) fuera mal).
Además, traté de descargar this version de Visual Boy Advance que dice tener un depurador, pero por alguna razón no puedo conseguir que habilite el depurador. Presionar F11 según sus instrucciones no tiene ningún efecto en absoluto.
Creo que he hecho mi diligencia debida tratando de hacer funcionar un depurador, y me sorprende que ninguno de ellos haya funcionado. ¿Alguien sabe de una manera simple y directa de depurar juegos de Game Boy usando técnicas de depuración estándar? Me interesa sobre todo poder poner en la memoria puntos de interrupción de escritura (para ver qué rutina está destruyendo ciertas partes de la memoria). Realmente agradecería que alguien con experiencia de primera mano al hacer esto pudiera proporcionar detalles sobre cómo hacer esto, ya que los recursos en línea sobre el tema parecen bastante limitados.