21 de febrero de 2016

Nuevo Parcheo: Alien Syndrome

Bueno, como ocurrió en su día con el Double Dragon, he logrado hacer funcionar otra "obra titánica" de la ingeniería, y una vez más gracias a los "genios de XORTRAPA"

Como en la ocasión del Double Dragon, este CAS que ahora podéis "disfrutar" no habría sido posible sino fuera por incansables ocasiones que Araubi ha tenido que probar mis cambios para ver si funcionaban, y grabándome los necesarios SAVES para poder comprobar los errores que iban apareciendo.

Bueno, empiezo con todos los problemas:
1.- Empiezo con una tontería, pero que demuestra que hacían las cosas como se hacían. En el menú principal, las letras de XORTRAPA se concibieron para que fueran multicolores, pero las rutinas tenían un fallo que hacía que sólo se mostraran en un color, como así quedo. "¿Miramos a ver porqué no salen como las pusimos? No te preocupes, para otra ocasión" debieron pensar.
2.- Mismos problemas que el Double Dragon con el tema de memoria. Al no seguir los estándares de MSX, las rutinas que cargan el juego se ponen en zona de MSXDOS y funcionaba sólo en ciertos ordenadores, gracias a que utilizaban la memoria desde las direcciones FE00h hasta FFFFh lo que provoca cuelgues en la mayoría de ordenadores (la dirección gestiona el cambio de los slots)
3.- Situación idéntica al Double Dragon 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.- Otra situación parecida es cambiar un acceso a los puertos FEh por accesos a puertos C5h. No es usado por nada especial (que yo sepa), pero... no sería más fácil quitarlos directamente?
5.- Relacionado con lo mismo (las rutinas que sustituyeron por los puertos C5h, en realidad son las que se usaban para leer el teclado). Añadida una rutina para leer el teclado con los puertos correspondientes al MSX.
6.- Si os fijais en el juego "original", no hay más teclas que las que se usan para controlar el personaje. Ni pausa, ni salida a menú. Añadidas.
7.- De paso, cambiadas las teclas predeterminadas a cursores y espacio. Y arreglado un error en la rutina de lectura de teclas de movimiento, por el cual podía ocurrir que el personaje con el joystick, hiciera que dispara el personaje que utilizara teclado.
8.- Error en la rutina que lee el Joystick. Siempre dejaba pulsado el botón de disparo en ciertas ocasiones.
9.- Error también al leer la tecla RETURN, en las cargas de cassette.
9.- Arreglado un problema con los gráficos al explotar el disparo Bomba (aparecían corruptos)
10.- Cambiada la rutina de detección de colisiones de los disparos y el límite de la pantalla. Se arregla en su mayoría el problema de que los enemigos se mueran solos al disparar (aunque como digo, en su mayoría, siguen ocurriendo cosas extrañas, aunque en menor medida, y por lo menos ahora es jugable)
11.- En el bucle principal de juego, había varias rutinas repetidas, quitadas.
12.- Las puntuaciones que añadimos, tenían algún error también. Para puntuaciones mayores de 1000, lo que suma en realidad no es la puntuación que debería.
13.- Al rescatar a más de 15 "Comrades" seguidos, la puntuación sumada sube hasta 999999 (esto por lo que he visto ya está mal programado en la versión Spectrum también). Arreglado, y al coger más de 15 sigue dando la puntuación de 8000.
14.- Modificada la rutina que muestra el final para que salga el texto. Modificados los colores de fondo de la pantalla para que se puedan leer correctamente.
15.- Al coger más de 2 "options" (como los de Nemesis), nos deja con uno. Cambiada la rutina para que nos deje con 2.
16.- Uno de los fallos más grandes que tiene el juego es un cuelgue que se producía en la fase 3. Está parcheado. Lo que ocurría es que gestionaba mal los enemigos de la fase, y escribía aleatoriamente por toda la memoria (podía corromper gráficos o código, o colgar el ordenador cambiando los slots una vez más).
17.- Y por último, he añadido una carga más, para que con un sólo CAS, se pueda rebobinar y volver a cargar la fase inicial al acabar el juego o que nos maten en otra carga.
(Creo que no me dejo nada...)

Bueno, también he activado un CHEAT que aunque estaba en el código no estaba habilitado. Sólo os digo que pulsando unas teclas a la vez en el menú principal, quedará activado.
El CHEAT nos dara "vidas infinitas" y pulsando N pasamos de fase.

Espero que encontreis el truco.

Alien Syndrome CAS