.github/ISSUE_TEMPLATE | ||
.reuse | ||
CMakeModules | ||
dist | ||
externals | ||
hooks | ||
LICENSES | ||
src | ||
tools | ||
.codespellrc | ||
.git-blame-ignore-revs | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
CMakeLists.txt | ||
CONTRIBUTING.md | ||
Doxyfile | ||
LICENSE.txt | ||
README.md | ||
vcpkg.json |
torzu
torzu is a fork of yuzu, the world's most popular, open-source, Nintendo Switch emulator.
It is written in C++ with portability in mind, and I plan to actively maintain builds for Linux, Android and Windows.
Compatibility | Development | Building | Download | License
Compatibility
The emulator is capable of running most commercial games at full speed, provided you meet the necessary hardware requirements.
It runs most Nintendo Switch games released until the date of the Yuzu takedown.
Changes
Following are the changes made since forking from Yuzu:
- Added option to optimize generated SPIR-V shaders via spirv-opt
- Added option to synchronize CPU clock to render speed limit
- Added option to launch home menu from Switch firmware
- Fixed crash when switching away from null graphics per-game
- Fixed controller UI being cut off at the bottom
- Removed analytics and authentication as they'd be useless (perhaps even outright dangerous) now
- Minor improvements and additions
Goals
The first and foremost goal is long-term maintenance. Even if I stop commiting new features I will always do my best to keep the emulator functional and third party dependencies updated. This also means most of the changes made will eventually be bug fixes. Essentially, the main goal is that you can still use this emulator on modern systems in 20 years. It is very important to me that this project is going to be a good base to fork once grass has grown over the whole legal dilemma and people are willing to do real work on this emulator non-anonymously.
While the main platform is Linux as it is the main operating system I run on my personal and development desktops, Windows support is planned and will not be forgotten about. Android support is low priority but would be a nice bonus.
A secondary goal is the improvement of usability on low-end systems. This includes both improving the performance of the emulator as well as making games more playable below 100% speed whenever possible (the sync CPU to render speed limit option already helps with that in few cases).
Development
Most of the development happens on Dark Git. It's also where our central repository is hosted.
Currently, development is somewhat limited to external commits as I'm working on improvements in dynarmic! This will increase emulation speed in CPU-bound scenarios.
If you want to contribute, please take a look at the Contributor's Guide and Developer Information.
To clone this git repository, you can use these commands given tor is installed and running:
git -c http.proxy=socks5h://127.0.0.1:9050 clone http://y2nlvhmmk5jnsvechppxnbyzmmv3vbl7dvzn6ltwcdbpgxixp3clkgqd.onion/torzu-emu/torzu.git
cd torzu
git submodule update --init --depth 1 --recursive
Alternatively, you can clone from the GitHub mirror repository:
git clone https://github.com/litucks/torzu.git --depth 1 --recursive
Note that above repository may be taken down any time. Do not rely on its existence in production. In case the GitHub mirror goes down, a mirror will be set up on Gitlab.
This project incorporates several commits from the Suyu and Sudachi forks (but cleaned up due to the typically mediocre code/commit quality from both projects) as well as some custom changes, including lowered minimum boost library version requirements and faster fibers.
Building
- Linux: Linux Build
Windows: Windows BuildAndroid: Android BuildmacOS: macOS Build
(Only Linux builds are available for now. Next planned are Windows, then Android.)
Download
Precompiled build are available in the releases section.
License
yuzu is licensed under the GPLv3 (or any later version). Refer to the LICENSE.txt file.