-- Information: -- -- SoC GPU Mali-400 MP2 (2 GPU cores) -- -- with 4K resolution -- return { screen = { width = 3840, height = 2160, vsync = 120, origin = { x = 0, y = 0, }, -- Total of unique texels, pixels and vertices on VRAM -- pixels = 2*350*10^(3*2), texels = 2*350*10^(3*2)/(30*24), vertices = (38+1/3)*10^(3*2), }, colours = { total = 2^(8*4), limit = false, transparent = { sprite = 'alphaChannel', tile = 'alphaChannel', }, tileDepth = true, palettes = { { total = 1, type = 'perTexel', colours = 2^(8*4), layers = false, }, }, }, meshes = true, shaders = { api = 'glsl_es', version = '1.0.17', fragment = 2, vectex = 1, geometry = false, tessellation = false, }, physic = true, sprites = { -- Limit sprites on screen -- onScreen = 2^16, -- Limit sprites on line (scanline) without flickering -- onLine = false, unique = 'tiles', transform = { move = true, rotate = true, scale = true, shear = true, affine = true, }, size = { -- Default sprite size in pixels -- width = 30, height = 24, -- Diferent sprite sizes by scale allowed -- modes = { { minimumX = 1, minimumY = 1, maximumX = 128, maximumY = 128, }, }, }, }, tiles = { layers = { main = { -- Total tiles and pixels on VRAM -- onVRAM = { screenSections = { all = { Xtiles = 16*128, Ytiles = 16* 90, tiles = 2949120, pixels = 2123366400, }, }, 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 = 128+1, Ytiles = 90+1, tiles = 11520+128+90+1, pixels = 8452080, }, }, tiles = 'screenSections', pixels = 'screenSections', }, -- Total of tiles on VRAM -- unique = { data = 2^16, background = 'data', total = 65536, }, maximum = (11520+128+90+1)*5, mirror = { switchable = true, nametables = 16^2, modes = { 'horizontal', 'vertical', '1screen', '4screen', 'diagonal', 'lshaped', '3screenVertical', '3screenHorizontal', '3screenDiagonal', 'freeTiles' }, }, screenSections = { main = { optional = false, moveSection = false, { startSection = { x = 'startVRAM', y = 'startVRAM', }, endSection = { x = 'endVRAM', y = 'endVRAM', }, size = { -- Default tile size in pixels -- width = 30, height = 24, -- Diferent tile sizes by scale allowed -- modes = { { minimumX = 1, minimumY = 1, maximumX = 128, maximumY = 128, }, }, }, transform = { move = true, rotate = true, scale = true, shear = true, affine = true, }, }, }, overlay0 = { optional = true, moveSection = true, { startSection = { x = 'free', y = 'free', }, endSection = { x = 'free', y = 'free', }, size = 'likeMainSection', transform = 'likeMainSection', }, }, overlay1 = { optional = true, moveSection = true, { startSection = { x = 'free', y = 'free', }, endSection = { x = 'free', y = 'free', }, size = 'likeMainSection', transform = 'likeMainSection', }, }, overlay2 = { optional = true, moveSection = true, { startSection = { x = 'free', y = 'free', }, endSection = { x = 'free', y = 'free', }, size = 'likeMainSection', transform = 'likeMainSection', }, }, }, }, background0 = 'likeMainLayer', background1 = 'likeMainLayer', background2 = 'likeMainLayer', background3 = 'likeMainLayer', foreground0 = 'likeMainLayer', foreground1 = 'likeMainLayer', foreground2 = 'likeMainLayer', foreground3 = 'likeMainLayer', }, }, }