summaryrefslogtreecommitdiff
path: root/src/hardware_data/graphics/gpu_mali400mp2-fhdHandled.lua
diff options
context:
space:
mode:
Diffstat (limited to 'src/hardware_data/graphics/gpu_mali400mp2-fhdHandled.lua')
-rw-r--r--src/hardware_data/graphics/gpu_mali400mp2-fhdHandled.lua234
1 files changed, 234 insertions, 0 deletions
diff --git a/src/hardware_data/graphics/gpu_mali400mp2-fhdHandled.lua b/src/hardware_data/graphics/gpu_mali400mp2-fhdHandled.lua
new file mode 100644
index 0000000..8029ee3
--- /dev/null
+++ b/src/hardware_data/graphics/gpu_mali400mp2-fhdHandled.lua
@@ -0,0 +1,234 @@
+-- Information: --
+-- SoC GPU Mali-400 MP2 (2 GPU cores) --
+-- with FHD handled game resolution --
+
+return {
+ screen = {
+ width = 1920,
+ height = 1080,
+ aspect = {
+ display = {
+ x = 3,
+ y = 2,
+ },
+ pixel = {
+ x = 80/81,
+ y = 1,
+ },
+ },
+ vsync = 120,
+ 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)/(18*12),
+ 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 = 18,
+ height = 12,
+ -- 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 = 637009920,
+ },
+ },
+ 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 = 2535624,
+ },
+ },
+ 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 = 18,
+ height = 12,
+ -- 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',
+ },
+ },
+}