Commit Graph

1550 Commits

Author SHA1 Message Date
5ade5f4fe7 Qt/GameList: Add option to show covers in grid mode 2018-07-27 11:14:24 +02:00
7036299a92 NetPlay: Improve settings synchronization and UI
Most settings which affect determinism will now be synced on NetPlay.
Additionally, there's a strict sync mode which will sync various
enhancements to prevent desync in games that use EFB reads.

This also adds a check for all players having the IPL.bin file, and
doesn't load it for anyone if someone is missing it. This prevents
desyncs caused by mismatched system fonts.

Additionally, the NetPlay window was getting too wide with checkboxes,
so FlowLayout has been introduced to make the checkboxes take up
multiple rows dynamically. However, there's some minor vertical
centering issues I haven't been able to solve, but it's better than a
ridiculously wide window.
2018-07-26 17:23:04 -04:00
cfeffdcf42 Fix more segfaults on NetPlay quit
Basically everything here was race conditions in Qt callbacks, so I changed the client/server instances to std::shared_ptr and added null checks. It checks that the object exists in the callback, and the shared_ptr ensures it doesn't get destroyed until we're done with it.

MD5 check would also cause a segfault if you quit without cancelling it first, which was pretty silly.
2018-07-21 00:04:14 -04:00
d6833cb217 Merge pull request #7279 from Techjar/qt-macos-iowindow
Qt/IOWindow: Don't set QSizePolicy::Expanding on macOS
2018-07-21 02:16:46 +02:00
4407854e9c NetPlay save data synchronization
This adds the functionality of sending the host's save data (raw memory
cards, as well as GCI files and Wii saves with a matching GameID) to
all other clients. The data is compressed using LZO1X to greatly reduce
its size while keeping compression/decompression fast. Save
synchronization is enabled by default, and toggleable with a checkbox
in the NetPlay dialog.

On clicking start, if the option is enabled, game boot will be delayed
until all players have received the save data sent by the host. If any
player fails to receive it properly, boot will be cancelled to prevent
desyncs.
2018-07-19 18:09:20 -04:00
bcdffdfe63 Merge pull request #7280 from Techjar/qt-cheats-manager-crash
Qt/CheatsManager: Fix segfault in GenerateARCode
2018-07-18 18:05:45 -04:00
3cee7d599b Qt/CheatsManager: Fix segfault in GenerateARCode 2018-07-18 17:56:31 -04:00
44aa3cdc0f Qt/IOWindow: Don't set QSizePolicy::Expanding on macOS 2018-07-17 14:35:56 -04:00
4ad2153378 fix compilation w/o Discord Rich Presence 2018-07-17 12:03:41 +02:00
f37813d8b6 Qt/IOWindow: Fix detection of button names containing non-alphabetical characters
The button wouldn't be highlighted in the list, as it would look for something like `Click 1` instead of Click 1.
2018-07-16 18:59:23 -04:00
a9003aadc6 DolphinQt/MainWindow: Replace includes with forward declarations
Reduces the amount of dependencies dragged in by the main window's
header. This also removes MainWindow.h includes elsewhere where they
aren't necessary, reducing the amount of UI files that need to be
recompiled if the main window's header changes.
2018-07-15 18:46:26 -04:00
71de1abd88 Core/BootManager: Remove unnecessary includes
Lessens the amount of files that have to be recompiled if
ConfigManager.h is modified. This also removes an indirect inclusion
within DolphinQt/Main.cpp.
2018-07-14 23:16:23 -04:00
d438e80bfd Qt/GeneralPane: Disable Rich Presence checkbox while emulation is running
Works around core hanging when Discord Rich Presence is toggled
while emulation is running.
2018-07-14 23:39:06 +02:00
e9158bae6f Qt/LogWidget: Fix messages not being escaped properly 2018-07-14 23:06:18 +02:00
4826acd931 Merge pull request #7260 from spycrab/qt_fix_lazy
Qt/GraphicsWindow: Fix lazy initialisation bugs
2018-07-13 13:07:30 +02:00
c8af83202a Qt/GraphicsWindow: Fix lazy initialisation bugs 2018-07-13 12:38:21 +02:00
cc6526f553 Merge pull request #6222 from iwubcode/emulated_input_improvements
Emulated wii input improvements
2018-07-12 20:36:53 +02:00
55b5a24910 Merge pull request #7244 from lioncash/error
Qt/MenuBar: Make failures to load map and signature files more obvious
2018-07-12 19:41:36 +02:00
92f397d0fa Merge pull request #7255 from Techjar/qt-netplay-message-color
[RFC] Qt/NetPlayDialog: Change own chat message color to better suit dark themes
2018-07-12 17:42:55 +02:00
9ab489aab8 Qt/NetPlayDialog: Show alerts when events happen
Displays an alert when you receive a message or a player joins / leaves
2018-07-12 17:33:12 +02:00
d85dd287cf Qt/NetPlayDialog: Change own chat message color to better suit dark themes 2018-07-12 06:34:14 -04:00
df5d1cf13a Merge pull request #7233 from Techjar/qt-jit-branch-menu
Qt/MenuBar: Add missing JIT branch option in debugger
2018-07-11 11:27:00 +02:00
c04b07674e Merge pull request #7243 from Ebola16/SU
Qt: Clarify Synchronous (Ubershaders) name
2018-07-11 10:59:25 +02:00
c7ff141606 Merge pull request #7219 from ligfx/mappingwindow_hotplug
Qt/MappingWindow: update devices combo box when hotplugging devices
2018-07-11 10:58:26 +02:00
ea99cdd781 Merge pull request #7247 from lioncash/fwd
Qt/GameList: Replace includes with forward declarations where applicable
2018-07-11 10:57:02 +02:00
d81b63f403 Merge pull request #7245 from lioncash/internal
Qt/CheatsManager: Move concealable types into the cpp file
2018-07-11 10:55:42 +02:00
f170009aad Merge pull request #7246 from lioncash/enum
Qt/Resources: Convert int parameters of GetCountry(), GetPlatform() and GetMisc() to enum classes
2018-07-11 10:52:04 +02:00
42298f6d6d Merge pull request #7239 from addestroyer24/manual-update-now
Updater: fix immediate manual updating
2018-07-11 00:58:21 +02:00
9b2ffb6221 Qt/GameList: Replace includes with forward declarations where applicable
Avoids dragging in a bunch of includes from the header files, and also
reduces the amount of files that need to be recompiled if one of those
included headers' source content is ever changed.
2018-07-10 16:03:38 -04:00
a0642b3b00 Qt/Resources: Convert int parameters of GetCountry(), GetPlatform() and GetMisc() to enum classes
Makes the parameter strongly-typed and doesn't accept arbitrary int
values.
2018-07-10 15:23:12 -04:00
43bc3656eb Qt/CheatsManager: Move concealable types into the cpp file
CompareType, DataType, and Result aren't directly used externally, so
these can have their definitions moved into the cpp file.
2018-07-10 14:34:24 -04:00
71ff634c95 Merge pull request #7149 from spycrab/qt_5.9
Qt: Make Qt 5.9 a hard requirement
2018-07-10 20:20:27 +02:00
74899e417b Qt/MenuBar: Make failures to load map and signature files more obvious
Previously we wouldn't indicate if saving or loading these files
happened to fail. In some cases we'd only print out to the logger, but
this is a pretty poor way to tell a user of the interface that something
went wrong in a direct way (the logging messages aren't able to be localized
either).
2018-07-10 14:16:00 -04:00
affd5689ff Qt: Clarify Synchronous (Ubershaders) name 2018-07-10 12:22:21 -04:00
b9960777a7 Merge pull request #7236 from lioncash/fwd
DolphinQt/Settings: Replace includes with forward declarations
2018-07-10 16:24:33 +02:00
69999fd309 fix manual updating by passing the main window to the updater instead of the menubar 2018-07-09 19:39:50 -04:00
4f5ea1ad5e Merge pull request #7232 from Techjar/netplay-reduce-poll-rate-twice
NetPlay: Change "Reduce Polling Rate" to poll twice per frame
2018-07-09 23:29:22 +02:00
074b67706b Qt/Main: Remove redundant version check 2018-07-09 10:03:13 +02:00
a22ffb6387 Qt: Remove ActionHelper 2018-07-09 10:02:10 +02:00
4266d1f237 CMake: Require Qt 5.9 2018-07-09 09:17:33 +02:00
b4d91cc612 DolphinQt/Settings: Replace includes with forward declarations
Avoids dragging in netplay-related headers where they aren't explicitly
necessary.
2018-07-09 00:53:13 -04:00
9487892c18 Merge pull request #7226 from lioncash/netplay
Core: Namespace NetPlay utilities under the NetPlay namespace
2018-07-09 00:38:12 -04:00
2ee7021cda Qt/MenuBar: Add missing JIT branch option in debugger 2018-07-08 14:32:40 -04:00
38e67c0530 NetPlay: Change "Reduce Polling Rate" to poll twice per frame
Some games don't play nice when we poll only once per frame, so we'll poll twice instead.
2018-07-08 06:14:13 -04:00
8c97fb7cd4 Merge pull request #7203 from rukai/use_tas_checkbox
Add "Enable Controller Input" Checkbox on TAS dialogs
2018-07-08 04:35:50 +02:00
3b11066e61 Fix lint bugs 2018-07-07 13:02:38 -05:00
14482a72af Input: Allow cycling to occur for each individual controller 2018-07-07 12:55:49 -05:00
485285eadc Input: Add cycling between game specific profiles 2018-07-07 12:39:08 -05:00
3969bf6d1c Input: Add hotkey to cycle the wiimote profile forward or backward
Co-authored-by:  Barath Kannan <barathsotd@gmail.com>
2018-07-07 12:39:08 -05:00
7b986c1b54 Merge pull request #7224 from lioncash/warning
VideoCommon/DolphinQt2: Resolve compiler warnings
2018-07-07 16:20:56 +02:00