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!!!



lunes, 12 de abril de 2021

Nuevo parcheo: Vampire's Empire

Nuevo juego que no se podía completar totalmente.
Supongo que por casualidad.... Conversión de Xortrapa. Ejem...
Primera cosa a parchear, añadir la opción de cursores al menú. A parte de lo obvio, el control, cambiado el texto del menú también.
El error principal por el que nos pusimos con este juego, es un error al comenzar la fase 3. El personaje al iniciar la fase, cae rodando y se queda así sin poder hacer nada. Después de mirar el problema que podía haber, y comprobando con la versión de Spectrum, veo que las dos cargas (Spectrum y MSX) no se corresponden.
Probamos a cambiar los datos cargados por la versión de Spectrum (en este juego son sólo datos), y parece que funciona.
Lo mismo con la fase 4 también.
El final, como no, nadie ha podido llegar para comprobar si estaba bien o no, y contiene errores.
Quedan algunos "restos" del código original de Spectrum que hay que parchear. (Los típicos OUT(FEh) y algún HALT que haría que se colgara en esa parte al tener las interrupciones desactivadas).
También hay restos de datos inútiles al final de la carga, también eliminados.
Como la fase final sí que tiene algo de código y no se molestaron de comprobarlo, faltan las rutinas que pasan de la pantalla "virtual" de Spectrum en memoria, al VDP del MSX. Me aprovecho de la rutina de las fases anteriores para realizarlo.
También me comenta Araubi que es un lio para cambiar los objetos seleccionados. Ya que hay que pulsar ABAJO + DISPARO, pero hay como un delay que en ocasiones se hace eterno. Arreglado para que sea casi instantáneo. Ahora es algo más jugable.
Añadida también una opción/cheat que hay en Spectrum para pasar de fases. En MSX mapeado a las teclas CTRL+STOP.
Agradecer nuevamente, como no, al genial Araubi por el curro probando las distintas versiones del parche.


CAS

TSX

domingo, 11 de abril de 2021

Nuevo parcheo: Time Bomb (Actualizado)

Después de un tiempo sin ningún parche nuevo, subo este que, se convertió en una "obra de ingeniería" e investigación, ya que falta bastante parte del juego.

Todo empezó, como muchos otros, remitido por el genial Araubi, por un fallo en una pantalla que no se podia acabar: La pantalla "THE HOUSEQUAKE".

Esto en la version DSK, ya que la version en cassette, se estropeaba mucho antes.

Revisando estos fallos, me encuentro con que en la version DSK, esta pantalla están los datos corruptos. Gracias a tener la version en cassette, y que en ella esa pantalla está ok, consigo arreglarlo.

Al solucionar el fallo, nos dimos cuenta (sobre todo Araubi, que como tantas veces, ha sido el que se ha tenido que probar todos los fixes que he ido haciendo....), que no solo era un fallo puntual de esa pantalla, sino que había más.

Lo primero que hay que comentar, es que se trata, de las que podríamos decir, dos versiones distintas del mismo juego. Posiblemente dos versiones inacabadas de este juego. La versión lanzada en cassette, menos avanzada, y la versión DSK algo más avanzada, pero con falta de varias pantallas, como podremos ver.

El siguiente fallo, es una pantalla posterior: "JUMP THE SKY".

En esta pantalla, hay una bomba que debemos desactivar a la que no podemos llegar, ya que la liana que nos tiene que llevar a ella, no la podemos coger. Arreglado ampliando un poco la longitud de dicha liana.

Para poder salir de esta misma pantalla, tampoco podemos hacerlo, ya que en al salir por arriba, saltando, no hay posibilidad de "agarrarnos" a nada en la pantalla siguiente, y volvemos a caer a la misma pantalla en la que salimos. Arreglado añadiendo algún item en la pantalla "ALMOST HALFWAY".

En esta última pantalla, hay más fallos, ya que hay partes de la pantalla inacabadas también. Cierro la pantalla por donde pensamos que debería ir la salida (a la derecha).

Como en esa posición, no hay una pantalla definida, añadimos una nueva.

El motivo de añadir esa pantalla de transición, es unir con otra pantalla que si que existe en el DSK, que es la pantalla siguiente.

No obstante, esa pantalla, no está libre de fallos, y tiene algún error. La pantalla en cuestión es: "DB! IS IT".

Arreglados dichos fallos, pero nos encontramos con otro problema... el juego no tiene ningún final. Metemos un pequeño código para que por fin, se pueda acabar el juego. (No esperéis un final apoteósico, claro...)

Por último, y comprobando que se puede por fin acabar, arreglo el típico fallo del PSG, y borro en el menú la opción de escoger Música, ya que no hay música añadida en el juego.

Con todo esto, os dejo el DSK, en el que ya se puede acabar el juego finalmente. No será un 100% como querían los autores, pero algo es algo. 


Actualización: Incluida versión ROM, facilitada por JAM. Muchas gracias por el aporte!!!!


DSK

ROM