FreeChaF
FreeChaF emulates Fairchild Channel F. It reads 3 files, none of them required: it starts games without them.
About this profile
Install this emulator's files
The installer finds your setup and its BIOS folder, then downloads only the files this emulator reads there and checks each one.
Open the Start menu. Type PowerShell and open it. Paste the line. Press Enter.
&([scriptblock]::Create((irm https://abdess.github.io/retrobios/i.ps1))) --emulator freechafOpen Terminal, in Applications, then Utilities. Paste the line. Press Return.
curl -fsSL https://abdess.github.io/retrobios/i | sh -s -- --emulator freechafOpen a terminal. Paste the line. Press Enter.
curl -fsSL https://abdess.github.io/retrobios/i | sh -s -- --emulator freechafSwitch to Desktop Mode. Open Konsole. Paste with Ctrl+Shift+V. Press Enter.
curl -fsSL https://abdess.github.io/retrobios/i | sh -s -- --emulator freechafInstall Termux, a terminal app. Run pkg install python and termux-setup-storage once. Then paste the line. Press Enter.
curl -fsSL https://abdess.github.io/retrobios/i | sh -s -- --emulator freechafOpen a terminal on the device. Or connect from a computer with SSH, a terminal over the network. Paste the line. Press Enter.
curl -fsSL https://abdess.github.io/retrobios/i | sh -s -- --emulator freechafPlatform details
-
bios_mapping:
- target: 0x000-0x7FF in 64K memory space
- source_ref:
src/memory.h:27-29,src/memory.c:29-61 - note: MEMORY_loadSysROM_libretro() reads the file and copies it into Memory[] at the given address offset. PSU1 is loaded at 0x000, PSU2 at 0x400. The loader caps file size to (MEMORY_SIZE - address) to prevent overflow. MEMORY_RAMStart is advanced past the loaded ROM to protect it from writes.
-
hle_fallback:
- source_ref:
src/channelf_hle.c - note: When BIOS files are missing, FreeChaF uses HLE to emulate the PSU routines in software. This is marked as experimental and may cause compatibility issues with some games. Each PSU can independently fall back to HLE.
- source_ref:
-
load_priority:
- source_ref:
src/libretro.c:186-198 - note: PSU1 loading order: sl90025.bin (Channel F II) first, then sl31253.bin (original Channel F) as fallback. If both fail, HLE is used. sl90025.bin is the preferred BIOS as it includes Channel F II improvements.
- source_ref:
Technical notes
FreeChaF is a Fairchild Channel F emulator written for libretro.
BIOS loading is in src/libretro.c:186-208. The core first tries to load
sl90025.bin (Channel F II PSU1) at address 0x000. If that fails, it falls
back to sl31253.bin (original Channel F PSU1) at the same address. PSU2
(sl31254.bin) is always loaded at address 0x400.
Memory layout from src/memory.h:27-30:
0x000-0x3FF PSU1 ROM (sl31253 or sl90025)
0x400-0x7FF PSU2 ROM (sl31254)
0x800-0x1FFF cartridge ROM
0x2000+ VRAM
If either PSU ROM fails to load, the core switches to experimental HLE (high-level emulation) for that PSU. A warning message is shown to the user recommending real BIOS files. HLE state is tracked per-PSU via hle_state.psu1_hle and hle_state.psu2_hle (src/channelf_hle.c).
The .info file declares all three firmware files as required (opt=false), but the core does not abort on missing BIOS -- it falls back to HLE.
3 files: 0 required, 3 optional. 3 have an HLE fallback.
In this collection: 3 in repo and 0 missing.
Optional
Section titled “Optional”sl31253.bin optional in repo HLE fallback
- System: Fairchild Channel F
- Channel F PSU1 ROM (original). Fallback if sl90025.bin is missing.
- Collection copy:
bios/Arcade/FBNeo/sl31253.rom - Platforms:
sl31253.bin: Batocera, KNULLI, Lakka, RetroArch, RetroBat, RetroPie.ChannelF_SL31253.rom: BizHawk.bios/sl31253.bin: RetroDECK.channelf/sl31253.bin: Recalbox.fairchild-channel-f/: RomMsl31253.bin
Priority and source
- Priority: 2
- Source:
src/libretro.c:192
sl31254.bin optional in repo HLE fallback
- System: Fairchild Channel F
- Channel F PSU2 ROM. Always loaded at address 0x400.
sl90025.bin optional in repo HLE fallback
- System: Fairchild Channel F
- Channel F II PSU1 ROM. Tried first, preferred over sl31253.bin.
- Collection copy:
bios/Arcade/FBNeo/sl90025.rom - Platforms:
sl90025.bin: Batocera, KNULLI, Lakka, RetroArch, RetroBat, RetroPie.ChannelF_sl90025.rom: BizHawk.bios/sl90025.bin: RetroDECK.channelf/sl90025.bin: Recalbox.fairchild-channel-f/: RomMsl90025.bin
Priority and source
- Priority: 1
- Source:
src/libretro.c:186
Next steps
Section titled “Next steps”- Get your files, for the setup you play on
- Every system, and the files each one needs
- When a game does not start