ComSquare
Namespaces | Classes | Enumerations | Variables
ComSquare::PPU Namespace Reference

Namespaces

 Utils
 

Classes

class  Background
 
class  PPU
 The class containing all the registers of the PPU. More...
 
struct  Registers
 
struct  Tile
 Info on tile struct. More...
 
class  TileRenderer
 

Enumerations

enum  BgName { Background1 = 0, Background2, Background3, Background4 }
 Enum to access more easily the ppu background array. More...
 
enum  PpuRegisters {
  inidisp = 0x00, obsel = 0x01, oamaddl = 0x02, oamaddh = 0x03,
  oamdata = 0x04, bgmode = 0x05, mosaic = 0x06, bg1sc = 0x07,
  bg2sc = 0x08, bg3sc = 0x09, bg4sc = 0x0A, bg12nba = 0x0B,
  bg34nba = 0x0C, bg1hofs = 0x0D, bg1vofs = 0x0E, bg2hofs = 0x0F,
  bg2vofs = 0x10, bg3hofs = 0x11, bg3vofs = 0x12, bg4hofs = 0x13,
  bg4vofs = 0x14, vmain = 0x15, vmaddl = 0x16, vmaddh = 0x17,
  vmdatal = 0x18, vmdatah = 0x19, m7sel = 0x1A, m7a = 0x1B,
  m7b = 0x1C, m7c = 0x1D, m7d = 0x1E, m7x = 0x1F,
  m7y = 0x20, cgadd = 0x21, cgdata = 0x22, w12sel = 0x23,
  w34sel = 0x24, wobjsel = 0x25, wh0 = 0x26, wh1 = 0x27,
  wh2 = 0x28, wh3 = 0x29, wbjlog = 0x2A, wobjlog = 0x2B,
  tm = 0x2C, ts = 0x2D, tmw = 0x2E, tsw = 0x2F,
  cgwsel = 0x30, cgadsub = 0x31, coldata = 0x32, setini = 0x33,
  mpyl = 0x34, mpym = 0x35, mpyh = 0x36, slhv = 0x37,
  oamdataread = 0x38, vmdatalread = 0x39, vmdatahread = 0x3A, cgdataread = 0x3B,
  ophct = 0x3C, opvct = 0x3D, stat77 = 0x3E, stat78 = 0x3F
}
 

Variables

static constexpr uint32_t VramSize = 65536
 
static constexpr uint32_t CGRamSize = 512
 
static constexpr uint32_t OAMRamSize = 544
 

Enumeration Type Documentation

◆ BgName

Enum to access more easily the ppu background array.

Enumerator
Background1 
Background2 
Background3 
Background4 

◆ PpuRegisters

Enumerator
inidisp 

INIDISP Register (F-blank and Brightness)

obsel 

OBSEL Register (Object Size and Character Address)

oamaddl 

OAMADDL (OAM Address low byte)

oamaddh 

OAMADDH (OAM Address high bit and Obj Priority)

oamdata 

OAMDATA (Data for OAM write)

bgmode 

BGMODE (BG Mode and Character Size)

mosaic 

MOSAIC (Screen Pixelation)

bg1sc 

BG1SC (BG1 Tilemap Address and Size)

bg2sc 

BG2SC (BG2 Tilemap Address and Size)

bg3sc 

BG3SC (BG3 Tilemap Address and Size)

bg4sc 

BG4SC (BG4 Tilemap Address and Size)

bg12nba 

BG12NBA (BG1 and 2 Chr Address)

bg34nba 

BG34NBA (BG3 and 4 Chr Address)

bg1hofs 

BG1HOFS (BG1 Horizontal Scroll)

M7HOFS (Mode 7 BG Horizontal Scroll) @info When bg mode is 7 the register is used as M7HOFS

bg1vofs 

BG1VOFS (BG1 Vertical Scroll)

M7VOFS (Mode 7 BG Vertical Scroll) @info When bg mode is 7 the register is used as M7VOFS

bg2hofs 

BG2HOFS (BG2 Horizontal Scroll)

bg2vofs 

BG2VOFS (BG2 Vertical Scroll)

bg3hofs 

BG3HOFS (BG3 Horizontal Scroll)

bg3vofs 

BG3VOFS (BG3 Vertical Scroll)

bg4hofs 

BG4HOFS (BG4 Horizontal Scroll)

bg4vofs 

BG4VOFS (BG4 Vertical Scroll)

vmain 

VMAIN (Video Port Control)

vmaddl 

VMADDL (VRAM Address low byte)

vmaddh 

VMADDH (VRAM Address high byte)

vmdatal 

VMDATAL (VRAM Data Write low byte)

vmdatah 

VMDATAH (VRAM Data Write high byte)

m7sel 

M7SEL (Mode 7 Settings)

m7a 

M7A (Mode 7 Matrix A) also used with $2134/6.

m7b 

M7B (Mode 7 Matrix B) also used with $2134/6.

m7c 

M7C (Mode 7 Matrix C)

m7d 

M7D (Mode 7 Matrix D)

m7x 

M7X (Mode 7 Center X)

m7y 

M7Y (Mode 7 Center Y)

cgadd 

CGADD (CGRAM Address)

cgdata 

CGDATA (CGRAM Data write)

w12sel 

W12SEL (Window Mask Settings for BG1 and BG2)

w34sel 

W34SEL (Window Mask Settings for BG3 and BG4)

wobjsel 

WOBJSEL (Window Mask Settings for OBJ and Color Window)

wh0 

WH0 (Window 1 Left Position)

wh1 

WH1 (Window 1 Right Position)

wh2 

WH2 (Window 2 Left Position)

wh3 

WH3 (Window 2 Right Position)

wbjlog 

WBGLOG (Window mask logic for BGs)

wobjlog 

WOBJLOG (Window mask logic for OBJs and Color Window)

tm 

TM (Main Screen Designation)

ts 

TS (Subscreen Designation)

tmw 

TMW (Window Mask Designation for the Main Screen)

tsw 

TSW (Window Mask Designation for the Subscreen)

cgwsel 

CGWSEL (Color Addition Select)

cgadsub 

CGADSUB (Color math designation)

coldata 

COLDATA (Fixed Color Data)

setini 

SETINI (Screen Mode/Video Select)

mpyl 

MPYL (Multiplication Result low byte)

mpym 

MPYM (Multiplication Result middle byte)

mpyh 

MPYH (Multiplication Result high byte)

slhv 

SLHV (Software Latch for H/V Counter)

oamdataread 

OAMDATAREAD (Data for OAM read)

vmdatalread 

VMDATALREAD (VRAM Data Read low byte)

vmdatahread 

VMDATAHREAD (VRAM Data Read high byte)

cgdataread 

CGDATAREAD (CGRAM Data read)

ophct 

OPHCT (Horizontal Scanline Location)

opvct 

OPVCT (Vertical Scanline Location)

stat77 

STAT77 (PPU Status Flag and Version)

stat78 

STAT78 (PPU Status Flag and Version)

Variable Documentation

◆ CGRamSize

constexpr uint32_t ComSquare::PPU::CGRamSize = 512
staticconstexpr

◆ OAMRamSize

constexpr uint32_t ComSquare::PPU::OAMRamSize = 544
staticconstexpr

◆ VramSize

constexpr uint32_t ComSquare::PPU::VramSize = 65536
staticconstexpr