Commit Graph

45745 Commits

Author SHA1 Message Date
JosJuice
1cfc3ea7de JitArm64: Add analysis for m_ppc_state LDP/STP
Using LDP/STP when accessing m_ppc_state lets us load/store two
registers at once. We previously opportunistically used STP, but this
new analysis lets us move loads earlier and move stores later to make
use of LDP/STP in more situations. This reduces code size and time spent
on m_ppc_state accesses, possibly with exceptions when under heavy
register pressure.

This commit adds the new bitsets load_pairs and store_pairs to
BlockRegStats, which indicate which registers should be treated as a
pair when loading and storing to m_ppc_state. The commits after this one
will add code that reads these bitsets to determine when to use LDP/STP.

x64 doesn't have instructions that can load/store a pair of registers,
so the new PPCAnalyst code is ifdef'd for AArch64.
2026-06-28 11:00:29 +02:00
JosJuice
8dd76b1ef2 JitArm64: Add comment about the bitwise math for flushing
Just to make the purpose clear.
2026-06-28 11:00:28 +02:00
JosJuice
02bacff51f
Merge pull request #14278 from JosJuice/ppcanalyst-split-read-write
PPCAnalyst: Split "in use" analysis into reads and writes
2026-06-28 10:58:11 +02:00
JosJuice
6d796f7863
Merge pull request #14646 from linkmauve/pi-regs
HW/ProcessorInterface: Add support for all known registers
2026-06-28 10:36:43 +02:00
JosJuice
b8222da6ca
Merge pull request #14650 from JoshuaVandaele/sdl-3.4.8
Externals: Update SDL to release-3.4.8
2026-06-28 10:31:00 +02:00
JosJuice
321f878bb6
Merge pull request #14676 from SuperSamus/jit-dcbx-fixup
JitArm64: Fix uninitialized use of register in dcbx
2026-06-28 10:29:54 +02:00
JosJuice
63121d11fc
Merge pull request #14683 from SuperSamus/idle-loop-nop-fix
PPCAnalyst: In `IsBusyWaitLoop`, ignore `nop`
2026-06-28 10:28:52 +02:00
JosJuice
c23b4f4f3a
Merge pull request #14626 from ChaseParate/approve-xenoblade-chronicles-60-fps-gecko-code
Gecko/RetroAchievements: Approve Xenoblade Chronicles 60 FPS Gecko code
2026-06-28 10:28:15 +02:00
Dentomologist
f6d14906d8
Merge pull request #14679 from mbc07/vs26_glslang_build_fix
Externals/glslang: fix compilation on Visual Studio 2026
2026-06-26 22:09:45 -07:00
Admiral H. Curtiss
d0f9446a8c
Merge pull request #14663 from AdmiralCurtiss/qt6.8.3
Update bundled Windows Qt to 6.8.3
2026-06-26 20:56:43 +02:00
Admiral H. Curtiss
e87225beb2
Update bundled Windows Qt to 6.8.3 2026-06-26 19:22:16 +02:00
Admiral H. Curtiss
14ee972235
Merge pull request #14684 from Sintendo/rm-unused-headers
Remove unused headers
2026-06-26 19:09:39 +02:00
Admiral H. Curtiss
2812200cee
Merge pull request #14695 from JoshuaVandaele/clang-14-check
CMakeLists: Remove redundant clang version check
2026-06-26 19:06:06 +02:00
Link Mauve
82a317124a HW/ProcessorInterface: Add support for all known registers
These changes originate from testing the behaviour of the PI registers
in Linux on my Wii.

I started by testing the masks, writing 0xFFFF_FFFF to the registers on
the Wii, and then got told about their value on a GameCube, and then
figured out most of the registers through a discussion with Extrems.
2026-06-26 01:32:15 +02:00
Dentomologist
baf91d4436
Merge pull request #14591 from TryTwo/Registers_Fix
Debugger: Register Widget bug fix. Block updates when changing types
2026-06-25 13:17:29 -07:00
Dentomologist
54b93b8d4f
Merge pull request #14681 from Tilka/pony_friends
GameSettings: fix pony not showing up in Pony Friends 2
2026-06-25 12:25:45 -07:00
OatmealDome
1ccbcaa04a
Merge branch 'release-prep-2606' 2026-06-25 00:01:35 -04:00
OatmealDome
6094cfcf7b
ScmRevGen: Bump version to 2606 2026-06-24 18:36:03 -04:00
OatmealDome
2f1c14cdc7
Merge pull request #14687 from JoshuaVandaele/realtek-linux-list
RealtekFirmwareLoader: Update list from Linux source
2026-06-24 18:32:43 -04:00
JosJuice
0dd29f2493
Merge pull request #14697 from JoshuaVandaele/llvm-build-fix
TAPServerConnection: Fix builds with LLVM toolchain
2026-06-24 21:28:08 +02:00
Joshua Vandaële
d52afbf83b
TAPServerConnection: Fix builds with LLVM toolchain
On an Alpine system using a full LLVM toolchain, building fails because `fd_set`/`timeval` are undefined.
2026-06-24 20:17:35 +02:00
JosJuice
8230647205
Merge pull request #14696 from JoshuaVandaele/alpine-pagesize-collision
ICCardReader: Fix macro collision
2026-06-23 23:32:09 +02:00
Joshua Vandaële
d170a27cc6
ICCardReader: Fix macro collision
On Alpine Linux, Dolphin fails to build due to PAGE_SIZE being already defined somewhere in the system includes.
2026-06-23 22:48:35 +02:00
Joshua Vandaële
8200d93199
CMakeLists: Remove redundant clang version check
The minimum clang version is currently 15
2026-06-23 22:45:26 +02:00
Tilka
8328469f5e
Merge pull request #14694 from JoshuaVandaele/fmt12.2
fmt: Allow building with version >=12.2.0
2026-06-23 21:13:02 +01:00
Joshua Vandaële
faaea5919a
Add missing includes 2026-06-23 21:09:18 +02:00
Joshua Vandaële
e97b1cd759
fmt: Allow building with version >=12.2.0
This change was causing some issues:

> Made FMT_STRING a no-op when FMT_USE_CONSTEVAL is enabled, since the consteval format-string constructor already provides compile-time validation (#4611, #4612). Thanks @friedkeenan.
2026-06-23 21:09:14 +02:00
Admiral H. Curtiss
32ee8ad7ca
Merge pull request #14693 from JosJuice/redump-info
Use redump.info instead of redump.org
2026-06-23 02:47:44 +02:00
JosJuice
53dad6f230 VolumeVerifier: Remove SystemNotAvailable
We had some code in VolumeVerifier to catch the error message that
Redump.org used to show when trying to access the Wii datfile without
logging in. This restriction was removed from Redump.org around the
start of 2022, and the code has been unnecessary ever since.
2026-06-22 08:36:50 +02:00
JosJuice
47040a1834 Don't send Dolphin version in user agent to Redump
When we added the RetroAchievements integration, we had a discussion
about whether sending version information in the user agent was fine
from a privacy standpoint. We reached the conclusion that it was okay,
but it was conditional on the website having a privacy policy. Neither
incarnation of Redump has that, and Redump also never asked us to send
version information like RetroAchievements did, so let's use a user
agent that just says "Dolphin" when connecting to Redump.
2026-06-22 08:36:44 +02:00
JosJuice
d202fd07d2 Use redump.info instead of redump.org
All the staff of Redump (except the absentee sysadmin) have decided to
start a new version of the website at redump.info. It has every disc
from the old site, it has HTTPS, it isn't buckling under the load of AI
scrapers, and moving forward, all adding and verifying of discs is going
to be happening on the new website only. Let's move over.

I've taken the unusual step of updating the translation files manually.
This is because we're very close to a release and because the change is
simple enough that I feel confident about making the change to languages
I don't speak. (I double checked that the Korean translation doesn't
ever follow "Redump.org" by a particle that has a different form
depending on whether there's a final consonant.)
2026-06-22 08:28:51 +02:00
JosJuice
5f011709b7 Translation resources sync with Transifex 2026-06-21 21:48:44 +02:00
JosJuice
21f12fdc77
Merge pull request #14692 from JosJuice/netplay-memory-safety
NetPlay: Fix memory safety issues
2026-06-21 21:44:22 +02:00
JosJuice
6bdf00ed21
Merge pull request #14691 from JosJuice/bba-memory-safety
EXI/BBA: Fix tx_fifo memory safety issues
2026-06-21 21:43:50 +02:00
JosJuice
79322e77b0
Merge pull request #14668 from JosJuice/state-nand-path-traversal
IOS/FS: Rewrite NAND savestating
2026-06-21 14:56:09 +02:00
Jordan Woyak
a426df4823
Merge pull request #14690 from MaverickAmon02/dtm-use-after-move
State: Fix Use After Move In LoadAsFromCore
2026-06-20 11:40:17 -05:00
JosJuice
5aed26fb11 NetPlay: Fix chunked data buffer overflow
Reported by MrSynAckster.
2026-06-20 15:15:36 +02:00
JosJuice
747e1e0d92 NetPlay: Fix Wii save banner buffer overflow
Reported by MrSynAckster.
2026-06-20 15:15:36 +02:00
JosJuice
95f3f8c6df EXI/BBA: Add null check in CEXIETHERNET::DirectFIFOWrite
Just in case. DMAWrite calls DirectFIFOWrite with the result of a
GetPointerForRange call without first checking if it's null.
2026-06-20 15:15:28 +02:00
JosJuice
31eaf1d67c EXI/BBA: Fix tx_fifo memory safety issues
Reported by MrSynAckster.
2026-06-20 15:15:28 +02:00
Amon Neander
5797b943b2 State: Fix Use After Move In LoadAsFromCore
This use-after-move error inhibits the use of savestates during the Dolphin TAS Movie creation process.
2026-06-19 07:40:59 -07:00
Dentomologist
43210d1430
Merge pull request #14685 from JosJuice/netplayclient-pad-index
NetPlayClient: Check for invalid pad indices
2026-06-17 13:36:11 -07:00
Joshua Vandaële
6dbc4f36df
RealtekFirmwareLoader: Update list from Linux source 2026-06-15 18:47:54 +02:00
Jordan Woyak
144d19433a
Merge pull request #14603 from jordan-woyak/gamesettings-solitaire
GameSettings: Apply settings required for Solitaire and Mahjong WiiWare.
2026-06-14 11:47:50 -05:00
JosJuice
32eaf7961f NetPlayClient: Check for invalid pad indices
Like 29e577d but for the client instead of the server.
2026-06-14 14:47:17 +02:00
JosJuice
107169bfd8
Merge pull request #14677 from doldol22312/netplay-validate-controller-packet-indices
NetPlayServer: Fix remote crash via invalid pad index
2026-06-14 13:51:46 +02:00
Sintendo
ec0c4b72ff Remove unused headers 2026-06-14 11:22:02 +02:00
Martino Fontana
2204a789e4 PPCAnalyst: In IsBusyWaitLoop, ignore nop
Found out when attempting to make a speed hack to help Dolphin detect an idle loop. The inserted `nop` was preventing it from considering it an idle loop.
2026-06-14 01:08:31 +02:00
Tilka
f96a7682d4
Merge pull request #14680 from Tilka/fs_null_fix
DolphinTool: fix crash when listing partition without filesystem
2026-06-13 19:01:57 +01:00
Tillmann Karras
9463c9717f GameSettings: fix pony not showing up in Pony Friends 2
EFB-to-RAM needs to be enabled at the start of grooming.
2026-06-13 18:55:16 +01:00