Cherils NES; 201510XX

Llevo unas semanas sin tocar K2T (que me pienso obligar a tocar al menos semanalmente mientras hago esto, para que la llama “no se apague” y luego haya que volver a encenderla con muchísimo trabajo) dándole fran a juegos de Cheril para NES.

El tema empezó siendo un NROM (Cheril Perils) que no me gustaba nada. Luego pensé en ampliarlo con fases extra y un tileset que hizo Anju basado en el de la fase de la factoría de la versión de Megadrive. Con el tema de retomar la NES para hacer las versiones personalizadas de Jet Paco me picó el gusanete y me puse a andar en el código. Viendo que cabían tres fases, me propuse hacer un CNROM (1x32K PRG-ROM, 4x8K CHR-ROM) y que cada fase tuviese sus gráficos bonitos.

Viendo que sería bastante complicado meter músicas en condiciones en algo así, más código para cutscenes (tenía espacio en CHR-ROM para dibujos minúsculos, pero 32K de PRG-ROM se quedaban cortos para todo el código y los datos), decidí pasar a GNROM (4x32K PRG-ROM, 4x8K CHR-ROM).

En principio, Cheril Perils está planteado y funcionará perfectamente como GNROM. Además, lleva oculto y como recompensa un port genial de Cheril of the Bosque. Trabajando como 4 NROMs independientes que se comunican entre sí usando 16 bytes de RAM que nunca se borran al cambiar de ROM, tenemos esta organización:

  • PRG-ROM0 – Título, cutscenes, final, Cheril of the Bosque, control Game Over / Continues.
  • PRG-ROM1 – Cheril Perils, “Ciudad”, Fases 1 y 2
  • PRG-ROM2 – Cheril Perils, “Factoría”, Fases 3 y 4
  • PRG-ROM3 – Cheril Perils, “Cueva”, Fases 5 y 6.

ROM0 y 1 están casi terminadas. Ángel se encargará del diseño de ROM2 y Josito de ROM3.

Mientras tanto yo no me puedo estar quieto, así que pensé en hacer ports de los otros juegos de Cheril. A unas malas se podrían sacar como NROMs independientes, pero lo que molaría sería montarlo todo usando el Mapper 113 (8x32K PRG-ROM, 16x8K CHR-ROM).

Con este Mapper, podemos poner un menú con las tres entradas principales de la saga: Bosque, Perils y Goddess, y meter como juegos ocultos los “menores” D’Veel’Ng, Cadaverion y Bootee. Supuestamente, sería algo así:

  • PRG-ROM0 – Título, cutscenes, final, Cheril of the Bosque, control Game Over / Continues.
  • PRG-ROM1 – Cheril Perils, “Ciudad”, Fases 1 y 2
  • PRG-ROM2 – Cheril Perils, “Factoría”, Fases 3 y 4
  • PRG-ROM3 – Cheril Perils, “Cueva”, Fases 5 y 6.
  • PRG-ROM4 – Cheril the Goddess
  • PRG-ROM5 – D’Veel’Ng
  • PRG-ROM6 – Cadaverion
  • PRG-ROM7 – Bootee

En principio tendría 1 CHR-ROM para cada PRG-ROM, y con los 8 sobrantes puedo hacer de todo: por ejemplo una buena pantalla de presentación, y cutscenes para todos los juegos.

Pero esto es una paja a medio plazo, por ahora estoy con Cheril the Goddess.

Al principio iba a ser un port directo, como los demás, para hacer en un par de tardes y meterlo en la ROM4, pero luego me empecé a flipar, y cambié todo el diseño de gameplay. Además, viendo que en JetPaco pude meter 3 fases de 35 pantallas me terminé de flipar y diseñé un mapa enormde de 80 pantallas (creo que el original tenía 24 o incluso menos).

En resumen:

  • Cheril corre y salta 2 tiles de alto. Tiene 5 vidas.
  • En los altares-corazón gana 1-3 (hay que verlo) “poderes de diosa”.
  • Al activar un “poder de diosa”, durante cierto tiempo, cambia la paleta del sprite (en colores de diosa), cambia la música (música de diosa), Cheril vuela (se controla con la cruceta en 4 direcciones) y los enemigos no la matan.
  • El tema de activar los templos y tal sigue igual.

Además, quiero:

  • Enemigos pez que salgan del agua, peguen bocao, y vuelvan a meterse.
  • Fantis con medidor de distancia y tal, como en el original.
  • Puertas que se cierran y te cortan como en PoP/TR.

Los enemigos pez no tienen colisión ni pollas y se meten enseguida y ocupan poco, pero creo que el tema de los fantys es más complejo. De entrada les quitaré las colisiones que tienen en Perils, pero la máquina de estados tiene a ocupar más de la cuenta. Las puertas que se cierran creo que las haré con tiles.

Como tengo que liberar toda la memoria posible, me puse e hice un nuevo exportador de mapas que comprime con una especie de RLE, guardando cadenas de tiles sin repetición y almacenando las pantallas completas sin comprimir si la versión comprimida ocupa más. También reordena las decoraciones para poder hacer cadenas de decoraciones del mismo tile ahorrando un byte por cada repetición.

Lo siguiente será almacenar los enemigos en ROM de otra forma que ocupe menos espacio (todos los pares xy en tiles y enpaquetados en un byte) – tengo que ver si ganaría algo permitiendo que las pantallas tuviesen un número variable de enemigos, el código implicado y necesitar un índice (un puntero por pantalla son 160 bytes, ¿ahorraría tanto? – tengo que estudiarlo).

Mientras tanto voy haciendo un mapa enorme.

Ah, además amplié MKTS, mi herramienta super petona para exportar patrones y tilemaps para que también exporte metasprites. Es capaz de reaprovechar patrones y de generar versiones espejadas de los metasprites. Eso me ha permitido ahorrar un montón y tener mucho espacio para enemigos diferentes, además de muchos cells de animación para Cheril.

Sí, me he flipao.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s