diff options
Diffstat (limited to 'src')
6 files changed, 938 insertions, 2 deletions
diff --git a/src/hardware_data/graphics/gpu_mali400mp2-fhdHandled.lua b/src/hardware_data/graphics/gpu_mali400mp2-fhdHandled.lua index 8029ee3..9b4b95e 100644 --- a/src/hardware_data/graphics/gpu_mali400mp2-fhdHandled.lua +++ b/src/hardware_data/graphics/gpu_mali400mp2-fhdHandled.lua @@ -16,7 +16,7 @@ return { y = 1, }, }, - vsync = 120, + vsync = 60, origin = { x = 0, y = 0, diff --git a/src/hardware_data/graphics/gpu_mali400mp2-fhdTV.lua b/src/hardware_data/graphics/gpu_mali400mp2-fhdTV.lua index 69eefaf..56b80c4 100644 --- a/src/hardware_data/graphics/gpu_mali400mp2-fhdTV.lua +++ b/src/hardware_data/graphics/gpu_mali400mp2-fhdTV.lua @@ -16,7 +16,7 @@ return { y = 1, }, }, - vsync = 120, + vsync = 60, origin = { x = 0, y = 0, diff --git a/src/hardware_data/graphics/gpu_mali400mp2-xgaHandled.lua b/src/hardware_data/graphics/gpu_mali400mp2-xgaHandled.lua new file mode 100644 index 0000000..812b244 --- /dev/null +++ b/src/hardware_data/graphics/gpu_mali400mp2-xgaHandled.lua @@ -0,0 +1,234 @@ +-- Information: -- +-- SoC GPU Mali-400 MP2 (2 GPU cores) -- +-- with XGA handled game resolution -- + +return { + screen = { + width = 1024, + height = 768, + aspect = { + display = { + x = 3, + y = 2, + }, + pixel = { + x = 128/135, + y = 128/135, + }, + }, + vsync = 60, + origin = { + x = 0, + y = 0, + }, + -- Total of unique texels, pixels and vertices on VRAM -- + pixels = 2*350*10^(3*2), + texels = 2*350*10^(3*2)/(10*9), + vertices = (38+1/3)*10^(3*2), + }, + colours = { + total = 2^(8*4), + limit = false, + transparent = { + sprite = 'alphaChannel', + tile = 'alphaChannel', + }, + tileDepth = true, + palettes = { + { + total = 1, + type = 'perTexel', + colours = 2^(8*4), + layers = false, + }, + }, + }, + meshes = true, + shaders = { + api = 'glsl_es', + version = '1.0.17', + fragment = 2, + vectex = 1, + geometry = false, + tessellation = false, + }, + physic = true, + sprites = { + -- Limit sprites on screen -- + onScreen = 2^16, + -- Limit sprites on line (scanline) without flickering -- + onLine = false, + unique = 'tiles', + transform = { + move = true, + rotate = true, + scale = true, + shear = true, + affine = true, + }, + size = { + -- Default sprite size in pixels -- + width = 10, + height = 9, + -- Diferent sprite sizes by scale allowed -- + modes = { + { + minimumX = 1, + minimumY = 1, + maximumX = 128, + maximumY = 128, + }, + }, + }, + }, + tiles = { + layers = { + main = { + -- Total tiles and pixels on VRAM -- + onVRAM = { + screenSections = { + all = { + Xtiles = 16*128, + Ytiles = 16* 90, + tiles = 2949120, + pixels = 265420800, + }, + }, + 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 = 128+1, + Ytiles = 90+1, + tiles = 11520+128+90+1, + pixels = 1056510, + }, + }, + tiles = 'screenSections', + pixels = 'screenSections', + }, + -- Total of tiles on VRAM -- + unique = { + data = 2^16, + background = 'data', + total = 65536, + }, + maximum = (11520+128+90+1)*5, + mirror = { + switchable = true, + nametables = 16^2, + modes = { + 'horizontal', + 'vertical', + '1screen', + '4screen', + 'diagonal', + 'lshaped', + '3screenVertical', + '3screenHorizontal', + '3screenDiagonal', + 'freeTiles' + }, + }, + screenSections = { + main = { + optional = false, + moveSection = false, + { + startSection = { + x = 'startVRAM', + y = 'startVRAM', + }, + endSection = { + x = 'endVRAM', + y = 'endVRAM', + }, + size = { + -- Default tile size in pixels -- + width = 10, + height = 9, + -- Diferent tile sizes by scale allowed -- + modes = { + { + minimumX = 1, + minimumY = 1, + maximumX = 128, + maximumY = 128, + }, + }, + }, + transform = { + move = true, + rotate = true, + scale = true, + shear = true, + affine = true, + }, + }, + }, + overlay0 = { + optional = true, + moveSection = true, + { + startSection = { + x = 'free', + y = 'free', + }, + endSection = { + x = 'free', + y = 'free', + }, + size = 'likeMainSection', + transform = 'likeMainSection', + }, + }, + overlay1 = { + optional = true, + moveSection = true, + { + startSection = { + x = 'free', + y = 'free', + }, + endSection = { + x = 'free', + y = 'free', + }, + size = 'likeMainSection', + transform = 'likeMainSection', + }, + }, + overlay2 = { + optional = true, + moveSection = true, + { + startSection = { + x = 'free', + y = 'free', + }, + endSection = { + x = 'free', + y = 'free', + }, + size = 'likeMainSection', + transform = 'likeMainSection', + }, + }, + }, + }, + background0 = 'likeMainLayer', + background1 = 'likeMainLayer', + background2 = 'likeMainLayer', + background3 = 'likeMainLayer', + foreground0 = 'likeMainLayer', + foreground1 = 'likeMainLayer', + foreground2 = 'likeMainLayer', + foreground3 = 'likeMainLayer', + }, + }, +} diff --git a/src/hardware_data/graphics/gpu_mali400mp2-xgaTV.lua b/src/hardware_data/graphics/gpu_mali400mp2-xgaTV.lua new file mode 100644 index 0000000..f64aaa7 --- /dev/null +++ b/src/hardware_data/graphics/gpu_mali400mp2-xgaTV.lua @@ -0,0 +1,234 @@ +-- Information: -- +-- SoC GPU Mali-400 MP2 (2 GPU cores) -- +-- with XGA TV resolution -- + +return { + screen = { + width = 1024, + height = 768, + aspect = { + display = { + x = 4, + y = 3, + }, + pixel = { + x = 32/ 33, + y = 128/135, + }, + }, + vsync = 60, + origin = { + x = 0, + y = 0, + }, + -- Total of unique texels, pixels and vertices on VRAM -- + pixels = 2*350*10^(3*2), + texels = 2*350*10^(3*2)/(11*9), + vertices = (38+1/3)*10^(3*2), + }, + colours = { + total = 2^(8*4), + limit = false, + transparent = { + sprite = 'alphaChannel', + tile = 'alphaChannel', + }, + tileDepth = true, + palettes = { + { + total = 1, + type = 'perTexel', + colours = 2^(8*4), + layers = false, + }, + }, + }, + meshes = true, + shaders = { + api = 'glsl_es', + version = '1.0.17', + fragment = 2, + vectex = 1, + geometry = false, + tessellation = false, + }, + physic = true, + sprites = { + -- Limit sprites on screen -- + onScreen = 2^16, + -- Limit sprites on line (scanline) without flickering -- + onLine = false, + unique = 'tiles', + transform = { + move = true, + rotate = true, + scale = true, + shear = true, + affine = true, + }, + size = { + -- Default sprite size in pixels -- + width = 11, + height = 9, + -- Diferent sprite sizes by scale allowed -- + modes = { + { + minimumX = 1, + minimumY = 1, + maximumX = 128, + maximumY = 128, + }, + }, + }, + }, + tiles = { + layers = { + main = { + -- Total tiles and pixels on VRAM -- + onVRAM = { + screenSections = { + all = { + Xtiles = 16*128, + Ytiles = 16* 90, + tiles = 2949120, + pixels = 291962880, + }, + }, + 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 = 128+1, + Ytiles = 90+1, + tiles = 11520+128+90+1, + pixels = 1162161, + }, + }, + tiles = 'screenSections', + pixels = 'screenSections', + }, + -- Total of tiles on VRAM -- + unique = { + data = 2^16, + background = 'data', + total = 65536, + }, + maximum = (11520+128+90+1)*5, + mirror = { + switchable = true, + nametables = 16^2, + modes = { + 'horizontal', + 'vertical', + '1screen', + '4screen', + 'diagonal', + 'lshaped', + '3screenVertical', + '3screenHorizontal', + '3screenDiagonal', + 'freeTiles' + }, + }, + screenSections = { + main = { + optional = false, + moveSection = false, + { + startSection = { + x = 'startVRAM', + y = 'startVRAM', + }, + endSection = { + x = 'endVRAM', + y = 'endVRAM', + }, + size = { + -- Default tile size in pixels -- + width = 11, + height = 9, + -- Diferent tile sizes by scale allowed -- + modes = { + { + minimumX = 1, + minimumY = 1, + maximumX = 128, + maximumY = 128, + }, + }, + }, + transform = { + move = true, + rotate = true, + scale = true, + shear = true, + affine = true, + }, + }, + }, + overlay0 = { + optional = true, + moveSection = true, + { + startSection = { + x = 'free', + y = 'free', + }, + endSection = { + x = 'free', + y = 'free', + }, + size = 'likeMainSection', + transform = 'likeMainSection', + }, + }, + overlay1 = { + optional = true, + moveSection = true, + { + startSection = { + x = 'free', + y = 'free', + }, + endSection = { + x = 'free', + y = 'free', + }, + size = 'likeMainSection', + transform = 'likeMainSection', + }, + }, + overlay2 = { + optional = true, + moveSection = true, + { + startSection = { + x = 'free', + y = 'free', + }, + endSection = { + x = 'free', + y = 'free', + }, + size = 'likeMainSection', + transform = 'likeMainSection', + }, + }, + }, + }, + background0 = 'likeMainLayer', + background1 = 'likeMainLayer', + background2 = 'likeMainLayer', + background3 = 'likeMainLayer', + foreground0 = 'likeMainLayer', + foreground1 = 'likeMainLayer', + foreground2 = 'likeMainLayer', + foreground3 = 'likeMainLayer', + }, + }, +} diff --git a/src/hardware_data/graphics/gpu_mali400mp2-xgaTVwide0.lua b/src/hardware_data/graphics/gpu_mali400mp2-xgaTVwide0.lua new file mode 100644 index 0000000..d33aaea --- /dev/null +++ b/src/hardware_data/graphics/gpu_mali400mp2-xgaTVwide0.lua @@ -0,0 +1,234 @@ +-- Information: -- +-- SoC GPU Mali-400 MP2 (2 GPU cores) -- +-- with XGA TV wide (16:9) resolution -- + +return { + screen = { + width = 1024, + height = 768, + aspect = { + display = { + x = 16, + y = 9, + }, + pixel = { + x = 1, + y = 128/135, + }, + }, + vsync = 60, + origin = { + x = 0, + y = 0, + }, + -- Total of unique texels, pixels and vertices on VRAM -- + pixels = 2*350*10^(3*2), + texels = 2*350*10^(3*2)/(8*9), + vertices = (38+1/3)*10^(3*2), + }, + colours = { + total = 2^(8*4), + limit = false, + transparent = { + sprite = 'alphaChannel', + tile = 'alphaChannel', + }, + tileDepth = true, + palettes = { + { + total = 1, + type = 'perTexel', + colours = 2^(8*4), + layers = false, + }, + }, + }, + meshes = true, + shaders = { + api = 'glsl_es', + version = '1.0.17', + fragment = 2, + vectex = 1, + geometry = false, + tessellation = false, + }, + physic = true, + sprites = { + -- Limit sprites on screen -- + onScreen = 2^16, + -- Limit sprites on line (scanline) without flickering -- + onLine = false, + unique = 'tiles', + transform = { + move = true, + rotate = true, + scale = true, + shear = true, + affine = true, + }, + size = { + -- Default sprite size in pixels -- + width = 8, + height = 9, + -- Diferent sprite sizes by scale allowed -- + modes = { + { + minimumX = 1, + minimumY = 1, + maximumX = 128, + maximumY = 128, + }, + }, + }, + }, + tiles = { + layers = { + main = { + -- Total tiles and pixels on VRAM -- + onVRAM = { + screenSections = { + all = { + Xtiles = 16*128, + Ytiles = 16* 90, + tiles = 2949120, + pixels = 212336640, + }, + }, + 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 = 128+1, + Ytiles = 90+1, + tiles = 11520+128+90+1, + pixels = 845208, + }, + }, + tiles = 'screenSections', + pixels = 'screenSections', + }, + -- Total of tiles on VRAM -- + unique = { + data = 2^16, + background = 'data', + total = 65536, + }, + maximum = (11520+128+90+1)*5, + mirror = { + switchable = true, + nametables = 16^2, + modes = { + 'horizontal', + 'vertical', + '1screen', + '4screen', + 'diagonal', + 'lshaped', + '3screenVertical', + '3screenHorizontal', + '3screenDiagonal', + 'freeTiles' + }, + }, + screenSections = { + main = { + optional = false, + moveSection = false, + { + startSection = { + x = 'startVRAM', + y = 'startVRAM', + }, + endSection = { + x = 'endVRAM', + y = 'endVRAM', + }, + size = { + -- Default tile size in pixels -- + width = 8, + height = 9, + -- Diferent tile sizes by scale allowed -- + modes = { + { + minimumX = 1, + minimumY = 1, + maximumX = 128, + maximumY = 128, + }, + }, + }, + transform = { + move = true, + rotate = true, + scale = true, + shear = true, + affine = true, + }, + }, + }, + overlay0 = { + optional = true, + moveSection = true, + { + startSection = { + x = 'free', + y = 'free', + }, + endSection = { + x = 'free', + y = 'free', + }, + size = 'likeMainSection', + transform = 'likeMainSection', + }, + }, + overlay1 = { + optional = true, + moveSection = true, + { + startSection = { + x = 'free', + y = 'free', + }, + endSection = { + x = 'free', + y = 'free', + }, + size = 'likeMainSection', + transform = 'likeMainSection', + }, + }, + overlay2 = { + optional = true, + moveSection = true, + { + startSection = { + x = 'free', + y = 'free', + }, + endSection = { + x = 'free', + y = 'free', + }, + size = 'likeMainSection', + transform = 'likeMainSection', + }, + }, + }, + }, + background0 = 'likeMainLayer', + background1 = 'likeMainLayer', + background2 = 'likeMainLayer', + background3 = 'likeMainLayer', + foreground0 = 'likeMainLayer', + foreground1 = 'likeMainLayer', + foreground2 = 'likeMainLayer', + foreground3 = 'likeMainLayer', + }, + }, +} diff --git a/src/hardware_data/graphics/gpu_mali400mp2-xgaTVwide1.lua b/src/hardware_data/graphics/gpu_mali400mp2-xgaTVwide1.lua new file mode 100644 index 0000000..767652b --- /dev/null +++ b/src/hardware_data/graphics/gpu_mali400mp2-xgaTVwide1.lua @@ -0,0 +1,234 @@ +-- Information: -- +-- SoC GPU Mali-400 MP2 (2 GPU cores) -- +-- with XGA TV wide (16:10) resolution -- + +return { + screen = { + width = 1024, + height = 768, + aspect = { + display = { + x = 16, + y = 10, + }, + pixel = { + x = 1, + y = 24/25, + }, + }, + vsync = 60, + origin = { + x = 0, + y = 0, + }, + -- Total of unique texels, pixels and vertices on VRAM -- + pixels = 2*350*10^(3*2), + texels = 2*350*10^(3*2)/(8*8), + vertices = (38+1/3)*10^(3*2), + }, + colours = { + total = 2^(8*4), + limit = false, + transparent = { + sprite = 'alphaChannel', + tile = 'alphaChannel', + }, + tileDepth = true, + palettes = { + { + total = 1, + type = 'perTexel', + colours = 2^(8*4), + layers = false, + }, + }, + }, + meshes = true, + shaders = { + api = 'glsl_es', + version = '1.0.17', + fragment = 2, + vectex = 1, + geometry = false, + tessellation = false, + }, + physic = true, + sprites = { + -- Limit sprites on screen -- + onScreen = 2^16, + -- Limit sprites on line (scanline) without flickering -- + onLine = false, + unique = 'tiles', + transform = { + move = true, + rotate = true, + scale = true, + shear = true, + affine = true, + }, + size = { + -- Default sprite size in pixels -- + width = 8, + height = 8, + -- Diferent sprite sizes by scale allowed -- + modes = { + { + minimumX = 1, + minimumY = 1, + maximumX = 128, + maximumY = 128, + }, + }, + }, + }, + tiles = { + layers = { + main = { + -- Total tiles and pixels on VRAM -- + onVRAM = { + screenSections = { + all = { + Xtiles = 16*128, + Ytiles = 16* 90, + tiles = 2949120, + pixels = 188743680, + }, + }, + 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 = 128+1, + Ytiles = 90+1, + tiles = 11520+128+90+1, + pixels = 751296, + }, + }, + tiles = 'screenSections', + pixels = 'screenSections', + }, + -- Total of tiles on VRAM -- + unique = { + data = 2^16, + background = 'data', + total = 65536, + }, + maximum = (11520+128+90+1)*5, + mirror = { + switchable = true, + nametables = 16^2, + modes = { + 'horizontal', + 'vertical', + '1screen', + '4screen', + 'diagonal', + 'lshaped', + '3screenVertical', + '3screenHorizontal', + '3screenDiagonal', + 'freeTiles' + }, + }, + screenSections = { + main = { + optional = false, + moveSection = false, + { + startSection = { + x = 'startVRAM', + y = 'startVRAM', + }, + endSection = { + x = 'endVRAM', + y = 'endVRAM', + }, + size = { + -- Default tile size in pixels -- + width = 8, + height = 8, + -- Diferent tile sizes by scale allowed -- + modes = { + { + minimumX = 1, + minimumY = 1, + maximumX = 128, + maximumY = 128, + }, + }, + }, + transform = { + move = true, + rotate = true, + scale = true, + shear = true, + affine = true, + }, + }, + }, + overlay0 = { + optional = true, + moveSection = true, + { + startSection = { + x = 'free', + y = 'free', + }, + endSection = { + x = 'free', + y = 'free', + }, + size = 'likeMainSection', + transform = 'likeMainSection', + }, + }, + overlay1 = { + optional = true, + moveSection = true, + { + startSection = { + x = 'free', + y = 'free', + }, + endSection = { + x = 'free', + y = 'free', + }, + size = 'likeMainSection', + transform = 'likeMainSection', + }, + }, + overlay2 = { + optional = true, + moveSection = true, + { + startSection = { + x = 'free', + y = 'free', + }, + endSection = { + x = 'free', + y = 'free', + }, + size = 'likeMainSection', + transform = 'likeMainSection', + }, + }, + }, + }, + background0 = 'likeMainLayer', + background1 = 'likeMainLayer', + background2 = 'likeMainLayer', + background3 = 'likeMainLayer', + foreground0 = 'likeMainLayer', + foreground1 = 'likeMainLayer', + foreground2 = 'likeMainLayer', + foreground3 = 'likeMainLayer', + }, + }, +} |