El blog personal de Morgul, donde escribe sobre sus aficiones, descubrimientos y actividades, compartiendo conocimientos.

Mostrando entradas con la etiqueta daad. Mostrar todas las entradas
Mostrando entradas con la etiqueta daad. Mostrar todas las entradas

1 de febrero de 2010

Mi intérprete de aventuras DAAD

Últimamente, he estado desarrollando un intérprete tipo PAW con el lenguaje de programación Python, lenguaje que además de ser muy potente, permite programar aplicaciones de cualquier complejidad en muy poco tiempo (este proyecto es una buena prueba de esta afirmación).

Mi intención es hacer este intérprete genérico, de modo que pueda extenderse fácilmente para soportar cualquier sistema tipo PAW existente, añadiendo en módulos aparte los condactos adicionales (los de The PAWS estándar ya los implementará mi intérprete) y funciones para cargar o importar las bases de datos. Y también extensible en cuanto a poder incorporarlo en un sistema de creación integrado, partiendo convenientemente en módulos para aprovechar el código de buen modo, sin necesidad de duplicarlo.

Como ya había avanzado bastante en la comprensión y aprovechamiento de las bases de datos de algunas de las primeras versiones del parser DAAD, me aventuré a probar y adaptar mi intérprete para aventuras con este sistema (sobre todo, el 'Jabato'), sin perder de vista el aspecto de facilitar la compatibilidad hacia atrás (The Quill, The PAWS, SWAN) y hacia adelante (otros sistemas tipo PAW posteriores, como NMP, SINTAC, SKC, etc.). Esto me ha permitido avanzar aún más en mi descubrimiento arqueológico de los recovecos de DAAD (y sus precursores).

Ayer mismo, me puse tan contento cuando vi que lo que tenía hecho funcionaba tan bien, y de modo tan parecido ya al mismo intérprete DAAD original de el 'Jabato' (ejecutando esta aventura), que grabé un vídeo para compartir con vosotros, y que podáis ver que esto es más que puro vaporware:



En el vídeo (sobre todo en la versión con mayor calidad, la del enlace de descarga que indico en YouTube), si se presta suficiente atención, se aprecian algunos defectos. Unos cuantos de estos los he corregido ya hoy, como:
  • Mayor velocidad de ejecución. Mi intérprete, cuando tenía la traza de banderas activada (el mostrar cómo van cambiando estas), iba bastante lento. Esto me hizo tener que enlentecer enormemente la emulación de DOSBox, para poder comparar de modo visualmente más fácil la ejecución de ambos intérpretes a la vez. Lo he solucionado haciendo que sólo se redibujen las banderas que cambien de valor o color. En comparación, ahora vuela... deshabilitando la acción de espera de los condactos PAUSE y ANYKEY, la ejecución de lo que en el vídeo dura más de un minuto, ahora tarda unos cuatro segundos, permaneciendo totalmente funcional la traza de condactos por consola y de banderas en la ventana.
  • En los créditos, cuando aparece el texto "PRESENTAN" bajo la cara de Jabato, en la versión original Jabato guiña un ojo, mientras que en mi intérprete parpadea (cierra ambos ojos). Una misma versión, con distinto efecto, del mismo problema es cuando la cara de Jabato sube a la parte superior derecha de la pantalla, una vez descrita la localidad inicial. El problema era que mi intérprete dibujaba imágenes siempre completas, sin respetar los límites de dibujado que indicaba el código de la aventura. Ahora ya respeta estos límites invisibles.
  • Otro problemilla menor (en el vídeo) era que, al borrar partes de la pantalla, a veces se borraban también zonas de la sección de impresión del estado de las banderas de mi intérprete. Esto era un problema pequeño, hasta la corrección del problema del primer punto, que lo convertía en un problema grande. Pero la solución ha sido más rápida que la de los puntos anteriores, si bien similar a la del segundo.
Eso es todo, por ahora. Aprovecho para pediros que no dudéis en compartir conmigo cualquier información técnica que tengáis de DAAD o de su precursor inmediato SWAN. Sobre todo, me encantaría conseguir la documentación de DAAD que venía con las copias del parser que se entregaron a los siete ganadores del concurso de Aventuras AD-Microhobby.

¿Te ha gustado esta entrada? Vótala en Bitacoras.com: Votar

5 de junio de 2009

Coloreando el Jabato

Hacía tiempo ya que tenía este artículo en mi lista mental de artículos por redactar, al final me decido a soltarlo para aligerar un poco mi lista mental de tareas - más grande aún que la de artículos - que deseo realizar.

Al parecer, la versión original con gráficos CGA de el 'Jabato', la aventura conversacional de Aventuras AD, sigue sin estar disponible (aunque hay posibilidades de que finalmente aparezca), como se puede comprobar en el foro de CAAD '¿varias versiones de El Jabato?'.

Sin embargo, este hecho ya no me importa del mismo modo. Esto se debe a que mis investigaciones del formato en que se almacenan las bases de datos de las aventuras hechas con el parser DAAD (las de Aventuras AD, como el 'Jabato'), conforme las he ido desarrollando, han dado más y más frutos (y cada vez, mi herramienta undaad está más y más formada, aunque de momento sea por piezas separadas).

Así que, os voy a dar una pequeña sorpresa... he llegado al punto en que soy capaz de crear mi propia versión de el Jabato con gráficos CGA, y de hecho esa tarea la tengo iniciada y perfectamente funcional.

¿Sorprendidos? Ahora pasaré a daros más detalles del logro:

He desvelado en gran medida el formato de los ficheros de gráficos CGA en las aventuras de DAAD, tanto el de pantalla inicial (la portada del juego), como los de las localidades y objetos. Lo logré investigando con bisturí en mano sobre la 'Aventura Original' de Aventuras AD que, en su versión DOS, solamente vino con gráficos CGA. Con mucha paciencia y esfuerzo, conseguí desarrollar y dejar totalmente operativo un extractor de gráficos CGA para las aventuras de DAAD (otro paso más para mi undaad).

En DAAD, los gráficos de portada de la aventura en CGA utilizan la clásica paleta con los colores: magenta, cyan, blanco y el color de fondo (normalmente, el color negro). Esto es, la paleta CGA por defecto, pero sin brillo (queda por confirmar si esto es así en todas las versiones de DAAD). El ser sin brillo, significa que los colores no son muy intensos, por lo que el blanco es más bien un tono grisáceo.

Aparentemente, para la portada no puede usarse ninguna otra de las paletas CGA. Sin embargo, y esto es algo importante puesto que parece que Aventuras AD jamás hizo uso de esta característica, puede cambiarse el color de fondo por cualquier otro de la paleta completa CGA (con o sin brillo). Como ejemplo, os mostraré una captura con mi versión CGA de portada para el 'Jabato':


Como podréis apreciar, esta imagen no tiene color negro. En su lugar, tiene un tono azul oscuro que, junto con el cyan, el magenta y el blanco (sin brillo todos), dan un resultado que habría sorprendido de haberse utilizado en su época, cuando teníamos nuestras tarjetas CGA.

Para crear esta portada, así como para el resto de imágenes que he creado para 'Jabato' en CGA, he utilizado los gráficos con mayor colorido del 'Jabato' (los gráficos de la versión de Amiga). Teniendo de antemano todas las posibles paletas CGA, y utilizando la utilidad convert, que forma parte del paquete de procesado de imágenes ImageMagick, decido y utilizo la paleta que queda estéticamente mejor para cada imagen. Luego aplico retoques manuales, por ejemplo para que la imagen muestre bien todos los detalles, o para que pueda compactarse bien (según qué tipo de imagen sea).

En DAAD, las imágenes CGA dentro del juego, aunque no pueden cambiar el color de fondo (siempre es el negro), sí se les permite elegir entre dos paletas distintas CGA con brillo: la de cyan, magenta y blanco; y la de rojo, verde y amarillo. No obstante, es el gráfico de localidad el que escoge la paleta, los gráficos de los objetos utilizarán (obviamente, sólo una paleta puede aparecer a la vez en pantalla) esta misma paleta. No es demasiado problema para que yo aproveche esta característica, como mostraré con capturas de pantalla en breve.

Por cierto, Aventuras AD sólo utilizó esta función (usar ambas paletas) para la Aventura Original, que no poseía gráficos de objetos. Bueno, sí que los tenía, pero como caracteres, no como gráficos. ¿Había comentado ya que también logré decodificar el fichero con la fuente tipográfica típica de las Aventuras de DAAD? :-D

Como paso final creativo, utilizo un par de utilidades programadas por mí, que más que formar parte de undaad, formarían parte de un freedaad u opendaad. La primera utilidad convierte una imagen (almacenada en algún formato de imagen de uso común, como BMP o PNG) a portada CGA de aventuras DAAD (tiene un formato especial). La segunda utilidad convierte un conjunto de imágenes (en formato de imagen corriente, también) a un fichero de base de datos de imágenes CGA con el formato soportado por DAAD.

Los resultados de mis esfuerzos saltan a la vista, he aquí una comparación entre la única imagen que ronda por Internet de la versión CGA del 'Jabato' original (arriba, pero ¡ojo! el colorido de esta imagen es aproximado, la captura está algo emborronada, apareciendo con más de cuatro colores) y la misma captura con mi versión CGA particular del 'Jabato' (en medio) y con la versión a todo color Amiga (abajo):


La fuente de la captura de pantalla de la versión original CGA de 'Jabato' es la siguiente URL: http://macedoniamagazine.frodrig.com/masalla/ma-jab.htm

A continuación, os mostraré para vuestro deleite un par de capturas más de mi versión CGA de 'Jabato', de las cuales la primera utiliza la paleta CGA alternativa (con rojo, amarillo y verde):


Vaya, acabo de darme cuenta que en la segunda imagen, el gráfico de localidad está corrupto por algún motivo, como se aprecia observando con detenimiento su parte derecha. Algún día lo corregiré, de momento tengo otras prioridades.

Bueno, esto es lo que tengo para enseñaros. Si queréis más, no dudéis en hacerme alguna donación a mi cuenta de Paypal, que es mi dirección de correo en Yahoo!: jmfo1982 algarroba yahoo puto es (evidentemente, es arroba en lugar de algarroba y punto en lugar de lo otro :) Prometo avanzar en mi incursión DAADera y mostraros más información ante cualquier donación recibida, en proporción a su cuantía.

¡Hasta la próxima aventura!

¿Te ha gustado esta entrada? Vótala en Bitacoras.com: Votar