/emunes

Noexcept NES emulator

Primary LanguageC++GNU General Public License v3.0GPL-3.0

emunes

A noexcept-quality* NES emulator written in C++17.

Passes almost all Blargg's tests: vbl/nmi & instruction timing; dummy reads; sprite behaviour.

Runs a large amount of NTSC-compatible games with mappers: 0, 1, 2, 3, 7.

List of passed tests

  • branch_timing_tests
  • cpu_dummy_reads
  • cpu_interrupts_v2
    • cli_latency
    • nmi_and_brk
    • nmi_and_irq
    • irq_and_dma
    • branch_delays_irq
  • (official only) cpu_timing_test6
  • instr_misc
  • (offical only) instr_test_v5
  • (offical only) instr_timing
  • oam_read
  • ppu_open_bus
  • ppu_sprite_hit
  • ppu_sprite_overflow
  • ppu_vbl_nmi

Building

Enter the following commands to build under Linux

apt install libsdl2-dev g++
cd project_root_directory
mkdir bin
make

Type 'emunes filepath' to load a ROM.

*The source code contains the noexcept keyword everywhere.

Screenshots

alt tag alt tag alt tag