explaingit

atrex66/picoc64plus

Analysis updated 2026-05-18

3CAudience · developerComplexity · 3/5Setup · hard

TLDR

A minimal C64 emulator for the Raspberry Pi Pico that runs C64 BASIC with added commands for controlling GPIO, PWM, I2C, and DMA hardware peripherals.

Mindmap

mindmap
  root((picoc64plus))
    What it does
      6502 CPU emulation
      C64 BASIC interpreter
      Controls Pico hardware
    BASIC commands
      GPIO control PINMODE PINOUT
      PWM signals PWMSEL PWMLVL
      I2C communication
      DMA transfers
    Access method
      USB serial connection
      PuTTY terminal
      PEEK and POKE
    Setup
      Pre-built UF2 binaries
      Drag and drop install
      Build with Pico SDK
    Hardware
      Raspberry Pi Pico
      Pico 2 RP2350
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Write hardware control programs for a Raspberry Pi Pico using 1980s-style Commodore 64 BASIC syntax.

USE CASE 2

Control GPIO pins and generate PWM signals from BASIC code without writing any C firmware.

USE CASE 3

Communicate with I2C sensors or OLED displays from BASIC using built-in I2C commands.

What is it built with?

CRaspberry Pi Pico SDKCMake6502 assembly

How does it compare?

atrex66/picoc64plusamichail-1/orbination-whisper-aimarstechhan/papercolor-frame
Stars333
LanguageCCC
Setup difficultyhardeasyhard
Complexity3/54/54/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 30min

Requires the Raspberry Pi Pico SDK and legal copies of C64 ROM files (not included). Pre-built binaries available on Releases for most users.

No license is stated in the README.

In plain English

picoc64plus is a minimal Commodore 64 emulator that runs on a Raspberry Pi Pico or Pico 2 microcontroller. Rather than reproducing the full C64 hardware experience, it takes a specific angle: it runs the original C64 BASIC interpreter and Kernal ROM on the Pico, then adds new BASIC commands that let you control the Pico's own hardware pins directly from BASIC code. The 6502 processor (the CPU used by the Commodore 64) is emulated in software, running at around 3.8 to 4 million operations per second on a Pico 2. The emulator does not simulate the C64's graphics or sound chips, so it is not for playing C64 games. Instead, it is aimed at people who want to write hardware control programs using the 1980s-era BASIC language syntax. The BASIC extension adds commands for controlling the Pico's GPIO pins (PINMODE, PINOUT, PINGET), generating PWM signals (PWMSEL, PWMLVL, PWMON), communicating with I2C devices like sensors and displays (I2CADR, I2CWRT, I2CRDT), and running DMA memory transfers (DMACPY). The same hardware is also accessible through PEEK and POKE commands, which read and write memory addresses, for users writing machine code programs. You interact with the emulator over a USB serial connection using a terminal program like PuTTY on a PC. The Pico shows up as a serial device, and you type BASIC commands directly into it. Pre-compiled firmware files (.uf2) are available on the GitHub releases page for both Pico and Pico 2. To install, hold the BOOTSEL button and drag the file onto the Pico, or use the picotool command. Building from source requires the Raspberry Pi Pico SDK, CMake, an ARM GCC toolchain, and a copy of the C64 ROM files (not included for legal reasons). The project is written in C and does not list a license explicitly.

Copy-paste prompts

Prompt 1
I have the picoc64plus firmware on my Raspberry Pi Pico 2. Write a BASIC program to blink the onboard LED using the PINOUT command.
Prompt 2
How do I use picoc64plus to read a button press on GP15 with a pull-up resistor enabled using BASIC commands?
Prompt 3
Show me how to use the I2CWRT command in picoc64plus BASIC to write a byte to an SSD1306 OLED at I2C address 0x3C.
Prompt 4
How do I build picoc64plus from source? What files do I need to provide, and what are the build prerequisites?

Frequently asked questions

What is picoc64plus?

A minimal C64 emulator for the Raspberry Pi Pico that runs C64 BASIC with added commands for controlling GPIO, PWM, I2C, and DMA hardware peripherals.

What language is picoc64plus written in?

Mainly C. The stack also includes C, Raspberry Pi Pico SDK, CMake.

What license does picoc64plus use?

No license is stated in the README.

How hard is picoc64plus to set up?

Setup difficulty is rated hard, with roughly 30min to a first successful run.

Who is picoc64plus for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub atrex66 on gitmyhub

Verify against the repo before relying on details.