summaryrefslogtreecommitdiff
path: root/src/core (follow)
Commit message (Collapse)AuthorAgeFilesLines
* hid: Reimplement Begin/EndPermitVibrationSessionGravatar Morph2020-11-153-5/+17
| | | | 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.
* controllers/npad: Load input devices on initGravatar Morph2020-11-151-0/+2
|
* general: Fix compiler warnings on linux and miscellaneous changesGravatar Morph2020-11-152-8/+11
|
* controllers/npad: Remove the old vibration filterGravatar Morph2020-11-153-50/+64
| | | | 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.
* hid: Implement InitializeVibrationDevice and IsVibrationDeviceMountedGravatar Morph2020-11-153-12/+66
|
* input_common: Add VibrationDevice and VibrationDeviceFactoryGravatar Morph2020-11-154-33/+34
| | | | | | 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.
* configure_input: Add per-player vibrationGravatar Morph2020-11-152-2/+12
| | | | | | | 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>
* settings: Remove global vibration strength modifierGravatar Morph2020-11-153-5/+1
| | | | This will be replaced in favor of per-player vibration strength modifiers.
* hid: Mark Begin/EndPermitVibrationSession as stubsGravatar Morph2020-11-153-18/+4
| | | | 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.
* controllers/npad: Send an empty vibration on destruction/deactivationGravatar Morph2020-11-153-22/+38
| | | | This stops all controllers from continuously vibrating when emulation is stopped.
* hid: Stub IsVibrationDeviceMountedGravatar Morph2020-11-152-1/+23
| | | | - Used in Super Mario Odyssey
* controllers/npad: Add heuristics to reduce rumble state changesGravatar Morph2020-11-152-6/+47
| | | | | 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.
* configure_input: Hook up the vibration percentage spinboxGravatar Morph2020-11-153-1/+4
| | | | | 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.
* controllers/npad: Stop games from vibrating incorrect controllersGravatar Morph2020-11-151-0/+10
| | | | Fixes vibration in 1-2 Switch and potentially other games where they would vibrate both players' joycons at the same time.
* hid: Fix controller rumble based on new researchGravatar Morph2020-11-153-43/+69
| | | | | This fixes the issue where rumble is only sent to the first controller. Now, individual controllers can receive their own rumble commands.
* hid: Pop a struct of parameters instead of popping individual parametersGravatar Morph2020-11-151-103/+237
| | | | | Some parameters need to be doubleword aligned due to the presence of the applet_resource_user_id. Previously, this value was invalid in many commands where it was not doubleword aligned when popped.
* hid: Reorder all HID commandsGravatar Morph2020-11-155-217/+232
| | | | Reorders all HID commands in command id order.
* hid: Implement GetVibrationDeviceInfoGravatar Morph2020-11-152-3/+39
| | | | | | | | | | The first u32 describes the vibration device type which is a Linear Resonant Actuator used in Nintendo Switch controller hardware. The second u32 describes the vibration device position, in this case distinguishing between left and right vibration actuators. Pro Controllers have 2 LRAs each that can vibrate independently of each other, which means they have 2 distinct vibration device handles to distinguish between the two actuators. Similarly for joycons, the left joycon can be distinguished from the right joycon through the vibration device handle since each joycon has 1 LRA.
* hid: Stub InitializeVibrationDeviceGravatar Morph2020-11-151-3/+11
|
* controllers/npad: Rename NPadType to NpadStyleSetGravatar Morph2020-11-153-9/+9
| | | | This more accurately represents the underlying type and avoids confusion with NpadType
* controllers/npad: Add DeviceHandle structGravatar Morph2020-11-151-27/+50
| | | | A DeviceHandle describes a vibration device or six-axis sensor based on the npad type, npad id, and device index/position
* settings: Preparation for per-game input settingsGravatar Morph2020-11-1511-41/+89
|
* controllers/npad: Connect a controller on init if none are connectedGravatar Morph2020-11-151-0/+13
|
* Merge pull request #4895 from Morph1984/cave-story-plus-applet-fixGravatar bunnei2020-11-122-26/+80
|\ | | | | applets/controller: Introduce additional checks for mode and caller
| * applets: Rename LibraryAppletVersion to ControllerAppletVersionGravatar Morph2020-11-082-15/+15
| |
| * applets/controller: Pop normal data for StrapGuide and FirmwareUpdateGravatar Morph2020-11-082-6/+19
| |
| * applets/controller: Introduce additional checks for mode and callerGravatar Morph2020-11-082-5/+39
| | | | | | | | | | Some games like Cave Story+ set invalid values in the ControllerPrivateArg's mode and caller fields. Use other fields to determine the appropriate mode and caller should either or both fields be invalid.
| * applets/controller: Add ControllerUpdateFirmwareArg structGravatar Morph2020-11-081-0/+7
| |
* | Merge pull request #4901 from bunnei/caps-stubGravatar bunnei2020-11-092-9/+17
|\ \ | | | | | | hle: service: caps_u: Stub GetAlbumFileList3AaeAruid.
| * | hle: service: caps_u: Stub GetAlbumFileList3AaeAruid.Gravatar bunnei2020-11-062-9/+17
| | | | | | | | | | | | | | | | | | - This works similiar to GetAlbumContentsFileListForApplication. - Since we do not implement the album, this should be safe to stub for now. - Used by Super Smash Bros. Ultimate (newer updates) in World of Light.
* | | Merge pull request #4909 from lioncash/interruptGravatar Rodrigo Locatti2020-11-081-2/+2
|\ \ \ | | | | | | | | cpu_interrupt_handler: Mark move contructor/assignment as deleted
| * | | cpu_interrupt_handler: Mark move contructor/assignment as deletedGravatar Lioncash2020-11-081-2/+2
| | |/ | |/| | | | | | | | | | | | | | | | | | | The interrupt handler contains a std::atomic_bool, which isn't copyable or movable, so the special move member functions will always be deleted, despite being defaulted. This can resolve warnings on clang and GCC.
* / | ipc_helpers: Remove usage of the global system instanceGravatar Lioncash2020-11-0816-7/+23
|/ / | | | | | | | | | | | | | | | | Resolves numerous deprecation warnings throughout the codebase due to inclusion of this header. Now building core should be significantly less noisy (and also relying on less global state). This also uncovered quite a few modules that were relying on indirect includes, which have also been fixed.
* | Merge pull request #4903 from bunnei/remove-gpu-integrityGravatar bunnei2020-11-081-1/+0
|\ \ | | | | | | video_core: dma_pusher: Remove integrity check on command lists.
| * | video_core: dma_pusher: Remove integrity check on command lists.Gravatar bunnei2020-11-071-1/+0
| | | | | | | | | | | | - This seems to cause softlocks in Breath of the Wild.
* | | Merge pull request #4906 from lat9nq/log-cpu-accuracyGravatar LC2020-11-071-0/+1
|\ \ \ | |/ / |/| | settings: log value of CPU_Accuracy
| * | settings: log value of CPU_AccuracyGravatar lat9nq2020-11-071-0/+1
| |/
* | Merge pull request #4888 from lioncash/unicorn-removeGravatar bunnei2020-11-068-412/+15
|\ \ | |/ |/| core: Remove usage of unicorn
| * core: Remove usage of unicornGravatar Lioncash2020-11-038-412/+15
| | | | | | | | | | | | | | | | Unicorn long-since lost most of its use, due to dynarmic gaining support for handling most instructions. At this point any further issues encountered should be used to make dynarmic better. This also allows us to remove our dependency on Python.
* | settings: Simplify initializer of resolution factorGravatar Lioncash2020-11-051-1/+1
| | | | | | | | | | This can use a braced initializer to accomplish the same thing with less code.
* | Merge pull request #4889 from lioncash/setting-globalGravatar bunnei2020-11-042-10/+21
|\ \ | | | | | | core/settings: Move configuring_global behind an API
| * | core/settings: Move configuring_global behind an APIGravatar Lioncash2020-11-042-10/+21
| |/ | | | | | | | | | | Rather than have directly modified global state here, we can make it an implementation detail and have an interface that changes are queried through.
* | Merge pull request #4858 from lioncash/initializerGravatar bunnei2020-11-042-2/+14
|\ \ | | | | | | General: Resolve a few missing initializer warnings
| * | General: Resolve a few missing initializer warningsGravatar Lioncash2020-10-292-2/+14
| | | | | | | | | | | | Resolves a few -Wmissing-initializer warnings.
* | | Merge pull request #4869 from bunnei/improve-gpu-syncGravatar Chloe2020-11-0411-64/+299
|\ \ \ | |_|/ |/| | Improvements to GPU synchronization & various refactoring
| * | fixup! hle service: nvdrv: nvhost_gpu: Update to use SyncpointManager and ↵Gravatar bunnei2020-11-012-3/+11
| | | | | | | | | | | | other improvements.
| * | core: Initialize GPU before services.Gravatar bunnei2020-11-011-4/+6
| | |
| * | hle service: nvdrv: nvhost_gpu: Update to use SyncpointManager and other ↵Gravatar bunnei2020-11-013-46/+106
| | | | | | | | | | | | | | | | | | | | | improvements. - Refactor so that SubmitGPFIFO and KickoffPB use shared functionality. - Implement add_wait and add_increment flags.
| * | service: hle: nvflinger: Fix potential shutdown crash when GPU is destroyed.Gravatar bunnei2020-11-011-0/+4
| | |
| * | hle service: nvdrv: nvhost_ctrl: Update to use SyncpointManager.Gravatar bunnei2020-11-013-9/+31
| | |