Commit Graph

25688 Commits

Author SHA1 Message Date
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
JosJuice 683eef3044
Merge pull request #7413 from zackhow/launcher-crash
Android: Run Directory Initialization as a thread instead of service
2018-10-05 15:45:36 +02:00
spycrab 6e873c6e06 Qt/GameList: Implement tag system 2018-10-05 08:22:51 +02:00
Stenzek 4ebf3f3189
Merge pull request #7453 from amaiorano/improve-progress-dialog
Make the progress dialog look better (used for e.g. shader compiling)
2018-10-05 14:39:45 +10: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
Anthony d741c239d2
Merge pull request #7447 from JosJuice/guitar-bue
Android: Fix blue guitar fret for emulated Wii Remotes
2018-10-02 14:07:10 -07:00
JosJuice cf1578c89d Android: Fix blue guitar fret for emulated Wii Remotes 2018-10-02 23:02:46 +02: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
MerryMage 826bcad3a5 UnitTets: Add tests for frsqrte 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
JosJuice 4a7715927e
Merge pull request #7392 from weihuoya/android-menu-fx
Menu show action fx for android
2018-09-26 19:54:36 +02: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
zackhow 67902a7091 Android: Layout for emulation when phone is portrait
This sets the surfaceview to the top half of the screen instead of it sitting in the middle which gives more room for onscreen controls.
2018-09-21 17:20:13 -04:00
zackhow f05d85dfe4 Android: add reset touch overlay 2018-09-21 17:20:13 -04:00
zackhow ab46f0cb82 Android: Add default portrait touch overlays 2018-09-21 17:18:30 -04:00
zackhow afe59c50c4 Android: add profile for portrait touch overlay 2018-09-21 17:18:30 -04: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 8a93dd0105 x64EmitterTest: Fix linting issues 2018-09-16 19:52:12 +02:00
Sintendo 58a0d0f117 x64EmitterTest: test MOV with 64-bit immediates 2018-09-16 19:52:12 +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
zackhow 1311f84706 Android: Run Directory Initialization as a thread instead of service
Two reasons for this change. First, it appears that some android launchers do some sort of call into
the application when long pressing the app icon, which in turn calls the DirectoryInit service. This
was ok to do prior to Oreo but will cause crashes with the new restrictions on services running
in the background. Which leads to the second reason that DirectoryInit doesn't need to be a service
at all since these actions are required for dolphin to function and shouldn't be a scheduled action.
So we instead just kick this off in a new thread and send the broadcast when done.
2018-09-14 09:54:36 -04: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 1f34471130 Fix lint 2018-09-07 08:56:05 -04: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
weihuoya c062258719 use app:showAsAction 2018-09-03 16:07:45 +08: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
Anthony 4a34dba001
Merge pull request #7387 from zackhow/covers-nostretch
Android: Fix cover stretching and show more games per row
2018-08-31 19:29:49 -07:00
zackhow 374b0bf2dc Android: show more games per row 2018-08-31 21:15:28 -04:00
zackhow ec0e1d2826 Android: Fix cover stretching 2018-08-30 17:14:09 -04: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
zackhow 169e41aa30 Android: fix crash if user is offline
If the user is offline, then there won't be a network response. Just debug log that the report couldn't send and move on
2018-08-29 16:41:47 -04: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
zackhow bbf2184933 Android: Analytics - get android ui type when called instead of setting it ahead of time
It's possible to not have set the device type if the user launches a game without going to the main activity(like launching from the TV menu)
2018-08-28 18:23:57 -04: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
Pierre Bourdon 6a22f1b3e0
Merge pull request #7253 from booto/fifo_reg
CP: some bits in some of the HI registers cannot be set
2018-08-27 14:56:12 +02:00
Pierre Bourdon b2b72bd3ce
Merge pull request #7272 from Techjar/xkb-mouse-button-fix
InputCommon/XInput2: Increase mouse buttons to 32
2018-08-27 14:52:37 +02:00
Techjar 311d0442de InputCommon/XInput2: Increase mouse buttons to 32
Xlib supports many mouse buttons, though there are 9 standard buttons, and they aren't arranged like other mouse APIs. Using only 5 buttons was preventing the use of buttons besides left/right/middle click and the scroll wheel. Here's what all the standard buttons are:
1. left button
2. middle button (pressing the scroll wheel)
3. right button
4. turn scroll wheel up
5. turn scroll wheel down
6. push scroll wheel left
7. push scroll wheel right
8. 4th button (aka browser backward button)
9. 5th button (aka browser forward button)

The remaining button indices are non-standard and device-specific, and technically far more than 32 are supported, but this seems like a reasonable limit to avoid cluttering the list with tons of useless mouse buttons. What mouse has more than 32 buttons anyways?
2018-08-27 08:47:32 -04:00
Techjar f1bc17ab9e Qt/MD5Dialog: Fix pressing enter on NetPlay window causing dialog to close 2018-08-27 08:39:39 -04:00
Pierre Bourdon ea26ccbbe1
Merge pull request #7318 from VinDuv/rename-master-log
LogManager: Change Master Log short name to fix log configuration loading
2018-08-27 13:36:04 +02:00
Pierre Bourdon 62928de547
Merge pull request #7357 from Techjar/qt-memcard-manager-select-button
Qt/GCMemcardManager: Make slot and file selection more intuitive
2018-08-27 13:35:38 +02:00
Pierre Bourdon af2e69dfdc
Merge pull request #7366 from Techjar/discord-pics-popular
DiscordPresence: Add popular games to artwork list
2018-08-27 12:40:57 +02:00
Techjar 80c4e77735 DiscordPresence: Add popular games to artwork list 2018-08-27 06:10:11 -04:00
Pierre Bourdon b1889fc785
Merge pull request #7364 from riking/android-reformat
Reformat all Android code
2018-08-27 09:36:19 +02:00
Pierre Bourdon 0d4a28dfdf
Merge pull request #7365 from riking/android-code-style
Update Android code style file to better match C/C++ code style
2018-08-27 09:35:58 +02:00
riking 248ee12aed Reformat Android code 2018-08-26 21:37:54 -07:00
riking ab76631a7f Update code style file, remove old style .jar 2018-08-26 21:32:56 -07:00
Pierre Bourdon f2323331ea
Merge pull request #7240 from lioncash/namespace
Common/DebugInterface: Namespace code under the Common namespace
2018-08-27 04:49:26 +02:00
Pierre Bourdon 0c39590353
Merge pull request #7229 from lioncash/truncate
Interpreter: Remove an unnecessary cast in Trace()
2018-08-27 04:49:06 +02:00
Pierre Bourdon 3cc8a19dd4
Merge pull request #7215 from leoetlino/dsptool-fix
DSPTool: Use std::string == instead of strcmp
2018-08-27 04:48:37 +02:00
Pierre Bourdon e096ca20e9
Merge pull request #7358 from Techjar/qt-memcard-manager-deletion-fix
Qt/GCMemcardManager: Fix deletion of multiple files
2018-08-27 04:48:07 +02:00
Pierre Bourdon dbb7563cce
Merge pull request #7363 from Techjar/netplay-hia-comments
NetPlay: Add additional comments for host input authority mode
2018-08-27 04:45:20 +02:00
Pierre Bourdon db55c36f09
Merge pull request #7359 from stenzek/intel-d3d-crash
PixelShaderGen: Ensure all components of ocol1 are initialized
2018-08-27 04:42:28 +02:00
Pierre Bourdon eef47990d9
Merge pull request #7339 from weihuoya/cache-all-page
Android: cache all page, avoid image flicking when swipe from last page to first page
2018-08-27 04:41:23 +02:00
Pierre Bourdon 246b1f4459
Merge pull request #7350 from zackhow/android-analytics
Android: Add usage statistics to android
2018-08-27 04:37:17 +02:00
Pierre Bourdon b571d0c537
Merge pull request #7355 from hackbar/style-cleanup
Style cleanup
2018-08-27 04:32:50 +02:00
Pierre Bourdon 045b9a97b5
Merge pull request #7330 from Ebola16/314
Update Android Gradle Plugin to 3.1.4
2018-08-27 04:31:35 +02:00
Pierre Bourdon 3d94dc1870
Merge pull request #7353 from hackbar/cleanup
Cleanup
2018-08-27 04:31:10 +02:00
Techjar 1ba834d13c NetPlay: Add additional comments for host input authority mode 2018-08-26 22:28:23 -04:00
Pierre Bourdon ca719dbdd6
Merge pull request #7362 from riking/android-code-style
Android code style enforcement
2018-08-27 04:25:22 +02:00
riking c5ecb718ac Add Android code style enforcement to lint.sh
This requires buildbot changes: the path to the Android Studio
installation must be supplied in an environment variable.

Modified files are copied out to a temporary directory, Android Studio
is asked to format the files, and a git diff is performed.
2018-08-26 19:18:31 -07:00
Pierre Bourdon 0cc3ae72a5
Merge pull request #7344 from delroth/discord-pics
DiscordPresence: use game-specific artwork if available
2018-08-27 00:11:21 +02:00
Pierre Bourdon 9bcd7bfe1e
Merge pull request #7360 from Techjar/netplay-host-input-authority
NetPlay host input authority mode
2018-08-26 23:15:44 +02:00
Techjar 5519efa66e NetPlay host input authority mode
Currently, each player buffers their own inputs and sends them to the
host. The host then relays those inputs to everyone else. Every player
waits on inputs from all players to be buffered before continuing. What
this means is all clients run in lockstep, and the total latency of
inputs cannot be lower than the sum of the 2 highest client ping times
in the game (in 3+ player sessions with people across the world, the
latency can be very high).

Host input authority mode changes it so players no longer buffer their
own inputs, and only send them to the host. The host stores only the
most recent input received from a player. The host then sends inputs
for all pads at the SI poll interval, similar to the existing code. If
a player sends inputs to slowly, their last received input is simply
sent again. If they send too quickly, inputs are dropped. This means
that the host has full control over what inputs are actually read by
the game, hence the name of the mode. Also, because the rate at which
inputs are received by SI is decoupled from the rate at which players
are sending inputs, clients are no longer dependent on each other. They
only care what the host is doing. This means that they can set their
buffer individually based on their latency to the host, rather than the
highest latency between any 2 players, allowing someone with lower ping
to the host to have less latency than someone else.

This is a catch to this: as a necessity of how the host's input sending
works, the host has 0 latency. There isn't a good way to fix this, as
input delay is now solely dependent on the real latency to the host's
server. Having differing latency between players would be considered
unfair for competitive play, but for casual play we don't really care.
For this reason though, combined with the potential for a few inputs to
be dropped on a bad connection, the old mode will remain and this new
mode is entirely optional.
2018-08-26 17:10:23 -04:00
zackhow a26cf8febc Android: Analytics - Set new session after being closed for 6 hours 2018-08-25 16:57:07 -04:00
BhaaL 5f95ed5263 Jit64: get rid of global g_jit accesses 2018-08-25 16:53:49 +02:00
spycrab 476037d1f2
Merge pull request #7345 from spycrab/qt_cover_uniform
Qt/GridProxyModel: Ensure uniform sizes in cover mode
2018-08-25 02:01:14 +02:00
Mike 308ae11f2b Android: add a description for 'Compile Shaders Before Starting'
Before this, it was using 0 as a resource ID. That has undefined
behavior, and seemed to use a previous string.
2018-08-24 08:50:29 -07:00
Mike 55e4637b42 Android: add braces to a one-line if block
There isn't an official Java style, but this seems to be consistent with
everything else. Also it's weird to see one one liners without braces in
Java.
2018-08-24 08:50:29 -07:00
Mike 6d954afddd Android: minor spacing and brace fix.
There isn't an official Java style, but this seems to be consistent with
everything else.
2018-08-24 08:50:25 -07:00
Stenzek bae1168fe9 PixelShaderGen: Ensure all components of ocol1 are initialized
This was causing a warning in the shader compiler, as the rgb components
were not initialized. Which shouldn't be an issue, as the rgb is not
used in the blend equation, only the alpha. However, the lack of
initialization causes crashes in Intel's D3D shader compiler, so we'll
play nice and initialize all the channels.
2018-08-24 23:53:00 +10:00
Techjar fd7d51eed6 Qt/GCMemcardManager: Fix deletion of multiple files 2018-08-24 07:58:38 -04:00
Techjar 6ae77623c5 Qt/GCMemcardManager: Make slot and file selection more intuitive 2018-08-24 07:10:48 -04:00
Mike fda785c452 Android: whitespace fix 2018-08-23 18:32:29 -07:00
Mike dd8d7bba98 Android: Get rid of the per-platform styles, as we only using the GC one.
I think the intention might have been to switch styles based on what
platform was selected, but that never happened. Instead, everything just
used the GC styles.

All the platform-specific styles did was add an accent color (which
tints the checkbox and text area elements). This adds a specific color for
that instead of abusing a platform color.

There should be no visual changes for this commit.
2018-08-23 18:32:29 -07:00
spycrab 248afb9fa7
Merge pull request #7347 from spycrab/qt_fix_visibility
Qt: Fix widgets being visible when they shouldn't be
2018-08-24 01:58:55 +02:00
spycrab 398cce52be
Merge pull request #7352 from Techjar/qt-signal-blocker
Qt: Switch to QSignalBlocker for scoped signal blocking
2018-08-24 01:58:21 +02:00
zackhow 82f82a6b7d Android: Add usage statistics to android.
Added an option in General config to enable/disable usage statistics. Added a popup on first open if
the user would like to engage in reporting. Clicking cancel or out of the box opts out. Only
clicking 'Ok' will enable reporting. Also added a new android specific values to report.
2018-08-23 17:31:17 -04:00
Techjar 1547b185c7 Qt: Switch to QSignalBlocker for scoped signal blocking 2018-08-23 07:11:52 -04:00
Techjar d72f4ed468 Qt/AdvancedPane: Block signals during Update() 2018-08-23 07:00:20 -04:00
Techjar 5512eadd08 VideoCommon/HiresTextures: Change wildcard to a Windows-compatible character 2018-08-21 15:54:25 -04:00
Pierre Bourdon d44087128e
Merge pull request #7342 from spycrab/qt_dbg_scroll
Qt/Debugger: Improve scrolling
2018-08-20 21:41:54 +02:00
Pierre Bourdon 183fb9bf6a
Merge pull request #7338 from booto/controller_modes
Fix analog modes that use 4 bits for c-stick data
2018-08-20 13:02:32 +02:00
Markus Wick 3c354d9280
Merge pull request #7333 from weihuoya/gamecover-nomedia
Hide game cover in android gallery
2018-08-20 10:01:50 +02:00
spycrab 77ebd721e3 Qt: Fix widgets being visible when they shouldn't be 2018-08-20 00:39:57 +02:00
spycrab 5b992f138b Qt/Debugger: Improve scrolling
Reduces the scrolling speed for both keyboard and mouse scrolling so
users are able to navigate the code and memory view line by line
2018-08-19 22:36:04 +02:00
JosJuice c3b0208de6
Merge pull request #7340 from zackhow/enable-touch-con
Android: Set GC controller 1 to enabled if settings don't exist
2018-08-19 20:32:21 +02:00
JosJuice b2880d0330
Merge pull request #7336 from zackhow/extension-ui-bug
Android: Fix wiimote extension from defaulting to none in UI
2018-08-19 20:31:21 +02:00
JosJuice be890c56ac Fix critital buffer overflow in LoadPNG 2018-08-19 17:35:15 +02:00
spycrab 2ea6cc66ba Qt/GridProxyModel: Ensure uniform sizes in cover mode 2018-08-19 17:13:29 +02:00
Pierre Bourdon 4ecee3cb99 DiscordPresence: use game-specific artwork if available
Since we don't have a way (AFAIK) to dynamically collect the list of
available art assets, we hardcode a list of gameids with available
artwork inside Dolphin. It's not great, but I don't think it's a
terrible solution either.

Art has to be manually uploaded to our Discord app configuration, and we
have a limit of ~150 assets, so most likely we'll limit ourselves to a
small set of popular games.
2018-08-19 14:53:40 +02:00
Mat M 8f847c7655
Merge pull request #7343 from spycrab/qt_bp_fix
Qt/Debugger: Readd title bar to breakpoint widget
2018-08-19 08:41:36 -04:00
Pierre Bourdon 0fdb6f4267
Merge pull request #7249 from yourWaifu/discord-rpc-join
Add Discord Join Net Play functionally
2018-08-19 13:43:33 +02:00
spycrab 27bc9046e7 Qt/Debugger: Readd title bar to breakpoint widget
Removed it by accident in #7299
2018-08-19 13:37:59 +02:00
Admiral H. Curtiss 5df424a1ec Use simplified libpng PNG reading API to avoid PNG reading bugs. 2018-08-19 13:14:11 +02:00
spycrab 12a5fd80bd
Merge pull request #7299 from spycrab/qt_compact
Qt/Debugger: Make spacing more compact
2018-08-17 15:28:03 +02:00
zackhow afc1876e49 Android: Set GC controller 1 to enabled if settings don't exist
If a user changes any config options before starting emulation then all SIDevices are set to 0.
This was added in PR 6267(commit 58ee9d2a78) to fix a bug.
2018-08-17 08:20:22 -04:00
booto 168fdf814b Fix analog modes that use 4 bits for c-stick data
Also get rid of a load of unnecessary casts
2018-08-16 02:17:17 -04:00
weihuoya 4f90bcce63 cache all pages, android 2018-08-16 14:10:44 +08:00
zackhow 4c281f72b6 Android: Enhance Dpad movements/touches
Allows you to 'slide' your finger to move across the dpad like a joystick.
2018-08-15 21:13:11 -04:00
zackhow a20513eff9 Android: Fix wiimote extension from defaulting to none in UI
Another index disconnect between the padId's and the wiimote numbers. This was done correctly when saving but not when reading the current value
2018-08-15 17:39:22 -04:00
spycrab 8e5c3d5b4e
Merge pull request #7326 from spycrab/qt_tas_fancy
Qt/TAS: Enable antialiasing for Stick/IR widgets
2018-08-15 19:46:56 +02:00
spycrab 8d184ab9bd Qt/Debugger: Make spacing more compact 2018-08-15 19:26:04 +02:00
BreadFish64 b246678c8c
Fix spelling in assert macro 2018-08-15 12:12:19 -05:00
weihuoya eefef73141 nomedia, add comment text 2018-08-15 19:41:55 +08:00
spycrab 6d56b03304
Merge pull request #7325 from spycrab/qt_tas_reset
Qt/TAS: Implement recentering feature
2018-08-15 13:07:58 +02:00
weihuoya 2fac523e10 hide game cover in android gallery 2018-08-15 16:37:00 +08:00
Lioncash 67b015d76b Arm64Emitter: Get rid of a pointer cast within SetJumpTarget()
Type punning like this is undefined behavior. Instead, we use std::memcpy to
copy the necessary data over, which is well defined (as it treats both
the source and destination as unsigned char).
2018-08-14 23:47:53 -04:00
spycrab fb382e90eb
Merge pull request #7324 from spycrab/qt_independent_tas
Qt/TAS: Make TAS input windows independent
2018-08-15 01:51:26 +02:00
master0fdisaster 0d79e8a2ca Qt: Config/Advanced: Fix CPU Clock Speed Slider
Changes rounding from ceiling to nearest, when updating the slider value. Using ceiling as rounding made some values inaccessible.
2018-08-14 17:22:30 +02:00
master0fdisaster 1544d7d681 Qt: Config/Interface: Fix "Show Active title in Window Title" Checkbox
Makes the checkbox save when it's toggled.
2018-08-14 17:22:30 +02:00
master0fdisaster bc3cc01cc9 Qt: Config/Interface: Fix User Style Drop Down
makes the user style drop down load the right custom style after a restart
2018-08-14 17:21:50 +02:00
Ryan Meredith 4a6d9f7b6a Update Android Gradle Plugin 2018-08-14 07:40:25 -04:00
JosJuice 6a34210c2d
Merge pull request #7328 from zackhow/covers-nocrop
Android: Don't crop covers
2018-08-14 11:45:14 +02:00
Sleepy Flower Girl 158c0d54b1 Force IPv4 on external IP addresses 2018-08-13 21:17:38 -04:00
Pierre Bourdon 6c1f39458b Jit64: Update PC before checking for exceptions 2018-08-14 02:27:48 +02:00
zackhow 1f40efda5d Android: Don't crop covers 2018-08-13 17:39:26 -04:00
spycrab 1c793503b1 Qt/TAS: Implement recentering feature 2018-08-13 23:34:25 +02:00
Billy Robert O'Neal III 6640d1ec81 Attempt to fix linter issues. 2018-08-13 12:17:56 -07:00
Billy Robert O'Neal III a0af0bf588 Workaround use of private constant _Snan no longer being present in <limits>. 2018-08-13 12:05:50 -07:00
spycrab 55c608b482 Qt/TAS: Enable antialiasing for Stick/IR widgets 2018-08-13 15:05:30 +02:00
zackhow 3f21975d2a Android: Update mobile and TV to use game covers
Using covers should give a consistent look to dolphin's library.
2018-08-13 08:24:52 -04:00
spycrab 9739ad9f48 Qt/TAS: Make TAS input windows independent 2018-08-13 14:15:09 +02:00
Markus Wick 84c24516b1
Merge pull request #7306 from zackhow/touch-button-placement
Android: Add default touch button overlay
2018-08-13 13:44:03 +02:00
Markus Wick 9322c0edfa
Merge pull request #7320 from zackhow/leanback-button-clear
Android: Clear controller binding by long press on TV
2018-08-13 13:42:48 +02:00
Markus Wick 15ef7d6fb8
Merge pull request #7323 from lioncash/dedup
PowerPC: Deduplicate Helper_Mask() code
2018-08-13 13:41:10 +02:00
spycrab 1c324c8927
Merge pull request #7317 from spycrab/qt_fix_mpbtn_crash
Qt/MappingButton: Fix crash when exiting during input detection
2018-08-13 00:14:25 +02:00
Lioncash a4110ad958 PowerPC: Deduplicate Helper_Mask() code
We can share this across all implementations instead of duplicating it
in different ways.
2018-08-12 17:24:16 -04:00
VperuS e5980f280d
Core/UICommon: Fix assignment to pointer 2018-08-12 17:15:14 +03:00
zackhow a2f90d3915 Android: require back to be pressed twice to exit on mobile 2018-08-12 06:59:06 -04:00
zackhow 51fa5d2fd8 Android: Clear controller binding by long press on TV
The TV interface can't 'click' the clear button, this gives TV a way to clear
2018-08-11 21:47:49 -04:00
zackhow 75f4e74e94 Android: Add default touch button overlay
This sets up default positions for touch buttons so they are not just bunched in the corner on a fresh install. Also added a toast when emulation starts on how to edit button layout
2018-08-11 12:56:23 -04:00
Vincent Duvert e2a557e739 LogManager: Change Master Log short name
Change the Master Log short name from “*” to “MASTER”. This fixes
saving the master log enable state, as INI files may not start with *.
2018-08-11 18:37:33 +02:00
spycrab 159d5a6925 Qt/MappingButton: Fix crash when exiting during input detection 2018-08-11 17:37:12 +02:00
JMC47 3a4574957b Disables a panic alert in lswx that makes using not64 impossible 2018-08-10 21:22:45 -04:00
Pierre Bourdon 55fa4842fb
Merge pull request #7307 from booto/qsortfilter-strict-weak
GameList: QSortFilterProxyModel should provide strict weak ordering
2018-08-11 02:57:36 +02:00
Pierre Bourdon 91edc95243
Merge pull request #7315 from delroth/crset-fix
Jit64: fix crset implementation
2018-08-11 02:24:15 +02:00
Pierre Bourdon b382310367
Merge pull request #7313 from PoroCYon/master
Rename SIGTRAP, SIGTERM etc. to GDB_SIGTRAP etc.
2018-08-11 01:40:14 +02:00
Pierre Bourdon c8d4fa5308 Jit64: fix crset implementation
At some point SetCRFieldBit was modified to operate on RSCRATCH, but the
function was only partially changed. As such, setting SO, GT or LT would
write the right bit to cr_field, but then cr_field would just get
overwritten with RSCRATCH, undoing the work.
2018-08-11 01:12:49 +02:00
Markus Wick 185f971e2a
Merge pull request #7308 from booto/dualcore-fifo-player-shutdown
FifoPlayer: Actually exit on 'Stop' in dualcore
2018-08-10 18:00:18 +02:00
PoroCYon 26a9ab5b19 Use GDB_SIG* enum instead of the system's macros, as the latter mightn't be included or might have a different value. 2018-08-10 16:09:27 +02:00
JosJuice 2a2a2cfc5e DolphinQt: Don't call "frame advance" "frame skip"
Just to avoid confusion.
2018-08-09 10:32:32 +02:00
JosJuice 2ee8a61148 ConfigManager: Remove m_FrameSkip
This setting was removed some time ago but was apparently
still being read and written by ConfigManager.
2018-08-09 10:31:02 +02:00
Markus Wick 74057ec222
Merge pull request #7303 from zackhow/exitemumenu
Android:  Add exit to phone emu menu
2018-08-09 10:19:25 +02:00
Markus Wick bfbf9ed2ee
Merge pull request #7292 from mahdihijazi/settings_refactor
Android: Settings refactor & Fix custom game settings
2018-08-09 10:17:03 +02:00
booto da0927fe8f FifoPlayer: Actually exit on 'Stop' in dualcore
Quit the fifoplayer cpu idle loop if a shutdown has been requested
2018-08-09 01:08:21 -04:00
booto aef446697d GameList: QSortFilterProxyModel should provide strict weak ordering 2018-08-08 23:59:58 -04:00
spycrab 7cb310791b Cleanup: Remove some left over references to wxWidgets 2018-08-07 15:48:17 +02:00
spycrab ddf09a0841
Merge pull request #7298 from spycrab/usb_keyboard_hotkey
Hotkeys: Add "Toggle USB Keyboard" hotkey
2018-08-07 07:47:20 +02:00
zackhow 58aa6b9905 Android: Add exit to phone emu menu
Some phones that have capacitive nav bar buttons disable those buttons while in emulation. This gives those devices a way to exit
2018-08-06 22:26:58 -04:00
Sleepy Flower Girl c2aedb7649 Adds a UI for accepting Discord join requests in Dolphin
also did these things
fixed crash from joining user that isn't hosting via a direct connection
current game stat can now pass to override the current game in config
uses ip endpoint from dolphin.org
2018-08-06 16:12:03 -04:00
Anthony 0a8e04e469
Merge pull request #7301 from zackhow/wiicontroller
Android: Return 0 on fail on WiimoteReal IOWrite and update WiimoteNew defaults
2018-08-05 00:05:11 -07:00
mahdihijazi f41785e1b9 Android: Reflect the settings that is being used by the emulator on the UI
Per-Game settings now load the settings in this order
1. Emulator Settings
2. Default Settings of the Game that we ship with Dolphin
3. Custom game settings the user have

where the later always overides the former in case of collision, then
we show that on the UI to make it clear to the user which settings being
used.
2018-08-05 01:33:30 +02:00
Lioncash ac1b48497e NetPlayServer: Make g_initial_netplay_rtc a member variable of NetPlayClient
Behaviorally, this belongs within the netplay client. The server will
always transmit a known RTC value, so it doesn't even need a global for
this. Given the client receives the packet containing said RTC value, we can
store it as a member variable and provide an accessor for reading that
value.

This removes another global variable within the netplay code.
2018-08-03 23:20:16 -04:00
Anthony 72d5ff54f3
Merge pull request #7257 from lioncash/const
WiimoteEmu: Minor changes
2018-08-03 20:09:31 -07:00
Anthony 15090dc4b8
Merge pull request #7300 from stenzek/qt-open-dff
DolphinQt: Add .dff to open file filter
2018-08-03 20:08:18 -07:00
zackhow ec5e46fa7a Android: Return 0 on fail on WiimoteReal IOWrite and update WiimoteNew defaults
Some of the write checks do an & on the result, returning 0 will allow these fails to be caught.
Updated the default WiimoteNew to set wiimotes 2-4 to be disabled on new install. No reason to have these
enabled unless there is actually a 2+ players
2018-08-03 19:46:26 -04:00
mahdihijazi ed1c91b4f6 Android: Fix custom game settings
Apparently there was a different section names used by the custom game
settings that caused Android to have those settings broken for
some sections like the graphics one. This adds the map between the generic
settings <> custom settings.
2018-08-03 22:45:52 +02:00
mahdihijazi c664bb7458 Android: Refactor the settings managemnt
1. Create Settings class the encaupslate the loading/saving of all settings
2. Decouple the logic of saving the settings into 3 different config files
from the UI code.
2018-08-03 21:45:39 +02:00
mahdihijazi 61835a7e08 Android: Start structure the project around features instead of data types
This only moves the settings feature, the rest will be moved slowely later
2018-08-03 21:41:34 +02:00
JosJuice d425732837
Merge pull request #7297 from booto/no-dol
ExportDOL: ActionReplay has a 0'd dol offset. Don't try to extract.
2018-08-03 16:19:18 +02:00
Stenzek dca1096664 DolphinQt: Add .dff to open file filter 2018-08-03 17:39:17 +10:00
spycrab cf116d488a
Merge pull request #7268 from lioncash/config
Core/BootManager: Remove unnecessary includes
2018-08-02 23:17:03 +02:00
spycrab e3f36b74c5 Hotkeys: Add "Toggle USB Keyboard" hotkey 2018-08-02 12:55:30 +02:00
booto 800c1570ea ExportDOL: ActionReplay has a 0'd dol offset. Don't try to extract. 2018-08-02 05:32:05 -04:00
booto f800f6343d BS2Emu: Don't do a DVDCopy when AppLdrMain returns 0 2018-08-02 01:30:25 -04:00
Sleepy Flower Girl b7c241ea4c Add Discord Join Net Play functionally 2018-07-31 22:24:10 -04:00
zackhow be02a8e70b Android: Fix wiimote settings saving.
Index was off by one, so if you enabled Emulated Controller for
wiimote1, it would set the 'Source = 1' for wiimote0.
2018-07-30 19:50:45 -04:00
JosJuice db76994a9a Android: Don't crash when loading games into game list
Regression from PR #7285 / PR #7293.
2018-07-30 18:08:53 +02:00
spycrab 6af7c1fe27
Merge pull request #7273 from Techjar/qt-iowindow-detect-spaces
Qt/IOWindow: Fix detection of button names containing non-alphabetical characters
2018-07-30 11:58:47 +02:00
spycrab 81c3400681
Merge pull request #7269 from lioncash/qt
DolphinQt/MainWindow: Replace includes with forward declarations
2018-07-30 11:56:31 +02:00
spycrab 2a776bf2b6
Merge pull request #7258 from Techjar/netplay-fix-segfaults
Fix more segfaults on NetPlay quit
2018-07-30 11:52:38 +02:00
spycrab 7c2569ada7
Merge pull request #7283 from Techjar/netplay-improve-settings-sync
NetPlay: Improve settings synchronization and UI
2018-07-30 11:47:48 +02:00
Pierre Bourdon 22108bbae7
Merge pull request #7288 from zackhow/wiisettings
Android: Fix emulated wiimotes via controller
2018-07-30 11:42:05 +02:00
zackhow 38c8d970f2 Android: Fix emulated wiimotes via controller
A little background: Android has 8 controller setup, 4 gamecube pads and 4 wiimote pads. When the static GCPadNew.ini and wiimotenew.ini is created, pads 0-3 are gc 1-4, and 4-7 are wii 1-4. Problem was the settings set wii controllers as pads 1-4, instead of 4-7. So any setting for wiimote1, was set for gc2(padID 1). Which is why the only wiimote to work was 4, since it mapped to padID 4, which is actually wiimote1.
2018-07-29 21:24:28 -04:00
spycrab 8fb3085b07 Revert "Revert "Qt/GameList: Add option to show covers in grid mode"" 2018-07-30 03:16:37 +02:00
degasus 5333c17cca Jit: Fix branch following.
The idea of this code was to not unroll loops, but it was completely broken.
So we've unrolled all loops, but only up to the second iteration.
Honestly, a better check would test if we branch to code which is already in the compiling block. But this is out of scope for now.

But testing shows that this unrolling actually improve the performance. So instead of fixing this bug, this check can be dropped.
2018-07-28 16:35:42 +02:00
Techjar 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
JosJuice 7c2d2548a8
Merge pull request #7284 from Techjar/netplay-fix-unknown-region-crash
Fix segfault on NetPlay start with unknown region
2018-07-22 22:27:34 +02:00
Markus Wick be9437450e
Merge pull request #7234 from zackhow/master
Android: Support for AndroidTV Oreo Homescreen channels
2018-07-22 15:02:49 +02:00
Techjar dee64a89e0 Fix segfault on NetPlay start with unknown region
This is accomplished by having SConfig::GetDirectoryForRegion no longer
return nullptr, as doing that was kind silly, considering we never
check for nullptr.
2018-07-21 13:13:08 -04:00
JosJuice 448547c38f
Merge pull request #7250 from JosJuice/android-nonzero-axis
Android controller mapping: Ignore axes with constant values
2018-07-21 14:23:49 +02:00
Techjar 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
Mat M a21d536f99
Merge pull request #7282 from booto/no-more-global-dcbz-disable
Config: Remove Core::DCBZ [bDCBZOFF] - obsolete
2018-07-20 23:05:38 -04:00
spycrab 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
spycrab c141511c87
Merge pull request #7222 from Techjar/netplay-sync-saves
NetPlay save data synchronization
2018-07-21 02:09:02 +02:00
zackhow 0488fe1d30 Android: Support for AndroidTV Oreo Homescreen channels 2018-07-20 17:56:45 -04:00
booto f88c46b4da Config: Remove Core::DCBZ [bDCBZOFF] - obsolete
This option completely disabled the DCBZ instruction. Users are toggling
this option in dolphin forks and using that same problematic config when
launching dolphin. Removing the option from dolphin will let the config be
ignored.
2018-07-20 03:25:12 -04:00
Techjar 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
Stenzek dae161e138 FramebufferManager: Use D24S8 on Adreno when using Vulkan
D32F clears are broken on Adreno, which resulted in smeared geometry
across the screen.
2018-07-19 23:30:25 +10:00
Stenzek 3323265d91 FramebufferManager: Dynamic selection of EFB depth format 2018-07-19 21:47:42 +10:00
Stenzek b30342d38f VideoBackends: Support D24S8 abstract texture format 2018-07-19 21:47:42 +10:00
Markus Wick f5e8af7b6c
Merge pull request #7276 from stenzek/disable-shared-context-nouveau
DriverDetails: Disable shared context shader compilation on nouveau
2018-07-19 09:15:27 +02:00
Mat M 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
Techjar 3cee7d599b Qt/CheatsManager: Fix segfault in GenerateARCode 2018-07-18 17:56:31 -04:00
Techjar 44aa3cdc0f Qt/IOWindow: Don't set QSizePolicy::Expanding on macOS 2018-07-17 14:35:56 -04:00
cremno 4ad2153378 fix compilation w/o Discord Rich Presence 2018-07-17 12:03:41 +02:00
Anthony 98c7b232c4
Merge pull request #7266 from spycrab/qt_discord_fix
Qt/GeneralPane: Disable Rich Presence checkbox while emulation is run…
2018-07-16 22:10:32 -07:00
Mat M 944b5fade6
Merge pull request #7264 from ligfx/ffmpeg_deprecations
Fix deprecation warnings with recent FFmpeg versions
2018-07-16 23:44:18 -04:00
Stenzek 602fe0f457 DriverDetails: Disable shared context shader compilation on nouveau
Our usage of glFinish() can cause driver crashes and/or lockups.

Please note that this disables the background shader compilation (i.e.
all shaders will be compiled on boot). There is no way around this.
2018-07-17 13:34:18 +10:00
Techjar 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
JosJuice c663dc9e00 Remove settings that only were used by DolphinWX 2018-07-16 21:21:42 +02:00
JosJuice 325f3c6ee5
Merge pull request #7254 from Techjar/dont-set-jitfollowbranch
Core/ConfigManager: Don't set JITFollowBranch
2018-07-16 21:06:31 +02:00
Lioncash 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
Techjar d49b415e75 Core/ConfigManager: Don't set JITFollowBranch
We don't want to write this setting to disk, as SConfig has problems
with leaking settings changed by GameINI into the base configs. The
result of this is that if someone plays an N64 VC game (or other game
where we disable this setting) the branch following option can get
unintentionally disabled globally, which will reduce performance in
many games and cause NetPlay to desync with users who still have it
enabled.
2018-07-15 17:38:10 -04:00
Lioncash 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
spycrab 6044165f9d
Merge pull request #7237 from lioncash/netsettings
NetPlayClient: Make global NetSettings instance part of the NetPlayClient class
2018-07-15 00:02:58 +02:00
spycrab 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
spycrab e9158bae6f Qt/LogWidget: Fix messages not being escaped properly 2018-07-14 23:06:18 +02:00
Michael M 857138a0ba AVIDump: use dump_path rather than deprecated AVFormatContext::filename
AVFormatContext::filename was deprecated in lavf 58.7.100 in favor
of AVFormatContext::url. Instead of adding version-checking logic,
just use the passed-in dump path instead.
2018-07-14 12:46:04 -07:00
Michael M e45698aaa0 AVIDump: av_register_all is deprecated/unneeded since 58.9.100 2018-07-14 12:46:00 -07:00
Lioncash 9983d92981 WiimoteEmu: Resolve unrelated lint code style warnings
This discrepancy was introduced in b3b1845785
2018-07-13 13:34:00 -04:00
Lioncash cfe7549091 ControlGroup/Triggers: Return state data by value
Makes it less error-prone to get state data from analog sticks (no need
to pass any locals), and also allows direct assignment, letting the
retrieved data be const.
2018-07-13 13:20:35 -04:00
Lioncash 97ba02df27 ControlGroup/Tilt: Return state data by value
Makes it less error-prone to get state data from tilt controls (no need
to pass any pointers to locals), and also allows direct assignment,
letting the retrieved data be const.
2018-07-13 13:20:35 -04:00
Lioncash 918d448b5b ControlGroup/Slider: Return state data by value
Makes it less error-prone to get state data from sliders (no need
to pass any locals), and also allows direct assignment, letting the
retrieved data be const.
2018-07-13 13:20:35 -04:00
Lioncash 4c30b9e14d ControlGroup/Force: Return state data by value
Ensures that an array of sufficient size is always used and doesn't put
the responsibility on the caller. It also allows for direct assignment.
2018-07-13 13:20:35 -04:00
Lioncash ef1240b0c7 ControlGroup/Cursor: Return state data by value
Makes it less error-prone to get state data from cursors (no need
to pass any pointers to locals), and also allows direct assignment,
letting the retrieved data be const.
2018-07-13 13:20:35 -04:00
Lioncash d05f490caa ControlGroup/AnalogStick: Return state data by value
Makes it less error-prone to get state data from analog sticks (no need
to pass any locals), and also allows direct assignment, letting the
retrieved data be const.
2018-07-13 13:20:31 -04:00
Lioncash d80f91478f WiimoteReal: Make functions internally linked where applicable
These functions are only used within this translation unit, so they can
be made internally linked.
2018-07-13 09:24:27 -04:00
spycrab 4826acd931
Merge pull request #7260 from spycrab/qt_fix_lazy
Qt/GraphicsWindow: Fix lazy initialisation bugs
2018-07-13 13:07:30 +02:00
spycrab c8af83202a Qt/GraphicsWindow: Fix lazy initialisation bugs 2018-07-13 12:38:21 +02:00
booto e2e43b4896 CP: some bits in some of the HI registers cannot be set
The mask is slightly different for Wii and GCN so we need to work it out at runtime.
2018-07-12 20:15:27 -04:00
Lioncash 7f8cdbb2a4
CMake: Only link in Bochs on x86 platforms
Bochs' disassembler is only for disassembling x86 code. On non-x86
platforms it doesn't really make sense to build and link this in.
2018-07-12 16:44:17 -04:00
Lioncash 113a357604 WiimoteEmu: Make constructor of Wiimote explicit
Prevents implicit conversions
2018-07-12 15:59:31 -04:00
Lioncash 5b58977561 WiimoteEmu: Amend parameter names for EmulateShake() and EmulateSwing()
Ensures they match their naming within the definition of the function.

In EmulateSwing's case, one parameter was erroneously named tilt_group,
when it's actually supposed to be swing_group.
2018-07-12 15:58:50 -04:00
Lioncash 2825b2daa2 WiimoteEmu: Remove unnecessary value-wise const from function prototypes
These aren't necessary in the prototype, however they do apply in the
definition of the function. This just cuts down on line noise within the
prototypes.
2018-07-12 15:54:01 -04:00
spycrab cc6526f553
Merge pull request #6222 from iwubcode/emulated_input_improvements
Emulated wii input improvements
2018-07-12 20:36:53 +02:00
spycrab 303f5e0dc2
Merge pull request #7256 from spycrab/qt_forward
HW/WiimoteEmu: Add Forward Option
2018-07-12 20:21:11 +02:00
Lioncash f209f5f2a4
NetPlayClient: Make the NetSettings instance part of the NetPlayClient class
This is only ever read from externally, so we can expose a getter that ensures that
immutability, while making the actual instance internal. Given the
filling out of these settings depends on packets received by the client
instance, it makes more sense to make it a part of the client itself.

This trims off one lingering global.
2018-07-12 13:55:41 -04:00
spycrab 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
spycrab b3b1845785 HW/WiimoteEmu: Add Forward Option 2018-07-12 19:35:30 +02:00
spycrab 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
spycrab 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
Techjar d85dd287cf Qt/NetPlayDialog: Change own chat message color to better suit dark themes 2018-07-12 06:34:14 -04:00
Shawn Hoffman 19ddd29afb bump msvc version check 2018-07-11 14:53:38 -07:00
JosJuice 7f6be99ad9 Android: Make ControllerMappingHelper methods static
This class has no state.
2018-07-11 14:00:57 +02:00
JosJuice 78cb1c2914 Android: Remove controller-specific code that isn't needed anymore 2018-07-11 14:00:37 +02:00
JosJuice d32c297c0d Android controller mapping: Ignore axes with constant values
Some controllers have axes that are stuck to values like 0.5 or 1.
Starting with PR #6123, when you press a control to map, Dolphin will
immediately think that such an axis is the axis that you want to map.
This commit fixes that issue (https://bugs.dolphin-emu.org/issues/10909)
2018-07-11 13:59:22 +02:00
spycrab fc967908ea
Merge pull request #7238 from Techjar/netplay-bundle-pad-states
NetPlay: Bundle multiple local pads into one packet
2018-07-11 11:27:10 +02:00
spycrab 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
spycrab c04b07674e
Merge pull request #7243 from Ebola16/SU
Qt: Clarify Synchronous (Ubershaders) name
2018-07-11 10:59:25 +02:00
spycrab 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
spycrab 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
spycrab 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
spycrab 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
Markus Wick d819df1d08
Merge pull request #7186 from gwicks/androidTouchJoystickRelCenter
Android: Make touch joystick re-centering configurable
2018-07-11 08:41:06 +02:00
spycrab bf4341f762
Merge pull request #7248 from Techjar/netplay-fix-spectator-deadlock
NetPlay: Don't update mappings on leave if player had no mappings
2018-07-11 01:18:22 +02:00
spycrab 42298f6d6d
Merge pull request #7239 from addestroyer24/manual-update-now
Updater: fix immediate manual updating
2018-07-11 00:58:21 +02:00
spycrab c7c364f8d5
Merge pull request #7242 from spycrab/np_debug
Core/NetPlay: Add debugging messages
2018-07-11 00:57:22 +02:00
Techjar 39449da304 NetPlay: Don't update mappings on leave if player had no mappings
This stops clients randomly deadlocking when a spectator leaves, as the mappings construct is not thread-safe and should not be written while the game is running.
2018-07-10 18:35:37 -04:00
spycrab b367cd0331 Core/NetPlay: Add debugging messages 2018-07-10 22:23:49 +02:00
Lioncash 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
Lioncash 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
Lioncash 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
spycrab 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
Lioncash 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
Ryan Meredith affd5689ff Qt: Clarify Synchronous (Ubershaders) name 2018-07-10 12:22:21 -04:00
spycrab b9960777a7
Merge pull request #7236 from lioncash/fwd
DolphinQt/Settings: Replace includes with forward declarations
2018-07-10 16:24:33 +02:00
Techjar 006202a33c NetPlay: Fix SRAM desyncing after first boot 2018-07-10 05:03:31 -04:00
Lioncash dfdfe6c972
Common/DebugInterface: Namespace code under the Common namespace
Gets more identifiers out of the global namespace and makes it more in
line with the rest of the (mostly) namespaced Common code.
2018-07-09 22:23:57 -04:00
Techjar f68dbed535 NetPlay: Bundle multiple local pads into one packet
This saves a significant amount of bandwidth with multiple controllers on one client, as most of the packet is just protocol overhead.
2018-07-09 21:37:44 -04:00
Zac Davidsen 69999fd309 fix manual updating by passing the main window to the updater instead of the menubar 2018-07-09 19:39:50 -04:00
spycrab 31d9ca34e3
Merge pull request #7231 from Techjar/netplay-less-timebase
NetPlay: Send timebase packet less frequently
2018-07-09 23:29:46 +02:00
spycrab 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
spycrab 31bc017593
Merge pull request #7235 from spycrab/jit_disable_following
Core/PowerPC: Add option to disable branch following
2018-07-09 23:22:08 +02:00
spycrab df61e527da Core/PowerPC: Add option to disable branch following 2018-07-09 22:58:40 +02:00
spycrab 074b67706b Qt/Main: Remove redundant version check 2018-07-09 10:03:13 +02:00
spycrab a22ffb6387 Qt: Remove ActionHelper 2018-07-09 10:02:10 +02:00
spycrab 4266d1f237 CMake: Require Qt 5.9 2018-07-09 09:17:33 +02:00
Lioncash 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
Mat M 9487892c18
Merge pull request #7226 from lioncash/netplay
Core: Namespace NetPlay utilities under the NetPlay namespace
2018-07-09 00:38:12 -04:00
Techjar 2ee7021cda Qt/MenuBar: Add missing JIT branch option in debugger 2018-07-08 14:32:40 -04:00
Techjar 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
Techjar 98447eae64 NetPlay: Send timebase packet less frequently
This packet is only used by the host to detect desyncs, and we don't really need to know the exact frame we desynced on (unless you're debugging, but you can just recompile for that), so it's perfectly fine to just send it less often. This makes it so the timebase packet is sent only every 60 frames, rather than every frame, which further cuts back on unnecessary bandwidth consumption.
2018-07-08 02:18:17 -04:00
spycrab 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
Michael M 2a30e64974 RenderBase: don't clamp draw size to window
It distorts the aspect ratio when cropping, rather than actually cropping.
2018-07-07 13:32:10 -07:00
Lioncash db5b2d93c3 Interpreter: Remove an unnecessary cast in Trace()
PowerPCState's cr_val member is an array of u64s, so we can just use the
correct printf macro specifier within cinttypes. This also avoids
truncation on operating systems that use an LLP64 data model (like
Windows), where long is actually 32 bits in size, not 64-bit, which
could result in wonky values being printed, should Trace ever be used on
it.
2018-07-07 16:06:26 -04:00
iwubcode bce8041cce Input: Allow per-game configuration to specify directories for input-profiles. If specified, the directories are searched recursively for inis 2018-07-07 13:02:39 -05:00
iwubcode 3b11066e61 Fix lint bugs 2018-07-07 13:02:38 -05:00
iwubcode 230af569ed Input - Make dynamic rules be definable per game. Configuration can now
define how many frames constitute a high or a low swing/shake when the
button is down.  Also configurable is the number of frames to execute
the swing/shake after the button is released.
2018-07-07 12:55:52 -05:00
iwubcode 83c94feb3d Input: Trim profile names to allow spaces between ','s 2018-07-07 12:55:52 -05:00
iwubcode e10abaed3e InputConfig: Show display message when game specific input profile is loaded; matching how cycling works 2018-07-07 12:55:52 -05:00
iwubcode 14482a72af Input: Allow cycling to occur for each individual controller 2018-07-07 12:55:49 -05:00
iwubcode 485285eadc Input: Add cycling between game specific profiles 2018-07-07 12:39:08 -05:00
iwubcode 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
spycrab 7b986c1b54
Merge pull request #7224 from lioncash/warning
VideoCommon/DolphinQt2: Resolve compiler warnings
2018-07-07 16:20:56 +02:00
Rukai b94262ec33 Add 'Enable Controller Input' checkbox to TAS dialogs
When disabled only inputs from TAS dialog are used.
When enabled inputs from TAS dialog are used, except when a change in
input is detected from a real controller, in this case the TAS value is
replaced with the real controller value.
2018-07-07 22:55:42 +10:00
iwubcode 29b71fb9ce Wiimote Emulation: increase left/right bounds for IR calculation, to fix games that previously you couldn't reach the left/right edges (ex: system menu) 2018-07-07 00:49:47 -05:00
iwubcode 5cbc825bc9 Wiimote Emulation: add 'dynamic' swing/shake options that vary based on how long the key is pressed 2018-07-07 00:49:47 -05:00
iwubcode 9936a83a1b Add game-configurable shake/swing commands for the nunchuk at three intensities 2018-07-07 00:49:47 -05:00
iwubcode fb7a6a1bbe Wiimote Emulation: Add game-configurable shake/swing commands for the wiimote at three intensities 2018-07-07 00:49:47 -05:00
iwubcode 9f9afeb63e Wiimote Emulation: Be able to trigger swings consistently by holding down buttons. This makes certain actions easier (tested with Red Steel) 2018-07-07 00:49:47 -05:00
Michael M e7cbee235c Convert Dolphin.Core.DefaultISO to use new-style config 2018-07-06 19:28:19 -07:00
Michael M ce98a9c71d Qt/MappingWindow: update devices combo box when hotplugging devices 2018-07-06 17:15:30 -07:00
Michael M b689a195ff Qt: add Settings::DevicesChanged signal 2018-07-06 17:15:29 -07:00
Lioncash ef35f93cbd
DolphinQt/PatchesWidget: Remove unused private member variable m_game
This resolves a -Wunused-private-field warning
2018-07-06 19:58:51 -04:00
Lioncash 935a273cf1
DolphinQt/GameTracker: Remove unused lambda capture in constructor
This resolves a -Wunused-lambda-capture warning
2018-07-06 19:58:31 -04:00
Lioncash 34c3a65de6
VideoCommon/TextureCacheBase: Resolve a -Wmissing-braces warning in GetRAMCopyFilterCoefficients() 2018-07-06 19:56:35 -04:00
Lioncash 675260b0f7
Core: Namespace NetPlay utilities under the NetPlay namespace
Previously there was only one function under the NetPlay namespace,
which is kind of silly considering we have all of these other types
and functions existing outside of the namespace.

This moves the rest of them into the namespace.

This gets some general names, like Player, for example, out of the global namespace.
2018-07-06 19:53:23 -04:00
spycrab 13ba24c5a6 Move DolphinQt2 to DolphinQt 2018-07-07 00:48:38 +02:00
spycrab 059880bb16
Merge pull request #7221 from Techjar/netplay-config-junk
Fix NetPlay using some config values wrongly
2018-07-06 22:32:18 +02:00
spycrab bb8b872863 Qt: Refresh Gamelist more thoroughly 2018-07-06 20:27:07 +02:00
spycrab 64c3d01551 Qt/GameTracker: Remove workaround 2018-07-06 20:18:45 +02:00
spycrab 28ca6fec9a
Merge pull request #7202 from Techjar/better-netplay-errors
Improve NetPlay connection error handling
2018-07-06 12:27:03 +02:00
spycrab eb01a0a040
Merge pull request #7204 from spycrab/exclusive_mapping
Support for exclusive mapping booleans
2018-07-06 11:27:20 +02:00
Techjar eeff5e07ff Fix NetPlay using some config values wrongly 2018-07-05 17:52:53 -04:00
Techjar a29cdb5713 Improve NetPlay connection error handling 2018-07-05 17:15:19 -04:00
spycrab 14317c8a0f
Merge pull request #7212 from Techjar/netplay-unparent-dialog
Qt: Unparent NetPlay dialog from main window
2018-07-05 22:49:58 +02:00
spycrab fbf445154b
Merge pull request #7217 from Techjar/qt-clock-speed-slider
Qt/AdvancedPane: Fix CPU clock slider not updating on emulation state change
2018-07-05 22:48:21 +02:00
spycrab 233787e8a7
Merge pull request #7213 from Techjar/netplay-fix-md5
Qt/MD5Dialog: Fix checksum result comparison
2018-07-05 22:45:54 +02:00
spycrab bb2eed2df3 Qt/GameTracker: Work around Qt crash
Works around a bug in QtCore that will cause crashes when
QFileSystemWatcher::addPath is called on a directory that is located on a
removable device (USB mass storage devices, etc.)
2018-07-05 22:07:41 +02:00
Techjar cd8e3efb21 Qt/AdvancedPane: Fix CPU clock slider not updating on emulation state change 2018-07-05 15:20:29 -04:00
Techjar f620128dac Qt: Unparent NetPlay dialog from main window
This should make the NetPlay dialog appear as a separate window in the taskbar on most systems, which makes more sense than a parented dialog as the user will leave it open for an extended period.
2018-07-05 06:48:31 -04:00
Léo Lam eb9009e5c0 DSPTool: Use std::string == instead of strcmp
Less C-like and conveniently fixes a build issue caused by strcmp
not being declared for some reason.

Converting to std::string is safe because the argument count is
checked every time so the char* cannot be a nullptr.
2018-07-05 09:40:43 +02:00
Techjar f3e2d98fdd Qt/MD5Dialog: Fix checksum result comparison 2018-07-04 22:51:11 -04:00
Mat M 9ea3e833ba
Merge pull request #7141 from lioncash/fp
Interpreter_FPUtils: Handle the FPSCR.ZE and FPSCR.VE flags with arithmetic instructions
2018-07-04 22:26:24 -04:00
Markus Wick fd83937987
Merge pull request #6338 from mahdihijazi/settings_enhancements
Update Android UI Settings to have the most common used settings
2018-07-04 21:50:09 +02:00
Markus Wick 0cf205f947
Merge pull request #7211 from mahdihijazi/upgrade_targetsdk
Android: Upgrade targetSDK to 27 and androidSupportVersion to 7.1.1
2018-07-04 21:45:13 +02:00
Markus Wick 28e5ccb2a9
Merge pull request #7210 from mahdihijazi/disable_auto_backup
Android: Disable automatic backup
2018-07-04 21:44:53 +02:00
spycrab 3ab3ba0d99
Merge pull request #7187 from Techjar/netplay-reduce-poll-rate
Add "Reduce Polling Rate" option to NetPlay
2018-07-04 20:49:29 +02:00
spycrab 7cbb111703
Merge pull request #7209 from spycrab/netplay_stop
Qt/NetPlay: Fix not being able to stop NetPlay games properly
2018-07-04 18:59:46 +02:00
spycrab f7887a442f Qt/NetPlayDialog: Stop games properly 2018-07-04 16:27:16 +02:00
spycrab 713d55f284
Merge pull request #7208 from Techjar/mipmap-invalidate
Make arbitrary mipmap detection toggle invalidate the texture cache
2018-07-04 01:26:49 +02:00
spycrab bbbd886184 Qt/MainWindow: Instantly stop when requested by NetPlay 2018-07-04 00:54:50 +02:00
spycrab d8212fd927 Core/Core: Fix getting stuck when Stop is called without emulation running 2018-07-04 00:52:53 +02:00
Techjar 80b05b6f0d Make arbitrary mipmap detection toggle invalidate the texture cache
We want this setting to invalidate the cache because it may affect the appearance of textures in the rendered scene, therefore one would expect changing it while the game is running to have the expected effect immediately.
2018-07-03 18:44:11 -04:00
spycrab 47c5a2f7ed
Merge pull request #7200 from Techjar/qt-dialog-fixes-2-electric-boogaloo
Qt: Various dialog fixes
2018-07-03 12:32:31 +02:00
Techjar a6a188a66b Qt: Various dialog fixes 2018-07-03 04:28:07 -04:00
Markus Wick 4b1b713e61
Merge pull request #7191 from GerbilSoft/feature/ar-thin-archives
CMake: Use thin archives on Linux.
2018-07-03 10:22:02 +02:00
spycrab 806c1ee8f0
Merge pull request #7207 from spycrab/qt_lazy_hotkey
Qt/MainWindow: Lazily initialize hotkey mapping window
2018-07-03 08:42:33 +02:00
spycrab f8bb4355a5
Merge pull request #7199 from spycrab/qt_default_iso
Qt/PathPane: Update "Default ISO" when changed
2018-07-03 08:34:47 +02:00
spycrab 457d7cf58f Qt/MainWindow: Lazily initialize hotkey mapping window 2018-07-03 08:24:45 +02:00
Pierre Bourdon 4a68490abc
Merge pull request #7170 from JonnyH/WIP/arbitrary-mipmap-detection-integer
Do all arbitrary mipmap detection in integer space
2018-07-03 04:04:16 +02:00
Pierre Bourdon da0de12cce dqt2: lazy-initialize GraphicsWindow
Initializing GraphicsWindow layout & children requires cooperation from
the graphics stack: on my system, for example, it causes a Vulkan
context to get created in order to get driver info. This is a slow
operation, and right now it is taking about 60-70% of the Dolphin
startup time on my system.

Move instead to a lazy-initialization model where the constructor
does nothing, instead offloading work to a separate Initialize() method
called before the window is shown.

I would expect this should be done for other larger parts of the UI,
especially the ones where creating widgets ends up triggering large IO
subsystems (I suspect controller configuration might be doing that).

(I'm not super happy with how this is implemented, but right now it's a
one-off, and it's a major complaint users have with the new UI. I
prioritized getting something working quickly...)
2018-07-03 03:48:32 +02:00
David Korth 0149d22385 Removed some more double-expansions of CMAKE_SYSTEM_NAME. 2018-07-02 13:01:16 -04:00
Jonathan Hamilton b54803a074 Remove unused sRGB conversion functions
Now the arbitrary mipmap reference downsampling is just done in linear space,
these are no longer used.
2018-07-02 09:53:54 -07:00
Jonathan Hamilton 431b9e76be Set arbitrary mipmap detection threshold default to 14
Now the detection heuristic has changed, the old value is no longer
valid.

Some example thresholds for known mipmap effects that should trigger:

SMG's lava has a mimimum difference of ~17.8, SMG2's clouds have a
minimum difference of ~14.8, and Wind Waker's foam has a minimum
difference of ~15

Non-triggering examples were tested and all had a calculated difference
lower than 3.

So a value of 14 should lean towards false-negatives instead of
positives, but this is clearly incomplete testing and may require
further tweaks later.
2018-07-02 09:53:54 -07:00
Jonathan Hamilton ac05d1a593 Do all arbitrary mipmap detection in integer space
This no longer converts from sRGB to linear for the reference mip
downsample - even if the original mipmap creation tool used an sRGB
colorspace (which isn't really guaranteed, and may even change per
game), this is a "fast" heuristic that's only an estimate anyway.

The average diff is also now stored in a u64, avoiding floating point
calculations in the per-pixel hot loop.

This should speed up the detection significantly, hopefully fixing
jank when loading in new textures.
2018-07-02 09:52:15 -07:00
spycrab 4eeef6e5b3
Merge pull request #7201 from 8times9/multiselection_deletion_menu_name
Qt/GameList: Change multiselection deletion name for consistency
2018-07-02 17:55:20 +02:00
mahdihijazi e8ad6e4d49 Upgrade targetSDK to 27 and androidSupportVersion to 7.1.1 2018-07-02 16:40:16 +02:00
mahdihijazi 03fd8ddce6 Disable automatic backup
Since we don't have proper confuguration file of what to include/exclude
in the backup, this better be disabled because it will lead to unexpected
state. This will solve any issue that was keep hapenning even after fresh
install of the emulator until you manually clear the app data.
2018-07-02 16:24:57 +02:00
spycrab 0f48653935 Qt/Mapping: Add support for exclusive boolean settings 2018-07-02 15:27:04 +02:00
spycrab 3e2e813607 HW/WiimoteEmu: Make "Upright / Sideways Wii Remote" mutually exclusive 2018-07-02 15:27:03 +02:00
spycrab c7c93a8e80 ControllerEmu/BooleanSetting: Add exclusive flag 2018-07-02 15:15:23 +02:00
8times9 fb98dbc41c Qt/GameList: Change multiselection deletion name for consistency 2018-07-01 21:22:55 -05:00
mahdihijazi 77e51ab527 Android: Make the header focusable
otherwise the settings list scrolling is not working properly
on Android Oreo(Tv)
2018-07-01 22:25:14 +02:00
mahdihijazi a639fa9a81 Android: Expose arbitrary mipmap detection toggle in UI 2018-07-01 22:25:14 +02:00
mahdihijazi e7d295894a Android: Support GameCube System Language 2018-07-01 22:25:14 +02:00
mahdihijazi d5a048a2ba Android: Create didcated sections for GameCube & Wii
This align the Android UI with the desktop UI
2018-07-01 22:25:14 +02:00
mahdihijazi 5010dfde7e Android: Support WideScreen Hack 2018-07-01 22:25:13 +02:00
mahdihijazi 84229c0c05 Android: Support SpeedLimit config option 2018-07-01 22:25:13 +02:00
mahdihijazi b924445e48 Android: Support Post Processing Shaders 2018-07-01 22:25:13 +02:00
mahdihijazi b4bb213ffd Android: Add Force 24-Bit Color enhancement option 2018-07-01 22:25:12 +02:00
mahdihijazi ef23d97063 Android: Refine the Graphics Settings Screen
1. Add General Section
2. Move the Aspect Ration Settings from the Enhancmenets Section to
the General section to match the desktop GUI.
2018-07-01 22:25:12 +02:00
mahdihijazi e0e9b43559 Android: Rename main settings buttons to match the desktop version
- Video Settings to Graphics Settings
- CPU Settings to Config
2018-07-01 22:25:12 +02:00
mahdihijazi 9316537964 Android: Change the incremental value of the slider to be 5% instead of 20% 2018-07-01 22:25:12 +02:00
mahdihijazi 87534f1b2f RfC: Refactor the settings for Android to use dedicated tags
Before we used different way of identifying which settings menu to
show, someotimes we used the section name, other times we used the
settings file name. This one replaces all those different ways by just
one way based on a menu tag which is more clear and easy to follow.
2018-07-01 22:25:05 +02:00
spycrab 37e936fa9e Qt/PathPane: Update "Default ISO" when changed 2018-07-01 18:20:59 +02:00
spycrab b5141ca6ce Qt/Hotkeys: Show OSD message when selecting slots 2018-07-01 16:30:12 +02:00
spycrab 32382438be Qt/Hotkeys: Implement "Load from File" / "Save from File" hotkeys 2018-07-01 16:14:29 +02:00
Stenzek 9cfcbfacbe
Merge pull request #7177 from Techjar/mipmap-detection-gui
Expose arbitrary mipmap detection toggle in UI
2018-07-01 19:21:22 +10:00
Techjar bc15eb2d57 Expose arbitrary mipmap detection toggle in UI 2018-07-01 04:42:47 -04:00
spycrab 8e1425b363
Merge pull request #7193 from spycrab/qt_mac_bgcolor
Qt/WrapInScrollArea: Ensure correct macOS background colors
2018-07-01 04:02:56 +02:00
Cuyler36 c4db7475d5 Fix Address Search Box Focus Lost 2018-06-30 17:47:16 -04:00
spycrab a4ef6f40d0
Merge pull request #7194 from Techjar/qt-pp-state
Qt/EnhancementsWidget: Fix post-processing options not being disabled when they should
2018-06-30 21:52:37 +02:00
Mike Ravenelle 8218de0762 QT: Removed iterative input in options groups. 2018-06-30 14:38:42 -05:00
Techjar 68b8cd1e7c Qt/EnhancementsWidget: Fix post-processing options not being disabled when they should 2018-06-30 14:59:19 -04:00
spycrab e23a2e3063
Merge pull request #7189 from Techjar/qt-backend-translated
Qt: Fix inability to select translated video backend names
2018-06-30 20:32:12 +02:00
spycrab 4bf276e912 Qt/WrapInScrollArea: Ensure correct macOS background colors 2018-06-30 20:15:22 +02:00
Techjar 5adeca4087 Add "Reduce Polling Rate" option to NetPlay
Normally, SI is polled at a rate defined by the game, and we have to send the pad state to other clients on every poll or else we'll desync. This can result in fairly high bandwidth usage, especially with multiple controllers, mostly due to UDP/IP overhead.

This change introduces an option to reduce the SI poll rate to once per frame, which may introduce up to one frame of additional latency, but will reduce bandwidth usage substantially, which is useful for users on very slow internet connections.

Polling SI less frequently than the game asked for did not seem to cause any problems in my testing, so this should be perfectly safe to do.
2018-06-30 13:13:44 -04:00
spycrab a9841e4fc4
Merge pull request #7190 from Techjar/video-backend-translation
Mark all video backend names for translation
2018-06-30 15:48:32 +02:00
Techjar b59387a65d Qt: Fix inability to select translated video backend names 2018-06-30 07:31:44 -04:00
Techjar dc2f22516c Mark all video backend names for translation 2018-06-30 06:30:19 -04:00
Techjar 7785255470 Qt: Add titles to various message boxes 2018-06-29 23:29:23 -04:00
spycrab e22c5333ab
Merge pull request #6819 from spycrab/delete_wx
Remove DolphinWX
2018-06-30 00:12:24 +02:00
Greg Wicks 82ec3c929c Android: Make touch joystick re centering configurable 2018-06-29 16:09:59 -04:00
spycrab 227290055d
Merge pull request #7184 from spycrab/qt_tas_round
Qt/TAS: Fix slightly off-center default values
2018-06-29 11:47:32 +02:00
spycrab eac5d3d089 Qt/TAS: Fix slightly off-center default values 2018-06-29 11:39:36 +02:00
Techjar d94805bab3 Qt/GameList: Explicitly set minimum section size 2018-06-29 05:22:26 -04:00
spycrab bd28bf6b1e
Merge pull request #7164 from Techjar/gamelist-multiselect
Qt/GameList: Reimplement multiselection functionality from WX
2018-06-29 11:14:28 +02:00
spycrab a595ac6b27
Merge pull request #7169 from Techjar/qt-memcard-creation
Qt/GameCubePane: Fix inability to create new memory card file
2018-06-29 11:07:56 +02:00
spycrab 9b00045220
Merge pull request #7168 from Techjar/qt-image-columns
Qt/GameList: Adjust image column widths for equal padding
2018-06-29 11:05:39 +02:00
spycrab 2e6d2a0342
Merge pull request #7183 from spycrab/qt_gamelist_fixes
Qt/GameList: Fix some resizing bugs
2018-06-29 10:52:45 +02:00
JosJuice 1073aa4602
Merge pull request #7181 from Ebola16/R
Android: Properly set default Internal Resolution
2018-06-29 09:40:09 +02:00
spycrab a9f065a559 Qt/GameList: Fix some resizing bugs 2018-06-29 09:22:18 +02:00
Ryan Meredith cdbc61dd0e Android: Properly set default Internal Resolution 2018-06-28 22:14:53 -04:00
spycrab 3eef8145d2
Merge pull request #7172 from spycrab/qt_np_map
Qt/PadMappingDialog: Retain previous settings
2018-06-29 01:01:42 +02:00
spycrab 6700cc4234
Merge pull request #7174 from spycrab/qt_fs_export
Qt/FilesystemWidget: Suggest default filename when exporting files
2018-06-28 22:32:22 +02:00
spycrab 317de3cf5b
Merge pull request #7173 from spycrab/qt_np_dclick
Qt/NetPlay: Make double clicking game entries confirm dialogs
2018-06-28 20:02:55 +02:00
spycrab c3108468fb
Merge pull request #7175 from spycrab/qt_col_empty
Qt/GameList: Fix empty columns showing up when they should get hidden
2018-06-28 19:12:10 +02:00
spycrab d2527db8ec Externals/Qt: Update to 5.11.1 2018-06-28 14:38:17 +02:00
spycrab 727b6ba81a Qt/GameList: Fix empty columns showing up when they should get hidden 2018-06-27 14:10:53 +02:00
spycrab c8e4b692a4 Qt/FilesystemWidget: Suggest default filename when exporting files 2018-06-27 14:04:41 +02:00
spycrab 4af021ea03 Qt/PadMappingDialog: Retain previous settings 2018-06-27 13:40:39 +02:00
spycrab 1bc8c34f8b Qt/NetPlay: Make double clicking game entries confirm dialogs 2018-06-27 13:35:34 +02:00
spycrab 1ec0a39cf1 Qt/GameList: Fix search messing up columns 2018-06-27 12:57:32 +02:00
spycrab 44b22c90df Remove DolphinWX 2018-06-26 20:50:39 +02:00
Techjar a9222bf969 Qt/GameList: Adjust image column widths for equal padding 2018-06-26 14:31:54 -04:00
Techjar 2491c53b92 Qt/GameCubePane: Fix inability to create new memory card file 2018-06-26 00:37:08 -04:00
spycrab beeb6754d2
Merge pull request #7166 from spycrab/qt_columns
Qt/GameList: Fix column (re)sizing issues
2018-06-25 22:41:46 +02:00
spycrab d746a8dae3 Qt/GameList: Fix weird column resizing 2018-06-25 22:37:43 +02:00
Stenzek 2debe9e9d1
Merge pull request #7167 from Techjar/patch-437
VideoCommon: Fix auto IR being very overzealous
2018-06-25 15:43:37 +10:00
Techjar 25bfee2233 VideoCommon: Fix auto IR being very overzealous 2018-06-25 00:48:57 -04:00
Pierre Bourdon 86edf7f848
Merge pull request #7087 from spycrab/qt_disable_watcher
Qt: Add option to disable auto-refresh
2018-06-25 01:46:19 +02:00
Pierre Bourdon 212adc7b87
Merge pull request #7115 from Sintendo/double2singleopt
Jit64Common: Eliminate branch in ConvertDoubleToSingle
2018-06-25 01:45:11 +02:00
Pierre Bourdon 1453a314df
Merge pull request #7130 from 8times9/master
Qt: Add Vulkan to graphics backend description
2018-06-25 01:43:41 +02:00
Pierre Bourdon 307d705654
Merge pull request #7152 from lioncash/dsp-interp
DSPIntExtOps: Minor cleanups
2018-06-25 01:42:42 +02:00
Pierre Bourdon 8129a3db6c
Merge pull request #7156 from lioncash/psq
Interpreter_LoadStorePaired: Generate a program exception if non-indexed paired-single load/stores are used and HID2.LSQE is not set
2018-06-25 01:41:48 +02:00
Pierre Bourdon 4200d2e5e3
Merge pull request #7155 from degasus/arm_registers
JitArm64: Drop the plattform register.
2018-06-25 01:38:29 +02:00
Pierre Bourdon 2cfdf89898
Merge pull request #6983 from yourWaifu/add-discord-rpc-support
Add Discord Rich Presence support
2018-06-25 00:06:27 +02:00
Techjar 9a26cc18c9 Qt/GameList: Reimplement multiselection functionality from WX 2018-06-24 15:57:45 -04:00
spycrab 7e881288a2 Qt/GameList: Fix some columns being too wide 2018-06-24 15:58:42 +02:00
Shawn Hoffman 553ac7e7cd Add nag dialog to get users to explain why they still use DolphinWX 2018-06-23 19:15:09 -07:00
Markus Wick b3fa5a4f2e
Merge pull request #7158 from lioncash/dsptool
DSPTool: Minor cleanups
2018-06-23 10:50:45 +02:00
Lioncash bc8f932f0c BTEmu: Make WriteToEndpoint's reference parameter const
This function doesn't modify anything being referenced.
2018-06-22 20:59:00 -04:00
Léo Lam 971972069c
Merge pull request #7148 from lioncash/build
Common, DSP: Only compile in x86-64 emitter related utilities on x86 platforms
2018-06-22 23:55:37 +02:00
Lioncash 43daebbc66 DSPTool: Get rid of unnecessary casts 2018-06-22 17:53:24 -04:00
Lioncash 83dab8dd36 DSPTool: Get rid of raw new and delete
We can just use a vector of a vector, which also has the benefit of
keeping the size accounted for as well, allowing us to get rid of a
count parameter for CodesToHeader().
2018-06-22 17:53:20 -04:00
Léo Lam 1da868ee82
Merge pull request #7150 from lioncash/naming
BTEmu: Amend variable naming
2018-06-22 22:50:48 +02:00
Léo Lam d07e599a74
Merge pull request #7151 from lioncash/const
Movie: Make pointer parameters const where applicable
2018-06-22 22:50:25 +02:00
Lioncash d81e3fddce DSPTool: Make CodeToHeader() and CodesToHeader() return a std::string directly
Instead of using an out-reference, we can modernize these to return the
std::string directly. While we're at it, also remove the unused name
parameter.
2018-06-22 16:50:13 -04:00
Léo Lam e16cadf982
Merge pull request #7153 from lioncash/deduplicate
DSPTables: Deduplicate FindByOpcode() implementations in DSP opcode tables
2018-06-22 22:49:16 +02:00
Léo Lam 167c19ae19
Merge pull request #7154 from lioncash/emitter
DSPEmitter: Make member functions, aliases and constants private where applicable
2018-06-22 22:47:34 +02:00
Lioncash 537d09e1d4 DSPTool: Remove unnecessary c_str() calls
These functions already accept std::string instances, so c_str here just
causes an unnecessary copy of the string to be made.
2018-06-22 16:38:15 -04:00
Lioncash f62dffa9f0 DSPTool: Factor out assembly file retrieval
Keeps the retrieval behavior isolated and lessens the amount of
variables within PerformAssembly's scope.
2018-06-22 16:36:35 -04:00
spycrab 308d4bb670 Qt/Mapping: Fix "Options" entries disappearing 2018-06-22 00:16:28 +02:00
Lioncash 8d9f74b762 DSPEmitter: Make member functions, aliases and constants private where applicable
Given we now use a base class for the interface, we can make all member
functions, types and constants that aren't directly related to
instructions private.
2018-06-21 17:29:33 -04:00
Lioncash 47acf794c7 Interpreter_LoadStorePaired: Generate a program exception if non-indexed paired-single load/stores are used and HID2.LSQE is not set
HID2.LSQE is the Load/store quantize enable bit for non-indexed format
instructions (which are psq_l, psq_lu, psq_st, and psq_stu). If this bit
is not set and any of these instructions are attempted to be executed,
then a program exception is supposed to occur.
2018-06-21 17:16:54 -04:00
degasus ecf86bbf7b JitArm64: Drop the plattform register.
This register is defined as "optional reserved" within the aarch64 ABI.
Linux doesn't use it, but we must not modify it on ios or windows.
As we have plenty of registers on aarch64, let's just always skip this one.
2018-06-21 22:39:15 +02:00
Lioncash fd1ad02c5c DSPTables: Deduplicate FindByOpcode() implementations in DSP opcode tables
This function was duplicated across all the opcode tables: the main info
tables, the interpreter tables, and the x86-64 JIT tables. However, we
can just make the type of the std::array parameter a template type and
get rid of this duplication.
2018-06-21 13:35:06 -04:00
Lioncash fdf057efce DSPIntExtOps: Remove unnecessary const from function prototypes
const on a parameter being passed by value in a prototype doesn't actually signify
anything, these are only applicable in the definition, where they make
the opcode parameter immutable.
2018-06-21 13:00:08 -04:00
Lioncash 42846e6ef1 DSPIntExtOps: Correct casing of functions
Corrects several functions to conform to our coding style.
2018-06-21 12:53:22 -04:00
Lioncash 4367e3aeda DSPIntExtOps: Make IsSameMemArea internally linked
inline has external linkage, which doesn't really make sense here, given
the function is only used within this translation unit. So we can
replace inline with static.

While we're at it, the code within the function can also be compressed
to a single return statement.
2018-06-21 12:46:01 -04:00
Lioncash 2354d933c8 Movie: Make pointer parameters const where applicable
A few functions don't actually modify the data being pointed to, so
these can be made pointer-to-const.
2018-06-21 12:27:30 -04:00
Lioncash 25e3ec23f8 BTEmu: Rename AccessWiiMote to AccessWiimote
Everywhere else throughout the codebase we use "Wiimote" when referring
to the Wii Remote as a shorthand. This makes the casing consistent.
2018-06-21 11:36:02 -04:00
Lioncash 56b8d1803e BTEmu: Amend parameter and local variable naming 2018-06-21 11:35:31 -04:00
Lioncash 16c6e9fa57 BTEmu: Amend class member variable naming 2018-06-21 10:53:07 -04:00
spycrab 77f6e50493
Merge pull request #7134 from spycrab/qt_housekeep
Qt: Basic housekeeping
2018-06-21 14:24:53 +02:00
Markus Wick b7068bfefd
Merge pull request #7129 from lioncash/dsptool
DSPTool: Factor out behavior from main()
2018-06-21 13:33:24 +02:00
Lioncash c4fb07f428 Common, DSP: Only compile in x86-64 emitter related utilities on x86 platforms
Previously these were required to be built into the executable so that
the JIT portion of the DSP code would build properly, as the
x86-64-specifics were tightly coupled to the DSP common code. As this is
no longer the case, this is no longer necessary.
2018-06-21 06:53:31 -04:00
Markus Wick 630c3f0805
Merge pull request #7147 from lioncash/emitter
DSP: Replace x64 JIT pointer with a pointer to an architecture-agnostic base
2018-06-21 12:34:13 +02:00
Markus Wick 52990d215d
Merge pull request #7145 from lioncash/mtspr
Interpreter_SystemRegisters: Handle mtspr to HID1 and PVR properly
2018-06-21 11:36:12 +02:00
Lioncash b7301bee29 DSP: Replace x64 JIT pointer with a pointer to an architecture-agnostic base
This adds a base class that is used to replace the concrete instance of
the x64 JIT pointer within DSPCore. This fully removes the direct use
(read: non-ifdefed) usage of x86-64-specifics within the main DSP code.

Said base can also be used for creating JITs for other architectures,
such as AArch64, etc.
2018-06-21 05:20:22 -04:00
Mat M 8b68a7d88a
Merge pull request #7109 from degasus/cached_interpreter
CachedInterpreter: Implement breakpoints.
2018-06-21 04:23:38 -04:00
Markus Wick 5f7dc31a9f
Merge pull request #7138 from lioncash/dsp-table
DSPTables: Separate interpreter and JIT functions from main info table
2018-06-21 10:23:03 +02:00
Lioncash 474c1bb4f7 DSPTables: Separate interpreter and JIT functions from main info table
This is one of the last things that needed to be done in order to
finally separate the x86-64-specific code from the rest of the common
DSP code. This splits the tables up similar to how it's currently done
for the PowerPC CPU tables.

Now, the tables are split up and within their own relevant source files,
so the main table within the common DSP code acts as the "info" table
that provides specifics about a particular instruction, while the other
tables contain the actual instruction.

With this out of the way, all that's left is to make a general base for
the emitters and we can then replace the x64 JIT pointer in DSPCore with
it, getting all x64 out of the common code once and for all.

While shuffling all the code around, the removal of the DSPEmitter
includes in some places uncovered indirect inclusions, so this also
fixes those as well.
2018-06-21 04:21:44 -04:00
Markus Wick 0459a1a9e6
Merge pull request #6875 from JonnyH/WIP/mipmap-heuristic-tweaks
Make arbitrary mipmap detection a config option
2018-06-21 10:19:47 +02:00
Markus Wick bf50348d9f
Merge pull request #6539 from degasus/async
VideoCommon: Flush the GPU pipeline on async requests.
2018-06-21 10:16:54 +02:00
Markus Wick d8ba3034c3
Merge pull request #7133 from lioncash/assembler
DSPAssembler: Minor changes
2018-06-21 10:02:36 +02:00
Markus Wick b4b9b53239
Merge pull request #7143 from lioncash/bt-helper
BTEmu: Make m_WiiMotes private
2018-06-21 10:00:28 +02:00
Markus Wick 4ca05810be
Merge pull request #7144 from lioncash/cast
ActionReplay: Use Common::BitCast instead of reinterpret_cast in Subtype_AddCode()
2018-06-21 09:56:05 +02:00
Markus Wick 966cc5bc01
Merge pull request #7142 from lioncash/shadow
Common/MemoryPatches: Silence variable shadowing warnings
2018-06-21 09:52:47 +02:00
Markus Wick 9f03d8ca6a
Merge pull request #7139 from lioncash/tb
PowerPC: Add functions to read/write the full timebase value
2018-06-21 09:52:13 +02:00
Markus Wick 235a01c976
Merge pull request #7131 from JosJuice/android-case-insensitive-sort
Android: Use case insensitive sorting in game list
2018-06-21 09:29:41 +02:00
Markus Wick 3816e825c9
Merge pull request #7135 from JosJuice/cant-load-state
Only show savestate version mismatch OSD message when relevant
2018-06-21 09:28:47 +02:00
Lioncash 540bb1a1b0
Software: Don't link against X11 libraries
The software backend doesn't actually use X11 in any capacity directly.
2018-06-21 01:47:37 -04:00
Lioncash d0fbba9ac1 Interpreter_SystemRegisters: Handle mtspr to HID1 and PVR properly
Despite both being documented as read-only registers, only one of them
is truly read-only. An mtspr to HID1 will steamroll bits 0-4 with
bits 0-4 of whatever value is currently in the source register, the rest
of the bits are not modified as bits 5-31 are considered reserved, so
these ignore writes to them.

PVR on the other hand, is truly a read-only register. Attempts to write
to it don't modify the value within it, so we model this behavior.
2018-06-20 18:50:33 -04:00
Lioncash 7eb86cdb67 BTEmu: Add helper function for accessing WiimoteDevice instances by index
This makes it much more straightforward to access WiimoteDevice
instances and also keeps the implementation details of accessing those
instances in one spot.

Given as all external accesses to the WiimoteDevice instances go through
this function, we can make the other two private.
2018-06-20 17:05:54 -04:00
Lioncash 0e437c41e5 ActionReplay: Use Common::BitCast instead of reinterpret_cast in Subtype_AddCode()
Using reinterpret_cast (or a C-styled equivalent) to reinterpret
integers as floating-point values and vice-versa invokes undefined
behavior. Instead, use BitCast, which does this in a well-defined
manner.
2018-06-20 16:38:30 -04:00
Lioncash e4b6d7626b WiimoteDevice: Make Callback_WiimoteInterruptChannel() accept its data as a u8* rather than void*
All current usages of the function pass in either u8 arrays or pointers,
so we can make this part of the function a concrete type.
2018-06-20 16:04:10 -04:00
Lioncash 2b60fe684c BTEmu: Make m_WiiMotes private
We can already utilize the public interface to access the necessary
instance without exposing a private data member.
2018-06-20 15:15:05 -04:00
spycrab 583ddfa8f0 Qt/GCMemcardManager: Update free blocks when a memcard is changed 2018-06-20 12:33:14 +02:00
spycrab ce126f1cfe Qt/Mapping: Remove "Iterative Input" everywhere 2018-06-20 12:33:14 +02:00
yourWaifu 63f03455f3 Discord Rich Presence CMake integration
I have no idea if this works or not. Hopefully the build bot will tell me.
2018-06-19 22:43:03 -04:00
Lioncash dddac76b8c Common/MemoryPatches: Silence variable shadowing warnings 2018-06-19 21:33:50 -04:00
Lioncash 72e21bc679 Interpreter_FPUtils: Handle the FPSCR.ZE and FPSCR.VE flags with arithmetic instructions
According to PEM 3.3.6.1, if a division by zero occurs and FPSCR.ZE is
set, then the result of the instruction operation is unchanged (see
table 3-13). Similarly, if an invalid operation occurs and FPSCR.VE is
set, then the destination should also remain unchanged (see table 3-12).
Hardware also matches this behavior.

We were handling this for other relevant instructions, but we weren't
doing so for the arithmetic instructions. This corrects that.

This also alters our NI_* functions to return an FPResult type, which
allows us to see which kind of exception in particular is set in
exceptional cases. This is necessary for cases like the fdiv
instructions, which requires handling both ZE and VE being potentially
set.
2018-06-19 18:09:03 -04:00
Léo Lam bdfc6de9fd
Merge pull request #7137 from lioncash/copy
GameFile: Avoid copying map pairs in GetLanguages()
2018-06-19 22:57:29 +02:00
Léo Lam de0b153867
Merge pull request #7136 from lioncash/unused
GameFile: Remove unused variable within GetUniqueIdentifier()
2018-06-19 22:57:00 +02:00
Léo Lam e728c0c948
Merge pull request #7132 from lioncash/table
BTEmu: Make read-only arrays const
2018-06-19 22:56:10 +02:00
Lioncash 6066ca30b2 DolphinQt2/RegisterWidget: std::move std::function instances in AddRegister()
These can be moved into the RegisterColumn constructor, which avoids
potential allocations in the case a std::function would otherwise need
to allocate to hold all of it's captured data.

Also tidy up the inclusion order while we're at it.
2018-06-19 13:40:22 -04:00
Lioncash 562d2a700b PowerPC: Add functions to read/write the full timebase value
Allows us to get rid of a silly pointer cast and deduplicate some code
from the front-end when it comes to reading the value.
2018-06-19 13:26:08 -04:00
Lioncash d3ed750c9d GameFile: Avoid copying map pairs in GetLanguages()
We can just reference the pairs instead of taking them by value,
avoiding copying std::string instances.
2018-06-19 12:25:16 -04:00
Lioncash 1e4f3607c3 GameFile: Remove unused variable within GetUniqueIdentifier() 2018-06-19 12:18:09 -04:00
JosJuice 860a89b943 Only show savestate version mismatch OSD message when relevant
We used to show it for all failed savestate loads, no matter what the
failure reason was. Fixes https://bugs.dolphin-emu.org/issues/9815
2018-06-19 16:15:18 +02:00
8times9 33691d2992 Qt: Add Vulkan to graphics backend description 2018-06-19 08:38:48 -05:00
spycrab 18c3e0302f
Merge pull request #7127 from Techjar/patch-4
Qt/GameCubePane: Fix issues with changing memcard slots while game is running
2018-06-19 13:50:25 +02:00
spycrab 113f9767dd Qt/FilesystemWidget: Remove "Whats this?" button from extraction dialog 2018-06-19 10:30:32 +02:00
Lioncash 9c3c92329e DSPAssembler: Remove commented out code
This is just dead line noise sitting around, so we can get rid of it.
2018-06-18 16:24:38 -04:00
Lioncash 549bedd30b BTEmu: Make read-only arrays const
Several arrays within this source file are only ever read from, so the
data can be made immutable.
2018-06-18 16:03:05 -04:00
Lioncash b36cdbdda5 DSPAssembler: Convert typedef into a using alias 2018-06-18 15:45:59 -04:00
Lioncash af41a8efba DSPAssembler: Make member variable naming consistent
Previously the class was intermixing m_ prefixed variables and
non-prefixed ones, which can be misleading. Instead, we make the
prefixing consistent across the board.
2018-06-18 15:44:13 -04:00
Lioncash 1389bf35bd DSPAssembler: In-class initialize members where applicable
Avoids repeating ourself in the initializer list and makes the class
have a predictable initial state.
2018-06-18 15:35:58 -04:00