summaryrefslogtreecommitdiff
path: root/Source/UnitTests/Core
AgeCommit message (Collapse)Author
9 daysAchievementApprovedHash: Automatically generate hash using CMakeJoshua Vandaële
2026-07-11Core: Adjust emulated memory size automatically.cristian64
Dolphin now uses the simulated memory size defined in `bi2.bin` to adjust the memory size in the emulated console automatically. If **Enable Emulated Memory Size Override** has been enabled by the user, the fixed memory size specified for **MEM1** and **MEM2** are still used as they were before. Most retail games do not define the simulated memory size (Wii or Triforce games), or define it to a value that matches the default 24 MiB (GameCube games), so, in the general case, there is no behavior change. One game that sets the simulated memory to a non-default value is the debug build of _Mario Kart: Double Dash!!_, where the value is set to 48 MiB. This enhancement is focused mainly to the modding community. Prior to these changes, modded games with extended memory requirements would fail to launch in Dolphin [with no indication of what the problem is] if the user failed to set the emulated memory override to the correct value. Now, modding tools can specify the simulated memory size in the `bi2.bin` file to produce extended games that _just work_ in Dolphin, without cumbersome instructions that can be overlooked by the user.
2026-04-25GameINI: Add 60 FPS code for Pikmin SquaredMartino Fontana
2026-04-11Merge pull request #14500 from Sintendo/span2Jordan Woyak
Replace `const std::vector&` arguments with `std::span`
2026-04-04PageTableHostMappingTest: Fix copypaste error in misaligned+hole testJosJuice
Because of this mistake, HoleInMaskMisalignedPageTable was testing the same thing as MisalignedPageTable, which wasn't the intent.
2026-04-04PageTableHostMappingTest: Fix alignment for misaligned+hole testJosJuice
Mistakenly, MISALIGNED_HOLE_MASK_PAGE_TABLE_BASE was aligned and MISALIGNED_HOLE_MASK_PAGE_TABLE_BASE_ALIGNED was misaligned. It should be the other way around. These variables are unused due to a separate mistake which is corrected in the next commit.
2026-03-23Use more std::span argumentsSintendo
2026-02-22AchievementManager: APPROVED_LIST_HASH quality of life improvementsMartino Fontana
APPROVED_LIST_HASH is moved to a separate file, making tests compilation faster after changing it. The error message prints the hash in a way that it can be directly copy-pasted (though it still needs clang-format).
2026-02-04UnitTests: Add PageTableHostMappingTestJosJuice
2026-01-25Remove unused importsMartino Fontana
Yellow squiggly lines begone! Done automatically on .cpp files through `run-clang-tidy`, with manual corrections to the mistakes. If an import is directly used, but is technically unnecessary since it's recursively imported by something else, it is *not* removed. The tool doesn't touch .h files, so I did some of them by hand while fixing errors due to old recursive imports. Not everything is removed, but the cleanup should be substantial enough. Because this done on Linux, code that isn't used on it is mostly untouched. (Hopefully no open PR is depending on these imports...)
2026-01-18Jit64: Add fres unit testJosJuice
2026-01-17Merge pull request #14267 from jordan-woyak/std-expectediwubcode
Common: Replace Result with std::expected.
2026-01-17Common: Replace Result with C++23's std::expected.Jordan Woyak
2026-01-17Fix various typos and spelling mistakesSintendo
2025-11-27Disable PatchAllowlistTest if USE_RETRO_ACHIEVEMENTS is OFFJoshua Vandaële
This fixes a build error when `-DENABLE_TESTS=ON` and `-DUSE_RETRO_ACHIEVEMENTS=OFF` are both set together, since AchievementManager is also behind an ifdef.
2025-06-29CoreTiming: Fix unsafe usage of m_globals.global_timer in ScheduleEvent from ↵Jordan Woyak
non-CPU thread.
2025-06-08Merge pull request #13676 from ↵JMC47
LillyJadeKatrin/retroachievements-allowlist-test-improvements RetroAchievements: Updated PatchAllowlistTest to generate new allowlist
2025-05-21RetroAchievements: Updated PatchAllowlistTest to generate new allowlistLillyJadeKatrin
Refactors the PatchAllowlistTest to streamline the experience for developers. Instead of a textual description of what needs to change in ApprovedInis.json for RetroAchievements compatibility, the test will now generate a replacement file and instruct the coder where to copy it in their local branch, and what to update APPROVED_LIST_HASH to. The result should be easier and more instructive for developers to make changes, while still maintaining that allowed codes cannot be added or modified without recompiling Dolphin. As ApprovedInis.json no longer needs to be user-readable for this process, it no longer contains titles or pretty formatting and as such is updated in this commit, hash included.
2025-05-18Merge pull request #13672 from ↵Jordan Woyak
tygyh/UnitTests/Remove-redundant-template-type-specifiers UnitTests: Remove redundant template type specifers
2025-05-18Merge pull request #13668 from tygyh/UnitTests/Core/Make-parameters-constantJordan Woyak
UnitTests/Core: Make parameters constant
2025-05-16UnitTests: Remove redundant template type specifersDr. Dystopia
2025-05-16Merge pull request #13666 from ↵Jordan Woyak
tygyh/UnitTests/PowerPC-Use-constant-functions-variables-parameters UnitTests/PowerPC: Use constant functions, variables and parameters
2025-05-16UnitTests/Core: Remove unused includesDr. Dystopia
2025-05-16UnitTests/Core: Make parameters constantDr. Dystopia
2025-05-16UnitTests/PowerPC: Use constant functions, variables and parametersDr. Dystopia
2025-05-09Merge pull request #10766 from xperia64/dsp_format_funJMC47
DSP accelerator improvements
2025-05-07Merge pull request #13572 from ↵Jordan Woyak
tygyh/UnitTests-Remove-redundant-virtual-specifier UnitTests: Remove redundant `virtual` specifier
2025-05-07Merge pull request #13569 from tygyh/UnitTests-Use-constexprJordan Woyak
UnitTests: Use `constexpr`
2025-04-25Use correct exceptions for d3 reads/writesxperia64
2025-04-25Fix DSPAcceleratorTestxperia64
2025-04-23UnitTests: Remove redundant `virtual` specifierDr. Dystopia
2025-04-23UnitTests: Use `constexpr`Dr. Dystopia
2025-04-23UnitTests: Rename lambda parameters which hide previous declarationsDr. Dystopia
2025-01-20Merge pull request #13204 from LillyJadeKatrin/retroachievements-allow-batchJosJuice
Gecko/AR Batch Approval
2025-01-06Fix several minor warningsSintendo
2024-12-10Add ReadVerified testing to PatchAllowlistTestLillyJadeKatrin
New code adds a test failure if there's a Patches/Gecko/AR_Retroachievements_Verified code that doesn't appear to actually exist in the file. This will catch if the allowed patch is formatted wrong, which I found happening several times already due to not realizing that the patch author's name would need to be omitted.
2024-11-29Add Gecko and AR codes to the Patch Allowlist TestLillyJadeKatrin
2024-10-19DolphinQt: JIT Widget Refreshmitaclaw
Fulfilling a certain six-year-old todo.
2024-10-19JITs: Add GetMemoryStats Functionmitaclaw
Using the updated rangeset library
2024-10-19JITs: Add EraseSingleBlock Functionmitaclaw
2024-10-10Modernize `std::count` with rangesmitaclaw
2024-08-15Use 'contains' methodmitaclaw
2024-07-07Add Unit Test for Patch AllowlistLillyJadeKatrin
This unit test compares ApprovedInis.json with the contents of the GameSettings folder to verify that every patch marked allowed for use with RetroAchievements has a hash in ApprovedInis.json. If not, that hash is reported in the test logs so that the hash may be updated more easily.
2024-05-03Replace Common::BitCast with std::bit_castPokechu22
2024-03-23DivUtils: Add unsigned division magic functionBram Speeckaert
Takes the logic from Jit64 and moves it into DivUtils, so it can be reused by other backends as well.
2024-01-31Migrate SConfig::bWii to System.Admiral H. Curtiss
2024-01-12Core/HW/MMIO: Pass System through Read() and Write().Admiral H. Curtiss
2023-12-16JitArm64: Use enum class for LogicalImm size parameterJosJuice
This should prevent issues like the one fixed in the previous commit from happening again.
2023-11-28JitArm64: Use LSL+CLS for classifying floatsJosJuice
This is a little trick I came up with that lets us restructure our float classification code so we can exit earlier when the float is normal, which is the case more often than not. First we shift left by 1 to get rid of the sign bit, and then we count the number of leading sign bits. If the result is less than 10 (for doubles) or 7 (for floats), the float is normal. This is because, if the float isn't normal, the exponent is either all zeroes or all ones.
2023-11-28Remove _M_X86 in favour of _M_X86_64Zopolis4