diff --git a/README.md b/README.md new file mode 100644 index 0000000..d37c551 --- /dev/null +++ b/README.md @@ -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 \ No newline at end of file diff --git a/gui/gui.c b/gui/gui.c index 321f6ce..05f45ee 100644 --- a/gui/gui.c +++ b/gui/gui.c @@ -24,7 +24,7 @@ NesGui gui; bool gui_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) { log_error("Failed to open TTF font"); return false; diff --git a/main.c b/main.c index ba14030..ec210e7 100644 --- a/main.c +++ b/main.c @@ -23,7 +23,7 @@ #include "gui.h" int main() { - char *rom_path = "../test_roms/dk_jp.nes"; + char *rom_path = "./test_roms/dk_jp.nes"; log_set_level(LOG_INFO); if (!gui_init()) {