28class CRTFile :
public AnyFile {
31 static const isize MAX_PACKETS = 128;
34 isize numberOfChips = 0;
37 u8 *chips[MAX_PACKETS] = {};
45 static string cartridgeTypeName(CartridgeType type);
46 static bool isCompatible(
const fs::path &path);
47 static bool isCompatible(std::istream &stream);
54 CRTFile(
const fs::path &path)
throws { init(path); }
55 CRTFile(
const u8 *buf, isize len)
throws { init(buf, len); }
62 const char *objectName()
const override {
return "CRTFile"; }
69 bool isCompatiblePath(
const fs::path &path)
override {
return isCompatible(path); }
70 bool isCompatibleStream(std::istream &stream)
override {
return isCompatible(stream); }
71 FileType type()
const override {
return FILETYPE_CRT; }
72 PETName<16> getName()
const override;
73 void finalizeRead()
override;
81 u16 cartridgeVersion()
const;
84 u32 headerSize()
const;
87 CartridgeType cartridgeType()
const;
90 string cartridgeTypeName()
const {
return cartridgeTypeName(cartridgeType()); }
93 bool isSupported()
const;
96 bool initialExromLine()
const {
return data[0x18] != 0; }
97 bool initialGameLine()
const {
return data[0x19] != 0; }
105 isize chipCount()
const;
108 u8 *chipData(isize nr)
const;
111 u16 chipSize(isize nr)
const;
114 u16 chipType(isize nr)
const;
117 u16 chipBank(isize nr)
const;
120 u16 chipAddr(isize nr)
const;
VirtualC64 project namespace.
Definition CmdQueue.cpp:16