<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dolphin/Source/Core/DiscIO/DirectoryBlob.h, 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 #14599 from naari3/fix/directoryblob-gc-triforce-alignment</title>
<updated>2026-06-28T09:03:03+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2026-06-28T09:03:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=9416eb9537d4cdbee83f38128321e70096841800'/>
<id>9416eb9537d4cdbee83f38128321e70096841800</id>
<content type='text'>
DirectoryBlob: fix data alignment for GC/Triforce and skip Triforce DIMM memory range</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
DirectoryBlob: fix data alignment for GC/Triforce and skip Triforce DIMM memory range</pre>
</div>
</content>
</entry>
<entry>
<title>DirectoryBlob: fix data alignment for GC/Triforce and skip Triforce DIMM memory range</title>
<updated>2026-04-25T10:48:00+00:00</updated>
<author>
<name>naari3</name>
<email>naari.named@gmail.com</email>
</author>
<published>2026-04-25T10:48:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=e013d950533a5b6e6e411347f2997d4dff5f4951'/>
<id>e013d950533a5b6e6e411347f2997d4dff5f4951</id>
<content type='text'>
The 0x8000 alignment in DirectoryBlob is needed for Wii disc group encryption,
but for GC/Triforce it inflates file offsets unnecessarily. Use 0x20 alignment
for Triforce (matching original disc layout) while keeping 0x8000 for GC due
to DTK audio streaming requirements.

On Triforce games with many files, the inflated offsets can land in the
AMMediaboard DIMM memory range (0x1F000000-0x1F800000). Reads from that
region return SRAM data instead of disc data, causing the game to hang.

Skip the DIMM range when assigning per-file data offsets if any portion of
the file would overlap [0x1F000000, 0x1F800000).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The 0x8000 alignment in DirectoryBlob is needed for Wii disc group encryption,
but for GC/Triforce it inflates file offsets unnecessarily. Use 0x20 alignment
for Triforce (matching original disc layout) while keeping 0x8000 for GC due
to DTK audio streaming requirements.

On Triforce games with many files, the inflated offsets can land in the
AMMediaboard DIMM memory range (0x1F000000-0x1F800000). Reads from that
region return SRAM data instead of disc data, causing the game to hang.

Skip the DIMM range when assigning per-file data offsets if any portion of
the file would overlap [0x1F000000, 0x1F800000).
</pre>
</div>
</content>
</entry>
<entry>
<title>Improve usage of std::move and const references parameters</title>
<updated>2026-04-17T10:39:46+00:00</updated>
<author>
<name>Martino Fontana</name>
<email>tinozzo123@gmail.com</email>
</author>
<published>2026-04-06T09:37:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=95dec132030e72b74da6bc46966e4fe5e4e239c0'/>
<id>95dec132030e72b74da6bc46966e4fe5e4e239c0</id>
<content type='text'>
Accomplished using `run-clang-tidy` with `performance-move-const-arg,performance-unnecessary-value-param,modernize-pass-by-value`.

Changed arguments to const references, removed them where inappropriate (e.g. sink parameters). Same with std::move.

Manually reviewed each change to make sure that it makes sense, and do something more appropriate if possible.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Accomplished using `run-clang-tidy` with `performance-move-const-arg,performance-unnecessary-value-param,modernize-pass-by-value`.

Changed arguments to const references, removed them where inappropriate (e.g. sink parameters). Same with std::move.

Manually reviewed each change to make sure that it makes sense, and do something more appropriate if possible.
</pre>
</div>
</content>
</entry>
<entry>
<title>Use more std::span arguments</title>
<updated>2026-03-23T22:55:09+00:00</updated>
<author>
<name>Sintendo</name>
<email>3380580+Sintendo@users.noreply.github.com</email>
</author>
<published>2026-02-01T08:20:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=f6a67aa6e722350db3fc778e4f881cb60090faa1'/>
<id>f6a67aa6e722350db3fc778e4f881cb60090faa1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix various typos and spelling mistakes</title>
<updated>2026-01-17T19:11:38+00:00</updated>
<author>
<name>Sintendo</name>
<email>3380580+Sintendo@users.noreply.github.com</email>
</author>
<published>2026-01-17T18:02:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=1e0473e44f5e21558d75b0121bd935bb50825c26'/>
<id>1e0473e44f5e21558d75b0121bd935bb50825c26</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>DiscIO: Make all BlobReader implementations use DirectIOFile to make CopyReader functionality thread safe.</title>
<updated>2025-11-09T09:08:14+00:00</updated>
<author>
<name>Jordan Woyak</name>
<email>jordan.woyak@gmail.com</email>
</author>
<published>2025-10-30T01:26:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=239330017c97fa3f6b4b2670ab570e822d6affb0'/>
<id>239330017c97fa3f6b4b2670ab570e822d6affb0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>DiscIO: Make functions constant</title>
<updated>2025-05-16T17:11:39+00:00</updated>
<author>
<name>Dr. Dystopia</name>
<email>jonis9898@hotmail.com</email>
</author>
<published>2025-04-19T07:58:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=9dfcbcecff93a3419e09a9bfbb61f91f6f0bbf98'/>
<id>9dfcbcecff93a3419e09a9bfbb61f91f6f0bbf98</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>DiscIO: Remove redundant qualifiers</title>
<updated>2025-04-22T11:54:10+00:00</updated>
<author>
<name>Dr. Dystopia</name>
<email>jonis9898@hotmail.com</email>
</author>
<published>2025-04-19T19:45:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=ecafd8058fac02ea2bdff72616bcf59c3a21156d'/>
<id>ecafd8058fac02ea2bdff72616bcf59c3a21156d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>DiscIO: Make classes final</title>
<updated>2025-04-19T07:05:22+00:00</updated>
<author>
<name>Dr. Dystopia</name>
<email>jonis9898@hotmail.com</email>
</author>
<published>2025-04-19T07:05:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=301cc5ee6330c6ced01c0db673b18b2abb9b379a'/>
<id>301cc5ee6330c6ced01c0db673b18b2abb9b379a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>C++20: Synthesize `operator!=` From `operator==`</title>
<updated>2024-10-11T03:23:55+00:00</updated>
<author>
<name>mitaclaw</name>
<email>140017135+mitaclaw@users.noreply.github.com</email>
</author>
<published>2024-10-09T00:16:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=e8d5fb89e4465e8ef64920f12e7cb60e82057658'/>
<id>e8d5fb89e4465e8ef64920f12e7cb60e82057658</id>
<content type='text'>
The inequality operator is automatically generated by the compiler if `operator==` is defined.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The inequality operator is automatically generated by the compiler if `operator==` is defined.
</pre>
</div>
</content>
</entry>
</feed>
