Commit Graph

28349 Commits

Author SHA1 Message Date
Shawn Hoffman ae061276d6 msbuild: enable /Zc:externConstexpr,lambda note about preprocessor 2020-08-27 15:15:34 -07:00
Kate 5981a1929d Add support for FreeBSD/arm64 2020-08-27 21:54:04 +01:00
Sepalani 17ad2ac719 HLE: Rename GetFunctionIndex functions 2020-08-27 22:12:15 +04:00
Sepalani 6b05e48bd6 HLE: Make naming closer to the current coding style 2020-08-27 22:01:04 +04:00
Sepalani e0605d7911 HLE: Remove unused OSBreakPoints 2020-08-27 21:41:32 +04:00
Sepalani 79bfb48d68 HLE: Remove unused function 2020-08-27 21:07:42 +04:00
Ryan Meredith 9fe6466c79 Android: Better GCAdapter scanning thread management 2020-08-27 07:43:20 -04:00
Ryan Meredith acd717ffae GCAdapter_Android: Minor cleanup 2020-08-26 16:40:22 -04:00
Shawn Hoffman fcc8dfd189 Common/Assert: no longer needs special impl for msvc 2020-08-23 13:57:05 -07:00
Shawn Hoffman 89b6a4cbee DolphinQt: resolve Qt5.15 deprecations 2020-08-23 13:57:05 -07:00
Shawn Hoffman c629af6319 replace is_pod with is_standard_layout && is_trivially_copyable 2020-08-23 13:57:05 -07:00
Shawn Hoffman 2c2fd21d41 msbuild: silence warnings about deprecated codecvt items 2020-08-23 13:57:05 -07:00
Shawn Hoffman 12ea56a6b2 remove extraneous WIN32_LEAN_AND_MEAN definition 2020-08-23 13:57:05 -07:00
Shawn Hoffman 181e0dba21 apply `if constexpr` in a couple places 2020-08-23 13:57:05 -07:00
Shawn Hoffman ccbc4c2d99 fix possible dangling shared_ptr ptr in ios 2020-08-23 13:57:05 -07:00
Shawn Hoffman 3ee4c53d65 wiimotereal: add some error handling. replace malloc with make_unique 2020-08-23 13:57:05 -07:00
Shawn Hoffman 938fd4e438 use constexpr for some compile-time expressions 2020-08-23 13:57:05 -07:00
Shawn Hoffman 79f5ea0474 initialize some variables which need to be 2020-08-23 13:57:05 -07:00
Shawn Hoffman c22748dc38 windows: fix some incorrect string lengths 2020-08-23 13:55:15 -07:00
Shawn Hoffman b021573a70 GekkoDisassembler: fix rld* 2020-08-23 13:55:14 -07:00
Shawn Hoffman 49590c9a42 FileUtil: handle some error conditions 2020-08-23 13:55:14 -07:00
Shawn Hoffman 3bc8a26083 don't use std::move on const variables 2020-08-23 13:55:14 -07:00
Shawn Hoffman 1b1fc39f02 handle to GetFileVersionInfoW must be zero 2020-08-23 13:55:14 -07:00
Shawn Hoffman 6ef9d70701 name some threads 2020-08-22 17:22:07 -07:00
Shawn Hoffman a769dff1d0 windows: additionally set thread name via SetThreadDescription 2020-08-22 17:22:07 -07:00
LC 4a34b74e68
Merge pull request #9035 from shuffle2/vs-pretty
misc vcxproj cleanup
2020-08-22 20:13:25 -04:00
LC f3431f3ff8
Merge pull request #9043 from Ebola16/GS
Android: Prevent getSetting ClassCastExceptions in ItemViews
2020-08-22 19:44:13 -04:00
Shawn Hoffman cff4806d8d windows: fix build if pch were to be disabled 2020-08-22 16:18:24 -07:00
Shawn Hoffman 1104fcf807 msbuild: allow _WIN32_WINNT to be naturally defined by headers 2020-08-22 16:17:51 -07:00
Shawn Hoffman c88d832e05 msbuild: prettify include paths 2020-08-22 16:17:51 -07:00
Shawn Hoffman af55938538 msbuild: use the moc dispatcher from Qt's vstools
The new method supports build parallelism and cleaner
integration into msbuild dependency flows.
2020-08-22 16:17:51 -07:00
Shawn Hoffman 03a263db20 msbuild: fixup linking of discord-rpc 2020-08-22 16:17:50 -07:00
Shawn Hoffman 2f47f486af msbuild: re-enable standalone vcxproj processing 2020-08-22 16:17:50 -07:00
Shawn Hoffman 1f8cda6281 DolphinQt: sort the files in vcxproj 2020-08-22 16:17:50 -07:00
Shawn Hoffman 390f509bbf windows: disable C4200 directly in libusb.h 2020-08-22 16:17:50 -07:00
Shawn Hoffman 94bf48b67c msbuild: refactor stuff out of project files (for dolphin) 2020-08-22 16:17:50 -07:00
Shawn Hoffman 3a0d8c0208 msbuild: enable D3DCommon to use pch 2020-08-22 16:17:50 -07:00
Shawn Hoffman 36ace8eb52 prettify some constructs in vcxproj files 2020-08-22 16:17:50 -07:00
JosJuice f7f0fa2d85 DiscIO: Adjust WIA/RVZ header size heuristic
The heuristic was not allocating enough space for Metroid: Other M,
at least when using the default settings. (This didn't break the
file, it just caused some headers to be placed at the end of the
file instead of at the start and wasted a few hundred kilobytes.)
2020-08-22 22:26:55 +02:00
Admiral H. Curtiss f859da112e Update Windows build to use Qt 5.15.0. 2020-08-22 20:08:38 +02:00
Ryan Meredith d5ea4b4b80 Android: Prevent getSetting ClassCastExceptions in ItemViews 2020-08-21 11:09:24 -04:00
JosJuice fc6c1931fa VolumeVerifier: Adjust problem descriptions for new netplay check
The new hash check catches essentially all desync problems
that VolumeVerifier can catch, so from the user's perspective,
such problems will result in Dolphin refusing to start the
game on netplay rather than actually getting a desync.
2020-08-19 17:21:38 +02:00
LC 905df6756b
Merge pull request #9024 from JosJuice/android-wiimote-false
Android: Fix defaults for WiimoteContinuousScanning/EnableSpeaker
2020-08-17 15:25:23 -04:00
LC 24ff8b8d1e
Merge pull request #9034 from JosJuice/android-menu-animation-rtl
Android: Take RTL layout into account for menu animations
2020-08-17 15:24:52 -04:00
JosJuice ac17e49243 Android: Take RTL layout into account for menu animations 2020-08-17 19:37:40 +02:00
Léo Lam d1439a1fa9
IOS/USB: Move scan thread logic into a separate class
This moves the scan thread logic and variables into a separate
ScanThread class. By turning ScanThread instances into members of the
most derived class, this ensures that the scan thread is always
properly stopped when the most derived class is destructed and fixes
a race condition that could cause the scan thread to call virtual
member functions from a derived class whose members have already
been destructed.

A drawback of this approach is that the scan thread must be the last
member variable, so this commit also adds static assertions to ensure
that the assumption stays valid.
2020-08-17 15:14:45 +02:00
Léo Lam 55c931d624
Merge pull request #8995 from Tilka/warnings
Fix some more GCC warnings
2020-08-17 14:49:28 +02:00
Léo Lam 6104018fe1
Merge pull request #9020 from Tilka/usb
IOS/USB: fix potential race condition
2020-08-17 12:15:26 +02:00
Shawn Hoffman d40ae8a84b UnitTests: expliticly list files to be compiled.
Fixes VS warning / bad behavior.
2020-08-16 15:17:11 -07:00
Shawn Hoffman 9a5a705d01 Fix comparison to invalidated vector iterator.
GetFstEntryForPath may modify the children vector,
so do it before taking an iterator to the vector.
2020-08-16 15:17:11 -07:00
Shawn Hoffman 9d880c2db3 UnitTests: quiet warnings 2020-08-16 15:17:11 -07:00
Shawn Hoffman deb73d0167 msvc: temporary workaround for C4789 false positive 2020-08-16 12:49:00 -07:00
LC 2c5920dccc
Merge pull request #9028 from cristian64/netplaybrowser_deadlock_on_exit
DolphinQt: Prevent deadlock when exiting the NetPlay Session Browser dialog
2020-08-16 08:57:35 -04:00
Christian Aguilera ddeb2236ae Removed RunOnObject() usage to prevent deadlock on exiting the NetPlay Session Browser dialog. 2020-08-16 12:32:50 +01:00
LC 6fc7135047
Merge pull request #8855 from shuffle2/dol
DolReader: treat overly large data segment as bss
2020-08-16 06:02:39 -04:00
Christian Aguilera eee1589aa3 Restoring NetPlay Session Browser dialog's settings before connecting widgets, to prevent multiple refresh requests on change. 2020-08-15 22:29:23 +01:00
JosJuice 07a0d44b36
Merge pull request #8571 from Pokechu22/di-interrupts
Fix gamecube games not noticing disc changes
2020-08-11 20:03:41 +02:00
JosJuice bd87285f3a FrameDump: Don't ignore the time base numerator
Fixes a regression where f72b756 made all dumped video super long.
2020-08-11 11:17:22 +02:00
JosJuice bd9d0964cd Android: Fix defaults for WiimoteContinuousScanning/EnableSpeaker
The default values need to match the default values defined in C++.
2020-08-11 09:18:15 +02:00
JosJuice 02fe1cdec4 Android: Rewrite GetRenderSurfaceScale in Java
Long sequences of JNI calls are both hard to read and slow.
2020-08-09 21:07:22 +02:00
Tillmann Karras ca61b6c1ab DiscIO: make use of std::nullopt
This also fixes a bogus GCC warning.
2020-08-08 21:53:27 +01:00
Tillmann Karras d2b06f4786 Fix various -Wshadow warnings 2020-08-08 21:45:03 +01:00
Tillmann Karras ee0d4661ab IOS/USB: deduplicate scan thread stopping
Unlike other functions, base ctors/dtors are always called automatically.
2020-08-08 21:40:23 +01:00
Tillmann Karras 1f4b9adbf5 ISO/USB: fix potential race condition 2020-08-08 21:40:23 +01:00
Tilka a161e58591
Merge pull request #8914 from JosJuice/jit64-low-dcbz
Jit64: Implement low DCBZ hack
2020-08-08 21:19:16 +01:00
Tilka 8b236fc8f8
Merge pull request #8986 from jordan-woyak/button-pressed-no-ext
WiimoteEmu: Don't check extension button press for Wii remote reconnection.
2020-08-08 21:06:46 +01:00
Tilka c0fde32d80
Merge pull request #9019 from JosJuice/verify-wad-split-tmd-ticket
VolumeVerifier: Split TMD error from ticket error for WADs
2020-08-08 21:05:21 +01:00
JosJuice 76228fa482 Jit64: Implement low DCBZ hack
I was hoping this would improve the performance of Cars 2 by
avoiding interpreter fallbacks, but it doesn't seem to have
made any measurable impact.
2020-08-08 22:03:34 +02:00
Tilka 3101d957b6
Merge pull request #8886 from JosJuice/stack-check-instruction
PatchEngine: Attempt to fix crash in IsStackSane
2020-08-08 20:59:48 +01:00
Tilka 6356cc8b08
Merge pull request #8910 from OatmealDome/os-deprecated-cleanup
Analytics: Replace usage of Gestalt for retrieving macOS version
2020-08-08 20:53:14 +01:00
Tilka f17b5dd41b
Merge pull request #8804 from iwubcode/dsu-improvements
DolphinQt / InputCommon - Support multiple DSU servers
2020-08-08 20:45:57 +01:00
JosJuice 7ef0bc0359 VolumeVerifier: Split TMD error from ticket error for WADs
When I first made VolumeVerifier, I figured that the distinction
between an unsigned ticket and an unsigned TMD was a technical
detail that users would have no reason to care about. However,
while this might be true for discs, it isn't equally true for
WADs, due to the widespread practice of fakesigning tickets to
set the console ID to 0. This practice does not require
fakesigning the TMD (though apparently people do it anyway,
at least sometimes...), and the presence of a correctly signed
TMD is a useful indicator that the contents have not been
tampered with, even if the ticket isn't correctly signed.
2020-08-08 21:15:51 +02:00
Tilka 76b955e090
Merge pull request #8940 from RenaKunisaki/master
add Break On Hit and Log On Hit for instruction breakpoints
2020-08-08 19:46:10 +01:00
Tilka 6d0bc03e00
Merge pull request #8992 from Sintendo/fselx-avx
Jit64: Avoid unnecessary MOVAPS instructions
2020-08-08 19:38:48 +01:00
Tilka d7a96f927c
Merge pull request #9002 from OatmealDome/renderwidget-sheet
MainWindow: Attach quit emulation sheet to RenderWidget if shown on macOS
2020-08-08 19:18:32 +01:00
Tilka 4c64446afe
Merge pull request #9005 from OatmealDome/macos-psn-arg
DolphinQt: Ignore "-psn" command line option on macOS
2020-08-08 19:11:39 +01:00
Tilka 340c08a88d
Merge pull request #9008 from Sintendo/dspjitlea
DSPJit: Various minor improvements
2020-08-08 19:08:24 +01:00
Tilka 3201944208
Merge pull request #9016 from JosJuice/jitarm64-fctiwzx-fcvt
JitArm64: Avoid double rounding in fctiwzx
2020-08-08 17:55:49 +01:00
JosJuice 8b4f16a310 JitArm64: Avoid double rounding in fctiwzx
FCVT doesn't necessarily round to zero, so the result
might be inaccurate if we use it. To ensure correct
rounding, we use FCVTS from double FPR to 32-bit GPR.
Unfortunately, FCVTS can't do double FPR to single FPR.
2020-08-07 22:44:04 +02:00
Jordan Woyak a77977d0aa
Merge pull request #8999 from AdmiralCurtiss/input-expression-math
Add a few input expression functions (trigonometry, sqrt, pow, min, max, clamp)
2020-08-07 14:40:29 -05:00
LC 5ec65a20d6
Merge pull request #9009 from JosJuice/android-settings-recreation
Android: Fix SettingsActivity lifecycle management
2020-08-06 19:46:16 -04:00
LC d8c0344ee8
Merge pull request #9010 from JosJuice/android-settingsadapter-redundant-static
Android: Remove some static variables from SettingsAdapter
2020-08-06 19:45:54 -04:00
LC 7b3056fee0
Merge pull request #9011 from JosJuice/android-settings-viewmodel
Android: Persist Settings using ViewModel
2020-08-06 19:45:17 -04:00
LC de5d0e54be
Merge pull request #9013 from JosJuice/savescreenshot-wait-for-completion
Remove wait_for_completion parameter from Renderer::SaveScreenshot
2020-08-06 19:44:43 -04:00
JosJuice 7385e9129c Remove wait_for_completion parameter from Renderer::SaveScreenshot
This is now unused. Seems like it was an improper fix
(there would be a race if saving the screenshot took longer
than 2 seconds) back when it was used too.
2020-08-06 21:57:12 +02:00
JosJuice 05e49b13ef Android: Fix SettingsActivity back stack behavior after stop+start
Fixes the behavior where the settings activity would go back to
the top-level menu after switching to a different app and back.
2020-08-05 21:21:45 +02:00
JosJuice a427eafa7b Android: Persist Settings using ViewModel
Just for maintainability. This is a shorter and more standard
solution compared to our current one where the Fragment
persists the Settings and passes it to the Activity.
2020-08-05 19:50:11 +02:00
JosJuice e3911736c2 Android: Remove some static variables from SettingsAdapter
All of these have non-static equivalents (mView and mClickedItem).
2020-08-05 18:47:17 +02:00
JosJuice c727f03590 Android: Properly restore state of SettingsActivityPresenter
Fixes https://bugs.dolphin-emu.org/issues/10815
2020-08-05 13:21:07 +02:00
Sintendo 363f3f82bb DSPJitRegCache: Simplify WriteReg
The intent here is to generate a more compact instruction if a 32-bit
immediate can be zero-extended to the desired 64-bit immediate.

Nowadays the emitter is smart enough to do this for us, so this logic is
redundant.
2020-08-05 10:23:28 +02:00
Sintendo 618d261b91 DSPJitMultiplier: addpaxz - AND constant directly
There's no need to load the 64-bit immediate into a temporary register.
x64 will sign-extend 32-bit immediates to 64 bits, giving us the exact
value we need in this case.

48 C7 C0 00 00 FF FF    mov         rax,0FFFFFFFFFFFF0000h
48 21 C2                and         rdx,rax

48 81 E2 00 00 FF FF    and         rdx,0FFFFFFFFFFFF0000h
2020-08-05 10:22:51 +02:00
Sintendo 49a4e09719 DSPJit: Replace/optimize LEAs
- LEA is a bit silly when the source and the destination are the same. A
simple ADD or SHL will do in those cases.

66 8D 04 45 00 00 00 00 lea         ax,[rax*2]
66 03 C0                add         ax,ax

48 8D 04 00             lea         rax,[rax+rax]
48 03 C0                add         rax,rax

66 8D 14 D5 00 00 00 00 lea         dx,[rdx*8]
66 C1 E2 03             shl         dx,3

- When scaling by 2, consider summing the register with itself instead.
The former always needs a 32-bit displacement, so the sum is more
compact.

66 8D 14 45 00 00 00 00 lea dx,[rax*2]
66 8D 14 00             lea dx,[rax+rax]
2020-08-05 10:22:50 +02:00
OatmealDome 5c1693587f DolphinQt: Ignore "-psn" command line option on macOS 2020-08-04 15:55:51 -04:00
JosJuice b0f9bb9f13 Port some settings to the new config system
Other than the controller settings and JIT debug settings,
these are the only settings which were defined in Java code
but not defined in the new config system in C++. (There are
still a lot of settings that are defined in the new config
system but not yet saveable in the new config system, though.)
2020-08-03 15:07:53 +02:00
OatmealDome fae8f8d68b MainWindow: Attach quit emulation sheet to RenderWidget on macOS 2020-08-03 05:48:57 -04:00
Ryan Meredith 6020133f5b LogManager: Add missing include 2020-08-02 19:52:10 -04:00
JosJuice 5cad82137d Allow translations and custom names in GameFile::GetNetPlayName
There is no longer any major reason for why this function would
need to return the same result for all players.
2020-08-02 22:46:53 +02:00
JosJuice a41166bb37 Make netplay's "same game" check more robust
Instead of comparing the game ID, revision, disc number and name,
we can compare a hash of important parts of the disc including
all the aforementioned data but also additional data such as the
FST. The primary reason why I'm making this change is to let us
catch more desyncs before they happen, but this should also fix
https://bugs.dolphin-emu.org/issues/12115. As a bonus, the UI can
now distinguish the case where a client doesn't have the game at
all from the case where a client has the wrong version of the game.
2020-08-02 22:46:53 +02:00
Admiral H. Curtiss cdf2a29b5e Qt/IOWindow: Add a handful of math functions to the function dropdown. 2020-08-02 22:09:09 +02:00
Admiral H. Curtiss 2281cde28b InputCommon: Add a handful of math functions to the expression parser. 2020-08-02 22:09:09 +02:00