ppu

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 7, 2018 License: GPL-3.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

View Source
const (
	OamSize          = 0x100
	SecondaryOamSize = 0x20
)
View Source
const (
	PT0Idx           = 0x0
	PT1Idx           = 0x1000
	NT0Idx           = 0x2000
	AT0Idx           = 0x23c0
	NT1Idx           = 0x2400
	AT1Idx           = 0x27c0
	NT2Idx           = 0x2800
	AT2Idx           = 0x2bc0
	NT3Idx           = 0x2c00
	AT3Idx           = 0x2fc0
	TablesMirrorIdx  = 0x3000
	BgrPaletteIdx    = 0x3f00
	SprPaletteIdx    = 0x3f10
	PaletteMirrorIdx = 0x3f20
	RamMirrorIdx     = 0x4000
	RamSize          = 0x10000
)
View Source
const (
	FrontPriority = byte(0)
)

Variables

View Source
var (
	Palette = [64]color.RGBA{
		color.RGBA{124, 124, 124, 255},
		color.RGBA{0, 0, 252, 255},
		color.RGBA{0, 0, 188, 255},
		color.RGBA{68, 40, 188, 255},
		color.RGBA{148, 0, 132, 255},
		color.RGBA{168, 0, 32, 255},
		color.RGBA{168, 16, 0, 255},
		color.RGBA{136, 20, 0, 255},
		color.RGBA{80, 48, 0, 255},
		color.RGBA{0, 120, 0, 255},
		color.RGBA{0, 104, 0, 255},
		color.RGBA{0, 88, 0, 255},
		color.RGBA{0, 64, 88, 255},
		color.RGBA{0, 0, 0, 255},
		color.RGBA{0, 0, 0, 255},
		color.RGBA{0, 0, 0, 255},
		color.RGBA{188, 188, 188, 255},
		color.RGBA{0, 120, 248, 255},
		color.RGBA{0, 88, 248, 255},
		color.RGBA{104, 68, 252, 255},
		color.RGBA{216, 0, 204, 255},
		color.RGBA{228, 0, 88, 255},
		color.RGBA{248, 56, 0, 255},
		color.RGBA{228, 92, 16, 255},
		color.RGBA{172, 124, 0, 255},
		color.RGBA{0, 184, 0, 255},
		color.RGBA{0, 168, 0, 255},
		color.RGBA{0, 168, 68, 255},
		color.RGBA{0, 136, 136, 255},
		color.RGBA{0, 0, 0, 255},
		color.RGBA{0, 0, 0, 255},
		color.RGBA{0, 0, 0, 255},
		color.RGBA{248, 248, 248, 255},
		color.RGBA{60, 188, 252, 255},
		color.RGBA{104, 136, 252, 255},
		color.RGBA{152, 120, 248, 255},
		color.RGBA{248, 120, 248, 255},
		color.RGBA{248, 88, 152, 255},
		color.RGBA{248, 120, 88, 255},
		color.RGBA{252, 160, 68, 255},
		color.RGBA{248, 184, 0, 255},
		color.RGBA{184, 248, 24, 255},
		color.RGBA{88, 216, 84, 255},
		color.RGBA{88, 248, 152, 255},
		color.RGBA{0, 232, 216, 255},
		color.RGBA{120, 120, 120, 255},
		color.RGBA{0, 0, 0, 255},
		color.RGBA{0, 0, 0, 255},
		color.RGBA{252, 252, 252, 255},
		color.RGBA{164, 228, 252, 255},
		color.RGBA{184, 184, 248, 255},
		color.RGBA{216, 184, 248, 255},
		color.RGBA{248, 184, 248, 255},
		color.RGBA{248, 164, 192, 255},
		color.RGBA{240, 208, 176, 255},
		color.RGBA{252, 224, 168, 255},
		color.RGBA{248, 216, 120, 255},
		color.RGBA{216, 248, 120, 255},
		color.RGBA{184, 248, 184, 255},
		color.RGBA{184, 248, 216, 255},
		color.RGBA{0, 252, 252, 255},
		color.RGBA{248, 216, 248, 255},
		color.RGBA{0, 0, 0, 255},
		color.RGBA{0, 0, 0, 255},
	}
)

Functions

This section is empty.

Types

type Displayer

type Displayer interface {
	Display(image.Image)
}

type OAM

type OAM [OamSize]byte

type PPU

type PPU struct {
	VRAM *VRAM

	OAM *OAM
	// contains filtered or unexported fields
}

func New

func New(nmi chan bool, disp Displayer) *PPU

func (*PPU) Cycle

func (ppu *PPU) Cycle()

func (*PPU) DMA

func (ppu *PPU) DMA(oamData [256]byte)

TODO: Take note of oamaddr

func (*PPU) LoadROM

func (ppu *PPU) LoadROM(rom *models.ROM)

func (*PPU) OAMAddrWrite

func (ppu *PPU) OAMAddrWrite(data byte)

func (*PPU) OAMDataRead

func (ppu *PPU) OAMDataRead() byte

func (*PPU) OAMDataWrite

func (ppu *PPU) OAMDataWrite(data byte)

func (*PPU) PPUAddrWrite

func (ppu *PPU) PPUAddrWrite(data byte)

func (*PPU) PPUCtrlWrite

func (ppu *PPU) PPUCtrlWrite(data byte)

func (*PPU) PPUDataRead

func (ppu *PPU) PPUDataRead() byte

func (*PPU) PPUDataWrite

func (ppu *PPU) PPUDataWrite(d byte)

func (*PPU) PPUMaskWrite

func (ppu *PPU) PPUMaskWrite(data byte)

func (*PPU) PPUScrollWrite

func (ppu *PPU) PPUScrollWrite(data byte)

TODO: Changes made to the vertical scroll during rendering will only take effect on the next frame

func (*PPU) PPUStatusRead

func (ppu *PPU) PPUStatusRead() byte

type SecondaryOAM

type SecondaryOAM [SecondaryOamSize]byte

type Sprite

type Sprite struct {
	// contains filtered or unexported fields
}

type VRAM

type VRAM struct {
	// contains filtered or unexported fields
}

func (*VRAM) Read

func (v *VRAM) Read(addr int) byte

func (*VRAM) Write

func (v *VRAM) Write(addr int, data byte)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL