› Foros › Retro y descatalogado › Consolas clásicas
Conker64 escribió:@Señor Ventura
Me he basado en el rendimiento que conseguirían en su momento, sabiendo lo que hicieron con Castlevania, etc
Con las pruebas y conocimientos de ahora, a esa resolución, N64 puede hacer algo superior, no ya de rendimiento, sino algo, con tecnología superior.
Ni siquiera he tenido en cuenta el uso de coma flotante o subpixel, que darían mucha más suavidad a movimientos cortos de cuerpo o desplazamientos lentos de cámara (que los hay) en las escenas cuando hablan los personajes.
dirtymagic escribió:@radorn ¿que tiene de especial el SH de PSX en cuanto texturas?
Señor Ventura escribió:@Sogun Es curioso, pensaba que el desaprovechamiento de la caché de texturas era la insistencia en usar mip mapping para todo, pero que si prescindes de esto te quedan 4KB con no muchas condiciones.
¿Entonces realmente solo se dedican 2KB a caché de texturas?.
Sogun escribió:@Conker64
Creo que el tamaño real de las paletas sería:
Para texturas de 8 bits de profundidad (256 colores): (8 bits rojo + 8 bits verde + 8 bits azul) * 256 entradas / 8 = 768 bytes
Para texturas de 4 bits de profundidad (16 colores): (8 bits rojo + 8 bits verde + 8 bits azul) * 16 entradas / 8 = 48 bytes
No hay canal alfa. Las semitransparencias se realizan en la geometría (el polígono entero o por vértices e interpolando).
uint16_t palette_0[16] = { 0,19,29791,48609,21141,59193,22851,2115,31303,45961,24577,32769,10573,56585,47105,0 };
if( __bitdepth == 2 )
{
// 8 to 5 bit;
int r = color.r >> 3;
int g = color.g >> 3;
int b = color.b >> 3;
// Pack twice for compatibility with RDP packed colors
uint32_t conv = ((r & 0x1F) << 11) | ((g & 0x1F) << 6) | ((b & 0x1F) << 1) | (color.a >> 7);
return conv | (conv << 16);
}
else
{
return (color.r << 24) | (color.g << 16) | (color.b << 8) | (color.a);
}
// Set Fill Color
__rdp_ringbuffer_queue( 0x37000000 );
__rdp_ringbuffer_queue( color );
__rdp_ringbuffer_send();