NES emulator using ebitengine.
PPU & APU are based on Michael Fogleman's emulator, with added/removed bugs and more rewrites planned/needed. Because the CPU and the memory code isn't the same, the PPU/APU code isn't the same either, and I'm hoping to fully rewrite it eventually.
MOS 6502 CPU is mostly implemented from scratch.
Memory mapping system is also implemented from scratch, as well as cartridge loading/mapping.
Clock uses a master clock at the frequency specified for NES, and divisors to feed cpu/ppu/apu/etc synchronized signals.
pkgnes
is the base NES package that will instanciate the various required elementscpu6502
contains the CPU emulationclock
generate clock signals for the other parts of the systemmemory
contains memory primitives such as the bus, RAM and ROMnescartridge
has code to load a cartridge and map it on the CPU's busnesppu
contains video rendering related codenesapu
contains audio codenesinput
manages input devices (keyboard only for now)