| Age | Commit message (Collapse) | Author |
|
AboutDialog: Fix compilation with ENABLE_SDL=OFF
|
|
InputCommon: return the device list directly in GetAllDevices
|
|
|
|
|
|
|
|
Loading custom textures using combination of elf/dol game ids and iso game ids.
|
|
via elf; fallback to gameid if no match
|
|
We were registering the hotplug callback when starting the thread, but
deregistering it when shutting down GCAdapter as a whole. Because the
thread can start and stop potentially many times before GCAdapter shuts
down, this led to callbacks being registered when we already have
callbacks. On Android, this was making Dolphin's Kotlin code for
registering the callback throw an IllegalStateException.
To fix this, deregister the callback when stopping the thread.
|
|
|
|
This fixes https://bugs.dolphin-emu.org/issues/14076. The issue report
more or less already says it all, but to provide a shorter summary:
We were fetching a list of vibrator IDs, but instead of passing the
vibrator ID to the vibrator manager, we passed the index of the ID in
the list. This happened to work fine on many devices, including all
devices that use DolphinVibratorManagerCompat, due to the only Vibrator
having both an index and ID of 0. But on some devices, it failed due to
the ID of the Vibrator being 1.
This fix makes us correctly pass the ID to the vibrator manager. We
still use indices in controller INI files, both for compatibility with
the controller mappings shipped with Dolphin (which use index 0) and for
backwards compatibility with older controller INI files.
|
|
|
|
Make `s_is_adapter_wanted` and the elements of `s_config_rumble_enabled`
atomic.
The CPU thread reads `s_is_adapter_wanted` and `s_config_rumble_enabled`
in `Output`, while the host thread writes to them in `RefreshConfig`.
The simplest way to trigger this race is to close the `Settings` window
while playing a game with the adapter active.
|
|
GCAdapter: Automatically start and stop thread
|
|
This keeps the logic encapsulated inside GCAdapter.cpp so callers don't
have to think about it.
|
|
Accomplished using `run-clang-tidy` with `performance-move-const-arg,performance-unnecessary-value-param,modernize-pass-by-value`.
Changed arguments to const references, removed them where inappropriate (e.g. sink parameters). Same with std::move.
Manually reviewed each change to make sure that it makes sense, and do something more appropriate if possible.
|
|
GC adapter fixes (hotplugging, claim retries, Dolphin shutdown)
|
|
|
|
|
|
|
|
Core: Add SDL Hints settings
|
|
Signed-off-by: Andrew Strauss <astrauss11@gmail.com>
|
|
|
|
Previously, when an input device was connected or disconnected, we would
recreate all devices. This commit makes it so we only touch the relevant
device instead. This matters because recreating a device causes us to
drop all held buttons for that device. Due to Android only delivering
inputs as events, we're unable to poll for currently held buttons when
recreating a device.
This recently became a problem for users of Ayn devices due to a
firmware update. Every now and then, something about the display
viewports changes, triggering an update to an input device that I assume
is a touch input device. This input device isn't something users
normally map in Dolphin's controller settings, but it changing was
causing Dolphin to drop all held buttons for the device's built-in
gamepad as well as any other connected gamepads.
|
|
Remove unused vector `controller_names` from `LoadConfig` and
`SaveConfig`. The vector has names added to it but they're never used.
Prior to d03f9032c129e440e4f07d319be8b52500798e07 these vectors were
passed to `DynamicInputTextureManager::GenerateTextures`, but that
commit removed those calls.
|
|
Yellow squiggly lines begone!
Done automatically on .cpp files through `run-clang-tidy`, with manual corrections to the mistakes.
If an import is directly used, but is technically unnecessary since it's recursively imported by something else, it is *not* removed.
The tool doesn't touch .h files, so I did some of them by hand while fixing errors due to old recursive imports.
Not everything is removed, but the cleanup should be substantial enough.
Because this done on Linux, code that isn't used on it is mostly untouched.
(Hopefully no open PR is depending on these imports...)
|
|
|
|
|
|
|
|
Fix various typos and spelling mistakes
|
|
|
|
|
|
GCAdapter: Calculate poll rate for display in UI.
|
|
when Dolphin is configured to use the adapter.
|
|
Recently came across a strange issue where Dolphin would hard crash in most games with this error:
```sh
/usr/include/c++/15.2.1/optional:1165: constexpr const _Tp* std::optional<_Tp>::operator->() const [with _Tp = InputCommon::ImagePixelData]: Assertion 'this->_M_is_engaged()' failed.
```
The culprit turned out to be accessing `host_key_image` which is an `std::optional` thay may return `std::nullopt`. I'm not sure why this issue started occuring for me since I've had no issue with my Dynamic Input Textures in the past? But this fixes a crash if the image fails to load.
|
|
every 50 reads.
|
|
|
|
Common::HookableEvent.
|
|
WiimoteEmu: Require IRPassthrough has any bound inputs to operate.
|
|
confused and mistakenly enable it.
|
|
ControllerInterface/Xlib: Combine keycodes with the same name to fix non-working inputs.
|
|
Ultimate 2" controller.
|
|
|
|
Android: Detect GCAdapter hotplug using BroadcastReceiver
|
|
Add SDL Gamepad Profile
|
|
|
|
The mentioned SDL hotplug issue seems to have been fixed.
|
|
SDL3 enables it by default now and things seem to work properly even when it's off these days.
|
|
ControllerEmu: Remove nunchuk stick data hax.
|
|
Dentomologist/controllerinterface_fix_windows_deadlock
ControllerInterface: Fix Windows deadlock
|
|
This reverts commit 74ed5e55326b9d8e67dfbb8dd6f61d04bcae2445.
It solves a problem that no longer exists.
|