Versions in this module Expand all Collapse all v1 v1.0.0 May 28, 2019 Changes in this version + const ButtonA + const ButtonB + const ButtonDown + const ButtonLeft + const ButtonRight + const ButtonSelect + const ButtonStart + const ButtonUp + const CPUFrequency + const MirrorFour + const MirrorHorizontal + const MirrorSingle0 + const MirrorSingle1 + const MirrorVertical + var MirrorLookup = [...][4]uint16 + var Palette [64]color.RGBA + func MirrorAddress(mode byte, address uint16) uint16 + type APU struct + func NewAPU(console *Console) *APU + func (apu *APU) Load(decoder *gob.Decoder) error + func (apu *APU) Save(encoder *gob.Encoder) error + func (apu *APU) Step() + type CPU struct + A byte + B byte + C byte + Cycles uint64 + D byte + I byte + N byte + PC uint16 + SP byte + U byte + V byte + X byte + Y byte + Z byte + func NewCPU(console *Console) *CPU + func (cpu *CPU) Flags() byte + func (cpu *CPU) Load(decoder *gob.Decoder) error + func (cpu *CPU) PrintInstruction() + func (cpu *CPU) Read16(address uint16) uint16 + func (cpu *CPU) Reset() + func (cpu *CPU) Save(encoder *gob.Encoder) error + func (cpu *CPU) SetFlags(flags byte) + func (cpu *CPU) Step() int + type Cartridge struct + Battery byte + CHR []byte + Mapper byte + Mirror byte + PRG []byte + SRAM []byte + func LoadNESFile(path string) (*Cartridge, error) + func NewCartridge(prg, chr []byte, mapper, mirror, battery byte) *Cartridge + func (cartridge *Cartridge) Load(decoder *gob.Decoder) error + func (cartridge *Cartridge) Save(encoder *gob.Encoder) error + type Console struct + APU *APU + CPU *CPU + Cartridge *Cartridge + Controller1 *Controller + Controller2 *Controller + Mapper Mapper + PPU *PPU + RAM []byte + func NewConsole(path string) (*Console, error) + func (console *Console) BackgroundColor() color.RGBA + func (console *Console) Buffer() *image.RGBA + func (console *Console) Load(decoder *gob.Decoder) error + func (console *Console) LoadState(filename string) error + func (console *Console) Reset() + func (console *Console) Save(encoder *gob.Encoder) error + func (console *Console) SaveState(filename string) error + func (console *Console) SetAudioChannel(channel chan<- float32) + func (console *Console) SetAudioSampleRate(sampleRate float64) + func (console *Console) SetButtons1(buttons [8]bool) + func (console *Console) SetButtons2(buttons [8]bool) + func (console *Console) Step() int + func (console *Console) StepFrame() int + func (console *Console) StepSeconds(seconds float64) + type Controller struct + func NewController() *Controller + func (c *Controller) Read() byte + func (c *Controller) SetButtons(buttons [8]bool) + func (c *Controller) Write(value byte) + type DMC struct + func (d *DMC) Load(decoder *gob.Decoder) error + func (d *DMC) Save(encoder *gob.Encoder) error + type Filter interface + Step func(x float32) float32 + func HighPassFilter(sampleRate float32, cutoffFreq float32) Filter + func LowPassFilter(sampleRate float32, cutoffFreq float32) Filter + type FilterChain []Filter + func (fc FilterChain) Step(x float32) float32 + type FirstOrderFilter struct + A1 float32 + B0 float32 + B1 float32 + func (f *FirstOrderFilter) Step(x float32) float32 + type Mapper interface + Load func(decoder *gob.Decoder) error + Read func(address uint16) byte + Save func(encoder *gob.Encoder) error + Step func() + Write func(address uint16, value byte) + func NewMapper(console *Console) (Mapper, error) + func NewMapper1(cartridge *Cartridge) Mapper + func NewMapper2(cartridge *Cartridge) Mapper + func NewMapper225(cartridge *Cartridge) Mapper + func NewMapper3(cartridge *Cartridge) Mapper + func NewMapper4(console *Console, cartridge *Cartridge) Mapper + func NewMapper7(cartridge *Cartridge) Mapper + type Mapper1 struct + func (m *Mapper1) Load(decoder *gob.Decoder) error + func (m *Mapper1) Read(address uint16) byte + func (m *Mapper1) Save(encoder *gob.Encoder) error + func (m *Mapper1) Step() + func (m *Mapper1) Write(address uint16, value byte) + type Mapper2 struct + func (m *Mapper2) Load(decoder *gob.Decoder) error + func (m *Mapper2) Read(address uint16) byte + func (m *Mapper2) Save(encoder *gob.Encoder) error + func (m *Mapper2) Step() + func (m *Mapper2) Write(address uint16, value byte) + type Mapper225 struct + func (m *Mapper225) Load(decoder *gob.Decoder) error + func (m *Mapper225) Read(address uint16) byte + func (m *Mapper225) Save(encoder *gob.Encoder) error + func (m *Mapper225) Step() + func (m *Mapper225) Write(address uint16, value byte) + type Mapper3 struct + func (m *Mapper3) Load(decoder *gob.Decoder) error + func (m *Mapper3) Read(address uint16) byte + func (m *Mapper3) Save(encoder *gob.Encoder) error + func (m *Mapper3) Step() + func (m *Mapper3) Write(address uint16, value byte) + type Mapper4 struct + func (m *Mapper4) HandleScanLine() + func (m *Mapper4) Load(decoder *gob.Decoder) error + func (m *Mapper4) Read(address uint16) byte + func (m *Mapper4) Save(encoder *gob.Encoder) error + func (m *Mapper4) Step() + func (m *Mapper4) Write(address uint16, value byte) + type Mapper7 struct + func (m *Mapper7) Load(decoder *gob.Decoder) error + func (m *Mapper7) Read(address uint16) byte + func (m *Mapper7) Save(encoder *gob.Encoder) error + func (m *Mapper7) Step() + func (m *Mapper7) Write(address uint16, value byte) + type Memory interface + Read func(address uint16) byte + Write func(address uint16, value byte) + func NewCPUMemory(console *Console) Memory + func NewPPUMemory(console *Console) Memory + type Noise struct + func (n *Noise) Load(decoder *gob.Decoder) error + func (n *Noise) Save(encoder *gob.Encoder) error + type PPU struct + Cycle int + Frame uint64 + ScanLine int + func NewPPU(console *Console) *PPU + func (ppu *PPU) Load(decoder *gob.Decoder) error + func (ppu *PPU) Reset() + func (ppu *PPU) Save(encoder *gob.Encoder) error + func (ppu *PPU) Step() + type Pulse struct + func (p *Pulse) Load(decoder *gob.Decoder) error + func (p *Pulse) Save(encoder *gob.Encoder) error + type Triangle struct + func (t *Triangle) Load(decoder *gob.Decoder) error + func (t *Triangle) Save(encoder *gob.Encoder) error