Commit Graph

1550 Commits

Author SHA1 Message Date
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
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
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
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
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
fc998093cc Merge pull request #7600 from spycrab/resource_pack
Implement resource packs
2018-12-23 16:04:05 +01:00
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
71d53c922f Implement resource packs 2018-12-19 11:03:09 +01:00
2351a60567 GCMemcard: Let GetDEntry() return std::optional<DEntry>. 2018-12-10 20:24:20 +01:00
929fd2b41d GCMemcard: Use BigEndianValue for DEntry.m_animation_speed. 2018-12-09 22:28:56 +01:00
15f89d3e6f GCMemcard: Rename DEntry variables to match our naming conventions. 2018-12-09 22:28:55 +01:00
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
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
00151fd913 Merge pull request #7601 from sepalani/html-pre
LogWidget: Preserve spaces and newlines
2018-12-02 19:38:54 +01:00
d5692afd7d LogWidget: Preserve spaces and newlines 2018-12-02 19:12:12 +04:00
e3708ea8c3 Externals: Add MoltenVK binary, copy to package on macOS 2018-12-01 14:35:45 +10:00
754d934a18 Merge pull request #7596 from Techjar/netplay-fix-force-stop
NetPlay: Allow force stopping
2018-11-30 21:30:04 +01:00
6388992f62 Merge pull request #7039 from stenzek/moltenvk
Vulkan: macOS support via MoltenVK
2018-11-30 21:55:30 +10:00
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
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
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
c18aa36eab Add nested docking to increase layout choices while debugging. 2018-11-27 11:14:46 -07:00
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
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
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
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
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
6b7a1ca6d1 Merge pull request #7535 from UnclePunch/synccodes
Netplay: Sync AR and gecko codes with clients
2018-11-13 22:39:25 +01:00
41333fa971 Merge pull request #7564 from Techjar/netplay-sync-wii-shutdown
NetPlay: Sync power button event
2018-11-13 22:33:59 +01:00
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
caf2fc3c3e NetPlay: Sync Defer EFB Copies setting 2018-11-12 20:45:12 -05:00
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
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
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
a1b9a9f519 DolphinQt: Add backend multithreading to graphics config 2018-11-07 05:12:20 -08:00
c52bdba28a Merge pull request #7542 from Tilka/fifo_analyzer
FIFOAnalyzer: don't use misleading format strings
2018-11-07 13:26:01 +01:00
8e2c063d62 TextureCache: Implement deferred/batched EFB copies 2018-11-07 16:25:01 +10:00
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
6714159660 FIFOAnalyzer: don't use misleading format strings 2018-11-03 14:37:22 +00:00
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
203ecb534d NetPlay: Fix saving host game selection 2018-10-29 17:01:30 -04:00
6bb31fc94c DolphinQt: tell analytics to reload settings on change 2018-10-29 05:07:47 +01:00
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
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
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
a7f334dc2a ControllerInterface: Don't crash on non-X11 QPA 2018-10-29 11:46:06 +10:00
9095233d21 Merge pull request #7483 from Zexaron/netplay_save-host-settings
Netplay: Properly save hosting settings
2018-10-29 01:44:41 +01:00
98987beb73 Merge pull request #7526 from Tilka/mo_logging
DolphinQt: reduce warnings about MO files
2018-10-28 23:52:22 +01:00
2071dea9b7 Merge pull request #7497 from stenzek/lazy-initialize
Qt/MainWindow: Lazy initialize child windows
2018-10-28 23:51:23 +01:00
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