Flycast: Difference between revisions

Ilyagredasov (talk | contribs)
Tags: Mobile edit Mobile web edit
Ilyagredasov (talk | contribs)
Tags: Mobile edit Mobile web edit Advanced mobile edit
 
(24 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 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). It is a fork of [[reicast]] - another Dreamcast emulator for Windows, Linux and Android. It has a work-in-progress wiki available [https://github.com/TheArcadeStriker/flycast-wiki/wiki here], complete with guides and information about various features.
'''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.
 
It's a fork of [[reicast]] - another Dreamcast emulator for Windows, Linux and Android. It has a work-in-progress wiki available [https://github.com/TheArcadeStriker/flycast-wiki/wiki here], complete with guides and information about various features.


==Downloads==
==Downloads==
{| 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 29: 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 36: 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 45: Line 65:
*Widescreen Game Hack (Auto-applying codes/patches to certain games to do Widescreen instead of using the hack)
*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)
*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,F355twin and 2, etc)
*VMU Support for compatible NAOMI games (Street Fighter Zero 3 Upper, Virtual-On, F355 Twin and 2, etc)
*[https://github.com/libretro/flycast/issues/136 flycast's NAOMI arcade Compatibility list]
*[https://github.com/libretro/flycast/issues/136 flycast's NAOMI arcade Compatibility list]
*SH4 under/overclock option
*SH4 under/overclock option
Line 59: 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 98: 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 105: Line 127:
cmake -B build -DCMAKE_BUILD_TYPE=Release  
cmake -B build -DCMAKE_BUILD_TYPE=Release  
cmake --build build --config Release</code>
cmake --build build --config Release</code>
==Windows on ARM compilation==
<code>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</code>
==iOS compilation==
In terminal, clone <code>git clone https://github.com/flyinghead/flycast.git
cd flycast</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>
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).


==External links==
==External links==
Line 126: 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]]