dolphin/Source/Core
JosJuice b0e2a28e14 Core: Combine guest pages into host pages larger than 4K
Most systems that Dolphin runs on have a page size of 4 KiB, which
conveniently matches the page size of the GameCube and Wii. But there
are also systems that use larger page sizes, notably Apple CPUs with
16 KiB page sizes. To let us create host mappings on such systems, this
commit implements combining guest mappings into host page sized mappings
wherever possible.

For this to work for a given mapping, not only do four (in the case of
16 KiB) guest mappings have to exist adjacent to each other, but the
corresponding translated addresses also have to be adjacent, and the
lowest bits of the addresses have to match. When I tested a few games,
the following percentages of guest mappings met these criteria:

Spider-Man 2: 0%-12%
Rogue Squadron 2: 39%-42%
Rogue Squadron 3: 28%-41%

So while 16 KiB systems don't get as much of a performance improvement
as 4 KiB systems, they do still get some improvement.
2026-02-04 21:35:22 +01:00
..
AudioCommon feat: Add an option to preserve audio pitch when emulation speed changes, integrating it into core configuration and both Qt and Android UIs. 2026-01-27 18:48:22 -05:00
Common Core: Don't create page table mappings before R/C bits are set 2026-02-04 21:35:22 +01:00
Core Core: Combine guest pages into host pages larger than 4K 2026-02-04 21:35:22 +01:00
DiscIO Remove unused imports 2026-01-25 16:12:15 +01:00
DolphinNoGUI Merge pull request #14214 from JoshuaVandaele/cmake-nonbreaking-improvements 2026-01-25 18:33:46 -08:00
DolphinQt Core: Pre-shift pagetable_hashmask left by 6 2026-02-01 12:39:33 +01:00
DolphinTool Merge pull request #14214 from JoshuaVandaele/cmake-nonbreaking-improvements 2026-01-25 18:33:46 -08:00
InputCommon InputConfig: Remove unused local variables 2026-01-26 11:36:42 -08:00
MacUpdater Merge pull request #14036 from TellowKrinkle/SkipPostprocess 2026-01-25 22:01:29 -05:00
UICommon Remove unused imports 2026-01-25 16:12:15 +01:00
UpdaterCommon Fix various typos and spelling mistakes 2026-01-17 20:11:38 +01:00
VideoBackends Merge pull request #14302 from oltolm/opengl_assert 2026-01-25 21:06:57 -05:00
VideoCommon Merge pull request #14204 from Geotale/update-comment 2026-01-31 15:02:09 -08:00
WinUpdater AudioCommon / VideoBackends / WinUpdater - cleanup WRL code 2025-11-22 01:23:39 +01:00
CMakeLists.txt
DolphinLib.ARM64.props
DolphinLib.props Merge pull request #14267 from jordan-woyak/std-expected 2026-01-17 22:33:15 -06:00
DolphinLib.vcxproj Core/HW: Add Broadband Adapter (IPC). 2025-10-28 18:50:59 +00:00
DolphinLib.vcxproj.user
DolphinLib.x64.props
VersionInfo.plist.in