Commit Graph

45874 Commits

Author SHA1 Message Date
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
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
Joshua Vandaële e73bcbd818 MenuBar: Add missing Alt shortcuts in Tools
A few actions were missing from shortcuts in the Tools menu. This allows using e.g. `ALT`+(`T`>`E`>`S`) to open the Skylanders Manager, or `ALT`+(`C`>`C`>`1`) to toggle the first Wii Remote's connection.
2026-06-12 18:39:50 +02: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
JosJuice 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
VampireFlower 7ce4db1c7d [Debugger]: Assemble instructions in the patch instruction dialog 2026-06-07 22:01:07 -04: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
Admiral H. Curtiss 07aeb59321 Merge pull request #14666 from JosJuice/jitarm64-twx
JitArm64: Fix twx
2026-06-04 11:52:53 +02:00
JMC47 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
JMC47 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
Tilka 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
Dentomologist 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
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
JMC47 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. 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
JosJuice 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 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
Tom Pratt 1d1c9696ae lint formatting 2026-05-19 12:03:02 +02:00
Tom Pratt 5b49060a9d Fix NetplayScreen edge to edge
NetplayScreen was not drawing under the bottom nav bar like other screens. In landscape mode half of the screen scrolls and half is fixed, to make this look natural with edge to edge, provide a fade on the bottom of the scrolling side so things look natural when the screens loads and is resting at 0 scroll offset.
2026-05-19 12:03:02 +02:00
Tom Pratt fde035dc0c Replace hardcoded save progress string 2026-05-19 12:03:02 +02:00
Tom Pratt 8d565e0331 Use the dual pane netplay screen layout only if the width is sufficient
To avoid using dual pane layout on very small devices, ensure that the current width available for display is at least medium (600dp).

It also has to be landscape, the dual pane mode looks weird on a tablet in portrait mode since there's not that much content.
2026-05-19 12:03:02 +02:00
Tom Pratt 4d1e749977 WithSession helper function
Handles the repeated boiler plate of using a weak reference to NetplaySession from NetplayUICallbacks
2026-05-19 12:03:02 +02:00
Tom Pratt 06cc09cf09 Pass immutable games list to NetplayUICallbacks
Remove corresponding jni config.

Rename Netplay to NetplaySession in jni config to match new kotlin name.
2026-05-19 12:03:02 +02:00