Tools: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(dasm is actually now on github, so to keep it up to date, replaced the link from SourceForge to GitHub. Long overdue!!!)
m (→‎Compilers: typo)
Line 46: Line 46:
=== Compilers ===
=== Compilers ===
* [http://www.cc65.org/ CC65] - A portable 6502/65c02/65c816 assembler, linker, and C compiler.
* [http://www.cc65.org/ CC65] - A portable 6502/65c02/65c816 assembler, linker, and C compiler.
* [https://gitlab.com/camelot/kickc/-/tree/master KickC] - C-compiler for creating optimized and readable 6502 assembler code. ([http://forums.nesdev.org/viewtopic.php?f=2&t=20187 NedDev forum])
* [https://gitlab.com/camelot/kickc/-/tree/master KickC] - C-compiler for creating optimized and readable 6502 assembler code. ([http://forums.nesdev.org/viewtopic.php?f=2&t=20187 NesDev forum])


=== Converters ===
=== Converters ===

Revision as of 22:19, 31 March 2021

Assemblers, compilers, and PRG-oriented tools

Assemblers

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.

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.
  • 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)

IDEs

  • 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!

Compilers

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

Converters

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.
  • pilbmp2nes.py 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

Trackers/sequencers

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

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
  • 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