| Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
We now only show the minimum version of the compiler being used to build Dolphin instead of all supported compilers.
|
|
CMake: Replace the Visual Studio project
|
|
We are updating from 3.4.8
Changes relevant to us include:
3.4.10:
- Added controller sensor support for GameInput v3
- Fixed Ipega controllers being ignored in keyboard mode
- Added support for GameCube rumble when the adapter is in PC mode and has the latest firmware
- Fixed rumble on the new Steam Controller
- Added support for the GameSir Super Nova in Xbox 360 mode
- Added support for the PDP Afterglow Wave Wireless Controller for Switch
3.4.12:
- Added hotplug detection support when using libusb for HIDAPI controllers
- Fixed flipped Xbox 360 controller axes on macOS
It's not in the changelogs, but 3.4.10 is the revision which allowed for my Steam Controller's gyro to properly work in Dolphin
|
|
Since our bump to Qt, dxcompiler.dll and dxil.dll have been added alongside other Qt dlls as part of QtGui. Those DLLs are not needed since we use QtWidgets and not QML.
|
|
This introduces a CMakePresets file for both Unix-likes and Windows that replace the old CMakeSettings.
It adds presets for **Debug** and **Release** profiles for both **x64** and **ARM64** architectures, as well as **Generic builds**.
Presets can be used using[ Visual Studio's built-in CMakePresets support](https://learn.microsoft.com/en-us/cpp/build/cmake-presets-vs?view=msvc-170), or [Visual Studio Code's CMake Tools](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools) extension.
They can also be used from the command line, like so:
- x64/Unix-like/Ninja:
- Configure: `cmake --preset ninja-release-x64`
- Build: `cmake --build --preset ninja-build-release-x64`
- Configure + Build: `cmake --workflow --preset ninja-release-x64`
- ARM64/Windows/Visual Studio:
- Configure: `cmake --preset visualstudio-release-arm64`
- Build: `cmake --build --preset visualstudio-build-release-arm64`
- Configure + Build: `cmake --workflow --preset visualstudio-release-arm64`
The Ninja generator is available to both Windows and Unix-likes, while the Visual Studio Generator is only available on Windows.
**Cross-compiling**
On **Windows**, the Visual Studio generator automatically takes care of everything, you just need to select an ARM64 preset.
On **Unix-likes**, to cross-compile you need to install a cross-compiler and (optionally) a sysroot of the target system.
Here is an example to compile from x64 to ARM64 with a sysroot:
- `cmake --preset ninja-release-arm64 -DCMAKE_C_COMPILER=aarch64-linux-gnu-gcc -DCMAKE_CXX_COMPILER=aarch64-linux-gnu-g++ -DCMAKE_SYSROOT=/opt/sysroots/aarch64-linux-gnu`
- `cmake --build --preset ninja-build-release-arm64`
You will need a sysroot to link against Qt, since we do not vendor it in on platforms other than Windows.
**User presets**
A `CMakeUserPresets.json` file may be created locally at the root of the project to further customize your presets.
For example, here are the user presets I used to test this PR on Arch Linux with a generic Arch Linux ARM sysroot:
```json
{
"version": 10,
"configurePresets": [
{
"name": "gcc-debug-arm64",
"inherits": "ninja-debug-arm64",
"cacheVariables": {
"CMAKE_C_COMPILER": "aarch64-linux-gnu-gcc",
"CMAKE_CXX_COMPILER": "aarch64-linux-gnu-g++",
"CMAKE_EXE_LINKER_FLAGS": "-L/opt/sysroots/ArchLinuxARM/lib",
"CMAKE_SYSROOT": "/opt/sysroots/ArchLinuxARM"
}
},
{
"name": "clang-debug-arm64",
"inherits": "ninja-debug-arm64",
"cacheVariables": {
"CMAKE_C_COMPILER": "clang",
"CMAKE_CXX_COMPILER": "clang++",
"CMAKE_C_FLAGS": "-target aarch64-linux-gnu",
"CMAKE_CXX_FLAGS": "-target aarch64-linux-gnu",
"CMAKE_SYSROOT": "/opt/sysroots/ArchLinuxARM"
}
},
{
"name": "clang-debug-x64",
"inherits": "ninja-debug-x64",
"cacheVariables": {
"CMAKE_C_COMPILER": "clang",
"CMAKE_CXX_COMPILER": "clang++"
}
}
],
"buildPresets": [
{
"name": "gcc-build-debug-arm64",
"configurePreset": "gcc-debug-arm64"
},
{
"name": "clang-build-debug-arm64",
"configurePreset": "clang-debug-arm64"
},
{
"name": "clang-build-debug-x64",
"configurePreset": "clang-debug-x64"
}
],
"workflowPresets": [
{
"name": "gcc-debug-arm64",
"steps": [
{ "type": "configure", "name": "gcc-debug-arm64" },
{ "type": "build", "name": "gcc-build-debug-arm64" }
]
},
{
"name": "clang-debug-arm64",
"steps": [
{ "type": "configure", "name": "clang-debug-arm64" },
{ "type": "build", "name": "clang-build-debug-arm64" }
]
},
{
"name": "clang-debug-x64",
"steps": [
{ "type": "configure", "name": "clang-debug-x64" },
{ "type": "build", "name": "clang-build-debug-x64" }
]
}
]
}
```
They are then used like so:
Configure + Build with GCC: `cmake --workflow --preset gcc-debug-arm64`
Configure + Build with Clang: `cmake --workflow --preset clang-debug-arm64`
Configure + Build with Clang (x64): `cmake --workflow --preset clang-debug-x64`
*Addendum: It should also now be possible to cross-compile from Windows to Unix-likes, and Unix-like to other Unix-like (e.g. Linux -> FreeBSD), however this is untested.*
|
|
|
|
|
|
Generic builds have never been supported on Windows.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Flatpak: Update runtime to `6.11`
|
|
|
|
BuildMacOSUniversalBinary: Add flag to enable CCache
|
|
UICommon: Replace `find != std::npos` with `contains`
|
|
|
|
|
|
|
|
Fixes https://github.com/dolphin-emu/dolphin/security/advisories/GHSA-4q28-hhjv-hf3f
|
|
Loading custom textures using combination of elf/dol game ids and iso game ids.
|
|
Core/Boot: validate standalone ELF input ranges
|
|
IOS/NetIPTopDevice: Zero-initialize sockaddr structs
|
|
Log each rejected ELF header, range, and symbol reference. This
provides actionable diagnostics for malformed files without changing the
validation behavior.
|
|
ElfReader trusted table offsets and counts from standalone ELF files.
Malformed input could make it read and write past the loaded file buffer.
Validate the ELF header, table ranges, segment data, section data, and
string-table references before accessing them. Invalid files use the
existing executable boot failure path.
|
|
Fixes https://github.com/dolphin-emu/dolphin/security/advisories/GHSA-5fqv-9qrg-gm4j
|
|
NetPlay: bound LZO decompression output
|
|
NetPlay save synchronization decoded remote LZO blocks with the unsafe
decoder and no output capacity. A malicious host could overflow a client
buffer with a block larger than its declared size.
Use the bounds-checking decoder, validate the declared output length, and
grow buffer results only after each checked block has been decoded.
|
|
GameFile: Disallow mods from being converted
|
|
|
|
Android: Route DolphinBar Balance Board to the Balance Board slot
|
|
GCAdapter: Deregister callback when scan thread exits
|
|
IOS/ES: Prevent reading TMDs that are too small
|
|
via elf; fallback to gameid if no match
|
|
|
|
CCache: Set as opt-in by default
|
|
PPCSymbolDB: Avoid double lookups
|
|
fixes: make dolreader validate section addresses and sizes
|
|
GameSettings: Remove SafeTextureCacheColorSamples from gbihf
|
|
Externals/miniupnpc: Disable warnings
|
|
IOS/ES: allow Wii System Transfer and WagonCompat Transfer Tool to pass SetUID check
|
|
DiscIO: Add DTK alignment comment in DirectoryBlob
|
|
Contributing.md: Update C++20 mentions to C++23
|