Commit Graph

26504 Commits

Author SHA1 Message Date
JosJuice aee9c7390d
Merge pull request #8699 from howard0su/cleanup_move
Cleanup warnings of -Wpessimizing-move
2020-03-23 19:58:13 +01:00
JosJuice a6d1fe59a3
Merge pull request #8693 from howard0su/warning_xinpu
InputCommon: cleanup warnings of -Wclass-memaccess
2020-03-23 19:18:08 +01:00
JosJuice 6fab09951b
Merge pull request #8692 from howard0su/warning_unused
Cleanup warnings of -Wunused-[const]-variable
2020-03-23 19:10:52 +01:00
JosJuice 623a50786d
Merge pull request #8702 from sl1pkn07/Qt5.15
Fix build with Qt 5.15+
2020-03-23 18:35:09 +01:00
sL1pKn07 4f7ea79ae4 Fix build with Qt 5.15+ 2020-03-23 17:58:39 +01:00
Jun Su 0bd6016ad0 Wiimote: Cleanup warnings of -Wmissing-variable-declarations
While I am here, make g_wiimote_scanner as static as well.
2020-03-23 16:43:21 +08:00
Jun Su fb7fbb4a7b NoGUI: missing override keyword GetWindowSystemInfo 2020-03-23 16:35:45 +08:00
Jun Su 964a2e1e70 Cleanup warnings of -Wpessimizing-move
moving a temporary object prevents copy elision. Remove std::move.
2020-03-23 16:31:15 +08:00
Jun Su 500820b352 Cleanup warnings of -Wunused-const-variable 2020-03-23 16:28:25 +08:00
Jun Su 997cfa49fc InputCommon: cleanup warnings of -Wclass-memaccess
Initialize m_state with the default constructor.
2020-03-23 14:26:36 +08:00
Jun Su 7c7a41ecd8 Cleanup warnings of -Wunused-variable
remove unused variables.
2020-03-23 14:24:27 +08:00
Jun Su d44c51b30c DiscIO: cleanup warnings of -Wmaybe-uninitialized
replace {} with std::nullopt.
2020-03-23 14:14:00 +08:00
AlexApps99 d6fb0b44d7 Parse arguments before Qt 2020-03-22 17:49:32 +13:00
Sepalani 9ec5391bfb Improve "Generate Symbols From > RSO Modules"
Add auto-detection option
2020-03-21 12:03:12 +04:00
Admiral H. Curtiss 303b18ddaf Qt/CodeWidget: Typo in settings key. 2020-03-20 20:51:26 +01:00
Florian Bach cba4acc54b SettingsHandler: Always decode the whole settings.txt file 2020-03-20 16:08:25 +01:00
Mat M 9ac28054df
Merge pull request #8678 from JosJuice/setting-txt-code-default
Boot: Change pre-defined setting.txt CODE values
2020-03-20 02:06:07 -04:00
Silent 4a438db2c9
Qt/GameListModel: Use native separators in File Path column 2020-03-19 18:03:35 +01:00
JosJuice 21d6c0a11a Boot: Change pre-defined setting.txt CODE values
As suggested by
https://github.com/dolphin-emu/dolphin/pull/8673#discussion_r394945753
2020-03-19 13:05:44 +01:00
Léo Lam 53c34d962d
Merge pull request #8665 from AdmiralCurtiss/debugger_columns
Qt/CodeViewWidget: Make columns resizable by the user and set sensible defaults.
2020-03-19 01:40:30 +01:00
Admiral H. Curtiss e8dfb8f78d Qt/CodeViewWidget: Make columns resizable by the user and set sensible defaults. 2020-03-18 22:27:53 +01:00
Léo Lam 4711b76cc4
Merge pull request #8655 from Techjar/fix-hotkey-groups
Core/HotkeyManager: Fix group names in config
2020-03-18 12:03:07 +01:00
Léo Lam bb430fb5a5
Merge pull request #8675 from Pokechu22/disc-update
Fix Load Wii System Menu not updating after performing a disc update
2020-03-18 11:54:07 +01:00
Léo Lam d1e8e3e903
Merge pull request #8671 from leoetlino/bt-passthrough-error
BTReal: Improve error handling for device opening
2020-03-18 11:52:22 +01:00
Pokechu22 c59120f089 Fix Load Wii System Menu not updating after performing a disc update
For a fresh install, the button was completely disabled even after the disc update; otherwise, the text on it was just out of date.
2020-03-17 19:59:48 -07:00
Jordan Woyak 099e6bfab9 DolphinQt: Fix gyro mapping indicator's "jitter" drawing. 2020-03-17 19:19:58 -05:00
Techjar ae0c91805c Core/HotkeyManager: Fix group names in config
For some reason every button group was shoved into the same config
group called "Keys" which caused buggy behavior once someone tried to
have hotkeys with the same name in different groups. This fixes that,
and converts existing configs to the new group names so they don't get
reset.
2020-03-17 05:42:26 -04:00
JosJuice 1b844067aa Back up Wii setting.txt and SYSCONF while emulating
When booting a Wii game, Dolphin can overwrite certain settings
in the SYSCONF file, such as turning off PAL60 for NTSC games.
Normally, these settings get reverted at the end of emulation, but
this does not happen if Dolphin crashes or force quits in some other
way. (Personally, I have a tendency to use Visual Studio's Stop
Debugging button, which kills the process...)

Dolphin also overwrites certain values in setting.txt when booting
a Wii game. Unlike with SYSCONF, we currently make no effort to
preserve the original values in this file.

This change fixes both of these problems by copying SYSCONF and
setting.txt to the Backup folder when booting a Wii game, and then
copying them back either when launching Dolphin (in case the
previous run of Dolphin crashed) or when ending emulation.
2020-03-16 21:04:19 +01:00
JosJuice 5f6598f9e9 StringUtil: Add PathToFileName function 2020-03-16 21:03:34 +01:00
Sepalani e06bdaf426 AddressSpace: Fix constness 2020-03-16 23:48:03 +04:00
JosJuice 3614e9fcc2 Boot: Preserve MODEL value in setting.txt
It doesn't necessarily start with RVL-001.
2020-03-16 20:38:07 +01:00
JosJuice 36c92294df Boot: Preserve CODE value in setting.txt if it already matches the region
This is a part of fixing https://bugs.dolphin-emu.org/issues/11930.
2020-03-16 20:34:40 +01:00
Léo Lam c86832849a
Merge pull request #8535 from JosJuice/movie-save-detection
Movie: Make checking for existing GC saves more reliable
2020-03-16 00:19:14 +01:00
JosJuice cb0fe3fc30 Movie: Make checking for existing GC saves more reliable
The old code only handled a raw memory card in slot A, not taking
GCI folders into account at all.
2020-03-15 23:56:34 +01:00
Léo Lam 57274cbf91
Merge pull request #8565 from Pokechu22/log-scroll-bar
Always display the horizontal scroll bar when log word wrap is off
2020-03-15 23:14:23 +01:00
Léo Lam a66ee4ea42
Merge pull request #8597 from SirMangler/master
Hotkeys: Toggle Freelook Hotkey
2020-03-15 22:40:51 +01:00
Léo Lam d9eec2ef04
Merge pull request #8609 from jordan-woyak/separate-hotkey-background-input
DolphinQt: Give hotkeys their own "background input" setting.
2020-03-15 22:35:49 +01:00
Léo Lam 466c079bf4
Merge pull request #8604 from Techjar/netplay-index-direct
Core/NetPlayServer: Fix session not being added to index on direct connection type
2020-03-15 22:22:00 +01:00
Léo Lam 73e7f2a839 BTReal: Improve error handling for device opening
This commit attempts to improve error handling for device opening by
reducing panic alert spam when opening one or several devices fails.
Currently, Dolphin shows a panic alert for every device that we fail
to open, and another panic alert at the end if no usable device was
found. That is certainly a bit excessive -- we should only keep the
very last panic alert (the one that is shown if everything fails)
and we can just put the error for the last device open operation there.

This also changes the PanicAlert to a CriticalAlert to ensure the
message is visible even if the user has disabled regular panic alerts.

The message has also been reworded and should hopefully be clearer.
2020-03-15 22:10:24 +01:00
Léo Lam d297080f52
Merge pull request #8669 from container1234/mbp
Breakpoints: Fix crash after clearing all memory breakpoints
2020-03-15 18:40:05 +01:00
Léo Lam 3c1f5c675d
Merge pull request #8628 from iwubcode/texturepack_game_id_file
VideoCommon: Allow texture folders to be determined by a <gameid>.txt
2020-03-15 18:37:46 +01:00
iwubcode bba92019dc VideoCommon: Allow texture folders to be determined by a <gameid>.txt file 2020-03-15 12:34:04 -05:00
Léo Lam 24a01642e0
Merge pull request #8642 from AdmiralCurtiss/debugger_branch_arrows
Qt/CodeViewWidget: Implement branch arrows.
2020-03-15 16:45:36 +01:00
Admiral H. Curtiss 9c98b659f1 Qt/CodeViewWidget: Indent branch arrows based on free space rather than reserving a full column for each. 2020-03-15 16:14:35 +01:00
Léo Lam 19a46dd67b
Merge pull request #8652 from sonic2kk/qtshortcuts
Qt: Use Builtin QKeySequence Shortcuts
2020-03-15 15:07:47 +01:00
Léo Lam 4944e4b429
Merge pull request #8647 from jordan-woyak/minor-input-cleanups
InputCommon: Minor ReshapableInput related cleanups.
2020-03-15 15:06:54 +01:00
Léo Lam 0bf05009d0
Merge pull request #8650 from jordan-woyak/ir-cleanup
HW/WiimoteEmu: Camera logic cleanups.
2020-03-15 15:04:48 +01:00
Eamonn Rea cd2cf137ba Use ZoomIn/ZoomOut QKeySequence in GameList 2020-03-15 14:58:33 +01:00
Eamonn Rea eda31c782e Qt: Add Configuration shortcut 2020-03-15 14:58:31 +01:00
Eamonn Rea b82f54762b Qt: Use builtin Find and Quit key sequences 2020-03-15 14:58:24 +01:00
Florian Bach 3487e5037e Fix settings.txt parsing in case of weird line endings 2020-03-15 00:12:19 +01:00
container1234 75a69b1145 Breakpoints: Fix crash after clearing all memory breakpoints 2020-03-14 21:57:09 +09:00
Stenzek cdb0aa850d Qt/RenderWidget: Remove fill background functionality
We no longer need this since the video backend handles clearing the
window, and it fixes MoltenVK with Qt 5.14.
2020-03-11 23:13:45 +10:00
Stenzek 2f016295a6 Core: Render a blank UI frame before booting
This is related to https://bugs.dolphin-emu.org/issues/10958 which
uses Qt to clear out the window so the game list isn't displayed
while the core is booting. Instead, we use the video backend to
render a black screen, which means Qt doesn't have to flip between
paint engines.
2020-03-11 23:13:18 +10:00
Stenzek fb947296b0 Vulkan: Pass CAMetalLayer to MoltenVK instead of NSView
Gets rid of the warning for calling [NSView layer] off the main thread.
2020-03-11 23:11:26 +10:00
Stenzek a545344268 VideoBackends: Make it possible for PrepareWindow to change the surface
Again, needed for MoltenVK.
2020-03-11 23:10:30 +10:00
Stenzek 86db015c23 Common: Add a render_window field to WindowSystemInfo
We need this because we need to pass the layer to MoltenVK, not
the view handle. But the input subsystem still needs the window.
2020-03-11 23:09:30 +10:00
Admiral H. Curtiss 18127e2554 Qt/CodeViewWidget: Implement branch arrows. 2020-03-07 01:52:53 +01:00
Silent d1f6f12f78
AudioPane: Do not enable Dolby Pro Logic II quality slider if DPLII is disabled 2020-03-06 21:13:45 +01:00
spycrab dcaabcac03
Merge pull request #8580 from AlexApps99/master
DolphinQt: Add "File Path" column to Game Grid
2020-03-06 08:22:44 +01:00
Sergei Trofimovich 879e8364af Source/Core/Core/DSP/DSPTables.cpp: include <cstdio> for sprintf
Without included header build fails on gcc-10 as:
```
[ 52%] Building CXX object Source/Core/Core/CMakeFiles/core.dir/DSP/DSPTables.cpp.o
../../../../Source/Core/Core/DSP/DSPTables.cpp: In function 'const char* DSP::pdname(u16)':
../../../../Source/Core/Core/DSP/DSPTables.cpp:492:3: error: 'sprintf' was not declared in this scope
  492 |   sprintf(tmpstr, "0x%04x", val);
      |   ^~~~~~~
```

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
2020-03-05 21:20:34 +00:00
Sergei Trofimovich 0478ce72f5 Source/Core/Common/StringUtil.h: include <limits> for std::numeric_limits
Without included header build fails on gcc-10 as:

```
[ 13%] Building CXX object Source/Core/AudioCommon/CMakeFiles/audiocommon.dir/CubebUtils.cpp.o
In file included from ../../../../Source/Core/AudioCommon/CubebUtils.cpp:13:
../../../../Source/Core/Common/StringUtil.h: In function 'bool TryParse(const string&, T*)':
../../../../Source/Core/Common/StringUtil.h:84:20: error: 'numeric_limits' is not a member of 'std'
   84 |   if (value < std::numeric_limits<LimitsType>::min() ||
      |                    ^~~~~~~~~~~~~~
```

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
2020-03-05 21:20:34 +00:00
AlexApps99 465e7c2521 Used whole path instead of relative path 2020-03-03 11:58:59 +13:00
AlexApps99 7408c388d6 Add path to File Name column of game grid
Fixes https://bugs.dolphin-emu.org/issues/10567
2020-03-02 17:38:28 +13:00
Techjar 08c95883e9 Common/IniFile: Add Exists function for section name only 2020-02-29 01:39:36 -05:00
Jordan Woyak ccdfa43a3e HW/WiimoteEmu: Fix Classic Controller triggers. 2020-02-26 15:40:58 -06:00
Jordan Woyak 2451a41a48 DolphinQt: Fix calibration cancel behavior. 2020-02-25 18:36:56 -06:00
Jordan Woyak 2c843ae06b DolphinQt: Clean up calibration drawing a bit. 2020-02-25 17:58:32 -06:00
Jordan Woyak ed24f32c5b InputCommon: Specify ini value default when saving calibration "center". 2020-02-25 17:19:48 -06:00
Jordan Woyak bd43e084f4 InputCommon: Clamp calibration values within square shape. 2020-02-25 17:19:48 -06:00
Jordan Woyak f8cca9fe5d InputCommon: RoundStickGate's ideal sample count can be 1. 2020-02-25 17:19:48 -06:00
spycrab 8233255b11 Qt: Re-enable Dark Mode support 2020-02-25 23:27:44 +01:00
Jordan Woyak ef777c4186 HW/WiimoteEmu: Fill IR data with 0xFF on failed bus read. 2020-02-24 19:45:02 -06:00
Jordan Woyak 5361e66459 HW/WiimoteEmu: Camera logic cleanups. 2020-02-24 19:44:15 -06:00
Jordan Woyak 6b109bd2a6 DolphinQt: Tweak indicator raw-input/input-shape color for better contrast in some dark themes. 2020-02-24 16:26:28 -06:00
Jordan Woyak 122984b46e DolphinQt: Eliminiate redundant swing indicator logic. 2020-02-24 16:26:28 -06:00
Jordan Woyak d80fd13b17 DolphinQt: Clean up mapping indicator code and draw lines on "pixel centers". 2020-02-24 16:26:26 -06:00
Jordan Woyak f79ca680cb DolphinQt: Eliminate redundant cursor indicator logic. 2020-02-24 16:25:06 -06:00
Jordan Woyak 38f36be9ae DolphinQt: Break mapping indicators into separate classes. Ensure "state lock" is held on redraw. 2020-02-24 16:25:06 -06:00
Jordan Woyak 7accd9825f InputCommon: Remove racy UpdateInput call in DetectInput. 2020-02-24 16:25:06 -06:00
Jordan Woyak 1a3b4d91bf InputCommon: Mark GetStateLock with [[nodiscard]] and fix discarding calls. 2020-02-24 16:25:06 -06:00
spycrab 25d5f0d9ef
Merge pull request #8633 from spycrab/tas_window_fixes
Qt/TAS: Improve TAS windows
2020-02-24 07:26:49 +01:00
Admiral H. Curtiss c70e004f53 Qt/CodeViewWidget: Use named constants for column IDs. 2020-02-23 18:49:27 +01:00
Jordan Woyak da12f3eebc InputCommon: Constify Device::Input::IsDetectable function. 2020-02-22 10:27:43 -06:00
spycrab 29c7c12016 Qt/TAS: Improve TAS windows
- Use the Dolphin Icon in TAS Windows
- Prevent deformation of the stick widget (#11988)
- Improve visual appearance
- Set a reasonable minimum size
2020-02-18 16:13:31 +01:00
Techjar 06a9f6ef82 Core/NetPlayServer: Fix session not being added to index on direct connection type 2020-02-17 21:05:32 -05:00
Jordan Woyak 70ac9ad2e6 InputCommon: Remove Wii Remote real-time calibration of M+ in favor of functionality provided by ControllerEmu. 2020-02-17 16:14:03 -06:00
Jordan Woyak 58448d74c5 InputCommon: Add real Wii Remote support to ControllerInterface. Add option to connect additional Wii Remotes. 2020-02-17 16:14:01 -06:00
Jordan Woyak 4176cc77e1 InputCommon/ControllerInterface: Make devices mutex recursive so RemoveDevice can be used within UpdateInput. 2020-02-17 15:58:06 -06:00
Jordan Woyak 5af2081c75 Core/WiimoteEmu: Add functions to Nunchuk, Classic Controller, and MotionPlus extensions to get/set data without duplicate bithacks everywhere. 2020-02-17 15:57:58 -06:00
Jordan Woyak 8343dadd58 InputCommon: Add types to ControllerEmu that represent raw controller inputs and calibration data to calculate normalized input values. 2020-02-17 15:57:43 -06:00
Jordan Woyak 259a7191d2 Common: Add additional Vector operations. 2020-02-17 15:57:43 -06:00
Jordan Woyak 1e652d7d34 InputCommon: Add calibration functionality to IMUGyroscope. 2020-02-17 15:57:43 -06:00
Jordan Woyak 9efcd08ea3 MathUtil: Add RunningMean/RunningVariance classes. 2020-02-17 15:57:43 -06:00
Jordan Woyak 82a3aa5ff6 InputCommon: Add "Dead Zone" setting to raw gyro inputs. 2020-02-17 15:57:43 -06:00
spycrab 2d6a72e941
Merge pull request #8632 from jimbo1qaz/windows-menu-font
Windows GUI: Use QMenu font (Segoe UI) for entire application
2020-02-17 15:04:37 +01:00
nyanpasu64 44f602fe51 Windows GUI: Use QMenu font (Segoe UI) for entire application
On Windows, Qt's default system font (MS Shell Dlg 2) is outdated.

Dolphin previously used over 15 lines of code to compute a font
closer to the proper font, but with an approximately correct font size.
Using the QMenu font directly is both more concise and more elegant
(in my opinion).
2020-02-17 05:37:54 -08:00
Léo Lam 44b4c2db49 Common: Avoid std::function overhead in ScopeGuard
So far in all our uses of ScopeGuard, the type of the callable is
usually just a lambda or a function pointer, so there is no need
to rely on std::function's type erasure.

While the cost of using std::function is probably negligible, it still
causes some unnecessary overhead that can be avoided by making
ScopeGuard a templated class. Thanks to class template argument
deduction in C++17 most existing usages do not even need to be changed.

See https://godbolt.org/z/KcoPni for a comparison between
a ScopeGuard that uses std::function and one that doesn't
2020-02-15 21:33:31 +01:00
JosJuice 62046d93ce
Merge pull request #8542 from Itrimel/fix-gecko-loading
Fix Gecko codes loading
2020-02-15 16:28:32 +01:00
Itrimel fe900e057b Core/GeckoCodeConfig : Fix Gecko codes formatting
Some locales (e.g. fr_FR.UTF-8 on ArchLinux) don't split the string stream on a space. As such, when extracted formatted data from te stream, it will return the two numbers as one for the first call, effectively overflowing the u32 variable, then will do an out-of-bounds read for the second call. Forcing the use of the C locale on the streams where it would cause a problem allows to workaround this behavior.
2020-02-14 11:51:36 +01:00
spycrab 213a9adcff CMake: Fix building ARM64 on Windows 2020-02-12 12:29:31 +01:00
Jordan Woyak 903db48280 DolphinQt: Give hotkeys their own "background input" setting. 2020-02-10 20:06:29 -06:00
Tilka a9dc4ac3f0
Merge pull request #8603 from jordan-woyak/deadzone-too-dark
DolphinQt/Mapping: Tweak "Dead Zone" and "Gate" colors.
2020-02-10 23:28:56 +00:00
Tilka 103b3abf66 Merge pull request #8621 from JosJuice/volumeverifier-invalid-partition
Fix VolumeVerifier not showing a problem for invalid partitions
2020-02-10 09:33:29 +00:00
Jordan Woyak 47877ecf2c InputCommon: Clean up creation of inputs. 2020-02-09 19:08:26 -06:00
Tilka 01d69ba81a
Merge pull request #8624 from jordan-woyak/setting-expression-input-gate
InputCommon: Only update setting expressions when the input gate is enabled.
2020-02-10 00:47:30 +00:00
Jordan Woyak 53f2e275af InputCommon: Only update setting expressions when the input gate is enabled. 2020-02-09 18:42:42 -06:00
Tilka c598772052
Merge pull request #8622 from JosJuice/volumeverifier-invalid-partition-biggest-offset
VolumeVerifier: Ignore invalid partitions in GetBiggestReferencedOffset
2020-02-10 00:31:49 +00:00
Tilka d129fae8fc
Merge pull request #8623 from spycrab/qt_5.14.1
Update to Qt 5.14.1
2020-02-10 00:06:11 +00:00
Tilka db65b9a766 Merge pull request #8616 from jordan-woyak/threshold-cleanup
InputCommon: Eliminate some duplicated button threshold logic.
2020-02-10 00:05:10 +00:00
spycrab 6a3bd259a7 Update to Qt 5.14.1 2020-02-09 22:30:57 +01:00
Jordan Woyak 7cbb9822c1 VideoCommon: Remove widescreen heuristic debug logs. 2020-02-09 13:22:27 -06:00
Jordan Woyak 10223da6a8 VideoCommon: Tweak widescreen heuristic and clean up some related Renderer logic. 2020-02-09 13:22:25 -06:00
JosJuice 829f3cff6f VolumeVerifier: Ignore invalid partitions in GetBiggestReferencedOffset
Otherwise GetBiggestReferencedOffset might treat garbage data as a valid
large offset, making Dolphin incorrectly say that the disc is too small.
2020-02-09 19:05:44 +01:00
JosJuice 07df6597a5 Fix VolumeVerifier not showing a problem for invalid partitions 2020-02-09 18:58:15 +01:00
Jordan Woyak f07457b6cc InputCommon: Eliminate some duplicated button threshold logic. 2020-02-09 10:37:18 -06:00
magiblot 55e8601192
Fix another implicit false-to-nullptr conversion 2020-02-09 15:51:30 +01:00
Léo Lam aa21fe17b8
Merge pull request #8618 from encounter/debugger-floating-fix
DolphinQt/Debugger: Fix crash with floating debugger windows
2020-02-09 15:50:47 +01:00
Léo Lam 166e86b97f
Merge pull request #8619 from JosJuice/directoryblob-check-seek
DiscIO: Check for DirectoryBlob seek failure
2020-02-09 15:49:37 +01:00
Léo Lam fb0f543777
Merge pull request #8574 from JosJuice/volumeverifier-assert-small-file
VolumeVerifier: Improve the messages shown for files that are too small
2020-02-09 15:48:57 +01:00
JMC47 5ab846ad12 Merge pull request #8614 from jordan-woyak/xinput-battery
InputCommon/XInput: Expose battery as input and cleanups.
2020-02-09 09:29:00 -05:00
JosJuice 9a348ae654 DiscIO: Check for DirectoryBlob seek failure
Someone reported a problem with DirectoryBlob at
https://forums.dolphin-emu.org/Thread-feature-request-thread?pid=502820#pid502820.
I'm not sure if the change in this commit actually fixes that problem,
but it's something I found that should be changed regardless.
2020-02-09 11:21:10 +01:00
Luke Street 3e94366fe0 DolphinQt/Debugger: Fix crash with floating debugger windows 2020-02-09 02:32:04 -05:00
Tilka 3cec5443cd
Merge pull request #8605 from Techjar/netplay-hostpoll-doc
Core/NetPlayClient: Add documentation for SendPadHostPoll
2020-02-09 02:32:50 +00:00
Tilka 2e2540317e Merge pull request #8417 from jordan-woyak/setting-expressions
InputCommon: Allow controller settings specified with input expresions.
2020-02-09 01:37:30 +00:00
Tilka 0043a2cf3c Merge pull request #8615 from jordan-woyak/std-abs
Cleanup: Use std::abs instead of abs.
2020-02-09 00:39:30 +00:00
Jordan Woyak 4f47cccd9f Cleanup: Use std::abs instead of abs. 2020-02-08 18:21:14 -06:00
Jordan Woyak 0a1634bedf InputCommon: Allow Wii remote extension to be set with an input expression. 2020-02-08 16:03:13 -06:00
Jordan Woyak e7400cafd2 InputCommon: XInput cleanups. 2020-02-08 15:51:02 -06:00
Jordan Woyak 86e8745169 InputCommon: Expose XInput battery level as an input. 2020-02-08 15:03:56 -06:00
Jordan Woyak e8152b700f InputCommon: Allow controller settings specified with input expresions. 2020-02-08 14:01:55 -06:00
JMC47 6a857df219
Merge pull request #8606 from jordan-woyak/tab-key-navigation
DolphinQt: setTabKeyNavigation(false) on QTableWidget and QTableView.
2020-02-08 14:18:09 -05:00
JMC47 3b0b264c84
Merge pull request #8608 from jordan-woyak/stereoscopy-hotkeys
DolphinQt: Fix stereoscopy hotkeys.
2020-02-08 14:17:42 -05:00
JMC47 dc5447fb30
Merge pull request #8612 from jordan-woyak/unused-members
DolphinQt: Kill some unused member variables.
2020-02-08 14:17:15 -05:00
Jordan Woyak f94726068d DolphinQt: Kill some unused member variables. 2020-02-08 10:52:06 -06:00
Tilka e323f47ceb
Merge pull request #8472 from degasus/jitsetting
Core/Jits: Adds an option to disable the register cache.
2020-02-08 13:49:33 +00:00
Jordan Woyak 9a34091b8b DolphinQt: Fix stereoscopy hotkeys. 2020-02-07 15:47:40 -06:00
Jordan Woyak b9f34bc822 DolphinQt: setTabKeyNavigation(false) on QTableWidget and QTableView. 2020-02-06 20:48:45 -06:00
Techjar e8e41d8529 Core/NetPlayClient: Add documentation for SendPadHostPoll 2020-02-06 07:24:00 -05:00
Jordan Woyak b1a71b959b DolphinQt/Mapping: Change "Dead Zone" color from shadow color of palette to a transparent black or white depending on theme. Tweak order of "shake" indicator axis colors so red is more often shown. 2020-02-04 16:08:51 -06:00
Pierre Bourdon a205ecb446
Merge pull request #8602 from lioncash/fmt
Externals: Update fmt to 6.1.2
2020-02-04 21:59:22 +01:00
Lioncash 91deb40a22 Common: Amend includes to handle the upgrade to fmt 2020-02-04 15:03:51 -05:00
Lioncash aea76c7901 Core: Amend includes to handle the upgrade to fmt 2020-02-04 15:03:48 -05:00
Lioncash abd2897377 VideoCommon: Amend formatting code to handle the upgrade to fmt
It seems that the newer version of fmt gets tripped up by bitfields
within structs. However, we can just specify the intended type where
necessary to get around this.
2020-02-04 14:55:20 -05:00
JosJuice f8355d0f82 VolumeVerifier: Don't return early when file is too small
Not sure why that was there.
2020-02-02 17:09:58 +01:00
JosJuice e449d23929 VolumeVerifier: Don't show an assert for files that are too small 2020-02-02 17:09:58 +01:00
Léo Lam 0491831483
Merge pull request #8592 from phcoder/devid
ButtonManager: Fix handling of empty device id.
2020-02-02 16:52:12 +01:00
Léo Lam 06d0b1ad48
Merge pull request #8594 from leoetlino/fs-createfullpath-fix
IOS/FS: Fix CreateFullPath to not create directories that already exist
2020-02-02 16:50:02 +01:00
Léo Lam 4c9b1f3e0b
Merge pull request #8599 from Pokechu22/di-interrupt-mask-ioctls
Fix DI interrupt mask ioctl names
2020-02-02 16:49:27 +01:00
Pokechu22 f527f382e8 Report use of DI interrupt mask commands as a game quirk 2020-02-02 00:44:12 -08:00
Jordan Woyak d6515eee41 WiimoteEmu: Fix default IMU accelerometer mappings. 2020-02-01 23:32:09 -06:00
Pokechu22 bb5e5fd8f2 Fix assignment of DI interrupt mask ioctls
0x85 is actually DVDLowMaskCoverInterrupt, while 0x89 is DVDLowUnmaskCoverInterrupt.  I'm also fairly sure that 0x87 is DVDLowUnmaskStatusInterrupts.
2020-02-01 16:56:48 -08:00
Connor McLaughlin 69ee15e5ef
Merge pull request #8478 from jordan-woyak/dsu-client-cleanup
ControllerInterface/DSUClient: Minor cleanup.
2020-02-01 11:29:29 +10:00
SirMangler ac34911f32 Added Toggle Freelook Hotkey 2020-01-31 20:45:08 +00:00
Stenzek 08cc73108a Vulkan: Treat VK_SUBOPTIMAL_KHR as VK_SUCCESS on Android
Android 10 seems to expect a prerotated/transformed swap chain for optimal
presentation. For now, until we implement that, just ignore the hint.
2020-01-31 19:16:06 +10:00
Stenzek ead65b0d8c Vulkan: Log when a swap chain resize is occurring
This may help us debug performance problems in the future.
2020-01-31 19:11:43 +10:00
Léo Lam bbc8631357 IOS/FS: Fix CreateFullPath to not create directories that already exist
This fixes CreateFullPath to not create directories when it is known
that they already exist, instead of calling CreateDirectory anyway
and checking if the error is AlreadyExists. (That doesn't work
now that we have an accurate implementation of CreateDirectory
that performs permission checks before checking for existence.)

I'm not sure what I was thinking when I wrote that function.

Also adds some tests for CreateFullPath.
2020-01-30 18:07:03 +01:00
Léo Lam f1f293bd49 WiiRoot: Fix CopySysmenuFilesToFS directory creation
Fixes a regression from #8539.

CreateDirectory was the correct function to use for creating
directories since parent directories already exist and are
not owned by the system menu.
2020-01-30 13:53:39 +01:00
Vladimir Serbinenko 02c5d292fa ButtonManager: Fix handling of empty device id.
Device id is "" on ChromeOS when using gamepad
2020-01-29 02:47:18 +01:00
Léo Lam 57f4837e4d
Merge pull request #8589 from lioncash/translatable
DolphinQt/GCMemcardManager: Mark string as translatable within GetErrorMessagesForErrorCode()
2020-01-27 23:20:03 +01:00
Lioncash 7eaa769527 DolphinQt/GCMemcardManager: Make use of QLatin1Char within GetErrorMessagesForErrorCode()
Same behavior, but eliminates the use of a program lifetime Qt string
literal.
2020-01-27 15:59:33 -05:00
Lioncash 585ae8aedf DolphinQt/GCMemcardManager: Mark string as translatable within GetErrorMessagesForErrorCode()
This is a string that can potentially be seen by a user, so it should be
marked as translatable, like the other strings are.
2020-01-27 15:57:36 -05:00
Lioncash dca201d5f3 DolphinQt/GameConfigWidget: Remove unimplemented EditUserConfig() member function
This isn't implemented anywhere, so we can remove the member function
prototype.
2020-01-27 15:46:52 -05:00
Lioncash 2fd628d017 DolphinQt/GameConfigEdit: Remove unimplemented SetReadOnly() member function
This isn't implemented anywhere, so we can remove this prototype.
2020-01-27 15:44:52 -05:00
Lioncash c69cbceb59 DolphinQt/MainWindow: Surround prototype of OnSignal() with relevant ifdef
This is only used on Apple and Unix-like machines, so we can enclose the
prototype with an ifdef like the implementation is. This prevents
false-positives about an unimplemented function prototype.
2020-01-27 15:26:41 -05:00
Lioncash e8ee4e835e DolphinQt/NetPlayDialog: Remove unimplemented SetGame() prototype
This isn't implemented anywhere, so the prototype can be removed.
2020-01-27 15:25:04 -05:00
Tilka f36c735856
Merge pull request #8586 from Techjar/d2s-no-pext
Avoid using PDEP and PEXT on AMD Zen
2020-01-27 03:15:43 +00:00
Techjar 3a3dc28d54 VertexLoaderX64: Don't use PDEP on AMD Zen 2020-01-26 22:12:00 -05:00
Techjar a106c99826 Jit64: Don't use PEXT in DoubleToSingle on AMD Zen
This was causing severe slowdown in some games.
2020-01-26 22:10:46 -05:00
Techjar 185e49d2a9 x64CPUDetect: Add flag for slow PDEP/PEXT on AMD Zen
For some unknown reason PDEP and PEXT are ridiculously slow on AMD Zen
architecture.
2020-01-26 22:09:46 -05:00
Techjar 52b52631c2 x64CPUDetect: Add detection for AMD Zen architecture 2020-01-26 22:09:13 -05:00
Connor McLaughlin 47239ddaac
Merge pull request #8587 from lioncash/const-qual
DolphinQt/TASCheckBox: Mark GetValue() as const
2020-01-27 12:52:10 +10:00
Lioncash b493bdb912 DolphinQt/TASCheckBox: Mark GetValue() as const
This doesn't actually modify the checkbox's state, so this can be marked
as a const-qualified member function.
2020-01-26 21:41:31 -05:00
Tilka 5dfc9196ab
Merge pull request #8548 from jordan-woyak/wiimote-source-cleanup
Core/WiimoteReal: Wii remote connection pool and source change cleanup.
2020-01-25 23:04:50 +00:00
Tilka 9ac77dc91f
Merge pull request #8552 from jordan-woyak/extension-calibration-data
WiimoteEmu: Nunchuk and Classic Controller calibration accuracy improvements.
2020-01-25 23:01:57 +00:00
Tilka 73aea8af6b
Merge pull request #8539 from leoetlino/fs-accuracy
IOS/FS: Reimplement many functions in a more accurate way
2020-01-25 23:00:10 +00:00
Tilka 2edcb29706
Merge pull request #8582 from jordan-woyak/osd-disabled-fix
VideoCommon/OSD: Process OSD messages even when they are disabled.
2020-01-25 21:11:37 +00:00
Tilka a632bc7324
Merge pull request #8579 from jordan-woyak/rvalue-cleanups
Common/Core: Minor rvalue reference related cleanups.
2020-01-25 21:09:22 +00:00
Tilka 14ebdf0e9d
Merge pull request #8585 from JosJuice/volumeverifier-read-error
VolumeVerifier: Report read errors to the user
2020-01-25 21:07:01 +00:00
Tilka b0e040431a
Merge pull request #8581 from jordan-woyak/ciface-ar-aware
InputCommon: Make "Cursor" inputs aware of the rendered aspect ratio.
2020-01-25 20:28:01 +00:00
Tilka 9827aa7a37
Merge pull request #8577 from jordan-woyak/shared_mutex
Common/Analytics: Replace mutex with shared_mutex and minor cleanups.
2020-01-25 20:08:22 +00:00
Jordan Woyak 5e3472eba9 Common/Analytics: Replace mutex with shared_mutex and minor cleanups. 2020-01-25 14:04:00 -06:00
JosJuice de26fec0af VolumeVerifier: Report read errors to the user 2020-01-25 20:21:12 +01:00
Tilka 119ccc5e4f
Merge pull request #8556 from Sintendo/bestrest
x64Emitter: Avoid 8-bit displacement when possible
2020-01-25 19:10:47 +00:00
Tilka 709862b818
Merge pull request #8120 from MerryMage/cdts
Jit64: Make DoubleToSingle a common asm routine
2020-01-25 19:10:37 +00:00
Léo Lam c02e7de55a IOS/ES: Remove now unnecessary title sorting hack
ES now uses FS to access the filesystem and FS's ReadDirectory now
returns file lists that are correctly ordered.
2020-01-25 17:54:58 +01:00
Léo Lam d4ba0acb3a UnitTests/FS: Add path validity and splitting tests 2020-01-25 17:54:57 +01:00
Léo Lam 484cfb9328 UnitTests/FS: Add metadata tests 2020-01-25 17:53:39 +01:00
Léo Lam 142b7e048b IOS/FS: Actually implement SetMetadata 2020-01-25 17:53:35 +01:00
Léo Lam e4dd582d1d IOS/FS: Implement GetMetadata properly and remove GID hack
Now that all FS functions that create new inodes are properly
implemented, we can make GetMetadata actually return correct file
metadata rather than giving fixed information. The hack for the DQX
installer can also be removed now since our ES and FS keep track of
caller UID/GIDs now.
2020-01-25 17:53:34 +01:00
Léo Lam 396429d582 IOS/FS: Implement ReadDirectory properly and remove sorting hack
With the CreateFile/CreateDirectory fix and this commit, we can
finally return correct results in ReadDirectory and the sorting
hack -- whose purpose was to prevent certain versions of the
System Menu from crashing -- can be removed too.
2020-01-25 17:53:19 +01:00
Léo Lam a40f297d1d IOS/FS: Implement Rename properly 2020-01-25 17:53:18 +01:00
Léo Lam 53ceb6c693 IOS/FS: Implement Delete properly 2020-01-25 17:53:05 +01:00
Léo Lam 8517528f8c IOS/FS: Implement CreateFile and CreateDir properly 2020-01-25 17:52:45 +01:00
Léo Lam 8f74d02659 Core: Fix a few misuses of FS::CreateDirectory
CreateDirectory does not create missing parent directories. If that
behaviour is desired, CreateFullPath should be used instead.

(These small misuses went unnoticed since the previous implementation
of CreateDirectory automatically created parent directories.)
2020-01-25 17:52:07 +01:00
Léo Lam 36676d2628 IOS/FS: Implement Format properly 2020-01-25 17:52:03 +01:00
Léo Lam a83d9e5600 IOS/FS: Make sure FS root directory exists
Previously, the FS root directory would get created as a side
effect of calling CreateDirectory during boot (since the
implementation was sloppy and used File::CreateFullDir).

Since CreateDirectory no longer does that, it is necessary to ensure
that the FS root directory does exist by creating it explicitly.
2020-01-25 17:51:52 +01:00
Léo Lam 0543598574 IOS/FS: Move /tmp clearing back to the IPC interface
Prevents /tmp from being cleared unnecessarily; clearing /tmp is
normally only done once every time IOS is reloaded.
2020-01-25 17:51:43 +01:00
Léo Lam f743f100b1 IOS/FS: Add base FST functions
Some official titles rely on implementation details of Nintendo's
FS sysmodule and will not work properly if those are changed.
Notably, some games and older versions of the System Menu appear
to be relying on the order of files returned by FS::ReadDirectory
and will either fail to find their save data (for Bolt) or
outright crash (for the System Menu).

Some titles also actually expect filesystem metadata to be correct.
One title that has been confirmed to do this is DQX, which generates
paths based on the GID of files within its own title directory.

While it is easy to make workarounds for these issues -- and in fact
we already do have some for the sysmenu and DQX, having hacks
is obviously nonideal and adding yet another hack would be required
to fix Bolt -- one that would be even uglier.

Furthermore, while it is currently unknown whether any official
title cares about permissions, the lack of FS metadata means that
we are unable to implement them if that turns out to be desirable
or necessary.

By adding a FST, we can implement things correctly and solve all
those problems without hacks.

Apart from DQX, the sysmenu and Bolt, this changeset also fixes
the Photo Channel complaining about corrupted system files
on the initial launch.

This first commit adds the basic structures and functions that
are necessary to load, save, query and update our version of the FST.

For simplicity, a binary format that is inspired from Nintendo's FST
structure was chosen for serialization. It is not expected to ever
receive an update.

PS: an update on the NAND image backend:

A long time ago I had planned to add another FS backend which would
be using a NAND image/blob as the storage. While I have already
written an implementation that has been tested, solves all the
aforementioned issues and more, produces images that are fully
compatible with IOS's FS driver, I feel like NAND images raise too
many issues: savestate sizes, code complexity and maintenance cost.

Since many fixes and additions that are part of that implementation
(e.g. FS timings, utility structures, FST) have already been merged
or will be submitted as part of this changeset, I will likely not
submit the branch.
2020-01-25 17:51:37 +01:00
Léo Lam d185bc6f09 IOS/FS: Move path validity check functions
They will be used in more places than just HostBackend/FS.cpp.

Also fix the check and make it accurate while we're at it.
2020-01-25 17:47:42 +01:00
Connor McLaughlin e3a7922e12
Merge pull request #8336 from Ebola16/PS
Add Dolphin version and current video backend to shader compilation logs
2020-01-25 11:52:14 +10:00
Jordan Woyak c08671c4ce VideoCommon/OSD: Process OSD messages even when they are disabled. 2020-01-24 11:00:58 -06:00
Jordan Woyak b92f6480a0 InputCommon: Make "Cursor" inputs aware of the rendered aspect ratio. 2020-01-24 09:20:41 -06:00
Ryan Meredith e5f6d9320f Add Dolphin version and current video backend to shader compilation logs 2020-01-24 03:29:38 -05:00
Jordan Woyak 732032cdb2 Common/Core: Minor rvalue reference related cleanups. 2020-01-23 22:58:23 -06:00
Connor McLaughlin 42c03c4dad
Merge pull request #8576 from lioncash/texture-cvt-shader-fmt
VideoCommon/TextureConversionShader: Convert over to using ShaderCode
2020-01-24 11:53:51 +10:00
Connor McLaughlin a0b7c1beae
Merge pull request #8366 from Techjar/high-dpi-auto-adjust
Qt/RenderWidget: Account for devicePixelRatio when auto-adjusting window size
2020-01-24 11:31:09 +10:00
Lioncash 687f1f0330 VideoCommon/TextureConversionShader: Make use of fmt where applicable
Now that we've converted the shader generation over to ShaderCode, we
can now make use of the fmt-capable WriteFmt function.
2020-01-23 14:19:40 -05:00
Lioncash aa77dff3a2 VideoCommon/TextureConversionShader: Convert over to using ShaderCode
Migrates the shader generator off the use of a global array, eliminating
the use of some global state. This also allows us to move the shader
generation over to using fmt in a subsequent change.
2020-01-23 14:19:36 -05:00
Pierre Bourdon ea9b96370d
Merge pull request #8573 from JosJuice/ciso-size
DiscIO: Fix CISOFileReader::GetDataSize()
2020-01-22 19:20:36 +01:00
JosJuice 956c63ef9b DiscIO: Fix CISOFileReader::GetDataSize()
Fixes being unable to run CISO games after the merge of PR 8558.
2020-01-22 18:57:50 +01:00
JMC47 f0669f5aa6
Merge pull request #8570 from Techjar/always-sync-sram
Core/NetPlayServer: Sync SRAM on every game start
2020-01-21 20:55:52 -05:00
Connor McLaughlin a63510a55a
Merge pull request #8554 from stenzek/present-duplicate-frames
Add an option to present duplicate frames
2020-01-20 12:04:26 +10:00
JMC47 f61d77a5e2
Merge pull request #8568 from jordan-woyak/imu-accel-ordering
InputCommon: List IMUAccelerometer's Up/Down inputs first for consistency.
2020-01-19 16:05:53 -05:00
Techjar de27dcebf6 Core/NetPlayServer: Sync SRAM on every game start
This solves the issue of booting games locally while connected to
NetPlay causing desync.
2020-01-19 03:57:41 -05:00
Jordan Woyak a61dff67da InputCommon: List IMUAccelerometer's Up/Down inputs first for consistency. 2020-01-18 13:56:11 -06:00
tinyredpanda 8b1051abb9 Update Qt5_DIR path for ARM64 in CMake project 2020-01-18 11:28:42 +00:00
Léo Lam 89b0ab2d22 StringUtil: Add IsPrintableCharacter and use it
Add a function that safely returns whether a character is printable
i.e. whether 0x20 <= c <= 0x7e is true.

This is done in several places in our codebase and it's easy to run
into undefined behaviour if the C version defined in <cctype>
is used instead of this one, since its behaviour is undefined
if the character is not representable as an unsigned char.

This fixes MemoryViewWidget.
2020-01-16 00:22:26 +01:00
Pokechu22 0a6a53e301 Always display the horizontal scroll bar when log word wrap is off
Otherwise, a line that's too wide for the log widget will cause the horizontal scroll bar to appear, which reduces the vertical height, and causes the most recent line to be off screen.  Since that line is off screen, the log widget no longer scrolls as new lines appear, unless it's manually scrolled to the very bottom again.
2020-01-15 13:59:09 -08:00
Tilka 1cc7ef356b
Merge pull request #8558 from JosJuice/volume-oob
DiscIO: Add out of bounds checks for blob reading
2020-01-15 13:48:00 +00:00
Pierre Bourdon 1ac3264d5d
Merge pull request #8545 from jordan-woyak/imu-cursor-centering
WiimoteEmu: IMU pointing behavior improvements and code cleanup.
2020-01-15 12:10:57 +01:00
Léo Lam d2efad58af
Merge pull request #8562 from jordan-woyak/sens-slider
Core/DolphinQt: Fix IR Sensitivity slider.
2020-01-15 00:29:24 +01:00
Jordan Woyak b416389248 Core/DolphinQt: Fix IR Sensitivity slider. 2020-01-14 17:08:21 -06:00
JosJuice 297b790e4f DiscIO: Add out of bounds checks for blob reading 2020-01-14 18:59:31 +01:00
JosJuice 21c152f51f Fix Error #001 (alternative solution)
This is an alternative to PR 8557 and PR 8558. The way this PR solves
the problem is essentially the same as what we had before PR 8394
(except the code we had back then only worked because it was broken).
2020-01-14 16:47:14 +01:00
Pokechu22 ddba80133a Fix launching DTK games with MIOS 2020-01-13 20:07:59 -08:00
Pokechu22 d67c4f34d1 Fix crash when launching gamecube games with MIOS (from the Wii menu) 2020-01-13 19:48:19 -08:00
Stenzek 11ba623f26 Add an option to present/skip presenting duplicate frames
Currently, we do not display every second frame in 25fps/30fps games
which run to vsync. This improves performance as there's less rendering
for the GPU to perform, but when combined with vsync, could cause frame
pacing issues.

This commit adds an option to force every frame generated by the console
to be displayed to the host, which may improve pacing for these games.
2020-01-14 10:57:35 +10:00
Jordan Woyak f5d9b78a3c DolphinQt: Properly hide Wii remote extension motion tabs when no extension is selected. 2020-01-13 18:34:04 -06:00
Connor McLaughlin efc1ee8e6a
Merge pull request #8537 from degasus/fastmem
Core/HW -> PowerPC/JIT: Fastmem arena construction
2020-01-14 09:38:15 +10:00
Jordan Woyak 6106f780a7 ControllerInterface/DSUClient: Eliminate m_accl/m_gyro state by accessing the pad data directly like every other input. 2020-01-13 17:35:33 -06:00
JMC47 eacbff76dd
Merge pull request #8474 from jordan-woyak/dsu-battery
ControllerInterface: Exposse DSU client battery level as an input.
2020-01-13 18:30:53 -05:00
Jordan Woyak e2d5c92c76 ControllerInterface: Remove and re-add device when combining nodes. 2020-01-13 16:50:58 -06:00
Jordan Woyak aabe8d2ccd ControllerInterface: Don't consider the empty string a valid unique ID. 2020-01-13 16:50:58 -06:00
Jordan Woyak ac907ef977 ControllerInterface: Combine evdev devices with the same unique ID.
This works around Linux drivers for DS4 (Playstation 4) controllers splitting the device into three separate event nodes which makes configuration difficult.
To prevent collisions of input names in combined devices more descriptive names are now used when possible.
2020-01-13 16:50:56 -06:00
Jordan Woyak 2b9fa0597a ControllerInterface: Minor DSU client device cleanups. 2020-01-13 16:32:02 -06:00
JosJuice da59f97278
Merge pull request #8549 from leoetlino/clang-format-9
Require clang-format 9 and reformat source code
2020-01-13 23:30:26 +01:00
Jordan Woyak f0534cabc6 ControllerInterface: Exposse DSU client battery level as an input. 2020-01-13 16:29:24 -06:00
JMC47 48fd27cdab
Merge pull request #8451 from rlnilsen/motion-input-nunchuk
Add motion input support to nunchuk
2020-01-13 17:08:03 -05:00
JosJuice 966e1b31ba
Merge pull request #8394 from Pokechu22/misc-di-gpio
Various DI improvements
2020-01-13 17:17:24 +01:00
Connor McLaughlin ae6d3be449
Merge pull request #8530 from s-daveb/master
MacOS: Fixes configuration hang; bump MacOS SDK.
2020-01-13 20:21:08 +10:00
Sintendo bdcdd763fe x64Emitter: Remove unused macros
No users, and one them seems to do the same as stddef.h's offsetof()
already used elsewhere.
2020-01-13 08:43:42 +01:00
Sintendo f82c38e156 X64Emitter: Remove obsolete TODO
TODO was already taken care of in PR #941.
2020-01-13 08:43:42 +01:00
Sintendo bdfc472751 x64Emitter: Refactor OpArg::WriteRest
Shorter, displacement is now handled in one location.
2020-01-13 08:43:42 +01:00
Sintendo cde3a3b448 x64Emitter: Avoid 8-bit displacement when possible
Due to the way the ModRM encoding works on x86, memory addressing
combinations involving RBP or R13 need an additional byte for an 8-bit
displacement of zero.

However, this was also applied in cases where it is unnecessary,
effectively wasting a byte.

- MatR with RSP or R12

8B 44 24 00          mov         eax,dword ptr [rsp]
8B 04 24             mov         eax,dword ptr [rsp]

- MRegSum with base != RBP or R13

46 8D 7C 37 00       lea         r15d,[rdi+r14]
46 8D 3C 37          lea         r15d,[rdi+r14]

- MComplex without offset

8B 4C CA 00          mov         ecx,dword ptr [rdx+rcx*8]
8B 0C CA             mov         ecx,dword ptr [rdx+rcx*8]
2020-01-13 08:43:42 +01:00
Jordan Woyak d9bd714143 WiimoteEmu: Nunchuk and Classic Controller calibration accuracy improvements. 2020-01-12 09:48:37 -06:00
Stenzek d8b2be9d06 DolphinQt: Support compiling on ARM64 2020-01-12 15:23:42 +10:00
Jordan Woyak 0aacf3a627 WiimoteEmu: Make the "Total Yaw" setting work again. 2020-01-09 13:11:13 -06:00
Léo Lam 4cc2d97294 Require clang-format 9 and reformat source code
This updates the lint script to require clang-format 9 and reformats
existing source code. Since VS2019 ships with clang-format 9 this
should make auto reformats less painful.

This also updates the clang-format configuration to set
BraceWrapping.AfterCaseLabel to true to ensure consistent brace
style; otherwise clang-format 9+ defaults to putting braces on
the same line as switch case labels.
2020-01-08 22:18:15 +01:00
Scott Mansell a8c33f4ef6
Fix trailing whitespace 2020-01-07 12:52:05 +13:00
Scott Mansell 21528c3e72
Document the evdev "interesting" heuristic
Was checking over this old code, and saw a comment calling me out for a lack of documentation.

It might be half a decade late, but better late then never.
2020-01-07 12:46:24 +13:00
Tilka 98f645daac
Merge pull request #8158 from Sintendo/jitopts
x64 micro-optimizations
2020-01-06 14:09:43 +01:00
Tilka f17f03ea3c
Merge pull request #8551 from Sintendo/jit64addx
Jit64: addx optimizations
2020-01-06 13:15:17 +01:00
Tilka 6e18dfb600
Merge pull request #8133 from Sintendo/mov64imm32
x64Emitter: Emit shorter MOVs for 32-bit immediates
2020-01-06 13:12:56 +01:00
Sintendo 12fcbac2a3 Jit64: addx - Emit LEA for register + immediate
Prefer LEA over MOV + ADD when dealing with immediates.

Before:
44 8B EE             mov         r13d,esi
41 83 C5 20          add         r13d,20h

After:
44 8D 6E 20          lea         r13d,[rsi+20h]
2020-01-05 23:39:13 +01:00
Sintendo 8e7b6f4178 Jit64: addx - Prefer ADD over LEA when possible
The old logic would always emit LEA when both sources are in a register
and OE is disabled. However, ADD is still preferable when one of the
sources matches the destination.

Before:
45 8D 6C 35 00       lea         r13d,[r13+rsi]

After:
44 03 EE             add         r13d,esi
2020-01-05 23:23:56 +01:00
Léo Lam c1f9bfce30 IOS/ES: Add SetUid exception for the Wii U Transfer Tool
The ES sysmodule in IOS62 (v6430) has an exception for the
Wii U Transfer Tool in the SetUid function.

If the active title is the Wii U Transfer Tool, then calling SetUid
is always allowed. (The UID is still checked first, though.)

Fixes https://bugs.dolphin-emu.org/issues/10985
2020-01-05 18:16:54 +01:00
Jordan Woyak 956339df4e Core/WiimoteReal: Make wiimote source type an enum class and add Get/SetWiimoteSource functions. Add connected real Wii Remotes to a pool when a slot is not available. 2020-01-05 10:15:22 -06:00
Léo Lam f35f4f2bf0
Merge pull request #8541 from jordan-woyak/float-parse-fix
StringUtil: Make TryParse of floats handle comma and dot decimal separators.
2020-01-05 12:12:09 +01:00
Pokechu22 3b5d20e12c Bump state version 2020-01-04 11:43:33 -08:00
Pokechu22 51f8a3606e Return error code to game when using unimplemented commands 2020-01-04 11:43:32 -08:00
Pokechu22 af5f0b20bb Report use of various unimplemented DI commands as game quirks 2020-01-04 11:43:32 -08:00
Pokechu22 f1dc908883 Clarify emulated behavior for ReadBCA 2020-01-04 11:43:32 -08:00
Pokechu22 6c0399103f Handle partitions in /dev/di, not DVDInterface
Partitions are Wii-exclusive, and don't happen at the DVDInterface level in
IOS.  This isn't quite the cleanest fix, but it gets rid of the assumption that
a partition is open on starting the game at least.
2020-01-04 11:43:32 -08:00
Pokechu22 71e8fb278f Return more errors from DTK 2020-01-04 11:43:31 -08:00
Pokechu22 55a88ba2ed Track drive state better, reporting errors if the state is wrong
Also, fix DVDLowStopMotor logging (which was based on the ioctl parameters)
2020-01-04 11:43:31 -08:00
Pokechu22 7d6b9bcb40 Check for error 001 out of bounds reads in DVDThread
All out of bounds reads should return the appropriate DI error, but it also
makes sense to have the error 001 read happen there.
2020-01-04 11:43:30 -08:00
Pokechu22 ef2fc5a49b Split /dev/di commands from DVDInterface
The various ioctls sometimes have different arguments than the DI command
registers, though they generally overlap.  There are also a bunch of ioctls
that don't even normally go into DVDInterface, just returning various data.
Some of the implemented ioctls are new to Dolphin.
2020-01-04 11:43:30 -08:00
Pokechu22 a8ae5fa21a Expose setting DVDInterface errors and split setting into two parts 2020-01-04 11:43:30 -08:00
Pokechu22 3110599559 Increase DIMAR by DILENGTH after a command 2020-01-04 11:43:30 -08:00
Pokechu22 d3aad1d6d5 DIMAR only ignores bits 0-4, not the upper bits
Based on a hardware test on a Wii.  The alignment code was originally added in 743641965a.
2020-01-04 11:43:29 -08:00
Pokechu22 c564d64104 Remove unused drive debug command constants
The corresponding code that used these was removed in 2009 with 93b83f8d65.  Now their only purpose is to generate warnings on osx.

Minimalistic documentation on these commands can be found at http://hitmen.c02.at/files/yagcd/yagcd/chap5.html#sec5.7.2 and https://web.archive.org/web/20070328200323/http://tmb.elitedvb.net/dvd-game/index.php/CMDFE.  Those constants only relate to the 0x11 subcommand, which is one of many.  Most can't be properly emulated unless we LLE the drive firmware (in which case, they don't need to be reimplemented).
2020-01-04 11:43:29 -08:00
Pokechu22 84f099cf62 Tidy and eliminate some of the DI register unions 2020-01-04 11:43:26 -08:00
Pokechu22 11bd132650 Implement RTC flag, which is counter-intuitively disc drive related 2020-01-04 11:43:26 -08:00
Pokechu22 77189e74cd Implement Broadway GPIOs
SLOT_LED and the AVE ones are not implemented yet, but the other Broadway ones are.
2020-01-04 11:43:26 -08:00
Pokechu22 a695b05b21 Add support for std::optional to PointerWrap 2020-01-04 11:43:26 -08:00
Jordan Woyak 0e8d4cb6ac StringUtil: Make TryParse of floats handle comma and dot decimal separators. 2020-01-04 07:19:15 -06:00
Léo Lam ad75215bb0 Fix several warnings
A small, nonexhaustive set of warning fixes. The DiscIO Volume change
is a workaround for a GCC bug [1] that causes returning an unengaged
std::optional to emit annoying -Wmaybe-uninitialized warnings.
This last change alone fixes pages upon pages of warnings since
Volume.h is included from several files.

-Wstringop-truncation is another irrelevant warning for us, but
unfortunately there seems to be no way to disable it without
adding ugly pragmas wherever the warning appears.
2020-01-04 12:11:39 +01:00
Léo Lam 94c5460693
Merge pull request #8546 from jordan-woyak/default-num-mappings
HW: Add ticks to default mappings that are valid numeric literals.
2020-01-04 10:41:45 +01:00
Léo Lam 671defd8b9
Merge pull request #8543 from jordan-woyak/gcode-download-minor-fix
Core/GeckoCode: Fix DownloadCodes function assuming HTTP data is null terminated.
2020-01-04 10:18:44 +01:00
Jordan Woyak 2a9a04a1ec HW: Add ticks to default mappings that are valid numeric literals. 2020-01-03 22:08:49 -06:00
Jordan Woyak b505004d61 Core/GeckoCode: Fix DownloadCodes function assuming HTTP data is null terminated. 2020-01-03 20:14:10 -06:00
Jordan Woyak 723115b7b6 WiimoteEmu: Allow Recenter button to adjust the pitch. 2020-01-03 18:08:45 -06:00
Jordan Woyak 72c2be52ed WiimoteEmu: Clean up ComplementaryFilter math. 2020-01-03 16:16:26 -06:00
Jordan Woyak 120c6dc850 DolphinQt: Fix accelerometer indicator math. 2020-01-03 12:34:11 -06:00
Jordan Woyak 540a3ce665 DolphinQt: Use FromQuaternion for a more accurate gyro indicator. 2020-01-02 15:46:18 -06:00
Jordan Woyak 8ab3694f51 Common: Add Matrix33::FromQuaternion. 2020-01-02 15:16:37 -06:00
George Talusan b1a6cbc3b4 MacOS: Dispatch GL calls to main thread to prevent crashes on Catalina 2020-01-01 23:06:19 -05:00
David Korth 11339d77c6 IsSettingSaveable.cpp: Significant code size reduction.
- Refactor the Config::System::Main check so we check system once,
  then we check for the section.

- Use an std::array<> instead of std::vector<>.

- Use an array of pointers instead of an array of ConfigLocation.
  The latter contains two std::string objects, whereas pointers
  are only 8 bytes (on 64-bit).

Code size comparison: (64-bit Linux, gcc-9.2.0, release build)

   text    data     bss     dec     hex filename
  16136       0      40   16176    3f30 IsSettingSaveable.cpp.o [before]
   3933     720       0    4653    122d IsSettingSaveable.cpp.o [after]
 -12203    +720     -40  -11523   -2d03 Difference
2019-12-29 23:45:02 -05:00
David Korth f5fe692842 Use pre-increment for iterators instead of post-increment.
Pre-increment is more efficient, since it doesn't have to return the
old iterator.
2019-12-29 23:45:02 -05:00
David Korth c2dd2e8a2e Use std::istringstream or std::ostringstream instead of std::stringstream where possible.
This removes std::iostream from the inheritance chain, which reduces
overhead slightly.
2019-12-29 23:45:02 -05:00
David Korth 6e549bb668 InputConfig::LoadConfig(): Convert num[] to an array of std::string_view.
NOTE: The explicit std::string() conversions later are needed. Otherwise,
gcc-9.2.0 throws all sorts of errors because it can't find a matching
operator+() function.
2019-12-29 23:45:02 -05:00
David Korth a23b3d26f4 GLExtensions.cpp: Use arrays of `const char *const` instead of `std::string`.
The strings end up being copied, so we might as well initialize the
std::string in the unordered_map directly.
2019-12-29 23:45:02 -05:00
David Korth 05101b251c OGL/Render.cpp, InitDriverInfo(): Use std::string_view to eliminate string copies.
Consolidate the NVIDIA Tegra and non-Tegra checks into one branch.
2019-12-29 23:45:02 -05:00
David Korth 1d7f128693 GetSysMenuVersionString(): Use a char instead of std::string for the region letter.
Append the region letter after determining the version number.
2019-12-29 23:45:02 -05:00
David Korth 9f3b9acad9 PowerPC.cpp: No need to explicitly initialize ppcState.
"ppcState{}" is stored in the .data segment, which means the full ~4 MB
is stored in the executable.

"ppcState" is stored in the .bss segment, which means it only stores a
note that tells it to allocate and zero ~4 MB at runtime.
2019-12-29 23:45:02 -05:00
David Korth afe2e7de0f VolumeVerifier.cpp: Verify that the string arrays are sorted before using std::binary_sort().
Debug builds only, since this is wrapped in assert().
2019-12-29 23:42:55 -05:00
David Korth d660aba20f VolumeVerifier.cpp: Use arrays of string_view objects instead of strings.
string_view is a thin wrapper around C strings, so it's more efficient
for constant strings than C++ strings.

The unordered_set<> also adds extra runtime overhead. For small arrays,
a simple linear search works. For larger arrays, std::binary_search()
works better than linear but without the unordered_set<> overhead.

ShouldBeDualLayer(): Removed a duplicate "SK8X52" entry.
2019-12-29 23:42:55 -05:00
degasus aad8aab698 Jit64: Disable the fast address check if fastmem is disabled.
This was a huge speedup with disabled fastmem, but it still requires the fastmem arena.
So let's disable it for now, even if this commit has a huge performance hit with disabled fastmem.
2019-12-28 13:41:57 +01:00
degasus d735943aa2 Jit64: Use safe memory helpers for psq_l* without fastmem.
RMEM won't help if there is no fastmem arena, so let's use our memory helpers.
2019-12-28 13:41:57 +01:00
degasus 74cb692591 Jit64: Only activate dcbz fastpath with fastmem.
The code is safe not to create memory errors, but it accesses the fastmem area.
2019-12-28 13:41:57 +01:00
degasus c6019f9814 PowerPC/Jit: Create fastmem arena on init. 2019-12-28 13:41:57 +01:00
degasus ccbadf6e72 Core: Refactor fastmem arena construction.
This shall be called by the Jit, not by the emulation start itself.
2019-12-28 13:41:57 +01:00
degasus 9d88180df7 MMU: Use the Memory helpers for physical memory.
physical_base is a fastmem helper. Its access is unsafe and might not be available without a Jit.
2019-12-28 12:57:51 +01:00
Stenzek d744c5a148 Compile fixes for Windows-on-ARM64 2019-12-28 19:20:41 +10:00
Stenzek 6fcb1c6c46 Add an ARM64 target to Visual Studio projects 2019-12-28 19:20:41 +10:00
Stenzek 5a65031611 Add a Win32 NoGUI platform and project 2019-12-28 08:56:27 +10:00
Anthony 0755f92979
Merge pull request #8534 from JosJuice/netplay-index-empty-strings
Properly check for missing netplay session name/region
2019-12-25 21:52:22 -08:00
Pierre Bourdon 0341288af2
Merge pull request #8525 from Techjar/axwii-ub
HW/DSPHLE: Fix struct aliasing undefined behavior in AX ucode
2019-12-24 08:35:28 +01:00
JosJuice 0c12dbe860 DolphinQt: Properly save netplay session settings when changed 2019-12-23 23:14:13 +01:00
JosJuice 8e278b8053 Check presence of name and region in NetPlayServer 2019-12-23 23:14:13 +01:00
JosJuice 2fa4ef729f DolphinQt: Check presence of region in NetPlaySetupDialog 2019-12-23 23:14:13 +01:00
Pierre Bourdon 5c996dec89
DualShockUDPClient: downgrade spurious NOTICE_LOGs 2019-12-23 18:36:18 +01:00
Techjar eae959238e HW/DSPHLE: Fix struct aliasing undefined behavior in AX ucode
This fixes Old AX Wii games having no audio when compiled under VS2019.
This also includes some minor code cleanup and moving a function to
avoid duplication.
2019-12-22 14:48:47 -05:00
Techjar 79092cdda0 Common/BitUtils: Implement BitCast(To|From)Array 2019-12-22 14:48:47 -05:00
S David 21f42fafb7 MacOS: Fixes configuration hang; bump MacOS SDK.
Removed conditional use of std::mutex instead of std::shared_mutex on MacOS.

Because MacOS < 10.12 did not support std::shared_mutex, a previous commit
naïvely substituted std::mutex, which does not have the same behavior.

Reverses PR #8273, which substitues std::mutex for std::shared_mutex on
macOS, and results in several bugs that seem to only affect MacOS

- https://bugs.dolphin-emu.org/issues/11919
- https://bugs.dolphin-emu.org/issues/11842
- https://bugs.dolphin-emu.org/issues/11845

This change eliminates conditional code for MacOS in the core configuration
layer code and enables the use of modern language features that are more
secure and thread-safe.
2019-12-22 00:49:17 -05:00
Stenzek 6a0067fd26 FrameDump: Set first_frame if movie frame number <= 1
The frame number is incremented before the first frame is swapped out.

Fixes ffmpeg creating invalid video files on output if the emulator only
runs for a single frame, e.g. FifoCI.
2019-12-22 11:54:34 +10:00
Casey Carter 222bc6a443 Include <memory> for std::unique_ptr in DXContext.h 2019-12-19 14:25:12 -08:00
Connor McLaughlin 74dedc57fd
Merge pull request #8519 from JosJuice/setupwiimemory-region-override
Boot: Optionally allow preserving region settings in setting.txt
2019-12-19 20:47:56 +10:00
Shawn Hoffman e3a30fbdf2 update minilzo to 2.10 2019-12-18 22:20:11 -08:00
Léo Lam 3cf2857aac
Merge pull request #8520 from lioncash/analyst-tidy
PowerPC/PPCAnalyst: Remove unimplemented LogFunctionCall prototype
2019-12-15 12:07:38 +01:00
Lioncash 7c12081693 PowerPC/PPCAnalyst: Remove unimplemented LogFunctionCall prototype
This doesn't have an implementation, so it can be removed.
2019-12-15 00:23:32 -05:00
JosJuice 208c6a3011 Boot: Optionally allow preserving region settings in setting.txt
See the discussion in https://bugs.dolphin-emu.org/issues/11930.
(This probably doesn't really fix that issue, but it's something
I thought would make sense anyway.)
2019-12-14 19:03:20 +01:00
Léo Lam 6cd2f5a76d
Merge pull request #8501 from lioncash/byteswap
GCMemcard: Remove byteswapping functions and macros
2019-12-14 14:28:01 +01:00
Léo Lam 49fcc71565
Merge pull request #8506 from lioncash/cache
PPCCache: Make arrays constexpr where applicable
2019-12-14 14:25:06 +01:00
Connor McLaughlin a980a39807
Merge pull request #8518 from stenzek/more-wiimote-reset-crashes
Core: Reset Wiimotes/rumble/memwatcher on emu thread
2019-12-13 13:44:22 +10:00
spycrab 0cb3257d3f
Merge pull request #8435 from firodj/pr-fix-macos-qt-plugin-cocoa
DolphinQt: Fix qt.qpa.plugin on MacOS
2019-12-10 17:41:02 +01:00
Stenzek e5485ca499 Core: Reset wiimotes/rumble on emu thread instead of main thread
This was causing a race which was crashing the FifoCI runners. The main
thread called Stop() which in turn called ResetAllWiimotes() while the
emu thread was still exiting, also shutting down the Wiimote class.

By shifting the reset to the emu thread, all cleanup operations happen
on the same thread where they were initialized.
2019-12-09 20:07:00 +10:00
Stenzek c602cb2e2f Core: Reset memory watcher on same thread which allocates it 2019-12-09 20:06:14 +10:00
Stenzek e05bc33899 Vulkan: Call VertexManagerBase initialize 2019-12-09 19:16:15 +10:00
Stenzek 07c43b192f D3D12: Call VertexManagerBase initialize 2019-12-09 19:16:04 +10:00
Anthony a21fb96638
Merge pull request #8516 from JosJuice/scrub-unencrypted-again
Fix scrubbing unencrypted Wii disc images (for real this time)
2019-12-08 12:25:16 -08:00
JosJuice 711b36075c Fix scrubbing unencrypted Wii disc images (for real this time)
Unlike what my past self apparently thought, % is in fact not the
"round down" operator.

https://bugs.dolphin-emu.org/issues/11906
2019-12-08 19:41:40 +01:00
Anthony bac8c060b5
Merge pull request #8508 from lioncash/fmt-tex
VideoCommon/TextureConverterShaderGen: Convert over to fmt
2019-12-07 18:41:14 -08:00
Anthony 9ef50a1d4b
Merge pull request #8509 from lioncash/shader-str
VideoCommon/FramebufferShaderGen: Minor clean up
2019-12-07 18:40:56 -08:00
Anthony 19ea546a0a
Merge pull request #8511 from lioncash/if-constexpr
VideoCommon/OpcodeDecoding: Make use of if constexpr
2019-12-07 18:40:15 -08:00
Anthony fdb78b64e1
Merge pull request #8513 from lioncash/bounding-box
VideoCommon/BoundingBox: Make interface for querying bounding box data
2019-12-07 18:40:02 -08:00
Anthony b39756dbce
Merge pull request #8512 from lioncash/index
VideoCommon/IndexGenerator: Eliminate static state
2019-12-07 18:38:06 -08:00
Lioncash 81edcca8db Common/Network: Use std::nullopt in StringToMacAddress
Prevents unnecessary zeroing out of std::optional's internal buffer in
some implementations.
2019-12-06 09:59:11 -05:00
Lioncash cbfacc41ba Common/Network: Remove unused header inclusions
Removes unused header dependencies.
2019-12-06 09:51:28 -05:00
Lioncash f06461d208 Common/Network: Make StringToMacAddress use a string_view
This function only ever reads the contents of the string in a non-owning
manner, so we can change the parameter over to being a string view.
2019-12-06 09:45:25 -05:00
Lioncash 2c9ec6cb8a VideoCommon/BoundingBox: Move PixelShaderManager::SetBoundingBoxActive() calls into Enable()/Disable()
Now that we have an actual interface to manage things, we can stop
duplicating the calls to to the pixel shader manager and remove the
need to remember to actually do so when disabling or enabling the
bounding box.
2019-12-05 11:57:58 -05:00
Lioncash 9bd533ebe4 VideoCommon/BoundingBox: Make interface for querying bounding box data
Rather than expose the bounding box members directly, we can instead
provide an interface for code to use. This makes it nicer to transition
from global data, as the interface function names are already in
place.
2019-12-05 11:48:42 -05:00
Lioncash 10f7674651 VideoCommon/IndexGenerator: Eliminate static state
Now that we've extracted all of the stateless functions that can be
hidden, it's time to make the index generator a regular class with
active data members.

This can just be a member that sits within the vertex manager base
class. By deglobalizing the state of the index generator we also get rid
of the wonky dual-initializing that was going on within the OpenGL
backend.

Since the renderer is always initialized before the vertex manager, we
now only call Init() once throughout the execution lifecycle.
2019-12-05 10:49:32 -05:00
Lioncash 159947ab68 VideoCommon/IndexGenerator: Make use of if constexpr
We can use if constexpr with the template functions that pass in a
non-type template parameter, allowing the removal of branches that
aren't taken at compile time.

Compilers will generally do this by default, however, we now give a
gentle prodding to the compiler if this would otherwise not be the case.
2019-12-05 10:49:32 -05:00
Lioncash fb3fda775f VideoCommon/IndexGenerator: Move stateless functions into anonymous namespace
These don't rely on any of the static members within the IndexGenerator
class, so we can make all of these functions fully internal to the
translation unit.
2019-12-05 10:49:29 -05:00
Lioncash 69f2ca2230 VideoCommon/IndexGenerator: Make use of anonymous namespace
More things will be moved into this in subsequent changes. While we're
at it, we can also make use of std::array.
2019-12-05 09:36:41 -05:00
Lioncash 1f46a6a64b VideoCommon/OpcodeDecoding: Make use of if constexpr
We can make use of if constexpr in several scenarios here to allow
compilers to exise the relevant code paths out.

Technically a decent compiler would do this already, but now we can give
compilers a little more nudging here in the event that isn't the case.
2019-12-05 09:13:06 -05:00
Lioncash 99353c3baa VideoCommon/OpcodeDecoding: Remove unused headers
Nothing provided by these headers are used, so we can remove them.
2019-12-05 09:13:06 -05:00
Lioncash 6339a5ea8e VideoCommon/OpcodeDecoding: Resolve implicit signedness conversion
cmd2 is a u32, so any bitwise arithmetic on it with a type of the same
size or smaller will result in a u32 value. This is also implicitly
converted to an unsigned type in the if statement as well, given that
size_t * int -> size_t.

This is just more explicit about the operations occurring and also
likely silences a sign conversion warning.
2019-12-05 09:13:06 -05:00
Lioncash 4710b82f43 VideoCommon/OpcodeDecoding: Remove use of goto in Run()
With the use of a lambda and a change in switch fallthrough, we can
completely eliminate the use of goto within Run().
2019-12-05 09:13:06 -05:00
Lioncash f74503cce0 VideoCommon/OpcodeDecoding: Make use of anonymous namespace
Provides a region for all internal utilities.
2019-12-05 09:13:06 -05:00
Lioncash 6b4e340995 VideoCommon/OpcodeDecoding: Amend comment formatting
Amends a documentation comment that acquired some wonky formatting
during the introduction of clang-format a few years ago.
2019-12-05 09:13:06 -05:00
Lioncash b2a9c36501 VideoCommon/OpcodeDecoding: Move g_bRecordFifoData into namespace
Keeps the global localized with the code that it's primarily related to.

Now it's obvious from a glance what the global variable is affecting.
2019-12-05 09:13:03 -05:00
Lioncash d8063e9c54 VideoCommon/OpcodeDecoding: Normalize variable naming
Provides consistent naming of variables within the translation unit.

While we're at it, we can mark them const where applicable.
2019-12-05 08:05:29 -05:00
Lioncash f29730944f VideoCommon/FramebufferShaderGen: Make use of std::ostringstream internally
We only use these string streams to output into a final std::string
instance, we don't read into types with them. Because of this, we can
just make use of std::ostringstream, rather than the fully-fledged
std::stringstream.
2019-12-05 00:18:00 -05:00
Lioncash fff445cc10 VideoCommon/FramebufferShaderGen: Make use of std::string_view where applicable
Prevents the use of the null pointer as an input to any functions.
2019-12-05 00:15:37 -05:00
Lioncash 3405815f09 VideoCommon/FramebufferShaderGen: Remove unused Config struct
This isn't used anywhere within the codebase, so it can be removed
entirely.
2019-12-04 23:54:15 -05:00
Lioncash 3a8d17c140 VideoCommon/FramebufferShaderGen: Use an anonymous namespace where applicable
Places all internal helpers and types within an anonymous namespace.
2019-12-04 23:51:26 -05:00
Lioncash eefd6a10f5 VideoCommon/FramebufferShaderGen: Add missing initial source file comments
Makes the source files consistent with the rest of the VideoCommon code.
2019-12-04 23:48:59 -05:00
Lioncash f8c90f0484 VideoCommon/FramebufferShaderGen: Collapse stream insertions
No behavioral change. This is intended to make the transition to fmt
less noisy in subsequent changes by combining insertions of multiple
string literals into one where applicable.
2019-12-04 23:45:15 -05:00
rlnilsen 965781ea9d Motion Input: Add nunchuk support. 2019-12-04 23:21:26 +01:00
Lioncash 0f28f4049b VideoCommon/TextureConverterShaderGen: Convert over to fmt
Easily the most straightforward to convert over, given the lack of
significant formatting arguments.
2019-12-03 05:05:02 -05:00
Lioncash 8af6bfb8b0 VideoCommon/ShaderGenCommon: Add function for writing fmt-based strings
Begins the conversion of the shader generators over to using fmt
formatting specifiers.

This also has a benefit over the older StringFromFormat-based API in
that all formatted data is appended to the existing buffer rather than
creating a completely separate string and then appending it to the
internal string buffer.
2019-12-03 04:49:48 -05:00
Lioncash 474e210cd5 PPCCache: Make arrays constexpr where applicable
Two of these arrays were stored within the save state when the exact
same data is constructed all the time.

We can just build this into the binary rather than the save state,
shrinking a little bit of the save state's overall size.
2019-12-03 04:05:09 -05:00
Lioncash 1d5ce4708f PPCCache: Make use of std::array where applicable
Allows simplifying a bunch of initialization and filling code.
2019-12-03 04:05:05 -05:00
Connor McLaughlin 15fc71cfcf
Merge pull request #8498 from stenzek/update-vs2019
Update VS projects/solutions to VS2019
2019-12-03 13:03:49 +10:00
Stenzek 52e2e32193 Core: Only reset wiimotes in Wii mode
This was causing the FifoCI runners to crash, as the Wiimotes were not
initialized in the first place.
2019-11-30 15:41:38 +10:00
Stenzek 33c0abd1ab Disable warning C5054 on DolphinQt
They're all in the Qt headers, and quite noisy.
2019-11-30 13:42:52 +10:00
Stenzek dd23a1ee79 Update VS projects/solutions to VS2019 2019-11-30 13:42:52 +10:00
Anthony 4a0611df54
Merge pull request #8487 from lioncash/video-fmt
VideoCommon: Make use of fmt outside of shader generators
2019-11-28 15:03:23 -08:00
Anthony b5656df7e8
Merge pull request #8502 from lioncash/log
Common: Unify logging namespace with Common
2019-11-28 15:01:49 -08:00
OatmealDome ef32a10d69 InputCommon: Decouple ButtonManager and Touchscreen from Android
Changes were also made for codestyle compliance.
2019-11-28 15:20:51 -05:00
Lioncash c792961000 Common: Unify logging namespace with Common
Previously the logging was a in a little bit of a disarray. Some things
were in namespaces, and other things were not.

Given this code will feature a bit of restructuring during the
transition over to fmt, this is a good time to unify it under a single
namespace and also remove functions and types from the global namespace.

Now, all functions and types are under the Common::Log namespace. The
only outliers being, of course, the preprocessor macros.
2019-11-28 05:13:21 -05:00
Lioncash e33c366502 GCMemcard: Remove byteswapping macros
We can just specify the functions directly instead of relying on
preprocessor textual replacement.
2019-11-27 23:15:31 -05:00
Lioncash 1f1a02151e GCMemcard: Replace ByteSwap with std::swap
There's already a standard library function that does what this function
is doing.
2019-11-27 23:15:26 -05:00
Anthony c2c8a14966
Merge pull request #8348 from JosJuice/mmu-setting
Disable full MMU by default and add it to global config GUI
2019-11-27 16:04:40 -08:00
Anthony 9822a2d582
Merge pull request #8465 from CookiePLMonster/d3d-common-cleanup
D3DCommon: Cleanups and resource leak fix
2019-11-27 16:03:44 -08:00
Anthony 66ca83e6af
Merge pull request #8479 from nokturnusmf/master
Fixed #11874 (leading 0s ignored by debugger)
2019-11-27 15:57:54 -08:00
Anthony 155016531f
Merge pull request #8439 from JosJuice/android-native-motion-controls
Android: Native motion controls
2019-11-27 15:40:43 -08:00
Anthony 34a1df1c68
Merge pull request #8493 from JosJuice/android-audio-volume
Android: Add audio volume setting
2019-11-27 15:36:54 -08:00
Anthony e33acc07f9
Merge pull request #8332 from CookiePLMonster/dsp-lle-deadlock
DSPLLE: Put DSP thread in idle state when it's paused
2019-11-27 15:34:34 -08:00
Anthony 44f85bbc5e
Merge pull request #8496 from JosJuice/volumewii-check-decrypted-order
VolumeWii: Check SupportsReadWiiDecrypted before m_encrypted
2019-11-27 15:33:43 -08:00
Anthony f20c1c2f8d
Merge pull request #8499 from JosJuice/volumeverifier-super-paper-mario
VolumeVerifier: Detect broken Super Paper Mario
2019-11-27 15:31:05 -08:00
JosJuice 59633f5309 VolumeVerifier: Detect broken Super Paper Mario
https://bugs.dolphin-emu.org/issues/11900
2019-11-27 18:26:22 +01:00
JosJuice 9938585702 DolphinQt: Remove "Experimental" from "Export Wii Save"
It's pretty well tested at this point.
2019-11-27 17:23:58 +01:00
JosJuice cf8208ace9 Android: Add audio volume setting 2019-11-26 21:10:27 +01:00
JosJuice 23fc5f9e35 VolumeWii: Check SupportsReadWiiDecrypted before m_encrypted
Fixes using DirectoryBlob on extracted games that were unencrypted
prior to being extracted.

(One day I'll make DirectoryBlob actually support raw reads and then
the order of these two won't matter...)
2019-11-26 20:09:40 +01:00
Scott Mansell ac77df9e90
Merge pull request #8490 from vadosnaprimer/dumping
2 minor dumping fixes
2019-11-25 10:38:44 +13:00
JosJuice 45ba745bc8
Merge pull request #8320 from CookiePLMonster/cpu-lock-yield-fix
Do not yield to UI from PauseAndLock
2019-11-24 20:12:04 +01:00
feos cb6a632c60 fix missing frame when you start another dump without closing dolphin 2019-11-24 18:02:38 +03:00
feos 15e6e7ddd2 figure out new segment on the fly right in FrameDump::Start() 2019-11-24 18:02:36 +03:00
Lioncash b28db1d4e6 UICommon: Make use of fmt where applicable
Continues the migration to using fmt.

Notably, this allows safely converting a map within USBUtils over to
containing string view instances, rather than std::string instances, as
fmt safely handles the formatting of string views.
2019-11-23 19:41:40 -05:00
Léo Lam ec895f544c
Merge pull request #8486 from lioncash/dualshock
InputCommon/DualShockUDPClient: Minor cleanup
2019-11-24 00:46:19 +01:00
Lioncash 6fbbc2683e VideoCommon: Make use of fmt outside of shader generators
Migrates most of VideoCommon over to using fmt, with the exception being
the shader generator code. The shader generators are quite large and
have more corner cases to deal with in terms of conversion (shaders have
braces in them, so we need to make sure to escape them).

Because of the large amount of code that would need to be converted, the
conversion of VideoCommon will be in two parts:

- This change (which converts over the general case string formatting),
- A follow up change that will specifically deal with converting over
  the shader generators.
2019-11-23 16:00:45 -05:00
tinyredpanda fe9e7d5578 Prefer MessageBoxW to MessageBoxA 2019-11-23 13:56:05 +00:00
tinyredpanda 5dbabef355 Simplify wstring to QString conversion 2019-11-23 13:23:46 +00:00
Lioncash 334e2768f5 InputCommon/DualShockUDPClient: Use an alias for the clock type
Makes code slightly less verbose without exposing the whole chrono
header to the current source file.
2019-11-22 17:06:10 -05:00
Lioncash db9e592765 InputCommon/DualShockUDPClient: Use deduction guides for lock_guard
With C++17, we can use template deduction guides provided by the
standard library. This allows the omission of the mutex type itself.
2019-11-22 17:06:10 -05:00
Lioncash 278d03f737 InputCommon/DualShockUDPClient: Make use of std::array where applicable
Provides the same semantics of a C array, but is much nicer to work
with.

Notably, it makes all cases of performing comparisons with said arrays
significantly less reading-involved.
2019-11-22 17:06:07 -05:00
Silent 5be9505ab3
Signal DSP thread after unlocking DSP mutex 2019-11-22 23:00:42 +01:00
JosJuice a06da596e5
Merge pull request #8485 from lioncash/imu
InputCommon/IMU*: Remove unnecessary includes
2019-11-22 22:31:57 +01:00
JosJuice af37d09b0f
Merge pull request #8484 from lioncash/input-func
InputCommon/FunctionExpression: Minor cleanup
2019-11-22 22:31:31 +01:00
Silent e30ff7c327
DSPLLE: Put DSP thread in idle state if it's paused to prevent a deadlock
DSP thread is considered "idle" when it signals s_ppc_event and waits for s_dsp_event,
without putting it in this state when m_dsp_thread_mutex is locked it was possible to
create a deadlock between a DSP thread, emulation thread and Qt thread by accessing
Config menu immediately after booting up the game
2019-11-22 22:07:41 +01:00
Lioncash 67097b4574 InputCommon/DualShockUDPClient: Relocate settings to top of source file
This is a small namespace, so we can move it to the top of the file to
get it out of the way of everything else.
2019-11-22 15:56:29 -05:00
Lioncash 4488719a76 InputCommon/DualShockUDPClient: In-class initialize members where applicable
Deduplicates members within the constructor's initializer list.
2019-11-22 15:56:29 -05:00
Lioncash 544d6cbe52 InputCommon/DualShockUDPClient: Add missing header guard
Prevents potential inclusion issues from occurring.
2019-11-22 15:56:26 -05:00
Lioncash 91993b46d9 InputCommon/IMU*: Remove unnecessary includes
Trims out unnecessary includes to avoid unnecessary header dependencies.

This also resolves indirect inclusions of <optional> within
IMUAccelerometer.h and IMUGyroscope.h
2019-11-22 15:41:38 -05:00
Lioncash 814fd165af InputCommon/FunctionExpression: Use Yoda conditions, we do not
The general convention in the codebase is to compare the non-constant
value/string with the constant value/string, not the other way around.
2019-11-22 15:36:18 -05:00
Lioncash 1f6077922b InputCommon/FunctionExpression: Remove unnecessary 'else' in MakeFunctionExpression()
Given all conditional bodies only contain a return, the use of else here
isn't necessary.

This has the benefit of consistently vertically aligning the names.
2019-11-22 15:36:18 -05:00
Lioncash 10fea99d80 InputCommon/FunctionExpression: Make MakeFunctionExpression() take a std::string_view
There's nothing within this function that requires a copy of the string
to be made, so we can make use of a non-owning view
2019-11-22 15:36:18 -05:00
Lioncash ddf8abf507 InputCommon/FunctionExpression: Remove unused LOOP_MAX_REPS constant
This isn't used anywhere in the translation unit, so we can remove it.
2019-11-22 15:36:18 -05:00
Lioncash 64bc6f53fd InputCommon/FunctionExpression: Remove cyclical include
This header was including itself, which is likely not intended.
2019-11-22 15:36:18 -05:00
Lioncash cb8fbe872e InputCommon/FunctionExpression: Collapse namespaces
Since we target C++17, we can collapse the namespaces into a single
declaration specifier.
2019-11-22 15:36:14 -05:00
Lioncash 6586ecc7a8 InputCommon/FunctionExpression: include <algorithm>
std::min/std::max are used within this translation unit, so it needs to
be included to prevent potential compilation failures.
2019-11-22 14:41:13 -05:00
Lioncash e8edc49bbe InputCommon: Make use of fmt where applicable
Continues the migration over to fmt
2019-11-22 14:38:26 -05:00
Matthew Foulds 5b6e7aabcf Fixed 11874 (leading 0s ignored by debugger) 2019-11-22 19:16:34 +00:00
Mat M bc449fb98f
Merge pull request #8480 from JosJuice/volumeverifier-block-future
VolumeVerifier: Fix a copypaste error
2019-11-22 11:42:50 -05:00
JosJuice 4e713238d9 VolumeVerifier: Fix a copypaste error
This was completely wrong, but I guess it happened to work correctly
anyway due to timing reasons (MD5 is faster than SHA-1 + AES).
2019-11-22 13:39:04 +01:00
JosJuice a9cf8670e0
Merge pull request #8224 from Pokechu22/wiimote-eeprom
Write the entirety of the Wiimote EEPROM, in a per-Wiimote file
2019-11-20 22:03:53 +01:00
JosJuice c8b8a60033 Android: Let WiimoteEmu know whether we have accelerometer/gyroscope 2019-11-20 20:13:36 +01:00
JosJuice b143df91be Android: Native motion controls 2019-11-20 18:22:20 +01:00
JosJuice d66050375c
Merge pull request #8347 from hosaka-corp/frame-advance-alignment
Align frame advance and movies to full field boundaries
2019-11-19 19:26:35 +01:00
Léo Lam dae01b1a3b
Merge pull request #8346 from DacoTaco/master
GCMemcardManager : icon drawing takes to much cpu time
2019-11-18 23:37:11 +01:00
meta 9c5c3c055e Align frame advance and movies to full field boundaries 2019-11-18 15:05:06 -06:00
Jordan Woyak 282470e312 DolphinQt: Fix accelerometer mapping indicator flipped X axis. 2019-11-17 16:41:06 -06:00
Pokechu22 4d4a095c76 Reset Wiimotes on force stop and when starting MIOS 2019-11-17 12:20:26 -08:00
Pokechu22 a23609562d Replace magic disconnect channel number with a constant 2019-11-17 12:20:25 -08:00
Pokechu22 5477409847 Write the entirety of the Wiimote EEPROM, in a per-Wiimote file
Previously, only Mii data was written.  Additionally, the file containing mii data was shared for all Wiimotes, which made it a lot less useful.

Additionally, the file was read/written on each Wiimote read, even though the whole EEPROM was kept in memory.  This was bad for performance and not particularly necessary (it did enforce that the data was properly shared between all Wiimotes, but that's not something I want).
2019-11-17 12:20:19 -08:00
DacoTaco d6eb75b272 GCMemcardManager : Performance boost 2019-11-17 20:45:24 +01:00
Léo Lam 97f9f252cc
Merge pull request #8464 from jordan-woyak/wm-emu-errorcode
WiimoteEmu: Minor accuracy fixes.
2019-11-17 10:39:18 +01:00
Léo Lam bc1aa3640b
Merge pull request #8302 from AdmiralCurtiss/gcmemcard-comments
GCMemcard: Read comments, banners, and icons via logical data offsets instead of physical ones.
2019-11-17 10:34:06 +01:00
Admiral H. Curtiss 3b67d0d90a GCMemcard: Read icons according to logical data offsets instead of physical data offsets. Also gets rid of some undefined behavior. 2019-11-17 01:42:26 +01:00
Admiral H. Curtiss 110d6c1da3 GCMemcard: Read banners according to logical data offsets instead of physical data offsets. Also gets rid of some undefined behavior. 2019-11-17 01:42:26 +01:00
Admiral H. Curtiss 2f119bd206 GCMemcard: Move Icon and Banner constants to the GCMemcard header. 2019-11-17 01:42:26 +01:00
Admiral H. Curtiss 58f21830bd GCMemcard: Read file comments according to logical data offsets instead of physical data offsets. 2019-11-17 01:42:26 +01:00
Admiral H. Curtiss 770605bc80 GCMemcard: Add method to read an arbitrary block of bytes from a save file. 2019-11-17 01:42:26 +01:00
Silent 85c2841643
Make "Do you want to stop emulation?" application modal and disallow multiple instances at once
Fixes numerous issues with this dialog spawning multiple times
and putting Dolphin in a weird state.
2019-11-16 19:51:55 +01:00
Silent af92a88aa0
UI: Allow to specify modality of ready ModalMessageBoxes 2019-11-16 19:51:00 +01:00
Léo Lam b712cc106b
Merge pull request #7909 from LAGonauta/dplii-quality-slider
Add slider to change DPLII decoder quality
2019-11-16 18:13:58 +01:00
Léo Lam a77108236e
Merge pull request #8418 from lioncash/core-fmt
Core: Replace usages of StringFromFormat with fmt where applicable
2019-11-16 18:09:58 +01:00
degasus 3ebcc445de Core/Jits: Adds an option to disable the register cache.
This will help to disable all inter-instruction dependencies.
So android users can check if only a single instruction is broken without compiling dolphin on their own.
2019-11-16 13:05:54 +01:00
JosJuice fe39e1e6d8
Merge pull request #8440 from rlnilsen/motion-input-tweaks
Motion Input enhancements
2019-11-15 14:08:45 +01:00
JosJuice c23da15a22
Merge pull request #8470 from BreadFish64/patch-2
Fix typo in comment
2019-11-11 22:34:04 +01:00
Marshall Mohror 0334dde2cf
Fix typo in comment 2019-11-11 13:20:04 -06:00
Lioncash cfbabd4c41 SI_Device: Provide proper insertion/extraction operators for SIDevices enum
Allows the enumeration to be safely used with our type parsing
functions.
2019-11-11 07:33:01 -05:00
Lioncash febd1c3dba Core: Replace usages of StringFromFormat with fmt where applicable
Migrates usages of StringFromFormat over to using fmt.
2019-11-11 07:32:57 -05:00
LAGonauta 08787ebc4a Centralize logic to detect when the DPL2 decoder should be used. 2019-11-11 08:03:36 -03:00
Silent 4daeacba35
Fix malformed manifests 2019-11-11 11:47:10 +01:00
Jordan Woyak 4d24f160e3 WiimoteEmu: Minor accuracy fixes. 2019-11-10 20:38:21 -06:00
Connor McLaughlin 913cb08066
Merge pull request #8456 from jordan-woyak/input-gate-race-fix
InputCommon: Make the "input gate" not racy.
2019-11-11 10:59:49 +10:00
Pierre Bourdon 066012b80d
Merge pull request #8454 from jordan-woyak/motion-input-indicators
DolphinQt: Add accelerometer/gyroscope mapping indicators.
2019-11-10 18:57:31 +01:00
Pierre Bourdon 499f065b83
Merge pull request #8466 from jordan-woyak/evdev-float
evdev: fix bad integer division.
2019-11-10 18:53:22 +01:00
Pierre Bourdon df32e3fdfd
Merge pull request #8445 from Leseratte10/master
Add /dev/dolphin for homebrew to get information about Dolphin
2019-11-10 17:34:07 +01:00
Jordan Woyak 0c57887839 evdev: fix bad integer division. 2019-11-10 10:10:37 -06:00
Silent a68789a70c
D3DCommon: Remove unused GetDebugObjectName and tidy up SetDebugObjectName 2019-11-10 16:07:32 +01:00
Silent 8445644e05
D3DCommon: Migrate few remaining raw pointers to WRL::ComPtr 2019-11-10 16:07:32 +01:00
Jordan Woyak e85e51e5ce HW/WiimoteReal: Replace invalid select call with poll. 2019-11-09 19:22:58 -06:00
Jordan Woyak 59ebaed81c HW/WiimoteReal: Remove an old comment. We block infinitely now. 2019-11-09 18:45:09 -06:00
Léo Lam eebc64aaf8
Merge pull request #8460 from jordan-woyak/evdev-motion-data
InputCommon: Detect when evdev exposes acceleration/gyroscope data.
2019-11-09 23:34:51 +01:00
JosJuice 9e0b09ddf4 Disable full MMU by default and add it to global config GUI
Requested by JMC.
2019-11-09 23:26:55 +01:00
Léo Lam c167543eb3
Merge pull request #8185 from Techjar/memcard-manager-auto
Qt/GCMemcardManager: Load configured memory cards by default
2019-11-09 23:06:57 +01:00
Léo Lam 08b191ee8e
Merge pull request #8313 from JosJuice/gamelist-xml
GameFile: Support HBC-style XML metadata
2019-11-09 22:59:26 +01:00
Léo Lam f4e12f85bc
Merge pull request #8393 from CookiePLMonster/long-paths
Support Windows 10 long paths
2019-11-09 21:10:16 +01:00
Léo Lam 6cb60f8d36
Merge pull request #8385 from iwubcode/pathes-update
DolphinQt: Add ability to override ResourcePack and Load directory
2019-11-09 20:39:15 +01:00
Jordan Woyak 1180c231a6 InputCommon: Detect when evdev exposes acceleration/gyroscope data. 2019-11-09 13:34:29 -06:00
Jordan Woyak 8ef25ddd84 DolphinQt: Add accelerometer/gyroscope mapping indicators. 2019-11-09 09:59:45 -06:00
Florian Bach 2d55a6b0b7 Add /dev/dolphin for homebrew to get information about Dolphin
Adds a /dev/dolphin interface that can be used by
Dolphin-aware software to get information like the
real system time and the Dolphin version.
2019-11-09 15:31:51 +01:00
Jordan Woyak a6b3a2cd4f DolphinQt: Hide unused buttons in the advanced mapping dialog. 2019-11-08 17:47:19 -06:00
Jordan Woyak 1e028025e5 Common: Add additional Matrix/Vec functions. 2019-11-08 15:46:45 -06:00
Léo Lam d8c62b5965
Merge pull request #8396 from jordan-woyak/mapping-input-list-states
Qt/Mapping: Show current input states in advanced dialog.
2019-11-08 22:15:45 +01:00
Connor McLaughlin 422c3f79da
Merge pull request #8382 from tkln/verify-widget-switch-none-warn
VerifyWidget: Handle Severity::None case in Verify()
2019-11-08 11:23:32 +10:00
Connor McLaughlin 62f331dd13
Merge pull request #8431 from ferrrry/game-window-class
Qt: Add "renderer" window role to render window
2019-11-08 11:22:49 +10:00
Connor McLaughlin 71b098a69d
Merge pull request #8399 from CookiePLMonster/gametracker-fixes
Qt: Game Tracker fixes
2019-11-08 11:22:09 +10:00
Connor McLaughlin 9700b1e320
Merge pull request #8367 from JosJuice/missing-company-ids
DiscIO: Add missing company IDs
2019-11-08 11:15:27 +10:00
Connor McLaughlin a89fdb628c
Merge pull request #8343 from stenzek/fbdev
DolphinNoGUI: Add a FBDev platform
2019-11-08 11:05:53 +10:00
Connor McLaughlin 2ebea1bfa7
Merge pull request #8433 from JosJuice/settings-onemulationstatechanged
DolphinQt: Call OnEmulationStateChanged when creating config window panes
2019-11-08 11:01:14 +10:00
Connor McLaughlin 47677ecaa7
Merge pull request #8437 from JosJuice/batch-render-to-main
Disable render to main when using batch mode
2019-11-08 11:00:18 +10:00
Connor McLaughlin 9db1ce8ef9
Merge pull request #8436 from JosJuice/vi-wii-freeloader
VideoInterface: Don't crash when running Wii Freeloader
2019-11-08 10:56:25 +10:00
Connor McLaughlin 28ce9330a8
Merge pull request #8444 from booto/vi-fields
VI: Adjust start/end of ACV region for fields
2019-11-08 10:51:32 +10:00
Connor McLaughlin 18ba1fd723
Merge pull request #8452 from JosJuice/android-emulationactivity-rotation-crash
Android: Replace emulation rotation crash workaround with proper fix
2019-11-08 10:45:21 +10:00
Connor McLaughlin 7c8a255ce1
Merge pull request #8450 from jordan-woyak/mapping-button-fix
DolphinQt: Fix output mapping button spacebar activation and tooltip.
2019-11-08 10:30:33 +10:00
Connor McLaughlin b554b636bd
Merge pull request #8449 from JosJuice/disable-bt-pt-buttons
DolphinQt: Fix the enabling/disabling of ControllersWindow buttons
2019-11-08 10:27:49 +10:00
Connor McLaughlin 5440be96e7
Merge pull request #8378 from stenzek/quad-buffer-stereo
Various quad-buffered ("HDMI 3D") stereo fixes
2019-11-08 10:26:58 +10:00
Jordan Woyak 85ceb37ccd InputCommon: Make the "input gate" not racey. 2019-11-06 16:31:02 -06:00
Scott Mansell 93d7b3d159
Merge pull request #8432 from jordan-woyak/hotkey-indicator-fix
DolphinQt: Make HotkeyScheduler call UpdateInput when hotkeys are disabled.
2019-11-07 10:05:54 +13:00
JosJuice c007dd1852 Android: Replace emulation rotation crash workaround with proper fix
The workaround was added in 0446a58.

The underlying problem is that we must not destroy the surface
while the video backend is initializing, otherwise the video
backend may reference nullptr.

I've also cleaned up the logic for when to destroy the surface.
Note that the comment in EmulationFragment.java about only being
able to destroy the surface when emulation is running is not true
anymore (due to de632fc, it seems like).
2019-11-05 09:28:40 +01:00
Jordan Woyak 32cf4b76be DolphinQt: Fix tooltip of output mapping buttons. 2019-11-03 18:20:08 -06:00
Jordan Woyak 1bdf43dd78 DolphinQt: Fix spacebar not activating output mapping buttons. 2019-11-03 18:17:51 -06:00
JosJuice ef1bae5320 DolphinQt: Fix the enabling/disabling of ControllersWindow buttons
Without this change, calling OnEmulationStateChanged undoes part
of the enabling/disabling that OnWiimoteModeChanged has done.
2019-11-03 15:03:58 +01:00
rlnilsen f7a50545e3 Motion Input: Add "enable" checkbox for motion controlled cursor. 2019-11-03 11:56:01 +01:00
rlnilsen d67a2304b0 Input: Add optional "enable" setting to the ControlGroup class.
The setting is exposed as a check box in the QGroupBox instance that visualises the ControlGroup instance.
The setting is saved under "[control group name]/Enabled", but only when it is "false". The default value is "true".
2019-11-03 11:55:52 +01:00
iwubcode 490fd0c3b3 DolphinQt: Add way to override "ResourcePack" folder that controls the location of resource packs 2019-11-02 13:42:40 -05:00
iwubcode 876a1ccc3e DolphinQt: Add way to override "Load" folder that controls the location of custom textures 2019-11-02 13:30:44 -05:00
JosJuice 56d37d773b RedumpVerifier: Show an error when datfile lacks serials or versions
This happens if someone manually downloads a regular datfile from
redump.org and puts it where Dolphin stores datfiles. Dolphin needs
"special" datfiles that contain fields for serials and versions.

Before this change, all discs (except Datel discs) would show up as
"Unknown disc" when using a regular datfile.
2019-11-02 16:49:20 +01:00
Techjar 3006c73bf6 Qt/RenderWidget: Account for devicePixelRatio when auto-adjusting window size 2019-11-01 14:37:29 -04:00
rlnilsen 49d9c63908 Motion Input: DSU Client config UI: Enable server IP address and port fields only when "server enable" is checked. 2019-11-01 03:35:07 +01:00
booto 371e3f1021 VI: Adjust start/end of ACV region for fields
This wasn't changed when halfline counts were changed to 0-based. Also
included is a diagram showing an understanding of how the values in the VI
timing registers maps to the video signal.
2019-10-31 21:04:22 -04:00
Stenzek 16f103ab42 Vulkan: Exclusive fullscreen support via VK_EXT_full_screen_exclusive 2019-10-31 22:45:59 +10:00
Stenzek 6fc6444687 Vulkan: Explicitly enable VK_KHR_get_physical_device_properties2
This was missing from the subgroup PR way back.
2019-10-31 22:45:59 +10:00
Stenzek 230190fc36 Vulkan: Allow runtime querying of enabled extensions 2019-10-31 22:45:59 +10:00
Connor McLaughlin d3ee0a4535
Merge pull request #8379 from stenzek/mali
Vulkan: Optimizations for Mali with EFB2RAM on
2019-10-31 22:44:19 +10:00
Mat M fd4bf5f0a2
Merge pull request #8438 from JosJuice/tilt-tooltip-string
Change Wii Remote tilt tooltip string based on translator feedback
2019-10-30 05:39:13 -04:00
Mat M 78fad0aafa
Merge pull request #8443 from JosJuice/redumpverifier-datel-wii
RedumpVerifier: Fix handling of Datel Wii disc serials
2019-10-30 05:37:08 -04:00
JosJuice f9705fd117 Return nothing from VolumeWii::GetGameTDBID if Datel
RedumpVerifier relies on this.
2019-10-30 10:23:33 +01:00
JosJuice 42ec861469 RedumpVerifier: Fix handling of Datel Wii disc serials
GC Datel discs have empty serials, but Wii Datel discs have
serials starting with DS followed by some digits.
2019-10-30 10:11:24 +01:00
JosJuice 49977446dd RedumpVerifier: Don't crash on missing hyphen in serial 2019-10-30 09:58:37 +01:00
JosJuice e2ef248260 VolumeVerifier: Fix "The data partition is missing" false positive
My bad...
2019-10-30 09:38:18 +01:00
JosJuice 379f264aa8 Disable render to main when using batch mode
https://bugs.dolphin-emu.org/issues/11888

This also includes another change: DolphinQt will now exit with an
error if you use --batch without specifying a game using any method
(unlike in the past where --batch would be ignored if you didn't
specify a game using --exec, even if you had used --nand-title).
The main reason why I did this was because coding the alternative
(ignoring --batch) would be annoying with render to main involved.
2019-10-29 18:32:43 +01:00
Pierre Bourdon 1f3d1a9b7f
Merge pull request #8352 from rlnilsen/motion-controller-support-via-cemuhook-protocol
Support for motion controllers like the DualShock 4
2019-10-28 16:39:10 +01:00
JosJuice f4da08eb13 Change Wii Remote tilt tooltip string based on translator feedback 2019-10-28 11:16:55 +01:00
JosJuice 0dbb58112a CommandLineParse: Don't ignore video_backend/audio_emulation when not using -C 2019-10-28 10:36:56 +01:00
JosJuice 10d972789a DolphinQt: Make WiiPane connect itself to EmulationStateChanged 2019-10-27 21:26:35 +01:00
rlnilsen da1f153b47 Rename all instances of "CemuhookUDPServer"/"UDPServer" to "DualShockUDPClient"/"DSUClient". 2019-10-27 16:05:22 +01:00
rlnilsen 332cad21a4 Wiimote Mapping UI: Motion Input tab: Rework mapping warning, add explanation of and button to open Alternate Input Sources window. 2019-10-27 15:59:36 +01:00
JosJuice 090f04e01c VideoInterface: Don't crash when running Wii Freeloader
Datel's Wii Freeloaders set m_PictureConfiguration.WPL to 0 for
a while. Not sure if the fix in this commit is a proper fix or
just a hack, since I'm not very familiar with this code.

With this change, it's possible to run a Wii Freeloader if you
are running an old enough version of the Wii Menu, but the
"coloured bars" that Datel reference in their documentation
never show up. The screen just freezes for a few seconds instead.
2019-10-27 15:46:33 +01:00
Fadhil Mandaga 14e47e43f9
add custom command to install_name_tool -add_rpath 2019-10-27 07:27:21 +07:00
Mat M 427d4501bc
Merge pull request #8429 from JosJuice/redump-create-path
Create necessary folder when using Redump.org integration
2019-10-26 15:51:25 -04:00
Mat M cc6a1193b0
Merge pull request #8430 from JosJuice/eof-i18n-comment
InputCommon: Change "EOF" to "end of expression" in user facing string
2019-10-26 15:02:48 -04:00
JosJuice 8833e2a7fa DolphinQt: Call OnEmulationStateChanged when creating config window panes
Otherwise UI elements won't be disabled correctly if the config
window is first opened while a game is running.
2019-10-26 17:50:54 +02:00
Jordan Woyak 9d18402d07 DolphinQt: Make HotkeyScheduler call UpdateInput when hotkeys are disabled. 2019-10-26 10:03:57 -05:00
rlnilsen 5ff79499a5 UDPServer: Add configuration UI.
Accessed through button "Alternate Input Sources" in the "Controller Settings" dialog.
2019-10-26 02:20:18 +02:00
rlnilsen 8aec424191 Controller Settings Dialog: Rename "Advanced" group box to "Common".
The only setting inside, "Background Input", doesn't seem advanced to me, but it is used for both GC an Wii input.
2019-10-26 02:20:17 +02:00
rlnilsen 4cb3baba5c Add support for motion controllers via the CemuHook controller input protocol.
This is done by:
1) Implementing said protocol in a new controller input class CemuHookUDPServer.
2) Adding functionality in the WiimoteEmu class for pushing that motion input to the emulated Wiimote and MotionPlus.
3) Suitably modifying the UI for configuring an Emulated Wii Remote.
2019-10-26 02:19:53 +02:00
ferrrry ae337dbea9 Qt: Add "renderer" window role to render window 2019-10-25 22:51:05 +01:00
JosJuice c6b4438c62 InputCommon: Change "EOF" to "end of expression" in user facing string
This is hopefully clearer, since we're not dealing with a file.
2019-10-25 23:49:20 +02:00
JosJuice 2210a0a70c Rebuild D_REDUMPCACHE_IDX path when needed 2019-10-25 20:49:28 +02:00
JosJuice 2f1b2c6adf Create necessary folder when using Redump.org integration
This was making it impossible to use the Redump.org integration
without first manually creating a Redump folder in the Cache folder.
https://bugs.dolphin-emu.org/issues/11885
2019-10-25 11:07:50 +02:00
JosJuice 742aa765c6 VolumeVerifier: Don't show problems with good dumps of Wii Freeloaders 2019-10-25 10:03:12 +02:00
Mat M c6da1f050b
Merge pull request #8376 from tkln/watch-widget-sign-compare
WatchWidget: Fix integer comparison signedness warnings
2019-10-23 20:20:51 -04:00
Mat M 897d7f634e
Merge pull request #8422 from CookiePLMonster/gamelistmodel-fixup
Fixup GameListModel::UpdateGame and columnCount
2019-10-23 20:20:03 -04:00
Mat M 6991b39289
Merge pull request #8419 from jordan-woyak/xor-op
ExpressionParser: Add XOR operator.
2019-10-23 20:18:39 -04:00
Mat M 291c056c07
Merge pull request #8424 from JosJuice/cpu-core-advanced-cleanup
DolphinQt: Cleanup after moving CPU Emulation Engine to Advanced tab
2019-10-23 20:16:32 -04:00
Mat M 780d34dbca
Merge pull request #8426 from JosJuice/volumeverifier-region-mismatch
VolumeVerifier: Improve region/game ID mismatch checking
2019-10-23 20:15:31 -04:00
JosJuice 2c79c63608
Merge pull request #8330 from JosJuice/redump-integration
VolumeVerifier: Add Redump.org integration
2019-10-23 16:43:52 +02:00
JosJuice 77b9a70d6c VolumeVerifier: Don't consider region mismatch for placeholder game IDs 2019-10-23 10:43:34 +02:00
JosJuice 97c4e8ff3a VolumeVerifier: Include revision when checking region mismatch 2019-10-23 10:39:19 +02:00
LAGonauta 2ff646b796 DSP must be set to LLE to select the decoder 2019-10-22 22:55:59 -03:00
LAGonauta 3c9eb37381 Allow user to change DPLII decoding quality 2019-10-22 22:55:15 -03:00
JosJuice 95c4423f4c DolphinQt: Cleanup after moving CPU Emulation Engine to Advanced tab 2019-10-22 20:54:01 +02:00
Admiral H. Curtiss 1c1c19e996 Qt/GCMemcardManager: Fix incorrect placeholder frame timing. 2019-10-21 22:47:17 +02:00
Silent a0111628fb
Fixup GameListModel::UpdateGame and columnCount
- dataChanged takes "first" and "last" indices inclusive, not exclusive
- columnCount should return 0 for valid parents
2019-10-20 23:07:08 +02:00
Jordan Woyak 1fe44238b1 ExpressionParser: Add XOR operator. 2019-10-20 09:51:52 -05:00
Mat M 6282b0d83e
Merge pull request #8326 from lioncash/fmt
ActionReplay: Make use of fmt where applicable
2019-10-20 07:30:20 -04:00
Mat M d0114ea61e
Merge pull request #8415 from jordan-woyak/try-parse
StringUtil: Require TryParse of float types to use the entire string.
2019-10-20 07:29:20 -04:00
Mat M ef77101463
Merge pull request #8412 from jordan-woyak/def-warn-fix
Core/HW: Fix some explicitly defaulted but implicitly deleted warnings.
2019-10-19 17:47:40 -04:00
Jordan Woyak 9e8181e80e Core/HW: Fix some explicitly defaulted but implicitly deleted warnings. 2019-10-19 16:35:03 -05:00
Silent 68694e0039
Add signals to enable/disable Refresh button
Makes it impossible to spam Refresh button and looks better overall.
2019-10-19 23:15:38 +02:00
Silent cc6ffef4a1
Add CommandType::BeginRefresh
This resolves a race condition when spamming Refresh button,
which would often end up with duplicates game entries for the entire
duration of the session.
2019-10-19 23:07:10 +02:00
Silent 5e7b95db3b
Add missing break to prevent fallthrough 2019-10-19 23:06:58 +02:00
Jordan Woyak 0d254d9cb8 StringUtil: Require TryParse of float types to use the entire string. 2019-10-18 19:56:48 -05:00
JosJuice bb8d0261be DolphinQt: Mark ubershader setting names as translatable
These were marked as translatable in DolphinWX but not DolphinQt,
yet both DolphinWX and DolphinQt tried to fetch translations for them.
This meant that translations worked in both DolphinWX and DolphinQt
back when DolphinWX existed, but that translations stopped working
in DolphinQt once DolphinWX was removed (because the removal of
DolphinWX triggered the removal of the strings from the .po files).
2019-10-18 23:35:34 +02:00
Jordan Woyak 40d15980c5 DolphinQt/Mapping: Explicitly specify parents of conditionally added widgets to prevent memory leaks. 2019-10-18 12:26:03 -05:00
Jordan Woyak fa8cbd83e2 Qt/Mapping: Show current input states in advanced dialog. 2019-10-18 12:19:16 -05:00
JMC47 4a613dad20
Merge pull request #8304 from AdmiralCurtiss/memcard-manager-icon-fix
Qt/GCMemcardManager: Fix icon animations displaying incorrectly.
2019-10-17 18:03:21 -04:00
JMC47 8bc0a92f2c
Merge pull request #7663 from jordan-woyak/expression-parser-improve
Expression parser improvements
2019-10-17 17:35:30 -04:00
Anthony acf9bd5ebe
Merge pull request #8408 from ethteck/move-cpu-emulation-engine-options
Qt: Move CPU Emulation Engine options to the Advanced tab
2019-10-17 12:56:50 -07:00
Ethan Roseman 2647e412ae Change from radio buttons to combobox, sizing fix and slight reorganization 2019-10-16 21:01:01 -04:00
Anthony 6a15de58f4
Merge pull request #8403 from jordan-woyak/netplay-wiimote-buffer-fix
NetPlay: Allow Wii Remote buffer size to decrease
2019-10-16 16:20:53 -07:00
Anthony a21b7b1bdd
Merge pull request #8390 from jordan-woyak/wiimote-emu-tilt-fix
WiimoteEmu: Tilt fixes.
2019-10-16 16:14:42 -07:00
spycrab 2f0ad1b6a0
Merge pull request #8402 from spycrab/qt_about_restructure
Qt/AboutDialog: Clean up code a bit
2019-10-16 22:25:26 +02:00
JosJuice a6daed23e7
Merge pull request #8387 from sepalani/reg-view-in
RegisterWidget: Fix view in code/memory
2019-10-16 20:43:32 +02:00
Ethan Roseman 1ce566f9fd Moved CPU Emulation Engine options to the Advanced tab 2019-10-16 12:41:13 -04:00
Jordan Woyak b120b08726 ControllerEmu: Clamp results of trigger/slider states to prevent integer overflow later on. 2019-10-15 15:35:07 -05:00
spycrab 4425d05c4a
Merge pull request #8400 from sepalani/fix-mega
SignatureDB: Add missing selectors
2019-10-15 18:24:03 +02:00
Admiral H. Curtiss bbeb25de48 Qt/Debugger/CodeWidget: Allow pressing 'enter' in address search box. 2019-10-14 21:47:27 +02:00
JMC47 d39555919d
Merge pull request #8395 from CookiePLMonster/improve-work-queue
Improvements to WorkQueueThread
2019-10-13 15:24:56 -04:00
Sepalani 8dc5557995 SignatureDB: Add missing selectors 2019-10-13 22:52:21 +04:00
Jordan Woyak 24a36eb027 NetPlay: Allow Wii Remote buffer size to decrease by dropping reports. 2019-10-13 13:03:57 -05:00
spycrab aba23c8d87
Merge pull request #8401 from spycrab/qt_5.13.1
Externals/Qt: Update to 5.13.1
2019-10-13 16:27:33 +02:00
spycrab 1975e57b73 Qt/AboutDialog: Clean up code a bit 2019-10-13 16:11:19 +02:00
spycrab ec526fee56 Externals/Qt: Update to 5.13.1 2019-10-13 16:06:56 +02:00
Jordan Woyak 7295458c11 ExpressionParser: Make Lexer ctor explicit and move argument. 2019-10-12 12:28:19 -05:00
Jordan Woyak 72302d9c42 ExpressionParser: Add support for /* */ style comments. 2019-10-12 11:41:02 -05:00
Jordan Woyak b4e2b3cae3 ControllerEmu: Don't clear expression variables on references update. Hotplug would make that problematic. 2019-10-11 19:42:49 -05:00
Jordan Woyak 4d41bd64c8 ExpressionParser: Show error message with expected arguments. 2019-10-11 19:38:18 -05:00
Jordan Woyak b57178d246 ExpressionParser: Remove ! character from function syntax. Remove unused serialization functions. 2019-10-11 18:12:18 -05:00
Jordan Woyak 7912dc57dd ExpressionParser: Remove !while and add optional 2nd argument to !smooth. 2019-10-11 18:12:18 -05:00
Jordan Woyak ca7ce67450 ExpressionParser/DolphinQt: Added parse results to UI. 2019-10-11 18:12:18 -05:00
Jordan Woyak c8b2188e19 DolphinQT: Add syntax highlighting from tokenizer data. 2019-10-11 18:12:18 -05:00
Jordan Woyak e3cf2ae0d4 DolphinQT/IOWindow: Add combo boxes to insert the new operators and functions so people are semi-aware of them. Fixed the "Apply" button. Display an error message on expression parse error. 2019-10-11 18:12:18 -05:00
Jordan Woyak 5cb1248612 ExpressionParser: Clean up some redundant using-declarations and wrong comments. 2019-10-11 18:12:18 -05:00
Jordan Woyak fae8b15db1 ExpressionParser: Add !pulse function that evaluates to 1.0 for N seconds for each press. 2019-10-11 18:12:18 -05:00
Jordan Woyak b5b43f8342 ExpressionParser: Add relative input function. 2019-10-11 18:12:18 -05:00
Jordan Woyak 08b291b0f9 ExpressionParser: Fix timer function with negative values. 2019-10-11 18:12:18 -05:00
Jordan Woyak 18b5120441 ExpressionParser: Add !tap function which activates after X (defaults to 2) taps within Y seconds. 2019-10-11 18:12:17 -05:00
Jordan Woyak f2e499d587 ExpressionParser: Add !hold function that activates after input is held for N seconds. 2019-10-11 18:12:17 -05:00
Jordan Woyak 9e536382c4 ExpressionParser: Add function to smooth inputs. 2019-10-11 18:12:17 -05:00
Jordan Woyak bbd6b1848f ExpressionParser: Add deadzone function. 2019-10-11 18:12:17 -05:00
Jordan Woyak 6a2096c419 ExpressionParser: Add optional 2nd argument to toggle function which clears state. 2019-10-11 18:12:17 -05:00
Jordan Woyak fd07ae8cec ExpressionParser: Move FunctionExpression type definitions into another file. 2019-10-11 18:12:16 -05:00
Jordan Woyak d4f9b8c4ef ExpressionParser: Allow unary functions to be used without parens around the argument. e.g. !`Up` 2019-10-11 17:31:09 -05:00
Jordan Woyak 2a377e35ed ExpressionParser: Make function names case sensitive. 2019-10-11 17:31:09 -05:00
Jordan Woyak 2b0297489f ExpressionParser: Rename some functions and return a syntax error on trailing tokens. 2019-10-11 17:31:09 -05:00
Jordan Woyak 258832b1e8 ExpressionParser: Change function argument syntax to something more c++-like. 2019-10-11 17:31:09 -05:00
Jordan Woyak ccac3f1e49 ExpressionParser: Fix negative literals and support unary minus operator. 2019-10-11 17:31:07 -05:00
Jordan Woyak 7cf903a209 ExpressionParser: Suppport N-ary functions. Arguments are read LISP style. N atoms are read after the function name. Added "if" function and made the "while" function more sensible with an arity of 2. Removed the ugly binary conditional operator. 2019-10-11 17:16:05 -05:00
Jordan Woyak 4dd078568b ExpressionParser: Replace the timer literal with a timer function that increases from 0.0 to 1.0 and resets after N seconds. e.g. (!timer 2.0) is a 2 second timer. Fixed parsing of unary expressions so things like (! ! 1.0) work. 2019-10-11 17:14:45 -05:00
Jordan Woyak 785eb14432 ExpressionParser: Clean up string lexing and support numeric literals without tick delimiter: e.g. 0.75 2019-10-11 17:14:45 -05:00
Jordan Woyak fa75ab404f ExpressionParser: operator precedence. 2019-10-11 17:14:45 -05:00
Jordan Woyak 46c0ae7d1f ExpressionParser: Add !while loop unary expression. Limited to 10000 reps to prevent infinite loops. Rhs is re-evaluated until it is < 0.5. Added comma operator, which behaves like it does in c++. Added subration operator. 2019-10-11 17:14:45 -05:00
Jordan Woyak 2c89b60298 ExpressionParser: cleanup. 2019-10-11 17:14:45 -05:00
Jordan Woyak 58efc93ed4 ExpressionParser: Conditional operator. A binary op that evals the rhs if lhs > 0.5 else 0.0. 2019-10-11 17:14:45 -05:00
Jordan Woyak 718efce1dc ExpressionParser: Add less-than and greater-than operators. 2019-10-11 17:14:45 -05:00
Jordan Woyak 35e51ebbaa ExpressionParser: Clear expression variables on UpdateReferences call. I don't know if this is most sensible. 2019-10-11 17:14:45 -05:00
Jordan Woyak e896835f86 ExpressionParser: Renamed ControlFinder to ControlEnvironment. Added support for variables and assignment operator. ControlExpression objects now reference a matching input and output so the two can me mixed in any expression. (you can set rumble directly from inputs) 2019-10-11 17:14:32 -05:00
Jordan Woyak 1efcf861ea ExpressionParser: Add mod operator, sin function, and timer "constant" which can be used for auto-fire and oscillators. 2019-10-11 17:13:58 -05:00
Jordan Woyak a8f3e9585f ExpressionParser: Expand ! symbol to allow for named unary functions. Added !toggle function which toggles on/off with each activation of its inner expression. 2019-10-11 17:13:58 -05:00
Jordan Woyak bf63f85d73 ExpressionParser: Add multiplication and division operators. (division by zero evaluates as zero). Don't clamp result of addition operator. Clamping will be done later. 2019-10-11 17:13:58 -05:00
Jordan Woyak f3192ca06d ExpressionParser: Add support for literals. 2019-10-11 17:13:58 -05:00
Mat M 5be061e27f
Merge pull request #8398 from jordan-woyak/old-wm-comment
WiimoteEmu: Fix an outdated comment.
2019-10-10 08:56:39 -04:00
Jordan Woyak 443af3fabd WiimoteEmu: Fix outdated comment. 2019-10-09 16:12:18 -05:00
Stenzek 7c286064b8 AudioCommon: Don't forget to call Init() on fallback 2019-10-10 00:09:16 +10:00
Stenzek 1c5441aa40 AlsaSoundStream: Don't call join() on invalid thread
This can happen if initialization failed.
2019-10-10 00:07:27 +10:00
Connor McLaughlin 6e613f4f82
Merge pull request #8386 from stenzek/gcc-array-workaround
FixedSizeQueue: Work around GCC generating large amounts of debug info
2019-10-09 15:42:53 +10:00
Silent 26ebf5b650
Improvements to WorkQueueThread
- Do not use a lambda for std::thread as invoke constructor exists
- Use simpler std::lock_guard wherever possible
- Do not require T to be default constructible
- Move T out of the queue instead of copying
2019-10-08 22:57:33 +02:00
Silent ea8a3059bf
Enable Win10 long path awareness in manifest files 2019-10-07 22:46:37 +02:00
Silent 45890c20cf
Remove obsolete "Windows compatibility" macros 2019-10-07 22:46:37 +02:00
Silent 689378b435
Move GetModuleName to Common
This unifies GetModuleFileName calls between Dolphin and WinUpdater
and allows to gracefully remove MAX_PATH limit from GetExePath
2019-10-07 22:46:36 +02:00
Silent 3b21d32865
Remove MAX_PATH limit from:
- GetTempFilenameForAtomicWrite
- SetUserDirectory
2019-10-07 22:45:16 +02:00
JosJuice 02ba893803 DolphinQt: When audio backend is invalid, show nothing in dropdown
It used to show the first option, No Audio Output (but audio output
would work correctly anyway since AudioCommon didn't use this logic.)
2019-10-06 20:40:31 +02:00
Jordan Woyak b794737bcf WiimoteEmu: Disable simulation of centripetal acceleration. 2019-10-06 09:56:41 -05:00
Jordan Woyak 673f13b7ac WiimoteEmu: Change default tilt angle to 85 degrees. 2019-10-06 09:56:41 -05:00
Jordan Woyak 260cefd60b WiimoteEmu: Expose maximum tilt acceleration. 2019-10-06 09:56:39 -05:00
JMC47 b6545ea285
Merge pull request #8370 from sepalani/fix-hle-patch
HLE: Fix patching functions with the same name
2019-10-06 05:07:54 -04:00
Sepalani beeb68d541 RegisterWidget: Fix view in code/memory 2019-10-06 12:25:46 +04:00
Connor McLaughlin 9a68eaaa24
Merge pull request #8292 from Pokechu22/ir-calibration
Use valid IR calibration data
2019-10-06 17:31:50 +10:00
Connor McLaughlin dba7f3304d
Merge pull request #8361 from ligfx/remove_xaudio2
Remove XAudio2
2019-10-06 17:24:48 +10:00
Stenzek 4fd262d0b8 FixedSizeQueue: Work around GCC generating large amounts of debug info 2019-10-06 16:23:45 +10:00
feos 5d03d5dde0 Another AVI fix for WinAPI importers
When not using native resolution, FFMPEG automatically selects FFV1 version 3 for whatever reason, and that can't be decoded by VirtualDub/AVISynth.
2019-10-05 23:31:06 +03:00
Aapo Vienamo 0dda920c1d VerifyWidget: Handle Severity::None case in Verify()
The case body is empty because VolumeVerifier doesn't actually report
problems with severity of None.

Fixes "warning: enumeration value ‘None’ not handled in switch [-Wswitch]"
warning reported by gcc.
2019-10-05 13:20:29 +03:00
Stenzek ae83d02e54 Drop 3D Vision Support 2019-10-04 13:40:21 +10:00
Aapo Vienamo e3e682c4ca WatchWidget: Change type of NUM_COLUMNS to int
Fixes integer comparison signedness warnings.
2019-10-03 23:00:41 +03:00
Stenzek ecdf21a988 Config: Also set CommandBufferExecuteInterval to 0 by default on Android 2019-10-02 22:44:19 +10:00
Stenzek 328d89db70 Vulkan: Add a DriverDetails bug for "slow cached readback memory"
Using the cached memory type appears to be slower on Mali drivers, with
~10-15% CPU spent in the __pi___inval_cache_range kernel function.
2019-10-02 21:34:58 +10:00
Stenzek c557aa4a15 Vulkan: Add strict flag to memory type selection 2019-10-02 21:27:32 +10:00
Stenzek 33a6d265e5 PostProcessing: Use interface blocks for shaders 2019-10-02 12:59:50 +10:00
Stenzek af849126b3 Renderer: Use interface blocks for ImGui shaders 2019-10-02 12:52:45 +10:00
Stenzek c98a5f7dfd Renderer: Draw ImGui interface to both eyes 2019-10-02 12:19:47 +10:00
Stenzek b44a0980eb PostProcessing: Use correct layer in quad-buffered modes
Previously, only the left eye was being used.
2019-10-02 11:52:54 +10:00
Stenzek e754c8ab26 D3D11: Initialize shader cache before renderer
Otherwise the shaders we need for e.g. postprocessing are null.
2019-10-02 11:50:10 +10:00
Stenzek e88c269d02 PostProcessing: Don't use GS expansion shader for quad buffering w/ OpenGL
OpenGL doesn't render to a 2-layer backbuffer like D3D/Vulkan for quad-buffered
stereo, instead drawing twice with the eye selected by glDrawBuffer()
(see OGL::Renderer::RenderXFBToScreen).
2019-10-02 11:33:25 +10:00
Connor McLaughlin e6ae204600
Merge pull request #8373 from jordan-woyak/stereo-mode-fix
DolphinQt/Graphics: Fix NVIDIA 3D Vision support handling.
2019-10-02 10:56:21 +10:00
Connor McLaughlin dafb0173b7
Merge pull request #8375 from stenzek/stereo-switch
Fix runtime stereoscopy mode switching
2019-10-02 10:54:53 +10:00
Connor McLaughlin b319f823bf
Merge pull request #8337 from CookiePLMonster/log-widget-improvements
Log widget improvements
2019-10-01 23:42:16 +10:00
Stenzek 135f0a1385 ShaderCache: EFB2RAM pipelines should not use a geometry shader
Only the left eye is used when creating the RAM copy.
2019-10-01 11:44:31 +10:00
Stenzek c989e5c50c ShaderCache: Recompile shared pipelines on shader cache reload
Fixes broken stereoscopy when switching on/off at runtime.
2019-10-01 11:43:02 +10:00
Jordan Woyak d15f08c84a DolphinQt/Graphics: Fix NVIDIA 3D Vision support handling. 2019-09-30 15:43:55 -05:00
Stenzek abc97bb0fa DolphinQt: Don't overwrite >8x IR scale in ini, add maximum internal res option
This adds an ini-only setting under GFX.ini -> [Settings] ->
MaxInternalResolution. Setting this will allow the user to select
resolutions beyond the default 8x max scale in graphics options.
2019-10-01 01:17:08 +10:00
JMC47 d3a9104cee
Merge pull request #8355 from phire/qt_fix_fifo_range
QtFifoPlayer: handle FIFO load before window creation
2019-09-30 00:34:39 -04:00
JMC47 bec433cb40
Merge pull request #8333 from CookiePLMonster/screenshot-timestamp
Core: Generate screenshot name with timestamps
2019-09-30 00:32:07 -04:00
JosJuice 06ab51bceb
Merge pull request #8324 from CookiePLMonster/adapter-combo-fix
Enable adapter combo only if adapters are supported by current backend
2019-09-29 00:13:55 +02:00
JosJuice 9d648904ed
Merge pull request #8341 from CookiePLMonster/win-utf8-console-output
ConsoleListenerWin: Properly output console logging in UTF-16
2019-09-28 18:28:08 +02:00
Sepalani d8a3218726 HLE: Fix patching functions with the same name 2019-09-28 17:38:43 +04:00
JosJuice f8a4975274 DiscIO: Make company names match GameTDB's list better 2019-09-25 13:38:39 +02:00
JosJuice d8958fbdf7 GameFile: Use enums for custom/length parameters 2019-09-25 12:25:59 +02:00
JosJuice 59f27ae4e1 GameFile: Support HBC-style XML metadata
This feature was originally exclusive to the previous iteration of
DolphinQt (the one that was the reason for the current iteration
being named DolphinQt2 initially).

https://bugs.dolphin-emu.org/issues/8949
2019-09-25 12:25:33 +02:00
Rukai dbc0bf0ccb Fix import gc save file window title 2019-09-24 19:16:27 +10:00
JosJuice edfb0f66b6
Merge pull request #8363 from Fullmetal5/patch-1
Add Wii Mini system menu version detection
2019-09-23 20:18:45 +02:00
Admiral H. Curtiss ff90a5855d Qt/GCMemcardManager: Fix animation frame order and speed. 2019-09-23 01:55:46 +02:00
JosJuice 2300ce385e DiscIO: Add missing company IDs 2019-09-22 23:12:31 +02:00
Admiral H. Curtiss 8f573cf5f2 Qt/GCMemcardManager: Fix animation frame decoding. 2019-09-22 21:55:06 +02:00
Dexter Gerig 5c4b591536 Add Wii Mini system menu version detection 2019-09-21 12:55:49 -05:00
Pokechu22 3efa3d7a42 Fix 2 DTK bugs
Bug 1: subcommand 1 of 0xE1 does not actually reset the current position; it just stops playback.  0xE2 returns the same value it would have before stopping playback (other than reporting that the stream is stopped).

Bug 2: subcommand 3 of 0xE2 was incorrectly dividing the length by 4; while this makes sense for positions (which are multiplied by 4 earlier to get a byte offset), it is not correct for lengths.
2019-09-14 21:05:33 -07:00
Michael M 71c3c5626b AudioCommon: if backend is unknown, use default backend 2019-09-14 14:16:13 -07:00
Michael M 0f3695a14b Remove XAudio2
Audio on Windows is provided by the cubeb (shared mode) and WASAPI
(exclusive mode) backends, both of which exhibit lower latency.
2019-09-14 14:08:13 -07:00
Scott Mansell 677a0903a1 FifoPlayer: Use std::move for saving callbacks 2019-09-09 11:38:21 +12:00
Scott Mansell 46f4f69cfd QtFifoPlayer: handle fifo load before window creation
Fixes a bug where if you loaded a fifo before opening the fifo
player window (which you can do by dragging a .dff onto dolphin's
main window) then the player's widgets wouldn't be initilized
correctly.

Importantly, the object range widgets would be broken.
2019-09-09 10:36:31 +12:00
JMC47 c144cde825
Revert "DSP: ARAM cleanup experiments" 2019-09-02 01:47:50 -04:00
JMC47 03ea0eb27a
Merge pull request #7740 from booto/aram-experiments
DSP: ARAM cleanup experiments
2019-09-01 20:09:42 -04:00
dreamsyntax a4f13ca57d Remove double space in GeckoCodeWidget code view 2019-09-01 11:22:42 -07:00
Stenzek 0a75e71672 DolphinNoGUI: Add a FBDev platform
And the associated GLContext bits
2019-09-01 14:00:40 +10:00
Stenzek 43fe02ee9b GLContext: Get size using eglQuerySurface()
Also no longer assumes that a nullptr display is not headless (needed for fbdev)
2019-09-01 13:35:11 +10:00
Silent 6bfa4fa643
LogWidget: Use FixedSizeQueue for a log messages buffer
Messages buffer is intended to be of a fixed capacity (MAX_LOG_LINES),
which cannot be achieved by std::queue unless we manually pop() extra elements.
std::queue uses std::deque internally which most likely results in allocations performed continuously.
FixedSizeQueue keeps a single buffer during its entire lifetime, avoiding any allocations except the ones
performed by stored objects.
2019-08-31 21:18:07 +02:00
Silent b3969e91d9
FixedSizeQueue: Bugfixes and improvements
- Fixed a bug where pushing items over queue's size left it in a corrupted state
- For non-trivial types, have clear() and pop() run destructors
- Added emplace(args...)
- Added empty()

FixedSizeQueue has semantics of a circular buffer,
so pushing items continuously is expected to keep overwriting oldest elements gracefully.

Tests have been updated to verify correctness of a previously bugged behaviour
and to verify correctness of destructing non-trivial types
2019-08-31 21:18:07 +02:00
Silent b088fc37d5
LogWidget: Do not use QueueOnObject to construct log queue,
instead store a std::string constructed from string_view and convert to QString just before appending
2019-08-31 11:59:09 +02:00
Silent e746d95d01
LogWidget: Stop update timer when log window is invisible so it doesn't continuously update in the background 2019-08-31 11:57:27 +02:00
Silent 7cec8601f1
LogWidget: Remove scrollbar tampering code (doesn't seem to do anything), clear text queue on clearing log 2019-08-31 11:57:07 +02:00
Silent eb7d42dfe8
LogWidget: Replace QTextEdit with QPlainTextEdit for better performance
QTextEdit is heavy, similar in functionality to WordPad,
while QPlainTextEdit is lightweight like Notepad.
Qt documentation recommends using QPlainTextEdit for log viewers,
and it also allows to set automatic cutoff of oldest messages beyond a fixed point,
which we now set to MAX_LOG_LINES (5000)
2019-08-31 10:46:04 +02:00
Silent eab086b880
ConsoleListenerWin: Properly output console logging in UTF-16 so UTF-8 displays properly 2019-08-31 00:44:44 +02:00
booto c268aa3a46 SI: Reduce logging. 2019-08-28 22:16:41 -04:00
Silent 37ef5a54c9
Core: Use move semantics for Renderer::SaveScreenshot 2019-08-28 19:52:35 +02:00
Silent ff8f978eaf
Core: Generate screenshot name with timestamps instead of only increasing numbers 2019-08-28 19:52:35 +02:00
meta 9e3b867c6a VideoInterface: start counting half-lines at 0 instead of 1
- Re-organize VideoInterface::Update() to count half-lines starting at 0 instead of 1
- Use horizontal position when checking if we should assert some display interrupt
- Add some more descriptive comments
2019-08-26 20:43:26 -05:00
Techjar a3d8a8be06 NetPlay: Remove 'reduce polling rate' option
With the SI poll line count fixed, pretty much all games are polling
twice per frame anyways, making this option superfluous. Since it's a
bit of a gross hack and makes DTMs incompatible with console, let's
just bin it.
2019-08-26 02:11:49 -04:00
JosJuice 87c5e0b30e VolumeVerifier: Add Redump.org downloading 2019-08-25 12:53:19 +02:00
JosJuice 3eb360b818 VolumeVerifier: Add zip support for datfile 2019-08-24 16:37:19 +02:00
JosJuice 22933d8502 VolumeVerifier: Add datfile parsing 2019-08-24 16:37:19 +02:00
Connor McLaughlin 88522b7a26
Merge pull request #8327 from JosJuice/more-string-view-regression
DolphinQt: Fix whitelisting USB devices
2019-08-23 21:32:13 +10:00
JosJuice c1a0a8f84a DolphinQt: Fix whitelisting USB devices
Revert of https://github.com/dolphin-emu/dolphin/pull/8233#discussion_r306223322
2019-08-23 13:22:33 +02:00
Admiral H. Curtiss 5614594f5e Qt/GCMemcardManager: Add an 'All Files' option to the filetype selection. 2019-08-22 20:18:21 +02:00
Lioncash f414d926c1 ActionReplay: Make use of fmt where applicable
Converts the ActionReplay logging over to using fmt instead of
StringFromFormat.
2019-08-21 17:59:33 -04:00
JosJuice f79ca65170 UICommon: Remove Android hacks from GameFile 2019-08-21 18:48:52 +02:00
Anthony 2a95227f64
Merge pull request #8255 from JosJuice/remove-unsigned-warning
Remove "not signed by Nintendo" warning when installing WADs
2019-08-21 09:38:35 -07:00
Anthony 5f38386575
Merge pull request #8222 from JosJuice/allow-mismatched-region-settings
Replace "Override Language on NTSC Games" with "Allow Mismatched Region Settings"
2019-08-21 09:00:06 -07:00
Anthony bf9427fafe
Merge pull request #8314 from JosJuice/menubar-movie-more
DolphinQt: Fix the enabling/disabling of Movie items even more
2019-08-21 08:58:24 -07:00
Anthony 35eb63de2c
Merge pull request #8300 from AdmiralCurtiss/gcmemcard-construction
GCMemcard: Rework construction logic.
2019-08-21 08:56:31 -07:00
Anthony 288dd649da
Merge pull request #8273 from CookiePLMonster/config-threading-fixes
Threading fixes for config layers
2019-08-21 08:55:03 -07:00
Tilka bbae0424a1
Merge pull request #8319 from Tilka/mcrfs
Jit64: fix mcrfs
2019-08-20 21:28:52 +01:00
Silent df0ff7f3bb
Enable adapter combo on emulation state change only if adapters are supported by current backend 2019-08-20 20:08:14 +02:00
Connor McLaughlin 674a66aab2
Merge pull request #8312 from JosJuice/btreal-bitwise-enum
BTReal.cpp: Don't use bitwise operators on enum values
2019-08-20 12:24:57 +10:00
Connor McLaughlin 82fe8f61b6
Merge pull request #8308 from CookiePLMonster/cmdline-headless
Make --batch run Dolphin headless
2019-08-20 12:22:50 +10:00
Connor McLaughlin 6efab4e3c6
Merge pull request #8280 from CookiePLMonster/alert-msg-box-modality-fix
Make alert messages application modal and not window modal
2019-08-20 10:58:57 +10:00
Silent fe8c9dfa14
WinUpdater: Properly initialize COM on window thread and release ITaskbarList3 on exit 2019-08-19 22:37:48 +02:00
Silent 23f335ba91
Core/CPU: Make use of type deduction for scoped locks 2019-08-18 17:39:27 +02:00
Silent 2bc9e09456
Core/CPU: Do not yield to UI from CPU methods
Core::RunAsCPUThread may be called from Qt signals, and if code yields to UI there
then it results in infinite recursion
2019-08-18 17:39:26 +02:00
Tillmann Karras ee85ec95b4 Jit64: fix mcrfs
It was deleting the wrong bits. This fixes issue 10074 (Super Monkey
Ball 2 minigame). I introduced this regression in
0f2c656687.
2019-08-18 03:49:32 +01:00
Silent 12ac784a41
Fix "Muted%" OSD message when muting sounds via a hotkey 2019-08-17 12:17:09 +02:00
Admiral H. Curtiss 7b9d43a834 Qt/GCMemcardManager and Qt/GameCubePane: Give detailed error messages for invalid memory cards. 2019-08-15 18:21:48 +02:00
Admiral H. Curtiss ba8ffd9391 GCMemcard: Check if the Directory's number-of-blocks claim for files matches the BAT, and report an error if it doesn't. 2019-08-15 18:21:48 +02:00
Admiral H. Curtiss 7d4cabea07 GCMemcard: The update counters are interpreted as signed values for the newer-than comparison. 2019-08-15 18:21:47 +02:00
Admiral H. Curtiss 8fc2f0ff2d GCMemcard: Rename MemCardXMb constants to MBIT_SIZE_MEMORY_CARD_X for consistency with other constants. 2019-08-15 18:21:45 +02:00
Admiral H. Curtiss b54a49eaaf GCMemcard: Rework construction logic to better match our knowledge of the format, while providing better error reporting facilities. 2019-08-15 18:18:56 +02:00
QuellaZhang e67eb4693e
Fix implicit false-to-nullptr conversions 2019-08-15 17:49:57 +02:00
JosJuice a66ca85dd5 DolphinQt: Fix the enabling/disabling of Movie items even more
Play can only be used when a game is selected and emulation is not
running. Start can be used when a game is selected (to start from
cold boot) or when emulation is running (to start from a savestate).

https://bugs.dolphin-emu.org/issues/11826
2019-08-14 13:45:07 +02:00
Connor McLaughlin 181d79228a
Merge pull request #8275 from bdr99/netplay-player-log
NetPlay: Show a message in chat when a player joins or leaves
2019-08-14 11:23:18 +10:00
Brandon Rothweiler 8857db9833 Check validity of iterator before dereferencing 2019-08-13 18:00:12 -07:00
JosJuice f3dac2c041 BTReal.cpp: Don't use bitwise operators on enum values
https://bugs.dolphin-emu.org/issues/11692#note-11
2019-08-13 23:58:18 +02:00
Silent b6df0bff93
Make --batch run Dolphin in headless mode, provided --exec is also passed 2019-08-11 20:58:04 +02:00
Silent 80e8037e0b
Truly use emplace_back in CommandLineConfigLayerLoader constructor 2019-08-11 20:43:18 +02:00
JosJuice 9cc719db02 Fix TitleDatabase
a2a1e04 regression.
2019-08-09 18:20:45 +02:00
JosJuice 393709a45a Also override the SYSCONF country setting
Fixes https://bugs.dolphin-emu.org/issues/10066
2019-08-09 17:33:05 +02:00
JosJuice 561a4cfcce Replace "Override Language on NTSC Games" with "Allow Mismatched Region Settings"
This new setting is like Override Language on NTSC Games, except
instead of only applying to the GameCube language setting,
it also applies to the Wii language setting.

Fixes https://bugs.dolphin-emu.org/issues/11299
2019-08-09 17:33:05 +02:00
Connor McLaughlin b88e5610ab
Merge pull request #8204 from JosJuice/volumeverifier-underdump-wbfs
VolumeVerifier: Show underdump warnings for WBFS/CISO too
2019-08-10 01:24:15 +10:00
Connor McLaughlin 428ae5a43d
Merge pull request #8172 from nokturnusmf/relative-input-hold
Added (held) key for relative input
2019-08-10 00:37:53 +10:00
JosJuice 8c8bab3657 VolumeVerifier: Show underdump warnings for WBFS/CISO too 2019-08-09 16:13:50 +02:00
Connor McLaughlin 5c3e9a34c3
Merge pull request #8226 from lioncash/fmt-core
Core/Core: Use fmt where applicable
2019-08-09 23:43:39 +10:00
Connor McLaughlin 8be5ee9fe2
Merge pull request #8277 from lioncash/code
DolphinQt/Config/ARCodeWidget: Avoid unnecessary disk operations
2019-08-09 23:42:55 +10:00
Connor McLaughlin 48ca2c6f2e
Merge pull request #8233 from JosJuice/stringutil-string-view
StringUtil: Use std::string_view more
2019-08-09 23:39:01 +10:00
Connor McLaughlin 0ab7e2eed7
Merge pull request #8223 from JosJuice/titledatabase-unknown-language
TitleDatabase: Don't crash on unknown language
2019-08-09 23:35:53 +10:00
Connor McLaughlin f64f4a08c8
Merge pull request #8290 from lioncash/const-fn
UICommon/NetPlayIndex: Minor interface cleanup
2019-08-09 23:05:48 +10:00
Connor McLaughlin ec1fe41eb2
Merge pull request #8298 from CookiePLMonster/win-updater-hide-fix
WinUpdater: Properly hide window on startup as intended
2019-08-09 23:04:53 +10:00
JosJuice cd02ca17ce VolumeVerifier: Allocate QProgressDialog on stack
No reason to have it on the heap.

This also lets us skip calling reset, since the dialog closes
when the QProgressDialog object goes out of scope.
2019-08-09 14:47:15 +02:00
Connor McLaughlin e87a3f91a9
Merge pull request #8303 from JosJuice/volumeverifier-very-small
Fix problems with running VolumeVerifier on very small disc images
2019-08-09 22:16:33 +10:00
Connor McLaughlin 2df522d4eb
Merge pull request #8299 from JosJuice/volumeverifier-performance
VolumeVerifier: Performance improvements
2019-08-09 22:10:09 +10:00
Connor McLaughlin 22ed2c0e0c
Merge pull request #8269 from lioncash/osd-move
VideoCommon/OnScreenDisplay: Minor cleanup
2019-08-08 12:38:44 +10:00
Connor McLaughlin e5a4a86f59
Merge pull request #8297 from Miksel12/bugreport-qt
DolphinQt: Add bug tracker button
2019-08-08 12:27:05 +10:00
Connor McLaughlin 1bd8f03362
Merge pull request #8271 from lioncash/qstring
DolphinQt: Replace unnecessary QStringLiterals with alternatives where applicable
2019-08-08 12:25:30 +10:00
Connor McLaughlin 1092efa77a
Merge pull request #8276 from stenzek/adreno-efb-access
Fix CPU EFB access on Adreno with Vulkan backend
2019-08-08 12:23:27 +10:00
Connor McLaughlin 9477c8b0ed
Merge pull request #8293 from lioncash/ref
VideoCommon/TextureCacheBase: Make OnConfigChanged's parameter a const reference
2019-08-08 12:17:26 +10:00
JosJuice 107291dc5a Fix problems with running VolumeVerifier on very small disc images 2019-08-07 19:48:10 +02:00
Silent 8e79705854
WinUpdater: Wait in UI::Init until window is done creating to avoid losing UI::SetVisible signals 2019-08-06 19:24:38 +02:00
JosJuice 34fb608dd6 VolumeVerifier: Multithreading 2019-08-06 16:42:59 +02:00
JosJuice f754a1a548 VolumeVerifier: Don't read data multiple times 2019-08-06 16:32:01 +02:00
Silent f70efbb963
WinUpdater: Create updater window as hidden by default
UpdaterCommon attempts to hide updater window directly after creating,
so creating it hidden avoids the window from showing for a split second
2019-08-05 21:47:05 +02:00
Pokechu22 7c892c0c6e Use valid IR calibration data
Previously, IR calibration data with an invalid checksum was used, because the calibration produced a strange offset.  I've replaced it with calibration data that encodes the same values as the data Nintendo falls back to when the checksum is bad.
2019-08-05 10:39:32 -07:00
Mike Kuijl 03b20c702d DolphinQt: Add bug tracker button 2019-08-05 18:45:14 +02:00
Connor McLaughlin 24718c1a38
Merge pull request #8294 from lioncash/render-const
VideoCommon/RenderBase: Make functions const where applicable
2019-08-05 16:25:21 +10:00
Lioncash 07aa18eb2b VideoCommon/TextureCacheBase: Collapse for loop into a fill() in Invalidate()
Same thing, less code.
2019-08-04 23:30:27 -04:00
Lioncash d52dd2e04f VideoCommon/TextureCacheBase: Use emplace_back where applicable
Same thing, less code.
2019-08-04 23:28:14 -04:00
Lioncash fd12ae1408 VideoCommon/TextureCacheBase: Remove use of the texture cache global
We can just call the functions that are part of the interface instead of
using the global in order to execute those functions.
2019-08-04 23:23:04 -04:00
Lioncash 7366b4281f VideoCommon/RenderBase: Remove dependency on renderer global within renderer
There's no need to have a dependency when we can simply call the
function itself as part of the instance itself.
2019-08-04 23:01:19 -04:00
Lioncash cfdfbbff38 VideoCommon/RenderBase: Use structured bindings where applicable
Same behavior, but immediately assigns to variables, allowing them to be
const.
2019-08-04 22:59:07 -04:00
Lioncash dd5b8895fe VideoCommon/RenderBase: Make functions const where applicable 2019-08-04 22:52:00 -04:00
Lioncash 86a651e27f VideoCommon/TextureCacheBase: Remove dependence on global variables from OnConfigChanged()
The active config will always be passed as the reference parameter, we
can make use of the parameter instead of accessing the global variable.
2019-08-04 22:33:18 -04:00
Lioncash 7d017be666 VideoCommon/TextureCacheBase: Make OnConfigChanged's parameter a const reference
This reference isn't actually modified within this function
2019-08-04 22:31:27 -04:00
Lioncash 8285a94d93 UICommon/NetPlayIndex: Take std::vector by const reference in ParseResponse()
This variable isn't std::moved anywhere and is just read out of into a
string. Instead of making a copy, and then another copy of the data into
a std::string, we can take it by reference, only copying the data once.
2019-08-04 12:36:52 -04:00
Lioncash 75f3656804 UICommon/NetPlayIndex: Use a std::string_view for EncryptID()/DecryptID()
These parameters only acted as views into the provided strings, so these
can just be turned into non-owning string views.
2019-08-04 12:32:33 -04:00
Lioncash 2830fe820d UICommon/NetPlayIndex: Take NetPlaySession by const reference for Add()
This isn't std::moved wholesale into a member variable or further
std::moved into another function, so it's better to take it by const
reference here to avoid unnecessary reallocations of contained
std::string instances.
2019-08-04 12:29:17 -04:00
Lioncash 0a67a40e7c UICommon/NetPlayIndex: Move NetPlaySession variable closer to its usage point in List()
Moves it closer to where its used, narrowing its visible scope, as well
as preventing unnecessary std::string constructor executions in the
event invalid data is encountered (the continue branch).
2019-08-04 12:24:04 -04:00
Lioncash 13292563ee UICommon/NetPlayIndex: Use std::move within SetErrorCallback()
std::function is allowed to heap allocate in order to store captured
variables, etc, so std::function isn't a trivial type. We can std::move
here in order to avoid potential reallocating.

While we're at it, make the definition's parameter name match the
declaration's parameter name for consistency.
2019-08-04 12:21:02 -04:00
Lioncash 5220922a22 UICommon/NetPlayIndex: Allow move semantics in SetGame()
If the parameter is const, then a move won't actually be able to occur,
making the std::move non-functional. We can remove the const qualifier
to remedy this.
2019-08-04 12:16:19 -04:00
Miksel12 9395d7ea08 DolphinQt: Reorder nunchuk mapping 2019-08-04 14:02:43 +02:00
Connor McLaughlin d3151d8808
Merge pull request #8278 from Miksel12/qt-changes
DolphinQt: Limit numeric widget width
2019-08-04 20:28:17 +10:00
Connor McLaughlin 7de6b57c13
Merge pull request #8284 from stenzek/logic-op-hack
RenderState: Approximate logic op with blending if unsupported
2019-08-04 14:39:38 +10:00
Connor McLaughlin c829351c90
Merge pull request #8286 from stenzek/efb-savestate-fixes
FramebufferManager: Fix restoring of EFB depth buffer / upside-down in OpenGL
2019-08-04 14:07:18 +10:00
Stenzek f6f9dc0cac RenderState: Approximate logic op with blending if unsupported
This is a giant hack which was previously removed because it causes
broken rendering. However, it seems that some devices still do not
support logical operations (looking at you, Adreno/Mali). Therefore, for
a handful of cases where the hack actually makes things slightly better,
we can use it.

... but not without spamming the log with warnings. With my warning
message PR, we can inform the users before emulation starts anyway.
2019-08-04 14:06:08 +10:00
Connor McLaughlin 4ccb4ef74f
Merge pull request #8283 from stenzek/d3d11-null-render-target
D3D11: Only use integer RTV when logic op is supported+enabled
2019-08-04 13:14:35 +10:00
JosJuice 64c0ff576c
Merge pull request #8285 from lioncash/dinput-ffe
InputCommon/DInputJoystick: Correct force-feedback flag testing
2019-08-03 10:09:31 +02:00
JosJuice 2770707587
Merge pull request #8287 from lioncash/static-ctor
DiscIO/Volume: Make Partition's interface constexpr
2019-08-03 10:07:53 +02:00
Lioncash db3b31c246 DiscIO/Volume: Make Partition's interface constexpr
PARTITION_NONE technically has a runtime static constructor otherwise.
This allows compile-time instances of Partition to be created without
the use of a static constructor.
2019-08-02 18:25:09 -04:00
Mike Kuijl cbfc442e90 DolphinQt: Limit numeric widget width 2019-08-02 18:20:37 +02:00
Stenzek d6460e0b18 FramebufferShaderGen: Fix upside-down EFB being restored in OpenGL 2019-08-03 01:48:57 +10:00
Stenzek 25b3e5e029 FramebufferManager: Fix restoring of EFB depth buffer
Correct state wasn't being set.
2019-08-03 01:46:54 +10:00
Connor McLaughlin 7afba6776f
Merge pull request #8279 from spycrab/fix_save_state_wait
Fix saving states freezing up emulation
2019-08-03 01:26:07 +10:00
Lioncash 37d643c7d3 InputCommon/DInputJoystick: Correct force-feedback flag testing
Introduced in a995e2f5ba

We need to be performing a bitwise AND on the flags and not a logical
AND, otherwise we could end up counting device objects that don't
support forced feedback.
2019-08-02 10:26:44 -04:00
Stenzek d78a9356d2 D3D11: Only use integer RTV when logic op is supported+enabled 2019-08-02 18:47:19 +10:00
JMC47 b01cacb27e
Merge pull request #8236 from booto/si_greatest_hits_vol_1
SI: Minor bugfixes
2019-08-02 03:17:54 -04:00
Silent 3fe8ef4c1c
Make alert messages application modal and not window modal,
so assertions cannot be interrupted by terminating the application
2019-08-01 22:27:36 +02:00
Silent 48a4b62125
Change Layer code not to create superfluous std::optional entries in LayerMap 2019-08-01 22:22:05 +02:00
spycrab 04764f8b7f Fix saving states freezing up emulation
Only for about half a second but noticeable nonetheless
2019-08-01 21:33:12 +02:00
Lioncash ff8f627499 DolphinQt/Config/GeckoCodeWidget: Use forward declarations where applicable
Avoids propagating headers into scopes where they're not needed.
2019-07-31 09:54:54 -04:00
Lioncash 14263ec6dd DolphinQt/Config/GeckoCodeWidget: Call LoadDefaultGameIni() directly
This is a static class function, so we don't need to go through the
SConfig instance in order to call it.
2019-07-31 09:54:54 -04:00
Lioncash 6002529ece DolphinQt/Config/GeckoCodeWidget: Make exec() outcomes explicit
Makes it a little more explicit which dialog outcomes we're expecting.
While we're at it, we can invert them into guard clauses to unindent
code a little bit.
2019-07-31 09:54:54 -04:00
Lioncash 255d2ff2d2 DolphinQt/Config/GeckoCodeWidget: Deduplicate ini path
We can store this to a local variable to avoid duplicating the same
string creation twice.
2019-07-31 09:54:53 -04:00
Lioncash a07d19a2fd DolphinQt/Config/ARCodeWidget: Use forward declarations where applicable
Avoids propagating headers into scopes where they're not necessary.

Also uncovered reliance on an indirect inclusion within
CheatsManager.cpp, which is now fixed.
2019-07-31 09:48:45 -04:00
Lioncash e08a76f9e2 DolphinQt/Config/ARCodeWidget: Call LoadDefaultGameIni() directly
This is a static function, so we don't need to go through the instance
of SConfig in order to call it.
2019-07-31 09:08:31 -04:00
Lioncash 4d8d2acae7 DolphinQt/Config/ARCodeWidget: Avoid unnecessary disk operations
If a user indicates that they want to clone and edit an AR code, then
click cancel on the following dialog, we shouldn't actually clone the
code.

We also shouldn't resave the codes if the edit dialog is opened and then
closed again via cancel, as there's nothing that actually changed. This
way we don't perform disk accesses unless they're actually necessary.
2019-07-31 09:01:38 -04:00
Lioncash 0d406f2bdc DolphinQt/Config/ARCodeWidget: Deduplicate ini path
We can just store this to a const local and use it to avoid doing the
same work twice.
2019-07-31 08:36:00 -04:00
Stenzek 06daf58032 FramebufferManager: Correctly handle read back D24S8 textures
Needed for the Adreno/Vulkan workaround, and if we ever switch to a D24
texture for the depth buffer w/ unrestricted depth range.
2019-07-31 15:33:28 +10:00
Stenzek 2698e311aa Vulkan: Use correct aspect for D24S8 textures 2019-07-31 15:33:05 +10:00
Brandon Rothweiler fdfa14d9cc Show a message in netplay chat when a player joins or leaves 2019-07-30 20:14:51 -07:00
Lioncash 6e14dcf70a DolphinQt/Config/GameConfigEdit: Pass parent pointer to base class
Previously, the constructor of GameConfigEdit wasn't doing anything with
the passed in parent pointer. This is dangerous because it can result in
memory being leaked in certain scenarios. It can also affect layout
decisions made by the parent. Instead, pass it through to the base class.

Current usages of the class pass in nullptr as the parent, so this is a
safe change to make with regards to the class hierarchy.

While we're at it, we can std::move the passed in QString into the class
member, allowing calling code to move strings into the constructor,
avoiding copies.
2019-07-30 19:17:25 -04:00
Silent cb4eecde52
Fix race conditions in Config Layers
API has been made stricter, layers are now managed with shared pointers,
so using them temporarily increased their reference counters.
Additionally, any s_layers map has been guarded by a read/write lock,
as concurrent write/reads to it were possible.
2019-07-30 22:10:17 +02:00
Lioncash fef1b84f0a DolphinQt: Replace QStringLiteral with alternatives where applicable
QStringLiterals generate a buffer so that during runtime there's very
little cost to constructing a QString. However, this also means that
duplicated strings cannot be optimized out into a single entry that gets
referenced everywhere, taking up space in the binary.

Rather than use QStringLiteral(""), we can just use QString{} (the
default constructor) to signify the empty string. This gets rid of an
unnecessary string buffer from being created, saving a tiny bit of
space.

While we're at it, we can just use the character overloads of particular
functions when they're available instead of using a QString overload.
The characters in this case are Latin-1 to begin with, so we can just
specify the characters as QLatin1Char instances to use those overloads.
These will automatically convert to QChar if needed, so this is safe.
2019-07-30 09:06:03 -04:00
Connor McLaughlin dea2b9c509
Merge pull request #8258 from CookiePLMonster/dx11.1-detection-fixes
D3D11 resources refactor and DX11.1 feature detection fixes
2019-07-30 01:24:57 +10:00
Silent baa9636d48
D3D11: Add extra logging to StateCache::Get 2019-07-29 16:48:24 +02:00
Silent 43bfb183c2
D3D11: Show a warning message about unsupported features when switching to D3D11 backend on Windows 7 2019-07-29 16:47:45 +02:00
Silent ff00873610
D3D11: Query for output merger logic op support and use logic op code only if supported
Previously code assumed that if DX11.1 runtime is supported, logic ops will,
but Windows 7 SP1 with a Platform Update supports DX11.1 runtime without logic ops.
This created pretty jarring visual artifacts, which now should be gone OR replaced
with much less jarring errors.
2019-07-29 16:47:39 +02:00
Silent a6b8e8b9c3
D3D11: Ownership fixes for objects in DXTexture 2019-07-29 16:43:02 +02:00
Silent 77425ef83b
D3D11: Ownership fixes for objects in D3DState 2019-07-29 16:39:21 +02:00
Silent 88db577c17
D3D11: Correctly poll ALL possible AA levels. 2019-07-29 16:39:06 +02:00
Lioncash c93fffaed6 DolphinQt/HotkeyScheduler: Correct string within Run()
AddMessage() by itself doesn't perform string formatting facilities, so
this message was actually using the EFB scale as a duration value, not a
format argument. This corrects that.
2019-07-28 23:16:23 -04:00
Lioncash 3f947f086f VideoCommon/OnScreenDisplay: Use deduction guides for std::lock_guard
Same behavior without hardcoding the type of the mutex within the lock
guards. This means the type of the mutex would be able to be changed
without needing to also change all occurrences lock guards are used.
2019-07-28 23:08:21 -04:00
Lioncash a565e41cb8 VideoCommon/OnScreenDisplay: Remove unused headers
While we're at it, fix up the imgui include to use the convention we use
for referencing external library headers.
2019-07-28 23:04:52 -04:00
Lioncash c212310fbe VideoCommon/OnScreenDisplay: Take Message's std::string parameter by value
Allows callers to std::move strings into the functions (or automatically
assume the move constructor/move assignment operator for rvalue
references, potentially avoiding copies altogether.
2019-07-28 23:00:58 -04:00
Lioncash 50b240fcbd VideoCommon/OnScreenDisplay: Default initialize all Message members
Provides a deterministic initial state in the case of the default
constructor.
2019-07-28 22:42:45 -04:00
Connor McLaughlin b0113b6c64
Merge pull request #8266 from lioncash/shadowing
D3DCommon/Shader: Use std::optional where applicable
2019-07-28 14:24:32 +10:00
Connor McLaughlin 5bad233b1a
Merge pull request #8265 from lioncash/view
OGL/ProgramShaderCache: Use std::string_view where applicable
2019-07-28 14:21:59 +10:00
Lioncash 6db305a4e8 VideoBackends/Null: Add missing override specifiers
Applies a missing override specifier to VertexManager's destructor.
2019-07-27 17:33:18 -04:00
Lioncash 23c5b362a5 VideoBackends/Null: Apply final to classes where applicable
These aren't intended to be further specialized, so we can make this
obvious with final.
2019-07-27 17:33:18 -04:00
Lioncash 86000fc6b4 VideoBackends/Null: Remove unnecessary constructors and destructors
Removes constructors and destructors that don't actually provide any
behavior (i.e. doesn't constain generated code related to non-trivial
members in a cpp file, etc).

Lessens the amount of code present.
2019-07-27 17:33:18 -04:00
Lioncash bdcc5853d5 VideoBackends/Null: Remove unnecessary includes 2019-07-27 17:33:16 -04:00
Lioncash aca02f9734 D3DCommon/Shader: Use std::optional with CompileShader()
Allows removing the use of an out parameter, making it nicer to use.
2019-07-26 20:06:14 -04:00
Lioncash 0ce6264f90 D3DCommon/Shader: Create vector via iterators in CreateByteCode()
Same behavior, but without unnecessary zeroing of data contents.
Instead, we supply the dataset to use directly.
2019-07-26 19:45:33 -04:00
Lioncash 287b446ef7 D3D/DXShader: Remove duplicate GetByteCode function
This is already provided in the base class, which performs the same
exact behavior. Given the function in the base class isn't virtual, this
also essentially resolves an instance of shadowing.
2019-07-26 19:45:23 -04:00
Lioncash 67bd2de73e OGL/ProgramShaderCache: Convert typedef over to a using alias
Same thing, but nicer to read from left to right.
2019-07-26 18:43:44 -04:00
Lioncash d6617d399f OGL/ProgramShaderCache: Use std::lock_guard deduction guides where applicable
Same thing, less reading.
2019-07-26 18:22:55 -04:00
Lioncash 6e69e3cf26 OGL/ProgramShaderCache: Remove unused headers
Removes a few inclusions that aren't necessary, reducing the number of
header dependencies.
2019-07-26 18:09:44 -04:00
Lioncash fb384dec55 OGL/ProgramShaderCache: Use std::string_view where applicable 2019-07-26 18:02:00 -04:00
Silent 890f781cd0
Factorize software renderer backend switching warning to be fetched from a new GetWarningMessage in video backend - will be needed for DX11.1 feature set warnings 2019-07-26 19:39:07 +02:00
Silent 799c52463e
Fixes for WRL usage - QueryInterface is explicitly mentioned as not to be used with WRL ComPtr 2019-07-26 19:38:58 +02:00
Connor McLaughlin d48dabc1fd
Merge pull request #8259 from stenzek/macos-disable-reversed-depth
Vulkan: Disable reversed viewport depth on macOS/MoltenVK
2019-07-25 14:11:09 +10:00
Connor McLaughlin a8bbbd0bfc
Merge pull request #8262 from Tilka/gdbstub
Fix GDB stub build
2019-07-25 13:54:02 +10:00
Connor McLaughlin ac9912bad3
Merge pull request #6321 from stenzek/efb-savestates
Support saving EFB and texture cache in save states
2019-07-25 13:50:57 +10:00
Silent 3529dfd691
Connect numerous QPushButtons to use clicked signal instead of pressed. This unifies UI behaviour more. 2019-07-24 00:18:58 +02:00
Stenzek 53e30c06e8 Config: Add an option to skip saving texture cache to save state 2019-07-24 05:19:22 +10:00
Stenzek 63358adfb1 Core: Save movie state before video backend state
Fixes the old frame number/inputs being displayed after loading state.
2019-07-24 05:19:22 +10:00
Stenzek 560074cf9f Core: Fix crash when state is loaded while waiting for the CPU 2019-07-24 05:19:22 +10:00
Stenzek 137009affe FramebufferManager: Support saving EFB to save state 2019-07-24 05:19:22 +10:00
Stenzek 1082468133 TextureCache: Support saving cache entries, including EFB copies 2019-07-24 04:10:38 +10:00
Stenzek b26bb0605b VideoBackendBase: Do save state logic on the GPU thread 2019-07-24 04:08:25 +10:00
Stenzek a25a4e0708 State: Use RunOnCPUThread to invoke save state handlers
This ensures that the emulated state is only touched by the CPU thread
2019-07-24 04:08:25 +10:00
Stenzek df45e714a3 Core: Support asynchronously executing functions on the CPU thread
The CPU thread will be interrupted to execute the callback, and then
restored to its old state after execution completes.
2019-07-24 04:08:19 +10:00
JosJuice 117a60ceb2 StringUtil: Comply with variable naming style 2019-07-23 14:49:13 +02:00
JosJuice a2a1e04fc9 StringUtil: Use std::string_view more 2019-07-23 14:49:12 +02:00
Lioncash 1f98188277 Core/Core: Use fmt where applicable
Continues the migration over to using fmt. Given fmt is also compatible
with std::string and std::string_view, we can convert some parameters
over to std::string_view, such as the message parameter for
StopMessage() and the name parameter for an overload of SaveScreenShot()
2019-07-23 08:42:29 -04:00
Léo Lam 29ba53f6c3
Merge pull request #8256 from JosJuice/setrunninggamemetadata-channel-disc
Never set disc as active title when launching channel with same ID
2019-07-23 09:47:55 +08:00
Léo Lam c8c1a0d747
Merge pull request #8253 from JosJuice/fakesigned-common-key-fix
Re-implement FixCommonKeyIndex for WAD files
2019-07-23 09:41:46 +08:00
Connor McLaughlin 8f6b237e11
Merge pull request #8217 from CookiePLMonster/windows-updater-improvements
Updates to auto-updater on Windows
2019-07-23 10:39:04 +10:00
Anthony 66e7a11139
Merge pull request #8235 from lioncash/move
Common/DebugInterface: Minor cleanup changes
2019-07-22 15:07:14 -07:00
Anthony 136264d340
Merge pull request #8245 from JosJuice/volumeverifier-wii-menu-region
Fix VolumeVerifier considering Wii Menu WADs to have wrong region
2019-07-22 15:06:07 -07:00
JosJuice 8bb333d811 ConfigManager: Include "Common/Common.h" for _trans macro
Aims to fix https://github.com/dolphin-emu/dolphin/pull/8232#issuecomment-513913625
2019-07-22 22:23:46 +02:00
Silent baab660f1c
WinUpdater: Removed MAX_PATH limitation on path to updater, also fixed a wrong size parameter 2019-07-22 19:46:25 +02:00
Silent 94a19ca670
Qt/Updater: Fixed an assert on m_parent->close() (was called from a wrong thread) 2019-07-22 19:30:02 +02:00
Silent 4b03790eda
Core: Fixup AutoUpdateChecker::TriggerUpdate on Windows:
- Properly close handles if Updater.exe process spawns successfully
- Fix STARTUPINFO sizeof typo
2019-07-22 19:29:50 +02:00
Silent a00dfeecf0
WinUpdater: Properly account for failure in WaitForPID 2019-07-22 19:29:22 +02:00
Silent d355abaf0c
WinUpdater: Improved exit synchronization on Windows - now joins a thread instead of using flags to signal 2019-07-22 19:28:20 +02:00
Silent 3f1ba830e7
UpdaterCommon: Remove manual UI::Stop() calls in favour of a scope guard to ensure it's called on all return paths 2019-07-22 19:16:22 +02:00
Silent 2ae409ba06
WinUpdater: Replaced PeekMessage with GetMessage - removes a busy loop in favour of a proper wait based message queue 2019-07-22 19:16:14 +02:00
Léo Lam 15679a9a70
Merge pull request #8227 from lioncash/gekko
Common/GekkoDisassembler: Don't print out '\0' as a character
2019-07-22 21:39:49 +08:00
Léo Lam 60aea524b1
Merge pull request #8232 from JosJuice/wasapi-translatable
Mark "WASAPI (Exclusive Mode)" as translatable
2019-07-22 21:38:39 +08:00
Léo Lam 71b2e1a997
Merge pull request #8225 from JosJuice/sd-hotkey
Add a hotkey for inserting/ejecting the SD card
2019-07-22 21:38:00 +08:00
JosJuice 73a9b4148b
Merge pull request #8257 from CookiePLMonster/assert-fixes
Fixes to assertions
2019-07-22 08:47:13 +02:00
JosJuice a8807e7452 Force signature verification during system update from disc
Unlike the WADs people put in their game lists, these WADs
should always be correctly signed.
2019-07-21 18:48:44 +02:00
JosJuice 732d157011 Remove the EnableSignatureChecks setting
Since Dolphin can do NUS downloads over plain HTTP, we really don't
want people to be able to silently disable signature verification
indefinitely. Removing the setting shouldn't have any significant
negative impact now that signature verification always is disabled
when installing WAD files.
2019-07-21 18:47:35 +02:00
JosJuice 4304f5f7fc Remove "not signed by Nintendo" warning when installing WADs
Apparently nobody is using good dumps, meaning that the warning
is a nuisance rather than useful information for most people.
Especially so for people who don't install WADs permanently.

It is still possible to verify the signature using the Verify
tab of the game properties, which matches how Dolphin handles
checking the signatures of Wii discs.
2019-07-21 18:47:34 +02:00
Silent 518d96ad48
Remove duplicated "Ignore and countinue?" 2019-07-21 15:36:24 +02:00
JosJuice f3b9d93737 TitleDatabase: Don't crash on unknown language
This only happens if the GC or Wii language is set to an
invalid value, but it's best to guard against it anyway.
2019-07-21 10:15:38 +02:00
JosJuice 4b73d18eaa Re-implement FixCommonKeyIndex for WAD files
The old implementation of this was not able to distinguish between
a title that had the common key index set to 1 because it actually
was Korean and a title that had the common key index set to 1 due to
fakesigning. This new implementation solves the problem by
decrypting a content with each possible common key and checking
which result matches the provided SHA-1 hash.

The problem that the old implementation causes has only been reported
to affect a certain pirated WAD of Chronos Twins DX (WC6EUP), but it's
possible that the problem would start affecting more WADs if we add
support for the vWii common key (which uses index 2). Adding support
for the vWii common key would also prevent us from using the simpler
solution of always forcing the index to 0 if the title is not Korean.
2019-07-21 09:58:16 +02:00
JosJuice 2fda104d5a Never set disc as active title when launching channel with same ID
https://bugs.dolphin-emu.org/issues/11804
2019-07-21 09:53:52 +02:00
JosJuice 4ee73dbad3 IOS: Put common key handles in an array 2019-07-21 09:37:06 +02:00
Léo Lam da1fbbc5d5
Merge pull request #8243 from JosJuice/merge-wad-classes
DiscIO: Merge WiiWAD into VolumeWAD
2019-07-21 15:32:52 +08:00
Léo Lam cd7a374ab9
Merge pull request #8246 from lioncash/fifo
Core/FifoAnalyzer: Tidy up interface
2019-07-21 15:17:43 +08:00
Léo Lam 1ed7cc260b
Merge pull request #8248 from lioncash/settings
Common/SettingsHandler: Use std::string_view where applicable
2019-07-21 15:13:27 +08:00
Stenzek 8b44a48383 Vulkan: Disable reversed viewport depth on macOS/MoltenVK
Apparently this is broken despite being allowed by the spec.
2019-07-21 13:27:35 +10:00
Silent 7045c68327
When clicking "Ignore for this session", make message box handler return true, so asserts can actually be skipped with this option 2019-07-20 21:04:27 +02:00
Silent e792a67dc6
Improve thread safety and remove an unnecessary string allocation from MsgAlert
s_msg_handler still seems thread unsafe, not sure if it should be or not
2019-07-20 21:03:45 +02:00
Connor McLaughlin fc8859a414
Merge pull request #8249 from lioncash/rect
VideoCommon: Remove unused MathUtil.h include from VideoCommon.h
2019-07-19 16:32:30 +10:00
Stenzek 97d81ac97c FramebufferShaderGen: Fix format reinterpret shaders on GLES 2019-07-19 15:33:32 +10:00
Stenzek 6f53a4d0da TextureCache: Don't crash when conversion pipelines fail to compile 2019-07-19 15:32:50 +10:00
JosJuice 34f32898e6 DiscIO: Merge WiiWAD into VolumeWAD
These two classes are very similar, so let's merge them.
2019-07-18 22:29:04 +02:00
JosJuice 0f5a4b37ee DiscIO: Add functions CreateDisc and CreateWAD
...in addition to the existing function CreateVolume
(renamed from CreateVolumeFromFilename).

Lets code easily add constraints such as not letting the user
select a WAD file when using the disc changing functionality.
2019-07-18 22:29:04 +02:00
Stenzek f269c4c798 EFB2Tex: Set alpha channel of Z24X8 copies to 1
Matches EFB2RAM.
2019-07-18 23:51:07 +10:00
Stenzek 68bd4cd79a Vulkan: Use reversed depth range in viewport
Also adds a DriverDetails bug to disable on drivers where this is still
broken.
2019-07-18 23:43:12 +10:00
Connor McLaughlin a77b571da7
Merge pull request #8250 from JosJuice/bitrate-setting
Add dumping bitrate setting to GUI and increase default value
2019-07-18 22:17:13 +10:00
JosJuice 199c565bf5 DolphinQt: Add the dumping bitrate setting to the graphics config
Fixes https://bugs.dolphin-emu.org/issues/10250
2019-07-18 12:20:21 +02:00
JosJuice a6dcaed415 DolphinQt: Move frame dumping settings to new group box 2019-07-17 20:07:40 +02:00
JosJuice f6a755e1ab Change the default dumping bitrate from 2.5 Mbps to 25 Mbps
2.5 Mbps looks noticeably bad even at native resolution.
2019-07-17 19:55:37 +02:00
Lioncash 2b9389202e VideoCommon: Remove unused MathUtil.h include from VideoCommon.h
This header doesn't actually make use of MathUtil.h within itself, so
this can be removed. Many other source files used VideoCommon.h as an
indirect include to include MathUtil.h, so these includes can also be
adjusted.

While we're at it, we can also migrate valid inclusions of VideoCommon.h
into cpp files where it can feasibly be done to minimize propagating it
via other headers.
2019-07-16 20:54:34 -04:00
Lioncash 13a454d603 Common/SettingsHandler: Use fmt for printing out the serial number
Same thing, less code.
2019-07-16 04:23:20 -04:00
Lioncash af576839d8 Common/SettingsHandler: Use std::string_view where applicable
Allows passed in strings to be non-allocating.
2019-07-16 04:15:25 -04:00
Connor McLaughlin 9dd8f82e78
Merge pull request #8247 from lioncash/core-include
Core/HW/AddressSpace: Remove unnecessary inclusion of Core.h
2019-07-16 14:32:18 +10:00
Lioncash 2b00eefbef DolphinQt/Debugger: Replace AddressSpace.h inclusions with a forward declaration 2019-07-15 23:20:26 -04:00
Lioncash df0d4b6aea Core/HW/AddressSpace: Remove unnecessary inclusion of Core.h
This is only included to satisfy the use of our type aliases. Given
that, we can just include CommonTypes.h, lessening dependencies on core
headers.
2019-07-15 23:13:55 -04:00
Lioncash ac6d70b82b Core/FifoAnalyzer: Use std::array where applicable
This lets us convert CalculateVertexElementSizes() from a function using
an out pointer into one that simply returns the array data as a return
value.

It also lets us dehardcode some values, as we can just query
std::array's size() member function instead.
2019-07-15 07:37:35 -04:00
Lioncash 73db402010 Core/FifoAnalyzer: Convert DecodeMode enum into an enum class
Makes the enumeration elements strongly typed.
2019-07-15 07:37:30 -04:00
JosJuice 1606528093
Merge pull request #8234 from JosJuice/version-in-title
Show Dolphin version in render window title
2019-07-15 13:05:08 +02:00
JosJuice 0b11f15158 Fix VolumeVerifier considering Wii Menu WADs to have wrong region 2019-07-15 12:42:13 +02:00
Lioncash 53779aa732 Core/FifoAnalyzer: Make functions internally linked where applicable
These functions are only used internally within FifoAnalyzer.cpp, so
they can be hidden from external use.
2019-07-14 20:37:21 -04:00
Stenzek 946571b759 TextureCache: Support reinterpreting formats for VRAM textures 2019-07-14 19:16:27 +10:00
Stenzek 77f406c8a8 TextureCache: Combine ApplyPaletteToEntry and ConvertTexture 2019-07-14 14:07:37 +10:00
Stenzek dfae87d69a TextureConversionShader: Swap bytes for RG8/GB8 format
Matches the software renderer.
2019-07-14 13:36:43 +10:00
Léo Lam 2f5e6cfff1
Merge pull request #8218 from leoetlino/context
Use separate libusb contexts to avoid thread safety issues
2019-07-11 17:28:19 +02:00
Connor McLaughlin 4c649d1a5d
Merge pull request #8238 from lioncash/video-stats
VideoCommon/Statistics: Minor cleanup changes
2019-07-11 20:34:48 +10:00
booto 62a2611925 SI: Clarify length fields for manual commands
Fix up the calculation of the length fields and check that the returned
response is the expected length. This touches many files because it
converts a parameter name from the SI_Device interface from 'length' to
'request_length'. Prior, this field seemed to be used as request length
sometimes, as response length sometimes, and usually just totally ignored.
2019-07-11 01:29:59 -04:00
Lioncash 9c245655fb VideoCommon/Statistics: Remove unused DECSTAT macro
This isn't used anywhere, so it can be removed. This also potentially
fixes an underlying compilation error waiting to happen, given DECSTAT
could have potentially been used, someone disables statistics (for
whatever reason), then gets a compilation error due to the #else case
not containing an empty definition of DECSTAT.
2019-07-10 23:40:13 -04:00
Lioncash d4337eebde VideoCommon/Statistics: Rename stats global to g_stats
Makes the global variable follow our convention of prefixing g_ on
global variables to make it obvious in surrounding code that it's not a
local variable.
2019-07-10 23:34:54 -04:00
Lioncash 9802a5e16b VideoCommon/Statistics: Make all member functions non-static
Rather than making Statistics' member functions operate on the global
variable instance of itself, we can make these functions member
functions and operate on a by-instance state, removing the direct
dependency on the global variable itself.

This also makes for less reading, as there's no need to repeat "stats."
for all variable accesses.
2019-07-10 23:24:37 -04:00
Lioncash a99c7d01e1 VideoCommon/Statistics: Normalize statistic variable names
Normalizes all variables related to statistics so that they follow our
coding style.

These are relatively low traffic areas, so this modification isn't too
noisy.
2019-07-10 23:19:10 -04:00
JosJuice 44fe5812b9 Fix FIFO player crashing when USE_MEMORYWATCHER is defined 2019-07-10 20:43:15 +02:00
Lioncash d2d7bf5c3b Common/DebugInterface: Remove GetInstructionSize()
This is completely unused, so it can be removed.
2019-07-09 14:19:40 -04:00
Lioncash 92c1782726 Common/DebugInterface: Mark a few member functions as const
Quite a few member functions act as a means to query information. Given
these don't actually modify object state, they can be made const.
2019-07-09 14:19:40 -04:00
Lioncash d4d485b692 Common/DebugInterface: Make return value of GetColor() a u32
At its only usage point, its return value is stored into a u32, and the
default implementation returns 0xFFFFFFFF (-1), which would be an
unsigned integer. Given all of the bits are used to determine a color,
it makes slightly more sense to treat this as an unsigned value as
opposed to a signed one.
2019-07-09 14:19:38 -04:00
booto d01220e69d SI: CMD_ORIGIN/CMD_RECALIBRATE gets 10 byte reply 2019-07-08 23:08:35 -04:00
booto ac809c36e1 SI: Convert SIPOLL's lines value to half lines
SI represents polling sample rate in lines, not half lines. It needs to be
multiplied by 2 for VI, which uses half lines.
2019-07-08 23:07:34 -04:00
Lioncash a9a9b193bb Common/DebugInterface: Use forward declarations where applicable
We're allowed (by the standard) to forward declare types within
std::vector, so we can replace direct includes with forward declarations
and then include the types where they're directly needed.

While we're at it, we can remove an unused inclusion of <cstring>, given
nothing in the header uses anything from it. This also revealed an
indirect inclusion, which this also resolves.
2019-07-08 18:59:11 -04:00
Lioncash 98101bbbe4 Core: Use fmt where applicable for DebugInterface implementations
These are trivial enough that they're basically one-to-one conversions
with minor changes of syntax.
2019-07-08 18:52:59 -04:00
Lioncash 457bff92c1 Common/DebugInterface: Use u32 instead of unsigned int consistently
Previously u32 was being used for part of the interface and unsigned int
was being used for other parts. This makes the interface fully consistent by
using only one type.

We opt for u32 here given they communicate the same thing (for platforms
we care about where int is 32-bit), while also being less to read.
2019-07-08 18:52:45 -04:00
Lioncash b1b9c6aa1e Common/DebugInterface: Default virtual destructor
While we're at it, we can also default the constructor and destructor of
inheriting classes in their respective cpp file to prevent the
construction and destruction of non-trivial types being inlined into
other regions of code.
2019-07-08 17:44:58 -04:00
Lioncash bc8778203e Common/Watches: std::move strings where applicable
Allows calling code to move the std::string into the Watch instances,
avoiding copies.
2019-07-08 17:41:06 -04:00
JosJuice f3579e788d Show Dolphin version in render window title
This was in DolphinWX but not DolphinQt. It's useful for telling if
users who post screenshots have an up-to-date version of Dolphin.

The old implementation of this prepended the version in DolphinWX code
rather than Core code, but I thought it'd be simpler to do it in Core.
2019-07-08 15:03:00 +02:00
JosJuice 445759aed1 Mark "WASAPI (Exclusive Mode)" as translatable
While "WASAPI" doesn't need to be translated, "Exclusive Mode" does.
2019-07-07 18:22:22 +02:00
JMC47 398aa2a9f9
Merge pull request #8231 from JosJuice/debugger-hidden
DolphinQt: Don't update debug widgets when hidden
2019-07-07 07:35:06 -04:00
Tillmann Karras da87638ea2 Fix GDB stub 2019-07-07 05:17:33 +01:00
JosJuice 92a655c8b9 DolphinQt: Don't update debug widgets when hidden
Saves on CPU usage when pausing/unpausing with the debugger disabled.
This is especially important when using frame advance rapidly.
2019-07-06 11:30:17 +02:00
spycrab 64de900da4 Qt/ControllersWindow: Fix radio buttons not getting disabled
Only happens if the controller window hasn't been opened before.
2019-07-05 16:50:37 +02:00
Lioncash ce30efc6cf Common/GekkoDisassembler: Don't print out '\0' as a character
Prevents a few instructions from having mangled names in some cases.
2019-07-03 20:12:50 -04:00
JosJuice e24789b4fb Add a hotkey for inserting/ejecting the SD card 2019-07-03 22:44:51 +02:00
Connor McLaughlin 0a7395bfba
Merge pull request #8128 from altimumdelta/FrameDumpUpgradePrep1
Code: Rename AVIDump to FrameDump
2019-06-30 21:13:19 +10:00
altimumdelta 1df655e376 VideoCommon: Rename AVIDump to FrameDump 2019-06-30 13:02:39 +02:00
Connor McLaughlin 0d2c3e6efc
Merge pull request #8219 from Pokechu22/float-watch
Show values as floats in watch
2019-06-30 11:34:29 +10:00
Pokechu22 ae0843f53d Show values as floats in watch 2019-06-29 12:04:20 -07:00
Connor McLaughlin e388f01e11
Merge pull request #8215 from CookiePLMonster/appverifier-sanitize
Fixed various errors spotted with Application Verifier
2019-06-30 01:27:25 +10:00
Connor McLaughlin f151570b2d
Merge pull request #8118 from 8times9/move-windowontop
Qt/InterfacePane: Move "Keep Window on Top" to Render Window section
2019-06-30 00:46:12 +10:00
Connor McLaughlin 341ce45ed6
Merge pull request #8176 from VinDuv/handle-open-files
QtGui: Handle file open events
2019-06-29 22:22:46 +10:00
Connor McLaughlin 8a122de999
Merge pull request #8192 from Miksel12/qt-changes
Reorder graphics config
2019-06-29 22:21:53 +10:00
Léo Lam a88deda307
Merge pull request #8193 from lioncash/disasm
Common/GekkoDisassembler: Minor changes
2019-06-29 10:38:36 +02:00
Léo Lam 0c626e6ebc
Merge pull request #8202 from lioncash/build
DolphinQt/CMakeLists: Leverage windeployqt for determining libraries and plugins to copy
2019-06-29 10:29:58 +02:00
Léo Lam 0dfff81a56
Merge pull request #8205 from Techjar/crop-fix
VideoCommon/RenderBase: Fix crop
2019-06-29 10:24:37 +02:00
Léo Lam a9099fc96b
Merge pull request #8207 from lioncash/macro
VideoCommon/Statistics: Use std::array for projection values
2019-06-29 09:36:33 +02:00
Léo Lam 274b52acb2
Merge pull request #8216 from CookiePLMonster/cpu-override-tick-fix
Fix CPU Clock Override checkbox not updating with GameINI
2019-06-29 08:48:01 +02:00
Léo Lam 75b2b53be2
Merge pull request #8200 from randomstuff/detach_driver
Automatically detach/reattach bluetooth driver in passthrough
2019-06-29 08:46:59 +02:00
Shiz e647503eb2
Core/HW/WiimoteReal: add missing Linux include
IOLinux.cpp should include <sys/select.h> as it uses select() functionality.
On certain platforms it's included implicitly by other headers, which is why
it compiled before. This makes it also work on musl platforms.
2019-06-29 02:17:58 +02:00
Léo Lam 58c78a495d
Merge pull request #8213 from JosJuice/filesystem-u8string
Work around C++20 std::filesystem changes related to u8string
2019-06-28 19:42:34 +02:00
Léo Lam 6fd435fdff
Merge pull request #8208 from lioncash/fmt
Core/IOS: Use fmt where applicable
2019-06-28 18:53:47 +02:00
Mike Kuijl e50a6f4c46 Reorder graphics config 2019-06-26 21:59:47 +02:00
Léo Lam e85fa26768 BTReal: Use FromThread::ANY for USB transfer replies
libusb transfer callbacks might be called immediately during transfer
submission in some cases. (libusb doesn't even specify what thread
the callback is invoked on.) In other words, it is possible to reach
the transfer callback from the CPU thread, and not just from the
USB event handling thread.

So CoreTiming::FromThread::NON_CPU is incorrect and should instead
be ANY.
2019-06-26 17:55:51 +02:00
Léo Lam cf60a9a7f7 Use separate libusb contexts to avoid thread safety issues
Unfortunately, it appears that using libusb's synchronous transfer API
from several threads causes nasty race conditions in event handling and
can lead to deadlocks, despite the fact that libusb's synchronous API
is documented to be perfectly fine to use from several threads (only
the manual polling functionality is supposed to require special
precautions).

Since usbdk was the only real reason for using a single libusb context
and since usbdk (currently) has so many issues with Dolphin, I think
dropping support for it in order to fix other backends is acceptable.
2019-06-26 17:55:51 +02:00
Silent 09aadf0e9c
Fix CPU Clock Override checkbox not updating with GameINI - also bold it if it's overriden 2019-06-23 22:39:26 +02:00
Silent 9eab3feddf
Fix out of bounds read in HttpRequest::Impl::Fetch logging 2019-06-23 21:44:51 +02:00
Silent 6c21811090
Make DolphinAnalytics a true singleton - static local variables are initialized in a thread safe manner since C++11
Also works around a Visual Studio 2017 bug where static inline class fields are destructed multiple times
2019-06-23 21:43:47 +02:00
spycrab dacba85a08 UpdaterCommon: Hide Updater before Dolphin quits 2019-06-23 19:47:18 +02:00
spycrab 396546f5c0 Config/ARCodeWidget: Add option for alphabetical sorting 2019-06-22 19:54:13 +02:00
spycrab 1d43d9afc1 Config/GeckoCodeWidget: Add option for alphabetical sorting 2019-06-22 19:54:13 +02:00
spycrab 93393a288c Qt/ARCodeWidget: Support drag and drop reordering 2019-06-22 19:54:13 +02:00
spycrab 389351c6c0 Qt/GeckoCodeWidget: Support drag and drop reordering 2019-06-22 19:54:13 +02:00
JosJuice c0a6fa5dcc Work around C++20 std::filesystem changes related to u8string 2019-06-21 18:34:21 +02:00
spycrab d68f62c0f5 Core/NetPlayServer: Fix empty error messages when adding session to the index fails 2019-06-20 20:55:38 +02:00
Anthony 84b9b37fef
Merge pull request #8210 from spycrab/httpreq_error_msg
Common/HttpRequest: Use CURLOPT_ERRORBUFFER for error messages
2019-06-20 10:59:25 -07:00
spycrab ba4c1c5947 Common/HttpRequest: Use CURLOPT_ERRORBUFFER for error messages 2019-06-20 19:44:51 +02:00
JosJuice 63bb646721 Fix opening controller config when there is no profile directory
https://bugs.dolphin-emu.org/issues/11771
2019-06-20 18:35:14 +02:00
Lioncash 980085e106 Core/IOS: Use fmt where applicable 2019-06-20 11:50:02 -04:00
Lioncash c1c5276729 VideoCommon/VertexShaderManager: Use std::array where applicable
We can use this to shorten up the initialization code a little bit.

Despite being saved to savestates, this is a non-breaking change.
2019-06-20 08:13:04 -04:00
Lioncash 2e74a4447a VideoCommon/Statistics: Remove unused setter macros for statistics
Now that the floating point members are assigned in bulk, we can remove
their setter macro. While we're at it, we can also remove the setter for
unsigned int, given it's not used.
2019-06-20 08:06:23 -04:00
Lioncash 04c06ec661 VideoCommon/Statistics: Use std::array for projection values
Makes the members within the interface much nicer to look at, and also
makes copying them over much nicer too.
2019-06-20 08:06:20 -04:00
Léo Lam 3cafd0ae81
Merge pull request #8171 from Pokechu22/backend-changing-fix
Disallow changing the backend when running when software renderer is currently selected
2019-06-20 13:58:01 +02:00
Léo Lam 4edf174b61
Merge pull request #8180 from lioncash/fmt
Core/Movie: Use fmt where applicable
2019-06-20 13:56:15 +02:00
Léo Lam 973bba7c1e
Merge pull request #8191 from lioncash/ini
Common/IniFile: Use std::string_view where applicable
2019-06-20 13:44:20 +02:00
Léo Lam 4885130799
Merge pull request #8194 from lioncash/common-msg
Common/MsgHandler: Tidy up interface and namespace code
2019-06-20 13:37:24 +02:00
Léo Lam baf02194c1
Merge pull request #8195 from lioncash/macro
VideoCommon/Statistics: Remove preprocessor macro
2019-06-20 13:29:27 +02:00
JosJuice 9c33f658a5 Simplify std::filesystem usage a little in Boot.cpp
If path_b is absolute, (path_a / path_b) will be the same as path_b.
2019-06-20 10:42:56 +02:00
JosJuice fab15edb53 Replace <experimental/filesystem> includes with <filesystem>
https://bugs.dolphin-emu.org/issues/11770
2019-06-20 10:39:56 +02:00
Lioncash 4f1f55093f Common/MsgHandler: Namespace code within the Common namespace
Closes another gap in the Common library where code isn't being
namespaced under it.
2019-06-19 16:03:55 -04:00
Lioncash e7dd46a531 Common/MsgHandler: Brace if statement in MsgAlert
The condition travels more than one line, so the body should be braced.
While we're at it, make the comparison against nullptr explicit.
2019-06-19 16:03:33 -04:00
Lioncash 0eddf6dd8f Common/MsgHandler: Use std::string's empty for emptiness checking in MsgAlert
Provides more straightforward code compared to negating a length check.
2019-06-19 16:00:16 -04:00
Techjar 08421db52f VideoCommon/RenderBase: Fix crop
This fixes some mistakes from #8049 that caused crop to behave like
stretch and have a funny offset.
2019-06-18 18:34:13 -04:00
Léo Lam ff96dc0e6f
Merge pull request #8199 from lioncash/namespace
General: Use nested namespace specifiers where applicable
2019-06-18 11:33:08 +02:00
Lioncash 4754ce8805 DolphinQt/CMakeLists: Leverage windeployqt for determining libraries and plugins to copy
We were doing quite a bit of unnecessary work within CMake to handle and
make sure the necessary libraries were copied over. That approach has
several downsides:

1. It's not possible to handle multi-configuration generators (like
   Visual Studio) in an easy manner. The existing script would fail to
   copy over the necessary libraries if one configuration was built, and
   then another one was built.

2. If you have Qt already installed (properly) by the official binary,
   the existing script would copy *all* dlls even if they weren't
   necessary. This is pretty bad, since it can waste quite a bit of
   space.

Instead, we can just delegate off to the official deployment application
bundled with Qt's libraries that determines what the necessary libraries
are and copies them over as necessary. This also means we can properly
support both release and debug binaries in the same directory, like how
the old handcrafted Visual Studio project files allowed.
2019-06-18 01:12:44 -04:00
Lioncash e8fd834d8f DolphinQt/CMakeLists: Collapse name setting code for Windows
Its sufficient to simply specify a debug postfix instead of using an
separate variable. What's nice about this approach is that it will
actually work :p

Previously the code wouldn't work for multi-configuration generators
like Visual Studio.
2019-06-18 01:12:41 -04:00
Gabriel Corona 70bca53ed6 Automatically detach/reattach bluetooth driver in passthrough
When the bluetooth adapter device is opened/closed by dolphin, the
kernel driver is automatically detached/reattached.

This enables transparent sharing of the same bluetooth wiimotes and
bluetooth adapters between the hosts system and the emulated one using
the same.
2019-06-18 00:49:58 +02:00
Lioncash 2714ba2b3d UICommon: Add missing header guards 2019-06-17 18:39:44 -04:00
Lioncash 10f705f665 Core: Add missing header guards 2019-06-17 18:39:03 -04:00
Lioncash c4def7c814 Common: Add missing header guards 2019-06-17 18:37:56 -04:00
Lioncash 72b04a353d VideoBackends/Vulkan: Use nested namespace specifiers where applicable 2019-06-17 16:57:30 -04:00
Lioncash ec60027f56 InputCommon: Use nested namespace specifiers where applicable 2019-06-17 16:51:41 -04:00
Lioncash 8e030a4a45 Common: Use nested namespace specifiers where applicable 2019-06-17 16:36:48 -04:00
Lioncash 32bacfa4bd Core: Use nested namespace specifiers where applicable
Same thing, less visual noise.
2019-06-17 16:32:30 -04:00
Lioncash 5cafce3cc4 VideoCommon/Statistics: Amend imgui include
This is a library header, so it should be using '<' and '>' to delineate
that.
2019-06-17 02:37:02 -04:00
Lioncash 73710c0745 VideoCommon/Statistics: Remove unused header inclusions
These aren't used anywhere, so they can be removed.
2019-06-17 02:36:41 -04:00
Lioncash 6416fe336c VideoCommon/Statistics: Replace memset with assignment in ResetFrame()
Same behavior, less code, and it doesn't require the type ThisFrame
itself to actually be a trivially-copyable type.
2019-06-17 02:27:36 -04:00
Lioncash e981fa2073 VideoCommon/Statistics: Use ImGui::TextUnformatted() where applicable
ImGui::Text() assumes that the incoming text is intended to be
formatted, but we don't actually use it to format anything. We can be
explicit by using the relevant function.

This also has a plus of not needing to go through the formatter itself,
but the gains from that are probably minimal.
2019-06-17 02:27:26 -04:00
Lioncash 1c40fd8569 VideoCommon/Statistics: Replace DRAW_STAT macro with variadic lambda
We don't need to use the preprocessor here. We can just use a variadic
lambda function instead and forward the arguments to the formatting
function.
2019-06-17 02:26:25 -04:00
Lioncash 1968643297 Common/MsgHandler: Amend file-scope variable names
Makes them follow our coding style.
2019-06-16 23:37:03 -04:00
Lioncash 76b675e9f0 Common/MsgHandler: Make default message handler and translator's internally linked
Previously these functions were declared without the static specifier,
giving them external linkage, which isn't really ideal.

Instead, we can place these functions up by the relevant file-scope
variables and place them inside an anonymous namespace with said variables,
giving them internal linkage.
2019-06-16 23:37:03 -04:00
Lioncash d1475f6d59 Common/MsgHandler: Convert type aliases over to using
Same thing, nicer to read.
2019-06-16 23:37:03 -04:00
Lioncash 027c17558f Common/MsgHandler: Use fmt::print on non-Windows OSes
Provides the same behavior.
2019-06-16 23:37:00 -04:00
Lioncash 188234b4cd Common/GekkoDisassembler: Use std::string_view where applicable
Avoids the use of the null pointer to represent an empty string.
Instead, we can simply pass an empty string_view instance. Using
std::string_view enforces this invariant at the API level.
2019-06-16 19:51:23 -04:00
Lioncash d8c3f09c9f Common/GekkoDisassembler: Amend disassembly of operations expecting a character literal
Due to the lack of cast here, this will actually print out the ascii
value, rather than the character itself, due to promoting to integral
values. Instead, we can eliminate the use of character operands and just
print the value itself directly, given it's equivalent behavior with
less code.
2019-06-16 19:33:28 -04:00
Lioncash 0cde8ab9e8 Common/GekkoDisassembler: Make all lookup tables immutable
Allows these arrays to be placed within the read-only segment (and
enforces the immutability in the code itself). While we're at it, we can
make use of std::array here.
2019-06-16 19:21:07 -04:00
Lioncash 78d1716251 Common/IniFile: Make use of std::string_view where applicable
Now that the std::map less-than comparitor is capable of being used with
heterogenous lookup, we're able to convert many of the querying
functions that took std::string references over to std::string_view.

Now these functions may be used without potentially allocating a
std::string instance unnecessarily.
2019-06-16 18:20:08 -04:00
Lioncash de7e9557dc Common/IniFile: Make CaseInsensitiveStringCompare usable with heterogenous lookup
Previously, when performing find() operations or indexing operations on
the section map, it would need to operate on a std::string key.

This means cases like:

map.find(some_string_view)

aren't usable, which kind of sucks, especially given for most cases, we
use regular string literals to perform operations in calling code.
However, since C++14, it's possible to use heterogenous lookup to avoid
needing to construct exact key types. In otherwords, we can perform the
above or use string literals without constructing a std::string instance
around them implicitly.

We simply need to specify a member type within our comparison struct
named is_transparent, to allow std::map to perform automatic type
deduction.

We also slightly alter the algorithm to an equivalent compatible with
std::string_view (which need not be null-terminated), as strcasecmp
requires null-terminated strings.

While we're at it, we can also provide a helper function to the struct
for comparing string equality rather than only less than. This allows
removing other usages of strcasecmp in other functions, allowing for the
transition of them to std::string_view.
2019-06-16 18:20:03 -04:00
Léo Lam b3525ad774
Merge pull request #8186 from lioncash/view
{Common/SymbolDB, Core/HLE/HLE}: Make use of std::string_view where applicable
2019-06-16 16:20:02 +02:00
Léo Lam 1550c098d3
Merge pull request #8187 from lioncash/disasm
GekkoDisassmbler: Amend erroneous formatting specifiers
2019-06-16 16:19:30 +02:00
Lioncash 9952dfe293
GekkoDisassmbler: Amend erroneous formatting specifiers
fmt diverges from printf in that '.' as a precision specifier may only
be used for floating-point values (makes sense, given it's indicating
precision after the decimal point).
2019-06-16 02:05:16 -04:00
Lioncash a3046fe807
Core/HLE/HLE: Use std::string_view where applicable
Now that SymbolDB's querying functions accept std::string_view
instances, we can alter the Patch/UnPatch HLE functions to follow suit.
2019-06-16 01:20:12 -04:00
Lioncash 936aa5dbaa
Common/SymbolDB: Use std::string_view where applicable
These strings are only used for comparison against other strings, so a
string view can be used here.
2019-06-16 01:10:02 -04:00
Techjar 7dc234a2d1 Qt/GCMemcardManager: Load configured memory cards by default 2019-06-15 23:36:47 -04:00
Techjar 56c818b3d8 VideoCommon/RenderBase: Reset scissor rectangle after ImGui rendering
This fixes the problem where OBS game capture only grabs the region
inside an ImGui window whenever one is open, when using the OpenGL
backend. Shouldn't have any negative effects, as the scissor would've
been something completely arbitrary anyways.

This may affect other capture software that uses the same hooking
method, but I've only tested OBS.
2019-06-15 07:12:17 -04:00
Vincent Duvert 2f63b71bde QtGui: Handle file open events
Handle file open events received by Dolphin. This allows Wii/GC files to be
opened when double-clicked or dropped on the Dolphin application on macOS.
2019-06-15 11:27:29 +02:00
Lioncash c64fe7df65
Core/Movie: Use fmt where applicable
In a few cases we needed to alter... less than ideal parameter types.
While u8 may have been OK with printf-style formatting, which promotes
most smaller types back to int, this won't work with fmt. fmt preserves
the type of the passed in arguments, meaning that u8, being an alias of
uint8_t (itself being an alias of unsigned char on all the platforms we
support), will print out as a character, not a numeric value.

As such, we amend some functions to operate on u32 values for two
reasons:

1. We actually want it to print out as a value
2. Arithmetic on unsigned types smaller than unsigned int will actually promote to an int,
   not unsigned int. This is very non-obvious to some and makes for
   error-prone code. < sizeof(int) types are great for storage, not so
   much for performing unsigned arithmetic, despite the signedness of
   the type.
2019-06-14 17:47:02 -04:00
Lioncash 7f93ce374d
Core/CMakeLists: Privately link in fmt
While we do have this library as part of the public linkage interface in
the common library target, which will be used in the future for the
logging macros, we should still be explicit that we're using this
library. Therefore, we privately link it in to be explicit about it.
2019-06-14 17:43:39 -04:00
Anthony c34388f75b
Merge pull request #8157 from JosJuice/rotational-latency
HW/DI: Emulate rotational latency
2019-06-14 12:36:36 -07:00
Anthony 224f292224
Merge pull request #8130 from 8times9/more-text-fixes
Qt: Minor adjustments to graphics window descriptions
2019-06-14 12:30:27 -07:00
Anthony dd3b678451
Merge pull request #8178 from leoetlino/less-sleep
DiscordHandler: Don't delay shutdown by up to 2s
2019-06-14 12:28:13 -07:00
Lioncash 5b92d5076a
Common: Use fmt where applicable
Begins the transition to using fmt for string formatting where
applicable. Given fmt supports formatting std::string instances out of
the box, we can remove now-unnecessary calls to .c_str() and .data().

Note that this change does not touch the actual logging subsystem aside
from converting the final StringFromFormat call in the process over to
fmt::format. Given our logging system is heavily used throughout the
entire codebase, and converting that over will be quite a large change
by itself, this will be tackled near the end of the conversion process.
2019-06-14 15:04:09 -04:00
8times9 f1dde9fee0 Qt: Minor adjustments to graphics window descriptions 2019-06-14 15:58:16 +02:00
Léo Lam 59155b4d5e
Merge pull request #8150 from lioncash/kbd
IOS/USB_KBD: Minor cleanup
2019-06-14 15:25:10 +02:00
Léo Lam 3b7a7ae2e7
Merge pull request #8155 from Techjar/dtm-get-origin
Core/Movie: Store PAD_GET_ORIGIN bit in ControllerState
2019-06-14 15:13:43 +02:00
Léo Lam e2d59abaa7
Merge pull request #8173 from lioncash/fmt
Externals: Add libfmt to externals
2019-06-14 14:47:22 +02:00
Léo Lam a6f4cb1647 DiscordHandler: Don't delay shutdown by up to 2s
Currently, it is possible for the DiscordHandler thread to be in the
middle of sleeping when Dolphin is closing. This results in a very
noticeable delay of up to 2 seconds that is unacceptable, especially
for people who don't use the Discord integration.

This fixes the issue by making the thread wait on an Event instead
and signalling it when shutting down.
2019-06-13 23:34:25 +02:00
Léo Lam 79ea55c912
Merge pull request #8169 from lioncash/fallthrough
Core/GeckoCodeConfig: Use the [[fallthrough]] attribute in LoadCodes()
2019-06-13 13:36:32 +02:00
Lioncash d52e69bab1
Common/CMakeLists: Link in fmt
While not currently used by common, this will become the case when the
logging system eventually transitions to it, among other things.
2019-06-10 15:26:46 -04:00
Matthew Foulds c62570c527 Added key for relative input 2019-06-10 13:23:16 +01:00
Pokechu22 adfbbe3a02 Disallow changing the backend when running when software renderer is currently selected
It already is disabled for other backends, but this didn't happen with the software renderer.  Attempting to change it while running causes the change to visually happen (including switching to the normal render settings UI instead of the barren one for the software renderer), but doesn't actually change the backend itself (it'll still use the software renderer at the next launch).
2019-06-08 16:25:27 -07:00
Lioncash 92b445618a VideoCommon/DriverDetails: Make look-up table immutable
Previously, this array potentially wouldn't be placed within the
read-only segment, since it wasn't marked const. We can make the lookup
table const, along with any other nearby variables.
2019-06-08 18:06:36 -04:00
Lioncash 632b953ebf Core/GeckoCodeConfig: Use the [[fallthrough]] attribute in LoadCodes()
Makes it explicit that this fallthrough is intentional.
2019-06-08 17:55:01 -04:00
Léo Lam d927cd2b03
Merge pull request #8162 from lioncash/label
DSP/LabelMap: C++17 transitional changes/cleanup
2019-06-08 18:16:20 +02:00
Connor McLaughlin 951b66e4ac
Merge pull request #8049 from stenzek/crop
Renderer: Adjust source rectangle when crop would draw off screen
2019-06-08 20:57:52 +10:00
Connor McLaughlin b13e00b003
Merge pull request #8165 from lioncash/linkage
{Android/ButtonManager, ResourcePack/Manager}: Make file-scope variables/functions internally linked where applicable
2019-06-08 20:56:13 +10:00
Connor McLaughlin ab66e91766
Merge pull request #8134 from JosJuice/filesystem-string-view
DiscIO: Use std::string_view in FileSystem::FindFileInfo
2019-06-08 20:52:34 +10:00
Connor McLaughlin bed2d66bed
Merge pull request #8117 from weihuoya/threaded_env
android: get java env from thread local storage
2019-06-08 20:42:15 +10:00
Connor McLaughlin 5a4e2a6b2f
Merge pull request #7734 from stenzek/mojave-warning
Vulkan: Display a warning when using MoltenVK on HS and earlier
2019-06-08 20:41:39 +10:00
Stenzek 3f1586dbce Vulkan: Display a warning when using MoltenVK on HS and earlier 2019-06-08 20:16:24 +10:00
Stenzek 1028e2c1a6 D3D12: Remove unnecessary includes in DXContext.h 2019-06-08 20:12:15 +10:00
Stenzek 9316e25652 D3DCommon: Fallback to base CreateSwapChain on failure
It appears that some older drivers do not support
CreateSwapChainForHwnd, resulting in DXGI_ERROR_INVALID_CALL. For these
cases, fall back to the base CreateSwapChain() from DXGI 1.0.

In theory this should also let us run on Win7 without the platform
update, but in reality we require the newer shader compiler so this
probably won't work regardless. Also any hardware of this vintage is
unlikely to run Dolphin well.
2019-06-08 20:11:49 +10:00
Connor McLaughlin 0177c6c2c7
Merge pull request #8146 from Techjar/netplay-network-opts
Qt/NetPlayDialog: Change network mode options to radio buttons
2019-06-08 20:05:35 +10:00
Connor McLaughlin 6b4ca318c9
Merge pull request #8139 from lioncash/const
VideoCommon/PixelShaderGen: Make look-up table arrays immutable where applicable
2019-06-08 20:03:02 +10:00
Connor McLaughlin 67a9fc6784
Merge pull request #8163 from lioncash/config
Core/ConfigManager: Use forward declarations where applicable
2019-06-08 20:01:15 +10:00
Connor McLaughlin b7fba95cdf
Merge pull request #8166 from lioncash/mbedtls
Externals: Update mbedTLS from 2.1.1 to 2.16.1
2019-06-08 19:58:37 +10:00
JosJuice 7fcc3dd605 DolphinQt: Don't leave Export Recording disabled always 2019-06-08 08:39:12 +02:00
Lioncash 5512876842 General: Migrate from deprecated mbedTLS functions
As indicated by mbedTLS' documentation, all of the relevant functions
have been superseded by _ret-suffixed variants in mbedTLS version
2.7.0.
2019-06-07 22:51:58 -04:00
Lioncash eb15a52fd5 UICommon/ResourcePack/Manager: Make GetPackConfig() internally linked
Silences a -Wmissing-declarations warning.
2019-06-07 20:27:27 -04:00
Lioncash c0c0e412e0 Core/ConfigManager: Use forward declarations where applicable
Avoids dragging in IniFile, EXI device and SI device headers in this header which is
quite widely used throughout the codebase.

This also uncovered a few cases where indirect inclusions were being
relied upon, which this also fixes.
2019-06-07 19:54:39 -04:00
Lioncash 6e9329455c DSP/LabelMap: std::move std::string instances where applicable
We can std::move the std::string parameter in Label's constructor,
allowing the constructor to be moved into in calling code.

We can cascade this outwards in the interface as well.
2019-06-07 17:42:10 -04:00
Lioncash 32427af79e DSP/LabelMap: Make label_t's definition hidden
Given this is a private struct and it's used in a container that
supports incomplete types, we can forward-declare it and move it into
the cpp file. While we're at it, we can change the name to Label to
follow our formatting guidelines.
2019-06-07 17:37:48 -04:00
Lioncash a3ed4ceec5 DSP/LabelMap: Use std::optional with GetLabelValue()
Rather than use a bool and out parameter, we can collapse them into one
by using a std::optional.
2019-06-07 17:26:24 -04:00
Lioncash 747128b093 DSP/LabelMap: Collapse DeleteLabel loop into std::find_if
Same thing, no explicit loops.
2019-06-07 17:13:10 -04:00
Lioncash 98ec2ab2ac DSP/LabelMap: Default constructor and destructor
We also move the destructor definition into the cpp file, as that will
allow us to make the entire label_t type hidden from external view in a
following change.
2019-06-07 17:07:06 -04:00
Lioncash 0a1249ea40 DSP/LabelMap: Amend class formatting
Places the most important stuff, the public interface first.
2019-06-07 17:05:25 -04:00
Lioncash 60d10d2813 Core/DSP/DSPTables: Make FindOpInfoByName/FindExtOpInfoByName use std::string_view
These functions only ever compare against another string, so these can
have their parameters turned into std::string_view to make them more
flexible.
2019-06-06 12:22:02 -04:00
Léo Lam 3f4952d57c
Merge pull request #8152 from lioncash/array-size
Common/CommonFuncs: Remove now-unneccessary ArraySize function
2019-06-06 13:35:57 +02:00
Léo Lam 824ec84e82
Merge pull request #8154 from lioncash/analytics
{Common/Analytics, Core/Analytics}: Minor C++17 transitional changes
2019-06-06 13:25:17 +02:00
booto 37919144c8 SI_DeviceGCAdapter: Stop it being detected as a steering wheel 2019-06-05 23:31:48 -04:00
Sintendo e9d4869965 Jit64AsmCommon: Micro-optimize GenFrsqrte
Save 2 bytes by testing register against itself and branching on the 
sign flag.

Before:
0:  48 0f ba e0 3f          bt     rax,0x3f

After:
0:  48 85 c0                test   rax,rax
2019-06-05 23:58:44 +02:00
Sintendo 5b5886160e DSPJitArithmetic: Precompute addis immediate
Compute immediate value at compile time.
2019-06-05 23:36:30 +02:00
Sintendo 3951d238d9 DSPJitArithmetic: Precompute addi immediate
Compute immediate value at compile time.
2019-06-05 23:36:14 +02:00
Sintendo a3744c3c26 DSPJitUtil: Use round_long_acc in get_long_prod_round_prodl
Identical, except that this used a temporary register as scratch instead 
of RCX. round_long_acc now no longer needs scratch, so we can 
deduplicate the logic.
2019-06-05 23:33:02 +02:00
Sintendo 832e320f08 DSPJitUtil: Make round_long_acc branchless
Also no longer clobbers RCX.
2019-06-05 23:25:39 +02:00
Sintendo 9b6f2859a4 DSPJitUtil: Micro-optimize increment_addr_reg
2 bytes shorter.

Before:
0:  41 0f b7 c2             movzx  eax,r10w
4:  41 89 c5                mov    r13d,eax
7:  83 c0 01                add    eax,0x1

After:
0:  45 0f b7 ea             movzx  r13d,r10w
4:  41 8d 45 01             lea    eax,[r13+0x1]
2019-06-05 23:23:22 +02:00
JosJuice 3ab74f8cb7 HW/DI: Emulate rotational latency
This aims to emulate rotational latency as part of the disc drive
timings, which makes loading times have more variance (like on a
real disc drive) but should not affect the average loading times.
2019-06-05 20:47:08 +02:00
Lioncash e59f72739a Core/Analytics: Turn analytics URL into a C-string
Less reading and also doesn't store an unnecessary pointer value in the
executable, making it smaller by 8 bytes.
2019-06-05 13:24:35 -04:00
Lioncash ea9f887170 Core/Analytics: Use inline on static member variables
Starting with C++17, this allows for the same behavior as the existing
code, but without the need to manually write the out-of-class
definitions as well.
2019-06-05 13:24:35 -04:00
Lioncash ebf3de4d93 Core/Analytics: Use std::lock_guard deduction guides
Starting with C++17, the type of the mutex being locked no longer needs
to be hardcoded into the type declaration.
2019-06-05 13:24:35 -04:00
Lioncash 57454e90a7 Core/Analytics: Make MakeUniqueId() a const member function
This function doesn't modify instance state, so we can mark it as const.
2019-06-05 13:24:34 -04:00
Lioncash a5caa95a4b Core/Analytics: Use std::string_view where applicable
In these cases, the strings are treated as views anyways, so we can use
them here to avoid potential allocations.
2019-06-05 13:24:34 -04:00
Lioncash 2c2b9690bb Core/Analytics: Simplify static_assert
We can just use a std::array here to simplify the size calculation.
2019-06-05 13:24:34 -04:00
Lioncash 7935c27b52 Common/Analytics: Convert std::string overload into std::string_view
Allows for both string types to be non-allocating. We can't remove the
const char* overload in this case due to the fact that pointers can
implicitly convert to bool, so if we removed the overload all const
char arrays passed in would begin executing the bool overload instead of
the string_view overload, which is definitely not what we want to occur.
2019-06-05 13:24:31 -04:00
spycrab 78e566aaa5
Merge pull request #8156 from 8times9/resourcepack-header
Qt/ResourcePackManager: Remove column header bold text
2019-06-05 14:27:39 +02:00
Techjar 5f3bf405d4 Core/Movie: Store PAD_GET_ORIGIN bit in ControllerState
This fixes the desync on playback of start-from-boot input recordings
made while using the GC adapter, as well as other desyncs that could
potentially occur in other circumstances where this bit is used.

I used a previously reserved bit in the ControllerState to store the
new data, so this shouldn't significantly break backwards
compatibility. However, tools that aren't aware of this new bit may set
it to 0, which will break input recordings that contain it.
2019-06-05 02:36:23 -04:00
8times9 ffb8f56a83 Qt/ResourcePackManager: Remove column header bold text 2019-06-04 19:13:39 -05:00
Lioncash 58e2cd5486 Common/Analytics: std::move std::string constructor parameter
Allows calling code to move into the constructor, avoiding the creation
of another string copy.
2019-06-03 20:13:00 -04:00
Lioncash f813c4951a Common/Analytics: Use deduction guides for std::lock_guard
Avoids needing to hardcode the type of mutex. We can also make use of
scoped_lock where two consecutive lock_guard instances are used.
2019-06-03 20:12:55 -04:00
Lioncash 6df65d7a5d Common/Analytics: Default AnalyticsReportingBackend()'s destructor
Stays consistent with AnalyticsReportBuilder.
2019-06-03 18:27:45 -04:00
Tillmann Karras 84e3391535 Mark files as non-executable 2019-06-02 12:31:40 +01:00
Lioncash a9663669dc Common/CommonFuncs: Remove now-unneccessary ArraySize function
Since C++17, non-member std::size() is present in the standard library
which also operates on regular C arrays. Given that, we can just replace
usages of ArraySize with that where applicable.

In many cases, we can just change the actual C array ArraySize() was
called on into a std::array and just use its .size() member function
instead.

In some other cases, we can collapse the loops they were used in, into a
ranged-for loop, eliminating the need for en explicit bounds query.
2019-06-01 10:07:57 -04:00
Lioncash c8b950e716 IOS/USB_KBD: Normalize variable names
Now, with all of the tidying done, we can cap it off by normalizing
variable names to abide by our code formatting guidelines.
2019-05-31 09:05:31 -04:00
Lioncash 7f5ca64c4d IOS/USB_KBD: Make the message type enum an enum class
Avoids polluting the surrounding scope with enum values. We can also
make use of it in MessageData's constructor to enforce proper type
passing.
2019-05-31 09:00:08 -04:00
Lioncash d89ea8bf41 IOS/USB_KBD: Make IsKeyPressed() a non-virtual const member function
No other class inherits the USB_KBD class, and this function doesn't
actually modify instance state, so it can be made a const member
function.
2019-05-31 08:51:46 -04:00
Lioncash bcdc5b5f7e IOS/USB_KBD: Add static assertion to enforce MessageData as trivially copyable
MessageData must be a trivially copyable type, given it's copied into
emulated memory via our memory copy function CopyToEmu. Under the
covers, this function utilizes memcpy. One of memcpy's requirements is
that pointers to it point to types that are trivially copyable,
otherwise the behavior is undefined.

Given that, we can enforce this requirement at compile-time.
2019-05-31 08:51:46 -04:00
Lioncash e0552e0642 IOS/USB_KBD: Rename SMessageData to MessageData
We don't need to prefix this with S to signify that it's a struct.
2019-05-31 08:51:43 -04:00
Lioncash cc54652fb3 IOS/USB_KBD: Migrate TODO comment above if statement
Prevents some wonky formatting from occurring.
2019-05-31 08:51:01 -04:00
Lioncash e8cc1b8d8a IOS/USB_KBD: Use std::array for member variables where applicable
Simplifies initialization code quite a bit, and replaces a pointer
variable for SMessageData with a type properly representing the whole
set of data it needs.
2019-05-31 08:50:58 -04:00
Léo Lam a4837a5c5d
Merge pull request #8143 from lioncash/loader
VertexLoader_*: Minor cleanup
2019-05-31 14:18:16 +02:00
Léo Lam eed4fcc218
Merge pull request #8135 from lioncash/cmake
CMakeLists: Specify header files in target sources
2019-05-31 14:03:12 +02:00
Lioncash 64564e337b IOS/USB_KBD: Make key code lookup tables immutable and internally linked
These aren't modified by the class, nor do they directly need anything
related to the class state, so they can solely live within the cpp file,
hidden from external view, and also be made const, so the compiler can
place it within the read-only segment.
2019-05-31 08:02:29 -04:00
Léo Lam 2cb59ab055
Merge pull request #8148 from lioncash/view
AudioCommon: Use std::string_view with feature querying functions
2019-05-31 14:01:15 +02:00
Léo Lam 478f359d8d
Merge pull request #8149 from lioncash/sdio
IOS/SDIOSlot0: Remove unimplemented prototype
2019-05-31 13:58:54 +02:00
Lioncash 2060390a9f IOS/SDIOSlot0: Tidy up parameter names of ExecuteCommand
Makes the names consistent between declaration and definition and
adjusts them to follow our code formatting guidelines.

Now all functions in the translation unit follow our formatting
guidelines.
2019-05-31 07:28:11 -04:00
Lioncash 61c25b3d23 IOS/SDIOSlot0: Remove unimplemented prototype
This function doesn't have an implementation, so we can remove it to
make for less reading (and a linker error waiting to happen).
2019-05-31 07:23:40 -04:00
Lioncash 78e96230b2 AudioCommon: Move static locals into the AudioCommon namespace
Given these are locals, they can be moved out of the global namespace.
While we're at it, turn the constants below it into constexpr variables.
2019-05-31 07:07:16 -04:00
Lioncash 15397e2a89 AudioCommon: Use emplace_back instead of push_back in GetSoundBackends()
Constructs the strings directly within the container instead of
performing a construction, then a copy.

The reasoning is that the BACKEND_* strings are const char arrays, so
the push_back code is equivalent to:

push_back(std::string(BACKEND_WHATEVER)) instead of forwarding the
arguments to a constructed instance directly in the container.
2019-05-31 07:03:54 -04:00
Lioncash 1a56e9d9e0 AudioCommon: Use std::string_view with feature querying functions
Provides the same behavior, but allows passed in strings to be
non-allocating in calling code.
2019-05-31 07:01:47 -04:00
Lioncash 3d27439d9a VideoCommon/CMakeLists: Specify headers in target sources 2019-05-31 06:54:26 -04:00
Lioncash a41ba68c1e VideoVulkan/CMakeLists: Specify headers in target sources 2019-05-31 06:54:26 -04:00
Lioncash cd9281772a VideoSoftware/CMakeLists: Specify headers in target sources 2019-05-31 06:54:26 -04:00
Lioncash 115e7992c5 VideoOGL/CMakeLists: Specify headers in target sources 2019-05-31 06:54:26 -04:00
Lioncash 968d379cc4 VideoNull/CMakeLists: Specify headers in target sources 2019-05-31 06:54:26 -04:00
Lioncash 87a57a5584 UpdaterCommon/CMakeLists: Specify headers in target sources 2019-05-31 06:54:26 -04:00
Lioncash 4cdb493eab UICommon/CMakeLists: Specify headers in target sources 2019-05-31 06:54:25 -04:00
Lioncash 24f5acf9a5 InputCommon/CMakeLists: Specify headers in target sources 2019-05-31 06:54:25 -04:00
Lioncash b453229a68 DolphinQt/CMakeLists: Specify headers in target sources 2019-05-31 06:54:25 -04:00
Lioncash 0c538ef523 DolphinNoGUI/CMakeLists: Specify headers in target sources 2019-05-31 06:54:25 -04:00
Lioncash cbcafd6830 DiscIO/CMakeLists: Specify headers in target sources 2019-05-31 06:54:25 -04:00
Lioncash cd351fd478 Core/CMakeLists: Specify headers in target sources 2019-05-31 06:54:24 -04:00
Lioncash b6d9b85293 AudioCommon/CMakeLists: Specify headers in target sources 2019-05-31 06:52:44 -04:00
Lioncash 48b82e82db Common/CMakeLists: Specify headers alongside source files
Allows these files to show up as part of the project when generating IDE
builds from CMake.
2019-05-31 06:52:44 -04:00
Léo Lam 5ffbec6956
Merge pull request #8144 from lioncash/tie
Common/x64Emitter: Resolve TODO in OpArg's operator==
2019-05-31 11:05:33 +02:00
booto bc8a4f99c7 VideoCommon: Constrain the array_base registers
The array_base registers as part of CP state do not seem to incorporate
the upper bits in the physical address they try to access.
2019-05-31 03:22:00 -04:00
Techjar b0b4b69d6e Qt/NetPlayDialog: Change network mode options to radio buttons
This changes the Host Input Authority and Golf Mode checkboxes into a
set of radio buttons, consisting of Fair Input Delay, Host Input
Authority, and Golf Mode. This represents the 3 network modes we have.

Although Golf Mode is just an extension of Host Input Authority, it's
more logical to the user to present it as a separate option, rather
than enabling the Golf Mode checkbox only when Host Input Authority is
enabled. This also eliminates the need to first enable Host Input
Authority before Golf Mode can be enabled.

This also adds tooltips to provide brief descriptions of the options,
as well as reintroducing tooltips that were previously removed.
2019-05-31 02:33:41 -04:00
booto c1baffa776 ARAM: further cleanup, use AddressSpace accessors 2019-05-30 21:46:18 -04:00
Techjar 199486ffb6 Qt/NetPlayDialog: Move settings loading into LoadSettings 2019-05-30 18:07:03 -04:00
Techjar cd3ba570df VideoCommon/ShaderGenCommon: Fix memcmp size in ShaderUid operators 2019-05-30 16:00:46 -04:00
Lioncash 2452747429 VertexLoader_TextCoord: Tidy up public function definitions
We can use u32 instead of unsigned int to shorten up these definitions
and make them much nicer to read.

While we're at it, change the size array to house u32 elements
to match the return value of the function.
2019-05-30 10:29:51 -04:00
Lioncash 9569c79ca2 VertexLoader_TextCoord: Make lookup tables immutable
Allows the compiler to place the data within the read-only segment.
2019-05-30 10:29:50 -04:00
Lioncash 16a03bade2 VertexLoader_TextCoord: Place helper functions in anonymous namespace
Gives them all internal linkage.
2019-05-30 10:29:50 -04:00
Lioncash 6f656b7219 VertexLoader_Position: Tidy up public function definitions
We can use u32 instead of unsigned int to shorten up these definitions
and make them much nicer to read.

While we're at it, change the size array to house u32 elements to match
the return value of the function.
2019-05-30 10:29:50 -04:00
Lioncash 14e544eef8 VertexLoader_Position: Make lookup tables immutable
Allows the compiler to place these arrays within the read-only segment.
2019-05-30 10:29:50 -04:00
Lioncash be9a03b35f VertexLoader_Position: Place helper functions in anonymous namespace 2019-05-30 10:29:50 -04:00
Lioncash 60a1d0593c VertexLoader_Color: Place helper functions in anonymous namespace
While we're at it, convert the define into a constexpr variable.
2019-05-30 10:29:47 -04:00
Lioncash 66596c5176 Common/x64Emitter: Resolve TODO in OpArg's operator==
We now require C++17, so we can use std::tie here.
2019-05-30 10:27:28 -04:00
Léo Lam 00ecfb3c59
Merge pull request #8138 from lioncash/input-string
ControllerInterface/Device: Minor cleanup
2019-05-30 14:33:53 +02:00
Léo Lam 4e7a790648
Merge pull request #8140 from lioncash/vertex
VideoCommon/VertexLoader_Normal: Construct look-up table at compile-time
2019-05-30 14:28:59 +02:00
Léo Lam 90c9991086
Merge pull request #8141 from lioncash/init
VideoCommon/ShaderGenCommon: Simplify initialization of ShaderUid class
2019-05-30 14:15:02 +02:00
Léo Lam 2ce587f781
Merge pull request #8142 from lioncash/shader-view
VideoCommon/RenderBase: Use std::string_view with CreateShaderFromSource()
2019-05-30 14:12:18 +02:00
Lioncash f7eff6dab8 VideoCommon/ShaderGenCommon: Simplify operator!= for ShaderUid
This can be implemented as the negation of operator==, placing the
comparison logic for equality and inequality in the same place.
2019-05-30 06:41:57 -04:00
Lioncash 954246d10e VideoCommon/ShaderGenCommon: Remove use of a union within ShaderUid
This is only ever used to retrieve a raw view of the given UID data
structure, however it's already valid C++ to retrieve a char/unsigned
char view of an object for bytewise inspection.

u8 maps to unsigned char on all platforms we support, so we can just do
this directly with a reinterpret cast, simplifying the overall
interface.
2019-05-30 06:41:57 -04:00
Lioncash 149a97e396 VideoCommon: Remove unnecessary memset on ShaderUid instances.
Zero-initialization zeroes out all members and padding bits, so this is
safe to do. While we're at it, also add static assertions that enforce
the necessary requirements of a UID type explicitly within the ShaderUid
class.

This way, we can remove several memset calls around the shader
generation code that makes sure the underlying UID data is zeroed out.
Now our ShaderUid class enforces this for us, so we don't need to care about
it at the usage sites.
2019-05-30 06:41:54 -04:00
Lioncash 1831dcbe6f VideoVulkan/ShaderCompiler: Use non-member std::size instead of ArraySize()
Now that we're on C++17, we can use its non-member std::size function
instead of ours. This provides no functional change.
2019-05-30 04:16:20 -04:00
Lioncash d6a60050ff VideoVulkan/ShaderCompiler: Use a std::optional instead of bool+out variable
Now that we utilize C++17, we can simply return an optional containing
the code instead of using an out variable and a boolean result,
essentially combining them into one.

This provides a much more straightforward interface.
2019-05-30 04:16:17 -04:00
Lioncash e60268bd42 VideoCommon/RenderBase: Use a std::string_view with CreateShaderFromSource()
Greatly simplifies the overall interface when it comes to compiling
shaders. Also allows getting rid of a std::string overload of the same
name. Now std::string and const char* both go through the same function.
2019-05-30 03:29:35 -04:00
Lioncash 0084aeb5d7 VideoCommon/VertexLoader_Normal: Use variable template variants of type traits
Same thing, less reading.
2019-05-30 00:52:59 -04:00
Lioncash 8268b6f454 VideoCommon/VertexLoader_Normal: Initialize function table at compile-time
Makes VertexLoader_Normal completely stateless, eliminating the need for
an Init() function, and by extension, also gets rid of the need for the
FifoAnalyzer to have an Init() function.
2019-05-30 00:52:57 -04:00
Lioncash 911755242d VideoCommon/VertexLoader_Normal: Remove E prefix from enums
This is old formatting that used to be used prior to the coding style
being introduced.
2019-05-29 22:15:46 -04:00
Lioncash 3b8fb22d93 VideoCommon/VertexLoader_Normal: Tidy up function declarations
We can use u32 to shorten up the function declarations. While we're at
it, remove unnecessary comments. These don't help with understanding.
2019-05-29 22:13:20 -04:00
Lioncash 8537f8e095 VideoCommon/PixelShaderGen: Fix up wonky comment formatting
This is likely a remnant of the initial transition to clang-format.
2019-05-29 22:03:02 -04:00
Lioncash 45934dd0c5 VideoCommon/PixelShaderGen: Make arrays immutable
Many of the arrays defined within this file weren't declared as
immutable, which can inhibit the strings being put into the read-only
segment. We can declare them constexpr to make them immutable.

While we're at it, we can use std::array, to allow bounds conditional
bounds checking with standard libraries. The declarations can also be
shortened in the future when all platform toolchain versions we use
support std::array deduction guides. Currently macOS and FreeBSD
builders fail on them.
2019-05-29 22:00:58 -04:00
Lioncash e28d08e973 VideoCommon/PixelShaderGen: Brace control structures that travel more than one line
Them's the code formatting rules.
2019-05-29 20:16:41 -04:00
Lioncash 0263435050 ControllerInterface/Device: Make DetectInput() a const member function
This doesn't actually modify object instance state, so it can be made
const.
2019-05-29 19:23:54 -04:00
Lioncash 27346fee8a ControllerInterface/Device: Take vector by const reference in DetectInput()
The vector is only ever queryied and it's contents aren't modified, so
there's no reason to take the vector by value. We can take a constant
reference to it to avoid unnecessary allocating.
2019-05-29 19:12:21 -04:00
Lioncash 246e2a77ce ControllerInterface/Device: std::move strings in constructor where applicable
Allows callers to move std::string values into the constructor,
potentially avoiding copies.
2019-05-29 18:46:49 -04:00
Lioncash 1355b43fd2 ControllerInterface/Device: Use std::string_view where applicable
In these cases, the given string is only ever compared against other
string, so std::string can be turned into a std::string_view to allow
non-allocating inputs.
2019-05-29 18:42:24 -04:00
Vincent Duvert 2c3c8bbb90 GCAdapter: Update Android-specific source
Fix the Android version of GCAdapter.cpp so it matches the new definitions in GCAdapter.h.
2019-05-29 18:28:24 +02:00
Vincent Duvert 9e7d4d2abb GCAdapter: Handle dynamic status updates for non-hotplug libusb
Detect when the setup function found no adapter, or found one but could
not connect to it, and report the new status in that case.
2019-05-29 18:28:24 +02:00
Vincent Duvert 2ac1ca133f GCPadWiiUConfigDialog: Update the adapter state dynamically
Update the GC adapter config GUI if the adapter is plugged or unplugged.
2019-05-29 18:28:24 +02:00
Vincent Duvert b08e2ec959 GCAdapter: Report libusb open errors to the user
If opening the adapter fails, report the libusb error message in the GUI
instead of “No Adapter Detected”.

The error condition is removed when the adapter is unplugged.
2019-05-29 18:28:24 +02:00
Vincent Duvert 0165e5e703 GCAdapter: Close libusb handle if an open error occurs
The handle was previously kept open, which was causing future adapter
plug/unplug events to be ignored.
2019-05-29 18:28:24 +02:00
Léo Lam 80d8173d29
Merge pull request #8132 from lioncash/string
Common/FileUtil: Use std::string_view with WriteStringToFile
2019-05-29 15:32:18 +02:00
JosJuice f25367a7a2 DiscIO: Avoid copies when comparing FileSystemGCWii file names 2019-05-29 14:53:39 +02:00
weihuoya 0dec8feadb android: thread local env 2019-05-29 20:22:26 +08:00
Léo aca46b11f8
Merge pull request #8070 from leoetlino/usb-fixes
Update and patch libusb to fix USB issues
2019-05-29 14:07:19 +02:00
Léo Lam 918d707f3f
Merge pull request #8131 from lioncash/move
UICommon/ResourcePack/Manager: Resolve use-after-move in Add()
2019-05-29 13:24:08 +02:00
Léo Lam 0cfdcf436d
Merge pull request #8136 from lioncash/arglist
VideoCommon/{NetPlayChatUI/NetPlayGolfUI}: Minor changes
2019-05-29 13:18:03 +02:00
Lioncash 7346679986 Common/FileUtil: Use std::string::data within ReadFileToString
With C++17, .data() for std::string now has a non-const overload, so we
can make use of that instead of taking the address of the first element.
2019-05-29 07:06:56 -04:00
Lioncash c0f499b7f7 Common/FileUtil: Use std::string_view with WriteStringToFile
Allows writing out other forms of strings (e.g. C strings) without the
need to allocate a std::string and discard it after use.
2019-05-29 07:06:56 -04:00
Lioncash eb475025b8 Common/FileUtil: Make WriteStringToFile consistent with ReadFileToString
Makes the parameter ordering consistent and less error-prone.
2019-05-29 07:06:53 -04:00
Lioncash 1a0f8e7804 VideoCommon/VertexLoaderX64: Add missing header guard 2019-05-29 06:35:22 -04:00
Lioncash 778623c48c VideoCommon/NetPlayGolfUI: Remove unused header
This header doesn't actually make use of any std::string facilities.
2019-05-29 06:20:57 -04:00
Lioncash cf0f2bbf1d VideoCommon/NetPlayGolfUI: Default the destructor in the cpp file
Ensures the destruction logic is kept local to the translation unit. It
also doesn't really do much to have it specified in the header.
2019-05-29 06:20:05 -04:00
Lioncash 0fabab0760 VideoCommon/NetPlayGolfUI: Initialize netplay_client in the constructor initializer list 2019-05-29 06:20:05 -04:00
Lioncash c958fc1278 VideoCommon/NetPlayChatUI: Default destructor in the cpp file
Ensures that the destruction logic is kept local to the translation unit
(making it nicer when it comes to forward declaring non-trivial types).
It also doesn't really do much to define it in the header.
2019-05-29 06:20:05 -04:00
Lioncash 53b115b81e VideoCommon/NetPlayChatUI: Use nullptr where applicable
We gotsa type dedicated to this concept already :P
2019-05-29 06:14:43 -04:00
Lioncash 50a15b7484 VideoCommon/NetPlayChatUI: Take std::string by value in AppendChat()
Given we're simply storing the std::string into a deque. We can emplace
it and move it. Completely avoiding copies with the current usage of the
function.
2019-05-29 06:12:29 -04:00
Lioncash 08223bad9f VideoCommon/NetPlayChatUI: Set member variable within the constructor initializer list
Member variables should be initialized within the constructor
initializer list if possible.
2019-05-29 06:09:49 -04:00
JosJuice d4b069f458 DiscIO: Use std::string_view in FileSystem::FindFileInfo
...and in the functions that call it.
2019-05-29 08:29:56 +02:00
Sintendo c84f34bd50 x64Emitter: Short MOVs for 32bit immediates
Prior to this commit, the emitter would emit a 7-byte instruction when
loading a 32-bit immediate to a 64-bit register.

0:  48 c7 c0 ff ff ff 7f    mov    rax,0x7fffffff

With this change, it will check if it can instead emit a load to a
32-bit register, which takes only 5 or 6 bytes.

0:  b8 ff ff ff 7f          mov    eax,0x7fffffff
2019-05-29 01:04:09 +02:00
Lioncash 4d2e0c7b48 UICommon/ResourcePack/Manager: Resolve use-after-move in Add()
The pack is already has its validity checked at the beginning of the
function, so we don't need to check this again after inserting it.

Also resolves a use-after-move case.
2019-05-28 17:40:28 -04:00
Lioncash b4470ad4c2 UICommon/GameFile: Make COVER_URL a plain C string
Same behavior but doesn't take up 8 bytes in the executable to store a
pointer. While we're at it, move it into an anonymous namespace within
the UICommon namespace.
2019-05-28 07:27:41 -04:00
Lioncash 8229ada922 UICommon/GameFile: Remove unused includes
Nothing within the source file makes use of anything in those includes,
so they can be removed.
2019-05-28 07:27:41 -04:00
Lioncash 80786cd295 UICommon/GameFile: Remove unnecessary value() calls in DownloadDefaultCover()
We already check ahead of time if the optional contains a value within
it before accessing it, so we don't need to use the throwing value()
accessor. We can just directly use operator->
2019-05-28 07:27:41 -04:00
Lioncash ab0892e5a5 UICommon/GameFile: Deduplicate string paths where applicable
Rather than construct strings twice, we can just construct it once and
reuse it. While we're at it, we can move variables closer to where
they're actually used within DownloadDefaultCover()
2019-05-28 07:27:35 -04:00
Lioncash 27ecb93b32 UICommon/GameFile: Remove unnecessary initializers
All of the standardized types have constructors that will automatically
initialize them, so the explicit initializers are redundant.
2019-05-28 07:00:15 -04:00
Lioncash 56faf750be UICommon/GameFile: std::move std::string argument in constructor
Allows for calling code to move the argument into the constructor,
avoiding a copy.
2019-05-28 06:57:48 -04:00
Lioncash 8e65869484 UICommon/GameFile: Default no-arg constructor and destructor within the cpp file
A GameFile instance contains quite a lot of non-trivial types, so
default construction and destruction in the same translation unit.
2019-05-28 05:53:40 -04:00
Lioncash 49ca31467d UICommon/GameFile: Use in-class initializers where applicable
Allows deduplicating code within the constructor initializer list.
2019-05-28 05:51:51 -04:00
Léo Lam 800d875faa
Merge pull request #8127 from lioncash/resource
UICommon/ResourcePack: Minor cleanup
2019-05-27 23:05:10 +02:00
Léo Lam 256c9375c9 Move libusb utilities to LibusbUtils
* Simplifies libusb context usage and allows us to set options for
all contexts easily. Notably, this lets us enable usbdk support
in libusb, which is now opt-in in the latest version.

* Moves the libusb config descriptor wrapper class to LibusbUtils too
since that could easily be reused.

* Moves device listing to LibusbUtils too and add a lock around it
as some libusb backends are not thread safe.

* Consequences: only a single context and a single event handling
thread is used now, which is more efficient.
2019-05-27 20:09:55 +02:00
Lioncash f07cf9ebab UICommon/ResourcePack: Allow ReadCurrentFileUnlimited() to read into any contiguous container
This allows the same code to be used to read into a std::string, which
allows for eliminating the vector->string transfer when reading the
manifest file.

A ContiguousContainer is a concept that includes std::array,
std::string, and std::vector.
2019-05-27 13:29:40 -04:00
Lioncash 5c4d3f55da UICommon/Manager: Remove unused std::string variable in Remove() 2019-05-27 13:09:21 -04:00
Léo Lam 42de5b9a10
Merge pull request #8126 from lioncash/todo
Core/GCMemcard: Remove obsolete TODO
2019-05-27 19:04:06 +02:00
Léo Lam 525c65dd19
Merge pull request #8125 from lioncash/verify
DiscIO/VolumeVerifier: Make use of unused variable (+ minor other changes)
2019-05-27 19:03:13 +02:00
Lioncash 41cda6fe6d UICommon/ResourcePack: Use ScopeGuards to manage closing files
Makes it way harder to introduce resource leaks, and plugs the existing
resource leaks in the constructor and Install() where the file wouldn't
be closed in some error cases.
2019-05-27 13:02:04 -04:00
Lioncash 157a305507 UICommon/ResourcePack: Deduplicate string construction
A few cases duplicate the string patch creation, which is kind of
wasteful. We can just construct the string once.
2019-05-27 12:45:23 -04:00
Lioncash a22cc615a9 UICommon/ResourcePack: Remove unnecessary resizes
We can simply construct the containers with the desired size in these
cases.
2019-05-27 12:37:46 -04:00
Lioncash 57701cd988 UICommon/ResourcePack: Make TEXTURE_PATH a regular array
Same behavior, only it doesn't unnecessarily store a pointer in the
executable. While we're at it, make it constexpr and move it into the
namespace.
2019-05-27 12:33:50 -04:00
Lioncash b2b5b01eda Core/GCMemcard: Remove obsolete TODO
Now that we assume C++17, the in-file definition of the std::array can
be removed. This is all that's necessary, as constexpr used on a static
member variable implies inline (and so, automatically has C++17's static
inline behavior).
2019-05-27 11:48:38 -04:00
Lioncash d220e33862 DiscIO/VolumeVerifier: Make no-argument overload of GetBiggestUsedOffset() const
The overload taking a partition is already a const member function, so
this one can be turned into one as well.
2019-05-27 10:40:41 -04:00
Lioncash bf6948c1d4 DiscIO/VolumeVerifier: Use structured bindings where applicable
Allows providing better names than "first" or "second".
2019-05-27 10:40:38 -04:00
Lioncash fa57396e97 DiscIO/VolumeVerifier: In-class initialize members where applicable
Removes redundant initializers from the constructor and provides
initializers for all members that don't already have one for consistency
(and deterministic initial state).
2019-05-27 10:40:17 -04:00
Lioncash 52eb2d0d82 DiscIO/VolumeVerifier: Default destructor within the cpp file
Given the volume verifier has quite a few non-trivial object within it,
it's best to default the destructor within the cpp file to prevent
inlining complex destruction logic elsewhere, while also making it nicer
if a forward-declared type is ever used in a member variable.
2019-05-27 10:19:51 -04:00
Lioncash 0ccaa2b5d6 DiscIO/VolumeVerifier: Take std::string by value in AddProblem()
This allows both std::moving into the function and moving the parameter
from within the function, potentially avoiding an unnecessary copy.
2019-05-27 10:17:11 -04:00
Lioncash a1f77fd14b DiscIO/VolumeVerifier: Make use of unused variable in CheckMisc()
This variable wasn't being utilized when comments indicate that it
probably should be.
2019-05-27 10:09:55 -04:00
Lioncash ab2adfb0a7 Common/HttpRequest: Simplify cURL initialization
std::call_once is guaranteed to execute the given callable object
exactly once. This guarantee holds even if the function is called
concurrently from several threads.

Given that, we can replace the mutex and boolean flag with
std::call_once and a std::once_flag to perform the same behavior.
2019-05-27 09:46:57 -04:00
Lioncash b15f595130 Common/HttpRequest: Avoid unnecessary copies in loop in Fetch()
Previously, every entry pair within the map would be copied. The reason
for this is subtle.

A std::map's internal entry type is defined as:

std::pair<const Key, Value>

but the loop was declaring it as:

std::pair<Key, Value>

These two types aren't synonymous with one another and so the compiler
is required to always perform a copy.

Using structured bindings avoids this (as would plain auto or correcting
the explicit type), while also allowing the use of more appropriate
names compared to first and second.
2019-05-27 09:36:31 -04:00
Lioncash 8dc8cf8019 Common/HttpRequest: std::move callback in constructor
std::function is allowed to heap allocate in order to hold any necessary
bound data in order to execute properly (e.g. lambdas with captures), so
this avoids unnecessary reallocating.
2019-05-27 09:26:28 -04:00
Pokechu22 69d9d9f87a Also free when initialization fails, and move to end 2019-05-26 19:59:29 -07:00
Pokechu22 19fb3bb4fe DX11: Fix access violation on closing dolphin 2019-05-26 15:01:05 -07:00
Léo Lam f92c17e76f
Merge pull request #7799 from Tilka/mapping
DolphinQt/Mapping: red = error, don't flash
2019-05-26 18:10:06 +02:00
Tillmann Karras 2195ef30f3 DolphinQt/Mapping: red = error, don't flash 2019-05-26 17:59:30 +02:00
Roland Munsil 4ce7079098 CheatsManager: Improve performance of searching & add input validation
The previous implementation of cheat search would reconvert the input
string for every single memory value. Now we do it once and construct
a comparison lambda which we pass to the search code.

In addition, I also added input validation. So, for example, if you've
selected Decimal input and you try to compare against "FF",
it won't search and will instead let the user know they've entered an
invalid value. Similar logic for if you enter "1.2" in a search for
bytes. Before, it would just use 0 if it failed to convert the value.
2019-05-26 17:32:48 +02:00
MerryMage f6afce781f Jit64AsmCommon: Use PEXT in GenConvertDoubleToSingle 2019-05-25 23:07:50 +01:00
MerryMage 12314577c1 Jit64AsmCommon: Make ConvertDoubleToSingle use RSCRATCH as output 2019-05-25 23:07:50 +01:00
booto c4799e5977 Jit64: Make DoubleToSingle a common asm routine 2019-05-25 23:07:50 +01:00
Admiral H. Curtiss 15abb1c92d GCMemcardDirectory: Improve logic for which files are loaded into the virtual memory card.
- Files for the current game are now guaranteed to be loaded, space and validity permitting.
- Avoid showing PanicAlerts for every problem encountered, most of them aren't really important enough and will probably just annoy the user.
- And for the only error the user will definitely care about, when the save of the game they're trying to play fails to load, show an imgui message instead.
2019-05-25 21:51:36 +02:00
Admiral H. Curtiss 5af05f6714 GCMemcard/GCIFile: Implement LoadHeader(). 2019-05-25 21:49:09 +02:00
Admiral H. Curtiss 884af05589 GCMemcardDirectory: Move GCIFile class to its own file. 2019-05-25 21:49:09 +02:00
8times9 00855552e9 Qt/MenuBar: Reorder Tools menu 2019-05-25 20:22:52 +02:00
Léo Lam edf988b465
Merge pull request #8019 from AdmiralCurtiss/gcmemcard-header-cleanup
GCMemcard: A little cleanup.
2019-05-25 19:20:43 +02:00
Admiral H. Curtiss e390fd0f4e GCMemcard: Remove unused ability of ImportGci() to write a GCI file to disk. 2019-05-25 17:58:05 +02:00
Admiral H. Curtiss 018572018e GCMemcard: Dismantle the global return value enum into a few function specific enum classes. 2019-05-25 17:58:05 +02:00
Admiral H. Curtiss d09303683c GCMemcard: Convert a few enums into constexprs. 2019-05-25 17:58:05 +02:00
Admiral H. Curtiss cbc5acb8cd GCMemcard: Get rid of stray signed length in ImportGciInternal(). 2019-05-25 17:58:05 +02:00
Admiral H. Curtiss 2d38364410 GCMemcard: Remove memsets that don't do anything in GCMemcard::Format(). 2019-05-25 17:58:05 +02:00
Admiral H. Curtiss 88a0773309 GCMemcard: Rewrite checksum calculation without undefined behavior. 2019-05-25 17:58:05 +02:00
Admiral H. Curtiss fcd75841ca GCMemcard: Rewrite Header::CalculateSerial() without undefined behavior. 2019-05-25 17:58:05 +02:00
Léo Lam 5fb56505b2
Merge pull request #8109 from leoetlino/ios-usb-fixes
IOS: USB fixes
2019-05-24 22:03:46 +02:00
Léo Lam 6dd0fe21f2 IOS/USB: Claim all interfaces ahead-of-time
To avoid having to claim/release interfaces all the time, and having to
trigger interface changes from several places, all interfaces are now
claimed ahead of time.

This commit also makes us avoid changing the active interface when it's
not necessary.

Changing the active interface has side effects such as resetting the
active alternate setting -- which is extremely undesirable because it
would require the emulated software to change the alternate setting
again, which isn't supposed to be necessary at all.

This fixes Your Shape, which submits isochronous transfers on an
endpoint that only exists in alt setting 6 right after submitting
control transfers (which would have reset to alt setting 0 prior to
this fix).
2019-05-24 20:47:46 +02:00
8times9 aeb02d83db Qt/InterfacePane: Move "Keep on Window on Top" to Render Window section 2019-05-24 13:18:49 -05:00
Léo Lam e07b514b62
Merge pull request #8115 from booto/powerpc_pvr
PowerPC: Add Broadway's PVR (retail Wii)
2019-05-24 14:51:06 +02:00
Léo Lam 9373bc3aa9
Merge pull request #8102 from dreamsyntax/debug-mousefix
Qt/Debugger CodeWidget navigation unification
2019-05-24 14:49:05 +02:00
dreamsyntax e06a62d9d1 Qt: Fix CodeWidget navigation
Changed itemSelectionChanged and itemClicked signal to itemPressed in CodeWidget.
Holding mouse down and moving will only travel up/down the stack one time.
This fixes the common occurrence of unintentionally traveling deeper down the stack or higher up the callstack than intended.
2019-05-24 14:39:15 +02:00
Léo Lam 6eb7c525b2
Merge pull request #7801 from GerbilSoft/feature/Discord-PPCTitleChanged
Update Discord rich presence when the PPC title changes
2019-05-24 14:30:52 +02:00
David Korth 8417c78b7a Update Discord rich presence when the title changes
This allows us to update the rich presence description if a channel
is launched from the Wii Menu. It also handles other PPC title
launches, e.g. Smash Bros. Masterpieces.

Host.h: Added Host_TitleChanged().

DolphinNoGUI/MainNoGUI.cpp: Implemented Host_TitleChanged().
DolphinQt/Host.cpp: Implemented Host_TitleChanged().

Android/jni/MainAndroid.cpp: Stubbed Host_TitleChanged().
DSPTool/StubHost.cpp: Stubbed Host_TitleChanged().
UnitTests/StubHost.cpp: Stubbed Host_TitleChanged().
2019-05-24 14:12:48 +02:00
booto 27cb407ecf PowerPC: Add Broadway's PVR (retail Wii) 2019-05-23 19:56:41 -04:00
Léo Lam 702344ba9c
Merge pull request #8105 from 8times9/render-window
Qt/InterfacePane: Rename "In-Game" to "Render Window"
2019-05-23 13:06:36 +02:00
Léo Lam 617747e905
Merge pull request #8113 from lioncash/ini-key
Common/IniFile: Simplify Set()
2019-05-23 12:15:30 +02:00
Léo Lam 67c2aa0701
Merge pull request #8114 from lioncash/ini-line
IniFile: Prevent potential out-of-bounds access in ParseLine()
2019-05-23 12:12:41 +02:00
Lioncash 2ae370fc37 IniFile: Prevent potential out-of-bounds access in ParseLine()
While current usages of ParseLine aren't problematic, this is still a
public function that can be used for other purposes. Essentially makes
the function handle potential external inputs a little nicer.
2019-05-22 21:09:11 -04:00
Lioncash 869acb96c6 Common/IniFile: Simplify Set()
We can just utilize map's insert_or_assign() function and check the
return value to determine whether or not we need to insert the key into
the keys_order vector.
2019-05-22 20:58:49 -04:00
Connor McLaughlin 68877c52d1
Merge pull request #8027 from MerryMage/MOVAPS
Jit64: Prefer MOVAPS where possible
2019-05-22 15:05:17 +10:00
booto 03d7fef5a6 ARAM: No ARAM backing DMA in wiimode 2019-05-21 22:23:42 -04:00
booto 70299f2505 ARAM: rework DMA
Changes include:
  * Take into account how different size settings interact
  * Do ARAM DMA transfers in chunks rather than all-at-once
2019-05-21 22:23:42 -04:00
booto 73c0a4ee81 DSP: Experiment with cleaning up ARAM accessor 2019-05-21 22:23:42 -04:00
Léo Lam 2b44e1b851 IOS/USB: Fix initial device scan
Even though libusb is supposed to be thread-safe, in practice
it's not (at least on Windows); getting a list of devices from two
different threads can result in libusb crashes. This is easily
fixed by waiting for the scan thread to complete scanning instead
of running the scan on the CPU thread.

This also fixes an issue that I had overlooked in the initial
implementation: IOS interfaces such as OH0 are sometimes opened
every frame, in which case we were doing a full device scan every
single frame on the CPU thread!
2019-05-21 19:07:30 +02:00
Léo Lam b274a054a9 IOS/VEN: Read cancel endpoint correctly
Fixes an embarrassing bug that made the implementation utterly useless.

This fixes Your Shape hanging on shutdown. The game was waiting for an
interrupt transfer to be cancelled, and Dolphin wasn't cancelling
transfers on the correct endpoint.
2019-05-21 19:07:30 +02:00
Léo Lam d7e23d71f8 IOS/VEN: Return -4 when no transfer was cancelled
Simple accuracy fix.
2019-05-21 19:07:30 +02:00
Léo Lam 4c6ef81291 IOS/USB: Verify that isochronous req buffer size is consistent
To catch possible bugs.
2019-05-21 19:07:30 +02:00
Léo Lam a6da38d75d IOS/USB: Fix TransferCommand length type
The total buffer size for isochronous transfers should be a u32,
not a u16. It is easy to hit the bug with devices such as cameras,
which require larger buffers.

This fixes Your Shape.

This also fixes the length type for bulk and interrupt transfers,
which should be u32 as that's what IOS supports. I'm not sure why
I made them u16... probably because OH0 uses u16 for most lengths...
2019-05-21 19:07:30 +02:00
Léo Lam 5226d6103a IOS/USB: Add debug logging for all transfers
This makes debugging USB issues easier.
2019-05-21 19:07:29 +02:00
Léo Lam 57fbf1cd6e
Merge pull request #8107 from lioncash/string
DolphinQt/AboutDialog: Remove unnecessary QStringLiteral
2019-05-21 18:44:37 +02:00
Lioncash 1d22e50899 Core/Boot/Boot: Amend use-after-move cases in GenerateFromFile()
In terms of order of operations, the move would occur first before the
construction of the relevant reader would occur. However, given the
local variable 'path' was declared const, this bug actually wouldn't
occur, as std::move on a const variable does nothing (in a non-mutable
context), resulting in a copy instead, masking this issue.

Given this is a bug waiting to happen, we correct the code.
2019-05-21 08:44:29 -04:00
Lioncash ae329b7b1b DolphinQt/AboutDialog: Remove unnecessary QStringLiteral
QStrings automatically initialize to an empty string by default, making
this unnecessary.
2019-05-21 07:13:14 -04:00
Léo Lam e2c769a9c5
Merge pull request #7992 from artemist/centering
ControllerEmu: Add support for setting the center of a ReshapableInput
2019-05-20 18:29:31 +02:00
Léo Lam d2c7a6f239
Merge pull request #8094 from leoetlino/log-type-names
Qt/LogConfigWidget: Show log type short names
2019-05-20 18:27:57 +02:00
Artemis Tosini 4bbbd02de7
ControllerEmu: Do not change center when closing window 2019-05-19 16:55:29 +00:00
8times9 ba3b59fd18 Qt/InterfacePane: Rename In-Game to Render Window 2019-05-18 16:01:38 -05:00
Artemis Tosini e5683988c0
ControllerEmu: Zero the center of a ReshapableInput when calibrating 2019-05-18 19:32:48 +00:00
Artemis Tosini 99cf9a57fc
Draw center when calibrating and remove constant
This adds the center to the calibration menu when it is nonzero.
It also refactors CENTER_COLOR to be a function, similar to other colors
after an earlier commit.
2019-05-18 18:36:28 +00:00
Artemis Tosini 49e46c8aff
ControllerEmu: Add support for setting the center of a ReshapableInput
This is useful in far out-of-calibration controllers, such as the
Switch Pro controller. This also adds support for configuring the center
in the Mapping widget.
2019-05-18 14:45:16 +00:00
Admiral H. Curtiss 6e04e4dd6a GCMemcard: DEntry: Move code out of header. 2019-05-18 15:44:38 +02:00
Admiral H. Curtiss 17da22a84f GCMemcard: GCMBlock: Move code out of header. 2019-05-18 15:44:38 +02:00
Admiral H. Curtiss e4094d9d2d GCMemcard: BlockAlloc: Move code out of header, fix naming conventions. 2019-05-18 15:44:38 +02:00
Admiral H. Curtiss 4b46f71b3c GCMemcard: Header: Move code out of header, fix naming conventions. 2019-05-18 15:44:38 +02:00
Admiral H. Curtiss 0052b313d6 GCMemcard: Directory: Move code out of header, add some boundary checks, fix naming conventions. 2019-05-18 15:44:38 +02:00
Léo Lam d3c4d278e2
Merge pull request #8077 from leoetlino/debugger-valign
Qt/Debugger: Fix register cell text vertical alignment
2019-05-17 20:17:52 +02:00
spycrab 481b7cd085 DolphinQt/CMake: Fix Gettext not getting run on Windows 2019-05-15 19:19:16 +02:00
spycrab bdd37c4dbc DolphinQt/CMake: Copy files as a post build step 2019-05-15 19:19:15 +02:00
spycrab ec734065db
Merge pull request #8087 from spycrab/cmake_win2019
Support CMake on Windows
2019-05-14 21:07:26 +02:00
Vincent Cunningham b35c58451a
Clear existing GCPad state 2019-05-14 03:33:29 -04:00
Connor McLaughlin 0ab41717a4
Merge pull request #8095 from leoetlino/audio-race
Fix a race condition when shutting down audio stream
2019-05-12 15:18:36 +10:00
Connor McLaughlin 707266aeed
Merge pull request #8069 from iwubcode/passive_support
VideoCommon: Implement passive stereoscopic 3D
2019-05-12 15:15:34 +10:00
spycrab ba83cec6fb Qt/CMake: Support MSVC w/ external CMake 2019-05-12 00:44:02 +02:00
spycrab c8795f799e Core/CMake: Silence some warnings 2019-05-12 00:44:02 +02:00
spycrab 1121a04718 DolphinQt/CMake: Silence some warnings 2019-05-12 00:44:01 +02:00
spycrab 199c0943a4 DolphinQt/CMake: Building on Windows 2019-05-12 00:05:10 +02:00
spycrab 6cef70c182 VideoBackends/D3D: Fix CMakeLists.txt 2019-05-12 00:05:09 +02:00
spycrab b5160ec685 Common/CMake: Fix Windows build 2019-05-12 00:05:08 +02:00
TryTwo 86d1e6cd7e Qt/Debugger: Improve Code View
* Use font based sizing for row height. Fits more rows on screen.
* Adds whitespace for better formatting and minimum column width.
  Helps prevent frequent resizing while scrolling.
2019-05-11 17:48:49 +02:00
Léo Lam 7c46497f04 Fix a race condition when shutting down audio stream
The main EmuThread (in Core) is responsible for both initialising the
audio stream and shutting it down properly.

When the core is shutting down (when state is State::PowerDown), it is
possible that the CPU or CPU-GPU thread and the UI thread will both
try to stop the audio stream at the same time, which is an issue
because some audio backends such as cubeb are not thread-safe.

This commit prevents the race from ever happening in the first place
by removing the call to AudioCommon::SetSoundStreamRunning from
CPU::RunAdjacentSystems, which is actually completely unnecessary when
shutting down because Core::EmuThread is going to stop the stream and
perform more cleanup anyway.

Should fix https://bugs.dolphin-emu.org/issues/11722
2019-05-11 16:36:42 +02:00
Léo Lam 453c1d4170 Qt/LogConfigWidget: Show log type short names
Makes it easier for users to determine which option they need to
enable/disable as log messages only show the short name.
2019-05-11 16:05:22 +02:00
Miksel12 ee8226cc1b Set Cubeb as default on Windows
Cubeb and Xaudio2 are identical in features while Cubeb has lower
latency and is still actively being worked on.
2019-05-11 14:22:03 +02:00
Léo Lam 2f89a50318
Merge pull request #7778 from jordan-woyak/wheel-accel-brake
SI/GCSteeringWheel: Allow simultaneous use of accelerator and brake.
2019-05-11 12:24:19 +02:00
Léo Lam 57743637de
Merge pull request #8088 from Pokechu22/modal-control-mapping
Allow interacting with the render window while configuring controllers
2019-05-11 10:45:28 +02:00
Léo Lam e35ccd5a9a
Merge pull request #8091 from leoetlino/traversal-chrono
TraversalServer: use C++ <chrono> instead of gettimeofday
2019-05-11 10:44:49 +02:00
Anthony 3ab06dcd02
Merge pull request #8016 from jordan-woyak/emu-wm-ir-rename
WiimoteEmu/DolphinQt: Rename "IR" to "Point" and eliminate redundant Forward/Backward actions.
2019-05-10 19:16:40 -07:00
Anthony 46561cc242
Merge pull request #8092 from leoetlino/double-switcheroo
Core/AddressSpace & Qt/Debugger: Fix parameter order mixup
2019-05-10 19:11:01 -07:00
Anthony e66d25312e
Merge pull request #8090 from stenzek/video-buffer-reset
CommandProcessor: Don't reset the video buffer when FIFO distance is changed
2019-05-10 19:10:39 -07:00
Léo Lam e66547d6e5 Qt: Fix AddressSpace::WriteXXX parameter order mixup 2019-05-11 00:16:27 +02:00
Léo Lam d00711b34f AddressSpace: Fix PowerPC::HostWrite_XXX parameter order mixup 2019-05-11 00:15:15 +02:00
Jordan Woyak f74f49383c SI/GCSteeringWheel: Allow simultaneous use of accelerator and brake. 2019-05-10 17:11:43 -05:00
Michael M 916a97b869 TraversalServer: use C++ <chrono> instead of gettimeofday 2019-05-10 21:33:26 +02:00
Pokechu22 7c80fcde53 Allow interacting with the render window while configuring controllers
WindowModal allows alt+tabing to the render window, but prohibits interaction
with parent windows (controller settings window and the main dolphin window).
2019-05-10 11:27:36 -07:00
Léo Lam e7bc86881d
Merge pull request #8056 from JosJuice/more-enums-to-constexpr
Turn more enum constants into constexpr
2019-05-10 18:52:52 +02:00
Stenzek 3e29fdb4a7 CommandProcessor: Don't reset the video buffer when FIFO distance is changed
This prevents partially-processed commands from being lost when switching buffers.
2019-05-11 00:31:37 +10:00
Léo Lam 672e8d78c6
Merge pull request #7994 from faxx1080/qt_adddebuglog
DolphinQt: Add debug log option in GUI for debug builds
2019-05-10 15:33:33 +02:00
JosJuice 8e2277e1f2 Turn more enum constants into constexpr
https://bugs.dolphin-emu.org/issues/11692#note-7
2019-05-10 15:04:16 +02:00
Léo Lam 123bbbca2c
Merge pull request #8073 from vladfi1/re-frame-mw
Bring back MemoryWatcher, but without CoreTiming
2019-05-10 14:55:27 +02:00
weihuoya e98f43d2af bbox minor fx 2019-05-09 17:30:17 +08:00
Jordan Woyak 374585f128 WiimoteEmu/DolphinQt: Rename "IR" to "Point" and eliminate redundant Forward/Backward mappings. 2019-05-08 20:27:41 -05:00
spycrab c7dcba1c5f WinUpdater: Add CMakeLists.txt 2019-05-08 23:59:04 +02:00
spycrab f1fae37a81 DolphinQt/CMake: Don't build SignalDaemon on Windows 2019-05-08 21:10:41 +02:00
spycrab 967252dded IOS/FS/Filesystem: Work around macro problem 2019-05-08 21:06:17 +02:00
spycrab 12a26453e9 InputCommon/ControlGroup.h: Add missing include 2019-05-08 21:03:11 +02:00
spycrab 7eaece8814 InputCommon/Device.cpp: Add missing include 2019-05-08 21:02:26 +02:00
spycrab 98d808ab71 InputCommon/DInput.h: Add missing include 2019-05-08 21:01:46 +02:00
spycrab 5625baa32c UICommon/VideoUtils.cpp: Add missing include 2019-05-08 21:00:23 +02:00
spycrab 35f7abfe76 VideoBackends/D3DCommon: Fix linking against self 2019-05-08 20:59:15 +02:00
Léo Lam 1030dec340 DolphinQt: Use LogTypes::LOG_LEVELS instead of magic numbers
Also gets rid of two unnecessary casts.
2019-05-08 14:54:30 +02:00
Frank 57c64e57ef DolphinQt: Add debug log option in GUI for debug builds 2019-05-08 14:47:34 +02:00
Vlad Firoiu 239af3cdf9 Step MemoryWatcher at end of each video frame. 2019-05-08 11:20:59 +01:00
Léo Lam 6607d9512f
Merge pull request #8081 from jordan-woyak/structured-binding
DolphinQt: Use a structured binding.
2019-05-08 10:37:15 +02:00
Jordan Woyak 0de6b5f7fa WiimoteEmu: Implement "Drawsome" tablet. 2019-05-07 18:07:24 -05:00
JosJuice 91f5d577cc
Merge pull request #8084 from leoetlino/wiisave-sign
WiiSave: Fix save signing
2019-05-07 14:43:50 +02:00
Léo Lam 2740ff9a9d WiiSave: Fix save signing
The system menu is passing the SHA1 hash of the save data to ES
to sign, not the save data itself.

Fixes save import in the System Menu for saves that were exported
by Dolphin.
2019-05-07 01:09:48 +02:00
Jordan Woyak f055d37346 WiimoteEmu: Add game quirk report for reading of EXT/IR input directly, which will fail with TAS/NetPlay. 2019-05-06 15:36:05 -05:00
Jordan Woyak 6ebd35d511 DolphinQt: Use a structured binding. 2019-05-06 15:33:57 -05:00
Techjar ff972e3673 Reformat repo to clang-format 7.0 rules 2019-05-06 18:48:04 +00:00
Vlad Firoiu f4d950f4e2 Revert "Core: Remove MemoryWatcher"
This reverts commit 0c02e77eee.
2019-05-05 21:43:45 +01:00
JosJuice bb1ed46753 Use [[fallthrough]] in DiscExtractor
This was missed in PR 6273 because the fallthrough was added to
DiscExtractor after that PR was created.
2019-05-05 10:35:45 +02:00
Léo Lam db159ec8bf Qt/Debugger: Vertically align text in register cells
Looks better with the text vertically aligned.
2019-05-05 10:30:22 +02:00
iwubcode c513bb5309 VideoCommon: Implement passive stereoscopic 3D 2019-05-04 22:58:00 -05:00
Léo Lam ab9ece9bca Replace MathUtil::Clamp with std::clamp 2019-05-04 23:12:17 +02:00
Léo Lam 6f84984b7b Use attribute [[fallthrough]] 2019-05-04 23:04:18 +02:00
Léo Lam cb168f22d6 Replace custom UNUSED macro with [[maybe_unused]] 2019-05-04 23:04:18 +02:00
Léo Lam 04c8201c32 Enable C++17
All supported platforms now have easy access to a compiler with C++17
support.

C++17 potentially allows for some nice cleanups and removes the need
for standard library backports (optional/variant).

See discussion at https://dolp.in/pr6264#discussion_r158134178
2019-05-04 23:04:18 +02:00
Léo Lam 99a4ca8de7
Merge pull request #7839 from ShFil119/impr/redundant
Remove redundant initialization
2019-05-04 22:50:51 +02:00
Léo Lam afa46aaf43
Merge pull request #7887 from lioncash/hid
DolphinQt/Debugger/RegisterColumn: Add HID registers to the register pane
2019-05-04 22:33:45 +02:00
Léo Lam 623b37d928
Merge pull request #8053 from jordan-woyak/profile-dropdown-fix
DolphinQt: Profile combobox fixes.
2019-05-04 21:37:06 +02:00
Connor McLaughlin 184f334158
Merge pull request #8074 from Qyriad/fixes/set-user-dir-properly
UICommon: Properly set user dir if ./user is a file (not a directory)
2019-05-04 16:15:00 +10:00
Techjar 1dd8263375 Qt/NetPlayDialog: Fix checksum menu being visible for everyone
The wrong function was used to attempt to hide the menu. Non-hosts will
segfault upon trying to use it as they don't have a server instance.
2019-05-04 01:54:57 -04:00
Mikaela Szekely 8fe7e271f3
UICommon: Properly set user dir if ./user is a file (not a directory) 2019-05-03 23:30:50 -06:00
Jordan Woyak 6784225573 DolphinQt: Profile combobox fixes. 2019-05-03 16:29:22 -05:00
Léo Lam 159fa3ec36
Merge pull request #8057 from jordan-woyak/emu-tatacon
WiimoteEmu: Implement TaTaCon extension.
2019-05-03 11:52:39 +02:00
Léo Lam 6c7aeb3ffb
Merge pull request #8064 from JosJuice/notify-host-symbols-clear
Call Host_NotifyMapLoaded when clearing g_symbolDB
2019-05-03 11:47:26 +02:00
booto 2ff0486335 Debugger/Memory: Add support for address spaces
Different address spaces can be chosen in the memory view panel.
 * Effective (or virtual): Probably the view people mostly want. Address
   translation goes through MMU.
 * Auxiliary: ARAM address space. Does not display anything in Wii mode.
 * Physical: Physical address space. Only supports mem1 and mem2 (wii
   mode) so far.
2019-05-02 21:14:30 -04:00
Jordan Woyak 27043c1dac WiimoteEmu: Implement TaTaCon extension. 2019-05-02 19:35:46 -05:00
Léo Lam 3b16d2261a
Merge pull request #8065 from jordan-woyak/wm-ext-names
WiimoteEmu/DolphinQt: Better extension display names.
2019-05-02 13:14:17 +02:00
Jordan Woyak 77bda63627 DolphinQt: Don't refresh devices on open of mapping UI. 2019-05-01 19:30:02 -05:00
Jordan Woyak 99f537d499 WiimoteEmu/DolphinQt: Better extension display names. 2019-05-01 17:25:48 -05:00
Léo Lam 98b670dd29
Merge pull request #7966 from Techjar/fix-netplay-full-wii-save
Core/WiiRoot: Fix NetPlay full Wii save sync not copying all the saves back to main NAND
2019-05-01 19:29:38 +02:00
Léo Lam f4d7b537cc
Merge pull request #7958 from Craftyawesome/cpu-emulation-order
Re-order cpu emulation options from fastest to slowest
2019-05-01 17:56:19 +02:00
JosJuice 8fd6f8f6e9 Call Host_NotifyMapLoaded when clearing g_symbolDB
Otherwise DolphinQt will have a stale symbol list and
you can get nullptr dereferences when trying to use it.
2019-05-01 17:48:27 +02:00
Léo Lam bec85a0962
Merge pull request #8013 from JosJuice/titledatabase-japanese-gc
Show Japanese GC games in Japanese when using TitleDatabase
2019-05-01 17:37:31 +02:00
Léo Lam ef88dd73b3
Merge pull request #8014 from JosJuice/getuniqueidentifier-language-independent
Make GameFile::GetUniqueIdentifier independent of language setting
2019-05-01 17:34:01 +02:00
z0z0z 5bacb2e4c6 Disable Vulkan overrides for RADV driver 2019-05-01 07:59:54 -04:00
Léo Lam 5ce8d97c68
Merge pull request #7163 from lioncash/pointer
BTEmu: Get rid of a few pointer casts
2019-05-01 13:13:58 +02:00
Jordan Woyak 0c81af74e1 WiimoteEmu: Drum extension accuracy improvements. 2019-04-30 20:14:12 -05:00
JMC47 e39aa5b026
Merge pull request #7880 from jordan-woyak/udraw-tablet-emu
WiimoteEmu: Implement 3rd-Party extension encryption and uDraw GameTablet.
2019-04-30 19:45:33 -04:00
Jordan Woyak 2babbd76d0 WiimoteEmu: Implement uDraw GameTablet. 2019-04-30 18:36:37 -05:00
Jordan Woyak 57a23cc4a0 InputCommon: Remove unused "sign" macro. 2019-04-29 18:28:56 -05:00
Filip Gawin c110ffcdaa Remove redundant initialization 2019-04-30 01:22:24 +02:00
JMC47 360f2b4a2f
Merge pull request #8042 from jordan-woyak/mapping-ui-clear-fix
DolphinQt: Fix "Default" and "Clear" buttons not updating the displayed extension.
2019-04-29 06:14:27 -04:00
JMC47 0f483e7d61
Merge pull request #8050 from Techjar/memorywatcher-determinism
Core: Remove MemoryWatcher
2019-04-28 22:36:11 -04:00
spycrab 6e6f833bb3
Merge pull request #8044 from jordan-woyak/indicators-on-top
DolphinQt: Move mapping indicators to top of UI.
2019-04-29 02:48:23 +02:00
Connor McLaughlin aee1551a55
Merge pull request #8043 from jordan-woyak/mapping-ui-event-block-fix
DolphinQt: Fix mapping of space, return, and mouse-clicks.
2019-04-28 23:49:23 +10:00
Connor McLaughlin 1b1662773e
Merge pull request #8048 from stenzek/vulkan-negative-scissor-rect
Vulkan: Don't set a negative offset in scissor rect
2019-04-28 23:37:51 +10:00
Jordan Woyak 4e39d833ae DolphinQt: Fix mapping of space, return, and mouse-clicks from immediately re-activating detection. 2019-04-28 08:34:47 -05:00
Stenzek 32359bf2bb Renderer: Adjust target rectangle in the base class 2019-04-28 23:33:24 +10:00
Stenzek 3c64f0c616 Renderer: Adjust source rectangle when crop would draw off screen
This prevents us from requiring an oversized and/or negative viewport by
shrinking the source rectangle instead.
2019-04-28 23:31:57 +10:00
Connor McLaughlin d2d8d7ce90
Merge pull request #8051 from JosJuice/efb-constexpr
Turn EFB_WIDTH/EFB_HEIGHT into constexpr
2019-04-28 20:37:25 +10:00
Techjar 0c02e77eee Core: Remove MemoryWatcher
MemoryWatcher only works on Linux and affects emulation determinism due
to scheduling additional events, which causes NetPlay to desync.
Considering that this interface is a rather specialized use case, the
communication with it is kinda crappy *and* it's affecting emulation, I
think it's best to just axe it and come up with a better implementation
of the functionality.
2019-04-28 06:22:27 -04:00
JosJuice ced2306fc5 Turn EFB_WIDTH/EFB_HEIGHT into constexpr
https://bugs.dolphin-emu.org/issues/11692#note-5

Also change const into constexpr while we're at it.
2019-04-28 11:50:17 +02:00
Connor McLaughlin e17bb8cfdf
Merge pull request #8025 from chargeflux/PathPaneAddBtn
Qt: Fix add button not releasing
2019-04-28 17:15:42 +10:00
Connor McLaughlin f7199397a0
Merge pull request #8047 from stenzek/d3d-feature-level-10
D3D11: Fix Dolphin crashing on feature level 10.0 devices
2019-04-28 17:07:37 +10:00
Pokechu22 0cb27cc42c Fix the screen going black on pause after changing windows
More info: https://zeduckmaster.frama.io/2016/how-to-create-a-custom-rendering-in-a-qt5-widget/
2019-04-27 23:26:44 -07:00
Stenzek 53af27b133 FramebufferManager: Fix invalid transitions for 1xIR in EFB cache 2019-04-28 16:13:49 +10:00
Stenzek 5399995c61 Vulkan: Don't set a negative offset in scissor rect
The spec/validation layers say this is invalid.
2019-04-28 16:01:09 +10:00
Stenzek 025767c929 D3D: Set optional features after creating the device
Fixes feature level 10.0 devices crashing during runtime.
2019-04-28 15:26:49 +10:00
Stenzek 51154d6907 FramebufferShaderGen: Don't emit SV_SampleIndex when not using SSAA 2019-04-28 15:26:21 +10:00
Stenzek d5b3595314 TextureCache: Fix incorrect format string in GetXFBTexture() 2019-04-28 14:32:37 +10:00
spycrab 906ccdb1b4
Merge pull request #8030 from spycrab/qt_patch_preview
Qt/Debugger: Implement patch instruction preview
2019-04-28 00:32:36 +02:00
spycrab f6e73a0aec Qt/Debugger: Implement patch instruction preview 2019-04-27 23:31:19 +02:00
Jordan Woyak af8b14f452 DolphinQt: Move mapping indicators to top of UI. 2019-04-27 14:23:29 -05:00
Jordan Woyak 74a997da65 DolphinQt: Fix "Default" and "Clear" buttons not updating the displayed extension. 2019-04-27 10:51:57 -05:00
Mat M 687907e44d
Merge pull request #8035 from jordan-woyak/si-enum-constexpr
SI: Replace some unnamed enums with constexpr.
2019-04-27 08:40:41 -04:00
Mat M 621ede1268
Merge pull request #8040 from phire/fix_unintilized_xer
Fix uninitialized powerpc.xer_* variables
2019-04-27 08:36:09 -04:00
Jordan Woyak 9f0dc402f4 InputCommon: Make sure setting values are initialized in case they are used before config load. 2019-04-27 07:01:24 -05:00
JosJuice 3bef561e5d Make GameFile::GetUniqueIdentifier independent of language setting
My bad.

We need this in the situation where two users are using different
languages and the game has a different name in each language.
2019-04-27 14:00:58 +02:00
MerryMage e06111e86f EmuCodeBlock: Prefer MOVAPS to MOVSD in ConvertDoubleToSingle
* The high half of the register is immediately masked so the value in it is irrelevant.
* MOVSD produces an unnecessary dependency on the high half of regOp.
* MOVAPS is implemented as a register rename on modern microarchitectures.
2019-04-27 12:57:03 +01:00
MerryMage 1baa8ee970 x64Emitter: Prefer MOVAPS to MOVSD
* The high half of regOp is immediately overwritten so the value in it is irrelevant.
* MOVSD produces an unnecessary dependency on the high half of regOp.
* MOVAPS is implemented as a register rename on modern microarchitectures.
2019-04-27 12:56:05 +01:00
MerryMage 2d4dd8cdc1 x64Emitter: Prefer MOVAPS to MOVAPD
There is no reason to use MOVAPD over MOVAPS, for two reasons:
* There has never been a microarchitecture with separate single and double domains.
* MOVAPD is one byte longer than MOVAPS
2019-04-27 12:54:43 +01:00
Scott Mansell 033f1d725f Fix un-initialized powerpc.xer_* variables 2019-04-27 15:38:02 +12:00
Techjar 20530c2a96 Core/WiiRoot: Fix NetPlay full Wii save sync not copying all the saves back to main NAND 2019-04-26 23:33:35 -04:00
Connor McLaughlin 664cfb2ca5
Merge pull request #7970 from Techjar/netplay-mii-sync
NetPlay: Synchronize Mii data
2019-04-27 13:26:55 +10:00
Connor McLaughlin b5c3542cb5
Merge pull request #8039 from iwubcode/monster_lab_fix
CommandProcessor: Don't reset gather pipe on write the high distance bit (fixes monster lab)
2019-04-27 13:26:29 +10:00
iwubcode c2abf092e9 VideoCommon: Do not reset the gather pipe (WPAR buffer) as this does not reflect what actually happens on real hardware. On hardware, there's no way for the GPU to signal to reset the WPAR buffer. Instead, the WPAR buffer will be reset automatically upon receiving 32 bytes or when spr[WPAR] is written 2019-04-26 22:20:53 -05:00
JMC47 664376dae1
Merge pull request #7861 from jordan-woyak/mplus-emu
WiimoteEmu: Emulated MotionPlus and improved emulated swing.
2019-04-26 05:50:18 -04:00
spycrab 057fa6c092
Merge pull request #8032 from spycrab/netplay_md5
Qt/NetPlayDialog: Move MD5 button into menubar
2019-04-26 03:19:41 +02:00
spycrab ea0846463f
Merge pull request #8031 from spycrab/qt_remove_iterative_input
Qt/Mapping: Remove iterative input
2019-04-24 14:03:17 +02:00
spycrab 8feacce783
Merge pull request #8028 from spycrab/issue_11690
Qt/NewPatchDialog: Fix crashes on entry removal
2019-04-24 02:49:09 +02:00
Jordan Woyak ba1b335118 WiimoteEmu: Improve emulated swing. 2019-04-23 19:02:41 -05:00
Jordan Woyak 4374600367 WiimoteEmu: Implement MotionPlus parameter y0 and other cleanups. 2019-04-23 18:38:00 -05:00
Jordan Woyak 59e1c83445 WiimoteEmu/MotionPlus: Build non-hardcoded calibration data and other cleanups. 2019-04-23 18:38:00 -05:00
Jordan Woyak 9554ece874 WiimoteEmu: MotionPlus is now working. 2019-04-23 18:38:00 -05:00
Jordan Woyak d97349af0d SI: Replace some unnamed enums with constexpr. 2019-04-23 16:25:09 -05:00
spycrab e97c61c196 Qt/NetPlayBrowser: Connect to session on double-click 2019-04-23 23:22:12 +02:00
spycrab 127b4e77ec
Merge pull request #8029 from spycrab/issue_11680
Qt/NetPlayBrowser: Prevent word wrap
2019-04-23 23:08:41 +02:00
spycrab 7f861f095a Qt/Mapping: Remove iterative input 2019-04-23 22:59:34 +02:00
spycrab 8e3d1200da
Merge pull request #7833 from chargeflux/CodeWidgetHiding-macOS
Debugger: Apply hiding logic earlier (macOS)
2019-04-23 22:40:17 +02:00
spycrab f7dcd191e3 Qt/NetPlayDialog: Move MD5 button into menubar 2019-04-23 22:37:22 +02:00
chargeflux 290275e8ea Debugger: Move hiding logic via setHidden() to before setFloating() 2019-04-23 16:20:42 -04:00
spycrab 0ef3eced78 Qt/NetPlayBrowser: Prevent word wrap 2019-04-23 18:55:40 +02:00
spycrab a6e7a90a4a Qt/NewPatchDialog: Fix crashes on entry removal 2019-04-23 18:46:38 +02:00
chargeflux cd5f42cee0 Qt: Fix add button not releasing 2019-04-22 20:32:01 -04:00
Markus Wick 2abe333ce9
Merge pull request #7287 from degasus/idle_skipping
Jit64 / JitArm64: Optimized idle skipping detection.
2019-04-22 23:08:03 +02:00
spycrab e575fa92d7
Merge pull request #8005 from JosJuice/issue-11679
DolphinQt: Fix verify tab hash box sizes on macOS
2019-04-22 14:39:56 +02:00
spycrab b4dfda0774
Merge pull request #8021 from spycrab/cm_overhaul
Qt/CheatManager: Fix a bunch of issues
2019-04-22 14:16:53 +02:00
spycrab a154c56815 Qt/CheatsManager: Use ActionReplay constants 2019-04-22 14:09:47 +02:00
Connor McLaughlin 59c0e51f5b
Merge pull request #8000 from stenzek/more-videocommon-cleanup
Additional cleanup/fixes from VideoCommon merge
2019-04-22 12:50:22 +10:00
Connor McLaughlin 93be178f28
Merge pull request #7857 from stenzek/opengl-stereo
OGL: Fix stereoscopy
2019-04-22 12:41:12 +10:00
spycrab fb841c75cb
Merge pull request #8022 from spycrab/issue_11676
Qt/GameConfigWidget: Show revision specific INIs
2019-04-21 21:38:56 +02:00
spycrab e2abda0c9b Qt/GameConfigWidget: Show revision specific INIs 2019-04-21 20:56:44 +02:00
spycrab 6c938cc070 Qt/VerifyWidget: Fix layout warnings 2019-04-21 20:28:55 +02:00
spycrab 4f7ff76801 Qt/CheatsManager: Fix locking defaulting to the value zero 2019-04-21 19:45:58 +02:00
spycrab 05eb91691c Qt/CheatsManager: Fix value setting 2019-04-21 17:34:31 +02:00
Connor McLaughlin 44d5a71e27
Merge pull request #7965 from jordan-woyak/condvar-fixes
Minor changes to usages of std::condition_variable.
2019-04-21 23:50:53 +10:00
spycrab 0b56d49d97 Qt/CheatsManager: Deduplicate code 2019-04-21 15:38:59 +02:00
Jordan Woyak a9ef110349 DolphinQt: Query mapping indicator colors using QPalette for better behavior with alternative themes. 2019-04-21 08:20:45 -05:00
spycrab a6ed1b644b Qt/CheatSearch: Fix locking being permanently disabled 2019-04-21 13:51:25 +02:00
Stenzek 356ebdf509 OGL: Set shared context state up to match main context
Has a better chance of avoiding recompiling if so.
2019-04-21 14:28:14 +10:00
Stenzek 6553cf8bb1 OGL: Only set GL_PROGRAM_POINT_SIZE on desktop GL
It is always enabled in GLES.
2019-04-21 14:28:14 +10:00
Stenzek f2a594fad5 OGL: Fix binding error on shutdown
This was occurring if the imgui vertex format was bound on shutdown,
which is destroyed before the vertex buffers
2019-04-21 14:28:14 +10:00
Stenzek 9577d0641b ShaderCache: Fix crash at shutdown on shared shader compilation fail 2019-04-21 14:28:14 +10:00
Stenzek 5c95dc61fc OGL: Store shader source in OGLShader
So it can be dumped with info log when linking fails.
2019-04-21 14:28:14 +10:00
Stenzek bbd1ae16db OGL: Remove unused ProgramShaderCache::CompileShader() 2019-04-21 14:28:14 +10:00
Stenzek f8c1ba409c Replace EFBRectangle/TargetRectangle with MathUtil::Rectangle 2019-04-21 14:28:14 +10:00
JMC47 6ea43235d5
Merge pull request #7841 from iwubcode/config-mgr-onion
Config: Move the 'Display' settings from ConfigManager to the layered config system
2019-04-21 00:01:47 -04:00
Connor McLaughlin ca55375d01
Merge pull request #8015 from jordan-woyak/dinput-cursor-optimize
ControllerInterface/DInput: Optimize cursor position updating.
2019-04-21 13:56:50 +10:00
Connor McLaughlin 5b4ebccf6b
Merge pull request #8012 from stenzek/bounding-box-shaders
PixelShaderGen: Don't emit bounding box shader code for old UIDs when disabled
2019-04-21 13:27:05 +10:00
Stenzek b09a0e1a60 TextureCache: Check for out-of-range partial copy rect after scaling 2019-04-21 12:54:32 +10:00
Stenzek 3791262d96 TextureCache: Use linear filtering on y-scaled and >1xIR VRAM copies 2019-04-21 12:41:15 +10:00
Stenzek 708bd3d9f7 TextureCache: Simplify XFB reconstruction
This also better handles in-memory interlaced XFB data placed by the CPU
by considering the stride from the VI.
2019-04-21 12:41:15 +10:00
Stenzek dbaba0062a TextureDecoder: Move XFB decoding to Common
This was previously missing for generic (which is used on ARM).
2019-04-21 12:41:15 +10:00
degasus 6ec4ade3b6 Interpreter: Drop idle skipping in interpreter.
And reimplement it in the cached interpreter based on the idle loop detection.
2019-04-20 20:52:39 +02:00
degasus 55abe1a085 Jit64: Refactor WriteIdleExit helper. 2019-04-20 20:52:39 +02:00
degasus b8b4b4a383 PowerPC: More idle loop detections. 2019-04-20 20:52:39 +02:00
degasus 55db7c7a05 Jit64: Optimized idle skipping detection. 2019-04-20 20:52:39 +02:00
Jordan Woyak 8c1310d1d1 ControllerInterface/DInput: Optimize cursor position updating. 2019-04-20 09:25:11 -05:00
Stenzek eddde3e6c8 ShaderGen: Use interface blocks when geometry shaders are supported
We don't use explicit locations in OpenGL currently, so this breaks
when we use alternative names in the geometry shaders.
2019-04-20 23:44:33 +10:00
Stenzek c6b45c5ca9 ShaderCache: Fix crash if pipeline from uid cache fails creation 2019-04-20 23:16:29 +10:00
Stenzek 96aa762d1e PixelShaderGen: Don't emit bounding box shader code for old UIDs when disabled
If bounding box is enabled when a UID cache is created, then later disabled,
we shouldn't emit the bounding box portion of the shader.

Fixes pipeline creation errors on D3D12 backend for this case.
2019-04-20 23:16:14 +10:00
JosJuice fbe7892bd2 ConfigManager: Remove TitleDatabase.h include
Made unnecessary by 8842a0f.
2019-04-20 12:30:46 +02:00
JosJuice e98f5fe665 Show Japanese GC games in Japanese when using TitleDatabase
Because the GC language setting cannot be set to Japanese, we
need a special condition for Japanese GC games. I accidentally
removed it in PR 7816, but here it is again in a new form.

We could do the same thing with Korean GC games if we want to
(which we couldn't do before PR 7816), but due to how spotty
GameTDB is with having Korean names for Korean GC releases,
things will be more consistent if we just use English for them.
2019-04-20 12:12:35 +02:00
Connor McLaughlin c26f53bf84
Merge pull request #7999 from stenzek/pipeline-cache-data
Implement pipeline data cache for OpenGL and D3D12
2019-04-20 12:56:02 +10:00
JosJuice f0323a59c3 DolphinQt: Fix verify tab hash box sizes on macOS
https://bugs.dolphin-emu.org/issues/11679
2019-04-19 19:15:04 +02:00
Jordan Woyak 779e618046 VideoCommon: Change free-look's middle-mouse action to roll the camera. 2019-04-17 05:10:11 -05:00
Jordan Woyak 1d024c8add Fix u8 string literal C++20 compile error. 2019-04-16 16:31:12 -05:00
Markus Wick f1620f25f4
Merge pull request #7981 from degasus/interpreter_psq_l
Interpreter: Fix psq_l with QUANTIZE_FLOAT.
2019-04-16 22:27:07 +02:00
Markus Wick dbfdb16fbb
Merge pull request #7990 from MerryMage/fprf
EmuCodeBlock: Correct zero handling in SetFPRF for SSE4.1
2019-04-16 22:13:05 +02:00
JMC47 80d21b8ffb
Merge pull request #8002 from JMC47/CursorSlowdown
Slow down relative input cursor
2019-04-15 20:43:31 -04:00
JMC47 f3aaf5deaa Reduce Relative Input Cursor Speed Dramatically
This makes it about 1/4th the speed which may be a bit slow, but should
work for most controllers.
2019-04-15 17:23:17 -04:00
Stenzek 00b83b4196 ShaderCache: Utilize pipeline cache data where possible 2019-04-16 00:39:43 +10:00
Stenzek 616ad378b7 OGL: Support returning pipeline cache data 2019-04-16 00:39:43 +10:00
Stenzek 5cef09e383 D3D12: Support returning pipeline cache data 2019-04-16 00:34:34 +10:00
Stenzek 61a656570e AbstractPipeline: Support returning "cache data"
"Cache data" can be used to assist a driver with creating pipelines by
using previously-compiled shader ISA.
2019-04-16 00:09:47 +10:00
JosJuice d7b5270348
Merge pull request #7988 from JosJuice/fix-wii-save-import
Fix importing Wii save files with sizes not divisible by 64
2019-04-14 17:17:00 +02:00
spycrab 0f8e5ab207
Merge pull request #7968 from Techjar/fix-netplay-browser-search-hang
Qt/NetPlayBrowser: Refresh session list asynchronously
2019-04-14 03:11:31 +02:00
JMC47 1cedbd5b82
Merge pull request #7923 from jordan-woyak/full-surface-rename
ControllerInterface: Rename full surface analog inputs.
2019-04-13 17:43:29 -04:00
JMC47 a891115ea3
Merge pull request #7952 from jordan-woyak/emu-shake-params
WiimoteEmu: Allow shake frequency and intensity to be configured.
2019-04-13 12:13:13 -04:00
Jordan Woyak be897b41a7 ControllerInterface: Rename full surface analog inputs to be more visually dissimilar from their underlying inputs. e.g. "Full Axis X+". 2019-04-13 08:45:19 -05:00
spycrab 241166a1a5
Merge pull request #7991 from spycrab/npi_retcode
UICommon/NetPlayIndex: Handle non 200 HTTP return codes
2019-04-13 15:24:10 +02:00
spycrab 336edbef1e UICommon/NetPlayIndex: Handle non 200 HTTP return codes 2019-04-13 12:58:23 +02:00
spycrab eddcb70b84 Common/HttpRequest: Add option to allow non 200 response codes 2019-04-13 12:58:23 +02:00
Techjar 6d01f34d78 Core/NetPlayClient: Reset GCAdapter device type in UpdateDevices
This will ensure an origin reset is triggered on next boot.
2019-04-13 06:32:45 -04:00
Jordan Woyak c89ddf8cba WiimoteEmu: Allow shake frequency and intensity to be configured. Other minor cleanups. 2019-04-12 16:50:59 -05:00
JosJuice 635fd8c22c
Merge pull request #7984 from JosJuice/root-path-savestate
IOS/FS: Don't savestate m_root_path
2019-04-12 22:37:21 +02:00
MerryMage e4d83a56a5 EmuCodeBlock: Correct zero handling in SetFPRF for SSE4.1 2019-04-12 20:03:42 +01:00
spycrab 2a1dee4dce
Merge pull request #7976 from spycrab/netplay_index_feedback
Qt/NetPlay: Show feedback for index adding
2019-04-12 14:21:42 +02:00
JosJuice 4f915760e8 Fix importing Wii save files with sizes not divisible by 64 2019-04-12 11:34:32 +02:00
Techjar c7c4196c38 Qt/NetPlayBrowser: Refresh session list asynchronously 2019-04-11 22:02:13 -04:00
spycrab f2e3f69d34
Merge pull request #7979 from Techjar/netplay-browser-possible-crash
UICommon/NetPlayIndex: Fix possible crash when Add is called again
2019-04-11 21:49:58 +02:00
spycrab 8b6bb39e82 Qt/NetPlay: Show feedback for index adding 2019-04-11 21:26:00 +02:00
spycrab b9d110ed66 WinUpdater: Restore original executable name 2019-04-11 20:21:50 +02:00
JosJuice 822acf9ab9 IOS/FS: Don't savestate m_root_path
The NAND root path can be different on different systems,
so we must not savestate it.
2019-04-11 18:50:15 +02:00
JosJuice d5ed3cbd88
Merge pull request #7922 from JosJuice/verify-disc
Add a Verify tab to game properties
2019-04-11 16:39:49 +02:00
spycrab 372b8552ce
Merge pull request #7974 from spycrab/winupdater
Move Updater to WinUpdater
2019-04-11 12:04:31 +02:00
degasus 399768c91b Interpreter: Fix psq_l with QUANTIZE_FLOAT.
psq_l with QUANTIZE_FLOAT does not use the FPU, so it does not trim the precision of the u32 input data.
We already have the helper ConvertToDouble for floating point u32->u64 convertion used in lfs, so let's use it here as well.
2019-04-11 10:12:59 +02:00
Markus Wick 849ede9d0a
Merge pull request #7639 from CrystalGamma/pr-quantize
PowerPC: Thread state through PS (de)quantize helpers
2019-04-11 10:11:08 +02:00
CrystalGamma e5c8b889ef PowerPC: Thread state through PS quantize helper 2019-04-11 10:03:36 +02:00
CrystalGamma e12cdbefa5 PowerPC: Thread state through PS dequantize helper 2019-04-11 10:03:36 +02:00
Techjar f1e06b89da UICommon/NetPlayIndex: Fix possible crash when Add is called again 2019-04-10 22:39:16 -04:00
Jordan Woyak a9a4b53072 WiimoteEmu: Fix Data Report 0x32. 2019-04-10 20:17:34 -05:00
Markus Wick d90d641ec7
Merge pull request #7889 from CrystalGamma/pr-floathelpers
PowerPC: Thread state through float helpers
2019-04-10 23:14:39 +02:00
Markus Wick 5a4700f589
Merge pull request #7638 from CrystalGamma/pr-addresshelpers
PowerPC: Thread state through the address helpers
2019-04-10 23:05:43 +02:00
spycrab d73987e466 Move Updater to WinUpdater 2019-04-10 10:46:49 +02:00
spycrab 1f6c67a6fb
Merge pull request #7969 from Techjar/fix-browser-radio-spacing
Qt/NetPlayBrowser: Fix radio button spacing
2019-04-10 08:11:42 +02:00
Techjar b8abfba20b Qt/NetPlayBrowser: Fix radio button spacing
The spacing was weird due to widgets in adjacent rows messing with the
column size, so we'll make those widgets span all the columns.
2019-04-09 19:41:58 -04:00
JMC47 e10a472134
Merge pull request #7936 from jordan-woyak/numeric-setting-cleanup
InputCommon: Clean up how numeric settings are handled.
2019-04-09 19:30:26 -04:00
JosJuice 8709b21ac3 VolumeVerifier: Verify WAD contents 2019-04-09 14:18:46 +02:00
JosJuice a469fb3150 VolumeVerifier: Check whether invalid blocks are unused 2019-04-09 14:18:46 +02:00
JosJuice eced9d7c7e VolumeVerifier: Calculate CRC32/MD5/SHA-1 2019-04-09 14:18:46 +02:00
JosJuice 4fd2d8e8c4 VolumeVerifier: Check hashes in Wii partitions 2019-04-09 14:18:45 +02:00
JosJuice 84cbd5150f Add a Verify tab to game properties 2019-04-09 14:18:41 +02:00
spycrab 0b8ac0a22f
Merge pull request #7971 from Techjar/go-away-golf-ui
Qt/NetPlayDialog: Don't create golf UI when host input authority is disabled
2019-04-09 13:14:54 +02:00
spycrab a06c7df927
Merge pull request #7954 from Techjar/netplay-disable-bba
Disable BBA in NetPlay
2019-04-09 13:13:05 +02:00
spycrab 627a1a90c1
Merge pull request #7938 from Techjar/netplay-pending-start-stall
NetPlay: Fix hosting being stuck if player leaves during pending start
2019-04-09 13:07:17 +02:00
spycrab 746849f891
Merge pull request #7964 from Techjar/fix-netplayindex-segfault
UICommon/NetPlayIndex: Fix random segfaults after quitting NetPlay
2019-04-09 12:45:58 +02:00
Techjar cd6c918973 Qt/NetPlayDialog: Don't create golf UI when host input authority is disabled 2019-04-08 07:09:20 -04:00
Techjar 1b8eda827b NetPlay: Synchronize Mii data
It's bundled with the Wii saves for simplicity, since it's quite small.
2019-04-08 07:06:21 -04:00
spycrab 75f1a5d0cc Qt/NetPlayBrowser: Various small fixes 2019-04-08 00:01:23 +02:00
Jordan Woyak 5efb717873 InputCommon: Clean up how numeric settings are handled. Add units of measure to UI. Eliminate hidden magic values of the IR cursor. 2019-04-07 09:32:49 -05:00
Techjar c90df946ba NetPlay: Add cancel button for chunked data transfers 2019-04-07 06:22:33 -04:00
Techjar 7870704087 NetPlay: Fix hosting being stuck if player leaves during pending start
The logic didn't account for the case where a player leaves, so the
host would be left in a dangling state where the UI is disabled but the
game won't start, requiring a full restart of Dolphin to fix.
2019-04-07 06:22:31 -04:00
Jordan Woyak d34a9afe04 Minor changes to usages of std::condition_variable. 2019-04-06 17:39:25 -05:00
Techjar dc552f2cbb UICommon/NetPlayIndex: Fix random segfaults after quitting NetPlay
We can't join a detached thread, so NetPlayIndex gets deleted before
the notification thread exits, creating a race condition. We switch to
using Common::Event because just sleeping leaves the UI hung on the
thread join for a few seconds.
2019-04-06 17:23:37 -04:00
JMC47 75e74315e6
Merge pull request #7689 from jordan-woyak/sdl-improve
ControllerInterface: SDL cleanups/fixes
2019-04-06 14:53:51 -04:00
spycrab ca5eac0c63 Common/HttpRequest: Fix EscapeComponent leaking memory 2019-04-06 13:27:49 +02:00
spycrab 23986d48f7
Merge pull request #7945 from spycrab/np_browser
Qt/NetPlay: Implement session/server browser
2019-04-06 12:36:29 +02:00
spycrab 094bf0d2ff Qt/NetPlay: Integrate NetPlayIndex 2019-04-06 12:27:30 +02:00
JMC47 a7ee00ae25
Merge pull request #7960 from Techjar/netplay-fix-segfault-on-exit
Qt/MainWindow: Fix segfault on exit while NetPlay is open
2019-04-05 11:48:07 -04:00
spycrab e44433c2f6
Merge pull request #7955 from Techjar/netplay-golf-mode
NetPlay golf mode
2019-04-05 17:25:23 +02:00
Techjar 6c393f9ff4 Add imgui golf mode overlay 2019-04-05 07:01:03 -04:00
Techjar 1a12876330 NetPlay: Implement golf mode
This is an extension of host input authority that allows switching the
host (who has zero latency) on the fly, at the further expense of
everyone else's latency. This is useful for turn-based games where the
latency of players not on their turn doesn't matter.

To become the so-called golfer, the player simply presses a hotkey.
When the host is the golfer, latency is identical to normal host input
authority.
2019-04-05 07:01:03 -04:00
Techjar ab6583b430 Qt/MainWindow: Fix segfault on exit while NetPlay is open 2019-04-05 03:12:25 -04:00
Craftyawesome 20cc4508f0 Re-order cpu emulation options from fastest to slowest
Based on https://bugs.dolphin-emu.org/issues/11658

Update arrays.xml
2019-04-04 10:51:12 -04:00
JosJuice bfde5b931e
Merge pull request #7956 from spycrab/fix_np_chat_escape
Qt/NetPlayDialog: Fix messages being html-escaped for NetPlay Chat
2019-04-03 18:50:33 +02:00
spycrab 923151e3e3
Merge pull request #7949 from spycrab/turbo_btn
Qt/TAS: Implement turbo mode
2019-04-03 18:43:11 +02:00
Techjar a318c55cec PixelShaderGen: Fix bounding box coordinates being offset by 1 pixel 2019-04-03 10:09:05 -04:00
JMC47 a2df9beb9f
Merge pull request #7924 from jordan-woyak/info-widget-fix
DolphinQt: Fix unused widgets in InfoWidget from being visible.
2019-04-02 19:59:44 -04:00
spycrab 628d72c67d Qt/NetPlayDialog: Fix messages being html-escaped for NetPlay Chat 2019-04-02 23:23:38 +02:00
CrystalGamma b00a7045aa PowerPC: Thread state through float helpers 2019-04-02 19:59:29 +02:00
CrystalGamma 95b06d183e PowerPC: Thread state through the address helpers 2019-04-02 19:52:59 +02:00
Techjar e2f1da5210 NetPlay: Move host input authority logic to client
This is a prerequisite for golf mode, as the client needs to be in
control of sending pad states.
2019-04-02 08:17:13 -04:00
Techjar 980c076c67 Disable BBA in NetPlay 2019-04-01 09:14:28 -04:00
Stenzek 474500f07e Vulkan: Prevent submission of command buffer with open queries 2019-04-01 20:49:42 +10:00
Stenzek f2d8c8d2a8 D3D12: Fix rare case where command list was executed with open queries 2019-04-01 20:49:24 +10:00
Stenzek 92f1f553d1 D3D12: Fix case where perf queries weren't flushed 2019-04-01 20:13:39 +10:00
Connor McLaughlin 32e330eb35
Merge pull request #7950 from stenzek/out-of-range-efb-copies
BPStructs: Gracefully handle out-of-range EFB copies
2019-04-01 13:08:11 +10:00
Stenzek 113bd60fe7 Implement D3D12 backend 2019-04-01 11:24:55 +10:00
Jordan Woyak 2b6d718636 InputCommon: Fix Win32 init race. 2019-03-31 07:46:58 -05:00
Stenzek 378b605669 BPStructs: Gracefully handle out-of-range EFB copies
Since the copy X and Y coordinates/sizes are 10-bit, the game can configure a
copy region up to 1024x1024. Hardware tests have found that the number of bytes
written does not depend on the configured stride, instead it is based on the
size registers, writing beyond the length  of a single row. The data written
for the pixels which lie outside the EFB bounds does not wrap around instead
returning different colors based on the pixel format of the EFB.

This suggests it's not based on coordinates, but instead on memory addresses.
The effect of a within-bounds size but out-of-bounds offset
(e.g. offset 320,0, size 640,480) are the same.

As it would be difficult to emulate the exact behavior of out-of-bounds reads,
instead of writing the junk data, we don't write anything to RAM at all for
over-sized copies, and clamp to the EFB borders for over-offset copies.
2019-03-31 22:05:53 +10:00
spycrab 039b1baa3a Qt/TAS: Implement turbo mode 2019-03-31 05:27:34 +02:00
Connor McLaughlin 39139a52e7
Merge pull request #7939 from Techjar/no-more-disabled-gfx-features
Qt/HacksWidget: Fix backend feature support checks
2019-03-31 11:59:34 +10:00
spycrab 0866ec3fb0
Merge pull request #7948 from spycrab/open_failed_warn
Qt/GameConfigEdit: Show warning if opening in an external editor fails
2019-03-31 03:37:54 +02:00
spycrab 74c1e92640 Qt/GameConfigEdit: Show warning if opening in an external editor fails 2019-03-31 03:30:41 +02:00
iwubcode 840afc2ad4 Config: Move the 'Display' settings from ConfigManager to the layered config system 2019-03-30 18:43:02 -05:00
JMC47 735a705e4d
Merge pull request #7776 from jordan-woyak/wm_devicechange
Add hotplug support to DInput and XInput controller backends
2019-03-30 18:41:46 -04:00
spycrab 3d84dbe649 Qt/GCMemcardManager: Don't bold the header 2019-03-30 20:22:04 +01:00
spycrab 0279d12055 Core/NetPlayServer: Integrate NetPlayIndex 2019-03-30 17:13:57 +01:00
spycrab 622ba68595 Core/Config: Add index entries to NetPlaySettings 2019-03-30 17:13:57 +01:00
spycrab 827e40d78a UICommon: Add NetPlayIndex helper 2019-03-30 17:13:57 +01:00
spycrab 3dbf44417a Common/HttpRequest: Implement EscapeComponent 2019-03-30 17:13:57 +01:00
JosJuice c885fed9da DiscIO: Make Korean GC checks in Enums.cpp less fragile 2019-03-30 12:45:28 +01:00
JosJuice c028a84531 Volume: Add a GetCertificateChain function 2019-03-30 12:45:28 +01:00
JosJuice abb3c5bccd VolumeWad: Implement GetTicket 2019-03-30 12:45:17 +01:00
JosJuice cf9ab6ddcc DiscExtractor: Make P prefix for partition names optional
Also added constants for common partition types.
2019-03-30 12:45:17 +01:00
JosJuice 3014dadfa8 DiscIO: Add way of checking whether blob data size is accurate 2019-03-30 12:45:17 +01:00
JMC47 0bce1c509d
Merge pull request #7942 from jordan-woyak/gc-adapter-calib-fix
HW/SI: GCAdapter calibration fix.
2019-03-30 06:37:23 -04:00
Stenzek 3c455de799 FramebufferManager: Fix broken EFB peeks in GL with MSAA on 2019-03-30 03:14:29 +10:00
spycrab 963370d7e6
Merge pull request #7941 from 8times9/contextmenu
Qt/GameList: Set consistent capitalization for context menu
2019-03-29 21:09:49 +01:00
Jordan Woyak 4ee999723e DolphinQt: Make MD5 result text box read only. 2019-03-29 12:31:09 -05:00
Stenzek b685a66753 Vulkan: Fix crash when checking subgroup support on Mesa 2019-03-30 00:18:26 +10:00
Jordan Woyak eadbdd6bc3 ControllerInterface/Win32: Prevent devcies from losing their "id" on a hotplug event. 2019-03-29 09:04:16 -05:00
Stenzek a6bb06174f Vulkan: Fix library load failure on Android 2019-03-29 23:36:53 +10:00
Michael M d26c1ce24d Add hotplug support to DInput and XInput controller backends 2019-03-29 08:01:40 -05:00
Michael M 92ca6e124e Add ControllerInterface::Win32 to wrap XInput and DInput 2019-03-29 08:01:39 -05:00
Techjar 5d37b2b951 Qt/HacksWidget: Fix backend feature support checks 2019-03-29 08:45:21 -04:00
Jordan Woyak a015851b02 HW/SI: GCAdapter calibration fix. 2019-03-29 06:15:58 -05:00
Stenzek 604ab67c7f Vulkan: Simplify perf queries using vkGetQueryPoolResults 2019-03-29 20:54:44 +10:00
Stenzek 6d40ea8553 Vulkan: Fix barrier validation layer errors for bounding box 2019-03-29 20:54:44 +10:00
Stenzek 23a655217c Vulkan: Fix validation layer error for unbound texture layouts 2019-03-29 20:54:44 +10:00
Stenzek 087b11e780 TextureCacheBase: Fix possible crash on shutdown with deferred EFB copies 2019-03-29 20:54:44 +10:00
Stenzek 427dd45151 Vulkan: Simplify command buffer fence tracking 2019-03-29 20:54:44 +10:00
Connor McLaughlin f3fadd7302
Merge pull request #7869 from stenzek/d3dcommon
D3D: Move sharable D3D11/D3D12 code to common library
2019-03-29 20:40:06 +10:00
Connor McLaughlin 78cf615a9b
Merge pull request #7937 from Techjar/netplay-defer-efb-invalidation
NetPlay: Synchronize EFB access cache options
2019-03-29 20:31:15 +10:00
Stenzek d66d778bae PixelShaderGen: Use subgroup reduction operations for bounding box 2019-03-29 20:06:56 +10:00
Stenzek 6561850f2b Vulkan: Support subgroup reduction operations via GL_KHR_shader_subgroup 2019-03-29 20:06:56 +10:00
Stenzek 86da282570 OGL: Support subgroup reduction operations via GL_NV_shader_thread_shuffle 2019-03-29 20:06:56 +10:00
Connor McLaughlin 1304e963ad
Merge pull request #7895 from stenzek/framebuffer-corruption
FramebufferManager: Don't discard in ReinterpretPixelData
2019-03-29 20:03:13 +10:00
Connor McLaughlin 154eeae8ae
Merge pull request #7915 from stenzek/bbox-scaled-update
VideoBackends: Scale bounding box rectangle in the pixel shader
2019-03-29 19:59:25 +10:00
Stenzek d0d010f854 D3D11: Make stateman a unique_ptr 2019-03-29 19:55:00 +10:00
Stenzek 3b86c93285 VertexManagerBase: Increase vertex/uniform buffer sizes
ZTP was uploading 10MB+ of uniforms per frame, reducing paralellism by
forcing GPU waits.
2019-03-29 19:52:38 +10:00
Stenzek 2a4bca8b4a VideoBackends: Verify validity before doing full renderer init
Prevents attempting to create invalid MSAA configurations, for example.
2019-03-29 19:52:38 +10:00
Stenzek 1151a1238f D3D11: Use ComPtr smart pointer where possible 2019-03-29 19:52:38 +10:00
Stenzek 3d8014beb5 D3D11: Use D3DCommon where appropriate 2019-03-29 19:52:38 +10:00
Stenzek ea15080d8f Add D3DCommon (shared code between D3D11 and D3D12) 2019-03-29 19:52:38 +10:00
Stenzek f6641b7e4f Vulkan: Use Common::DynamicLibrary 2019-03-29 19:52:38 +10:00
Stenzek a4f7c04470 Common: Add DynamicLibrary helper class 2019-03-29 19:52:33 +10:00
8times9 8c37214bee Qt/GameList: Set consistent capitalization for context menu 2019-03-28 21:22:46 -05:00
Stenzek e9cfcf4632 ShaderCache: Don't create invalid logic op pipelines
uint_output will never be set unless logic ops are enabled. Also clears
the bits so we're not compiling unused pixel shaders on the other
backends.
2019-03-28 20:35:02 +10:00
Stenzek 5732769a3c ShaderCache: Set correct primitive in dummy ubershader pipelines 2019-03-28 20:35:02 +10:00
Stenzek 7dd9d74eec RenderBase: Add EFBHasAlphaChannel() helper 2019-03-28 20:35:02 +10:00
Techjar 6e5d92e3c3 NetPlay: Synchronize EFB access cache options 2019-03-28 00:53:07 -04:00
spycrab 9b6c9252e4
Merge pull request #7932 from spycrab/qt_tas_fixes
Qt/TAS: Some fixes
2019-03-27 18:37:35 +01:00
JosJuice 6a18bf4d2e
Merge pull request #7935 from JosJuice/cli-arg-movie
DolphinQt: Add support for the --movie parameter
2019-03-27 18:34:24 +01:00
JMC47 b4b0ebae27
Merge pull request #7934 from stenzek/stretched-efb-peeks
FramebufferManager: Fix EFB peek cache stretching last tile
2019-03-27 10:53:47 -04:00
Stenzek 92fa6c34cd FramebufferManager: Fix EFB pokes being offset by 1 in D3D 2019-03-27 23:28:34 +10:00
JosJuice 6451496776 DolphinQt: Add support for the --movie parameter
Regression from DolphinWX.
2019-03-27 14:26:17 +01:00
Stenzek c28393d6f9 FramebufferManager: Fix EFB peek cache stretching last tile 2019-03-27 22:12:40 +10:00
JMC47 a1f53716dc
Merge pull request #7893 from jordan-woyak/mapping-ui-cleanup
DolphinQ: Mapping UI cleanups.
2019-03-26 20:30:30 -04:00
spycrab e222b91953
Merge pull request #7929 from spycrab/np_chat_toggle
NetPlayChatUI: Add activate chat hotkey
2019-03-26 22:35:26 +01:00
spycrab f7897778ff NetPlayChatUI: Add activate chat hotkey 2019-03-26 18:13:32 +01:00
spycrab 4ad67f471c Qt/TAS: Improve layout 2019-03-26 01:18:11 +01:00
spycrab 04583b17da Qt/TAS: Fix issue #11620 2019-03-26 00:38:25 +01:00
JMC47 e636b3e712
Merge pull request #7871 from jordan-woyak/wm-real-cleanup
WiimoteReal: Improve state changes and code cleanups.
2019-03-25 19:28:22 -04:00
spycrab fdb8b4af13 Qt/NetPlayDialog: Change buffer size message color 2019-03-25 10:09:21 +01:00
Stenzek 16294acd2a VideoBackends: Scale bounding box rectangle in the pixel shader 2019-03-25 18:47:58 +10:00
Mat M 20999db93c
Merge pull request #7928 from JosJuice/ipl-hashes
Remove invalid IPL hashes (NTSC-U and NTSC-J use same IPL)
2019-03-24 14:12:17 -04:00
JosJuice d42fa8f80e Remove invalid IPL hashes (NTSC-U and NTSC-J use same IPL)
See https://bugs.dolphin-emu.org/issues/11467. We now only have
the hashes that have been confirmed on Redump.

For the reference, MAME's list of bad GameCube IPL dumps:
80b2ca6088/src/mame/drivers/gamecube.cpp (L152-L158)
2019-03-24 14:19:23 +01:00
Stenzek cff60f5ba0 FramebufferManager: Only clear tile array when valid
When looking into the Faron Woods fifolog, I noticed this code was quite
high in the profile (~10%). Clearing 4096 entries from the vector isn't
needed every draw, we only need to do this when the cache was actually
valid in the first place.

Should provide a slight general performance boost.
2019-03-24 15:03:04 +10:00
Jordan Woyak d106169a83 DolphinQt: Fix unused widgets in InfoWidget from being visible. 2019-03-23 20:20:09 -05:00
spycrab c89139d75d
Merge pull request #7903 from spycrab/imgui_np_chat
Add imgui-based Netplay Chat
2019-03-23 21:11:33 +01:00
spycrab 7cfb626a83 Add imgui-based Netplay Chat 2019-03-23 20:13:24 +01:00
spycrab 672b582bec
Merge pull request #7918 from spycrab/iokit_refactor
InputCommon/OSX: Refactor IOKit controller interface
2019-03-22 21:18:27 +01:00
JosJuice 0b3385ac1f
Merge pull request #7919 from JosJuice/disc-extractor-cert-h3
DiscExtractor: Fix extracting certificate chain and H3 hashes
2019-03-22 17:44:47 +01:00
spycrab 80fd01c3c3 InputCommon/OSX: Refactor IOKit controller interface 2019-03-22 14:04:30 +01:00
Tilka 0a1aacb5d0
Merge pull request #7906 from jordan-woyak/leak-fix
DolphinQt/InputCommon: Fix a few memory leaks.
2019-03-21 23:26:54 +00:00
Tilka 87cf94ec86
Merge pull request #7914 from stenzek/partial-update-infinite-loop
TextureCacheBase: Fix infinite loop in DoPartialTextureUpdates
2019-03-21 23:22:17 +00:00
Tilka b016417106
Merge pull request #7907 from jordan-woyak/search-close-with-esc
DolphinQt: Make Ctrl+F show the game list search and escape close it.
2019-03-21 23:20:48 +00:00
spycrab 094c852158
Merge pull request #7916 from spycrab/issue_11623
MacUpdater: Fix updater not closing after update is completed
2019-03-21 23:42:06 +01:00
JosJuice c558803cbd DiscExtractor: Fix extracting certificate chain and H3 hashes
Dolphin is currently not using this data, but still,
the way it was being extracted was not at all correct.
2019-03-21 23:07:24 +01:00
Jordan Woyak 94c4975b5d DolphinQt: Make Ctrl+F show the game list search and select the search text if already open. Escape closes. 2019-03-21 17:06:16 -05:00
spycrab d1f7f0fcc0 Qt/AudioPane: Fix volume box not keeping consistent width 2019-03-21 14:38:12 +01:00
spycrab 544f6d547d MacUpdater: Fix updater not closing after update is completed 2019-03-21 13:47:23 +01:00
spycrab 8cfbbbe9dc VideoCommon/RenderBase: Disable backculling for ImGui 2019-03-21 13:16:21 +01:00
spycrab 61350b3d98 Core/Host: Allow frontends to block inputs 2019-03-21 13:16:21 +01:00
spycrab 0a3279ae6b Fix ImGui key mapping Enter to the numpad 2019-03-21 13:16:21 +01:00
spycrab fcd0dbef2c
Merge pull request #7901 from spycrab/issue_11585
Qt/Mapping: Use QGridLayout in a few more places
2019-03-20 23:53:01 +01:00
spycrab e8b3c6cb3e Qt/Mapping: Use QGridLayout in a few more places 2019-03-20 23:46:45 +01:00
Stenzek bf0b52efc6 TextureCacheBase: Fix infinite loop in DoPartialTextureUpdates 2019-03-20 20:05:51 +10:00
Jordan Woyak b53636827b ControllerInterface: Unbreak DirectInput POV Hats having bad values on init. 2019-03-19 16:05:49 -05:00
LAGonauta 99a35568ca Allow XAudio2 to be selected as a surround backend. 2019-03-18 09:21:40 -03:00
LAGonauta f37ff190e4 Added DPL2 decoder to XAudio2 and XAudio2_7 backends. 2019-03-18 09:06:41 -03:00
Jordan Woyak 725d34b2f0 DolphinQt/InputCommon: Fix a few memory leaks. 2019-03-17 18:31:41 -05:00
Jordan Woyak 0bdfa19650 ControllerInterface: SDL: Replace unclear bool parameter with enum class. 2019-03-17 08:53:53 -05:00
Jordan Woyak 4fb68c530b ControllerInterface: SDL cleanup and FF effect fixes. 2019-03-17 08:53:13 -05:00
spycrab c4036d2d6a Qt/MD5Dialog: Make dialog modal 2019-03-16 18:54:15 +01:00
JMC47 7acefe8a28
Merge pull request #7898 from spycrab/qt_netplay_empty_chat
Qt/NetPlayDialog: Prevent players from sending empty chat messages
2019-03-16 13:09:28 -04:00
spycrab a40b5f9133
Merge pull request #7900 from spycrab/qt_general_align
Qt/GeneralPane: Align "Auto Update" on macOS
2019-03-16 17:57:23 +01:00
JMC47 ae533185c4
Merge pull request #7899 from spycrab/qt_netplay_bold
Qt/NetPlayDialog: Don't bold the player table headers
2019-03-16 12:12:30 -04:00
JMC47 2a9f01c1ba
Merge pull request #7897 from spycrab/qt_mapping_dialog
Qt/PadMappingDialog: Improve layout
2019-03-16 12:07:43 -04:00
spycrab 502cba255f Qt/GeneralPane: Align "Auto Update" on macOS 2019-03-16 16:20:21 +01:00
spycrab 2046f93de8 Qt/NetPlayDialog: Don't bold the player table headers 2019-03-16 15:44:03 +01:00
spycrab e64b6d27c8 Qt/NetPlayDialog: Prevent players from sending empty chat messages 2019-03-16 15:33:38 +01:00
spycrab 19dfd4d7ab Qt/PadMappingDialog: Improve layout 2019-03-16 15:12:20 +01:00
JosJuice 08ca9ec21f
Merge pull request #7884 from JosJuice/save-movie-on-exit
DolphinQt: Save movie when closing emulation
2019-03-16 14:58:16 +01:00
Stenzek 8aa0ea10d9 FramebufferManager: Don't discard in ReinterpretPixelData
This was causing the depth buffer to be discarded as well, which
has an effect on mobiles (doesn't get loaded into tile memory).

If we find this is hindering performance (remember, the EFB is
only a 640x528 texture), it may be worth changing the interface to
support discarding only the colour buffer.
2019-03-16 23:45:08 +10:00
Jordan Woyak 9cb17b062c DolphinQ: Mapping UI cleanups. 2019-03-15 18:32:25 -05:00
Connor McLaughlin 861fc42fc9
Merge pull request #7891 from kvark/vk-frame-view
[vk] Use proper view type of framebuffer images
2019-03-16 09:26:01 +10:00
JosJuice c71216419b
Merge pull request #7874 from vadosnaprimer/ffv1_fix
FFV1 fix
2019-03-15 23:17:02 +01:00
Tilka c57e5701cd
Merge pull request #7879 from spycrab/open_gc_save_folder
Qt/GameList: Implement 'Open gamecube save folder'
2019-03-15 18:25:19 +00:00
Dzmitry Malyshau 4173a8f545 Use proper view type of framebuffer images 2019-03-15 12:24:39 -04:00
spycrab 90522a7666 Qt/GameList: Implement 'Open gamecube save folder' 2019-03-15 14:22:54 +01:00
JMC47 011ecd92e8
Merge pull request #7829 from jordan-woyak/detect-input-improve
ControllerInterface/DolphinQt: Improve input detection.
2019-03-13 19:00:24 -04:00
JosJuice bc9e9caf19
Merge pull request #7888 from lioncash/const
UICommon/ResourcePack: Mark ResourcePack's operator== as const
2019-03-13 21:41:07 +01:00
spycrab 635afc1db4
Merge pull request #7883 from spycrab/qt_no_dark_mode
Qt: Don't use 'Dark Mode'
2019-03-13 21:19:20 +01:00
Lioncash 6045b44203 UICommon/ResourcePack: Provide inequality operator to complement equality operator
Provides symmetrical behavior with the equality operator.
2019-03-13 15:55:20 -04:00
Lioncash 9d096a5e16 UICommon/ResourcePack: Mark ResourcePack's operator== as const 2019-03-13 15:53:30 -04:00
Lioncash 02da306d9a DolphinQt/Debugger/RegisterColumn: Add HID registers to the register pane
Adds the Hardware Implementation-Dependent registers to the register
pane, which makes it much nicer to see which hardware-specific features
are enabled or disabled.
2019-03-13 15:45:28 -04:00
Tilka 7b354fa7ac
Merge pull request #7637 from CrystalGamma/pr-crhelpers
PowerPC: Factor out CR helpers into POD class
2019-03-13 18:12:52 +00:00
JosJuice 185b1cf90c DolphinQt: Fix OnStopRecording/OnExportRecording logic 2019-03-13 17:35:20 +01:00
JosJuice 6c89957cf1 DolphinQt: Save movie when closing emulation
Missing feature from DolphinWX.
2019-03-13 15:40:36 +01:00
spycrab 339914f56d Qt: Don't use 'Dark Mode' 2019-03-13 14:30:43 +01:00
Mat M 7944a055a6
Merge pull request #7876 from JosJuice/4-char-window-title
Fix title database not working when running games with 4-char game IDs
2019-03-12 05:17:33 -04:00
Stenzek cce7ac43d4 FramebufferManager: Fix panic in VertexManager with large EFB depth poke batches 2019-03-12 18:26:07 +10:00
JosJuice d879283e2d Fix title database not working when running games with 4-char game IDs
Regression from 8842a0f.
2019-03-12 08:42:05 +01:00
JMC47 22e7419747
Merge pull request #7838 from stenzek/efb-tile-cache
FramebufferManager: Implement EFB tile cache
2019-03-12 03:10:20 -04:00
Jordan Woyak 49218c32ed WiimoteReal: Improve state changes and minor code cleanups. 2019-03-11 15:46:04 -05:00
feos 7fd940411b decrease gop size (keyint)
this makes seeking a lot smoother (especially at high resolutions), while only adding less than 1% of filesize with this codec.
2019-03-11 22:17:13 +03:00
feos 005e60fa22 change pixel format from BGRA to BGR0
for this kind of footage carrying alpha information makes no sense, and it additionally complicates things by hugely damaging compatibility of the resulting video. after this change alone the video becomes compatible with VfW/WinAPI and tools that rely on it (avisynth, virtualdub).

fixes https://bugs.dolphin-emu.org/issues/11141 and https://bugs.dolphin-emu.org/issues/10193
2019-03-11 22:17:12 +03:00
spycrab 909e9322e7
Merge pull request #7875 from spycrab/qt_msgbox_fixes
ModalMessageBox: Remove superfluous buttons and ensure correct parent
2019-03-11 19:36:19 +01:00
spycrab 63fd931245 ModalMessageBox: Remove superfluous buttons and ensure correct parent 2019-03-11 18:24:59 +01:00
JMC47 9e4ab87a34
Merge pull request #7765 from AdmiralCurtiss/fzero-save-file-out-of-bounds
GCMemcard: Fix out of bounds access in F-Zero GX checksum calculation.
2019-03-11 12:40:03 -04:00
spycrab 8293724f4e
Merge pull request #7834 from Techjar/netplay-dialog-declutter
Qt/NetPlayDialog: Move most options into a menu bar
2019-03-11 17:27:55 +01:00
Jordan Woyak 224e678cf8 WiimoteEmu: Fix a config change callback causing a crash on exit. 2019-03-09 06:51:37 -06:00
Stenzek 9293c82b24 DolphinQt: Add option for deferred EFB cache invalidation 2019-03-09 12:36:32 +10:00
Stenzek a218a794cb FramebufferManager: Implement deferred EFB cache invalidation 2019-03-09 12:24:04 +10:00
Stenzek 6bc4bfd26a FramebufferManager: Implement EFB tile cache
The new tile cache is dynamic in size and can be turned on/off.
2019-03-09 12:23:33 +10:00
Stenzek 65216c9e87 VideoConfig: Add SupportsPartialDepthCopies to backend info
D3D11 doesn't support partial copies of depth buffers via
CopySubResource(), so we need to use a different path for the EFB cache.
2019-03-09 12:19:53 +10:00
CrystalGamma e3075f3834 PowerPC: Factor out CR helpers into POD class 2019-03-08 20:42:09 +01:00
Tillmann Karras 1790497789 Work around GCC 8.2 ICE 2019-03-08 09:47:06 +00:00
spycrab db2542886a
Merge pull request #7844 from spycrab/updatecommon_electric_boogaloo
UpdaterCommon: Move most of the programs here
2019-03-07 19:09:35 +01:00
Connor McLaughlin 7d17163ce8
Merge pull request #7862 from spycrab/macos_vulkan_crash
VideoCommon/RenderBase: Don't destroy pipelines that are in use
2019-03-07 23:15:48 +10:00
spycrab ae8412b901
Merge pull request #7858 from spycrab/more_padding
Qt: Increase padding a bit
2019-03-07 14:03:17 +01:00
spycrab f72652f690
Revert "Vulkan: Show backend as Vulkan (MoltenVK) on macOS" 2019-03-07 02:05:59 +01:00
spycrab 9ca394bbea VideoCommon/RenderBase: Don't destroy pipelines that are in use 2019-03-07 01:59:46 +01:00
spycrab a5534ec950 Vulkan: Show backend as Vulkan (MoltenVK) on macOS 2019-03-06 15:25:54 +01:00
spycrab f7e93a6556 Qt/ModalMessageBox: Use Warning instead of Critical icon for questions 2019-03-06 13:54:43 +01:00
spycrab 470b9e68e7 Qt: Increase padding a bit 2019-03-06 13:46:00 +01:00
Tilka a865cc0bf6
Merge pull request #7806 from jordan-woyak/wiimote-emu-swing-improve
WiimoteEmu: Reimplement tilt/swing/camera/orientation data using matrix math.
2019-03-05 23:37:00 +00:00
Techjar b65faa0549 Qt/NetPlayDialog: Move most options into a menu bar
This eliminates the clutter of checkboxes at the bottom of the window.
A QAction within a QMenu cannot have a tooltip however, so they have
been removed and the options will be documented on the wiki.
2019-03-05 05:56:22 -05:00
Mat M 5d7701dec2
Merge pull request #7856 from lioncash/unused
DolphinQt/MenuBar: Remove unused ModalMessageBox instance
2019-03-04 23:04:36 -05:00
Mat M 86fd8e25f7
Merge pull request #7854 from Techjar/ini-editor-menus
Qt/GameConfigEdit: Use QPushButton instead of QToolButton for presets menu
2019-03-04 22:29:16 -05:00
Lioncash 3e0854c4aa DolphinQt/MenuBar: Remove unused ModalMessageBox instance 2019-03-04 20:16:45 -05:00
Techjar 86d036ec4b Qt: Remove "What's this?" button from modal message boxes 2019-03-04 18:55:22 -05:00
Techjar d44b1b563a Qt/GameConfigEdit: Use QPushButton instead of QToolButton for presets menu
QToolButton looks ugly on macOS, and doesn't seem appropriate for this
use case anyways.
2019-03-04 18:39:25 -05:00
spycrab 70da86f1c3 Qt: Use ModalMessageBox everywhere 2019-03-04 21:53:02 +01:00
spycrab d1cb79f644 QtUtils: Add ModalMessageBox 2019-03-04 21:48:23 +01:00
Connor McLaughlin a59010fa29
Merge pull request #7851 from Tilka/efb_stats
VideoCommon: add EFB peek/poke stats
2019-03-04 15:28:22 +10:00
Tillmann Karras 05fa667d03 VideoCommon: add EFB peek/poke stats 2019-03-04 02:49:59 +00:00
Mat M 191ef76da2
Merge pull request #7775 from chargeflux/QComboBoxBGColorFix-macOS
Fix QComboBox background and transparency workaround on macOS
2019-03-03 20:52:32 -05:00
Jordan Woyak c389d68186 ControllerInterface/DolphinQt: Make mapping "all devices" way less hacky. 2019-03-03 18:39:02 -06:00
Jordan Woyak 48b69ca018 ControllerInterface: Input detection improvements. 2019-03-03 18:36:16 -06:00
spycrab 13b2b93d3d
Merge pull request #7846 from spycrab/qt_no_ticks
Qt/MappingButton: Don't show ticks
2019-03-04 01:29:48 +01:00
Mat M 66a8220011
Merge pull request #7845 from jordan-woyak/elided-button-fix
DolphinQt: Fix ElidedButton (MappingButton) from growing with long text.
2019-03-03 18:53:01 -05:00
Mat M 503b96c617
Merge pull request #7848 from jordan-woyak/config-change-callbacks
Common/Config: Add a utility class to defer config change callbacks.
2019-03-03 18:44:34 -05:00
Jordan Woyak 1cae9b9b39 DolphinQt: Fix ElidedButton (MappingButton) from growing with long text. 2019-03-03 17:41:48 -06:00
Jordan Woyak bbc6bf5294 Common/Config: Add a utility class to suppress config change callbacks. 2019-03-03 17:35:22 -06:00
Mat M 2eb9140e07
Merge pull request #7850 from jordan-woyak/device-and-profile-dropdown-fix
DolphinQt: Prevent contents of device and profile dropdowns from throwing off layout.
2019-03-03 18:33:16 -05:00
Jordan Woyak 031149cc1d DolphinQt: Prevent contents of device and profile dropdowns from throwing off layout. 2019-03-03 16:09:24 -06:00
spycrab 2dcb703a1e
Merge pull request #7842 from spycrab/win_updater_hidpi
Updater: Support HiDPI
2019-03-03 22:46:19 +01:00
Jordan Woyak 4db4840d7c WiimoteEmu: Reimplement tilt/swing/camera/orientation data using matrix math. 2019-03-03 12:43:25 -06:00
spycrab 0d203cf0bb Qt/GCMemcardManager: Make message boxes modal 2019-03-03 16:36:58 +01:00
spycrab 326e2fb300 Qt/FIFOPlayerWindow: Make message box modal 2019-03-03 16:26:23 +01:00
spycrab 1ba810901d Qt/MappingWindow: Make message boxes modal 2019-03-03 16:19:50 +01:00
spycrab 103cb430f4 Qt/ControllerWindow: Make message boxes modal 2019-03-03 16:16:25 +01:00
spycrab 7f9084f87f Qt/USBDeviceATWhitelistD: Make message boxes modal 2019-03-03 16:12:12 +01:00
spycrab 606c61e7c9 Settings/InterfacePane: Make message box modal 2019-03-03 16:05:07 +01:00
spycrab 0c886b5e3c Settings/GeneralPane: Make message boxes modal 2019-03-03 15:56:23 +01:00
spycrab 386accd2c8 Qt/MappingButton: Don't show ticks 2019-03-03 15:49:24 +01:00
spycrab 19bf2c166d UpdaterCommon: Move most of the programs here 2019-03-03 15:02:44 +01:00
spycrab 2a3c075330
Merge pull request #7843 from spycrab/mac_update_label
MacUpdater: Properly display and truncate update messages
2019-03-03 13:30:43 +01:00
spycrab 833cb88c38 MacUpdater: Properly display and truncate update messages 2019-03-03 13:27:18 +01:00
spycrab 1e13ebd091 Updater: Support HiDPI 2019-03-03 12:56:26 +01:00
Mat M 8156df2758
Merge pull request #7837 from jordan-woyak/deadzone-math-fix
ControllerEmu: Deadzone math fix.
2019-03-03 02:32:04 -05:00
Mat M 7a8ddbaccb
Merge pull request #7840 from jordan-woyak/game-config-save-fix
DolphinQt: Fix invalid error message when trying to save a zero-sized game config.
2019-03-03 02:27:12 -05:00
Jordan Woyak 2cec5d0a08 DolphinQt: Fix invalid error message when trying to save a zero-sized game config. 2019-03-02 21:23:39 -06:00
Jordan Woyak ecb67cf815 ControllerEmu: Deadzone math fix. 2019-03-01 17:40:10 -06:00
Tillmann Karras 24ba3bf2f2 TextureConversionShader: fix XFB decoding shader 2019-03-01 21:54:33 +00:00
spycrab 3c2ebec84e
Merge pull request #7828 from spycrab/updatecommon2
UpdaterCommon: Prevent duplicate downloads and respect symlinks
2019-02-28 13:04:15 +01:00
spycrab 7b66b3de8d UpdaterCommon: Prevent duplicate downloads and respect symlinks 2019-02-28 12:59:38 +01:00
Tilka 6be35422e9
Merge pull request #7832 from stenzek/xfb-decoding-regression
TextureCache: Fix GPU decoding of XFB copies
2019-02-28 11:03:25 +00:00
Stenzek 8192c0dd48 TextureConversionShader: Fix XFB decoding shader for D3D
D3D has no mix() equivalent with a bool parameter. Compilers should be
able to optimize the ternary into a select anyway.
2019-02-28 20:43:50 +10:00
Stenzek 21d81f99ff VideoBackends: Fix GPU decoding of XFB buffers
Was using UNORM instead of UINT, resulting in invalid values.
2019-02-28 20:35:22 +10:00
Stenzek db6763019d TextureCache: Fix GPU decoding of XFB copies not falling back to CPU 2019-02-28 20:19:37 +10:00
Stenzek 7f0111b022 TextureCache: Fix EFB2RAM copies at >1xIR sampling out-of-range 2019-02-28 20:11:46 +10:00
chargeflux 77777cd1d7 Fix QComboBox background and transparency workaround on macOS 2019-02-26 17:03:38 -05:00
spycrab 902e407ae5
Merge pull request #7823 from spycrab/updatercommon
Move shared Updater logic into UpdaterCommon
2019-02-26 22:15:42 +01:00
spycrab f10fdce158
Merge pull request #7825 from spycrab/fileutil_osx_path
Common/FileUtil: Fix GetExePath() cutting off the bundle name
2019-02-26 21:56:27 +01:00
spycrab 873d22b8b2
Merge pull request #7826 from spycrab/issue_11586
MacUpdater: Set LSUIElement to true
2019-02-26 21:52:45 +01:00
spycrab f0b749d8e2 MenuBar: Implement proper update-capabilities check 2019-02-26 20:42:55 +01:00
spycrab d0d85c15b4 MacUpdater: Set LSUIElement to true 2019-02-26 20:26:52 +01:00
spycrab 3e3f6922c0 Common/FileUtil: Fix GetExePath() cutting off the bundle name 2019-02-26 20:00:23 +01:00
spycrab 9c84524684 Move shared Updater logic into UpdaterCommon 2019-02-26 19:27:36 +01:00
spycrab 0ebf3b90e3 MacUpdater: Fix permissions some more 2019-02-26 17:16:04 +01:00
Tilka 19f4772e47
Merge pull request #7816 from JosJuice/titledatabase-edge-cases
Fix edge cases in TitleDatabase, cover downloading, Gecko code downloading
2019-02-26 04:25:45 +00:00
Tilka 02f5a7505f
Merge pull request #7821 from jordan-woyak/emu-turntable-effect-dial-fix
WiimoteEmu: Fix turntable effect dial mapping.
2019-02-26 04:22:45 +00:00
Tilka 6ce7f44b8a
Merge pull request #7753 from stenzek/videocommon-all-the-things
Move a significant amount of video backend logic to VideoCommon
2019-02-26 04:21:05 +00:00
Jordan Woyak 4b830ddc26 WiimoteEmu: Fix turntable effect dial mapping. 2019-02-25 15:54:36 -06:00
Tillmann Karras 8396ad541b DolphinQt: clean up includes 2019-02-25 20:15:12 +00:00
Tillmann Karras 8b330e1ca3 Discord: fix typo 2019-02-25 19:31:49 +00:00
JosJuice 71e6243c54 TitleDatabase: Don't hardcode HBC IDs that actually are in GameTDB 2019-02-25 19:55:49 +01:00
JosJuice 9df763b4ac TitleDatabase: Don't merge multiple languages into same map
Instead of selecting languages based on the user config at the time
of TitleDatabase creation and merging the different languages into one
map for GC and one map for Wii, have one map for each language, and
have the caller supply the language they want. This makes us not need
the IsGCTitle function, which is inaccurate for IDs that start with D.
2019-02-25 19:55:46 +01:00
JosJuice 8842a0f402 Keep track of GameTDB ID separately from game ID
The difference between Dolphin's game IDs and GameTDB's game IDs
is that GameTDB uses four characters for non-disc titles, whereas
Dolphin uses six characters for all titles.

This fixes:

- TitleDatabase considering Datel discs to be NHL Hitz 2002
- Gecko code downloading not working for discs with IDs starting with P
- Cover downloading mixing up discs with channels (e.g. Mario Kart Wii
  and Mario Kart Channel) and making extra HTTP requests. (Android was
  actually doing a better job at this than DolphinQt!)
2019-02-25 19:54:25 +01:00
Mat M d27036eb77
Merge pull request #7814 from JosJuice/overwrite-aspect-mode
VideoConfig: Don't overwrite aspect_mode with suggested_aspect_mode
2019-02-25 13:29:03 -05:00
Mat M fad9c0cc93
Merge pull request #7813 from jordan-woyak/wiimote-emu-ir-enable-fix
WiimoteEmu: Minor IR Camera behavior fix.
2019-02-25 13:28:14 -05:00
spycrab 96786d0501 MacUpdater: Retain file permissions 2019-02-25 10:14:26 +01:00
Jordan Woyak d64f29d234 WiimoteEmu: Minor IR Camera behavior accuracy fix. 2019-02-23 16:40:47 -06:00
Tilka 83ff3aa691
Merge pull request #7815 from JosJuice/elf-dol-size
Don't show asterisk next to DOL/ELF size in game list
2019-02-23 15:46:03 +00:00
JosJuice 5ace78bf20 Don't show asterisk next to DOL/ELF size in game list 2019-02-23 16:17:39 +01:00
JosJuice ea7b96342b VideoConfig: Don't overwrite aspect_mode with suggested_aspect_mode
Unnecessary since b93b7ec. It was needed before that commit becase
RenderBase.cpp only was checking the value of aspect_mode, not
suggested_aspect_mode.
2019-02-23 16:00:18 +01:00
Jordan Woyak 58f1ff3773 WiimoteEmu: Minor accuracy fixes. 2019-02-20 17:44:55 -06:00
Stenzek f039149198 Move most backend functionality to VideoCommon 2019-02-19 16:57:54 +10:00
Stenzek 933f3ba008 TextureCache: Don't copy out-of-range rectangles when stitching textures
This can cause driver crashes or GPU hangs if we do.
2019-02-17 16:35:43 +10:00
Stenzek 2165523fdc TextureConverterShader: Write EFB2Tex XFB copies with alpha value of 1
This way we don't end up with artifacts of the EFB's alpha values in
frame dumps. XFB copies loaded from RAM also set the alpha to 1, so this
will match.
2019-02-17 16:35:43 +10:00
Stenzek 50bdcb8d9c TextureCache: Bind textures/samplers after loading all textures
Since loading textures can result in rendering, e.g. partial copies, we
don't want to disturb partially-bound GX state.
2019-02-17 16:35:43 +10:00
Stenzek eabde77892 CMake: Add an ENABLE_NOGUI option 2019-02-15 18:40:46 +10:00
Stenzek 836f76da89 DolphinNoGUI: Runtime selection of platform 2019-02-15 18:40:46 +10:00
Stenzek f9869cb216 Vulkan: Support runtime selection of WSI 2019-02-15 18:40:46 +10:00
LAGonauta c209d07c96 Removed FFDShow DPL2 decoder 2019-02-13 22:52:41 -02:00
LAGonauta f4cf1e4f49 Removed zeroing-out the LFE as it is not needed anymore.
Also removed minimum number of frames needed when decoding DPL2, and use
std::numeric_limits to clamp the samples when needed.

Clamping is still needed, but those samples are much rarer now and depend
on the game.
2019-02-13 22:52:40 -02:00
LAGonauta fdfd9d6953 Cleaned up PulseAudio as we now use FreeSurround 2019-02-13 22:52:40 -02:00
LAGonauta df631f0d75 Swapped FFDShow's DPL2 decoder by FreeSurround
Added class in AudioCommon for the surround decoder
2019-02-13 22:52:40 -02:00
JosJuice 5067e96f37 Minor fixes to translatable strings 2019-02-13 18:54:45 +01:00
Tilka 131f4931fb
Merge pull request #7792 from jordan-woyak/auto-calibration
DolphinQt/ControllerEmu: Add stick calibration "wizard".
2019-02-13 02:13:27 +00:00
Tilka 8d59d1bb11
Merge pull request #7798 from ShFil119/impr/empty
Use empty instead of size
2019-02-13 01:59:43 +00:00
Filip Gawin 49fe9f5db1 Use empty instead of size 2019-02-13 00:03:49 +01:00
Mat M 6b22693e6e
Merge pull request #7796 from stenzek/glx-context
GLContext: Fix shared context creation error on Mesa
2019-02-11 09:23:52 -05:00
spycrab eb11d045d7
Merge pull request #7790 from spycrab/rp_fixes
ResourcePacks: Fix various bugs
2019-02-11 11:09:43 +01:00
spycrab f86b34ceb9 ResourcePacks: Fix various bugs 2019-02-11 11:05:35 +01:00
Tilka 4d85bb2d18
Merge pull request #7782 from jordan-woyak/wiimote-emu-speaker-pan
WiimoteEmu: Change speaker pan to use "constant power pan law".
2019-02-11 00:20:07 +00:00
Jordan Woyak 3c77b4aa4b WiimoteEmu: Change speaker pan to use "constant power pan law" and change UI setting max value from 127 to 100. 2019-02-10 17:55:11 -06:00
Tilka 226affe00b
Merge pull request #7788 from jordan-woyak/mapping-ui-clear-button
DolphinQt: Make the mapping window clear button use ControllerEmu's clear functionality.
2019-02-10 23:29:33 +00:00
Tilka 33e51da3b8
Merge pull request #7785 from Tilka/patch_editor
DolphinQt: limit patch padding to 8
2019-02-10 23:22:20 +00:00
Jordan Woyak 0064f70c8a DolphinQt/ControllerEmu: Replace Input Radius/Shape settings with an input calibration "wizard". 2019-02-10 07:55:47 -06:00
Stenzek cecefa2d97 ChunkFile: Don't access element zero of empty container
This was causing assertion failures in debug MSVC builds.
2019-02-10 13:28:50 +10:00
Stenzek ef3306e954 GLContext: Fix shared context creation error on Mesa
This was failing if the first version tried (4.6) didn't succeed.
2019-02-09 21:51:23 +10:00
spycrab 0abb1c6ea6 Qt/LogWidget: Make logging asynchronous 2019-02-08 13:21:21 +01:00
Anthony 2987e8313a
Merge pull request #7752 from 8times9/text-tweaks
Qt: Minor text tweaks
2019-02-07 10:21:00 -08:00
8times9 d45dad7bf7 Qt: Minor text tweaks 2019-02-07 11:53:07 -06:00
Jordan Woyak 64c3c52ef3 DolphinQt: Make the mapping window clear button use ControllerEmu's clear functionality. 2019-02-06 17:40:58 -06:00
spycrab 63cdebba88 UICommon/AutoUpdate: Add macOS support 2019-02-06 20:50:09 +01:00
spycrab 80f4181f60 MacUpdater: Initial implementation 2019-02-06 20:50:09 +01:00
spycrab fa01db4904 Qt/GameConfigEdit: Fix some settings being in the wrong section 2019-02-06 09:42:33 +01:00
Tillmann Karras 03a7071c57 DolphinQt: limit patch padding to 8 2019-02-05 04:59:52 +00:00
Tillmann Karras 74c5e60327 DolphinQt: show game descriptions in one line 2019-02-03 22:32:36 +00:00
Anthony f65b3a998c
Merge pull request #7739 from zackhow/multib
Android: Disable backend multithreading and add option to gfx menu
2019-02-03 12:44:00 -08:00
Anthony e05cc3f61d
Merge pull request #7718 from cristian64/display_listcolumns_via_rightclick_on_header
Qt/MainWindow: Also display "List Columns" menu via right-click on table's header.
2019-02-03 12:41:39 -08:00
Anthony 227a26490d
Merge pull request #7773 from spycrab/rp_compression
ResourcePacks: Support compression
2019-02-03 12:34:11 -08:00
Anthony eee24cd1ce
Merge pull request #7746 from Techjar/fix-hotkey-conflicts
[RFC] Core/HotkeyManager: Fix default hotkey conflicts
2019-02-03 12:26:14 -08:00
Tilka 8aaebfa2b3
Merge pull request #7716 from stenzek/stereo
Stereoscopy regression fixes
2019-02-03 19:57:01 +00:00
Anthony 4e825beddf
Merge pull request #7757 from jordan-woyak/wiimote-connection-status-checkmarks
WiimoteDevice: Update UI when wiimote connection status changes.
2019-02-03 10:28:08 -08:00
Anthony e9130734af
Merge pull request #7688 from jordan-woyak/evdev-improve
ControllerInterface: evdev: Cleanups and effect processing fixes.
2019-02-03 10:25:23 -08:00
Jordan Woyak 69b617ce76 WiimoteEmu: Remove redundant Matrix library and use the one in Common. 2019-02-03 12:02:02 -06:00
Jordan Woyak b9a00a40a9 Common: Move Matrix classes out of MathUtil into their own files and make their interface more friendly. 2019-02-03 11:35:31 -06:00
Jordan Woyak 9c1a8891e5 WiimoteEmu: Code cleanups. 2019-02-02 19:40:31 -06:00
Jordan Woyak 3945aa6242 WiimoteEmu: Fix battery level handling and remove old comments. 2019-02-02 19:40:31 -06:00
Jordan Woyak 6c0902ab0a WiimoteEmu: Add logic for enabling/disabling M+ and force it disabled for now. 2019-02-02 19:40:31 -06:00
Jordan Woyak 0d1fbe7bbc WiimoteEmu: Major renaming and cleanup. 2019-02-02 19:40:31 -06:00
Jordan Woyak b1f350ab1c WiimoteEmu: Cleanups, Kill some now-redundant constants. 2019-02-02 19:40:30 -06:00
Jordan Woyak 6e5847a790 WiimoteEmu: Fix wiimote pan setting from keeping center at half volume. 2019-02-02 19:40:30 -06:00
Jordan Woyak d3906e548d WiimoteEmu: Cleanup ack handling. Improve accuracy of report handling with unusual values. Eliminated outdated comments. 2019-02-02 19:40:30 -06:00
Jordan Woyak 3a889c35ad WiimoteEmu: Cleanups, Kill more magic numbers and use some enum classes. 2019-02-02 19:40:30 -06:00
Jordan Woyak 86c94b8b22 WiimoteEmu: Motion plus now works half of the time in Wii Sports Resort. 2019-02-02 19:40:30 -06:00
Jordan Woyak 0b4329e077 Implement the rest of the wiimote input reports. 2019-02-02 19:40:30 -06:00
Jordan Woyak 10c2101e72 WiimoteReal: Unbreak. 2019-02-02 19:40:30 -06:00
Jordan Woyak 42b9392784 WiimoteEmu: Cleanups and work towards making motion plus functional. 2019-02-02 19:40:30 -06:00
Jordan Woyak a25e8cb516 Advance save state version. 2019-02-02 19:40:30 -06:00
Jordan Woyak a0721b256f WiimoteEmu: Cleanup, kill some magic numbers, and unbreak wiimote speaker pan setting. 2019-02-02 19:39:29 -06:00
Jordan Woyak 372b12c67f WiimoteEmu: Emulated motion plus is detected by game now. 2019-02-02 19:39:29 -06:00
Jordan Woyak ba936923bd WiimoteEmu: Tweak the i2c bus code to better support motion plus and its passthrough port. 2019-02-02 19:39:29 -06:00
Jordan Woyak 84d32f6645 WiimoteEmu: Fix usage of ReportFeatures in TAS related code. 2019-02-02 19:39:29 -06:00
Jordan Woyak 4dc0aa6f8e WiimoteEmu: Process wiimote read data requests like they are on a real wiimote. It's not a queue. New requests are ignored and input is suppressed while processing a request. This simplifies the save state code greatly. 2019-02-02 19:39:29 -06:00
Jordan Woyak ec460da36d WiimoteEmu: Add wiimote speaker logic to i2c bus. Temporarily break the "pan" setting. 2019-02-02 19:39:29 -06:00
Jordan Woyak 62b66580c3 WiimoteEmu: Unbreak wiimote extensions. 2019-02-02 19:39:29 -06:00
Jordan Woyak ebc2e58fa4 WiimoteEmu: Partially emulate i2c bus to more closely simulate the real thing. Transfer most of IR camera logic to the i2c bus. Temporarily break everything else. 2019-02-02 19:39:29 -06:00
Jordan Woyak 6c40c47472 WiimoteEmu: Remove some remnants of hybrid wiimote. 2019-02-02 19:39:28 -06:00
Tilka a95b6e1b9b
Merge pull request #7735 from spycrab/qt_modal
Qt: Make more messages modal
2019-02-03 01:30:03 +00:00
Tilka cfbc852fb0
Merge pull request #7777 from jordan-woyak/input-rounding
ControllerEmu: Round input floats instead of casting.
2019-02-03 00:56:05 +00:00
Tilka 6ec11c6801
Merge pull request #7742 from jordan-woyak/si-device-change-fix
SI: Device change logic fix.
2019-02-03 00:52:23 +00:00
Jordan Woyak 3bc4968c11 ControllerEmu: Round input floats instead of casting to prevent almost-neutral values from being rounded down. 2019-02-02 15:12:07 -06:00
spycrab b6863ff0a2 ResourcePacks: Support compression 2019-02-02 15:54:06 +01:00
Tilka 28c0b5338e
Merge pull request #7738 from spycrab/core_warnings
Core: Fix some warnings
2019-02-02 14:13:21 +00:00
Tilka d55e276d0b
Merge pull request #7763 from jordan-woyak/steering-wheel-ff-fix
HW: SI_Device_GCSteeringWheel: Fix handling of force commands.
2019-02-02 13:12:51 +00:00
Tilka 2d75797c63
Merge pull request #7747 from stenzek/vulkan-shutdown
Vulkan: Shutdown fixes and cleanup/refactoring
2019-02-02 12:45:20 +00:00
Tilka 6dc16dda26
Merge pull request #7750 from jordan-woyak/gamelist-less-padding
DolphinQt: Reduce the padding between gamelist items.
2019-02-02 12:41:06 +00:00
Tilka eb7135ac9b
Merge pull request #7771 from stenzek/qt-non-looping-fifoplayer
DolphinQt: Connect Host::RequestStop() to MainWindow::RequestStop()
2019-02-02 12:28:55 +00:00
Tilka 0115906e41
Merge pull request #7767 from Tilka/chunkfile
ChunkFile: treat vectors/strings as sized arrays
2019-02-02 12:25:42 +00:00
Stenzek 31a5dd15a9 DolphinQt: Connect Host::RequestStop() to MainWindow::RequestStop()
The fact that this wasn't connected was causing fifoplayer to hang if
looping was disabled.
2019-02-02 13:36:46 +10:00
Admiral H. Curtiss fdd19c1b54 GCMemcard: Fix out of bounds access in F-Zero GX checksum calculation. 2019-02-01 17:50:19 +01:00
Tillmann Karras 4090c19e00 GeckoCodeConfig: fix Gecko Code downloading
For some reason the server always redirects once to the same location.
2019-02-01 13:44:58 +00:00
Tillmann Karras 3ff0e7dbd4 Common/HttpRequest: optionally follow redirects 2019-02-01 13:44:58 +00:00
Jordan Woyak 552392e4f6 HW: SI_Device_GCSteeringWheel: Fix handling of force commands. 2019-02-01 06:47:17 -06:00
Jordan Woyak b0cb100958 SI: Device change logic fix. 2019-02-01 06:43:24 -06:00
Tillmann Karras 04a92482bf ChunkFile: treat vectors/strings as sized arrays 2019-02-01 05:13:16 +00:00
JMC47 a129d60a57
Merge pull request #7762 from jordan-woyak/gcadapter-calibration
HW: SI_Device_GCAdapter: Restore calibration behavior for real gamecube controllers.
2019-01-31 23:47:09 -05:00
Tillmann Karras 45aeb86766 Fix -Wmissing-declarations warning 2019-02-01 03:06:01 +00:00
Mat M e5ca338958
Merge pull request #7761 from jordan-woyak/gccontroller-minor-cleanup
HW: SI_Device_GCController: Minor cleanup.
2019-01-31 21:29:55 -05:00
Tillmann Karras 5b4a5ca059 DolphinQt: cache filesystem icons for speed 2019-02-01 00:15:52 +00:00
JosJuice c1492aeb45
Merge pull request #7744 from stenzek/vsync
Renderer: Fix throttle-disable (TAB) hotkey when vsync is enabled
2019-01-31 22:44:10 +01:00
Jordan Woyak cb9896618f HW: SI_Device_GCAdapter: Restore calibration behavior for real gamecube controllers. 2019-01-31 08:38:25 -06:00
Jordan Woyak c54cc3fa38 HW: SI_Device_GCController: Minor cleanup. Remove a member/state variable that should just be a local variable. 2019-01-31 06:30:06 -06:00
JosJuice 419ba925b7
Merge pull request #7748 from jordan-woyak/compressed-game-indicator
DolphinQt: Display game list compressed file sizes with an asterisk.
2019-01-30 19:47:47 +01:00
JosJuice 9340ddc7c9
Merge pull request #7726 from zackhow/rumfast
Android: Optimize rumble call
2019-01-30 19:37:24 +01:00
Jordan Woyak 159d2b1cc3 HW/Wiimote: Don't reconnect wiimotes on ChangeWiimoteSource when the source hasn't actually changed. 2019-01-29 10:01:35 -06:00
Jordan Woyak 4bc576472c WiimoteDevice: Update UI when wiimote connection status changes to keep check marks in the menu bar accurate. 2019-01-29 07:57:51 -06:00
JMC47 0e1669e1c7
Merge pull request #7728 from jordan-woyak/pad-perfect-calib
SI_DeviceGCController: Calibrate to perfect neutral instead of initial input state.
2019-01-28 21:11:46 -05:00
JMC47 cf8da56297
Merge pull request #7751 from zackhow/motefix
Android: Don't grab wiimote report if size is < 1
2019-01-28 19:53:04 -05:00
Jordan Woyak efd5c36773 DolphinQt: Display game list file sizes with an asterisk when file-size differs from volume-size (e.g. when they are compressed). 2019-01-28 14:44:25 -06:00
JMC47 7907633126
Merge pull request #7715 from Techjar/qt-delete-unparented
Qt/MainWindow: Directly delete unparented dialogs
2019-01-28 06:42:07 -05:00
zackhow 831ab64e1c Android: Don't grab wiimote report if size is < 1
Fixes crash when using official wiimotes with the dolphin bar.
2019-01-27 16:43:19 -05:00
Jordan Woyak 3db904baba DolphinQt: Reduce the padding between gamelist items. 2019-01-27 14:00:22 -06:00
Jordan Woyak c386a6a875 DolphinQt: Fix selection of PP shader when using anaglyph 3D. 2019-01-27 13:23:42 -06:00
Techjar d70ea9e4ec Core/HotkeyManager: Fix default hotkey conflicts 2019-01-27 06:20:01 -05:00
Stenzek 3b033bf3f0 Vulkan: Move clear shader from Renderer to ShaderCache 2019-01-27 13:07:35 +10:00
Stenzek e2cf238ec4 Vulkan: Move swapchain related members from Renderer to SwapChain 2019-01-27 12:59:57 +10:00
Stenzek bd66db049a Vulkan: Use device-local functions where possible
Avoids a call into the loader library, which may improve performance
ever-so-slightly.
2019-01-27 12:51:04 +10:00
Stenzek ce1cc2d9fa Vulkan: Don't execute command buffer before shutting down
We don't need to, and this was causing occasional crashes on Adreno.
2019-01-27 12:41:10 +10:00
Stenzek b01df8670f Renderer: Fix throttle-disable (TAB) hotkey when vsync is enabled 2019-01-27 12:31:12 +10:00
zackhow 4979220cf0 Android: Optimize rumble call
Moved rumble call to IDCache since GetMethodID is expensive
2019-01-26 09:38:35 -05:00
Techjar 408029e8a3 Qt/MainWindow: Don't unpause after confirming shutdown
There's no good reason to do this, as it just causes running signals to
be sent as the core is shutting down.
2019-01-26 07:27:37 -05:00
zackhow 8a1eb34c38 Android: Default backendMultithreading to false on android 2019-01-25 19:22:07 -05:00
spycrab 51a219c54d
Merge pull request #7263 from spycrab/qt_ini_edit
Qt/GameConfigWidget: Complete overhaul
2019-01-26 00:45:46 +01:00
spycrab ff5556ce2f Qt/GameConfigWidget: Complete overhaul 2019-01-26 00:41:22 +01:00
JosJuice b14e540671
Merge pull request #7736 from stenzek/imgui-hidpi
RenderWidget: Fix mouse position for imgui on hidpi screens
2019-01-25 22:45:31 +01:00
spycrab 0691971d82 Core: Fix some warnings 2019-01-25 21:21:22 +01:00
spycrab f908612452 DolphinQt: Fix some warnings 2019-01-25 17:21:38 +01:00
Stenzek 3d8145af65 RenderWidget: Fix mouse position for imgui on hidpi screens 2019-01-26 01:31:58 +10:00
spycrab 787f2c6bd7 Qt: Make more messages modal 2019-01-25 16:16:27 +01:00
spycrab 6962d5bc52
Merge pull request #7478 from stenzek/imgui
Replace raster font with dear imgui
2019-01-25 15:08:40 +01:00
Stenzek 774480ba23 Vulkan: Set contents scale of Metal layer to screen factor
This gives us a native resolution framebuffer.
2019-01-26 00:02:04 +10:00
JMC47 e060b133e3
Merge pull request #7722 from 0xFEEDC0DE64/gamecube-settings-improvements
General GameCubePane improvements
2019-01-25 05:40:07 -05:00
Stenzek ee0fa548bc Vulkan: Don't bind last descriptor set if bounding box is unsupported
Fixes crash on a4xx/Vulkan.
2019-01-25 11:15:57 +10:00
Stenzek e9b02e7dd0 Vulkan: Remove unused UpdateUtilityUniformBuffer function 2019-01-25 11:15:57 +10:00
Stenzek 78588ce79d ShaderCache: Use imgui for shader compilation dialog 2019-01-25 11:15:57 +10:00
Stenzek e4b205c769 Decouple XFB scanout from presentation 2019-01-25 11:15:57 +10:00
Stenzek f1e7fb505b Renderer: Scale all imgui fonts by the backbuffer scale 2019-01-25 11:15:57 +10:00
Stenzek c9c0b85056 VideoBackends: Store a backbuffer 'scale'
This is a scaling factor, used for hi-dpi configurations.
2019-01-25 11:15:57 +10:00
Stenzek e03b8e899e Vulkan: Move texture upload buffer to ObjectCache 2019-01-25 11:15:57 +10:00
Stenzek 36ce47635b RenderWidget: Hook up to ImGui 2019-01-25 11:15:57 +10:00
Stenzek 63dd91628d Remove old RasterFont classes 2019-01-25 11:15:57 +10:00
Stenzek 600d1fc0bc Renderer: Use imgui for drawing debug text and OSD 2019-01-25 11:15:57 +10:00
Stenzek d1868d9475 RenderBase: Implement imgui rendering 2019-01-25 11:10:49 +10:00
Stenzek 396b7c2978 OGL: Invalidate tracked state when calling ResetAPIState()
Due to the current design, any of the GL state can be mutated after
calling this function, so we can't assume that the tracked state will
match if we call SetPipeline() after ResetAPIState().
2019-01-25 11:10:49 +10:00
Connor McLaughlin 224b23b979
Merge pull request #7729 from stenzek/adreno-sillyness
ShaderGen: Fix broken rendering on Adreno Vulkan drivers
2019-01-25 11:07:12 +10:00
JMC47 ddb1fbf701
Merge pull request #7500 from zackhow/pointer
Android: Add IR pointer control to touch overlay
2019-01-24 20:02:23 -05:00
0xFEEDC0DE64 e1fdf4ae9a General GameCubePane improvements (squashed commit) 2019-01-24 21:08:21 +01:00
Stenzek 1d61041985 ShaderGen: Don't use interface blocks on Vulkan without GS
Doing so causes the Adreno driver to choke and spew errors about
too many output locations/components, when clearly we're under
the limit.
2019-01-24 17:02:17 +10:00
zackhow d0b42286cf Load custom game IR values if they are not set
This is mostly for android so that a user can use the touchscreen to
accurately emulate pointer movements
2019-01-23 17:16:32 -05:00
Stenzek 68cb24172b ShaderGen: Omit some unused varyings when possible
Removes the clipPos varying unless slow-depth is used, and the
clipDistance varyings if geometry shaders are not used.
2019-01-23 18:34:22 +10:00
Jordan Woyak 3cd3e84486 SI_DeviceGCController: Calibrate pad origin on boot to perfect neutral values instead of initial input state. 2019-01-22 15:33:04 -06:00
Christian Aguilera 9a1a98a9f6 Qt/MainWindow: Also display "List Columns" menu via right-click on table's header. 2019-01-21 21:06:04 +00:00
Cody Wilson 00f786384d
Update GeckoCodes code download to use https
The WiiRD codes respository at https://geckocodes.org has started using HTTPS, and 301 Redirecting traffic from HTTP to HTTPS.  The HTTP client does not appear to be able to handle a 301 Redirect and instead fails when attempting to download codes. This pull request is purely a string replacement to set the URL as HTTPS.
2019-01-20 11:26:29 -05:00
zackhow 47d6406fd4 Android: Add touch to move pointer in overlay 2019-01-19 23:21:33 -05:00
Stenzek 1070192165 TextureCache: Fix a possible crash when partial updating palette textures 2019-01-19 23:38:02 +10:00
Stenzek 84bcbef944 TextureCache: Don't partial copy to non-existant texture layers 2019-01-19 23:38:00 +10:00
Stenzek ade255a5ff TextureCache: Fix broken XFB stitching with stereoscopy is enabled 2019-01-19 23:23:21 +10:00
Stenzek 6bfe4c83a5 OGL: Fix broken stereoscopy geometry shader for EFB copies 2019-01-19 23:22:57 +10:00
Techjar 47cc5b02e3 Qt/MainWindow: Directly delete unparented dialogs
Calling deleteLater in MainWindow's destructor doesn't work, as the
event loop will stop before it gets around to deleting these dialogs.
Seeing as this is a QObject destructor, we should already be on the
event loop anyways, so simply using delete should be safe.
2019-01-19 04:37:07 -05:00
Jordan Woyak 6cc8775510 ControllerInterface: evdev: Replace unclear bool parameter with enum class. 2019-01-17 12:10:50 -06:00
Jordan Woyak 52aa39991c ControllerInterface: evdev: Cleanup rumble effect processing so effects aren't removed and re-uploaded with every SetState() call. Split the "LeftRight" output into separate "Strong" and "Weak" outputs. Other minor cleanups. 2019-01-17 12:10:50 -06:00
Léo Lam 3627ef8a04
Merge pull request #7696 from TryTwo/Debugger_Restore_Tabbed_Docking
Qt/Debugger restore tabbed docking
2019-01-17 13:40:02 +01:00
Léo Lam c7373701cc
Merge pull request #7580 from Techjar/netplay-padmapping-type
NetPlay: Remove PadMapping type
2019-01-16 21:57:38 +01:00
Léo Lam fd3ef7ebc5
Merge pull request #7616 from AdmiralCurtiss/memcard-cleanup
Clean up GCMemcard a bit.
2019-01-16 21:56:40 +01:00
Léo Lam e19ee2ad4f
Merge pull request #7664 from jordan-woyak/kill-button-threshold
ControllerEmu: Killed the button group threshold setting.
2019-01-16 21:33:05 +01:00
Léo Lam 3892c3ac48
Merge pull request #7690 from NarryG/dragload-savestate
Reimplement savestate loading via drag and drop (resubmission of #7425)
2019-01-16 21:32:44 +01:00
Dan B d69740c8b4 Reimplement savestate loading via drag and drop 2019-01-16 21:19:31 +01:00
Léo Lam a8bc6f9899
Merge pull request #7693 from jordan-woyak/hotplug-callback-fix
ControllerInterface: Hotplug callback fixes.
2019-01-16 21:00:48 +01:00
Léo Lam b2de98cad1
Merge pull request #7680 from jordan-woyak/dinput-axis-range
DirectInput: Use more than 8 bits of precision on axis inputs.
2019-01-16 18:52:11 +01:00
Léo Lam 634ef78a26
Merge pull request #7705 from cristian64/master
Fixed crash when dereferencing the potential null pointer returned by GetSelectedGame().
2019-01-16 18:51:11 +01:00
Léo Lam c785ccba27
Merge pull request #7712 from linkmauve/gcadapter-flatten
Flatten a GCAdapter function
2019-01-16 18:48:15 +01:00
Emmanuel Gil Peyrot fb6fae2b2b Flatten GCAdapter function
Make CheckDeviceAccess() more flat by inverting checks, reducing
indentation and removing dead code.
2019-01-16 14:20:00 +01:00
Christian Aguilera ee5e2fd9f9 Fixed crash when dereferencing the potential null pointer returned by GetSelectedGame(). 2019-01-16 09:25:47 +00:00
Connor McLaughlin 5962316068
Merge pull request #7643 from weihuoya/texture-overlap
Texture: fx overlap src position
2019-01-16 08:49:36 +10:00
JMC47 1d3e3de44b
Merge pull request #7629 from JosJuice/auto-disc-change
Automatic disc change for 2-disc games
2019-01-15 13:01:36 -05:00
TryTwo b557faa386 Debugger restore tabbed docking 2019-01-11 14:32:27 -07:00
Jordan Woyak b425f86121 ControllerInterface: Allow hotplug callbacks to be unregistered and don't reload the entire config from the ini file on hotplug, just update the control references. This should fix a crash on shutdown on Android. 2019-01-10 18:32:16 -06:00
JMC47 012338288e
Merge pull request #7662 from jordan-woyak/mapping-indicators-make-pretty
ControllerEmu: Make mapping indicators pretty
2019-01-10 19:04:27 -05:00
zackhow 078fc74b54 Android/OGL: fix bounding box for OpenGL-ES
OpenGL-ES does not have glGetBufferSubData, so use glMapBufferRange instead
2019-01-09 21:08:49 -05:00
JosJuice d3e1d2ea00
Merge pull request #7666 from jordan-woyak/input-shutdown-fix
ControllerInterface: Shutdown order and race condition fix.
2019-01-08 14:39:47 +01:00
JosJuice b30a338dd6
Merge pull request #7683 from zackhow/removefullanalog
Android: Change all AnalogInputs to just inputs
2019-01-08 14:01:26 +01:00
Connor McLaughlin 0da5929226
Merge pull request #7626 from weihuoya/vulkan-oom
Always clean cache on render swap
2019-01-08 21:57:25 +10:00
weihuoya 66a7db3850 Always flush on swap 2019-01-08 18:28:59 +08:00
zackhow 02c649ba20 Android: Change all analoginputs to just inputs
Android doesn't report values for the inputs generated by FullAnalogInput so
there isn't a reason to add them as such. This also avoids a bug(for android)
where if there are three inputs(say 12, 11, and 121), and you generate a FullAnalogInput
with 12/11 then it will create another input with the name 121 which can cause conficts
with the real 121 input. This is probably not an issue on PC since most Axis inputs
are named and not numbered.
2019-01-07 21:52:39 -05:00
JMC47 3397824601
Merge pull request #7588 from Techjar/controller-dialog-wiimote-disabled-bug
Qt/ControllersWindow: Fix Wiimote settings not being re-enabled after quitting NetPlay
2019-01-07 16:55:36 -05:00
Anthony 3da06970d9
Merge pull request #7605 from zackhow/jitarmconfigs
Android: Add Jit debug options to menu.
2019-01-07 13:50:57 -08:00
Anthony c73adf8d8e
Merge pull request #7656 from JMC47/DanceMatFix
Fix Emulated Dance Mat
2019-01-07 13:48:50 -08:00
Jordan Woyak a7c45fb49e DirectInput: Use more than 8 bits of precision on axis inputs. 2019-01-06 08:14:37 -06:00
Admiral H. Curtiss 04bcc64e82 GCMemcard: Update formatting of memcard field comments in header. 2019-01-06 14:40:38 +01:00
Admiral H. Curtiss e6acbf7cbe GCMemcard: 'Broken File000' commented out code can't work anymore, but leave a comment about it. 2019-01-06 14:18:00 +01:00
Admiral H. Curtiss 41767daabc GCMemcard: Remove obsolete commented out code, this is handled via InitActiveDirBat() and related. 2019-01-06 14:12:59 +01:00
Admiral H. Curtiss 111f0b38e0 GCMemcard: Update panic alerts and comments to refer to 1st/2nd dir/BAT blocks. 2019-01-06 14:12:59 +01:00
JMC47 0ca9accd8b
Merge pull request #7640 from jordan-woyak/input-fixes
ControllerInterface: Output/Rumble fixes
2019-01-05 17:16:35 -05:00
JMC47 d75e9b2d5d
Merge pull request #7677 from Techjar/netplay-peer-init-fix
NetPlay: Fix server peer initialization hang
2019-01-05 15:10:39 -05:00
Jordan Woyak a995e2f5ba ControllerInterface: Set DInput FF effect parameters sanely. This fixes a crash with periodic effects and my GCPad adapter (probably a divide by zero behind the scenes). 2019-01-05 13:00:04 -06:00
JMC47 1cd5debecf
Merge pull request #7585 from Techjar/netplay-wiimote-extension
NetPlay: Sync Wiimote extension
2019-01-05 05:57:36 -05:00
JosJuice 0c622929ba Add M3U file support for automatic disc switching 2019-01-04 09:24:42 +01:00
JosJuice 352ac91a1c Add a delay before automatically switching discs
Some games don't behave as expected if we eject the disc as soon as
we receive the DVDLowStopMotor command. For instance, Baten Kaitos
never shows the prompt to switch discs or the "Reading disc..." text
(but works correctly other than that).
2019-01-04 09:24:41 +01:00
JosJuice b608e80d8e Don't do automatic disc switching when running e.g. the Wii Menu
We only want automatic disc switching to happen when the game actually
is running, but software like the Wii Menu also uses DVDLowStopMotor.
2019-01-04 09:24:41 +01:00
JosJuice bd665aad5d Automatic disc change for 2-disc games 2019-01-04 09:24:38 +01:00
Mat M 931af76da3
Merge pull request #7668 from spycrab/rpack_fix
UICommon/ResourcePack: Fix packs without manifests crashing Dolphin
2019-01-03 13:59:07 -05:00
JosJuice a8e5f2b922
Merge pull request #7230 from ligfx/remove_clamp_draw_size
RenderBase: don't clamp draw size to window
2019-01-03 18:26:41 +01:00
spycrab c2c23677ed UICommon/ResourcePack: Fix resource packs without manifests being able to crash dolphin 2019-01-02 22:47:18 +01:00
Jordan Woyak 25d43ffd98 ControllerInterface: Shutdown order and race condition fix. 2019-01-02 08:19:42 -06:00
Jordan Woyak 88e588673b Qt Game List: Sort game titles "naturally". e.g. 10 comes after 9. 2019-01-01 06:06:02 -06:00
Jordan Woyak df43fd9472 ControllerEmu: Killed the Buttons group threshold setting. 2018-12-31 08:35:31 -06:00
Jordan Woyak 7efa96eda9 ControllerEmu: code cleanup. 2018-12-30 10:52:45 -06:00
Jordan Woyak 1c24bef594 MappingUI: Organize some color constants and hide IR adjusted Z value when cursor is hidden. 2018-12-30 09:50:22 -06:00
Jordan Woyak 7a00f55cfa ControllerEmu::Cursor: Add input radius/shape settings to IR Cursor mappings to allow use of round inputs in absolute mode. Make relative input option obey the center/width/height settings. Make the mapping indicator pretty and actually show what the relative/center/w/h settings are doing. 2018-12-30 09:10:32 -06:00
Jordan Woyak 247fa8c628 WiimoteEmu: Remove redundant threshold setting from hotkeys button group. 2018-12-29 16:19:28 -06:00
Jordan Woyak c3dc3c106c ControllerEmu: Reorganize stick reshaping code and use it for emu wiimote tilt as well. Also make the tilt mapping indicator pretty. 2018-12-29 16:06:03 -06:00
Jordan Woyak 6a6195f53c ControllerEmu: Implement dead zone setting for triggers. 2018-12-29 13:56:35 -06:00
Jordan Woyak def5c6e573 Mapping UI: Reorganize wiimote extension layouts a bit so things fit better. 2018-12-29 12:59:47 -06:00
Jordan Woyak 970073084a Mapping UI: Make the mixed trigger indicator styling match that of the analog sticks. 2018-12-29 12:46:05 -06:00
spycrab 75b8824c95
Merge pull request #7658 from spycrab/debugger_show
Qt/Debugger: Add Show in Code / Show in Memory
2018-12-29 15:08:51 +01:00
JMC47 f8586bb83c Fix Emulated Dance Mat
I have no idea how it got so broken, but this makes it so both the
Active Life and DDR Mario/Wii games can be fully configured.
2018-12-28 17:47:49 -05:00
Jordan Woyak 2765475e7b HW: DK Bongos actual fix 2018-12-28 15:15:29 -06:00
spycrab 3e3f9565ec Qt/Debugger: Add Show in Code / Show in Memory 2018-12-28 20:30:38 +01:00
Mat M dd1fc70d70
Merge pull request #7644 from jordan-woyak/dk-bongos-fix
HW: DK Bongos clap fix and cleanup
2018-12-28 06:41:10 -05:00
Mat M 2d379446b5
Merge pull request #7642 from MerryMage/fprf-whole
EmuCodeBlock: Fix bug in SetFPRF: Should only consider lower double
2018-12-28 06:37:43 -05:00
Mat M b7db1f020b
Merge pull request #7624 from lioncash/paired-single
PowerPC: Remove separate macros for paired singles
2018-12-28 06:32:45 -05:00
Mat M 8c9f553734
Merge pull request #7620 from lioncash/paired
Interpreter: Handle HID2.PSE and HID2.LSQE bits
2018-12-28 06:30:37 -05:00
Mat M b37455ef46
Merge pull request #7652 from JMC47/NetplayWarning
Update Netplay Main Page Notices
2018-12-28 06:22:56 -05:00
Mat M 2749c50843
Merge pull request #7653 from jordan-woyak/ini-cleanup
IniFile: Minor cleanup. Removed unused function. Improved template usage.
2018-12-28 06:21:24 -05:00
Mat M de03019c77
Merge pull request #7628 from jordan-woyak/stick-shapes
ControllerEmu: Add ability to reshape analog sticks. Make the mapping indicator pretty.
2018-12-28 06:18:56 -05:00
MerryMage 77e9aa48bc Jit64: Remove Jitx86Base class 2018-12-28 09:15:26 +00:00
Jordan Woyak c614f5f534 ControllerEmu: Allow analog stick input radius greater than one. Useful for rounded-square inputs of xbox controllers. 2018-12-27 19:16:37 -06:00
Jordan Woyak da9bcf83ef InputCommon: Simplified StickGate interface and moved class into its own file. Changed default input radius to perform no resizing. Tweaked the indicator colors a bit to improve visibility. Cleaned up some math and code. 2018-12-27 18:31:46 -06:00
Jordan Woyak ceb28a2302 Add ability to reshape analog sticks from square/circle to octagon and make the analog stick mapping indicator pretty. 2018-12-27 18:31:46 -06:00
Tilka bfb9b1aca5
Merge pull request #7602 from CrystalGamma/stop-g_jit
stop using g_jit outside of JitInterface
2018-12-27 23:12:14 +01:00
Tilka 89eedc8c1b
Merge pull request #7625 from jordan-woyak/emu-shake-fix
WiimoteEmu: Shaking emulation fix
2018-12-27 22:32:50 +01:00
MerryMage 26bc38d25d Jit64: Fix instruction breakpoints
Broken by 5236dc3.
2018-12-27 20:11:26 +00:00
Jordan Woyak a464025bba IniFile: Minor cleanup. Removed unused function. Improved template usage. 2018-12-26 20:15:32 -06:00
JMC47 e6b859a923 Update Netplay Main Page Warnings
We now support automatically syncing most things.  Add Dual Core Netplay
Warning.  Update Wii Remote Netplay string since it now kinda works.
2018-12-26 14:23:43 -05:00
Mat M bd527e62ef
Merge pull request #7647 from MerryMage/emit-singles
x64Emitter: Add some single-precision instructions
2018-12-26 09:33:06 -05:00
JosJuice 5b97ea8b40
Merge pull request #7606 from booto/dtk_pos_align
DTK: Report position in increments of 0x8000
2018-12-26 10:22:40 +01:00
MerryMage da7608ff9f x64Emitter: Add some single-precision instructions 2018-12-26 00:23:42 +00:00
JosJuice 2ff1bfdc85
Merge pull request #7646 from leoetlino/temporary-to-permanent
WiiUtils: Clear IPL.TID when re-installing a title manually
2018-12-25 23:46:47 +01:00
Léo Lam 0aef6bc834 WiiUtils: Clear IPL.TID when re-installing a title manually
If the user tries to permanently install a title that has already been
imported, and if that title is currently marked as a temporary title
in IPL.TID, that flag should be cleared.
2018-12-25 20:49:11 +01:00
Jordan Woyak 43f5d4973e Fix wiimote/nunchuk acceleration value clamping (off-by-one).
Add in shaking acceleration rather than overwritting it so it doesn't look like the device is in free-fall. This fixes shaking in "Batman: TBATB". It appears the game only detects shaking along the z-axis and expects gravity to exist.
2018-12-25 12:10:31 -06:00
Jordan Woyak 56256d8624 HW: DK Bongos clap fix and cleanup 2018-12-25 11:24:09 -06:00
Lioncash 244d083f0e PowerPC: Remove separate macros for paired singles
Previously, PowerPC.h had four macros in it like so:

\#define rPS0(i) (*(double*)(&PowerPC::ppcState.ps[i][0]))
\#define rPS1(i) (*(double*)(&PowerPC::ppcState.ps[i][1]))

\#define riPS0(i) (*(u64*)(&PowerPC::ppcState.ps[i][0]))
\#define riPS1(i) (*(u64*)(&PowerPC::ppcState.ps[i][1]))

Casting between object representations like this is undefined behavior.
Given this is used heavily with the interpreter (that is, the most
accurate, but slowest CPU backend), we don't exactly want to allow
undefined behavior to creep into it.

Instead, this adds a helper struct for operating with the paired singles,
and replaces the four macros with a single macro for accessing the
paired-singles/floating-point registers.

This way, it's left up to the caller to explicitly decide how it wants to interpret
the data (and makes it more obvious where different interpretations of
the same data are occurring at, as there'll be a call to one of the
[x]AsDouble() functions).
2018-12-25 10:35:09 -05:00
JosJuice ca2a2c98f2
Merge pull request #7627 from Techjar/netplay-disable-bt-passthrough
Core/BootManager: Disable bluetooth passthrough when booting NetPlay
2018-12-25 15:48:08 +01:00
JosJuice 08ae6d7706
Merge pull request #7525 from JosJuice/nand-title-region
Accurate region detection for NAND titles
2018-12-25 15:36:00 +01:00
weihuoya 184b2edc30 fx texture overlap 2018-12-25 21:24:25 +08:00
Jordan Woyak 0f19c4a40f ControllerInterface: DInput: Update force feedback effects in a thread. This should prevent slowdowns experienced by a handful of users. 2018-12-24 19:40:58 -06:00
MerryMage 0deed2a5af EmuCodeBlock: Fix bug in SetFPRF: Should only consider lower double 2018-12-24 19:02:43 +00:00
Markus Wick e7b53540d8
Merge pull request #7634 from MerryMage/downcount-on-exit
Jit64: Check downcount at block exit, not block entry
2018-12-23 19:34:12 +01:00
MerryMage 5236dc31a6 Jit64: Check downcount at block exit, not block entry 2018-12-23 18:03:29 +00:00
Markus Wick 54f37c3bae
Merge pull request #7631 from MerryMage/crXXX-AeqB
Jit_SystemRegisters: Special-case crXXX for CRBA == CRBB
2018-12-23 17:55:09 +01:00
spycrab fc998093cc
Merge pull request #7600 from spycrab/resource_pack
Implement resource packs
2018-12-23 16:04:05 +01:00
Jordan Woyak d5df56c677 ControllerInterface: Make CoalesceExpression not set the inactive child's value (rumble) to 0. This caused rumble to not enable when a control expression was both a valid "bareword" and "complex" expression. 2018-12-22 11:17:05 -06:00
Jordan Woyak a8d0afe219 Reduce input mapping detection time to 3 seconds because 5 seconds was ridciculously long and output (rumble) testing time to 2 seconds because 5 seconds was annoyingly long. 2018-12-22 10:58:34 -06:00
degasus 64378c90da JitArm64: Fix RC calculation of srawix.
Seems like it was missed from the early implementation.
2018-12-22 17:31:14 +01:00
Jordan Woyak 3a145aeae4 ResetRumble on emu pause/stop regardless of presence of DInput/Xinput as that's not relevant. All the backends would like to stop rumbling. 2018-12-22 07:31:36 -06:00
zackhow 233b00fb7e ConfigManager: add save/load for Jit debug options 2018-12-21 15:06:37 -05:00
MerryMage 174d2b0230 crXXX: Avoid loading twice when CRBA == CRBB 2018-12-21 11:33:18 +00:00
MerryMage 07c146e7e2 crXXX: Remove unnecessary CRBA == CRBD constraint for crclr and crset 2018-12-21 11:20:06 +00:00
spycrab 71d53c922f Implement resource packs 2018-12-19 11:03:09 +01:00
Techjar cf8b730c61 Core/BootManager: Disable bluetooth passthrough when booting NetPlay
Bluetooth passthrough does not and never will work on NetPlay, so we'll
just force the use of emulated bluetooth when booting in NetPlay.
2018-12-17 18:22:13 -05:00
Jordan Woyak 79eb065cf3 Reduce emulated shaking frequency to 6hz. (something more humanly possible) (was ~13hz) 2018-12-15 10:36:22 -06:00
Jordan Woyak a8a6bdcdd2 Compute emulated classic controller calibration data instead of having hardcoded values. 2018-12-15 10:27:06 -06:00
Jordan Woyak 6848812a31 Produce emulated nunchuk calibration data. 2018-12-15 10:27:06 -06:00
CrystalGamma 2f490e44fb stop using g_jit outside of JitInterface
Replace g_jit in x86-64 ASM routines code by m_jit member reference
2018-12-15 01:58:58 +01:00
Lioncash 6d394d03fe Common/GLContext: Make member functions const qualified where applicable
These don't modify object state, so they can be const qualified.
2018-12-14 11:02:26 -05:00
Lioncash 52cae18b01 Interpreter: Handle paired-single HID2.PSE and HID2.LSQE bits
These bits enable or disable paired-single execution based on how
they're set. If PSE isn't set, then all paired-single instructions are
illegal. If PSE is set, but LSQE isn't set, then psq_l, psq_lu, psq_st
and psq_stu are illegal to execute.

Also thanks go out to my roommate @Veegie for letting me use his Wii as
a blasting ground for tests, since mine isn't on hand right now. It only
caught on fire twice and only burned down half of the house through the
process; what a team player.
2018-12-13 22:48:05 -05:00
Lioncash c87a2f57b4 Interpreter_SystemRegisters: Handle reserved/read-only bits for HID2 in mtspr 2018-12-13 11:39:40 -05:00
Admiral H. Curtiss fa6782f841 GCMemcard: Required declaration before C++17. 2018-12-10 20:24:20 +01:00
Admiral H. Curtiss 36d84c6959 GCMemcard: Slightly nicer definition of UNINITIALIZED_GAMECODE. 2018-12-10 20:24:20 +01:00
Admiral H. Curtiss ca2c7679df GCMemcard: Rewrite DEntry_IconFmt() and DEntry_AnimSpeed() to make more sense. 2018-12-10 20:24:20 +01:00
Admiral H. Curtiss 2351a60567 GCMemcard: Let GetDEntry() return std::optional<DEntry>. 2018-12-10 20:24:20 +01:00
Admiral H. Curtiss 860e003b0c GCMemcard: Remove needless second definition of DENTRY_SIZE. 2018-12-09 22:28:58 +01:00
Admiral H. Curtiss 3d77a43e67 GCMemcard: Use std::array for GCMBlock.m_block. 2018-12-09 22:28:58 +01:00
Admiral H. Curtiss ceb9cb53c6 GCMemcard: Rename GCMBlock.block to m_block to match naming conventions. 2018-12-09 22:28:58 +01:00
Admiral H. Curtiss fc70b60d8b GCMemcard: Access active directory/BAT via methods instead of pointers. 2018-12-09 22:28:58 +01:00
Admiral H. Curtiss 7ff65db3b2 GCMemcard: As far as I can tell, the directory and BAT blocks aren't really main and backup, but just two blocks that store data are written to alternately. So store them as an std::array of 2 blocks instead of an explicit 'backup' block. 2018-12-09 22:28:58 +01:00
Admiral H. Curtiss 0aaf24b9cc GCMemcard: Rename GCMemcard variables to match our naming conventions. 2018-12-09 22:28:58 +01:00
Admiral H. Curtiss 4d4b5442bd GCMemcard: Use std::array and BigEndianValue for BlockAlloc.m_map. 2018-12-09 22:28:57 +01:00
Admiral H. Curtiss eb6cc3dbab GCMemcard: Use BigEndianValue for BlockAlloc.m_last_allocated_block. 2018-12-09 22:28:57 +01:00
Admiral H. Curtiss d3b61c3ff0 GCMemcard: Use BigEndianValue for BlockAlloc.m_free_blocks. 2018-12-09 22:28:57 +01:00
Admiral H. Curtiss 88bdab6fe6 GCMemcard: Use BigEndianValue for BlockAlloc.m_update_counter. 2018-12-09 22:28:57 +01:00
Admiral H. Curtiss 0f776fb091 GCMemcard: Use BigEndianValue for Directory.m_update_counter. 2018-12-09 22:28:57 +01:00
Admiral H. Curtiss 2d77096d63 GCMemcard: Use std::array for Directory's members. 2018-12-09 22:28:57 +01:00
Admiral H. Curtiss f8488f4561 GCMemcard: Use std::array for DEntry.m_unused_2. 2018-12-09 22:28:57 +01:00
Admiral H. Curtiss 4175fdf28d GCMemcard: Use std::array for DEntry.m_makercode. 2018-12-09 22:28:57 +01:00
Admiral H. Curtiss deadec608e GCMemcard: Use std::array for DEntry.m_gamecode. 2018-12-09 22:28:57 +01:00
Admiral H. Curtiss 0c638ad858 GCMemcard: Use std::array for DEntry.m_filename. 2018-12-09 22:28:56 +01:00
Admiral H. Curtiss 443729d2c3 GCMemcard: Use BigEndianValue for DEntry.m_comments_address. 2018-12-09 22:28:56 +01:00
Admiral H. Curtiss 8a920dac93 GCMemcard: Use BigEndianValue for DEntry.m_block_count. 2018-12-09 22:28:56 +01:00
Admiral H. Curtiss 675a549628 GCMemcard: Use BigEndianValue for DEntry.m_first_block. 2018-12-09 22:28:56 +01:00
Admiral H. Curtiss 929fd2b41d GCMemcard: Use BigEndianValue for DEntry.m_animation_speed. 2018-12-09 22:28:56 +01:00
Admiral H. Curtiss c3e9f53480 GCMemcard: Use BigEndianValue for DEntry.m_icon_format. 2018-12-09 22:28:56 +01:00
Admiral H. Curtiss 65f6250faa GCMemcard: Use BigEndianValue for DEntry.m_image_offset. 2018-12-09 22:28:56 +01:00
Admiral H. Curtiss 1d25e249e8 GCMemcard: Use BigEndianValue for DEntry.m_modification_time. 2018-12-09 22:28:56 +01:00
Admiral H. Curtiss 2f1ff80dd6 GCMemcard: Use std::array for Header members instead of raw C arrays. 2018-12-09 22:28:56 +01:00
Admiral H. Curtiss 256d336219 GCMemcard: Use BigEndianValue for Header.m_encoding. 2018-12-09 22:28:55 +01:00
Admiral H. Curtiss 8eabcbf294 GCMemcard: Use BigEndianValue for Header.m_size_mb. 2018-12-09 22:28:55 +01:00
Admiral H. Curtiss bfbfcc72a2 GCMemcard: Use BigEndianValue for Header.m_device_id. 2018-12-09 22:28:55 +01:00
Admiral H. Curtiss b3ce882109 GCMemcard: Use BigEndianValue for Header.m_sram_language. 2018-12-09 22:28:55 +01:00
Admiral H. Curtiss 905a16e7e7 GCMemcard: Use BigEndianValue for Header.m_format_time. 2018-12-09 22:28:55 +01:00
Admiral H. Curtiss 9f03c2f358 GCMemcard: Rename BlockAlloc variables to match our naming conventions. 2018-12-09 22:28:55 +01:00
Admiral H. Curtiss 17208f4c89 GCMemcard: Rename Directory variables to match our naming conventions. 2018-12-09 22:28:55 +01:00
Admiral H. Curtiss 15f89d3e6f GCMemcard: Rename DEntry variables to match our naming conventions. 2018-12-09 22:28:55 +01:00
Admiral H. Curtiss c419dac1d8 GCMemcard: Rename Header variables to match our naming conventions. 2018-12-09 22:28:55 +01:00
Admiral H. Curtiss 4b1d891378 GCMemcard: Add a few static asserts for sizes of memory card structures. 2018-12-09 22:28:55 +01:00
Techjar 2e19efa8d5 NetPlay: Sync Wiimote extension
Small addition of NetPlay code in Core.cpp was needed to set the
extensions at the right time, as init would override them otherwise.
This solution is more elegant than modifying the user's INI files on
game start.
2018-12-05 16:36:44 -05:00
Techjar a2545a18b2 Qt/ControllersWindow: Fix Wiimote settings not being re-enabled after quitting NetPlay
We no longer allow accessing controller config while NetPlay is
running, so this check is no longer needed.
2018-12-05 16:12:12 -05:00
Léo Lam 2eb85c8fcf
Merge pull request #7594 from TryTwo/NestedDocks
Add nested docking to increase layout choices while debugging.
2018-12-05 17:14:46 +01:00
Pierre Bourdon 2c57e709d0
Merge pull request #7603 from jordan-woyak/fs-open-file-fix
Present an error message when failing to open a file that should exist.
2018-12-04 08:49:21 +01:00
Stenzek 7afd5cc2fb Use main buffers for utility draws 2018-12-04 17:37:25 +10:00
Stenzek 5ca18ff04e Vulkan: Restore viewport/scissor state on RestoreAPIState 2018-12-04 17:36:08 +10:00
Stenzek b409a87d1a D3D: Clamp viewport to current framebuffer dimensions, not target 2018-12-04 17:36:08 +10:00
Stenzek fa8262fa4a Vulkan: Don't panic on missing color/depth buffer in config 2018-12-04 17:36:08 +10:00
Stenzek 2644e920cc Renderer: Add backbuffer format to base class 2018-12-04 17:36:08 +10:00
Stenzek 1adcd47dcb Renderer: Add a base Initialize() method to match Shutdown() 2018-12-04 17:36:08 +10:00
Stenzek 38479dd783 RenderBase: Force a pipeline flush when drawing the XFB to the host
Since we use the common pipelines here and draw vertices if a batch is
currently being built by the vertex loader, we end up trampling over its
pointer, as we share the buffer with the loader, and it has not been
unmapped yet. Force a pipeline flush to avoid this.
2018-12-04 17:36:08 +10:00
booto 1ab390c15f DTK: Report position in increments of 0x8000 2018-12-04 00:16:46 -05:00
Jordan Woyak 122ce28786 Present an error message when failing to open a file that should exist.
This could happen with savestate loads, permission issues, or use by other processes.
Prior to this Dolphin assumed any existing file could be opened and crashes from invalid variant access.
Failing to open a file during savestate load will likely still crash but at least the user will know why.
2018-12-03 19:07:42 -06:00
weihuoya 3ab0f02cec vulkan: fx index buffer reserve size 2018-12-03 19:23:36 +08:00
Pierre Bourdon f5e9135912
Merge pull request #7598 from sepalani/wfsi
WFSI: Fix Dragon Quest X (all-in-one, v2, v3) installers
2018-12-03 02:39:47 +01:00
Léo Lam 00151fd913
Merge pull request #7601 from sepalani/html-pre
LogWidget: Preserve spaces and newlines
2018-12-02 19:38:54 +01:00
Sepalani d5692afd7d LogWidget: Preserve spaces and newlines 2018-12-02 19:12:12 +04:00
Sepalani 077597b028 VersionInfo: Replace IOS59 v7021 with v9249 2018-12-01 22:29:39 +04:00
Sepalani 5bb7cd251e WFSI: Handle PATCH_TYPE_2 properly in IOCTL_WFSI_FINALIZE_TITLE_INSTALL 2018-12-01 22:28:58 +04:00
Sepalani f351280061 WFSI: Implement IOCTL_WFSI_CHANGE_TITLE 2018-12-01 22:26:47 +04:00
Stenzek e3708ea8c3 Externals: Add MoltenVK binary, copy to package on macOS 2018-12-01 14:35:45 +10:00
Pierre Bourdon 754d934a18
Merge pull request #7596 from Techjar/netplay-fix-force-stop
NetPlay: Allow force stopping
2018-11-30 21:30:04 +01:00
Connor McLaughlin 6388992f62
Merge pull request #7039 from stenzek/moltenvk
Vulkan: macOS support via MoltenVK
2018-11-30 21:55:30 +10:00
Techjar 9c51439144 Qt/NetPlayDialog: Request game stop when core enters stopping state
This makes it possible to gracefully force stop emulation rather than
having to kill Dolphin completely when NetPlay deadlocks in the input
loop. Without a graceful stop, Wii saves do not get flushed to the main
NAND, and are left in limbo in the temporary NAND.
2018-11-30 03:40:23 -05:00
Techjar baecc500e8 Core: Notify state change callback about stopping state 2018-11-30 01:20:22 -05:00
Pierre Bourdon d9cacf6f5a
Merge pull request #7572 from delroth/analytics-quirks
Analytics: add simple framework for game quirks reporting
2018-11-30 05:22:45 +01:00
Pierre Bourdon 4d14d5ee9b
Merge pull request #7587 from Techjar/disable-controller-config-netplay
Qt: Disable controller configuration while NetPlay is running
2018-11-29 14:28:18 +01:00
Techjar 577f6a5fb1 Qt: Disable controller configuration while NetPlay is running
Doing pretty much anything in the controller config breaks NetPlay
(desync and/or deadlock), as saving the settings reconfigures
controller interfaces, which NetPlay doesn't expect.
2018-11-29 07:31:45 -05:00
Pierre Bourdon 09deed8aa4
Merge pull request #7586 from Techjar/controller-dialog-button-thing
Qt/ControllersWindow: Fix incorrect enabled states of configure buttons
2018-11-29 03:34:11 +01:00
TryTwo c18aa36eab Add nested docking to increase layout choices while debugging. 2018-11-27 11:14:46 -07:00
Techjar 9bb3c7d839 Qt/ControllersWindow: Fix incorrect enabled states of configure buttons
All configure buttons would be enabled, although no-op, upon
initialization of the dialog. Changing a setting to cause a save would
fix them.
2018-11-23 04:47:49 -05:00
Techjar 5c81285b91 NetPlay: Fix server peer initialization hang
The implementation of peer initialization would hang if the initial
packet was never received. This fixes that issue by deferring the
initialization to the packet receive loop.
2018-11-22 03:15:49 -05:00
Pierre Bourdon 8d20a173f0
Merge pull request #7579 from AdmiralCurtiss/next-free-block-fix
GCMemcard: Fix mixed memcard-based and bat-based indices in definition and usage of NextFreeBlock().
2018-11-22 06:54:52 +01:00
Jordan Woyak fae368d2ee
Fix spurious error logs for conversions of empty strings on Windows. 2018-11-22 06:50:11 +01:00
Pierre Bourdon 0c6d677233
Merge pull request #7582 from AdmiralCurtiss/memcard-delete-wrong-dir
GCMemcard: Fix incorrect directory block being accessed in RemoveFile().
2018-11-22 06:43:25 +01:00
Pierre Bourdon c9d5ac3e9a Updater/UI: ITaskbarlist3 handling improvements.
* Properly error-check the interface querying and instance creation.
* Call HrInit() as required when getting the instance.
2018-11-22 02:46:36 +01:00
Pierre Bourdon 1805f51d79
Merge pull request #7446 from Techjar/wii-save-full-sync
NetPlay: Add full Wii save sync
2018-11-21 00:22:50 +01:00
Admiral H. Curtiss 431e6c42e1 GCMemcard: Fix incorrect directory block being accessed in RemoveFile().
When deleting files, block index data was always fetched from the first copy of the directory listing rather than the currently active one.
2018-11-21 00:15:58 +01:00
Admiral H. Curtiss 353e289fbf GCMemcard: Fix mixed memcard-based and bat-based indices in definition and usage of NextFreeBlock(). 2018-11-19 20:40:18 +01:00
JosJuice 46fe0669a5 Minor fixes to netplay sync strings 2018-11-19 19:54:55 +01:00
Techjar b06b7e5686 NetPlay: Add full Wii save sync
This adds the ability to sync all Wii saves, instead of only the
selected game. Useful for cases like launching a game though GeckoOS.
2018-11-19 06:37:09 -05:00
Techjar f4eb4fab08 HW/WiiSave: Fix reversed condition in WriteFiles
This didn't make any sense, as it would only attempt to create the directory if it already existed, and would simply fail if it didn't exist.
2018-11-19 06:37:09 -05:00
Techjar 6730748309 NetPlay: Use chunked data transfer for save sync 2018-11-19 06:37:09 -05:00
Techjar d94922002b NetPlay: Implement chunked data transfer
This sends arbitrary packets in chunks to be reassembled at the other
end, allowing large data transfers to be speed-limited and interleaved
with other packets being sent. It also enables tracking the progress of
large data transfers.
2018-11-19 06:37:09 -05:00
Techjar 529796bd59 NetPlay: Remove PadMapping type
Its usage was inconsistent, confusing, and buggy, so I opted to just
remove it entirely. It has been replaced with PadIndex for the
appropriate instances (mainly networking), and inappropriate usages
(where it was really just a player ID) have been replaced with the
PlayerId type. The definition of "no mapping" has been changed from -1
to 0 to match the defintion of "no player", as -1 (255 unsigned) is
actually a valid player ID.

The bugs never manifested because it only occurs with a full lobby of
255 players, at which point the last player's ID collides with the "no
mapping" definition and some undefined behavior occurs. Nevertheless, I
thought it best to fix it anyways as the usage of PadMapping was
confusing.
2018-11-19 05:45:32 -05:00
Pierre Bourdon e6b2758ab4
Merge pull request #7477 from Zexaron/ext-minizip
Externals: Add a stripped down version of minizip
2018-11-17 22:23:02 +01:00
Léo Lam c56516502d
Merge pull request #7440 from JosJuice/wii-menu-1.0-region
Never return Unknown from SConfig::GetFallbackRegion
2018-11-17 21:18:38 +01:00
Pierre Bourdon 08f9df2461
Merge pull request #7574 from spycrab/updater_pb
Updater: Add total progressbar
2018-11-17 16:42:32 +01:00
spycrab 3cfa255c5a Updater: Add total progressbar 2018-11-17 16:37:53 +01:00
Techjar 94d7e7d78a Qt/NetPlayDialog: Add external IP to interface combo box
The interface address isn't particularly useful in most circumstances
(playing over internet), and we have a way to get the external IP now,
so displaying it in the dialog is useful.
2018-11-15 03:29:28 -05:00
Pierre Bourdon ef562ec2f1 Analytics: add simple framework for game quirks reporting
And use it for reporting games that rely on ICache emulation to some
degree. We know of a few but it would be interesting to get a more
exhaustive list from crowdsourcing.
2018-11-15 03:32:49 +01:00
Pierre Bourdon 6b7a1ca6d1
Merge pull request #7535 from UnclePunch/synccodes
Netplay: Sync AR and gecko codes with clients
2018-11-13 22:39:25 +01:00
Pierre Bourdon 41333fa971
Merge pull request #7564 from Techjar/netplay-sync-wii-shutdown
NetPlay: Sync power button event
2018-11-13 22:33:59 +01:00
Techjar ef89e4e70c NetPlay: Sync power button event
This fixes the deadlock on shutdown when Wii Remotes are in use.
2018-11-12 22:32:18 -05:00
Stenzek 502c4c0e87 TextureCache: Recompute overlapping XFB copy hashes after copying to RAM 2018-11-13 12:48:27 +10:00
Techjar caf2fc3c3e NetPlay: Sync Defer EFB Copies setting 2018-11-12 20:45:12 -05:00
Pierre Bourdon 97e3200f57
Merge pull request #7519 from stenzek/controller-window
Core: Switch controller interface to render surface on booting
2018-11-12 17:26:03 +01:00
Stenzek a0653a1a34 Vulkan: Fix incorrect fence being assigned to staging texture 2018-11-12 01:02:32 +10:00
Pierre Bourdon a9f7df5b15 SystemTimers: fix a 1-in-1000 crash happening in throttler performance 2018-11-10 20:50:17 +01:00
MerryMage df08a77812 Jit_LoadStore: Ra needs to be ReadWrite when writeback is required
This was an erronous change in 534db3b, Ra was previously loaded but was changed to not being loaded.
Why is loading necessary? Loading is necessary because when a memory exception occurs, the current
register values are flushed. This occurs before a new value is loaded into Ra, so the previous value
is required in Ra.
2018-11-10 10:57:15 +00:00
JosJuice 0e1cca54da
Merge pull request #7555 from Techjar/config-delcaration-unused
Core/Config: Remove unused NETPLAY_SELECTED_HOST_GAME declaration
2018-11-09 08:07:21 +01:00
Pierre Bourdon 61b9ef33ab
Merge pull request #7492 from MerryMage/regcache2
JitRegCache: Refactor register cache
2018-11-09 04:45:47 +01:00
Techjar 4fd2a25253 Core/Config: Remove unused NETPLAY_SELECTED_HOST_GAME declaration 2018-11-08 22:39:42 -05:00
Pierre Bourdon 162e34ad22
Merge pull request #7534 from Techjar/fix-netplay-gamelist-saving
NetPlay: Fix saving host game selection
2018-11-09 04:28:55 +01:00
Pierre Bourdon 541c5ee996
Merge pull request #7550 from JosJuice/widescreen-hack-suggested-ratio
Fix the widescreen hack for Wii games with 4:3 forced in game INI
2018-11-09 04:28:31 +01:00
Pierre Bourdon e903d346ea
Merge pull request #7552 from stenzek/texture-cache-leak
TextureCache: Fix leaking TCacheEntry instances
2018-11-09 04:27:14 +01:00
spycrab 1595a9bdcd Updater: Show progress in taskbar 2018-11-08 11:54:56 +01:00
Stenzek 78056686fd TextureCache: Fix leaking TCacheEntry instances 2018-11-08 11:52:17 +10:00
JosJuice a42432cae4 RenderBase: Set m_aspect_wide on start
It doesn't feel great to let the value from a previous emulation session
linger around considering that the GC aspect ratio heuristic can use
the previous value of m_aspect_wide when calculating m_aspect_wide.
2018-11-07 19:01:45 +01:00
JosJuice b93b7ec419 Fix the widescreen hack for Wii games with 4:3 forced in game INI 2018-11-07 19:00:24 +01:00
Pierre Bourdon 16a618f413
Merge pull request #7548 from stenzek/graphics-window-crash
OGL: Fix crash when opening graphics window on another backend
2018-11-07 17:45:52 +01:00
Pierre Bourdon a77882468b
Merge pull request #7544 from DXGLdotinfo/master
Add supportedOS manifests for Windows 7, 8, 8.1, and 10 to DolphinQt …
2018-11-07 15:35:56 +01:00
Stenzek 0c0d66809d PixelShaderGen: Split bbox into seperate variables
The Metal shader compiler fails to compile the atomic instructions
when operating on individual components of a vector. Spltting it
into four variables shouldn't make any difference for other
platforms, as they are accessed independently.
2018-11-07 05:41:09 -08:00
Stenzek 673f1963a0 Vulkan: Support macOS via MoltenVK
The path to the MoltenVK library can be specified by the
LIBMOLTENVK_PATH environment variable, otherwise it assumes it is
located in the application bundle's Contents/MacOS directory.
2018-11-07 05:41:09 -08:00
Stenzek c7a2b1572b CMake: Build Vulkan backend on macOS 2018-11-07 05:12:20 -08:00
Stenzek 041b977523 Common: Use GCD semaphores on macOS
Unnamed semaphores are not supported.
2018-11-07 05:12:20 -08:00
Stenzek a1b9a9f519 DolphinQt: Add backend multithreading to graphics config 2018-11-07 05:12:20 -08:00
Stenzek 487ea5ab36 VideoBackend: Add a virtual PrepareWindow function
Executes backend-specific commands on the main thread.
2018-11-07 05:12:20 -08:00
Pierre Bourdon c52bdba28a
Merge pull request #7542 from Tilka/fifo_analyzer
FIFOAnalyzer: don't use misleading format strings
2018-11-07 13:26:01 +01:00
Stenzek 7efdd1070b OGL: Fix crash when opening graphics window on another backend 2018-11-07 21:20:12 +10:00
Techjar dfa4395ba0 Core/Config: Fix memcard path not being saved 2018-11-07 04:29:44 -05:00
Stenzek a45f977d26 Analytics: Add deferred EFB copies setting to graphics settings 2018-11-07 16:25:01 +10:00
Stenzek 66b6e72c5e Vulkan: Submit fewer command buffers in deferred EFB copies mode 2018-11-07 16:25:01 +10:00
Stenzek 8e2c063d62 TextureCache: Implement deferred/batched EFB copies 2018-11-07 16:25:01 +10:00
William 6d437b282a Add supportedOS manifests for Windows 7, 8, 8.1, and 10 to DolphinQt and Updater. Enables high contrast themes on Windows 8+. 2018-11-03 22:33:55 -04:00
Tillmann Karras 6714159660 FIFOAnalyzer: don't use misleading format strings 2018-11-03 14:37:22 +00:00
JosJuice 20b8c24847 Fix first DTK track not playing after booting with IPL
DVDLowAudioBufferConfig doesn't start a DTK stream, it just tells the
drive that the game is allowed to use DTK. At least if I'm not mistaken.
2018-11-01 21:06:11 +01:00
Vin Bertinelli 469f29350f Netplay: Sync codes
Adds a tickbox to the server's window to syncronize codes. Codes
are temporarily sent to each client and are used for the duration of the
session.

Saves the "sync codes" tickbox as per PR Netplay: Properly save hosting
settings #7483
2018-10-29 23:00:51 +01:00
Techjar 203ecb534d NetPlay: Fix saving host game selection 2018-10-29 17:01:30 -04:00
Pierre Bourdon 6bb31fc94c DolphinQt: tell analytics to reload settings on change 2018-10-29 05:07:47 +01:00
Stenzek 6392be61eb Host: Also call ControllerInterface::ChangeWindow when window changes
This should prevent us from trying to poll against destroyed native
windows.
2018-10-29 11:46:06 +10:00
Stenzek cb6ba59a44 Host: Don't call ChangeSurface when handle hasn't changed
This was causing a deadlock when switching to fullscreen in
render-to-main-window mode.
2018-10-29 11:46:06 +10:00
Stenzek 52828901ef Core: Switch controller interface to render widget on booting
Previously, the Qt frontend would initialize the controller
interface on starting, resulting in the cursor position being
relative to the main window, instead of the render window.
2018-10-29 11:46:06 +10:00
Stenzek a7f334dc2a ControllerInterface: Don't crash on non-X11 QPA 2018-10-29 11:46:06 +10:00
Pierre Bourdon 9095233d21
Merge pull request #7483 from Zexaron/netplay_save-host-settings
Netplay: Properly save hosting settings
2018-10-29 01:44:41 +01:00
Pierre Bourdon f1413dbbf6
Merge pull request #7501 from Techjar/class-memaccess-cleanup
VideoCommon: Clean up class-memaccess warnings
2018-10-28 23:59:51 +01:00
Pierre Bourdon 7094f225d4
Merge pull request #7515 from JosJuice/wcsftime
Use wcsftime instead of strftime on Windows to fix encoding errors
2018-10-28 23:58:17 +01:00
Pierre Bourdon 53a45e5c28
Merge pull request #7445 from Techjar/improve-sfmlhelper
Improve SFMLHelper
2018-10-28 23:53:59 +01:00
Pierre Bourdon 98987beb73
Merge pull request #7526 from Tilka/mo_logging
DolphinQt: reduce warnings about MO files
2018-10-28 23:52:22 +01:00
Pierre Bourdon 2071dea9b7
Merge pull request #7497 from stenzek/lazy-initialize
Qt/MainWindow: Lazy initialize child windows
2018-10-28 23:51:23 +01:00
MerryMage 342067abfa JitRegCache: Remove old interface 2018-10-28 17:57:46 +00:00
MerryMage 08c41090b2 JitRegCache: Add RegistersInUse 2018-10-28 17:57:46 +00:00
MerryMage 096392f295 JitRegCache: Add PreloadRegisters function 2018-10-28 17:57:46 +00:00
MerryMage 9f683f9bb1 BitSet: Add << operator 2018-10-28 17:57:46 +00:00
MerryMage e699b6b283 Jit: Remove OpArg variant of ComputeRC 2018-10-28 17:57:46 +00:00
MerryMage 7d7316c90f Jit_SystemRegisters: mffsx 2018-10-28 17:57:46 +00:00
MerryMage 62484141f2 Jit_SystemRegisters: mtfsfx 2018-10-28 17:57:46 +00:00
MerryMage 192f8ba6f1 Jit_Paired: ps_res 2018-10-28 17:57:46 +00:00
MerryMage 66d9349643 Jit_Paired: ps_rsqrte 2018-10-28 17:57:45 +00:00
MerryMage 3fc3a55a9a Jit_Paired: mergeXX 2018-10-28 17:57:45 +00:00
MerryMage cf5823c146 Jit_Paired: ps_muls 2018-10-28 17:57:45 +00:00
MerryMage 1550729688 Jit_Paired: ps_sum 2018-10-28 17:57:45 +00:00
MerryMage be8fec6244 Jit_Paired: ps_mr 2018-10-28 17:57:45 +00:00
MerryMage 96b86a9bc4 Jit_FloatingPoint: HandleNaNs 2018-10-28 17:57:45 +00:00
MerryMage 0a96da578e Jit_FloatingPoint: fresx 2018-10-28 17:57:45 +00:00
MerryMage e812a62879 Jit_FloatingPoint: frsqrtex 2018-10-28 17:57:45 +00:00
MerryMage 68bbd56c01 Jit_FloatingPoint: frspx 2018-10-28 17:57:45 +00:00
MerryMage cc77e2f3ef Jit_FloatingPoint: fctiwx 2018-10-28 17:57:45 +00:00
MerryMage 457327cbc4 Jit_FloatingPoint: FloatCompare 2018-10-28 17:57:45 +00:00
MerryMage 55c21a15a2 Jit_FloatingPoint: fmrx 2018-10-28 17:57:45 +00:00
MerryMage fecbf091e5 Jit_FloatingPoint: fselx 2018-10-28 17:57:45 +00:00
MerryMage d62ca40496 Jit_FloatingPoint: fsign 2018-10-28 17:57:45 +00:00
MerryMage 537eeb7ebf Jit_FloatingPoint: fmaddXX 2018-10-28 17:57:45 +00:00
MerryMage a26c9c4b74 Jit_FloatingPoint: fp_arith 2018-10-28 17:57:45 +00:00
MerryMage 2337e089bf Jit_SystemRegisters: mtspr 2018-10-28 17:57:45 +00:00
MerryMage d87436c57d Jit_LoadStorePaired: psq_lXX 2018-10-28 17:57:45 +00:00
MerryMage 0b29b5cb83 Jit_LoadStorePaired: psq_stXX 2018-10-28 17:57:45 +00:00
MerryMage 459f977483 Jit_LoadStoreFloating: stfiwx 2018-10-28 17:57:45 +00:00
MerryMage dcfe955087 Jit_LoadStoreFloating: stfXXX 2018-10-28 17:57:45 +00:00
MerryMage f564da7233 Jit_LoadStoreFloating: lfXXX 2018-10-28 17:57:45 +00:00
MerryMage 36790ad3ad Jit_SystemRegisters: mtcrf 2018-10-28 17:57:45 +00:00
MerryMage d8b2bf785a Jit_SystemRegisters: mfcr 2018-10-28 17:57:45 +00:00
MerryMage 6ff8f9e991 Jit_SystemRegisters: mfmsr 2018-10-28 17:57:45 +00:00
MerryMage 5fa6df8c1e Jit_SystemRegisters: mtmsr 2018-10-28 17:57:45 +00:00
MerryMage 1d867493d9 Jit_SystemRegisters: mfspr 2018-10-28 17:57:45 +00:00
MerryMage 9438ea0ef5 Jit_LoadStore: stmw 2018-10-28 17:57:45 +00:00
MerryMage 98cf0b3286 Jit_LoadStore: lmw 2018-10-28 17:57:45 +00:00
MerryMage c6b9712ac4 Jit_LoadStore: stXx 2018-10-28 17:57:44 +00:00
MerryMage 90cef22d57 Jit_LoadStore: stX 2018-10-28 17:57:44 +00:00
MerryMage 4a2efc8f5e Jit_LoadStore: dcbz 2018-10-28 17:57:44 +00:00
MerryMage 0e501e5c36 Jit_LoadStore: dcbx 2018-10-28 17:57:44 +00:00
MerryMage 534db3b2ed Jit_LoadStore: lXXx 2018-10-28 17:57:44 +00:00
MerryMage 00d65f7a69 Jit: memcheck 2018-10-28 17:57:44 +00:00
MerryMage c896d41c37 DoJit 2018-10-28 17:57:44 +00:00
MerryMage 4443b36326 Jit_Branch: bclrx 2018-10-28 17:57:44 +00:00
MerryMage 0cd85bbce7 Jit_Branch: bcctrx 2018-10-28 17:57:44 +00:00
MerryMage 453417ad8c Jit_Branch: bcx 2018-10-28 17:57:44 +00:00
MerryMage 256e234949 Jit_Integer: DoMergedBranchCondition 2018-10-28 17:57:44 +00:00
MerryMage 0d3393b306 Jit_Integer: rlwimix 2018-10-28 17:57:44 +00:00
MerryMage b866b5bdd9 Jit_Integer: reg_imm 2018-10-28 17:57:44 +00:00
MerryMage ace2ed27ac Jit_Integer: DoMergedBranchImmediate 2018-10-28 17:57:44 +00:00
MerryMage 88e5d0d8b1 Jit_Integer: cmpXX 2018-10-28 17:57:44 +00:00
MerryMage b256286690 Jit_Integer: boolX 2018-10-28 17:57:44 +00:00
MerryMage b7a4296bec Jit_Integer: extsXx 2018-10-28 17:57:44 +00:00
MerryMage c380764ed0 Jit_Integer: twX 2018-10-28 17:57:44 +00:00
MerryMage 5621907283 Jit_Integer: cntlzwx 2018-10-28 17:57:44 +00:00
MerryMage 31bd9b5cd0 Jit_Integer: srawix 2018-10-28 17:57:44 +00:00
MerryMage 817fddf734 Jit_Integer: srawx 2018-10-28 17:57:44 +00:00
MerryMage 32572dd639 Jit_Integer: slwx 2018-10-28 17:57:44 +00:00
MerryMage 22600b33ee Jit_Integer: srwx 2018-10-28 17:57:44 +00:00
MerryMage 4a97f31aa2 Jit_Integer: negx 2018-10-28 17:57:44 +00:00
MerryMage 42614ede16 Jit_Integer: rlwnmx 2018-10-28 17:57:44 +00:00
MerryMage d4e2acc9cd Jit_Integer: rlwinmx 2018-10-28 17:57:44 +00:00
MerryMage bde5df03a3 Jit_Integer: arithcx 2018-10-28 17:57:44 +00:00
MerryMage 6ce718b920 Jit_Integer: arithXex 2018-10-28 17:57:44 +00:00
MerryMage 9bf75a0f31 Jit_Integer: addx 2018-10-28 17:57:44 +00:00
MerryMage 50e7b97406 Jit_Integer: divwx 2018-10-28 17:57:44 +00:00
MerryMage f945457915 Jit_Integer: divwux 2018-10-28 17:57:44 +00:00
MerryMage 2652d4dfdb Jit_Integer: mulhwXx 2018-10-28 17:57:44 +00:00
MerryMage 24aadd933e Jit_Integer: mullwx 2018-10-28 17:57:44 +00:00
MerryMage 02deaab6ee Jit_Integer: mulli 2018-10-28 17:57:44 +00:00
MerryMage 497ac5789d Jit_Integer: subfx 2018-10-28 17:57:44 +00:00
MerryMage 64c29ab942 Jit_Integer: Port subfic to new register cache interface 2018-10-28 17:57:44 +00:00
MerryMage 33812319ac Jit: Add preg_t variant of ComputeRC 2018-10-28 17:57:44 +00:00
MerryMage 5e46c16e4f JitRegCache: Add IsZero to RCOpArg 2018-10-28 17:57:43 +00:00
MerryMage 2e955012b2 JitRegCache: Add BindOrImm 2018-10-28 17:57:43 +00:00
MerryMage 590ec866b0 JitRegCache: Add revertable binds 2018-10-28 17:57:43 +00:00
MerryMage 16f8b7413d JitRegCache: IsAllUnlocked 2018-10-28 17:57:43 +00:00
MerryMage 6c61d9a426 JitRegCache: RCForkGuard 2018-10-28 17:57:43 +00:00
MerryMage 367a0bb672 JitRegCache: Add RCOpArg::ExtractWithByteOffset 2018-10-28 17:57:43 +00:00
MerryMage ae1bd7a6b0 JitRegCache: New interface 2018-10-28 17:57:43 +00:00
MerryMage 6fef683e14 JitRegCache: Move files to subdirectory 2018-10-28 17:57:43 +00:00
MerryMage 448fc89e4c JitRegCache: Count locks/unlocks 2018-10-28 17:57:43 +00:00
MerryMage 2dce7e6e21 Common: Add variant utilities 2018-10-28 17:57:43 +00:00
Pierre Bourdon 98b0efb6de
Merge pull request #7499 from JosJuice/purge-game-list-cache
DolphinQt: Implement "Purge Game List Cache"
2018-10-28 17:00:04 +01:00
Tillmann Karras 13930f565a DolphinQt: reduce warnings about MO files 2018-10-28 11:45:59 +00:00
JosJuice 8baafcc523 Accurate region detection for NAND titles 2018-10-28 11:27:08 +01:00
Stenzek 7c4607a05a Vulkan: Add missing increment of draw call count 2018-10-28 11:32:26 +10:00
Pierre Bourdon 756a2fe14d
Merge pull request #7517 from delroth/analytics-perf
Report performance information through our analytics subsystem
2018-10-28 00:43:12 +02:00
Pierre Bourdon 83c3370c2a RenderBase: send performance sample at every end of frame
Not the best integration point, but couldn't think of something better.
This implementation has the benefit to be super simple.
2018-10-27 17:39:54 +02:00
Pierre Bourdon 6a891ea37c Core/Analytics: add support for performance sampling
Samples are pushed to the analytics module every frame but only sent
once every ~15min. We send data for 100 frames at a time.
2018-10-27 17:39:53 +02:00
Pierre Bourdon d98c0da41b Common/Analytics: add basic support for vector serialization
Only supports u32 for now since that's the only thing we need.
2018-10-27 17:16:58 +02:00
Pierre Bourdon 64e04eb38c SystemTimers: export performance index from the throttler callback 2018-10-27 15:14:59 +02:00
JosJuice 5718b870d1 Use wcsftime instead of strftime on Windows to fix encoding errors
Reported by https://forums.dolphin-emu.org/Thread-odd-codes-appear-in-save-load-state-when-chinese-language-is-used
2018-10-26 14:26:21 +02:00
JosJuice 34edcdd454 Never return Unknown from SConfig::GetFallbackRegion
This happens if Wii Menu 1.0 is installed.

Reported by https://forums.dolphin-emu.org/Thread-default-case-should-not-be-reached
2018-10-25 17:54:13 +02:00
JosJuice 8bbec31295 DolphinQt: Implement "Purge Game List Cache"
This is a missing feature from DolphinWX.
2018-10-25 08:29:54 +02:00
Mat M 74c49c961e
Merge pull request #7504 from JosJuice/game-id-partition-none
Fix issue 11422 (inconsistent game ID for some hacked games)
2018-10-24 21:15:10 -04:00
Pierre Bourdon eadb4a66a5 ThrottleCallback: use microseconds to represent realtime
Using milliseconds doesn't provide a lot of granularity, and we can use
all we can get for performance analysis.
2018-10-25 02:27:49 +02:00
Stenzek 8c84e27155 Core: Fix display being passed as surface to ControllerInterface 2018-10-24 15:24:10 +10:00
Stenzek 1e8cdc02d1 CMake: Fix DolphinNoGUI build 2018-10-24 14:50:23 +10:00
Stenzek 2c6d96433c GLContext: Try GL versions 3.2-4.6 when getting a context
GLX previously was only creating a 4.0 context.
2018-10-20 21:11:34 +10:00
Stenzek c95802afeb CMake: Make X11 and EGL optional 2018-10-20 21:11:34 +10:00
Stenzek 0559311f92 GLContext: Runtime selection of EGL/GLX on Linux 2018-10-20 21:11:34 +10:00
Stenzek 025e909773 GLContext: Use destructor instead of Shutdown() to cleanup
Also uses the Initialize() method to make the context current.
2018-10-20 21:11:34 +10:00
Stenzek 4b8d1c2b42 GLContext: Combine shared context initialization and creation 2018-10-20 21:11:34 +10:00
Stenzek dcdd02d646 GLContext: Remove global context pointer 2018-10-20 21:11:34 +10:00
Stenzek eb284b5d66 VideoBackends: Pass window system info from host on creation 2018-10-20 21:11:34 +10:00
Stenzek 9c57a98723 GLContext: Use host connection
This also removes the need for a sleeping event thread.
2018-10-20 21:11:34 +10:00
Stenzek 1d827a5223 Renderer: Pull dimensions from GLInterface/Swapchain 2018-10-20 21:11:34 +10:00
Stenzek a3961750a7 Drop Host_GetRenderSurface and pass display to backend 2018-10-20 21:11:34 +10:00
Stenzek 134d967be2 Refactoring and cleanup of GLInterface (now GLContext) 2018-10-20 21:11:34 +10:00
Stenzek 74b82bab3b GLInterface: Drop Haiku support 2018-10-20 21:11:33 +10:00
Tillmann Karras 97cc9894e4 Update to Visual Studio's default Windows SDK 2018-10-20 00:53:08 +01:00
Mat M 4d62037f88
Merge pull request #7505 from JosJuice/korean-country-code
DiscIO: Restore the Korean case in CountryCodeToCountry
2018-10-19 17:28:50 -04:00
JosJuice 338f3467e5 DiscIO: Restore the Korean case in CountryCodeToCountry
I must've goofed or something last time I changed this.
2018-10-19 18:45:59 +02:00
JosJuice 03d401127e Fix issue 11422 (inconsistent game ID for some hacked games)
Starting with PR 7411, the rest of Dolphin reads the game ID from
PARTITION_NONE, but SetRunningGameMetadata was still reading from
the game partition. https://bugs.dolphin-emu.org/issues/11422
2018-10-16 21:41:28 +02:00
Tilka cb576bf382
Merge pull request #7503 from MerryMage/signed_comparison
BTReal: Correct comparison of integers of different signs
2018-10-15 19:36:45 +01:00
MerryMage 688e8db904 BTReal: Correct comparison of integers of different signs 2018-10-15 19:30:58 +01:00
Anthony cffca7cbec
Merge pull request #7502 from JosJuice/functions-signature
Improve the "functions signature" string
2018-10-15 11:01:36 -07:00
JosJuice 4a07b9a0e1 Improve the "functions signature" string 2018-10-15 18:31:02 +02:00
Techjar 8560eecd49 VideoCommon: Clean up class-memaccess warnings 2018-10-14 23:05:47 -04:00
Z1ni d7640f5929 Qt/GameList: Cancel ISO compression when the user cancels the save dialog 2018-10-14 21:04:43 +03:00
Stenzek ea77899ddd Qt/MainWindow: Maintain pointer to hotkey window
Prevents multiple hotkey windows from being opened.
2018-10-14 22:24:31 +10:00
Stenzek 211a9bf6d2 Qt/MainWindow: Lazy initialize child windows 2018-10-14 21:46:59 +10:00
Tilka b5d855caf7
Merge pull request #7496 from stenzek/null-shader-cache
ShaderCache: Don't create or load shader cache with Null backend
2018-10-14 12:30:32 +01:00
Stenzek e3f475b30e NullBackend: Initialize vtx_decl in VertexFormat
This field was previously left uninitialized, which resulted in corrupted
UID caches being created.
2018-10-14 21:24:09 +10:00
Tilka 660fb3fca0
Merge pull request #7412 from AdmiralCurtiss/xfb-stitch-in-order
Stitch together overlapping XFB regions in order of XFB copy creation.
2018-10-14 12:00:41 +01:00
Stenzek c2fab7f016 ShaderCache: Don't create or load shader cache with Null backend 2018-10-14 20:03:57 +10:00
Tilka 64515d0840
Merge pull request #7216 from leoetlino/test
Fix BT passthrough by sending larger packets
2018-10-14 10:22:51 +01:00
Tilka 8d1e996f39
Merge pull request #7495 from JosJuice/wii-menu-1.0-region-3
Show 1.0U instead of 1.0 for Wii Menu 1.0
2018-10-14 09:49:26 +01:00
JosJuice 34c05e17dc Show 1.0U instead of 1.0 for Wii Menu 1.0
As suggested by https://github.com/dolphin-emu/dolphin/pull/7487#issuecomment-429528407
2018-10-14 09:47:47 +02:00
Tilka e18fbb9bd3
Merge pull request #7449 from amaiorano/fix-extensions-combo-update-on-reset-defaults
Fix extensions combo update on reset defaults
2018-10-14 02:22:54 +01:00
Tilka 9a1f259626
Merge pull request #7486 from amaiorano/fix-infinite-polling-for-usb-devices
Fix infinite polling for usb devices after the "add to whitelist" dia…
2018-10-14 01:13:35 +01:00
Tilka 1abb27909d
Merge pull request #7480 from sp00nd/master
Change gecko sorting back to manual
2018-10-14 01:07:51 +01:00
Tilka 2d0e217715
Merge pull request #7485 from amaiorano/double-click-to-add-usb-whitelist-device
Make double click on selected usb whitelist device add it
2018-10-14 01:02:50 +01:00
MerryMage 93ec976975 Jit_SystemRegisters: Correct behaviour for mtspr SPR_HID0 (Redux)
* BTR modifies its argument.
* Do not fallthrough.
2018-10-13 19:20:08 +01:00
Pierre Bourdon 2508f6c621
Revert "Jit_SystemRegisters: Correct behaviour for mtspr SPR_HID0" 2018-10-13 20:04:30 +02:00
Pierre Bourdon 2bdee9b80b
Merge pull request #7455 from spycrab/qt_tags
Qt/GameList: Implement tag system
2018-10-13 19:58:32 +02:00
MerryMage e7a65c31a8 Jit_SystemRegisters: Correct behaviour for mtspr SPR_HID0
BTR modifies its argument
2018-10-13 15:59:40 +01:00
Zexaron 550aa93ed0 NetPlay: Properly save Hosting GUI settings 2018-10-13 10:35:42 +02:00
Antonio Maiorano 3dec84a91b Fix infinite polling for usb devices after the "add to whitelist" dialog has been opened once
Problem is that USBDeviceAddToWhitelistDialog starts a timer once created to poll for devices every second. In Qt, closing a heap-allocated dialog doesn't delete it, so it keeps on polling. This fix is to allocate dialog on the stack, then use "exec" to run it modally without returning. Once closed, the stack instance will get destroyed, thus killing the timer.
2018-10-12 21:34:05 -04:00
MerryMage d60345f15e Jit_FloatingPoint: Make fp_tri_op a local lambda 2018-10-12 20:46:02 +01:00
Tilka 94f07e7fa9
Merge pull request #7472 from Z1ni/usb-dev-dialog-close
Qt/Settings: Add Cancel button to USB passthrough device dialog
2018-10-12 20:43:09 +01:00
Mat M bbb08eec98
Merge pull request #7487 from JosJuice/wii-menu-1.0-region-2
Treat Wii Menu 1.0 as NTSC-U
2018-10-12 14:45:17 -04:00
JosJuice 7643d6d2f9 Treat Wii Menu 1.0 as NTSC-U
See the comments of https://github.com/dolphin-emu/dolphin/pull/7440.
2018-10-12 17:13:40 +02:00
Mat M 57529bc455
Merge pull request #7438 from RolandMunsil/master
Fix issue where breakpoint type wasn't correct in debugger memory view.
2018-10-12 10:30:31 -04:00
Mat M ecd4897d43
Merge pull request #7437 from stenzek/graphics-options-race
Fix race condition caused by opening graphics options while running
2018-10-12 10:29:28 -04:00
Mat M b3cd6158fc
Merge pull request #7471 from JosJuice/country-region-switch
DiscIO: Improve RegionSwitch/CountrySwitch
2018-10-12 10:25:45 -04:00
JosJuice f834ef1dfe DiscIO: Rename RegionSwitch/CountrySwitch
Callers don't need to know that these functions are implemented
with a switch statement.
2018-10-12 12:32:22 +02:00
JosJuice 7fd1784b9a DiscIO: Add more RegionSwitch/CountrySwitch comments 2018-10-12 12:32:22 +02:00
JosJuice 7607dc3573 DiscIO: Fix CountrySwitch's 'M' comment (and clarify other VC comments) 2018-10-12 12:31:52 +02:00
Tilka f5bfcdda5a
Merge pull request #7473 from aldelaro5/fix-signature-export
Qt/debugger: restore previously lost symbols and signature features
2018-10-11 13:03:37 +01:00
Tilka b35e0fd456
Merge pull request #7451 from stenzek/gles-blit-scissor
OGL: Disable scissor test when calling glBlitFramebuffer()
2018-10-11 13:00:17 +01:00
Antonio Maiorano 3a8493cc59 Make double click on selected usb whitelist device add it 2018-10-09 20:34:32 -04:00
Tillmann Karras db54b903ef Zero-initialize CPU state and register view 2018-10-10 00:04:02 +01:00
Tillmann Karras dfe8305ae7 PowerPC: fix a cast warning 2018-10-10 00:03:54 +01:00
sp00nd 6cd53bf92d
Change gecko sorting back to manual
Gecko codes are a core foundation of most netplay sessions and most general modding cases. It has gone so far as to now have an ini for almost every game.

After the massive UI overhaul, the gecko code sorting defaults to Alphabetical with no option to change it. This removes the possibility for netplay builds to have important and necessary codes at the top for easy selecting, and removes the ability to sort massive code lists in categories.

This will also make the sorting consistent with AR codes, which are sorted manually.
2018-10-09 17:46:11 -05:00
Tilka 7cfba7397c
Merge pull request #7475 from aldelaro5/symbols-search-case-insensitive
Qt/debugger: make the symbols search case insensitive
2018-10-09 21:18:06 +01:00
Z1ni b27c688fdf Qt/Settings: Add Cancel button to USB passthrough device dialog 2018-10-09 15:28:40 +03:00
Pierre Bourdon 8e26d33133 Externals: Add a stripped down version of minizip. 2018-10-09 14:27:53 +02:00
Stenzek 2e905455b1 OGL: Disable scissor test when calling glBlitFramebuffer()
glBlitFramebuffer() does not bypass the scissor test, which meant that
part of texture copies (e.g. XFB) could have been clipped when running
under OpenGL ES, as glCopyImageSubData() is not supported.
2018-10-09 22:00:40 +10:00
Tilka 480972612c
Merge pull request #7474 from aldelaro5/fix-pc-icons-swap
Qt/debugger: reorder the PC toolbar icons to their correct buttons
2018-10-09 09:02:10 +01:00
Tilka 5b8e1e61e8
Merge pull request #7470 from Tilka/fifoplayer
FifoPlayer: reduce XF_REGS_SIZE to what we know
2018-10-09 08:56:48 +01:00
aldelaro5 68aff9c023
Qt/debugger: make the symbols search case insensitive 2018-10-08 21:17:33 -04:00
aldelaro5 9fd7da59b1
Qt/debugger: reorder the PC toolbar icons to their correct buttons 2018-10-08 21:10:18 -04:00
aldelaro5 3921d8a8be
Qt/debugger: restore previous symbols and signature features
They were mysteriously lost after the Qt migration.
2018-10-08 20:59:55 -04:00
Tillmann Karras 56fdcf5f00 VideoCommon: remove unnecessary floor()
floatindex is clamped to the range [0, 9]. For non-negative numbers
floor() is equivalent to trunc(). Truncation happens implicitly when
converting to uint, so the floor() is unnecessary.
2018-10-09 00:31:43 +01:00
Tilka 31594a8138
Merge pull request #7462 from aldelaro5/fix-signature-export
Qt/debugger: Accept empty prefix input
2018-10-09 00:30:19 +01:00
Tillmann Karras 79051a28c4 evdev: simplify code
No need to check write access if we call open() right after which checks
that anyway. Also only get the device name once.
2018-10-08 19:51:29 +01:00
JosJuice cab5e52d15 DiscIO: Fix the 'W', 'X', 'Y' and 'Z' country codes
These country codes have the unfortunate property that they are used
by Wii disc games in two different regions. We already correct for this
in VolumeGC::GetCountry and VolumeWii::GetCountry, so this commit
shouldn't really have any effect on how the game list behaves,
but it will be useful if we in the future would want to call
CountrySwitch directly without having extra code in the caller for
handling region weirdness.
2018-10-08 13:57:31 +02:00
JosJuice 504024ab46 DiscIO: Add the missing 'V' country code 2018-10-08 13:57:31 +02:00
JosJuice 57d05293fd DiscIO: Move the Korean GC mess out of VolumeGC 2018-10-08 13:56:13 +02:00
Tillmann Karras 9c7136453d FifoPlayer: reduce XF_REGS_SIZE to what we know
This avoids out-of-bounds warnings when replaying FIFO captures.

The value of XF_REGS_SIZE is written into the DFF header and we only
read the min of XF_REGS_SIZE and the header value, so this change is
backward compatible and doesn't break forward compatibility for old
Dolphin versions either.
2018-10-08 06:54:32 +01:00
Tillmann Karras b37886580b GekkoDisassembler: fix mtfsf yet again 2018-10-08 02:43:34 +01:00
Tillmann Karras 09385b9542 FIFOAnalyzer: print BP registers without X suffix 2018-10-08 02:00:25 +01:00
Tillmann Karras ec4c019a7b FIFOAnalyzer: fix printing of XF registers 2018-10-08 02:00:25 +01:00
Mat M 74fd95c4c4
Merge pull request #7465 from Tilka/mtfsf_disasm
GekkoDisassembler: fix disassembly of mtfsf
2018-10-07 20:53:55 -04:00
Tilka 63dcd33e9c
Merge pull request #7467 from MerryMage/lXXx
Jit_LoadStore: Name indexed condition
2018-10-07 20:35:05 +01:00
MerryMage 8e3846d844 Jit_LoadStore: Name indexed condition
inst.OPCD == 31 represents an indexed instruction
2018-10-07 20:29:47 +01:00
Jules Blok 1ab1d41b10
Merge pull request #7457 from Tilka/use_clamp
VideoSoftware: make use of Clamp()
2018-10-07 19:53:45 +01:00
Tillmann Karras 29c271d0eb GekkoDisassembler: fix disassembly of mtfsf
This fixes https://dolp.in/i11411.
2018-10-07 17:27:02 +01:00
Tillmann Karras c53cd09b00 BPStructs: don't warn about busclock/perf regs 2018-10-07 16:08:18 +01:00
mazes-80 eae36399dc IOWindow: append new text at the end by default
This fixes https://dolp.in/i11026.
2018-10-07 12:27:05 +01:00
MerryMage d448ed3308 JitRegCache: Fix SanityCheck 2018-10-07 11:48:06 +01:00
MerryMage d5999bc0df JitRegCache: Rename CachedReg function names
* BoundTo -> SetBoundTo
* Flushed -> SetFlushed
* Remove argument from MakeDirty
2018-10-07 11:48:06 +01:00
MerryMage 29d301e303 JitRegCache: Use preg_t for PPC register indexes 2018-10-07 11:48:06 +01:00
MerryMage d9e2b3ed98 JitRegCache: Make {Store,Load}Register protected
No reason for them to be public
2018-10-07 11:48:06 +01:00
MerryMage 66c3d1e183 JitRegCache: Remove FlushR
No external users.
2018-10-07 11:48:05 +01:00
MerryMage ba33e1e69b JitRegCache: Simplify ASSERTs 2018-10-07 11:48:05 +01:00
aldelaro5 4b75876ba1
Qt/debugger: Accept empty prefix input 2018-10-06 21:22:34 -04:00
MerryMage ff0a6b8331 JitRegCache: Encapsulate behavior of X64CachedReg 2018-10-06 19:27:56 +01:00
MerryMage dd41bab365 JitRegCache: Encapsulate behavior of PPCCachedReg 2018-10-06 19:27:56 +01:00
Tilka af2f212039
Merge pull request #7348 from spycrab/gl_cache_shaders
GL/TextureCache: Clean up inline shader code
2018-10-06 00:28:54 +01:00
Tilka 32ef8706e5
Merge pull request #7414 from Sintendo/shortmovs
x64Emitter: emit shorter MOVs for 64-bit immediates
2018-10-06 00:01:35 +01:00
Tilka b480db9392
Merge pull request #7419 from Sintendo/miscopts
Miscellaneous x64 micro-optimizations
2018-10-05 23:44:25 +01:00
Tilka 781b707af8
Merge pull request #7444 from amaiorano/fix-messagebox-icons
Fix QMessageBox icons using the default rather than the Dolphin logo
2018-10-05 23:34:40 +01:00
Tillmann Karras a6a5d86cd8 VideoSoftware: make use of Clamp() 2018-10-05 22:07:38 +01:00
JosJuice 08d0b98988 DiscIO: Merge RegionSwitchGC and RegionSwitchWii 2018-10-05 17:54:29 +02:00
spycrab 6e873c6e06 Qt/GameList: Implement tag system 2018-10-05 08:22:51 +02:00
Antonio Maiorano bf18f19b0a Make the progress dialog look better (used for e.g. shader compiling)
* Removed the Cancel button since the code doesn't react to it anyway.
* Only show a window title, not the help icon (?), and disable the close button
* Set the title to "Dolphin" instead of repeating the label text
2018-10-03 21:35:10 -04:00
Antonio Maiorano f257630c0a Fix resetting emulated wii remote settings to default not updating Extension combo box 2018-10-02 23:34:32 -04:00
Techjar c5b4e1a5f6 Improve SFMLHelper
Switch to using additional overloads of sf::Packet, so we can eliminate
some of the messy code and just use the normal syntax for
BigEndianValue.

We can't avoid helper functions with u64 due to SFML's non-standard way
of defining 64-bit integer types.
2018-10-02 05:44:50 -04:00
Antonio Maiorano 165ac1c29e Fix QMessageBox icons using the default rather than the Dolphin logo 2018-10-02 00:26:43 -04:00
Pierre Bourdon 58b0a284a8
Merge pull request #7408 from AdmiralCurtiss/twin-snakes-cutscene-flicker-fix
Do not consider XFB copies for invalidating textures when loading a new texture.
2018-10-01 22:24:31 +02:00
Pierre Bourdon 91d9190e69
Merge pull request #7442 from shuffle2/fix-sram
mx sram: fix checksum calc; use Common::BigEndianValue for rtc field.
2018-10-01 22:08:42 +02:00
Pierre Bourdon 94c70bf884
Merge pull request #7441 from JosJuice/fix-read-title-id
Fix reading title IDs of Wii discs
2018-10-01 22:07:03 +02:00
Shawn Hoffman 2a0f022da3 mx sram: replace union-with-byte-array with operator[] to make gcc happy. 2018-10-01 00:00:20 -07:00
Shawn Hoffman d300f3bbbc exi ipl: quiet a gcc warning 2018-09-30 18:22:35 -07:00
Shawn Hoffman 2cd96aa5bb mx sram: fix checksum calc; use Common::BigEndianValue for rtc field. 2018-09-30 17:58:37 -07:00
JosJuice 0bcb9923f8 Fix reading title IDs of Wii discs
Partial revert of a1db82a.
Should fix https://bugs.dolphin-emu.org/issues/11404.
2018-09-30 17:46:20 +02:00
Shawn Hoffman d594d4f12f Fix sram accesses. 2018-09-29 22:52:29 -07:00
Sintendo d8953dbe57 x64Emitter: nit, use helper method in CMP_or_TEST 2018-09-29 09:52:54 +02:00
Sintendo ef94fca504 DSPJit: various micro-optimizations 2018-09-29 09:52:30 +02:00
Sintendo e3b424facd EmuCodeBlock: remove redundant instructions
Their result is overwritten by a subsequent MOV.
2018-09-28 23:58:16 +02:00
MerryMage 89a0b0de32 Jit64AsmCommon: Reduce branches in fast-path and inline most behavior
The only behavior requires a function call is denormal behaviour. We also fix fpscr exception raising.
2018-09-28 18:11:30 +01:00
Stenzek 349765ba77 GraphicsWindow: Ensure adapter selection isn't enabled while running 2018-09-28 22:01:23 +10:00
Stenzek eb33d7af64 Core: Call InitBackendInfo before loading config 2018-09-28 21:44:41 +10:00
Stenzek 93923e2b29 Don't fill backend info when core is running
The current approach results in the UI thread creating a graphics device
whilst the core is running, leading to races on function pointers, and
potentially crashing.
2018-09-28 21:43:22 +10:00
Mat M a1db82a72e
Merge pull request #7411 from JosJuice/wii-metadata-unencrypted
Read Wii disc metadata from the unencrypted header
2018-09-28 00:44:25 -04:00
Stenzek a877d5f6dc Remove unused Host_ShowVideoConfig 2018-09-28 14:05:53 +10:00
Mat M a5c74cd6d1
Merge pull request #7382 from stenzek/drop-vk-nv-glsl
Vulkan: Drop usage of VK_NV_glsl extension
2018-09-27 21:56:22 -04:00
Mat M 3cee297c87
Merge pull request #7331 from booto/si_buffer
SI: Add 16bit accessors for SI IO buffer
2018-09-27 21:50:50 -04:00
Mat M d0b2f04539
Merge pull request #7421 from JosJuice/qt-sd-hotplug
DolphinQt: Allow inserting/ejecting SD cards during emulation
2018-09-27 21:48:16 -04:00
Mat M 62b88f890d
Merge pull request #7422 from JosJuice/scrub-unencrypted
Fix scrubbing unencrypted Wii disc images
2018-09-27 21:47:49 -04:00
Roland Munsil 5eefd0482a Fix issue with breakpoint type loaded from settings not propogating to MemoryWindow 2018-09-25 17:45:18 -05:00
Roland Munsil 54bd16e753 Fix typo causing "Remove from Watch" in Cheat Manager to crash Dolphin 2018-09-24 23:01:24 -05:00
Roland Munsil 04969f94b6 Fix some Cheat Manager comparisons being wrong 2018-09-24 21:34:48 -05:00
Markus Wick 85961f996e
Merge pull request #7400 from zackhow/phone-rumble
Android: Add rumble for phone
2018-09-21 17:05:46 +02:00
JosJuice facaeb615e Fix scrubbing unencrypted Wii disc images
Untested with unencrypted Wii disc images, because I don't have any.
I tested that normal Wii disc images still work, though.
2018-09-20 23:23:10 +02:00
JosJuice ce3e0fc091 Refactor DiscScrubber::MarkAsUsedE 2018-09-20 23:23:06 +02:00
JosJuice 5db27b8e7e DolphinQt: Allow inserting/ejecting SD cards during emulation
This is possible on real hardware and was possible in DolphinWX.
2018-09-20 18:41:37 +02:00
Sintendo 53a947749a x64Emitter: short MOV for 64bit immediates (2)
Prior to this commit, the emitter would unconditionally emit a 10-byte
instruction known as MOVABS when loading a 64-bit immediate to a
register.

0:  48 b8 ef be ad de 00    movabs rax,0xdeadbeef
7:  00 00 00

With this change, it will instead rely on the fact that on x64 writes to
32-bit registers are automatically zero extended to 64-bits, allowing
us to emit a 5 or 6-bytes instruction with the same effect for certain
immediates.

0:  b8 ef be ad de          mov    eax,0xdeadbeef
2018-09-16 19:52:03 +02:00
Léo Lam e90bd035cb
Merge pull request #7262 from lioncash/force
ControlGroup: Return state data via GetState() by value where applicable
2018-09-16 16:04:21 +02:00
Léo Lam 5a289de27a Fix BT passthrough by sending larger packets
Fixes a critical regression from 8bb08d1ca6.

In that commit, I replaced a 1024 byte buffer with a SHCIEventCommand.
However, it looks like some Bluetooth adapters actually require such
a large buffer, so this change needs to be reverted.
2018-09-16 15:36:58 +02:00
Léo Lam 40b7fab235
Merge pull request #7261 from lioncash/static
WiimoteReal: Make functions internally linked where applicable
2018-09-16 15:30:25 +02:00
Léo Lam 3ecc4ed1c4
Merge pull request #7390 from Techjar/qt-save-grid-scale
Qt/GameList: Make grid view scale persistent
2018-09-16 15:21:00 +02:00
Léo Lam c49eb2d249
Merge pull request #7398 from Techjar/emu-speed-skip-vsync
VideoCommon: Skip vsync if configured emulation speed is not 100%
2018-09-16 15:19:45 +02:00
Léo Lam 80c402e1ad
Merge pull request #7161 from lioncash/disasm
CMake: Only link in Bochs on x86 platforms
2018-09-16 15:16:00 +02:00
Léo Lam 3a16c0d47e
Merge pull request #7401 from JosJuice/translation-fixes
Translation fixes
2018-09-16 15:09:26 +02:00
Pierre Bourdon e3a52b3361
Merge pull request #7415 from JosJuice/korean-shop-channel-check
Include the Korean Wii Shop Channel when checking default credentials
2018-09-15 17:37:35 +02:00
JosJuice b5bb445f21 Include the Korean Wii Shop Channel when checking default credentials 2018-09-15 17:28:23 +02:00
Admiral H. Curtiss f2fa63783b Do not consider XFB copies for invalidating textures when loading a new texture.
This fixes severe image flickering in some cutscenes of Twin Snakes. The game appears to sometimes load a previously made XFB copy as a texture before it is actually rendered to the screen, which we took as an invitation to invalidate the XFB copy.
2018-09-15 13:56:45 +02:00
Sintendo 575f1b309a x64Emitter: short MOV for 64bit immediates (1)
Prior to this commit, the emitter would unconditionally emit a 10-byte
instruction known as MOVABS when loading a 64-bit immediate to a
register.

0:  48 b8 ef be ad de ff    movabs rax,0xffffffffdeadbeef
7:  ff ff ff

With this change, it will instead emit a 7-byte instruction when it is
possible to express the 64-bit immediate using a signed 32-bit value.

0:  48 c7 c0 ef be ad de    mov    rax,0xffffffffdeadbeef
2018-09-14 23:11:26 +02:00
Admiral H. Curtiss 3e95d3c477 Stitch together overlapping XFB regions in order of XFB copy creation. 2018-09-14 19:41:27 +02:00
Admiral H. Curtiss d97bc0d359 Correctly adjust the rendered XFB region at non-native internal resolutions when XFB was loaded from console RAM.
If, for whatever reason, the XFB has to be loaded from console memory, it's possible that the texture is returned at native resolution instead of EFB-scaled resolution. In this case, our xfb_rect.right adjustment must also happen at native resolution instead of scaled resolution.
2018-09-13 19:39:49 +02:00
JosJuice cec601f1fb Read Wii disc metadata from the unencrypted header
The header of a Wii disc can be read from two places: The
unencrypted area at the beginning of the disc, or the beginning of
the game partition. The two copies are usually identical (except
for 0x60 and 0x61), but there are exceptions. For most of Dolphin's
history, we have been reading from the header inside the game
partition when getting metadata. This was however not the case
starting with 4.0-4901 and ending with 5.0-3762. This commit once
again makes Dolphin read metadata from the unencrypted header,
because of the following reasons that I recently was informed about:

- The "pink fish" disc has the game ID 410E01 in the unencrypted
  header but the placeholder game ID RELSAB in the partition header.
- The revisions of some games differ between the two headers,
  with the unencrypted one making more sense.
  (See https://bugs.dolphin-emu.org/issues/11387)

For better or worse, this also means that sloppily hacked games where
only the game ID in the unencrypted header has been changed now will
use that modified game ID. And unlike with the partition header,
there is no signing or hashing that can tell us whether the
unencrypted header has been modified by someone other than Nintendo.
2018-09-12 13:41:30 +02:00
booto 3825e2e5ff SI: Add 16bit accessors for SI IO buffer
Dolphin has traditionally treated the SI IO buffer (128 bytes) as a set of
32 little endian u32s. This works out fine if you only ever read/write
using aligned 32bit accesses. Different sized accesses or misaligned reads
will mess it up. Byte swapping reads/writes will fix this up, but all the
SI devices that use the SI IO buffer need to be adjusted.
2018-09-11 22:19:13 -04:00
JosJuice fb6b31bba8 Re-add i18n comments that were lost in the DolphinWX removal 2018-09-08 15:58:15 +02:00
JosJuice e0cb56edb9 Reword some translatable strings
We've decided to use the term "Usage Statistics Reporting"
instead of "Analytics" in user-facing strings.
2018-09-08 15:19:01 +02:00
JosJuice 5f35edf505 Remove unused function and translatable strings 2018-09-08 15:18:31 +02:00
JosJuice a4f950ee86 Fix a string not getting translated 2018-09-08 15:16:39 +02:00
zackhow 126ff8dc5f Android: Add rumble for phone
This currently only supports using the internal vibrate on a phone for rumble.
2018-09-07 08:54:03 -04:00
Techjar e9046f8eec VideoCommon: Skip vsync if configured emulation speed is not 100%
It doesn't make much sense to try to vsync at weird framerates, and
vsync actually causes the speed setting to not work as expected.
2018-09-05 05:40:22 -04:00
Techjar bb598529be Qt/GameList: Make grid view scale persistent 2018-09-02 18:22:44 -04:00
Pierre Bourdon 95c2a92f26
Revert "ShaderGen: Drop broken fragment shader index workaround for Vulkan" 2018-09-01 05:32:56 +02:00
spycrab 392df8a11d GL/TextureCache: Clean up inline shader code 2018-08-30 16:05:39 +02:00
MerryMage 9753f21cc7 Arm64Emitter: Remove unsequenced expressions
Incrementing `it` twice between sequence points is undefined behavior.
2018-08-30 07:38:37 +01:00
Stenzek 448e19629d Vulkan: Drop usage of VK_NV_glsl extension
It's not providing a large performance improvement anymore, after the
more recent drivers introduced a new shader compiler.
2018-08-29 13:12:19 +10:00
Stenzek 3ad7812b53 ShaderGen: Drop broken fragment shader index workaround for Vulkan
AMD appears to have since fixed this in their driver, and it makes
shadergen ever so slightly less messy.
2018-08-28 23:39:47 +10:00
JosJuice fbdc239199 Fix reducing log paths when building with MSVC
The LogManager code had trouble detecting the "/Source/Core/" substring
for two reasons, neither of which seemed to happen a few years ago:

1. __FILE__ is in lowercase on MSVC
2. __FILE__ uses backslash as the directory separator on MSVC

Fixes https://bugs.dolphin-emu.org/issues/11366
2018-08-28 11:48:43 +02:00
JosJuice 762747f8c1
Merge pull request #7377 from Techjar/more-frameskip-junk
Core/Core: Remove another leftover part of frameskip
2018-08-28 08:29:43 +02:00
Techjar c5ae721eca Core/Core: Remove another leftover part of frameskip 2018-08-28 02:22:05 -04:00
Pierre Bourdon 2033d660d2
Merge pull request #7376 from lioncash/sfml
Externals: Update SFML to 2.5.0
2018-08-28 02:53:05 +02:00
Lioncash d10a0b440f SFMLHelper: Simplify 64-bit packet reading function and remove 64-bit write function
Now that SFML's packet class can properly handle 64-bit values, we don't
need a helper function just to write values to the packets.
2018-08-27 17:38:07 -04:00
Lioncash e6a4116bf2 Common/SFMLHelper: Remove unused forward declaration
BigEndianValue isn't used in either the header or SFMLHelper.cpp, so it
can be removed.
2018-08-27 16:48:12 -04:00
Pierre Bourdon 4c75331d5d
Merge pull request #7374 from lioncash/iowin
IOWin: Make functions internally linked where applicable
2018-08-27 22:13:24 +02:00
Lioncash 8753321841 IOWin: Use anonymous namespaces where applicable
Several functions (and one variable) were being given external linkage.
Instead, relocate them all to anonymous namespaces to make them
internally linked.
2018-08-27 16:10:07 -04:00
Lioncash d40022d6d0 JitInterface: Move explanatory comment of ClearSafe() to the function's prototype
Puts the comment in the header where it's more likely to be seen
initially. We can also remove the TODO, given doing nothing or returning
an error is what is generally done for the JIT interface if the JIT
instance isn't valid.
2018-08-27 13:04:05 -04:00
Lioncash 36b24bf7a0 PowerPC: Remove Profiler.cpp
With 7aa305ea35 merged, all that remains
within Profiler.cpp is an unused function that just forwards to the
equivalent function within JitInterface. Given that, we can just remove
the source file.
2018-08-27 12:13:39 -04:00
Lioncash 7aa305ea35 Profiler: Migrate global g_ProfileBlocks boolean to JitOptions
This global belongs in the JitOptions structure, as it's a conditional
setting (A.K.A. option) that changes the behavior of what the JIT does.

Plus it keeps the scope of the variable constrained to the general area
it's intended to be used and nothing further.
2018-08-27 11:30:19 -04:00
Pierre Bourdon 88a91562b5
Merge pull request #7370 from lioncash/constness
JitArm64/Jit: Don't cast away const within DumpCode()
2018-08-27 16:31:15 +02:00
Lioncash cc2ef5a2c3 JitArm64/Jit: Don't cast away const within DumpCode()
swap32() has a const u8* overload that swaps the data being pointed to as
if it were a 32-bit word. We can just use that instead. It gets rid of
undefined behavior, as we're not type punning a pointer and dereferencing it,
and gets rid of the need to cast entirely.
2018-08-27 10:28:11 -04:00
Lioncash e81408588f JitCommon/JitCache: Make JitBlock's checkedEntry and normalEntry members non-const pointers
In both cases of the x64 and AArch64 JITs, these would have const casted
away from them, followed by them being placed within an emitter and
having breakpoint instructions written in them.

In this case, we shouldn't be using const period if we're writing to the
emitted data.
2018-08-27 10:23:22 -04:00
Pierre Bourdon 25898cfa55
Merge pull request #7368 from lioncash/const-cast
Arm64Emitter: Make the Align* functions return a non-const data pointer
2018-08-27 15:54:05 +02:00
Lioncash 208be26bb4 Arm64Emitter: Make the Align* functions return a non-const data pointer
Similar in nature to e28d063539 in which
this same change was applied to the x64 emitter.

There's no real requirement to make this const, and this should also
be decided by the calling code, considering we had places that would
simply cast away the const and carry on
2018-08-27 09:44:38 -04:00