Esto es así por la disposición 'especial' del modo Radastan. Es comprensible, pero al tener tan baja resolución horizontal (128px) el que el personaje se mueva de 2 en 2 pixeles se me antojaba un poco brusco. Así que he desempolvado algunos libros de asm que tengo por casa y he empezado una librería para dibujar sprites al pixel en modo Radastan.
He empezado copiando lo que encontré por ahí y le he añadido 2 funciones (en asm, pero embebido en el C de z88dk):
- put_sprite_x8: que recibe un *sprite de 8x8 pixels y lo posiciona en x,y.
- get_sprite_x8: que guarda en un *sprite de 8x8 el contenido de la pantalla desde las coordenadas x, y.
He intentado que vayan lo más rápido posible, pero aunque me he estrujado la media neurona, no termino de estar satisfecho con la velocidad. Soy consciente de que siempre puedo poner el modo turbo de 7mhz, pero antes quería pedir ayuda por aquí, que seguro hay mentes preclaras y veteranas en ASM para iluminar mi camino.
El código y un fichero tap de demostración lo he puesto en github: https://github.com/frjanibo/zumito
PD: en la demo, las teclas son QAOP
Enlace directo al tap: https://github.com/frjanibo/zumito/raw/master/test.tap
Os agradezco de antemano los consejos y fixeos!
