Justyn Shelby's Portfolio

2025 Capstone Project: Create an NES Emulator

For my senior year, my capstone group created an NES Emualtor

Currently, our emulator:

This project is written almost entirely in C++. In particular, I focused on CPU development. I implemented the adressing modes, unofficial instructions, and a portion of the official instructions. Additionally, I worked on CPU debugging, clock timing, refactoring, and assisted my team in further development

NES GUI
Graphical User Interface
Donkey Kong Menu
Loading a ROM, Donkey Kong pictured here
Donkey Kong
Running Donkey Kong with limited foreground sprites

The five largest things I’ve learned from this project so far are C++, teamwork, Git, low-level concepts, and testing. C++ I have never used before, although I have some knowledge of C and decent knowledge of C#. I have, of course, worked on team projects before, but never on a project this large or long. Communication has been absolutely key! Same thing with Git; I have used it to collaborate with team members before, but I’ve used a lot more of the features of both Git and GitHub this time around. I mentioned low-level learning before, but it has been very interesting to learn about the specifics of how a computer works. Finally, testing has been vitally important in this project, both in writing our own tests and running premade test ROMs and discovering how these work and display results.