Pues sí, me ha picado el gusanillo con el concurso que anuncia Radastan para el año que viene. Se trata de hacer un juego que funcione como cartucho ROM del IF2 para Spectrum y que funcione en cualquier Spectrum de 16K. Eso significa que debe ser un juego que ocupe 16K (de $0000 a $3FFF, reemplazando a la ROM), y que tenemos aproximadamente unos 9K de RAM extra para hacer que se mueva (si le quitamos a los 16K del Spectrum 16K los 7K que ocupa la pantalla (VRAM) nos quedamos con 9K).
Esto implica importantes limitaciones (¡por si no tuviéramos ya bastantes!):
- No podemos usar ninguna rutina de la ROM. Como el juego lo voy a hacer en C usando splib2 para todo, esto no es un problema.
- Toda la RAM que tenemos está en la zona de la memoria en contienda (la ULA y la CPU se pelean por esta memoria y gana la ULA siempre), por lo que responderá más lentamente.
- ¡Sólo! tenemos 9K de RAM para jugar, y aquí tendré que meter los aproximadamente 5K que ocupan las estructuras de la splib2, lo que nos deja con 4K para la pila y lo que pueda caber.
La idea es la siguiente: Colocar las estructuras de la splib2 y todas las variables en los 9K de RAM, configurar la splib2 para que ocupe lo justo en la pantalla (de las 24 lineas de carácteres) para que se tarde menos en actualizar el display, usar Orfeus para una musiquilla del menú (si cabe), tener el mapa comprimido en ROM y descomprimirlo en la RAM que quede libre para tener más sitio para código y gráficos y poco más.
En el momento de estar escribiendo estas lineas aún no tengo la seguridad de que lo que quiero hacer sea factible, así que tómate estos artículos más como un “cuaderno de bitácora” que como un “tutorial“, ya que los tutoriales se hacen, por lo general, cuando uno sabe cómo resolver los temas de los que trata, y este no es el caso. Veamos…