Commit Graph

26331 Commits

Author SHA1 Message Date
Scott Pleb
0bede93daa evdev: Correctly calculate axis range for min values greater than 0.
Axis range was previously calculated as max + abs(min), which relies on the assumption that
min will not exceed 0. For (min, max) values like (0, 255) or (-128, 127), which I assume to
be the most common cases, the range is correctly calculated as 255. However, given (20,
235), the range is erroneously calculated as 255, leading to axis values being normalized
incorrectly.

SDL already handles this case correctly. After changing the range calculation to max - min,
the axis values received from the evdev backend are practically identical to the values
received from the SDL backend.
2017-11-11 02:07:04 -05:00
Anthony
6161bda1dd
Merge pull request #6184 from lioncash/const
VideoConfig: Add const specifier to IsVSync() member function
2017-11-10 19:37:20 -08:00
Lioncash
8e654528fc VideoConfig: Add const specifier to IsVSync() member function
This member function doesn't alter VideoConfig's state.
2017-11-10 22:23:15 -05:00
Anthony
126b7ea01c
Merge pull request #6181 from hackbar/database-downgrade
Android: Handle a database downgrade.
2017-11-10 11:10:30 -08:00
Mike
74ae2522fe Android: Handle a database downgrade.
This has no effect now, as we've never bumped the database version.
Instead, it adds future proofing, and makes moving between a future
version with a bump and master clean.
2017-11-09 18:54:04 -08:00
Anthony
4dc425b9c9
Merge pull request #6158 from Tomcc/master
Improved arbitrary mipmap detection (Mario Sunshine water fix)
2017-11-09 18:06:58 -08:00
Anthony
356896d8bc
Merge pull request #6179 from JosJuice/extract-forbidden-characters
Avoid forbidden characters when extracting disc partitions
2017-11-08 15:32:35 -08:00
Anthony
965b5b6b0a
Merge pull request #6156 from hackbar/input-fix-trigger
Android: Handle duplicate axis, and ignore known bad axis.
2017-11-08 15:31:30 -08:00
JosJuice
b28e5fa347 Avoid forbidden characters when extracting disc partitions
We shouldn't try to create folder names that contain characters
such as : or / since they are forbidden or have special meanings.
(No officially released disc uses such characters, though.)
2017-11-08 12:04:59 +01:00
Markus Wick
7e7b5af4c7
Merge pull request #6173 from JosJuice/dtk-savestate
Fix DTK audio not working after loading a savestate
2017-11-08 12:03:05 +01:00
Mike
1f81e13d81 Android: Ignore joystick axis movements in the flat area.
Now that all inputs are corrected to zero-centered, we can use getFlat()
to ignore movements that are just noise.

This eliminates a lot of drift when the controller is at rest, notably
on the character select screen in Melee.
2017-11-07 17:39:56 -08:00
Mike
6787fcb712 Android: Handle duplicate axis, and fix known bad axis.
Android reports the same physical axis multiple times for analog
triggers, and this handles this case.

There are also some controllers with broken mappings (eg the analog
triggers on a PS4 DualShock 4). These axis don't center correctly.

There are also some controllers (again, the PS4) that send both a button
press and an axis movement. This ignores the buttons so we can use the
analog axis. Otherwise, since the button comes before the axis moves
far we would always take the button.
2017-11-07 17:39:56 -08:00
Anthony
d9d4bd7eef
Merge pull request #5711 from LAGonauta/latency-setting-only-on-windows
Hide audio latency setting when no backend supports it
2017-11-07 09:14:26 -08:00
LAGonauta
9e63c65c36 Also hide latency control on Qt GUI 2017-11-07 14:59:23 -02:00
LAGonauta
e7f0279ffc The latency setting now appears only if there is at least one backend
that supports it.
2017-11-07 14:56:43 -02:00
JosJuice
9e251206b2
Merge pull request #6174 from gwicks/android-ndkupdate
Android: Fix build on NDK r16b2
2017-11-07 17:31:44 +01:00
Greg Wicks
c2dcb97d06 Android: Fix NDK r16b2 build 2017-11-07 11:02:27 -05:00
Anthony
835eff15a1
Merge pull request #6162 from JosJuice/nand-check-save-game-name
When NAND is damaged, show title names from save files
2017-11-06 23:11:34 -08:00
Anthony
d378811271
Merge pull request #6165 from JosJuice/auto-ir-handling
Fix incorrect handling of auto IR
2017-11-06 23:10:53 -08:00
Anthony
66ad40074d
Merge pull request #6172 from JosJuice/remove-force-ntsc-j
Remove "Force Console as NTSC-J"
2017-11-06 23:01:27 -08:00
Anthony
98ffaf9661
Merge pull request #6151 from MayImilae/adjust-cpu-override-text
Adjust CPU Override Text
2017-11-06 22:55:36 -08:00
MaJoR
4112936bae Adjust CPU Override Text
There has been a lot of confusion about what the CPU clock override
section does among users, and looking at it… I’m not surprised! It
doesn’t directly state which CPU clock rate is being overridden!

This small change adjusts the language to clarify that the emulated CPU
is being adjusted.
2017-11-06 22:39:12 -08:00
Tommaso Checchi
aa23684d66 Improved detection: it doesn't desaturate the input anymore (woops) also it makes its own whole chain! This way it "notices" much better gradual divergences. Fixes Mario Sunshine, moss on the window in Zelda TP 2017-11-06 21:49:48 -08:00
JosJuice
b00ef39c1c Fix DTK audio not working after loading a savestate
The main problem was that the volume of the mixer wasn't savestated.
The volume is typically 0 at the beginning of a game, so loading a
savestate at the beginning of a game would lead to silent DTK audio.

I also added savestating to StreamADPCM.cpp.
2017-11-06 09:15:14 +01:00
JosJuice
88d851ca45 Remove "Force Console as NTSC-J"
Nowadays that Dolphin detects regions of discs properly and doesn't
force programs with unknown regions (such as homebrew) into running
under a certain region, the "Force Console as NTSC-J" option is
practically useless for making anything run correctly. Enabling it
is however an easy way to totally break many non-Japanese games.
2017-11-06 08:23:30 +01:00
JosJuice
5e70af1ce5
Merge pull request #6109 from t27duck/missing_wiiware_makers_2
Update maker information to match the wiki
2017-11-06 08:05:19 +01:00
Michael M
14f22ad829 Qt Mapping*: make logic around setting/loading settings more consistent
Changes:
- signal for widget value changed: sets controller setting, saves
  settings
- Update(): only updates widget from existing controller setting
- Clear(): sets controller setting, saves settings, and calls Update()
2017-11-05 11:32:23 -08:00
Michael M
cb47857e8a Rename GCPadWiiU -> GCPadWiiUConfigDialog
This name better reflects its new standalone functionality.
2017-11-05 08:04:16 -08:00
Michael M
a8b5eab4c4 Qt GCPadWiiU: standalone dialog, not subclass of MappingWidget
It uses none of the functionality of MappingWidget or the parent MappingWindow, and complicates the definition of the MappingWidget interface.
2017-11-05 08:04:16 -08:00
Michael M
27e1577da9 Qt MappingWindow: move controller type into constructor 2017-11-05 08:04:16 -08:00
Pierre Bourdon
bb38b39952
Merge pull request #6170 from JosJuice/qt-language-encoding
DolphinQt2: Fix broken language encodings on Windows
2017-11-05 16:51:01 +01:00
JosJuice
ce497e7515
Merge pull request #6169 from degasus/master
Core: Fix pragma pack usages.
2017-11-05 13:25:16 +01:00
degasus
3a36c964f5 WiimoteEmu: Don't set pack pragma for STL objects. 2017-11-05 13:13:25 +01:00
JosJuice
c39778395c DolphinQt2: Fix broken language encodings on Windows 2017-11-05 11:07:41 +01:00
degasus
47f7e5b454 WiiUtils: Be more explicit about packing. 2017-11-05 10:52:37 +01:00
Michael M
1b1dd1d749 EmulatedController: encapsulate default device behind getters/setters 2017-11-04 17:08:55 -07:00
Pierre Bourdon
bb0794715c
Merge pull request #6111 from stenzek/enable-vk-nv-glsl
Vulkan: Use VK_NV_glsl extension where available, and skip glslang
2017-11-04 17:14:28 +01:00
JosJuice
d1b20518fc Translation resources sync with Transifex 2017-11-04 15:45:44 +01:00
JosJuice
1dc2a85ccc Avoid UB when reading Wii volume names 2017-11-03 23:17:40 +01:00
JosJuice
6902bbb696 When NAND is damaged, show title names from save files
The earlier code always tried to use TitleDatabase for getting
title names, but that didn't work for disc-based games, because
there was no way to get the maker ID.
2017-11-03 23:17:36 +01:00
JosJuice
5a6d90900e Add WiiSaveBanner class
This class is similar to the BannerLoaderWii class that was
removed in ee694e32.
2017-11-03 23:00:43 +01:00
Léo Lam
18a947a1bc USB: Work around a gcc bug that affects lambdas
https://stackoverflow.com/questions/32097759
2017-11-03 19:01:49 +01:00
Léo Lam
5d82635449 USB_HIDv5: Implement CancelEndpoint 2017-11-03 19:01:48 +01:00
Léo Lam
22310dfc3e USBv5: Read transfer parameters from the correct vector
This is why static analysis is essential.
2017-11-03 19:01:48 +01:00
Léo Lam
ac3b866083 USB_HIDv5: Submit interrupt transfers to the correct endpoint
Unlike VEN, the endpoint is determined by the value at 8-12.
If it's non-zero, HID submits the request to the interrupt OUT
endpoint. Otherwise, the request is submitted to the IN endpoint.

This commit changes HIDv5 to keep track of endpoints (like IOS does)
and use them when submitting interrupt transfers.
2017-11-03 19:01:48 +01:00
Léo Lam
ff52333b14 USB: Implement HIDv5
This implements /dev/usb/hid v5, found in IOS57, IOS58 and IOS59.

This is an initial implementation that ignores some differences
with VEN because I lack understanding of what IOS is actually doing
sometimes. These are documented on the WiiBrew article:
https://wiibrew.org/wiki//dev/usb/hid_(v5)

One major difference that this implementation handles is about IDs.
It turns out Nintendo has decided to include the interface number in
the top byte of HIDv5 device IDs, unlike VEN -- even though everything
else about ioctl 1 is otherwise the same!
2017-11-03 19:01:48 +01:00
Léo Lam
180ad8076c USB: Move common USBv5 IOS code to prepare for HIDv5
USBv5 IOS resource managers share most of their code. Some ioctls
are even completely the same! So let's separate the common code
from the VEN specific stuff to make HIDv5 easier to implement.
2017-11-03 19:01:48 +01:00
Léo Lam
6bb03d900c USB: Separate the descriptor copy logic
The descriptor copy code is not actually the same in HIDv4 and VEN,
so it did not make a lot of sense to put it in USB/Common.cpp.
Separate and move it to HIDv4 and VEN.

This cleanup is important because there are even more differences
between HIDv4 and HIDv5.
2017-11-03 19:01:48 +01:00
Léo Lam
c6038155cc USB_VEN: Move internal constant to .cpp 2017-11-03 19:01:47 +01:00
Léo Lam
ef8b3cb960 USB_VEN: Construct device IDs properly
Fix the device ID struct to reflect the actual structure used by IOS.

It turns out that offset 2 is the internal device index. The reason
that field seemed to be "0x1e - interface_number" is that IOS only
keeps track of 32 devices and always looks for free entries from
the end of the internal array. With each USB interface being exposed
as a separate USBv5 device, "0x1e - interface_number" was mostly
correct... but wrong!

We also made the assumption that the interface number can be
identified from just a USBV5 device ID, which is definitely not true.
VEN (and HID) keep track of the interface number in the internal struct
instead of "reconstructing" it from the device ID (which is normally
not possible if we were generating IDs correctly)

This commit fixes all of these inaccuracies.
2017-11-03 19:01:47 +01:00