Ya he hecho los cálculos.
Suponiendo que el star wing utilice tiles
de 32 Bytes (un desperdicio siendo que esos gráficos son mayormente "monocolor" por cada tile, tenemos que funciona a una ventana
de 224x190, lo que deja 665 tiles para transferir cada pantallazo.
Serían necesarios 21.280 Bytes por frame para funcionar a 60fps.
Pero con 190 líneas
de resolución vertical (que poco me gusta decir vertical), mas el ancho
de banda nominal, el ancho
de banda conseguible es
de 12.084 Bytes por frame, así que un star wing a esa resolución podría funcionar a un máximo
de 34 frames por segundo.
Eso si, si en realidad usa tiles
de 2BPP, entonces ya hablaríamos
de 16 Bytes por tile, y el star wing podría alcanzar los 60fps
si el overclocking proporcionara la capacidad de ejecución necesaria, e incluso a un poco mas
de resolución.
Lo cojonudo es que gracias a la implementación por fín del super fx, ponerse a pensar en estas cosas es una meta factible en un futuro.
Sexy MotherFucker escribió:Por eso vienen de puta madre los sprites a 16x32 y 32x64
¿Cúal era la limitación
de esto? ¿El SOLO poder usar ese tamaño
de sprite una vez lo fuerces?
De lo que voy a decir bórralo
de tu mente nada mas leerlo, porque no es información
de primera mano.
Es un tema extraordinariamente complejo, porque no está documentado y aún están trasteando con ello, y no me refiero a que sea complejo
de conseguir (porque basta con cambiar ciertos valores
de la OBSEL), sino a que aún no se puede afirmar con rotundidad que flexibilidad
de tamaños puedes tener, básicamente por falta
de testeo.
Si hay que decir algo, creo que 16x32 y 16x16 es una configuración válida... o 32x64 y 32x32... tal vez 8x16 y 8x8... pero ni idea
de si puedes elegir 8x8 y 16x32.
Parece que hay que evitar escribir usando el hdma porque causa conflictos, así que tienes que hacerlo fuera del v-blank, durante la pantalla activa mientras el PPU1 está escaneando la tabla
de atributos
de sprites (OAM). Eso significa que hay que tirar
de interrupciones y manipular la información manualmente (es decir, UNA interrupción, tampoco es que sea una cosa muy bruta).
Lo dicho, ignóralo xD