Keyboard input is live: click the page, then type. Left Shift/Ctrl/arrow keys map to their C64 equivalents; Alt = the Commodore (C=) key, Escape = RUN/STOP, Home = CLR/HOME. SID audio is live too - any keypress starts it (your browser blocks sound until you interact with the page).
Read entirely in your browser and never uploaded anywhere. You must supply your own legally obtained KERNAL/BASIC/character ROM dumps - none are bundled with this site. Loading none just keeps the demo boot running above.
Machine-code programs only, loaded and run immediately - like a monitor's "G" (go) command. BASIC programs aren't supported yet.
Fast loader only - reads the disk image's directory and file data directly, no real 1541 drive/IEC bus emulation. Machine-code programs only, same as the .prg loader above.
Real datasette emulation, not a decoder: this delivers the tape's actual recorded signal to
the C64 exactly like a real cassette player, and the tape's own loader code does the actual
decoding - same as real hardware. That means loading a real KERNAL+BASIC ROM above and
resetting to READY first is required; inserting a tape here just makes it available, typing
LOAD (then RUN) is what actually starts reading it.
Hardware type 0 ("Normal cartridge") only, 8K or 16K - bank-switching cartridge types (Action Replay, Ocean, etc.) aren't supported yet. Loading a real KERNAL+BASIC ROM above and resetting is what actually makes a cartridge autostart, exactly like real hardware (the cartridge's own signature is what the KERNAL boot code detects) - this zone alone just makes the ROM available.
Captures CPU, RAM, CIA and SID state to your browser's local storage. Restoring in this same tab needs nothing else; restoring after reloading the page needs the same ROM/tape/cartridge files loaded again first, same as a real C64 needs its ROMs plugged in before a freeze cartridge can resume anything.
SID model (6581 vs 8580) switch isn't implemented yet - everything below is real. NTSC only changes execution speed/audio pitch and raster-IRQ timing, not the rendered frame size (real NTSC has a visibly shorter frame - not reproduced here).
On-screen touch controls, or plug in a gamepad - both map to port 2 by default, the port most single-joystick C64 software expects. Swap to port 1 in Settings below if a program needs that instead.