/gones

GoNES

Primary LanguageGoMIT LicenseMIT

goNES

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.

Structure

  • pkgnes is the base NES package that will instanciate the various required elements
  • cpu6502 contains the CPU emulation
  • clock generate clock signals for the other parts of the system
  • memory contains memory primitives such as the bus, RAM and ROM
  • nescartridge has code to load a cartridge and map it on the CPU's bus
  • nesppu contains video rendering related code
  • nesapu contains audio code
  • nesinput manages input devices (keyboard only for now)

References

CPU