Pues he hecho hoy un poco de optimización para velocidad, y algo sí que ha mejorado el tema, la verdad.
En el original, teníamos que:
Pues al final sí que he hecho algo más... Os dejo una mini-demo técnica a la que le falta mucha optimización:
mini-demo malévola.
Moviendo arriba/abajo el cursor cambiaréis el número. Os adelanto los resultados para MSX1 a 50 Hz:
De uno a tres: funciona a 50 Hz
De cuatro a seis: funciona a 25 Hz
De seis a nueve: 12,5 Hz
En cualquier caso, no funciona demasiado bien a partir de 7/8, debido a que no se ha incluido el NOP adicional para los OUTI fuera de V-blank. Además, el código no está optimizado en absoluto, va todo muy a saco.
Y con la nueva versión,
mini-demo v4 malévola, los resultados para MSX1 a 50 Hz:
De uno a cuatro: funciona a 50 FPS
De cuatro a nueve: funciona a 25 FPS
De diez a trece/catorce: funciona a 12,5 FPS
Eso sí, ahora no creo que quede mucho ciclo por rascar
He hecho cosas muy malévolas, pero creo que algo he aprendido en cuanto a optimización de velocidad