› Foros › Retro y descatalogado › Consolas clásicas
realbrucest escribió:Se define un área de memoria como framebuffer y se emplea como "pantalla virtual". Esta zona corresponderá con el área donde por lo general lo que se tiene almacenado son los tiles pero en este caso se emplea para dibujar pixels.
Si la pantalla la rellenan 40x28 tiles pues si queremos que el engine 3D sea a pantalla completa en un área de este tamaño de la VRAM se van ubicando los pixels escribiendo valores de color en las posiciones correspondientes de dicho buffer hasta completar el dibujo de las figuras que se pretenda.
Cuando la imagen esté completa se hace un volcado de ésta a la superficie del plano.
Si se quiere más suavidad a la hora de actualizar el dibujo se recurrirá a un "doble buffer" (mientras se lee y escribe sobre la pantalla uno se va preparando el siguiente frame en otro).
Evidentemente todo el cálculo poligonal consiste en trigonometría por sofware y diversas rutinas de dibujo de líneas optimizadas para la ocasión.
Algo así.
Si queréis bichear en más profundidad bajaros el gensKmod y cotillear durante la ejecución de los juegos y demos la VRAM: CPU > Debug > Genisis > VDP.
Probarla con la rom del cubo de las sgdk que se ve "más o menos" bien la manera en que se usa el área de tiles como framebuffer.