Bueno, he estado a ratos programando mi CPU Chip-8. He implementado todos los opcode, montado el mainloop, etc...
He cargado bastantes ROMs, y aparentemente el emulador funciona.. lento porque no he optimizado nada. Me interesaba ver antes su fucnionamiento...
PERO
tengo un problema con la rutina de video, que creo que no acabo de programar bien. ¿Como lo he hecho?
He montado una superficie bitmap y sobre ella incializo el video al arrancar el emulador. La ram de video la seteo a 0 completamente.
Cuando empieza el programa y llega a una instrucción de pintado de sprites, la rutina lo ejecuta correctamente, pero me he encontrado con ROMs que al dibujar no borran la pantalla por su cuenta, por lo que el display muestra dibujos mezclados (por la función XOR).
Según el manual original, ESTO ES ASI; si se redibuja un mismo sprite en la misma posición SE HA DE BORRAR. De hecho testee la rutina de render con el programa de ejemplo que viene en el manual del Cosmic...
La pregunta es: independientemente de que esté o no especificado ¿debo borrar la pantalla por mi cuenta? Me refiero al doble buffer, para evitar que los sprites se solapen...? Cada 60hz?
Credo que esto puede añadir un efecto de flickering no deseado...
Si alguien me echa una mano... perfecto... cuando tenga un minuto subo pantallazo...

PD @Jepalza, programar este tipo de software es todo un vicio... más que nada por la parte de investigación acerca del hard, historia, evolución, etc...
