|Want to be an editor? Request an account by joining the Mizuumi Discord and follow the instructions in the welcome message.|
UPDATE: Flycast integration with Fightcade 2 is now complete. Using Fightcade 2 may be easier for you than following this guide.
Flycast's GGPO networking integration allows for zero-delay online play. It is currently in an "alpha" quality so bear in mind there are bugs, missing features and many updates. Still, if you'd like to play here's a guide on how to do so. Once testing and integration is complete, this is the version of Flycast that will be included with Fightcade.
If you find this kind of work valuable consider tipping Flyinghead for his work on the Flycast project. Please try to troubleshoot as much as you can and hit up the Flycast Discord if you are still having trouble.
The basic process
This is the basic process of using Flycast's GGPO networking, bearing in mind there are many optimizations which will be described below.
- Download the latest version of Flycast Dojo GGPO test release.
- Place your relevant BIOS files (
awbios.zip) and ROMs in the included
ROMs/folder. Valid romset info may be found here.
- Bind your controller. Make sure your controller choice is set to Port A.
- If your game does not have a save state, load or create one. Flycast Dojo may have a default for your game of choice already.
- In the Dojo settings tab, make sure Netplay Method is set to GGPO (experimental). Also make sure Enable Internet Matchmaking is selected for Match Codes.
- If you are "hosting", select the HOST in the drop down on the main menu and pick your game. This will generate a Match Code to send to your opponent.
- If you are "joining", select the JOIN in the drop down on the main menu and pick your game. You will be asked to enter a Match Code provided to you by the host and click "Start Session".
- Both players will be asked to optionally set a fixed input delay to keep gameplay consistent over distant connections (>100ms). You may set from 0 to 20 frames with the Delay slider. It is recommended that both players have the same delay value. You may also press Detect Delay to see the detected ping and receive a suggested delay value.
- Click Start Session once again to connect to your opponent and begin gameplay.
If Match Codes do not work, you may connect to your opponent with a public IPv4 address, or through a virtual LAN such as Radmin-VPN or ZeroTier. Just select Direct IP under Connection Method in the Dojo tab and it will ask for an IP Address for both players to connect to each other instead.
First you should check if Dojo has a save state for you to use first. If not, you may create one and send it over to your opponent.
Save states included in Dojo
Games that are missing netplay save states will be highlighted in yellow on the ROM selection screen when hosting or joining. To easily retrieve available savestates, right click on the game in the list and click Download Savestate. Both players should do this, otherwise your game will never be in sync.
Creating a save state for netplay
If a netplay savestate is unavailable for your game of choice, you can create a new one to avoid crashes and desyncs. One must always be present for both you and your opponent.
- Start a game offline. Get the game into a state you'd like to begin playing online with (i.e. Character Select). Open the Menu (TAB on Keyboard by default) and click Save State.
- This will create a .state file for the ROM you are playing in the "data" folder of the emulator.
- To set this newly-created save state as your netplay default add
.netto the end of the file name i.e.
- Send it to your opponent to place in their data folder. If both players are using Flycast Dojo it will load the state automatically in netplay.
Emulator Video settings
Recommended settings for GGPO netplay:
- For modern graphics cards, use the Vulkan graphics API. Otherwise, use what runs best offline for your hardware configuration.
- Limit the framerate of the emulator to 59.94 FPS. You can do this in your graphics driver control panel or using RTSS. VSync is an option if your display is 60Hz but may introduce additional input lag.
- Disable Delay Frame Swapping.
- For NeoGeo Battle Coliseum: Enable Copy to VRAM.
- While this is only required for NGBC to current knowledge it may improve sprite clarity in some games such as MVC2.
Joysticks over GGPO
Some games such as racing or platformer games require use of the Dreamcast's joysticks. At the time of writing Flycast allows you to optionally enable left joystick inputs over GGPO. Note that due to the nature of analog inputs you may encounter more desyncs or more demanding performance than usual so only use it if it is an absolute requirement to play.
To enable it find the Left Thumbstick option in the Dojo settings tab and enable Horizontal if you only need left/right (Racing games) or Full if you need all directions of input.
Issues listed here will be specific to GGPO Networking setups.
- Unable to connect or match code doesn't work: Some network setups may need to use UPnP to get around routing issues. Find the "Enable UPnP for GGPO" and enable it in the Dojo tab.
- GGPO Assertion Failed: First make sure you are using a save state to play. After, make sure that your analog input settings are the same. This may be an issue with the "host" player network.
- Game opens a service/test/debug menu: Go to your controller mappings, select Arcade Controls in the drop-down. Find Service, Test, Menu, etc. and click Unmap. Do this for pretty much anything you're not using to avoid problems.
- Unhandled SH4 Exception: Make sure both players have their Mouse port set to None in the Controls tab.
- Wrong controls during gameplay: If you are playing a NAOMI or Atomiswave game, make sure your controls are set with the drop-down in the top right of the binding menu to "Arcade Controls". If you are on Dreamcast, then use Dreamcast controls. If your controls are still wrong after binding correctly, close the emulator then delete the "mappings" folder in the root directory and bind your controls again.
Many other questions and answers can be found on the Flycast Dojo FAQ page.
A compatibility tweak for Dreamcast games or games that supported VMU loading. Helps if you get crashes during loading screens.
- Go to the Controls settings tab.
- Set Device A and B to Sega Controller and set C and D to None, with both peripheral options next to the controller choice in ports A and B set to None as well.
- Use save states when netplaying.
If you encounter recurring slowdown while playing that is not related to netplay (meaning you can reproduce it while playing offline) then you may wish to try this on Windows PCs:
- Open Task Manager.
- In the Details tab, find Flycast.exe.
- Right click on the entry and click "Set Affinity".
- Uncheck all options in the list except for "CPU 0" and click OK to apply.
This has only been tested on Akatsuki Blitzkampf (as it was the only game Shiburizu could find this issue with) but if it is in fact a wider problem this will be expanded upon.