Estamos ante un cúmulo de errores casi solo comparable con el Alien Syndrome.
Empezamos con el fallo que llamo nuestra atención, un fallo que hacía que no se pudiera usar la diagonal arriba-izquierda (al hacer esto, la nave se para). El fallo es debido a la rutina de lectura de teclas.
Bueno, llamarla rutina de lectura de teclas, por llamarla de alguna forma.... no es una ofensa al MSX solamente como las rutinas de pintado en pantalla, sino una ofensa a las bases de la programación...
Lo que hacia dicha rutina era que la llamada a la rutina de teclado, se usaba la misma llamada que para leer el teclado de Spectrum, con esta llamada, se "traducía" a una llamada a la lectura de teclado de MSX, para después, leer finalmente el teclado. Resultado de esta "aberración"? A parte de hacer extremadamente lenta la lectura de las teclas, se hace que en algunas ocasiones, se realice incorrectamente, ya que se solapan lecturas.
Arreglando esto, ya hemos ganado bastante en la velocidad en el juego.
El lanzamiento de las bombas, o los disparos especiales, era un poco "extraño", ya que había que dejar pulsado el disparo, lo cual podía hacer que se lanzara accidentalmente, o que no se pudiera usar un disparo automático. Se cambia el uso del disparo espacial a una tecla, SHIFT para la opción de teclado.
Ya que tuve que hacer de 0 todas las rutinas de lectura de teclas, aproveche el gran espacio libre de todo lo que era superfluo para meter rutinas para leer Cursores y Joystick al seleccionar estas opciones en el menú y de paso, cambio los textos en el propio menú (Sinclair y Kempston) principal para reflejarlo. (Antes en el menú salían las opciones de Spectrum, y se seleccionaban, no funcionaban los controles).
Respecto a tema textos erróneos, modifico también otros textos, como PRESS BREAK TO EXIT! (Que alguien me diga dónde tiene el MSX la tecla BREAK), y cambiar la rutina que lee la tecla para salir (ahora es ESC).
Siguiendo con el tema de controles, he arreglado también la introducción de los password, ahora se pueden usar. Antes directamente no funcionaba esta rutina (por el mismo motivo de la lectura del teclado. También arreglado los "extraños controles" en la introducción de los High Scores. No era para nada intuitivo, ahora creo que es más intuitivo (en vez de usar izquierda y derecha para mover las letras o números seleccionados, se usa el arriba y abajo).
Resolviendo también unos problemas en las llamadas a las interrupciones, conseguimos que el juego vaya bastante más fluido y sin tocar los accesos al VDP.
Hablando de los accesos al VDP, se parchea tambien la forma de acceder al VDP, se hacen unas lecturas del puerto 99h que no son necesarias para posicionar el VDP en la direccion a copiar.
Un error con el marcador izquierdo, hacia que salieran cosas extrañas de vez en cuando. También al empezar una partida, después de jugar una anterior, la puntuación en vez de ser la de 000000, era la anterior. Se resetea ahora la puntuación al salir al menú, y se arregla la función corrupta del marcador.
Por último....un arreglo visual... Este juego no tiene presentación como tal. Añadida la presentación de Spectrum en las cargas.
Creo que me queda alguna cosa más, pero bueno.... básicamente ya os podéis hacer una idea...
Disfrutarlo!
Los controles quedan de la siguiente manera:
Teclado: QAOP, Disparo SPACE, Disparo Especial SHIFT.
Cursores: Cursores, Disparo M, Disparo Especial N.
Pausa H, Salir ESC.
PASSWORDS:
THESTART
EYEPLANT
WHATWALL
GOODNITE
SKULLDUG
BIGMOUTH
CREEPISH
FINALFXS
P.D: Se ha arreglado el CAS para que no dé problemas en algún emulador. También se ha modificado para que funcione en los MSX1. Muchas gracias por los mails y comentarios avisándome.