aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/service
AgeCommit message (Collapse)Author
2020-11-15hid: Reimplement Begin/EndPermitVibrationSessionMorph
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.
2020-11-15controllers/npad: Load input devices on initMorph
2020-11-15general: Fix compiler warnings on linux and miscellaneous changesMorph
2020-11-15controllers/npad: Remove the old vibration filterMorph
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.
2020-11-15hid: Implement InitializeVibrationDevice and IsVibrationDeviceMountedMorph
2020-11-15input_common: Add VibrationDevice and VibrationDeviceFactoryMorph
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.
2020-11-15configure_input: Add per-player vibrationMorph
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>
2020-11-15settings: Remove global vibration strength modifierMorph
This will be replaced in favor of per-player vibration strength modifiers.
2020-11-15hid: Mark Begin/EndPermitVibrationSession as stubsMorph
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.
2020-11-15controllers/npad: Send an empty vibration on destruction/deactivationMorph
This stops all controllers from continuously vibrating when emulation is stopped.
2020-11-15hid: Stub IsVibrationDeviceMountedMorph
- Used in Super Mario Odyssey
2020-11-15controllers/npad: Add heuristics to reduce rumble state changesMorph
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.
2020-11-15configure_input: Hook up the vibration percentage spinboxMorph
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.
2020-11-15controllers/npad: Stop games from vibrating incorrect controllersMorph
Fixes vibration in 1-2 Switch and potentially other games where they would vibrate both players' joycons at the same time.
2020-11-15hid: Fix controller rumble based on new researchMorph
This fixes the issue where rumble is only sent to the first controller. Now, individual controllers can receive their own rumble commands.
2020-11-15hid: Pop a struct of parameters instead of popping individual parametersMorph
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.
2020-11-15hid: Reorder all HID commandsMorph
Reorders all HID commands in command id order.
2020-11-15hid: Implement GetVibrationDeviceInfoMorph
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.
2020-11-15hid: Stub InitializeVibrationDeviceMorph
2020-11-15controllers/npad: Rename NPadType to NpadStyleSetMorph
This more accurately represents the underlying type and avoids confusion with NpadType
2020-11-15controllers/npad: Add DeviceHandle structMorph
A DeviceHandle describes a vibration device or six-axis sensor based on the npad type, npad id, and device index/position
2020-11-15settings: Preparation for per-game input settingsMorph
2020-11-15controllers/npad: Connect a controller on init if none are connectedMorph
2020-11-12Merge pull request #4895 from Morph1984/cave-story-plus-applet-fixbunnei
applets/controller: Introduce additional checks for mode and caller
2020-11-09Merge pull request #4901 from bunnei/caps-stubbunnei
hle: service: caps_u: Stub GetAlbumFileList3AaeAruid.
2020-11-08ipc_helpers: Remove usage of the global system instanceLioncash
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.
2020-11-08applets: Rename LibraryAppletVersion to ControllerAppletVersionMorph
2020-11-08applets/controller: Pop normal data for StrapGuide and FirmwareUpdateMorph
2020-11-08applets/controller: Introduce additional checks for mode and callerMorph
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.
2020-11-08applets/controller: Add ControllerUpdateFirmwareArg structMorph
2020-11-07video_core: dma_pusher: Remove integrity check on command lists.bunnei
- This seems to cause softlocks in Breath of the Wild.
2020-11-06hle: service: caps_u: Stub GetAlbumFileList3AaeAruid.bunnei
- 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.
2020-11-04Merge pull request #4858 from lioncash/initializerbunnei
General: Resolve a few missing initializer warnings
2020-11-04Merge pull request #4869 from bunnei/improve-gpu-syncChloe
Improvements to GPU synchronization & various refactoring
2020-11-03Merge pull request #4878 from bunnei/unload-nrrbunnei
hle: service: ldr: Implement UnloadNrr.
2020-11-01fixup! hle service: nvdrv: nvhost_gpu: Update to use SyncpointManager and ↵bunnei
other improvements.
2020-11-01 hle service: nvdrv: nvhost_gpu: Update to use SyncpointManager and other ↵bunnei
improvements. - Refactor so that SubmitGPFIFO and KickoffPB use shared functionality. - Implement add_wait and add_increment flags.
2020-11-01service: hle: nvflinger: Fix potential shutdown crash when GPU is destroyed.bunnei
2020-11-01hle service: nvdrv: nvhost_ctrl: Update to use SyncpointManager.bunnei
2020-11-01hle service: nvdrv: Update to instantiate SyncpointManager.bunnei
2020-11-01hle: service: nvdrv: Implement SyncpointManager, to manage syncpoints.bunnei
2020-11-01Rename to align with switchbrew and remove gpu function (#4714)Levi Behunin
* Rename to align with switchbrew * Rename to align with switchbrew and remove gpu function that checks if clearing should be done.
2020-10-31hle: service: ldr: Implement UnloadNrr.bunnei
- Used by Final Fantasy X/X-2 HD Remaster.
2020-10-30video_core: unbreak -Werror in NVDEC with ClangJan Beich
src/core/hle/service/nvdrv/devices/nvhost_nvdec_common.cpp:41:15: error: unused variable 'OutOfMemory' [-Werror,-Wunused-const-variable] constexpr u32 OutOfMemory{static_cast<u32>(-12)}; ^
2020-10-29General: Resolve a few missing initializer warningsLioncash
Resolves a few -Wmissing-initializer warnings.
2020-10-27service: Update function tablesLioncash
Updates function tables according to info on SwitchBrew.
2020-10-26Merge pull request #4729 from ameerj/nvdec-prodbunnei
video_core: NVDEC Implementation
2020-10-26video_core: NVDEC Implementationameerj
This commit aims to implement the NVDEC (Nvidia Decoder) functionality, with video frame decoding being handled by the FFmpeg library. The process begins with Ioctl commands being sent to the NVDEC and VIC (Video Image Composer) emulated devices. These allocate the necessary GPU buffers for the frame data, along with providing information on the incoming video data. A Submit command then signals the GPU to process and decode the frame data. To decode the frame, the respective codec's header must be manually composed from the information provided by NVDEC, then sent with the raw frame data to the ffmpeg library. Currently, H264 and VP9 are supported, with VP9 having some minor artifacting issues related mainly to the reference frame composition in its uncompressed header. Async GPU is not properly implemented at the moment. Co-Authored-By: David <25727384+ogniK5377@users.noreply.github.com>
2020-10-26hle: services: TimeZoneContentManager: This can be made explicit.bunnei
2020-10-25Merge pull request #4828 from lioncash/lockguardRodrigo Locatti
general: Use template deduction guides for lock_guard