Actualización 8/11/2020: aunque el contenido del artículo que sigue puede seguir siendo válido, hay muchas cosas que seguramente están ya explicadas en la documentación del paquete DAAD Ready, que se publicó más tarde, o que directamente dicho paquete haga por nosotros. Ten en cuenta que los contenidos de este artículo podrían estar obsoletos en parte.
Este documento explica como montar juegos DAAD que usen Maluva. No explica como crear los ficheros de imágenes o como usar Maluva en general porque eso ya está en la página de Github de Maluva, solo te explicará como, una vez que tengas tus imagenes hechas y Maluva insertado en tu fichero DDB, montar el sistema final para probarlo en emuladores o máquinas reales.
Lo tenéis explicado para Spectrum ESXDOS , CPC, C64 y MSX.
Al final tenéis un enlace a un fichero con los recursos y herramientas que comento.
ZX Spectrum — ESXDOS
Básicamente consiste en meter el .tap generado y los ficheros de gráficos .zxs en la misma carpeta en la tarjeta SD o CF.
Herramientas
- daadmaker ( http://www.ngpaws.com/downloads/DAAD/DRC/, asegúrate de descargar la versión más reciente)
- hdfmonkey
- ZXSpin (https://www.zophar.net/sinclair/zx-spin.html)
Recursos
- Fichero esxdos086.zip
Proceso
Para generar el TAP hace falta el programa daadmaker, que viene con el compilador DRC (uses DRC o uses DC, daadmaker te hace falta):
1) Compilar el SCE con target Spectrum
2) El fichero tospec1.ta_ lo renombramos como juego.tap
ren tospec1.ta_ juego.tap
3) Añadimos el juego.ddb con tapmaker así:
tapmaker JUEGO.DDB juego.tap 33792
4) Añadimos el tospec1.tb_
tapmaker tospec1.tb_ juego.tap 63447
Para probarlo en un emulador hay que crear una imagen de tarjeta SD, con los ficheros de ESXDOS incluidos. En mi caso uso tarjetas en formato HDF que soporta por ejemplo el emulador ZXSpin, y utilizo hdfmonkey para meter ficheros en ellas, más que nada porque como es de línea de comandos tengo hecho un .bat que lo mete todo en la tarjeta automáticamente. Parto de una tarjeta que solo tiene los ficheros de ESXDOS, de la que hago una copia y mi .bat tiene líneas como estas para meter los ficheros que hacen falta:
hdfmonkey put pruebas.hdf juego.tap juego.tap
hdfmonkey put pruebas.hdf 001.zxs 001.zxs
hdfmonkey put pruebas.hdf 002.zxs 002.zxs
Para que ESXDOS funcione en un DivMMC o DivIDE emulado, hay que meter en la tarjeta también todos los ficheros de ESXDOS (carpetas BIN, SYS, y TMP) y además decirle al emulador que utilice la ROM que corresponda al tipo de cacharro emulado (DivIDE o DivMMC).
Así vuestra tarjeta SD virtual además del .tap y los ficheros .zxs, debería tener las carpetas BIN, SYS y TMP que hay en el fichero esxdos086.zip, y además decirle al emulador que use ESXIDE.ROM (si vuestro emulador soporta DivIDE) o ESXMMC.ROM (si soporta DivMMC). En el caso de ZXSpin soporta DivIDE (que hay que activar en Tools/Options/Hardware/Peripherals, poner el ESXIDE.ROM en tools/options/hardware/rom images en el apartado “Divide Firmware” y finalmente en Tools/Options/Files/HardDisks poner el fichero HDF en el Disk 0. Tened en cuenta que si ZXSpin está abierto no podrá actualizarse el fichero HDF, por lo que tras probar lo que queráis tendréis que cerrar ZXSpin antes de compilar de nuevo.
Con Retro Virtual Machine 2 también se puede hacer, creas una maquina ZX-Uno (por ejemplo, para tener DivMMC), vais a las opciones de tarjeta SD, le dais a crear una nueva y os dará la opción de meter los ficheros de ESXDOS, hacedlo. Luego ya meter el -tap y los ZXS se puede hacer con el browser que trae el propio RVM2. RVM2 tiene un sistema de scripts que permite seguramente meter los ficheros automáticamente, pero hasta ahí no he llegado.
Herramientas para imágenes
En Spectrum casi cualquier emulador es capaz de grabar la imagen que se está viendo en el emulador en un fichero .SCR, También hay herramientas que permiten convertir imágenes, aunque debido a la limitada capacidad de color del Spectrum, restringida a recuadro de 8x8 pixeles, es difícil que una imagen no pensada para ser convertida dé buenos resultados.
Scripts
Para hacer un script que automáticamente haga la compilación y la lance en emulador…
1) Llamar a dosbox para que ejecute el DC y las acciones del tapmaker, esto normalmente lo hago creando un fichero conf de dosbox que en el apartado [autoexec] llame al DAAD y al tapmaker, y luego ejecute un “exit”. Lo llamo así:
dosbox -noconsole -conf ./dboxESX.conf
2) Hacer una copia del fichero pruebas.hdf y meter el .tap y los .zxs con el hdfmonkey
3) Mover esa copia a la carpeta de spin y arrancarlo (la primera vez habrá que seleccionar el .hdf, siguientes arranques irá a buscarlo al mismo fichero)
CPC — Disquete y M4
Básicamente consiste en generar un fichero .DSK de CPC para cargarlo en cualquier emulador o desde M4. Si se usa M4 alternativamente se pueden simplemente soltar los ficheros en una carpeta sin meterlos en un .DSK.
Al final en el DSK o carpeta debe estar el DAAD.BIN y tantos ficheros .CPC como gráficos haya.
Herramientas
- MCRF (disponible en la página de MALUVA)
- CPCDiskXP
- ConvImgCpc010.exe
Recursos
- Ficheros BLANK.GRA, INT.Z80
- Fichero CPC.DSK
Proceso
Para generar el .BIN hacen falta los ficheros BLANK.GRA, INT.Z80 y el fichero DDB
Para obtener el .DDB compilamos el SCE:
DC juego.sce juego.ddb -m3
Y para generar el .BIN usamos MCRF
mcrf DAAD.BIN INT.Z80 juego.db BLANK.GRA
Con esto ya solo hay que guardar como hemos dicho ese DAAD.BIN y las imágenes creadas en formato .cpc en la misma carpeta, o en un DSK.
Para meter ficheros en un DSK hay muchas utilidades, yo utilizo CPCDiskXP porque me permite hacerlo desde un fichero .bat, añadiendo los ficheros con
CPCDiskXP -File DAAD.BIN -AddToExistingDsk CPC.DSK
Herramientas para imágenes
Con ConvImgCpc010 podéis convertir imágenes a los formatos .SCR y .PAL que necesita de entrada SC2DAAD para generar los gráficos en formato .CPC.
Hay versiones más modernas de ConvImgCpc010 que la versión 0.10, pero exportan a formatos no soportados por SC2DAAD. Podéis usarlas, pero el ultimo paso de exportar ha de ser con la versión 10.
Tened en cuenta que hay que elegir MODO 1, y que de los colores de la paleta, el primero que salga se utilizará como fondo en la localidad donde esté ese gráfico, y el segundo como color de tinta para el texto.
Scripts
Para hacer un script que automáticamente haga la compilación y la lance en emulador…
1) Llamar a dosbox para que ejecute el DC, esto normalmente lo hago creando un fichero conf de dosbox que en el apartado [autoexec] llame al DAAD y luego ejecute un “exit”. Lo llamo así:
dosbox -noconsole -conf ./dboxCPC.conf
2) Llamar al MCRF
3) Hacer una copia del fichero CPC.DSK y meter el .bin y los .cpc con el CPCDiskXP
4) Abrir el DSK en un emulador de CPC y hacer RUN “DAAD
Nota: Yo pongo en el script WinApe CPC.DSK y ya el WinApe inserta el disco.
MSX– MSX-DOS
Básicamente consiste en meter el .DDB generado y los ficheros de gráficos .MS2 en la misma carpeta en la tarjeta SD o CF.
Herramientas
- DISKMGR
Recursos
- Fichero MSX.DSK
- Fichero MSXDAAD.COM (incluido en Maluva)
Proceso
Básicamente consiste en generar un fichero .DSK de MSX para cargarlo en cualquier emulador de MSX.
Al final en el DSK o carpeta debe estar el DAAD.Z80, MSXDOS.SYS, COMMAND.COM, DAAD.MDG y MSXDAAD.COM (todos lo cuales ya están en el fichero MSX.DSK), el fichero DAAD.DDB (es importante que se llame así exactamente) y tantos ficheros .MS2 como gráficos haya.
El juego se lanza escribiendo MSXDAAD, si se quiere cambiar como se lanza cambiarle el nombre al MSXDAAD.COM
Para obtener el .DDB compilamos el SCE:
DC juego.sce juego.ddb -m4
Y lo metemos en el .DSK junto con los ficheros gráficos .MS2, usando DiskMgr así para cada fichero
DISKMGR.exe -A -F -C msx.dsk DAAD.DDB
DISKMGR.exe -A -F -C msx.dsk 001.MS2
Scripts
Para hacer un script que automáticamente haga la compilación y la lance en emulador…
1) Llamar a dosbox para que ejecute el DC, esto normalmente lo hago creando un fichero conf de dosbox que en el apartado [autoexec] llame al DAAD y luego ejecute un “exit”. Lo llamo así:
dosbox -noconsole -conf ./dboxMSX.conf
2) Hacer una copia del fichero MSX.DSK y meter el .DDB y los .MS2 con el DiskMgr
3) Abrir el DSK en un emulador de MSX y hacer “MSXDAAD”
Para convertir imágenes BMP a .SC2, el origen de los .MS2, recomiento esta utilidad online:
Actualización importante: el fichero DSK enlazado tiene el fichero MSXDAAD.COM sin actualizar, lo que puede provocar que algunos textos salgan mal (caracteres acentuados no salen o salen mal). Es importante que descarguéis el ultimo fichero MSXDAAD.COM desde la página en Github de Maluva, y lo sustituyáis en el disco de MSX.
C64
Básicamente consiste en meter el .DDB generado y los ficheros de gráficos .64 en el disco, o en un .D64 para SD2IEC
Herramientas
- C1541 (Es un ejecutable de línea de comandos que viene con el emulador Vice)
- Pixcen (https://github.com/Hammarberg/pixcen). Hay binarios Windows al pie de esa página.
Recursos
- Fichero DAAD.D64
- Fichero c64header.bin
Proceso
Básicamente consiste en generar un fichero .D64 de C64 para cargarlo en cualquier emulador de C64.
Al final en el D64 deben estar los ficheros DAAD, APART1, SD1, (todos lo cuales ya están en el fichero DAAD.D64), el fichero BPART1 (es importante que se llame así exactamente, es el DDB creado por DAAD con un pequeño cambio que ahora explicamos y cambiado de nombre) y tantos ficheros .64 como gráficos haya, pero quitándoles el punto, es decir, 001.64 se convierte en 00164 al meterlo en el disco.
El juego se lanza escribiendo
LOAD “*”,8,1
Para obtener el .DDB compilamos el SCE:
DC juego.sce juego.ddb -m2c
Y luego le tenemos que poner al fichero la cabecera de los ficheros C64, que sería en Windows:
copy c64header.bin+juego.ddb daad.ddb
Después lo metemos en el .D64 junto con los ficheros gráficos .64, usando c1541 así para cada fichero
c1541-attach DAAD.D64 -write daad.ddb bpart1
c1541-attach DAAD.D64 -write 001.64 00164
Fijaos por favor que al guardar en DDB le cambiamos el nombre a “bpart1”, aunque luego en el disco se verá como BPART1 (cosas del C64). Fijaos también que al meter los ficheros de imagen les quitamos el punto, así que 001.64 se convierte en 00164.
Para hacer un script que automáticamente haga la compilación y la lance en emulador…
1) Llamar a dosbox para que ejecute el DC, esto normalmente lo hago creando un fichero conf de dosbox que en el apartado [autoexec] llame al DAAD y luego ejecute un “exit”. Lo llamo así:
dosbox -noconsole -conf ./dboxC64.conf
2) Hacer una copia del fichero DAAD.D64, parchear el .DDB con el fichero de header, y meterlo en el disco junto con los gráficos .64 con el C1541.
3) Abrir el D64 en un emulador de C64 y hacer LOAD “*”,8,1 (algunos emuladores evitan eso y lo cargan solo si simplemente arrastras el fichero D64 al emulador)
Nota: la disquetera del C64 es increíblemente lenta, programas completos (64K) pueden tardar más de 2 minutos de cargar desde disco, y lo mismo pasa con los gráficos. Por esto si usas un emulador aceleralo para las pruebas, y en la máquina real asegurate de usar un cartucho fastloader.
Maluva para C64 usa una compresión bastante simple RLE, y cuanto más comprima menos tardará en cargarse un gráfico. Lo ideal es que quede por debajo de 1K, para hacer el juego jugable incluso desde dsiquete y sin cartucho fastloader. Esto es algo bastante complicado a poco que los gráficos se compliquen un poco. Si vais a diseñar gráficos desde cero, tened en cuenta que el C64 almacena los datos de pixeles caracter a caracter, es decir, por ejemplo lo primero que aparecerá en el fichero será el byte de los 8 pixeles de la primera linea, arriba a la izquierda, y después el byte de los 8 pixeles que hay justo debajo, y así hasta completar las 8 lineas que hacen un recuadro de 8x8. Cuando termina ese cuadrado, pasa al de la derecha, y otra vez en la primera linea, y así hasta acabar todo el ancho (40 bloques de 8x8), y luego lo mismo con la siguiente franja de 8 de alto y 40x8 de ancho. En definitiva, si podéis hacer que haya muchos valores seguidos iguales, funcionará muy bien, pero si cambiáis continuamente de valor en los datos no habrá mucha compresión. Podéis valorar también no hacer los gráficos muy altos, algo como 80 pixels.
El fichero de entrada que permite maluva es .art, de Art Studio (un programa del propio C64). Pixcen puede grabarlo, aseguraos de elegir en el menú “Modo” que sea “”Bitmap” y que no esté marcado el “Multicolor”. Pixcen sin embargo no es muy bueno convirtiendo imágenes con muchos colores, no pensadas para el C64, para eso recomiendo otro llamado “Project One”, adaptais el fichero , lo volveis a grabar como BMP, y luego ya lo abris con Pixcen para grabar el .art
Recursos
En este fichero tenéis los recursos necesarios (para Windows):