Tools
From NESdev Wiki
Jump to navigationJump to search
Assemblers, compilers, and PRG-oriented tools
Assemblers
Commonly used assemblers
- 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 as well)
- 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".
- WLA DX - A portable GB-Z80/Z80/6502/6510/65816 macro assembler. Linux and MS-DOS versions are also available.
Other assemblers
- NESHLA by Brian Provinciano. A 6502 assembler specifically geared towards NES development.
- x816 v1.12f by minus. An assembler for 6502/65c02/65c816. MS-DOS only.
- 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.
- 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.
- nescom - Joel Yliluoma's 6502 assembler; written in C++, based on xa65 and largely compatible with it, including with the o65 object file format.
- 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.
- 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.
- The XORcyst - "... a rather platform-independent set of tools and languages for 6502 software development" written by Kent Hanson, aka Snowbro.
- 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
- 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)
- 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.
Disassemblers
- 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.
- TRaCER - by Y0SHi/koitsu. 6502/65816 disassembler intended for NES and SNES platforms. MS-DOS. (Does contain a confirmed bug related to one 65816-specific opcode)
IDEs
- 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!
- NESICIDE (WIP) source code only, Github link for the NESICIDE IDE by cpow (Chris Pow)
Compilers
- CC65 - A portable 6502/65c02/65c816 assembler, linker, and C compiler.
Converters
- Converters for INTEL/MOTOROLA HEX formats to Binary (BIN) and back, for assemblers like XTOOLS.
Pre-processors and other code (PRG) tools
- shuffle.py by Damian Yerrick - Preprocessor to rearrange variables, subroutines, and instructions in a file, for using other variables as memory canaries or watermarking beta builds
Emulator-oriented tools
- NEStress ROM for testing emulators (includes source code)
Tile (CHR) editors
- 8ted by Damian Yerrick (deprecated)
- Famitile - Includes command-line and graphical mode.
- YY-CHR
- Tile Molester by SnowBro, Central MiB, Lab313, and Mewster
- pilbmp2nes.py by Damian Yerrick - Command-line converter from indexed BMP or PNG to multiple consoles' tile formats
Map (nametable) editors
- 8name by Damian Yerrick
- 8name.py by Damian Yerrick
- Famitile - Includes command-line and graphical mode; support standard nametables and MMC5 extension nametables.
- NESST by Shiru
Music tools
Trackers/sequencers
- Nerd Tracker II tracker-style music editor
- MCK driver and MML translator for music creation (includes source code)
- PPMCK unofficial version by zzo38 (includes MagicKit as well)
- FamiTracker tracker-style music editor
- Musetracker tracker-style music editor (formerly known as PornoTracker).
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
- Drum sample to noise sound effect/channel converter by lidnariq. Written in C.
Engines
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
- Pently - a music and sound engine by Damian Yerrick
- Muse - a music and sound engine supporting the MUSE tracker by thefox
- Famitone Update - an in progress extension of Famitone