perfect6502, a MOS 6502 CPU emulator that performs a simulation of the original NMOS 6502 netlist
C
328
182 commits
updated Apr 6, 2026
perfect6502 is a MOS 6502 CPU emulator that performs a simulation of the original NMOS 6502 netlist that was extracted by the visual6502.org project.
Consequently, perfect6502 is
perfect6502 is useful for
As a demonstration and as a performance/regression test, perfect6502 is hooked up to Commodore BASIC (cbmbasic).
You can compile the project with
$ make
and run it with
$ cbmbasic/cbmbasic
You should get the following output:
**** COMMODORE 64 BASIC V2 ****
64K RAM SYSTEM 38911 BASIC BYTES FREE
READY.
You can measure the performance of the emulator by running make benchmark. It will print the number of half-cycles, the elapsed time, and the speed in half-cycles per second. On a 1 MHz 6502, reaching the READY. prompt takes 33155 half-cycles (0.017 sec).
perfect6502 is is written by Michael Steil and derived from the JavaScript visual6502 implementation by Greg James, Brian Silverman and Barry Silverman.
Further performance optimizations are gladly accepted.
196 followers · starred Jan 2023
2,728 followers · starred Oct 2019
155 followers · starred Dec 2018
245 followers · starred Jul 2012
perfect6502, a MOS 6502 CPU emulator that performs a simulation of the original NMOS 6502 netlist
C
328
182 commits
updated Apr 6, 2026
perfect6502 is a MOS 6502 CPU emulator that performs a simulation of the original NMOS 6502 netlist that was extracted by the visual6502.org project.
Consequently, perfect6502 is
perfect6502 is useful for
As a demonstration and as a performance/regression test, perfect6502 is hooked up to Commodore BASIC (cbmbasic).
You can compile the project with
$ make
and run it with
$ cbmbasic/cbmbasic
You should get the following output:
**** COMMODORE 64 BASIC V2 ****
64K RAM SYSTEM 38911 BASIC BYTES FREE
READY.
You can measure the performance of the emulator by running make benchmark. It will print the number of half-cycles, the elapsed time, and the speed in half-cycles per second. On a 1 MHz 6502, reaching the READY. prompt takes 33155 half-cycles (0.017 sec).
perfect6502 is is written by Michael Steil and derived from the JavaScript visual6502 implementation by Greg James, Brian Silverman and Barry Silverman.
Further performance optimizations are gladly accepted.
196 followers · starred Jan 2023
2,728 followers · starred Oct 2019
155 followers · starred Dec 2018
245 followers · starred Jul 2012