Skip to content
 
 

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Awesome NESdev Awesome

A curated list of tools, libraries, documentation, and projects for Nintendo Entertainment System / Famicom homebrew development.

The NES (Famicom) is a 6502-based console from 1983 with a thriving homebrew scene. This list collects the assemblers, C toolchains, emulators, debuggers, graphics and audio tools, hardware references, tutorials, test ROMs, example projects, and communities you need to build for real NES hardware.

See also: Awesome SNESdev.

Contents

Getting Started & References

  • NESdev Wiki - The canonical reference wiki for NES/Famicom hardware, PPU/APU, and 6502 programming.

Tutorials & Guides

Assemblers & Toolchains

  • cc65 / ca65 - Freeware 6502 C compiler suite whose ca65 macro assembler is the de-facto standard for NES assembly.
  • asm6f - Maintained fork of loopy's ASM6, a single-pass 6502 assembler popular for NES projects.
  • NESASM - The classic NESASM 3.1 assembler (Magic Kit lineage); functional but no longer actively developed.

C & High-Level Toolchains & Libraries

  • nesdoug - Doug Fraker's "NES Programming with cc65" tutorial site and library, the standard C-on-NES learning path.
  • neslib - Shiru's NES C library (graphics, input, sound), a maintained fork used with cc65.
  • NESFab - A dedicated high-level programming language and compiler that targets the NES.
  • pyNES - Write NES games in a subset of Python that compiles to 6502.
  • nes-starter-kit - Beginner-oriented C/cc65 toolkit and guide for building an NES adventure game.
  • NES-ca65-example - A minimal, well-commented NES starter using ca65, from a respected NESdev author.

Emulators & Debuggers

  • Mesen2 - Accurate multi-system emulator (NES/SNES/GB and more) with a strong debugger; the repository is archived but it remains the reference debugging tool.
  • Mesen (original) - The original C#/C++ NES/Famicom Mesen with a full debugger; superseded by Mesen2 but still a canonical reference (archived).
  • FCEUX - Long-standing NES emulator with a debugger, hex editor, and Lua scripting.
  • puNES - Qt-based cross-platform NES/Famicom emulator and NSF player with a debugger.
  • Nintendulator - Accuracy-focused Windows NES emulator with debugging, long used as a homebrew reference.
  • ares - Accuracy- and preservation-focused multi-system emulator with an actively developed NES core.
  • 8bitworkshop - Web-based IDE with in-browser assembling, C compiling, and emulation for the NES and other 8-bit systems.

Testing & Test ROMs

  • nes-test-roms - Large collection of NES emulator/hardware test ROMs, including blargg's CPU/PPU/APU tests.
  • nes-audio-tests - Test ROMs and NSFs for the NES/Famicom APU and expansion audio.
  • 6502/65C02 functional tests - Klaus Dormann's exhaustive opcode test suite, the standard 6502 core validation.
  • annotatecc65 - Source-level debugging for NES ROMs written in C with cc65.

Graphics Tools

  • NEXXT - FrankenGraphics' actively maintained successor to Shiru's NES Screen Tool for CHR, nametable, and metatile editing.
  • M1TE2 - nesdoug's NES tile and metatile editor.
  • makechr - Generates NES CHR, nametable, palette, attributes, and sprite lists from pixel-art images.

Audio & Music Tools

  • FamiStudio - Modern NES music editor that exports to NSF/ROM and imports FamiTracker files.
  • FamiTracker - The classic 2A03 / expansion-chip NES tracker (last release 0.4.6, 2015).
  • FamiTone5 - Lightweight NES sound engine and driver for use in homebrew ROMs.
  • Pently - Scalable, actively maintained NES music and sound-effects engine.
  • GGSound - Lightweight NES sound engine used in Gradual Games' releases.

Mappers & Hardware Docs

  • NESdev Wiki: Mapper reference - Comprehensive documentation of NES cartridge mappers and iNES / NES 2.0 mapper numbers.
  • visual6502 - Transistor-level, in-browser simulation of the actual 6502 die.
  • perfect6502 - A fast C simulation of the original NMOS 6502 netlist.

Example & Open-Source Games

Flashcarts & Hardware

  • EverDrive N8 PRO (Krikzz) - Official product page for the standard NES/Famicom SD flashcart for running homebrew on real hardware.

Communities

  • NESdev Forums - The primary community forum for NES/Famicom (and SNES) development.
  • NESdev Discord - Active real-time chat companion to the NESdev forums (covers NES and SNES).

AI & ML on the NES

  • elya-nes - A ternary transformer LLM running on the NES 1.79 MHz 6502 with exact cycle counts, verified token-exact against a host reference.

Contributing

Contributions are welcome. Please read the contributing guidelines first, then open a pull request.

License

CC0

To the extent possible under law, the contributors have waived all copyright and related or neighboring rights to this work.

About

A curated list of tools, libraries, docs, and projects for NES / Famicom homebrew development.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors