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

miércoles, 2 de octubre de 2019

Nuevo Parcheo: Emilio Butragueño II - Entrenamiento

Comienzo unos parches para juegos de Fútbol con este Emilio Butragueño II, en la parte Entrenamiento.
No sé como hasta que se ha dado cuenta Araubi, como no, nadie se había dado cuenta de estos errores. Supongo que no nos dio nunca por jugar tanto a estas pruebas...

Aunque es el último que he parcheado, es el que más cosas tiene a parchear, y mas "dolores de cabeza" me ha dado.

1.- Comienzan los problemas, por unos cambios que le han hecho a esta versión MSX en la "gestión del tiempo" podríamos decir.
En las fases llamadas "Habilidad" y "Campo", hay un problema, ya que el tiempo baja a una velocidad endiablada, lo cual hace que, o bien no podamos pasar estas fases, o no nos deje tiempo para las posteriores.
Yo creo que más bien por un tema de acelerar algo el bucle del juego, lo que han hecho es sustituir unos HALT en el bucle de juego, por unas llamadas a la rutina de interrupción.
Que hace esto? Que en vez de hacer esperas en dicho bucle, lo que hace es llamar en repetidas ocasiones durante este bucle a la rutina que hace que baje el tiempo. Problemas? Que en vez de bajar el tiempo como debe, lo hace dos o 3 veces más rápido.
Arreglo? Fácil en esta ocasión, sustituir los saltos a la interrupción por los HALT que debería haber.
2.- También en distintas fases, no se refresca la pantalla al refrescarnos o descansar, con lo cual podemos beber lo que queramos, y no queda reflejado en el marcador, hasta que salimos al juego normal de nuevo. Al hacer estas pausas, las interrupciones quedan deshabilitadas, y por lo tanto no hace las llamadas a la rutina de repintado de pantalla. Activamos las interrupciones para que se haga el repintado.
Con esto, la fase de Habilidad queda arreglada totalmente.

En la de campo ya es otra cosa, ya que a parte de ese problema, tenia unos cuantos más.
3.- Uno de ellos, el texto al descansar, sale movido a la derecha, y borra un carácter del marcador. Arreglado moviendo el texto un carácter a la izquierda.

4.- Si logramos llegar al final de esta fase, tenemos que marcar un gol a un portero, lo cual es imposible, ya que siempre nos marca como fallido. El problema general de aquí es de la rutina que detecta la pelota y que mueve el personaje. He podido después de muchas pruebas aquí, haciendo que el personaje se mueva un poco más rápido, y que así, la pelota pueda coger más impulso para llegar hasta la portería. Sino, siempre se quedaba sin llegar a ella, y siempre fallo. Incluso de esta forma, hay ocasiones que el "sprite" de la pelota no llega a la portería, aunque nos marca el gol si iba a en dirección a la portería. Es lo máximo que he podido arreglar sin tener que modificar toda la rutina.

5.- Si somos lo suficientemente buenos para pasar la fase anterior, vamos a una prueba en la que tenemos que hacer tiros a unos neumáticos, que tenemos que dejar girados. Cómo hacerlo, dándoles justo en el centro, logramos nuestro objetivo, y quedan girados.... al menos en teoría. El punto de detección para ver si queda girado, estaba movido muchísimo a la derecha y abajo. Me planteé primero mover el punto de detección de los neumáticos, problema? Este mismo punto, se usa para redibujar los neumáticos en pantalla, y entonces aparecen movidos cuando los tocamos. Buscando, buscando, pude encontrar la rutina que se encarga de detectar esa posición, y con la inestimable ayuda de Araubi una vez más, logramos ajustarlos lo más que hemos podido.

P.D: Hay una rutina en las fases de Habilidad y Campo que da unos cheats para poder pasar de fase directamente, aunque no hemos podido probar si están activas, ya que parece que no debería funcionar. Para usar dicho CHEAT, por si alguien lo puede probar en real, es pulsar las teclas LUNES a la vez y después dejar de pulsar la tecla E (No sé si será posible el hacerlo tan rápido como requiere la rutina, ya que tiene que primero estar pulsada, pero después detecta que no este pulsada). Igual hay que parchear esa rutina posteriormente.

Subo la versión CAS y TSX.

CAS
TSX