Flycast
Flycast emulates Sega Dreamcast, Sega NAOMI, Sega NAOMI 2 and 2 more systems. It reads 10 files, 4 of them required: without a required file it does not start games. A required file is needed only by the machines that use it. Each file below cites the line of source code that reads it.
Run on its own, the app reads its files from this folder:
<folder of flycast.exe>/data/
The UWP build uses data/ under the app's LocalFolder (core/windows/winmain.cpp:80-89).
Source: core/windows/winmain.cpp:59-78
~/
~/.flycast/data when ~/.flycast exists. A second running instance appends its number to the folder.
Source: shell/
$XDG_DATA_HOME/flycast/, else ~/.local/share/flycast/
Source: core/linux-dist/main.cpp:74-99, core/linux-dist/main.cpp:247
Android/, on the internal storage.
data/ under the home directory set in the app settings, getFilesDir() when no external storage is mounted.
Source: shell/, shell/, shell/, shell/
Documents/
The app's sandbox Documents folder, with no data/ subfolder.
Source: shell/
About this profile
Install this emulator's files
For Flycast inside RetroArch, Batocera or another setup. 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 flycastOpen Terminal, in Applications, then Utilities. Paste the line. Press Return.
curl -fsSL https://abdess.github.io/retrobios/i | sh -s -- --emulator flycastOpen a terminal. Paste the line. Press Enter.
curl -fsSL https://abdess.github.io/retrobios/i | sh -s -- --emulator flycastSwitch to Desktop Mode. Open Konsole. Paste with Ctrl+Shift+V. Press Enter.
curl -fsSL https://abdess.github.io/retrobios/i | sh -s -- --emulator flycastInstall 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 flycastOpen 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 flycastPlatform details
-
dreamcast:
- bios_size: 2097152
- flash_size: 131072
- ram_size: 16777216
- hle_available: yes
- source_ref:
core/emulator.cpp:456-462
-
naomi:
- bios_size: 2097152
- sram_size: 32768
- ram_size: 33554432
- hle_available: no
- source_ref:
core/emulator.cpp:463-469
-
naomi2:
- bios_size: 2097152
- sram_size: 32768
- ram_size: 33554432
- hle_available: no
- source_ref:
core/emulator.cpp:470-477
-
atomiswave:
- bios_size: 131072
- sram_size: 131072
- ram_size: 16777216
- hle_available: no
- source_ref:
core/emulator.cpp:478-484
-
systemsp:
- bios_size: 2097152
- sram_size: 131072
- ram_size: 33554432
- hle_available: no
- source_ref:
core/emulator.cpp:485-491
Technical notes
The libretro core is built from flyinghead/flycast, the same tree as the standalone emulator: the wrapper lives in shell/libretro and is compiled with -DLIBRETRO=ON.
Flycast has a built-in HLE BIOS (reios) for Dreamcast that boots most
games without a real boot ROM. A short list of product ids forces the
real BIOS (core/emulator.cpp:277-278) and is told "This game requires a
real BIOS" when it is absent (core/emulator.cpp:616-621). Without content,
the core boots the BIOS and fails when none is found
(core/emulator.cpp:601-605). Arcade systems (NAOMI, NAOMI 2, Atomiswave,
System SP) load MAME-format BIOS archives.
The libretro port appends "dc/" to the system directory
(shell/). All files below are relative to
system_dir/dc/.
The standalone emulator looks for each file in the BIOS paths the user
configures, then in its data directory, then in the system data
directories, then in the content directories, and writes the flash back to
the data directory (core/oslib/oslib.cpp:118-196,
core/stdclass.cpp:95-125). The data directory, given per system in
the data folder, is the data/ folder of the configuration directory except on
Linux and iOS. standalone_path is relative to it. The BIOS paths are the
Dreamcast.BiosPath setting (core/cfg/option.cpp:144), the system data
directories take $FLYCAST_BIOS_PATH (core/), and
find_user_data_dir() returns the data directory
(core/linux-dist/main.cpp:74, core/linux-dist/main.cpp:247).
Only the Dreamcast reads flat files. The prefix is dc_ for Dreamcast
(core/), and the boot ROM is searched as
{prefix}boot.bin then {prefix}bios.bin (core/hw/flashrom/nvmem.cpp:304).
Flash is {prefix}nvmem.bin and is created when absent
(core/). Arcade platforms return before the
boot ROM search (core/), and their flash is a
per-game save file. The system font is a resource compiled into the
binary (core/reios/reios.cpp:761-764).
Arcade BIOS archives are opened as <name>.zip, then <name>.7z
(core/), first in system_dir/dc, then in
the content directory (shell/). Each ROM inside
is looked up by CRC, then by file name, in the game archive, its parent,
then the BIOS archive (core/). The blob of
the configured region is mapped first, any region otherwise, and a game
whose BIOS cannot be loaded aborts (core/).
Games whose bios field is naomi2 run as NAOMI 2 and those whose bios
field is segasp as System SP (core/).
BIOS[] also declares naomidev and naomigd. No entry of Games[] carries
either name in its bios field, so neither archive is opened. naomi-jp-d
and naomi-ko-h read naomi.zip (core/).
10 files: 4 required, 6 optional. 2 have an HLE fallback.
By kind: 2 BIOS and 8 BIOS ZIPs.
In this collection: 10 in repo and 0 missing.
Required
Section titled “Required”| File | Contents | Status |
|---|---|---|
naomi.zip
Source and 9 members
| 9 | required for Sega NAOMI in repo BIOS ZIP |
naomi2.zip
Source and 8 members
| 8 | required for Sega NAOMI 2 in repo BIOS ZIP |
awbios.zip
| 1 | required for Sammy Atomiswave in repo BIOS ZIP |
segasp.zip
Source and 3 members
| 3 | required for Sega System SP in repo BIOS ZIP |
Optional
Section titled “Optional”| File | Contents | Status |
|---|---|---|
dc_boot.bin
| - | in repo HLE fallback |
dc_nvmem.bin
Source | - | in repo HLE fallback |
airlbios.zip
Source and 2 members
| 2 | in repo BIOS ZIP |
f355bios.zip
Source and 3 members
| 3 | in repo BIOS ZIP |
f355dlx.zip
Source and 3 members
| 3 | in repo BIOS ZIP |
hod2bios.zip
Source and 3 members
| 3 | in repo BIOS ZIP |
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