This term, our team completed the CPU and memory bus portions of our NES emulator. We also have approximately 10,000 tests per instruction running and passing! We even had time to start working on a display — right now just a window opens, but that’s progress!
Much of my contributions were related to our development environment. I recreated our Docker container, which uses Alpine now. All of our build and testing tools are present in the container, and the image lives in the GitHub repository. The Docker container was generalized such that it can be used for building, testing, or linting/formatting either locally or in CI. This standardized our linting/formatting checks, and allowed automatic application of standards when run locally. I also implemented a few instructions, namely the stack and shift instruction set.
For future work, I intend to implement automated testing in the repo and to automate build releases. I’m also really looking forward to working on the PPU. This has been a fun project so far, and I’m lucky to have such a great team to work on it with.
See our repo here: https://github.com/coopeaus/NES-Emulator