Parsing more fields in header
This commit is contained in:
parent
44ea8baea8
commit
f07633a69e
@ -22,7 +22,7 @@ int main() {
|
||||
});
|
||||
device.connect(std::make_shared<SdlKeyboardController>());
|
||||
//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();
|
||||
|
||||
@ -28,7 +28,6 @@ namespace nes {
|
||||
_chrRom = std::span<uint8_t>(_romData.get() + sizeof(RomHeader) + prgSize, chrSize);
|
||||
|
||||
_mapper = std::make_unique<Mapper0>(_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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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<uint8_t> _prgRom;
|
||||
std::span<uint8_t> _chrRom;
|
||||
|
||||
private:
|
||||
Mirroring _mirroring;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user