summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2026-07-31Merge pull request #13452 from ↵Scott Mansell
tygyh/Use-structured-binding-DolphinQt-FifoAnalyzer DolphinQt/FIFO/FifoAnalyzer: Use structured bindings
2026-07-31Merge pull request #14778 from JoshuaVandaele/about-enable-sdlScott Mansell
AboutDialog: Fix compilation with ENABLE_SDL=OFF
2026-07-30Replace functional cast with `static_cast`Dr. Dystopia
2026-07-30Make sure CMAKE_OSX_SYSROOT is setScott Mansell
Otherwise we can get some really weird build issues
2026-07-30Merge pull request #14765 from slick-daddy/opt-6Scott Mansell
InputCommon: return the device list directly in GetAllDevices
2026-07-29Merge pull request #14725 from matheuswillder/NFS-Codes-updateJosJuice
GameINI: Update codes to unlock Black Edition and Collector's Edition in Need for Speed (update to #14581)
2026-07-29AboutDialog: Fix compilation with ENABLE_SDL=OFFJoshua Vandaële
2026-07-29Replace zero constants with `nullptr`Dr. Dystopia
2026-07-29Merge pull request #13502 from ↵Scott Mansell
tygyh/Replace-lazy-implementation-Tools-find-includes-cycles Tools/find-includes-cycles: Replace lazy implementation
2026-07-29Merge pull request #14115 from techflashYT/elf-loader-fixScott Mansell
Core/Boot: Fix ELF load address semantics
2026-07-29Merge pull request #14753 from matellush/flatpak-libevdevScott Mansell
Flatpak: Bump `libevdev` to the latest version
2026-07-29Merge pull request #14770 from JoshuaVandaele/gen-approved-hashScott Mansell
AchievementApprovedHash: Automatically generate hash using CMake
2026-07-29Merge pull request #13543 from tygyh/DiscIO-Use-views-keysScott Mansell
DiscIO: Use views::keys
2026-07-29Merge pull request #14766 from phire/security/dol_readerScott Mansell
DolReader: Fix integer wraparound
2026-07-29Merge pull request #14738 from tygyh/Replace-concatination-with-stdformatScott Mansell
Replace string concatination with `fmt::format`
2026-07-29Merge pull request #14747 from AdmiralCurtiss/dsp-hle-oobScott Mansell
HW/DSPHLE/AXVoice: Check array bounds in ApplyUpdatesForMs()
2026-07-29Merge pull request #14751 from JoshuaVandaele/vendor-flatpak-sdlScott Mansell
Flatpak: Use vendored-in SDL
2026-07-29Merge pull request #14754 from JoshuaVandaele/cmakeupd-sdl-3412Scott Mansell
Externals/SDL: Update to release-3.4.12
2026-07-29Merge pull request #14757 from JoshuaVandaele/cmake-version-checkScott Mansell
CMake: Improve our version checking
2026-07-29Merge pull request #14752 from JoshuaVandaele/about-sdlScott Mansell
AboutDialog: Report the SDL version being used
2026-07-28Replace string concatination with `fmt::format`Dr. Dystopia
2026-07-28GCZ: use 64-bit for m_data_offsetScott Mansell
A malicious GCZ file could probably force this to be negative. Shouldn't cause any issues other than file read failures, but need to fix because it is causing errors on MSVC.
2026-07-28GCZ: validate while loadingScott Mansell
2026-07-28GCZ: Don't trust block_num eitherScott Mansell
SectorReader::ReadChunk does do some validation on it, but it only checks against the original disc size (reported by the GCZ file). It has no idea how many blocks the header claimed the disc had. A maliciously crafted GCZ file could trigger read overflows off the end of the m_block_pointers/m_hashes arrays.
2026-07-28GCZ: Don't trust GetBlockCompressedSizeScott Mansell
It comes unverified from the file, and a maliciously crafted file could trigger not one, but two buffer overflows in the heap.
2026-07-27DolReader: Fix integer wraparoundScott Mansell
A malicious dol could theoretically use integer wraparound to bypass bounds checking and cause DolReader to read past the end of m_bytes. Could result in crashes, wasting large amounts of memory, or even the disclosure of heap memory contents.
2026-07-27AchievementApprovedHash: Automatically generate hash using CMakeJoshua Vandaële
2026-07-27Return m_devices directly in GetAllDevices().slick-daddy
2026-07-26Update codes to unlock Black Edition and Collector's Edition in Need for SpeedMatheus Willder
2026-07-26Merge pull request #14756 from JoshuaVandaele/gcc16-warns-fixJosJuice
Resolve various warnings
2026-07-26IOS/FS: Fix loading savestate when files are openJosJuice
We already had code to close open host files when reading or writing a savestate, but due to d35fe1b we also need to close open guest files when reading a savestate, otherwise DoStateRead fails to delete them. I was considering an alternative solution where instead of copying and clearing m_handles, we just set `handle.opened = false;` for each handle before reading a savestate (but not before writing a savestate). However, this wouldn't solve the problem of DoStateWriteOrMeasure's calls to OpenFile failing due to all handles being open. I'm not aware of any games that have that many handles open, though.
2026-07-25Flatpak: Bump `libevdev` to the latest versionmatellush
2026-07-25Android: Reformat settings search filesSimonx22
2026-07-25Android: Add global settings searchSimonx22
2026-07-25CMake: Enforce minimum stdlib versionsJoshua Vandaële
2026-07-25Socket: Resolve incorrect include warningJoshua Vandaële
This is a musl warning, according to fcntl.h's man page, the include should always be <fcntl.h> anyways
2026-07-25CWDemangler: Resolve missing-declarations warningsJoshua Vandaële
2026-07-25DolphinQt/Config: Resolve sign-compare warningsJoshua Vandaële
2026-07-25FileSystemCommon: Resolve maybe-uninitialized warningJoshua Vandaële
2026-07-25DirectoryBlob: Resolve reorder warningJoshua Vandaële
2026-07-25HSP_DeviceGBPlayer: Resolve shadowed variable warningJoshua Vandaële
2026-07-25AboutDialog: Report the SDL version being usedJoshua Vandaële
2026-07-25CMake: Enforce minimum toolset versionsJoshua Vandaële
2026-07-25CMake: Update compiler version checkingJoshua Vandaële
We now only show the minimum version of the compiler being used to build Dolphin instead of all supported compilers.
2026-07-24Merge pull request #14475 from JoshuaVandaele/cmake-replaces-vsOatmealDome
CMake: Replace the Visual Studio project
2026-07-24Externals/SDL: Update to release-3.4.12Joshua Vandaële
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
2026-07-24windeployqt: Disable uneeded DLLsJoshua Vandaële
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.
2026-07-24CMake: Introduce Presets, replacing SettingsJoshua Vandaële
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.*
2026-07-24CMake: Set VS startup project to dolphin-emuJoshua Vandaële
2026-07-24CMake: Disable install targets on WindowsJoshua Vandaële