Skip to content
forked from libretro/FreeChaF

Fairchild ChannelF Libretro core for real hardware

Notifications You must be signed in to change notification settings

DJSures/FreeChaF

 
 

Repository files navigation

FreeChaF

This fork is of FreeChaF with changes to use the Fairchild Channel F original controllers and console buttons connected to a raspberry pi via Arduino Micro or Leonardo. Original Repo here: https://github.com/libretro/FreeChaF

In this repo, you will find David's modified FreeChaF for real hardware, and the arduino code that emulates USB joystick and USB keyboard devices. The wiring of each controller direction to corresponding arduino i/o pin is located in the INO file.

View DJ's build live hack here: https://synthiam.com/Community/HackEvents/Hacking-decision-C64-or-Fairchild-Channel-F-18819

Folders

/3D Printing - contains the design files for 3d printing the console button holder

/Fairchild_Pi_Joystick_Paddle_Multi - Arduino Micro firmware for the USB joystick emulator

/Fairchild_Pi_Keyboard_Switches - Arduino Micro firmware for the USB keyboard emulator that emulates the console buttons

/FreeChaF-master - The lib retro freechaf emulator src modified for real hardware

Dj's Hacked Fairchild Example

Channel F with raspberry pi and two arduinos emulating the joysticks and console buttons Image of hacked fairchild channel f

The raspberry pi mounted with stand-offs exposing the hdmi and power via a hole cut in the back of the channel f chassis Image of raspberry pi in fairchild channel f

The arduino micro that emulates a USB Keyboard device and connects to the console buttons Image of Arduino for fairchild channel f console emulator

The console buttons held with a 3d printed bracket Image of fairchild channel f console buttons 3d printed holder

The arduino micro that emulates 2 USB joysticks for the channel f joysticks Image of arduino joystick emulator for fairchild channel f

Authors

FreeChaF was created by David Richardson. This fork for real hardware by DJ Sures

License

The FreeChaF core is licensed under GPLv3.

BIOS

FreeChaF requires two BIOS files to be placed in the libretro 'system' folder:

Filename Description MD5
sl31253.bin ChannelF BIOS (PSU 1) ac9804d4c0e9d07e33472e3726ed15c3
sl31254.bin ChannelF BIOS (PSU 2) da98f4bb3242ab80d76629021bb27585

If the ChannelF II BIOS is included, it will be used instead of sl31253. All games are compatible with both.

Filename Description MD5
sl90025.bin ChannelF II BIOS (PSU 1) 95d339631d867c8f1d15a5f2ec26069d
  • BIOS filenames are case-sensitive

Console buttons

Access to the console buttons are provided by the Arduino. The LibRetro configuration should have the assignments of numeric values 1, 2, 3, 4 to buttons A, B, X, Z. When a button is pressed, a console overlay will display that shows what button was pressed.

Controls

FreeChaF Function Retropad Keyboard Assignment
Forward Left-Analog Up
Backward Left-Analog Down
Rotate Left Right-Analog Left
Rotate Right Right-Analog Right
Pull Up Right-Analog Up
Push Down Right-Analog Down
Show/Hide Console Overlay Start q
Controller Swap Select w
Reset Left Trigger R
Console 1 A 1
Console 2 B 2
Console 3 X 3
Console 4 Z 4

How to

Installing this in a fairchild channel f is quite easy.

  1. Open the fairchild channel f and remove the PCB

  2. Disconnect the power adapter and joysticks

  3. Desolder the console buttons (careful, this is an old machine)

  4. 3D print the console button holder

  5. Solder the console buttons with a common GND. Each other wire connects to the Arduino pins documented in the Arduino folder's Keyboard firmware code

  6. Solder the joystick switches to the USB Joystick arduino micro. The pins are documented in the code. The WHITE wire gets GND

  7. Program both of the Arduino's with their respective code

  8. Build the freechaf for lib retro by copying the FreeChaf-Master folder to your raspberry pi

  9. type make in the freechaf-master folder

  10. chmod +x ./install.sh ; ./install.sh

  11. load emulation station and configure the buttons appropiately

  12. Have fun!

Releases

No releases published

Packages

No packages published

Languages

  • C 84.5%
  • C++ 11.0%
  • Makefile 4.0%
  • Other 0.5%