Class Mapper001
Defined in File Mapper001.h
Inheritance Relationships
Base Type
public Mapper
(Class Mapper)
Class Documentation
-
class Mapper001 : public Mapper
iNES mapper 001.
PRG ROM: 256 or 512 KiB. PRG RAM: 8-32 KiB (default 32 KiB, selectable only with NES 2.0 dumps). CHR ROM: 8-128 KiB
If no CHR ROM present (0 KiB), m_CHRRAM will be mapped to CHR ROM and 8 KiB of memory provided.
Mirroring settings: H, V, single or switchable. Both PRG and CHR ROMs support banking.
Public Functions
-
Mapper001(std::vector<uint8_t> &PRGROM, std::vector<uint8_t> &CHRROM, size_t PRGRAMSize = 0x8000)
Create instance of Mapper 001.
PRG RAM size can be selected in NES 2.0 headers, default of 32 KiB is provided for backwards compatibility.
-
~Mapper001() override = default
-
virtual void init() override
Initialize mapper to the power-up state = clean all volatile memories.
-
virtual bool cpuRead(uint16_t addr, uint8_t &data) override
CPU read interface.
- Parameters
addr – Address to read from.
data – Buffer to write to.
- Returns
true If anything was read
-
virtual bool cpuWrite(uint16_t addr, uint8_t data) override
CPU write interface.
- Parameters
addr – Address to write to.
data – Data to write.
- Returns
true If anything was written.
-
virtual bool ppuRead(uint16_t addr, uint8_t &data) override
PPU read interface.
- Parameters
addr – Address to read from.
data – Buffer to write to.
- Returns
true If anything was read.
-
virtual bool ppuWrite(uint16_t addr, uint8_t data) override
PPU write interface.
- Parameters
addr – Address to write to.
data – Data to write.
- Returns
true If anything was written.
-
virtual void drawGUI() override
Draw a debugging GUI.
Public Members
-
PRGMode_t PRGMode
PRG switching mode.
-
uint8_t PRGROMSelect
Select PRG ROM bank.
-
CHRMode_t CHRMode
CHR switching mode.
-
uint8_t CHRROMLoSelect
Select low CHR bank.
-
uint8_t CHRROMHiSelect
Select high CHR bank.
-
bool enablePRGRAM
Enable program RAM.
-
uint8_t PRGRAMSelect
PRG RAM bank select (A13 for 16 KB version; A14-A13 for 32 KB version).
-
Mapper001(std::vector<uint8_t> &PRGROM, std::vector<uint8_t> &CHRROM, size_t PRGRAMSize = 0x8000)