Skip to content

2609 merge - #20

Merged
WhiteTPoison merged 417 commits into
masterfrom
2609-merge
Oct 5, 2026
Merged

WhiteTPoison merged 417 commits into
masterfrom
2609-merge

Conversation

@WhiteTPoison

Copy link
Copy Markdown
Collaborator

No description provided.

Simonx22 and others added 30 commits July 12, 2026 10:17
Update Android dependencies and build tools to their latest available versions.

Rename the GameCube save magic constant to avoid a collision with the NDK 30 ARM64 signal context header.
…meini

GameINI: Add codes to Sonic Storybook games
When using clang and libstdc++, compiling fails with these errors:

```
FAILED: [code=1] Source/Core/VideoCommon/CMakeFiles/videocommon.dir/PerformanceMetrics.cpp.o
/usr/sbin/ccache /usr/sbin/clang++ -DAUTOUPDATE=1 -DDATA_DIR=\"/usr/local/share/dolphin-emu/\" -DHAS_OPENGL -DHAS_VULKAN -DHAVE_CPPIPC -DHAVE_LIBSYSTEMD -DIMGUI_USER_CONFIG=\"imgui_user_config.h\" -DLZMA_API_STATIC -DOFF -DPUGIXML_NO_EXCEPTIONS -DRC_CLIENT_SUPPORTS_HASH -DSFML_STATIC -DSPNG_STATIC -DTINYGLTF_NOEXCEPTION -DTINYGLTF_NO_EXTERNAL_IMAGE -DTINYGLTF_USE_CPP14 -DUSE_ANALYTICS=1 -DUSE_MEMORYWATCHER=1 -DUSE_PIPES=1 -DUSE_RETRO_ACHIEVEMENTS -DZSTD_MULTITHREAD -D_ARCH_64=1 -D_DEFAULT_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_M_X86_64=1 -D__LIBUSB__ -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -I/dolphin-local/Source/Core -I/dolphin-local/Externals/picojson -I/dolphin-local/build/release/x64/Source/Core -I/dolphin-local/Externals/enet/enet/include -I/dolphin-local/Externals/fmt/fmt/include -I/dolphin-local/Externals/mbedtls/include -I/dolphin-local/Externals/minizip-ng/minizip-ng -I/dolphin-local/Externals/liblzma/api -I/dolphin-local/Externals/zstd/zstd/build/cmake/../../lib -I/dolphin-local/Externals/libiconv/include -I/dolphin-local/build/release/x64/Externals/libiconv/lib -I/dolphin-local/Externals/libiconv/libcharset/include -I/dolphin-local/build/release/x64/Externals/libiconv/libcharset -I/dolphin-local/Externals/SFML/SFML/include -I/dolphin-local/Externals/bzip2/bzip2 -I/dolphin-local/Externals/expr/include -I/dolphin-local/Externals/hidapi/hidapi-src/hidapi -I/dolphin-local/Externals/pugixml/pugixml/src -I/dolphin-local/Externals/glslang/glslang/glslang/.. -I/dolphin-local/build/release/x64/include -I/dolphin-local/Externals/rcheevos -I/dolphin-local/Externals/libspng/libspng/spng -I/dolphin-local/Externals/xxhash/xxHash -I/dolphin-local/Externals/imgui -I/dolphin-local/Externals/imgui/imgui -I/dolphin-local/Externals/implot/implot -I/dolphin-local/Externals/glslang/glslang/SPIRV/.. -I/dolphin-local/Externals/tinygltf -isystem /dolphin-local/Externals/libusb/libusb/libusb -isystem /dolphin-local/Externals/glslang/glslang -isystem /dolphin-local/Externals/glslang/glslang/Public -isystem /dolphin-local/Externals/glslang -Qunused-arguments -fcolor-diagnostics -O3 -DNDEBUG -std=c++23 -msse2 -fdiagnostics-color -fno-strict-aliasing -fno-exceptions -fvisibility-inlines-hidden -fvisibility=hidden -fomit-frame-pointer -Wall -Wtype-limits -Wsign-compare -Wignored-qualifiers -Wuninitialized -Wshadow -Wshadow-field-in-constructor -Winit-self -Wmissing-declarations-Wmissing-variable-declarations -Werror=format -Wno-trigraphs -MD -MT Source/Core/VideoCommon/CMakeFiles/videocommon.dir/PerformanceMetrics.cpp.o -MF Source/Core/VideoCommon/CMakeFiles/videocommon.dir/PerformanceMetrics.cpp.o.d -o Source/Core/VideoCommon/CMakeFiles/videocommon.dir/PerformanceMetrics.cpp.o -c /dolphin-local/Source/Core/VideoCommon/PerformanceMetrics.cpp
In file included from /dolphin-local/Source/Core/VideoCommon/PerformanceMetrics.cpp:4:
/dolphin-local/Source/Core/VideoCommon/PerformanceMetrics.h:69:51: error: no matching constructor for initialization of 'std::atomic<FrameBufferSize>'
   69 |   std::atomic<FrameBufferSize> m_frame_buffer_size{};
      |                                                   ^~
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/16/../../../../include/c++/16/atomic:237:17: note: candidate constructor not viable: constraints not satisfied
  237 |       constexpr atomic() noexcept(is_nothrow_default_constructible_v<_Tp>)
      |                 ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/16/../../../../include/c++/16/atomic:238:11: note: because 'is_default_constructible_v<PerformanceMetrics::FrameBufferSize>' evaluated to false
  238 |         requires is_default_constructible_v<_Tp>
      |                  ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/16/../../../../include/c++/16/atomic:246:7: note: candidate constructor not viable: requires 1 argument, but 0 were provided
  246 |       atomic(const atomic&) = delete;
      |       ^      ~~~~~~~~~~~~~
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/16/../../../../include/c++/16/atomic:252:17: note: candidate constructor not viable: requires single argument '__i', but no arguments were provided
  252 |       constexpr atomic(_Tp __i) noexcept : _M_i(__i)
      |                 ^      ~~~~~~~
1 error generated.
```

This was tested and occurs on both Arch and Alpine Linux.
…ntenthandler-to-kotlin

Android: Convert ContentHandler to Kotlin and fix warnings
…0-dependency-updates

Android: Update dependencies and build tools
GameINI: Add codes to NiGHTS Journey of Dreams
…ash_fix_command_line_output

Windows: Fix command line output not displaying when using Git Bash
Custom composable that switched between compact and medium size app bar depending on a combination of orientation and screen size. (Small app bar when horizontal on small devices, medium app bar otherwise. Medium app bar supports collapse on scroll.
…bstdcpp

PerformanceMetrics: Fix compiling using clang&libstdc++
…-screens

Android: Netplay layout update for landscape navigation
This requirement came up in the review of e013d95. Instead of just
removing the comment like e013d95 did, let's add a more detailed
comment.
…meini

GameINI: Add codes to Sonic Unleashed
m3u: normalize line endings except win32
…_manager_fix_crash_when_removing_pack

ResourcePackManager: Fix crash when removing pack and properly update list
…-cxx-standard

Contributing.md: Update C++20 mentions to C++23
…comment

DiscIO: Add DTK alignment comment in DirectoryBlob
IOS/ES: allow Wii System Transfer and WagonCompat Transfer Tool to pass SetUID check
…m64-cross

Externals/miniupnpc: Disable warnings
…cache

GameSettings: Remove SafeTextureCacheColorSamples from gbihf
fixes: make dolreader validate section addresses and sizes
…ched via elf; fallback to gameid if no match
IOS/ES: Prevent reading TMDs that are too small
…er-on-thread-end

GCAdapter: Deregister callback when scan thread exits
Just copy the gamecube logic and automatically assign players to the first empty slot.

More consistent with GameCube and helps Android hosts where there is no UI for managing controller mappings currently.
…r-balance-board

Android: Route DolphinBar Balance Board to the Balance Board slot
Using dual core during netplay seems sufficiently detrimental that its worth showing this warning message and the option to turn dual core off when starting netplay.
cristian64 and others added 23 commits September 15, 2026 20:53
This is a correction for 0cab173 (part of dolphin-emu#14665), where it was
overlooked that the condition to enable the RAM override was flawed: if
the user had enabled the emulated memory size override in Dolphin, but
the running game did not define a simulated memory size greater than the
retail memory size, the RAM override in IOS was wrongly misconfigured,
causing issues with Wii games.

Test plan:

- Launch Dolphin.
- In the **Settings > Advanced** section, tick the **Enable Emulated
  Memory Size Override** check box, and set the maximum memory size for
  both **MEM1** and **MEM2** (i.e. 64 MiB and 128 MiB respectively).
- Play any Wii game (e.g. _Mario Kart Wii_ (RMCE01)).

**Without** the patch, the emulator will hit an invalid read from
`0x83FEE78C` at `0x8019FE6C`:

<img alt="Invalid read when starting Wii game after having enabled the emulated memory override in Dolphin" title="Invalid read when starting Wii game after having enabled the emulated memory override in Dolphin" src="https://github.com/user-attachments/assets/1777485e-a421-4303-8d3d-dd49f1aaa9bf" />

**With** the patch, the emulator can execute the game as usual.
When TASing, we savestate not just /tmp but also /. The code that was
added in d35fe1b didn't handle recreating / correctly.

This commit fixes the problem by skipping recreating /, which is fine
since it always exists.
When calling CreateDirectory for /wfs, we were passing a UID of 19,
because that is the UID /wfs is supposed to have. However,
CreateDirectory returns AccessDenied if we try to create a directory in
the root using a UID other than 0.

To fix this, let's use UID 0 to create the directory, and then change
the UID and GID afterwards using SetMetadata. This is what the ESCore
constructor does, which is the piece of code that normally creates /wfs.
The only negative result UsesBlock can return is -1, so this change
doesn't affect anything in practice, but makes the intent a little bit
clearer.
IOS/FS: Fix loading savestate while TASing
…ich-presence

Flatpak: Fix Discord rich presence
…ndex

GCMemcardDirectory: Add bounds check for m_save_data
…ice-flags

DSPHLE/Zelda: Add bounds check for m_sync_voice_skip_flags in RenderAudio()
@WhiteTPoison
WhiteTPoison merged commit 386b519 into master Oct 5, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.