#pragma once #include #include #include namespace N64 { enum class CountryCode { Japan, NorthAmerica, Europe, Unknown }; class Cartridge { public: explicit Cartridge(const std::vector& romData) : gRomData(romData), gCountryCode(CountryCode::Unknown), gVersion(0), gGameTitle("Unknown") {} void Initialize(); const std::string& GetGameTitle(); std::string GetCountryCode(); CountryCode GetCountry(); uint8_t GetVersion() const; std::string GetHash(); uint32_t GetCRC(); private: std::vector gRomData; CountryCode gCountryCode; uint8_t gVersion; std::string gGameTitle; std::string gHash; uint32_t gRomCRC; }; }