b5d6f645bd
* externals: Update dynarmic * settings: Introduce GraphicsAPI enum * For now it's OpenGL only but will be expanded upon later * citra_qt: Introduce backend agnostic context management * Mostly a direct port from yuzu * core: Simplify context acquire * settings: Add option to create debug contexts * renderer_opengl: Abstract initialization to Driver * This commit also updates glad and adds some useful extensions which we will use in part 2 * Rasterizer construction is moved to the specific renderer instead of RendererBase. Software rendering has been disable to achieve this but will be brought back in the next commit. * video_core: Remove Init/Shutdown methods from renderer * The constructor and destructor can do the same job * In addition move opengl function loading to Qt since SDL already does this. Also remove ErrorVideoCore which is never reached * citra_qt: Decouple software renderer from opengl part 1 * citra: Decouple software renderer from opengl part 2 * android: Decouple software renderer from opengl part 3 * swrasterizer: Decouple software renderer from opengl part 4 * This commit simply enforces the renderer naming conventions in the software renderer * video_core: Move RendererBase to VideoCore * video_core: De-globalize screenshot state * video_core: Pass system to the renderers * video_core: Commonize shader uniform data * video_core: Abstract backend agnostic rasterizer operations * bootmanager: Remove references to OpenGL for macOS OpenGL macOS headers definitions clash heavily with each other * citra_qt: Proper title for api settings * video_core: Reduce boost usage * bootmanager: Fix hide mouse option Remove event handlers from RenderWidget for events that are already handled by the parent GRenderWindow. Also enable mouse tracking on the RenderWidget. * android: Remove software from graphics api list * code: Address review comments * citra: Port per-game settings read * Having to update the default value for all backends is a pain so lets centralize it * android: Rename to OpenGLES --------- Co-authored-by: MerryMage <MerryMage@users.noreply.github.com> Co-authored-by: Vitor Kiguchi <vitor-kiguchi@hotmail.com> |
||
---|---|---|
.ci | ||
.github | ||
CMakeModules | ||
dist | ||
externals | ||
hooks | ||
src | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
.lgtm.yml | ||
bitrise.yml | ||
CMakeLists.txt | ||
CONTRIBUTING.md | ||
Doxyfile | ||
keys.tar.enc | ||
license.txt | ||
README.md |
Citra
Citra is the world's most popular, open-source, Nintendo 3DS emulator.
It is written in C++ with portability in mind and builds are actively maintained for Windows, Linux, Android and macOS.
Compatibility | Releases | Development | Building | Support | License
Compatibility
The emulator is capable of running most commercial games at full speed, provided you meet the necessary hardware requirements.
For a full list of games Citra supports, please visit our Compatibility page
Check out our website for the latest news on exciting features, progress reports, and more! Please read the FAQ before getting started with the project.
Need help? Check out our asking for help guide.
Releases
Citra has two main release channels: Nightly and Canary.
The Nightly build is based on the master branch, and contains already reviewed and tested features.
The Canary build is based on the master branch, but with additional features still under review. PRs tagged canary-merge
are merged only into the Canary builds.
Both builds can be installed with the installer provided on the website, but those looking for specific versions or standalone releases can find them in the release tabs of the Nightly and Canary repositories.
Android builds can be downloaded from the Google Play Store.
A Flatpak for Citra is available on Flathub. Details on the build process can be found in our Flathub repository.
Development
Most of the development happens on GitHub. It's also where our central repository is hosted. For development discussion, please join us on our Discord server or at #citra-dev on libera.
If you want to contribute please take a look at the Contributor's Guide and Developer Information. You can also contact any of the developers on Discord in order to know about the current state of the emulator.
If you want to contribute to the user interface translation, please check out the Citra project on transifex. We centralize the translation work there, and periodically upstream translations.
Building
- Windows: Windows Build
- Linux: Linux Build
- macOS: macOS Build
- Android: Android Build
Support
If you enjoy the project and want to support us financially, check out our Patreon!
We also happily accept donated games and hardware. Please see our donations page for more information on how you can contribute to Citra. Any donations received will go towards things like:
- 3DS consoles for developers to explore the hardware
- 3DS games for testing
- Any equipment required for homebrew
- Infrastructure setup
We also more than gladly accept used 3DS consoles! If you would like to give yours away, don't hesitate to join our Discord server and talk to bunnei.
License
Citra is licensed under the GPLv2 (or any later version). Refer to the LICENSE.txt file.