C64 READY.

Docs / User Guide

User Guide

A complete tour of the C64 READY. interface — every panel, dialog and button, and exactly what each one does. If you'd rather follow a step-by-step walkthrough from a blank screen to a running demo, start with Getting Started; for a checklist of what the machine can do, see Features. This page is the reference for the controls themselves.

The C64 READY. interface: the CRT display on the left showing the blue BASIC boot screen, with the side panel of controls on the right.

The window has three regions:

At the default 1X size the side panel flows into two columns, so everything fits without scrolling; larger sizes stack it into one column beside a bigger screen. Buttons stay disabled until they can do something — most of the panel is greyed out until the ROMs load and you power on.

Here is the same interface with a demo running:

The interface running the raster_time demo — dense, colourful rasterbars beneath the scrolling logo, while a disk sits in drive 8.


The header: the C64 READY. wordmark on the left, ABOUT and DOCS buttons on the right.

Control What it does
C64 READY. wordmark The logo. Purely decorative.
ABOUT Opens the About panel — what the emulator is, how the project started, the current known-issues, and credits.
DOCS Opens this documentation site.

Install as an app. On supported browsers a small "Install C64 READY." card appears at the top of the side panel. Installing gives you an offline, app-like launcher. Dismiss it with its and it won't return.


Display

The screen is a live canvas showing the C64's video output, framed by a CRT bezel (styled by the CRT effect in Options).


Status

The Status card showing "50 fps · 7.4 ms · 13.6 MB" and a "Running" line.

A read-only card. The badge reports live performance — frames per second, frame time in milliseconds, and the JavaScript heap in megabytes. The line below is the current activity: Running, load progress, or an error.


Controls

The Controls card with POWER, RESET, PAUSE, SIZE, FULL, VIBES, KEY MAP, PASTE, OPTIONS and RECORD buttons.

Button What it does
⏻ POWER Cold-boots the machine (and powers it off). Enabled once the ROMs are loaded.
↺ RESET Cold-resets the running machine — equivalent to a power-cycle, so it re-runs the boot sequence.
⏸ PAUSE Freezes emulation; press again to resume.
SIZE: 1X Cycles the display size 1X → 1.5X → 2X. 1X shrinks the picture and flows the controls into two columns.
⛶ FULL Enters fullscreen. Exit with Esc or the button.
VIBES Opens Retro Vibes — a full-screen 3D scene of the C64.
KEY MAP Shows the full keyboard mapping.
📋 PASTE Reads your system clipboard and types it into the C64 keyboard buffer — handy for pasting BASIC listings.
⚙ OPTIONS Opens Options: VIC-II / SID / palette variants, display and sound toggles, and ROM files.
● RECORD Records the whole window with sound to an .mp4 — see Recording. Desktop Google Chrome only.

Retro Vibes

The Retro Vibes 3D scene — a Commodore 64, 1541 drive and 1702 monitor in a neon synthwave landscape.

A full-screen 3D scene of the machine, opened with VIBES.

When Touch Joystick is assigned to a control port, its stick and buttons remain available over the 3D scene.

Control What it does
Drag Rotate the view.
Scroll / pinch Zoom.
Double-click / double-tap Powers the C64 on when it's off — so you can boot the machine without leaving the 3D scene.
🎬 Change the scene.
Glides the camera to a head-on view that fills the frame with the monitor — a virtual fullscreen. Drag or scroll to break out of it.
🥽 ENTER VR View in VR (shown when a headset or the WebXR emulator is available).
ⓘ model credit Shows attribution for the 3D model.
or Esc Close and return to the emulator.

Scenes

The 🎬 button cycles through six scenes. Each strip shows the scene from the default view, up close, and from a low angle.

Synthwave Three views of the Synthwave scene — the C64 setup on a glowing neon grid under a banded Outrun sun and wireframe mountains.

Starry Plain Three views of the Starry Plain scene — the machine out on a dark plain beneath a sky full of stars and the occasional meteor.

Spotlight Three views of the Spotlight scene — the setup picked out of pitch darkness by a single warm overhead spotlight.

IK+ Sunset Three views of the IK+ Sunset scene — a stone courtyard by a bay at dusk, a black torii gate rising from the water in front of the setting sun, an autumn maple and a fishing village on the shores.

Arcade Three views of the Arcade scene — the C64 in the neon glow of an 80s arcade.

80s Room Three views of the 80s Room scene — the machine set up in a wood-panelled 1980s living room.

Which model loads is set by 3D MODEL in Options.


Recording

Capture the whole browser window, with sound, to an .mp4 video using the ● RECORD button in Controls, enabled once the machine is powered on. Click it, pick the window (or screen) to share in Chrome's prompt, and the button becomes ⏹ STOP RECORDING. Press stop and the file downloads as c64ready-<date-and-time>.mp4.


Media load

The Media load card with LOAD STATE, SAVE STATE, LOAD LIB and LOAD .PRG buttons.

Button What it does
📂 LOAD STATE Opens the Save states dialog to restore a frozen machine; also imports / exports state files.
💾 SAVE STATE Freezes the whole machine — RAM, every chip register, and whatever disk / tape / cartridge is inserted — into a named slot stored in this browser (browse them later with LOAD STATE).
📂 LOAD LIB Opens the Library dialog of files you've loaded before, cached in this browser.
▶ LOAD .PRG Picks a .prg program from disk. Loading a PRG hard-resets first, then autoruns it (if AUTORUN is on).

Save states dialog

The Save States dialog with a filter box and three saved states — each with a thumbnail of the frozen frame, its name and age, and a ⤓ export and ✕ delete button — above the IMPORT, EXPORT and CLEAR ALL buttons.

Opened with 📂 LOAD STATE. Frozen machine snapshots — full RAM, chip registers and inserted media — saved in this browser. Each row carries a thumbnail of the frozen frame, the state's name and how long ago it was saved.

Control What it does
Filter… Narrows the list by save-state name as you type.
List item Click to restore that state.
(on a row) Downloads that single state as a .c64state file — bring it to another browser or machine and pull it back in with 📥 IMPORT.
(on a row) Deletes that save state.
📥 IMPORT Imports state files (.c64state, .c64states, .json).
📤 EXPORT Exports your saved states to a file.
🗑 CLEAR ALL Deletes every save state (asks first).

Create a state with 💾 SAVE STATE while a program is running. Until then the dialog is empty, with just an IMPORT button:

The empty Save States dialog before any state has been saved, showing only the IMPORT button.

Library dialog

The Library dialog listing three cached disk images — each with a D64 type badge, its filename, size and load time and a ✕ remove button — with a filter box and the IMPORT / EXPORT / CLEAR ALL buttons.

Opened with 📂 LOAD LIB. Every .PRG / .D64 / .CRT / .TAP you open is cached here so you can reload it without picking it from disk again. Each row is tagged with its file type and shows the name, size and when you loaded it.

Control What it does
Filter… Filters the list by name.
List item Click to load that file again.
📥 IMPORT Imports a .rdy library archive.
📤 EXPORT Exports your library to a .rdy file (to move it to another browser / device).
🗑 CLEAR ALL Removes every cached file (asks first).

Before you've loaded anything the list is empty, with just an IMPORT button:

The empty Library dialog before any file has been cached.


Control Ports

The Control Ports card with a SWAP PORTS button and Port 1 / Port 2 device selectors; Port 2 is set to Key Joystick 1, showing its row of clickable key chips.

Models the C64's two control ports.

Control What it does
SWAP PORTS Swaps the devices assigned to Port 1 and Port 2 — the quickest fix when a game expects the joystick in the other port.
Port 1 / Port 2 selector Chooses what's plugged into each port: None, Joystick (gamepad), Touch Joystick (touch devices only), Mouse (1351), Mouse (NEOS), Paddle, Key Joystick 1, or Key Joystick 2.

Choosing Joystick (gamepad) reveals a Gamepad row to bind a detected physical gamepad to that port.

Default: Port 2 is a Key Joystick 1 (arrow keys to move, N / M to fire), so you can play straight away with no gamepad attached.

Touch Joystick

Choosing Touch Joystick (touch devices only) shows a fixed overlay above the screen and UI: an eight-way circular stick at the lower-left and B / A buttons at the lower-right. A drives FIRE; B drives the UP line used by the common C64 second-button convention. In landscape the controls move to the viewport corners, and they stay available in fullscreen:

The touch joystick in landscape fullscreen: the eight-way circular stick at the lower-left and the A / B fire buttons at the lower-right, over a game (Commando's title screen) filling the display.

Key Joystick

Choosing a Key Joystick shows a row of key chips in the port row, one per direction and fire button. Each chip is tappable (and clickable) — press and hold to trigger that direction or fire — so a key joystick is fully playable by touch on a keyboardless phone or tablet, and by mouse too. Its redefine link opens this dialog:

The Key Joystick dialog listing Up / Down / Left / Right / Fire A / Fire B bindings with REDEFINE ALL KEYS, RESET TO DEFAULTS and DONE buttons.

It maps six roles — up, down, left, right, fire A, fire B — to physical keys.

Button What it does
REDEFINE ALL KEYS Walks through every control in turn, capturing the key you press for each.
RESET TO DEFAULTS Restores the default bindings.
DONE Closes the dialog.

Click any single row to rebind just that one control. Defaults for Joy 1 are the arrow keys with N (fire A) and M (fire B); each key joystick has its own independent set.


Disk drive 8

Disk drive 8 with a disk inserted — LOAD, BLANK, EJECT, write-protect, FORMAT and EXPORT buttons over a TDE toggle, the disk name, and the directory listing with a magnifier button.

The primary 1541 floppy drive (IEC device 8).

Control What it does
💾 LOAD Inserts a .d64 disk image (or drop one on the screen).
💾 BLANK Inserts a blank, unformatted disk (shows 0 blocks free). Format it — with FORMAT, or from BASIC with N:name,id — before you can save to it.
⏏ EJECT Removes the disk.
🔒 / 🔓 Write-protect toggle. Loaded disks start protected (🔒); click to allow the drive to write (🔓). A freshly inserted blank disk starts writable.
🧹 FORMAT Erases the inserted disk to an empty format (asks for a name). Disabled while the disk is write-protected (🔒).
⤓ .D64 Downloads the disk — with your changes — as a .d64 file. Enabled once the disk has changes to save; disables again after you export.
TDE: OFF / ON Toggles True Drive Emulation — runs a real 1541 CPU on the IEC bus, needed for custom fastloaders. With it off, LOAD is served directly from the disk image (faster, but some loaders won't work).
Drive LED Lights while the drive is active.
n files Expands the directory: disk name, blocks free, and the file list. It updates itself when the running program changes the disk.
🔍 Opens the Directory zoom viewer — enlarged, filenames only, so PETSCII directory art reads clearly.

Writing to disk. The drive writes back to the .d64: SAVE a program, scratch or rename a file, and the change lands on the disk. Writing needs the disk unlocked (🔓) — loaded disks are protected until you allow it. Modified disks auto-save to your browser Library so they survive a reload, and the ⤓ .D64 button enables so you can download a copy; it goes quiet again once you have.

Before a disk is inserted the card shows a hint and only LOAD and BLANK are active:

Empty Disk drive 8 showing the LOAD and BLANK buttons active.


Disk drive 9

Disk drive 9 powered on, showing its power switch and the same LOAD, BLANK, EJECT, write-protect, FORMAT, EXPORT and TDE controls as drive 8.

An optional second drive (IEC device 9), off by default and invisible to the C64 until you switch it on. It reads, writes, and formats just like drive 8.

Control What it does
Power switch Connects / disconnects device 9. Turning it on opens a confirmation dialog first (see the warning below).
💾 LOAD / 💾 BLANK / ⏏ EJECT Insert / insert-blank / remove a .d64 as device 9.
🔒 / 🧹 FORMAT / ⤓ .D64 Write-protect toggle, format, and export — same as drive 8.
TDE: OFF / ON True Drive Emulation for device 9 (needs the 1541 ROM).

⚠️ A second drive on the bus can crash fastloader demos and games. When you flip the power switch on, a confirmation dialog appears — "Demos might not work when disk drive 9 is active" (Turn on to proceed, or decline to revert). This is not a formality: many custom fastloaders drive the IEC bus with cycle-exact timing and assume they are the only device on it. A connected drive 9 changes the bus timing and can make such a loader hang, glitch, or crash outright — even the disk running from drive 8. Only turn drive 9 on when you specifically need two drives, and turn it back off before loading a fastloader-based title.


Cartridge

The Cartridge card with LOAD and EJECT buttons.

Button What it does
🎮 LOAD Inserts a .crt cartridge image (or drop one on the screen).
⏏ EJECT Removes the cartridge.
↻ RESET On cartridges that provide it: presses the cartridge's reset button while preserving C64 RAM.
❄ FREEZE On freezer cartridges that provide it: presses and releases the physical freezer button.

RESET and FREEZE are capability-driven: they are shown only for inserted cartridges that provide those controls (currently Action Replay and Final Cartridge III). They remain visible but disabled while the C64 is powered off.

The Cartridge card with a freezer cartridge loaded — LOAD and EJECT on the first row, RESET and FREEZE on the second, and the cartridge name (ACTION REPLAY VI) below.


Datasette

Animation of the Datasette card loading the Commando tape — PLAY engaged, the motor dot lit green, the progress bar filling and the timer counting up from 0m00s.

A 1530 Datasette for .tap tape images.

Button What it does
📼 LOAD Inserts a .tap tape image (or drop one on the screen).
⏏ EJECT Removes the tape.
▶ PLAY Presses PLAY on the deck. In BASIC, type LOAD then press PLAY and the machine reads the tape.
⏮ REW Rewinds to the start.
⏹ STOP Stops the tape.

The bar shows tape position; the dot beside it lights when the datasette motor is running; the counter on the right shows elapsed time. As animated above: insert a tape (or press ▶ PLAY) and — with AUTORUN on — the motor dot turns green, the bar fills, and the counter climbs from 0m00s.


Options

Opened with ⚙ OPTIONS. Hardware, display and sound settings, plus ROM management. All choices persist in this browser.

The Options dialog with Display, Video, Sound, Media and ROM Files sections.

Display

Button What it does
🖥 CRT Cycles the CRT visual effect: ON (basic scanlines) → TUBE (phosphor mask + vignette + glow) → B&W (monochrome tube) → ARCADE (bright, sharp scanlines) → HUM (tube look with a slow rolling mains-hum bar) → OFF (flat, crisp pixels).
ATTRACT MODE On by default: plays an animated attract-mode demo on the screen while the machine is powered off. Turn it off to show a simple "press power to boot" hint instead.
3D MODEL Which model the VIBES viewer loads: SMALL (default — a light model that's easy on memory everywhere), AUTO (picks by device: lighter on phones/tablets, detailed 4K on desktop), or LARGE (force the 4K model). Takes effect next time you open VIBES.
STAY AWAKE Keeps the screen awake while a demo runs, so the device doesn't dim or lock (which would pause the emulator).

Video

Button What it does
VIC Switches the VIC-II graphics chip: 6569 (original PAL, NMOS breadbin) ↔ 8565 (late PAL, HMOS C64C/C128 — adds a 1-cycle pixel-pipeline delay some demos use).
PAL Switches the colour palette: Colodore (the modern VICE default — sharper, more saturated) ↔ Pepto (the classic 2001 measurement-based palette). Applies within one frame.

Sound

The master volume control at the top of this section sets how loud everything — SID and drive sounds — plays. Drag the slider to set the level, or click the speaker icon on its left to mute. The scale is perceptual (mid-slider is roughly half as loud) and defaults to 70%, which leaves headroom so the emulator sits closer in loudness to other apps. Raising the volume from silent also un-mutes; while muted, the speaker shows a red ✕ and playback keeps running silently.

Button What it does
SID Switches the SID sound chip model: 6581 (original) ↔ 8580 (later revision).
DRIVE SOUND Plays synthesized 1541 sounds — motor hum, head-stepper clicks, fast-load chatter — while the drive is active.

Media

Button What it does
AUTORUN When on, RUN (BASIC) or SYS <addr> (machine code) is injected automatically after a PRG loads. When off, the machine stays at the READY. prompt so you can start it yourself.

ROM Files

The C64 needs Commodore's KERNAL, BASIC and CHARGEN ROMs (plus an optional 1541 ROM for True Drive Emulation). A status line shows which are present. On first run the Setup dialog walks you through loading them.

Control What it does
LOAD… (per ROM) Loads a ROM file from your device for KERNAL, BASIC, CHARGEN or 1541 DOS.
CLEAR Removes all cached ROM uploads from browser storage.

⚠️ The KERNAL, BASIC, CHARGEN and 1541 ROMs are Commodore's copyrighted property and are not bundled — you must supply them legally. See Getting Started.


Setup C64 READY.

The Setup C64 READY. dialog with a LOAD and "help me find it" control per ROM.

Appears automatically on first run, when no ROMs are found — the C64 can't boot without them. See Getting Started for the walkthrough.

Control What it does
LOAD… (per ROM) Loads a ROM file from your device for KERNAL, BASIC, CHARGEN or 1541 DOS.
🔍 help me find it Opens a web search for that exact ROM filename so you can locate and download it yourself — the emulator never downloads it for you.
Find them later / Done Closes the dialog. Reads Find them later until the three mandatory ROMs are loaded, then Done.

Key Map

The Key Map dialog showing the PC-to-C64 key mapping for special keys, letters, digits and symbols.

A reference (opened with KEY MAP) for how your PC keyboard maps onto the C64. The special keys are worth memorising:

PC key C64 key
F9 RUN/STOP
F10 C= (Commodore key)
F11 CLR/HOME
F12 RESTORE (NMI)
Enter RETURN
Backspace / Delete INST/DEL
Arrows CRSR movement
^ ↑ · _ produces ←
Esc reserved (fullscreen exit)

Click the screen to capture keyboard focus before typing.


Directory zoom

The Directory zoom viewer showing a disk's directory enlarged — a rainbow PETSCII "Genesis Project" logo over "Raster Time", hidden in the filenames, reads as a full picture.

Opened with the 🔍 button in a drive's directory panel. It shows the disk's filenames large — filenames only, no block counts or type tags — so the PETSCII artwork many demos hide inside their directory listing reads clearly (above, the Raster Time disk by Genesis Project).


Updates

The "New version available." toast: the message, a Reload button, and a Later… button.

C64 READY. is a Progressive Web App, so it refreshes itself in the background. When a newer version has been downloaded and is ready to run, a toast appears at the bottom of the screen:

Button What it does
Reload Applies the update and reloads into the new version.
Later… Dismisses the toast and keeps your current session running; the update applies automatically the next time you launch the app.

Your running machine is never swapped out from under you — nothing changes until you choose Reload (or relaunch later).


Keyboard shortcuts

Key Action
Esc Exit fullscreen · close the open dialog / 3D viewer.
F9–F12 RUN/STOP · C= · CLR/HOME · RESTORE (see Key Map).

Everything else on the physical keyboard is passed straight through to the C64 per the Key Map once the screen has focus.