diff --git a/FAQ.md b/FAQ.md index c657a4a..9c8760d 100644 --- a/FAQ.md +++ b/FAQ.md @@ -22,124 +22,363 @@ The name is derived from CTR, which is part of the model number of the original ## Running games in _Citra_ -#### When launching a game, I get a "Could not Determine System Mode" or "Failed to Decrypt" error. I want to run backups of retail titles that I own, how can I do that? -_Citra_ does not natively run dumps of games that have not been decrypted properly (unless you have dumped your own system keys). This requires a physical 3DS and the game you own. -Refer to: -* [[Dumping Game Cartridges]] -* [[Dumping Installed Titles]] -* [[AES Keys]] +#### How to get games on _Citra_ -#### Can _Citra_ run _Pokémon_ games? +In order to run your games, _Citra_ requires that you dump your games, game updates, DLC and other 3DS system files from a [hacked 3DS](https://3ds.hacks.guide/). This is the only legal way to obtain these files for use in _Citra_. Any other method of obtaining these files is considered piracy and therefore illegal. -All Pokémon games now work properly. Pokémon X/Y now runs properly with HLE audio as well as LLE audio. Linux users building from source need to take a look at [[Building for Linux]] for building with the AAC audio decoder. -Some Pokémon games might require [[System Archives dump|Dumping System Archives and the Shared Fonts from a 3DS Console]] in order to be able to prevent some issues. +For dumping your games: +* [**Dumping Game Cartridges**](https://citra-emu.org/wiki/dumping-game-cartridges) +* [**Dumping Installed Titles**](https://citra-emu.org/wiki/dumping-installed-titles) -#### Can _Citra_ run \[Insert retail game name here\]? +For dumping your updates and DLC: +* [**Dumping Updates and DLC**](https://citra-emu.org/wiki/dumping-updates-and-dlcs/) -_Citra_ can, ostensibly, "play" many different games now and more will become playable as development progress further. Some games/apps, however, will not load at all – only showing a black screen. Others, might only show the title screen and then freeze or crash. - -See our [Game Compatibility List](https://citra-emu.org/game/) for more info. You can also helps us improve the **Game Compatibility List** by doing testing and reviewing the game. - -Note that many games also require certain files to be dumped from a 3DS console. See below for information about files that can be dumped from a 3DS console and used by Citra: -* [[Dumping System Archives and the Shared Fonts from a 3DS Console]] -* [[Dumping Config Savegame from a 3DS Console]] - -You can expect many games to run slowly, though and to exhibit some gameplay and graphical glitches. - -If you're interested in 3DS emulation as an experiment, you may gain something out of trying _Citra_, but if you're simply looking to play games then stick to your 3DS handheld. - -#### Does _Citra_ support WiFi, network connectivity or online play? -Yes, Citra supports networked local WiFi, but does not support connecting to Nintendo's servers. - -#### Are you planning to make an Android version? -Yes. It has been official released and can be downloaded via [https://play.google.com/store/apps/details?id=org.citra.citra_emu](https://bit.ly/3u1Xyyp) - -#### Does Citra have controller support? -Yes, you can configure your controller directly through the GUI. - -#### Can I expect _Citra_ to play [GAME] at full-speed? -_Citra_ can run most games at variable speed, depending on your hardware configuration. -However, not all games are created equally and therefore some games will run at full speed while others might suffer from slow emulation. You may also experience some slowdowns. - -_Note: The speed of [GAME] will depend on the **single-core** performance of your processor. Refer to your CPU benchmark in this [graph](https://www.cpubenchmark.net/singleThread.html). If it's below score of 1,800 the [GAME] might not be playable at decent speeds._ - -_Also, it has been reported that using the integrated **Intel GPU** on laptops has shown major performance increased in emulation speed. Only some games will benefit from it. This also applies for other emulators as well. Feel free to test both integrated and dedicated GPU to see which one gives you the best performance._ - -#### [GAME] runs way too fast, how can I slow down the emulation? -Recent versions have a framerate limiter built-in. It can be toggled in the configuration, reachable through the Menu (citra-qt): "Emulation" > "Configure..." > "General" > "Limit Framerate". - -#### I saw a _YouTube_ video about [GAME], why doesn't it work on the nightly build? - -Alternative custom branches may have not been merged into master. We only support nightly builds based on the [master branch](https://github.com/citra-emu/citra). -Unofficial builds are not supported. There may be other branches that are planned to be merged, but must go through vetting first to ensure they are good contributions to the project long term. +Although we provide open-source implementations for the 3DS system files in _Citra_, we recommend users to dump these files from your 3DS for more accuracy: +* [**Dumping System Archives and Shared Fonts**](https://citra-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-3ds-console/) #### Where can I download games to use with _Citra_? Short answer: You don't. Buy games and dump them with a _Nintendo 3DS_. -Long answer: Downloading commercial games is illegal and thus strongly frowned upon by the _Citra_ developers. To prevent legal issues, this includes gray areas like downloading games which you purchased earlier. You don't necessarily need to own a 3DS yourself, as you can buy game cartridges and dump them with a friend's console. On the other hand, copying a friend's game dump is considered illegal. Please note that any mention or discussion of piracy on our [forums](https://community.citra-emu.org) or [_Discord_](https://discordapp.com/channels/220740965957107713) channels will result in being banned from our community. +Long answer: Downloading commercial games is illegal and thus strongly frowned upon by the _Citra_ developers. To prevent legal issues, this includes gray areas like downloading games which you purchased earlier. You don't necessarily need to own a 3DS yourself, as you can buy game cartridges and dump them with a friend's console. On the other hand, copying a friend's game dump is considered illegal. Please note that any mention or discussion of piracy on our [_forums_](https://community.citra-emu.org) or [_Discord_](https://discord.gg/FAXfZV9) channels will result in being banned from our community. -For guidance on how to dump games for use with Citra, please refer to: -* [[Dumping Game Cartridges]] -* [[Dumping Installed Titles]] +#### Can _Citra_ run encrypted games? + +Yes, though you'll need to dump your 3DS' system keys for this to work: + +* [**AES Keys**](https://citra-emu.org/wiki/aes-keys/) + +#### Can _Citra_ run _Pokémon_ games? + +All Pokémon games now work properly. For Pokémon X & Y. Linux users building from source need to take a look at [[Building for Linux]] for building with the AAC audio decoder. + +#### Does _Citra_ run on an Apple silicon/M1 device? + +_Citra_ does **not** support Macs with M1 chipsets. Our Mac builds may run through Rosetta, but you WILL encounter various issues that we won't provide support for. We may eventually support M1 Macs, but not at this time. + +#### Can _Citra_ run \[Insert retail game name here\]? + +_Citra_ can, ostensibly, "play" many different games now and more will become playable as development progress further. Some games/apps, however, will not load at all – only showing a black screen. Others might only show the title screen and then freeze or crash. + +See our [Game Compatibility List](https://citra-emu.org/game/) for more info. You can also help us improve the **Game Compatibility List** by doing testing and reviewing the game. + +You can expect some games to run slowly, though and to exhibit some gameplay and graphical glitches. + +#### Does _Citra_ support Wi-Fi, network connectivity or online play? + +Yes, _Citra_ supports networked local Wi-Fi, but does not support connecting to Nintendo's servers. + +#### Why don't my Miis have heads/Why do my Miis have a "No-Entry" Sign as their heads? + +That No-Entry sign is our open-source replacement to prevent you from crashing. For Miis to have proper heads and faces, you'll need to dump some system files: + +* [**Dumping System Archives and Shared Fonts**](https://citra-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-3ds-console/) + +#### Does _Citra_ have an Android port? + +Yes, it has been officially released and can be downloaded via https://play.google.com/store/apps/details?id=org.citra.citra_emu + +#### Does _Citra_ have controller support? + +Yes, you can configure your controller directly through the GUI in `Emulation -> Configuration (Citra -> Preferences) -> Controls`. + +#### Can I make _Citra_ fully portable? + +Yes, go to our [download](https://citra-emu.org/download/) page and select `Manual download`. Then under **Nightly Build**, click on your operating system's icon to the right of the latest build available to download the build. +Extract it (.7z can be extracted using Winrar or 7zip) and put it wherever you wish. Inside the extracted `nightly-mingw` folder, create a folder called `user`. This _Citra_ should now store all of its config, save files and such inside of this `user` folder. +Check to make sure that this `user` folder is in the same folder that contains `citra-qt(.exe)` +Now you can start this _Citra_ by launching the citra-qt executable found inside of the `mingw` folder. + +#### Can I expect _Citra_ to play [GAME] at full-speed? + +_Citra_ can run most games at variable speed, depending on your hardware configuration. +However, not all games are created equally and therefore some games will run at full speed while others might suffer from slow emulation. You may also experience some slowdowns. + +A few things to keep in mind when it comes to performance in _Citra_ in general: + +1. **Your CPU's Single Thread Performance.** + +_Citra, like the 3DS, only utilizes 1 CPU core for running games. This means that your performance in Citra will depend on the **Single Thread Performance** of your CPU. Refer to your CPU's benchmark in this [graph](https://www.cpubenchmark.net/singleThread.html). If it's below a score of 1,800 the [GAME] might not be playable at decent speeds._ + +2. **Your (integrated or dedicated) GPU's OpenGL drivers.** + +_Your GPU's "horsepower" isn't terribly important to performance in Citra, as Citra is mostly a CPU heavy program. However, GPU drivers can vary widely in quality between GPU brands and operating systems. For example, AMD has incredibly badly optimized OpenGL drivers on Windows. This causes a bottleneck in Citra's performance, even if the paired CPU's Single Thread Rating meets or exceeds a score of 1,800. When using the same hardware on Linux though, Citra will run great due to the vastly better (Mesa) drivers._ + +_In terms of driver performance per GPU brand:_ + +_On Windows: An NVIDIA GPU will give you the best performance, followed by Intel and lastly AMD._ + +_On Linux: NVIDIA, AMD and Intel all perform well in Citra. AMD in particular performs at least 3 times as well in Citra on Linux compared to Windows in most titles. Intel also has a small uplift in performance. Users should use the open-source Mesa drivers for both Intel and AMD. NVIDIA GPU users should stick to the proprietary drivers._ + +_On MacOS: MacOS devices using an Intel GPU will perform decently. Those using an AMD GPU may experience similar issues as those seen on Windows._ + +3. **The _Citra_ settings you're using.** + +_There are a couple settings that can have a big impact on performance. By default, most settings are set to what is most performant and stable. If you're experiencing performance issues after toggling a few settings, go to `Emulation -> Configuration (Citra -> Preferences on MacOS) -> General` and select **Reset All Settings**. This will return all the settings to their default values._ + +_Another thing to keep in mind is that upscaling textures is relatively heavy on the GPU. Whilst most mid-range GPUs should be able to do this without any hit to the performance (within reason of course), low-end dedicated GPUs and integrated GPUs might struggle doing so._ + +_Specifically for AMD GPU users on Windows: If you're having issues with performance in a particular game, try disabling **Hardware Shaders** in `Emulation -> Configuration -> Graphics -> Advanced Tab`. This sometimes boosts performance in some games._ + +4. **The game you're trying to emulate.** + +_As mentioned earlier, not all games are created equal. Citra might run certain games better than others regardless of your hardware. Some games may also require specific workarounds to make them run at decent speeds. These types of workarounds are usually posted on our [Game Compatibility List](https://citra-emu.org/game/) for that game._ + + + +#### I saw a _YouTube_ video about [GAME]/feature, why doesn't it work on the nightly build/Official _Citra_ Android build? + +Alternative custom branches may have not been merged into master. We only support nightly builds based on the [master branch](https://github.com/citra-emu/citra). +Unofficial builds are not supported. There may be other branches that are planned to be merged, but must go through vetting first to ensure they are good contributions to the project long term. The same holds true for the official _Citra_ Android builds. *** -## System requirements and common issues +## System requirements. #### Which platforms does _Citra_ support? -We're pleased to say that _Citra_ works on all three major desktop OSes! +We're pleased to say that _Citra_ works on all three major desktop operating systems and Android! -_Citra_ is actively tested and supported on various 64-bit version of _Windows_ (_7_ and up), _Linux_ and _macOS 10.13 High Sierra_ or higher. Other platforms may work, but aren't tested by developers. In far future, mobile platforms may be targeted as well. +_Citra_ is actively tested and supported on various 64-bit version of _Windows_ (_7_ and up), _Linux_, Android (8.0 - oreo or newer) and _macOS 10.13 High Sierra_ or higher. Other platforms may work, but aren't tested by developers. In far future, mobile platforms may be targeted as well. We have no plans to support 32-bit operating system officially. #### What kind of specification do I need to run _Citra_? The only **hard** requirements for the official version of _Citra_ is a graphics chip that supports **at least _OpenGL 3.3_** and a **64-bit OS** running on a standard PC, but you definitely want a processor with the highest possible performance per core. -#### When I try to start any game, _Citra_ immediately crashes! +#### What are _Citra_ Android's requirements? -It is very likely that this issue is caused by your GPU or drivers not supporting _OpenGL 3.3_. Try updating to the latest drivers if possible, and verify that either your driver's control panel or a tool like [GPU Caps Viewer](http://www.ozone3d.net/gpu_caps_viewer/) reports that you can use at least _OpenGL 3.3_. If updating drivers doesn't help, you'll need to upgrade your GPU or wait until we remove this limitation from the software renderer. (The hardware renderer will never support lower _OpenGL_ versions.) +* A 64-bit operating system. +* Support for OpenGL ES 3.2 +* At least Android 8.0 (oreo) or newer. -*Also read the previous question / answer for a software implementation of _OpenGL_* +If you're unsure whether your Android device meets the requirements, download Aida64 from the google play store. You can find the instruction set (64-bit or 32-bit) information in the _CPU_ tab, the OpenGL ES version in the _Display_ tab and the Android version in the _Android_ tab. -#### _Citra_ complains about missing DLLs. +We also recommend at least a Snapdragon 835 SoC or better. Your experience may vary greatly depending on the quality of your device's GPU drivers. -First, if you've downloaded any DLL files from the Internet and placed them in the _Citra_ or a system folder, *remove them first*, they will not solve your problem and may cause system instability. Then download and install the *x64* variant (vc_redist.x64.exe) of [Visual C++ Redistributable for Visual Studio 2017](https://go.microsoft.com/fwlink/?LinkId=746572) from _Microsoft_. If that doesn't help, ensure you have also extracted the DLL files that come included with the _Citra_ builds and that they are in the same directory as the executable. +*** -#### A message box pops up saying the application was was unable to start correctly `0xc000007b`. +## Common issues and troubleshooting methods. -See above about missing DLLs. +#### Where do I begin when attempting to troubleshoot an issue with [GAME] in _Citra_? -#### _Citra_ complains about "Entry Point Not Found" +A log file is a very useful tool for recording relevant information for use in troubleshooting. It records your hardware, settings, _Citra_ version, GPU driver versions and it gives extra information about what _Citra_ was doing before the issue occurred. We will post some common issues below, where the information inside the log file can come in handy. This guide will tell you how to generate a usable log file: [How to upload a the log file](https://community.citra-emu.org/t/how-to-upload-the-log-file/296). -If you have Windows 10 N or KN (released in Europe and Korea respectively) it released missing the media foundation tools. To resolve this, you will need to install the [Windows Media Feature Pack](https://www.microsoft.com/en-us/software-download/mediafeaturepack) for your specific version of Windows N (you will be required to select your specific version. Hit the Windows key and R to open the 'run' box, and type winver into it to reach a box showing you your precise version of windows.) and install it before running Citra. +#### _Citra's_ log file barely has any information. -#### _Citra_'s log file doesn't have enough information. - -You may have a [_log filter_](https://github.com/citra-emu/citra/wiki/Log-Filters) configured. To reset it, go to *Emulation* in the menu bar, and then *Configure*. Then, in the *Debug* tab, in the *Logging* group, reset the *Global Log Filter* to `*:Info`. +You may have an incorrect [_log filter_](https://github.com/citra-emu/citra/wiki/Log-Filters) configured. To reset it, go to *Emulation* in the menu bar, and then *Configure*. Then, in the *Debug* tab, in the *Logging* group, reset the *Global Log Filter* to `*:Info`. #### My game is crashing, but my _Citra_ log file is empty. You may be clearing your log file on accident. This sequence of steps will result in your log file being overwritten: 1. Open _Citra_. -2. Play your game until it crashes, closing _Citra_. +2. Play your game until it crashes or experiences the issue, closing _Citra_. 3. Open _Citra_ again. -4. Open the log directory from _Citra_'s configuration window. +4. Open the log directory from _Citra's_ configuration window. Since _Citra_ was launched again in step 3, a new log was created. The correct sequence to follow is: 1. Open _Citra_. -2. Open the log directory from _Citra_'s configuration window. -3. Play your game until it crashes, closing _Citra_. +2. Open the log directory from _Citra's_ configuration window. +3. Play your game until it crashes or experiences the issue, closing _Citra_. -Now, without opening _Citra_ again, you should have the correct log file. +Now, without opening _Citra_ again, you should have the correct log file. Note that in the first example, after the citra_log.txt file is overwritten, the citra_log.txt.old.txt file will retain that overwritten information. This is easy to check when looking at the file size. An "empty" log file will only have _Citra's_ settings recorded and nothing more. That would be around 5KB. A properly generated log file would at least be larger than that. + + + +#### When I try to start [GAME], _Citra_ crashes/freezes! + +This can have many different causes. Therefore, it's useful to have your log file at hand to see if one of the scenarios below matches what your log file recorded. Note that the log file outputs might not be identical to yours even if you have the same issue. We will point out what to look out for in your log file when we can. + +A) log file output: + +``` +*Insert Citra's settings lines here* +Input input_common/udp/client.cpp:StartCommunication:207: Starting communication with UDP input server on 127.0.0.1:26760 +Frontend citra_qt/main.cpp:GMainWindow:195: Citra Version: Nightly XXXX | HEAD-XXXXXXX +Frontend citra_qt/main.cpp:GMainWindow:198: Host CPU: Intel(R) Core(TM) i7-1065G7 CPU @ 1.30GHz +Frontend citra_qt/main.cpp:GMainWindow:200: Host OS: Windows 10 (10.0) +Frontend citra_qt/main.cpp:CheckForUpdates:829: Unable to start check for updates +Service.FS core/file_sys/ncch_container.cpp:Load:242: Secure1 KeyX missing +Service.FS core/file_sys/ncch_container.cpp:Load:342: NCCH is marked as encrypted but with decrypted exheader. Force no crypto scheme. +Frontend citra_qt/main.cpp:BootGame:1019: Citra starting... +Audio.DSP audio_core/hle/wmf_decoder.cpp:Impl:67: Media Foundation activated +Audio.DSP audio_core/hle/wmf_decoder_utils.cpp:MFDecoderInit:50: Windows(R) Media Foundation found 1 suitable decoder(s) +Audio.Sink audio_core/cubeb_sink.cpp:StateCallback:137: Cubeb Audio Stream Started +RPC_Server core/rpc/rpc_server.cpp:RPCServer:12: Starting RPC server ... +RPC_Server core/rpc/rpc_server.cpp:HandleRequestsLoop:113: Request handler started. +RPC_Server core/rpc/rpc_server.cpp:RPCServer:16: RPC started. +Service.HTTP core/hle/service/http_c.cpp:DecryptClCertA:827: ClCertA file missing +``` + +We can see that _Citra_ attempted to boot the game: `Frontend citra_qt/main.cpp:BootGame:1019: Citra starting...` +However, before it could do so, it crashed without recording the game's titleID or your GPU's drivers. This usually means that there's an issue with _Citra's_ Disk Shader Cache. The Disk Shader Cache saves the shaders you encounter while you play your game(s) to your device's storage. When you encounter the same shader again later, _Citra_ can load that shader from the cache, instead of having to build it again. This reduces shader stutter, making gameplay smoother the longer you play. When the saved cache becomes faulty in some way, or the Disk Shader Cache isn't functioning correctly for another reason, _Citra_ will crash on a game's launch with a similar log file output as shown above. + +Since the currently built up shaders might be faulty, we should try deleting those first. Start up _Citra_, then go to `File -> Open Citra Folder`. Now open the `shaders` folder and delete the `opengl` folder found here. Now try your game again. If the same crash occurs afterwards, try updating your GPU driver to the latest available or reinstall it completely. If all else fails, disable the **Disk Shader Cache** in `Emulation -> Configuration -> Graphics -> Advanced Tab`. + +B) Log file output: + +``` +Service.HTTP core/hle/service/http_c.cpp:DecryptClCertA:827: ClCertA file missing +Render.OpenGL video_core/renderer_opengl/renderer_opengl.cpp:Init:1194: GL_VERSION: 3.3.11411 Core Profile Forward-Compatible Context +Render.OpenGL video_core/renderer_opengl/renderer_opengl.cpp:Init:1195: GL_VENDOR: ATI Technologies Inc. +Render.OpenGL video_core/renderer_opengl/renderer_opengl.cpp:Init:1196: GL_RENDERER: AMD Radeon HD 7770 +Render.OpenGL video_core/renderer_opengl/gl_rasterizer.cpp:RasterizerOpenGL:61: Shadow might not be able to render because of unsupported OpenGL extensions. +Render.OpenGL video_core/renderer_opengl/gl_shader_util.cpp:LoadProgram:101: Error linking shader: +Vertex shader(s) failed to link. +unexpected error. + +Debug video_core/renderer_opengl/gl_shader_util.cpp:operator():105: Assertion Failed! +Shader not linked +``` + +Shader linking errors are usually caused by old/faulty GPU drivers. If you're already on the latest available GPU driver for your card, then try disabling **Accurate Multiplication** in `Emulation -> Configuration -> Graphics -> Advanced Tab`. Old GPU drivers tend to have issues with this setting. + +C) Log file output: + +``` +Service.FS core/file_sys/archive_selfncch.cpp:OpenRomFS:193: Unable to read RomFS +Service.FS core/hle/service/fs/fs_user.cpp:OpenFileDirectly:129: failed to get a handle for file [Binary: 000000000000000000000000] mode=1 attributes=0 +Service.ERR core/hle/service/err_f.cpp:ThrowFatalError:169: Fatal error +Service.ERR core/hle/service/err_f.cpp:ThrowFatalError:171: Fatal error type: Generic +Service.ERR core/hle/service/err_f.cpp:LogGenericInfo:149: PID: 0x0000000B +Service.ERR core/hle/service/err_f.cpp:LogGenericInfo:151: REV: 0x00000000_0x0000C8E1 +Service.ERR core/hle/service/err_f.cpp:LogGenericInfo:153: TID: 0x00000000_0x00000000 +Service.ERR core/hle/service/err_f.cpp:LogGenericInfo:155: AID: 0x00000000_0x00000000 +Service.ERR core/hle/service/err_f.cpp:LogGenericInfo:156: ADR: 0x00117EDC +Service.ERR core/hle/service/err_f.cpp:LogGenericInfo:159: RSL: 0xC8804464 +Service.ERR core/hle/service/err_f.cpp:LogGenericInfo:160: Level: 25 +Service.ERR core/hle/service/err_f.cpp:LogGenericInfo:161: Summary: 4 +Service.ERR core/hle/service/err_f.cpp:LogGenericInfo:162: Module: 17 +Service.ERR core/hle/service/err_f.cpp:LogGenericInfo:163: Desc: 100 +``` + +`Service.FS core/file_sys/archive_selfncch.cpp:OpenRomFS:193: Unable to read RomFS` +This means that your ROM is corrupted. You'll need to redump your game. Make sure that your Godmode9 is up-to-date and that you have enough free storage space on your SD-Card to perform the dump. + +* [**Dumping Game Cartridges**](https://citra-emu.org/wiki/dumping-game-cartridges) +* [**Dumping Installed Titles**](https://citra-emu.org/wiki/dumping-installed-titles) + +D) Log file output: + +``` +Service.FS core/file_sys/ncch_container.cpp:OpenFile:130: Failed to open C:\Users\USER\AppData\Roaming/Citra/sdmc/Nintendo 3DS/00000000000000000000000000000000/00000000000000000000000000000000/title/0004000e/insert game ID here/content/00000000.app +Core core/core.cpp:Load:293: Failed to load ROM (Error 1)! +``` + +This error usually occurs when you've incorrectly built a ROM. This can happen when using an outdated game dumping method instead of Godmode9 or when badly editing/patching a ROM file. Like when you're patching a ROM with a ROM hack or randomization. + +E) Log file output: + +``` +HW.Memory core/memory.cpp:Read:322: unmapped Read32 @ 0x00000084 at PC 0x00332C54 +HW.Memory core/memory.cpp:Read:322: unmapped Read32 @ 0x00000088 at PC 0x00332C54 +HW.Memory core/memory.cpp:Read:322: unmapped Read32 @ 0x0000008C at PC 0x00332C54 +HW.Memory core/memory.cpp:Read:322: unmapped Read32 @ 0x00000090 at PC 0x00332C54 +HW.Memory core/memory.cpp:Read:322: unmapped Read32 @ 0x00000094 at PC 0x00332C54 +``` +This line may repeat itself over and over, making for a very big log file (sometimes also including some unmapped writes). What this usually means is one of 3 things: + +1. You have an incompatible cheat code active. The log file will tell you if there are any cheat codes active earlier in the log file: `Core.Cheats core/cheats/gateway_cheat.cpp:SetEnabled:432: Cheats enabled. This might lead to weird behavior or crashes` + +_Disable all cheats and then restart _Citra_ (important, otherwise they remain active). Now try your game again._ + +2. _Citra_ encountered something corrupted. This can be anything from the ROM, game updates, DLC, nand files, ect. + +_It's usually best to approach this by process of elimination; Keep individually testing every dumped file that your game uses until you find the one(s) that are causing the unmapped reads, starting with your ROM. It may be useful to set up a portable _Citra_ version for this (instructions on doing so can be found earlier on the FAQ page)._ + +3. There is a mismatch between your _Citra_ region and the region of your game. In this case the log file usually outputs alternating unmapped reads to unmapped writes lines: + +``` +HW.Memory core/memory.cpp:Read:322: unmapped Read32 @ 0xF94666CF at PC 0x00000000 +HW.Memory core/memory.cpp:Write:357: unmapped Write32 0x41F00000 @ 0xF94666CF at PC 0x00000000 +HW.Memory core/memory.cpp:Read:322: unmapped Read32 @ 0xF8D6B69F at PC 0x00000000 +HW.Memory core/memory.cpp:Write:357: unmapped Write32 0x009F072A @ 0xF8D6B69F at PC 0x00000000 +HW.Memory core/memory.cpp:Read:322: unmapped Read8 @ 0x00006B89 at PC 0x00000000 +HW.Memory core/memory.cpp:Write:357: unmapped Write8 0x0000008F @ 0x00006B89 at PC 0x00000000 +``` + +Go to `Emulation -> Configuration -> General` and under the `Emulation` block, set **Region:** to `Auto-select`. Now try your game again. + +Unmapped read/write related crashes and freezes can occur both right at the start, as well as during gameplay. + +#### There is an error that occurs in _Citra_ with Intel HD 4000/2500 integrated GPUs on Windows (and Intel HD Graphics of the same architecture (Ivy Bridge)). + +These GPUs have driver bugs that will cause freezing and crashing, seemingly at random. Some users can run some versions of _Citra_ Nightly with no issues whatsoever, but after updating to a newer, or downgrading to an older _Citra_ version, these crashing/freezing issues start to occur. Other users can't run any _Citra_ Nightly version at all. The only way to fix this currently is to use [Citra Nightly 1392](https://github.com/citra-emu/citra-nightly/releases/tag/nightly-1392) or older. +If you're unsure what iGPU you're using (or what generation), right click on your Windows start button and select `Device Manager`. Expand the Display adapters tab. It should tell you what GPU you have. If it only says `Intel HD Graphics`, expand the Processors tab as well. Then google your processor name. On Intel's product page, it should tell you what generation it is from next to the "Code Name". If it says "Products formerly Ivy Bridge", the above also applies to you. + +#### There is a graphical error that occurs in _Citra_ with Intel HD 4400/4600 integrated GPUs on Windows (and Intel HD Graphics of the same architecture (Haswell)). + +These GPUs have driver bugs that will cause _Citra_ to render things incorrectly, resulting in broken graphics. The only way to fix this is to disable *Accurate Multiplication* in `Emulation -> Configuration -> Graphics -> Advanced Tab`. +If you're unsure what iGPU you're using (or what generation), right click on your Windows start button and select `Device Manager`. Expand the Display adapters tab. It should tell you what GPU you have. If it only says `Intel HD Graphics`, expand the Processors tab as well. Then google your processor name. On Intel's product page, it should tell you what generation it is from next to the "Code Name". If it says "Products formerly Haswell", the above also applies to you. + +#### [GAME] runs way too fast, how can I slow down the emulation? + +Go to `Emulation -> Configuration (Citra -> Preferences on MacOS) -> General`, set your **Emulation Speed** slider to your desired speed and disable **Use Alternate Speed** if that is turned on. + +#### How to solve weird audio glitches/hitches? + +Go to `Emulation -> Configuration (Citra -> Preferences on MacOS) -> Audio`, and disable **Audio Stretching**. + +#### Why does my game audio sound delayed? + +This can sometimes be caused by V-Sync and/or Audio Stretching. You can find **V-Sync** in `Emulation -> Configuration (Citra -> Preferences on MacOS) -> Graphics -> Advanced Tab`, and you can find **Audio Stretching** in `Emulation -> Configuration (Citra -> Preferences on MacOS) -> Audio` + +#### Does _Citra_ have a speed-up/fast forward button? + +Not exactly. You can set up something similar, but this will only work if your set-up can run _Citra_ at those sped up emulation speeds to begin with. + +Go to `Emulation -> Configuration (Citra -> Preferences on MacOS) -> General`. Set your **Emulation Speed** slider to what you want your regular speed to be. Then set your **Use Alternate Speed** slider to what you want your speed-up/fast forward speed to be. Navigate to the `Controls -> Hotkey` menu. Find the **Toggle Alternate Speed** option and double click it to change it to whatever key you want your speed-up/fast forward key to be. Press OK and enjoy. + +#### My _Citra_ has a gray screen, but I can hear game audio on the background (MacOS). + +This is a MacOS specific bug. Resizing your _Citra_ window should fix it. + +#### Why are my custom textures being displayed on the wrong surfaces? + +This is a bug that occurs when Custom Textures are used in conjunction with a Texture Filter. You can disable the **Texture Filter** in `Emulation -> Configuration (Citra -> Preferences on MacOS) -> Graphics`. Make sure to restart your game after disabling the option. + +#### How to fix "Array Size too short" error? + +This error occurs when attempting to load a Save State on a _Citra_ version that is different from the one that it was created on. Save States aren't compatible between different _Citra_ versions or even different _Citra_ installations. It is therefore always recommended to use your in-game save files most of all for recording your progress, and to only use Save States within single gaming sessions. + +If you really need to recover the progress of a particular Save State and you've run into this error, you'll need to find the _Citra_ version you created the Save State on and load it there. Then you can save in-game and continue on the newer _Citra_ version. If you don't know which _Citra_ version you saved the state on, check the [log file](https://community.citra-emu.org/t/how-to-upload-the-log-file/296). It should detect whether a Save State was made on a different _Citra_ version and tell you the commit hash of that version. + +If you really want to use both Custom Textures and a Texture Filter at the same time, you'll need to use [_Citra_ Nightly 1691](https://github.com/citra-emu/citra-nightly/releases/tag/nightly-1691) until the bug is fixed. + +#### _Citra_ complains about missing DLLs. + +First, if you've downloaded any DLL files from the Internet and placed them in the _Citra_ or a system folder, *remove them first*, they will not solve your problem and may cause system instability. Then download and install the *x64* variant (vc_redist.x64.exe) of [Visual C++ Redistributable for Visual Studio 2017](https://go.microsoft.com/fwlink/?LinkId=746572) from _Microsoft_. If that doesn't help, ensure you have also extracted the DLL files that come included with the _Citra_ builds and that they are in the same directory as the executable. + +#### A message box pops up saying the application was unable to start correctly `0xc000007b`. + +See above about missing DLLs. If that doesn't help, see the first entry below this one about the requirement for those on Windows 10 N or KN to install the Windows Media Feature Pack. + +#### _Citra_ complains about "Entry Point Not Found/MF.dll not found" + +Type `winver` into your Windows search bar and launch the prompt when it pops up. This should give you information about your Windows installation and update version. It should look something like this: + +``` +Microsoft Windows +Version XXXX (OS build XXXXX.XXXX) +Microsoft Corporation. All rights reserved. + +The Windows 10 (Pro) (N or KN)..... +``` +If yours says that you're on a Windows 10 N or KN version, it means that you're using a Windows version that released without a bunch of media foundation tools. _Citra_ requires some of those, which is why that error occurs. Thankfully, you can fix this by installing the Windows media feature pack. Microsoft changed how to do this a couple Windows 10 versions ago. + +For those on Windows 10 Version 1909 (OS build 18363.XXXX) or newer: + +"_The Media Feature Pack for N versions of Windows 10 is available for download as an Optional Feature. To install the Media Feature Pack, navigate to Settings > Apps > Apps and Features > Optional Features > Add a Feature and find the Media Feature Pack in the list of available Optional Features. Note, you will not be prompted to restart your computer, but you must restart in order to successfully complete installation of the Media Feature Pack._" + +For those on Windows 10 Version 1903 (OS build 18362.XXXX) or older: + +Head to https://www.microsoft.com/en-us/software-download/mediafeaturepack and specify which version of Windows 10 you're on. Then download and install the Media Feature Pack. Once installed, restart your PC if the installer doesn't prompt you to do so. Now try running _Citra_ again. #### I've dumped my game but when I load it, _Citra_ crashes/prints a bunch of gibberish to the console! -Games need to be decrypted on a 3DS before being usable in _Citra_. This is a technical limitation and it is unlikely that it can be removed in the foreseeable future. To decrypt your games, you will need to have a 3DS system with boot9strap installed and follow one of the following guides: +Games need to be decrypted on a 3DS before being usable in _Citra_ (unless you dump your system keys). This is a technical limitation, and it is unlikely that it can be removed in the foreseeable future. To decrypt your games, you will need to have a 3DS system with boot9strap installed and follow one of the following guides: * [[Dumping Game Cartridges]] * [[Dumping Installed Titles]] @@ -150,9 +389,9 @@ Sometimes a game will freeze and you'll get an error which looks like this in th ``` Service.CFG core\hle\service\cfg\cfg.cpp:Service::CFG::GetConfigInfoBlock:236: Config block 0xA0001 with flags 2 and size 2 was not found ``` -If a log file with this error is read by the Citra bot, it might tell you "System configuration block 0xXXXXX appears to be corrupted." +If a log file with this error is read by the _Citra_ bot, it might tell you "System configuration block 0xXXXXX appears to be corrupted." -In this case: start Citra, go to `File>Open Citra Folder` and follow this file path: `nand/data/00000000000000000000000000000000/sysdata/00010017/00000000/`. Delete the `config` file found here. Now restart Citra and try your game again. Make sure you're on the latest Citra version. If this does not work, then note the config block number (`0xA0001` in the example) and file a bug report. +In this case: Start _Citra_, go to `File -> Open Citra Folder` and follow this file path: `nand/data/00000000000000000000000000000000/sysdata/00010017/00000000/`. Delete the `config` file found here. Now restart _Citra_ and try your game again. Make sure you're on the latest _Citra_ version. If this does not work, then note the config block number (`0xA0001` in the example) and file a bug report. #### How can I fix the `API ERROR 1282 OPENGL` error? I can't figure out what is causing this to happen! @@ -169,84 +408,93 @@ So far only _MSI Afterburner_ is being reported to have conflicts with _Citra_, #### Where is the folder for the emulated SD card? -The folder for the emulated SD card is named `sdmc` and can be found in Citra's [[User Directory]]. +The folder for the emulated SD card is named `sdmc` and can be found in _Citra's_ [[User Directory]]. -#### Particle effects or text display as a jumble of triangles. +#### My issue isn't mentioned above/I tried the fix for my issue but it didn't work for me. -You are using an older build. Download the latest nightly [build](https://bit.ly/38fEPXv) as the issue has been resolved. - -Old answer: In certain games, animated particle effects (such as smoke, fire, trails, etc.) or text may not render properly, showing up instead as a jumbled mess of triangles, sometimes covering large parts of the screen. This is caused by a missing feature in our GPU support (Geometry Shaders) which is used by games to render these kind of effects. - -Example of games that suffer from this: -* Pokemon OR/AS - Missing attack animations. -* Fire Emblem: Awakening -* Ace Combat: Assault Horizon Legacy +Make sure that you're on the latest _Citra_ Nightly version. If you've changed any of _Citra's_ settings, make sure to to go to `Emulation -> Configuration -> General (Citra -> Preferences -> General on MacOS)` and select **Reset All Settings**. If the issue still occurs, try asking for support in the [Citra Discord server](https://discord.gg/FAXfZV9) or on the [Citra Forums](https://community.citra-emu.org/). *** ## Networking Support #### What is this? -Citra's networking support emulates the 3DS' local wifi. On a real 3DS, this allows you to play games with people next to you. With Citra's implementation of this feature, you can play with other people on Citra anywhere. **This is not an implementation of connecting to Nintendo's servers over wifi, nor is it an implementation of download play.** + +_Citra's_ networking support emulates the 3DS' local Wi-Fi. On a real 3DS, this allows you to play games with people next to you. With _Citra's_ implementation of this feature, you can play with other people on _Citra_ anywhere. **This is not an implementation of connecting to Nintendo's servers over Wi-Fi.** #### Why don't I have this feature? -You are using an old version of Citra. + +You are using an old version of _Citra_. #### What's the difference between public and unlisted rooms? -When you make a public room, Citra connects to the [Citra Web Service](https://citra-emu.org/wiki/citra-web-service/), authenticates yourself using your token and username, and sends the room details. Then, the Citra Web Service will add your room to the public room listing, so when people go in the Public Game Lobby, they will see the room. Something important to note about a public room is that **the Citra Web Service only hosts room listings, and not the room itself. The room will still be hosted on your computer.** -When you make an unlisted room, Citra opens a room for any incoming connections, without connecting to the Citra Web Services. For other people to join the room, they will need to enter your IP manually, since they're not going through the Public Game Browser listing. +When you make a public room, _Citra_ connects to the [Citra Web Service](https://citra-emu.org/wiki/citra-web-service/), authenticates yourself using your token and username, and sends the room details. Then, the _Citra_ Web Service will add your room to the public room listing, so when people go in the Public Game Lobby, they will see the room. Something important to note about a public room is that **the Citra Web Service only hosts room listings, and not the room itself. The room will still be hosted on your computer.** + +When you make an unlisted room, _Citra_ opens a room for any incoming connections, without connecting to the _Citra_ Web Services. For other people to join the room, they will need to enter your IP manually, since they're not going through the Public Game Browser listing. #### How do I join a public room? + To join a public room, follow these steps: 1. Go to `Multiplayer` in the menu bar, and click `Browse Public Game Lobby`. 2. Set your nickname in the top left. 3. Double click on a room in the Public Room Browser dialog to join it. -4. Double click on a game in the Citra main window to start it. +4. Double click on a game in the _Citra_ main window to start it. #### How do I join a unlisted room? + To join a unlisted room, follow these steps: 1. Go to `Multiplayer` in the menu bar, and click `Direct Connect to Room`. 2. Enter the IP and port of the host you're connecting to, your nickname, and password of the room if applicable. 3. Click connect to join the room. #### How do I make a public room? + To make a public room, follow these steps: -1. **If you and the people you are playing with are on different wifi networks, setup port forwarding in your router settings.** +1. **If you and the people you are playing with are on different Wi-Fi networks, setup port forwarding in your router settings.** 2. Go to `Multiplayer` in the menu bar, and click `Create Room`. 3. Enter the name of your room to be shown in the public listing and chat window, your preferred nickname, the game that will be played, an optional password if you need it, and the max number of players that can join the room. Unless you know you need it, you shouldn't have to touch the port number. 4. Click `Host Room` to create the room. #### How do I make an unlisted room? + To make an unlisted room, follow these steps: -1. **If you and the people you are playing with are on different wifi networks, setup port forwarding in your router settings.** +1. **If you and the people you are playing with are on different Wi-Fi networks, setup port forwarding in your router settings.** 2. Go to `Multiplayer` in the menu bar, and click `Create Room`. 3. Enter the name of your room to be shown in the chat window, your preferred nickname, the game that will be played, an optional password if you need it, and the max number of players that can join the room. Unless you know you need it, you shouldn't have to touch the port number. 4. At the bottom, set the room type combo box to `Unlisted`. 5. Click `Host Room` to create the room. +#### Why when I join a multiplayer room does it say that I'm "Not playing a game" even when I am? + +This happens when you use Save States prior to connecting to a multiplayer room. Save States should be avoided entirely when using multiplayer. + +#### Are Download Play (DLP) features supported in _Citra_? + +Yes, though you'll need to dump some extra system files and enable a couple settings for it to work. You can find the instructions on how to set it up at the bottom of this page: [Multiplayer](https://citra-emu.org/help/feature/multiplayer/) +Keep in mind that both you, and the person you're attempting to use the Download Play feature with will need to follow the instructions for it to work. + *** ## Development and contributions #### How can I develop or contribute to the project? -If you're interested in contributing, fork the project here in [_GitHub_](https://github.com/citra-emu/citra), and then create a Pull Request when you're ready to submit your contribution. Unless your change is trivial, however, it is strongly recommended that you join our development channel (#citra-dev @ [Freenode](https://webchat.freenode.net/)) to coordinate with the developers beforehand. Make sure to review our [coding guidelines](https://github.com/citra-emu/citra/wiki/Contributing) and ensure your changes follow them. If you're looking for ideas on things to work on, try looking around our issue tracker. Some issues are tagged with the [E-easy](https://github.com/citra-emu/citra/issues?q=is:open+is:issue+label:E-easy) label, which means they're smaller tasks that should be easier to get into. +If you're interested in contributing, fork the project here in [_GitHub_](https://github.com/citra-emu/citra), and then create a Pull Request when you're ready to submit your contribution. Unless your change is trivial, however, it is strongly recommended that you join our development channel (#citra-dev @ [Libera.Chat](https://libera.chat/)) to coordinate with the developers beforehand. Make sure to review our [coding guidelines](https://github.com/citra-emu/citra/wiki/Contributing) and ensure your changes follow them. If you're looking for ideas on things to work on, try looking around our issue tracker. Some issues are tagged with the [E-easy](https://github.com/citra-emu/citra/issues?q=is:open+is:issue+label:E-easy) label, which means they're smaller tasks that should be easier to get into. -#### I'd like to be a beta tester, how can I help? +#### I'd like to be a beta tester; how can I help? If you try some games and run into issues like graphical glitches, freezes and especially regressions from previous versions, you can try reporting them in our issue tracker, accompanied by logs from the emulator if possible. Do *not* report an issue if a game simply fails to boot entirely. #### Non-official builds are faster, have more features and run more games. Why don't you work with the people who create those? -Most non-official builds are just a collection of different features currently being worked on by _Citra_ contributors from the community. +Most non-official builds are usually just a collection of different features currently being worked on by _Citra_ contributors from the community. These features are not part of the official version (yet) because they are either broken-by-design and would possibly hinder development soon or because they are still work in progress. Also, each change will go through a review process. Features found in non-official versions are often in the review phase already and will be included in official versions about a month or two later. -If you are the author of a non-official build make sure you still follow the license of _Citra_. +If you are the author of a non-official build, make sure you still follow the license of _Citra_. #### I think what you guys are doing is awesome! I am not a developer, but still want to support the project. What can I do? That's awesome! Such support is what motivates us to keep working! Stick around and keep motivating our work! -If you're interested in donating, we would gladly accept used hardware, games for testing, or money for development/infrastructure costs. Please see our [donations page](https://citra-emu.org/donate) for more information, or join our IRC channel (#citra @ [Freenode](https://webchat.freenode.net/)) or [Discord server](https://citra-emu.org/discord/) and contact a developer. \ No newline at end of file +If you're interested in donating, we would gladly accept used hardware, games for testing, or money for development/infrastructure costs. Please see our [donations page](https://citra-emu.org/donate) for more information, or join our IRC channel (#citra @ [Libera.Chat]( https://libera.chat/)) or [Discord server](https://discord.gg/FAXfZV9) and contact a developer.