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