minimal64
minimal64 is a plain C emulator for Commodore 64 programs that avoid the Kernal, BASIC, and Character ROMs.
What minimal64 is
minimal64 is a plain C emulator for Commodore 64 programs that avoid the Kernal, BASIC, and Character ROMs. The project is aimed at running new software rather than the C64 back catalog, with cycle accuracy listed as a goal. It supports PRG files and selected CRT cartridge formats: standard 8KB and 16KB, Ocean Type 1, C64GS, and Magic Desk. A web build provides JavaScript and WebAssembly files for embedding in an HTML document, and JavaScript wrappers are shown as an API example. The emulator includes a 252-byte custom Kernal, while its included BASIC and Character ROM banks contain no data; functions allow user-supplied ROMs to be loaded. C64 colors use settable RGB values rather than PAL/NTSC color encoding or CRT effects. Datasette, disk drives, the user port, and parallel port are not emulated. Programs relying on the custom Kernal will not run on real C64 hardware. The project aims for a 90 KB JavaScript build, or 36 KB gzipped, and is published under GPL-2.0 by nopsta.
Good
- Plain C implementation with web build
- Supports PRG and listed CRT formats
- User-supplied ROM loading functions
- Cycle accuracy is a stated aim
- GPL-2.0 open source
Watch out
- Not aimed at the C64 back catalog
- Several hardware devices are not emulated
- Custom-Kernal programs will not run on real C64s
- No PAL/NTSC or CRT effects
Who it suits
It suits developers building or embedding focused C64 software in web projects. It is intended for new programs that fit its supported formats and emulation boundaries.
Verdict
minimal64 is a compact emulator for selected C64 software, especially web-integrated projects. Its format support and custom Kernal are defined clearly, but compatibility is limited by omitted hardware and ROM behavior.
The facts
Each one read from minimal64's own pages, with the date it was checked.
What it does
- API
- The README points to example/m64-wrappers.js for an API.checked 11 Oct 2026
- Audience
- The README says that if a PRG or CRT runs on minimal64, it should also run on real C64 hardware or C64 emulators.checked 11 Oct 2026
- Color
- It uses RGB values for the C64's 16 colors and provides functions to set them; PAL/NTSC color encoding and CRT effects are not emulated.checked 11 Oct 2026
- Compatibility caveat
- Programs that rely on minimal64's custom Kernal will not run on real C64 hardware.checked 4 Oct 2026
- Custom Kernal
- minimal64 includes a 252-byte custom Kernal and does not include BASIC or Character ROM data.checked 4 Oct 2026
- Cycle accuracy
- Cycle accuracy is listed as an aim of the project.checked 4 Oct 2026
- Emulation limits
- Datasette, disk drives, analog color encoding, CRT effects, the user port and parallel port are not emulated.checked 4 Oct 2026
- File formats
- It supports PRG files and standard 8 KB/16 KB, Ocean Type 1, C64GS and Magic Desk cartridge formats.checked 11 Oct 2026
- Hardware limits
- Datasette, disk drives, the user port and parallel port are not emulated, and cartridge support is limited to listed formats.checked 11 Oct 2026
- Implementation
- The emulator is written in plain C and has a custom 252-byte Kernal.checked 11 Oct 2026
- Intended use
- The project is intended to run new software rather than the C64 software back catalog.checked 11 Oct 2026
- License
- The repository is published under the GPL-2.0 license.checked 11 Oct 2026
- License and author
- The repository identifies nopsta as the author and lists a GPL-2.0 license.checked 4 Oct 2026
- Program formats
- The emulator supports PRG files and selected CRT cartridge formats, including standard 8KB and 16KB cartridges, Ocean Type 1, C64GS and Magic Desk.checked 4 Oct 2026
- Purpose
- minimal64 is a small Commodore 64 emulator for programs that do not use the Kernal, BASIC or Character ROMs.checked 11 Oct 2026
- ROMs
- The emulator can load user-supplied Kernal, BASIC and Character ROMs; the included BASIC and Character ROM banks contain no data.checked 11 Oct 2026
- Size aim
- The project aims to compile to 90 KB of JavaScript, or 36 KB gzipped.checked 11 Oct 2026
- Timing
- Cycle accuracy is one of the project's stated aims.checked 11 Oct 2026
- User-supplied ROMs
- The project provides functions to load user-supplied Kernal, BASIC and Character ROMs.checked 4 Oct 2026
- Web build
- The build includes JavaScript and WebAssembly files that can be used in an HTML document.checked 4 Oct 2026
Where it runs
- Browser example
- The repository describes a simple web page with file controls for loading PRG and CRT files.checked 11 Oct 2026
Alternatives to minimal64
- 1
TRX64
Free planOpen sourceWebAPILinuxmacOS7.5Free plan - 2
Frodo
Free planOpen sourceAndroidLinuxmacOSSelf-hosted7.4Free plan - 3
Avidemux
Free planOpen sourceWebLinuxmacOSWindows7.3Free plan - 4
VICE
Free planAndroidLinuxmacOSWindows7.1Free plan - 5
Power64
macOS6.7$30 one-time - 6
C64 Forever
Free planWindows6.6$19.95 one-time
