summaryrefslogtreecommitdiff
path: root/Source/Core/Common
AgeCommit message (Collapse)Author
2025-08-30Merge pull request #13912 from jordan-woyak/simplify-saturating-castTilka
MathUtil: Simplify SaturatingCast implementation and fix edge case.
2025-08-28Merge pull request #13825 from jordan-woyak/dont-count-playtime-while-suspendedJMC47
Common/Timer: Add a SteadyAwakeClock class to make play time tracking ignore time while suspended.
2025-08-27MathUtil: Simplify SaturatingCast implementation with ↵Jordan Woyak
std::cmp_less/cmp_greater and fix a floating point edge case. Thanks to Dentomologist for catching the edge case.
2025-08-17FloatUtils: Replace quieting SNaNs via `0.0 + x` with MakeQuietOatmealDome
2025-08-17FloatUtils: Move MakeQuiet function here from Interpreter_FPUtilsOatmealDome
2025-08-10Merge pull request #13846 from JoshuaVandaele/better-xcbTilka
Qt: Better wayland detection to enforce xcb
2025-08-04Merge pull request #13791 from jordan-woyak/realtek-firmware-loaderJMC47
BTReal: Implement Realtek firmware loading.
2025-08-04Qt: Better wayland detection to enforce xcbJoshua Vandaële
In certain cases, the platform can be "wayland-egl", "wayland-xcomposite", and other values for which I haven't found a full list yet. Instead of matching only "wayland", we now look for "wayland" anywhere in the `QT_QPA_PLATFORM` string in a case-insensitive manner. Acknowledgements: `CaseInsensitiveContains`' implementation was heavily inspired by GNU's non-standard glibc `strcasestr` function, which can be found here licensed under GPLv2 or later: https://ftp.gnu.org/gnu/libc/
2025-08-01Merge pull request #13794 from Sintendo/doouble-lookupAdmiral H. Curtiss
Avoid map/set double lookups
2025-07-27PPCSymbolDB: Don't return non-const pointersJosJuice
For thread safety, we shouldn't return any pointers or references that can be used to mutate the state of the PPCSymbolDB. This should be the final part of making PPCSymbolDB thread safe unless I've missed something.
2025-07-27PPCSymbolDB: Add missing lockingJosJuice
9395238 added locking in some PPCSymbolDB functions that access member variables, but far from all. To ensure thread safety, this commit adds the missing locking.
2025-07-27PPCSymbolDB: Reduce lock contention in LoadMap/LoadMapOnBootJosJuice
By building the map in a local variable and then swapping it with the member variable, we avoid the need to hold a lock while building the map.
2025-07-24Common/Timer: Add a SteadyAwakeClock class which counts non-suspended system ↵Jordan Woyak
running time.
2025-07-23BTReal: Implement Realtek Bluetooth firmware loading.Jordan Woyak
Logic and structures are largely taken from Linux source: drivers/bluetooth/btusb.c drivers/bluetooth/btrtl.c drivers/bluetooth/btrtl.h
2025-07-23Common: Move AsU8Span utility function from BTReal to Common/BitUtils.Jordan Woyak
2025-07-19Common: Move GetDeviceProperty() into its own headerAdmiral H. Curtiss
Otherwise we include Windows headers in the entire codebase through CommonFuncs.h
2025-07-16Merge pull request #13792 from Tilka/wii_bannersJMC47
WiiSaveBanner: fall back to $userdir/Load/WiiBanners
2025-07-14IOFile: Require trivially copyable typesDentomologist
Require ReadArray and WriteArray to be called with a trivially copyable type. ReadArray and WriteArray call std::fread and std::fwrite respectively. These functions trigger undefined behavior when the objects are not trivially copyable, so this adds that requirement to the callers.
2025-07-12Fix various warningsJoshua Vandaële
2025-07-08Avoid map/set double lookupsSintendo
Fix some common anti-patterns with these data structures. - You can dereference the iterator returned by `find` to access the underlying value directly, without an extra `operator[]`/`at`. - Rather than checking for an element before insertion/deletion, you can just do the operation and if needed check the return value to determine if the insertion/deletion succeeded.
2025-07-07Merge pull request #13726 from hoogmin/cpp23_ranges_patchJordan Woyak
Common: Replace Contains and ContainsSubrange with C++23 std::ranges equivalents
2025-07-04WiiSaveBanner: fall back to $userdir/Load/WiiBannersTillmann Karras
Unlike custom banners which work as an override, this mechanism works as a fallback. The use case is if you have games you don't really play but want to keep around for testing purposes without filling up your NAND with lots of saves. For ease of use, the directory structure is the same but only title/$title_hi/$title_lo/data/banner.bin files are relevant.
2025-06-25PPCSymbolDB: Move loading map on boot logic from boot.cpp into PPCSymbolDB, ↵TryTwo
as it will be needing a mutex. Cleanup loading code and reduce amount of signals. On boot. allow previously loaded map to be kept, if its filename matches. Useful for restarting a game with a large symbol map.
2025-06-22Merge pull request #13691 from TryTwo/PR_NotesJMC47
Debugger Add note-type symbols .
2025-06-19Debugger symbols: Add new symbol type: Notes.. Notes are for naming single ↵TryTwo
instructions, or small groups of instructions. Notes are separate from function symbols, and can be searched separately. Unlike functions, notes of different length can overlap each other. In the instruction window, a note will always display over the function symbol.
2025-06-15Merge pull request #13744 from JoshuaVandaele/windows-specific-getdevicenameJordan Woyak
Host: Implement a Windows-only implementation of `GetDeviceNameFromVIDPID`
2025-06-14Source: Remove redundant lambda parameter listsDr. Dystopia
2025-06-13Host: Implement a Windows-only implementation of `GetDeviceNameFromVIDPID`Joshua Vandaële
2025-06-08Merge pull request #13727 from JoshuaVandaele/fmt-11.2.0-localtime-deprecTilka
fmt: Replace deprecated `fmt::localtime` usage with `Common::LocalTime`
2025-06-07Merge pull request #13522 from ↵Jordan Woyak
tygyh/Enforce-overriding-destructor-style-Core&UnitTests Core & UnitTests: Make overriding explicit and remove redundant virtual specifiers on overriding destructors
2025-06-06Common: Add class 'FilesystemWatcher' that is used to watch paths and ↵iwubcode
receive callbacks about filesystem level events for anything under that path
2025-06-05Common: Replace Contains and ContainsSubrange with C++23 std::ranges equivalentsJavier Martinez
Common: Use feature macros for better compatibility Common/Contains.h: fix linting issue Common/Contains.h: Add C++23 TODO Common/Contains.h: Fix comment lint issue.
2025-06-04Merge pull request #13379 from JoshuaVandaele/system-ngJMC47
Use minizip-ng in non-compatibility mode
2025-06-04fmt: Replace deprecated `fmt::localtime` usage with `Common::LocalTime`Joshua Vandaële
2025-05-30Config: Make s_callbacks_lock recursive to fix hardcore mode deadlock.Jordan Woyak
2025-05-25Merge pull request #13647 from jordan-woyak/sha1-avoid-memcpyJosJuice
Crypto/SHA1: Re-add memcpy avoiding optimization to BlockContext::Update.
2025-05-22minizip-ng: Stop using compatibility modeJoshua Vandaële
2025-05-20WorkQueueThread: Fix Cancel() race with internal command queue.Jordan Woyak
2025-05-09Crypto/SHA1: Re-add memcpy avoiding optimization to BlockContext::Update.Jordan Woyak
2025-05-09Merge pull request #13641 from jordan-woyak/sha1-fixJMC47
Crypto/SHA1: Fix past-the-last-element std::array access and modernize code.
2025-05-09Merge pull request #13586 from Tilka/spr_disasmJMC47
GekkoDisassembler: standardize SPR names and add missing ones
2025-05-08Crypto/SHA1: Fix past-the-last-element std::array access and modernize code.Jordan Woyak
2025-05-04Merge pull request #13608 from jordan-woyak/async-work-threadAdmiral H. Curtiss
Common: Add AsyncWorkThread.
2025-05-04Merge pull request #13482 from jordan-woyak/string-util-conceptsAdmiral H. Curtiss
StringUtil: Use concepts instead of enable_if.
2025-05-04Merge pull request #13602 from jordan-woyak/move-only-functionAdmiral H. Curtiss
Common: Add MoveOnlyFunction.
2025-05-03Common and VideoCommon: Change texture data from std::vector to ↵Jordan Woyak
Common::UniqueBuffer.
2025-05-02LogManager: Stop using manual memory managementJosJuice
This fixes a memory leak that would occur when the Android frontend calls LogManager::Init more than once in order to reload settings. Note that the log window listener is now owned by LogManager instead of by the frontend, making it consistent with the other log listeners.
2025-05-02Merge pull request #13596 from JosJuice/config-callback-lockingJosJuice
Config: Add locking for config changed callbacks
2025-05-01Common: Add AsyncWorkThread.Jordan Woyak
2025-05-01StringUtil: Use concepts instead of enable_if.Jordan Woyak