2011-09-29 12:08:22 +00:00
|
|
|
struct Board {
|
2011-09-29 12:44:49 +00:00
|
|
|
struct Memory {
|
2015-12-05 05:44:49 +00:00
|
|
|
inline Memory(uint8_t* data, uint size) : data(data), size(size) {}
|
Update to v082r33 release.
byuu says:
Added MMC2, MMC4, VRC4, VRC7 (no audio.)
Split NES audio code up into individual modules.
Fixed libsnes to compile: Themaister, can you please test to make sure
it works? I don't have a libsnes client on my work PC to test it.
Added about / license information to bottom of advanced settings screen
for now (better than nothing, I guess.)
Blocked PPU reads/writes while rendering for now, easier than coming up
with a bus address locking thing :/
I can't seem to fix MMC5 graphics during the intro to Uchuu Keibitai.
Without that, trying to implement vertical-split screen mode doesn't
make sense.
So as far as special audio chips go ...
* VRC6 is completed
* Sunsoft 5B has everything the only game to use it uses, but there are
more unused channels I'd like to support anyway (they aren't
documented, though.)
* MMC5 audio unsupported for now
* VRC7 audio unsupported, probably for a long time (hardest audio driver
of all. More complex than core NES APU.)
* audio PCM games (Moero Pro Yakyuu!) I probably won't ever support
(they require external WAV packs.)
2011-10-12 12:03:58 +00:00
|
|
|
inline Memory() : data(nullptr), size(0u), writable(false) {}
|
|
|
|
inline ~Memory() { if(data) delete[] data; }
|
2015-12-05 05:44:49 +00:00
|
|
|
|
|
|
|
inline auto read(uint addr) const -> uint8;
|
|
|
|
inline auto write(uint addr, uint8 data) -> void;
|
|
|
|
|
2016-06-20 11:00:32 +00:00
|
|
|
string name;
|
|
|
|
uint8_t* data = nullptr;
|
|
|
|
uint size = 0;
|
|
|
|
bool writable = false;
|
2011-09-29 12:44:49 +00:00
|
|
|
};
|
|
|
|
|
2015-12-05 05:44:49 +00:00
|
|
|
virtual ~Board() = default;
|
2011-09-29 12:08:22 +00:00
|
|
|
|
2015-12-05 05:44:49 +00:00
|
|
|
static auto mirror(uint addr, uint size) -> uint;
|
2011-09-29 12:44:49 +00:00
|
|
|
|
2016-06-20 11:00:32 +00:00
|
|
|
Board(Markup::Node& document);
|
|
|
|
auto save() -> void;
|
|
|
|
|
2015-12-05 05:44:49 +00:00
|
|
|
virtual auto main() -> void;
|
|
|
|
virtual auto tick() -> void;
|
2011-09-29 12:08:22 +00:00
|
|
|
|
2015-12-05 05:44:49 +00:00
|
|
|
virtual auto prg_read(uint addr) -> uint8 = 0;
|
|
|
|
virtual auto prg_write(uint addr, uint8 data) -> void = 0;
|
2011-09-29 12:08:22 +00:00
|
|
|
|
2015-12-05 05:44:49 +00:00
|
|
|
virtual auto chr_read(uint addr) -> uint8;
|
|
|
|
virtual auto chr_write(uint addr, uint8 data) -> void;
|
Update to v082r33 release.
byuu says:
Added MMC2, MMC4, VRC4, VRC7 (no audio.)
Split NES audio code up into individual modules.
Fixed libsnes to compile: Themaister, can you please test to make sure
it works? I don't have a libsnes client on my work PC to test it.
Added about / license information to bottom of advanced settings screen
for now (better than nothing, I guess.)
Blocked PPU reads/writes while rendering for now, easier than coming up
with a bus address locking thing :/
I can't seem to fix MMC5 graphics during the intro to Uchuu Keibitai.
Without that, trying to implement vertical-split screen mode doesn't
make sense.
So as far as special audio chips go ...
* VRC6 is completed
* Sunsoft 5B has everything the only game to use it uses, but there are
more unused channels I'd like to support anyway (they aren't
documented, though.)
* MMC5 audio unsupported for now
* VRC7 audio unsupported, probably for a long time (hardest audio driver
of all. More complex than core NES APU.)
* audio PCM games (Moero Pro Yakyuu!) I probably won't ever support
(they require external WAV packs.)
2011-10-12 12:03:58 +00:00
|
|
|
|
2015-12-05 05:44:49 +00:00
|
|
|
virtual inline auto scanline(uint y) -> void {}
|
2011-09-29 12:08:22 +00:00
|
|
|
|
2015-12-05 05:44:49 +00:00
|
|
|
virtual auto power() -> void;
|
|
|
|
virtual auto reset() -> void;
|
|
|
|
|
|
|
|
virtual auto serialize(serializer&) -> void;
|
2011-09-29 12:44:49 +00:00
|
|
|
|
2015-12-05 05:44:49 +00:00
|
|
|
static auto load(string manifest) -> Board*;
|
2011-09-29 12:08:22 +00:00
|
|
|
|
|
|
|
struct Information {
|
|
|
|
string type;
|
2011-09-29 12:44:49 +00:00
|
|
|
bool battery;
|
2011-09-29 12:08:22 +00:00
|
|
|
} information;
|
|
|
|
|
2011-09-29 12:44:49 +00:00
|
|
|
Memory prgrom;
|
|
|
|
Memory prgram;
|
|
|
|
Memory chrrom;
|
|
|
|
Memory chrram;
|
2011-09-29 12:08:22 +00:00
|
|
|
};
|