Freedom251 › Commodore 64 Emulators
minimal64

What minimal64 is
minimal64 is a free, open-source plain C emulator for Commodore 64 programs that avoid the Kernal, BASIC, and Character ROMs. The project targets new software rather than the C64 back catalog, with cycle accuracy listed as an aim. It accepts PRG files and selected CRT cartridges: standard 8KB and 16KB, Ocean Type 1, C64GS, and Magic Desk. A web build supplies JavaScript and WebAssembly files for embedding in HTML, and JavaScript wrappers serve as an API example. The emulator includes a 252-byte custom Kernal but no BASIC or Character ROM data; functions can load user-supplied versions. C64 colors are represented through settable RGB values for 16 colors, rather than PAL/NTSC encoding or CRT effects. Datasette, disk drives, user and parallel ports are not emulated. Programs relying on the custom Kernal will not run on real C64 hardware. The repository identifies nopsta as author and uses GPL-2.0.
Who it suits
It suits developers and users working with new Commodore 64 software in web environments. It is also relevant to anyone needing the listed PRG or CRT formats and JavaScript integration.
What it does well
- Free GPL-2.0 open source
- Web JavaScript and WebAssembly build
- Supports PRG and listed CRT formats
- User-supplied ROM loading
- Cycle accuracy is a stated aim
What to know first
- Not aimed at the C64 back catalog
- Several hardware features are un emulated
- Custom-Kernal programs lack real-C64 compatibility
- CRT support is limited to listed formats
Limits
The emulator omits Datasette, disk drives, user and parallel ports, PAL/NTSC color encoding, and CRT effects. Cartridge support is limited to PRG files and the listed standard 8KB, standard 16KB, Ocean Type 1, C64GS, and Magic Desk formats; programs using its custom Kernal do not run on real C64 hardware.
Getting started
- Open the minimal64 project website
- Use the web build's JavaScript and WebAssembly files in an HTML document
- Load a PRG file or supported CRT cartridge
- Use JavaScript wrappers as the API example
- Supply your own Kernal, BASIC, or Character ROMs through the provided functions if needed
Verdict
minimal64 provides a small web-capable C64 emulator with defined file-format support and configurable color values. Its custom Kernal and omitted hardware mean compatibility depends on the program and the emulator features it requires.
Questions
Is minimal64 free?
Yes. It is free, open source, and published under GPL-2.0.
Which files can it run?
It supports PRG files and standard 8KB, standard 16KB, Ocean Type 1, C64GS, and Magic Desk CRT cartridges.
Does it include the original ROMs?
It includes a 252-byte custom Kernal. The included BASIC and Character ROM banks contain no data, but functions load user-supplied ROMs.
How can it be used on the web?
The build includes JavaScript and WebAssembly files for an HTML document, and the repository gives JavaScript wrappers as an API example.
What hardware is not emulated?
Datasette, disk drives, the user port, and the parallel port are not emulated.
Will custom-Kernal programs work on a real C64?
No. Programs that rely on minimal64's custom Kernal will not run on real C64 hardware.
Facts from minimal64's own pages
- API
- The README points to example/m64-wrappers.js for an API. · github.com, 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. · github.com, 11 Oct 2026
- Browser example
- The repository describes a simple web page with file controls for loading PRG and CRT files. · github.com, 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. · github.com, 11 Oct 2026
- Compatibility caveat
- Programs that rely on minimal64's custom Kernal will not run on real C64 hardware. · github.com, 4 Oct 2026
- Custom Kernal
- minimal64 includes a 252-byte custom Kernal and does not include BASIC or Character ROM data. · github.com, 4 Oct 2026
- Cycle accuracy
- Cycle accuracy is listed as an aim of the project. · github.com, 4 Oct 2026
- Emulation limits
- Datasette, disk drives, analog color encoding, CRT effects, the user port and parallel port are not emulated. · github.com, 4 Oct 2026
- File formats
- It supports PRG files and standard 8 KB/16 KB, Ocean Type 1, C64GS and Magic Desk cartridge formats. · github.com, 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. · github.com, 11 Oct 2026
- Implementation
- The emulator is written in plain C and has a custom 252-byte Kernal. · github.com, 11 Oct 2026
- Intended use
- The project is intended to run new software rather than the C64 software back catalog. · github.com, 11 Oct 2026
- License
- The repository is published under the GPL-2.0 license. · github.com, 11 Oct 2026
- License and author
- The repository identifies nopsta as the author and lists a GPL-2.0 license. · github.com, 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. · github.com, 4 Oct 2026
- Purpose
- minimal64 is a small Commodore 64 emulator for programs that do not use the Kernal, BASIC or Character ROMs. · github.com, 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. · github.com, 11 Oct 2026
- Size aim
- The project aims to compile to 90 KB of JavaScript, or 36 KB gzipped. · github.com, 11 Oct 2026
- Timing
- Cycle accuracy is one of the project's stated aims. · github.com, 11 Oct 2026
- User-supplied ROMs
- The project provides functions to load user-supplied Kernal, BASIC and Character ROMs. · github.com, 4 Oct 2026
- Web build
- The build includes JavaScript and WebAssembly files that can be used in an HTML document. · github.com, 4 Oct 2026
Where minimal64 stands on Freedom251
- Commodore 64 Emulators#16 of 31