Han pasado ocho años desde que inicié este proyecto, y en las últimas semanas he podido retomarlo con entusiasmo.
Realmente hace un par de años volví con el, sobre verano de 2024. Con todo lo aprendido, conseguí un scroll direccional izquierda-derecha muy estable, y corregí muchos errores que tenía la anterio demo. Recalculé los IRQ del MMC3 y la primera pantalla, el de la llanura ahora ya podía ser explorado sin cortes, con su bosque y su pradera en conjunto.
El problema ahora lo tenía con los niveles con multiscroll, como el de la cueva, por ejemplo. En 2018 utilicé un engine muy primitivo y escrito completamente en C por
@dougfraker, pero que tenía muchísimas limitaciones, y no era muy viable pese a que diseñé el nivel entero y se podía explorar. Tras la ROM que lancé ese mismo año como demo, vistas las limitaciones, acabé aparcando el proyecto.
Cuando lo retomé hace dos años, ese verano de 2024, deseché ese engine de 2018 e intenté hacer uno yo mismo teniendo ya un scroll fiable izquierda-derecha, y otro arriba-abajo que ya habeís visto en otro proyecto como Bandolero. Intenté mezclar ambos engines a ver si conseguía un multiscroll, pero al final aquello fue un auténtico caos y desistí.
Hace unas semanas indague con la IA Claude a ver si me sacabá del apuro... y vaya que si lo hizo. En solo quince minutos me sacó del atasco en el que estaba desde hacia ocho años. Me dio solución al problema, y conseguí tener por fin un scroll multidireccional funcional y solvente, con colisiones incluidas.
Ha sido como volver a revivir, pues superado este escollo, por fin podía continuar con el proyecto, y estas dos últimas semanas han sido intensas y cogidas con ganas.
Actualmente he conseguido poner un marcador de vida, puedo recoger objetos y, trabajando en la pradera y el bosque, he empezado a incluir enemigos y sus distintas acciones. Esta parte es ardua, pues son bastantes y entre portarles a la NES, rediseñarles en muchos casos, crear sus comportamientos (muchos son repetitivos entre ellos, y otro son exclusivos), etc... voy avanzando poco a poco. Casi que estoy sacando uno o dos enemigos por día, depende de lo complicado que se me esté haciendo sus comportamientos, o si surgen errores de memoria (que ya me ha pasado) o incluso problemas de espacio, teniendo que reestructurar muchas cosas.
De todas formas, estoy ilusionado, y os quiero mostrar avances.
Player: ya no solo anda, pues ahora ya salta, se agacha, e incluso pega puñetazos. Por ahora eso.
Entorno: podemos acceder por puertas y otros accesos.
Enemigos: por ahora once enemigos distintos que os voy a ir enseñando por a poco.

Roca que bota: aparece siempre a tu espalda. El bote es una tabla de array ya precalculada, para no saturar la CPU.

Murcielago: enemigo sencillo que simplemente cruza la pantalla de lado a lado, como la mayoría de los enemigos.

Cepo: se activa en cuanto detecta que te acercas.

Hoyo mortal: al igual que el cepo, se activa cuando nos detecta cerca.

Huevo alado: similar al Murcielago

Monstruo corredor: igual que los otros, pero más alargado.

Ojos: estudié posibilidades. Elegí la opción de sprites por su rápida implementación, pero el límite de 64 sprites en pantalla se supera si pongo muchos a la vez. Con cuatro ya tiembla. Otra opción es que sean parte del background (en cielo despejado) y animarles mediante cambio de CHR al vuelo gracias al MMC3. Se estudiará su viabilidad más adelante.


Varios: rocas saltarinas, roca flotante (única), pinchos morunos que salen del suelo aleatoriamente... Aquí hubo más trabajo. El salto parabólico está hecho con una tabla precalculada, de nuevo para evitar problemas con la CPU. El pincho moruno del suelo randomiza su aparición a lo largo de 100px de largo que se establece cuando pulsamos Start en la pantalla de título. No obstante, el limite de 64 sprites por pantalla, se ve superado, de ahí los parpadeos.
Objetos coleccionables
Si, se pueden coger y coleccionar, así como desbloquear eventos.
Un saludo como siempre a
@kusfo79 @emerald golvellius
@robotnik16 @puch666 y a todos aquellos usuarios que os interese este hilo.