This is a project for a NES emulator written in pure C. The main goal of this project is to emulate a Nintendo Entertainment System (NES) to run most of the classic games. This repo tries to port the original NES Emulator written by OneLoneCoder (javidx9) written in C++ into a pure C Emulator. Check the Acknowledgments section.
Below is a list of features that have been implemented so far and those that are pending:
- Official opcodes
- Unofficial opcodes (By the moment some NOP)
- Mirroring
- Background
- Foreground (Sprites)
- Mapper 000 (NROM)
- Other mappers...
- APU stuff :D
- Keyboard
- Gamepad
Raylib is the only dependency for the graphics, sound and input. Also, the status of the project is only tested on a Windows machine.
$ make && ./nes
I would like to extend my heartfelt gratitude to the following individuals and resources:
-
Nesdev Wiki: A valuable source of NES programming information and documentation that has been instrumental in the development of this emulator.
-
OneLoneCoder (javidx9): Inspirational tutorials and content that have helped me learn and improve my programming skills on C/C++.