Skip to content

ghosind/go-nes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

go-nes

Test Go Report Card codecov License Badge

go-nes is a focused, well-tested Go library that implements the core internals of an NES emulator. It intentionally excludes GUI and real hardware I/O (display/windowing, real controllers, audio output). The goal is to provide a clean, reusable emulator core you can embed into your own frontend, educational tooling, or testing harness.

Features

  • Accurate 6502 CPU emulation with support for all official opcodes and addressing modes.

Components

  • nes: High-level NES struct that ties together CPU, PPU, APU, and memory.
  • cpu: Implements the 6502 CPU with all instructions, addressing modes, and status flags.
  • ppu: Handles the NES Picture Processing Unit (PPU) for graphics rendering.
  • apu: Manages the NES Audio Processing Unit (APU) for sound generation.
  • memory: Emulates the NES memory map, including RAM, ROM, and I/O registers.
  • rom: Loads and parses NES ROM files in iNES format.
  • mapper: Supports various NES cartridge mappers for memory banking.
  • more components to be added...

Reference

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

A NES emulation library written in Go.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages