lunes, 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.





domingo, 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)

domingo, 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.


miércoles, 20 de noviembre de 2019

Nuevo parcheo: Sirwood

Sigo con un parcheo que teniamos en el “tintero”.
Lo había dejado por aquí aparcado, no sé muy bien porque…
El fallo de este juego es que aunque podemos coger unas pócimas en el juego, hasta 6 concretamente, no se mostraban en pantalla mas de 3, y esto ocurre en todas las fases de la segunda en adelante.
El mayor problema que me encontré fue ver que se trataba de un fallo “tonto”.
Cuando me pude dar cuenta que el fallo venía de los colores que se mostraban en pantalla, el parcheo fue facil.
El caso es que en las “ventanas” de la izquierda (las primeras 3 pociones), tienen colores para mostrarse (azul claro en la parte de arriba, rojo en la parte de abajo).
En las de la derecha (pociones 4, 5 y 6)… el color era negro sobre negro arriba y abajo.

Parcheo los colores que se copian al pintar el marcador, y listo.


Nuevo parcheo: Bouken Roman

Esta vez un parche “sencillo” a petición de DrWh0
El problema era que sonaba raro el sonido, sobre todo al iniciar la rom desde un menu o similar.
El problema? No inicia los registros del PSG, con lo cual, el sonido dependía, o de que el menu iniciara estos registros antes de llamar al juego, o el sonido sonaba mal.
He añadido una llamada inicial a la BIOS, para inicializar estos registros antes de iniciar la ROM.
La ROM, lleva un parche del propio DrWh0 que soluciona también un error por temas de slots en algunos MSX.


Nuevo parcheo: Bastard

Un nuevo parcheo a añadir.
En esta ocasión, se ha puesto en contacto conmigo Vorvek, a través de Araubi para conseguir dumpear este juego.
El problema, en un primer momento, fue sacar un dump del disco.
Como le había pasado anteriormente a él, no funcionaba, pero mirando la ejecución del disco, era a causa de una protección.
Saltada esa protección el juego ya arrancaba, y se podía jugar.
(Esto anterior, ya se podía hacer con los DSK que se pueden encontrar por internet).
El problema seguía siendo que era imposible alcanzar una zona de tiendas, sin la cual, no podemos llegar a acabar el juego.
Miro por si la protección hace que, en algún momento si se ha saltado la protección anterior, el juego no se pueda acabar. Pero no encuentro evidencias de ello, y además mirando donde, según los mapas, debería poderse pasar de pantalla hacia arriba, pero no deja, parece más un bug, que un protección que haga ese bug.
Lo parcheo, y Araubi consigue completar el juego, por lo cual parece que es un fallo como tal.
Por comprobar, remito el disco original también a Araubi para que se lo pueda intentar acabar en real, y el fallo sigue sin parchear la protección, por lo cual, es un bug en todo regla.
Pues nada, aunque haya mucha gente que haya pensado que se lo ha podido acabar en su época… pues parece que hasta ahora no se ha podido hacer.
Os incluyo también un enlace a su canal de Youtube, por si queréis visitarlo.
Espero lo disfrutéis.

lunes, 7 de octubre de 2019

Nuevo Parcheo: Michel Futbol Master

Seguimos con el otro juego de fútbol que había parcheado.
Estos son unos errores más visuales que otra cosa.
Agradecer (una vez más) a Araubi por haberlos detectado y ayudarme con sus testeos a encontrar los fallos y arreglarlos.

MICHEL (CARA A):
En ciertos momentos del juego, el juego corrompe la pantalla de juego, y en ocasiones, puede colgarlo.
Esto es una circunstancia que ocurre solo en emuladores, ya que hay partes de memoria que tienen un valor incorrecto al esperado.
Esto ocurre porque el juego no inicializa la memoria de variables al comenzar.
Arreglado inicializando esta zona de memoria.

SKILLS (CARA B):
Unos gráficos salían corruptos en la prueba de los penaltis. Problemas? Dos, a falta de uno.
Uno de ellos, en el cargador BASIC, un CLEAR, hacía que la posición de la pila, coincidiese con las direcciones donde se cargaban unos frames del portero. Resultado? Partes corruptas.
Al arreglar este fallo, sigue teniendo partes corruptas. Sospechosamente, una de las cargas acaba en un dirección, y hay un "salto" hasta la direccion donde se sitúan los datos de la siguiente carga. Comprobación con la versión Spectrum, y... como no, otro juego al que le falta una parte. Añadiendo estos bytes, arreglando cabecera y el programa cargador en memoria, listo, ya no hay fallo.

Subo la versión CAS y TSX.

CAS CARA A
CAS CARA B

TSX CARA A
TSX CARA B