Las cosas más tontas son las más difíciles de corregir…

Ya he encontrado el error que mostraba sprites formados por píxeles aleatorios (como los que se ven en las capturas de ayer). Después de volverme loco revisando las interrupciones, intentando hacerme una idea del código fuente del juego a corregir mediante ingeniería inversa, comparar logs de emulación con otro emulador, etc. el fallo estaba en una máscara mal aplicada para leer de la memoria del VDP. En lugar de aplicar un 0x3FFF para devolver una dirección de entre las 65536 aplicaba un 0x3F y claro, me devolvía una entre 64… Lo que no entiendo es que no hiciera cascar el juego por todos lados…

Bueno, aparte de eso me he puesto a implementar los “efectos especiales” relativos a sprites, esto es, zooms, desplazamientos y caracteres dobles.

Aquí os paso unas capturas de mi emulador mostrando la demo “Interactive Sprite Test”.