summaryrefslogtreecommitdiff
path: root/Source
AgeCommit message (Collapse)Author
2025-01-19MemoryViewWidget: Add OnFrameEnd callback to auto-update memory while a game ↵TryTwo
is running.
2025-01-08MemoryViewWidget: Refactor updates using a dispatch function. Isolate memory ↵TryTwo
reads from table updates. Preparations for auto update while a game is running.
2025-01-07MemoryViewWidget: Refactor. Remove OnItemChanged signal and QSignalBlocker - ↵TryTwo
replace with a signal that is only sent at the correct time.
2025-01-07Merge pull request #13162 from jordan-woyak/non-blocking-input-detectionOatmealDome
DolphinQt/InputCommon: Make input mapping and output testing non-blocking.
2025-01-06Merge pull request #13257 from CasualPokePlayer/dtm_country_codeJosJuice
Add SYSCONF country code to DTM
2025-01-06Merge pull request #13251 from Sintendo/carry-optsJosJuice
JitArm64_Integer: Carry flag optimizations
2025-01-06Merge pull request #13149 from Sintendo/dcbx-msubJosJuice
JitArm64_LoadStore: Small dcbx optimization
2025-01-06Merge pull request #13210 from OatmealDome/fix-scmrevgenOatmealDome
ScmRevGen: Don't generate Info.plist files directly
2025-01-04Merge pull request #13233 from TryTwo/PR_CodecJMC47
AdvancedWidget: Replace FFV1 codec with Ut Video
2025-01-03Merge pull request #12801 from JosJuice/jitarm64-crxxx-optJMC47
JitArm64: Optimize crXXX
2025-01-01DolphinQt: Make input mapping and output testing non-blocking.Jordan Woyak
2025-01-01InputCommon: Move input mapping function into a class for non-blocking usage.Jordan Woyak
2025-01-01Simplify `std::search` with `Common::ContainsSubrange`mitaclaw
2025-01-01Simplify `std::find_if` with `Common::Contains`mitaclaw
2025-01-01Simplify `std::find` with `Common::Contains`mitaclaw
In NandPaths.cpp, the `std::initializer_list<char>` of illegal characters has been turned into a `char[]` (similar to the one in GameList.cpp). The reverse iteration in ResourcePack.cpp seemed to provide no benefits, and doing without it it seemed to have no ill effects.
2025-01-01Common: Create "Contains.h" Algorithm Headermitaclaw
The new `Common::Contains` and `Common::ContainsSubrange` function objects mirror C++23's `std::ranges::contains` and `std::ranges::contains_subrange`, respectively.
2024-12-31Merge pull request #13237 from AdmiralCurtiss/slider-mappingsAdmiral H. Curtiss
DolphinQt/HacksWidget: Convert accuracy slider to ConfigSlider
2024-12-31Merge pull request #13235 from Gamer64ytb/vsync-fixAdmiral H. Curtiss
Android: Fix VSync option not working
2024-12-30Frame Dumping: Change lossless codec from FFV1 to Ut Video.TryTwo
Ut Video is faster and more compatible with editing programs, but produces larger files.
2024-12-30Add SYSCONF country code to DTMCasualPokePlayer
Recently there was some issues in TASVideos trying to sync a Donkey Kong Country Returns TAS. It eventually was synced by directly using the config from the TAS author. The exact setting which caused the desync was narrowed down to being in SYSCONF, with the country code. The TAS author lives in the US, so the country code matched the US country code, while the person attempting to sync the TAS did not live in the US. Adding SYSCONF country code to the DTM should avoid this being an issue for future Dolphin versions.
2024-12-29JitArm64_Integer: addzex - Optimize InHostCarry case for 0Sintendo
Before: 0x5280000d mov w13, #0x0 ; =0 0x1a1f01ae adc w14, w13, wzr After: 0x1a9f37ee cset w14, hs
2024-12-28JitArm64_Integer: addzex - Optimize InPPCState case for 0Sintendo
Before: 0x52800019 mov w25, #0x0 ; =0 0x394bd3b8 ldrb w24, [x29, #0x2f4] 0x2b180339 adds w25, w25, w24 After: 0x394bd3b9 ldrb w25, [x29, #0x2f4]
2024-12-28JitArm64_Integer: addzex - Optimize ConstantFalse and ConstantTrueSintendo
When the input register and carry flags are known, we can always precompute the result. We still materialize the immediate when the condition register needs to be updated, but this seems to be a general problem. I might look into that one day, but for now this'll do. - ConstantFalse Before: 0x52800119 mov w25, #0x8 ; =8 0x2a1903fa mov w26, w25 After: N/A - ConstantTrue Before: 0x52800119 mov w25, #0x8 ; =8 0x1100073a add w26, w25, #0x1 After: N/A
2024-12-28JitArm64_Integer: addex - Optimize InHostCarry for -1Sintendo
Same thing we did for subfex. Before: 0x1280001a mov w26, #-0x1 ; =-1 0x1a1f035a adc w26, w26, wzr After: 0x5a9f23fa csetm w26, lo
2024-12-28JitArm64_Integer: addex - Optimize InHostCarry for 0Sintendo
Similar to what we did for subfex, but for 0. Before: 0x5280001b mov w27, #0x0 ; =0 0x1a1f037b adc w27, w27, wzr After: 0x1a9f37fb cset w27, hs
2024-12-28JitArm64_Integer: addex - Optimize InPPCState case for 0Sintendo
Same optimization we did for subfex. Skip loading the carry flag into a temporary register first when we're dealing with zero. Before: 0x394bd3b8 ldrb w24, [x29, #0x2f4] 0x2a1803f9 mov w25, w24 After: 0x394bd3b9 ldrb w25, [x29, #0x2f4]
2024-12-28JitArm64_Integer: subfzex - Constant foldingSintendo
When both the input register and the carry flag are constants, the result can be precomputed. Before: 0x52800016 mov w22, #0x0 ; =0 0x2a3603f6 mvn w22, w22 After:
2024-12-28JitArm64_Integer: subfex - Optimize InHostCarry case for -1Sintendo
The result is either -1 or 0 depending on the state of the carry flag. This can be done with a csetm instruction. Before: 0x1280001a mov w26, #-0x1 ; =-1 0x1a1f035a adc w26, w26, wzr After: 0x5a9f23fa csetm w26, lo
2024-12-28JitArm64_Integer: subfex - Optimize InPPCState case for 0Sintendo
When the immediate is zero, we can load the carry flag from memory directly to the destination register. Before: 0x394bd3b8 ldrb w24, [x29, #0x2f4] 0x2a1803f9 mov w25, w24 After: 0x394bd3b9 ldrb w25, [x29, #0x2f4]
2024-12-28JitArm64_Integer: Refactor subfexSintendo
2024-12-28JitBase: Improve const-correctnessSintendo
2024-12-28JitBase: Add HasConstantCarry helperSintendo
2024-12-27Merge pull request #13243 from nlebeck/stringutil-testsTilka
Add some unit test coverage of the `SplitPath` function
2024-12-27DolphinQt/HacksWidget: Convert accuracy slider to ConfigSliderAdmiral H. Curtiss
2024-12-27DolphinQt: Add option for value mappings to ConfigSliderAdmiral H. Curtiss
2024-12-26Merge pull request #13116 from mitaclaw/ranges-modernization-8-trivial-ofJMC47
Ranges Algorithms Modernization - Of
2024-12-26Add some unit test coverage of the SplitPath functionNiel Lebeck
2024-12-24Android: Fix VSync option not workingGamer64
It happened due to a typo from SECTION_GFX_HARDWARE
2024-12-23Qt crash fix. Don't store Config::Info variable as a reference.TryTwo
2024-12-22Merge pull request #13211 from Sintendo/blendvpdJMC47
Jit_FloatingPoint: fselx - Prefer BLENDVPD over VBLENDVPD
2024-12-22Merge pull request #13212 from JosJuice/jitarm64-ps-sel-same-regJMC47
JitArm64: Optimize ps_sel with d == b || d == c
2024-12-22Merge pull request #13063 from TryTwo/PR_GameSettingsJosJuice
Add ability to edit game-specific GFX settings from game properties tab.
2024-12-22Merge pull request #13214 from JosJuice/sethardcoremode-privateAdmiral H. Curtiss
AchievementManager: Make SetHardcoreMode private
2024-12-20Merge pull request #13091 from mitaclaw/ranges-modernization-2-returnsJMC47
Ranges Algorithms Modernization - Return
2024-12-18Merge pull request #13224 from Sintendo/jitarm64-subfic2JMC47
JitArm64_Integer: Optimize subfic for -1
2024-12-16Merge pull request #13207 from OatmealDome/vulkan-hdr-color-spaceOatmealDome
VKSwapChain: Always use surface formats with a normal sRGB color space if not RGBA16F
2024-12-15Modernize `std::none_of` with rangesmitaclaw
In JitRegCache.cpp, the lambda predicate were replaced by a pointer to member function because ranges algorithms are able to invoke those. In ConvertDialog.cpp, the `std::mem_fn` helper was removed because ranges algorithms are able to handle pointers to member functions as predicates. In BoundingBox.cpp, the lambda predicate was returning the bool element unchanged, so `std::identity` was a better fit.
2024-12-15Modernize `std::any_of` with rangesmitaclaw
In WiimoteReal.cpp, JitRegCache.cpp, lambda predicates were replaced by pointers to member functions because ranges algorithms are able invoke those. In ConvertDialog.cpp, the `std::mem_fn` helper was removed because ranges algorithms are able to handle pointers to member functions as predicates.
2024-12-15Modernize `std::all_of` with rangesmitaclaw
In DITSpecification.cpp, MaterialAsset.cpp, and ShaderAsset.cpp, lambda predicates were replaced by pointers to member functions because ranges algorithms are able invoke those. In NetPlayClient.cpp, the non-trivial `NetPlay::Player` elements were being passed by value in `NetPlayClient::DoAllPlayersHaveGame()`. This has been fixed. In WIABlob.cpp, the second example's predicate was returning the `std::optional` by value instead of implicitly converting it to a bool. This has been fixed.
2024-12-15StringUtil: More Wrappers For <cctype>mitaclaw
`Common::IsLower(char)` was omitted as nothing needed it.