Tools: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(→‎Map (nametable) editors: I rewrote 8name in Python for Concentration Room and Thwaite)
(→‎Assemblers, compilers, and PRG-oriented tools: Moved the most commonly used assemblers to the top)
Line 2: Line 2:


=== Assemblers ===
=== Assemblers ===
==== Commonly used assemblers ====
* [https://cc65.github.io/cc65/ CC65] - A portable 6502/65c02/65c816 assembler, linker, and C compiler.
* [http://www.magicengine.com/mkit/ NESASM (MagicKit)] by Charles Doty, David Michel, and J.H. Van Ornum.
** [http://zzo38computer.org/nes_program/ppmck.zip Unofficial MagicKit] by [[User:Zzo38|zzo38]] (based on MagicKit but with many improvements; includes PPMCK as well)
* [http://3dscapture.com/NES/asm6.zip 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".
* [http://www.villehelin.com/wla.html WLA DX] - A portable GB-Z80/Z80/6502/6510/65816 macro assembler. Linux and MS-DOS versions are also available.
==== Other assemblers ====
* [http://neshla.sourceforge.net/ NESHLA] by Brian Provinciano. A 6502 assembler specifically geared towards NES development.
* [http://neshla.sourceforge.net/ NESHLA] by Brian Provinciano. A 6502 assembler specifically geared towards NES development.
* [http://www.cc65.org/ CC65] - A portable 6502/65c02/65c816 assembler, linker, and C compiler.
* [http://nesdev.org/x816112f.zip x816 v1.12f] by minus. An assembler for 6502/65c02/65c816.  MS-DOS only.
* [http://nesdev.org/x816112f.zip x816 v1.12f] by minus. An assembler for 6502/65c02/65c816.  MS-DOS only.
* [http://www.magicengine.com/mkit/ Nintendo Assembler (MagicKit)] by Charles Doty, David Michel, and J.H. Van Ornum.
* [http://zzo38computer.org/nes_program/ppmck.zip Unofficial MagicKit] by [[User:Zzo38|zzo38]] (based on MagicKit but with many improvements; includes PPMCK as well)
* [http://www.esw-heim.tu-clausthal.de/~marco/smorbrod/acme/ 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.
* [http://www.esw-heim.tu-clausthal.de/~marco/smorbrod/acme/ 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.
* [http://www.floodgap.com/retrotech/xa/ 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.
* [http://www.floodgap.com/retrotech/xa/ 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.
* [http://bisqwit.iki.fi/source/nescom.html nescom] - Joel Yliluoma's 6502 assembler; written in C++, based on xa65 and largely compatible with it, including with the o65 object file format.
** [http://bisqwit.iki.fi/source/nescom.html nescom] - Joel Yliluoma's 6502 assembler; written in C++, based on xa65 and largely compatible with it, including with the o65 object file format.
* [http://nesdev.org/fasm10.zip FASM v1.0] by [http://www.mobygames.com/developer/sheet/view/developerId,11349/ Toshi Morita]. FASM was written as a quick replacement for the 2500 AD assembler for Nintendo 8-bit development.  Licensed under the GPL.
* [http://nesdev.org/fasm10.zip FASM v1.0] by [http://www.mobygames.com/developer/sheet/view/developerId,11349/ Toshi Morita]. FASM was written as a quick replacement for the 2500 AD assembler for Nintendo 8-bit development.  Licensed under the GPL.
* [http://hkn.eecs.berkeley.edu/~mcmartin/P65/ P65 Assembler] - A portable 6502 assembler written in Perl.
* [http://hkn.eecs.berkeley.edu/~mcmartin/P65/ P65 Assembler] - A portable 6502 assembler written in Perl.
* [http://www.villehelin.com/wla.html WLA DX] - A portable GB-Z80/Z80/6502/6510/65816 macro assembler. Linux and MS-DOS versions are also available.
* [http://home.comcast.net/~tasm/ Telemark Cross Assembler] - A shareware assembler for numerous 8-bit processors, including the 6502, Z80, and 8051.
* [http://home.comcast.net/~tasm/ Telemark Cross Assembler] - A shareware assembler for numerous 8-bit processors, including the 6502, Z80, and 8051.
* [http://neotoxin.moccamagic.com/XORcyst.htm The XORcyst] - "... a rather platform-independent set of tools and languages for 6502 software development" written by Kent Hanson, aka Snowbro.
* [http://neotoxin.moccamagic.com/XORcyst.htm The XORcyst] - "... a rather platform-independent set of tools and languages for 6502 software development" written by Kent Hanson, aka Snowbro.
* [http://3dscapture.com/NES/asm6.zip 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".
* [http://www.obelisk.demon.co.uk/6502/downloads.html/ 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
* [http://www.obelisk.demon.co.uk/6502/downloads.html/ 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
* [http://www.bipom.com/products/us/676.html 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|Converters]] below)
* [http://www.bipom.com/products/us/676.html 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|Converters]] below)

Revision as of 04:45, 12 December 2016

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

Pre-processors and other code (PRG) tools

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

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.

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

Miscellaneous other tools