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.connect(std::make_shared<SdlKeyboardController>());
|
||||||
//device.insertCartridge("/home/selim/Downloads/dk.nes");
|
//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");
|
//device.insertCartridge("C:\\Users\\selim\\Documents\\nestest.nes");
|
||||||
|
|
||||||
auto frameStart = std::chrono::steady_clock::now();
|
auto frameStart = std::chrono::steady_clock::now();
|
||||||
|
|||||||
@ -28,7 +28,6 @@ namespace nes {
|
|||||||
_chrRom = std::span<uint8_t>(_romData.get() + sizeof(RomHeader) + prgSize, chrSize);
|
_chrRom = std::span<uint8_t>(_romData.get() + sizeof(RomHeader) + prgSize, chrSize);
|
||||||
|
|
||||||
_mapper = std::make_unique<Mapper0>(_header->prgChunks, _header->chrChunks);
|
_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) {
|
uint8_t Cartridge::readPrg(uint16_t address) {
|
||||||
@ -42,7 +41,7 @@ namespace nes {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Cartridge::Mirroring Cartridge::mirroring() const {
|
Cartridge::Mirroring Cartridge::mirroring() const {
|
||||||
return _mirroring;
|
return _header->flags.mirroring;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -22,13 +22,16 @@ namespace nes {
|
|||||||
class Cartridge {
|
class Cartridge {
|
||||||
public:
|
public:
|
||||||
enum Mirroring {
|
enum Mirroring {
|
||||||
Horizontal,
|
Horizontal = 0,
|
||||||
Vertical
|
Vertical = 1
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Flags {
|
struct Flags {
|
||||||
uint8_t mirroring: 1;
|
Mirroring mirroring: 1;
|
||||||
uint8_t reserved: 7;
|
uint8_t batteryBacked: 1;
|
||||||
|
uint8_t trainer: 1;
|
||||||
|
uint8_t nametableAltLayout: 1;
|
||||||
|
uint8_t mapper: 4;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct RomHeader {
|
struct RomHeader {
|
||||||
@ -53,9 +56,6 @@ namespace nes {
|
|||||||
RomHeader* _header;
|
RomHeader* _header;
|
||||||
std::span<uint8_t> _prgRom;
|
std::span<uint8_t> _prgRom;
|
||||||
std::span<uint8_t> _chrRom;
|
std::span<uint8_t> _chrRom;
|
||||||
|
|
||||||
private:
|
|
||||||
Mirroring _mirroring;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user