Skip to content

Flycast Dojo - RetroBIOS

Type standalone
Classification Enhanced forks
Source https://github.com/blueminder/flycast-dojo
Upstream https://github.com/flyinghead/flycast
Version dojo-7-preview4
Profiled 2026-08-08
Cores flycast-dojo
Systems sega-dreamcast, sega-naomi, sega-naomi2, sega-atomiswave
Checked by existence
Platform details

dreamcast: - bios_size: 2097152 - flash_size: 131072 - ram_size: 16777216 - hle_available: True - source_ref: core/emulator.cpp:436-442 naomi: - bios_size: 2097152 - sram_size: 32768 - ram_size: 33554432 - hle_available: False - source_ref: core/emulator.cpp:443-449 naomi2: - bios_size: 2097152 - sram_size: 32768 - ram_size: 33554432 - eram_size: 33554432 - hle_available: False - source_ref: core/emulator.cpp:450-458 atomiswave: - bios_size: 131072 - sram_size: 131072 - ram_size: 16777216 - hle_available: False - source_ref: core/emulator.cpp:459-465

Technical notes

Fork of Flycast adding rollback and delay netplay, a lobby, spectating, replay recording and a training mode.

Every file below is read from the data directory, flat, with no subfolder. The directory is /data on Windows, $XDG_DATA_HOME/flycast-dojo or $HOME/.local/share/flycast-dojo on Linux, /flycast-dojo/data on Switch. $FLYCAST_ROOT overrides the root, $FLYCAST_BIOS_PATH adds search paths, and ContentPath entries are searched after the data directory. ref: core/linux-dist/main.cpp:157-365, core/windows/winmain.cpp:245-266, core/stdclass.cpp:78-97

The boot ROM prefix follows the platform (core/hw/holly/sb_mem.cpp:27-42): Dreamcast -> dc_ NAOMI -> naomi_ NAOMI 2 -> naomi2_ Atomiswave -> aw_ Boot ROM search pattern (sb_mem.cpp:254,269): {prefix}boot.bin, {prefix}boot.bin.bin, {prefix}bios.bin, {prefix}bios.bin.bin Flash search takes a single name, {prefix}nvmem.bin (sb_mem.cpp:214), or {prefix}nvmem.bin.net once Dojo mode is on (sb_mem.cpp:195). The aw_ prefix never reaches a filename: sb_mem.cpp:267 skips the boot ROM search on Atomiswave, whose BIOS comes from awbios.zip, and its flash follows the per-game arcade path (sb_mem.cpp:216).

Arcade BIOS archives are opened as .zip, then .7z (core/hw/naomi/naomi_cart.cpp:69-71). Each ROM inside is looked up by CRC then by filename; the crc field of every BIOS blob is left at zero, so the filename decides. No hash is checked on an archive.

NAOMI 2 is a platform of its own here: naomi_cart_GetPlatform returns DC_PLATFORM_NAOMI2 for any game whose bios field is naomi2 (naomi_cart.cpp:646-657), which selects the naomi2_ prefix and naomi2.zip.

Under netplay, match playback or match recording the Dreamcast boot ROM is skipped and reios is forced, so both sides start from the same state. Product numbers T0019M and T-31101N are the two exceptions that keep the real BIOS (sb_mem.cpp:237-259).

BIOS[] also declares airlbios and naomigd. No entry of Games[] carries either name in its bios field and loadBios is only ever called with that field or the literal naomi, so neither archive is opened. The Airline Pilots sets use the naomi BIOS (naomi_roms.cpp:821-828,854-862).

flycast_roms.json ships beside the binary and lists an md5 for naomi.zip, naomi2.zip and awbios.zip. The only function reading them, CompareBIOS, has no live caller (DojoFile.cpp:228-242, DojoGui.cpp:1314,1369).

Distributed with the emulator and fetched at build time: data/default.zip and the per-game .nvmem/.eeprom/.nvmem2 netplay files from flycast-netplay-nvmem, data/game_values/.json from flycast-dojo-game-values, training/.lua from flycast-dojo-training, and flycast_roms.json. ref: CMakeLists.txt:1787-1834, .github/workflows/c-cpp.yml:171-192, shell/linux/make-appimage.sh:136-149

Also read but never user supplied: buttons.png overrides an on-screen button sheet compiled into the binary (core/rend/osd.cpp:152-171), mappings/*.cfg are written by the input configuration screen (core/input/mapping.cpp:382-445), and flycast.lua is a user script (core/lua/lua.cpp:746-761).

13 files | 3 required, 10 optional | 12 in repo, 1 missing | 1 with HLE fallback Categories: 6 BIOS, 1 game data, 6 BIOS ZIPs

dc_boot.bin optional in repo HLE fallback

  • System: sega-dreamcast
  • Size: min 2.0 MB
  • Aliases: dc_boot.bin.bin, dc_bios.bin, dc_bios.bin.bin
  • Validation: size
  • Source: core/hw/holly/sb_mem.cpp:269, core/emulator.cpp:566-569, core/hw/flashrom/flashrom.cpp:23-33
  • Platforms: batocera, emudeck, lakka, recalbox, retroarch, retrobat, retrodeck, retropie, rocknix, romm
  • Boot ROM. reios takes over when it is absent, and is forced under netplay, match playback and match recording. Read fails below 2 MB.

dc_nvmem.bin optional in repo

  • System: sega-dreamcast
  • Size: min 128.0 KB
  • Validation: size
  • Source: core/hw/holly/sb_mem.cpp:214, core/hw/holly/sb_mem.cpp:111-187
  • Flash memory. Created and filled with factory settings when absent.

dc_nvmem.bin.net optional missing

  • System: sega-dreamcast
  • Size: min 128.0 KB
  • Validation: size
  • Source: core/hw/holly/sb_mem.cpp:192-195
  • Flash memory used once Dojo mode is enabled, keeping netplay settings apart from local ones.

font.bin optional in repo

  • System: sega-dreamcast
  • Source: core/reios/reios.cpp:741-764, core/oslib/oslib.cpp:195-198
  • System font served by the reios font syscall. A built-in font is used when absent.

naomi_boot.bin optional in repo

  • System: sega-naomi
  • Size: min 2.0 MB
  • Aliases: naomi_boot.bin.bin, naomi_bios.bin, naomi_bios.bin.bin
  • Validation: size
  • Source: core/hw/holly/sb_mem.cpp:269, core/hw/naomi/naomi_cart.cpp:202-207
  • Platforms: retrodeck, rocknix, romm
  • Flat boot ROM. Games whose bios field is null run from it when naomi.zip is missing.

naomi.zip required in repo bios_zip

  • System: sega-naomi
  • Source: core/hw/naomi/naomi_roms.cpp:84-140, core/hw/naomi/naomi_cart.cpp:194-208
  • Platforms: batocera, emudeck, lakka, recalbox, retroarch, retrobat, retrodeck, retropie, romm
  • System BIOS archive. 89 game entries name it and abort without it.
  • Contents (4 entries):
    • epr-21576h.ic27 -Japan -2.0 MB
    • epr-21577h.ic27 -USA -2.0 MB
    • epr-21578h.ic27 -Export -2.0 MB
    • epr-21579d.ic27 -Korea -2.0 MB

f355bios.zip optional in repo bios_zip

  • System: sega-naomi
  • Source: core/hw/naomi/naomi_roms.cpp:47-54, core/hw/naomi/naomi_roms.cpp:1689, core/hw/naomi/naomi_roms.cpp:1725, core/hw/naomi/naomi_roms.cpp:1761
  • Platforms: lakka, retroarch, retrodeck, retropie, romm
  • Ferrari F355 Challenge twin. Required by f355twin, f355twinp and f355twn2.
  • Contents (3 entries):
    • epr-22849.ic27 -Japan -2.0 MB
    • epr-22850.ic27 -USA -2.0 MB
    • epr-22851.ic27 -Export -2.0 MB

f355dlx.zip optional in repo bios_zip

  • System: sega-naomi
  • Source: core/hw/naomi/naomi_roms.cpp:56-70, core/hw/naomi/naomi_roms.cpp:1645
  • Platforms: lakka, retroarch, retrodeck, retropie, romm
  • Ferrari F355 Challenge deluxe. Required by f355.
  • Contents (3 entries):
    • epr-21862.ic27 -Japan -2.0 MB
    • epr-21863.ic27 -USA -2.0 MB
    • epr-21864.ic27 -Export -2.0 MB

hod2bios.zip optional in repo bios_zip

  • System: sega-naomi
  • Source: core/hw/naomi/naomi_roms.cpp:72-82, core/hw/naomi/naomi_roms.cpp:2003, core/hw/naomi/naomi_roms.cpp:2042, core/hw/naomi/naomi_roms.cpp:2081, core/hw/naomi/naomi_roms.cpp:2120
  • Platforms: lakka, recalbox, retroarch, retrodeck, retropie, romm
  • House of the Dead 2. Required by hotd2, hotd2o, hotd2e and hotd2p.
  • Contents (3 entries):
    • epr-21329.ic27 -Japan -2.0 MB
    • epr-21330.ic27 -USA -2.0 MB
    • epr-21331.ic27 -Export -2.0 MB

naomi2_boot.bin optional in repo

  • System: sega-naomi2
  • Size: min 2.0 MB
  • Aliases: naomi2_boot.bin.bin, naomi2_bios.bin, naomi2_bios.bin.bin
  • Validation: size
  • Source: core/hw/holly/sb_mem.cpp:35-36, core/hw/holly/sb_mem.cpp:269
  • Flat boot ROM for the NAOMI 2 platform.

naomi2.zip required in repo bios_zip

  • System: sega-naomi2
  • Source: core/hw/naomi/naomi_roms.cpp:166-172, core/hw/naomi/naomi_cart.cpp:646-657
  • Platforms: batocera, lakka, recalbox, retroarch, retrobat, retrodeck, retropie, romm
  • System BIOS archive. All 43 NAOMI 2 game entries name it and abort without it.
  • Contents (3 entries):
    • epr-23605c.ic27 -Japan -2.0 MB
    • epr-23607c.ic27 -USA -2.0 MB
    • epr-23608c.ic27 -Export -2.0 MB

awbios.zip required in repo bios_zip

  • System: sega-atomiswave
  • Source: core/hw/naomi/naomi_roms.cpp:38-45, core/hw/naomi/naomi_cart.cpp:194-208
  • Platforms: batocera, lakka, recalbox, retroarch, retrobat, retrodeck, retropie, romm
  • System BIOS archive. All 34 Atomiswave game entries name it and abort without it.
  • Contents (1 entries):
    • bios0.ic23 -128.0 KB

gamecontrollerdb.txt optional in repo game_data

  • Source: core/sdl/sdl.cpp:183-191
  • SDL controller mapping database, read from the data directory then the config directory. Not part of the release archive. SDL built-in mappings are used when absent.

Generated on 2026-08-23T16:12:06Z