Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Changes
This PR changes the way that haptics work when using an
InputView
. The ultimate goal is to make clearer when inputs are being released and maxed out, and the thumbstick haptics have accordingly been redone entirely to better mimic the sensations of a real eight-pointed N64, GCN, or Wii joystick.Button haptics changes
light
haptic is played (which is softer than the button press haptic,medium
). This makes it easier to tell when buttons have been lifted, which can be particularly helpful in some racing games where accelerate and brake are pressed and released repeatedly.Thumbstick haptics changes
rigid
haptic is played and the user knows that they cannot go any further; also made it so that if the stick moves along the edge, arigid
haptic is played for each new octant that is entered. Octants are defined such that octant0
is (0, π/4), octant1
is (π/4, π/2), and so on (the inner deadzone counts asnil
). This was done to mimic the feel of the tapping of the stick and the hard plastic enclosure.soft
haptic is played for each new octant that is entered. This was done to mimic the soft tactile sensation when moving a stick along the interior, but in eight slices rather than the previous four (which matches the behavior of a real stick).soft
haptic play when the stick is removed from or reintroduced into the inner dead zone. The exception to this is when the stick is released from outside of the inner deadzone and snaps back to the origin, alight
haptic is played. Previously, this release was amedium
haptic, which could be confused with themedium
haptic used for a button on press.0.1
extending upward and sideways rather than a circle with radius0.1
; this is inconsistent with some other emulators and leads to unintended directional snapping and incorrect haptic behavior when moving up and away from the center or moving from one quadrant to another (these deadzones would often cause the haptics to fail to trigger at all).Testing