From 8b0292cccf768efdd5295fe0b662488cbc671079 Mon Sep 17 00:00:00 2001 From: crecher Date: Mon, 12 Oct 2026 04:07:09 +0200 Subject: added cart package, more tests, tests are now at ./tests and added .gitignore --- cart/mapper.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 cart/mapper.go (limited to 'cart/mapper.go') diff --git a/cart/mapper.go b/cart/mapper.go new file mode 100644 index 0000000..7ddd8a9 --- /dev/null +++ b/cart/mapper.go @@ -0,0 +1,30 @@ +package cart + +import "fmt" + +type Mirroring uint8 + +const ( + Horizontal Mirroring = iota + Vertical + FourScreen + SingleScreenLower + SingleScreenUpper +) + +type Mapper interface { + CPURead(addr uint16) uint8 + CPUWrite(addr uint16, v uint8) + PPURead(addr uint16) uint8 + PPUWrite(addr uint16, v uint8) + Mirroring() Mirroring +} + +func newMapper(c *Cartridge) (Mapper, error) { + switch c.MapperID { + case 0: + return newNROM(c), nil + default: + return nil, fmt.Errorf("cart: unsupported mapper %d", c.MapperID) + } +} -- cgit v1.2.3