30 de diciembre de 2019

Conversión MSX GAC - Guerra de las Vajillas

Seguimos con otra conversión de otro juego de aventuras conversacionales, realizadas con el editor de aventuras GAC.
Como os comenté anteriormente, tengo hechas todas las conversiones de estas aventuras a MSX, e iré “liberandolas” poco a poco.
En este tiempo, desde que subí la de Legend, no se ha puesto en contacto conmigo nadie para comentarme sobre los derechos de estas aventuras, por lo que entiendo que no tienen problema para subirlas. Si alguien tiene los derechos, y quieren que se quiten, solo tienen que ponerse en contacto conmigo en los comentarios.
Esta fue la aventura "precursora" que hizo que me pusiera a hacer estas conversiones. De hecho, fue la primera en tener acabada.

Os pego aqui los comentarios que puse en la anterior aventura de Legend, para que sepais sobre la conversión:
“ He realizado una conversión "universal", con lo que podría realizarse para cualquier aventura realizada con este editor.
El problema radica en los derechos de autor de cada una de estas aventuras. Las más conocidas, estaban realizadas por Dinamic antes de crear AD Aventuras. Espero que desde aquí, les pueda llegar la noticia, y den permiso para poder dar a conocer esas aventuras en el sistema MSX.
También comento que si alguien tiene los permisos de distribución de este Legend y no quiere que se distribuya, me lo comente, y será retirado.
Otros juegos que usaron este editor, son por ejemplo: Mantis (1 y 2), Ke rulen los petas, La guerra de las vajillas, Megacorp, Carvalho, La Corona, Aureon, Objetivo Madrid 1 (Hay un 2?), El Quijote (la versión en MSX creo que es un poco distinta y realizada en Basic), y Zipi y Zape (Exactamente lo mismo que Quijote, y además tenía un fallo en MSX).
A parte de alguna aventura más del Concurso Microhobby, como Adventure, Hampa 1930 o el Oráculo.

El comienzo de esta realización empezó por un blog que leí hace tiempo comentando que el juego Mantis 1 en MSX, estaba realizado gracias a una especie de emulación de la BIOS del spectrum, parcheando ciertos aspectos especiales del sistema, como la lectura del teclado, paso de imágenes a pantalla, etc...
Comencé por mirar con detalle como se realizaba esto.
La idea era muy buena, y decidí empezar por ahí. La idea también tenía sus fallos. Comenzando por el "lio" que era dicha BIOS, donde había muchas cosas mezcladas, otras sin uso, otras que si eran llamadas por el MSX, podían significar un cuelgue, y como en muchas otras conversiones, que no eran para nada "satisfactorios con la norma MSX"... Con todo esto, no funcionaba con ordenadores que no fueran MSX1.
Procedí a hacer limpieza de rutinas, cambios de OUT que no deberían estar, y mejorar alguna rutina, como la de los pasos a pantalla. También había que hacerlo un poco más "modular" para que pudiera servir para distintos juegos. Tocó saber donde comenzaba el parser, donde el juego, las direcciones que marcan por ejemplo la ubicación de las letras (cada juego puede tener las suyas propias, etc...)
He de decir que mi versión todavía usa una BIOS bastante caótica, y que tendría mucha "limpieza", pero ya no puede generar cuelgue alguno, a parte de alguna mejora, como he dicho.
También tiene alguna sorpresa oculta, como es habitual en mis "producciones" para que os podáis entretener descubriendo.... Ya que en los ROM no hay Pokes, hay que añadir lo que se puede… ”


Os pongo también el enlace a un video hecho por el genial Araubi a un comentado Walkthrough también de este juego, como hizo en su día con el Legend.





29 de diciembre de 2019

Nuevo parcheo: Saint Dragon

Un nuevo juego a añadir a la lista.
Lo tenía por aqui pendiente de subir, y ya que el error del Gemini Wing era similar, y gracias a un comentario en el blog, me lo recordó.

En este caso, no hay tantos errores como en el anterior.

En el original, al hacer ciertas pulsaciones, hace cosas que no debería. Por ejemplo:
Pulsando Q y P (arriba-derecha), lo que hace es que el dragón vaya hacia la derecha y dispare.
Pulsando P y Espacio, el dragón va hacia la derecha, pero no dispara.

Un error en la rutina de lectura de teclas, hacia que si se pulsaba una de ella, se trastocara el resto que se leian, con lo cual no coincidia con lo pulsado.
Parcheado para que se lea ahora correctamente.
De paso, he añadido también un parche para usar cursores (mucho más “MSX”)


Os dejo los fixes, tanto en formato CAS, como en el nuevo formato TSX con las cargas originales.


CAS (Cara A)
CAS (Cara A) Cursores
CAS (Cara B)

TSX (Cara A)
TSX (Cara A) Cursores
TSX (Cara B)

8 de diciembre de 2019

Nuevo parcheo: Gemini Wing (Actualizado)

Un nuevo "chivatazo" del genial Araubi.
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.