Clojure 6502 and NES emulator
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
assets
spec/clones PPU is transient between frames Apr 8, 2014
src/clones PPU is transient between frames Apr 8, 2014
.gitignore Get rid of DS_Store Nov 14, 2013
README.md Add image of running emu to readme Dec 13, 2013
project.clj Warn on reflection Mar 29, 2014

README.md

Clojure and the Immutable Emulator

Clones is an NES emulator for the gentlman (or woman) of distinguished immutable character. A core design goal is to build an entirely functional emulator.

Is this madness? Yes.

But how many cools would it be to be able to rewind and fast forward a game through states? Eleventy.

Why would you do such a thing?

Mallory is famously quoted as having replied to the question "Why do you want to climb Mount Everest?" with the retort "Because it's there"

- quoteth the 'pedes

So... you want to join the immutability cult?

Be advised that the current performance is about 1 frame per second on a new 15" Macbook Retina. Totally playable speed.

$ lein with-profile gui run [rom]

Super Awesome Cool Screenshot

How do I test this monstrosity?

The specs test clones' internal API, state and functioning:

$ lein spec

There are also test ROMs that exercise the entire machine.

The nestest binary can be run and verified against the known-good Nintendulator debug log:

$ lein with-profile nestest run

Blargg's CPU tests can be run headlessly and report results:

$ lein with-profile blargg run [rom]