-- Information: -- -- PPU (Picture processing unit) -- -- LR35902 (DMG) -- return { screen = { width = 160, height = 144, vsync = 59.73, origin = { x = 0, y = 0, }, -- Total of unique texels, pixels and vertices on VRAM -- pixels = 21504, texels = 296, vertices = false, }, colours = { total = 4, limit = false, transparent = { sprite = 'colourKey', tile = false, }, tileDepth = 'colourKey', palettes = { { total = 2, type = 'spritePerPalette', colours = 4, layers = false, }, { total = 1, type = 'tilePerPaletteBySeccion', colours = 4, 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 = 40, -- Limit sprites on line (scanline) without flickering -- onLine = 10, unique = 256, 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 = 32, tiles = 1024, pixels = 65536, }, }, 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 = 20+1, Ytiles = 18+1, tiles = 360+20+18+1, pixels = 23040, }, }, tiles = 'screenSections', pixels = 'screenSections', }, -- Total of tiles on VRAM -- unique = { data = 192, background = 256, total = 448, }, maximum = false, mirror = { switchable = false, nametables = 1, 'free tiles', }, screenSections = { main = { optional = false, moveSection = false, { startSection = { x = 'startVRAM', y = 'startVRAM', }, endSection = { x = 'endVRAM', y = 'endVRAM', }, size = { -- Tile size in pixels -- width = 8, height = 8, }, transform = { move = true, rotate = false, scale = false, shear = false, affine = false, }, }, }, overlay0 = { optional = true, moveSection = true, { startSection = { x = 'free', y = 'free', }, endSection = { x = 'free', y = 'free', }, size = { -- Tile size in pixels -- width = 8, height = 8, }, transform = { move = false, rotate = false, scale = false, shear = false, affine = false, }, }, }, }, }, }, }, }