An UnDAADed game o hacker

  • DAAD fue evolucionando según se hicieron aventuras de AD. La Aventura Original, El Jabato y La Diosa de Cozumel no soportan atributos extra de objetos (solo contenedor y prenda como en PAW), mientras que el resto sí que los soporta. Esto implica un cambio en la cabecera de los ficheros DDB para hacer hueco al vector que apunta a la tabla de dichos atributos.
  • De Cozumel en adelante, los vectores de 16 bits de la cabecera son big-endian, mientras que en la Original y Jabato son little-endian. No se si se debe a un cambio en las máquinas de desarrollo (¿quiza usaban Amiga o ST al principio y PC al final?), pero desde luego el interprete de cada aventura debe conocer eso, o como UnDAAD, detectarlo, para poder ejecutar el juego.
  • El DAAD actual llega hasta los 128 condactos, pero las primeras aventuras no tienen tantos. Es más los condactos COPYFF, COPYFO, COPYOF Y COPYOO fueron movidos de sitio (y de opcode) a partir de la Aventura Espacial, probablemente para situarlos junto al nuevo condacto COPYBF y los condactos internos que no se desvelan en el manual, pero que sospecho que tienen que ver con que este tipo de condactos en realidad son casi el mismo pero pasando distintos datos. Este cambio de posición, hace que haya que detectar bien de que tipo de tabla de condactos se trata, o la decodificación sería incorrecta.
  • No es posible añadir ni un solo condacto más a DAAD, porque ya tiene 128, es decir, usa 7 bits, y el octavo bit se usa para marcar que el primer parámetro del condacto es con indirección. DAAD permite indirección solo en el primer parámetro, de la misma manera que ya adiviné en su día que podría habersele añadido a PAW (ver http://foro.caad.es/viewtopic.php?f=18&t=5449&p=66251&#p66251)
  • En general, las tres primeras aventuras están hechas con un DAAD que a nivel lenguaje es muy PAW, salvo por la indirección. Las tres últimas incorporan los nuevos condactos y atributos de objeto, consiguiendo más potencia. Sin embargo no queda claro por qué el cambio a big-endian no coincide con el cambio de versión de DAAD
  • El compilador de DAAD, cuando se le pide que comprima los textos, solamente comprime los textos de localidades, aunque la documentación dice que lo hace en todos menos las descripciones de objetos. Aunque es poco posible sacar mucho jugo a los mensajes del sistema, podría habersele sacado algo de jugo a los mensajes de usuario, y quizá el Enano Maluva podría habernos lanzado su majestuosa hacha, o su oxidada hacha, en lugar de simplemente su hacha.
  • El compilador de DAAD tiene un bug y no comprueba si puede escribir el fichero DDB. Si por lo que sea tenemos el fichero DDB abierto (yo lo tenia abierto muchas veces con un editor hexadecimal) dice que compila y genera el nuevo fichero pero no es verdad. Supongo que pasará lo mismo si se protege contra escritura.

--

--

Developing indie interactive fiction and IF engines since 1984

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Uto

Uto

48 Followers

Developing indie interactive fiction and IF engines since 1984