summaryrefslogtreecommitdiff
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | | | | | | | Merge pull request #4951 from bunnei/olsc-stubGravatar bunnei2020-11-206-0/+91
|\ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | hle: service: Stub OLSC Initialize and SetSaveDataBackupSettingEnabled functions.
| * | | | | | | | | | | olsc: Move member initialization to after member functions.Gravatar bunnei2020-11-201-2/+2
| | | | | | | | | | | |
| * | | | | | | | | | | hle: service: Stub OLSC Initialize and SetSaveDataBackupSettingEnabled ↵Gravatar bunnei2020-11-196-0/+91
| |/ / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | functions. - Used by Animal Cross: New Horizons v1.6.0 update, minimal stub gets this update working.
* | | | | | | | | | | Merge pull request #4941 from lioncash/configGravatar Morph2020-11-201-1/+1
|\ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | configure_input_player: Use static qualifier for IsProfileNameValid()
| * | | | | | | | | | | configure_input_player: Use static qualifier for IsProfileNameValid()Gravatar Lioncash2020-11-171-1/+1
| | |_|_|/ / / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a static member function, so we don't need use an existing instance to call this function.
* | | | | | | | | | | Merge pull request #4950 from german77/RumbleStrenghtGravatar LC2020-11-202-4/+3
|\ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Modify rumble amplification
| * | | | | | | | | | | Modify rumble amplificationGravatar german772020-11-192-4/+3
| | |/ / / / / / / / / | |/| | | | | | | | |
* | | | | | | | | | | Merge pull request #4952 from ReinUsesLisp/bit-castGravatar LC2020-11-202-0/+23
|\ \ \ \ \ \ \ \ \ \ \ | |_|_|/ / / / / / / / |/| | | | | | | | | | common/bit_cast: Add function matching std::bit_cast without constexpr
| * | | | | | | | | | common/bit_cast: Add function matching std::bit_cast without constexprGravatar ReinUsesLisp2020-11-202-0/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a std::bit_cast-like function archiving the same runtime results as the standard function, without compile time support. This allows us to use bit_cast while we wait for compiler support, it can be trivially replaced in the future.
* | | | | | | | | | | Merge pull request #4308 from ReinUsesLisp/maxwell-3d-funcsGravatar Rodrigo Locatti2020-11-202-151/+122
|\ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / |/| | | | | | | | | | maxwell_3d: Move code to separate functions and insert instead of push_back
| * | | | | | | | | | maxwell_3d: Use insert instead of loop push_backGravatar ReinUsesLisp2020-11-111-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reduces the overhead of bounds checking on each element. It won't reduce the cost of allocation because usually this vector's capacity is usually large enough to hold whatever we push to it.
| * | | | | | | | | | maxwell_3d: Move code to separate functionsGravatar ReinUsesLisp2020-11-112-151/+124
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Deduplicate some code and put it in separate functions so it's easier to understand and profile.
* | | | | | | | | | | virtual_buffer: Do nothing on resize() calls with same sizesGravatar Lioncash2020-11-191-1/+6
| |/ / / / / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prevents us from churning memory by freeing and reallocating a memory block that would have already been adequate as is.
* | | | | | | | | | Merge pull request #4936 from lioncash/pageGravatar bunnei2020-11-184-12/+37
|\ \ \ \ \ \ \ \ \ \ | |_|/ / / / / / / / |/| | | | | | | | | page_table: Allow page tables to be moved
| * | | | | | | | | virtual_buffer: Add compile-time type-safety guarantees with VirtualBufferGravatar Lioncash2020-11-171-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | VirtualBuffer makes use of VirtualAlloc (on Windows) and mmap() (on other platforms). Neither of these ensure that non-trivial objects are properly constructed in the allocated memory. To prevent potential undefined behavior occurring due to that, we can add a static assert to loudly complain about cases where that is done.
| * | | | | | | | | page_table: Allow page tables to be movedGravatar Lioncash2020-11-174-9/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Makes page tables and virtual buffers able to be moved, but not copied, making the interface more flexible. Previously, with the destructor specified, but no move assignment or constructor specified, they wouldn't be implicitly generated.
| * | | | | | | | | page_table: Add missing doxygen parameters to Resize()Gravatar Lioncash2020-11-171-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Resolves two -Wdocumentation warnings.
| * | | | | | | | | page_table: Remove unnecessary header inclusionsGravatar Lioncash2020-11-171-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prevents indirect inclusions for these headers.
* | | | | | | | | | Merge pull request #4866 from Morph1984/mjolnir-p3-prodGravatar bunnei2020-11-1766-1431/+3265
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | Project Mjölnir: Part 3 - Controller Profiles and Vibration Rework
| * | | | | | | | | | sdl_impl: Pump SDL Events at 1000 HzGravatar Morph2020-11-151-1/+1
| | | | | | | | | | |
| * | | | | | | | | | configure_input: Accommodate for the mouse input device engineGravatar Morph2020-11-152-2/+18
| | | | | | | | | | |
| * | | | | | | | | | 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
| | | | | | | | | | |
| * | | | | | | | | | configure_input: Update the input profiles for other player tabsGravatar Morph2020-11-154-11/+38
| | | | | | | | | | |
| * | | | | | | | | | general: Fix compiler warnings on linux and miscellaneous changesGravatar Morph2020-11-1512-22/+31
| | | | | | | | | | |
| * | | | | | | | | | sdl_impl: Revert to the "old" method of mapping sticksGravatar Morph2020-11-153-33/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Not all controllers have a SDL_GameController binding. This caused controllers not present in the SDL GameController database to have buttons mapped instead of axes. Furthermore, it was not possible to invert the axes when it could be useful such as emulating a horizontal single joycon or other potential cases. This allows us to invert the axes by reversing the order of mapping (vertical, then horizontal).
| * | | | | | | | | | applets/controller: Change the input button to create input profilesGravatar Morph2020-11-1510-100/+117
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Co-authored-by: Its-Rei <kupfel@gmail.com>
| * | | | | | | | | | controllers/npad: Remove the old vibration filterGravatar Morph2020-11-154-65/+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.
| * | | | | | | | | | input: Disconnect a controller prior to connecting a new oneGravatar Morph2020-11-152-50/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some games do not respond to a change in controller type if 1) The controller is not disconnected prior to being reconnected and/or 2) The controller is reconnected instantly after being disconnected. Since it is not possible to change controllers instantly on hardware and requiring a disconnect prior to connecting a new one, we should emulate this as well with a small delay, fixing the aforementioned issue.
| * | | | | | | | | | hid: Implement InitializeVibrationDevice and IsVibrationDeviceMountedGravatar Morph2020-11-153-12/+66
| | | | | | | | | | |
| * | | | | | | | | | input_common: Add VibrationDevice and VibrationDeviceFactoryGravatar Morph2020-11-1519-101/+327
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-1516-28/+730
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-159-19/+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-153-35/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-1511-3/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | | | | | | | | | configure_input_player: Change "Defaults" button behaviorGravatar Morph2020-11-152-35/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | RestoreDefaults() now restores the selected devices' mappings using UpdateMappingWithDefaults(). This allows us to move the keyboard mapping from RestoreDefaults() to UpdateMappingWithDefaults().
| * | | | | | | | | | settings: Preparation for per-game input settingsGravatar Morph2020-11-1519-115/+167
| | | | | | | | | | |
| * | | | | | | | | | udp/client: Reduce testing period to 5 secondsGravatar Morph2020-11-151-1/+1
| | | | | | | | | | |
| * | | | | | | | | | config: Migrate config files into config/customGravatar Morph2020-11-154-21/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Co-authored-by: lat9nq <lat9nq@virginia.edu>