This repository has been archived on 2026-05-10. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Jonathan Toomim 88c8042932 input_common: Redesign mouse->stick panning for better responsiveness
Previously, the mouse processing code had some issues that reduced mouse    |
control quality. No matter how you configured it or how you used the mouse,
it was impossible to be able to make both fine inputs and maximum inputs to
the control stick with the same configuration, as inputs were clamped to the
range, and *outputs* were multiplied by the sensitivity setting. It was also
impossible to make brief inputs, as two built-in exponential moving average
filters in the mouse driver caused any mouse inputs, no matter how brief, to
continue to produce stick outputs for several hundred milliseconds before
dissipating.

This commit is an attempt to address those issues. With this commit, an
entirely different model of processing inputs is used. Instead of applying
the sesnsitivity to the stick output, this commit applies the sensitivity at
the beginning of processing to the mouse input. Next, inputs from the mouse
are accumulated into a buffer variable. When the stick is updated, stick
output is clamped to the range of the stick, and that value is subtracted
from the input buffer. Any *excess* motion still remaining in the buffer gets
decayed exponentially (similar to one of the exponential moving averages
before). This gives a good compromise between responsiveness (brief mouse
movement causes a brief stick response) and inertia (large mouse movement
which exceeds the stick's instantaneous dynamic range causes stick movement
that persists for a short time afterwards, mimicking inertia). Finally, to
improve the linearity of the response, the stick motion is square-rooted to
amplify small movements.

This commit changes the semantics of the sensitivity option. It's no longer
a percent, and "100(%)" no longer means anything special, so the input
configuration UI has been changed to allow values up to 10,000 instead of
being limited to 100. The changes to the filtration also affect the
sensitivity. There are some magic constants in the code to try to keep the
sensitivity about the same with a given value, but it's not exact, and users
are encouraged to play around with it again on the new code.
2023-05-23 02:49:18 -07:00
2023-03-30 18:47:26 -03:00
2023-03-12 11:33:01 -04:00
2022-11-19 17:41:26 -05:00
2023-05-21 03:02:26 +04:00
2022-07-27 12:53:49 +02:00
2023-01-21 06:19:43 +00:00
2023-03-12 11:33:01 -04:00
2023-02-28 06:39:54 +01:00
2022-07-27 12:53:49 +02:00
2022-07-27 12:53:49 +02:00
2023-05-02 21:27:17 -04:00


yuzu
yuzu

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 GPLv3 (or any later version). Refer to the LICENSE.txt file.

S
Description
Languages
C++ 65.1%
cpp 30.6%
Kotlin 2.7%
CMake 0.7%
GLSL 0.3%
Other 0.5%