<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dolphin, branch release-prep-2609a</title>
<subtitle>GameCube and Wii emulator</subtitle>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/'/>
<entry>
<title>ScmRevGen: Bump version to 2609a</title>
<updated>2026-10-08T00:01:31+00:00</updated>
<author>
<name>OatmealDome</name>
<email>julian@oatmealdome.me</email>
</author>
<published>2026-10-08T00:01:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=409881c34357d0f105fd473167d15ab0bd9c1628'/>
<id>409881c34357d0f105fd473167d15ab0bd9c1628</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>VideoCommon: validate restored FIFO pointers</title>
<updated>2026-10-07T23:57:28+00:00</updated>
<author>
<name>Acts1631</name>
<email>acts1631kjv@proton.me</email>
</author>
<published>2026-10-04T20:34:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=2eea927e95a577fe90e98d756968111e296147a7'/>
<id>2eea927e95a577fe90e98d756968111e296147a7</id>
<content type='text'>
Save states restored video FIFO pointers from unchecked offsets. A
crafted offset could place a pointer outside its backing allocation and
turn the next gather-pipe copy into an out-of-bounds native write.

Require pointer offsets to stay within their backing array and reject a
state when either offset is invalid or the read pointer follows the write
pointer.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Save states restored video FIFO pointers from unchecked offsets. A
crafted offset could place a pointer outside its backing allocation and
turn the next gather-pipe copy into an out-of-bounds native write.

Require pointer offsets to stay within their backing array and reject a
state when either offset is invalid or the read pointer follows the write
pointer.
</pre>
</div>
</content>
</entry>
<entry>
<title>NetPlay: reject oversized Wii save banners</title>
<updated>2026-10-07T23:57:19+00:00</updated>
<author>
<name>Acts1631</name>
<email>acts1631kjv@proton.me</email>
</author>
<published>2026-10-04T20:34:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=13817559eb47ce170b14fd232f9d5f468a5d70c9'/>
<id>13817559eb47ce170b14fd232f9d5f468a5d70c9</id>
<content type='text'>
The save sync parser preserved an oversized banner length after limiting
the copy into the fixed header buffer. The NAND writer then used the
untrusted length and read beyond the stack object.

Reject invalid or oversized lengths before copying the banner.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The save sync parser preserved an oversized banner length after limiting
the copy into the fixed header buffer. The NAND writer then used the
untrusted length and read beyond the stack object.

Reject invalid or oversized lengths before copying the banner.
</pre>
</div>
</content>
</entry>
<entry>
<title>RetroAchievements - Additional Code Approvals</title>
<updated>2026-10-07T23:56:53+00:00</updated>
<author>
<name>Lilly Jade Katrin</name>
<email>lilly.kitty.1988@gmail.com</email>
</author>
<published>2026-09-15T03:26:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=929ab2427e0a7b6aaa3301f2d0adbe07cb5e9541'/>
<id>929ab2427e0a7b6aaa3301f2d0adbe07cb5e9541</id>
<content type='text'>
A handful of requested Gecko/AR codes and approvals for use with RetroAchievements.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A handful of requested Gecko/AR codes and approvals for use with RetroAchievements.
</pre>
</div>
</content>
</entry>
<entry>
<title>Assembler: Fix crash from assembling malformed source</title>
<updated>2026-10-07T23:56:41+00:00</updated>
<author>
<name>VampireFlower</name>
<email>monstercatspedup1@gmail.com</email>
</author>
<published>2026-09-30T10:04:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=c129fd7aac603a0d59d9cabd19c215cf6a38ddf9'/>
<id>c129fd7aac603a0d59d9cabd19c215cf6a38ddf9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>MemArenaDarwin: Eliminate use of mach_make_memory_entry_64</title>
<updated>2026-10-07T23:56:25+00:00</updated>
<author>
<name>OatmealDome</name>
<email>julian@oatmealdome.me</email>
</author>
<published>2026-09-27T17:47:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=4a4c71d2e59c0c1066c43da6889b89e2e43d9df8'/>
<id>4a4c71d2e59c0c1066c43da6889b89e2e43d9df8</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>NetPlayConfigLoader: Fix GCAdapter handling.</title>
<updated>2026-10-07T23:56:14+00:00</updated>
<author>
<name>Jordan Woyak</name>
<email>jordan.woyak@gmail.com</email>
</author>
<published>2026-09-29T01:37:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=e992141a21dd41a0b28d23e341adb59fc5dc8b79'/>
<id>e992141a21dd41a0b28d23e341adb59fc5dc8b79</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>NetPlay: reject oversized input buffer messages</title>
<updated>2026-10-07T23:56:01+00:00</updated>
<author>
<name>Acts1631</name>
<email>acts1631kjv@proton.me</email>
</author>
<published>2026-08-04T15:47:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=a5c88ec00e7c4063dfe76c6695876de98f68f399'/>
<id>a5c88ec00e7c4063dfe76c6695876de98f68f399</id>
<content type='text'>
A NetPlay host could send an arbitrary buffer size to a client. The
client then tried to allocate input states until it reached that value.

Limit buffer sizes to the existing user-interface maximum. Invalid peer
values are ignored.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A NetPlay host could send an arbitrary buffer size to a client. The
client then tried to allocate input states until it reached that value.

Limit buffer sizes to the existing user-interface maximum. Invalid peer
values are ignored.
</pre>
</div>
</content>
</entry>
<entry>
<title>Request ACCESS_LOCAL_NETWORK permission on android 17 and up</title>
<updated>2026-10-07T23:55:50+00:00</updated>
<author>
<name>Tom Pratt</name>
<email>tom.pratt@outlook.com</email>
</author>
<published>2026-09-26T20:45:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=b5ded04314feafe27ebcc8db4557d697192be3ea'/>
<id>b5ded04314feafe27ebcc8db4557d697192be3ea</id>
<content type='text'>
Show the permission dialog the first time host or connect is clicked.

While the permission is not granted, show an info box at the bottom of the netplay setup screen explaining the need for the permission with a button to grant permission. Launch the app settings menu where the permission can be granted manually if the user has denied twice previously preventing us from showing the permission dialog.

Workarounds using the shouldShowRationale flag and detecting if the dialog showed via onPause to account for well known limitations in the android permissions API.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Show the permission dialog the first time host or connect is clicked.

While the permission is not granted, show an info box at the bottom of the netplay setup screen explaining the need for the permission with a button to grant permission. Launch the app settings menu where the permission can be granted manually if the user has denied twice previously preventing us from showing the permission dialog.

Workarounds using the shouldShowRationale flag and detecting if the dialog showed via onPause to account for well known limitations in the android permissions API.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix android settings crash on API level 28 and lower</title>
<updated>2026-10-07T23:55:28+00:00</updated>
<author>
<name>Tom Pratt</name>
<email>tom.pratt@outlook.com</email>
</author>
<published>2026-09-27T19:04:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=5b295d55879734ed7be312dc009596f4ce961848'/>
<id>5b295d55879734ed7be312dc009596f4ce961848</id>
<content type='text'>
These API levels don't allow color selectors to be used as backgrounds.

Switch to MaterialDivider and set the color via dividerColor instead of background.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These API levels don't allow color selectors to be used as backgrounds.

Switch to MaterialDivider and set the color via dividerColor instead of background.
</pre>
</div>
</content>
</entry>
</feed>
