-- Information: -- -- Video Mode 13 (official) -- -- -- -- Scroll Mode and Static Mode, -- -- can be changed by compilation. -- -- Default value is: -- -- SCROLLING=0 (Static Mode) -- -- Available values are: -- -- SCROLLING=0 (Static Mode) -- -- SCROLLING=1 (Scroll Mode) -- -- -- -- Maximum sprites on screen and RAM tiles -- -- can be changed by compilation. -- -- In video mode 3, the maximum -- -- sprites on screen is 20, due of limit -- -- VRAM (4K) and CPU -- -- In video mode 13, the maximum -- -- sprites on screen is more that 20, due -- -- of palette limitation. -- -- Default value is: -- -- RAM_TILE_COUNT=0 -- -- RAM_TILE_COUNT is needed to change to -- -- compile it. -- -- MAX_SPRITES=32 (20) -- -- MAX_RAMTILES=90 -- -- Available values are: -- -- RAM_TILE_COUNT=1 to -- -- RAM_TILE_COUNT=255 -- -- MAX_SPRITES=1 to MAX_SPRITES=20 or more, -- -- but is not recomended, due of hardware -- -- limitation. -- -- MAX_RAMTILES=90 (unchangeable) -- -- -- -- Default palette (8 colours) and -- -- Extended palette (15 colours) -- -- can be changed by compilation. -- -- Default value is: -- -- EXTENDED_PALETTE=0 -- -- Available value is: -- -- EXTENDED_PALETTE=0 -- -- EXTENDED_PALETTE=1 -- -- -- -- Horizontal tiles on screen and/or VRAM, -- -- can be changed by compilation, -- -- but is not recomended. -- -- Default value is: -- -- {SCREEN,VRAM}_TILES_H=30 if SCROLLING=0 -- -- and SCREEN_TILES_H == VRAM_TILES_H -- -- SCREEN_TILES_H=28 if SCROLLING=1 -- -- VRAM_TILES_H=32 if SCROLLING=1 -- -- -- -- Vertical tiles on screen and/or VRAM, -- -- can be changed by compilation, -- -- but is not recomended. -- -- Default value is: -- -- {SCREEN,VRAM}_TILES_V=28 if SCROLLING=0 -- -- and SCREEN_TILES_V == VRAM_TILES_V -- -- SCREEN_TILES_V=28 if SCROLLING=1 -- -- VRAM_TILES_V=32 if SCROLLING=1 -- -- Available value is: -- -- VRAM_TILES_V=32 if SCROLLING=1 -- -- VRAM_TILES_V=24 if SCROLLING=1 -- -- VRAM_TILES_V=16 if SCROLLING=1 -- -- -- -- Tile width size in pixels, -- -- can be changed by compilation, -- -- more that 224 pixels is not recommended. -- -- Default value is: -- -- TILE_WIDTH=8 -- -- Available value is: -- -- TILE_WIDTH=1 to TILE_WIDTH=224 or more -- -- -- -- Tile height size in pixels, -- -- can be changed by compilation, -- -- more that 224 pixels with scrolling or -- -- 240 pixels without scrolling is not -- -- recommended. -- -- Default value is: -- -- TILE_HEIGHT=8 -- -- Available value is: -- -- TILE_HEIGHT=1 to TILE_HEIGHT=224 or more -- -- if SCROLLING=1 -- -- TILE_HEIGHT=1 to TILE_HEIGHT=240 or more -- -- if SCROLLING=0 -- -- -- -- 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=Video_Mode_13 -- http://uzebox.org/wiki/index.php?title=Video_Mode_3 -- http://uzebox.org/wiki/index.php?title=Ram_Tile_Effects_Primer -- http://uzebox.org/wiki/index.php?title=Sprite_Techniques -- http://uzebox.org/wiki/index.php?title=Hello_World -- 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 = 224, height = 224, vsync = 60, origin = { x = 0, y = 0, }, -- Total of unique texels, pixels and vertices on VRAM -- pixels = 17664, texels = 276, vertices = false, }, colours = { total = 256, limit = false, transparent = { sprite = colourKey, tile = false, }, palettes = { total = 1, type = 'global', colours = 8, 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 = 20, -- Limit sprites on line (scanline) without flickering (undocumented, but is visible with 10 or more) -- onLine = false, transform = { move = true, rotate = false, scale = 'flip', shear = false, affine = false, }, -- Sprite sizes in pixels -- sizes = { { width = 8, height = 8, }, }, }, 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 = 28+1, Ytiles = 28+1, tiles = 784+28+28+1, pixels = 50176, }, }, 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 = 8, height = 8, }, transform = { move = true, rotate = false, scale = false, shear = false, affine = false, }, }, }, overlay = { optional = true, moveSection = false, { 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, }, }, }, }, }, }, }, }