DES

Como hacer juegos con intro para Dandanator CPC y DES

4.8
(8)

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.

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:

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

Juegos con intro para Dandanator CPC

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”

Como hacer juegos con intro para Dandanator CPC y DES 2

A continuación, nos creamos otro sna;

Como hacer juegos con intro para Dandanator CPC y DES 3

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. 

Como hacer juegos con intro para Dandanator CPC y DES 4

En preferencias es interesante forzar compatibilidad, así podrás cargar la ROM tanto en 6128 como en 464 (si es un SNA de 64kB)

Como hacer juegos con intro para Dandanator CPC y DES 5

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.

Como hacer juegos con intro para Dandanator CPC y DES 6

Grabar la ROM real

Lo primero es configurar el puerto serie con el que ha quedado la conexión con tu Amstrad.

Como hacer juegos con intro para Dandanator CPC y DES 7

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.

Como hacer juegos con intro para Dandanator CPC y DES 8

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 

Como hacer juegos con intro para Dandanator CPC y DES 9

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.

Como hacer juegos con intro para Dandanator CPC y DES 10

Apéndice: cómo crear tus ROM con tu imagen de menu

La imagen de menú para el menú de juegos de dandanator tiene un formato algo especial, aun siendo un fichero .scr

  1. 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”.

Como hacer juegos con intro para Dandanator CPC y DES 11

Una vez creada la imagen debes hacer algunos cambios: 

  1. Debes “extirpar” la cabecera AMSDOS que mete convimg, que son los primeros 128 bytes del fichero. Eso debes eliminarlo
Como hacer juegos con intro para Dandanator CPC y DES 12
  1. 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 dandanatorCódigo paleta cpc
013 (gris)
113 (gris)
219 (verde)
325 (amarillo claro)
42 (azul)
57 (purpura)
610 (verde oscuro)
716 (rosa)
88
925
A24 (amarillo)
B26 (blanco)
CRojo
DVioleta
E15 Naranja
Código dandanatorCódigo paleta cpc
F17 violeta
101 azul
11Verde
12Verde
1323 azul claro
140 negro
1511 azul
16Verde oscuro
1720 o 11 es un azul 
18Morado
19Verde claro
2023 azul claro
2A 24 
2B 26 blanco
2C rojo
  1. Como incluir tu imagen en el rom generator 

Tienes dos formas :

En preferencias-> imagen de fondo-> cambiar

Como hacer juegos con intro para Dandanator CPC y DES 13

Puedes también abrir el jar con Winzip y reemplazar el archivo menú.scr, que como ves mide exactamente 16401 bytes

Como hacer juegos con intro para Dandanator CPC y DES 14
Juegos con intro para Dandanator CPC

Agradecimientos: a Dandare por su paciencia conmigo y sus rutinas ASM.

¿Te ha Resultado útil este artículo?

Ayúdanos a mejorar y danos tu opinión:

Mostrar más

3 comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Publicaciones relacionadas

Mira también
Cerrar
Botón volver arriba