-- Information: -- -- PPU (Picture processing unit) -- -- RP2C03/RP2C04/RP2C05 with MMC2/MMC4 -- -- (Memory management controller) -- return { screen = { width = 256, height = 224, vsync = 60.0985, origin = { x = 0, y = -8, }, -- Total of unique texels, pixels and vertices on VRAM -- pixels = 139264, texels = 576, vertices = false, }, colours = { total = 64, limit = 25, transparent = { sprite = colourKey, tile = colourKey, }, palettes = { { total = 4, type = 'tilePerPalette', colours = 3, layers = false, }, { total = 4, type = 'spritePerPalette', colours = 3, layers = false, }, }, }, meshes = false, shaders = { api = false, version = false, fragment = false, vectex = false, geometry = false, tessellation = false, }, physic = false, sprites = { -- Limit sprites on screen -- onScreen = 64, -- Limit sprites on line (scanline) without flickering -- onLine = 8, transform = { move = true, rotate = false, scale = 'flip', shear = false, affine = false, }, -- Sprite sizes in pixels -- sizes = { { width = 8, height = 8, }, { width = 8, height = 16, }, }, }, tiles = { layers = { { -- Total tiles and pixels on VRAM -- onVRAM = { screenSections = { all = { Xtiles = 32, Ytiles = 30, tiles = 960, pixels = 245760, }, }, tiles = 'screenSections', pixels = 'screenSections', }, -- Total tiles and pixels on screen -- onScreen = { screenSections = { -- On screen section with support scrolling X and/or Y, -- -- will be include one tile by axis -- all = { Xtiles = 16+1, Ytiles = 15+1, tiles = 240+16+14+1, pixels = 61440, }, }, tiles = 'screenSections', pixels = 'screenSections', }, -- Total of unique tiles on VRAM -- unique = 512, screenSections = { main = { optional = false, moveSection = false, { startSection = { x = 'startVRAM', y = 'startVRAM', }, endSection = { x = 'endVRAM', y = 'endVRAM', }, size = { -- Tile size in pixels -- width = 16, height = 16, }, transform = { move = true, rotate = false, scale = false, shear = false, affine = false, }, }, }, }, }, }, }, }