mirror of https://github.com/bsnes-emu/bsnes.git
122 lines
3.5 KiB
C++
122 lines
3.5 KiB
C++
struct Cartridge {
|
|
auto pathID() const -> uint { return information.pathID; }
|
|
auto region() const -> string { return information.region; }
|
|
|
|
auto hashes() const -> vector<string>;
|
|
auto manifests() const -> vector<string>;
|
|
auto titles() const -> vector<string>;
|
|
|
|
auto load() -> bool;
|
|
auto save() -> void;
|
|
auto unload() -> void;
|
|
|
|
auto serialize(serializer&) -> void;
|
|
|
|
ReadableMemory rom;
|
|
WritableMemory ram;
|
|
|
|
struct Information {
|
|
uint pathID = 0;
|
|
string region;
|
|
string sha256;
|
|
} information;
|
|
|
|
struct Has {
|
|
boolean ICD;
|
|
boolean MCC;
|
|
boolean DIP;
|
|
boolean Event;
|
|
boolean SA1;
|
|
boolean SuperFX;
|
|
boolean ARMDSP;
|
|
boolean HitachiDSP;
|
|
boolean NECDSP;
|
|
boolean EpsonRTC;
|
|
boolean SharpRTC;
|
|
boolean SPC7110;
|
|
boolean SDD1;
|
|
boolean OBC1;
|
|
boolean MSU1;
|
|
|
|
boolean GameBoySlot;
|
|
boolean BSMemorySlot;
|
|
boolean SufamiTurboSlotA;
|
|
boolean SufamiTurboSlotB;
|
|
} has;
|
|
|
|
private:
|
|
Emulator::Game game;
|
|
Emulator::Game slotGameBoy;
|
|
Emulator::Game slotBSMemory;
|
|
Emulator::Game slotSufamiTurboA;
|
|
Emulator::Game slotSufamiTurboB;
|
|
Markup::Node board;
|
|
|
|
//cartridge.cpp
|
|
auto loadGameBoy() -> bool;
|
|
auto loadBSMemory() -> bool;
|
|
auto loadSufamiTurboA() -> bool;
|
|
auto loadSufamiTurboB() -> bool;
|
|
|
|
//load.cpp
|
|
auto loadBoard(string) -> Markup::Node;
|
|
auto loadCartridge(Markup::Node) -> void;
|
|
auto loadCartridgeGameBoy(Markup::Node) -> void;
|
|
auto loadCartridgeBSMemory(Markup::Node) -> void;
|
|
auto loadCartridgeSufamiTurboA(Markup::Node) -> void;
|
|
auto loadCartridgeSufamiTurboB(Markup::Node) -> void;
|
|
|
|
auto loadMemory(Memory&, Markup::Node, bool required) -> void;
|
|
template<typename T> auto loadMap(Markup::Node, T&) -> uint;
|
|
auto loadMap(Markup::Node, const function<uint8 (uint24, uint8)>&, const function<void (uint24, uint8)>&) -> uint;
|
|
|
|
auto loadROM(Markup::Node) -> void;
|
|
auto loadRAM(Markup::Node) -> void;
|
|
auto loadICD(Markup::Node) -> void;
|
|
auto loadMCC(Markup::Node) -> void;
|
|
auto loadBSMemory(Markup::Node) -> void;
|
|
auto loadSufamiTurboA(Markup::Node) -> void;
|
|
auto loadSufamiTurboB(Markup::Node) -> void;
|
|
auto loadDIP(Markup::Node) -> void;
|
|
auto loadEvent(Markup::Node) -> void;
|
|
auto loadSA1(Markup::Node) -> void;
|
|
auto loadSuperFX(Markup::Node) -> void;
|
|
auto loadARMDSP(Markup::Node) -> void;
|
|
auto loadHitachiDSP(Markup::Node, uint roms) -> void;
|
|
auto loaduPD7725(Markup::Node) -> void;
|
|
auto loaduPD96050(Markup::Node) -> void;
|
|
auto loadEpsonRTC(Markup::Node) -> void;
|
|
auto loadSharpRTC(Markup::Node) -> void;
|
|
auto loadSPC7110(Markup::Node) -> void;
|
|
auto loadSDD1(Markup::Node) -> void;
|
|
auto loadOBC1(Markup::Node) -> void;
|
|
auto loadMSU1() -> void;
|
|
|
|
//save.cpp
|
|
auto saveCartridge(Markup::Node) -> void;
|
|
auto saveCartridgeGameBoy(Markup::Node) -> void;
|
|
auto saveCartridgeBSMemory(Markup::Node) -> void;
|
|
auto saveCartridgeSufamiTurboA(Markup::Node) -> void;
|
|
auto saveCartridgeSufamiTurboB(Markup::Node) -> void;
|
|
|
|
auto saveMemory(Memory&, Markup::Node) -> void;
|
|
|
|
auto saveRAM(Markup::Node) -> void;
|
|
auto saveMCC(Markup::Node) -> void;
|
|
auto saveSA1(Markup::Node) -> void;
|
|
auto saveSuperFX(Markup::Node) -> void;
|
|
auto saveARMDSP(Markup::Node) -> void;
|
|
auto saveHitachiDSP(Markup::Node) -> void;
|
|
auto saveuPD7725(Markup::Node) -> void;
|
|
auto saveuPD96050(Markup::Node) -> void;
|
|
auto saveEpsonRTC(Markup::Node) -> void;
|
|
auto saveSharpRTC(Markup::Node) -> void;
|
|
auto saveSPC7110(Markup::Node) -> void;
|
|
auto saveOBC1(Markup::Node) -> void;
|
|
|
|
friend class Interface;
|
|
friend class ICD;
|
|
};
|
|
|
|
extern Cartridge cartridge;
|