C64 OS on BMC64
C64 OS is an operating system made for real Commodore 64 hardware. But it does support C64 emulators such as VICE. The emulator needs to have support for a virtual CMD HD to work and BMC64 has had that support since version 4.1.
But the C64 OS site had the opposite information, in that it is not supported. 🤔
Time to try!
The roadblock
Luckily the BMC64 site says C64 OS is supported! But...
Once installed there was a serious problem with the mouse. Every time you left or right clicked it would jump across the screen making it impossible to use.
Turns out I wasn't the first person to notice this problem as I found this issue in the BMC64 repository: #248. But there had been no progress for 2 years...
The only solution. Fix it. This ended up taking much longer than I expected, but in the end I figured out what the problem was, and made a fix. I also figured out a work around for BMC64 4.2.
Now I was ready to go!
Prerequisites
- Raspberry Pi 3B+ - BMC64 only runs on a Pi Zero, Pi2 or Pi3.
- A copy of C64 OS: Order it here
- Latest version of BMC64 (4.2 at the time of writing)
- BMC64 patch to fix mouse and other improvements
- JiffyDOS kernel (suggested store)
- CMD HD 2.80 boot rom (suggested store)
- USB Mouse
- microSD Card for BMC64 installation
- Optional USB stick, to run the CMD HD image of C64 OS from for best performance: see details
How to install C64 OS on BMC64
MicroSD card setup
- Setup a new installation of BMC64 4.2 on an microSD card as per the instructions on their site .
- Apply the files from the BMC64 patch over the installation on the microSD card.
- Copy the JiffyDOS and CMD HD 2.80 boot roms onto the microSD card (suggested folder
/C64
) - Copy the
c64os v1.0x.dhd
CMD HD file containing C64 OS from your C64 OS System Card to the microSD card.- Note: For better performance put the
dhd
file onto the optional USB stick instead of the microSD card.
- Note: For better performance put the
Configure BMC64
- Plug in the USB mouse
- Boot up BMC64
- Configure port 1 as a USB mouse
- Joyports -> Port 1 -> USB Mouse (1351)
- Set the Kernal ROM as JiffyDOS
- Machine -> ROMS... -> Load Kernal ROM... (Find and select)
- Set the CMD HD boot rom
- Drives -> Change ROM... -> CMDHD... (Find and select)
- Configure Drive 10 as a virtual CMD HD
- Drives -> Drive 10 -> Change Model... (CMDHD)
Optional configuration
If you want to be able to access a folder on the microSD card directly from C64 OS to make it easy to transfer files into C64 OS, you need to set up the IEC FileSystem on one of the drives.
- Make a folder on the microSD card (suggested folder
/c64os
) - Configure Drive 9 as an IEC FileSystem
- Drives -> Drive 9 -> IEC FileSystem = On
- Drives -> Drive 9 -> Options -> True Drive Emulation = Off
- Drives -> Drive 9 -> Select IEC Dir... (Select folder on microSD card)
Running C64 OS
Each time you start BMC64 you'll have to attach the C64 OS dhd
image, and launch C64 OS.
- Drives -> Drive 10 -> Attach Disk... (Find and select .dhd file from USB stick)
- Switch to device 10 with the command:
@#10
- Load C64 OS with the command:
/C64OS
- Launch C64 OS with the command:
RUN
Note
There can sometimes be a problem when you try to switch to device 10. If this happens you need to go into "Drives -> Drive 10 -> Options -> CMDHD Mode ..." and flip through all the modes and back to Normal, then drop out of the menu and try to switch to device 10 again.
First run of C64 OS
On first run you'll have to set up C64 OS. You can follow the instructions on the C64 OS site.
What's in the BMC64 Patch?
The BMC64 patch includes:
- Mouse fix
- Per device True Drive Emulation setting. This allows the setting to be off for Drive 9 (IEC FileSystem), while remaining on for other drives (details)
- Speed fix for floppy loading when CMD HD is configured (details)
- Version
4.2-p1
is shown on the about page in BMC64
Full details and source code for the patch is in my forked bmc64 repository.
The patch archive contains the pre-built BMC64 kernel files for the Pi Zero, Pi2 and Pi3. Simply extract the files from the archive and replace the existing ones on the root of the microSD card.
Bonus
For the ultimate BMC64 experience use my BMC64 PCB for an authentic feel. 😃