Add README.md

This commit is contained in:
FyloZ 2024-07-10 22:34:14 -04:00
parent eb0e0a42c0
commit 78160ed311
Signed by: william
GPG Key ID: 835378AE9AF4AE97
3 changed files with 45 additions and 2 deletions

43
README.md Normal file
View File

@ -0,0 +1,43 @@
# 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```
- Optionally, change ```gui.debug_enabled``` to ```true``` at line 33 of ```gui.c``` to enable debugging
- Generate the Makefile with CMake: ```cmake .```
- Build the project with Make: ```make```
- Run the emulator: ```./nes_emulator```
## Dependencies
- GCC compiler
- CMake
- SDL
## Development Roadmap
- CPU
- RAM: Done
- ROM: Done (iNes 1.0 format only)
- Official instructions: Done
- Unofficial instructions: In Progress
- PPU
- Registers: Done
- VRAM: Done
- Background rendering: In Progress
- 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: Done
- Pattern Table Viewer: Done
- CPU Debugger: To Do
- Memory Inspector: To Do
- PPU Debugger: To Do
- Breakpoints: To Do

View File

@ -24,7 +24,7 @@ NesGui gui;
bool gui_init() { bool gui_init() {
TTF_Init(); TTF_Init();
gui.font = TTF_OpenFont("../nintendo-nes-font.ttf", 16); gui.font = TTF_OpenFont("./nintendo-nes-font.ttf", 16);
if (gui.font == NULL) { if (gui.font == NULL) {
log_error("Failed to open TTF font"); log_error("Failed to open TTF font");
return false; return false;

2
main.c
View File

@ -23,7 +23,7 @@
#include "gui.h" #include "gui.h"
int main() { int main() {
char *rom_path = "../test_roms/dk_jp.nes"; char *rom_path = "./test_roms/dk_jp.nes";
log_set_level(LOG_INFO); log_set_level(LOG_INFO);
if (!gui_init()) { if (!gui_init()) {