lunes, 1 de diciembre de 2014

TUTORIAL DE DAAD - Parte 1

INTRODUCCION

Una de las mejores cosas del manual de PAWS era que en lugar de limitarse a mostrar una referencia de todo el sistema, incluia una aventura, "El billete" a modo de tutorial, que nos guiaba paso a paso en la tarea de crear una aventura.
Vamos a seguir el mismo concepto y crear la misma aventura, pero con DAAD, en este tutorial me limitare a indicar las diferencias con el PAWS, por lo que es necesario tener a mano dicho manual  y leerlo en paralelo, asi como el propio de DAAD para referencia, pues solo haremos incapie en las partes que son diferentes.

EMPEZANDO

El archivo disponible para bajar contiene una version de DOSBOX portable, asi como un "disco duro virtual" con el DAAD ya instalado, incluyendo algunas utilidades adicionales, el editor para windows superglus y emuladores de varios sistemas.
la carpeta HDD es una suerte de "disco duro virtual", todo lo que se incluya en esta carpeta, aparecera en el disco duro C: de dosbox.
Creamos una carpeta de trabajo dentro del directorio hdd\DAAD, p.e. "pajarito" (vamos a usar ms-dos, no uses mas de 8 letras).
copiamos el archivo blank.sce dentro de esa carpeta y lo renombramos.
Ahora abrimos el programa superglus y lo editamos.



LOCALIDADES Y CONEXIONES

Vamos a crear las localidades del tutorial, en este caso estan dentro de la seccion /LTX
Cada localidad empieza por una "/" seguida del numero de localidad.
Las localidades deben ser corelativas, para que no nos de problemas de compilacion, hay que incluir todas las localidades, aunque no se usen o no tengan ninguna salida ( y lo mismo se aplica a la seccion siguiente de conexiones).
podemos copiar lo siguiente en la parte correspondiente de la pestaña TOK (estan corregidos algunso "bug" del tutorial del PAWS referente a las direcciones):

/LTX    ;Location Texts
/0
El billete

Mientras esperaba el autob\Js una r\Ffaga de viento se llev\I mi billete. \CPuede Vd.
ayudarme a encontrarlo?

/1

/2
Estoy en la parada del autob\Js en una calle de direcci\In Norte - Sur. Al Oeste queda un parque cuya verja de hierro est\F abierta

/3
La hierba sobre la cual camino est\F muy bien cuidada. Hacia el Norte
hay un c\Imodo banco y hacia el Oeste queda un estanque

/4
Estoy en un camino de grava que va de Este a Oeste, muy cercano a un c\Imodo banco.
Hacia el Sur hay un cuidado c\Gsped y hacia el Norte hay un pabell\In de musica

/5
Estoy en el pabell\In de musica. Al Sur hay un camino de grava

/6
El sol crea bellos efectos de luz en la superficie del estanque, mecida por una suave brisa. Hay un camino al Norte que termina en un lloroso sauce. Al Este queda un cuidado c\Gsped

/7
Estoy al lado de un sauce llor\In. Al Sur queda el estanque

/8
Estoy sentado en una rama del sauce, con una vision panor\Fmica del parque; lejos, al
Este, mas alla de la verja del parque, puedo ver la parada del autobus

Recordar que una linea en blanco al final, significa que añadira un retorno de carro a la descripcion.
Ahora tenemos que editar las conexiones de cada localidad, en la seccion "/LOC", ponemos una linea "/"numero_de_localidad y luego lineas con pares verbo localidad,
siguiendo el ejemplo del PAWS, seria:

/CON    ;Conexiones
/0
/1
/2
O 4
/3
N 4
O 6
NO 7
/4
N 5
E 2
S 3
SO 6
O 7
/5
S 4
SO 7
/6
N 7
NE 4
E 3
/7
ARRIBA 8
NE 5
E 4
SE 3
S 6
/8
BAJAR 7

Solo queda un detalle, vete al final del archivo y cambia el GOTO 1 por GOTO 2 (explicacion: en la tabla de respuestas se indica que en caso de estar en la localidad 0 se ejecute el proceso 6, y al final del proceso 6 se salta a la verdadera localizacion inicial, lo explicaremos con mas detalle en otro capitulo).
Tambien tenemos que modificar la linea:
        SKIP    -1      ; para indicer que hemos inicializado
por:
        SKIP    -2      ; para indicer que hemos inicializado
ya que si no el bucle que limpia las banderas no se ejecuta correctamente. (gracias a Alan_Smithee por reportarlo).

Es el momento de guardar el archivo SCE y probar todo lo que hemos hecho.
Abrimos dosbox, entramos en la carpeta del DAAD (recordad "CD DAAD") y compilamos el archivo:

DC pajarito\pajarito.sce

Si todo va bien, deberia compilar, con warnings, por culpa de los caracteres con acentos, ñ y demas, pero sin errores, si aparece algun error vigila los espacios en blanco y los saltos de linea, que dan problemas, pues solo estan permitidos en las descripciones de texto para indicar un salto de linea.
Ahora copiamos el archivo INTSD.EXE del la carpeta D5 en la carpeta de trabajo, y lanzamos la aventura:

INTSD pajarito

¡Y voila!, podemos probar la aventura y comprobar que nos podemos mover por todas las localizaciones.

OBJETOS

Los objetos se definen en dos partes, por un lado las palabras del vocabulario con las que nos vamos a referir a ellos, en la seccion /VOC sustituimos la linea

LINTER  100     noun

Por las siguientes:

ANTORC  50      noun
BOLSA   51      noun
EMPARE  52      noun
MANZAN  53      noun
BILLET  54      noun
PIEDRA  55      noun
ANORAK  56      noun

Ademas añadimos dos adjetivos a la lista:

ENCEND  100     adjective
APAGAD  101     adjective

Ahora definimos la descripcion de los objetos:

/OTX    ;Object Texts
/0
Una antorcha encendida.
/1
Una bolsa.
/2
Un emparedado.
/3
Una manzana.
/4
Un billete de autobus.
/5
Una piedra.
/6
Un anorak.
/7
Una antorcha apagada.

Ahora vamos a definir las propiedades del objeto, en la pestaña TOK al final esta la seccion /OBJ:
/OBJ    ;Objetos
;obj  starts  weight  c w  5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0    noun   adjective
;num    at
/0      _       1     _ _  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _    ANTORC ENCEND
/1      2       3     Y _  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _    BOLSA  _
/2      CARRIED 1     _ _  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _    EMPARE _
/3      CARRIED 1     _ _  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _    MANZAN _
/4      8       1     _ _  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _    BILLET _
/5      3       1     _ _  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _    PIEDRA _
/6      WORN    1     _ Y  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _    ANORAK _
/7      CARRIED 1     _ _  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _    ANTORC APAGAD

A diferencia de PAWS, se utiliza _, WORN o CARRIED para indicar objetos que aun no existen o son portados, sigue funcionando el concepto de PAW de las localidades  252,253,254, pero existen unos alias por defecto para facilitar la lectura, en el archivo symbols.sce hay definidos una serie de alias adicionales.
Los alias se pueden utilizar en varios sitios, asi por ejemplo si definiesemos al principio del archivo:

#DEFINE PARADA 3

Luego podriamos utilizarlos en las deficiones de localidad y utilizar /PARADA en lugar de /3, que hace la lectura del codigo fuente mas sencilla, en la capeta templos1 hay un ejemplo complejo de aventura que hace uso de este concepto.

El monton de "_" que hay detras de las indicaciones de contenedor y "vestible", son unos flags genericos que luego podemos utilizar para lo que queramos .
 Vamos tambien ahora a difinir una serie de palabras, pare evitar el mensaje "Aqui no hay nada de eso." cuando intentamos coger algo que aparece en la descripcion y no es un objeto.
Añadimos mas nombres en la seccion /VOC

PUERTA  57    noun
REJA    58    noun
HIERBA  59    noun
CAMINO  60    noun
BANCO   61    noun
ESTANQ  62    noun
ARBOL   63    noun
RAMA    63    noun
HOJA    63    noun 

Y volvemos a compilar y probar que todo funciona como describimos.

COMPILANDO PARA SPECTRUM

Ahora que tenemos algo medianamente jugable, vamos a ver que pasos hay que seguir para compilar la aventura en otros sistemas, empezaremos con el spectrum:
Se ha simplificado un poco el proceso, aprobechando las nuevas herramientas y los emuladores, asi que ahora el proceso consta de dos partes:

  1. Compilamos la aventura, con una diferencia, añadimos el parametro -m1
  2. llamamos al programa TOSPEC1.BAT indicando la ruta del archivo .DDB creado y se generara un archivo CINTA.TAP listo para cargar en el emulador o en el ordenador real.
Por ejemplo si mi archivo .SCE esta en C:\DAAD\pajarito\ y el proceso de compilacion ha generado un archivo llamado pajarito.ddb tengo que ejecutar la orden:

c:\DAAD> TOSPEC1.BAT pajarito\pajarito.ddb

Vamos a examinar esta "cinta" con mas calma.

  • Un cargador "basic" se encarga de cargar todo lo demas, es una pequeña modificacion del "DRS" que aparece en el disco del +3
  • Un bloque de bytes, el interprete, sacado del disco de +3 tambien.
  • Un bloque de bytes, al aventura segun sale del compilador DC.EXE
  • Un bloque de bytes, la parte grafica y los tipos de letra, se obtiene del programa DG del disco del +3, y por ahora es un bloque "vacio" necesario por culpa de los tipos de letra.

Podemos cargar la cinta en el spectrum (real o emulador) y comprobar que todo funciona.
Y hasta aqui la primera parte de este tutorial sobre el DAAD, no dudes en dejar los comentarios o sugerencias que considere oportunos.

El archivo SCE tal como quedaria tras esta parte se puede descargar de este link: https://dl.dropboxusercontent.com/u/15390320/pajarito_1.SCE

11 comentarios:

  1. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  2. Buenas :)

    Gracias por hacer este tutorial.
    Tengo una duda sobre esto:

    "2.llamamos al programa TOSPEC1.BAT indicando la ruta del archivo .DDB creado y se generara un archivo CINTA.TAP listo para cargar en el emulador o en el ordenador real."

    Tengo en mi carpeta del DAAD,los archivos Tapmaker.exe,y los otros 3 archivos TOSPEC1 que vienen tu archivo que he descargado,además de los de la aventura.
    Tecleo TOSPEC1.BAT y alguna cosa más en la ventana del Dosbox?
    Siempre me sale un mensaje de error.
    Como digo,tengo todos los archivos(DAAD,AVENTURA,TAPMAKER,TOSPEC1.BAT...)en la misma carpeta.

    el error:
    http://www.imagebam.com/image/dd4e32368201675

    Gracias

    ResponderEliminar
  3. He actualizado el archivo de la parte 0, se me olvido incluir la carpeta DJGPP dentro de la carpeta HDD.
    Descomprime esa carpeta y deberia funcionar.

    ResponderEliminar
  4. Deberías poner alguna foto de capturas de pantalla en spectrum o en su defecto emulador, a ver que tal va. Y si puedes un archivo con la rom para testearlo si no es mucha molestia.

    ResponderEliminar
  5. Yo sigo sin poder aclararme en cuanto a lo de versionar la aventura a Spectrum
    Después de escribir TOSPEC1.BAT,hay que poner algo más?
    Me sale el siguiente mensaje:

    Imposible eliminar: cinta bak
    No se encuentra el archivo cinta.tap
    Imposible eliminar cinta.tap
    TOSPEC1.TA_
    1 Archivo copiado

    Apararece el archivo cinta.tap,pero no carga nada.

    En el emulador pone:
    Bytes: ds48is.p3f
    Bytes: tospec1.tb

    La aventura en formato.ddb está sin carpeta,con el resto de los archivos del DAAD.





    ResponderEliminar
  6. VIYUELA: Ahora mismo no tiene sentido poner una foto, y esto no genera exactamente una ROM, como si fuera una consola, pero si quieres ver como seria el juego, una version acabada esta aqui:
    http://www.worldofspectrum.org/infoseek.cgi?regexp=^Pajarito+y+el+Billete%2c+El$&pub=^DRAGON+Software$

    ResponderEliminar
  7. TONI: perdpm. he aclarado el tutorial, tienes que ejecutar el archivo indicando el fichero compilado, seria:
    tospec1 archivo.ddb
    sustituyendo archivo por le nombre que tu uses.

    ResponderEliminar
  8. Gracias,Álvaro!

    Me sigue saliendo el mismo mensaje pero al menos ya me sale la cinta correctamente y puedo usarla en el emulador.

    Por curiosidad:
    Te sale algún mensaje distinto cuando funciona correctamente?

    Gracias

    ResponderEliminar
  9. Si la cinta carga correctamente en el emulador, el "programa" funciona correctamente.
    Los mensajes que te sale son normales.
    Ten en cuenta que no TOSPEC1.BAT no deja de ser un "archivo de procesamiento por lotes" para que no tengas que teclear 4 ordenes cada vez que haces la cinta.
    teclea "type tospec1.bat" y entenderas lo que hace.
    La gracia del asunto esta en el programa TAPMAKER.EXE, que he fusilado del Z88DK, y que coje un bloque de bytes y lo añade a una cinta existente.

    ResponderEliminar
  10. Gracias

    Supuestamente la forma original de pasar las aventuras a spectrum con el DAAD es más engorrosa que hacerlo con el TAPMAKER.EXE

    Deseando llegar a la parte de los gráficos.

    ResponderEliminar
  11. ¡Hola! El archivo ya no está alojado en Dropbox. ¿Podríais subirlo de nuevo? O alojarlo en GitHub o similar...

    ¡Gracias!

    ResponderEliminar