jueves, 25 de mayo de 2017

Nuevo Parcheo: Triple Commando (Baooum)

Agradecer como otras tantas ocasiones a Araubi por su labor de chequeo del juego. Sin él no habría llegado a realizar este parcheo. Una vez más gracias, los "genios de XORTRAPA", en esta ocasión con una producción propia....

He de decir que sigue habiendo errores, que o no se han parcheado, pensando que sería imposible acabarlo de hacerlo (por ejemplo, si se mejorara el sistema de detección de choques o de la bajada de vidas, no daría con 10 "vidas"). Otras como el "extraño" funcionamiento del marcador (hay cosas que, o no se usan, o no se nos descuentan directamente), es algo que ya pasa con el resto de versiones también. Puede que se me olvide algún "error" más, pero si veis algo, comentarme y lo hablamos...

Bueno, empiezo con todos los problemas solucionados:
1.- Para poder empezar a chequear todo el juego, tuve que ponerme con un error bastante común para acelerar los juegos en la época, aunque las instrucciones del VDP lo especifican, por ahorrar instrucciones y velocidad, se prescindía en ocasiones de las esperas entre los accesos a éste. En ocasiones, como ésta, inexplicablemente no ocurría nada. Arreglado para "no forzar".
2.- Mismos problemas que muchos juegos conversión de Spectrum, en Spectrum la dirección FFFFh es una dirección "normal" para él. En MSX, como sabéis se utiliza para cambio de slots, con lo cual, si se escribe en ella, cuelgue casi seguro (en MSX2 y adelante, normalmente). Sólo he podido parchear, haciendo que no escriba en ella, con lo cual sale un cuadrado negro abajo a la izquierda (falta ese tile). He probado a ubicar en otra parte de memoria el buffer de pantalla, pero no lo he conseguido bien (gráficos corruptos). El juego creo que no pierde más de lo que es el propio juego... jejejeje
3.- Situación idéntica al Double Dragon y Alien Syndrome con los puertos del ordenador. Dejaron OUT(FEh) usados para leer el teclado y para modificar cosas como los colores de borde pantalla desperdigados por el código. Esto producía cuelgues varios, sobre todo en ordenadores MSX2 o superiores.
4.- Cambiado el texto del menú principal al escoger personaje, en vez de Teclado 2, ahora pone Cursores (en realidad es lo que se usa)
5.- Eliminado un pixel que salía en la presentación, aparentemente se les coló.
6.- Y ya llegamos al mayor parcheo que tenía el juego. En este juego en MSX el mapa es distinto, como se comentó, hay dos pantallas que no están. No es que no estén, concretamente, si "llegamos" a una de ellas, se nos mostraría el final. En concreto es la de la parte baja del mapa a la derecha.
Si no recuerdo mal, en el juego "original", lo que ocurría es que se quedaba colgado.
Se ha parcheado esto, y ahora muestra un texto de final.
En la cara B del juego, hay una carga que no se ha usado, ya que está hecha a medias.
Como igual recordáis este juego iba a ser originariamente el Baooum, y después se cambió por Triple Commando, pues lo que hay en la cara B no es más que lo que hubiera sido el final de dicho juego.
Es un texto diferente al que hay tanto en la versión MSX, como en la versión Spectrum, y lo que iba a ser la animación final del Spectrum.
He tenido que reconstruir toda la rutina para mostrar la animación, ya que en MSX no estaba (además faltaba parte de ella), ayudándome de la versión Spectrum.
Aprovechando que tenía la versión Spectrum también, he hecho otro CAS con el texto de dicha versión.
Quedan entonces 3 versiones del CAS, al precio de 1:

BAOOUM            Animación, con texto desechado
SPECTRUM         Animación, con texto Spectrum
TRIPLE-TEXTO  Sólo texto, versión MSX

Creo que no me dejo nada.
Espero que las "disfrutéis" y os animo a acabarlo para ver los 3 finales.

BAOOUM
SPECTRUM
TRIPLE-TEXTO

domingo, 12 de marzo de 2017

Nuevo Parcheo: Milk Race

Este nuevo parcheo ha sido un poco más fácil.
También requerido por Araubi, que se ha dado cuenta del fallo, y me ha podido enviar un STA del juego antes de colgarse.

Lo que ocurría es que al llegar cierto momento del juego, se colgaba.
Revisando el código, me dí cuenta que el juego se quedaba parado en unos HALT por algún motivo. (Lo normal es que esto ocurra cuando están las interrupciones deshabilitadas, pero en esta ocasión ocurre con ellas habilitadas también).
Al perder el juego y mostrar el mensaje de GAME OVER también ocurría.
He parcheado para eliminar estos HALT conflictivos.
Las rutinas que controlan los slots no cumplen todos los requisitos de compatibilidad, pero por lo menos el juego se puede acabar en un MSX1.

Milk Race

Nuevo Parcheo: Mortadelo y Filemón

Bueno, otra "obra titánica" de la ingeniería, y una vez más gracias a los "genios de XORTRAPA" como dije con el Alien Syndrome.

También de nuevo, como con el Double Dragon y el Alien Syndrome, este CAS que ahora podéis "disfrutar" no habría sido posible sino fuera por las pruebas que Araubi ha realizado.

Bueno, empiezo con todos los problemas:
1.- Comienzo por lo que llevó a Araubi a ponerse en contacto conmigo y que nos dio algún que otro dolor de cabeza. El juego, una vez se llega a la Guardería, se corrompían los gráficos y después el juego iba mal completamente. El problema era que accedía a una posición de memoria "complicada" como es FFF0h hasta FFFFh, pero no contentos con ello, se olvidaron de poner aquí lo que debería ir, que eran las posiciones de los niños espectadores. Por lo tanto, el juego lee posiciones "falsas" y coloca a los niños fuera de la pantalla, produciendo los errores que después quedan en la VRAM. He cogido las posiciones "correctas" de la versión Spectrum y relocalizados los bytes que controlan las posiciones de los niños en otra parte de la memoria.
2.- Situación idéntica al Double Dragon y al Alien Syndrome con los puertos del ordenador. Dejaron OUT (FEh) usados para leer el teclado. Esto producía cuelgues varios, sobre todo en ordenadores MSX2 o superiores.
3.- Esta vez se han lucido todavía más, y a parte de los OUT(FEh), han dejado multitud de IN a,(FEh) que se usaban para detectar pulsaciones de teclas, etc... al dejarlos, en ciertas ocasiones, provocan bucles infinitos. Borrados todos (muchos).
4.- Algún acceso a la VRAM, no cumplía los requisitos de dejar ciclos de Z80 entre los accesos al VDP.
5.- Las listas de objetos (como todas las variables del juego) solapan parte del código. En concreto la parte del menú principal (por eso no se puede volver al menú principal al perder las vidas). Reubicado a una zona "no peligrosa", ya que provocaba errores como problemas con los disfraces.
6.- Modificados los valores para las listas de objetos. Aunque el espacio de las listas de objetos eran de 6 artículos, el juego sólo permitía 3. Cambiado a 6 artículos.
7.- El mapa de los alcantarillados estaba mal y causaba que en ciertas circunstancias se quedara en un bucle infinito. Cogido el mapa de la versión de Spectrum.
8.- Modificados algunos puntos en la presentación que se mostraban transparentes, cuando deberían ser negros.
9.- Cambiados varios textos erróneos, como JOISTICK.
10.- Cambiado el mensaje al perder las vidas de (Y/N) a (S/N) y cambiadas las teclas.
11.- Después de escoger N en este mensaje final, saltaba a una dirección errónea que provocaba un cuelgue o algo inesperado. La solución, ya que no se puede volver al menú principal sin reubicar todas las variables, se queda en un bucle infinito.
12.- Cambiado el texto "5nchufe" por "5 enchufe". Este es un error que también está en la versión Spectrum.
13.- Añadida versión de CAS para controlar con cursores.

Los controles, a parte de los cursores o QAOP y espacio son:
D:   Lista de disfraces
T:    Lista de herramientas
E:    Lista de "otros"

Revisando el código, también me he encontrado con varias teclas a las que no se hace mención en las instrucciones:
K    Activa o desactiva un truco. Con el espacio nos permite matar a las ratas en las alcantarillas.
I      Activa o desactiva los mensaje de Ibañez.

Mortadelo y Filemon (Cursores)

Mortadelo y Filemon (QAOP)