From Nesdev wiki
Jump to navigationJump to search

Assemblers, compilers, and PRG-oriented tools


Commonly used assemblers

  • asm6 - written by Loopy because most other assemblers "were either too finicky, had weird syntax, took too much work to set up, or too bug-ridden to be useful".
  • asm6f - fork of asm6, providing support for illegal opcodes, NES 2.0 headers, symbol files for FCEUX/Mesen/Lua, and other features. See Releases for Windows binaries
  • CC65 - A portable 6502/65c02/65c816 assembler, linker, and C compiler.
  • NESASM (MagicKit) by Charles Doty, David Michel, and J.H. Van Ornum.
  • Unofficial MagicKit by zzo38. Based on MagicKit but with many improvements; includes PPMCK support
  • WLA DX - A portable GB-Z80/Z80/6502/6510/65816 macro assembler. Linux and MS-DOS versions are also available.

Other assemblers

  • AS65 - written by Andrew John Jacobs. A macro assembler for 8 and 16-bit 65xx. Available for DOS/Win32 and Java. The Java port is strongly recommended.
  • ACME - Marco Baye's ACME 6502/65c02/65c816 cross-assembler. Runs on several platforms, including Amiga, DOS, and Linux. Supports macros, local labels, and many other features.
  • asm6f - by AJ Kelly. A fork of asm6, offering several improvements over asm6. Windows 64-bit binaries available.
  • dasm - by Matthew Dillon of the DragonflyBSD project, extended and maintained by various other authors. A macro assembler intended for 6502, 6507, 6803, HD6303, 68HC11, 68705, and F8 architectures.
  • FASM v1.0 by Toshi Morita. FASM was written as a quick replacement for the 2500 AD assembler for Nintendo 8-bit development. Licensed under the GPL.
  • Merlin 32 - by Brutal Deluxe Software. 6502/65816 cross-assembler/linker for Win32, Linux, and OS X. Influenced by the Merlin/16+ assembler/linker for the Apple IIGS.
  • nescom - Joel Yliluoma's 6502 assembler; written in C++, based on xa65 and largely compatible with it, including with the o65 object file format.
  • NESHLA by Brian Provinciano. A 6502 assembler specifically geared towards NES development.
  • Ophis Assembler by Michael C. Martin. An open-source 6502 assembler written in Python.
  • P65 Assembler - A portable 6502 assembler written in Perl.
  • Telemark Cross Assembler - A shareware assembler for numerous 8-bit processors, including the 6502, Z80, and 8051.
  • x816 v1.12f by minus. An assembler for 6502/65c02/65c816. MS-DOS only.
  • xa65 - Andre Fachat's open-source cross-assembler; written in C and supports the standard 6502 and 65c816 opcode lists. Sports a C-like preprocessor and supports label-hiding in a block structure. Produces plain binary files, as well as special o65 object files. Further tools include a linker, file and relocation utilities for o65 files.
  • XORcyst - "... a rather platform-independent set of tools and languages for 6502 software development" written by Kent Hanson, aka SnowBro.
  • XTOOLS - table-based assembler and toolkit. Includes an assembler, disassembler, and several tools. Shareware (US$49); registered version includes a table-based assembly source translator. Note: files are generated as Motorola formatted hex files; you will need a converter (see Converters below)
  • Kick Assembler - 6510 assembler with high level scripting. KickC targets at this assembler.
  • NESASM CE - fork of NESASM (MagicKit) by Alexey Avdyukhin with additional NES features: NES 2.0 headers, symbol files for FCEUX, etc.


  • 6502d - by Cortez Ralph. Win32 (GUI-based) rewrite of original 6502 disassembler (MS-DOS) by Bart Trzynadlowski.
  • clever-disasm - by Bisqwit/Joel Yliluoma. Part of the nescom assembler suite (see above).
  • da65 - part of the cc65 suite. Primarily intended for individuals using tools in the cc65 suite (ex. ca65).
  • disasm6 - PHP-based 6502 (NES-oriented) disassembler intended for use with asm6 assembler. Pre-compiled Windows binaries are available.
  • NES Disassember - by Morgan Johansson. MS-DOS.
  • SmartRENES - by Hyde. Supports mappers 0, 1, 2, 3, and 7. Windows binaries only.
  • TRaCER - by koitsu/Jeremy Chadwick. 6502/65816 disassembler intended for NES and SNES platforms. MS-DOS. (Does contain a confirmed bug related to one 65816-specific opcode)


  • NESICIDE (WIP) source code only, Github link for the NESICIDE IDE by cpow (Chris Pow)
  • WUSDN A New NES IDE as of 2012 by the WUSDN team, Originally for Atari 8-Bit computers, Now also comes with NES capability, Requires Java Runtime Environment and Eclipse to run!


  • CC65 - A portable 6502/65c02/65c816 assembler, linker, and C compiler.
  • KickC - C-compiler for creating optimized and readable 6502 assembler code. (NesDev forum)


Pre-processors and other code (PRG) tools

Compression related tools

  • Compress Tools - A multi-featured open-source compressor featuring many algorithms, extendable to new algorithms. Allows to break data in many small independent blocks and more by the usage of scripts.
  • Huffmunch - A generic compression library for NES/6502 with very low RAM requirements.
  • Donut - A CHR compression library.

Emulator-oriented tools

  • NEStress ROM for testing emulators (includes source code)

Graphics-oriented tools

Tile (CHR) editors

  • 8ted by Damian Yerrick (deprecated).
  • Famitile - Includes command-line and graphical mode.
  • NES Screen Tool (NESST) by Shiru. Tile editing oriented pixel art studio capable of editing backgrounds, sprites, metasprites, and palettes.
  • by Damian Yerrick - Command-line converter from indexed BMP or PNG to multiple consoles' tile formats.
  • Tile Molester by SnowBro, Central MiB, Lab313, and Mewster.
  • YY-CHR
  • I-CHR by Kasumi. Converts PC images and image sequences into NES compatible tilesets and nametables. Can also produce a NES ROM program displaying the graphics.

Map (nametable) editors

Sprite tools

Music tools


DMC conversion tools

  • FamiTracker can import .wav files and convert to DMC samples, which can then be exported as .dmc files.
  • NSF Live! NSF player that can export DMC samples from NSF songs as .dmc files.
  • Pin Eight NES Tools includes a command-line encoder and decoder by Damian Yerrick.

Other conversion tools


Runtime engines for playing music and sound:

  • Famitone - supports a subset of Famitracker features, and sound effects
  • FamiTracker NSF Driver - can play back music made in Famitracker, but lacks support for sound effects
  • Lizard Music - music and sound engine by rainwarrior (ca65, Famitracker export/subset)
  • GGSound - a lightweight, free sound engine for use with ca65, asm6 or NES ASM
  • Muse - a music and sound engine supporting the MUSE tracker by thefox
  • Pently - a music and sound engine by Damian Yerrick

Miscellaneous other tools