''''''''''''''''''''''''''''''''''''''''''''''''''' ' ' ' EMPAREJA v1.1 ' ' ' ' v1.0 presentada al Concurso BASIC 2020 ' ' ' ' Categoria BASIC compilado ' ' (usar solo lo que trae ZX BASIC, no ensamblador)' ' ' ' (http://www.bytemaniacos.com/?page_id=3639) ' ' ' ' (C) EddieTheWild 2020 ' ' ' ''''''''''''''''''''''''''''''''''''''''''''''''''' HISTORIA DEL DESARROLLO DEL VIDEOJUEGO "EMPAREJA" ************************************************* (v1.0) Hace 10 años, 10, que no participo en un concurso de Bytemaniacos; no recuerdo ya ni el color del Spectrum pero esto no se puede dejar pasar :-))) 2020-04-28 Por la tarde-noche comienzo a pensar como llevar a cabo esta idea que tenia apuntada de otros años. Intento recordar como se llamaba el juego de recreativa con pantalla tactil al que tanto jugue con los amigos para emparejar fotos. Comienzo a estudiar las dimensiones que podria tener la matriz de fotos. Sera todo un reto jugar a esto sin una pantalla tactil. 2020-04-29 Tras consultar a varios amigos, encuentro por fin el nombre del juego: recreativa Touch Games (de la empresa vasca Biaplen 2000) --> Fotos retencion --> PAREJAS (similar al Concentration Pro de Photoplay 2001, de FunWorld). Consulto World of Spectrum para comprobar que parece haber al menos dos juegos de esta temática: Parejas (1984, Xabier Martin Puchecha) y Parejas (1986, Software Editores), ambos previos a las anteriores recreativas y por tanto bastante diferentes. Para no añadir mas homonimos, pero sin alejarme del nombre original, decido llamar al mio "Empareja" ;-) (aunque tambien hay un Empareja2, de Alberto Perez Torres...) Desarrollo las rutinas de generacion de "fotos" (de caracteres alfanumericos, para probar) y el bucle principal. 2020-04-30 Dia del deadline :-O Finalizo el control y ajusto la jugabilidad, con no pocos problemas. Queda pendiente para la v1.1 añadir algo mas parecido a fotos en lugar de patrones de caracteres. Las 23:50... ya es hora de enviarloooo!!!! :-/// (v1.1) 2020-05-01 Decido aprovechar el calenton y continuar para hacer la version 1.1, la que realmente tenia en mente y que me habria gustado hacer y enviar a tiempo. 2020-05-02 Mejoro los UDGs y la estructura general del codigo, para prepararlo para las opciones de menu y nuevas funcionalidades. 2020-05-03 Ahora se puede comenzar en distintos niveles. Gestión correcta de los records, que me cuesta mas de la cuenta pues no sabia ni lo que queria (primero piensa, luego programa). 2020-05-05 Finalizo de probar las nuevas funcionalidades: modo en que los fallos quitan ptos. y modo en que quitan tiempo. Tambien equilibro bastante el decremento de tiempo de cada nivel Ya solo queda añadir un menu para seleccionar el tema de las "fotos", las obtendre de juegos del Spectrum. 2020-05-10 Acabo de recortar los 180 tiles tematicos para el juego. Han sido un porron de horas (diurnas y nocturnas) durante unos 4 dias, revisando pantallas de carga (36+36), pantallas de juego (36+36), y logos de empresas (24+12), todo ello tanto para juegos españoles como extranjeros. Muchas horas revisando y revisando WOS. 2020-05-13 Reusando los UDGs del preparo una pantalla de carga acorde con el juego. 2020-05-15 Envio a Boriel mi experiencia con el ZX BASIC y recibo feedback en cuestion de horas, bravo! Hago un programa BASIC para cargar desde BASin un pantallazo con tiles y que leyendo de memoria de video vaya metiendo en memoria cada uno de los 49 caracteres de cada tile (392 bytes), seguidos de sus 49 atributos de color, para luego grabar un volcado de esa memoria a cinta. 2020-05-16 Organizo los distintos bloques de carga de la cinta final. Comienzo con el uso de tiles. 2020-05-18 Acabo de cargar los tiles y comparo que byte a byte tarda el doble (55 frames para 12 tiles) que preprocesando las imagenes y convirtiendolos en caracteres con CHARS (23 frames). Mejoro los tiles de texto con colores (mucho tiempo probando como quedan mejor) y marcos. 2020-05-23 Comienza la ultima batalla. Creacion de un menu para seleccionar el tema de los tilesets al comienzo de cada partida. 2020-05-26 Depuracion final. Creacion del tap final con todos los bloques. Ajuste del mapa de memoria por si podia cargar los tilesets comprimidos y descomprimir uno a uno, quitando el tema multicarga, pero no hay espacio. Solo queda pendiente ver como hacer que ZX BASIC no escriba los mensajes "bytes:" al cargar bloques. Lo envio por fin a los beta testers de RA. 2020-05-28 Tras corregir cualquier detallito pendiente, y mejorar algunos aspectos menores, doy por cerrada la v1.1. Hace exactamente un mes que comence con la v1.0. COMPILACION 1) Con BASin escribo el cargador BASIC inicial con autoarranque y con su tape creator creo un loader.tap 2) Con TommyGun compilo el programa ZX BASIC (v1.10.1-beta4) zxb -D HIDE_LOAD_MSG --tap --array-base 1 --string-base 1 --heap-size 2048 --org 24100 -o emp-code.tap Empareja.bas (mientras depuro, tambien uso --BASIC --autorun --debug-array para ejecutarlo sin loader.tap) 3) Con un build.bat ejecuto "copy /b loader.tap + emparejSCR.tap + emp-code.tap + tilesMenu.tap + t-LdSCR.tap + t-LdSCR-Sp.tap + t-InGame.tap + t-InGameSp.tap + t-Empr.tap Empareja.tap" CARACTERISTICAS Y OPCIONES * El tiempo restante al acabar un nivel se convierte en ptos. Tambien hay puntos por cada emparejamiento. * Seleccion entre dos keysets para jugar con acceso directo a cada una de las 12 posibles opciones de cara a simular la pantalla tactil del juego original (requiere sin duda de un cierto entrenamiento) * Seleccion de nivel de comienzo (1-7, a partir de ahi hay que currarselo), donde dispondremos de 20 seg. (nivel 1) hasta 10 seg. (nivel 7 y sucesivos) para pasar el nivel. El ultimo nivel alcanzado sera el seleccionado al volver al menu. * Tres modos de juego: 1) los fallos al emparejar no penalizan, 2) los fallos restan puntos, 3) los fallos restan tiempo (aqui hay que agudizar la memoria fotografica si o si!!). * Al comenzar cada partida, podremos elegir entre 6 tipo de "fotos" entre las que se seleccionaran 6 (cada una dos veces) para formar las 12 que se muestran en cada nivel. La seleccion se hace con las misma teclas de juego, segun su posicion, pulsando una vez para seleccionar y una segunda para confirmar (una segunda pulsacion en otra opcion deselecciona la primera). Los 6 temas de "fotos" son, de arriba a abajo y de dcha.: 1) 36 tiles extraidos de pantallas de carga de videojuegos del ZX Spectrum 2) 36 tiles de pantallas de carga de juegos españoles 3) 36 tiles de imagenes de juegos 4) 36 tiles de imagenes de juegos españoles 5) 36 tiles de logotipos de empresas extranjeras (6 tiles) y españolas (12 tiles) 6) 14 tiles de texto Los 5 primeros tilesets (de casi 16K cada uno) se cargaran de cinta cada vez, y los de texto se recrean cada vez que se selecciona esa opcion. Cada tileset es de casi 16K, asi que al elegir el quinto se tendria que saltar cuatro, habria que rebobinar si elijes luego un tileset anterior... muy lento y poco practico en un ZX Spectrum real (requeriria toneladas de paciencia ochentera), pero con un emulador con fastloading y autoload, instantaneo. * Al salir nos dice el tiempo que hemos estado jugando. AGRADECIMIENTOS Gracias a los chicos de RetroAccion, a Sergio por su interes diario e intentar empujar a las voluntades debiles, y especialmente a Josetxu, por no querer colaborar conmigo; de haberlo hecho sin duda aun no habriamos llegado a un acuerdo sobre como llamar a las variables... :-)))) Finalmente muchas gracias al ZX Basic (Boriel), BASin (Paul Dunn y otros), BASinC (Arda), Fuse (muuucha gente), Spectaculator (Jonathan Needle), ZX-Painbrush y ZX-BlockEditor (Claus Jahn), WOS (Martijn van der Heide, e infinitos colaboradores), TommyGun (Tony Thompson)... y a Bytemaniacos (Radastan), por empujarnos a programar videojuegos para nuestro querido Sinclair ZX Spectrum.