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
ARDecrypt.cpp
ARDecrypt.h
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
CheatGeneration.cpp
CheatGeneration.h
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
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
CPUThreadConfigCallback.cpp CPUThreadConfigCallback: Mark static ID as [[maybe_unused]] 2023-12-12 17:30:37 -05:00
CPUThreadConfigCallback.h
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
FreeLookManager.cpp InputCommon: Use distinct values for profile key 2024-02-04 17:55:08 +01:00
FreeLookManager.h
GeckoCode.cpp PPCCache: Avoid Global System Accessor 2024-04-08 19:49:57 -07:00
GeckoCode.h
GeckoCodeConfig.cpp GeckoCodeConfig: Make use of std::erase_if 2023-12-12 13:26:16 -05:00
GeckoCodeConfig.h
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
LibusbUtils.h
MachineContext.h Add OpenBSD/arm64 support. 2024-05-22 14:32:37 -04:00
MemoryWatcher.cpp
MemoryWatcher.h
MemTools.cpp
MemTools.h
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
NetPlayCommon.cpp
NetPlayCommon.h
NetPlayProto.h
NetPlayServer.cpp Core/NetPlayServer: Use fmt::format_to_n in GetInterfaceHost() 2023-12-18 13:08:57 -05:00
NetPlayServer.h
NetworkCaptureLogger.cpp
NetworkCaptureLogger.h
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
SysConf.cpp SysConf: std::move fs pointer in constructor 2023-12-14 14:01:17 -05:00
SysConf.h
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
TitleDatabase.h
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
WiiUtils.cpp Core: Move Emulation IOS instance to System. 2024-02-07 22:07:30 +01:00
WiiUtils.h