Files
libretro/emulators/flycast.yml
T
Abdessamad Derraz cc550c21e7 fix: cite port refs in the port's repository
These refs were labelled upstream but land in the port at source_commit: flycast sb_mem.cpp:55-59,196-231, reios.cpp:737 and naomi_roms.h:87-94 in libretro/flycast@bde196bf (filestream_open, get_rom_names), lrps2 BiosTools.cpp:189-229,339-340 and CDVD.cpp:196-245 in libretro/ps2@6eabf224 (RETRO_VFS reads absent from PCSX2), mesence bios.col at FirmwareTypeExtensions.cs:70 in MesenCE@20f497c9 (line 62 in Mesen2).
2026-10-21 10:34:54 +02:00

330 lines
11 KiB
YAML

emulator: Flycast
type: standalone + libretro
core_classification: official_port
source: "https://github.com/flyinghead/flycast"
logo: "https://raw.githubusercontent.com/flyinghead/flycast/master/shell/linux/flycast.png"
profiled_date: "2026-10-21"
source_commit: "34ad8c8262c82db237a8b9cee0d8046d9cdd6f78"
core_version: "Git"
display_name: "Sega - Dreamcast/Naomi (Flycast)"
cores:
- flycast
- flycast_dev
- flycastvl
- "flycast-next"
systems:
- sega-dreamcast
- sega-naomi
- sega-naomi2
- sega-atomiswave
- sega-systemsp
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/libretro/libretro.cpp:2249-2250). All files below are relative to
system_dir/dc/.
Only the Dreamcast reads flat files. The prefix is dc_ for Dreamcast
(core/hw/flashrom/nvmem.cpp:35-50), 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/hw/flashrom/nvmem.cpp:252-256). Arcade platforms return before the
boot ROM search (core/hw/flashrom/nvmem.cpp:300-302), 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/hw/naomi/naomi_cart.cpp:75-78), first in system_dir/dc, then in
the content directory (shell/libretro/oslib.cpp:118-130). Each ROM inside
is looked up by CRC, then by file name, in the game archive, its parent,
then the BIOS archive (core/hw/naomi/naomi_cart.cpp:89-106). The blob of
the configured region is mapped first, any region otherwise, and a game
whose BIOS cannot be loaded aborts (core/hw/naomi/naomi_cart.cpp:196-207).
Games whose bios field is naomi2 run as NAOMI 2 and those whose bios
field is segasp as System SP (core/hw/naomi/naomi_cart.cpp:810-821).
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/hw/naomi/naomi_roms.cpp:219-242).
files:
# -------------------------------------------------------
# Sega Dreamcast
# -------------------------------------------------------
- name: "dc_boot.bin"
path: "dc/dc_boot.bin"
aliases: ["dc_bios.bin"]
system: sega-dreamcast
required: false
hle_fallback: true
size: 2097152
note: "Dreamcast boot ROM. reios is used when it is absent, except for the product ids that force the real BIOS. Searched as dc_boot.bin then dc_bios.bin."
source_ref: "core/hw/flashrom/nvmem.cpp:298-316, core/emulator.cpp:613-622"
- name: "dc_nvmem.bin"
path: "dc/dc_nvmem.bin"
system: sega-dreamcast
required: false
hle_fallback: true
size: 131072
note: "Dreamcast flash memory. Created with factory settings when absent, written back on exit."
source_ref: "core/hw/flashrom/nvmem.cpp:252-256, core/hw/flashrom/nvmem.cpp:321-322"
# -------------------------------------------------------
# Sega NAOMI
# -------------------------------------------------------
- name: "naomi.zip"
path: "dc/naomi.zip"
system: sega-naomi
required: true
category: bios_zip
note: "NAOMI system BIOS archive. Games with no bios field or with naomi, naomi-jp-d or naomi-ko-h read it and abort without it."
source_ref: "core/hw/naomi/naomi_roms.cpp:86-144, core/hw/naomi/naomi_roms.cpp:219-242, core/hw/naomi/naomi_cart.cpp:196-207"
contents:
- name: "epr-21576h.ic27"
description: Japan
size: 2097152
crc32: "d4895685"
- name: "epr-21576g.ic27"
description: Japan
size: 2097152
crc32: "d2a1c6bf"
- name: "epr-21578h.ic27"
description: Export
size: 2097152
crc32: "7b452946"
- name: "epr-21578g.ic27"
description: Export
size: 2097152
crc32: "55413214"
- name: "epr-21577h.ic27"
description: USA
size: 2097152
crc32: "fdf17452"
- name: "epr-21577g.ic27"
description: USA
size: 2097152
crc32: "25f64af7"
- name: "epr-21579d.ic27"
description: Korea
size: 2097152
crc32: "33513691"
- name: "epr-21576h_multi.ic27"
description: "Multi-region, the BIOS of naomi-ko-h"
size: 2097152
crc32: "cce01f1f"
- name: "epr-21576d.ic27"
description: "Japan, the BIOS of naomi-jp-d"
size: 2097152
crc32: "3b2afa7b"
- name: "airlbios.zip"
path: "dc/airlbios.zip"
system: sega-naomi
required: false
category: bios_zip
note: "Airline Pilots Deluxe BIOS. Required by the two Airline Pilots entries."
source_ref: "core/hw/naomi/naomi_roms.cpp:29-37, core/hw/naomi/naomi_roms.cpp:1000, core/hw/naomi/naomi_roms.cpp:1032"
contents:
- name: "epr-21802.ic27"
description: Export
size: 2097152
crc32: "a77c6b1c"
- name: "epr-21801.ic27"
description: USA
size: 2097152
crc32: "a21bef24"
- name: "f355bios.zip"
path: "dc/f355bios.zip"
system: sega-naomi
required: false
category: bios_zip
note: "Ferrari F355 Challenge twin BIOS. Required by the three twin entries."
source_ref: "core/hw/naomi/naomi_roms.cpp:49-59, core/hw/naomi/naomi_roms.cpp:1887, core/hw/naomi/naomi_roms.cpp:1926, core/hw/naomi/naomi_roms.cpp:1965"
contents:
- name: "epr-22851.ic27"
description: Export
size: 2097152
crc32: "62483677"
- name: "epr-22850.ic27"
description: USA
size: 2097152
crc32: "28aa539d"
- name: "epr-22849.ic27"
description: Japan
size: 2097152
crc32: "121e009c"
- name: "f355dlx.zip"
path: "dc/f355dlx.zip"
system: sega-naomi
required: false
category: bios_zip
note: "Ferrari F355 Challenge deluxe BIOS. Required by f355."
source_ref: "core/hw/naomi/naomi_roms.cpp:60-74, core/hw/naomi/naomi_roms.cpp:1843"
contents:
- name: "epr-21864.ic27"
description: Export
size: 2097152
crc32: "12ed7c66"
- name: "epr-21863.ic27"
description: USA
size: 2097152
crc32: "0615a4d1"
- name: "epr-21862.ic27"
description: Japan
size: 2097152
crc32: "1f630716"
- name: "hod2bios.zip"
path: "dc/hod2bios.zip"
system: sega-naomi
required: false
category: bios_zip
note: "The House of the Dead 2 BIOS. Required by the four hotd2 entries."
source_ref: "core/hw/naomi/naomi_roms.cpp:75-85, core/hw/naomi/naomi_roms.cpp:2203, core/hw/naomi/naomi_roms.cpp:2241, core/hw/naomi/naomi_roms.cpp:2279, core/hw/naomi/naomi_roms.cpp:2317"
contents:
- name: "epr-21331.ic27"
description: Export
size: 2097152
crc32: "065f8500"
- name: "epr-21330.ic27"
description: USA
size: 2097152
crc32: "9e3bfa1b"
- name: "epr-21329.ic27"
description: Japan
size: 2097152
crc32: "d99e5b9b"
# -------------------------------------------------------
# Sega NAOMI 2
# -------------------------------------------------------
- name: "naomi2.zip"
path: "dc/naomi2.zip"
system: sega-naomi2
required: true
category: bios_zip
note: "NAOMI 2 system BIOS archive. Every game whose bios field is naomi2 aborts without it."
source_ref: "core/hw/naomi/naomi_roms.cpp:182-202, core/hw/naomi/naomi_cart.cpp:818-819, core/hw/naomi/naomi_cart.cpp:196-207"
contents:
- name: "epr-23605c.ic27"
description: Japan
size: 2097152
crc32: "297ea6ed"
- name: "epr-23605b.ic27"
description: Japan
size: 2097152
crc32: "3a3242d4"
- name: "epr-23607c.ic27"
description: USA
size: 2097152
crc32: "750e254b"
- name: "epr-23607b.ic27"
description: USA
size: 2097152
crc32: "f308c5e9"
- name: "epr-23608c.ic27"
description: Export
size: 2097152
crc32: "6ef1dd8e"
- name: "epr-23608b.ic27"
description: Export
size: 2097152
crc32: "a554b1e3"
- name: "epr-23609b.ic27"
description: Korea
size: 2097152
crc32: "99e3751f"
- name: "epr-23605c_multi.ic27"
description: Multi-region
size: 2097152
crc32: "353fdbcd"
# -------------------------------------------------------
# Sega Atomiswave
# -------------------------------------------------------
- name: "awbios.zip"
path: "dc/awbios.zip"
system: sega-atomiswave
required: true
category: bios_zip
note: "Atomiswave system BIOS archive. The first 64 KB of bios0.ic23 are mapped. Every Atomiswave game aborts without it."
source_ref: "core/hw/naomi/naomi_roms.cpp:38-48, core/hw/naomi/naomi_cart.cpp:196-207"
contents:
- name: "bios0.ic23"
size: 131072
crc32: "719b2b0b"
# -------------------------------------------------------
# Sega System SP
# -------------------------------------------------------
- name: "segasp.zip"
path: "dc/segasp.zip"
system: sega-systemsp
required: true
category: bios_zip
note: "System SP BIOS archive. The USA and Export regions also load a default motherboard EEPROM from it. Every game whose bios field is segasp aborts without it."
source_ref: "core/hw/naomi/naomi_roms.cpp:203-218, core/hw/naomi/naomi_cart.cpp:820-821, core/hw/naomi/naomi_cart.cpp:126-139"
contents:
- name: "epr-24328a.ic50"
size: 2097152
crc32: "03ec3805"
- name: "mb_eeprom_us.ic54s"
description: USA
size: 128
crc32: "4186d7ab"
- name: "mb_eeprom_exp.ic54s"
description: Export
size: 128
crc32: "947ddfad"
platform_details:
dreamcast:
bios_size: 2097152
flash_size: 131072
ram_size: 16777216
hle_available: true
source_ref: "core/emulator.cpp:456-462"
naomi:
bios_size: 2097152
sram_size: 32768
ram_size: 33554432
hle_available: false
source_ref: "core/emulator.cpp:463-469"
naomi2:
bios_size: 2097152
sram_size: 32768
ram_size: 33554432
hle_available: false
source_ref: "core/emulator.cpp:470-477"
atomiswave:
bios_size: 131072
sram_size: 131072
ram_size: 16777216
hle_available: false
source_ref: "core/emulator.cpp:478-484"
systemsp:
bios_size: 2097152
sram_size: 131072
ram_size: 33554432
hle_available: false
source_ref: "core/emulator.cpp:485-491"