Docs / Features
Features#
Everything the emulator supports, seen from the user's side — not the internals. This is the checklist: the file formats it loads, the devices you can plug into the control ports, the display and sound options, the save features, and how it installs as an app. For a step-by-step walkthrough see the Getting Started guide.
App & platform (PWA)#
- Works on a modern smart phone — the full emulator runs in a mobile browser, sized to fit the screen.
- Installable Progressive Web App — "Add to Home Screen" from your browser to run it like a native app.
- Works offline — after the first load, the app (and its docs) run without a network connection.
- Mobile touch keyboard — tap the screen to summon your device's keyboard and type into the C64.
- Mobile touch joystick — assign Touch Joystick to either control port for an eight-way stick and two-button overlay above the screen and UI.
- Background-safe — switching apps pauses and mutes the machine; returning resumes cleanly with no audio blip or catch-up stutter.
- Stay awake — an optional screen wake-lock (Settings ▸ STAY AWAKE, on by default) keeps your phone's display from sleeping mid-demo.
- Persistent settings — SID/VIC model, palette, CRT mode, autorun, cached ROMs, your media library, and save states all survive a reload.
Loading & file formats#
.prgprograms — single games and tools, injected and started for you..d64disk images — full 35- and 40-track floppies, with directory listing and wildcard loading, and read/write: programs canSAVEto them..crtcartridges — generic 8K/16K/Ultimax, Action Replay v4.x/v5/v6, Final Cartridge III, Magic Desk, and EasyFlash..taptapes — datasette images (v0 / v1 / v2), played like real hardware.- Drag-and-drop — drop any supported file on the screen and it goes to the right slot automatically.
- File pickers — a dedicated load button for each media type.
- LOAD library — everything you open is cached in the browser and re-loadable from a searchable list, with import/export of the whole library.
- Auto-run — programs start themselves after loading (toggleable); disk
loads type the
LOAD/RUNcommands for you and wait until they finish. - Insert while powered off — disks, tapes, and cartridges can be attached before power-on.
Control-port devices#
Each of the two ports is assignable independently, with a SWAP PORTS button:
- Digital joystick via a connected gamepad (per-port gamepad selection).
- Touch Joystick — touch-only eight-way stick with two overlay buttons; A is fire and B uses the standard second-button UP-line convention.
- Key Joystick 1 & 2 — two independent keyboard-driven sticks (no gamepad needed), either assignable to either port so two people can share the keyboard. Key Joystick 1 = arrow keys + N / M to fire; Key Joystick 2 = WASD + C / V to fire. Every key is remappable — click "redefine" under the port.
- Mouse (1351) — proportional GEOS-style mouse (pointer-lock).
- Mouse (NEOS) — the NEOS nibble-strobe mouse.
- Paddle — mouse-driven paddle pair for paddle games.
- None — an empty port.
- Light pen — wired to the port so "stable raster via light pen" software works.
Keyboard & input#
- Full C64 keyboard mapped to your physical keyboard.
- Host-friendly remaps for the C64-only keys:
TAB= INST/DEL,F9= RUN/STOP,F10= Commodore key,F11= CLR/HOME,F12= RESTORE. - On-screen key map — a clickable keyboard for finding symbols.
- Paste — type clipboard text or a BASIC listing straight into the machine.
- PETSCII directory listings — disk directories render through the real character ROM, so custom cracker-art charsets display correctly.
Disk drives#
- Two drives — device 8 and device 9.
- Directory artwork viewer — every inserted disk lists its files in the drive panel; a 🔍 button in the corner of the listing reopens it enlarged in its own window, showing just the filenames — no block counts or file types — so the PETSCII artwork many demos hide in their directory reads clearly. The window sizes itself to the art, and the names are tinted as a C64 raster rainbow: a continuous vertical colour sweep through the authentic hues of your selected palette (Colodore or Pepto), flowing unbroken down the whole listing the way a demo cycles its raster bars.
- Fast loading — an instant built-in shortcut load, on by default.
- True Drive Emulation (TDE) — a real emulated 1541 (its own CPU + DOS) for fastloaders, cracked intros, demos, and copy-protected disks.
- Disk writing — the drive writes back to the
.d64:SAVE, scratch, and rename all run through the real 1541 DOS. Modified disks auto-save to your browser Library, and the directory listing updates itself as files change. - Blank & format — insert a fresh blank (unformatted) disk, then format it —
from the panel or with BASIC
N:name,id— ready to save to. - Export — download the current disk, with your changes, as a
.d64file (enabled once there's something to save). - Write-protect toggle — lock a disk against writes (or unlock it) per drive; loaded disks start protected so nothing is changed by accident.
- Eject control per drive.
- Drive sounds — optional synthesized motor hum and head-stepper clicks.
Datasette (tape)#
.tapplayback with PLAY / STOP / REW transport controls, driven cycle-accurately like a real 1530 Datasette.
Cartridges#
.crtsupport for generic (8K/16K/Ultimax), Action Replay v4.x/v5/v6, Final Cartridge III, Magic Desk / Domark / HES, and EasyFlash bank-switched carts — loadable even while powered off. Action Replay and Final Cartridge III expose their physical RESET and FREEZE buttons in the Cartridge card.
Video & display#
- CRT display modes — a single button cycles: scanlines → phosphor-mask colour tube → black-and-white tube → bright arcade → tube with a rolling mains-hum bar → off.
- Picture size — 1X / 1.5X / 2X, plus fullscreen.
- VIC-II model — switch between 6569 (original PAL) and 8565 (C64C).
- Colour palette — Colodore (modern, saturated) or Pepto (classic 2001 measurements).
- FPS and per-frame timer readout in the header.
Sound#
- SID model — switch between 6581 (original) and 8580 (later C64C).
- Three-voice SID with filter and
$D418digi playback (sampled sound). - Master volume — a draggable output level on a perceptual (audio-taper) scale, defaulting to 70% for headroom. Combined with mute into one control (a pixel-art speaker toggle beside the slider); muting keeps playback running silently, and raising the level un-mutes.
Save, resume & state#
- Pause / resume — freeze and continue exactly where you were.
- Hard reset — clean power-cycle-equivalent restart.
- Save states — freeze the whole machine (RAM, every chip, and the inserted disk/tape/cartridge) into named, thumbnailed slots and restore them later.
- Export / import state files — move a snapshot to another browser or machine.
ROMs#
- Bring-your-own ROMs — supply KERNAL, BASIC, CHARGEN (and an optional 1541 ROM for TDE) by fetching them into the browser or uploading them.
- Cached in the browser — provide them once; they auto-restore on later visits. A CLEAR button wipes the cache.
Extras & conveniences#
- Retro Vibes 3D viewer — a full-screen 3D scene of the C64 whose on-screen TV mirrors the live emulator picture, with several switchable lighting/backdrop moods (synthwave, starry plain, spotlight, IK+ sunset, arcade, 80s room). Opened with the VIBES button in Controls (icon: a retro sun in the ⛶ fullscreen brackets); double-click the model to power on, Esc / ✕ to return. On a WebXR device an 🥽 Enter VR button appears to step into the scene in stereo with head tracking (experimental — see the note below).
- VR (WebXR), experimental — if the browser reports a headset (or the WebXR emulator), the 3D viewer offers an Enter VR mode. It needs a VR headset or the desktop WebXR emulator; phones and iOS have no WebXR. The neon post-processing (bloom/grade) is skipped in VR, so the look is flatter there.
- Record to MP4 — capture the whole browser window, with sound, to an
.mp4file from the ● RECORD button in Controls. It records everything on screen (fullscreen and Retro Vibes included) with the emulator's own audio, and saves asc64ready-<date>.mp4. Desktop Google Chrome only. - Powered-off attract animation — an animated idle screen (toggleable).
- About — a short in-app project note, with full specifications, source material, and credits in the docs.
New here? Start with the Getting Started guide, or dive into the Architecture for how it all works. For what's out of scope or still rough, see Known Issues.