Commit Graph
45747 Commits
Author SHA1 Message Date
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
Mateus B. Cassiano bb41867ffe Externals: ensure glslang respects the selected toolset from Visual Studio 2026-06-13 02:39:46 -04: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
JosJuiceandGitHub 1bc93fd16d Merge pull request #14672 from AdmiralCurtiss/recursive-nand
NANDImporter: Abort extraction if a NAND FST entry is visited more than once
2026-06-10 17:38:48 +02:00
Martino Fontana da45cbe8fd JitArm64: Fix uninitialized use of register in dcbx
Also do a little cleanup in the equivalent part of Jit64.
2026-06-08 23:38:05 +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. CurtissandGitHub 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
Admiral H. CurtissandGitHub 07aeb59321 Merge pull request #14666 from JosJuice/jitarm64-twx
JitArm64: Fix twx
2026-06-04 11:52:53 +02:00
JMC47andGitHub 704cf84fe0 Merge pull request #14670 from JosJuice/game-ini-gbi
GameSettings: Add Game Boy Interface
2026-06-03 14:08:21 -04:00
JosJuice e0f091b096 GameSettings: Add Game Boy Interface 2026-06-02 21:37:26 +02:00
JMC47andGitHub 8427b8c0f1 Merge pull request #14657 from SuperSamus/photo-channel-gameini
GameSettings: Add Photo Channel
2026-05-31 15:02:18 -04: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
TilkaandGitHub 9e7d340f22 Merge pull request #14664 from JosJuice/zelda-apply-reverb-uninitialized
Fix uninitialized variable warning in ZeldaAudioRenderer::ApplyReverb
2026-05-29 22:23:00 +01: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
JosJuice f820b22147 Translation resources sync with Transifex 2026-05-27 20:01:23 +02:00
DentomologistandGitHub 9b4534328f Merge pull request #14631 from Simonx22/android/convert-directoryinitialization-to-kotlin
Android: Convert DirectoryInitialization to Kotlin
2026-05-25 12:39:14 -07:00
DentomologistandGitHub 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
JMC47andGitHub 25a6205ffb Merge pull request #14659 from AdmiralCurtiss/crop
Fix aspect ratio cropping option
2026-05-25 13:23:49 -04: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
Martino Fontana 29cf0d8704 GameSettings: Add Photo Channel 2026-05-24 11:36:32 +02:00
JosJuice 85ca4a0784 Translation resources sync with Transifex 2026-05-24 11:24:12 +02:00
Chase Harkcom 915b839598 Approve Xenoblade Chronicles 60 FPS Gecko code 2026-05-23 22:39:42 -04:00
Admiral H. CurtissandGitHub 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
JosJuiceandGitHub 57f1dc97e0 Merge pull request #14655 from tom-pratt/gradle-sync-windows-fix
Fix android gradle sync error on windows
2026-05-21 18:28:10 +02:00
Tom PrattandTom Pratt e8da93d52f Fix android gradle sync error on windows
Workaround for the following error on gradle sync:

 java.nio.file.InvalidPathException: Illegal char <:> at index 68:
  C:\Users\tompr\Development\dolphin\Externals\minizip-ng\minizip-ng\C:\Users\tompr\Development\dolphin\Source\Android\app\.cxx\RelWithDebInfo\3b681gem\arm64-v8a\Externals\zlib-ng\zlib-ng
2026-05-20 12:31:12 +02:00
DentomologistandGitHub 7b69949cec Merge pull request #14581 from matheuswillder/NFS-Gecko-Codes
GameINI: Action Replay/Gecko codes to unlock Most Wanted Black Edition and Carbon Collector's Edition in GameCube/Wii's Need for Speed
2026-05-18 13:59:06 -07:00
Admiral H. CurtissandGitHub 30c7c7e2b7 Merge pull request #14653 from Tilka/net_accept
IOS/Network: reduce log verbosity of SO_EAGAIN to info level
2026-05-18 22:04:29 +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
JMC47andGitHub 604d13e1cc Merge pull request #14448 from TheShrubMaster/main
AudioCommon: Add individual Wiimote audio mixer
2026-05-14 18:36:49 -04:00
Weston HeardandJordan Woyak adcfbda2a3 AudioCommon: Add individual Wiimote audio mixer
Also incremented STATE_VERSION.
2026-05-14 14:50:45 -05:00
DentomologistandGitHub d0d354fbed Merge pull request #14635 from JosJuice/android-panic-log-crash
Android: Move alert message log from Kotlin to C++
2026-05-12 17:14:06 -07:00
JosJuice 0f72b69dc7 PPCAnalyst: Split "in use" analysis into reads and writes
If the last write to a register comes before the last read of it,
we can write the register to ppcState after the last write instead of
after the last read. This will hopefully help spread out m_ppc_state
writes across a code block, improving pipelining. Also, if there's a
conditional branch that's after the last write but before the last read,
instead of needing to emit one m_ppc_state write on each side of the
branch, we now only need to emit one m_ppc_state write.

A note about the changes made to stmw and mfcr: These instructions don't
write to any GPRs or CRs respectively – they only read from them.
With this commit, there are no longer any cases where registers get
written back to m_ppc_state after an instruction that just reads from
them, so we can get rid of all STP logic from these two instructions.
lmw still needs its STP logic, since that one does write to registers.
2026-05-12 14:38:53 +02:00
Joshua Vandaële 9414196958 Externals: Update SDL to release-3.4.8
This jumps us up two releases, both of which only introduce bug fixes. Changes potentially relevant to us are:

[3.4.6](https://github.com/libsdl-org/SDL/tree/release-3.4.6):
- Fixed Xbox controllers being unresponsive on preview release of Windows 11
- Fixed the menu button state on controllers on Apple platforms

[3.4.8](https://github.com/libsdl-org/SDL/tree/release-3.4.8) (hotfix release):
- Fixed a controller related crash on Windows, introduced in 3.4.6
2026-05-12 09:51:15 +02:00
Admiral H. CurtissandGitHub 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. CurtissandGitHub 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
Matheus Willder 9cc177cc79 AR/Gecko codes to unlock Black Edition and Collector's Edition in Need for Speed
It also updates a game's INI file, as per conversation in this PR
2026-05-09 00:09:22 +00:00
JosJuice 4470534dc5 Android: Move alert message log from Kotlin to C++
For some reason, NativeLibrary.kt calling Log for the alert message text
makes Dolphin die with a JNI error. Supposedly the jstring passed to the
logging function is invalid. I don't understand why, because the dialog
that we show right afterwards is able to read the string just fine. The
error happens even if I pass the string directly to Log without
prepending any extra text.

There's no real downside to having the logging in C++ instead of Kotlin,
so let's move it to C++ to avoid the JNI error.
2026-05-08 10:56:51 +02:00
DentomologistandGitHub 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
DentomologistandGitHub 30a20d75d2 Merge pull request #14629 from Simonx22/android/convert-tvutil-to-kotlin
Android: Convert TvUtil to Kotlin
2026-05-07 13:23:48 -07:00
JosJuiceandGitHub 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
DentomologistandGitHub 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
DentomologistandGitHub 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