Nintendo Switch emulator
Go to file
yzct12345 001675dced
logging: Simplify and make thread-safe
This simplifies the logging system.

This also fixes some lost messages on startup.

The simplification is simple. I removed unused functions and moved most things in the .h to the .cpp. I replaced the unnecessary linked list with its contents laid out as three member variables. Anything that went through the linked list now directly accesses the backends. Generic functions are replaced with those for each specific use case and there aren't many. This change increases coupling but we gain back more KISS and encapsulation.

With those changes it was easy to make it thread-safe. I just removed the mutex and turned a boolean atomic. I was planning to use this thread-safety in my next PR about stacktraces. It was actually async-signal-safety at first but I ended up using a different approach. Anyway getting rid of the linked list is important for that because have the list of backends constantly changing complicates things.
2021-08-13 18:39:45 +00:00
.ci Merge pull request #6565 from lat9nq/bundle-ffmpeg 2021-08-01 01:34:10 -04:00
.github .github: add a new issue template 2020-06-28 20:46:46 +02:00
.travis travis/linux: Use correct ccache directory 2020-12-10 03:34:16 -05:00
CMakeModules cmake: Remove unused code in GenerateSCMRev.cmake 2021-07-22 21:51:40 -04:00
dist settings_ui: Use better colors for the light theme 2021-08-04 11:47:06 -05:00
externals externals: Update sdl2 to 2.0.16 2021-08-10 19:16:30 -05:00
hooks pre-commit: Change comment from citra to yuzu 2018-03-26 21:34:19 +02:00
src logging: Simplify and make thread-safe 2021-08-13 18:39:45 +00:00
.gitattributes Meta: Add gitattributes file 2018-09-22 23:31:44 +02:00
.gitignore Port #3702 from Citra 2018-07-26 15:35:24 +02:00
.gitmodules externals: httplib: replace custom httplib header with upstream as submodule. 2021-06-19 02:18:58 +05:30
.lgtm.yml Remove bad and useless packages from LGTM build 2020-09-11 17:32:22 +03:00
.travis.yml travis: Update to using Xcode 10.2 2019-05-07 06:40:30 -04:00
CMakeLists.txt externals: Update sdl2 to 2.0.16 2021-08-10 19:16:30 -05:00
CONTRIBUTING.md Update CONTRIBUTING.md 2019-11-12 21:42:43 -05:00
Doxyfile Minor cleanup 2018-01-13 23:56:18 +00:00
license.txt game_list: Mark games as favorite to make them appear at the top. 2021-04-15 07:15:42 +02:00
README.md Grant a license exception to Skyline Emulator. 2021-07-25 02:09:42 +02:00


yuzu
yuzu

yuzu is the world's most popular, open-source, Nintendo Switch emulator — started by the creators of Citra.
It is written in C++ with portability in mind, and we actively maintain builds for Windows and Linux.

Azure Mainline CI Build Status Discord

Compatibility | Development | Building | Download | 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 yuzu support, please visit our Compatibility page

Check out our website for the latest news on exciting features, monthly progress reports, and more!

Development

Most of the development happens on GitHub. It's also where our central repository is hosted. For development discussion, please join us on Discord.

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 project, please check out the yuzu project on transifex. We centralize translation work there, and periodically upstream translations.

Building

Download

You can download the latest releases automatically via the installer on our downloads page.

Support

If you enjoy the project and want to support us financially, check out our Patreon!

Any donations received will go towards things like:

  • Switch consoles to explore and reverse-engineer the hardware
  • Switch games for testing, reverse-engineering, and implementing new features
  • Web hosting and infrastructure setup
  • Software licenses (e.g. Visual Studio, IDA Pro, etc.)
  • Additional hardware (e.g. GPUs as-needed to improve rendering support, other peripherals to add support for, etc.)

If you wish to support us a different way, please join our Discord and talk to bunnei. You may also contact: donations@yuzu-emu.org.

License

yuzu is licensed under the GPLv2 (or any later version). Refer to the license.txt file.

The Skyline-Emulator Team is exempt from GPLv2 for the contributions from all these contributors FernandoS27, lioncash, bunnei, ReinUsesLisp, Morph1984, ogniK5377, german77, ameerj, Kelebek1 and lat9nq. They may only use the code from these contributors under Mozilla Public License, version 2.0.