summaryrefslogtreecommitdiff
path: root/src/hardware_data/graphics/uze_atmega644_mode2_2-screen-sections.lua
diff options
context:
space:
mode:
Diffstat (limited to 'src/hardware_data/graphics/uze_atmega644_mode2_2-screen-sections.lua')
-rw-r--r--src/hardware_data/graphics/uze_atmega644_mode2_2-screen-sections.lua188
1 files changed, 188 insertions, 0 deletions
diff --git a/src/hardware_data/graphics/uze_atmega644_mode2_2-screen-sections.lua b/src/hardware_data/graphics/uze_atmega644_mode2_2-screen-sections.lua
new file mode 100644
index 0000000..18de903
--- /dev/null
+++ b/src/hardware_data/graphics/uze_atmega644_mode2_2-screen-sections.lua
@@ -0,0 +1,188 @@
+-- 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,
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+}