<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dolphin/Source/UnitTests/Core, branch master</title>
<subtitle>GameCube and Wii emulator</subtitle>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/'/>
<entry>
<title>Merge pull request #14940 from jordan-woyak/CoreTimingTest-fix</title>
<updated>2026-10-24T20:04:25+00:00</updated>
<author>
<name>Jordan Woyak</name>
<email>jordan.woyak@gmail.com</email>
</author>
<published>2026-10-24T20:04:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=22b581c670d84e60d11c1b02d38e1c7789ae2dfa'/>
<id>22b581c670d84e60d11c1b02d38e1c7789ae2dfa</id>
<content type='text'>
UnitTests: Fix CoreTiming.SharedSlot test so it can run independently.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
UnitTests: Fix CoreTiming.SharedSlot test so it can run independently.</pre>
</div>
</content>
</entry>
<entry>
<title>UnitTests: Fix CoreTiming.SharedSlot test so it can run independently.</title>
<updated>2026-10-19T17:37:07+00:00</updated>
<author>
<name>Jordan Woyak</name>
<email>jordan.woyak@gmail.com</email>
</author>
<published>2026-10-19T17:34:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=3c72f4d5425875e32d809dab9821afe9bb1d042e'/>
<id>3c72f4d5425875e32d809dab9821afe9bb1d042e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Jit: Use LazyMemoryRegion-backed bit sets</title>
<updated>2026-08-22T09:51:48+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2026-08-09T15:37:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=94070473307b4ded676b97b1a673b496c074cda0'/>
<id>94070473307b4ded676b97b1a673b496c074cda0</id>
<content type='text'>
JitCache has been using a class called ValidBlockBitSet. This commit
replaces it with a new class called LazyMemoryRegionBitSet, which works
similarly but is backed by a LazyMemoryRegion, letting us skip
allocating memory for parts of the bit set that correspond to emulated
memory regions where the game isn't storing any code. I have also added
optimized functions for setting or clearing long runs of bits.

Additionally, this commit replaces JitBase's three std::unordered_sets
that are keeping track of instructions with LazyMemoryRegionBitSets.
Here the benefit is more speed than memory usage. This improves NBA Live
2005's menu performance by 1% or so in SuperSamus's testing.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
JitCache has been using a class called ValidBlockBitSet. This commit
replaces it with a new class called LazyMemoryRegionBitSet, which works
similarly but is backed by a LazyMemoryRegion, letting us skip
allocating memory for parts of the bit set that correspond to emulated
memory regions where the game isn't storing any code. I have also added
optimized functions for setting or clearing long runs of bits.

Additionally, this commit replaces JitBase's three std::unordered_sets
that are keeping track of instructions with LazyMemoryRegionBitSets.
Here the benefit is more speed than memory usage. This improves NBA Live
2005's menu performance by 1% or so in SuperSamus's testing.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #14767 from JosJuice/state-nand-open-file</title>
<updated>2026-08-08T11:02:54+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2026-08-08T11:02:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=cd3ea814628d36939340ef67a6edb19e6b094279'/>
<id>cd3ea814628d36939340ef67a6edb19e6b094279</id>
<content type='text'>
IOS/FS: Fix loading savestate when files are open</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
IOS/FS: Fix loading savestate when files are open</pre>
</div>
</content>
</entry>
<entry>
<title>AchievementApprovedHash: Automatically generate hash using CMake</title>
<updated>2026-07-27T05:09:11+00:00</updated>
<author>
<name>Joshua Vandaële</name>
<email>joshua@vandaele.software</email>
</author>
<published>2026-07-27T01:22:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=55c015e6ac74b0ecce7f30b4aed499f02fa9c5bd'/>
<id>55c015e6ac74b0ecce7f30b4aed499f02fa9c5bd</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>IOS/FS: Fix loading savestate when files are open</title>
<updated>2026-07-26T09:01:01+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2026-07-26T08:48:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=8a90cbf63843c13584fc8ce9ddd1c5c62726d818'/>
<id>8a90cbf63843c13584fc8ce9ddd1c5c62726d818</id>
<content type='text'>
We already had code to close open host files when reading or writing a
savestate, but due to d35fe1b we also need to close open guest files
when reading a savestate, otherwise DoStateRead fails to delete them.

I was considering an alternative solution where instead of copying and
clearing m_handles, we just set `handle.opened = false;` for each handle
before reading a savestate (but not before writing a savestate).
However, this wouldn't solve the problem of DoStateWriteOrMeasure's
calls to OpenFile failing due to all handles being open. I'm not aware
of any games that have that many handles open, though.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We already had code to close open host files when reading or writing a
savestate, but due to d35fe1b we also need to close open guest files
when reading a savestate, otherwise DoStateRead fails to delete them.

I was considering an alternative solution where instead of copying and
clearing m_handles, we just set `handle.opened = false;` for each handle
before reading a savestate (but not before writing a savestate).
However, this wouldn't solve the problem of DoStateWriteOrMeasure's
calls to OpenFile failing due to all handles being open. I'm not aware
of any games that have that many handles open, though.
</pre>
</div>
</content>
</entry>
<entry>
<title>Core: Adjust emulated memory size automatically.</title>
<updated>2026-07-11T22:02:54+00:00</updated>
<author>
<name>cristian64</name>
<email>cristian64@gmail.com</email>
</author>
<published>2026-04-03T09:58:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=0cab1731d61ecb87c7bc388dbd176a4150afbbe3'/>
<id>0cab1731d61ecb87c7bc388dbd176a4150afbbe3</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>GameINI: Add 60 FPS code for Pikmin Squared</title>
<updated>2026-04-25T08:45:25+00:00</updated>
<author>
<name>Martino Fontana</name>
<email>tinozzo123@gmail.com</email>
</author>
<published>2025-11-07T15:35:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=c96d1b7b4aec71371ddd82ee210dcf232d79cf47'/>
<id>c96d1b7b4aec71371ddd82ee210dcf232d79cf47</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #14500 from Sintendo/span2</title>
<updated>2026-04-11T19:55:41+00:00</updated>
<author>
<name>Jordan Woyak</name>
<email>jordan.woyak@gmail.com</email>
</author>
<published>2026-04-11T19:55:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=33f62b0f9f36a3dfccc3ecfc13358899d0cc8036'/>
<id>33f62b0f9f36a3dfccc3ecfc13358899d0cc8036</id>
<content type='text'>
Replace `const std::vector&amp;` arguments with `std::span`</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Replace `const std::vector&amp;` arguments with `std::span`</pre>
</div>
</content>
</entry>
<entry>
<title>PageTableHostMappingTest: Fix copypaste error in misaligned+hole test</title>
<updated>2026-04-04T20:56:00+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2026-04-04T20:50:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=4f0219d08c7a497621b5ab54f4ac730b4fbf5f15'/>
<id>4f0219d08c7a497621b5ab54f4ac730b4fbf5f15</id>
<content type='text'>
Because of this mistake, HoleInMaskMisalignedPageTable was testing the
same thing as MisalignedPageTable, which wasn't the intent.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Because of this mistake, HoleInMaskMisalignedPageTable was testing the
same thing as MisalignedPageTable, which wasn't the intent.
</pre>
</div>
</content>
</entry>
</feed>
