Flycast is the emulator quietly running underneath a lot of other tools you may already know. When RetroArch loads a Dreamcast game through its “Flycast” core, or when a retro handheld ships with Sega arcade support out of the box, there is a strong chance flyinghead’s open-source project is doing the actual work. This guide covers the standalone version — the full app with its own settings menu, not the trimmed-down core bundled inside a bigger frontend — and walks through installing it, adding BIOS files correctly, and configuring it for Dreamcast, NAOMI, NAOMI 2, Atomiswave, and System SP emulation in 12 steps.
What Is Flycast?
Flycast is a free, open-source emulator for the Sega Dreamcast and Sega’s Dreamcast-derived arcade hardware: NAOMI, NAOMI 2, Atomiswave, and the lesser-known System SP arcade board. It is licensed under GPL-2.0, developed primarily by a contributor known as Flyinghead, and distributed across an unusually wide range of platforms for an emulation project: Windows, Linux, macOS, Android, iOS, Nintendo Switch (as homebrew), and Xbox One/Series consoles (also as homebrew). As of this writing, the project sits at 2,413 stars on GitHub, with 303 forks and 279 open issues, and it is still actively developed — the repository’s most recent code push landed within the past week.
The Sega Dreamcast was discontinued more than two decades ago, but its game library, and the arcade boards that shared its architecture, remain popular emulation targets because Sega built NAOMI — short for “New Arcade Operation Machine Idea” — directly on Dreamcast hardware, meaning one emulator core can reasonably cover console games and arcade cabinets at the same time. That shared heritage is why so many arcade-to-console ports from that era feel unusually close to their cabinet originals: Crazy Taxi and Virtua Fighter 3 both started life on NAOMI boards before reaching Dreamcast owners at home, and Flycast can run either version through the same codebase.
From nullDC to reicast to Flycast: A Brief History
Flycast did not start from scratch. The GitHub repository’s own description credits it as “derived from reicast,” and reicast was itself a fork of an earlier emulator called nullDC. That lineage matters for newcomers because it explains why the settings, BIOS file naming, and general behavior will look familiar to anyone who used reicast on Android years ago — the fork inherited (and then substantially rebuilt) reicast’s foundation rather than reinventing Dreamcast emulation from zero. The latest tagged release is v2.6, published January 2026, which added per-pixel transparency rendering on OpenGL ES for mobile, a match-code server for “battle cable” link-cable games such as F355 Challenge and Virtual-On Oratorio Tangram, integer scaling, and stability fixes for the DreamPicoPort controller adapter.
Flycast vs RetroArch, RetroDECK, EmuDeck, and Batocera
If you already run a multi-system emulation frontend, you might assume Flycast is redundant. It is not, and the distinction is worth understanding before you install anything. RetroArch bundles it as one of its libretro cores, but a libretro core is a stripped interface layer — you get Dreamcast/NAOMI emulation inside RetroArch’s menu system, not the project’s own dedicated configuration screens. EmuDeck does the same thing on Steam Deck: it installs that same core inside RetroArch as part of its automated setup, confirmed in EmuDeck’s own official documentation, rather than the standalone application covered here.
RetroDECK, meanwhile, doesn’t include it at all — it isn’t among the 24 components in RetroDECK’s official bundled emulator list, so if you want Dreamcast or NAOMI emulation on a RetroDECK install, you’re adding a separate Flatpak. Batocera does bundle the same libretro core across its 200+ supported systems, similar to EmuDeck’s approach. The standalone app covered in this guide is the only route to its full, native settings interface — direct access to every renderer, input, and per-system option without a frontend’s menu structure in the way. If your priority is a single button that “just works” across dozens of systems, a frontend like EmuDeck or RetroDECK is the better starting point. If you specifically want Dreamcast/NAOMI/Atomiswave emulation with full control over every setting, install the standalone app directly.
Quick Facts
| Detail | Value |
|---|---|
| Developer | Flyinghead (community project) |
| License | GPL-2.0 |
| GitHub stars | 2,413 |
| Latest version | v2.6 (January 2026) |
| Systems emulated | Dreamcast, NAOMI, NAOMI 2, Atomiswave, System SP |
| BIOS required? | Optional for Dreamcast (HLE by default); mandatory for arcade systems |
| Platforms | Windows, Linux, macOS, Android, iOS, Switch (homebrew), Xbox (homebrew) |
| Linux distribution | Flatpak via Flathub, 499,469 lifetime installs |
Prerequisites and What You’ll Need
Before starting, gather the following. None of it is unusual by emulation standards, but skipping a step here is the single biggest cause of a broken first launch.
- A 64-bit Windows 10/11, Linux, or macOS machine (or Android/iOS device) — Flycast has no 32-bit builds
- A GPU with Vulkan or OpenGL support; almost anything from the last decade qualifies
- Dreamcast BIOS files, only if you want maximum compatibility (optional — see Step 7)
- NAOMI, NAOMI 2, and/or Atomiswave BIOS files, only if you plan to run arcade titles (mandatory for those systems)
- Legally-obtained game images: GDI or CDI format for Dreamcast, MAME-derived ROM sets for NAOMI/Atomiswave
- A controller — Flycast works with anything Windows, Linux, or Android recognizes as a standard gamepad
| Requirement | Minimum |
|---|---|
| CPU | Any dual-core x86_64 or ARM64 CPU from the last 10 years |
| RAM | 2 GB free (4 GB recommended for arcade/NAOMI titles) |
| Storage | Under 100 MB for the app; games and BIOS files are separate |
| Graphics API | Vulkan (recommended) or OpenGL 3.0+ (fallback) |
| OS | Windows 10/11, most 64-bit Linux distros, macOS (Intel or Apple Silicon), Android 7+, iOS (sideload) |
Step 1: Confirm Your System Meets the Requirements
Flycast is a light emulator by modern standards — the Dreamcast and its arcade cousins are from 1998-2005, so raw horsepower is rarely the bottleneck. What actually determines whether you have a smooth experience is your graphics driver. Vulkan support gives you access to its best renderer, and while OpenGL remains a safe fallback, older or poorly-maintained OpenGL drivers are the most common source of visual glitches reported against this emulator. On Linux, run vulkaninfo from a terminal before installing anything; if it prints your GPU details without errors, you’re set. On Windows, most GPUs from the last eight years support Vulkan out of the box through their standard driver package — no separate install needed.
Steam Deck, Bazzite, and other SteamOS-derived handhelds already ship with working Vulkan drivers, so this step is effectively a non-issue on that hardware. If you’re on a desktop Linux distribution with an older or proprietary GPU driver, confirm Vulkan support before moving on — it will save you a troubleshooting detour later.
Step 2: Download Flycast for Your Platform
There is no single official website — the GitHub repository itself is the only source the developer maintains directly, and its homepage field is deliberately left blank. Search results for “flycast” surface a domain called flycast.org with a plausible-sounding tagline, but its own site metadata shows it is a generic, single-author content site unaffiliated with the actual project — not a phishing risk in any confirmed sense, but not the developer’s site either, and not a source to trust for download links or configuration advice. Get the real thing from one of the channels below.
| Platform | Install Method | Source |
|---|---|---|
| Windows | Portable ZIP, no installer | GitHub Releases |
| Linux | Flatpak | Flathub (org.flycast.Flycast) |
| Steam Deck / Bazzite | Flatpak (Desktop Mode) | Flathub, then add as non-Steam game |
| macOS | Homebrew cask | brew install --cask flycast |
| Android | Play Store or APK | Google Play / GitHub Releases |
| iOS | Sideload (unsigned build) | GitHub Releases |
| Switch | Homebrew (requires CFW) | GitHub Releases |
| Xbox (experimental) | Homebrew port, separate project | Flycast-X on GitHub |
Step 3: Install Flycast on Windows
The Windows build is a portable ZIP archive — there is no installer wizard, and that’s by design. Download the latest Windows build from the project’s GitHub Releases page, then extract it anywhere except the Program Files directory. This is the single most common Windows installation mistake: Program Files is protected by Windows’ UAC permissions, which silently blocks Flycast from auto-creating the data folder it needs for BIOS files, save states, and configuration on first launch. Extract to your Desktop, a dedicated Emulators folder on any drive, or anywhere else you have full write access.
Once extracted, run flycast.exe. On first launch, Flycast creates its own folder structure — data, mappings, and a few others — inside the same directory as the executable. If the app opens without a folder-permission error, installation is complete; the emulator itself has no further setup wizard beyond what’s covered in the steps below.
Step 4: Install Flycast on Linux via Flatpak
On desktop Linux, Flatpak through Flathub is the recommended path — it’s sandboxed, auto-updating, and works identically across distributions. Note that this specific Flatpak package carries Flathub’s “not verified” badge: Flathub’s own listing states plainly that it is “not verified by, affiliated with, or supported by” Flyinghead, the original developer. It’s still the same open-source code, community-packaged rather than developer-published, which is a normal and common arrangement for smaller emulation projects — just worth knowing before you see the badge and wonder if something’s wrong.
flatpak install flathub org.flycast.Flycast
flatpak run org.flycast.Flycast
The Flathub listing shows just under 500,000 lifetime installs at the time of writing, with roughly 10,000 new installs per month — modest next to mainstream emulators like RetroArch, but a healthy, steadily-growing user base for a two-console/three-arcade-board niche. AppImage and Snap builds also exist, but both are community-provided rather than maintained by Flyinghead directly, so Flatpak remains the most consistently up-to-date Linux distribution channel.
Step 5: Install Flycast on Steam Deck and Bazzite
Steam Deck and Bazzite are both Linux under the hood, so the Flatpak method from Step 4 works identically — switch to Desktop Mode first, open a terminal (or the Discover software center on Bazzite/KDE setups), and install via Flathub. After installing, the app won’t automatically appear in Gaming Mode; you need to add it manually as a non-Steam game. From Desktop Mode’s Steam client, choose Add a Game > Add a Non-Steam Game, locate Flycast in the list, and add it. Switch back to Gaming Mode and it will show up in your library like any other title.
This is worth doing even if you already use EmuDeck, because — as covered above — EmuDeck’s Flycast integration runs through RetroArch’s core, not this standalone app. Running both isn’t a conflict; they’re separate installations that don’t share configuration, so treat the standalone Flatpak as an alternative, not a duplicate, if you want native Flycast settings that EmuDeck’s RetroArch layer doesn’t expose. If you do stick with EmuDeck’s version instead, its default Deck-optimized control scheme maps STEAM+D-Pad Right to Insert Card for arcade titles and Fast Forward for Dreamcast games — worth knowing since that binding lives entirely inside EmuDeck’s RetroArch profile and won’t carry over if you switch to the standalone app later.
Step 6: Install Flycast on macOS and Android
On macOS, Homebrew is the simplest path for both Intel and Apple Silicon Macs:
brew install --cask flycast
The cask is listed directly on Homebrew’s own formulae page, and pulls the same v2.6 build available elsewhere. If you’d rather not use Homebrew, the GitHub Releases page also ships a macOS build directly.
On Android, the easiest route is the Google Play Store listing, which handles updates automatically. If you’d rather sideload, GitHub Releases publishes an APK for every tagged version — useful if you want a specific build or don’t want Play Store auto-updates changing your configuration mid-session. Either way, Android storage permissions need to be granted on first launch, or Flycast won’t be able to see your game files even after you’ve copied them to the device.
Step 7: Understand BIOS Requirements Before You Continue
This is the step where Flycast diverges sharply from a lot of other console emulators, and misunderstanding it is the source of most “why won’t my game boot” confusion. It ships with High-Level Emulation (HLE) enabled by default for Dreamcast, and only for Dreamcast. That means you can install it and start playing most Dreamcast games immediately, with zero BIOS files, because the emulator simulates the console’s boot ROM behavior in software rather than requiring a dump of the real chip.
NAOMI, NAOMI 2, Atomiswave, and System SP have no HLE mode at all. These are arcade boards, and Flycast requires a real, correctly-dumped BIOS for each one before any game on that system will boot — there is no shortcut. If you only care about Dreamcast games, you can skip straight to Step 10. If you want arcade support, Steps 8 and 9 are mandatory, not optional.
One more thing worth stating plainly before you go looking for files: BIOS dumps and copyrighted game ROMs are legally distinct from the emulator itself. Flycast’s code is open source and legal to download and run anywhere GPL-2.0 software is legal, which is everywhere. The BIOS chips and game data are Sega’s copyrighted property. The only legally uncontroversial way to obtain them is dumping them yourself from hardware you own — see the legal section near the end of this guide for the specifics.
Step 8: Add Dreamcast BIOS Files (Optional but Recommended)
Even though HLE lets most Dreamcast games run without any BIOS at all, a small number of titles behave better, or only work correctly, with the real BIOS installed. If you own a Dreamcast console, you can dump these files yourself using standard, widely-documented community tools designed for that purpose. Once you have them, place both files directly in Flycast’s data folder:
flycast/
└── data/
├── dc_boot.bin
└── dc_flash.bin
After copying files into place, it’s worth confirming the dump is intact rather than corrupted — a partial or damaged BIOS dump often fails silently instead of throwing a clear error. Run a checksum and compare it against known-good values documented on sites like Libretro’s Flycast documentation:
sha256sum dc_boot.bin dc_flash.bin
If the hashes don’t match published references, re-dump rather than continuing — a corrupted BIOS is a frequent, hard-to-diagnose cause of random crashes deep into a play session, not just a boot failure.
Step 9: Add NAOMI, NAOMI 2, and Atomiswave BIOS Files (Mandatory for Arcade)
Arcade emulation needs its own BIOS files, separate from the Dreamcast pair above, and — unlike Dreamcast — there is no way to skip this. Each file goes in the same data folder as your Dreamcast BIOS.
| File | System | Required? |
|---|---|---|
| dc_boot.bin, dc_flash.bin | Dreamcast | Optional (HLE default) |
| naomi.zip or naomi_boot.bin | NAOMI | Mandatory |
| naomi2.zip | NAOMI 2 | Mandatory |
| awbios.zip | Atomiswave | Mandatory |
| segasp.zip | System SP | Mandatory |
| hod2bios.zip, f355bios.zip, airlbios.zip | Game-specific deluxe/twin cabinets | Mandatory for those titles only |
NAOMI Romset Conversion with ClrMamePro
NAOMI games use a MAME-derived romset structure, which means a generic full MAME arcade set is not automatically Flycast-compatible out of the box. If Flycast reports a NAOMI romset as incomplete or misnamed even though you’re confident the files are legitimate, the fix is usually reprocessing the set through ClrMamePro against a DAT file matching the MAME version the dump was originally built for. This step trips up more people migrating from a MAME-based arcade setup than any other part of NAOMI configuration — if arcade games in your existing collection won’t launch, start here before assuming the dump itself is bad.
Step 10: Configure the Renderer and Graphics Settings
Flycast’s configuration file, emu.cfg, lives in the same data folder as your BIOS files, but you rarely need to edit it by hand — the in-app settings menu covers everything most users need. Open Settings and start with the renderer choice: Vulkan is recommended on any GPU that supports it, with noticeably better performance than the OpenGL fallback on modern hardware. OpenGL remains available for older systems or GPUs with incomplete Vulkan driver support.
A few settings worth adjusting from their defaults:
- Transparent Sorting: set to “Per Pixel” rather than “Per Triangle” for more accurate transparency rendering — a small performance cost that’s worth it on anything but very low-end hardware
- Internal Resolution: the Dreamcast’s native output is roughly 640×480; setting internal resolution to 2x or 3x native gives a sharp image without the diminishing returns of pushing much higher
- Anisotropic Filtering: up to 16x improves texture clarity at oblique angles with negligible performance impact on modern GPUs
- Integer Scaling: new in v2.6, useful specifically for 2D fighting and shoot-em-up titles where pixel-perfect scaling matters more than smoothing
Step 11: Set Up Controllers and Peripherals
Standard Xbox-layout controllers work with Flycast with zero configuration on Windows, Linux, and macOS — plug in and go. The interesting configuration happens in the Controls > Dreamcast Devices menu, which lets you assign what’s actually plugged into each of the Dreamcast’s two controller ports, since the original hardware supported swappable peripherals per port:
- VMU (memory card): assign to Port A or B for save data — required for games that don’t support Flycast’s own save state system for in-game saves
- Microphone: Port B specifically, required for Seaman and a handful of other titles that used the Dreamcast’s mic peripheral
- Light Gun: needed for House of the Dead 2 and Confidential Mission — maps to mouse input by default on desktop
- Twin Sticks: required for Virtual-On Oratorio Tangram’s dual-stick control scheme
- ASCII Mission Stick: a flight-stick peripheral supported for specific flight titles
Per-game control profiles are also supported through the in-game Quick Menu, so you don’t have to reconfigure global settings just because one title needs a light gun and the rest don’t.
Step 12: Add Your Game Library and Launch Your First Title
With BIOS files and settings in place, point Flycast at your game folder through the content browser — it scans for GDI and CDI disc images for Dreamcast, and MAME-format ROM zips for NAOMI/Atomiswave, listing everything it recognizes automatically. Double-click any entry to launch. First boot on a new title takes a moment longer than subsequent launches while Flycast builds its initial shader cache; this is normal and only happens once per game.
Verifying Your Installation Works
Before assuming something is broken, confirm the basics are actually in place. A quick way to sanity-check your BIOS folder from a terminal, on Linux or macOS:
ls -la ~/.var/app/org.flycast.Flycast/data/flycast/data/
# Expect to see dc_boot.bin and dc_flash.bin here if you added Dreamcast BIOS,
# plus naomi.zip / naomi2.zip / awbios.zip / segasp.zip for arcade support
On Windows, the equivalent check is a plain folder listing from Command Prompt or PowerShell, run from inside the extracted app directory:
dir data
# Expect dc_boot.bin, dc_flash.bin, and/or your arcade BIOS zips listed here.
# An empty or missing "data" folder usually means the app was extracted into
# a permission-restricted location — see the Program Files pitfall above.
A correctly working setup looks like this: Flycast launches to its content browser without an error dialog, a Dreamcast game boots to Sega’s swirl logo and then into the title screen within a few seconds, and the Settings menu shows your selected renderer (Vulkan or OpenGL) without falling back automatically to a software renderer. If a NAOMI or Atomiswave title instead shows a black screen with no error, that’s almost always the mandatory arcade BIOS missing or misnamed — revisit Step 9 before troubleshooting anything else.
Common Pitfalls When Setting Up Flycast
- Extracting the Windows build into Program Files. UAC permissions block Flycast from creating its data folder there, causing a confusing silent failure on first launch. Extract anywhere else.
- Assuming Dreamcast’s no-BIOS convenience extends to arcade systems. It doesn’t. NAOMI, NAOMI 2, Atomiswave, and System SP have no HLE mode and simply won’t boot without their real BIOS files.
- Downloading BIOS files from the first search result. Sites like flycast.org rank well for Flycast-related searches but aren’t affiliated with the project, and BIOS/ROM files hosted on random third-party sites carry both legal risk and, occasionally, actual malware risk. Dump your own from hardware you own.
- Using a mismatched NAOMI romset. A full MAME arcade collection isn’t automatically Flycast-ready — see the ClrMamePro note in Step 9 before assuming a “bad dump” error means the files are unusable.
- Forgetting that EmuDeck’s Flycast and standalone Flycast are different installs. They don’t share BIOS folders, save states, or settings, even on the same Steam Deck.
- Sticking with OpenGL on a GPU that supports Vulkan. The performance difference is real, especially on integrated graphics and handhelds.
- Not granting Android storage permissions on first launch. Flycast will open fine but simply won’t see any game files until permissions are granted manually in Android settings.
Advanced Configuration Tips
Once the basic setup is solid, a few deeper features are worth exploring. Flycast’s v2.6 release added a match-code server specifically for Dreamcast “battle cable” link-cable games — F355 Challenge and Virtual-On Oratorio Tangram both support online play through this system now, letting two Flycast instances connect the way two physical Dreamcasts once did over a link cable. It’s a niche feature, but a genuinely impressive one for anyone who remembers those games needing a second console and a real cable to experience multiplayer.
Worth watching if you’re interested in where the project’s underlying architecture is headed: a separate community effort called Flycast-X, built by Team-Resurgent, is porting that same codebase to run natively on the original Xbox console, using the RXDK homebrew development kit. As reported in July 2026, the project already has Xbox-specific boot code, Direct3D 8 rendering, audio, input, and a file browser implemented, running on hardware from 2001 — a 733 MHz Pentium III-class CPU and an Nvidia NV2A GPU. It’s explicitly early-stage, with the developers themselves cautioning that performance is limited and compatibility is uncertain, but it’s a clear sign the underlying codebase is being treated as a foundation for new ports well beyond its original platform list.
For power users comparing setups: if you frequently switch between many different emulated systems, it may be worth keeping both a standalone Flycast install (for the full native settings this guide covers) and a frontend like Batocera or EmuDeck for everything else, rather than trying to force one tool to do both jobs well.
Building From Source (Advanced)
Because the project is GPL-2.0 and hosted entirely on GitHub, compiling it yourself is a realistic option if you want a specific in-development fix that hasn’t reached a tagged release yet, or if you’re on a Linux distribution where the Flatpak sandbox is getting in the way of a particular workflow. The official README documents a straightforward Linux build process requiring a standard C/C++ toolchain, CMake, make, and development headers for libcurl, libudev, and SDL2:
git clone --recursive https://github.com/flyinghead/flycast.git
cd flycast
mkdir build && cd build
cmake ..
make
The --recursive flag matters — this project pulls in several submodules, and a plain clone without it will fail at the CMake configuration step with missing-dependency errors that look worse than the actual fix (re-cloning with --recursive, or running git submodule update --init --recursive after the fact). A source build also gives you the most current bug fixes between tagged releases, at the cost of losing the one-command update convenience of Flatpak or Homebrew — a reasonable trade for advanced users chasing a specific fix, not something most readers following Steps 1-12 need to bother with.
Troubleshooting Common Flycast Issues
Flycast won’t launch or crashes immediately on Windows. Almost always the Program Files permission issue from Step 3. Move the extracted folder somewhere with full write access.
Black screen after the Dreamcast boot logo. Try switching the renderer from Vulkan to OpenGL (or vice versa) in Settings — this is the most common fix for a rendering-layer driver mismatch.
“BIOS not found” message on a Dreamcast game. Usually harmless — HLE mode is active and the game will likely still run. It only becomes a real problem if the specific game you’re loading is one of the small number that genuinely require the real dc_boot.bin/dc_flash.bin pair. If a title boots to a black screen right after this message instead of continuing into HLE mode, that’s the signal it’s one of the exceptions, and Step 8 is worth revisiting.
NAOMI or Atomiswave game won’t boot at all. Check for the mandatory arcade BIOS file first (Step 9); this is the single most common arcade-specific failure and has nothing to do with the game file itself in most cases.
Controller isn’t detected in-game. Confirm it’s recognized at the OS level first (Windows Game Controllers panel, or jstest on Linux), then check the Dreamcast Devices menu to make sure a controller is actually assigned to the port the game expects.
No sound, or audio stutters and pops. Try adjusting the audio buffer size in Settings — a larger buffer trades a small amount of latency for stability, which is usually the right trade for anything other than rhythm games. On Linux specifically, confirm the correct audio backend is selected (PulseAudio vs PipeWire vs ALSA); a mismatch between what the app expects and what the distribution actually runs is a common, easily-missed cause of crackling audio that has nothing to do with buffer size at all.
Flycast doesn’t appear in Steam Deck Gaming Mode after installing. The Flatpak install alone isn’t enough — you must add it manually as a non-Steam game from Desktop Mode, as covered in Step 5.
Save states work but VMU in-game saves don’t. Confirm a VMU is actually assigned to a controller port in the Dreamcast Devices menu — without one assigned, there’s nowhere for the game to write save data even though the emulator’s own save states will still function. The distinction matters for compatibility, not just convenience: a real VMU only holds 128KB of flash memory (200 usable blocks at 512 bytes each), so some older Dreamcast games were written to actively check for a VMU and behave differently — or refuse to save at all — if one isn’t detected, exactly the same as they would on original hardware.
Flatpak version can’t see ROMs stored outside the home folder. This is Flatpak’s sandboxing working as intended, not a bug. Either move your ROM folder under your home directory, or grant explicit filesystem access with flatpak override --user org.flycast.Flycast --filesystem=/path/to/roms.
Light gun games are unplayable. House of the Dead 2 and Confidential Mission need the Light Gun peripheral explicitly assigned in Dreamcast Devices — by default the emulator doesn’t guess this from the game alone, and mouse aiming won’t feel right without it configured. Sensitivity also tends to feel far too fast or too slow compared to a real light gun cabinet on first try; it’s worth spending a minute in the per-game control profile adjusting cursor speed before assuming the peripheral setup itself is wrong.
Is Flycast Legal? BIOS Dumping and Copyright
Flycast itself, as GPL-2.0 licensed software, is unambiguously legal to download, run, and modify anywhere open-source licensing is recognized. The more common question is about BIOS files and games. In the United States, the relevant precedent is Sega Enterprises Ltd. v. Accolade, Inc., 977 F.2d 1510 (9th Cir. 1992) — a case that, despite predating the Dreamcast itself, is still the foundational ruling on reverse-engineering console hardware for interoperability. The Ninth Circuit held that Accolade’s reverse engineering of Sega Genesis lockout code, done specifically to make compatible games, was protected fair use. That precedent, summarized directly by the U.S. Copyright Office itself, is the legal foundation the emulation community generally relies on for the legality of writing emulator software.
Writing an emulator and distributing copyrighted BIOS files or games are legally separate questions, though. The Digital Millennium Copyright Act’s Section 1201 anti-circumvention provisions are reviewed by the U.S. Copyright Office every three years, and the most recent 2024 triennial review left the practical situation largely unchanged for individual users: existing exemptions permit jailbreaking and format-shifting for personal preservation of games you legitimately own, particularly ones with discontinued server support, but the Copyright Office explicitly declined to expand exemptions to cover remote sharing of preserved games by libraries and archives, a proposal the Video Game History Foundation had pushed for. The Electronic Frontier Foundation’s analysis of the underlying exemption framework is a useful primer if you want the fuller legal picture.
The practical takeaway for a Flycast install: dumping your own Dreamcast, NAOMI, or Atomiswave BIOS from hardware you personally own, for your own use, sits on solid legal ground under both the Sega v. Accolade interoperability logic and existing DMCA preservation exemptions. Downloading someone else’s BIOS dump or ROM files from a third-party site, regardless of how old or commercially unavailable the original game is, remains copyright infringement — the console being decades out of production doesn’t change that. This isn’t legal advice, but it is the consistent, mainstream reading of U.S. copyright law that the emulation development community itself operates under.
Frequently Asked Questions
Does Flycast require a BIOS file? Only for arcade systems. Dreamcast games run through High-Level Emulation by default, with no BIOS required for most titles. NAOMI, NAOMI 2, Atomiswave, and System SP all require their real BIOS files with no exceptions.
Is Flycast free? Yes. It’s open-source under GPL-2.0 and free on every platform it supports, including the Android build available through Google Play.
What’s the difference between standalone Flycast and the RetroArch core? Same underlying emulation code, different interface. The standalone app gives you its own full settings menu; the RetroArch core runs inside RetroArch’s menu system with a more limited, unified options layout shared across all libretro cores.
Can Flycast run NAOMI arcade games? Yes, along with NAOMI 2 and Atomiswave, provided you supply the correct mandatory BIOS file for each system and a properly-formatted romset — see Steps 7 through 9.
Does Flycast work on Steam Deck? Yes, either as a standalone Flatpak added manually as a non-Steam game, or indirectly through EmuDeck’s RetroArch-based Flycast core — the two are separate installs with separate settings.
Is Flycast available on Steam? No. There is no official Steam listing for it. A Steam Community discussion thread sometimes surfaces in search results, but it’s a thread on the Steam Deck hardware product page, not a real listing for the emulator.
Why won’t Flycast detect my BIOS files? Check the exact filename against the table in Step 9 first — Flycast matches by exact filename, and a renamed or differently-cased file won’t be recognized. Also confirm the files are in the correct data folder for your platform, which differs between the Windows portable build and the Flatpak version.
What is Flycast-X? A separate, early-stage community project porting the same architecture to run on the original Xbox console, using the RXDK homebrew toolkit. It isn’t part of the main releases covered in this guide and shouldn’t be confused with official Xbox One/Series homebrew support, which uses the standard codebase.



