JosJuice
388b1e861c
Merge pull request #14230 from Sintendo/file-search
...
Common/FileSearch: Refactor DoFileSearch
2026-01-24 20:42:31 +01:00
JMC47
1ef75021b6
Merge pull request #14216 from iwubcode/gameid_fifo_log
...
Core: add game id to fifo log header
2026-01-24 14:28:23 -05:00
Sintendo
972ec95cb3
Clean includes
2026-01-24 16:50:10 +01:00
Sintendo
f2e1c71803
Common/FileSearch: Refactor DoFileSearch
2026-01-24 16:50:10 +01:00
JosJuice
3221e982d3
Merge pull request #13900 from JosJuice/jit-fma-double-rounding
...
Jit: Implement error-free transformation for single-precision FMA
2026-01-23 21:43:18 +01:00
Dentomologist
009c53ab89
Merge pull request #14146 from jordan-woyak/cached-interp-fix-function-cast-warning
...
CachedInterpreter: Replace reinterpret_cast with std::bit_cast to resolve -Wcast-function-type-mismatch warnings.
2026-01-21 13:29:44 -08:00
iwubcode
9656332356
Core: add game id to fifo logs, this makes it easier to test graphical enhancements which use the game id to load
2026-01-19 16:03:19 -06:00
JosJuice
3b1a4739bc
JitArm64: Special-case fmadds with single-precision inputs
...
If all inputs to an fmadds instruction (including cousins like fmsubs,
fnmadd...) are single-precision, then the result is identical between a
double-precision calculation with an error-free transform (whether the
calculation is fused or not) and a single-precision FMA instruction
(must be fused). So as a performance optimization in JitArm64, if we
were going to use double precision with EFT but the inputs are singles,
instead we'll use a normal single-precision FMA instruction without
anything extra. This lets us skip both the EFT and double-to-single
conversions.
Also renaming `inaccurate_fma` to `nonfused` because it's confusing that
`inaccurate_fma` and `m_accurate_fmadds` have such similar names
despite controlling separate things.
2026-01-18 20:03:54 +01:00
JosJuice
58487f1633
Jit: Implement error-free transformation for single-precision FMA
...
This implements the equivalent of 07443e2d41 in Jit64 and JitArm64.
Aims to fix https://bugs.dolphin-emu.org/issues/13865 .
2026-01-18 20:02:49 +01:00
JosJuice
6ac7ffcdd7
Jit64: Return FixupBranch from HandleNaNs
...
This will be used in the next commit to skip running code that's
unnecessary when the result is NaN.
2026-01-18 20:02:49 +01:00
JosJuice
d5067b6276
Jit64: Replace MOVSD with MOVAPD in software FMA
...
Should be a little faster by avoiding false dependencies. Note that
there is one remaining MOVSD that really needs to be a MOVSD.
2026-01-18 20:02:49 +01:00
JosJuice
caad84c636
JitArm64: Reduce register pressure for inaccurate FMA with accurate NaNs
...
If result_reg is set to a temporary register instead of VD because of
accurate NaNs, there's no need to allocate a secondary temporary
register because of inaccurate FMA.
2026-01-18 20:02:49 +01:00
JMC47
fe668ebc89
Merge pull request #14033 from JosJuice/jitarm64-inaccurate-fma-double
...
JitArm64: Always use double precision for inaccurate FMA
2026-01-18 13:52:06 -05:00
JosJuice
addededecf
JitArm64: Always use double precision for inaccurate FMA
...
When we're emulating single-precision FMA using an FMA instruction,
there's no precision benefit from using a double-precision instruction,
assuming all inputs are single-precision. But when we're emulating
single-precision FMA using separate multiplication and addition
instructions, there is.
This change increases the precision of inaccurate FMA to the same level
as Jit64, which matters since the only reason we have the inaccurate
FMA mode is for sync compatibility with Jit64.
2026-01-18 10:36:00 +01:00
Jordan Woyak
362d359787
ARDecrypt: Code modernization.
2026-01-18 01:22:10 -06:00
iwubcode
373e35ed5b
Merge pull request #14267 from jordan-woyak/std-expected
...
Common: Replace Result with std::expected.
2026-01-17 22:33:15 -06:00
iwubcode
6d40f4e897
Merge pull request #14265 from JoshuaVandaele/std-unreachable
...
c++23: Replace Common::Unreachable with std::unreachable
2026-01-17 22:32:53 -06:00
JMC47
035bcffc63
Merge pull request #14289 from Sintendo/typos
...
Fix various typos and spelling mistakes
2026-01-17 19:10:50 -05:00
JMC47
9e8e644fbf
Merge pull request #14193 from jordan-woyak/budokaiprogressive
...
GameSettings: Dragon Ball Z: Budokai 1 and 2 adjustments.
2026-01-17 18:20:37 -05:00
JMC47
581bef63be
Merge pull request #14250 from jordan-woyak/wmreal-bb-no-pool
...
WiimoteReal: Immediately disconnect balance boards when disabled.
2026-01-17 18:16:04 -05:00
Jordan Woyak
dffc7a650d
Common: Replace Result with C++23's std::expected.
2026-01-17 16:58:45 -06:00
Joshua Vandaële
e822cc3715
c++23: Replace Common::Unreachable with std::unreachable
...
Requires at least GCC 12, Clang 15, MSVC 19.32, or AppleClang 14.0.3.
2026-01-17 23:53:21 +01:00
iwubcode
b556bd99d7
Merge pull request #14268 from JoshuaVandaele/std-tounderlying
...
c++23: Replace Common::ToUnderlying with std::to_underlying
2026-01-17 16:49:57 -06:00
Sintendo
1e0473e44f
Fix various typos and spelling mistakes
2026-01-17 20:11:38 +01:00
JMC47
2aee998a8e
Merge pull request #14199 from JosJuice/jit64-rcoparg-isimm
...
Jit64: Return current value from RCOpArg::IsImm
2026-01-12 13:06:09 -05:00
Jordan Woyak
dc8f2995ef
Merge pull request #14273 from JosJuice/x64-oparg-padding
...
Jit64: Make OpArg and TrampolineInfo smaller
2026-01-11 16:14:50 -06:00
JMC47
823d111922
Merge pull request #14255 from JoshuaVandaele/bsd-fix
...
cpp-ipc: Fix builds on non-FreeBSD BSDs
2026-01-11 16:27:29 -05:00
JMC47
79255f550d
Merge pull request #14275 from JosJuice/hotkey-vector
...
HotkeyManager: Don't allocate heap memory in GetInput
2026-01-11 15:41:03 -05:00
JosJuice
3c771ade4b
HotkeyManager: Don't allocate heap memory in GetInput
...
Profiling Dolphin using Heaptrack, this turns out to be the cause of
more than half of all temporary allocations. Though since it's in a
separate thread, I suppose it wasn't affecting performance very much.
2026-01-11 21:14:34 +01:00
JosJuice
3ea366119f
Jit64: Make TrampolineInfo smaller
...
Combined with the previous commit, this brings the TrampolineInfo struct
down to 48 bytes. This matters, because Jit64 has a big
std::unordered_map where it stores many megabytes of TrampolineInfo
entries.
The key saving comes from shrinking the len member from u32 to u16. It
should be safe to even turn it into a u8, but going that far brings no
additional savings due to how the padding works out.
2026-01-11 19:12:26 +01:00
Joshua Vandaële
55f0715ad4
c++23: Replace Common::ToUnderlying with std::to_underlying
...
Requires at least GCC 11, Clang 13, MSVC 19.30 (VS2022 17.0), or AppleClang 13.1.6 (XCode 13.3).
2026-01-09 23:49:10 +01:00
LillyJadeKatrin
dfba2802ad
Fix RetroAchievements dev search freezes
...
Re-added a line of code from a cancelled PR (that I thought was in
main already) that RetroAchievements uses to properly synchronize
memory reads and writes with the emulator frames. This appears to
fix some pretty major freezing and deadlocks in the RA dev tools.
2026-01-09 08:20:21 -05:00
Joshua Vandaële
2005b0365e
cpp-ipc: Fix builds on non-FreeBSD BSDs
...
cpp-ipc is explicitely only available on Windows, Linux, QNX, and FreeBSD. Trying to build dolphin on any another BSD such as OpenBSD or Haiku currently leads to failure because of this.
2026-01-06 21:46:33 +01:00
Jordan Woyak
cb07f9608c
WiimoteReal/IOWin: Determine the Bluetooth name of HID interfaces to differentiate between Wii Remotes and Balance Boards.
2026-01-03 16:50:39 -06:00
Jordan Woyak
918a419131
WiimoteReal: Immediately disconnect balance boards when disabled rather than placing them in the temporary pool.
2026-01-03 04:59:55 -06:00
Jordan Woyak
17a518ef30
WiimoteReal/IOWin: Fix Real Balance Board connections.
2026-01-02 15:56:32 -06:00
Jordan Woyak
d84dd20991
Merge pull request #14208 from cristian64/broadband_adapter_ipc_freebsd
...
Core/HW: Enable BBA (IPC) in FreeBSD.
2025-12-30 17:59:59 -06:00
Joshua Vandaële
74b1930da4
JitArm64_RegCache: Fix is always true warnings
2025-12-29 11:12:07 +01:00
LillyJadeKatrin
9fae55e098
RetroAchievements - Corrected MEM2 Alignment
...
rcheevos expects Wii MEM2 to be aligned to 0x10000000 in recent updates;
this corrects AchievementManager to do so.
2025-12-28 14:47:27 -05:00
JMC47
4b086b1256
Merge pull request #14223 from jordan-woyak/wmreal-windows-device-enumeration
...
HW/WiimoteReal: Cache the enumerated Wii remote HID interface list between calls to FindWiimoteHIDDevices.
2025-12-23 17:01:44 -05:00
Jordan Woyak
fc4cbf9c6f
HW/WiimoteReal: Cache the enumerated Wii remote HID interface list between calls to FindWiimoteHIDDevices.
2025-12-23 00:16:10 -06:00
JMC47
0a3aac6d85
Merge pull request #14043 from iwubcode/custom_resource
...
VideoCommon: separate the concept of a 'resource' from an 'asset', add Material/Shader loading
2025-12-22 17:08:02 -05:00
JMC47
6d9978519a
Merge pull request #14205 from cscd98/interface-replace
...
mingw: replace usages of Interface as clashes with existing struct
2025-12-22 13:40:41 -05:00
JMC47
561428b80d
Merge pull request #14184 from jordan-woyak/es-setuid-faster
...
IOS/ES: Make the Wii menu "Data Management" "Save Data" screen not nearly as hard to emulate at full speed.
2025-12-22 13:38:55 -05:00
JMC47
f76a2ec004
Merge pull request #14166 from jordan-woyak/immediate-xfb-limit
...
VideoCommon: Add setting to limit immediate swaps to one per VI.
2025-12-22 13:35:52 -05:00
JMC47
8a64bc499f
Merge pull request #14154 from jordan-woyak/result-parameter-order
...
Common/Result: Swap order of template parameters to match C++26's std::expected.
2025-12-22 13:34:11 -05:00
JMC47
ddb35428ce
Merge pull request #14143 from jordan-woyak/set-state-from-cpu
...
Core: Allow CPUManager::SetStepping to be called from the CPU thread to no longer rely on host to exit stepping mode.
2025-12-22 13:31:22 -05:00
JMC47
0e06f5d632
Merge pull request #14114 from jordan-woyak/freelook-config-cleanup
...
Core: Eliminate FreeLookConfig by putting the "active config" within FreeLookCamera.
2025-12-22 13:30:12 -05:00
JMC47
90c2f24bf8
Merge pull request #14095 from jordan-woyak/sigsegv_handler-cleanup
...
MemTools: Clean up SIGSEGV handler.
2025-12-22 13:29:53 -05:00
JMC47
cd99d48859
Merge pull request #14056 from jordan-woyak/cached-blob-reader
...
Core/DiscIO: Add a setting to load games into memory.
2025-12-22 13:29:05 -05:00