rusticnes-core
rusticnes-core copied to clipboard
I decided to teach myself Rust by writing an NES emulator. Things quickly got out of hand.
Followed the ordinary Rust ritual [over here](https://doc.rust-lang.org/edition-guide/editions/transitioning-an-existing-project-to-a-new-edition.html)
The base featureset of the VRC7 mapper is reasonably straightforward and should not be hard to implement: https://wiki.nesdev.org/w/index.php?title=VRC7 But the real bugbear here is the _expansion audio_, a 2op FM...
This is probably the most complex commonly requested mapper type remaining, beyond esoteric homebrew boards. It's less a cartridge type and more an entire suite of external peripherals and complications:...
Makes things a bit more clear and maybe perhaps (I have no idea) helps the compiler to make better decisions. WDYT?
What the title says for various things like f.ex saving and resuming or, I don't know... doing rollback networking? :)
The "beakers" ROM in [little things v20.10](https://github.com/pinobatch/little-things-nes/releases/v20.10) claims to be 16K+8K, but it's actually only 16K+4K. This admittedly invalid ROM crashes the emulator: ``` thread 'main' panicked at 'range end...
A program can tell that it's running on RusticNES because the buttons always change right at vblank. The games _Spot_ and _Quattro Sports_ depend on this and will not work...
[Two Irem discrete boards classified as Mapper 78](https://wiki.nesdev.com/w/index.php/INES_Mapper_078) are used in _Uchuusen Cosmo Carrier_ and _Holy Diver_. The NES 2.0 submapper selects switchable 1-screen mirroring or switchable H/V mirroring. The...
The [Action 53 multicart mapper](https://wiki.nesdev.com/w/index.php/Action_53_mapper) is used in a [series of multicarts](https://wiki.nesdev.com/w/index.php/Action_53) produced by the NESdev community. The test28 ROM in [little things](https://github.com/pinobatch/little-things-nes/releases) produces "Unsupported iNES mapper: 28".
We should detect and support the extended features of the iNES 2.0 header: https://wiki.nesdev.com/w/index.php/NES_2.0 Additionally, we should probably clean up the header details that are currently passed into the mapper....