Skip to content

bartlomiejn/2a03-cpu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

2a03

NES emulator written in C++. Implements elements of a NES system: Ricoh 2A03 (MOS 6502 w/o decimal mode) CPU, 2C02 NTSC PPU with RGB output, memory bus, cartridge mappers/interface in software.

CPU state matches with Nintendulator nestest.nes run log, 65x02/nes6502 single-instruction tests all pass aside from unstable unofficial opcodes which are modelled only partially. Since there is no real timing implemented it just goes through instructions as fast as it can with CPU and PPU sync also remaining an open topic for now.

Feature list

In progress:

  • PPU + SDL2 window output

CPU:

  • Official opcodes
  • Unofficial opcodes
  • Cycle counting
  • Addressing modes
  • Memory bus
  • Interrupts
  • OAM DMA

Cartridges:

  • iNESv1 cartridge model
  • NROM

Utils:

  • CPU/PPU debug logger
  • Testing utilities

Releases

No releases published

Packages

No packages published

Languages