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://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.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://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://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.
- 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
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.
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