Commit Graph

513 Commits

Author SHA1 Message Date
Léo Lam 4cdcbb6ab2
Merge pull request #9308 from smurf3tte/re23_patch
Patches for Resident Evil 2/3 audio issues
2021-01-06 01:52:15 +01:00
Léo Lam 0b1db65aa1
Merge pull request #9405 from Filoppi/patch-7
Rename "Use Fullscreen" setting to "Start in Fullscreen"
2021-01-06 01:44:46 +01:00
Filippo Tarpini 0805b58302
DolphinQt: Remove some useless includes
[committer note: fixed commit message style]
2021-01-05 15:24:13 +01:00
Filippo Tarpini 57c59c18d4
Rename "Use Fullscreen" setting to "Start in Fullscreen"
The name was confusing as changing it at runtime would not change the window to fullscreen, as it effectively only affects the start of the emulation.
Also blocked the ability to change it when the emulation is running, to be more inline with other similar settings, like "Render to main Window".
2020-12-31 13:39:45 +02:00
smurf3tte f4c579e720 Fix bad memory references in NewPatchDialog
This code was storing references to patch entries which could move around in memory if a patch was erased from the middle of a vector or if the vector itself was reallocated. Instead, NewPatchDialog maintains a separate copy of the patch entries which are committed back to the patch if the user accepts the changes.
2020-12-29 14:31:05 -08:00
smurf3tte f3b8a985e7 Patches for Resident Evil 2/3 audio issues
These games are erroneously zeroing buffers before they can be fully copied to ARAM by DMA. The responsible memset() calls are followed by a call to DVDRead() which issues dcbi instructions that effectively cancel the memset() on real hardware. Because Dolphin lacks dcache emulation, the effects of the memset() calls are observed, which causes missing audio.

In a comment on the original bug, phire noted that the issue can be corrected by simply nop'ing out the offending memset() calls. Because the games dynamically load different .rel executables based on the character and/or language, the addresses of these calls can vary.

To deal generally with the problem of code being dynamically loaded to fixed, known addresses, the patch engine is extended to support conditional patches which require a match against a known value. This sort of thing is already achievable with Action Replay/Gecko codes, but their use depends on enabling cheats globally in Dolphin, which is not a prerequisite shared by patches.

Patches are included for every region, character, and language combination. They are enabled by default.

The end result is an approximation of the games' behavior on real hardware without the associated complexity of proper dcache emulation.

https://bugs.dolphin-emu.org/issues/9840
2020-12-29 14:24:46 -08:00
iwubcode 9bd4e0939e DolphinQt: Update mapping window device to use expanding size policy 2020-12-24 13:49:25 -06:00
iwubcode 9a744ab25b DolphinQt: Move Free Look out of Graphics/Hotkey and into its own configuration window. Launched from a new menu option - "Free Look Settings". The HotKeyScheduler still calls the Free Look functionality to reduce the total number of threads 2020-12-24 13:49:25 -06:00
iwubcode e55342ae88 DolphinQt: Fix all instances of <gameid> in AdvancedWidget to use the appropriate html code instead 2020-12-18 22:50:06 -06:00
Léo Lam 6018525992
Qt: Fix deprecated use of MidButton
MidButton has been deprecated since Qt 4.7. The replacement is
MiddleButton.
2020-12-16 14:45:11 +01:00
Léo Lam efdb620783
Qt/Config: Remove unused includes 2020-12-16 14:43:26 +01:00
Jordan Woyak 4bb0a885d0 WiimoteEmu/DolphinQt: Fix tilt indicator for wrapped around angles. 2020-12-14 20:02:49 -06:00
Léo Lam 2c2ec16b53
Merge pull request #9320 from JosJuice/remove-patch-crash
DolphinQt: Fix crash after removing extra patch line
2020-12-15 00:01:07 +01:00
JosJuice 3c6ad495b4 DolphinQt: Fix crash after removing extra patch line 2020-12-11 22:13:10 +01:00
JosJuice b285991b88 Turn Config::Info into a class with getters 2020-12-11 19:54:16 +01:00
JosJuice 11e8783893 Core: Don't copy default _Enabled sections to user INIs 2020-12-11 15:38:11 +01:00
JosJuice d77a9ad1b6 Core: Save the disabling of default enabled codes
The previous commit adjusted the code for loading
and this commit adjusts the code for saving.
2020-12-11 10:08:20 +01:00
JosJuice 366cfd0f8c Core: Allow overriding the enabling of a code
If we want to enable codes in the default game INIs,
we should have some way for users to disable them.
This commit accomplishes that by adding a *_Disabled
section corresponding to each *_Enabled section.
2020-12-11 10:02:14 +01:00
Léo Lam a5880fa402
Qt: Add missing tr calls for tooltip descriptions 2020-11-30 14:04:08 +01:00
iwubcode cc837a59d6 Core / DolphinQt: Add ini only option to force low-contrast tooltips 2020-11-28 11:49:14 -06:00
iwubcode 9c204428fe DolphinQt: Add tooltip support to Software Renderer Graphics tab 2020-11-28 11:49:14 -06:00
iwubcode 2bfb8ebf96 DolphinQt: Add tooltip support to Hacks Graphics tab 2020-11-28 11:49:14 -06:00
iwubcode 1673442794 DolphinQt: Add tooltip support to Advanced Graphics tab 2020-11-28 11:49:14 -06:00
iwubcode d083dae7fd DolphinQt: Add tooltip support to Enhancements Graphics tab 2020-11-28 11:49:14 -06:00
iwubcode b9eae86704 DolphinQt: Add tooltip support to General Graphics tab 2020-11-28 11:49:14 -06:00
iwubcode a9271aa167 DolphinQt: Add the ability to show a tooltip for custom graphics controls 2020-11-28 11:49:14 -06:00
iwubcode af0161cafd DolphinQt: Add generic tooltip controls 2020-11-28 11:49:14 -06:00
iwubcode 613d8b1cba DolphinQt: Remove description box handling from graphics widget and window 2020-11-28 11:49:14 -06:00
iwubcode c754b02aae DolphinQt: Add BalloonTip which is built off of an internal Qt class. It gives the ability to show a tooltip with an arrow! 2020-11-28 11:49:14 -06:00
Admiral H. Curtiss 11e226a91a Qt/IOWindow: Remove Apply button. 2020-11-26 00:47:37 +01:00
Admiral H. Curtiss 334100509b Qt/IOWindow: Show the current value of the expression. 2020-11-26 00:46:51 +01:00
Admiral H. Curtiss ddfb8fa404 Qt/IOWindow: Apply expressions immediately so we can query the current value of the expression. 2020-11-26 00:45:31 +01:00
Nick Michael 55dd3d7337 Virtual Notch settings and UI for octagonal stick 2020-11-03 22:06:27 +00:00
JosJuice 908d6f8fa0
Merge pull request #9179 from leoetlino/available-video-backends
VideoCommon: Get rid of the global g_available_video_backends
2020-10-23 20:02:21 +02:00
LC de96fe0860
Merge pull request #9162 from jordan-woyak/quaternion
Replace stateful rotational matrices with quaternions.
2020-10-21 17:34:11 -04:00
Léo Lam aaaa3896c0
VideoCommon: Get rid of the global g_available_video_backends
Replace it with a function-local static that is initialized on first
use. This gets rid of a global variable and removes the need for
manual initialization in UICommon.

This commit also replaces the weird find_if that looks for a non-null
unique_ptr with a simple "is vector empty" check considering that
none of the pointers can be null by construction.
2020-10-21 22:00:10 +02:00
Léo Lam fc3b474cce
Merge pull request #8318 from iwubcode/dynamic_input_textures
InputCommon: Dynamic Input Textures
2020-10-20 02:10:29 +02:00
Léo Lam 911704611e
Merge pull request #9096 from jordan-woyak/calibration-cleanup
ControllerEmu: Improve and simplify UpdateCalibrationData.
2020-10-20 02:01:16 +02:00
Jordan Woyak 09431635f3 InputCommon/WiimoteEmu: Replace stateful rotational matrices with quaternions. 2020-10-19 16:33:55 -05:00
JosJuice d64fc67b04 Show NKitness in file format string
To make people more aware that they're not using a normal disc image.
2020-10-06 19:35:00 +02:00
iwubcode fd3af4c5d3 InputCommon: Introducing the "Dynamic Input Texture". Configuration links an emulated input action to an image based on what host key is defined for that emulated input. Specific regions are called out in configuration that mark where to replace an input button with a host key image. 2020-10-03 17:10:35 -05:00
Jordan Woyak 48b76ff90f InputCommon: Improve input detection to produce buton combinations. 2020-09-25 22:51:32 -05:00
Jordan Woyak d8ad8c3861 InputCommon: Make hotkeys and input detection aware of Ctrl -> L_Ctrl / R_Ctrl hierarchy. 2020-09-25 20:29:18 -05:00
Jordan Woyak b3acc7403f InputCommon: Support detecting combinations of inputs. (Hotkeys) 2020-09-25 20:29:18 -05:00
JosJuice 0ddd296cd9 DolphinQt: Use 1-based disc numbering in InfoWidget 2020-09-23 11:42:22 +02:00
Jordan Woyak 0ca73355a8 ControllerEmu: Improve and simplify UpdateCalibrationData. 2020-09-19 08:40:55 -05:00
Techjar 29460b946e Qt/MappingWindow: Add support for built-in profiles 2020-09-18 06:32:42 -04:00
Techjar 0759ead9b6 Qt: Use better method of getting default monospace font
This should give us a nicer font on Windows, while also not severely
impacting the existing behavior on Linux.
2020-09-15 04:48:44 -04:00
iwubcode a83bf8bc59 DolphinQt: properly remove slot connection for ConfigChange when object is destructed 2020-09-12 17:35:58 -05:00
Shawn Hoffman 89b6a4cbee DolphinQt: resolve Qt5.15 deprecations 2020-08-23 13:57:05 -07:00
Tilka f17b5dd41b
Merge pull request #8804 from iwubcode/dsu-improvements
DolphinQt / InputCommon - Support multiple DSU servers
2020-08-08 20:45:57 +01:00
Admiral H. Curtiss cdf2a29b5e Qt/IOWindow: Add a handful of math functions to the function dropdown. 2020-08-02 22:09:09 +02:00
iwubcode 9c8338ec4c DolphinQt / VideoCommon: Add additional texture dumping options. Specifically, this enables users to choose whether to dump mip maps, base level textures, or both. 2020-07-22 19:30:27 -05:00
iwubcode 97c9cf3e21 DolphinQt / InputCommon - add DSU string validator to avoid crashes, limited backwards compatibility support 2020-07-17 14:53:39 -05:00
iwubcode 58aa0150e1 DolphinQt / InputCommon: Support multiple DSU servers 2020-07-17 14:53:39 -05:00
JosJuice c9edfa0eaa Replace Windows CMake lambda constexpr capture workaround
While manually capturing constexpr variables used in lambda
expressions does work, it's really easy to forget doing so since
we don't have a Windows CMake builder and the workaround isn't
necessary anywhere else. Fortunately, MSVC has a flag that fixes
the constexpr capture behavior, so let's use that instead.
2020-06-25 13:11:29 +02:00
JosJuice d494e0230c Show file format details in game properties 2020-06-21 20:47:23 +02:00
Léo Lam 8df56cb319 Migrate video backend setting to the new config system
Fixes https://bugs.dolphin-emu.org/issues/12087
2020-05-22 16:54:53 +02:00
JosJuice 6d3b0db041 DolphinQt: Fix freelook description typos
cControls -> controls, axis -> axes, removed leading spaces.
2020-05-20 21:56:04 +02:00
Pierre Bourdon cea779cc84
Merge pull request #8767 from iwubcode/freelook-camera-type
Expand freelook camera with control options
2020-05-17 17:33:04 +02:00
iwubcode aed7319ef8 DolphinQt: Expose freelook camera control to UI 2020-05-03 13:34:13 -05:00
Léo Lam 297bbceadf Remove redundant "Emulation" from "DSP HLE Emulation"
HLE stands for "high-level emulation", so "DSP HLE Emulation" would
mean "DSP High-Level Emulation Emulation"
2020-05-03 17:54:05 +02:00
Léo Lam 1b26929119
Merge pull request #8789 from JosJuice/windows-cmake-errors
Fix Windows CMake build errors
2020-05-03 15:33:58 +02:00
JosJuice bf57abc0d5 Fix Windows CMake build errors
Lambda expressions with uncaptured constants were leading to errors,
and there were also some warnings about deprecated functions
(QFontMetrics::width and inet_ntoa).
2020-05-03 14:10:24 +02:00
Léo Lam 19da101164 Remove redundant Config prefix from ConfigInfo/ConfigLocation
Both structs are already in the Config namespace.
2020-05-02 14:40:14 +02:00
Lioncash 19115c84dd DolphinQt: Use qOverload where applicable
Provides the same behvaior, but in a much more concise manner.
2020-04-28 16:54:19 +02:00
3t13nn3 8288bdce03 Fix Hotkey Controller Profile display with boxes for each Wiimote 2020-04-28 15:55:53 +02:00
Léo Lam 88ae4c7914
Merge pull request #8729 from JosJuice/android-touch-ir-default
Android: Use touch emulation of IR by default
2020-04-27 17:56:01 +02:00
JosJuice 18a4afb053 Android: Use touch emulation of IR by default
While having motion control emulation of IR enabled by default
makes sense in situations like using a DualShock 4 on a PC,
Android has the additional option of touch emulation of IR
which seems to be better liked, and the default value which
was chosen with PC in mind was carried over to Android
without any particular consideration. This change disables
motion control emulation of IR by default on Android only.
2020-04-27 17:02:53 +02:00
JMC47 a5bd263dfb
Merge pull request #8714 from JosJuice/progress-dialog-thread
DolphinQt: Run tasks that use progress dialogs on separate threads
2020-04-21 23:59:37 -04:00
JMC47 9de3717c50
Merge pull request #8340 from stenzek/max-res
DolphinQt: Don't overwrite >8x IR scale in ini, add maximum internal res option
2020-04-16 21:01:14 -04:00
JosJuice c6ee767851 DolphinQt: Run tasks that use progress dialogs on separate threads 2020-04-03 12:53:38 +02:00
JosJuice aee9c7390d
Merge pull request #8699 from howard0su/cleanup_move
Cleanup warnings of -Wpessimizing-move
2020-03-23 19:58:13 +01:00
sL1pKn07 4f7ea79ae4 Fix build with Qt 5.15+ 2020-03-23 17:58:39 +01: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
Jordan Woyak 099e6bfab9 DolphinQt: Fix gyro mapping indicator's "jitter" drawing. 2020-03-17 19:19:58 -05: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
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 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 1a3b4d91bf InputCommon: Mark GetStateLock with [[nodiscard]] and fix discarding calls. 2020-02-24 16:25:06 -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 1e652d7d34 InputCommon: Add calibration functionality to IMUGyroscope. 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
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
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 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
Jordan Woyak f94726068d DolphinQt: Kill some unused member variables. 2020-02-08 10:52:06 -06: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
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
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
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
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
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
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
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
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
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
rlnilsen 965781ea9d Motion Input: Add nunchuk support. 2019-12-04 23:21:26 +01: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
Jordan Woyak 282470e312 DolphinQt: Fix accelerometer mapping indicator flipped X axis. 2019-11-17 16:41:06 -06:00
JosJuice fe39e1e6d8
Merge pull request #8440 from rlnilsen/motion-input-tweaks
Motion Input enhancements
2019-11-15 14:08:45 +01: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
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
Jordan Woyak 8ef25ddd84 DolphinQt: Add accelerometer/gyroscope mapping indicators. 2019-11-09 09:59:45 -06:00
Jordan Woyak a6b3a2cd4f DolphinQt: Hide unused buttons in the advanced mapping dialog. 2019-11-08 17:47:19 -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 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 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
Jordan Woyak 85ceb37ccd InputCommon: Make the "input gate" not racey. 2019-11-06 16:31:02 -06: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 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
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
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
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
Mat M 6991b39289
Merge pull request #8419 from jordan-woyak/xor-op
ExpressionParser: Add XOR operator.
2019-10-23 20:18:39 -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
Jordan Woyak 1fe44238b1 ExpressionParser: Add XOR operator. 2019-10-20 09:51:52 -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 8bc0a92f2c
Merge pull request #7663 from jordan-woyak/expression-parser-improve
Expression parser improvements
2019-10-17 17:35:30 -04:00
Ethan Roseman 2647e412ae Change from radio buttons to combobox, sizing fix and slight reorganization 2019-10-16 21:01:01 -04:00
Jordan Woyak 72302d9c42 ExpressionParser: Add support for /* */ style comments. 2019-10-12 11:41:02 -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 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
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
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 b319f823bf
Merge pull request #8337 from CookiePLMonster/log-widget-improvements
Log widget improvements
2019-10-01 23:42:16 +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
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 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
dreamsyntax a4f13ca57d Remove double space in GeckoCodeWidget code view 2019-09-01 11:22:42 -07: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 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
JosJuice 22933d8502 VolumeVerifier: Add datfile parsing 2019-08-24 16:37:19 +02: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 8be5ee9fe2
Merge pull request #8277 from lioncash/code
DolphinQt/Config/ARCodeWidget: Avoid unnecessary disk operations
2019-08-09 23:42:55 +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 1bd8f03362
Merge pull request #8271 from lioncash/qstring
DolphinQt: Replace unnecessary QStringLiterals with alternatives where applicable
2019-08-08 12:25:30 +10:00
JosJuice 107291dc5a Fix problems with running VolumeVerifier on very small disc images 2019-08-07 19:48:10 +02:00
Miksel12 9395d7ea08 DolphinQt: Reorder nunchuk mapping 2019-08-04 14:02:43 +02:00
Mike Kuijl cbfc442e90 DolphinQt: Limit numeric widget width 2019-08-02 18:20:37 +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
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
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
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
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
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
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
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
Mike Kuijl e50a6f4c46 Reorder graphics config 2019-06-26 21:59:47 +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
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
Lioncash ec60027f56 InputCommon: Use nested namespace specifiers where applicable 2019-06-17 16:51:41 -04:00
8times9 f1dde9fee0 Qt: Minor adjustments to graphics window descriptions 2019-06-14 15:58:16 +02: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