lunes, 19 de abril de 2021

Nuevo parcheo: Soviet

En unos días me he puesto un poco "las pilas" y he podido ir actualizando cosas pendientes en el blog.

Éste es uno de los últimos que hemos parcheado, y que, aunque en un principio parecía algo sencillo (algún fallo en la Cara A), se ha convertido en algo complicado, y con varios errores bastante complicados.

Comenzamos por los fallos de la Cara A solucionados:

- Después de un Game Over, la nave sale corrupta y la animación de pérdida de vida lo hace solamente en la parte baja de la animación.  Solucionado con un cambio en la "limpieza" del buffer que hace al comenzar el juego. No limpia la totalidad de un buffer.

- Por el mismo fallo, también ocurría que había momentos que las balas nos tocaban aunque no nos pasaran ni cerca. Problema de la limpieza del buffer que comenté antes. Arreglado con el mismo fix de arriba.

- Arreglados los textos al pasar de fases. El texto escribiendo el password no salía correctamente. Ponía LOADING, aunque tenemos que hacer la carga "a mano" en la cara B.

- Arreglados los borrados de pantalla al pasar de fase. Hace la llamada a una rutina que borra sólo la VRAM de MSX, pero no el buffer que mantiene en memoria, con lo cual no es borrada adecuadamente.

- Por último arregladas también las rutinas de espera de pulsación de teclas. Estaban al revés. La que espera que se pulse una tecla, lo que hacía es esperar que se dejara de pulsar una tecla, y al revés.... Hacía extraños al esperar teclas, como al mostrar el password, por ejemplo.


En la Cara B también nos encontramos con algún fallo:

-Primero de todo, hay unas llamadas a las rutinas antiguas de sonido de Spectrum. No dan ningún fallo, pero ocupan unos ciclos de reloj de ejecución innecesarios. Quitadas dichas llamadas.

- Al pasar de la fase 2 (primera de la cara B) a la fase 3, el marco de juego y el marcador, se corrompe, y desaparece al comenzar la nueva fase. Sucedía, ya que se borraba la pantalla de una forma errónea, parecido a la cara A. Arreglado.

- Al comienzo de la fase 3, la nave sale en un sitio no correcto (esto es un fallo también de la versión de Spectrum), y como es un lugar donde no puede entrar la nave, la nave no se mueve. Cambiado el lugar de inicio de fase, y así se puede empezar sin ningún problema.

- Al comienzo de la fase 3, empezamos con 60 "hostages" a liberar, pero no hay tantos para hacerlo, con lo cual no se podría acabar la fase. Se actualiza el número a rescatar a 48, que son los que hay en la fase. (Comprobado en varias versiones de la cinta de Spectrum, parece que es un fallo que también está presente allí)

- Al hacer la carga del final, salía el texto mal (no borraba el texto anterior y salía mezclado). También similar a lo que ocurría en la cara A. Arreglada la rutina que limpia la pantalla antes del texto.

- Fallo al pasar de fase con algo de vida perdida, el marcador no se actualiza bien, y aparece a medio actualizar, y parece que solo se actualiza en la parte de abajo. Se trata, como en la cara A, un fallo al limpiar el buffer de perdida de vida.

- En la pantalla final, existe un fallo grave, que inexplicablemente en el resto de juego no ocurre. Hay tres rutinas que se encargan del scroll de pantalla, pero no se realiza correctamente, ya que no se hacen las esperas entre las llamadas al VDP (out). Al no haber mucho sitio en esas rutinas, están rehechas dos de ellas, y otra que ya existe en el juego, hago uso de ella, cambiadas las llamadas.

Con todo esto, queda un nuevo juego esta vez "terminable". Espero que lo disfrutéis!!!



3 comentarios: