Mapa de memoria ¿Que hay en cada rango de memoria? RAM, ROM Registros de vídeo, RAM de vídeo, tilemaps, sprites, display lists Registros de sonido Puertos de E/S (Controles) Protección Test de memoria del menú de servicio, da pistas sobre qué hay en cada área (a veces).
Gráficos Hardware sistemas 2D: Framebuffers Tilemaps + Sprites Framebuffers Dibujar toda la pantalla cada frame pixel a pixel Procesadores lentos=Haría falta un procesador dedicado a dibujar (existen sistemas así). Blitters (DMAs de ROM/RAM a Framebuffer con efectos)
Gráficos: Tilemaps Dibujado por hardware, 0% de CPU. Mosaico de NxN piezas de MxM Pixels. Piezas (Tiles) en ROM o RAM. Área de memoria con las casillas. Cada casilla, índice a tile + paleta de color. Gráficos limitados a los tiles existentes. Mosaico mas grande que la pantalla. Scroll H/V cambiando un registro. Movimiento “gratis” para la CPU. Dos forma de emularlo: Dibujar al framebuffer todo el tilemap cada frame. Carga en textura y usar GPU para scroll, y mezcla. También “gratis” para el emulador.
Gráficos: Tilemaps Características avanzadas Transparencia Prioridad mezclada con los sprites Linescroll, Columnscroll ROZ Modificaciones por interrupciones raster
Gráficos: Sprites Display List: Lista de índices en RAM o ROM + Paleta + posición. Cada sprite, uno o mas tiles. Prioridad, intercalación entre tilemaps. Para emularlo, recorrer la display list y dibujar tiles al framebuffer. También precargar como texturas y dibujar quads, (sobre sistemas con 3D potente pero poco procesador (PSP))
Gráficos CPS1/CPS2: 3 Tilemaps (32×32,16×16,8×8 orden programable) + Sprites NeoGeo: 1 Tilemap (8×8, fijo) + Sprites PGM: 2 Tilemaps (8×8,16×16 orden fijo) + Sprites Crystal System: Blitter Model2: 2 Tilemaps (8×8 orden programable) + 3D.
Gráficos Almacenamiento en ROM, una pesadilla. Adivinar buscando gráficos conocidos (letras, números) Cada fabricante su sistema: CPS1/2: Bit interleaved en 4 roms. 1 bit de cada rom=pixel de 4bpp. NeoGeo: Byte interleaved en 2 roms. Bloques de 4 bytes, 1 bit de cada byte en el bloque=4bpp PGM: rom máscaras de pixels visibles + rom de colores (solo los visibles) empaquetados a 5bpp: 6 pixels en 32 bits (2 no usados) CPS3: Tablas de sustitución de patrones de 2 bytes + compresión RLE. Fue un milagro.
Gráficos Tilemap Texto (mascara)
Gráficos Tilemap Texto (Color)
Gráficos Tilemaps Scroll
Gráficos Sprites (Posición) Final
Gráficos
Gráficos: 3D Display lists DSPs para leer la display list y hacer T&L de polígonos. Dos opciones: Emular el DSP. Mas precisa pero mas lenta: MAME. Estudiar el código del DSP y reescribirlo en el emulador optimizado (Model2 Emulator). Rasterización: Software render: Pixel accurate, más lento: MAME Direct3D/OpenGL: Menos preciso. Más rápido, aprovecha tarjetas 3D. Model2 Emulator.
Gráficos: 3D Geometría Evolución de la emulación de 3D del emulador de Model2
Gráficos: 3D Color
Gráficos: 3D Texturas
Página anterior | Volver al principio del trabajo | Página siguiente |