<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dolphin/Source/Core/DiscIO, branch 2409</title>
<subtitle>GameCube and Wii emulator</subtitle>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/'/>
<entry>
<title>RVZ: Fix undefined behaviour when copying 0 bytes to a null pointer</title>
<updated>2024-08-27T16:16:43+00:00</updated>
<author>
<name>Ferdinand Bachmann</name>
<email>ferdinand.bachmann@yrlf.at</email>
</author>
<published>2024-08-27T15:59:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=6245dcd57d3cb78aa1d9fdbf53832716478396ca'/>
<id>6245dcd57d3cb78aa1d9fdbf53832716478396ca</id>
<content type='text'>
A vector of length 0 can have a null data pointer, which causes UB when
passed to memcpy, so only copy when we actually have data to copy. This
caused crashes in certain cases when compiling Dolphin with Clang and
LTO enabled.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A vector of length 0 can have a null data pointer, which causes UB when
passed to memcpy, so only copy when we actually have data to copy. This
caused crashes in certain cases when compiling Dolphin with Clang and
LTO enabled.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove redundant semicolons</title>
<updated>2024-08-20T12:59:54+00:00</updated>
<author>
<name>Dr. Dystopia</name>
<email>jonis9898@hotmail.com</email>
</author>
<published>2024-08-18T13:08:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=9602f36248edec803275128a0a327e3355f9472d'/>
<id>9602f36248edec803275128a0a327e3355f9472d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Use C++20 erase_if() instead of erase(remove_if()) (NFC)</title>
<updated>2024-07-21T15:36:06+00:00</updated>
<author>
<name>Tillmann Karras</name>
<email>tilkax@gmail.com</email>
</author>
<published>2024-07-21T15:26:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=982893b04cb3605f7703ebf2b9a99d33efa3b3eb'/>
<id>982893b04cb3605f7703ebf2b9a99d33efa3b3eb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Use a stub AchivementManager when USE_RETRO_ACHIEVEMENTS isn't defined</title>
<updated>2024-06-06T06:26:20+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2024-06-04T14:20:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=22aa88109f5a5964e1b66d31221647cafab7f0f5'/>
<id>22aa88109f5a5964e1b66d31221647cafab7f0f5</id>
<content type='text'>
This lets us reduce the number of USE_RETRO_ACHIEVEMENTS ifdefs in the
code base, reducing visual clutter. In particular, needing an ifdef for
each call to IsHardcodeModeActive was annoying to me. This also reduces
the risk that someone writes code that accidentally fails to compile
with USE_RETRO_ACHIEVEMENTS disabled.

We could cut down on ifdefs even further by making HardcodeWarningWidget
always exist, but that would result in non-trivial code ending up in the
binary even with USE_RETRO_ACHIEVEMENTS disabled, so I'm leaving it out
of this PR. It's not a lot of code though, so I might end up revisiting
it at some point.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This lets us reduce the number of USE_RETRO_ACHIEVEMENTS ifdefs in the
code base, reducing visual clutter. In particular, needing an ifdef for
each call to IsHardcodeModeActive was annoying to me. This also reduces
the risk that someone writes code that accidentally fails to compile
with USE_RETRO_ACHIEVEMENTS disabled.

We could cut down on ifdefs even further by making HardcodeWarningWidget
always exist, but that would result in non-trivial code ending up in the
binary even with USE_RETRO_ACHIEVEMENTS disabled, so I'm leaving it out
of this PR. It's not a lot of code though, so I might end up revisiting
it at some point.
</pre>
</div>
</content>
</entry>
<entry>
<title>DiscIO: drop unused Volume::CheckContentIntegrity() overload</title>
<updated>2024-05-25T23:10:26+00:00</updated>
<author>
<name>Tillmann Karras</name>
<email>tilkax@gmail.com</email>
</author>
<published>2024-05-25T19:13:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=4619db2ae9b72ec2ab4faa32f53b9c985e94ba85'/>
<id>4619db2ae9b72ec2ab4faa32f53b9c985e94ba85</id>
<content type='text'>
The offset-based overload hasn't been in use since
f754a1a548f2e599e4cc2d1d799f2d21b520076f.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The offset-based overload hasn't been in use since
f754a1a548f2e599e4cc2d1d799f2d21b520076f.
</pre>
</div>
</content>
</entry>
<entry>
<title>Disabled Hardcore Mode when Achievements disabled</title>
<updated>2024-05-02T08:44:52+00:00</updated>
<author>
<name>LillyJadeKatrin</name>
<email>lilly.kitty.1988@gmail.com</email>
</author>
<published>2024-05-02T03:47:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=ad969dfc0d6586032f44b82477a304b21d50bfd0'/>
<id>ad969dfc0d6586032f44b82477a304b21d50bfd0</id>
<content type='text'>
Bugfix for hardcore-disabled items being disabled when hardcore was true but achievement integration was false, which should mean hardcore is effectively disabled. Now everything checks the IsHardcoreModeActive method in AchievementManager which processes the setting AND the game state to determine if hardcore mode is actually active.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Bugfix for hardcore-disabled items being disabled when hardcore was true but achievement integration was false, which should mean hardcore is effectively disabled. Now everything checks the IsHardcoreModeActive method in AchievementManager which processes the setting AND the game state to determine if hardcore mode is actually active.
</pre>
</div>
</content>
</entry>
<entry>
<title>RiivolutionParser: Remove usages of global system accessor</title>
<updated>2023-12-12T17:48:40+00:00</updated>
<author>
<name>Lioncash</name>
<email>mai.iam2048@gmail.com</email>
</author>
<published>2023-12-12T17:39:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=b728e370862ea157f33672e8a88d55f28e8f0cf8'/>
<id>b728e370862ea157f33672e8a88d55f28e8f0cf8</id>
<content type='text'>
We can retrieve the encompassing system instance through the
CPUThreadGuard instance instead.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We can retrieve the encompassing system instance through the
CPUThreadGuard instance instead.
</pre>
</div>
</content>
</entry>
<entry>
<title>RiivolutionParser: Make use of std::span where applicable</title>
<updated>2023-12-12T17:38:43+00:00</updated>
<author>
<name>Lioncash</name>
<email>mai.iam2048@gmail.com</email>
</author>
<published>2023-12-12T17:32:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=c2e39e0d682c3102ba1dc8c0ec337f1a129eacf9'/>
<id>c2e39e0d682c3102ba1dc8c0ec337f1a129eacf9</id>
<content type='text'>
The main interface for these only take in patches and iterate over them
in a contiguous sequence, so we can reasonably generify the interface.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The main interface for these only take in patches and iterate over them
in a contiguous sequence, so we can reasonably generify the interface.
</pre>
</div>
</content>
</entry>
<entry>
<title>Disable memory patches in hardcore mode</title>
<updated>2023-12-02T21:41:16+00:00</updated>
<author>
<name>LillyJadeKatrin</name>
<email>lilly.kitty.1988@gmail.com</email>
</author>
<published>2023-11-15T17:03:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=1a19a9294342828630a6d0c02ba80a1010c87315'/>
<id>1a19a9294342828630a6d0c02ba80a1010c87315</id>
<content type='text'>
Memory patches would be an easy way to manipulate the memory needed to calculate achievement logic, so they must be disabled. Riivolution patches that do not affect memory are allowed, as they will be hashed with the game file.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Memory patches would be an easy way to manipulate the memory needed to calculate achievement logic, so they must be disabled. Riivolution patches that do not affect memory are allowed, as they will be hashed with the game file.
</pre>
</div>
</content>
</entry>
<entry>
<title>Tool/Header: Add JSON output mode; game data</title>
<updated>2023-11-28T08:49:28+00:00</updated>
<author>
<name>Lexi Larkin</name>
<email>lexi@qixils.dev</email>
</author>
<published>2023-10-11T08:58:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=71dfa66d8be155b074be35251e3aa79c567737a8'/>
<id>71dfa66d8be155b074be35251e3aa79c567737a8</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
