------------------------------------------------------------------------------- - Cuadragon para ZX Spectrum 48K ---------------------------------------------- ------------------------------------------------------------------------------- - © 2020 Duefectu Corp - duefectu@sd-a.com - www.duefectucorp.com ------------- ------------------------------------------------------------------------------- - Desarrollado para el Concurso BASIC 2020 de Bytemaniacos -------------------- ------------------------------------------------------------------------------- 0. ÍNDICE ========= 1. La história 2. Controles y Objetos 2.1. Controles durante el juego 2.2. Controles durante el combate 2.3. Objetos 2.4. Enemigos 3. Contenido de la cinta 4. Información técnica 5. Código fuente 6. Mapa de memoria 7. Ficheros tzx de trabajo 8. Mapa de recursos 9. Copyright y atribuciones 1. LA HISTÓRIA ============== Sir Esfero de Circalia. Primero de su nombre, hijo de la gran circunferencia, padre de circulitos y señor de las esferas redondas. Hacedor de elipses y tangentes azote de cuadrados y trapecios terror de rombos, pesadilla de polígonos y aristas, y Rey de su casa, cuando está solo. Del caballero que fue un día, ya no queda mucho. Abatido y desolado, ahora se encuentra solo y abandonado en una oscura y húmeda celda del castillo de CUADRAGON, feudo de su peor enemigo. Puede que te preguntes como he llegado hasta aquí, pero a mí me interesa más saber cómo escapar... Siempre he sido de OPQA, pero si me ayudas a escapar... Contarás con mi eterna gratitud. 2. CONTROLES Y OBJETOS ====================== 2.1. Controles durante el juego ------------------------------- O - Izquierda P - Derecha Q - Arriba A - Abajo X - Reiniciar la partida 2.2. Controles durante el combate --------------------------------- Teclas del 1 al 3 para elegir el golpe a asestar a tu enemigo. Y ya sabes... Observa, espera, calcula... y actua. 2.3. Objetos ------------ Vida: Representada por un corazón lleno. Los corazones vacíos indican el máximo de vida al que puede llegar Sir Esfero. El nivel máximo aumenta a medida que vas derrotando a tus rivales. Experiencia: Representada por dos flechitas hacia arriba. Indica el nivel de experiencia adquirido. Ataque: Se muestra con una espada de color verde, e indica nuestro poder de ataque. Defensa: Escudito celeste que representa el nivel de defensa de Sir Esfero. Llaves: Permiten abrir las puertas cerradas con llave. Ojo, que las llaves se gastan y las puertas se cierran a nuestras espaldas. Pociones: Permiten recuperar la energía cuando perdemos un combate. Sir Esfero hará buen uso de ellas cuando las necesite. 2.4. Enemigos ------------- Rata Mugrienta: Nunca había visto ratas de ese tamaño, y las Mazmorras están infestadas de ellas. Blob Viscoso: Se trata de una extraña masa viscosa que te atrapará y consumirá lentamente. Muy lentamente. Caballero Cuadrado: Como era de esperar, los soldados de Cuadragon deambulan por todo el castillo y sus alrededores. Romboide Infernal: Otro aristoide maligno. Intenta evitarlo, solo los más valientes se atreven a enfrentarse con ellos. Esfera corrupta: Lo peor de este castillo es tener que enfrentarme a mis propios lacayos, abducidos y transformados en máquinas asesinas, que no dudarán en asestarte una puñalada. 3. CONTENIDO DE LA CINTA ======================== La cinta contiene los siguientes ficheros: CDGN.BAS : Cargador en basic. Además dibuja la primera pantalla de presentación CDGN.ATR : Atributos de la pantalla de presentación CDGN.SCR : Pantalla de presentación sin atributos Cuadragon : Juego CDGN.RES : Gráficos, música y mapeado 4. INFORMACIÓN TECNICA ====================== Cuadragón es un videojuego programado en Basic compilado, con el compilador Boriel Basic, para ZX Spectrum 48K y compatibles. El proyecto se ha desarrollado con TommyGun en una primera fase, y posteriormente con la extensión SpecNetIDE para Visual Studio. Se ha utilizado el compilador de Basic Boriel versión 1.8.10, con los parámetros (se han quitado las rutas de las carpetas por claridad): zxb.exe -o Cuadragon.tzx -T -O 3 -S 26000 -H 4000 --strict El juego utiliza 5 juegos de caracteres que incluyen las fuentes y gráficos del juego: - FuenteTexto : Texto normal e iconos de un caracter - FuenteChar1 : Sprites (Esfero, rata, cruz, Esfero infernal) - FuenteChar2 : Sprites (Caballero cuadrado, Blob, Romboide) - FuenteFondo : Gráficos de las habitaciones (paredes, suelos, cerraduras) - FuentePapiro : Gráficos para dibujar los papiros y paredes del desierto Tanto las fuentes como los mapeos de gráficos y la música, se encuentran "pokeados" o almacenados en el área de recursos a partir de la dirección de memoria 58500. Esto se hace para ahorrar memoria, en vez de usar DATAs, y ganar en velocidad, un PEEK es más rápido que un READ. El proyecto tiene tres módulos principales: - Cuadradon.zxbas: Entrada principal del juego - ResourceGenerator.zxbas: Pokea los recursos creados desde TommyGun para poder generar el archivo de recursos "CDGN.RES" - Proyecto Launcher: Se trata de un proyecto de consola para Windows que automatiza las labores de compilado y creación del .tzx que se ejecuta en el emulador. 5. CÓDIGO FUENTE ================ El proyecto de Visual Studio contiene los siguientes archivos: - Solución Cuadragon |- Solution Items : Carpeta de solución | |- Cuandragon.txt : Este fichero de texto |- Cuandragon : Proyecto principal | |- Resources : Carpeta para los recursos | | |- Fonts.zxbas : Definición de los 5 juegos de carácteres | | |- MapeoCombates.zxbas : Mapeo de los sprites utilizado en los combates | | |- MapeoEsfero.zxbas : Mapeo de Esfero | | |- MapeoHabitacion.zxbas: Define los tiles de las habitaciones | | |- MapeoMapa.zxbas : Mapeo de habitaciones y mapa | | |- Musica.zxbas : Datos de la música | | |- ResourcesGenerator.zxbas: Generador de recursos para generar CDGN.RES | |- ROM : Carpeta interno de SpecNetIDE. No utilizada | |- TapeFiles : Ficheros .tzx de trabajo | | |- Cuadragon.tzx : Resultado de Cuadragon.zxbas | | |- Loader.tzx : Cargador inicial en basic sin compilar | | |- Resources.tzx : Archivo de recursos CDGN.RES | | |- ResourceGenerator.tzx: Resultado del ResourceGenerator.zxbas | | |- Screen.tzx : Pantalla de carga | |- Z80CodeFiles : Carpeta interno de SpecNetIDE. No utilizada | |- Z80UnitTests : Carpeta interno de SpecNetIDE. No utilizada | |- ZxBasicFiles : Carpeta para el código del juego | | |- Cuadragon.zxbas : Módulo de arranque | | |- Intro.zxbas : Presentación del juego | | |- Juego.zxbas : Bucle principal del juego | | |- Mapa.zxbas : Rutinas de dibujado del mapa | | |- Musica.zxbas : Reproductor de música | | |- Sprites.zxbas : Módulo de impresión de sprites | | |- Textos.zxbas : Módulo de gestión de textos | | |- UITools.zxbas : Varias herramientas auxiliares | |- Annotations.disann : Archivo interno de SpecNetIDE. No utilizado | |- Spectrum.projconf : Archivo interno de SpecNetIDE. No utilizado |- Launcher : Aplicación de consola para ayudar en la compilación | |- Program.cs : Único módulo del launcher El proyecto Launcher no entra en el concurso. Solo se utiliza para compilar y componer el Master.tzx completo. Los ficheros ubicados en la carpeta Resorces solo se utilizan para generar los archivos de recursos (gráficos, música y mapeados). 6. MAPA DE MEMORIA ================== El juego compilado se carga en la dirección 26000, mientras que los recursos gráficos, música y mapeado se cargan en la dirección 58500. Las cadenas de texto se encuentran en el propio juego almacenadas en sentencias DATA, por lo que se pueden personalizar fácilmente. El resto de memoria se asigna normalmente. En la siguiente tabla se muestra de forma esquemática: 16384,6144 : Pantalla de presentación (solo pixels) 22528,768 : Atributos de la pantalla de presentación 26000,29564 : Juego 58500,6598 : Recursos 7. FICHEROS TZX DE TRABAJO ========================== En la carpeta "TapeFiles" del proyecto, se encuentran los archivos de datos separados. Una vez compilado el código principal Loader.tzx : Cargador basic sin compilar - T:CDGN.BAS - Cargador Screen.tzx : Pantalla de presentación: - T:CAST.ATR - Atributos 22528,768 - T:CAST.SCR - Pixels 16384,6144 Cuadragon.tzx : ZxBasicFiles/Cuadrzgon.zxbas - Cuadragon. - Motor del juego en ZXBasic compilado con Boriel 26000 Resources.tzx : Resources/ResourcesGenerador.zxbs - T:CDGN.RES - Fichero de recursos 58500,6598 Master.tzx : Fichero final agrupando todos los tzx parciales 8. MAPA DE RECURSOS =================== Los recursos, excepto las cadenas de texto, se almacenan en el archivo CDGN.RES a partir de la dirección de memoria 58500 por una longitud de 6662. En la sigute tabla se muestra la dirección de cada uno de los recursos: 58500 : Fuentes (768 x 5 fuentes) 62341 : Mapeos de los sprites 62341 : Sir Esfero 62363 : Cruz 62385 : Rata Mugrienta 62420 : Rata Mugrienta 1 62431 : Rata Mugrienta 2 62442 : Blob Viscoso 62457 : Blob Viscoso 1 62472 : Blob Viscoso 2 62487 : Caballero Cuadrado 62516 : Caballero Cuadrado 1 62538 : Caballero Cuadrado 2 62560 : Caballero Cuadrado 3 62582 : Romboide Infernal 62604 : Romboide Infernal 1 62618 : Romboide Infernal 2 62634 : Romboide Infernal 3 62650 : Esfera Corrupta 62679 : Esfera Corrupta 1 62694 : Esfera Corrupta 2 62709 : Esfera Corrupta 3 62722 : Mapeo de esfero (animación) 63083 : Música 63477 : Mapeo habitación (tiles) 64680 : Mapeo habitaciones 64969 : Mapa de habitaciones 9. COPYRIGHT Y ATRIBUCIONES =========================== ©2020 Duefectu Corp. Desarrollado para el concurso Basic 2020 de Bytemaniacos. Licencia libre total de la muerte: Haz lo que quieras con él menos venderlo! El papiro de fondo utilizado en el manual ha sido diseñado por Freepik: http://www.freepik.es Idea original: Duefectu Diseño y ambientación: Duefectu Gráficos: Duefectu Música no original: Duefectu a partir del tema original de Ramin Djawadi Programación: Duefectu Catering: Estefaniaaaa Apoyo emocional: Dawn la PRO Beta testers: jepifidel, Dawn la PRO y Duefectu