Lala; 20160504

Voy a empezar a hacer los cambios necesarios (si no están hechos ya) en crt0.s y tal para poder montar un GNROM normal o un 113. Pondré los dos tipos de bankswitching y los guardaré tras sendos defines.

Vaya, ¡ya está! Pero el de 113. Voy a ver si puedo meter también el otro via define. ¿Cómo se hace esto en asm de ca65?

~~

Hecho. Ya he puesto los defines para seleccionar 113/GNROM. En el código principal también tengo que tenerlo en cuenta pues los valores que hay que poner en los registros son diferentes.

Ahora debería diseñar cuidadosamente lo que voy a pasar entre ROMs teniendo en cuenta todas las cosas. Una de las cosas que tengo que tener en cuenta es que las aperturas de puertas en la fase 2 cuando re-entremos tras agotar el tiempo deben ser persistentes.

Voy a tocar un poco el crt0 a ver si puedo dejar toda la RAM sin borrar (excluyendo, claro, las partes sensibles como el stack, la ZP y la copia de la OAM). En mis pruebas de hace meses el fceux se volvía tó loco, pero creo que era por la copia de la OAM y ya está. Probaré bien.

~~

Correcto, en el tester que tengo parece funcionar. Es importante tener esto en cuenta y saber qué hacer con la inicialización.

ROM 0 debe comunicar a ROM 1…

  • plife
  • level
  • Si inicializar room locks o no.

ROM 1 debe comunicar a ROM 0…

  • Exit status (GS_GAME_OVER, GS_REPEAT_LEVEL, GS_NEXT_LEVEL)

Toda la lógica debe llevarse a cabo en ROM0, pero ROM1 debe hacer comprobaciones sobre checksum y además implementar una forma de saltar a ROM0 en caso de reset. Se me ocurre hacer checksum entre los datos que le pasa ROM 0 y justo después cargarse el checksum para quen o de. Ponerlo a 0xff es suficiente en este caso.

Para no ir pisando, diseñamos así nuestro COMM_POOL:

Pos.	Cosa:
-------------------------------
0 	Registro de paginación.
1 	level
2 	plife
3 	init_roomlocks
E 	1+2+3
F 	exit status

Ya lo tengo todo medio listo (en ROM1), pero he puesto un define para poder seguir desarrollándola como “standalone”. Además, aún tengo que hacer mucho trabajo gráfico y no puedo planificar hasta que no sepa cómo voy a organizar los CHR-ROM, proque probablemente necesite más de 1 para la rom de títulos y cuscenes. Vamos, seguro. Por ser estándar, podría apuntar a 3 (y dejar 1 para el juego tal y como está).

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