23 de junio de 2015

Nuevo parcheo: Double Dragon (Re-Re-Actualizado)

Bueno, ha llegado, el que de momento ha sido el mayor reto que me he encontrado en este empeño mío de lograr arreglar lo que algunos no hicieron en su día... (Llevamos ya unos cuantos días con ello)

Lo primero de todo, este CAS que ahora podéis "disfrutar" no habría sido posible sino fuera por las interminables veces que ha debido acabar el juego Araubi haciendo de teste y grabándome los necesarios SAVES para poder comprobar los errores que iban apareciendo.
Mención "especial" aparte a Fernando García que es el responsable de haber rehecho la fase 7 que nunca existió en MSX (por una vez ha sido bueno que la versión MSX fuera una conversión de Spectrum). Sino hubiera sido por él, igual hubiera quedado guardado en mi carpeta de "Próximos Proyectos"

Bueno, os pongo en situación de un niño que compraba el juego que te gustaba en recreativa para MSX, pensando que se podría parecer en algo... (qué ilusos éramos). Ya no nos importaban ni los gráficos (ya esperábamos que fueran los mismos de Spectrum), ni que la jugabilidad no fuera la de la máquina.... Sólo podíamos esperar que funcionara!!!!! Yo recuerdo que este juego nunca me funcionó bien. Ahora ya sé porqué....
Os comento (espero no dejarme ninguno, ya que han sido eternos) los "problemas a resolver" que nos hemos encontrado (más precisamente, se ha encontrado Araubi). Todo gracias a "los genios del Software de XORTRAPA":
1.- Como muchos otros juegos de la época, no se siguen los estándares del MSX. Lo primero es que la rutina que busca slots se pone en una parte de memoria que está ocupada en ordenadores con disquete por el MSXDOS.
2.- Algunos sabréis que sólo funcionaba en emulador con la configuración Gradiente. Esto era debido a que el juego guarda una copia del fondo en memoria. Porque no grabarla hasta la dirección FFFFh??? (para los que no lo sepan, en esta dirección es donde se controlan los cambios de slots, al grabar en esa dirección, cambia la memoria con el consiguiente cuelgue...) En el ordenador Gradiente, da la casualidad que lo que graba deja la memoria en el modo predeterminado.
3.- En los ordenadores MSX2 y superiores, incluso con estos parches, el juego no funcionaba... Uy, estos OUT(FEh) que hay aquí de la versión de Spectrum... Los quitamos? Na, no te preocupes, que no se usan para nada.... todavía... (En MSX2 se usan para cambiar los slots de memoria. Parecido a lo que ocurría al escribir en FFFFh)
4.- Una vez que se acaba la primera fase, los textos directamente no salen. La persona que hizo el port y parcheó las rutinas de escritura de textos, le pareció bien sólo hacerlo en la primera carga (supondría que las siguientes ya aprenderían solas...)
5.- La fase 6 (5B en el juego), tenía unos errores gráficos en una puerta. Pensaremos por el bien de los programadores que esta vez ha sido fallo al preservar el juego (aunque viendo el siguiente punto... como que no...)
6.- En esta misma fase hay unas animaciones, que hacen que por ejemplo cambie el color de los pebeteros del fondo. En este caso, supongo que el programador original de la versión de Spectrum, cuando hay una parte de la animación que no se ve en pantalla... porqué no simplemente no dibujar nada, cuando podemos "dibujar" en una dirección cualquiera como a partir de la 0000h (de casualidad no estropeaba nada de código ni alguna imagen de las guardadas. Al tener que cambiar las direcciones de las letras y donde guarda la imagen de fondo, esta rutina escribía lo que no debía en pantalla.
7.- La fase 7 (6 en el juego), y que estaba en la cara B de la cinta... directamente no estaba... Era un juego "tan difícil" que era imposible acabarlo.... :D Lo que había grabado, como curiosidad, era una cabecera defectuosa (llena de 00) y un bloque que era la fase 2... Como dije antes, con la ayuda de la versión de Spectrum, Fernando pudo reconstruir los 3 bloques de carga que componen esta fase.
8.- Un fallo "menor". En la pantalla de presentación había dos puntos transparentes (se ven parpadear en la carga).
9.- Podéis notar también una pequeña mejora en el movimiento de los personajes, y el scroll. La "desgana" de los programadores no daba para optimizar comandos duplicados y rutinas que sólo hacen que ralentizar el juego (igual en Spectrum era necesario para que no se volviera injugable, pero en nuestra versión le viene bien...)
Por si todo esto no fuera poco (daos cuenta que cada una de estas modificaciones hacia que hubiera que probar el juego de nuevo para ver si estaba solucionado), cada vez que se modifica alguna cosa, hay alguna otra que se puede estropear...
Como dije en alguno de los puntos, el tener que mover la zona donde guarda el fondo de pantalla sin "sprites" hay muchas rutinas que cambian las direcciones. Después, para hacer hueco a esta parte (bastante grande), la zona donde se guardan las letras, hubo que cambiarla de sitio (buscar los accesos también a estas letras desde varias rutinas y distintas cargas)

Bueno, ya no os doy más la charla con todos los problemas que nos hemos encontrado, y os dejo el CAS para que lo podáis, ahora si, disfrutar sin errores (si alguien ve algún otro que se nos ha pasado, remitírnoslo, y lo miraremos (si es con un save anterior, es de agradecer). Aunque creo que a Araubi no se le habrá pasado ni una....  :D

A ver el final.....por fin!!!!!

P.S: A todos los que lo habéis descargado, os recomendaría que lo descargarais de nuevo, ya que ahora el CAS está preparado para funcionar también con el LOADCASX. No sé si en todos los ordenadores, pero en Turbo R, parece que funciona.
Segunda Actualización: Quedaban algunos accesos directos a puertos, que daban problemas en algunos ordenadores.
Tercera Actualización: Gracias al usuario RenderEng, he actualizado el CAS con dos añadidos/mejoras hechas por él. Ha añadido el "poke universal" al cargador BASIC, y en la rutina de carga, la ha modificado para que haga la búsqueda de slot desde el 3.3 al 0, y no al revés. Por lo visto, esto mejora la compatibilidad con algunos ordenadores.
Aprovechando este nuevo parche, he localizado un fallo en la lectura del joystick. He arreglado la rutina, ya que no hacia la lectura del joystick de manera correcta (para que os hagáis idea, utilizaba el puerto de solo lectura A2h, como de escritura. En mis pruebas, de la forma "original", obviamente no lograba leer el joystick. No sé si hay a alguien que le haya funcionado en el juego original.

Double Dragon (CAS) (Re-Re-Actualizado)

23 de mayo de 2015

Nuevo parcheo: Amaurote (Actualizado)

Actualización del parche.

El parche anterior, solucionaba un problema que hacía que el robot siempre iba para abajo.
Mirando el código, el problema era que en vez de hacer un JP Z al programador se le "deslizó" un JP NZ. Con lo cual, en vez de detectar cuando se pulsaba la tecla L, detectaba que no se pulsaba.
Después, he parcheado para que se utilicen los cursores. (Algo bastante más cómodo, pero que los programadores de Spectrum no debían entender....)
También solucionaba un "error" que hacía que cuando tocábamos una abeja, corrompía todo el juego.

El caso es que no era lo único erróneo en el juego. Os detallo a continuación el resto de "mejoras":
1.- Hay un fallo en los marcadores, ya que los colores que deberían parpadear donde la bomba, cuando la cogemos, no lo hacen en la posición correcta.
2.- Cuando pedimos la Super-bomb, el paracaídas que debería aparecer, es una mezcla de dos sprites del juego, pero no lo que debería. Al relocalizar el juego, han sobrescrito éste gráfico. Reconstruido y reubicado a través de la versión de Spectrum.
3.- Al hacer la conversión a MSX han quitado una opción que sí que está en la versión "inicial", y es que se puede cambiar el color del juego con la tecla V. Añadido.
4.- Un error que además está en Spectrum (se podía utilizar como truco), era que los bordes de la zona eran equivalentes a la abeja reina. Si tirábamos una super-bomba a uno de los laterales, nos marcaba como muerta la reina... Arreglado.
5.- En ciertos momentos, la música de fondo se corta. Era a causa de los pequeños sonidos al matar a moscas, etc... He podido solucionarlo quitando esos sonidos.

Por último, he también puesto la aceleración mediante el R800 si está disponible, lo que hace el juego un poco más jugable.

Las teclas son:
Cursores
Espacio
Z       Cambio de objetivo: Abeja
X      Cambio de objetivo: Abeja Reina
C      Cambio de objetivo: Bomba
V      Cambio de color
SHIFT Abre menú

Un saludo a tod@s
FX

Nuevo parcheo: Intrépido

Nuevo parche.
Tenía pendiente colgar este parche, que hace ya un tiempo que realicé.
Gracias a un correo del señor Araubi que me informó que este juego tenía un problema al llegar a una pantalla determinada. Los gráficos se volvían corruptos.
Lo que pasaba es que el juego va mirando varias listas. Una es la lista de pantallas, para comprobar que la pantalla existe, después una lista para saber cómo es la pantalla (vamos el dibujo de la pantalla), una lista de los objetos que se pueden coger,  y por último una lista con los objetos decorativos (las conchas, peces, etc...). El problema era que en esta lista, al mirar la pantalla actual entraba en un bucle que corrompía los gráficos del juego. Como le decía a Araubi, como no sé lo que el programador quería poner en esta pantalla y dónde, pues dejé la pantalla sin nada (como es meramente decorativo, no pasa nada)
Como casi siempre, estos fallos no suelen venir solos... El juego, aunque esto funcionara no se podía acabar....
Hay que recoger 27 tesoros, y aunque cogiéramos todos, el juego seguía esperando más (no presentaba la pantalla final).
Parcheado también la rutina que detecta el número de tesoros cogidos, y listo.
De regalo, una versión con "invulnerabilidad"
Espero que os guste, yo no lo conocía, la verdad
Un saludo a tod@s
FX

Intrépido
Intrépido (Invulnerabilidad)

7 de abril de 2015

Nuevo parcheo: Amo del Mundo

Nuevo parche.
Esta vez, y leyendo un comentario nuevamente en el foro msx.org, me he puesto a probar a ver si había versiones que funcionaran de este juego, o versiones sin parchear para intentarlo.
He encontrado una versión hecha por JAM, pasada a versión ROM (mucho más comoda de utilizar, ya que no da problemas con los Disk System) y parcheada para que no pida el código inicial.
El problema, es que da un problema en algunos equipos, ya que graba en una posición de memoria "prohibida" como es la dirección FFFFh.
He parcheado el fichero y ahora funciona (o debería) en cualquier ordenador.
Espero que JAM no se moleste por publicar aquí su adaptación.
Un saludo a tod@s
FX

Amo del Mundo

4 de abril de 2015

Cotilleando el Colt36

Bueno, ante todo, ya aviso que no es que haya dejado apartado el proyecto del HOH, sino que de vez en cuando me viene bien "des-isometrizar" mi pobre cabeza.
Hace poco, y leyendo una entrevista del hermano del programador del Colt 36 y el Temptations, me acordé de cómo me gustaban estos dos juegos, y lo bien hechos que estaban, y como soy muy "cotilla", me he puesto a mirar un poco el código.
Os iré desvelando cositas de este juego, el que estoy "desensamblando" (para otro post os diré a los que no lo sepáis porqué lo pongo entre comillas)
Igual soy yo el único que no se había dado cuenta (o por lo menos no lo recuerdo), y mirar que en su día jugué muuuuucho a este juego, pero sabíais que en la pantalla inicial, se puede mover la la mosca y los ojos se mueven buscándola?
Otra cosa que me ha llamado la atención, es que aunque pone que se pulse SPACE para jugar, mira tanto el espacio, como el Joystick 1 (Con el joystick 2 debía tener algún problema el programador....)  ;)
Para otro día ya os voy enseñando más cosas
(Espero que el programador no se moleste por cotillear)

6 de febrero de 2015

Nuevo parcheo: Thing Bounces Back

Pues nuevamente, por petición de un usuario de MSX, Jose Manuel, os cuelgo el parche para poder utilizar cursores en este juego. En esta ocasión, una vez más, el juego no implemente ningún tipo de redefinición de teclado. Como le comentaba a este usuario por mail, lo jugué muchas veces en su día y no recordaba que no se usaban los cursores y se utilizaban esas "teclas raras"

Advierto que el juego sigue siendo extremadamente complicado (o caótico, no sé como definirlo...)
Los cambios han quedado así:

Izquierda - Cursor izquierda
Derecha - Cursor derecha
Abajo - Cursor abajo
Arriba - Cursor arriba
Disparo - Espacio, 0
Pausa - H
Salir - Q

En esta ocasión no he mirado mucho el juego y he ido un poco "directo" (la costumbre puede ser que vaya más directo a encontrar las posiciones). Con lo cual no he mirado si hay algún truco "oculto" por ahí.

También comentar, que a parte de modificar las rutinas, tiene una rutina de chequeo (tipo CRC) de los ficheros, con lo cual he tenido que parchear también el bloque para que no se quedara colgada la carga.

Parche Thing Bounces Back

5 de enero de 2015

HOH MSX2

Esto es lo que tengo encargado a los Reyes....



Espero que me lo acaben trayendo. ;)
Alguien más se lo ha pedido?????
Proximamente......