For those not familiar with software emulation, an emulator is anything that allows programs and software written for some specific piece of hardware to work on another. An NES emulator seeks to perform all the various hardware functions that the original Nintendo Entertainment System does when a Read-Only Memory cartridge (ROM) is loaded, thereby allowing old games to run on virtually any hardware. This is done completely in software.
There are many open-source emulators already available, but I thought it would be a very good exercise for 2-4 people to comb through documentation and implement one of their own. Because the NES is relatively simple, it should be theoretically possible to have a working prototype with a game running by the end of the semester.
The emulator could be completed in any language, but because of the low-level complexity involved in writing an emulator, languages like C, C++, Rust, and Go might make the most sense here.
As this has been done to death, documentation for the NES is very plentiful.
- Jake Hamzawi (HamSesh), Project Manager
- Michael Norris (NotStanley4330), Chief Architect
- Jonah Bateman (Kahoot 3), Engineer
- Cameron Clark (Reason4Respawn), Engineer
- PJ Rape (ptrj96), Engineer
- Jacob Rawlings (Culker), Engineer