nesemu/README.md

51 lines
1.4 KiB
Markdown
Raw Normal View History

2024-07-10 22:34:14 -04:00
# NES Emulator
This is the repository of a Nintendo Entertainment System (NES) emulator in active development. The emulator is not
currently complete but can run and partially display a ROM. Note that the project may support Windows and MacOS, but was
only tested on Linux. Here is how to run the project:
- Change the ```rom_path``` at line 26 of ```main.c```
- Generate the Makefile with CMake: ```cmake .```
- Build the project with Make: ```make```
- Run the emulator: ```./nes_emulator```
## Controls
- `P`: Pauses the emulation (CPU)
- `Ctrl+P`: Pauses the emulation and the PPU rendering
- `O`: Go to the next palette in the pattern viewer
- `T`: Show tile IDs
- `N`: Switch low/high pattern data
2024-07-10 22:34:14 -04:00
## Dependencies
- GCC compiler
- CMake
- SDL
## Development Roadmap
- Basic component based GUI: Done
2024-07-10 22:34:14 -04:00
- CPU
- RAM: Done
- ROM: Done (iNes 1.0 format only)
- Official instructions: Done
- Unofficial instructions: In Progress
- PPU
- Registers: Done
- VRAM: Done
2024-09-01 15:54:41 -04:00
- Background rendering: Done
2024-07-10 22:34:14 -04:00
- Sprite rendering: To Do
- Input: To Do
- APU: To Do
- Mappers:
- NROM: Done
- MMC1: To Do
- UxROM: To Do
- CNROM: To Do
- MMC3: To Do
- MMC5: To Do
- ...
- Debug
- Frame Delay: Broken, removed
2024-07-10 22:34:14 -04:00
- Pattern Table Viewer: Done
2024-07-25 22:08:08 -04:00
- Nametable Viewer: Done
2024-07-10 22:34:14 -04:00
- CPU Debugger: To Do
- Memory Inspector: To Do
- PPU Debugger: To Do
- Breakpoints: To Do