A Nintendo 3DS Emulator
Go to file
Rokkubro b5ff2440f6 Squash commits during rebase again:
Final things from review comments

Clang format

Shorten property code (similar to #6883) and move to utils

Move all additional helper functions into a 'utils' file. Simplify some things as requested in review

Minor code changes from review before rebase

fix misusing std span

Fix leftovers from rebase, and null-terminator problem with download string-view

Change downloadbossdatafromurl to take in string_views, make getting the list of files more dynamic

Fix error in linux builds and cleanup

Squash commits during rebase:

Some changes as per review and cleanup

More changes as per review

Changes as per review

Futures cannot be copied, remove stubbed warning on implemented calls, remove unneeded task_status simulation, simplify getting task_status and duration

Implement downloading tasks in background

Very final changes from review; and use common for converting strings

FInal changes for review

Attempt to fix codecvt error

Use references when any_casting

Update boost submodule to use master again, refactor how properties work, other minor changes per review

Fix operator overload error on linux/mingw

Make some changes as requested by review; change boost submodule url temporarily to use boost.url

Fix for android build

Fixes android builds when web services are enabled, like in #6555

Avoid crashes when urls are invalid

clang-format

Return error status properly on task fail

Fix implementation of gettaskstate, gettaskstatus and gettaskservicestatus

Fix mingw build error

Add support for reading tasks from boss save data databases.

clang-format

Implement storing task properties

Fix missing includes and add references in loops

Change task_id_list to map, initial implementation of task properties, minor refactor

Remove the dependency on the newer behavior of std erase to fix android building

Fix compilation on android and other platforms when web services are not enabled

Fix clang-format errors

Add support for downloading and decrypting spotpass data directly from nintendo servers

Fix windows implicit conversion error again

Fix comment

Fix filter in NsDataIdList; Finish GetNsDataHeaderInfo; Implement basic support for registering tasks and checking if they exist TODO actually read and write from boss savedata dbs

Add boss extdata to archive.h so the lle boss module can function properly

Implement ReadNsData and partially implement GetNsDataHeaderInfo and GetNsDataLastUpdate; MK7 now reads spotpass data and successfully boots!

Made requested changes; added filtering; removed readnsdata implementation

Add partial implementations of GetNsDataIdList(1/2/3) and ReadNsData

Add zeroed array of nsdataid entries, run clang-format

Check the spotpass extdata directory to determine number of ns output entries

Check for PLvPWAA

Only set the number of output entries in GetNsDataIdList1 to 1 if PLvPWAA is detected.

Fix plvpwaa dlc error

Return 1 for the number of output entries in the GetNsDataIdList1 stub. This fixes the extra content for Professor Layton vs Phoenix Wright Ace Attorney as the game expects the boss extdata to not be empty. Might break other games if they attempt to do anything with the ns data. (although the readnsdata and deletensdata methods are both still stubbed)
2023-11-02 21:09:42 +11:00
.ci Switch compiler to clang on Linux (#7077) 2023-10-25 11:00:52 -07:00
.github qt: Update to 6.6.0 (#7099) 2023-11-01 17:58:02 -07:00
CMakeModules video_core: Abstract shader generators. (#6990) 2023-09-30 02:06:06 -07:00
dist qt: Update to 6.6.0 (#7099) 2023-11-01 17:58:02 -07:00
externals externals: allow user to use system cryptopp (#7105) 2023-11-01 17:57:10 -07:00
hooks hook: remove clang-format check 2017-02-17 13:52:23 +02:00
src Squash commits during rebase again: 2023-11-02 21:09:42 +11:00
.gitattributes Meta: Add gitattributes file 2018-09-22 14:59:15 -06:00
.gitignore Add Kdevelop files to .gitignore (#6951) 2023-09-07 11:52:40 -07:00
.gitmodules externals: Make system dynamic library headers flags instead of auto-detect. (#7065) 2023-10-16 19:32:58 -07:00
CMakeLists.txt qt: Update to 6.6.0 (#7099) 2023-11-01 17:58:02 -07:00
CONTRIBUTING.md CONTRIBUTING.md: migrate to the wiki 2018-11-08 00:15:55 -05:00
Doxyfile Remove every trailing whitespace from the project (but externals). 2015-05-29 21:59:29 +01:00
keys.tar.enc Flatpak support (#4383) 2018-11-07 21:33:36 -05:00
license.txt Replace non-commercial icons with free icons from icons8 (#5093) 2020-03-26 13:40:03 -05:00
README.md github: Improve Readme and add better issue templates (#6276) 2023-02-13 14:51:09 +01:00


Citra
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.

GitHub Actions Build Status Discord

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

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.