summaryrefslogtreecommitdiff
path: root/src/core
AgeCommit message (Collapse)Author
2020-11-26Merge pull request #4975 from comex/invalid-syncpoint-idbunnei
nvdrv, video_core: Don't index out of bounds when given invalid syncpoint ID
2020-11-25Implement full mouse supportgerman
2020-11-25Merge pull request #4981 from ogniK5377/ioctl-ctrlbunnei
nvservices: Reintroducee IoctlCtrl
2020-11-25Add multiple udp server supportgerman
2020-11-25Merge pull request #4976 from comex/poll-eventsRodrigo Locatti
Overhaul EmuWindow::PollEvents to fix yuzu-cmd calling SDL_PollEvents off main thread
2020-11-25hid: Check if applet_resource exists in InitializeVibrationDeviceMorph
2020-11-25Merge pull request #4978 from bunnei/shutdown-crashbunnei
core: cpu_manager: Fix shutdown crash when closing before emulation starts.
2020-11-24core: cpu_manager: Fix shutdown crash when closing before emulation starts.bunnei
2020-11-24service: am: Implement ExecuteProgram and required stubs.bunnei
- This is used by Super Mario 3D All-Stars.
2020-11-24core: loader: Implement support for loading indexed programs.bunnei
2020-11-24hle: services: Fix a crash with improper NVFlinger lifetime management. (#4977)bunnei
* hle: services: Fix a crash with improper NVFlinger lifetime management. - This crash would happen when attempting to shutdown yuzu early on in boot.
2020-11-24nvdrv, video_core: Don't index out of bounds when given invalid syncpoint IDcomex
- Use .at() instead of raw indexing when dealing with untrusted indices. - For the special case of WaitFence with syncpoint id UINT32_MAX, instead of crashing, log an error and ignore. This is what I get when running Super Mario Maker 2.
2020-11-24Merge pull request #4942 from lioncash/systemRodrigo Locatti
core: Make use of [[nodiscard]] with the System class
2020-11-24Merge pull request #4972 from lioncash/unused4Rodrigo Locatti
svc: Remove unnecessary [[maybe_unused]] tag
2020-11-24nvservices: Reintroducee IoctlCtrlChloe Marcec
Fixes regression caused by #4907 which caused games like Breath of the Wild 1.0.0 not to boot.
2020-11-23Fix warnings in core/frontend/input.h with [[maybe_unused]]bunnei
Fixes build break due to #4927
2020-11-23Merge pull request #4927 from lioncash/input-errorbunnei
input_common: Treat warnings as errors
2020-11-23Overhaul EmuWindow::PollEvents to fix yuzu-cmd calling SDL_PollEvents off ↵comex
main thread EmuWindow::PollEvents was called from the GPU thread (or the CPU thread in sync-GPU mode) when swapping buffers. It had three implementations: - In GRenderWindow, it didn't actually poll events, just set a flag and emit a signal to indicate that a frame was displayed. - In EmuWindow_SDL2_Hide, it did nothing. - In EmuWindow_SDL2, it did call SDL_PollEvents, but this is wrong because SDL_PollEvents is supposed to be called on the thread that set up video - in this case, the main thread, which was sleeping in a busyloop (regardless of whether sync-GPU was enabled). On macOS this causes a crash. To fix this: - Rename EmuWindow::PollEvents to OnFrameDisplayed, and give it a default implementation that does nothing. - In EmuWindow_SDL2, do not override OnFrameDisplayed, but instead have the main thread call SDL_WaitEvent in a loop.
2020-11-23Merge pull request #4451 from slashiee/extended-loggingbunnei
logging/settings: Increase maximum log size to 100 MB and add extended logging option
2020-11-23svc: Remove unnecessary [[maybe_unused]] tagLioncash
The parameter is used in this function, so this suppression isn't necessary.
2020-11-22input_common: Treat warnings as errorsLioncash
Migrates over warnings as errors for input common to match how the common library treats warnings as errors.
2020-11-21Merge pull request #4944 from lioncash/system-rembunnei
patch_manager: Remove usages of the global system instance
2020-11-20Merge pull request #4907 from ogniK5377/nvdrv-cleanupbunnei
core: Make nvservices more standardized
2020-11-20olsc: Move member initialization to after member functions.bunnei
2020-11-19hle: service: Stub OLSC Initialize and SetSaveDataBackupSettingEnabled ↵bunnei
functions. - Used by Animal Cross: New Horizons v1.6.0 update, minimal stub gets this update working.
2020-11-18patch_manager: Remove usages of the global system instanceLioncash
With this, only 19 usages of the global system instance remain within the core library. We're almost there.
2020-11-18core: Remove unused private Init function for the System classLioncash
This isn't used, so it can be removed.
2020-11-18core: Make use of [[nodiscard]] with the System classLioncash
Given this is a central class, we should flag cases where the return value of some functions not being used is likely a bug.
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