-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMapper.h
More file actions
32 lines (23 loc) · 702 Bytes
/
Mapper.h
File metadata and controls
32 lines (23 loc) · 702 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#pragma once
#include <cstdint>
/* --- ADAPTED FROM https://github.com/AndreaOrru/LaiNES/blob/master/src/include/mapper.hpp */
class Mapper
{
uint8_t* rom;
bool chrRam = false;
protected:
uint32_t prgMap[4];
uint32_t chrMap[4];
uint8_t *prg, *chr, *prgRam;
uint32_t prgSize, chrSize, prgRamSize;
template<int pageKBs> void map_prg(int slot, int bank);
template<int pageKBs> void map_chr(int slot, int bank);
public:
Mapper(uint8_t *rom);
~Mapper();
uint8_t read(uint16_t addr);
virtual uint8_t write(uint16_t addr, uint8_t v) { return v; };
uint8_t chr_read(uint16_t addr);
virtual uint8_t chr_write(uint16_t addr, uint8_t v) { return v; };
virtual void signal_scanline() {};
};