jueves, 21 de febrero de 2008

Pues sí... en menudo embolado me he metido con este juego.

Me he visto obligado a reestructurar todo el bucle de juego para el modo de un jugador porque la rutina de detección de marcos es algo más lenta de lo que esperaba. Eso ha supuesto reescribir un par de rutinas del scroll y crear una nueva rutina de volcado de sprites para este modo, con el curioso efecto de que ahora hay dos rutinas de volcado de sprites en este modo, dependiendo de cuantos sprites queramos volcar.

Al final he logrado distribuir algo más uniformemente el tiempo de CPU a lo largo de dos frames consecutivos (4 centésimas de segundo en PAL y 3,333... en NTSC), con lo que he liberado muchísimo tiempo de CPU para poder analizar los choques de los disparos contra los QBIQS que vienen bajando. La rutina de detección de marcos se realiza en cuatro fases, de las cuales están testeadas ya las tres primeras y la última queda a la espera de ser codificada y comprobada. Visualmente todo es igual. Internamente, el cambio más sustancial consiste en que al acelerar el scroll ya no va pixel a pixel, sino de dos en dos. Cosa que apenas se nota (trampantojos nuevamente).

Con un poco de suerte (y un mucho de esfuerzo programando) este fin de semana los QBIQS se podrán borrar de la pantalla, con lo que el motor de juego estará prácticamente terminado, al menos en el modo de un jugador. Me da miedo mirar qué ha pasado en el modo de dos jugadores tras toquetear todo, aunque no debería haber mucho afectado. Veremos qué puedo llevar a la RetroMadrid...