From 9bb8543c5258148a3f026c1b437ceaa6a983bf05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?coadde=20=5BM=C3=A1rcio=20Alexandre=20Silva=20Delgado=5D?= Date: Fri, 23 Dec 2016 12:45:27 -0300 Subject: Update graphics modes --- .../uze_atmega644_mode1_tile-size-6x8px.lua | 61 ++++-- .../uze_atmega644_mode1_tile-size-8x8px.lua | 63 ++++-- src/hardware_data/graphics/uze_atmega644_mode2.lua | 126 +----------- .../uze_atmega644_mode2_1-screen-section.lua | 162 ++++++++++++++++ .../uze_atmega644_mode2_2-screen-sections.lua | 188 ++++++++++++++++++ .../uze_atmega644_mode2_3-screen-sections.lua | 214 +++++++++++++++++++++ 6 files changed, 650 insertions(+), 164 deletions(-) mode change 100644 => 120000 src/hardware_data/graphics/uze_atmega644_mode2.lua create mode 100644 src/hardware_data/graphics/uze_atmega644_mode2_1-screen-section.lua create mode 100644 src/hardware_data/graphics/uze_atmega644_mode2_2-screen-sections.lua create mode 100644 src/hardware_data/graphics/uze_atmega644_mode2_3-screen-sections.lua diff --git a/src/hardware_data/graphics/uze_atmega644_mode1_tile-size-6x8px.lua b/src/hardware_data/graphics/uze_atmega644_mode1_tile-size-6x8px.lua index 5ebbc9c..d9c970f 100644 --- a/src/hardware_data/graphics/uze_atmega644_mode1_tile-size-6x8px.lua +++ b/src/hardware_data/graphics/uze_atmega644_mode1_tile-size-6x8px.lua @@ -1,4 +1,5 @@ -- Information: -- +-- Video Mode 1 (official) -- -- -- -- Vertical tiles on screen and VRAM, -- -- can be changed by compilation, -- @@ -35,9 +36,27 @@ -- MODE1_FAST_VSYNC=1 (60Mhz) -- -- MODE1_FAST_VSYNC=0 (30Mhz) -- -- -- --- More options: -- --- FIRST_RENDER_LINE=20 -- +-- Only one screen section support. -- +-- -- +-- 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 +-- https://github.com/Uzebox/uzebox +-- https://raw.githubusercontent.com/Uzebox/uzebox/master/kernel/videoMode1/videoMode1.def.h +-- https://raw.githubusercontent.com/Uzebox/uzebox/master/kernel/videoMode1/videoMode1.s return { screen = { @@ -48,6 +67,7 @@ return { x = 0, y = 0, }, + -- Total of unique texels, pixels and vertices on VRAM -- pixels = 3145728, texels = 65536, vertices = false, @@ -75,40 +95,43 @@ return { tiles = { layers = { { - -- Total tiles on VRAM -- + -- Total tiles and pixels on VRAM -- onVRAM = { screenSections = { all = { - x = 40, - y = 28, - total = 1600, + Xtiles = 40, + Ytiles = 28, + tiles = 1600, + pixels = 76800, }, }, - total = 'screenSections', + tiles = 'screenSections', + pixels = 'screenSections', }, - -- Total tiles on screen is same as VRAM tiles -- + -- Total tiles and pixels on screen (is same as VRAM) -- onScreen = 'vram', -- Total of unique tiles on VRAM -- unique = 65536, screenSections = { - mirror = false, - main = { - optional = false, + mirror = false, + main = { + optional = false, + moveSection = false, { - startCut = { - x = 0, - y = 0, + startSection = { + x = 'startVRAM', + y = 'startVRAM', }, - endCut = { - x = 0, - y = 0, + endSection = { + x = 'endVRAM', + y = 'endVRAM', }, - size = { + size = { -- Tile size in pixels -- width = 6, height = 8, }, - transform = { + transform = { move = 'simulate', rotate = false, scale = false, diff --git a/src/hardware_data/graphics/uze_atmega644_mode1_tile-size-8x8px.lua b/src/hardware_data/graphics/uze_atmega644_mode1_tile-size-8x8px.lua index 1e047e4..3520733 100644 --- a/src/hardware_data/graphics/uze_atmega644_mode1_tile-size-8x8px.lua +++ b/src/hardware_data/graphics/uze_atmega644_mode1_tile-size-8x8px.lua @@ -1,4 +1,5 @@ -- Information: -- +-- Video Mode 1 (official) -- -- -- -- Vertical tiles on screen and VRAM, -- -- can be changed by compilation, -- @@ -35,9 +36,27 @@ -- MODE1_FAST_VSYNC=1 (60Mhz) -- -- MODE1_FAST_VSYNC=0 (30Mhz) -- -- -- --- More options: -- --- FIRST_RENDER_LINE=20 -- +-- Only one screen section support. -- +-- -- +-- 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 +-- https://github.com/Uzebox/uzebox +-- https://raw.githubusercontent.com/Uzebox/uzebox/master/kernel/videoMode1/videoMode1.def.h +-- https://raw.githubusercontent.com/Uzebox/uzebox/master/kernel/videoMode1/videoMode1.s return { screen = { @@ -48,7 +67,8 @@ return { x = 0, y = 0, }, - pixels = 3145728, + -- Total of unique texels, pixels and vertices on VRAM -- + pixels = 4194304, texels = 65536, vertices = false, }, @@ -75,40 +95,43 @@ return { tiles = { layers = { { - -- Total tiles on VRAM -- + -- Total tiles and pixels on VRAM -- onVRAM = { screenSections = { all = { - x = 30, - y = 28, - total = 900, + Xtiles = 30, + Ytiles = 28, + tiles = 900, + pixels = 57600, }, }, - total = 'screenSections', + tiles = 'screenSections', + pixels = 'screenSections', }, - -- Total tiles on screen is same as VRAM tiles -- + -- Total tiles and pixels on screen (is same as VRAM) -- onScreen = 'vram', -- Total of unique tiles on VRAM -- unique = 65536, screenSections = { - mirror = false, - main = { - optional = false, + mirror = false, + main = { + optional = false, + moveSection = false, { - startCut = { - x = 0, - y = 0, + startSection = { + x = 'startVRAM', + y = 'startVRAM', }, - endCut = { - x = 0, - y = 0, + endSection = { + x = 'endVRAM', + y = 'endVRAM', }, - size = { + size = { -- Tile size in pixels -- width = 8, height = 8, }, - transform = { + transform = { move = 'simulate', rotate = false, scale = false, diff --git a/src/hardware_data/graphics/uze_atmega644_mode2.lua b/src/hardware_data/graphics/uze_atmega644_mode2.lua deleted file mode 100644 index 1a645c2..0000000 --- a/src/hardware_data/graphics/uze_atmega644_mode2.lua +++ /dev/null @@ -1,125 +0,0 @@ -return { - screen = { - { - width = 144, - height = 224, - refresh = 60, - origin = { - x = 0, - y = 0, - }, - }, - pixels = 13824, - texels = 288, - vertices = false, - }, - colours = { - total = 256, - limit = false, - background = true, - 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 = { - onScreen = 32, - onLine = 5, - transform = { - move = true, - rotate = false, - scale = 'verticalFlip', - shear = false, - affine = false, - }, - sizes = { - { - width = 6, - height = 8, - }, - }, - }, - tiles = { - layers = { - { - total = { - x = 32, - y = 32, - 1024, - }, - onScreen = { - { - 725, - }, - }, - unique = 256, - screenSections = { - mirror = false, - main = { - optional = false, - { - startCut = { - x = 0, - y = 0, - }, - endCut = { - x = 0, - y = 0, - }, - sizes = { - { - width = 6, - height = 8, - }, - }, - transform = { - move = true, - rotate = false, - scale = false, - shear = false, - affine = false, - }, - }, - }, - multiples = { - optional = true, - { - startCut = { - x = 'free', - y = 'free', - }, - endCut = { - x = 'free', - y = 'free', - }, - sizes = { - { - width = 6, - height = 8, - }, - }, - transform = { - move = true, - rotate = false, - scale = false, - shear = false, - affine = false, - }, - }, - }, - }, - }, - }, - }, -} diff --git a/src/hardware_data/graphics/uze_atmega644_mode2.lua b/src/hardware_data/graphics/uze_atmega644_mode2.lua new file mode 120000 index 0000000..5d601f6 --- /dev/null +++ b/src/hardware_data/graphics/uze_atmega644_mode2.lua @@ -0,0 +1 @@ +uze_atmega644_mode2_1-screen-section.lua \ No newline at end of file diff --git a/src/hardware_data/graphics/uze_atmega644_mode2_1-screen-section.lua b/src/hardware_data/graphics/uze_atmega644_mode2_1-screen-section.lua new file mode 100644 index 0000000..e0a7817 --- /dev/null +++ b/src/hardware_data/graphics/uze_atmega644_mode2_1-screen-section.lua @@ -0,0 +1,162 @@ +-- 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, + }, + }, + }, + }, + }, + }, + }, +} 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, + }, + }, + }, + }, + }, + }, + }, +} 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, + }, + }, + }, + }, + }, + }, + }, +} -- cgit v1.2.3