Flycast: Difference between revisions

From Emulation General Wiki
Jump to navigation Jump to search
Ilyagredasov (talk | contribs)
Tags: Mobile edit Mobile web edit
Ilyagredasov (talk | contribs)
Tags: Mobile edit Mobile web edit Advanced mobile edit
 
(16 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{lowercase title}}
{{lowercase title}}
{{Infobox emulator
{{Infobox emulator
|title = Flycast
|title = flycast
|logo = Flycast.png
|logo = Flycast.png
|logowidth = 130
|logowidth = 130
Line 7: Line 7:
|active = Yes
|active = Yes
|platform = [[Emulators on Windows|Windows]]<br/>[[Emulators on Linux|Linux]]<br/>[[Emulators on macOS|macOS]]<br/>[[Emulators on Raspberry Pi|Raspberry Pi]]<br/>[[Emulators on Android|Android]]<br/>[[Emulators on iOS|iOS]] <small>(officially discontinued, can be compiled by user)</small><br/>[[Emulators on Switch|Nintendo Switch]]<br/>[[Emulators on Xbox One|Xbox One]]<br/>[[Xbox Series X and Series S]]<br/>[[Emulators on PS Vita|PS Vita]]<br/>[[Emulators on webOS|webOS]]
|platform = [[Emulators on Windows|Windows]]<br/>[[Emulators on Linux|Linux]]<br/>[[Emulators on macOS|macOS]]<br/>[[Emulators on Raspberry Pi|Raspberry Pi]]<br/>[[Emulators on Android|Android]]<br/>[[Emulators on iOS|iOS]] <small>(officially discontinued, can be compiled by user)</small><br/>[[Emulators on Switch|Nintendo Switch]]<br/>[[Emulators on Xbox One|Xbox One]]<br/>[[Xbox Series X and Series S]]<br/>[[Emulators on PS Vita|PS Vita]]<br/>[[Emulators on webOS|webOS]]
|target = [[Sega Dreamcast emulators|Dreamcast]]<small>(incl. [[Sega_Dreamcast_emulators#Hardware_features_and_peripherals|Windows CE]])</small><br/>[[Sega_NAOMI_and_variants|NAOMI<br/>NAOMI 2<br/>GD-Rom models<br/>Atomiswave<br/>System SP]]
|target = [[Sega Dreamcast emulators|Dreamcast]] <small>(incl. [[Sega_Dreamcast_emulators#Hardware_features_and_peripherals|Windows CE]])</small><br/>[[Sega_NAOMI_and_variants|NAOMI<br/>NAOMI 2<br/>GD-ROM models<br/>Atomiswave<br/>System SP]]
|developer = flyinghead
|developer = flyinghead
|compatibility = [https://flyinghead.github.io/flycast-builds/test-results.html?hash=464defe compatibility list]
|compatibility =  
|website = [https://flyinghead.github.io/flycast-builds Site]
|website = [https://flyinghead.github.io/flycast-builds Site]
|prog-lang = {{Proglang|C++}}, {{Proglang|C}}
|prog-lang = {{Proglang|C++}}, {{Proglang|C}}
|source = [https://github.com/flyinghead/flycast GitHub]
|source = [https://github.com/flyinghead/flycast GitHub]
|issuetracker = [https://github.com/flyinghead/flycast/issues GitHub]
|support = [https://www.paypal.com/paypalme/FlycastEmu PayPal]<br/>[https://buymeacoffee.com/hhwtpernwq Buy Me A Coffee]
|support = [https://www.paypal.com/paypalme/FlycastEmu PayPal]<br/>[https://buymeacoffee.com/hhwtpernwq Buy Me A Coffee]
|license = {{license|GPLv2}}
|license = {{license|GPLv2}}
}}
}}


'''Flycast''' is a free and open-source [[Sega Dreamcast emulators|Dreamcast emulator]] currently available for [[Emulators on Windows|Windows]], Linux, [[Emulators on macOS|macOS]], [[Emulators on Android|Android]] and [[Emulators on Switch|Nintendo Switch]]. Also in the works is the [https://github.com/flyinghead/flycast/pull/1440 PS Vita release]. Flycast was previously available for [[Emulators on iOS|iOS]] but the developer (flyinghead) dropped its support and removed the builds from the builds' repository, [https://www.androidauthority.com/flycast-dreamcast-emulator-ios-pulled-3565019/ citing persistent abusive behaviour (including death threats) towards him by an iOS user from several IP addresses]. The last version released for iOS [https://drive.google.com/file/d/1UKucFA0JX3zfyR5EsrnoYdZNoOSa_Un-/view?usp=drivesdk has been archived] (the IPA is [https://drive.google.com/file/d/1WdXRg8qbUuWbKuZBsB4ghaVMxhNRSJ_T/view d9ec0cb 2025-06-01T09:02:57.000Z]). A tech-savvy user nevertheless [[#iOS compilation|may compile]] future versions' iOS builds themselves since the code is still there, it's just that the automatic build builder won't do it automatically (or alternatively use [[Manic EMU]] since its Dreamcast core is a port of Flycast).
'''Flycast''' is a free and open-source [[Sega Dreamcast emulators|Dreamcast emulator]] currently available for [[Emulators on Windows|Windows]], Linux, [[Emulators on macOS|macOS]], [[Emulators on Android|Android]], and [[Emulators on Switch|Nintendo Switch]]. Also in the works is the [https://github.com/flyinghead/flycast/pull/1440 PS Vita release]. Flycast was previously available for [[Emulators on iOS|iOS]] but the developer (flyinghead) dropped its support and removed the builds from the builds' repository, [https://www.androidauthority.com/flycast-dreamcast-emulator-ios-pulled-3565019/ citing persistent abusive behaviour (including death threats) towards him by an iOS user from several IP addresses]. The last version released for iOS [https://drive.google.com/file/d/1UKucFA0JX3zfyR5EsrnoYdZNoOSa_Un-/view?usp=drivesdk has been archived] (the IPA is [https://drive.google.com/file/d/1WdXRg8qbUuWbKuZBsB4ghaVMxhNRSJ_T/view d9ec0cb 2025-06-01T09:02:57.000Z]). A tech-savvy user nevertheless [[#iOS compilation|may compile]] future versions' iOS builds themselves since the code is still there, it's just that the automatic build builder won't do it automatically (or alternatively use [[Manic EMU]] since its Dreamcast core is a port of Flycast).


Similarly, an advanced user can compile flycast builds for [[#Windows on ARM compilation|Windows on ARM]] and [[#Raspberry Pi compilation|Raspberry Pi]] since the official build builder doesn't offer official builds for these platforms, at least for now.
Similarly, an advanced user can compile flycast builds for [[#Windows on ARM compilation|Windows on ARM]] and [[#Raspberry Pi compilation|Raspberry Pi]] since the official build builder doesn't offer official builds for these platforms, at least for now.
Line 26: Line 27:
{| cellpadding="4"
{| cellpadding="4"
|-
|-
|align=center|{{Icon|Win|Mac|APK|Switch}} {{Icon|XB1|SXS}}
|align=center|{{Icon|Win|Mac|APK|Switch|XB1|SXS}}
|'''[https://flyinghead.github.io/flycast-builds CI Builds]'''<br>
|'''[https://flyinghead.github.io/flycast-builds CI Builds]'''<br>
|-
|-
Line 33: Line 34:
|align=center|{{Icon|Linux-big}}
|align=center|{{Icon|Linux-big}}
|'''[https://flathub.org/apps/details/org.flycast.Flycast Flatpak nightly binary]<br/><small>via [https://flathub.org Flathub]</small>'''
|'''[https://flathub.org/apps/details/org.flycast.Flycast Flatpak nightly binary]<br/><small>via [https://flathub.org Flathub]</small>'''
|-
|colspan=2|<hr/>
|-
|align=center|{{Icon|Web}}
|[https://github.com/nasomers/flycast-wasm Unofficial core] for [[EmulatorJS]]
|-
|align=center|{{Icon|FreeBSD}}
|[https://www.freshports.org/emulators/flycast/ Unofficial port] for [[FreeBSD]]
|-
|align=center|{{Icon|PSVita}}
|[https://www.gamebrew.org/wiki/Flycast_Vita Unofficial Vita port]<br/><small>To be obsoleted by the official Vita port</small>
|-
|align=center|{{Icon|Xbox}}
|[https://github.com/Team-Resurgent/Flycast-X/ Unofficial Xbox port]
|}
|}


Line 40: Line 55:
*Emulating standard Dreamcast controllers, Keyboard, Mouse, Light-Gun (with your mouse), Twin Sticks, and even the ASCII Mission Stick
*Emulating standard Dreamcast controllers, Keyboard, Mouse, Light-Gun (with your mouse), Twin Sticks, and even the ASCII Mission Stick
*Emulating two expansion sockets per controller (VMU, Purupuru/Rumble Pack, or Microphone)
*Emulating two expansion sockets per controller (VMU, Purupuru/Rumble Pack, or Microphone)
*[[DCNet]]
*Connectivity to [[DreamPotato]] VMU emulator
*Connectivity to [[DreamPotato]] VMU emulator
*Widescreen (Rendering outside of screen)
*Widescreen (Rendering outside of screen)
Line 63: Line 79:
==Libretro core==
==Libretro core==
Two reicast cores on [[libretro]] called '''reicast OIT''' and '''reicast regular''' were introduced [https://www.libretro.com/index.php/introducing-reicast-oit-libretro-core-updated-reicast-regular-core/ in June 2018] that replace the original core. These cores backport changes from [https://github.com/flyinghead/reicast-emulator flyinghead's fork] that rework the rendering system. The regular core is compliant with OpenGL 3 and GLSL 1.30 in order to support mobile devices and mid-tier PCs. The OIT core supports a graphics feature of the Dreamcast called Order-Independent Transparency that can only be properly emulated using OpenGL 4.3 and later, so it's only available for Windows and Linux at the moment.
Two reicast cores on [[libretro]] called '''reicast OIT''' and '''reicast regular''' were introduced [https://www.libretro.com/index.php/introducing-reicast-oit-libretro-core-updated-reicast-regular-core/ in June 2018] that replace the original core. These cores backport changes from [https://github.com/flyinghead/reicast-emulator flyinghead's fork] that rework the rendering system. The regular core is compliant with OpenGL 3 and GLSL 1.30 in order to support mobile devices and mid-tier PCs. The OIT core supports a graphics feature of the Dreamcast called Order-Independent Transparency that can only be properly emulated using OpenGL 4.3 and later, so it's only available for Windows and Linux at the moment.
The two reicast cores have been merged in one '''reicast libretro''' core [https://www.libretro.com/index.php/reicast-libretro-and-reicast-oit-libretro-merged-into-one-what-you-need-to-know/ in October 2018]. In 2019 the core was first renamed to '''Beetle DC''' and a short while later '''Flycast''', for licensing reasons.
The two reicast cores have been merged in one '''reicast libretro''' core [https://www.libretro.com/index.php/reicast-libretro-and-reicast-oit-libretro-merged-into-one-what-you-need-to-know/ in October 2018]. In 2019, the core was first renamed to '''Beetle DC''' and a short while later '''Flycast''', for licensing reasons.


===Availability of versions===
===Availability of versions===
Line 102: Line 118:


<code>sudo apt install git libao-dev libasound2-dev libevdev-dev libgl1-mesa-dev liblua5.3-dev libminiupnpc-dev libpulse-dev libsdl2-dev libudev-dev libzip-dev cmake libcurl4-openssl-dev libaudio-dev libjack-dev libsndio-dev libsamplerate0-dev libx11-dev libxext-dev libxrandr-dev libxcursor-dev libxfixes-dev libxi-dev libxss-dev libxkbcommon-dev libdrm-dev libgbm-dev libgles2-mesa-dev libegl1-mesa-dev libdbus-1-dev libibus-1.0-dev libudev-dev fcitx-libs-dev</code>
<code>sudo apt install git libao-dev libasound2-dev libevdev-dev libgl1-mesa-dev liblua5.3-dev libminiupnpc-dev libpulse-dev libsdl2-dev libudev-dev libzip-dev cmake libcurl4-openssl-dev libaudio-dev libjack-dev libsndio-dev libsamplerate0-dev libx11-dev libxext-dev libxrandr-dev libxcursor-dev libxfixes-dev libxi-dev libxss-dev libxkbcommon-dev libdrm-dev libgbm-dev libgles2-mesa-dev libegl1-mesa-dev libdbus-1-dev libibus-1.0-dev libudev-dev fcitx-libs-dev</code>
Note: The code above [https://github.com/flyinghead/flycast/issues/1780#issuecomment-2552000355 has been provided by flyinghead] himself but it may be obsolete, relevant external dependencies should be tracked [https://github.com/flyinghead/flycast/blob/master/CMakeLists.txt here].


Second, clone and build:
Second, clone and build:
Line 118: Line 136:
cd flycast</code>
cd flycast</code>


Install libraries: <code>brew install cmake libzip libpng freetype sdl2</code>
Install relevant libraries: <code>brew install cmake</code> followed by list of relevant libraries (sdl2, libzip, etc.).


Navigate to <code>cd platform/ios</code> and configure <code>cmake -B build -G Xcode</code>
Navigate to <code>cd platform/ios</code> and configure <code>cmake -B build -G Xcode</code>
Line 148: Line 166:
[[Category:Xbox Series X/S emulation software]]
[[Category:Xbox Series X/S emulation software]]
[[Category:Forks]]
[[Category:Forks]]
[[Category:Custom assets]]
[[Category:Active emulation software]]
[[Category:Active emulation software]]

Latest revision as of 10:39, 1 July 2026

flycast
Developer(s) flyinghead
Latest version 2.7 [+]
Active Yes
Platform(s) Windows
Linux
macOS
Raspberry Pi
Android
iOS (officially discontinued, can be compiled by user)
Nintendo Switch
Xbox One
Xbox Series X and Series S
PS Vita
webOS
Emulates Dreamcast (incl. Windows CE)
NAOMI
NAOMI 2
GD-ROM models
Atomiswave
System SP
Website Site
Support ($) PayPal
Buy Me A Coffee
Programmed in C++, C
License GPLv2
Source code GitHub
Issue tracker GitHub

Flycast is a free and open-source Dreamcast emulator currently available for Windows, Linux, macOS, Android, and Nintendo Switch. Also in the works is the PS Vita release. Flycast was previously available for iOS but the developer (flyinghead) dropped its support and removed the builds from the builds' repository, citing persistent abusive behaviour (including death threats) towards him by an iOS user from several IP addresses. The last version released for iOS has been archived (the IPA is d9ec0cb 2025-06-01T09:02:57.000Z). A tech-savvy user nevertheless may compile future versions' iOS builds themselves since the code is still there, it's just that the automatic build builder won't do it automatically (or alternatively use Manic EMU since its Dreamcast core is a port of Flycast).

Similarly, an advanced user can compile flycast builds for Windows on ARM and Raspberry Pi since the official build builder doesn't offer official builds for these platforms, at least for now.

It's a fork of reicast - another Dreamcast emulator for Windows, Linux and Android. It has a work-in-progress wiki available here, complete with guides and information about various features.

Downloads

[edit | edit source]
Windows macOS Android Switch Xbox One Xbox Series X/S CI Builds

Linux Flatpak nightly binary
via Flathub

Web Unofficial core for EmulatorJS
FreeBSD Unofficial port for FreeBSD
PlayStation Vita Unofficial Vita port
To be obsoleted by the official Vita port
Xbox Unofficial Xbox port

Overview

[edit | edit source]

Flycast requires a GPU that supports OpenGL 3.0 or OpenGL ES 2.0. A Dreamcast BIOS file is optional, but NAOMI, NAOMI 2 and Atomiswave BIOS files are required. It has support for almost all Dreamcast (incl. Windows CE), NAOMI, NAOMI 2, NAOMI/NAOMI2 GD-ROM, Sega System SP, Atomiswave games. It also has support for the following features:

  • Emulating standard Dreamcast controllers, Keyboard, Mouse, Light-Gun (with your mouse), Twin Sticks, and even the ASCII Mission Stick
  • Emulating two expansion sockets per controller (VMU, Purupuru/Rumble Pack, or Microphone)
  • DCNet
  • Connectivity to DreamPotato VMU emulator
  • Widescreen (Rendering outside of screen)
  • Resolution and Texture Upscaling
  • Frame Skipping
  • Dump textures and load custom textures
  • Support for HLE BIOS (note that it's recommended to use a real BIOS)
  • High compatibility and high performance
  • Widescreen Game Hack (Auto-applying codes/patches to certain games to do Widescreen instead of using the hack)
  • Compatible with NAOMI games that use analog sticks (Monkey Ball, Gun Survivor 2) and trackball (Outtrigger)
  • VMU Support for compatible NAOMI games (Street Fighter Zero 3 Upper, Virtual-On, F355 Twin and 2, etc)
  • flycast's NAOMI arcade Compatibility list
  • SH4 under/overclock option
  • 32 MB RAM option
  • Emulation of Printers (F355 Deluxe variants, Touch de Uno)
  • Card emulation (VF4, Initial D, Club Kart 2001, Mushiking)

Netplay

[edit | edit source]
  • Networked Dreamcast & NAOMI games are supported natively with Dreamcast Live configured by default for supported games.
  • Local multiplayer netplay support available in the Flycast Dojo fork. Peer-to-peer, delay-based and rollback netcode with spectating available. 2 Players only. Featured as a part of Fightcade.
  • For Mobile Suit Gundam: Federation vs. Zeon & DX, a custom fork of Flycast and private game server is maintained here.

Libretro core

[edit | edit source]

Two reicast cores on libretro called reicast OIT and reicast regular were introduced in June 2018 that replace the original core. These cores backport changes from flyinghead's fork that rework the rendering system. The regular core is compliant with OpenGL 3 and GLSL 1.30 in order to support mobile devices and mid-tier PCs. The OIT core supports a graphics feature of the Dreamcast called Order-Independent Transparency that can only be properly emulated using OpenGL 4.3 and later, so it's only available for Windows and Linux at the moment. The two reicast cores have been merged in one reicast libretro core in October 2018. In 2019, the core was first renamed to Beetle DC and a short while later Flycast, for licensing reasons.

Availability of versions

[edit | edit source]
  • Windows, macOS (Intel and ARM) and Linux (64-bit).
  • Mobile devices (Android and iOS).
  • Nintendo Switch.
  • Xbox One, Xbox Series X and S

Supported GPU features

[edit | edit source]
  • Tile clipping support
  • Fogging support
  • Volume modifier shadow support
  • Multipass rendering (enabled by default for non-OIT)
  • Render to texture buffer
  • Log 2 depth buffer
  • Order independent transparency (OIT only)
  • Two-volume mode support (OIT only)
  • Accumulation Pixel Buffer Size core option (OIT only. Can be set to 512MB, 1GB or 2GB, depending on how much VRAM your video card has. May help with correct output at higher resolutions.)
  • 64-bit dynarec (Fixes Shenmue 1/2, Marvel vs. Capcom 2 and Heavy Metal Geomatrix)
  • Flat shading and bump-mapping
  • Trilinear filtering ( Video)
  • Improved palette/YUV texture quality (Converts to 32-bit colors instead of RGB565; i.e. lossless quality of background textures in Alone in the Dark: The New Nightmare and is equal to DEmul and redream.)
  • Display VMU screens in-game (Positioning, opacity levels and sizing available. Can also show all 4 attached VMU screens at once.)
  • Extra Depth Scaling (Fixes graphics in Samurai Shodown VI (NAOMI).)

Misc features and enhancements

[edit | edit source]
Main article: Dreamcast emulators#Enhancements

Raspberry Pi compilation

[edit | edit source]

Raspberry Pi uses 16KB memory pages instead of the usual 4KB on most Linux platforms, so it needs to be recompiled locally. First, install the required packages:

sudo apt install git libao-dev libasound2-dev libevdev-dev libgl1-mesa-dev liblua5.3-dev libminiupnpc-dev libpulse-dev libsdl2-dev libudev-dev libzip-dev cmake libcurl4-openssl-dev libaudio-dev libjack-dev libsndio-dev libsamplerate0-dev libx11-dev libxext-dev libxrandr-dev libxcursor-dev libxfixes-dev libxi-dev libxss-dev libxkbcommon-dev libdrm-dev libgbm-dev libgles2-mesa-dev libegl1-mesa-dev libdbus-1-dev libibus-1.0-dev libudev-dev fcitx-libs-dev

Note: The code above has been provided by flyinghead himself but it may be obsolete, relevant external dependencies should be tracked here.

Second, clone and build:

git clone --recursive https://github.com/flyinghead/flycast.git cd flycast cmake -B build -DCMAKE_BUILD_TYPE=Release cmake --build build --config Release

Windows on ARM compilation

[edit | edit source]

git clone --recursive https://github.com/flyinghead/flycast.git cd flycast cmake -B build -DCMAKE_BUILD_TYPE=Release -A ARM64 cmake --build build --config Release

iOS compilation

[edit | edit source]

In terminal, clone git clone https://github.com/flyinghead/flycast.git cd flycast

Install relevant libraries: brew install cmake followed by list of relevant libraries (sdl2, libzip, etc.).

Navigate to cd platform/ios and configure cmake -B build -G Xcode

All the libraries must be installed in order to avoid a compilation failure.

Open flycast.xcodeproj inside the build folder. In the top bar of Xcode, select "flycast" as the scheme next to the run button, then select your connected iOS device or "Any iOS Device" as the build target, then click Product > Build or press Command + B to build it.

Don't forget about signing the build/running it unsigned (instructions are easy to find online).

[edit | edit source]