Hacker News new | ask | show | jobs
by MichaelBurge 2654 days 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.

1 comments

That's impressive. A few follow up questions:

1. Was this your first NES emulator?

2. Your first project in Rust?

Yes to both of these. I usually use C for projects like these, and wanted to see how Rust compared.
Follow up to that: Did you write any other emulators in the past?