162 Commits
Author SHA1 Message Date
cristian64 0cab1731d6 Core: Adjust emulated memory size automatically.
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-07-11 23:02:54 +01:00
Martino Fontana c96d1b7b4a GameINI: Add 60 FPS code for Pikmin Squared 2026-04-25 10:45:25 +02:00
Jordan WoyakandGitHub 33f62b0f9f Merge pull request #14500 from Sintendo/span2
Replace `const std::vector&` arguments with `std::span`
2026-04-11 14:55:41 -05:00
JosJuice 4f0219d08c PageTableHostMappingTest: Fix copypaste error in misaligned+hole test
Because of this mistake, HoleInMaskMisalignedPageTable was testing the
same thing as MisalignedPageTable, which wasn't the intent.
2026-04-04 22:56:00 +02:00
JosJuice 3fe5df474b PageTableHostMappingTest: Fix alignment for misaligned+hole test
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-04-04 22:55:23 +02:00
Sintendo f6a67aa6e7 Use more std::span arguments 2026-03-23 23:55:09 +01:00
Martino Fontana a108fb849f AchievementManager: APPROVED_LIST_HASH quality of life improvements
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-22 00:22:46 +01:00
JosJuice 35ce08fb88 UnitTests: Add PageTableHostMappingTest 2026-02-04 21:35:22 +01:00
Martino Fontana a14c88ba67 Remove unused imports
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-25 16:12:15 +01:00
JosJuice 75666604a2 Jit64: Add fres unit test 2026-01-18 11:21:35 +01:00
iwubcodeandGitHub 373e35ed5b Merge pull request #14267 from jordan-woyak/std-expected
Common: Replace Result with std::expected.
2026-01-17 22:33:15 -06:00
Jordan Woyak dffc7a650d Common: Replace Result with C++23's std::expected. 2026-01-17 16:58:45 -06:00
Sintendo 1e0473e44f Fix various typos and spelling mistakes 2026-01-17 20:11:38 +01:00
Joshua Vandaële deeb6f160c Disable PatchAllowlistTest if USE_RETRO_ACHIEVEMENTS is OFF
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-11-27 01:26:51 +01:00
Jordan Woyak c597c70316 CoreTiming: Fix unsafe usage of m_globals.global_timer in ScheduleEvent from non-CPU thread. 2025-06-29 20:55:43 -05:00
JMC47andGitHub 8c3ca46988 Merge pull request #13676 from LillyJadeKatrin/retroachievements-allowlist-test-improvements
RetroAchievements: Updated PatchAllowlistTest to generate new allowlist
2025-06-08 12:56:19 -04:00
LillyJadeKatrin c23b4e1020 RetroAchievements: Updated PatchAllowlistTest to generate new allowlist
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-21 21:38:34 -04:00
Jordan WoyakandGitHub 2e22a3cf42 Merge pull request #13672 from tygyh/UnitTests/Remove-redundant-template-type-specifiers
UnitTests: Remove redundant template type specifers
2025-05-18 02:12:45 -05:00
Jordan WoyakandGitHub 88005deaeb Merge pull request #13668 from tygyh/UnitTests/Core/Make-parameters-constant
UnitTests/Core: Make parameters constant
2025-05-18 02:12:32 -05:00
Dr. Dystopia 2102108b1a UnitTests: Remove redundant template type specifers 2025-05-16 21:09:52 +02:00
Jordan WoyakandGitHub 404a7c75b2 Merge pull request #13666 from tygyh/UnitTests/PowerPC-Use-constant-functions-variables-parameters
UnitTests/PowerPC: Use constant functions, variables and parameters
2025-05-16 13:01:07 -05:00
Dr. Dystopia bc1af564e2 UnitTests/Core: Remove unused includes 2025-05-16 15:31:31 +02:00
Dr. Dystopia 7de18efc93 UnitTests/Core: Make parameters constant 2025-05-16 15:29:31 +02:00
Dr. Dystopia 58c79bc5ed UnitTests/PowerPC: Use constant functions, variables and parameters 2025-05-16 08:28:06 +02:00
JMC47andGitHub 0351fd56b1 Merge pull request #10766 from xperia64/dsp_format_fun
DSP accelerator improvements
2025-05-09 19:04:23 -04:00
Jordan WoyakandGitHub 8822479477 Merge pull request #13572 from tygyh/UnitTests-Remove-redundant-virtual-specifier
UnitTests: Remove redundant `virtual` specifier
2025-05-07 16:06:25 -05:00
Jordan WoyakandGitHub 1c54583ae7 Merge pull request #13569 from tygyh/UnitTests-Use-constexpr
UnitTests: Use `constexpr`
2025-05-07 15:48:26 -05:00
xperia64andTillmann Karras c7d8afc5a7 Use correct exceptions for d3 reads/writes 2025-04-25 00:51:45 +01:00
xperia64andTillmann Karras 0dd282f626 Fix DSPAcceleratorTest 2025-04-25 00:51:45 +01:00
Dr. Dystopia d5314cbf48 UnitTests: Remove redundant virtual specifier 2025-04-23 14:33:14 +02:00
Dr. Dystopia 947bdea590 UnitTests: Use constexpr 2025-04-23 12:45:08 +02:00
Dr. Dystopia 6e6736c89f UnitTests: Rename lambda parameters which hide previous declarations 2025-04-23 08:15:10 +02:00
JosJuiceandGitHub a9a720faa7 Merge pull request #13204 from LillyJadeKatrin/retroachievements-allow-batch
Gecko/AR Batch Approval
2025-01-20 23:35:17 +01:00
Sintendo 532e25be12 Fix several minor warnings 2025-01-06 11:31:39 +01:00
LillyJadeKatrin 81fd763601 Add ReadVerified testing to PatchAllowlistTest
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-12-10 00:15:13 -05:00
LillyJadeKatrin 81098433c8 Add Gecko and AR codes to the Patch Allowlist Test 2024-11-29 21:56:44 -05:00
mitaclaw 9afd09598c DolphinQt: JIT Widget Refresh
Fulfilling a certain six-year-old todo.
2024-10-19 02:30:44 -07:00
mitaclaw a0987829e5 JITs: Add GetMemoryStats Function
Using the updated rangeset library
2024-10-19 00:14:54 -07:00
mitaclaw 46f8fe0eaf JITs: Add EraseSingleBlock Function 2024-10-19 00:14:54 -07:00
mitaclaw c46060e298 Modernize std::count with ranges 2024-10-10 00:53:48 -07:00
mitaclaw 9fa4eb9aab Use 'contains' method 2024-08-15 14:20:16 -07:00
LillyJadeKatrinandAdmiral H. Curtiss ae87bf9af5 Add Unit Test for Patch Allowlist
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-07-07 21:29:03 +02:00
Pokechu22 fbbfea8e8e Replace Common::BitCast with std::bit_cast 2024-05-03 18:43:51 -07:00
Bram Speeckaert 825a10616c DivUtils: Add unsigned division magic function
Takes the logic from Jit64 and moves it into DivUtils, so it can be
reused by other backends as well.
2024-03-23 20:13:15 +01:00
Admiral H. Curtiss 9a3e770c23 Migrate SConfig::bWii to System. 2024-01-31 12:54:07 +01:00
Admiral H. Curtiss 42d61cfc4c Core/HW/MMIO: Pass System through Read() and Write(). 2024-01-12 08:28:01 +01:00
JosJuice e0eb4ef5bc JitArm64: Use enum class for LogicalImm size parameter
This should prevent issues like the one fixed in the previous commit
from happening again.
2023-12-16 16:48:26 +01:00
JosJuice 255ee3fdce JitArm64: Use LSL+CLS for classifying floats
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-28 18:30:45 +01:00
Zopolis4 f0d2ce4683 Remove _M_X86 in favour of _M_X86_64 2023-11-28 23:03:20 +11:00
afdf6de041 Skylanders: Improve figure data view and generation
Co-authored-by: deReeperJosh <joshua@dereeper.co.nz>
2023-11-05 18:06:10 +01:00