Cemu - Wii U emulator
Go to file
Andrea Pappacoda 19a0a3a359
perf: optimize GenerateRandomString() (#66)
The previous implementation used an std::stringstream to concatenate
the generated random string.

The new one uses a simple preallocated std::string, as the size of the
output is already known - it is the length parameter.

It also uses std::generate_n() instead of an explicit loop, making the
code more concise and potentially faster, as no calls to
std::string::operator+= are needed.

Calling GenerateRandomString(1'000'000) with the std::stringstream-based
implementation allocated 16 times, for a total of 3'173'516 bytes.
The new one cuts this down to 4 allocs, for a total of 1'076'864 bytes.
2022-08-26 12:53:42 +02:00
.github CI: Use pull_request over pull_request_target 2022-08-26 08:43:42 +02:00
bin Add all the files 2022-08-22 22:21:23 +02:00
dependencies Replace Vulkan-SDK with Vulkan Headers 2022-08-25 13:31:32 +09:00
dist/linux Add AppStream (#10) 2022-08-26 09:29:58 +02:00
src perf: optimize GenerateRandomString() (#66) 2022-08-26 12:53:42 +02:00
.gitignore Replace Vulkan-SDK with Vulkan Headers 2022-08-25 13:32:31 +09:00
.gitmodules Replace Vulkan-SDK with Vulkan Headers 2022-08-25 13:31:32 +09:00
BUILD.md Update BUILD.md 2022-08-25 15:35:30 +02:00
CMakeLists.txt Replace Vulkan-SDK with Vulkan Headers 2022-08-25 13:31:32 +09:00
CMakeSettings.json Reformat CMakeSettings.json and remove empty variables (#4) 2022-08-24 11:22:13 +02:00
generate_vs_solution.bat Add all the files 2022-08-22 22:21:23 +02:00
LICENSE.txt Expand readme with links and description 2022-08-23 02:37:05 +02:00
README.md Update URLs to HTTPS (#44) 2022-08-25 15:33:12 +02:00
vcpkg.json Replace Vulkan-SDK with Vulkan Headers 2022-08-25 13:31:32 +09:00

Cemu - Wii U emulator

Build Process Discord

This is the code repository of Cemu, a Wii U emulator that is able to run most Wii U games and homebrew in a playable state. It's written in C/C++ and is being actively developed with new features and fixes to increase compatibility, convenience and usability.

Cemu is currently only available for 64-bit Windows and Linux devices.

Other relevant repositories:

Download

You can download the latest Cemu releases from the Github Releases or from Cemu's website.

Cemu is currently only available in a portable format so no installation is required besides extracting it in a safe place.

See Current State Of Linux builds for information on using Cemu natively on Linux.

Pre-2.0 releases can be found on Cemu's changelog page.

Build Instructions

To compile Cemu yourself on Windows or Linux, view the BUILD.md file.

Issues

Issues with the emulator should be filed using Github Issues.
The old bug tracker can be found at bugs.cemu.info and still contains relevant issues and feature suggestions.

Contributing

Pull requests are very welcome. For easier coordination you can visit the developer discussion channel on Discord: https://discord.gg/5psYsup.

If coding isn't your thing, testing games and making detailed bug reports or updating the (usually outdated) compatibility wiki is also appreciated!

Questions about Cemu's software architecture can also be answered on Discord. Alternative communication channels (like IRC) are being considered.

License

Cemu is licensed under Mozilla Public License 2.0. Exempt from this are all files in the dependencies directory for which the licenses of the original code apply as well as some individual files in the src folder, as specified in those file headers respectively.