Logo Logo Logo

BMC64 is a bare metal C64 Emulator (using VICE) for the Raspberry Pi (Models 2 & 3). There is no bloated O/S to boot and the emulator has direct access to hardware resulting in better performance than the Linux based distributions. VICE dependencies are satisfied using circle-stdlib.

GitHub Link: https://github.com/randyrossi/bmc64


  • Quick boot time: ~7 seconds!
  • True 50hz/60hz smooth scrolling (no horizontal tearing or jitters!)
  • Extremely low latency between input and audio/video
  • Excellent audio/video synchronization
  • No need to issue a shutdown sequence, just power off
  • Supports wiring real joysticks via GPIO pins (optional) Click Here for adapter build instructions


1.0.9 Release

NOTE: Versions 1.0.6 through 1.0.8 were prone to lock up on Rpi3. If you are having this issue, please try 1.0.9.


  • Burn to SD card
    • Linux: sudo dd if=bmc64-1.0.9.img of=/dev/sdx bs=64k (make SURE /dev/sdx is correct!)
    • Windows: Use etcher or Win32DiskManager
  • You MUST obtain at a minumum Commodore 64 KERNAL, CHARGEN, BASIC, and d1541II rom files and copy them to the sdcard. The emulator will not run without them. These are available from many sites.

    • Example

      NOTE: You will have to rename files from the names you find here to the names the emulator expects above. For example, characters.901225-01.bin becomes CHARGEN

  • Copy to your SD card your .D64/.TAP/.CRT files. They must reside in the root directory.
  • All USB devices must be attached before you power on the PI. They must remain plugged in or the emulator will not function.
  • F12 brings up the menu (or Commodore Key+F7 if enabled)
  • README for more details.


These measurements were reported by _kieferkn/i:/stern _'s video "C64 Hardware -TheC64 mini Input Lag Test" video


Machine/EmulatorDelay Notes
Real C640 frames
Real C64 + Framemeister HDMI Upscaler3 frames
Ultimate 641-2 frames See video for measurement.
C64 Mini6-7 frames Agrees with 8-bit guy
Vice2.4 Desktop6 frames What O/S, processor,etc? Seems high. Default settings?
BMC642-3 frames using GPIO
4-5 frames Keyrah+DB9
? frames using USB gamepad
Measured using an oscilloscope on composite out + GPIO/Keyrah, more details to follow.


Special thanks goes out to my friend Ryan Daum for his advice and technical guidance on this project!

© 2019 Randy Rossi (randyrossi at gmail dot com) - All rights reserved (2019/01/30)