4 ms·
It took 14 days to get it functionally-complete, where I could beat Mario using savestates. The PPU took 7 days, the CPU took 5 days, the APU took 1 day, and t
by MichaelBurge 8y ago
It took 14 days to get it functionally-complete, where I could beat Mario using savestates.
The PPU took 7 days, the CPU took 5 days, the APU took 1 day, and there's a spare day for everything else.
The CPU was easy to make: Its natural unit of output is a single CPU instruction. Even if there are many details, it's a straightforward process to compare an instruction-by-instruction log with a reference log until there are no differences.
The PPU was harder because the natural unit of output is an entire frame: It's not any easier to get the first pixel correct, than to get them all correct. So almost everything needs to be in place before you can validate its output.
- wiremine 8y agoThat's impressive. A few follow up questions: 1. Was this your first NES emulator? 2. Your first project in Rust?
- MichaelBurge 8y agoYes to both of these. I usually use C for projects like these, and wanted to see how Rust compared.
- codetrotter 8y agoFollow up to that: Did you write any other emulators in the past?