Pokechu22
f433da6083
DolphinAnalytics: Fix comment wrapping
...
This was broken in 3570c7f03a
.
2023-01-02 23:15:04 -08:00
Admiral H. Curtiss
d949aa60bb
Merge pull request #11397 from TellowKrinkle/QuartzMousePos
...
InputCommon:QuartzKB&M: Fix mouse y coordinates
2023-01-02 23:04:12 +01:00
Admiral H. Curtiss
f13f54e3db
Merge pull request #11363 from TheConfuZzledDude/xinput2-scroll-axis
...
InputCommon/XInput2: Added an axis output for the scroll wheel
2023-01-02 23:02:12 +01:00
TheLordScruffy
9d39647f9e
Fix PPC cache code formatting
2023-01-02 02:33:57 -05:00
TellowKrinkle
8659de4d71
InputCommon:QuartzKB&M: Fix mouse y coordinates
...
Cocoa uses a different coordinate system from Carbon (Carbon's origin is the top left while Cocoa's is the bottom left)
2022-12-31 23:42:11 -06:00
Mai
20ac2cf781
Merge pull request #11375 from JosJuice/mmu-inf-write
...
PowerPC: Fix theoretically possible infinite loop in WriteToHardware
2022-12-31 18:55:11 +00:00
Mai
e31722db1c
Merge pull request #11380 from Pokechu22/performance-sample-window-title
...
AdvancedWidget: Add title for performance sample window tooltip
2022-12-31 18:54:43 +00:00
Mai
acdf76bf16
Merge pull request #11374 from JosJuice/jitarm64-breakpoints
...
JitArm64: Implement breakpoints
2022-12-31 18:53:25 +00:00
Admiral H. Curtiss
f6fbeaf355
Merge pull request #11364 from jordan-woyak/udraw-lift
...
WiimoteEmu: Expose mappings for lifted UDraw and Drawsome stylus.
2022-12-29 21:16:57 +01:00
JMC47
a20e41d340
Merge pull request #11389 from Pokechu22/sw-no-alpha-1-hack
...
Software: Remove alpha=1 blending special-case
2022-12-29 13:08:04 -05:00
Admiral H. Curtiss
c20bb01b47
Merge pull request #11372 from JosJuice/m3u-backslash
...
Boot: Fix handling of M3U file paths containing backslashes
2022-12-29 17:09:38 +01:00
Admiral H. Curtiss
4bc94e4629
Merge pull request #11353 from noahpistilli/fix-mail-account-generation
...
Set checksum for NWC24Config during creation
2022-12-29 17:08:10 +01:00
Admiral H. Curtiss
cb0a603c72
VideoCommon: De-globalize GeometryShaderManager class.
2022-12-29 15:33:19 +01:00
Admiral H. Curtiss
a164c47caf
Core/Boot: Pass System instance to BootUp() and related.
2022-12-29 05:49:26 +01:00
Mai
7552deeff4
Merge pull request #11388 from AdmiralCurtiss/globals-vertexshadermanager
...
VideoCommon: De-globalize VertexShaderManager class.
2022-12-29 04:48:24 +00:00
Pokechu22
ed5015fa24
Software: Remove alpha=1 blending special-case
...
This was added in #10394 for both the hardware and software backends to work around an issue with Mario Kart Wii, Fortune Street, and Baten Kaitos. However, it seems like the software renderer handles blending well enough that we don't need this (and in any case, it's easy to change blending in the software renderer).
Some experimentation with #11387 (not pushed) showed that the software renderer's logic would also produce correct results on the hardware backends with this hack removed, but would require fbfetch (currently); if a better solution is found the hack can also be removed from the hardware backends.
2022-12-28 14:21:33 -08:00
JMC47
82e5f438f9
Merge pull request #11219 from K0bin/android-vk-alidation
...
VideoBackends:Vulkan: Migrate to VK_EXT_debug_utils
2022-12-28 14:16:51 -05:00
Admiral H. Curtiss
7e55cc9e90
VideoCommon/VertexShaderManager: Rename private variables.
2022-12-28 16:00:15 +01:00
Admiral H. Curtiss
50625728e0
VideoCommon: De-globalize VertexShaderManager class.
2022-12-28 15:52:29 +01:00
Mai
0900e68986
Merge pull request #11384 from AdmiralCurtiss/globals-pixelshadermanager
...
VideoCommon: De-globalize PixelShaderManager class.
2022-12-28 00:59:03 +00:00
Pokechu22
f3df3a7727
PixelShaderGen: Clamp texture layer when using manual texture sampling with stereoscopic 3D
...
Otherwise, texelFetch() will use an out-of-bounds layer for game textures (that have 1 layer; EFB copies have 2 layers in stereoscopic 3D mode), which is undefined behavior (often resulting in a black image). The fast texture sampling path uses texture(), which always clamps (see https://www.khronos.org/opengl/wiki/Array_Texture#Access_in_shaders ), so it was unaffected by this difference.
2022-12-27 13:45:13 -08:00
Admiral H. Curtiss
c8202043b6
IOS/NWC24Config: Combine WriteConfig() and WriteCBK().
2022-12-27 21:21:06 +01:00
Admiral H. Curtiss
4549fb4acb
VideoCommon/PixelShaderManager: Rename s_ variables.
2022-12-27 20:20:27 +01:00
Admiral H. Curtiss
725bd64ec2
VideoCommon: De-globalize PixelShaderManager class.
2022-12-27 20:13:24 +01:00
Sketch
929fba08e7
Fix ESDevice::GetTitlesWithTickets always returning 0 titles owned
2022-12-27 12:18:44 -05:00
Robin Kertels
19a4653203
VideoBackends:Vulkan: Replace debug_report with debug_utils
...
The former is deprecated and pretty much all modern drivers
support VK_EXT_debug_utils.
Android drivers dont support it. On those drivers,
we use the implementation provided by the validation layers.
2022-12-27 02:48:50 +01:00
Floogle
c689e9cde0
Netplay: When connecting, ignore packets from traversal server
2022-12-26 23:35:42 +01:00
Pokechu22
4e05c569d4
AdvancedWidget: Fix typo in performance sample window tooltip
2022-12-26 14:28:48 -08:00
Pokechu22
b675e49c0e
AdvancedWidget: Add title for performance sample window tooltip
2022-12-26 14:20:06 -08:00
Sam Belliveau
6052a5ca9b
Fix Speed Counter Sample Size
2022-12-26 16:47:12 -05:00
TheConfuZzledDude
288fa635f9
InputCommon/XInput2: Changed axis value reading to be more correct
2022-12-26 17:27:48 +00:00
Admiral H. Curtiss
f4b1155b4d
Merge pull request #11373 from JosJuice/gba-tas-input-turbo
...
DolphinQt: Add settings to GBA TAS input window
2022-12-26 04:37:25 +01:00
Jordan Woyak
4f4285cf5e
WiimoteEmu/DrawsomeTablet: Expose mapping for lifted stylus.
2022-12-25 19:03:15 -06:00
Jordan Woyak
ab9fc3f2e4
WiimoteEmu/UDrawTablet: Expose mapping for lifted stylus.
2022-12-25 19:03:15 -06:00
JosJuice
cf16f49068
PowerPC: Fix theoretically possible infinite loop in WriteToHardware
...
`em_address + size` can overflow and become 0. It shouldn't happen with
the kinds of memory mappings games use in practice, though.
2022-12-25 12:29:13 +01:00
JosJuice
e0fba20f1f
Merge pull request #11360 from shuffle2/vs
...
msvc: remove workaround for arm64 sha1 compiler bug
2022-12-24 22:55:47 +01:00
JosJuice
c744ff4934
JitArm64: Implement breakpoints
...
Plus two miscellaneous debugger features that I found along the way when
reading Jit64's code for comparison: bJITNoBlockLinking and tracing.
Fixes https://bugs.dolphin-emu.org/issues/13127 .
2022-12-24 13:24:01 +01:00
JosJuice
0659827485
Jit64: Check for breakpoint without disabling block link
...
Small optimization. By not calling WriteExit, the block linking system
never finds out about the exit we're doing, saving us from having to
disable block linking.
2022-12-24 13:01:29 +01:00
JosJuice
494b041b34
DolphinQt: Add settings to GBA TAS input window
...
We should expose Enable Controller Input and the turbo settings for
GBA just like we do for GameCube controllers and Wii Remotes.
I just forgot about it when implementing the GBA TAS input window.
2022-12-24 11:30:25 +01:00
JosJuice
71f1b1db34
Boot: Fix handling of M3U file paths containing backslashes
...
Previously, if a user on Windows launched Dolphin from the command line
and specified a path to an M3U file and included backslashes in this path,
Dolphin would fail to resolve relative paths in the M3U file.
2022-12-24 11:13:27 +01:00
JosJuice
3611045a6c
DolphinQt: Add more i18n comments
2022-12-24 08:32:49 +01:00
Sam Belliveau
e1d078ada6
Remove Redundant Access Specifiers
2022-12-23 20:13:01 -05:00
Sam Belliveau
673f81c18a
New FrameTime/VBlank Analyzer + Graph
2022-12-23 19:52:53 -05:00
TheConfuZzledDude
27d596b89c
InputCommon/Xinput: Cleaned up a bit
2022-12-23 22:35:09 +00:00
TheConfuZzledDude
c3018fdc3b
InputCommon/XInput2: Added an axis output for the scroll wheel
2022-12-23 22:10:28 +00:00
Pierre Bourdon
2345ba178d
Merge pull request #11356 from Sam-Belliveau/update-dear-implot
...
Externals: Add Dear Implot
2022-12-23 22:05:29 +01:00
iwubcode
31bf9d0019
Core: add option to apply memory patch to not store the existing value (used during locking)
2022-12-23 12:31:33 -06:00
iwubcode
190cf5af30
DolphinQt: add multiselection to WatchWidget
2022-12-23 12:31:33 -06:00
iwubcode
c8a6ff6309
DolphinQt: add a 'add to watch' context menu item that allows you to add a memory location found in a cheat search to be added to the watch list
2022-12-23 12:31:33 -06:00
iwubcode
7d7fcdddd3
DolphinQt: add lock state to WatchWidget
2022-12-23 12:31:33 -06:00
iwubcode
8f3e8e4ca3
Core: add locked state to watches
2022-12-23 11:59:23 -06:00
iwubcode
41c9d706cb
DolphinQt: cleanup WatchWidget
2022-12-23 11:59:23 -06:00
iwubcode
3081a781fd
Core: when scheduling an invalidate cpu cache, no need to schedule if we're already on the cpu thread
2022-12-23 11:59:23 -06:00
iwubcode
2f2f906bf5
Core: add ability to add memory patches to the patch engine that will be executed each frame
2022-12-23 03:13:03 -06:00
iwubcode
1f87bcd202
Core: add ability to apply memory patches during a frame update in the PatchEngine
2022-12-23 03:13:03 -06:00
iwubcode
4743d74985
Core: add helper function to apply a memory patch and mark the 'PPCPatches' as final
2022-12-23 03:13:03 -06:00
Minty-Meeo
14179f7565
Follow-up on a four-year-old Android NDK workaround
...
Surely this is fixed by now.
2022-12-22 19:54:46 -06:00
Sam Belliveau
5ca438dd97
Add Dear ImPlot Library
2022-12-22 14:32:42 -05:00
Shawn Hoffman
9dcae0b1c3
msvc: remove workaround for arm64 sha1 compiler bug
2022-12-22 00:44:29 -08:00
Minty-Meeo
05bebee802
Replace BitUtils with C++20: Counting Zeroes
...
With the upgrade to C++20, std::countl_zero and std::countr_zero can replace these home-spun implementations from the BitUtil.h library.
2022-12-21 04:17:00 -06:00
Admiral H. Curtiss
d853da3b0b
Merge pull request #11354 from Pokechu22/desert-bus-asnd-ucode
...
DSPHLE: Add Desert Bus libasnd ucode variants
2022-12-20 20:01:21 +01:00
Pokechu22
66b3686d84
DSPHLE: Add Desert Bus libasnd ucode variants
2022-12-20 10:02:53 -08:00
Mai
5348c8b2c6
Merge pull request #11344 from JosJuice/jitarm64-mw-deps
...
JitArm64: Improve pipelining of lmw/stmw
2022-12-20 15:11:29 +00:00
Mai
43366d2384
Merge pull request #11351 from JosJuice/bitset-cpp20
...
Common: Use C++20 <bit> header in BitSet.h
2022-12-20 15:02:38 +00:00
Sketch
c01ec96c92
Set checksum for NWC24Config during creation
2022-12-19 20:18:34 -05:00
JMC47
fb8aa9744e
Merge pull request #11286 from K0bin/vk-query-fix
...
VideoBackends: Query fixes and cleanups
2022-12-19 03:15:48 -05:00
JosJuice
547d956278
Common: Use C++20 <bit> header in BitSet.h
2022-12-18 16:51:32 +01:00
Sketch
b56411b84b
Fix MemoryViewWidget background colour
2022-12-17 10:37:37 +01:00
Mai
a1c4861ad8
Merge pull request #10950 from JosJuice/replace-bitutils-rotate
...
Replace BitUtils with C++20: RotateLeft/RotateRight
2022-12-11 21:19:43 +00:00
Mai
aa57d53c90
Merge pull request #11345 from AdmiralCurtiss/globals-pe
...
VideoCommon/PixelEngine: Refactor to class, move to Core::System.
2022-12-11 21:07:30 +00:00
Admiral H. Curtiss
c486baffe6
VideoCommon/PixelEngine: Pass Core::System to methods.
2022-12-11 21:57:30 +01:00
Admiral H. Curtiss
ec8aaf1f30
VideoCommon/PixelEngine: Refactor to class, move to Core::System.
2022-12-11 21:57:19 +01:00
JosJuice
701ba7cd43
JitArm64: Improve pipelining of lmw/stmw
...
The calculation of each address in lmw/stmw currently has a dependency
on the calculation of the previous address. By removing this dependency,
the host CPU should be able to pipeline the loads/stores better. The cost
we pay for this is up to one extra register and one extra MOV instruction
per guest instruction, but often nothing.
Making EmitBackpatchRoutine support using any register as the address
register would let us get rid of the MOV, but I consider that to be too
big of a task to do in one go at the same time as this.
2022-12-11 17:08:12 +01:00
Merry
17c14ac4b9
MachineContext: Fix USE_SIGACTION_ON_APPLE on arm64
2022-12-11 13:36:44 +00:00
JosJuice
454537d53e
Replace BitUtils with C++20: RotateLeft/RotateRight
...
Now that we've flipped the C++20 switch, let's start making use of
the nice new <bit> header.
I'm planning on handling this move away from BitUtils.h incrementally
in a series of PRs. There may be a few functions remaining in
BitUtils.h by the end that C++20 doesn't have any equivalents for.
2022-12-11 08:59:18 +01:00
JosJuice
1fd8d476e8
Merge pull request #11325 from t895/extra-dark
...
Android: Add black backgrounds toggle
2022-12-10 21:09:26 +01:00
Charles Lombardo
fd7a84b794
Android: Add black backgrounds toggle
...
Makes all background colors black in dark mode when enabled through a ThemeOverlay. Applied the same way as a theme/mode.
2022-12-10 14:53:01 -05:00
Mai
54e01c660e
Merge pull request #11334 from AdmiralCurtiss/globals-fifo
...
VideoCommon/Fifo: Refactor to class, move to Core::System.
2022-12-10 19:13:23 +00:00
Mai
48ce5318e1
Merge pull request #11338 from JosJuice/jitarm64-revert-supposed-tail
...
Revert "JitArm64: Optimize a few tail calls"
2022-12-10 19:11:23 +00:00
Mai
c3bed35468
Merge pull request #11337 from JosJuice/aarch64-shrn
...
Arm64Emitter: Fix SHRN/SHRN2
2022-12-10 19:09:33 +00:00
Admiral H. Curtiss
ceae4242fc
VideoCommon/Fifo: Pass Core::System to methods.
2022-12-10 17:16:26 +01:00
Admiral H. Curtiss
5624dd6d39
VideoCommon/Fifo: Refactor to class, move to Core::System.
2022-12-10 17:16:19 +01:00
JosJuice
64bc150b8c
Revert "JitArm64: Optimize a few tail calls"
...
This reverts commit 351d095fff
.
In hindsight, my attempted optimization messes with the return
predictor, unlike real tail calls. So I think it does more bad than
good.
2022-12-10 11:35:52 +01:00
JosJuice
b5b8871bce
Arm64Emitter: Fix SHRN/SHRN2
...
The "vector shift by immediate" category encodes the shift amount for
right shifts as `size - amount`, whereas left shifts use `amount`.
We're not actually using SHRN/SHRN2 anywhere, which is why this has gone
undetected.
2022-12-10 11:20:23 +01:00
Admiral H. Curtiss
1d199f4664
Qt/EnhancementsWidget: Combine texture filtering and anisotropic filtering.
2022-12-09 02:02:17 +01:00
Admiral H. Curtiss
ff2cc4d02b
Qt/EnhancementsWidget: Convert texture filtering option to a ComboBox.
2022-12-09 02:02:16 +01:00
Admiral H. Curtiss
8a3b8a925e
Core: Add option to force linear texture filtering.
2022-12-09 02:02:16 +01:00
TheLordScruffy
e97d380437
Implement PPC write-back data cache
2022-12-08 18:18:32 -05:00
Admiral H. Curtiss
b207611c33
Merge pull request #11274 from TryTwo/PR_Conditional_BP_Add_Memory
...
Debugger: Add conditional breakpoints to memory BPs
2022-12-07 19:55:04 +01:00
Mai
000c6c4813
Merge pull request #11321 from JosJuice/jitarm64-accurate-nans
...
JitArm64: Implement accurate NaNs
2022-12-07 00:58:13 +00:00
Mai
94faad0d37
Merge pull request #11320 from AdmiralCurtiss/globals-memory
...
HW/Memmap: Refactor Memory to class, move to Core::System.
2022-12-07 00:52:31 +00:00
Mai
a9a603b8cb
Merge pull request #11268 from jordan-woyak/ascii-controller
...
Rename "Keyboard" to "Keyboard Controller"
2022-12-04 21:05:52 +00:00
TryTwo
a17fbe7c65
Expand conditional breakpoints to memory breakpoints
2022-12-04 11:25:33 -07:00
Mai
b23eb1f550
Merge pull request #11322 from JosJuice/jit64-madds-nan
...
Jit64: Correctly handle NaNs for ps_maddsX
2022-12-04 17:58:16 +00:00
Mai
f21edf6d5a
Merge pull request #11270 from t895/theme-mode
...
Android: Add theme mode switcher
2022-12-04 17:56:59 +00:00
Admiral H. Curtiss
c9f31ad6a6
Merge pull request #11262 from K0bin/present-sync
...
VideoBackends:Vulkan: Synchronize presentation
2022-12-04 14:30:59 +01:00
Admiral H. Curtiss
2b93d5e0d7
Merge pull request #11273 from TryTwo/PR_Conditional_BP_Callstack
...
Debugger: add callstack to conditional breakpoints
2022-12-04 14:16:12 +01:00
Admiral H. Curtiss
2bd47d1435
Merge pull request #11232 from TryTwo/PR_MemoryView_highlighting
...
Debugger MemoryViewWidget: always highlight target address
2022-12-04 14:07:19 +01:00
TryTwo
76bf1b5f7d
Add callstack to conditional breakpoints. Checks entire stack for value.
...
Use: callstack(0x80000000).
!callstack(value) works as a 'does not contain'.
Add strings to expr.h conditionals.
Use quotations: callstack("anim") to check symbols/name.
2022-12-03 20:52:17 -07:00
JosJuice
eeef5363e4
Jit64: Correctly handle NaNs for ps_maddsX
2022-12-03 21:05:05 +01:00
JosJuice
06e60ac327
JitArm64: Implement accurate NaNs
...
For quite some time now, we've had a setting on x86-64 that makes Dolphin
handle NaNs in a more accurate but slower way. There's only one game that
cares about this, Dragon Ball: Revenge of King Piccolo, and what that game
cares about more specifically is that the default NaN (or "generated NaN"
as I believe it's called in PowerPC documentation) is the same as on
PowerPC. On ARM, the default NaN is the same as on PowerPC, so for the
longest time we didn't need to do anything special to get Dragon Ball:
Revenge of King Piccolo working. However, in 93e636a
I changed how we
handle FMA instructions in a way that resulted in the sign of NaNs
becoming inverted for nmadd/nmsub instructions, breaking the game.
To fix this, let's implement the AccurateNaNs setting, like on x86-64.
2022-12-03 19:41:32 +01:00
JosJuice
5c41d3b602
JitArm64: Refactor temp reg handling in fp_arith/ps_arith
2022-12-03 19:08:27 +01:00
Admiral H. Curtiss
839db591d9
HW/Memmap: Refactor Memory to class, move to Core::System.
2022-12-03 13:27:02 +01:00
Mai
6b514e81f9
Merge pull request #11316 from Pokechu22/jit-widget-fixes
...
Jit widget fixes
2022-12-02 20:54:48 +00:00
Charles Lombardo
b9fffa2e66
Android: Add theme mode switcher
...
Similar to app themes, theme modes have to be loaded before directory initialization is ready. So we save the proper key the same way.
2022-12-02 13:31:57 -05:00
Pokechu22
3d6bfcd236
JITWidget: Convert to fmt
2022-12-01 17:44:41 -08:00
Pokechu22
6a6d24550e
Clean up DisassembleBlock and JitInterface::GetHostCode
2022-12-01 17:43:35 -08:00
Pokechu22
5842b90bee
Show JIT blocks widget when selecting 'PPC vs Host' in code widget
...
Before, I just assumed this feature was broken since I didn't know what widget it used. Now, it behaves like show memory and show code elsewhere.
2022-12-01 17:43:35 -08:00
Pokechu22
0ccfa31ec8
Fix code widget not becoming visible when selecting 'view code' or similar
...
This affected the memory and registers widgets (and possibly others). I'm pretty sure it regressed in 5f629abd8b
.
The SetCodeVisible line is a new fix, but the equivalent already existed in the memory widget.
2022-12-01 17:43:35 -08:00
Pokechu22
4f4bd57fe9
Fix crash when stopping emulation while the JIT widget is in use
...
The call to analyzer.Analyze breaks when it attempts to read an instruction, as it eventually tries to read memory when Memory::m_pRAM is nullptr. Trying to read when execution is not paused in general seems like a bad idea (especially as analyzer.Analyze uses PowerPC::TryReadInstruction which can update icache - this is probably still a problem).
2022-12-01 17:43:34 -08:00
TellowKrinkle
ffb73f43e1
VideoBackends:Metal: Fix min/max lod when setting non-zero-based samplers
2022-11-30 21:11:37 -06:00
TryTwo
700eca1baa
MemoryViewWidget set target address as selected. Fix focus call. Always color selected item blue.
2022-11-30 16:38:56 -07:00
Robin Kertels
35a6d16d9e
VideoBackends: Rename query_type to query_group
2022-11-29 23:14:23 +01:00
Robin Kertels
df2e07ad29
VideoBackends:Vulkan: Fix incorrect barriers in StagingBuffer
...
HOST barriers need to be issued regardless of
whether the memory type is coherent
and we need to properly synchronize writes to the buffer.
2022-11-29 23:14:23 +01:00
Robin Kertels
57b2ea663e
VideoBackends:D3D12: Set query type
2022-11-29 23:14:23 +01:00
Robin Kertels
6ba7573877
VideoBackends:Vulkan: Fix queries
...
Fixes both checking whether queries are done
and actually resets query pools.
2022-11-29 23:14:07 +01:00
Mai
7cd9a78ebf
Merge pull request #11304 from JosJuice/jit64-nan-c
...
Jit64: Correctly handle NaNs for ps_mulsX/ps_sumX
2022-11-29 12:57:43 +00:00
Mai
5f22a0054f
Merge pull request #11305 from JosJuice/jitarm64-optimize-ps-merge
...
JitArm64: Optimize ps_mergeXX
2022-11-29 12:57:10 +00:00
Mai
ff830c08b6
Merge pull request #11307 from AdmiralCurtiss/globals-command-processor
...
VideoCommon/CommandProcessor: Refactor to class, move to Core::System.
2022-11-29 12:56:30 +00:00
Admiral H. Curtiss
6941d2e7e6
VideoCommon/CommandProcessor: Refactor to class, move to Core::System.
2022-11-29 08:15:01 +01:00
TellowKrinkle
e3cc42069f
VideoBackends:OGL: Creating vertex formats shouldn't unbind anything
2022-11-28 21:28:24 -06:00
JosJuice
2f1a8ee1b9
Jit64: Skip HandleNaNs for operations that can't generate NaN
...
Operations that have two operands and can't generate a default NaN,
i.e. addition and subtraction, already have the desired NaN handling
on x86. We just need to make sure to not reverse the operands.
This fixes ps_sum0/ps_sum1 outputting NaNs in cases where they shouldn't.
(HandleNaNs assumes that a NaN in a ps0 input always results in a NaN in
the ps0 output, and correspondingly for ps1.)
2022-11-27 11:30:10 +01:00
JosJuice
cbceae9176
Jit64: Correctly handle NaNs for ps_mulsX
2022-11-27 11:30:10 +01:00
JosJuice
d3180e3516
Jit64: Refactor HandleNaNs operand passing
2022-11-27 11:30:05 +01:00
Mai
44f8b8c100
Merge pull request #11303 from AdmiralCurtiss/coretiming-class
...
CoreTiming: Refactor to class.
2022-11-27 06:00:46 +00:00
Admiral H. Curtiss
64bb9ae9a9
Correctly call CoUninitialize() on Cubeb helper class destruction.
2022-11-27 03:58:50 +01:00
Admiral H. Curtiss
daa70533cd
CoreTiming: Store Globals in CoreTimingManager.
2022-11-27 03:47:12 +01:00
Admiral H. Curtiss
c9558ecb4c
CoreTiming: Refactor to class.
2022-11-27 03:47:12 +01:00
Admiral H. Curtiss
3cdc6e3d4a
Merge pull request #10343 from AdmiralCurtiss/cubeb-2021
...
Update cubeb to mozilla/cubeb@27d2a102b0
2022-11-27 03:26:11 +01:00
JosJuice
f45d3a6a2c
JitArm64: Optimize ps_mergeXX
...
1. In some cases, ps_merge01 can be implemented using one instruction.
2. When we need two instructions for ps_merge01, it's best to start with
a MOV to avoid false dependencies on the destination register.
3. ps_merge10 can be implemented using a single EXT instruction.
2022-11-26 18:14:58 +01:00
Admiral H. Curtiss
e085bf14f9
Core: Use extra thread for Cubeb on Windows to not disturb the CoInitialize state of whatever thread happens to call a Cubeb function.
2022-11-26 05:05:57 +01:00
Admiral H. Curtiss
ca10e92ab9
Core: Abide by COM MTA requirement for cubeb on Windows. Partially based on https://github.com/dolphin-emu/dolphin/pull/8920#discussion_r459746604
...
Co-authored-by: Michael M <mchtly@gmail.com>
2022-11-26 05:05:56 +01:00
Admiral H. Curtiss
59b1419a8e
Externals: Update cubeb to mozilla/cubeb@773f16b7ea and make it a submodule.
...
CMakeLists.txt has been extracted and modified a bit to work with Dolphin's typical build settings.
2022-11-26 05:05:52 +01:00
Admiral H. Curtiss
4273d3754c
CoreTiming: Move static variables into Core::System.
2022-11-26 04:22:32 +01:00
Admiral H. Curtiss
86f17511fc
CoreTiming: Move the 'Globals' instance into Core::System.
2022-11-26 04:22:32 +01:00
Admiral H. Curtiss
70f353fb37
Merge pull request #11283 from AdmiralCurtiss/netplay-save-sync-log
...
Netplay: Add more logging to save syncing.
2022-11-26 03:53:17 +01:00
Admiral H. Curtiss
d189c70d4d
Merge pull request #11230 from AdmiralCurtiss/gci-filenames
...
GCMemcardDirectory: GCI filename cleanup and fixes.
2022-11-26 03:52:43 +01:00
JoshuaMK
dd2282324b
Debugger BreakpointWidget: Allow editing breakpoints
2022-11-26 03:38:25 +01:00
TellowKrinkle
72eadc6520
InputCommon:SDL: Add SDL 2.26 left and right motion inputs
2022-11-24 15:12:07 -06:00
Mai
7be4c90f67
Merge pull request #11166 from AdmiralCurtiss/mmio-system
...
HW: Pass System to MMIO handlers.
2022-11-24 00:58:45 +00:00
Pokechu22
f5d11c1e38
VideoBackends/D3D11: Simplify vertex attribute code
2022-11-23 13:45:43 -08:00
Pokechu22
cc5640245c
Fix build errors related to formatting non-scoped enums
2022-11-23 13:45:43 -08:00
Admiral H. Curtiss
545fee9c94
Core/CommandProcessor: Reformat single/dual core dependent MMIO handlers.
2022-11-23 21:58:18 +01:00
Admiral H. Curtiss
0a6fdb9c13
HW: Pass System to MMIO handlers.
2022-11-23 05:52:21 +01:00
Mai
0ef6d30a0d
Merge pull request #11165 from AdmiralCurtiss/audiocommon-pass-system
...
AudioCommon: Pass Core::System to AudioCommon functions.
2022-11-23 04:49:31 +00:00
Mai
a47ed2124f
Merge pull request #11253 from AdmiralCurtiss/core-timing-events-pass-system
...
CoreTiming: Pass Core::System to Events.
2022-11-23 04:46:11 +00:00
Mai
677121bdbc
Merge pull request #11292 from JosJuice/jit64-imm-ra-update
...
Jit64: Use MOV instead of ADD for updating imm Ra
2022-11-23 04:42:46 +00:00
Mai
e573a0bbc2
Merge pull request #11294 from JosJuice/jitarm64-movpage2r
...
Arm64Emitter: Add MOVPage2R utility function
2022-11-23 04:41:31 +00:00
Mai
cb232155d9
Merge pull request #11298 from Pokechu22/vertexloader-no-DataReader
...
VertexLoader: Eliminate use of DataReader
2022-11-23 04:40:53 +00:00
Pokechu22
e13094766d
Fix VertexLoader.cpp using the wrong size for texture matrix indices without a corresponding texture
...
This regressed in 0a906f553f
, I think (though I haven't confirmed it). Mario Tennis and Luigi's Mansion both use these for some reason (as far as I can tell, the data isn't actually used; it's just extra data included for no reason)
2022-11-22 17:49:54 -08:00
Pokechu22
0bcd3c79bb
VertexLoader: Eliminate use of DataReader
...
DataReader is generally jank - it has a start and end pointer, but the end pointer is generally not used, and all of the vertex loaders mostly bypassed it anyways.
Wrapper code (the vertex loaer test, as well as Fifo.cpp and OpcodeDecoding.cpp) still uses it, as does the software vertex loader (which is not a subclass of VertexLoader). These can probably be eliminated later.
2022-11-22 17:17:11 -08:00
Sam Belliveau
edb2c90b38
Improve FPS/VPS Counting and Revamp Appearance
2022-11-23 00:11:47 +01:00
Admiral H. Curtiss
5e442f6ffa
Merge pull request #11281 from AdmiralCurtiss/updater-admin-check
...
Updater: Check for write permissions in directory of Updater.exe.
2022-11-22 23:50:13 +01:00
Admiral H. Curtiss
19b6251a3c
Merge pull request #11291 from JosJuice/gba-tas-input
...
DolphinQt: Add GBA TAS input window
2022-11-22 23:49:43 +01:00
Admiral H. Curtiss
81557f611a
Qt/GameCubePane: Display a warning if a GCI folder override is set.
2022-11-22 17:53:20 +01:00
Admiral H. Curtiss
c18d6c3deb
Config: Use JPN for custom GCI folder paths.
2022-11-22 17:53:20 +01:00
Admiral H. Curtiss
86d01c3399
Config: Add option to use JPN as the Japanese region directory in GetDirectoryForRegion().
...
See https://bugs.dolphin-emu.org/issues/13076 for motivation for this.
2022-11-22 17:53:19 +01:00
Admiral H. Curtiss
1089d3cab6
GCMemcardDirectory: Compare GCI files in GetFileNamesForGameID() by their identity instead of their default filename.
2022-11-22 10:54:11 +01:00
Admiral H. Curtiss
4b0312ecf8
GCMemcardDirectory: Decode and strip strings for GCI filenames.
2022-11-22 10:54:11 +01:00
Admiral H. Curtiss
c517e92719
GCMemcardDirectory: Use HasSameIdentity() in LoadGCI().
...
This is cheaper and more accurate than comparing default GCI filenames.
2022-11-22 10:54:11 +01:00
Admiral H. Curtiss
b31b2db5fa
GCMemcard: Remove unused methods.
2022-11-22 10:54:10 +01:00
Admiral H. Curtiss
2132e005c3
Core: Add config setting for base GCI folder path.
2022-11-22 10:48:37 +01:00
Admiral H. Curtiss
5ebb894685
Updater: Delete the file we check for write rights with on Windows.
2022-11-22 02:38:42 +01:00
Admiral H. Curtiss
f0fb8c22b0
Updater: Check for write permissions in directory of Updater.exe.
2022-11-22 01:28:02 +01:00
Pokechu22
8f5a58f8be
Merge pull request #11285 from K0bin/cp-checks
...
VideoCommon:VertexLoaderManager: Reduce CPConfig checks
2022-11-21 15:35:06 -08:00
JosJuice
d64c3dc267
Arm64Emitter: Add MOVPage2R utility function
...
This new function is like MOVP2R, except it masks out the lower 12 bits,
returning them instead of writing them to the register. These lower
12 bits can then be used as an offset for LDR/STR. This lets us turn
ADRP+ADD+LDR sequences with a zero offset into ADRP+LDR sequences with
a non-zero offset, saving one instruction.
2022-11-21 23:24:06 +01:00
JosJuice
40571cf13c
DolphinQt: Add GBA TAS input window
...
When emulated GBAs were added to Dolphin, it was possible to control them
using the GC TAS input window. (Z was mapped to Select.) Unaware of this,
I broke the functionality in b296248
.
To make it possible to control emulated GBAs using TAS input again,
I'm adding a proper TAS input window for GBAs, with a real Select button
and no analog controls.
2022-11-21 19:16:30 +01:00
JMC47
22bcf134bf
Merge pull request #11139 from JosJuice/jit64-nans-no-freg
...
Jit64: Don't use fregsIn in HandleNaNs
2022-11-20 13:47:02 -05:00
JosJuice
4b6bad2f9e
Jit64: Use MOV instead of ADD for updating imm Ra
...
The old code would first MOV the old imm into Ra and then do an ADD.
We can skip the ADD and just MOV the new imm.
2022-11-20 10:50:25 +01:00
Admiral H. Curtiss
5d03577189
Memmap: Fix initialization of PhysicalMemoryRegion.
2022-11-18 06:57:54 +01:00
Robin Kertels
f179fd9c33
VideoCommon:VertexLoaderManager: Reduce CPConfig checks
...
A bit of a micro optimization:
CheckCPConfiguration is called 350 times instead of 35k times.
2022-11-18 01:42:30 +01:00
Léo Lam
f1c9774159
Merge pull request #11240 from noahpistilli/es_v1_ticket
...
IOS/ES: Add support for V1Ticket
2022-11-18 00:25:47 +01:00
Sketch
2fd9852ca8
IOS/ES: Add support for V1Ticket
2022-11-17 17:54:06 -05:00
Admiral H. Curtiss
f0b0fcbb95
Netplay: Add more logging to save syncing.
2022-11-16 04:00:43 +01:00
Admiral H. Curtiss
99a918d884
Merge pull request #11280 from Pokechu22/efb-cache-cleanup
...
VideoCommon/FramebufferManager: Further EFB cache cleanup
2022-11-16 02:22:53 +01:00
Admiral H. Curtiss
43e90ca023
Merge pull request #11105 from vpelletier/si_ignore_setGameId
...
SI: Ignore non-standard setGameID command
2022-11-16 02:08:39 +01:00
Pokechu22
1fdf15a1be
VideoCommon/FramebufferManager: Rename m_efb_cache_tiles_wide to m_efb_cache_tile_row_stride
...
This also initializes it in the non-tiled case just for consistency, although it's not actually read in that case.
2022-11-15 16:04:41 -08:00
Pokechu22
55e1c3b51d
VideoCommon/FramebufferManager: use !IsUsingTiledEFBCache() in GetEFBCacheTileRect
...
This is for readability only, and should behave identically.
2022-11-15 15:48:56 -08:00
Pokechu22
90d05fe37e
VideoCommon/FramebufferManager: Always update frame access mask on depth peeks
...
0e02ddcf52
removed separate logic for tiled versus non-tiled EFB peek caches, and as part of that made it so that color peeks updated the frame access mask even when a non-tiled cache is in use. However, the same change was not made for depth peeks. I'm not sure if this affected anything in practice.
2022-11-15 15:34:03 -08:00
JMC47
8a1c28be63
Merge pull request #11172 from K0bin/efb-refresh
...
VideoCommon:FramebufferManager: Mark cache as valid after refresh
2022-11-15 16:33:46 -05:00
Admiral H. Curtiss
d7593dd721
Merge pull request #11243 from Sintendo/arm64mul
...
JitArm64: Optimize multiplication
2022-11-15 04:05:49 +01:00
Admiral H. Curtiss
c9e74801ed
Merge pull request #11269 from vabold/dolphindevice-get-time
...
Add DolphinDevice::GetSystemTime to allow for accurate Unix timestamp generation
2022-11-15 03:48:57 +01:00
Admiral H. Curtiss
6c9b9cbf95
Merge pull request #11255 from JosJuice/disable-sd-convert
...
Disable SD card conversion while emulation is running
2022-11-15 03:44:49 +01:00
Admiral H. Curtiss
09c0321997
Merge pull request #11184 from Lobsterzelda/save-all-nand-files-to-save-state
...
HostFileSystem: Set all NAND folders to be saved in save states
2022-11-15 03:42:26 +01:00
Admiral H. Curtiss
b6503d7585
Merge pull request #11018 from Dentomologist/add_updater_error_messages
...
Add updater error messages
2022-11-15 01:08:55 +01:00
Admiral H. Curtiss
5bdb291d90
Qt/Updater: Remove unused member variable.
2022-11-15 00:56:08 +01:00
Admiral H. Curtiss
f05b0ad669
Merge pull request #11271 from jordan-woyak/mapping-button-expanding
...
DolphinQt: Allow mapping buttons to expand horizontally.
2022-11-15 00:53:02 +01:00
Admiral H. Curtiss
2a81fa6c26
Merge pull request #11015 from TryTwo/Conditional_Breakpoints
...
Conditional breakpoints
2022-11-13 01:06:52 +01:00
vabold
083b8172e0
Replace `std::time` with `std::chrono::system_clock`
2022-11-12 05:36:49 -05:00
vabold
ff1c71cc38
Fix inaccurate function name, add old function
2022-11-12 05:36:49 -05:00
Jordan Woyak
6044bc32a8
DolphinQt: Allow mapping buttons to expand horizontally.
2022-11-11 23:14:03 -06:00
Jordan Woyak
e9af3d945a
DolphinQt: Rename "Keyboard" to "Keyboard Controller" and add warning text.
2022-11-11 22:26:35 -06:00
Jordan Woyak
296959ec58
GCKeyboardEmu: Eliminate unused Options group.
2022-11-11 01:59:09 -06:00
Lobsterzelda
ed54e1905a
HostFileSystem: Set all NAND folders to be saved in save states when a movie is active
2022-11-10 14:02:29 -05:00
TellowKrinkle
37a51f1d09
VideoCommon: Add an option to disable mipmaps
...
Needed by M1 fifoci to work around a minor non-determinism bug
2022-11-07 22:18:56 -06:00
Robin Kertels
3beb22ed7f
VideoBackends:Vulkan: Synchronize presentation
...
Synchronize with the submission thread
if the last present is not done yet.
2022-11-07 02:20:22 +01:00
Admiral H. Curtiss
a98df18947
VideoCommon: Hold ImGui lock while initializing and shutting down ImGui.
2022-11-06 21:48:55 +01:00
Pokechu22
e37aa3ed90
RenderWidget: Fix random crash due to missing ImGui context
...
`ImGui::GetIO` performs an assertion that a context exists, and if one doesn't then things will likely crash. Unfortunately this crash is hard to consistently reproduce.
2022-11-06 21:41:07 +01:00
Admiral H. Curtiss
c931529e7a
Merge pull request #11225 from iwubcode/graphics-mod-textureload-callable
...
VideoCommon: call texture load graphics mod hook when textures are loaded
2022-11-06 18:58:51 +01:00
Admiral H. Curtiss
1348337277
Merge pull request #11246 from tellowkrinkle/PVDMemset
...
VideoCommon: Zero PortableVertexDeclarations on initialization
2022-11-06 18:54:21 +01:00
Admiral H. Curtiss
c75b53c7ed
Merge pull request #11250 from AdmiralCurtiss/memory-widget-menu
...
MemoryWidget: Split Actions into Import and Export.
2022-11-06 18:50:02 +01:00
Admiral H. Curtiss
a36a5c1308
CoreTiming: Pass Core::System to Events.
2022-11-06 17:54:58 +01:00
JosJuice
de93b4dc13
DolphinQt: Disable SD card conversion while emulation is running
2022-11-06 17:48:55 +01:00
Admiral H. Curtiss
db679ab620
Merge pull request #11249 from JosJuice/load-dol-elf-after-mem
...
Boot: Load DOL/ELF after memory setup
2022-11-06 05:40:54 +01:00
Admiral H. Curtiss
e1f5eb3d8d
Merge pull request #11233 from AdmiralCurtiss/netplay-split-save-sync-function
...
NetPlay: Split SyncSaveData() into two parts.
2022-11-06 05:39:26 +01:00
Admiral H. Curtiss
1c63349984
AudioCommon: Pass Core::System to AudioCommon functions.
2022-11-06 02:13:58 +01:00
Admiral H. Curtiss
e9caa09f7b
NetPlay: Split SyncSaveData() into two parts.
...
This allows the 'save collection' part to run even if no clients are connected. Fixes issue 13095.
2022-11-06 01:51:01 +01:00
Admiral H. Curtiss
cf533df814
MemoryWidget: Split Actions into Import and Export.
2022-11-05 23:05:15 +01:00
Admiral H. Curtiss
89bc1649e3
Merge pull request #11111 from TryTwo/PR_MemoryView_TableUpdates
...
MemoryViewWidget refactor memory table
2022-11-05 22:59:44 +01:00
JosJuice
fb916a4c33
Boot: Load DOL/ELF after memory setup
...
I recently talked to a homebrew developer who was trying to add exception
handlers at link time but found out that Dolphin was overwriting their
exception handlers. I figure that's not the usual way to do exception
handlers, but... making us load the executable after setting up memory
rather than before is easy, and matches what we do when booting discs,
so I suppose there's no reason not to do it. It also matches the intent
of why Dolphin is writing default exception handlers – we're writing
them because some homebrew relies on exception handlers being left
around from whatever program was running before it (see 3dd777be70
).
2022-11-05 13:55:17 +01:00
TellowKrinkle
d9ed9ae331
VideoCommon: Zero PortableVertexDeclarations on initialization
...
Fixes an issue where the default initializer wouldn't initialize padding, making for fun non-determinism
2022-11-05 02:02:53 -05:00
Admiral H. Curtiss
431301add3
Merge pull request #10771 from TryTwo/PR_AutoStep
...
Debugger: Implement base code tracing logic. and feature to auto-step through code.
2022-11-04 23:32:54 +01:00
Admiral H. Curtiss
26b68f1f84
Merge pull request #11228 from Pokechu22/statistics-macros
...
VideoCommon/Statistics: Require semicolons after statistics macros
2022-11-04 23:15:52 +01:00
Admiral H. Curtiss
8b4e315fb7
Merge pull request #11242 from Sintendo/arm64cmp
...
JitArm64: Optimize cmp
2022-11-04 23:13:09 +01:00
Robin Kertels
0e02ddcf52
VideoCommon:FramebufferManager: Cleanup
2022-11-04 01:18:23 +01:00
Robin Kertels
371935d61e
VideoCommon:FramebufferManager: Mark cache as valid after refresh
...
Otherwise we might never hit the early return
if either depth or color doesnt have any active
tiles.
2022-11-04 01:18:23 +01:00
TellowKrinkle
83ca1ad8a6
VideoBackends:Metal: Headless render support
2022-11-03 02:35:24 -05:00
Admiral H. Curtiss
1d07332657
Merge pull request #11193 from jordan-woyak/ciface-input-backend-interface
...
ControllerInterface: Add InputBackend interface.
2022-11-03 04:42:05 +01:00
Bram Speeckaert
274e34ddf1
JitArm64: MultiplyImmediate - Handle -(2^n) + 1
...
Let's take advantage of ARM64's input register shifting one last time,
shall we?
Before:
0x1280005b mov w27, #-0x3
0x1b1b7f18 mul w24, w24, w27
After:
0x4b180b18 sub w24, w24, w24, lsl #2
2022-11-02 21:53:19 +01:00
Bram Speeckaert
7073a135c6
JitArm64: MultiplyImmediate - Handle -(2^n)
...
ARM64's flexible shifting of input registers also allows us to calculate
a negative power of two in one instruction; shift the input of a NEG
instruction.
Before:
0x128001f7 mov w23, #-0x10
0x1b1a7efa mul w26, w23, w26
0x93407f58 sxtw x24, w26
After:
0x4b1a13fa neg w26, w26, lsl #4
0x93407f58 sxtw x24, w26
2022-11-02 21:53:19 +01:00
Bram Speeckaert
1c87f040a3
JitArm64: mulli - Only allocate reg when necessary
...
If the destination register doesn't equal the input register, using it
to temporarily hold the immediate value is fair game as it'll be
overwritten with the result of the multiplication anyway. This can
slightly reduce register pressure.
Before:
0x52800659 mov w25, #0x32
0x1b197f5b mul w27, w26, w25
After:
0x5280065b mov w27, #0x32
0x1b1b7f5b mul w27, w26, w27
2022-11-02 21:53:19 +01:00
Bram Speeckaert
20dd5cadab
JitArm64: MultiplyImmediate - Add comments
2022-11-02 21:53:17 +01:00
Bram Speeckaert
c349875cdc
JitArm64: MultiplyImmediate - Handle 2^n + 1
...
By taking advantage of ARM64's ability to shift an input register by any
amount, we can calculate multiplication by a number that is one more
than a power of two with a single instruction.
Before:
0x52800838 mov w24, #0x41
0x1b187f7b mul w27, w27, w24
After:
0x0b1b1b7b add w27, w27, w27, lsl #6
2022-11-02 21:52:44 +01:00
Bram Speeckaert
3aaf1a2b8b
JitArm64: MultiplyImmediate - Handle 2^n
...
Turn multiplications by a power of two into bitshifts.
Before:
0x52800817 mov w23, #0x40
0x1b167ef6 mul w22, w23, w22
After:
0x531a66d6 lsl w22, w22, #6
2022-11-02 21:52:37 +01:00
Markus Wick
0210d115c2
Merge pull request #11227 from JosJuice/jitarm64-mmio-clobber
...
JitArm64: Move MMIO handler result before popping stack
2022-11-02 10:19:22 +01:00
Jordan Woyak
168a49c87f
ControllerInterface: DSU InputBackend implementation.
2022-11-01 21:59:09 -05:00
Jordan Woyak
2e5cd5d519
ControllerInterface: evdev InputBackend implementation.
2022-11-01 21:59:08 -05:00
Jordan Woyak
44a4573303
ControllerInterface: Add InputBackend interface and SDL implementation.
2022-11-01 21:59:08 -05:00
Bram Speeckaert
f25611f388
JitArm64: MultiplyImmediate - Handle 1
...
Multiplication by one is also trivial. Depending on the registers
involved, either a single MOV or no instructions will be generated.
Before:
0x52800038 mov w24, #0x1
0x1b1a7f1b mul w27, w24, w26
After:
0x2a1a03fb mov w27, w26
Before:
0x52800039 mov w25, #0x1
0x1b1a7f3a mul w26, w25, w26
After:
Nothing!
2022-11-01 21:13:45 +01:00
Bram Speeckaert
51cb918aa5
JitArm64: MultiplyImmediate - Handle 0
...
Multiplication by zero always gives zero.
Before:
0x52800019 mov w25, #0x0
0x1b197f5b mul w27, w26, w25
After:
Nothing!
2022-11-01 21:13:38 +01:00
Bram Speeckaert
080513284c
JitArm64: mullwx - Use MultiplyImmediate
2022-11-01 19:05:33 +01:00
Bram Speeckaert
53a8cd1563
JitArm64: mulli - Use MultiplyImmediate
2022-11-01 19:04:50 +01:00
Bram Speeckaert
4aa0c0133a
JitArm64: Introduce MultiplyImmediate
...
Add a new function that will handle all the special cases regarding
multiplication. It does nothing for now, but will be expanded in
follow-up commits.
2022-11-01 19:01:38 +01:00
Bram Speeckaert
d0de68c41b
JitArm64: cmp - Optimize general case
...
We can merge an SXTW with the SUB, eliminating one instruction. In
addition, it is no longer necessary to allocate a temporary register,
reducing register pressure.
Before:
0x93407f59 sxtw x25, w26
0x93407ebb sxtw x27, w21
0xcb1b033b sub x27, x25, x27
After:
0x93407f5b sxtw x27, w26
0xcb35c37b sub x27, x27, w21, sxtw
2022-11-01 12:21:24 +01:00
Bram Speeckaert
ae6ce1df48
Arm64Emitter: Add ArithOption with ExtendSpecifier
...
ARM64 can do perform various types of sign and zero extension on a
register value before using it. The Arm64Emitter already had support for
this, but it was kinda hidden away.
This commit exposes the functionality by making the ExtendSpecifier enum
available everywhere and adding a new ArithOption constructor.
2022-11-01 12:15:56 +01:00
Bram Speeckaert
82f22cdfa1
JitArm64: cmp - Optimize a == -1 case
...
By explicitly handling this, we can avoid materializing -1 in a
register and generate more efficient code by taking advantage of -x ==
~x + 1.
Before:
0x12800015 mov w21, #-0x1
0x93407eb9 sxtw x25, w21
0x93407ef8 sxtw x24, w23
0xcb180338 sub x24, x25, x24
After:
0x2a3703f8 mvn w24, w23
0x93407f18 sxtw x24, w24
2022-11-01 12:00:32 +01:00
Bram Speeckaert
592ba31e22
JitArm64: cmp - Optimize a == 0 case
...
By explicitly handling this, we can avoid materializing zero in a
register and generate more efficient code altogether.
Before:
0x52800016 mov w22, #0x0
0xb94093b5 ldr w21, [x29, #0x90]
0x93407ed7 sxtw x23, w22
0x93407eb9 sxtw x25, w21
0xcb1902f9 sub x25, x23, x25
After:
0xb94093b7 ldr w23, [x29, #0x90]
0x4b1703f9 neg w25, w23
0x93407f39 sxtw x25, w25
2022-11-01 11:52:00 +01:00
Bram Speeckaert
f5e7e70cc5
JitArm64: cmp - Refactor
2022-11-01 11:47:17 +01:00
Bram Speeckaert
dbb8f588c7
JitArm64: cmpl - Optimize a == 0 case
...
By explicitly handling this, we can avoid materializing zero in a
register.
Before:
0x52800019 mov w25, #0x0
0xb94087b6 ldr w22, [x29, #0x84]
0xcb16033b sub x27, x25, x22
After:
0xb94087b9 ldr w25, [x29, #0x84]
0xcb1903fb neg x27, x25
2022-11-01 11:27:45 +01:00
Dentomologist
7cd08fde75
Updater: Add/clarify error messages
2022-10-31 23:36:07 -07:00
Dentomologist
2808db7f2f
FileUtil: Return success bool from CopyDir
2022-10-31 23:33:02 -07:00
shuffle2
111e965c7e
Revert "MacUpdater: test that os version check is working"
2022-10-31 18:53:22 -07:00
Tilka
b182abe0ae
Merge pull request #11234 from shuffle2/updater
...
MacUpdater: test that os version check is working
2022-11-01 01:28:20 +00:00
Tillmann Karras
22eb7e6645
OGL: use already known object label lengths
...
Passing -1 means the driver has to call strlen().
2022-11-01 01:10:03 +00:00
Tillmann Karras
4b8fe959d4
OGL: fix compute shader labels
...
This fixes GL_INVALID_VALUE errors when using GPU texture decoding.
2022-11-01 01:04:46 +00:00
Robin Kertels
f5fecaf964
VideoBackends:Vulkan: Fix 0 size descriptor pools
...
[ VUID-VkDescriptorPoolCreateInfo-maxSets-00301 ] Object 0:
handle = 0x7f1,b8d,3cd,e70, type = VK_OBJECT_TYPE_DEVICE; |
MessageID = 0xa1,70e,236 | vkCreateDescriptorPool():
pCreateInfo->maxSets is not greater than 0.
The Vulkan spec states: maxSets must be greater than 0
2022-10-31 22:41:16 +01:00
Shawn Hoffman
7cc8e37aee
MacUpdater: test that os version check is working
...
Adds a key to Info.plist with default value to test
Updater - this commit is intended to be reverted
2022-10-30 13:19:43 -07:00
JMC47
969309c457
Merge pull request #11220 from shuffle2/macversion
...
MacUpdater: check os version
2022-10-30 15:19:55 -04:00
Shawn Hoffman
089886a6f8
MacUpdater: check os version
2022-10-30 12:04:57 -07:00
JMC47
f277a921a9
Merge pull request #11231 from shuffle2/updater
...
windows: Rename: use std::filesystem::rename for posix behavior
2022-10-30 13:32:10 -04:00
JMC47
950e1f94dc
Merge pull request #11185 from TryTwo/PR_MemoryWidget_Address_Input_History
...
MemoryWidget: Make search address a combobox that holds address history.
2022-10-30 04:21:14 -04:00
TryTwo
053320b7cf
MemoryWidget: Make search address a combobox that holds address history.
...
Always update the combobox when a new target address is sent.
2022-10-29 22:41:30 -07:00
Shawn Hoffman
68875dc06b
MacUpdater: add version info to Updater.app too
2022-10-29 20:32:59 -07:00
Shawn Hoffman
836bc74b2d
windows: Rename: use std::filesystem::rename for posix behavior
2022-10-29 19:57:26 -07:00
Pokechu22
fe559f3ed3
VideoCommon/Statistics: Require semicolons after statistics macros
...
This is clearer and reduces IntelliSense problems.
2022-10-29 15:39:41 -07:00
Admiral H. Curtiss
0628794cb6
Merge pull request #11226 from K0bin/d3d12-fix
...
VideoBackends:D3D12: Fix hang in Twilight Princess
2022-10-30 00:24:16 +02:00
Robin Kertels
a07ee729e5
VideoBackends:D3D12: Defer binding framebuffer in SetAndDiscardFramebuffer
...
BindFramebuffer depends on the pipeline which might not be set yet.
That's why the framebuffer dirty flag exists in the first place.
I assume BindFramebuffer was called directly here, in order to handle
the texture state transitions necessary for DiscardResource.
The state is tracked anyway, so we can just issue those transitions there
too and defer binding the actual framebuffer.
Fixes an issue in Zelda Twilight Princess with EFB depth peeks.
Dolphin would bind a frame buffer which doesn't have an integer format
descriptor for the color target before binding the new pipeline.
So it would accidentally use the 0 descriptor.
Debug layer error:
D3D12 ERROR: ID3D12CommandList::OMSetRenderTargets:
Specified CPU descriptor handle ptr=0x0000000000000000 does not refer to
a location in a descriptor heap. pRenderTargetDescriptors[0] is the issue.
[ EXECUTION ERROR #646 : INVALID_DESCRIPTOR_HANDLE]
2022-10-29 23:41:32 +02:00
Robin Kertels
a6aa651291
VideoBackends:D3D12: Use COMMON as initial state for default heap buffer
...
Fixes the following error in the D3D12 debug layer:
D3D12 WARNING: ID3D12Device::CreateCommittedResource:
Ignoring InitialState D3D12_RESOURCE_STATE_UNORDERED_ACCESS.
Buffers are effectively created in state D3D12_RESOURCE_STATE_COMMON.
[ STATE_CREATION WARNING #1328 : CREATERESOURCE_STATE_IGNORED]
2022-10-29 23:39:32 +02:00
Robin Kertels
22fecb41fc
VideoBackends:D3D12: Don't query GPU descriptor handle for non-shader visible heap
...
Fixes the following error in the D3D12 debug layer:
D3D12 ERROR: ID3D12DescriptorHeap::GetGPUDescriptorHandleForHeapStart:
GetGPUDescriptorHandleForHeapStart is invalid to call on a descriptor
heap that does not have DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE set.
If the heap is not supposed to be shader visible, then
GetCPUDescriptorHandleForHeapStart would be the appropriate method
to call. That call is valid both for shader visible and non shader
visible descriptor heaps.
[ STATE_GETTING ERROR #1315 : DESCRIPTOR_HEAP_NOT_SHADER_VISIBLE]
2022-10-29 23:39:27 +02:00
Tillmann Karras
cacdd18ca0
VolumeVerifier: fix bogus "serial/version missing" error
...
When searching for a disc where the revision doesn't match any disc in
the datfile, the loop would never get to the part where serials_exist is
set to true, leading to a bogus error message.
2022-10-29 21:32:57 +01:00
Pokechu22
6dcf8a6fc9
Merge pull request #11201 from JoshuaMKW/fix-instruction-patches
...
MemoryPatches: Fix instruction patches
2022-10-29 12:34:00 -07:00
JosJuice
431ee1c48a
JitArm64: Improve register handling for MMIO loadstores
...
Because of the previous commit, `regs_in_use` must not include `dest_reg`
when calling MMIOLoadToReg. There are also some other registers we can
skip including in regs_in_use just for efficiency's sake.
The `addr_reg_set = false` statements that I've added in this commit are
technically redundant – if `mmio_address` is non-zero then `addr_reg_set`
is already false – but it's just a coincidence that that's the case.
2022-10-29 14:16:53 +02:00
JosJuice
0660f12da4
JitArm64: Move MMIO handler result before popping stack
...
Otherwise we might throw the result away.
Fixes https://bugs.dolphin-emu.org/issues/13083 .
2022-10-29 14:16:43 +02:00
iwubcode
ea3e133200
VideoCommon: call texture load graphics mod hook when Dolphin loads a texture
2022-10-28 19:24:43 -05:00
iwubcode
0e1ffe009a
VideoBackends: fix d3d12 subresource calculation
2022-10-28 19:07:08 -05:00
Admiral H. Curtiss
8efd7833e5
Merge pull request #11150 from jordan-woyak/all-devices-less-confusing
...
DolphinQt: Make "All Devices" mapping hopefully less confusing.
2022-10-29 00:53:19 +02:00
Admiral H. Curtiss
8001535d12
Merge pull request #11211 from jordan-woyak/fix-focus-resume-after-manual-pause
...
DolphinQt: Fix window focus from unpausing after a manual pause.
2022-10-29 00:35:50 +02:00
JoshuaMK
e2f4400f49
Make SetPatch responsible for overwriting old patches
2022-10-26 22:46:49 -05:00
Pokechu22
2f3805e1b4
GraphicsSettings: Remove unused FreelookControlType enum forward declaration
2022-10-26 16:23:13 -07:00
Jordan Woyak
4fc05dd025
DolphinQt: Fix window focus from unpausing after a manual pause.
2022-10-25 19:39:41 -05:00
Pokechu22
581a575042
VertexLoader: Remove "too many initializer values" workaround functions
...
I originally added these in 2b1d1038a6
, for both the TPipelineFunction and the size. The size was moved into the header in fdcd2b7d00
(making the size functions obsolete), but it seems that the functions themselves are no longer needed now.
I think I didn't use this approach before because it would have required ComponentFormatTable and ComponentCountRow to be templated, which would end up resulting in lines that were too long and thus wrapped in awkward places. (I *think* they didn't get inferred properly.) Now that we only need TPipelineFunction, the templating is not needed, and this ends up being a more readable version of the version with the wrapper functions.
2022-10-25 15:29:09 -07:00
JMC47
027e10460a
Merge pull request #10977 from tellowkrinkle/FixBackendMultithreading
...
VideoBackends:Vulkan: Improve backend multithreading
2022-10-25 04:14:01 -04:00
JMC47
9ef7a3b44c
Merge pull request #11207 from Pokechu22/invalid-normal-count
...
VideoCommon: Treat invalid normal count as NormalTangentBinormal
2022-10-25 03:17:19 -04:00
Pokechu22
574939b683
VideoCommon: Treat invalid normal count as NormalTangentBinormal
...
See https://bugs.dolphin-emu.org/issues/13070 .
2022-10-24 22:36:43 -07:00
TellowKrinkle
fa8134deda
VideoBackends:Metal: Default to presentDrawable when vsync is on
2022-10-24 17:55:30 -05:00
JMC47
b66793194e
Merge pull request #11028 from tellowkrinkle/MetalFixes
...
Various Metal renderer improvements
2022-10-24 15:22:37 -04:00
JMC47
4787b25a7f
Merge pull request #10741 from Pokechu22/audio-dma-one-block-at-a-time
...
DSP: Copy audio dma samples one block at a time
2022-10-24 01:43:22 -04:00
JoshuaMK
2594447c25
Have UnsetPatch only unset the argument address
2022-10-23 18:42:34 -05:00
JoshuaMK
e10b3308c2
Fix patch corruption using find_if instead of remove_if
2022-10-23 18:41:15 -05:00
JMC47
33733ff81c
Merge pull request #11199 from JosJuice/translation-fixes
...
WiimoteEmu: Change Shinkansen Start/Select to START/SELECT
2022-10-23 16:07:11 -04:00
JosJuice
7437d2d9ad
WiimoteEmu: Change Shinkansen Start/Select to START/SELECT
...
For consistency with GameCube controllers and GBAs. I missed this
when reviewing the PR.
Also adding some i18n comments while I'm at it.
2022-10-23 21:50:54 +02:00
JosJuice
063c2739b3
Merge pull request #11135 from AdmiralCurtiss/ppcanalyst-unused-stats
...
PPCAnalyst: Remove unused variables and methods in BlockStats and BlockRegStats.
2022-10-23 21:22:54 +02:00
TryTwo
e2df81b0c1
Add logging and error reporting to Breakpoint Conditionals.
2022-10-23 08:22:35 -07:00
Shawn Hoffman
4705fb7588
Updater: clarify a string
2022-10-23 01:47:02 -07:00
Shawn Hoffman
08c019608d
WinUpdater: fix renaming of Updater
2022-10-23 01:34:04 -07:00
Shawn Hoffman
f952c3dbbe
this is a test commit for WinUpdater
2022-10-23 00:19:46 -07:00
JMC47
34de2b85f3
Merge pull request #11189 from shuffle2/updater-elevation
...
WinUpdater: Defer modifying any files until Updater.exe
2022-10-23 02:20:56 -04:00
JMC47
cdcbe51b2a
Merge pull request #10890 from tellowkrinkle/VertexLineExpand
...
VideoCommon: Add vertex shader point/line expansion
2022-10-23 01:49:26 -04:00
JMC47
06bd0a9086
Merge pull request #11132 from K0bin/vma
...
Vulkan: Use VMA for memory allocations
2022-10-23 01:18:47 -04:00
Robin Kertels
aa1679f2c7
VideoBackends:Vulkan: Clean up unused memory allocation code
2022-10-23 03:21:29 +02:00
Robin Kertels
1ba58e83ca
VideoBackends:Vulkan: Use VMA for stream buffer
2022-10-23 03:21:29 +02:00
Robin Kertels
0e1b7a7b35
VideoBackends:Vulkan: Use VMA for bounding box
2022-10-23 03:21:29 +02:00
Robin Kertels
0532f4a05a
VideoBackends:Vulkan: Use VMA for staging buffers
2022-10-23 03:21:14 +02:00
TellowKrinkle
1e9b6f88e4
VideoCommon: Support hot reloading of VS expand
2022-10-22 20:18:02 -05:00
TellowKrinkle
3912fa7a2e
VideoCommon: Add reasons for disabled VS expand
2022-10-22 20:18:02 -05:00
TellowKrinkle
b567f3afcf
VideoCommon: Move repeated point/line expansion code to ShaderGenCommon
2022-10-22 20:13:24 -05:00
TellowKrinkle
0a42c534c3
VideoCommon: Add configuration to prefer VS for line/point expansion
2022-10-22 20:13:24 -05:00
TellowKrinkle
1eeba6dcca
VideoBackends:D3D12: Add support for vertex shader point and line expansion
2022-10-22 20:13:24 -05:00
TellowKrinkle
9624479933
VideoBackends:OGL: Add support for vertex shader point and line expansion
2022-10-22 20:13:24 -05:00
TellowKrinkle
3a5901d12e
VideoBackends:Vulkan: Add support for vertex shader point and line expansion
2022-10-22 20:13:24 -05:00
TellowKrinkle
678ee48bfc
VideoBackends:Metal: Add support for vertex shader point and line expansion
2022-10-22 20:13:24 -05:00
TellowKrinkle
68f49df0f8
VideoCommon: Add vertex shader point and line expansion
2022-10-22 20:13:24 -05:00
Robin Kertels
3ffbf94b2a
VideoBackends:Vulkan: Set up VMA
...
Co-authored-by: iwubcode <iwubcode@users.noreply.github.com>
2022-10-23 02:54:35 +02:00
TryTwo
6f4f4e057e
MemoryViewWidget refactor memory table.
...
Don't re-create the table on every update.
2022-10-22 17:52:39 -07:00
Pokechu22
bac75de79c
Fifo recorder: Fix incorrect calculation of the size of an array
...
The old calculation was stride * (max_index + 1), which fails if stride is less than the size of a component (for instance, if float XYZ positions are used, and the stride was set to 4 (i.e. sizeof(float)) instead of 12 (i.e. 3 * sizeof(float)), it would be missing the last 8 bytes of the final element in the array. Or, if stride was set to 0, then no bytes would be recorded at all (though that's not a useful configuration so it's unlikely to actually exist).
I'm not aware of any games affected by this issue.
2022-10-22 13:36:16 -07:00
Pokechu22
c9ff2a9b3d
Fifo recorder: Fix NormalIndex3
...
This should fix recording the wall in the staircase leading to the basement in Luigi's Mansion (though I haven't tested it, as I don't own a copy of Luigi's Mansion). This uses NormalIndex3, and the index for the normal vector (generally 0x02XX or 0x01XX) there is always lower than the tangent or binormal (generally 0x07XX). Other games seem to usually have a similar range of indices for the normal, tangent, and binormal, so this issue wouldn't affect them.
2022-10-22 13:36:16 -07:00
Pokechu22
24b761acda
Fifo recorder: Fix position's type being used for normals/colors/texture coords
...
In most cases, games will use the same type for all vertex components (either Index8 or Index16 or Direct). However, RS2's deflection towers use Index16 for the texture coordinate and Index8 for everything else, meaning the texture coordinates were recorded incorrectly (the first byte was used, so only indices 0 and 1 were recorded instead of 0 through 0x0192). Worse still, some background elements in RS2 use direct positions but indexed normals or texture coordinates, and those would not be recorded at all.
This is a regression from b5fd35f951
.
2022-10-22 13:36:16 -07:00
JMC47
804e42150e
Merge pull request #11188 from GaryOderNichts/feature/vwii_ancast
...
Support for loading vWii System Menu
2022-10-22 15:57:55 -04:00
Pokechu22
6de55e416b
WaveFile: Fix size check
...
`count` is the number of stereo samples to write (where each stereo sample is two shorts), while `BUFFER_SIZE` is the size of the buffer in shorts. So `count` needs to be multiplied by `2`, not `BUFFER_SIZE`. Also, when this check was failed, the previous code just clobbered whatever was past the end of the buffer after logging the warning, which corrupted `basename`, eventually resulting in Dolphin crashing.
This affected Datel's Wii-compatible Action Replay, which uses a block size of 2298, or 18384 stereo samples, which is 36768 shorts, which is bigger than the buffer size of 32768. (However, the previous commit means that only one block is transfered at a time, eliminating this issue; fixing the bounds check is just a general safety thing instead of an actual bugfix now.)
2022-10-22 11:44:38 -07:00
Pokechu22
2a83b17ffb
DSP: Copy audio dma samples one block at a time
...
Reverts 9f8e1e2a0d
, but keeps the changes from e4e44909d5
.
This fixes missing audio in Datel titles; see https://bugs.dolphin-emu.org/issues/12281 .
2022-10-22 11:44:38 -07:00
GaryOderNichts
88c57a00a3
Show vWii System Menu version in Menu Bar
2022-10-22 13:36:55 +02:00
GaryOderNichts
82d20ce352
Support for loading Ancast images
2022-10-22 13:35:49 +02:00
JMC47
5b69c67b3a
Merge pull request #11147 from JosJuice/jitarm64-arith-org
...
JitArm64: Merge ps_mulsX, ps_maddXX, and parts of fp_arith
2022-10-22 06:37:27 -04:00
JMC47
b7310a180f
Merge pull request #11170 from JosJuice/jit64-dispatcher-no-check
...
Jit64: Add dispatcher_no_timing_check jump target
2022-10-22 06:19:00 -04:00
JMC47
55d269c9e0
Merge pull request #11190 from jordan-woyak/shinkansen-ui-button-order
...
WiimoteEmu: Shinkansen Tweaks
2022-10-22 05:21:00 -04:00
JosJuice
812067ab7c
JitArm64: Move ps instructions from fp_arith to ps_arith
...
This lets us simplify fp_arith without making ps_arith much more
complicated.
No behavior change.
2022-10-22 11:15:41 +02:00
JosJuice
554a2fd332
JitArm64: Merge ps_mulsX and ps_maddXX
...
They have a lot of shared code, most notably the code for rounding c.
No behavior change.
2022-10-22 11:12:19 +02:00
JMC47
2153276ab9
Merge pull request #10046 from JosJuice/jitarm64-improve-const-stores
...
JitArm64: FIFO optimization improvements
2022-10-22 05:03:43 -04:00
JMC47
bc4d08047d
Merge pull request #10979 from tellowkrinkle/QuartzWindowSpeed
...
InputCommon:QuartzKB&M: Use KVO to watch window position
2022-10-22 04:55:12 -04:00
Markus Wick
7a2256469e
Merge pull request #11127 from JosJuice/aarch64-jitasm-macro-op
...
JitAsm64: Reorder instructions in routines to allow macro-op fusion
2022-10-22 10:31:54 +02:00
Markus Wick
583c2b8a0c
Merge pull request #11181 from JosJuice/jitarm64-25-bit-urshr
...
JitArm64: Reimplement Force25BitPrecision
2022-10-22 10:26:07 +02:00
Markus Wick
5c7b5514ed
Merge pull request #11148 from JosJuice/jitarm64-remove-cdts-inst
...
JitArm64: Remove unnecessary instruction from ConvertDoubleToSingle
2022-10-22 10:10:23 +02:00
JosJuice
4dbf0b8e90
JitArm64: Reimplement Force25BitPrecision
...
The previous implementation of Force25BitPrecision was essentially a
translation of the x86-64 implementation. It worked, but we can make a
more efficient implementation by using an AArch64 instruction I don't
believe x86-64 has an equivalent of: URSHR. The latency is the same as
before, but the instruction count and register count are both reduced.
2022-10-22 10:03:52 +02:00
Jordan Woyak
d9d6428189
WiimoteEmu: Replace shinkansen MixedTriggers with Triggers.
2022-10-22 02:42:40 -05:00
Jordan Woyak
d705b8d4b8
WiimoteEmu: Reorder shinkansen buttons in UI.
2022-10-22 02:37:28 -05:00
Markus Wick
bba38a3642
Merge pull request #11182 from JosJuice/aarch64-emit-shift-imm
...
Arm64Emitter: Combine immh and immb for Emit(Scalar)ShiftImm
2022-10-22 09:23:06 +02:00
Jordan Woyak
5ed0543430
GCAdapter: Process pad state in read thread and other general cleanups.
2022-10-22 00:38:59 -05:00
Shawn Hoffman
2b43f96899
WinUpdater: Defer modifying any files until Updater.exe
...
Fixes https://bugs.dolphin-emu.org/issues/12151
2022-10-21 19:14:00 -07:00
Léo Lam
79e09c3731
Merge pull request #11186 from GaryOderNichts/ios/device_creation
...
IOS::HLE::Kernel::InitIPC: Replace s_ios check with Core::IsRunning
2022-10-21 21:17:58 +02:00
GaryOderNichts
2fb45660b3
IOS::HLE::Kernel::InitIPC: Replace s_ios check with Core::IsRunning
2022-10-21 20:38:02 +02:00
JMC47
00e23da607
Merge pull request #11051 from shuffle2/update-vcredist
...
WinUpdater: Check OS and VC++ Redist versions
2022-10-21 13:55:51 -04:00
JMC47
9222956acd
Merge pull request #10859 from tellowkrinkle/UniformBufferSize
...
VideoCommon: Increase uniform stream buffer size to 64mb
2022-10-20 17:13:31 -04:00
JosJuice
84375a91d9
Arm64Emitter: Combine immh and immb for Emit(Scalar)ShiftImm
...
This simplifies the callers of EmitShiftImm and EmitScalarShiftImm.
2022-10-19 20:20:39 +02:00
JMC47
9aece1810c
Merge pull request #10836 from iwubcode/d3d_uint_fix
...
VideoCommon: fix uint shader compiler error when using d3d
2022-10-18 12:12:08 -04:00
Lobsterzelda
486a523e0d
IOS: Simplify IOS::HLE::Device savestate method
2022-10-17 23:11:04 -04:00
TellowKrinkle
6fd933915b
VideoBackends:Vulkan: Improve backend multithreading
...
Makes the multiple threads actually able to run at the same time
2022-10-17 00:05:35 -05:00
Admiral H. Curtiss
10f973a87f
Merge pull request #11122 from K0bin/descriptor-overhaul
...
VideoBackends:Vulkan: Allocate descriptor pools as needed
2022-10-17 04:25:35 +02:00
Admiral H. Curtiss
9992a198f1
IOS/NetKDRequest: Don't abort on first unset bit in subtask mask.
2022-10-16 20:43:59 +02:00
Admiral H. Curtiss
cbc96adfd2
VFFUtil: Invalidate window on mount.
2022-10-16 18:06:51 +02:00
Admiral H. Curtiss
b1725dfb33
Zero-initialize structures passed to FatFs functions.
2022-10-16 17:12:04 +02:00
Robin Kertels
6992b0d8e1
VideoBackends:Vulkan: Allocate descriptor pools as needed
2022-10-16 17:04:35 +02:00
JosJuice
09f9a58859
Jit64: Add dispatcher_no_timing_check jump target
...
The new `dispatcher_no_timing_check` is the same as `dispatcher_no_check`
except it includes the "stepping check" in debug mode. This lets us avoid
the `m_enable_debugging ? dispatcher : dispatcher_no_check` dance.
2022-10-16 11:22:34 +02:00
Admiral H. Curtiss
c0476fdac3
Merge pull request #11072 from SketchMaster2001/wiiconnect24
...
Add initial WiiConnect24 support
2022-10-16 04:31:28 +02:00
SketchMaster2001
e413d7f5ec
Add initial WiiConnect24 support
2022-10-16 04:19:36 +02:00
Admiral H. Curtiss
fbe782f1a9
Merge pull request #11077 from JosJuice/jitasm-no-breakpoint
...
Jit64: Remove breakpoint check from JitAsm.cpp
2022-10-16 04:02:12 +02:00
JosJuice
351d095fff
JitArm64: Optimize a few tail calls
...
Maybe "tail call" isn't quite the right term for what this code
is doing, since it's jumping to the dispatcher rather than
returning, but it's the same optimization as for a tail call.
2022-10-15 21:45:44 +02:00
JosJuice
2a5f4a2390
Jit64: Don't use fregsIn in HandleNaNs
...
fregsIn will include FD for double-precision instructions, since for
dependency tracking purposes the instruction does read the upper
half of FD. This is not what we want in HandleNaNs.
The consequence of this bug is that if an instruction was supposed to
output a NaN and FD happens to contain a NaN and FD happens to be the
same register as an unused register in the instruction encoding, the
NaN in FD could get used as the output instead of the correct NaN.
This isn't known to affect any games, which isn't especially surprising
considering that there's only one game that needs AccurateNaNs anyway.
2022-10-15 18:11:40 +02:00
Admiral H. Curtiss
cd1f89a02b
Merge pull request #11138 from JosJuice/jit64-quiet-nans
...
Jit64: Turn SNaN into QNaN in HandleNaNs
2022-10-15 18:06:40 +02:00
Admiral H. Curtiss
85f7cf7c1e
Merge pull request #11169 from JosJuice/jit64-speculative-constants-dispatcher
...
Jit64: Jump to dispatcher_no_check from InitializeSpeculativeConstants
2022-10-15 17:46:22 +02:00
JosJuice
ec6a4115eb
Jit64: Jump to dispatcher_no_check from InitializeSpeculativeConstants
...
Jumping to `dispatcher` requires first subtracting the downcount,
otherwise `dispatcher` may unpredictably jump to CoreTiming::Advance,
which could break determinism compatibility with JitArm64. We should
jump to `dispatcher_no_check` instead.
2022-10-15 17:21:38 +02:00
JosJuice
b9aed428e8
Jit64: Remove breakpoint check from JitAsm.cpp
...
The breakpoint check in Jit.cpp makes it redundant.
Normally this redundant check doesn't cause any issues, but if you
create a breakpoint and enable logging without breaking, you get two
log messages if the breakpoint is at the beginning of a block. See
https://bugs.dolphin-emu.org/issues/13044 .
This is also a tiny performance improvement for when debugging is
active, since we no longer check for breakpoints for blocks that never
had any breakpoints to begin with.
2022-10-15 17:06:32 +02:00
JosJuice
dbf5dca11c
JitArm64: FIFO optimization improvements
...
JitArm64 port of 789975e
.
2022-10-15 12:57:18 +02:00
Jordan Woyak
9c1a936ca6
WiimoteEmu: Do send a status report on connection when an extension is already attached.
2022-10-15 03:35:01 -05:00
Lobsterzelda
65c7304bd4
VideoInterface: Simplify VideoInterface savestate code
...
VideoInterface: Simplify savestate code in VideoInterface
2022-10-13 15:21:22 -04:00
Admiral H. Curtiss
e47af664cc
HW: Move MemoryInterface variables to Core::System.
2022-10-13 04:28:17 +02:00
Admiral H. Curtiss
06f74bd7d1
Merge pull request #11152 from jordan-woyak/wm-emu-ir-point-size
...
WiimoteEmu: Improve simulated IR point size accuracy.
2022-10-13 02:18:58 +02:00
Pokechu22
ae7b14887b
Remove varargs support from LOG_VULKAN_ERROR
...
Nothing currently uses it. It could theoretically be replaced with fmt support, but I don't think the LOG_VULKAN_ERROR macro is that useful and it'd be better to replace it with regular logging instead.
2022-10-12 16:50:51 -07:00
Pokechu22
f9fe25291d
Remove most uses of StringFromFormat in favor of fmt
2022-10-12 16:50:47 -07:00
Mai
a5fa95adfd
Merge pull request #11151 from jordan-woyak/quat-fix
...
Fix some bad quaternion math.
2022-10-12 17:35:50 +00:00
Mai
1f8b196d6d
Merge pull request #11158 from jordan-woyak/abs-function
...
Input: Add "abs" input expression function.
2022-10-12 17:35:12 +00:00
Jordan Woyak
f5b9049421
Input: Add "abs" input expression function.
2022-10-11 19:28:21 -05:00
Jordan Woyak
bf53e14abe
WiimoteEmu: Fix gyroscope/quaternion conversion math.
2022-10-11 15:01:33 -05:00
Jordan Woyak
3939b32ed6
WiimoteEmu: Improve simulated IR point size accuracy.
2022-10-11 14:57:04 -05:00
Lioncash
dbfb8408d9
HW: Use unsigned indices in RegisterMMIO where applicable
...
base is an unsigned variable, so we can make things little more
consistent by making the loop index unsigned so we aren't doing bit
arithmetic with signed types.
MemoryInterface already does this, so we can leave it alone.
No behavioral changes, just a consistency thing.
2022-10-11 09:27:34 -04:00
Minty-Meeo
a84633f748
Remove #pragma once in DesiredWiimoteState.cpp
...
That shouldn't be there...
2022-10-11 01:16:56 -05:00
Jordan Woyak
6eb1f8beba
Common/Matrix: Fix Quaternion Norm function.
2022-10-10 21:16:35 -05:00
Admiral H. Curtiss
a056a1366f
Merge pull request #11131 from Pokechu22/cp-state-savestate-mistakes
...
Include tangent/binormal cache in savestates and simplify saving CP state
2022-10-11 03:42:17 +02:00
Pokechu22
ffed23c059
Simplify saving CP state
...
Rather than makring some parts of VertexLoaderManager dirty in some places and some in others, do it all in VideoState. Also, since CPState no longer contains pointers/non-CP data after d039b1bc0d
, we can just use p.Do on it instead of manually saving each field.
2022-10-09 19:32:59 -07:00
Admiral H. Curtiss
333ede5416
Merge pull request #11136 from AdmiralCurtiss/gqr-array
...
Jit64: Convert constantGqr to std::array.
2022-10-10 02:13:30 +02:00
Pokechu22
05f3bbfa4d
Include tangent/binormal cache in savestates
...
This theoretically matters for RS2/RS3, although in practice these games reconfigure it each frame so it shouldn't matter for savestates.
2022-10-09 16:21:49 -07:00
Jordan Woyak
c3ceee8967
DolphinQt: Make "All Devices" mapping hopefully less confusing.
2022-10-09 17:27:25 -05:00
JosJuice
bf492c1ff3
JitArm64: Fix register number typo
...
I think this typo was actually ignored by the code, but nevertheless,
it should be fixed.
2022-10-09 16:46:09 +02:00
JosJuice
04628034bc
JitAsm64: Reorder instructions in routines to allow macro-op fusion
...
Micro-optimization. Some CPUs can fuse CMP+B, TST+B, arith+CBZ, etc.
I also moved things around for CMP+CSET and TST+CSET - which I'm not sure
if any CPUs support - but it doesn't hurt anything, so I might as well.
2022-10-09 16:46:09 +02:00
JosJuice
6e01ab56fa
JitArm64: Remove unnecessary instruction from ConvertDoubleToSingle
...
The upper bits are masked away by the preceding LSR, and the lower bits
are masked away by the following BFXIL.
2022-10-09 14:17:18 +02:00
Admiral H. Curtiss
1647fa350b
Merge pull request #10804 from iwubcode/graphics-mod-input-output-structs
...
VideoCommon: add structures to graphics mods internal API
2022-10-09 13:17:11 +02:00
Admiral H. Curtiss
4c7fcf58b0
Merge pull request #11140 from JosJuice/jit64-inaccurate-single-fprf
...
Jit64: Fix single FPRF when !jo.accurateSinglePrecision
2022-10-09 13:08:53 +02:00
JosJuice
c361f9155b
Jit64: Turn SNaN into QNaN in HandleNaNs
...
Improves accuracy but isn't known to affect any games.
This turned out to be fairly convenient to implement; ORing with the
PPC default NaN will quieten SNaNs and do nothing to QNaNs.
2022-10-09 09:49:52 +02:00
iwubcode
bc360584a3
VideoCommon: add structures to graphics mods to allow for future adding or removing parameters with less code overhead
2022-10-09 00:00:01 -05:00
Admiral H. Curtiss
6cf99195c6
Merge pull request #11142 from JosJuice/jit64-handle-nans-no-output
...
Jit64: Remove HandleNaNs's xmm_out parameter
2022-10-09 04:16:57 +02:00
Admiral H. Curtiss
bfbc04ef5e
ENetUtil: Check return values of ENet functions in SendPacket().
2022-10-09 02:39:38 +02:00
Admiral H. Curtiss
66684a392f
Deduplicate NetPlayServer::Send() and NetPlayClient::Send() into ENetUtil::SendPacket().
2022-10-09 02:25:28 +02:00
Admiral H. Curtiss
da27a3e6bc
Merge pull request #11095 from K0bin/misc-vulkan
...
Remove special treatment for Android in video settings
2022-10-08 22:24:30 +02:00
TryTwo
1ed6028af4
NewBreakpointDialog: Add a help message for conditionals.
2022-10-08 13:23:24 -07:00
Admiral H. Curtiss
1dd30b58f3
Merge pull request #11143 from K0bin/cmd_buffer_cleanup-fix
...
VideoBackends:Vulkan: Fix command buffer cleanup
2022-10-08 22:07:58 +02:00
Robin Kertels
332824f7d5
VideoBackends:Vulkan: Fix command buffer cleanup
2022-10-08 21:40:33 +02:00
JosJuice
4b8a720c9b
Jit64: Remove HandleNaNs's xmm_out parameter
...
All HandleNaNs does with the xmm_out parameter is emit MOVAPD at the end
if xmm_out != xmm. The caller might as well do that themselves.
2022-10-08 19:49:30 +02:00
JosJuice
0b1fdee289
Jit64: Fix single FPRF when !jo.accurateSinglePrecision
...
jo.accurateSinglePrecision is always true, so it's not like this
matters much...
2022-10-08 18:35:46 +02:00
Admiral H. Curtiss
1c2182d069
Merge pull request #11134 from Pokechu22/memmap-remove-io-size
...
Memmap: Remove unused IO size field
2022-10-08 13:59:44 +02:00
Admiral H. Curtiss
e7219f7389
Jit64: Convert constantGqr to std::array.
2022-10-08 13:54:50 +02:00
TellowKrinkle
fd2680d8b4
VideoBackends:Metal: Use a temporary buffer for large texture uploads
2022-10-08 04:46:07 -05:00
TellowKrinkle
a13f09433c
VideoBackends:Metal: Add config option to use presentDrawable
2022-10-08 04:46:07 -05:00
TellowKrinkle
5a1b90c7f3
VideoBackends:Metal: Explicitly disable arc
...
Makes it easier to enable arc elsewhere without breaking the Metal backend
2022-10-08 04:46:07 -05:00
TellowKrinkle
c08de82e90
VideoBackends:Metal: Bring back unified memory config
...
Turns out it was helpful. (Most improvement in ubershaders.) This time with much better auto mode.
2022-10-08 04:46:05 -05:00
TellowKrinkle
93ce7bf344
VideoBackends:Metal: Unroll lighting loop
2022-10-08 04:44:48 -05:00
TellowKrinkle
45ee1be6da
VideoBackends:Metal: Properly set vsync on creation
2022-10-08 04:44:48 -05:00
TellowKrinkle
274d4679ca
VideoBackends:Multiple: More GPUs with broken subgroup ops
2022-10-08 04:44:48 -05:00
Admiral H. Curtiss
1abffc0b05
PPCAnalyst: Remove unused variables in BlockStats.
2022-10-08 03:30:56 +02:00
Admiral H. Curtiss
a5217c07b8
PPCAnalyst: Remove unused variables and methods in BlockRegStats.
2022-10-08 03:26:42 +02:00
Admiral H. Curtiss
6a2ed5758e
JitCache: Erase address from noSpeculativeConstantsAddresses when block is invalidated.
2022-10-08 02:44:36 +02:00
Pokechu22
be65e96991
Memmap: Remove unused IO size field
...
This existed in the initial megacommit (though I don't know why) as IO_SIZE. It was used in Memmap's Init() to compute totalMemSize, but I don't know if it actually did anything then. That use was removed in 2d0f714546
, but the constant persisted until cc858c63b8
, when it became a static variable.
2022-10-07 17:24:51 -07:00
TryTwo
fb79c04cf1
MemoryView auto updateDebugger. Implement base codetrace logic. Add register breakpoints. Add CodeViewWidget autostepping to track a value.Debugger
2022-10-06 22:17:22 -07:00
smurf3tte
85cb4d1bc5
Support memory reads/writes from breakpoint expressions
...
Co-authored-by: TryTwo <taolas@gmail.com>
2022-10-06 21:34:44 -07:00
smurf3tte
1224575b0b
Add cast expression functions u8(), s8(), u16(), etc.
...
This allows for easy reinterpretation of GPRs in an expression.
Co-authored-by: TryTwo <taolas@gmail.com>
2022-10-06 21:34:44 -07:00
smurf3tte
7842f9a715
Debugger: Initial implementation of conditional breakpoints
...
Expression class to store compiled expressions and associated variable list.
Co-authored-by: TryTwo <taolas@gmail.com>
2022-10-06 21:34:44 -07:00
Lobsterzelda
d2db451eba
HW/MemoryInterface: Add data to savestates and initialize on boot.
2022-10-07 01:31:56 +02:00
Admiral H. Curtiss
691135dbc3
HW: Move SerialInterface variables to Core::System.
2022-10-06 22:08:20 +02:00
Pokechu22
4d33f6af7c
GCMemcard: Remove manual std::vector handling in DoState
2022-10-06 11:25:36 -07:00
Pokechu22
e8221d7948
Common/PointerWrap: Remove DoPOD
...
This was added in 385d8e2b15
, but became somewhat redundant with Do in 4c7bbd96e4
, and completely redundant now that std::is_trivially_copyable_v is well-supported.
2022-10-06 11:25:36 -07:00
Mai
7498eb1e6c
Merge pull request #11121 from AdmiralCurtiss/globals-exi
...
HW: Move ExpansionInterface variables to Core::System.
2022-10-06 10:33:22 -04:00
Admiral H. Curtiss
26318e2c51
HW: Move ExpansionInterface variables to Core::System.
2022-10-06 01:19:29 +02:00
Admiral H. Curtiss
de5a98a3fa
Merge pull request #11120 from AdmiralCurtiss/gci-open-fail
...
HW/GCMemcardDirectory: Add error message if opening GCI fails.
2022-10-06 01:09:47 +02:00
Admiral H. Curtiss
662caf91ac
HW/GCMemcardDirectory: Add error message if opening GCI fails.
2022-10-05 19:56:05 +02:00
Admiral H. Curtiss
cf094eb415
Merge pull request #11117 from JosJuice/jitarm64-imm-not-dirty
...
JitArm64: Fix BindToRegister in case Immediate && !set_dirty
2022-10-05 19:31:44 +02:00
JMC47
4b6086b20a
Merge pull request #11098 from K0bin/refresh-efb-cache
...
VideoCommon: Update EFB peek cache on draw done and tokens
2022-10-04 22:40:58 -04:00
Admiral H. Curtiss
eea31db781
Vulkan/CommandBufferManager: Show error code in PanicAlerts.
2022-10-04 19:50:23 +02:00
Admiral H. Curtiss
9c944d5734
HW: Move VideoInterface variables to Core::System.
2022-10-04 02:25:12 +02:00
JosJuice
51ee05cb35
Android: Use input override system for touch controls
...
This is the first step of getting rid of the controller indirection
on Android. (Needing a way for touch controls to provide input
to the emulator core is the reason why the controller indirection
exists to begin with as far as I understand it.)
2022-10-03 22:04:09 +02:00
JosJuice
b296248b49
DolphinQt: Use input override system for TAS input windows
...
This lets the TAS input code use a higher-level interface for
overriding inputs instead of having to fiddle with raw bits.
WiiTASInputWindow in particular was messy with how much
controller code it had to re-implement.
2022-10-03 22:04:09 +02:00
JosJuice
8fd25259ee
ControllerEmu: Round input floats instead of casting, part 2
...
Like 3bc4968
but for Wii Remote extensions. I'm doing this to ensure
that TAS input values will still roundtrip after the next commit.
2022-10-03 22:04:08 +02:00
JosJuice
cb16d20f2d
ControllerEmu: Add new "input override" system
2022-10-03 22:00:21 +02:00
JosJuice
f4f189c51f
JitArm64: Rename BindToRegister parameters for clarity
2022-10-03 21:41:34 +02:00
Admiral H. Curtiss
e137f7f878
WiimoteEmu: Rewrite serialization of DesiredWiimoteState to optimize for network bandwidth.
2022-10-02 23:25:15 +02:00
Admiral H. Curtiss
ae4b89441c
Qt/WiimoteControllersWidget: Disable remote Wiimote configuration during netplay.
2022-10-02 23:25:15 +02:00
Admiral H. Curtiss
a1563f2def
Netplay: Implement batching for Wiimotes.
2022-10-02 23:25:10 +02:00
Admiral H. Curtiss
aade584180
Netplay: Completely rewrite Wiimote syncing logic to be similar to the GameCube controller one.
2022-10-02 23:22:02 +02:00
Admiral H. Curtiss
f8518b2ff6
WiimoteEmu: Add serialization for DesiredWiimoteState.
2022-10-02 23:14:36 +02:00
Admiral H. Curtiss
a2dadbb2f0
Wiimote: Separate the Input system state update from the emulated state update.
2022-10-02 23:14:36 +02:00
Admiral H. Curtiss
bb5943ae77
Wiimote: Separate the Wiimote index in the Input system from the index of the Wiimote in the emulated system.
2022-10-02 23:14:36 +02:00
Admiral H. Curtiss
b67ffb9ab5
WiimoteEmu: Make Reset() deterministic under WantsDeterminism().
2022-10-02 23:14:36 +02:00
Admiral H. Curtiss
466f0b377b
WiimoteEmu: Update extensions from DesiredWiimoteState.
2022-10-02 23:14:35 +02:00
Admiral H. Curtiss
e7543a9e05
WiimoteEmu: Update MotionPlus status from DesiredWiimoteState.
2022-10-02 23:14:35 +02:00
Admiral H. Curtiss
26fd4ea361
WiimoteEmu: Update IR camera status from DesiredWiimoteState.
2022-10-02 23:14:35 +02:00
Admiral H. Curtiss
9669722dfc
WiimoteEmu: Update accelerometer status from DesiredWiimoteState.
2022-10-02 23:14:35 +02:00
Admiral H. Curtiss
a39f82cb1f
WiimoteEmu: Update button status from DesiredWiimoteState.
2022-10-02 23:14:34 +02:00
Admiral H. Curtiss
52424fe327
Qt: Allow opening controller settings during netplay.
2022-10-02 23:14:34 +02:00
Admiral H. Curtiss
bc47a9a31a
Qt/WiimoteControllersWidget: Disable potentially breaking stuff during netplay.
2022-10-02 23:13:26 +02:00
Admiral H. Curtiss
37ae9ab524
Qt/GamecubeControllersWidget: Disable dropdowns during netplay.
2022-10-02 23:10:43 +02:00
JosJuice
42775eed36
JitArm64: Fix BindToRegister in case Immediate && !set_dirty
...
Fixes a Rogue Squadron II regression from 9d73583
.
This set_dirty stuff is pretty tricky to reason about. I thought I
was clever when coming up with set_dirty, but maybe I was too clever
for my own good...
2022-10-02 22:38:00 +02:00
Admiral H. Curtiss
95cace837a
HW: Move DSP variables to Core::System.
2022-10-02 05:13:55 +02:00
Admiral H. Curtiss
c84835c53c
Merge pull request #11114 from JosJuice/jitarm64-divwx-imm
...
JitArm64: Fix divwx BindToRegister condition
2022-10-02 01:10:48 +02:00
Admiral H. Curtiss
6911e1b730
Merge pull request #11113 from DivineWinds/translate_tooltip
...
DolphinQt/HacksWidget: Make backend name in GPU Texture Decoding/Bounding Box tooltip translatable
2022-10-02 00:16:25 +02:00
Admiral H. Curtiss
f3a23db0e0
Core/State: Minor cleanup around the undo load state buffer.
2022-10-02 00:01:01 +02:00
Admiral H. Curtiss
e0d30e371c
Core/State: Rewrite threading behavior when multiple Save requests are happening. Should improve responsiveness when eg. mashing a save state button.
2022-10-02 00:00:29 +02:00
Admiral H. Curtiss
79efd5df1e
Common/WorkQueueThread: Make Shutdown() public, so users can wait for all currently queued tasks to finish when shutting down the thread.
2022-10-01 23:58:52 +02:00
Robin Kertels
4e204a9a1a
VideoCommon: Remove special treatment for Android in video settings
2022-10-01 20:53:02 +02:00
JosJuice
8984777749
JitArm64: Call GetImm before BindToRegister
...
In case the register we're binding is the same as the immediate register,
we should fetch the immediate before calling BindToRegister. The way
the register cache currently works, calling GetImm after BindToRegister
actually does work, but it's better to not rely on it.
2022-10-01 20:44:51 +02:00
JosJuice
8902d2fe3a
JitArm64: Fix divwx BindToRegister condition
...
a is being used both as an immediate and as a register here.
Since it's being used as a register, it must be loaded.
2022-10-01 19:29:41 +02:00
Robin Kertels
779fe13e62
VideoCommon: Update EFB peek cache on draw done and tokens
...
Massively improves performance in Mario Galaxy on Android.
2022-10-01 18:08:38 +02:00
DivineWinds
37892a8611
DolphinQt/HacksWidget: Make backend name in GPU Texture Decoding/Bounding Box tooltip translatable
2022-10-01 12:32:49 +03:00
JMC47
c196c47e81
Merge pull request #11090 from K0bin/submit-rework
...
Vulkan: Raise number of command buffers
2022-09-30 20:15:25 -04:00