Acerca de YAKP16 (detalles técnicos)... a día 21/01/2021 Lo primero mis disculpas para quien pretenda entender el código fuente: Poco a poco se ha ido convirtiendo en poco menos que un galimatías indescifrable, claro que con los lenguajes ensambladores no parece raro que las cosas se acaben desmadrando... en fin, en parte esto ha sido por lo siguiente: - Se han tomado partes de otro proyecto en desarrollo, adaptandolas y recortandolas para meter todo lo posible en un programa para 16k. Es posible que alguna minúscula porción de código inútil haya quedado pero seguro que etiquetas, definiciones y comentarios que no ocupan espacio en el programa compilado también. - Tengo demasiados vicios programando y no sigo una metodología mínimamente rigurosa.. se mezclan nombres en inglés y castellano, algunas etiquetas no son muy descriptivas o describen mal la realidad, etc. - No me he molestado en configurar un entorno de desarrollo adecuado.. utilizo un mecanismo un poco "de andar por casa". - En determinado momento, ya cerca de tener la mayoría del código terminado, dejé de preocuparme por como quedaba para ir cerrando y así olvidarme del tema y empezar / continuar otros proyectos. No obstante, supongo que siempre se le puede echar un ojo, encontrar cosas interesantes, corregir fallos u optimizar alguna cosilla. Los curiosos son bienvenidos. Por lo demás, sí me gustaría resaltar algunos detalles: Primero, el entorno de desarrollo: se ha usado ConTEXT como editor, Spectaculator como emulador de desarrollo (también he probado otros cuando llegué a tener versiones jugables) y se ha compilado (¿o mejor dicho "ensamblado"?) con pasmo v. 0.5.3 (con la opción --tapbas para generar un .tap con cabecera de forma automática). Por otra parte, como era de esperar, he usado un editor de gráficos para los sprites y el tileset. En este caso SevenUp. Para crear los mapas he usado una herramienta de propia creación llamada "kraspedit".. de lo mas cutre y rudimentaria, tanto que me da vergüenza hacerla disponible a la comunidad (al menos en su estado actual) pero que me ha servido para crear un juego de datos bastante compacto (32 pantallas en 2312 bytes.. y podría ser alguno menos). El uso de la memoria esta apurado casi hasta el límite. Creo que me han sobrado como 5 o 6 bytes utilizables (posiblemente podría rascar alguno más) pero también tiro de ciertos trucos, como reutilizar de buffer zonas de memoria con datos y código que no se vuelven a utilizar y el uso de parte de la memoria de vídeo y de sistema para almacenar datos y variables. Aparte del juego de caracteres no se utiliza ninguna funcionalidad de la rom original por lo que en principio, mientras se pueda cargar en memoria, debería funcionar con cualquier tipo de clon (otra cosa es que muestre "basura" en lugar de texto). No he incluido pantalla de carga: no soy grafista por lo que no creo que pudiera hacer nada de una calidad medianamente decente. En cualquier caso, para un juego para 16k y debido a su corto tiempo de carga tampoco debería ser un gran problema. En este caso tampoco he hecho nada especial y he dejado el cargador generado por pasmo tal cual pero sobran unas pocas decenas de bytes que se podrían usar para poner un mensaje de carga, y / o algún que otro poke. Por supuesto, el juego y el código fuente son de libre distribución siempre que uno no se atribuya su autoría. Si a alguen le puede venir bien parte del código fuente puede usarlo sin problema aunque se agradecería mención. En general, considero esto un poco un "proyecto de aprendizaje" aunque en realidad este es el segundo juego para Spectrum que hago.. nunca se deja de aprender. En fin, creo que eso es todo. Que lo disfrutéis, ya sea jugandolo o destripando su código!