Versions in this module Expand all Collapse all v1 v1.6.0 Aug 26, 2022 v1.5.0 Aug 7, 2022 v1.2.0 Aug 1, 2022 Changes in this version + const A12_STATE_CHANGE_FALL + const A12_STATE_CHANGE_NONE + const A12_STATE_CHANGE_RISE + const ButtonA + const ButtonB + const ButtonDown + const ButtonLeft + const ButtonRight + const ButtonSelect + const ButtonStart + const ButtonUp + const CHR_BLOCK_SIZE + const CPUFrequency + const ClockRateDenty + const ClockRateNtsc + const ClockRatePal + const EEPROM_IDPage + const EEPROM_Memory + const IRQVector + const NMIVector + const OAM_DECAY_CYCLE_COUNT + const PIXEL_COUNT + const PRG_BLOCK_SIZE + const PSFlagsBreak + const PSFlagsCarry + const PSFlagsDecimal + const PSFlagsInterrupt + const PSFlagsNegative + const PSFlagsOverflow + const PSFlagsReserved + const PSFlagsZero + const ResetVector + const SCREEN_HEIGHT + const SCREEN_WIDTH + var Palette [64]color.RGBA + type A12StateChange byte + type A12Watcher struct + func (a *A12Watcher) UpdateVRAMAddress(addr uint16, frameCycle uint32) A12StateChange + type APU struct + func NewAPU(console *Console) *APU + func (apu *APU) CurrentInfo() *APUCurrentInfo + func (apu *APU) EndFrame() + func (apu *APU) FrameCounterTick(frameType FrameType) + func (apu *APU) GetDMCReadAddress() uint16 + func (apu *APU) NeedToRun(currentCycle uint32) bool + func (apu *APU) Reset() + func (apu *APU) Run() + func (apu *APU) SetDMCReadBuffer(value byte) + func (apu *APU) SetNeedToRun() + func (apu *APU) Step() + func (apu *APU) WriteRAM(address uint16, value byte) + type APUCurrentInfo struct + DMC *DMCInfo + Noise *NoiseInfo + Square1 float32 + Square2 float32 + Triangle float32 + type APUEnvelope struct + func NewAPUEnvelope(console *Console) *APUEnvelope + func (e *APUEnvelope) GetVolume() uint32 + func (e *APUEnvelope) InitializeEnvelope(regValue byte) + func (e *APUEnvelope) Reset() + func (e *APUEnvelope) ResetEnvelope() + func (e *APUEnvelope) TickEnvelope() + type APUFilter interface + Step func(x float32) float32 + func HighPassFilter(sampleRate float32, cutoffFreq float32) APUFilter + func LowPassFilter(sampleRate float32, cutoffFreq float32) APUFilter + type APUFilterChain []APUFilter + func (fc APUFilterChain) Step(x float32) float32 + type APULengthCounter struct + func NewAPULengthCounter(console *Console) *APULengthCounter + func (lc *APULengthCounter) GetStatus() bool + func (lc *APULengthCounter) InitializeLengthCounter(haltFlag bool) + func (lc *APULengthCounter) LoadLengthCounter(value byte) + func (lc *APULengthCounter) ReloadCounter() + func (lc *APULengthCounter) Reset() + func (lc *APULengthCounter) SetEnabled(enabled bool) + func (lc *APULengthCounter) TickLengthCounter() + type AddressingMode uint16 + type BaseAPUChannel struct + func (b *BaseAPUChannel) EndFrame() + func (b *BaseAPUChannel) Reset() + type Bus struct + APU *APU + CPU *CPU + Cartridge *Cartridge + Controller1 *Controller + Controller2 *Controller + PPU *PPU + WRAM [2048]byte + func NewBus(cpu *CPU, ppu *PPU, apu *APU, controller1 *Controller, controller2 *Controller, ...) *Bus + func (b *Bus) ReadMemory(address uint16) byte + func (b *Bus) ReadMemory16(address uint16) uint16 + func (b *Bus) WriteMemory(address uint16, value byte) + type CHRBank struct + func (v *CHRBank) Set(ptr []byte, offset int32, memoryType CHRMemoryType, ...) + type CHRMemoryType byte + const CHR_MEMORY_CHR_NAMETABLE_RAM + const CHR_MEMORY_CHR_RAM + const CHR_MEMORY_CHR_ROM + const CHR_MEMORY_DEFAULT + type CPU struct + func NewCPU(console *Console) *CPU + func (cpu *CPU) ADD(value byte) + func (cpu *CPU) ASL(value byte) byte + func (cpu *CPU) BranchRelative(branch bool) + func (cpu *CPU) CMP(reg, value byte) + func (cpu *CPU) CheckFlag(flag byte) bool + func (cpu *CPU) ClearFlags(flags byte) + func (cpu *CPU) ClearIRQSource(irqType IRQType) + func (cpu *CPU) ClearNMIFlag() + func (cpu *CPU) EndCPUCycle(forRead bool) + func (cpu *CPU) FetchOperand(mode AddressingMode) uint16 + func (cpu *CPU) Flags() byte + func (cpu *CPU) GetAbsoluteAddr() uint16 + func (cpu *CPU) GetAbsoluteAddrX(dummyRead bool) uint16 + func (cpu *CPU) GetAbsoluteAddrY(dummyRead bool) uint16 + func (cpu *CPU) GetImmediate() uint16 + func (cpu *CPU) GetIndirectAddr() uint16 + func (cpu *CPU) GetIndirectXAddr() uint16 + func (cpu *CPU) GetIndirectYAddr(dummyRead bool) uint16 + func (cpu *CPU) GetOperandValue(mode AddressingMode) byte + func (cpu *CPU) GetZeroAddr() uint16 + func (cpu *CPU) GetZeroXAddr() uint16 + func (cpu *CPU) GetZeroYAddr() uint16 + func (cpu *CPU) HasIRQSource(irqType IRQType) bool + func (cpu *CPU) IRQ() + func (cpu *CPU) LSR(value byte) byte + func (cpu *CPU) PrintInstruction(pc uint16, cycle uint64, instruction CPUInstruction) + func (cpu *CPU) PrintInstruction2(pc uint16, cycle uint64, instruction CPUInstruction) + func (cpu *CPU) ProcessPendingDma(readAddress uint16) + func (cpu *CPU) ROL(value byte) byte + func (cpu *CPU) ROR(value byte) byte + func (cpu *CPU) ReadDummy() + func (cpu *CPU) ReadMemory(address uint16, opeType MemoryOperationType) byte + func (cpu *CPU) ReadMemory16(address uint16, opeType MemoryOperationType) uint16 + func (cpu *CPU) ReadMemoryByte() byte + func (cpu *CPU) ReadWord() uint16 + func (cpu *CPU) Reset() + func (cpu *CPU) RunDMATransfer(offsetValue byte) + func (cpu *CPU) SetA(value byte) + func (cpu *CPU) SetAllFlags(flags byte) + func (cpu *CPU) SetFlags(flags byte) + func (cpu *CPU) SetIRQSource(irqType IRQType) + func (cpu *CPU) SetNMIFlag() + func (cpu *CPU) SetPC(value uint16) + func (cpu *CPU) SetPS(value byte) + func (cpu *CPU) SetSP(value byte) + func (cpu *CPU) SetX(value byte) + func (cpu *CPU) SetY(value byte) + func (cpu *CPU) StartCPUCycle(forRead bool) + func (cpu *CPU) StartDMCTransfer() + func (cpu *CPU) Step() int + func (cpu *CPU) WriteMemory(address uint16, value byte, opeType MemoryOperationType) + type CPUInstruction struct + type CPUState struct + A byte + B byte + C byte + D byte + I byte + N byte + PC uint16 + SP byte + U byte + V byte + X byte + Y byte + Z byte + type Cartridge struct + Battery byte + CHR []byte + CHRMask uint32 + CHRSize uint32 + EEPROM *EEPROM + Mapper Mapper + MapperID byte + Mirror byte + NumCHR byte + NumPRG byte + PRG []byte + PRGMask uint32 + PRGSize uint32 + ROMFilePath string + func LoadNESFile(path string, console *Console) (*Cartridge, error) + func LoadNSFFile(path string, console *Console) (*Cartridge, error) + func NewCartridge(console *Console, prg, chr []byte, mapperID, mirror, battery byte, ...) *Cartridge + func (c *Cartridge) Close() + func (c *Cartridge) HasBattery() bool + func (c *Cartridge) HasChrRom() bool + type Console struct + APU *APU + CPU *CPU + Cartridge *Cartridge + Controller1 *Controller + Controller2 *Controller + PPU *PPU + func NewConsole(path string, isNSF bool) (*Console, error) + func (console *Console) Buffer() *image.RGBA + func (console *Console) Reset() + 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) SetNextFrameOverclockStatus(disabled 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 DMCInfo struct + Out byte + Period uint16 + type DeltaModulationChannel struct + func NewDeltaModulationChannel(console *Console) *DeltaModulationChannel + func (d *DeltaModulationChannel) Clock() + func (d *DeltaModulationChannel) GetDMCReadAddress() uint16 + func (d *DeltaModulationChannel) GetStatus() bool + func (d *DeltaModulationChannel) IRQPending(cyclesToRun uint32) bool + func (d *DeltaModulationChannel) InitSample() + func (d *DeltaModulationChannel) NeedToRun() bool + func (d *DeltaModulationChannel) Reset() + func (d *DeltaModulationChannel) Run(targetCycle uint32) + func (d *DeltaModulationChannel) SetDMCReadBuffer(value byte) + func (d *DeltaModulationChannel) SetEnabled(enabled bool) + func (d *DeltaModulationChannel) StartDMCTransfer() + func (d *DeltaModulationChannel) WriteRAM(addr uint16, value byte) + type EEPROM struct + Acknowledge bool + func NewEEPROM(eepromType EEPROMType, romFilePath string) *EEPROM + func (e *EEPROM) Close() + func (e *EEPROM) Read() bool + func (e *EEPROM) Reset() + func (e *EEPROM) SetClock(bit bool) + func (e *EEPROM) SetData(bit bool) + func (e *EEPROM) Write() + type EEPROMArea uint8 + type EEPROMLine struct + type EEPROMMode uint32 + const Address + const Bank + const Device + const Read + const Standby + const Write + type EEPROMType uint + const X24C01 + const X24C02 + func GetEEPROMType(crc uint32, mapperNumber byte) EEPROMType + type FirstOrderFilter struct + A1 float32 + B0 float32 + B1 float32 + func (f *FirstOrderFilter) Step(x float32) float32 + type FrameCounter struct + func NewFrameCounter(console *Console) *FrameCounter + func (f *FrameCounter) NeedToRun(cyclesToRun uint32) bool + func (f *FrameCounter) ReadRAM(addr uint16) byte + func (f *FrameCounter) Reset() + func (f *FrameCounter) Run(cyclesToRun *int32) uint32 + func (f *FrameCounter) WriteRAM(addr uint16, value byte) + type FrameType byte + const FRAME_TYPE_HALF_FRAME + const FRAME_TYPE_NONE + const FRAME_TYPE_QUARTER_FRAME + type IRQType byte + const IRQ_DMC + const IRQ_EXTERNAL + const IRQ_FDS_DISK + const IRQ_FRAME_COUNTER + type MMC1RegisterType byte + const MMC1_Reg8000 + const MMC1_RegA000 + const MMC1_RegC000 + const MMC1_RegE000 + type MMC3RegisterType uint16 + const MMC3_Reg8000 + const MMC3_Reg8001 + const MMC3_RegA000 + const MMC3_RegA001 + const MMC3_RegC000 + const MMC3_RegC001 + const MMC3_RegE000 + const MMC3_RegE001 + type MMC3State struct + Reg8000 byte + RegA000 byte + RegA001 byte + type Mapper interface + ExRead func(address uint16) byte + ExWrite func(address uint16, value byte) + NotifyVRAMAddressChange func(address uint16) + ReadMemory func(address uint16) byte + ReadVRAM func(address uint16) byte + Step func() + WriteMemory func(address uint16, value byte) + WriteVRAM func(address uint16, value byte) + func NewMapper(console *Console) (Mapper, error) + func NewMapper000(cartridge *Cartridge) Mapper + func NewMapper001(cartridge *Cartridge, console *Console) Mapper + func NewMapper002(cartridge *Cartridge, console *Console) Mapper + func NewMapper003(cartridge *Cartridge, console *Console) Mapper + func NewMapper004(cartridge *Cartridge, console *Console) Mapper + func NewMapper005(cartridge *Cartridge, console *Console) Mapper + func NewMapper016(cartridge *Cartridge, console *Console) Mapper + func NewMapper031(cartridge *Cartridge) Mapper + type Mapper000 struct + func (m *Mapper000) ExRead(address uint16) byte + func (m *Mapper000) ExWrite(address uint16, value byte) + func (m *Mapper000) Step() + type Mapper001 struct + func (m *Mapper001) ExRead(address uint16) byte + func (m *Mapper001) ExWrite(address uint16, value byte) + func (m *Mapper001) IsBufferFull(value byte) bool + func (m *Mapper001) ResetBuffer() + func (m *Mapper001) Step() + func (m *Mapper001) UpdateState() + func (m *Mapper001) WriteMemory(address uint16, value byte) + type Mapper002 struct + func (m *Mapper002) ExRead(address uint16) byte + func (m *Mapper002) ExWrite(address uint16, value byte) + func (m *Mapper002) Step() + func (m *Mapper002) WriteMemory(address uint16, value byte) + func (m *Mapper002) WriteRegister(address uint16, value byte) + type Mapper003 struct + func (m *Mapper003) ExRead(address uint16) byte + func (m *Mapper003) ExWrite(address uint16, value byte) + func (m *Mapper003) Step() + func (m *Mapper003) WriteMemory(address uint16, value byte) + func (m *Mapper003) WriteRegister(address uint16, value byte) + type Mapper004 struct + func (m *Mapper004) CanWriteToWorkRAM() bool + func (m *Mapper004) ExRead(address uint16) byte + func (m *Mapper004) ExWrite(address uint16, value byte) + func (m *Mapper004) NotifyVRAMAddressChange(address uint16) + func (m *Mapper004) ReadMemory(address uint16) byte + func (m *Mapper004) ResetMMC3() + func (m *Mapper004) Step() + func (m *Mapper004) UpdateCHRMapping() + func (m *Mapper004) UpdateMirroring() + func (m *Mapper004) UpdatePRGMapping() + func (m *Mapper004) UpdateState() + func (m *Mapper004) WriteMemory(address uint16, value byte) + func (m *Mapper004) WriteRegister(addr uint16, value byte) + type Mapper005 struct + ExRAMSize int + NtEmptyIndex byte + NtFillModeIndex byte + NtWorkRAMIndex byte + func (m *Mapper005) DetectScanlineStart(address uint16) + func (m *Mapper005) ExRead(address uint16) byte + func (m *Mapper005) ExWrite(address uint16, value byte) + func (m *Mapper005) GetCPUBankInfo(reg uint16, bankNumber *byte, memoryType *PRGMemoryType, ...) + func (m *Mapper005) ReadMemory(address uint16) byte + func (m *Mapper005) ReadRegister(address uint16) byte + func (m *Mapper005) ReadVRAM(address uint16) byte + func (m *Mapper005) SetExtendedRAMMode(mode byte) + func (m *Mapper005) SetFillModeColor(color byte) + func (m *Mapper005) SetFillModeTile(tile byte) + func (m *Mapper005) Step() + func (m *Mapper005) SwitchCHRBank(reg uint16, value byte) + func (m *Mapper005) SwitchPrgBank(reg uint16, value byte) + func (m *Mapper005) UpdateCHRBanks(forceUpdate bool) + func (m *Mapper005) UpdatePrgBanks() + func (m *Mapper005) WriteMemory(address uint16, value byte) + func (m *Mapper005) WriteRegister(address uint16, value byte) + func (m Mapper005) SetNametableMapping(value byte) + type Mapper005MemoryHandler struct + func NewMapper005MemoryHandler(console *Console) *Mapper005MemoryHandler + func (mh *Mapper005MemoryHandler) GetReg(addr uint16) byte + func (mh *Mapper005MemoryHandler) ReadRAM(addr uint16) byte + func (mh *Mapper005MemoryHandler) WriteRAM(addr uint16, value byte) + type Mapper016 struct + func (m *Mapper016) ExRead(address uint16) byte + func (m *Mapper016) ExWrite(address uint16, value byte) + func (m *Mapper016) ReadMemory(address uint16) byte + func (m *Mapper016) Step() + func (m *Mapper016) WriteMemory(address uint16, value byte) + type Mapper031 struct + func (m *Mapper031) ExRead(address uint16) byte + func (m *Mapper031) ExWrite(address uint16, value byte) + func (m *Mapper031) ReadMemory(address uint16) byte + func (m *Mapper031) Step() + func (m *Mapper031) WriteMemory(address uint16, value byte) + type MapperBase struct + func NewMapperBase(cartridge *Cartridge) *MapperBase + func (m *MapperBase) GetCHRPageCount() uint32 + func (m *MapperBase) GetMirroringType() MirroringType + func (m *MapperBase) GetNameTable(nametableIndex byte) []byte + func (m *MapperBase) GetPRGPageCount() uint32 + func (m *MapperBase) NotifyVRAMAddressChange(address uint16) + func (m *MapperBase) ReadMemory(address uint16) byte + func (m *MapperBase) ReadVRAM(address uint16) byte + func (m *MapperBase) SelectCHRPage(slot uint16, page uint16, memoryType CHRMemoryType) + func (m *MapperBase) SelectCHRPage2x(slot uint16, page uint16, memoryType CHRMemoryType) + func (m *MapperBase) SelectCHRPage4x(slot uint16, page uint16, memoryType CHRMemoryType) + func (m *MapperBase) SelectCHRPage8x(slot uint16, page uint16, memoryType CHRMemoryType) + func (m *MapperBase) SelectPRGPage(slot uint16, page uint16, memoryType PRGMemoryType) + func (m *MapperBase) SelectPRGPage2x(slot uint16, page uint16, memoryType PRGMemoryType) + func (m *MapperBase) SetCPUMemoryMappingByPageNumber(startAddr uint16, endAddr uint16, pageNumber uint16, memoryType PRGMemoryType, ...) + func (m *MapperBase) SetCPUMemoryMappingBySourceMemory(startAddr uint16, endAddr uint16, source []byte, accessType MemoryAccessType) + func (m *MapperBase) SetCPUMemoryMappingBySourceOffset(startAddr uint16, endAddr uint16, memoryType PRGMemoryType, ...) + func (m *MapperBase) SetMirroringType(mirrorType MirroringType) + func (m *MapperBase) SetNameTable(index byte, nametableIndex byte) + func (m *MapperBase) SetNameTables(nametable1Index, nametable2Index, nametable3Index, nametable4Index byte) + func (m *MapperBase) SetPPUMemoryMappingByPageNumber(startAddr uint16, endAddr uint16, pageNumber uint16, memoryType CHRMemoryType, ...) + func (m *MapperBase) SetPPUMemoryMappingBySourceMemory(startAddr uint16, endAddr uint16, sourceMemory []byte, ...) + func (m *MapperBase) SetPPUMemoryMappingBySourceOffset(startAddr uint16, endAddr uint16, memoryType CHRMemoryType, ...) + func (m *MapperBase) WriteMemory(address uint16, value byte) + func (m *MapperBase) WriteVRAM(address uint16, value byte) + type MemoryAccessType int16 + const MEMORY_ACCESS_NO_ACCESS + const MEMORY_ACCESS_READ + const MEMORY_ACCESS_READ_WRITE + const MEMORY_ACCESS_UNSPECIFIED + const MEMORY_ACCESS_WRITE + type MemoryOperationType byte + const DMCRead + const DummyRead + const DummyWrite + const ExecuteOpcode + const ExecuteOperand + const MemoryRead + const MemoryWrite + const PPURenderingRead + type MirroringType uint16 + const MIRROR_FOUR_SCREEN + const MIRROR_HORIZONTAL + const MIRROR_SINGLE_SCREEN_A + const MIRROR_SINGLE_SCREEN_B + const MIRROR_VERTICAL + type NSFFileHeader struct + ArtistName [32]byte + BankSetup [8]byte + CopyrightHolder [32]byte + Flags byte + Header [5]byte + InitAddress uint16 + LoadAddress uint16 + Padding [4]byte + PlayAddress uint16 + PlaySpeedNTSC uint16 + PlaySpeedPAL uint16 + SongName [32]byte + SoundChips byte + StartingSong byte + TotalSongs byte + Version byte + type NSFFileInfo struct + ROM []byte + func ParseNSFFileInfo(path string) (*NSFFileInfo, error) + type NSFPlayer struct + Console *Console + CurrentSong byte + CurrentSongFadeLen time.Duration + CurrentSongLen time.Duration + CurrentSongStart time.Time + LastPlayCall time.Time + NSFFileInfo *NSFFileInfo + PlayCallInterval float64 + PlayState bool + func NewNSFPlayer(path string) (*NSFPlayer, error) + func (np *NSFPlayer) NextSong() + func (np *NSFPlayer) PrevSong() + func (np *NSFPlayer) StepSeconds(seconds float64) + type NoiseChannel struct + func NewNoiseChannel(console *Console) *NoiseChannel + func (n *NoiseChannel) Reset() + func (n *NoiseChannel) Run(targetCycle uint32) + func (n *NoiseChannel) WriteRAM(addr uint16, value uint8) + type NoiseInfo struct + Out byte + Period uint16 + type PPU struct + Cycle uint32 + Frame uint64 + ScanLine int + func NewPPU(console *Console) *PPU + func (ppu *PPU) ApplyOpenBus(mask, value byte) byte + func (ppu *PPU) BeginVBLank() + func (ppu *PPU) DrawPixel() + func (ppu *PPU) GetAttributeAddr() uint16 + func (ppu *PPU) GetFrameCycle() uint32 + func (ppu *PPU) GetNameTableAddr() uint16 + func (ppu *PPU) GetPixelColor() byte + func (ppu *PPU) IncHorizontalScrolling() + func (ppu *PPU) IncVerticalScrolling() + func (ppu *PPU) IsRenderingEnabled() bool + func (ppu *PPU) LoadExtraSprites() + func (ppu *PPU) LoadSprite(spriteY, tileIndex, attributes, spriteX byte, extraSprite bool) + func (ppu *PPU) LoadSpriteTileInfo() + func (ppu *PPU) LoadTileInfo() + func (ppu *PPU) ProcessOAMCorruption() + func (ppu *PPU) ProcessScanLine() + func (ppu *PPU) ProcessSpriteEvaluation() + func (ppu *PPU) ProcessTmpAddrScrollGlitch(normalAddr uint16, value uint16, mask uint16) + func (ppu *PPU) ReadPaletteRAM(addr uint16) byte + func (ppu *PPU) ReadRAM(addr uint16) byte + func (ppu *PPU) ReadSpriteRAM(addr byte) byte + func (ppu *PPU) ReadVRAM(addr uint16, opeType MemoryOperationType) byte + func (ppu *PPU) Reset() + func (ppu *PPU) SetBusAddress(addr uint16) + func (ppu *PPU) SetControlRegister(value byte) + func (ppu *PPU) SetMaskRegister(value byte) + func (ppu *PPU) SetOAMCorruptionFlags() + func (ppu *PPU) SetOpenBus(mask, value byte) + func (ppu *PPU) ShiftTileRegisters() + func (ppu *PPU) Step() + func (ppu *PPU) TriggerNMI() + func (ppu *PPU) UpdateGrayscaleAndIntensifyBits() + func (ppu *PPU) UpdateMinimumDrawCycles() + func (ppu *PPU) UpdateState() + func (ppu *PPU) UpdateStatusFlag() + func (ppu *PPU) UpdateVideoRAMAddr() + func (ppu *PPU) WritePaletteRAM(addr uint16, value byte) + func (ppu *PPU) WriteRAM(addr uint16, value byte) + func (ppu *PPU) WriteSpriteRAM(addr byte, value byte) + func (ppu *PPU) WriteVRAM(addr uint16, value byte) + type PPUControlFlags struct + type PPUState struct + Control byte + HighBitShift uint16 + LowBitShift uint16 + Mask byte + SpriteRAMAddr uint32 + Status byte + TmpVideoRAMAddr uint16 + VideoRAMAddr uint16 + WriteToggle bool + XScroll uint8 + type PPUStatusFlags struct + Sprite0Hit bool + SpriteOverflow bool + VerticalBlank bool + type PRGBank struct + func (v *PRGBank) Set(ptr []byte, offset int32, memoryType PRGMemoryType, ...) + type PRGMemoryType byte + const PRG_MEMORY_PRG_ROM + const PRG_MEMORY_SAVE_RAM + const PRG_MEMORY_WORK_RAM + type SpriteInfo struct + type SquareChannel struct + func NewSquareChannel(console *Console, isChannel1 bool) *SquareChannel + func (s *SquareChannel) InitializeSweep(regValue byte) + func (s *SquareChannel) IsMuted() bool + func (s *SquareChannel) Reset() + func (s *SquareChannel) Run(targetCycle uint32) + func (s *SquareChannel) SetPeriod(newPeriod uint16) + func (s *SquareChannel) TickSweep() + func (s *SquareChannel) UpdateOutput() + func (s *SquareChannel) UpdateTargetPeriod() + func (s *SquareChannel) WriteRAM(addr uint16, value byte) + type TileInfo struct + type TriangleChannel struct + func NewTriangleChannel(console *Console) *TriangleChannel + func (t *TriangleChannel) Reset() + func (t *TriangleChannel) Run(targetCycle uint32) + func (t *TriangleChannel) TickLinearCounter() + func (t *TriangleChannel) WriteRAM(address uint16, value byte)