Path: blob/master/libsnes/bsnes/gameboy/cartridge/cartridge.hpp
2 views
struct Cartridge : MMIO, property<Cartridge> {1#include "mbc0/mbc0.hpp"2#include "mbc1/mbc1.hpp"3#include "mbc2/mbc2.hpp"4#include "mbc3/mbc3.hpp"5#include "mbc5/mbc5.hpp"6#include "mmm01/mmm01.hpp"7#include "huc1/huc1.hpp"8#include "huc3/huc3.hpp"910enum Mapper : unsigned {11MBC0,12MBC1,13MBC2,14MBC3,15MBC5,16MMM01,17HuC1,18HuC3,19Unknown,20};2122struct Information {23string xml;2425Mapper mapper;26bool ram;27bool battery;28bool rtc;29bool rumble;3031unsigned romsize;32unsigned ramsize;33} info;3435readonly<bool> loaded;36readonly<string> sha256;3738uint8_t *romdata;39unsigned romsize;4041uint8_t *ramdata;42unsigned ramsize;4344MMIO *mapper;45bool bootrom_enable;4647void load(System::Revision revision, const string &markup, const uint8_t *data, unsigned size);48void unload();4950uint8 rom_read(unsigned addr);51void rom_write(unsigned addr, uint8 data);52uint8 ram_read(unsigned addr);53void ram_write(unsigned addr, uint8 data);5455uint8 mmio_read(uint16 addr);56void mmio_write(uint16 addr, uint8 data);5758void power();5960void serialize(serializer&);61Cartridge();62~Cartridge();63};6465extern Cartridge cartridge;666768