From f07633a69e8b3d6a86dd428acddd732b601dba6b Mon Sep 17 00:00:00 2001 From: Selim Mustafaev Date: Tue, 24 Jun 2025 17:51:49 +0300 Subject: [PATCH] Parsing more fields in header --- examples/sdl/main.cpp | 2 +- src/Cartridge.cpp | 3 +-- src/Cartridge.h | 14 +++++++------- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/examples/sdl/main.cpp b/examples/sdl/main.cpp index f0ddcb5..63b0164 100644 --- a/examples/sdl/main.cpp +++ b/examples/sdl/main.cpp @@ -22,7 +22,7 @@ int main() { }); device.connect(std::make_shared()); //device.insertCartridge("/home/selim/Downloads/dk.nes"); - device.insertCartridge("/Users/selim/Documents/smb.nes"); + device.insertCartridge("/Users/selim/Documents/ff.nes"); //device.insertCartridge("C:\\Users\\selim\\Documents\\nestest.nes"); auto frameStart = std::chrono::steady_clock::now(); diff --git a/src/Cartridge.cpp b/src/Cartridge.cpp index d5e8577..9fd5209 100644 --- a/src/Cartridge.cpp +++ b/src/Cartridge.cpp @@ -28,7 +28,6 @@ namespace nes { _chrRom = std::span(_romData.get() + sizeof(RomHeader) + prgSize, chrSize); _mapper = std::make_unique(_header->prgChunks, _header->chrChunks); - _mirroring = _header->flags.mirroring == 0 ? Mirroring::Horizontal : Mirroring::Vertical; } uint8_t Cartridge::readPrg(uint16_t address) { @@ -42,7 +41,7 @@ namespace nes { } Cartridge::Mirroring Cartridge::mirroring() const { - return _mirroring; + return _header->flags.mirroring; } } diff --git a/src/Cartridge.h b/src/Cartridge.h index a6f4542..5ab4acb 100644 --- a/src/Cartridge.h +++ b/src/Cartridge.h @@ -22,13 +22,16 @@ namespace nes { class Cartridge { public: enum Mirroring { - Horizontal, - Vertical + Horizontal = 0, + Vertical = 1 }; struct Flags { - uint8_t mirroring: 1; - uint8_t reserved: 7; + Mirroring mirroring: 1; + uint8_t batteryBacked: 1; + uint8_t trainer: 1; + uint8_t nametableAltLayout: 1; + uint8_t mapper: 4; }; struct RomHeader { @@ -53,9 +56,6 @@ namespace nes { RomHeader* _header; std::span _prgRom; std::span _chrRom; - - private: - Mirroring _mirroring; }; }