Como hacer juegos con intro para Dandanator CPC y DES
En el artículo de hoy vamos a ver cómo podemos hacer juegos con intro para Dandanator CPC y, por consiguiente, para DES, para uso y disfrute en nuestro Amstrad CPC. Vas a poder comprobar que es realmente fácil, aunque hay que tener un poco de paciencia con la edición hexadecimal y hacer alguna que otra prueba, pero muy pronto vas a obtener resultados satisfactorios y disfrutar de un bonito menú, una intro o cualquier otra cosa que se te ocurra en tu juego o compilación de juegos y programas para Dandanator CPC y DES.
¿No conoces el Dandanator CPC? Quizás te interesen estos artículos.
- CPC Dandanator Mini, el cartucho multijuegos de Dandare
- Página del proyecto Dandanator Entertainment System DES
Hacer juegos con intro para Dandanator CPC y para DES
Lo que queremos hacer
Antes de empezar te recomiendo saber cómo crear tus ROM de juegos, ya que hay conceptos necesarios conocer para entender bien este tutorial.
Lo que vamos a hacer es crear un juego para DES (una rom) que se va a componer de varias snapshots:
- Una snapshot que contiene la intro del juego
- Una snapshot que contiene el juego
- Una snapshot con epílogo o con fases extra, etc
Por simplificar solo vamos a comentar el caso de intro+juego pero es extensible a un juego que se componga de varias fases muy grandes que en realidad hayan sido programadas como juegos independientes
Herramientas necesarias:
- Dandanator-cpc-2.5 ( de la web de dandanator http://www.dandare.es/Proyectos_Dandare/Descargas.html)
Primer paso: crea tus snapshots
Lo primero que necesitas es crear tus snapshots. Un snapshot es una imagen de la memoria y registros de la CPU y todos sus chips. Es decir, es una foto completa del CPC. La puedes crear desde winape o desde otros emuladores. Aquí vamos a ver un ejemplo con winape
El SNA debe contener tu juego, pero también debe contener una rutina en ASM que le va a permitir saltar a otro SNA del DES. La puedes copiar y pegar en el editor de winape y después pulsar ensamblar. Yo he puesto 18000 pero tú puedes ensamblar estas rutinas en la dirección que quieras (y tengas espacio libre)
; estas rutina es cortesia de DANDARE para poder saltar de un sna a otro con DANDANATOR
; =========================================================================================
;LANZAR OTRO SNA
;---------------------------------------
direccionVarNumJuego EQU &FFFF; Direccion RAM de la variable donde se indica el numero del juego a cargar
; Si el juego es el 0, volvera al menú
direccionRutina EQU 18000; direccion donde ensamblamos esta rutina. Puedes ponerla donde quieras
; PARAMETROS QUE DEPENDEN DE LA VERSION DEL MENU DANDANATOR. ACTUAL 1.8 ASM
;---------------------------------------------------------------------------
direccionPila EQU &BFF8 ; Direccion de la pila usada por el menu del dandanator
direccionArranque EQU &0072 ; Direccion actual de arranque secundario (autoboot en A)
;---------------------------------------------------------------------------
; Rutina
; -------------------------------
org direccionRutina ; Calcular etiquetas a partir de este valor de base
DI ; Deshabilitar interrupciones
LD SP, direccionPila ; Utilizando la pila en el mismo sitio que el menu del dandanator
LD IY, direccionPila-4 ; Utilizamos una zona de la pila no usada para el byte que "machaca" el dandanator
LD B, 0 ; Establecer el slot 0 del dandanator, donde esa el menu, en 0x0000
DEFB &FD,&FD
LD (IY+0),B
LD BC, direccionArranque ; Establecer la direccion de arranque del menu como retorno con RET
PUSH BC
LD A, &CA ; Desactivar, en diferido (tras RET) el modo de compatibilidad forzada o "FollowROM"
DEFB &FD, &FD
LD (IY+0),A
LD A, (direccionVarNumJuego) ; Juego deseado para cargar. 0 = Menu
RET ; Desactivar FollowROM y saltar al menu
_END_RUTINAS
Una vez ensamblada, podemos ver la rutina en el menu de winape assemble ->symbols
En mi caso es la direccion &5d4c
Una vez que esté en ejecucion uno de los juegos que formen parte de la rom, bastará con un par de instrucciones basic para saltar a otro juego. Por ejemplo con esto saltaríamos al juego 2
poke &ffff,2:call &5d4c
el “juego 1” será mi intro. No voy a hacer ni listado basic ni nada. La SNA va a ser simplemente el estado de la pantalla con este texto y las rutinas ensambladas
Ahora grabamos la SNA desde el menú de winape file->save snapsot
He grabado la SNA en versión 2, este tipo de cosas pueden afectar. Hasta donde he probado, la versión 2 es compatible con DES. Lo he grabado como “juego1.sna”
A continuación, nos creamos otro sna;
Ya tenemos dos sna creados y ahora los vamos a pasar a una rom.
Segundo paso: crea tu rom
Ahora debes crear una rom con el programa “ROM generator” del DES. Simplemente arrastramos los SNA a la lista de juegos. En preferencias es interesante forzar compatibilidad.
Como ves en este “ROM generator” he cambiado la imagen de menú. En el apéndice te enseño a hacerlo. Simplemente debes marcar la opción “autoboot” del juego que quieres que se inicie nada más encender tu AMSTRAD.
En preferencias es interesante forzar compatibilidad, así podrás cargar la ROM tanto en 6128 como en 464 (si es un SNA de 64kB)
Una vez creada la rom y arrancado el Amstrad simplemente podras saltar al juego 2 desde el juego1 ejecutando desde el AMSTRAD un par de comandos BASIC,
poke &ffff,2:call &5d4c
Para poder probarlo necesitas un emulador que soporte DES.
Probar la ROM en rvm u otro emulador que soporte DES
Puedes probar el nuevo fichero rom en un emulador que soporte DES, como puede ser RVM.
Grabar la ROM real
Lo primero es configurar el puerto serie con el que ha quedado la conexión con tu Amstrad.
Para grabar la rom debes entrar a continuación en el eeprom writer tanto en el PC como en el CPC, en ambos a la vez.
Puerto de conexión delantera del DES al CPC
En el “ROM generator” debes configurar como puerto serie el COM que te haya salido al conectar el CPC. Para que funcione debes meter en tu PC los driver USB del dandanator , cuyos enlaces los tienes en la página de dandare http://www.dandare.es/Proyectos_Dandare/Descargas.html
Esos drivers se encuentran en http://www.wch.cn/downloads/CH341SER_EXE.html
Tienes un video completo de como hacer este proceso en https://www.youtube.com/watch?v=046cKTpaS2I&t=23s
Es un video del canal de 8BP que te permite actualizar tu rom de 8BP pero lo que te cuenta es valido para aprender a crear tu propia rom. Recuerda poner el puerto serie que te haya salido al conectar el Amstrad en la configuración del ROM generator.
La imagen de menú para el menú de juegos de dandanator tiene un formato algo especial, aun siendo un fichero .scr
- Formato de imagen scr para el ROM generator
Puedes crear tu scr con cualquier editor de scr como el convimg u otros.
Yo te voy a contar como debes alterar la imagen generada con la utilidad “convimg”.
Una vez creada la imagen debes hacer algunos cambios:
- Debes “extirpar” la cabecera AMSDOS que mete convimg, que son los primeros 128 bytes del fichero. Eso debes eliminarlo
- A continuación, debes añadir 16 bytes de cola y un cero de fin, en total 17 bytes extra
La longitud total será 16384 bytes +16 +1= 16401
En cuanto a los bytes de paleta debes configurarlos desde la tinta 0 hasta la tinta 15, usando estos códigos, que no son exactamente los de los colores del CPC. Como ves hay números repetidos, que significan lo mismo. Algunos números no los he puesto en la tabla porque no estoy seguro, pero puedes probar y asegurarte fácilmente de cada color.
Código dandanator | Código paleta cpc |
0 | 13 (gris) |
1 | 13 (gris) |
2 | 19 (verde) |
3 | 25 (amarillo claro) |
4 | 2 (azul) |
5 | 7 (purpura) |
6 | 10 (verde oscuro) |
7 | 16 (rosa) |
8 | 8 |
9 | 25 |
A | 24 (amarillo) |
B | 26 (blanco) |
C | Rojo |
D | Violeta |
E | 15 Naranja |
Código dandanator | Código paleta cpc |
F | 17 violeta |
10 | 1 azul |
11 | Verde |
12 | Verde |
13 | 23 azul claro |
14 | 0 negro |
15 | 11 azul |
16 | Verde oscuro |
17 | 20 o 11 es un azul |
18 | Morado |
19 | Verde claro |
20 | 23 azul claro |
2A | 24 |
2B | 26 blanco |
2C | rojo |
- Como incluir tu imagen en el rom generator
Tienes dos formas :
En preferencias-> imagen de fondo-> cambiar
Puedes también abrir el jar con Winzip y reemplazar el archivo menú.scr, que como ves mide exactamente 16401 bytes
Agradecimientos: a Dandare por su paciencia conmigo y sus rutinas ASM.
Buenas soy Joan tengo un dandanator que acabo de adquirir.Mi duda es cargo un juego pero a veces me pide la cara B y como la cargo ? ?? Apretando reset salgo del juego y los otros botones que hay no hacen nada alguien me puede ayudar gracias
No está soportado el cambio de disco.
¿Hay alguna forma de cambiar/personalizar la imagen que aparece antes de cargar el juego? La que se ve en el generador de ROMs en el recuadro de arriba a la derecha.
¡Gracias!
Llevaba tiempo queriendo saber como se hacía. Este finde lo voy a tener entretenido probando.
Graciaa
Este artículo le servirá a mucha gente
Pedazo artículo, ahora con esto ya podemos hacer nuestras propias intros, genial !!!