v3.1 - Plus4Emu! - A better Plus4 emulator included in this release (Pi3 Only)!
See CHANGELOG for latest changes
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. An option to switch to VIC20, C128 and PLUS/4 models is included in v3.0+
GitHub Link: https://github.com/randyrossi/bmc64 Please review the README.md file for complete docs on BMC64
- Quick boot time: 4.1 seconds!
- True 50hz/60hz smooth scrolling (no horizontal tearing or jitters!)
- 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 and a keyboard via GPIO pins (optional)
Click Here for adapter build instructions
- BMC64Lite version is also included for the Pi Zero. See BMC64Lite Info Page for how 'Lite' versions differ.
BMC64 3.1 Release
NOTE: Since Version 3.0, all supported machines for all supported Pi models are distributed in one release image.
You have two options for installation:
1) format a FAT32 SD card and/or partition and unzip bmc64-3.1.files.zip onto it. The Pi will boot from the first FAT partition. See below for ROM files you will need to provide yourself.
- bmc64-3.1.files.zip For Pi 2 & 3 (MD5: 82dfeb42a12e4e67734b041f57b49583
2) flash an image using bmc64-3.1.img.zip (300Mb partition). Again, see below for additional ROM files you need to provide.
- bmc64-3.1.img.zip For Pi 2 & 3 (MD5: 939259917028f2e765d4b4c8c6288324
- Formatting an SD card
- sudo fdisk /dev/sdb (make SURE /dev/sdb is the SDCard!)
- Create your partition(s)
- sudo mkfs.vfat /dev/sdbx (make SURE /dev/sdbx is the right partition!)
- Burning an image to SD card
- Linux: sudo dd if=bmc64-3.1.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 into the C64 folder. The emulator will not run without them. These are available from many sites.
See BMC128 details page
See BMVIC20 details page
See BMPLUS4 details page
/PLUS4EMU (Pi3 Only)
See BMPLUS4EMU details page
Other disk drive ROM files are optional (dos1541, dos1571 and dos1581)
Copy to your SD card your .D64/.TAP/.CRT files to the disks, tapes, or carts folders.
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.
BMC128, BMVIC20 and BMPLUS4
These machines are now bundled with the main BMC64 release v3.0 or higher. Refer to the tabs above for those machines on how to setup their ROM dirs.
Stats (C64 Machine)
The following end-to-end latency measurements were reported by _ C64 CUSTOMS _'s video "C64 Hardware -TheC64 mini Input Lag Test" video
Note: These measurements are specific to his monitor/TV and joystick testing program he used.
|Machine/Emulator over HDMI||Latency (Machine)||Latency (Machine + Display)||Notes|
|Real C64 +|
Framemeister HDMI Upscaler
|0ms||3 frames||HDMI using high speed camera|
|Ultimate 64||< .1ms||1-2 frames||HDMI using high speed camera.|
*Practically all latency introduced by TV/Monitor after scaling since the U64 has no frame buffer.
See video for measurement.
|C64 Mini||unknown||6-7 frames||HDMI using high speed camera.|
Below are my measurements for composite video/audio out and are specific to the joy/key testing programs I used (joy tester is a modification of the 8-bit guy's key delay test and is included with BMC64). C64 mini audio measurement was made by The 8-bit Guy.
|Machine/Emulator||Composite Video Delay||Audio Delay||Notes|
|Real C64||0 frames||0ms||delayjoy.crt|
|Ultimate 64||0 frames PAL Composite||~35ms analog audio port||delayjoy.crt|
|C64 Mini||N/A||~360ms||8-bit Guy's measurement for audio|
Has this been improved in new firmware? Does anyone know?
|Combian||TODO||~250ms analog audio jack||Using default settings (200ms buffer). I was using Fast SID engine. Could go as low as 135ms with buffer size change to 80ms.|
|BMC64||2-3 frames GPIO|
3-4 frames USB
4-5 frames Keyrah+DB9
|~90ms analog audio jack||Progressive PAL composite for video using oscilloscope, ReSid SID Engine used|
Special thanks goes out to my friend Ryan Daum for his advice and technical guidance on this project!