# Frequently Asked Questions

#### How do I install Flycast Dojo?

In broad strokes:

1. Place your arcade BIOSes (`awbios.zip`, `naomi.zip`)  into the provided `data` folder.
2. Place your Dreamcast/Atomiswave/NAOMI ROMs into the provided `ROMs` folder.
3. Map your controls. Make sure your input method of choice is set to **Port A**.

Once you have done this, you should be ready to host or join any games.

<figure><img src="https://2728186065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fp0E0T0NKuHd0qIVf9ia4%2Fuploads%2FlDhNHOhDSZ0loyjhpcTW%2Fimage.png?alt=media&#x26;token=cd009416-4cd1-4151-8144-a35b98572f78" alt="Animated Flycast Dojo Install Procedure"><figcaption></figcaption></figure>

#### What is the preferred romset?

For the BIOSes, we use `awbios.zip` and `naomi.zip` validated against RetroArch's [System.dat](https://github.com/libretro/libretro-database/blob/master/dat/System.dat) file. This should serve as a standard for all system BIOSes used. Dreamcast games use Flycast's built-in HLE BIOS by default.

As a general rule, players use the **MAME 0.218** romset for NAOMI games, and the **MAME 0.226** romset for Atomiswave games. For Dreamcast games, CHD files based on the Redump set are preferred. You may also look at the included `flycast_roms.json` file to see a list of filenames and checksums corresponding with the current preferred ROMs as well.

For more information on specific games, try asking on the relevant Community Discord. They typically know what is best for competition play at any point in time.

#### Where do I put my BIOS & ROMs?

For the BIOS, be sure to add `awbios.zip` for Atomiswave games or `naomi.zip` for NAOMI games into your `data` directory in the folder you have Flycast installed. In your settings, the folder Flycast is installed in is your **Home Directory**.If you are running Fightcade, you can find the ROMs folder at `Fightcade\emulator\flycast\ROMs`.\
\
Non-Fightcade users can use the included `ROMs` directory, or specify any other folder as a **Content Directory** in the settings.<br>

**When I try to load a game, I get an error that says "Cannot find \<file name>". How do I solve this?**

It looks like the ROM you have is incomplete, or you have the wrong file entirely. Make sure you have a ROM from the valid romsets listed above.<br>

**Can you point me to where I can find the proper ROMs?**

No.

#### Flycast is stuck on "STARTING NETWORK"? What do I do? <a href="#flycast-is-stuck-on-starting-network-what-do-i-do" id="flycast-is-stuck-on-starting-network-what-do-i-do"></a>

This means you are unable to connect to your opponent. The most common reason is your OS's firewall blocking you. In Windows, try having you and your opponent temporarily disable Windows Defender Firewall to see if the connection works. If it does, then you should add a rule allowing `Fightcade\emulator\flycast\flycast.exe` permission to be allowed through the firewall.

If that doesn't work, check to see that your AntiVirus is not blocking it. If all else fails, try forwarding your ports according to the [Fightcade FAQ](https://www.fightcade.com/faq):

> It could be a firewall/anti-virus blocking Fightcade from playing online games, try making the folder an exception in those, if that doesn't work you can also try port forwarding the GGPO ports, there's guides on <https://portforward.com/> if you need to try that. Fightcade uses TCP port 7000 and UDP ports 6000-6009.

Sometimes, people are unable to host, but can still connect as a guest. Try reversing who initiates the challenge to see if that works.<br>

#### My controls in the game don't work after I set them. <a href="#my-controls-in-the-game-dont-work-after-i-set-them" id="my-controls-in-the-game-dont-work-after-i-set-them"></a>

If you are playing a NAOMI or Atomiswave game, then you need to make sure you select **Arcade Controls** in the top right drop-down menu. Setting it to **Dreamcast Controls** will only work for Dreamcast games. You should also make sure your device is set to **Port A** so that Flycast Dojo can identify which player is the primary one.

<figure><img src="https://2728186065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fp0E0T0NKuHd0qIVf9ia4%2Fuploads%2FwSDk5kcWbNRhUsC7AEcx%2Fimage.png?alt=media&#x26;token=57af6e2c-0856-4de3-ad23-8d73f1807787" alt="Controller Mapping screen with a drop-down menu showing &#x22;Dreamcast Controls&#x22; and &#x22;Arcade Controls&#x22;"><figcaption></figcaption></figure>

#### How do I set game-specific controls?

To set custom controls on a per-game basis, just start the game in Flycast and open the **Controller Mapping** settings after it has loaded. After you set your controls, just hit the **Make Game Config** button to save your changes.

<figure><img src="https://2728186065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fp0E0T0NKuHd0qIVf9ia4%2Fuploads%2FoAM2DF6fHjlo4hzvvijE%2Fimage.png?alt=media&#x26;token=d632cd86-d2a8-4f1d-b003-0a726485e244" alt=""><figcaption></figcaption></figure>

#### I keep getting a "Peer verification failed" error. How do I resolve this?

This error comes up when you have a different netplay savestate, ROM, or BIOS than your opponent. You should first make sure that you have the same game files.\
\
For savestates, this error can happen your first time playing a game if automatic savestate retrieval fails, or a community savestate has been updated.

To resolve this problem, open Flycast Dojo (`Flycast/emulator/flycast/flycast.exe` for Fightcade users), right click on the game you would like to play and select **Download Netplay Savestate**. This will attempt to automatically download the state again.

<figure><img src="https://2728186065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fp0E0T0NKuHd0qIVf9ia4%2Fuploads%2FK8JEGCZIprPB5xtPnR3E%2Fimage.png?alt=media&#x26;token=baf04214-7b7b-4e65-8c70-55011b5cb5ab" alt=""><figcaption><p>Flycast Dojo main screen with "Download Netplay Savestate" selected in game context menu.</p></figcaption></figure>

Since the mismatch may occur on either end, it may be advisable for your opponent to do the same.

If this happens to fail, You can find your savestate of choice [here](https://github.com/blueminder/flycast-netplay-savestates) and download the file matching your game to the `data` folder (`Flycast/emulator/flycast/data` for Fightcade users). Once a matching savestate is detected on both sides, you can start your match successfully.

#### **How do I play online matches with custom savestates?** <a href="#custom-savestates" id="custom-savestates"></a>

To play with custom savestates, make sure the savestate you are sharing with your opponent is named the same as the ROM you would like to play, with the file extension of `state.net`, and place it in the `data` folder. This savestate will be automatically loaded on session start.

After your custom match, be sure that you either remove the savestate to use the game's default netplay savestate, or share the custom file with future opponents.

#### Why is my game desyncing? What can I do about it?

Games desynchronize when your memory and opponent's memory have mismatched, leading to two different game states. Common causes include not loading the same ROM or BIOS, having different savestates or dipswitches, or using different builds of Flycast Dojo.

First, make sure that you and your opponent are using the same version of the software. What version of Flycast Dojo you use determines the common arcade dipswitches/VMUs are, as well as individual software builds. Next, [validate your ROM against your opponent's ROM](https://dojo-project.gitbook.io/flycast-dojo/features/md5-checksum-validation).

If you are on Wi-Fi, the performance hit of it being [half duplex](https://en.wikipedia.org/wiki/Duplex_\(telecommunications\)#Half_duplex) has occasionally been known to cause desyncs between clients. It is recommended that you play on a wired network to ensure synchronization, and to generally not have a bad time.

In general, anything that can lead to a different memory state than your opponent would contribute to desyncs. For more information, check out [E2xD's Desync Troubleshooting Guide](https://www.smashladder.com/guides/view/26pv/desync-troubleshooting-guide). While Smash is a different scene, the causes for desyncs are much the same.<br>

#### Flycast crashes on launch. What do I do?

Here are a few steps to help troubleshoot and diagnose what's going on.

1. Delete the `emu.cfg` file.\
   \
   Sometimes, Fightcade upgrades or incompatible defaults in `emu.cfg` may cause crashes. Just delete `emu.cfg` from the same directory as `flycast.exe`. A new one will be generated the next time Flycast is launched. For Fightcade users, this will be in the `Fightcade\emulator\flycast` folder. Open Flycast after deleting the file and verify that the emulator works.<br>
2. Re-assign or delete controller mappings.\
   \
   Device-specific controls were fixed in a recent bug, but may be a culprit older mappings still exist. Be sure to set your controller mappings for both **Dreamcast Controls** and **Arcade Controls**. You may also want to try deleting the contents of the `mappings/` directory and mapping your controls before launching a game.<br>
3. (Online Games & Replays) Check Windows Firewall.\
   \
   If a session isn't established within Fightcade, the client will automatically close Flycast. The firewall may be the culprit in this instance. To diagnose this, you can either temporarily disable Windows Firewall and try to start a replay or connect with your opponent. If this works, add a rule in Windows Firewall allowing Flycast to use your network.<br>
4. Send Breakpad dump.\
   \
   Check your `%USERPROFILE%\AppData\Local\Temp` directory for a file ending in `.dmp`. If one exists at the time of the crash, send it over to us in the Flycast Discord so that we can determine the issue. If one isn't available, then it's likely that a crash technically didn't happen, but is still likely unintended behavior.<br>
5. Report crash log.\
   \
   If none of the steps above worked, you can record a log and send it over to a dev for investigation. This can be doen one of two ways.\
   \
   In the Advanced settings, you can enable "Log to File" which will create a `flycast.log` in the same place as `flycast.exe` while you run the emulator. Replicate the crash, and the file will be recorded.\
   \
   \
   \
   If that doesn't work, you can run [DebugView](https://docs.microsoft.com/en-us/sysinternals/downloads/debugview), replicate the crash, and save the log from the program.\
   \
   Send the log to me through the `#flycast-emulator` channel on the [Fightcade Discord](https://discord.gg/EyERRSg) or via a [GitHub issue](https://github.com/blueminder/flycast-dojo/issues). Be sure to include Flycast Dojo version, your hardware specs and OS version.<br>

   <figure><img src="https://2728186065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fp0E0T0NKuHd0qIVf9ia4%2Fuploads%2FNu0Au8buk5RkpiKRoNUy%2Fimage.png?alt=media&#x26;token=71c527e5-44bc-4b83-8d95-5d7fea2c56ce" alt="Advanced Settings, Showing &#x22;Log to File&#x22; as selected"><figcaption></figcaption></figure>

#### There is no Fightcade lobby for a game I want to play. How do I start a game with an opponent? <a href="#there-is-no-fightcade-lobby-for-a-game-i-want-to-play-how-do-i-start-a-game-with-an-opponent" id="there-is-no-fightcade-lobby-for-a-game-i-want-to-play-how-do-i-start-a-game-with-an-opponent"></a>

If a Fightcade lobby is unavailable for the game you want to play, you can start a P2P session with a friend outside of Fightcade using **Match Codes**. This should work for all Dreamcast, NAOMI & Atomiswave games, so long as both of you have an identical BIOS & ROM from above and follow these steps:

1. Open `Fightcade\emulator\flycast\flycast.exe`.
2. Open the **Settings** menu and make sure the **Connection Method** is set to **Match Codes** is checked.
3. Select **HOST** or **JOIN** in the drop-down menu on the left. Then click on the game you want to play.
4. If you are hosting, **Copy** the Match Code and send it to your opponent. If you are joining a game, **Paste** this code and press **Start Session**.

If Match Codes fail to bypass your firewall or you run into any issues, try connecting to your opponent manually by selecting **Direct IP** while forwarding ports or using a Virtual LAN like OpenVPN or Radmin VPN. After disabling, just follow steps 1-3 and enter the host's IP Address when prompted.<br>

**Does game X have a training mode?**

If you're playing a NAOMI or Atomiswave game, it's likely not the case by default (Akatsuki Blitzkampf Ausf Achse appears to be the exception to this rule). If there is a Dreamcast port of the game though, your best bet is finding that version and running it for training.

Flycast Dojo itself has a universal training mode to help you lab in games that may or may not have one built-in, allowing you to switch players on the same controller with a single keystroke, record/play/loop inputs, load RetroArch cheat files and savestates at will. You can access this through the Menu button (TAB by default) or through keyboard/controller mappings. For details on how to use this, check out the [Training Mode section](https://dojo-project.gitbook.io/flycast-dojo/features/training-mode) of the documentation.<br>

#### Using the internal training mode, why do enemies still attack me/why is my health bar diminishing?

Flycast Dojo's internal universal training mode features, being applicable to all games, requires you to load the relevant cheat files or savestate for your game to get it to the state you want. If applicable, using it in tandem with a game's existing training mode would give you the largest set of features.

#### **I'm experiencing input drops during gameplay. What can I do to improve response times?**

If you are experiencing input drops, the key thing is to make sure that your frame rate is consistent during gameplay, since inputs are polled once per frame. Try changing your **Graphics API** to see if your performance improves overall.

You can also use an external frame limiter like [RTSS](https://www.guru3d.com/download/rtss-rivatuner-statistics-server-download/) for optimal performance. To do this, you should disable Fixed Frequency first so that there is no conflict (*Settings -> Video -> Display -> Fixed Frequency -> Disabled*). From there, be sure to set the **Framerate limit** to 59.94 to match NTSC displays.

<figure><img src="https://2728186065-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fp0E0T0NKuHd0qIVf9ia4%2Fuploads%2F0EixRdaHI1Ie2e7uh68w%2Fimage.png?alt=media&#x26;token=da7443bf-2d6c-4e0e-8a6f-9d255ff6bc3f" alt=""><figcaption><p>RTSS, Framerate limit: 59.94</p></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://dojo-project.gitbook.io/flycast-dojo/overview/frequently-asked-questions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
