-- Information: -- -- Video Mode 2 (official) -- -- -- -- Maximum sprites on screen -- -- can be changed by compilation. -- -- Default value is: -- -- MAX_SPRITES=32 -- -- Available value is: -- -- MAX_SPRITES=1 to MAX_SPRITES=32 or more, -- -- but is not recomended, due of hardware -- -- limitation. -- -- -- -- Vertical tiles on VRAM, -- -- can be changed by compilation, -- -- but is not recomended. -- -- Default value is: -- -- VRAM_TILES_V=32 -- -- -- -- Numbers of screen sections, -- -- can be changed by compilation. -- -- Default value is: -- -- SCREEN_SECTIONS_COUNT=1 -- -- Only height size and position of -- -- screen sections can changed: -- -- * width size = VRAM width tiles, -- -- * height size = 1 to 208 pixels -- -- * numbers = 1 to 28 sections -- -- * position = X axis -- -- -- -- Numbers of video lines to render, -- -- can be changed by compilation, -- -- but is not recommended, changes the -- -- CPU cyles. -- -- Default value is: -- -- FRAME_LINES=SCREEN_TILES_V*TILE_HEIGHT -- -- -- -- First render line is used to adjust -- -- vertical centering if the value -- -- FRAME_LINES is changed. -- -- Can be changed by compilation. -- -- Default value is: -- -- FIRST_RENDER_LINE=20 -- -- Sites: -- http://uzebox.org/wiki/index.php?title=Video_Modes -- http://uzebox.org/wiki/index.php?title=Mode_2_Sprites_Guide -- http://uzebox.org/wiki/index.php?title=Mode_2_ScreenSections_Guide -- https://github.com/Uzebox/uzebox -- https://raw.githubusercontent.com/Uzebox/uzebox/master/kernel/videoMode2/videoMode2.def.h -- https://raw.githubusercontent.com/Uzebox/uzebox/master/kernel/videoMode2/videoMode2.s return { screen = { width = 144, height = 224, vsync = 60, origin = { x = 0, y = 0, }, -- Total of unique texels, pixels and vertices on VRAM -- pixels = 13824, texels = 288, vertices = false, }, colours = { total = 256, limit = false, transparent = { sprite = colourKey, tile = false, }, palettes = false, }, meshes = false, shaders = { api = false, version = false, fragment = false, vectex = false, geometry = false, tessellation = false, }, physic = false, sprites = { -- Limit sprites on screen -- onScreen = 32, -- Limit sprites on line (scanline) without flickering -- onLine = 5, transform = { move = true, rotate = false, scale = 'verticalFlip', shear = false, affine = false, }, -- Sprite sizes in pixels -- sizes = { { width = 6, height = 8, }, }, }, tiles = { layers = { { -- Total tiles and pixels on VRAM -- onVRAM = { screenSections = { all = { Xtiles = 32, Ytiles = 32, tiles = 1024, pixels = 49152, }, }, 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 = 24+1, Ytiles = 28+1, tiles = 672+24+28+1, pixels = 32256, }, }, tiles = 'screenSections', pixels = 'screenSections', }, -- Total of unique tiles on VRAM -- unique = 256, screenSections = { mirror = false, main = { optional = false, moveSection = false, { startSection = { x = 'startVRAM', y = 'startVRAM', }, endSection = { x = 'endVRAM', y = 'endVRAM', }, size = { -- Tile size in pixels -- width = 6, height = 8, }, transform = { move = true, rotate = false, scale = false, shear = false, affine = false, }, }, }, overlay0 = { optional = true, moveSection = true, { startSection = { x = 'startVRAM', y = 'free', }, endSection = { x = 'endVRAM', y = 'free', }, size = { -- Tile size in pixels -- width = 6, height = 8, }, transform = { move = true, rotate = false, scale = false, shear = false, affine = false, }, }, }, overlay1 = { optional = true, moveSection = true, { startSection = { x = 'startVRAM', y = 'free', }, endSection = { x = 'endVRAM', y = 'free', }, size = { -- Tile size in pixels -- width = 6, height = 8, }, transform = { move = true, rotate = false, scale = false, shear = false, affine = false, }, }, }, }, }, }, }, }