diff options
Diffstat (limited to 'src/hardware_data/graphics/uze_atmega644_mode2_3-screen-sections.lua')
-rw-r--r-- | src/hardware_data/graphics/uze_atmega644_mode2_3-screen-sections.lua | 214 |
1 files changed, 214 insertions, 0 deletions
diff --git a/src/hardware_data/graphics/uze_atmega644_mode2_3-screen-sections.lua b/src/hardware_data/graphics/uze_atmega644_mode2_3-screen-sections.lua new file mode 100644 index 0000000..040b3b1 --- /dev/null +++ b/src/hardware_data/graphics/uze_atmega644_mode2_3-screen-sections.lua @@ -0,0 +1,214 @@ +-- Information: -- +-- Video Mode 2 (official) -- +-- -- +-- 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 -- +-- -- +-- Fist 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 = 25, + Ytiles = 29, + tiles = 725, + pixels = 34800, + }, + }, + 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, + }, + }, + }, + }, + }, + }, + }, +} |