PongPong; 20160202

No teman, animalicos, no voy a terminar reescribiéndolo todo. La gestión de los enemigos, el cálculo del bloque del mapa y demás zarandajas las reaprovecharé. Pero como uno es como es, pasa de hacer los metatiles y el charset a mano, así que por usar mi amado mkts.exe voy a tener que cambiar cosas sí o sí.

Además, por querer usar los últimos cc65 y neslib, tardo menos empezando el proyecto de 0 y cortando/pegando lo que necesite.

Por lo pronto muevo el código original a /dev/ref. Ref de referencia, no de refrito, desagradable.

~~

(Hoy no estoy podiendo hacer nada)

Hito #1: 1st compile: Inicialización, paletas, assets.

Lo primero que se suele hacer y estilar en estos casos: generar una ROM que básicamente no haga nada, pero que tenga todas las cosas cargadas y un bucle tonto.

~~

Hito #2: Scroller.

Bueno, este hito tiene más tomate. Por lo pronto voy a hacer la función que pinta una columna. Luego más shyte. Apunto por aquí toda la mierda que me salga, que me saldrá un montón de ella. Toda ella. Estos son los subhitos:

  • Pintar una columna, pero de forma menos atravesada (*). Para esto tengo que cambiar el conversor de mapas para que guarde las columnas en un formato más fácil, por columnas, por filas. Es un momento…
  • Pintar toda la pantalla actual (trivial, copypaste).
  • Scroll left/right (supuestamente trivial y copypaste).

(*) El atravesamiento tenía bastante que ver con varias cosas, entre ellas mi atravesamiento propio, y además el que la estructura para actualizar la nametable durante VBlank sólo permitía accesos “aleatorios” escribiendo tres bytes (2 addres, 1 pattern #). Ahora neslib permite hacer tiras horizontales o verticales, así que…

Para mayor velocidad y simplicidad de código, voy a meter en mkts un modo de metatiles 2×2 ordenados por columna, en vez de por filas.

Me apunto esto que lo necesitaré pronto:

rdb = (col_idx << 2) & 63;
rdc = rdb & 31;

// which nametable?
if (rdb < 32) {
	col_adr = NAMETABLE_A + (TOP_ADJUST << 5) + rdc; 	col_attr_adr = NAMETABLE_A +  		(TOP_ADJUST >> 2) << 3 +  		0x03c0 +  		(rdc >> 2);
} else {
	col_adr = NAMETABLE_B + (TOP_ADJUST << 5) + rdc; 	col_attr_adr = NAMETABLE_B +  		(TOP_ADJUST >> 2) << 3 +  		0x03c0 +  		(rdc >> 2);
}

~~

¡Scroll funcionando como un puto tiro!

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