dolphin/Source/Core/Core
Geotale 2f45391ca5 Improve Integer Rounding Accuracy
Changes integer rounding to more closely meet the documentation
The documentation explains to round before doing any bounds checks
All this really does is make sure some exception bits won't be set wrong
This depends on the rounding mode, fixing cases such as:
- Round to even, (0x7fffffff, 0x7fffffff.8)
- Round to down, (0x7fffffff, 0x80000000)

This change also uses some standard functions for rounding
Previously using them was casting to an s32 directly, now keeps the f64
RoundToIntegerMode introduced due to roundeven not being part of C++17

Finally, it can change a >0x7fffffff to >=0x80000000, done because:
- It looks nicer now with integers (I liked 0s)
- It gives ever so slightly better codegen on Aarch64

Co-Authored-By: JosJuice <josjuice@gmail.com>
2024-09-03 11:17:24 -05:00
..
Boot Use a stub AchivementManager when USE_RETRO_ACHIEVEMENTS isn't defined 2024-06-06 08:26:20 +02:00
Config Use a stub AchivementManager when USE_RETRO_ACHIEVEMENTS isn't defined 2024-06-06 08:26:20 +02:00
ConfigLoaders Revert "Audit uses of IsRunning and GetState" 2024-06-26 20:36:46 +02:00
Debugger Debugger: Rework temporary breakpoints 2024-07-05 21:33:22 +02:00
DSP DSPJitRegCache: Take DynamicReg instances by reference in FlushRegs() 2024-02-28 10:27:35 -05:00
FifoPlayer Debugger: Small other cleanup 2024-07-02 18:29:42 +02:00
HLE Adjust order and spacing of various #includes 2024-07-26 14:28:34 -07:00
HW Merge pull request #12957 from Dentomologist/adjust_include_order_and_spacing 2024-08-07 03:27:23 +01:00
IOS IOS: Fix return code inaccuracy 2024-07-15 16:11:15 -04:00
PowerPC Improve Integer Rounding Accuracy 2024-09-03 11:17:24 -05:00
AchievementManager.cpp Fixed achievements not working after a disc change. 2024-07-25 20:46:46 -04:00
AchievementManager.h RetroAchievements: Delay calling LoadApprovedList 2024-07-09 09:55:07 +02:00
ActionReplay.cpp Replace Common::BitCast with std::bit_cast 2024-05-03 18:43:51 -07:00
ActionReplay.h Common/IniFile: Move interface into Common namespace 2023-04-13 10:19:28 -04:00
ARDecrypt.cpp Replace BitUtils with C++20: RotateLeft/RotateRight 2022-12-11 08:59:18 +01:00
ARDecrypt.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
BootManager.cpp Config: Don't depend on is_dirty to save SYSCONF during restore 2024-07-27 16:45:33 +02:00
BootManager.h BootManager: Avoid Global System Accessor 2024-03-01 23:39:04 -08:00
CheatCodes.h Common/IniFile: Move interface into Common namespace 2023-04-13 10:19:28 -04:00
CheatGeneration.cpp Treewide: Adjust order of includes 2021-12-10 14:49:57 -08:00
CheatGeneration.h Core/CheatSearch: Implement cheat searching functionality. 2021-09-15 19:05:48 +02:00
CheatSearch.cpp Use a stub AchivementManager when USE_RETRO_ACHIEVEMENTS isn't defined 2024-06-06 08:26:20 +02:00
CheatSearch.h Use a stub AchivementManager when USE_RETRO_ACHIEVEMENTS isn't defined 2024-06-06 08:26:20 +02:00
CMakeLists.txt Cached Interpreter 2.0 2024-07-23 14:06:21 -07:00
CommonTitles.h Add Everybody Votes Channel and Region Select to WiiLink config 2023-09-03 15:56:02 -04:00
ConfigManager.cpp Display Taiwanese covers for Taiwanese games 2024-08-01 14:42:52 -04:00
ConfigManager.h Core/ConfigManager: Remove dead bAutomaticStart flag. 2024-01-31 22:53:43 +01:00
Core.cpp Merge pull request #12862 from SuperSamus/debugger-fixes 2024-07-23 20:36:34 +02:00
Core.h Merge pull request #12856 from LillyJadeKatrin/retroachievements-pause-v2 2024-07-04 22:53:04 +02:00
CoreTiming.cpp Use C++20 erase_if() instead of erase(remove_if()) (NFC) 2024-07-21 16:36:06 +01:00
CoreTiming.h Use structs for config callback IDs 2023-08-17 19:19:26 +02:00
CPUThreadConfigCallback.cpp CPUThreadConfigCallback: Mark static ID as [[maybe_unused]] 2023-12-12 17:30:37 -05:00
CPUThreadConfigCallback.h Use structs for config callback IDs 2023-08-17 19:19:26 +02:00
DolphinAnalytics.cpp Fix out of bounds accesses for invalid vertex component formats 2024-04-04 12:50:34 -07:00
DolphinAnalytics.h Merge pull request #12537 from TellowKrinkle/MTLSubgroup 2024-05-21 22:17:22 +02:00
DSPEmulator.cpp Core/DSPHLE: Store reference to System in DSPHLE instances. 2024-01-08 10:23:28 +01:00
DSPEmulator.h Core/DSPHLE: Store reference to System in DSPHLE instances. 2024-01-08 10:23:28 +01:00
FreeLookConfig.cpp Use a stub AchivementManager when USE_RETRO_ACHIEVEMENTS isn't defined 2024-06-06 08:26:20 +02:00
FreeLookConfig.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
FreeLookManager.cpp InputCommon: Use distinct values for profile key 2024-02-04 17:55:08 +01:00
FreeLookManager.h Android: Get profile name from core 2023-10-01 18:47:49 +02:00
GeckoCode.cpp PPCCache: Avoid Global System Accessor 2024-04-08 19:49:57 -07:00
GeckoCode.h DolphinQt: Properly lock CPU before accessing emulated memory 2023-02-12 11:27:50 +01:00
GeckoCodeConfig.cpp GeckoCodeConfig: Make use of std::erase_if 2023-12-12 13:26:16 -05:00
GeckoCodeConfig.h Common/IniFile: Move interface into Common namespace 2023-04-13 10:19:28 -04:00
Host.h TAS Input: Enable hotkeys and controller input when Input has focus 2024-05-31 15:14:44 -07:00
HotkeyManager.cpp Add Open Achievements Hotkey 2024-07-06 07:36:31 -04:00
HotkeyManager.h Add Open Achievements Hotkey 2024-07-06 07:36:31 -04:00
LibusbUtils.cpp Log warnings when LibusbUtils::MakeConfigDescriptor fails 2022-06-08 15:29:11 -07:00
LibusbUtils.h Log warnings when LibusbUtils::MakeConfigDescriptor fails 2022-06-08 15:29:11 -07:00
MachineContext.h Add OpenBSD/arm64 support. 2024-05-22 14:32:37 -04:00
MemoryWatcher.cpp PowerPC/MMU: Refactor to class, move to System. 2023-03-28 03:47:51 +02:00
MemoryWatcher.h DolphinQt: Properly lock CPU before accessing emulated memory 2023-02-12 11:27:50 +01:00
MemTools.cpp JitInterface: Refactor to class, move to System. 2023-03-26 14:38:07 +02:00
MemTools.h UnitTests: Skip PageFaultTest if exception handlers are not supported 2022-05-19 12:26:41 -07:00
Movie.cpp Core: Store current state in less places 2024-06-21 20:46:44 +02:00
Movie.h Movie: Mark getters as const 2024-01-23 15:15:13 -05:00
NetPlayClient.cpp Core/Movie: Refactor to class, move to System. 2024-01-15 08:05:30 +01:00
NetPlayClient.h Traversal: Notify user of TTL to be used 2023-05-20 17:15:10 +02:00
NetPlayCommon.cpp Core: Add missing header to NetPlayCommon.cpp 2021-12-15 18:57:10 +01:00
NetPlayCommon.h Updated PEER_TIMOUT in NetPlayCommon.h to use chrono literals; Updated NetPlayServer.cpp OnConnect() by putting commonly used code into named functions 2022-08-09 16:26:52 -06:00
NetPlayProto.h Traversal: Autoconfigure TTL to use for probe packet 2023-05-20 17:15:07 +02:00
NetPlayServer.cpp Core/NetPlayServer: Use fmt::format_to_n in GetInterfaceHost() 2023-12-18 13:08:57 -05:00
NetPlayServer.h Traversal: Notify user of TTL to be used 2023-05-20 17:15:10 +02:00
NetworkCaptureLogger.cpp BBA/HLE: Fix random PCAP file corruption 2023-11-23 22:07:44 +04:00
NetworkCaptureLogger.h BBA/HLE: Fix random PCAP file corruption 2023-11-23 22:07:44 +04:00
PatchEngine.cpp Add Approved Patch Allowlist for Achievements 2024-07-07 13:42:09 -04:00
PatchEngine.h Core/PatchEngine: Remove remnants of Speedhack system 2024-06-28 17:57:53 +02:00
State.cpp Core: Store current state in less places 2024-06-21 20:46:44 +02:00
State.h State: Avoid Global System Accessor 2024-03-01 10:52:50 -08:00
SyncIdentifier.h Core/SyncIdentifier: Default operator== 2023-12-11 19:39:55 -05:00
SysConf.cpp SysConf: std::move fs pointer in constructor 2023-12-14 14:01:17 -05:00
SysConf.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
System.cpp PPCSymbolDB: Move instance to PowerPCManager 2024-03-13 22:58:14 -07:00
System.h PPCSymbolDB: Move instance to PowerPCManager 2024-03-13 22:58:14 -07:00
TitleDatabase.cpp StripSpaces: only strip spaces 2022-07-25 18:40:12 -07:00
TitleDatabase.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
WC24PatchEngine.cpp WC24PatchEngine: Make GetNetworkPatch() take a std::string_view 2023-12-14 14:24:49 -05:00
WC24PatchEngine.h WC24PatchEngine: Make GetNetworkPatch() take a std::string_view 2023-12-14 14:24:49 -05:00
WiiRoot.cpp Core: Move Emulation IOS instance to System. 2024-02-07 22:07:30 +01:00
WiiRoot.h Core/Boot: Add Wii FS sync data (for temp NAND/netplay) to BootSessionData and handle it in the boot and shutdown logic. 2021-11-22 01:33:45 +01:00
WiiUtils.cpp Core: Move Emulation IOS instance to System. 2024-02-07 22:07:30 +01:00
WiiUtils.h Qt: Add file size stats to NAND Check. 2023-07-14 05:24:29 +02:00