| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Upon further investigation, these commands allow temporary vibrations even when the "Controller Vibration" system setting is disabled. As a result, vibrations are allowed when either the system setting or this flag is set to true. Therefore, we can only block vibrations when both flags are set to false.
|
| |
|
| |
|
|
|
|
| |
Previously we used a vibration filter that filters out amplitudes close to each other. It turns out there are cases where this results into vibrations that are too inaccurate. Remove this and move the 100Hz vibration filter (Only allowing a maximum of 100 vibrations per second) from sdl_impl to npad when enable_accurate_vibrations is set to false.
|
| |
|
|
|
|
|
|
| |
A vibration device is an input device that returns an unsigned byte as status.
It represents whether the vibration device supports vibration or not.
If the status returns 1, it supports vibration. Otherwise, it does not support vibration.
|
|
|
|
|
|
|
| |
Allows for enabling and modifying vibration and vibration strength per player.
Also adds a toggle for enabling/disabling accurate vibrations.
Co-authored-by: Its-Rei <kupfel@gmail.com>
|
|
|
|
| |
This will be replaced in favor of per-player vibration strength modifiers.
|
|
|
|
| |
The implementation of these commands seem incomplete and causes rumble in Super Mario Party to stop working since only EndPermitVibrationSession is called. Thus, these are better off being marked as a stub until this can be investigated more thoroughly.
|
|
|
|
| |
This stops all controllers from continuously vibrating when emulation is stopped.
|
|
|
|
|
| |
Sending too many state changes in a short period of time can cause massive performance issues.
As a result, we have to use several heuristics to reduce the number of state changes to minimize/eliminate this performance impact while maintaining the quality of these vibrations as much as possible.
|
|
|
|
|
| |
This allows setting the vibration strength percentage anywhere from 1% to 100%.
Also hooks up the remaining motion button and checkbox in the Controller Applet.
|
|
|
|
| |
Fixes vibration in 1-2 Switch and potentially other games where they would vibrate both players' joycons at the same time.
|
|
|
|
|
| |
This fixes the issue where rumble is only sent to the first controller.
Now, individual controllers can receive their own rumble commands.
|
|
|
|
| |
Reorders all HID commands in command id order.
|
|
|
|
| |
This more accurately represents the underlying type and avoids confusion with NpadType
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Recent changes to the build system that made more warnings be flagged as
errors caused building via clang to break.
Fixes #4795
|
|
|
|
|
|
|
|
|
| |
Makes our error coverage a little more consistent across the board by
applying it to Linux side of things as well. This also makes it more
consistent with the warning settings in other libraries in the project.
This also updates httplib to 0.7.9, as there are several warning
cleanups made that allow us to enable several warnings as errors.
|
|\
| |
| | |
hid: Stub HomeButtonInputProtection service commands
|
| |
| |
| |
| | |
- Used in 1-2 Switch. Given that we do not emulate the functionality of the home button yet, we can stub this for now.
|
| | |
|
|\ \
| |/
|/| |
input_common: First implementation of controller rumble
|
| | |
|
|/ |
|
|\
| |
| | |
hid: Implement Get/SetNpadHandheldActivationMode
|
| |
| |
| |
| | |
- Used in Clubhouse Games: 51 Worldwide Classics
|
|\ \
| |/
|/| |
hid/configuration: Implement motion controls to HID
|
| |
| |
| |
| |
| | |
This allows toggling motion on or off, and allows access to the motion configuration.
Also changes the [waiting] text for motion buttons to Shake! as this is how motion is connected to a player.
|
| | |
|
| | |
|
| |
| |
| |
| | |
Simplifies the motion assignment in the Dual Joycon entry and assigns index 1 of the motion entry (Motion 2) for the right joycon.
|
| | |
|
|\ \
| |/
|/| |
Project Mjölnir: Part 2 - Controller Applet
|
| |
| |
| |
| | |
Implement the fallback applet for the SDL frontend, connecting only the minimum amount of players required.
|
| |
| |
| |
| | |
Co-authored-by: Its-Rei <kupfel@gmail.com>
|
|/
|
|
| |
- Used in multiple games such as Super Mario Odyssey.
|
| |
|
|
|
|
| |
This allows homebrew applications to be able to properly detect connected controllers.
|
| |
|
|
|
|
|
| |
Co-authored-by: James Rowe <jroweboy@gmail.com>
Co-authored-by: Its-Rei <kupfel@gmail.com>
|
|
|
|
|
| |
We can amend one of the cascade macros to require semicolons in order to
compile. In other cases, we can just remove the superfluous semicolons.
|
|
|
|
|
|
|
| |
This commit: Implements CPU Interrupts, Replaces Cycle Timing for Host
Timing, Reworks the Kernel's Scheduler, Introduce Idle State and
Suspended State, Recreates the bootmanager, Initializes Multicore
system.
|
|
|
|
| |
- Used by Captain Toad Treasure Tracker
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
* kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for kernel objects.
- See https://github.com/citra-emu/citra/pull/4710 for details.
|
|
|
|
|
|
|
|
| |
- This does not actually seem to exist in the real kernel - games reset these automatically.
# Conflicts:
# src/core/hle/service/am/applets/applets.cpp
# src/core/hle/service/filesystem/fsp_srv.cpp
|
|
|
|
|
|
| |
We should be setting the connection state to true, otherwise we aren't
actually making the controllers connected like the function name
indicates.
|
|
|
|
|
|
|
| |
While not an issue, it does prevent fallthrough from occurring if
anything is ever added after this case (unlikely to occur, but this
turns a trivial "should not cause issues" into a definite "won't cause
issues).
|
|
|
|
|
|
| |
Performs the same behavior, but is built into the core language itself.
No functional change.
|
|
|
|
|
|
| |
The const qualified variant can also be called in non-const contexts, so
we can remove the non-const variant to eliminate a bit of code
duplication.
|
| |
|
|
|
|
| |
We should signal when a net controller is added and our event should be manual, not automatic.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
StartLrAssignmentMode and StopLrAssignmentMode don't require any implementation as it's just used for showing the screen of changing the controller orientation if the user wishes to do so. Ever since #1634 this has not been needed as users can specify the controller orientation from the config and swap at any time. We store a private member just in case this gets used for anything extra in the future
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Renames the members to more accurately indicate what they signify.
"OneShot" and "Sticky" are kind of ambiguous identifiers for the reset
types, and can be kind of misleading. Automatic and Manual communicate
the kind of reset type in a clearer manner. Either the event is
automatically reset, or it isn't and must be manually cleared.
The "OneShot" and "Sticky" terminology is just a hold-over from Citra
where the kernel had a third type of event reset type known as "Pulse".
Given the Switch kernel only has two forms of event reset types, we
don't need to keep the old terminology around anymore.
|
|
|
|
|
|
|
|
|
|
|
| |
Gets rid of the largest set of mutable global state within the core.
This also paves a way for eliminating usages of GetInstance() on the
System class as a follow-up.
Note that no behavioral changes have been made, and this simply extracts
the functionality into a class. This also has the benefit of making
dependencies on the core timing functionality explicit within the
relevant interfaces.
|
|
|
|
|
|
| |
Places all of the timing-related functionality under the existing Core
namespace to keep things consistent, rather than having the timing
utilities sitting in its own completely separate namespace.
|
| |
|
| |
|
|
|
|
|
| |
- This was incorrect, the game appears to handle this for us.
- Fixes horizontal mode with Puyo Puyo Tetris and Super Mario Odyssey.
|
|\
| |
| | |
kernel: Divide Event into ReadableEvent and WritableEvent
|
| | |
|
| | |
|
|/
|
|
| |
fixed crash due to handheld
|
|\
| |
| | |
Changed logging to be "Log before execution", Added more error logging, all services/svc should now log on some level
|
| | |
|
|/ |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
* Fixed priority switching edge case for handheld
We accidently used controller index instead of npad id
* Moved NPadIdToIndex
|
| |
|
|
|
|
| |
Fixes input for megaman
|
|
|
|
| |
This should fix crashes when launching multiple games in yuzu
|
|
|
|
|
| |
This also gets rid of variable shadowing related to the lambda parameter
a little bit below this code as well.
|
|
|
|
| |
This is a subset of the better-hid-2 changes, this fixes input in various games which don't support dual joycons. This pr will search for the next best controller which is supported by the current game
|
|
|
|
|
|
| |
swap.h only needs to be present in the header for the type aliases and
definitions, it's not actually needed in the cpp files though. input.h
is just unused entirely in xpad.h
|
|
|
|
| |
This is only useful in headers.
|
|
|
|
|
| |
This is just a lookup table, and since it's private, there's nothing
really stateful about it, so we can just move it into the cpp file.
|
|
|
|
| |
This literally does nothing.
|
|
|
|
|
|
| |
These classes are non-trivial and are definitely going to be changed in
the future, so we default these to prevent issues with forward
declarations, and to keep the compiler from inlining tear-down code.
|
|
|
|
| |
Reason for the change is to allow both docked and undocked mode to work
|
| |
|
|
|
|
| |
Kirby input still doesn't work, should fix a lot of other games
|
|
|
|
| |
Used by Mario Party
|
|
|
|
| |
HandheldVariant is for specific games which expect handheld controllers to be at position 8(kirby), however this doesn't fix all games as some games require handhelds to be at position 0(snipperclips)
|
| |
|
|
|
|
| |
Fixes arms
|
| |
|
|
|