Scott Mansell
37b80e2170
BPStructs: fix out-of-range EFB copy clamping
...
Previous code from #7950 only clamps correctly when the efb copies
left and top coordinates are (0, 0)
Now we should handle all situations.
Spyro: A hero's tail is an example of a game that does an oversized
EFB copy with a non-zero origin.
2021-09-15 02:31:38 +12:00
Admiral H. Curtiss
06d41c53ce
DiscIO/DirectoryBlob: Handle reads between files.
2021-09-14 07:09:55 +02:00
JosJuice
74f2acd83b
JitArm64: Move fresx/frsqrtex RW calls earlier
...
If W0 is locked when fpr.RW is called, the indirectly called
ConvertSingleToDoubleLower may need to emit a push+pop, so it's
better for fresx/frsqrtex to call RW before locking W0 than after.
2021-09-13 19:27:16 +02:00
JosJuice
1c4155f800
JitArm64: Fix fresx/frsqrtex unlocking W0 too early
...
fpr.RW may clobber GPRs that are not locked.
Fixes https://bugs.dolphin-emu.org/issues/12656 .
2021-09-13 19:03:43 +02:00
Lioncash
d00e7d5a75
SI: Collapse interrupt generation check in UpdateInterrupts()
...
We can simplify this by storing the result of the test into a variable
instead.
2021-09-13 11:25:03 -04:00
Lioncash
ca24c32cbf
SI: Eliminate trivial sign conversion cases in RegisterMMIO()
...
Previously differently signed types were being used to create addresses
and bit offsets.
2021-09-13 11:24:59 -04:00
Léo Lam
ee863e6722
Merge pull request #10014 from OatmealDome/wiimote-disconnect-crash
...
WiimoteReal: Fix Wiimote disconnection causing Dolphin to crash on macOS
2021-09-13 15:26:02 +02:00
Léo Lam
5f2a8d98fb
Merge pull request #10093 from JosJuice/revert-revert-10025
...
Revert "Revert "DolphinQt: Minor consistency fixes for the Settings window""
2021-09-13 14:54:01 +02:00
JMC47
1b32a61d6a
Merge pull request #10094 from AdmiralCurtiss/namco-museum-branch-following
...
GameINI: Disable JIT branch following for Namco Museum.
2021-09-10 23:42:04 -04:00
Admiral H. Curtiss
788177a001
GameINI: Disable JIT branch following for Namco Museum to avoid major stuttering in Galaga Arrangement and Dig Dug Arrangement.
2021-09-11 05:27:07 +02:00
JMC47
05f86b9f5b
Merge pull request #10012 from Pokechu22/thps4-green-sky
...
UberShaderVertex: Fix Tony Hawk Pro Skater 4
2021-09-09 17:58:35 -04:00
JosJuice
5ea121eeb5
Revert "Revert "DolphinQt: Minor consistency fixes for the Settings window""
...
This reverts commit e376a985e4
.
A beta build has been released now, so there's no reason to keep
it reverted anymore.
2021-09-08 22:09:19 +02:00
JosJuice
b4787cdbd3
Merge pull request #10077 from lioncash/dvdbf
...
DVDInterface: Migrate bitfields over to Common::BitField
2021-09-08 21:37:09 +02:00
JosJuice
52304df943
Merge pull request #10011 from JosJuice/android-cheats-preparation
...
Split out code for serializing/deserializing cheat lines
2021-09-08 21:36:56 +02:00
JosJuice
2a22367211
Merge pull request #10056 from lioncash/qtloc
...
DolphinQt: Minor localization changes
2021-09-08 21:36:46 +02:00
JosJuice
15eb56142a
JitArm64: Read BATs in psq_l/psq_st address check
...
Same approach as Jit64 here as well.
2021-09-08 21:32:16 +02:00
JosJuice
93e968208e
JitArm64: Lock fewer registers when assumeNoPairedQuantize
2021-09-08 21:32:11 +02:00
JosJuice
96760093e9
JitArm64: Move psq_st address check to EmitBackpatchRoutine
...
This way the address check will take up less icache (since it's
only emitted once for each routine rather than once for each
psq_st instruction), and we also get address checking for psq_l.
Matches Jit64's approach.
The disadvantage: In the slowmem case, the routines have to
push *every* caller-saved register onto the stack, even though
most callers probably don't need it. But at long as the slowmem
case isn't hit frequently, this is fine.
2021-09-08 21:26:10 +02:00
JosJuice
cd84339dfd
JitArm64: Use EmitBackpatchRoutine more for psq_l/psq_st
...
In the case of the JitAsm routines, we can't actually use
backpatching. Still, I would like to gather all the load and
store instructions in one place to make future changes easier.
2021-09-08 21:26:10 +02:00
JosJuice
de21dc5fd9
JitArm64: Add bitset constants for caller saved registers
2021-09-08 21:26:05 +02:00
JosJuice
6c3141e0cc
JitArm64: Change parameter order for quantized load routines
...
EmitBackpatchRoutine (see the upcoming commits) expects
the address to be in W0 for loads and W1 for stores.
2021-09-08 21:26:03 +02:00
JosJuice
36b3d51523
JitArm64: Restructure the BackPatchInfo flags enum
...
This makes it possible to construct flag combinations like
"load 16 bits into an FPR".
2021-09-08 21:23:00 +02:00
Mai M
059794b551
Merge pull request #10087 from JosJuice/jitarm64-psq-caller-saved
...
JitArm64: Move psq_stXX GetCallerSavedUsed calls later
2021-09-08 04:00:43 -04:00
Mai M
8809d8eb61
Merge pull request #10089 from AdmiralCurtiss/jit-cache-valid-block-clear
...
PowerPC/JitCache: Clear valid_block bits for long invalidations.
2021-09-08 04:00:23 -04:00
Mai M
5538e90ebf
Merge pull request #10090 from Pokechu22/d3d-isnan-replacement
...
Use custom isnan implementation to avoid HLSL optimizer issues
2021-09-08 03:59:45 -04:00
Pokechu22
52c82733f6
Use custom isnan implementation to avoid HLSL optimizer issues
...
This adjusts the NaN replacement logic introduced in #9928 to work around the HLSL compiler optimizing away calls to isnan, which caused that functionality to not work with ubershaders on D3D11 and D3D12 (it did work with specialized shaders, despite a warning being logged for both; that warning is also now gone). Note that the `D3DCOMPILE_IEEE_STRICTNESS` flag did not solve this issue, despite the warning suggesting that it might.
Suggested by @kayru and @jamiehayes.
2021-09-07 19:04:40 -07:00
Admiral H. Curtiss
34992f52c7
PowerPC/JitCache: Clear valid_block bits for long invalidations.
2021-09-07 23:14:20 +02:00
JosJuice
23f6fdebcb
Revert "JitArm64: Indexed paired loadstores workaround, attempt 2"
...
This reverts commit 3071a1d13b
.
2021-09-05 11:45:40 +02:00
JosJuice
743de44f03
JitArm64: Move psq_stXX GetCallerSavedUsed calls later
...
This is a proper fix for the issue that 3071a1d
was a workaround for.
It wasn't some kind of bug in the register cache that had laid dormant,
it was a simple mistake made in b24b79e
.
2021-09-05 11:42:07 +02:00
Mai M
282fda1530
Merge pull request #10086 from JosJuice/jitarm64-w0
...
JitArm64: Fix W0 being present twice in register cache
2021-09-04 21:14:40 -04:00
JosJuice
ea1210773c
JitArm64: Fix W0 being present twice in register cache
...
Fixes a regression from ecf86bb
.
The GPR allocation_order is initialized with only 28 elements,
so the 29th element ends up getting zero initialized.
Very sneaky bug...
2021-09-04 12:48:45 +02:00
JosJuice
4b8b53ac73
Merge pull request #10083 from JoeyBallentine/bfbb-dualcore-fix
...
Disable Dual Core by default for multiple Heavy Iron games
2021-09-03 16:52:06 +02:00
Joey Ballentine
6d25717d75
Disable dual core by default for multiple Heavy Iron games
2021-09-02 15:49:22 -04:00
JosJuice
156ccdb805
Merge pull request #10082 from lioncash/texenum
...
BPMemory: Make ZTexOp enum an enum class
2021-09-02 08:14:05 +02:00
Lioncash
f36fd5fa39
BPMemory: Make ZTexOp enum an enum class
...
Avoids placing generic names in the surrounding namespace.
2021-09-01 18:23:22 -04:00
JosJuice
907091ac35
Merge pull request #10078 from Pokechu22/msbuild-DivUtils
...
msbuild: Move DivUtils to DolphinLib.props
2021-09-01 15:49:29 +02:00
Lioncash
269b7a2166
MemoryInterface: Eliminate trivial sign conversion cases
...
We can just use unsigned loop variables instead of signed ones.
2021-09-01 06:39:06 -04:00
Lioncash
163b24833d
MemoryInterface: Migrate bitfields over to Common::BitField
2021-09-01 06:36:25 -04:00
Pokechu22
e9c6c13886
msbuild: Move DivUtils to DolphinLib.props
...
It was accidentally put into the main DolphinLib.vcxproj in #9566 .
2021-08-31 22:48:07 -07:00
Lioncash
15566048f0
DVDInterface: Migrate bitfields over to Common::BitField
2021-08-31 17:27:43 -04:00
Lioncash
e68b9de62c
SI: Migrate bitfields to Common::BitField
2021-08-31 16:26:07 -04:00
Léo Lam
32c7524f4d
Merge pull request #10021 from Dentomologist/make_windows_tabbar_scroll_buttons_opaque
...
DolphinQt: Make Windows tab bar scroll buttons opaque
2021-08-31 19:18:03 +02:00
Léo Lam
c3dadd140b
Merge pull request #10074 from lioncash/pte
...
MMU: Tidy up PTE-related code
2021-08-31 19:17:08 +02:00
Léo Lam
ef358a122a
Merge pull request #10075 from lioncash/memcheck
...
MMU: Don't truncate 64-bit values when calling Memcheck()
2021-08-31 19:06:33 +02:00
Lioncash
ed0aa5928f
Gekko: Remove unused UReg_PTE
...
PTEs are only ever operated on in terms of their halves in our code
currently, so this can be removed.
2021-08-31 12:18:31 -04:00
Lioncash
029aff0741
MMU: Remove now-unused defines
...
Now that we're using register unions where applicable, we can remove
these defines, since they're now unused.
2021-08-31 12:18:28 -04:00
Lioncash
7a6b63b309
MMU: Don't truncate 64-bit values when calling Memcheck()
...
Previously in Read_U64 and Write_U64 the value that was read or written
would be truncated to a 32-bit value before being passed off to the
memcheck handler, which can result in incorrect values being logged out.
2021-08-31 11:39:13 -04:00
Dentomologist
1fa1e7135c
DolphinQt: Make Windows tab bar scroll buttons opaque
2021-08-31 08:33:00 -07:00
Lioncash
a8ebca4fc6
MMU: Invert conditionals in Memcheck()
...
Lets us unindent code a little bit.
2021-08-31 11:30:57 -04:00
Lioncash
ee40b640d3
MMU: Make use of UPTE_Lo and UReg_SR in TranslatePageAddress()
...
Allows us to get rid of a bit of masking in exchange for stating the
bits being accessed or written to directly.
2021-08-31 10:52:52 -04:00