A Nintendo Entertainment System (NES) emulator written for the purpose of understanding how the NES and similar 8-bit computers of that era worked.
Go to file
2024-08-21 13:47:05 -04:00
.gitignore start logging instructions as nestest.log has done 2024-06-28 10:17:37 -04:00
cpu.c rename struct Rom to struct rom 2024-07-21 14:48:29 -04:00
cpu.h fix warnings and move cpu registers+flags to header 2024-07-07 13:04:16 -04:00
LICENSE initial commit 2024-05-20 18:51:56 +05:30
Makefile add CFLAGS 2024-07-21 13:52:48 -04:00
nestest.log add nestest.nes and log that was used for testing the CPU 2024-07-04 15:19:45 -04:00
nestest.nes add nestest.nes and log that was used for testing the CPU 2024-07-04 15:19:45 -04:00
opcodes.h implement all of the nestest unofficial opcodes and fix branch cycles 2024-07-04 15:06:15 -04:00
ppu.c start implementing PPU 2024-07-21 13:53:04 -04:00
ppu.h rename struct Rom to struct rom 2024-07-21 14:48:29 -04:00
README.md update README 2024-08-21 13:47:05 -04:00
rom.c rename struct Rom to struct rom 2024-07-21 14:48:29 -04:00
rom.h rename struct Rom to struct rom 2024-07-21 14:48:29 -04:00

emu_nes

A Nintendo Entertainment System (NES) emulator written for the purpose of understanding how the NES and similar 8-bit computers of that era worked.

Makes heavy use of https://www.nesdev.org/.

Current State

  • CPU (2A03/6502)
  • PPU (Graphics)
  • APU (Audio)

Currently, running the emulator with nestest.nes results in incorrect results in the memory space of the APU registers. This is due to the APU not being implemented yet.

Also, the only ROM mapper that is implemented is Mapper 0 to run the test ROM, but it also supports many other ROMs listed here such as Donkey Kong and Super Mario Bros.