diff --git a/FAQ.md b/FAQ.md new file mode 100644 index 0000000..5326c8e --- /dev/null +++ b/FAQ.md @@ -0,0 +1,252 @@ +## About Citra + +#### What is _Citra_? + +_Citra_ is a work-in-progress _Nintendo 3DS_ emulator started in early 2014. _Citra_ can currently emulate, with varying degrees of success, a wide variety of different homebrew applications and commercial software. + +#### What is _Citra_'s License? + +_Citra_ is an open-source project, licensed under the GPLv2 (or any later version). Refer to the [license document](https://github.com/citra-emu/citra/blob/master/license.txt) for more information. + +#### Who made _Citra_? + +_Citra_ has an active team of open-source developers. Over 50 people have worked hard on the project since its founding in 2014! The list of contributors can be found on [_GitHub_](https://github.com/citra-emu/citra/graphs/contributors). + +_Note: Citra is not affiliated with Nintendo in any way._ + +#### Where does the name come from? + +The name is derived from CTR, which is part of the model number of the original 3DS. + +*** + +## 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. This requires a physical 3DS and the game you own. +Refer to: +* [[Dumping Game Cartridges]] +* [[Dumping Installed Titles]] + +#### Can _Citra_ run _Pokémon_ games? + +All Pokémon games now work properly. Pokémon X/Y run fast without background music, but slower when LLE is enabled. A fix is in development. +Some Pokémon games might require [[System Archives dump|Dumping System Archives and the Shared Fonts from a 3DS Console]]. + +If the console prints the following error log, then the System Archives dump is missing. +``` +Debug.Emulated core\hle\svc.cpp:SVC::Break:466: Break reason: PANIC +Debug.Emulated core\hle\svc.cpp:SVC::Break:450: Emulated program broke execution! +``` + +#### 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 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? +No, not at the moment. + +#### 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..." > "Graphics" > "Limit Framerate". Make sure to uncheck the V-Sync option, as it's obsolete and might give you unexpected slowdowns. + +#### 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. + +#### 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. + +For guidance on how to dump games for use with Citra, please refer to: +* [[Dumping Game Cartridges]] +* [[Dumping Installed Titles]] + +*** + +## System requirements and common issues + +#### Which platforms does _Citra_ support? + +We're pleased to say that _Citra_ works on all three major desktop OSes! + +_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. +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! + +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.) + +*Also read the previous question / answer for a software implementation of _OpenGL_* + +#### _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 was unable to start correctly `0xc000007b`. + +See above about missing DLLs. + +#### _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`. + +#### 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_. +3. Open _Citra_ again. +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_. + +Now, without opening _Citra_ again, you should have the correct log file. + +#### 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: +* [[Dumping Game Cartridges]] +* [[Dumping Installed Titles]] + +#### What should I do if I get an error saying something like `GetConfigInfoBlock: Config block 0xXXXXX with flags X and size X was not found`? + +Sometimes a game will freeze and you'll get an error which looks like this in the log, usually followed by a "Fatal Error": + +``` +Service.CFG core\hle\service\cfg\cfg.cpp:Service::CFG::GetConfigInfoBlock:236: Config block 0xA0001 with flags 2 and size 2 was not found +``` + +In this case, try deleting the file at `user/nand/data/00000000000000000000000000000000/sysdata/00010017/00000000/config` and running the latest version of Citra. 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! + +This is the result of third-party application that uses overlays which might conflict with _Citra_. +The console will print this error log: + +``` +Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:469: API ERROR 1282: GL_INVALID_OPERATION error generated. Function glMatrixMode is deprecated and not available in preview contexts. +Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:469: API ERROR 1282: GL_INVALID_OPERATION error generated. Function glPushMatrix is deprecated and not available in preview contexts. +Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:469: API ERROR 1282: GL_INVALID_OPERATION error generated. Function glLoadIdentity is deprecated and not available in preview contexts. +Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:469: API ERROR 1282: GL_INVALID_OPERATION error generated. Function glOrtho is deprecated and not available in preview contexts. +``` +So far only _MSI Afterburner_ is being reported to have conflicts with _Citra_, therefore it is advisable to close it before launching _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]]. + +#### Particle effects or text display as a jumble of triangles. + +You are using an older build. Download the latest nightly [build](https://citra-emu.org/download/) 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 + +*** + +## 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.** + +#### Why don't I have this feature? +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. + +#### 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. + +#### 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.** +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.** +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. + +*** + +## 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/blob/master/CONTRIBUTING.md) 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? + +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. +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_. + +#### 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/)) and contact a developer. \ No newline at end of file