Commit Graph

33597 Commits

Author SHA1 Message Date
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
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
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
Tillmann Karras
37a3b0fe6a DolphinTool: fix crash when listing partition without filesystem
We were also passing the wrong partition name.
2026-06-13 17:39:08 +01:00
agalq13
5585aa0474 NetPlay: Stop game when mapped Wii Remote disconnects 2026-06-11 14:31:05 +03:00
agalq13
29e577d966 NetPlay: Validate controller packet indices 2026-06-11 13:20:48 +03:00
JosJuice
d35fe1b78b IOS/FS: Rewrite NAND savestating
This makes us savestate the NAND using the same APIs the guest uses
instead of directly touching the host files. This solves several
problems:

* If the user loaded a malicious savestate, it could use path traversal
  to overwrite arbitrary files on the host file system. (Reported by
  MrSynAckster.)
* Metadata (UID, GID, attribute, modes) wasn't being savestated.
* NAND redirects weren't handled, except for NAND redirects at the root
  of where the savestate was being done. (This only possibly matters if
  TASing a Riivolution patch. The root of the savestate is at /tmp when
  not TASing, and the only case where we do a NAND redirect is inside
  /title if requested by a Riivolution patch.)
2026-06-10 21:21:30 +02:00
Admiral H. Curtiss
29f1bc4d4c
NANDImporter: Abort extraction if a NAND FST entry is visited more than once 2026-06-04 18:48:19 +02:00
Admiral H. Curtiss
aabea5b1e3
Merge pull request #14667 from JosJuice/nand-import-path-traversal
Prevent path traversal in NANDImporter::ProcessEntry
2026-06-04 17:31:33 +02:00
JosJuice
a6278030c2 JitArm64: Fix twx
The conditions were in reverse order (maybe someone was reading the
PowerPC manual and forgot about IBM's bit numbering), and additionally
the two conditions for unsigned comparison were wrong.

Fixes https://bugs.dolphin-emu.org/issues/14054.
2026-05-31 11:49:34 +02:00
JosJuice
2faa9760d3 Prevent path traversal in NANDImporter::ProcessEntry
Reported by MrSynAckster. A specifically crafted NAND dump could use
path traversal to overwrite files on the host file system.

This is also an accuracy fix for importing NAND dumps that contain
file names that Dolphin is supposed to escape. Some games' save files
are affected.
2026-05-30 11:51:14 +02:00
JosJuice
3abadcd507 Rework NANDImporter::GetPath slash handling
GetPath has two special cases where it doesn't add a slash.

The first is for the root entry's special name "/". The next commit will
be neater if we can skip calling GetPath for the root entry, because '/'
is one of the characters that Common::EscapeFileName replaces with an
escape sequence. Let's check for entry number 0 instead.

The second is for parent paths that already end in a slash. There's no
actual need to check for this - double slashes are harmless, and for
comparison, NANDImporter::ExtractCertificates already appends slashes
without checking if there already is one. Let's remove this check.
2026-05-30 11:51:14 +02:00
JosJuice
635fa74b4c Fix uninitialized variable warning in ZeldaAudioRenderer::ApplyReverb
If CopyFromEmuSwapped considers the address to be invalid, nothing will
be written to the passed-in pointer.
2026-05-29 22:09:13 +02:00
Dentomologist
379a1a7109
Merge pull request #14607 from elyashue/internal-resolution-display
VideoCommon: Added option for showcasing internal resolution
2026-05-25 12:17:29 -07:00
Admiral H. Curtiss
afd343ec9c
Reimplement custom cropping by adjusting the source aspect ratio 2026-05-24 20:51:23 +02:00
Admiral H. Curtiss
ba15ddd602
Revert the Presenter logic changes from #14506 2026-05-24 19:47:18 +02:00
Admiral H. Curtiss
d3217f65c3
Merge pull request #14506 from adamscott/crop-that-screen
Add screen crop feature
2026-05-23 20:53:31 +02:00
Admiral H. Curtiss
17b4b8fc07
Address minor nits in new cropping logic 2026-05-23 19:47:28 +02:00
Tillmann Karras
4618e4bb40 IOS/Network: reduce log verbosity of SO_EAGAIN to info level
Otherwise IOCTL_SO_ACCEPT is very noisy until a client connects.
2026-05-15 23:01:27 +01:00
Weston Heard
adcfbda2a3 AudioCommon: Add individual Wiimote audio mixer
Also incremented STATE_VERSION.
2026-05-14 14:50:45 -05:00
Admiral H. Curtiss
34311f5fa2
Merge pull request #14592 from jordan-woyak/memcard-manager-scrolling
DolphinQt/GCMemcardManager: Set ScrollMode::ScrollPerPixel to make scrolling behavior less annoying.
2026-05-11 23:04:22 +02:00
Admiral H. Curtiss
8bf1f8970a
Merge pull request #14613 from JosJuice/wad-tmd-checks
DiscIO: Add extra IsValid checks for VolumeWAD::m_tmd
2026-05-11 22:59:40 +02:00
Dentomologist
d19952cc11
Merge pull request #14634 from JosJuice/jitarm64-msr-dr-bit
JitArm64: Fix DR check in MSRUpdated
2026-05-07 17:21:50 -07:00
JosJuice
f09a736f14
Merge pull request #14645 from Dentomologist/msghandler_use_more_suitable_log_levels
MsgHandler: Use LogLevel matching MsgType for alerts
2026-05-07 11:07:41 +02:00
Dentomologist
8afc696a1e
Merge pull request #14644 from tom-pratt/fix_do_all_players_have_game
DoAllPlayersHaveSameGame returns correct result instead of always true
2026-05-06 15:07:33 -07:00
Dentomologist
cf20cdabd4
Merge pull request #14632 from vladfi1/upstream-pipe-inputs-fix
Unconditionally lock in ControllerInterface::UpdateInput
2026-05-06 13:40:16 -07:00
Vlad Firoiu
20718de37e Unconditionally lock in ControllerInterface::UpdateInput. 2026-05-06 15:57:03 -04:00
Dentomologist
dfda04c4e4 MsgHandler: Use log level matching MsgType for alerts
When calling `ShowMessageAlert` with a given `MsgType`, log the alert
with a `LogLevel` matching the `MsgType` instead of always using
`LogLevel::LERROR`.
2026-05-06 12:44:43 -07:00
Tom Pratt
bedb283d93 DoAllPlayersHaveSameGame returns correct result instead of always true
SendGameStatus() was writing SyncIdentifierComparison as a u32 but the server reads it as a u8 enum, so the server always gets 0 (SameGame). This bug was introduced in commit 66276ac.
2026-05-06 14:06:01 +02:00
Dentomologist
6d5399246e
Merge pull request #14532 from Dentomologist/autoupdatechecker_fix_edge_cases
AutoUpdateChecker: Fix Edge Cases
2026-05-05 16:23:16 -07:00
Jordan Woyak
b0eb643c61
Merge pull request #14642 from SuperSamus/cpp-move-fixup-nocubeb
Fixup #14565 (compilation with `-DENABLE_CUBEB=OFF`)
2026-05-05 11:45:55 -05:00
Martino Fontana
3c06541718 Fixup #14565 (compilation with -DENABLE_CUBEB=OFF) 2026-05-05 13:50:05 +02:00
Dentomologist
34646cb9a9 Replace some [[maybe_unused]] annotations with commented names
Remove the [[maybe_unused]] annotation from various parameters that are
unconditionally unused and comment out their names instead. This makes
it unambiguous that the variables are unused, while making the remaining
[[maybe_unused]] annotations more reliable indicators that those
variables are in fact used in some contexts.

These parameters are mostly in overridden functions where the override
doesn't need that particular variable.
2026-05-03 17:09:59 -07:00
JosJuice
058c7021b8 JitArm64: Fix DR check in MSRUpdated
TBZ takes the index of the bit to test, not a LogicalImm.
2026-05-01 10:23:59 +02:00
Jordan Woyak
1907ffa45d
Merge pull request #14384 from ethanuppal/editdsuservers
Config: Add Edit button to DSU server menu
2026-04-30 20:50:17 -05:00
Ethan Uppal
4e55d2518a
Config: Add Edit button to DSU server menu
Signed-off-by: Ethan Uppal <113849268+ethanuppal@users.noreply.github.com>
2026-04-30 02:23:41 -04:00
spaceage64
3944310308 Add Classic Controller support cheats for Animal Crossing (all regions) 2026-04-29 19:44:31 +02:00
Dentomologist
2b743639d8
Merge pull request #13505 from tygyh/Replace-find-with-contains
Source/Core: Replace `find(x) != npos` with `contains(x)`
2026-04-28 17:50:51 -07:00
Dentomologist
725a726174
Merge pull request #14602 from jordan-woyak/show-file-in-folder
QtUtils: Add ShowFileInFolder function and make GameList right-click menu actions use it.
2026-04-28 17:29:44 -07:00
JMC47
0e8fa3caca
Merge pull request #14601 from jordan-woyak/mkgp-wheel-fix
HW/Triforce/MarioKartGP: Tweak the steering wheel FFB device responses to prevent "Wheel Error" screens.
2026-04-27 16:48:28 -04:00
JMC47
6409c5beb3
Merge pull request #13931 from SuperSamus/pikmin-squared-60fps
GameINI: Add 60 FPS code for Pikmin Squared
2026-04-27 13:09:00 -04:00
Jordan Woyak
5e1185b979 HW/Triforce/MarioKartGP: Tweak the steering wheel FFB device responses to prevent "Wheel Error" screens. 2026-04-27 11:59:12 -05:00