gamePak

package
v0.0.0-...-45a14b4 Latest Latest
Warning

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

Go to latest
Published: Sep 2, 2022 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

View Source
const FourScreenMirroring = byte(0b11)
View Source
const GAMEPAK_HIGH_RANGE = 0xFFFF
View Source
const GAMEPAK_LOW_RANGE = 0x4020
View Source
const GAMEPAK_MEMORY_SIZE = 0xBFE0
View Source
const GAMEPAK_ROM_LOWER_BANK_START = 0x8000
View Source
const HorizontalMirroring = byte(0b00)
View Source
const OneScreenMirroring = byte(0b10)
View Source
const VerticalMirroring = byte(0b01)

Variables

This section is empty.

Functions

func NewEmptyCHRROM

func NewEmptyCHRROM() []byte

Types

type GamePak

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

func CreateGamePak

func CreateGamePak(header Header, prgROM []byte, chrROM []byte) GamePak

func CreateGamePakFromROMFile

func CreateGamePakFromROMFile(romFilePath string) GamePak

func NewDummyGamePak

func NewDummyGamePak(chrROM []byte) *GamePak

func NewGamePakWithINes

func NewGamePakWithINes(flag6 byte, flag7 byte, flag8 byte, flag9 byte, flag10 byte, prgROM []byte, chrROM []byte) GamePak

func (*GamePak) Header

func (gamePak *GamePak) Header() Header

func (*GamePak) ReadCHRROM

func (gamePak *GamePak) ReadCHRROM(address types.Address) byte

func (*GamePak) ReadPrgROM

func (gamePak *GamePak) ReadPrgROM(address types.Address) byte

func (*GamePak) WriteCHRRAM

func (gamePak *GamePak) WriteCHRRAM(address types.Address, value byte)

func (*GamePak) WritePrgROM

func (gamePak *GamePak) WritePrgROM(address types.Address, value byte)

type GamePakInterface

type GamePakInterface interface {
	Header() Header
	ReadPrgROM(address types.Address) byte
	WritePrgROM(address types.Address, value byte)
	ReadCHRROM(address types.Address) byte
	WriteCHRAM(address types.Address, value byte)
}
type Header interface {
	ProgramSize() byte
	CHRSize() byte
	Mirroring() byte
	HasPersistentMemory() bool
	HasTrainer() bool
	IgnoreMirroringControl() bool

	MapperNumber() byte
	PRGRAM() byte
	TvSystem() byte
}

type INesHeader

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

func CreateINes1Header

func CreateINes1Header(prgRomSize byte, chrRomSize byte, flag6 byte, flag7 byte, flag8 byte, flag9 byte, flag10 byte) INesHeader

func (INesHeader) CHRSize

func (ines INesHeader) CHRSize() byte

func (INesHeader) HasPersistentMemory

func (ines INesHeader) HasPersistentMemory() bool

func (INesHeader) HasTrainer

func (ines INesHeader) HasTrainer() bool

func (INesHeader) IgnoreMirroringControl

func (ines INesHeader) IgnoreMirroringControl() bool

func (INesHeader) MapperNumber

func (ines INesHeader) MapperNumber() byte

func (INesHeader) Mirroring

func (ines INesHeader) Mirroring() byte

func (INesHeader) PRGRAM

func (ines INesHeader) PRGRAM() byte

func (INesHeader) ProgramSize

func (ines INesHeader) ProgramSize() byte

Flags6 76543210 |||||||| |||||||+- Mirroring: 0: horizontal (vertical arrangement) (CIRAM A10 = PPU A11) ||||||| 1: vertical (horizontal arrangement) (CIRAM A10 = PPU A10) ||||||+-- 1: GamePak contains battery-backed PRG RAM ($6000-7FFF) or other persistent memory |||||+--- 1: 512-byte trainer at $7000-$71FF (stored before PRG prgROM) ||||+---- 1: Ignore mirroring control or above mirroring bit; instead provide four-screen VRAM ++++----- Lower nybble of mapper number

func (INesHeader) TvSystem

func (ines INesHeader) TvSystem() byte

type Mapper

type Mapper interface {
	PrgBanks() byte
	ChrBanks() byte

	ReadPrgROM(address types.Address) byte
	WritePrgROM(address types.Address, value byte)
	ReadChrROM(address types.Address) byte
	WriteChrROM(address types.Address, value byte)
}

func CreateMapper

func CreateMapper(header Header, prgROM []byte, chrROM []byte) Mapper

type Mapper000

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

func CreateMapper000

func CreateMapper000(header Header, prgROM []byte, chrROM []byte) *Mapper000

func (*Mapper000) ChrBanks

func (mapper *Mapper000) ChrBanks() byte

func (*Mapper000) PrgBanks

func (mapper *Mapper000) PrgBanks() byte

func (*Mapper000) ReadChrROM

func (mapper *Mapper000) ReadChrROM(address types.Address) byte

func (*Mapper000) ReadPrgROM

func (mapper *Mapper000) ReadPrgROM(address types.Address) byte

func (*Mapper000) WriteChrROM

func (mapper *Mapper000) WriteChrROM(address types.Address, value byte)

func (*Mapper000) WritePrgROM

func (mapper *Mapper000) WritePrgROM(address types.Address, value byte)

Jump to

Keyboard shortcuts

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