<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dolphin/Source/Core/DiscIO/VolumeWiiCrypted.cpp, branch 2606</title>
<subtitle>GameCube and Wii emulator</subtitle>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/'/>
<entry>
<title>DiscIO: Remove C/I/S prefixes from class names</title>
<updated>2017-06-06T10:31:59+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2017-06-06T09:49:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=b2af07a7b70c7c22d2c7b180d5846136d1fa1f77'/>
<id>b2af07a7b70c7c22d2c7b180d5846136d1fa1f77</id>
<content type='text'>
These prefixes were inconsistent with the rest of Dolphin.

I'm also renaming VolumeWiiCrypted to VolumeWii because of 1113b13.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These prefixes were inconsistent with the rest of Dolphin.

I'm also renaming VolumeWiiCrypted to VolumeWii because of 1113b13.
</pre>
</div>
</content>
</entry>
<entry>
<title>Reimplement support for unencrypted Wii discs</title>
<updated>2017-06-05T12:54:37+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2017-06-05T12:54:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=69f01bac393f2140463fd71d294998f630057bc5'/>
<id>69f01bac393f2140463fd71d294998f630057bc5</id>
<content type='text'>
You may want to read the PR #2047 comments before reading this.

Dolphin attempts to support an unencrypted type of Wii discs
that apparently is identified by a 4-byte integer at 0x60
being non-zero. I don't know what discs (if any) would be
using that format, so I haven't been able to test Dolphin's
support for it, but it has probably been broken for a while.

The old implementation is very short but also strange.
In CreateVolumeFromFilename, we read a 4-byte integer from
0x60, and if it's non-zero, we create a CVolumeGC object
instead of a CVolumeWiiCrypted object. This might seem like
it makes no sense, but it presumably worked in the past
because IsVolumeWiiDisc used to check the volume type by
reading the magic word for Wii straight from the disc,
meaning that CVolumeGC objects representing unencrypted Wii
discs would be treated as Wii discs by pretty much all of
Dolphin's code except for the volume implementation code.
(It wasn't possible to simply use CVolumeWiiCrypted, because
that class only handled encrypted discs, like the name says.)

However, that stopped working as intended because of ace0607.
And furthermore, bb93336 made it even more broken by making
parts of Dolphin expect that data read from Wii discs needed
to be decrypted (rather than the volume implementation
implicitly deciding whether to decrypt when Read was called).
Disclaimer: Like I said before, I haven't been able to test
any of this because I don't have any discs that use this
unencrypted Wii disc format, so this is all theoretical.

Later, PR #2047 tried to remove Dolphin's support for
the unencrypted Wii disc format because seemingly no
discs used it, but the PR got closed without being merged.
At the end of that PR, I said that I would make a new PR
with a better implementation for the format after PR #2353
was merged. Now that PR #2353 is merged (two years later...)
and PR #5521 is merged, the new implementation was easy to
make, and here it is!

Untested.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
You may want to read the PR #2047 comments before reading this.

Dolphin attempts to support an unencrypted type of Wii discs
that apparently is identified by a 4-byte integer at 0x60
being non-zero. I don't know what discs (if any) would be
using that format, so I haven't been able to test Dolphin's
support for it, but it has probably been broken for a while.

The old implementation is very short but also strange.
In CreateVolumeFromFilename, we read a 4-byte integer from
0x60, and if it's non-zero, we create a CVolumeGC object
instead of a CVolumeWiiCrypted object. This might seem like
it makes no sense, but it presumably worked in the past
because IsVolumeWiiDisc used to check the volume type by
reading the magic word for Wii straight from the disc,
meaning that CVolumeGC objects representing unencrypted Wii
discs would be treated as Wii discs by pretty much all of
Dolphin's code except for the volume implementation code.
(It wasn't possible to simply use CVolumeWiiCrypted, because
that class only handled encrypted discs, like the name says.)

However, that stopped working as intended because of ace0607.
And furthermore, bb93336 made it even more broken by making
parts of Dolphin expect that data read from Wii discs needed
to be decrypted (rather than the volume implementation
implicitly deciding whether to decrypt when Read was called).
Disclaimer: Like I said before, I haven't been able to test
any of this because I don't have any discs that use this
unencrypted Wii disc format, so this is all theoretical.

Later, PR #2047 tried to remove Dolphin's support for
the unencrypted Wii disc format because seemingly no
discs used it, but the PR got closed without being merged.
At the end of that PR, I said that I would make a new PR
with a better implementation for the format after PR #2353
was merged. Now that PR #2353 is merged (two years later...)
and PR #5521 is merged, the new implementation was easy to
make, and here it is!

Untested.
</pre>
</div>
</content>
</entry>
<entry>
<title>DiscIO: Use std::optional in Volume and Blob</title>
<updated>2017-06-05T11:26:51+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2017-06-04T08:33:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=c3fa0d6edf0ed65acdf789debed57cd4aa7955ba'/>
<id>c3fa0d6edf0ed65acdf789debed57cd4aa7955ba</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't show FST size in game properties</title>
<updated>2017-06-04T12:20:20+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2017-06-04T12:20:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=2ce9281f77bb1ba2ca88cfa7152ef69480658e5a'/>
<id>2ce9281f77bb1ba2ca88cfa7152ef69480658e5a</id>
<content type='text'>
Normal users don't care about it. In fact, people care so
little about it that the Wii implementation of it was broken
starting from when it was implemented (eb65601) to 7 years
later (e0a47c1), apparently without anyone reporting it.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Normal users don't care about it. In fact, people care so
little about it that the Wii implementation of it was broken
starting from when it was implemented (eb65601) to 7 years
later (e0a47c1), apparently without anyone reporting it.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #5522 from leoetlino/simpler-gettitleid</title>
<updated>2017-06-04T06:57:36+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2017-06-04T06:57:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=703858e21719066af603fde6fae1a8cb9f86cdcd'/>
<id>703858e21719066af603fde6fae1a8cb9f86cdcd</id>
<content type='text'>
DiscIO: Use std::optional for GetTitleID instead of pointer</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
DiscIO: Use std::optional for GetTitleID instead of pointer</pre>
</div>
</content>
</entry>
<entry>
<title>DiscIO: Use std::optional for GetTitleID instead of pointer</title>
<updated>2017-06-03T19:56:33+00:00</updated>
<author>
<name>Léo Lam</name>
<email>leo@innovatetechnologi.es</email>
</author>
<published>2017-06-03T19:29:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=1a17c02d6f5db0413d53d84987fc666199982ed2'/>
<id>1a17c02d6f5db0413d53d84987fc666199982ed2</id>
<content type='text'>
This makes the interface slightly cleaner and a bit more consistent
with the other getters. Still not fully the same, since the others
don't really handle failures with std::optional; but at least the
value is returned by value now, as opposed to having the function
take a pointer to a u64.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This makes the interface slightly cleaner and a bit more consistent
with the other getters. Still not fully the same, since the others
don't really handle failures with std::optional; but at least the
value is returned by value now, as opposed to having the function
take a pointer to a u64.
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace {{}} with {}</title>
<updated>2017-06-03T16:14:22+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2017-06-03T16:14:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=1c926dcae2f5934436c3d329400a9c493d82008e'/>
<id>1c926dcae2f5934436c3d329400a9c493d82008e</id>
<content type='text'>
IIRC we were only using {{}} because {} used to cause errors
on the FreeBSD buildbot.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
IIRC we were only using {{}} because {} used to cause errors
on the FreeBSD buildbot.
</pre>
</div>
</content>
</entry>
<entry>
<title>Check TMD sizes using the actual constant</title>
<updated>2017-05-26T09:27:43+00:00</updated>
<author>
<name>Léo Lam</name>
<email>leo@innovatetechnologi.es</email>
</author>
<published>2017-05-26T09:23:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=b5a2f34a3778a1921e2d448557d4557807364f6f'/>
<id>b5a2f34a3778a1921e2d448557d4557807364f6f</id>
<content type='text'>
0x49e4 is the actual maximum TMD size (which is checked against in ES).
IsValidTMDSize is added to ESFormats to avoid duplicating the constant.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
0x49e4 is the actual maximum TMD size (which is checked against in ES).
IsValidTMDSize is added to ESFormats to avoid duplicating the constant.
</pre>
</div>
</content>
</entry>
<entry>
<title>VolumeWiiCrypted: Get title keys from TicketReader</title>
<updated>2017-05-20T18:44:12+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2017-05-20T17:41:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=1575020c3a84f8d59ddb9591e858829958a8af43'/>
<id>1575020c3a84f8d59ddb9591e858829958a8af43</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>VolumeWiiCrypted: Get title IDs from TicketReader</title>
<updated>2017-05-20T18:43:31+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2017-05-20T16:58:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=26f5b53ecba0f27020d469b8d07767a9529a8d8a'/>
<id>26f5b53ecba0f27020d469b8d07767a9529a8d8a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
