Skip to content

Commit 05fdbf2

Browse files
Merge tag '2512' into upstream-merge-2512
Release for December 2025
2 parents 9af1bb5 + 2614969 commit 05fdbf2

1,662 files changed

Lines changed: 402096 additions & 591729 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.editorconfig

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,9 @@ insert_final_newline = false
2525
indent_size = 4
2626
indent_style = space
2727
insert_final_newline = true
28+
29+
[*.{kt,kts}]
30+
indent_style = space
31+
indent_size = 4
32+
insert_final_newline = true
33+
max_line_length = 100

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,5 @@ CMakeLists.txt.user
5353
Externals/SlippiRustExtensions/target/
5454
AppDir/
5555
*.AppImage
56+
.cache
5657
# end slippi change

.gitmodules

Lines changed: 51 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,26 @@
11
[submodule "Externals/Qt"]
22
path = Externals/Qt
33
url = https://github.com/dolphin-emu/ext-win-qt.git
4-
branch = master
54
shallow = true
65
[submodule "Externals/mGBA/mgba"]
76
path = Externals/mGBA/mgba
87
url = https://github.com/mgba-emu/mgba.git
9-
branch = master
108
shallow = true
119
[submodule "Externals/FFmpeg-bin"]
1210
path = Externals/FFmpeg-bin
1311
url = https://github.com/dolphin-emu/ext-win-ffmpeg.git
14-
branch = master
1512
shallow = true
1613
[submodule "libusb"]
1714
path = Externals/libusb/libusb
1815
url = https://github.com/libusb/libusb.git
19-
branch = master
2016
shallow = true
2117
[submodule "Externals/spirv_cross/SPIRV-Cross"]
2218
path = Externals/spirv_cross/SPIRV-Cross
2319
url = https://github.com/KhronosGroup/SPIRV-Cross.git
24-
branch = main
2520
shallow = true
2621
[submodule "SDL"]
2722
path = Externals/SDL/SDL
2823
url = https://github.com/libsdl-org/SDL.git
29-
branch = SDL2
3024
shallow = true
3125
[submodule "Externals/zlib-ng/zlib-ng"]
3226
path = Externals/zlib-ng/zlib-ng
@@ -35,22 +29,23 @@
3529
[submodule "Externals/libspng/libspng"]
3630
path = Externals/libspng/libspng
3731
url = https://github.com/randy408/libspng.git
38-
branch = v0.7.2
3932
shallow = true
4033
[submodule "Externals/VulkanMemoryAllocator"]
4134
path = Externals/VulkanMemoryAllocator
4235
url = https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git
36+
shallow = true
4337
[submodule "Externals/cubeb/cubeb"]
4438
path = Externals/cubeb/cubeb
4539
url = https://github.com/mozilla/cubeb.git
46-
branch = master
4740
shallow = true
4841
[submodule "Externals/implot/implot"]
4942
path = Externals/implot/implot
5043
url = https://github.com/epezent/implot.git
44+
shallow = true
5145
[submodule "Externals/gtest"]
5246
path = Externals/gtest
5347
url = https://github.com/google/googletest.git
48+
shallow = true
5449
[submodule "Externals/corrosion"]
5550
path = Externals/corrosion
5651
url = https://github.com/corrosion-rs/corrosion.git
@@ -60,39 +55,84 @@
6055
[submodule "Externals/rcheevos/rcheevos"]
6156
path = Externals/rcheevos/rcheevos
6257
url = https://github.com/RetroAchievements/rcheevos.git
58+
shallow = true
6359
[submodule "Externals/libadrenotools"]
6460
path = Externals/libadrenotools
6561
url = https://github.com/bylaws/libadrenotools.git
62+
shallow = true
6663
[submodule "Externals/curl/curl"]
6764
path = Externals/curl/curl
6865
url = https://github.com/curl/curl.git
66+
shallow = true
6967
[submodule "Externals/fmt/fmt"]
7068
path = Externals/fmt/fmt
7169
url = https://github.com/fmtlib/fmt.git
70+
shallow = true
7271
[submodule "Externals/lz4/lz4"]
7372
path = Externals/lz4/lz4
74-
url = https://github.com/lz4/lz4
73+
url = https://github.com/lz4/lz4.git
74+
shallow = true
7575
[submodule "Externals/xxhash/xxHash"]
7676
path = Externals/xxhash/xxHash
7777
url = https://github.com/Cyan4973/xxHash.git
78+
shallow = true
7879
[submodule "Externals/enet/enet"]
7980
path = Externals/enet/enet
8081
url = https://github.com/lsalzman/enet.git
82+
shallow = true
8183
[submodule "hidapi-src"]
8284
path = Externals/hidapi/hidapi-src
83-
url = https://github.com/libusb/hidapi
85+
url = https://github.com/libusb/hidapi.git
86+
shallow = true
8487
[submodule "Externals/tinygltf/tinygltf"]
8588
path = Externals/tinygltf/tinygltf
8689
url = https://github.com/syoyo/tinygltf.git
90+
shallow = true
8791
[submodule "Externals/minizip-ng/minizip-ng"]
8892
path = Externals/minizip-ng/minizip-ng
89-
url = https://github.com/zlib-ng/minizip-ng
93+
url = https://github.com/zlib-ng/minizip-ng.git
94+
shallow = true
9095
[submodule "Externals/Vulkan-Headers"]
9196
path = Externals/Vulkan-Headers
9297
url = https://github.com/KhronosGroup/Vulkan-Headers.git
98+
shallow = true
99+
[submodule "Externals/watcher/watcher"]
100+
path = Externals/watcher/watcher
101+
url = https://github.com/e-dant/watcher.git
102+
shallow = true
93103
[submodule "Externals/SFML/SFML"]
94104
path = Externals/SFML/SFML
95105
url = https://github.com/SFML/SFML.git
106+
shallow = true
96107
[submodule "Externals/zstd/zstd"]
97108
path = Externals/zstd/zstd
98109
url = https://github.com/facebook/zstd.git
110+
shallow = true
111+
[submodule "Externals/miniupnpc/miniupnp"]
112+
path = Externals/miniupnpc/miniupnp
113+
url = https://github.com/miniupnp/miniupnp.git
114+
shallow = true
115+
[submodule "Externals/glslang/glslang"]
116+
path = Externals/glslang/glslang
117+
url = https://github.com/KhronosGroup/glslang.git
118+
shallow = true
119+
[submodule "Externals/pugixml/pugixml"]
120+
path = Externals/pugixml/pugixml
121+
url = https://github.com/zeux/pugixml.git
122+
shallow = true
123+
[submodule "Externals/cpp-ipc/cpp-ipc"]
124+
path = Externals/cpp-ipc/cpp-ipc
125+
url = https://github.com/mutouyun/cpp-ipc.git
126+
shallow = true
127+
[submodule "Externals/cpp-optparse/cpp-optparse"]
128+
path = Externals/cpp-optparse/cpp-optparse
129+
url = https://github.com/weisslj/cpp-optparse.git
130+
shallow = true
131+
[submodule "Externals/bzip2/bzip2"]
132+
path = Externals/bzip2/bzip2
133+
url = https://gitlab.com/bzip2/bzip2.git
134+
shallow = true
135+
[submodule "Externals/imgui/imgui"]
136+
path = Externals/imgui/imgui
137+
url = https://github.com/ocornut/imgui.git
138+
shallow = true

AndroidSetup.md

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,29 @@ If you'd like to contribute to the Android project, but do not currently have a
66

77
* [Android Studio](https://developer.android.com/studio/)
88

9-
If you downloaded Android Studio, install it with the default options and open the project located in `dolphin/Source/Android`
9+
Install Android Studio with the default options if you do not already have it.
1010

1111
## Setting Up Android Studio
1212

13-
1. Wait for background tasks to complete on the bottom of the window.
14-
2. Launch the Android SDK Manager by clicking on its icon in Android Studio's main toolbar:
15-
![Android Studio Package Icon][package-icon]
16-
3. Install or update the SDK Platform. Choose the API level as defined in the app module's [build.gradle](Source/Android/app/build.gradle#L7) file.
17-
4. Install a CMake version as defined in the app module's [build.gradle](Source/Android/app/build.gradle#L99) file. The option won't appear until you select `Show Package Details`.
18-
5. Select `Build Variants` on the left side of the window to choose the build variant and ABI you would like to compile for the `:app` module.
19-
6. Select the green hammer icon in the main toolbar to build and create the apk in `Source/Android/app/build/outputs/apk`
13+
1. Open the `Source/Android` project in Android Studio, let any background tasks finish, and Android Studio will automatically download the required SDK components and tooling.
14+
2. Use the hammer icon or **Build > Assemble 'app' Run Configuration** to compile the `:app` module, then choose **Build > Generate App Bundles or APKs > Generate APKs** to produce the APK in `Source/Android/app/build/outputs/apk`.
15+
16+
## Import the Dolphin code style
17+
18+
The project maintains a custom IntelliJ/Android Studio style file to keep Java and Kotlin formatting consistent.
19+
20+
* Go to **File > Settings > Editor > Code Style** (or **Android Studio > Settings > Editor > Code Style** on macOS).
21+
* Click the gear icon and choose **Import Scheme**.
22+
* Select `Source/Android/code-style-java.xml` from the repository.
23+
* Ensure that Dolphin-Java is selected.
24+
25+
## Format code before opening a pull request
26+
27+
Before committing or submitting a pull request, reformat any Java or Kotlin files you modified:
28+
29+
* Use **Code > Reformat Code** (or press `Ctrl+Alt+L`/`⌥⌘L` on macOS) with the Dolphin code style selected.
30+
* Re-run formatting after edits to keep spacing, imports, and wrapping consistent with the rest of the project.
2031

2132
## Compiling from the Command-Line
2233

2334
For command-line users, any task may be executed with `cd Source/Android` followed by `gradlew <task-name>`. In particular, `gradlew assemble` builds debug and release versions of the application (which are placed in `Source/Android/app/build/outputs/apk`).
24-
25-
[package-icon]: https://i.imgur.com/hgmMlsM.png
26-
[code-style]: https://i.imgur.com/3b3UBhb.png

CMake/DolphinLibraryTools.cmake

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,42 @@ function(dolphin_find_optional_system_library library bundled_path)
5454
dolphin_optional_system_library(use_system ${library})
5555
string(TOUPPER ${library} upperlib)
5656
if(use_system)
57-
find_package(${library} ${ARGN})
57+
# Try a list of versions
58+
# Will be obsoleted if cmake ever fixes https://gitlab.kitware.com/cmake/cmake/-/issues/26477
59+
if("DOLPHIN_TRY_VERSIONS" IN_LIST ARGN)
60+
list(FIND ARGN DOLPHIN_TRY_VERSIONS versions_idx)
61+
list(REMOVE_AT ARGN ${versions_idx})
62+
# Extract list of version-like elements from ARGN into version_list
63+
set(version_list)
64+
while(TRUE)
65+
list(LENGTH ARGN len)
66+
if(len EQUAL versions_idx)
67+
break()
68+
endif()
69+
LIST(GET ARGN ${versions_idx} ver)
70+
if(ver MATCHES "^[0-9]+(\\.[0-9]+)*$")
71+
list(APPEND version_list "${ver}")
72+
list(REMOVE_AT ARGN ${versions_idx})
73+
else()
74+
break()
75+
endif()
76+
endwhile()
77+
# Quietly check all the listed versions
78+
foreach(version IN LISTS version_list)
79+
find_package(${library} ${version} ${ARGN} QUIET)
80+
if(${library}_FOUND)
81+
break()
82+
endif()
83+
endforeach()
84+
# If none were found, find_package one version loudly so the user sees
85+
if(NOT ${library}_FOUND)
86+
list(GET version_list 0 first_version)
87+
find_package(${library} ${first_version} ${ARGN})
88+
endif()
89+
else()
90+
find_package(${library} ${ARGN})
91+
endif()
92+
5893
# Yay for cmake packages being inconsistent
5994
if(DEFINED ${library}_FOUND)
6095
set(prefix ${library})

CMake/FindOProfile.cmake

Lines changed: 0 additions & 31 deletions
This file was deleted.

CMake/ScmRevGen.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ endif()
3333
string(TIMESTAMP DOLPHIN_WC_BUILD_DATE "%Y-%m-%d" UTC)
3434

3535
# version number
36-
set(DOLPHIN_VERSION_MAJOR "2506")
36+
set(DOLPHIN_VERSION_MAJOR "2512")
3737
set(DOLPHIN_VERSION_MINOR "0")
3838
set(DOLPHIN_VERSION_PATCH ${DOLPHIN_WC_REVISION})
3939

0 commit comments

Comments
 (0)