11806 Commits

Author SHA1 Message Date
Admiral H. Curtiss
87135db492 GCMemcardDirectory: Clarify data writing in FlushToFile(). 2020-08-24 19:32:10 +02:00
Admiral H. Curtiss
306a5e6990 Jit64: Keep track of free code regions and reuse space when possible. 2020-08-24 19:31:32 +02:00
Admiral H. Curtiss
fdab9783c7 Externals: Add rangeset. 2020-08-24 19:31:32 +02:00
Admiral H. Curtiss
5b52b3e9cb x64Emitter: Check end of allocated space when emitting code. 2020-08-24 19:31:32 +02:00
Shawn Hoffman
c629af6319 replace is_pod with is_standard_layout && is_trivially_copyable 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
3bc8a26083 don't use std::move on const variables 2020-08-23 13:55:14 -07:00
Shawn Hoffman
2f47f486af msbuild: re-enable standalone vcxproj processing 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
36ace8eb52 prettify some constructs in vcxproj files 2020-08-22 16:17:50 -07: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
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
deb73d0167 msvc: temporary workaround for C4789 false positive 2020-08-16 12:49:00 -07:00
Jordan Woyak
0ad123bdbb BTEmu: Fix home menu inquiry assigning multiple wii remotes to wrong slots. 2020-08-16 11:38:13 -05:00
Jordan Woyak
6a6f1451ff Update state version. 2020-08-16 11:38:13 -05:00
Jordan Woyak
13ee6bd7bb BTEmu/Wiimote: Cleanups/Fixes. 2020-08-16 11:38:13 -05: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
Jordan Woyak
89ca9b51ad Bluetooth/WiimoteDevice: Remove some silly comments. 2020-08-15 21:23:37 -05:00
Jordan Woyak
1cddf9c527 BTEmu: Remove a wrong INFO_LOG. 2020-08-15 21:23:37 -05: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
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
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
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
340c08a88d
Merge pull request #9008 from Sintendo/dspjitlea
DSPJit: Various minor improvements
2020-08-08 19:08:24 +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
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
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
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
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
Sintendo
08bdeefe05 Jit64AsmCommon: Use AVX in ConvertDoubleToSingle
Using AVX we can eliminate another MOVAPS instruction here.

Before:
0F 28 C8                movaps      xmm1,xmm0
66 0F DB 0D CF 2C 00 00 pand        xmm1,xmmword ptr [1F8D283B220h]

After:
C5 F9 DB 0D D2 2C 00 00 vpand       xmm1,xmm0,xmmword ptr [271835FB220h]
2020-08-02 18:07:47 +02:00
Tilka
dbacffd75d
Merge pull request #8731 from Pokechu22/dsp-lle-cpu-int-crash
Fix crash when using DSP LLE with CPU interpreter (or fastmem off)
2020-08-01 15:26:27 +01:00
Pokechu22
9183c0c482 Bump state version 2020-07-29 16:57:37 -07:00
Pokechu22
e5e23c6b27 Mark several DVDInterface functions as static 2020-07-29 16:57:36 -07:00
Pokechu22
4415df463f Remove DVDInterface::Reset
It only resets the registers, which isn't something that needs to be done except for in DVDInterface::Init
2020-07-29 16:57:36 -07:00