Development Tools: Emulators  Projects  Code  Resources  Tools  Forum

Emulation is a facinating and incredible capability. Using the tools presented here, you can accurately test your 6502 code and perfect it before ever loading it into an actual machine. Emulators allow your computer to simulate the functions of a 6502 microprocessor (and in some cases the support chips) right on your computer, entirely through software. By eliminating the delays of transferring and testing your code on a "real" 6502 machine, emulators can dramatically speed up your development process.

**  Web-based 6502 Emulators

  • 6502 Assembler & Emulator in JavaScript - This website by Stian Søreng is a small assembler and emulator written entirely in JavaScript that runs in your web browser.
  • Easy 6502 - Nick Morgan built on Stian Søreng's work to create an online 6502 tutorial. It introduces the 6502 in several lessons, starting from the basics and building up to a working game. Each lesson presents example code that can be run in an emulator on the same page.
  • Visual Transistor-level Simulation of the 6502 CPU - This incredible browser-based simulator in JavaScript was made by photographing a 6502 chip die, converting those images to vector polygons, then building maps of transistor connections from those. It is an accurate representation of the 6502 in its most intricate details.
  • Virtual 6502 is JavaScript-based assembler, disassembler, and emulator that runs in your browser. Its CPU code is based on C-code for Macintosh by Earle F. Philhower III and available under the GPL. This page also includes a 6502 instruction set reference.

**  Desktop-based 6502 Emulation and Simulators

  • 6502 Emulation Core for 680X0 - Leslie Ayling has written this emulation core for 68020 and higher processors. While written for the Amiga to emulate the OSI Superboard II, it can be easily adapted to other applications.
  • 65C02 Emulator for Windows - This Windows 95 program will emulate a 65C02 microprocessor in a basic system. It includes a simple ROM monitor to get started with. One of its interesting capabilities is the ability of the emulated processor to access PC resources like the LPT port.
  • 6502 Macroassembler & Simulator - Michal Kowalski has created this integrated development environment for Windows that allows your to write, assemble, debug, and simulate your 6502 code.
  • 6502Net - Aaron Mell has written a 6502 emulator in C# and WPF (Microsoft .NET). It allows you to load a program into memory and step through it, watch registers, and set breakpoints.
  • 6502SIM - Dan Boris's "6502 Processor Page" features his 6502 simulator for MS-DOS.
  • cl-6502 - Brit Butler has written a 6502 emulator, assembler, and disassembler in Common Lisp.
  • go6502 - Paul Annesley has written an emulator and debugger in go for the pda6502 homebrew computer. go6502 features a stepping debugger with breakpoints on instruction type, register values and memory location
  • Hardware Console Design - As a project for Princeton University, Ian Buck developed a hardware simulation of the original 6502-based Nintendo game console.
  • lib6502 - Ian Piumarta's tools for emulating a 6502 microprocessor include lib6502, a C library, and run6502, a command line tool. (Download from 6502.org)
  • Mac 65C02 Simulator - Ron Kneusel's "The Incredible 6502" page includes a few tutorials, portable 'C' source code for a simple 6502 assembler, and the first simulator for Macintosh.
  • My Little Simulator - Mertkan YILDIRIMLI is developing a 6502, 65C02, and 65C816 macroassembler and simulator for Windows using Delphi 7.0. This is a work in progress and includes full source code.
  • Py65 - Mike Naberezny has written a Python package that simulates the 6502 and 65C02. It includes a monitor program.
  • Sim65 - Sheldon Simms' 65C02 simulator and debugger for Linux/GTK systems can load binary images or S-record files containing 65C02 code and execute it. Sim65 allows you to see and alter registers & memory, set breakpoints, single step, and more.
  • Soft6502 - Charles R. Bond has written a 6502 simulator for Windows that resembles the early 6502 single board computers such as the KIM-1.
  • Symon - Seth Morabito has written an NMOS 6502 simulator in Java. It simulates a system with 32KB of RAM, 16KB of ROM, a 6551 ACIA, and a 6522 VIA.
  • SYS8 Platform & Simulator - SYS8 is an imaginary 6502 platform by Markku Alén. This page contains a simulator for it with full assemble and disassemble features that is capable of running Synertek Basic 1.1.
  • Virtual6502 - Rich Whitehouse has built a multi-purpose emulator for the NMOS 6502 microprocessor that runs under Win32. Some of its features include a plugin system, disassembler, and debugging functionality.

**  6502 Test programs (for emulators and re-implementations)

  • Klaus Dormann's test suite - portable, includes decimal mode, is standalone and can be assembled to a single image around 16k. Binaries are in a subdir. (See also this forum thread.)
  • Wolfgang Lorenz' C64 suite - exhaustive, excluding decimal mode, uses C64 facilities to chain each program. 11kByte total. There's some description of the suite here. Christopher Palm offers stubbing advice here. (A different revision with sources.)
  • Ruud Baltissen's 8k test ROM - from his VHDL 6502 core (includes source, but only a subset of files found in the previous version)
  • NES test rom - by Kevin Horton (24kbyte) (no sources, but some information here)
  • AllSuiteA.asm - from the hcm-6502 (verilog) project. ROM available. Load at and reset to 0xf000 and set IRQ vector to 0xf5a4.
  • Decimal mode tests - by Bruce Clark ADC/SBC (exhaustive, tests all four affected flags and several CPU versions.) (Some additional tests here in the visual6502 project.)
  • Rob Finch's tests - from his 6502 core (now offline, so link is to archive.org) (1500 bytes)
  • Acid800 - by Avery Lee for 8-bit Atari emulators includes some 6502 tests. See Altirra page.
  • ASAP tests - by Piotr Fusik include exhaustive tests for ADC, SBC and 0x6B as well as a few tests for other undocumented opcodes.