Skip to content
/ nes Public

Emulator for the Nintendo Entertainment System (NES)

License

Notifications You must be signed in to change notification settings

samukallio/nes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

A simple NES emulator written in C++ (or rather, C with some C++ features sprinkled on).

Features

  • Cycle-accurate CPU emulation, including dummy reads and double writes
  • Supported INES mappers: 000 (NROM), 001 (MMC1), 002 (UxROM), 003 (CNROM), 004 (MMC3)

Building

CMake is required to generate the build files for the project. To generate the build files, type the following:

mkdir build
cd build
cmake ..

After the build files have been generated, build the project using the platform compiler toolkit (e.g. Visual Studio on Windows).

Screenshots

Tests

CPU Tests

Pass Test Author Description
✔️ branch_timing_tests blargg Timing of the branch instruction, including edge cases
✔️ cpu_dummy_reads blargg Test addressing modes that have dummy reads
✔️ cpu_dummy_writes bisqwit Verify double writes by read-modify-write instructions
✔️ cpu_exec_space bisqwit Verify that CPU can execute code from any memory location
cpu_interrupts_v2 blargg Behavior and timing of CPU interrupts (NMI and IRQ)
✔️ cpu_timing_test6 blargg Instruction timing (official and unofficial)
✔️ instr_misc blargg Miscellaneous instruction test
✔️ instr_timing blargg Instruction timing (official and unofficial)
✔️ nestest kevtris Instruction behavior (official and unofficial)

PPU Tests

Pass Test Author Description
✔️ oam_read blargg Reading from OAMDATA returns data at OAMADDR
✔️ oam_stress blargg Thoroughly test OAMDATA and OAMADDR
✔️ ppu_open_bus blargg Test PPU open bus behavior
✔️ ppu_read_buffer bisqwit PPU test suite mostly concentrating on the PPU read buffer
ppu_vbl_nmi blargg Test PPU VBL flag behavior and timing
scanline Quietust Test PPU scanline timing accuracy
✔️ sprite_hit_tests_2005.10.05 blargg Sprite 0 hit behavior and timing
sprite_overflow_tests blargg Test sprite overflow behavior and timing

About

Emulator for the Nintendo Entertainment System (NES)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published