<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dolphin/Source/Core, branch release-prep-2609b</title>
<subtitle>GameCube and Wii emulator</subtitle>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/'/>
<entry>
<title>VideoCommon: error if the same asset id is used with a different type</title>
<updated>2026-11-07T05:38:39+00:00</updated>
<author>
<name>iwubcode</name>
<email>iwubcode@users.noreply.github.com</email>
</author>
<published>2026-11-05T01:27:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=3c8388141325ac6ba9b399f16ee29ba34938e56f'/>
<id>3c8388141325ac6ba9b399f16ee29ba34938e56f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Core: bound FIFO memory updates</title>
<updated>2026-11-07T05:38:21+00:00</updated>
<author>
<name>Acts1631</name>
<email>acts1631kjv@proton.me</email>
</author>
<published>2026-11-02T00:40:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=879d19e9db222e907167e01831e8b13bfc693714'/>
<id>879d19e9db222e907167e01831e8b13bfc693714</id>
<content type='text'>
FIFO logs control each memory update address and data size. Playback
masked only the start address into RAM or EXRAM, then copied the
complete update contiguously. An update reaching the end of a mapped
region could therefore write beyond host-mapped emulated memory.

Resolve the target through MemoryManager and reject updates larger than
the remaining valid span before copying them.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
FIFO logs control each memory update address and data size. Playback
masked only the start address into RAM or EXRAM, then copied the
complete update contiguously. An update reaching the end of a mapped
region could therefore write beyond host-mapped emulated memory.

Resolve the target through MemoryManager and reject updates larger than
the remaining valid span before copying them.
</pre>
</div>
</content>
</entry>
<entry>
<title>Core: bound legacy savestate LZO decompression</title>
<updated>2026-11-07T05:38:08+00:00</updated>
<author>
<name>Acts1631</name>
<email>acts1631kjv@proton.me</email>
</author>
<published>2026-11-02T00:39:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=0b8f943a7e9e8e494319c5c855c26bd0036f497d'/>
<id>0b8f943a7e9e8e494319c5c855c26bd0036f497d</id>
<content type='text'>
Legacy savestate headers controlled both the compressed input length
and the decompression buffer size. The input was read into a fixed-size
buffer without validation, and the unsafe LZO API could write past its
output buffer.

Use the legacy block size as the output capacity, reject oversized
compressed blocks, and use the bounds-checking LZO decompressor.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Legacy savestate headers controlled both the compressed input length
and the decompression buffer size. The input was read into a fixed-size
buffer without validation, and the unsafe LZO API could write past its
output buffer.

Use the legacy block size as the output capacity, reject oversized
compressed blocks, and use the bounds-checking LZO decompressor.
</pre>
</div>
</content>
</entry>
<entry>
<title>DolphinQt: Fix crash from stale timer event in ToolTipWidget</title>
<updated>2026-11-06T22:54:43+00:00</updated>
<author>
<name>debug687</name>
<email>313431556+debug687@users.noreply.github.com</email>
</author>
<published>2026-10-19T21:29:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=5eaaba5a4328d63ab7fe1147c9478ebda26746ff'/>
<id>5eaaba5a4328d63ab7fe1147c9478ebda26746ff</id>
<content type='text'>
LLM generated explaination for the LLM generated commit:

A queued QTimerEvent can be dispatched after the timer was already killed (Qt recycles timer ids), e.g. when a slider is dragged and enter/leave events fire in rapid succession. In that case m_timer_id is empty and dereferencing it in timerEvent() asserts on 'this-&gt;_M_is_engaged()' in debug builds, while in release builds it passes a garbage timer id to killTimer().

Only process the event if it matches the timer we are tracking, which also prevents showing a balloon for a stale event.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
LLM generated explaination for the LLM generated commit:

A queued QTimerEvent can be dispatched after the timer was already killed (Qt recycles timer ids), e.g. when a slider is dragged and enter/leave events fire in rapid succession. In that case m_timer_id is empty and dereferencing it in timerEvent() asserts on 'this-&gt;_M_is_engaged()' in debug builds, while in release builds it passes a garbage timer id to killTimer().

Only process the event if it matches the timer we are tracking, which also prevents showing a balloon for a stale event.
</pre>
</div>
</content>
</entry>
<entry>
<title>VideoCommon: Work around Adreno TEV zero input miscompilation</title>
<updated>2026-11-06T22:54:28+00:00</updated>
<author>
<name>Starlightbotanist</name>
<email>starlightbotanist@gmail.com</email>
</author>
<published>2026-10-01T17:28:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=ba77539b53d79a8d7d5a7c6a63a692487ca75d08'/>
<id>ba77539b53d79a8d7d5a7c6a63a692487ca75d08</id>
<content type='text'>
Some Qualcomm Android drivers from version 700 onward miscompile
specialized TEV pixel shaders when color input A or B is TevColorArg::Zero.
Use konstLookup[8].rgb, which PixelShaderManager initializes to zero,
to keep these inputs dependent on a uniform value.

Use the existing driver bug gate for OpenGL and Vulkan. Other inputs and
unaffected drivers retain their original shader expressions.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Some Qualcomm Android drivers from version 700 onward miscompile
specialized TEV pixel shaders when color input A or B is TevColorArg::Zero.
Use konstLookup[8].rgb, which PixelShaderManager initializes to zero,
to keep these inputs dependent on a uniform value.

Use the existing driver bug gate for OpenGL and Vulkan. Other inputs and
unaffected drivers retain their original shader expressions.
</pre>
</div>
</content>
</entry>
<entry>
<title>Vulkan: Fetch driverVersion</title>
<updated>2026-11-06T22:54:24+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2026-08-16T17:35:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=7093031c17e931f6be50b8cc1ea94ab055b23eb2'/>
<id>7093031c17e931f6be50b8cc1ea94ab055b23eb2</id>
<content type='text'>
For use with DriverDetails.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For use with DriverDetails.
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "msvc: use std::chrono for GetLocalTimeSinceJan1970"</title>
<updated>2026-11-06T22:54:14+00:00</updated>
<author>
<name>OatmealDome</name>
<email>julian@oatmealdome.me</email>
</author>
<published>2026-10-23T15:49:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=24f04c3ba0beca819e0b97e5b4ca830b070f9f74'/>
<id>24f04c3ba0beca819e0b97e5b4ca830b070f9f74</id>
<content type='text'>
This reverts commit 86da6c98fbd229d87de7cf8b9c7eb94c16923829.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 86da6c98fbd229d87de7cf8b9c7eb94c16923829.
</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>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>
</feed>
