summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcoadde [Márcio Alexandre Silva Delgado] <coadde@parabola.nu>2017-01-06 19:05:17 -0300
committercoadde [Márcio Alexandre Silva Delgado] <coadde@parabola.nu>2017-01-06 19:05:17 -0300
commit618430dd00f7d817d8bc953d36b32f74765942e1 (patch)
tree17dc26fb064cf81030452e35932a3287784152b0
parent41d837d1e54e33ecb82c37f46cbdeecaed55d52d (diff)
Update graphics modes (ppu_rp2c0x)
-rw-r--r--src/hardware_data/graphics/ppu_rp2c02+mmc2.lua136
-rw-r--r--src/hardware_data/graphics/ppu_rp2c02+mmc5.lua130
-rw-r--r--src/hardware_data/graphics/ppu_rp2c02.lua136
-rw-r--r--src/hardware_data/graphics/ppu_rp2c03+mmc2.lua136
-rw-r--r--src/hardware_data/graphics/ppu_rp2c03+mmc5.lua130
-rw-r--r--src/hardware_data/graphics/ppu_rp2c03.lua136
-rw-r--r--src/hardware_data/graphics/ppu_rp2c07+mmc2.lua136
-rw-r--r--src/hardware_data/graphics/ppu_rp2c07+mmc5.lua130
-rw-r--r--src/hardware_data/graphics/ppu_rp2c07.lua136
9 files changed, 1206 insertions, 0 deletions
diff --git a/src/hardware_data/graphics/ppu_rp2c02+mmc2.lua b/src/hardware_data/graphics/ppu_rp2c02+mmc2.lua
new file mode 100644
index 0000000..0e82835
--- /dev/null
+++ b/src/hardware_data/graphics/ppu_rp2c02+mmc2.lua
@@ -0,0 +1,136 @@
+return {
+ screen = {
+ width = 256,
+ height = 224,
+ vsync = 60.0988,
+ origin = {
+ x = 0,
+ y = -8,
+ },
+ -- Total of unique texels, pixels and vertices on VRAM --
+ pixels = 73728,
+ texels = 320,
+ vertices = false,
+ },
+ colours = {
+ total = 64,
+ limit = 25,
+ transparent = {
+ sprite = colourKey,
+ tile = colourKey,
+ },
+ palettes = {
+ {
+ total = 4,
+ type = 'tile',
+ colours = 3,
+ layers = false,
+ },
+ {
+ total = 4,
+ type = 'sprite',
+ colours = 3,
+ layers = false,
+ },
+ },
+ },
+ meshes = false,
+ shaders = {
+ api = false,
+ version = false,
+ fragment = false,
+ vectex = false,
+ geometry = false,
+ tessellation = false,
+ },
+ physic = false,
+ sprites = {
+ -- Limit sprites on screen --
+ onScreen = 64,
+ -- Limit sprites on line (scanline) without flickering --
+ onLine = 8,
+ transform = {
+ move = true,
+ rotate = false,
+ scale = 'flip',
+ shear = false,
+ affine = false,
+ },
+ -- Sprite sizes in pixels --
+ sizes = {
+ {
+ width = 8,
+ height = 8,
+ },
+ {
+ width = 8,
+ height = 16,
+ },
+ },
+ },
+ tiles = {
+ layers = {
+ {
+ -- Total tiles and pixels on VRAM --
+ onVRAM = {
+ screenSections = {
+ all = {
+ Xtiles = 32,
+ Ytiles = 30,
+ tiles = 960,
+ pixels = 245760,
+ },
+ },
+ 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 = 16+1,
+ Ytiles = 14+1,
+ tiles = 224+16+14+1,
+ pixels = 57344,
+ },
+ },
+ tiles = 'screenSections',
+ pixels = 'screenSections',
+ },
+ -- Total of unique tiles on VRAM --
+ unique = 512,
+ screenSections = {
+ mirror = true,
+ main = {
+ optional = false,
+ moveSection = false,
+ {
+ startSection = {
+ x = 'startVRAM',
+ y = 'startVRAM',
+ },
+ endSection = {
+ x = 'endVRAM',
+ y = 'endVRAM',
+ },
+ size = {
+ -- Tile size in pixels --
+ width = 16,
+ height = 16,
+ },
+ transform = {
+ move = true,
+ rotate = false,
+ scale = false,
+ shear = false,
+ affine = false,
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+}
diff --git a/src/hardware_data/graphics/ppu_rp2c02+mmc5.lua b/src/hardware_data/graphics/ppu_rp2c02+mmc5.lua
new file mode 100644
index 0000000..00cfe03
--- /dev/null
+++ b/src/hardware_data/graphics/ppu_rp2c02+mmc5.lua
@@ -0,0 +1,130 @@
+return {
+ screen = {
+ width = 256,
+ height = 224,
+ vsync = 60.0988,
+ origin = {
+ x = 0,
+ y = -8,
+ },
+ -- Total of unique texels, pixels and vertices on VRAM --
+ pixels = 73728,
+ texels = 320,
+ vertices = false,
+ },
+ colours = {
+ total = 64,
+ limit = 25,
+ transparent = {
+ sprite = colourKey,
+ tile = colourKey,
+ },
+ palettes = {
+ {
+ total = 1,
+ type = 'global',
+ colours = 3,
+ layers = false,
+ },
+ },
+ },
+ meshes = false,
+ shaders = {
+ api = false,
+ version = false,
+ fragment = false,
+ vectex = false,
+ geometry = false,
+ tessellation = false,
+ },
+ physic = false,
+ sprites = {
+ -- Limit sprites on screen --
+ onScreen = 64,
+ -- Limit sprites on line (scanline) without flickering --
+ onLine = 8,
+ transform = {
+ move = true,
+ rotate = false,
+ scale = 'flip',
+ shear = false,
+ affine = false,
+ },
+ -- Sprite sizes in pixels --
+ sizes = {
+ {
+ width = 8,
+ height = 8,
+ },
+ {
+ width = 8,
+ height = 16,
+ },
+ },
+ },
+ tiles = {
+ layers = {
+ {
+ -- Total tiles and pixels on VRAM --
+ onVRAM = {
+ screenSections = {
+ all = {
+ Xtiles = 32,
+ Ytiles = 30,
+ tiles = 960,
+ pixels = 245760,
+ },
+ },
+ 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 = 16+1,
+ Ytiles = 14+1,
+ tiles = 224+16+14+1,
+ pixels = 57344,
+ },
+ },
+ tiles = 'screenSections',
+ pixels = 'screenSections',
+ },
+ -- Total of unique tiles on VRAM --
+ unique = 65536,
+ screenSections = {
+ mirror = true,
+ main = {
+ optional = false,
+ moveSection = false,
+ {
+ startSection = {
+ x = 'startVRAM',
+ y = 'startVRAM',
+ },
+ endSection = {
+ x = 'endVRAM',
+ y = 'endVRAM',
+ },
+ size = {
+ -- Tile size in pixels --
+ width = 16,
+ height = 16,
+ },
+ transform = {
+ move = true,
+ rotate = false,
+ scale = false,
+ shear = false,
+ affine = false,
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+}
diff --git a/src/hardware_data/graphics/ppu_rp2c02.lua b/src/hardware_data/graphics/ppu_rp2c02.lua
new file mode 100644
index 0000000..c30c75c
--- /dev/null
+++ b/src/hardware_data/graphics/ppu_rp2c02.lua
@@ -0,0 +1,136 @@
+return {
+ screen = {
+ width = 256,
+ height = 224,
+ vsync = 60.0988,
+ origin = {
+ x = 0,
+ y = -8,
+ },
+ -- Total of unique texels, pixels and vertices on VRAM --
+ pixels = 73728,
+ texels = 320,
+ vertices = false,
+ },
+ colours = {
+ total = 64,
+ limit = 25,
+ transparent = {
+ sprite = colourKey,
+ tile = colourKey,
+ },
+ palettes = {
+ {
+ total = 4,
+ type = 'tile',
+ colours = 3,
+ layers = false,
+ },
+ {
+ total = 4,
+ type = 'sprite',
+ colours = 3,
+ layers = false,
+ },
+ },
+ },
+ meshes = false,
+ shaders = {
+ api = false,
+ version = false,
+ fragment = false,
+ vectex = false,
+ geometry = false,
+ tessellation = false,
+ },
+ physic = false,
+ sprites = {
+ -- Limit sprites on screen --
+ onScreen = 64,
+ -- Limit sprites on line (scanline) without flickering --
+ onLine = 8,
+ transform = {
+ move = true,
+ rotate = false,
+ scale = 'flip',
+ shear = false,
+ affine = false,
+ },
+ -- Sprite sizes in pixels --
+ sizes = {
+ {
+ width = 8,
+ height = 8,
+ },
+ {
+ width = 8,
+ height = 16,
+ },
+ },
+ },
+ tiles = {
+ layers = {
+ {
+ -- Total tiles and pixels on VRAM --
+ onVRAM = {
+ screenSections = {
+ all = {
+ Xtiles = 32,
+ Ytiles = 30,
+ tiles = 960,
+ pixels = 245760,
+ },
+ },
+ 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 = 16+1,
+ Ytiles = 14+1,
+ tiles = 224+16+14+1,
+ pixels = 57344,
+ },
+ },
+ tiles = 'screenSections',
+ pixels = 'screenSections',
+ },
+ -- Total of unique tiles on VRAM --
+ unique = 256,
+ screenSections = {
+ mirror = true,
+ main = {
+ optional = false,
+ moveSection = false,
+ {
+ startSection = {
+ x = 'startVRAM',
+ y = 'startVRAM',
+ },
+ endSection = {
+ x = 'endVRAM',
+ y = 'endVRAM',
+ },
+ size = {
+ -- Tile size in pixels --
+ width = 16,
+ height = 16,
+ },
+ transform = {
+ move = true,
+ rotate = false,
+ scale = false,
+ shear = false,
+ affine = false,
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+}
diff --git a/src/hardware_data/graphics/ppu_rp2c03+mmc2.lua b/src/hardware_data/graphics/ppu_rp2c03+mmc2.lua
new file mode 100644
index 0000000..de6da2b
--- /dev/null
+++ b/src/hardware_data/graphics/ppu_rp2c03+mmc2.lua
@@ -0,0 +1,136 @@
+return {
+ screen = {
+ width = 256,
+ height = 224,
+ vsync = 60.0985,
+ origin = {
+ x = 0,
+ y = -8,
+ },
+ -- Total of unique texels, pixels and vertices on VRAM --
+ pixels = 73728,
+ texels = 320,
+ vertices = false,
+ },
+ colours = {
+ total = 64,
+ limit = 25,
+ transparent = {
+ sprite = colourKey,
+ tile = colourKey,
+ },
+ palettes = {
+ {
+ total = 4,
+ type = 'tile',
+ colours = 3,
+ layers = false,
+ },
+ {
+ total = 4,
+ type = 'sprite',
+ colours = 3,
+ layers = false,
+ },
+ },
+ },
+ meshes = false,
+ shaders = {
+ api = false,
+ version = false,
+ fragment = false,
+ vectex = false,
+ geometry = false,
+ tessellation = false,
+ },
+ physic = false,
+ sprites = {
+ -- Limit sprites on screen --
+ onScreen = 64,
+ -- Limit sprites on line (scanline) without flickering --
+ onLine = 8,
+ transform = {
+ move = true,
+ rotate = false,
+ scale = 'flip',
+ shear = false,
+ affine = false,
+ },
+ -- Sprite sizes in pixels --
+ sizes = {
+ {
+ width = 8,
+ height = 8,
+ },
+ {
+ width = 8,
+ height = 16,
+ },
+ },
+ },
+ tiles = {
+ layers = {
+ {
+ -- Total tiles and pixels on VRAM --
+ onVRAM = {
+ screenSections = {
+ all = {
+ Xtiles = 32,
+ Ytiles = 30,
+ tiles = 960,
+ pixels = 245760,
+ },
+ },
+ 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 = 16+1,
+ Ytiles = 14+1,
+ tiles = 224+16+14+1,
+ pixels = 57344,
+ },
+ },
+ tiles = 'screenSections',
+ pixels = 'screenSections',
+ },
+ -- Total of unique tiles on VRAM --
+ unique = 512,
+ screenSections = {
+ mirror = true,
+ main = {
+ optional = false,
+ moveSection = false,
+ {
+ startSection = {
+ x = 'startVRAM',
+ y = 'startVRAM',
+ },
+ endSection = {
+ x = 'endVRAM',
+ y = 'endVRAM',
+ },
+ size = {
+ -- Tile size in pixels --
+ width = 16,
+ height = 16,
+ },
+ transform = {
+ move = true,
+ rotate = false,
+ scale = false,
+ shear = false,
+ affine = false,
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+}
diff --git a/src/hardware_data/graphics/ppu_rp2c03+mmc5.lua b/src/hardware_data/graphics/ppu_rp2c03+mmc5.lua
new file mode 100644
index 0000000..e4a4601
--- /dev/null
+++ b/src/hardware_data/graphics/ppu_rp2c03+mmc5.lua
@@ -0,0 +1,130 @@
+return {
+ screen = {
+ width = 256,
+ height = 224,
+ vsync = 60.0985,
+ origin = {
+ x = 0,
+ y = -8,
+ },
+ -- Total of unique texels, pixels and vertices on VRAM --
+ pixels = 73728,
+ texels = 320,
+ vertices = false,
+ },
+ colours = {
+ total = 64,
+ limit = 25,
+ transparent = {
+ sprite = colourKey,
+ tile = colourKey,
+ },
+ palettes = {
+ {
+ total = 1,
+ type = 'global',
+ colours = 3,
+ layers = false,
+ },
+ },
+ },
+ meshes = false,
+ shaders = {
+ api = false,
+ version = false,
+ fragment = false,
+ vectex = false,
+ geometry = false,
+ tessellation = false,
+ },
+ physic = false,
+ sprites = {
+ -- Limit sprites on screen --
+ onScreen = 64,
+ -- Limit sprites on line (scanline) without flickering --
+ onLine = 8,
+ transform = {
+ move = true,
+ rotate = false,
+ scale = 'flip',
+ shear = false,
+ affine = false,
+ },
+ -- Sprite sizes in pixels --
+ sizes = {
+ {
+ width = 8,
+ height = 8,
+ },
+ {
+ width = 8,
+ height = 16,
+ },
+ },
+ },
+ tiles = {
+ layers = {
+ {
+ -- Total tiles and pixels on VRAM --
+ onVRAM = {
+ screenSections = {
+ all = {
+ Xtiles = 32,
+ Ytiles = 30,
+ tiles = 960,
+ pixels = 245760,
+ },
+ },
+ 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 = 16+1,
+ Ytiles = 14+1,
+ tiles = 224+16+14+1,
+ pixels = 57344,
+ },
+ },
+ tiles = 'screenSections',
+ pixels = 'screenSections',
+ },
+ -- Total of unique tiles on VRAM --
+ unique = 65536,
+ screenSections = {
+ mirror = true,
+ main = {
+ optional = false,
+ moveSection = false,
+ {
+ startSection = {
+ x = 'startVRAM',
+ y = 'startVRAM',
+ },
+ endSection = {
+ x = 'endVRAM',
+ y = 'endVRAM',
+ },
+ size = {
+ -- Tile size in pixels --
+ width = 16,
+ height = 16,
+ },
+ transform = {
+ move = true,
+ rotate = false,
+ scale = false,
+ shear = false,
+ affine = false,
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+}
diff --git a/src/hardware_data/graphics/ppu_rp2c03.lua b/src/hardware_data/graphics/ppu_rp2c03.lua
new file mode 100644
index 0000000..e03e263
--- /dev/null
+++ b/src/hardware_data/graphics/ppu_rp2c03.lua
@@ -0,0 +1,136 @@
+return {
+ screen = {
+ width = 256,
+ height = 224,
+ vsync = 60.0985,
+ origin = {
+ x = 0,
+ y = -8,
+ },
+ -- Total of unique texels, pixels and vertices on VRAM --
+ pixels = 73728,
+ texels = 320,
+ vertices = false,
+ },
+ colours = {
+ total = 64,
+ limit = 25,
+ transparent = {
+ sprite = colourKey,
+ tile = colourKey,
+ },
+ palettes = {
+ {
+ total = 4,
+ type = 'tile',
+ colours = 3,
+ layers = false,
+ },
+ {
+ total = 4,
+ type = 'sprite',
+ colours = 3,
+ layers = false,
+ },
+ },
+ },
+ meshes = false,
+ shaders = {
+ api = false,
+ version = false,
+ fragment = false,
+ vectex = false,
+ geometry = false,
+ tessellation = false,
+ },
+ physic = false,
+ sprites = {
+ -- Limit sprites on screen --
+ onScreen = 64,
+ -- Limit sprites on line (scanline) without flickering --
+ onLine = 8,
+ transform = {
+ move = true,
+ rotate = false,
+ scale = 'flip',
+ shear = false,
+ affine = false,
+ },
+ -- Sprite sizes in pixels --
+ sizes = {
+ {
+ width = 8,
+ height = 8,
+ },
+ {
+ width = 8,
+ height = 16,
+ },
+ },
+ },
+ tiles = {
+ layers = {
+ {
+ -- Total tiles and pixels on VRAM --
+ onVRAM = {
+ screenSections = {
+ all = {
+ Xtiles = 32,
+ Ytiles = 30,
+ tiles = 960,
+ pixels = 245760,
+ },
+ },
+ 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 = 16+1,
+ Ytiles = 14+1,
+ tiles = 224+16+14+1,
+ pixels = 57344,
+ },
+ },
+ tiles = 'screenSections',
+ pixels = 'screenSections',
+ },
+ -- Total of unique tiles on VRAM --
+ unique = 256,
+ screenSections = {
+ mirror = true,
+ main = {
+ optional = false,
+ moveSection = false,
+ {
+ startSection = {
+ x = 'startVRAM',
+ y = 'startVRAM',
+ },
+ endSection = {
+ x = 'endVRAM',
+ y = 'endVRAM',
+ },
+ size = {
+ -- Tile size in pixels --
+ width = 16,
+ height = 16,
+ },
+ transform = {
+ move = true,
+ rotate = false,
+ scale = false,
+ shear = false,
+ affine = false,
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+}
diff --git a/src/hardware_data/graphics/ppu_rp2c07+mmc2.lua b/src/hardware_data/graphics/ppu_rp2c07+mmc2.lua
new file mode 100644
index 0000000..e0904b5
--- /dev/null
+++ b/src/hardware_data/graphics/ppu_rp2c07+mmc2.lua
@@ -0,0 +1,136 @@
+return {
+ screen = {
+ width = 256,
+ height = 240,
+ vsync = 50.0070,
+ origin = {
+ x = 0,
+ y = 0,
+ },
+ -- Total of unique texels, pixels and vertices on VRAM --
+ pixels = 73728,
+ texels = 320,
+ vertices = false,
+ },
+ colours = {
+ total = 64,
+ limit = 25,
+ transparent = {
+ sprite = colourKey,
+ tile = colourKey,
+ },
+ palettes = {
+ {
+ total = 4,
+ type = 'tile',
+ colours = 3,
+ layers = false,
+ },
+ {
+ total = 4,
+ type = 'sprite',
+ colours = 3,
+ layers = false,
+ },
+ },
+ },
+ meshes = false,
+ shaders = {
+ api = false,
+ version = false,
+ fragment = false,
+ vectex = false,
+ geometry = false,
+ tessellation = false,
+ },
+ physic = false,
+ sprites = {
+ -- Limit sprites on screen --
+ onScreen = 64,
+ -- Limit sprites on line (scanline) without flickering --
+ onLine = 8,
+ transform = {
+ move = true,
+ rotate = false,
+ scale = 'flip',
+ shear = false,
+ affine = false,
+ },
+ -- Sprite sizes in pixels --
+ sizes = {
+ {
+ width = 8,
+ height = 8,
+ },
+ {
+ width = 8,
+ height = 16,
+ },
+ },
+ },
+ tiles = {
+ layers = {
+ {
+ -- Total tiles and pixels on VRAM --
+ onVRAM = {
+ screenSections = {
+ all = {
+ Xtiles = 32,
+ Ytiles = 30,
+ tiles = 960,
+ pixels = 245760,
+ },
+ },
+ 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 = 16+1,
+ Ytiles = 15+1,
+ tiles = 240+16+14+1,
+ pixels = 61440,
+ },
+ },
+ tiles = 'screenSections',
+ pixels = 'screenSections',
+ },
+ -- Total of unique tiles on VRAM --
+ unique = 512,
+ screenSections = {
+ mirror = true,
+ main = {
+ optional = false,
+ moveSection = false,
+ {
+ startSection = {
+ x = 'startVRAM',
+ y = 'startVRAM',
+ },
+ endSection = {
+ x = 'endVRAM',
+ y = 'endVRAM',
+ },
+ size = {
+ -- Tile size in pixels --
+ width = 16,
+ height = 16,
+ },
+ transform = {
+ move = true,
+ rotate = false,
+ scale = false,
+ shear = false,
+ affine = false,
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+}
diff --git a/src/hardware_data/graphics/ppu_rp2c07+mmc5.lua b/src/hardware_data/graphics/ppu_rp2c07+mmc5.lua
new file mode 100644
index 0000000..48da16f
--- /dev/null
+++ b/src/hardware_data/graphics/ppu_rp2c07+mmc5.lua
@@ -0,0 +1,130 @@
+return {
+ screen = {
+ width = 256,
+ height = 240,
+ vsync = 50.0070,
+ origin = {
+ x = 0,
+ y = 0,
+ },
+ -- Total of unique texels, pixels and vertices on VRAM --
+ pixels = 73728,
+ texels = 320,
+ vertices = false,
+ },
+ colours = {
+ total = 64,
+ limit = 25,
+ transparent = {
+ sprite = colourKey,
+ tile = colourKey,
+ },
+ palettes = {
+ {
+ total = 1,
+ type = 'global',
+ colours = 3,
+ layers = false,
+ },
+ },
+ },
+ meshes = false,
+ shaders = {
+ api = false,
+ version = false,
+ fragment = false,
+ vectex = false,
+ geometry = false,
+ tessellation = false,
+ },
+ physic = false,
+ sprites = {
+ -- Limit sprites on screen --
+ onScreen = 64,
+ -- Limit sprites on line (scanline) without flickering --
+ onLine = 8,
+ transform = {
+ move = true,
+ rotate = false,
+ scale = 'flip',
+ shear = false,
+ affine = false,
+ },
+ -- Sprite sizes in pixels --
+ sizes = {
+ {
+ width = 8,
+ height = 8,
+ },
+ {
+ width = 8,
+ height = 16,
+ },
+ },
+ },
+ tiles = {
+ layers = {
+ {
+ -- Total tiles and pixels on VRAM --
+ onVRAM = {
+ screenSections = {
+ all = {
+ Xtiles = 32,
+ Ytiles = 30,
+ tiles = 960,
+ pixels = 245760,
+ },
+ },
+ 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 = 16+1,
+ Ytiles = 15+1,
+ tiles = 240+16+14+1,
+ pixels = 61440,
+ },
+ },
+ tiles = 'screenSections',
+ pixels = 'screenSections',
+ },
+ -- Total of unique tiles on VRAM --
+ unique = 65536,
+ screenSections = {
+ mirror = true,
+ main = {
+ optional = false,
+ moveSection = false,
+ {
+ startSection = {
+ x = 'startVRAM',
+ y = 'startVRAM',
+ },
+ endSection = {
+ x = 'endVRAM',
+ y = 'endVRAM',
+ },
+ size = {
+ -- Tile size in pixels --
+ width = 16,
+ height = 16,
+ },
+ transform = {
+ move = true,
+ rotate = false,
+ scale = false,
+ shear = false,
+ affine = false,
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+}
diff --git a/src/hardware_data/graphics/ppu_rp2c07.lua b/src/hardware_data/graphics/ppu_rp2c07.lua
new file mode 100644
index 0000000..6f2a9a5
--- /dev/null
+++ b/src/hardware_data/graphics/ppu_rp2c07.lua
@@ -0,0 +1,136 @@
+return {
+ screen = {
+ width = 256,
+ height = 240,
+ vsync = 50.0070,
+ origin = {
+ x = 0,
+ y = 0,
+ },
+ -- Total of unique texels, pixels and vertices on VRAM --
+ pixels = 73728,
+ texels = 320,
+ vertices = false,
+ },
+ colours = {
+ total = 64,
+ limit = 25,
+ transparent = {
+ sprite = colourKey,
+ tile = colourKey,
+ },
+ palettes = {
+ {
+ total = 4,
+ type = 'tile',
+ colours = 3,
+ layers = false,
+ },
+ {
+ total = 4,
+ type = 'sprite',
+ colours = 3,
+ layers = false,
+ },
+ },
+ },
+ meshes = false,
+ shaders = {
+ api = false,
+ version = false,
+ fragment = false,
+ vectex = false,
+ geometry = false,
+ tessellation = false,
+ },
+ physic = false,
+ sprites = {
+ -- Limit sprites on screen --
+ onScreen = 64,
+ -- Limit sprites on line (scanline) without flickering --
+ onLine = 8,
+ transform = {
+ move = true,
+ rotate = false,
+ scale = 'flip',
+ shear = false,
+ affine = false,
+ },
+ -- Sprite sizes in pixels --
+ sizes = {
+ {
+ width = 8,
+ height = 8,
+ },
+ {
+ width = 8,
+ height = 16,
+ },
+ },
+ },
+ tiles = {
+ layers = {
+ {
+ -- Total tiles and pixels on VRAM --
+ onVRAM = {
+ screenSections = {
+ all = {
+ Xtiles = 32,
+ Ytiles = 30,
+ tiles = 960,
+ pixels = 245760,
+ },
+ },
+ 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 = 16+1,
+ Ytiles = 15+1,
+ tiles = 240+16+14+1,
+ pixels = 61440,
+ },
+ },
+ tiles = 'screenSections',
+ pixels = 'screenSections',
+ },
+ -- Total of unique tiles on VRAM --
+ unique = 256,
+ screenSections = {
+ mirror = true,
+ main = {
+ optional = false,
+ moveSection = false,
+ {
+ startSection = {
+ x = 'startVRAM',
+ y = 'startVRAM',
+ },
+ endSection = {
+ x = 'endVRAM',
+ y = 'endVRAM',
+ },
+ size = {
+ -- Tile size in pixels --
+ width = 16,
+ height = 16,
+ },
+ transform = {
+ move = true,
+ rotate = false,
+ scale = false,
+ shear = false,
+ affine = false,
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+}