diff options
author | coadde [Márcio Alexandre Silva Delgado] <coadde@parabola.nu> | 2017-01-10 23:54:09 -0300 |
---|---|---|
committer | coadde [Márcio Alexandre Silva Delgado] <coadde@parabola.nu> | 2017-01-10 23:54:09 -0300 |
commit | bbcb3e3b315c140d6716248c0620c74d64568b8b (patch) | |
tree | 6782fc297e2df76e5afae4849162c72c5145f61a | |
parent | 4877509bbc81c398eb2ef2d699f51f374315809e (diff) |
Update graphics modes
21 files changed, 1611 insertions, 12 deletions
diff --git a/src/hardware_data/graphics/ppu_rp2c02+129.lua b/src/hardware_data/graphics/ppu_rp2c02+129.lua new file mode 100644 index 0000000..82ccc52 --- /dev/null +++ b/src/hardware_data/graphics/ppu_rp2c02+129.lua @@ -0,0 +1,180 @@ +-- Information: -- +-- PPU (Picture processing unit) -- +-- RP2C02 with 129/163 -- +-- (Memory management controller) -- + +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 = 'tilePerPalette', + colours = 3, + layers = false, + }, + { + total = 4, + type = 'spritePerPalette', + 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+15+1, + pixels = 61440, + }, + }, + tiles = 'screenSections', + pixels = 'screenSections', + }, + -- Total of tiles on VRAM -- + unique = false, + maximum = 256, + mirror = { + switchable = true, + nametables = 227, + 'horizontal', + 'vertical', + '1 screen', + '4 screen', + 'diagonal', + 'l shaped', + '3 screen vertical', + '3 screen horizontal', + '3 screen diagonal', + }, + screenSections = { + 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, + }, + }, + }, + overlay0 = { + optional = true, + moveSection = true, + { + startSection = { + x = 'free', + y = 'free', + }, + endSection = { + x = 'free', + y = 'free', + }, + size = { + -- Tile size in pixels -- + width = 16, + height = 16, + }, + transform = { + move = false, + rotate = false, + scale = false, + shear = false, + affine = false, + }, + }, + }, + }, + }, + }, + }, +} diff --git a/src/hardware_data/graphics/ppu_rp2c02+mmc1.lua b/src/hardware_data/graphics/ppu_rp2c02+mmc1.lua new file mode 100644 index 0000000..56d6ff0 --- /dev/null +++ b/src/hardware_data/graphics/ppu_rp2c02+mmc1.lua @@ -0,0 +1,148 @@ +-- Information: -- +-- PPU (Picture processing unit) -- +-- RP2C02 with MMC1 -- +-- (Memory management controller) -- + +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 = 'tilePerPalette', + colours = 3, + layers = false, + }, + { + total = 4, + type = 'spritePerPalette', + 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+15+1, + pixels = 61440, + }, + }, + tiles = 'screenSections', + pixels = 'screenSections', + }, + -- Total of tiles on VRAM -- + unique = false, + maximum = 256, + mirror = { + switchable = true, + nametables = 4, + 'horizontal', + 'vertical', + '1 screen', + }, + screenSections = { + 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+mmc2.lua b/src/hardware_data/graphics/ppu_rp2c02+mmc2.lua index 9d74e75..ef0c457 100644 --- a/src/hardware_data/graphics/ppu_rp2c02+mmc2.lua +++ b/src/hardware_data/graphics/ppu_rp2c02+mmc2.lua @@ -104,9 +104,15 @@ return { tiles = 'screenSections', pixels = 'screenSections', }, - -- Total of unique tiles on VRAM -- + -- Total of tiles on VRAM -- unique = false, maximum = 512, + mirror = { + switchable = true, + nametables = 4, + 'horizontal', + 'vertical', + }, screenSections = { main = { optional = false, diff --git a/src/hardware_data/graphics/ppu_rp2c02+mmc3.lua b/src/hardware_data/graphics/ppu_rp2c02+mmc3.lua index 302e401..872c958 100644 --- a/src/hardware_data/graphics/ppu_rp2c02+mmc3.lua +++ b/src/hardware_data/graphics/ppu_rp2c02+mmc3.lua @@ -104,9 +104,15 @@ return { tiles = 'screenSections', pixels = 'screenSections', }, - -- Total of unique tiles on VRAM -- + -- Total of tiles on VRAM -- unique = false, maximum = 256, + mirror = { + switchable = true, + nametables = 4, + 'horizontal', + 'vertical', + }, screenSections = { main = { optional = false, diff --git a/src/hardware_data/graphics/ppu_rp2c02+mmc5.lua b/src/hardware_data/graphics/ppu_rp2c02+mmc5.lua index 977dcbd..e4098f9 100644 --- a/src/hardware_data/graphics/ppu_rp2c02+mmc5.lua +++ b/src/hardware_data/graphics/ppu_rp2c02+mmc5.lua @@ -98,9 +98,22 @@ return { tiles = 'screenSections', pixels = 'screenSections', }, - -- Total of unique tiles on VRAM -- + -- Total of tiles on VRAM -- unique = false, maximum = 16384, + mirror = { + switchable = true, + nametables = 4, + 'horizontal', + 'vertical', + '1 screen', + '4 screen', + 'diagonal', + 'l shaped', + '3 screen vertical', + '3 screen horizontal', + '3 screen diagonal', + }, screenSections = { main = { optional = false, diff --git a/src/hardware_data/graphics/ppu_rp2c02+vrc6.lua b/src/hardware_data/graphics/ppu_rp2c02+vrc6.lua new file mode 100644 index 0000000..4bc3ada --- /dev/null +++ b/src/hardware_data/graphics/ppu_rp2c02+vrc6.lua @@ -0,0 +1,174 @@ +-- Information: -- +-- PPU (Picture processing unit) -- +-- RP2C02 with VRC6/VRC7 -- +-- (Memory management controller) -- + +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 = 'tilePerPalette', + colours = 3, + layers = false, + }, + { + total = 4, + type = 'spritePerPalette', + 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+15+1, + pixels = 61440, + }, + }, + tiles = 'screenSections', + pixels = 'screenSections', + }, + -- Total of tiles on VRAM -- + unique = false, + maximum = 256, + mirror = { + switchable = true, + nametables = 4, + 'horizontal', + 'vertical', + '1 screen', + }, + screenSections = { + 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, + }, + }, + }, + overlay0 = { + optional = true, + moveSection = true, + { + startSection = { + x = 'free', + y = 'free', + }, + endSection = { + x = 'free', + y = 'free', + }, + size = { + -- Tile size in pixels -- + width = 16, + height = 16, + }, + transform = { + move = false, + 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 index f9807a9..ef5b24f 100644 --- a/src/hardware_data/graphics/ppu_rp2c02.lua +++ b/src/hardware_data/graphics/ppu_rp2c02.lua @@ -103,9 +103,15 @@ return { tiles = 'screenSections', pixels = 'screenSections', }, - -- Total of unique tiles on VRAM -- + -- Total of tiles on VRAM -- unique = false, maximum = 256, + mirror = { + switchable = false, + nametables = 4, + 'horizontal', + 'vertical', + }, screenSections = { main = { optional = false, diff --git a/src/hardware_data/graphics/ppu_rp2c03+129.lua b/src/hardware_data/graphics/ppu_rp2c03+129.lua new file mode 100644 index 0000000..1b0e1f6 --- /dev/null +++ b/src/hardware_data/graphics/ppu_rp2c03+129.lua @@ -0,0 +1,180 @@ +-- Information: -- +-- PPU (Picture processing unit) -- +-- RP2C03/RP2C04/RP2C05 with MMC3/MMC6 -- +-- (Memory management controller) -- + +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 = 'tilePerPalette', + colours = 3, + layers = false, + }, + { + total = 4, + type = 'spritePerPalette', + 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+15+1, + pixels = 61440, + }, + }, + tiles = 'screenSections', + pixels = 'screenSections', + }, + -- Total of tiles on VRAM -- + unique = false, + maximum = 256, + mirror = { + switchable = true, + nametables = 227, + 'horizontal', + 'vertical', + '1 screen', + '4 screen', + 'diagonal', + 'l shaped', + '3 screen vertical', + '3 screen horizontal', + '3 screen diagonal', + }, + screenSections = { + 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, + }, + }, + }, + overlay0 = { + optional = true, + moveSection = true, + { + startSection = { + x = 'free', + y = 'free', + }, + endSection = { + x = 'free', + y = 'free', + }, + size = { + -- Tile size in pixels -- + width = 16, + height = 16, + }, + transform = { + move = false, + rotate = false, + scale = false, + shear = false, + affine = false, + }, + }, + }, + }, + }, + }, + }, +} diff --git a/src/hardware_data/graphics/ppu_rp2c03+mmc1.lua b/src/hardware_data/graphics/ppu_rp2c03+mmc1.lua new file mode 100644 index 0000000..1ee5ce1 --- /dev/null +++ b/src/hardware_data/graphics/ppu_rp2c03+mmc1.lua @@ -0,0 +1,148 @@ +-- Information: -- +-- PPU (Picture processing unit) -- +-- RP2C03/RP2C04/RP2C05 with MMC1 -- +-- (Memory management controller) -- + +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 = 'tilePerPalette', + colours = 3, + layers = false, + }, + { + total = 4, + type = 'spritePerPalette', + 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+15+1, + pixels = 61440, + }, + }, + tiles = 'screenSections', + pixels = 'screenSections', + }, + -- Total of tiles on VRAM -- + unique = false, + maximum = 256, + mirror = { + switchable = true, + nametables = 4, + 'horizontal', + 'vertical', + '1 screen', + }, + screenSections = { + 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 index d7e14c2..ca01dcd 100644 --- a/src/hardware_data/graphics/ppu_rp2c03+mmc2.lua +++ b/src/hardware_data/graphics/ppu_rp2c03+mmc2.lua @@ -104,9 +104,15 @@ return { tiles = 'screenSections', pixels = 'screenSections', }, - -- Total of unique tiles on VRAM -- + -- Total of tiles on VRAM -- unique = false, maximum = 512, + mirror = { + switchable = true, + nametables = 4, + 'horizontal', + 'vertical', + }, screenSections = { main = { optional = false, diff --git a/src/hardware_data/graphics/ppu_rp2c03+mmc3.lua b/src/hardware_data/graphics/ppu_rp2c03+mmc3.lua index 11d2a28..90ef5bf 100644 --- a/src/hardware_data/graphics/ppu_rp2c03+mmc3.lua +++ b/src/hardware_data/graphics/ppu_rp2c03+mmc3.lua @@ -104,9 +104,15 @@ return { tiles = 'screenSections', pixels = 'screenSections', }, - -- Total of unique tiles on VRAM -- + -- Total of tiles on VRAM -- unique = false, maximum = 256, + mirror = { + switchable = true, + nametables = 4, + 'horizontal', + 'vertical', + }, screenSections = { main = { optional = false, diff --git a/src/hardware_data/graphics/ppu_rp2c03+mmc5.lua b/src/hardware_data/graphics/ppu_rp2c03+mmc5.lua index 4b9fa42..73de0df 100644 --- a/src/hardware_data/graphics/ppu_rp2c03+mmc5.lua +++ b/src/hardware_data/graphics/ppu_rp2c03+mmc5.lua @@ -98,9 +98,22 @@ return { tiles = 'screenSections', pixels = 'screenSections', }, - -- Total of unique tiles on VRAM -- + -- Total of tiles on VRAM -- unique = false, maximum = 16384, + mirror = { + switchable = true, + nametables = 4, + 'horizontal', + 'vertical', + '1 screen', + '4 screen', + 'diagonal', + 'l shaped', + '3 screen vertical', + '3 screen horizontal', + '3 screen diagonal', + }, screenSections = { main = { optional = false, diff --git a/src/hardware_data/graphics/ppu_rp2c03+vrc6.lua b/src/hardware_data/graphics/ppu_rp2c03+vrc6.lua new file mode 100644 index 0000000..86c5e34 --- /dev/null +++ b/src/hardware_data/graphics/ppu_rp2c03+vrc6.lua @@ -0,0 +1,174 @@ +-- Information: -- +-- PPU (Picture processing unit) -- +-- RP2C03/RP2C04/RP2C05 with VRC6/VRC7 -- +-- (Memory management controller) -- + +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 = 'tilePerPalette', + colours = 3, + layers = false, + }, + { + total = 4, + type = 'spritePerPalette', + 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+15+1, + pixels = 61440, + }, + }, + tiles = 'screenSections', + pixels = 'screenSections', + }, + -- Total of tiles on VRAM -- + unique = false, + maximum = 256, + mirror = { + switchable = true, + nametables = 4, + 'horizontal', + 'vertical', + '1 screen', + }, + screenSections = { + 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, + }, + }, + }, + overlay0 = { + optional = true, + moveSection = true, + { + startSection = { + x = 'free', + y = 'free', + }, + endSection = { + x = 'free', + y = 'free', + }, + size = { + -- Tile size in pixels -- + width = 16, + height = 16, + }, + transform = { + move = false, + 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 index 2b534b7..9bbf23d 100644 --- a/src/hardware_data/graphics/ppu_rp2c03.lua +++ b/src/hardware_data/graphics/ppu_rp2c03.lua @@ -103,9 +103,15 @@ return { tiles = 'screenSections', pixels = 'screenSections', }, - -- Total of unique tiles on VRAM -- + -- Total of tiles on VRAM -- unique = false, maximum = 256, + mirror = { + switchable = false, + nametables = 4, + 'horizontal', + 'vertical', + }, screenSections = { main = { optional = false, diff --git a/src/hardware_data/graphics/ppu_rp2c07+129.lua b/src/hardware_data/graphics/ppu_rp2c07+129.lua new file mode 100644 index 0000000..eb1deb0 --- /dev/null +++ b/src/hardware_data/graphics/ppu_rp2c07+129.lua @@ -0,0 +1,180 @@ +-- Information: -- +-- PPU (Picture processing unit) -- +-- RP2C07 with MMC3/MMC6 -- +-- (Memory management controller) -- + +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 = 'tilePerPalette', + colours = 3, + layers = false, + }, + { + total = 4, + type = 'spritePerPalette', + 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+15+1, + pixels = 61440, + }, + }, + tiles = 'screenSections', + pixels = 'screenSections', + }, + -- Total of tiles on VRAM -- + unique = false, + maximum = 256, + mirror = { + switchable = true, + nametables = 227, + 'horizontal', + 'vertical', + '1 screen', + '4 screen', + 'diagonal', + 'l shaped', + '3 screen vertical', + '3 screen horizontal', + '3 screen diagonal', + }, + screenSections = { + 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, + }, + }, + }, + overlay0 = { + optional = true, + moveSection = true, + { + startSection = { + x = 'free', + y = 'free', + }, + endSection = { + x = 'free', + y = 'free', + }, + size = { + -- Tile size in pixels -- + width = 16, + height = 16, + }, + transform = { + move = false, + rotate = false, + scale = false, + shear = false, + affine = false, + }, + }, + }, + }, + }, + }, + }, +} diff --git a/src/hardware_data/graphics/ppu_rp2c07+mmc1.lua b/src/hardware_data/graphics/ppu_rp2c07+mmc1.lua new file mode 100644 index 0000000..7dc5c99 --- /dev/null +++ b/src/hardware_data/graphics/ppu_rp2c07+mmc1.lua @@ -0,0 +1,148 @@ +-- Information: -- +-- PPU (Picture processing unit) -- +-- RP2C07 with MMC1 -- +-- (Memory management controller) -- + +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 = 'tilePerPalette', + colours = 3, + layers = false, + }, + { + total = 4, + type = 'spritePerPalette', + 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+15+1, + pixels = 61440, + }, + }, + tiles = 'screenSections', + pixels = 'screenSections', + }, + -- Total of tiles on VRAM -- + unique = false, + maximum = 256, + mirror = { + switchable = true, + nametables = 4, + 'horizontal', + 'vertical', + '1 screen', + }, + screenSections = { + 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 index 795750f..c250eb2 100644 --- a/src/hardware_data/graphics/ppu_rp2c07+mmc2.lua +++ b/src/hardware_data/graphics/ppu_rp2c07+mmc2.lua @@ -104,9 +104,15 @@ return { tiles = 'screenSections', pixels = 'screenSections', }, - -- Total of unique tiles on VRAM -- + -- Total of tiles on VRAM -- unique = false, maximum = 512, + mirror = { + switchable = true, + nametables = 4, + 'horizontal', + 'vertical', + }, screenSections = { main = { optional = false, diff --git a/src/hardware_data/graphics/ppu_rp2c07+mmc3.lua b/src/hardware_data/graphics/ppu_rp2c07+mmc3.lua index ef896bf..2346f84 100644 --- a/src/hardware_data/graphics/ppu_rp2c07+mmc3.lua +++ b/src/hardware_data/graphics/ppu_rp2c07+mmc3.lua @@ -104,9 +104,15 @@ return { tiles = 'screenSections', pixels = 'screenSections', }, - -- Total of unique tiles on VRAM -- + -- Total of tiles on VRAM -- unique = false, maximum = 256, + mirror = { + switchable = true, + nametables = 4, + 'horizontal', + 'vertical', + }, screenSections = { main = { optional = false, diff --git a/src/hardware_data/graphics/ppu_rp2c07+mmc5.lua b/src/hardware_data/graphics/ppu_rp2c07+mmc5.lua index b108ca5..8c68b89 100644 --- a/src/hardware_data/graphics/ppu_rp2c07+mmc5.lua +++ b/src/hardware_data/graphics/ppu_rp2c07+mmc5.lua @@ -98,9 +98,22 @@ return { tiles = 'screenSections', pixels = 'screenSections', }, - -- Total of unique tiles on VRAM -- + -- Total of tiles on VRAM -- unique = false, maximum = 16384, + mirror = { + switchable = true, + nametables = 4, + 'horizontal', + 'vertical', + '1 screen', + '4 screen', + 'diagonal', + 'l shaped', + '3 screen vertical', + '3 screen horizontal', + '3 screen diagonal', + }, screenSections = { main = { optional = false, diff --git a/src/hardware_data/graphics/ppu_rp2c07+vrc6.lua b/src/hardware_data/graphics/ppu_rp2c07+vrc6.lua new file mode 100644 index 0000000..c33dd69 --- /dev/null +++ b/src/hardware_data/graphics/ppu_rp2c07+vrc6.lua @@ -0,0 +1,174 @@ +-- Information: -- +-- PPU (Picture processing unit) -- +-- RP2C07 with VRC6/VRC7 -- +-- (Memory management controller) -- + +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 = 'tilePerPalette', + colours = 3, + layers = false, + }, + { + total = 4, + type = 'spritePerPalette', + 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+15+1, + pixels = 61440, + }, + }, + tiles = 'screenSections', + pixels = 'screenSections', + }, + -- Total of tiles on VRAM -- + unique = false, + maximum = 256, + mirror = { + switchable = true, + nametables = 4, + 'horizontal', + 'vertical', + '1 screen', + }, + screenSections = { + 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, + }, + }, + }, + overlay0 = { + optional = true, + moveSection = true, + { + startSection = { + x = 'free', + y = 'free', + }, + endSection = { + x = 'free', + y = 'free', + }, + size = { + -- Tile size in pixels -- + width = 16, + height = 16, + }, + transform = { + move = false, + 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 index 79b7ebd..d4d610a 100644 --- a/src/hardware_data/graphics/ppu_rp2c07.lua +++ b/src/hardware_data/graphics/ppu_rp2c07.lua @@ -103,9 +103,15 @@ return { tiles = 'screenSections', pixels = 'screenSections', }, - -- Total of unique tiles on VRAM -- + -- Total of tiles on VRAM -- unique = false, maximum = 256, + mirror = { + switchable = false, + nametables = 4, + 'horizontal', + 'vertical', + }, screenSections = { main = { optional = false, |