Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
alexbevi
GitHub Repository: alexbevi/BizHawk
Path: blob/master/libsnes/bsnes/gameboy/cartridge/cartridge.hpp
2 views
1
struct Cartridge : MMIO, property<Cartridge> {
2
#include "mbc0/mbc0.hpp"
3
#include "mbc1/mbc1.hpp"
4
#include "mbc2/mbc2.hpp"
5
#include "mbc3/mbc3.hpp"
6
#include "mbc5/mbc5.hpp"
7
#include "mmm01/mmm01.hpp"
8
#include "huc1/huc1.hpp"
9
#include "huc3/huc3.hpp"
10
11
enum Mapper : unsigned {
12
MBC0,
13
MBC1,
14
MBC2,
15
MBC3,
16
MBC5,
17
MMM01,
18
HuC1,
19
HuC3,
20
Unknown,
21
};
22
23
struct Information {
24
string xml;
25
26
Mapper mapper;
27
bool ram;
28
bool battery;
29
bool rtc;
30
bool rumble;
31
32
unsigned romsize;
33
unsigned ramsize;
34
} info;
35
36
readonly<bool> loaded;
37
readonly<string> sha256;
38
39
uint8_t *romdata;
40
unsigned romsize;
41
42
uint8_t *ramdata;
43
unsigned ramsize;
44
45
MMIO *mapper;
46
bool bootrom_enable;
47
48
void load(System::Revision revision, const string &markup, const uint8_t *data, unsigned size);
49
void unload();
50
51
uint8 rom_read(unsigned addr);
52
void rom_write(unsigned addr, uint8 data);
53
uint8 ram_read(unsigned addr);
54
void ram_write(unsigned addr, uint8 data);
55
56
uint8 mmio_read(uint16 addr);
57
void mmio_write(uint16 addr, uint8 data);
58
59
void power();
60
61
void serialize(serializer&);
62
Cartridge();
63
~Cartridge();
64
};
65
66
extern Cartridge cartridge;
67
68