<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dolphin/Source/Core/AudioCommon, branch 5.0</title>
<subtitle>GameCube and Wii emulator</subtitle>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/'/>
<entry>
<title>Core: Threadsafety Synchronization Fixes (Frame Advance / FifoPlayer)</title>
<updated>2016-05-12T23:23:44+00:00</updated>
<author>
<name>EmptyChaos</name>
<email>EmptyChaos@users.noreply.github.com</email>
</author>
<published>2016-05-12T09:17:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=c1922783f8125dee4f12fdb20bdcbcf764e7ade4'/>
<id>c1922783f8125dee4f12fdb20bdcbcf764e7ade4</id>
<content type='text'>
Fix Frame Advance and FifoPlayer pause/unpause/stop.

CPU::EnableStepping is not atomic but is called from multiple threads
which races and leaves the system in a random state; also instruction
stepping was unstable, m_StepEvent had an almost random value because
of the dual purpose it served which could cause races where CPU::Run
would SingleStep when it was supposed to be sleeping.

FifoPlayer never FinishStateMove()d which was causing it to deadlock.
Rather than partially reimplementing CPU::Run, just use CPUCoreBase
and then call CPU::Run(). More DRY and less likely to have weird bugs
specific to the player (i.e the previous freezing on pause/stop).

Refactor PowerPC::state into CPU since it manages the state of the
CPU Thread which is controlled by CPU, not PowerPC. This simplifies
the architecture somewhat and eliminates races that can be caused by
calling PowerPC state functions directly instead of using CPU's
(because they bypassed the EnableStepping lock).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix Frame Advance and FifoPlayer pause/unpause/stop.

CPU::EnableStepping is not atomic but is called from multiple threads
which races and leaves the system in a random state; also instruction
stepping was unstable, m_StepEvent had an almost random value because
of the dual purpose it served which could cause races where CPU::Run
would SingleStep when it was supposed to be sleeping.

FifoPlayer never FinishStateMove()d which was causing it to deadlock.
Rather than partially reimplementing CPU::Run, just use CPUCoreBase
and then call CPU::Run(). More DRY and less likely to have weird bugs
specific to the player (i.e the previous freezing on pause/stop).

Refactor PowerPC::state into CPU since it manages the state of the
CPU Thread which is controlled by CPU, not PowerPC. This simplifies
the architecture somewhat and eliminates races that can be caused by
calling PowerPC state functions directly instead of using CPU's
(because they bypassed the EnableStepping lock).
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #3602 from OatmealDome/coreaudio</title>
<updated>2016-02-08T03:25:15+00:00</updated>
<author>
<name>Mathew Maidment</name>
<email>mathew1800@gmail.com</email>
</author>
<published>2016-02-08T03:25:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=08c9e3b7a4917e5f49a233bd2775d0b5e4eacf5e'/>
<id>08c9e3b7a4917e5f49a233bd2775d0b5e4eacf5e</id>
<content type='text'>
CoreAudioSound: Minor clean up</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
CoreAudioSound: Minor clean up</pre>
</div>
</content>
</entry>
<entry>
<title>CoreAudioSound: Replace deprecated parameters</title>
<updated>2016-02-06T21:48:03+00:00</updated>
<author>
<name>OatmealDome</name>
<email>theoatmealdome@gmail.com</email>
</author>
<published>2016-01-03T21:33:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=36a20c3535e799acfa72af4757aab8e7b3bb8e23'/>
<id>36a20c3535e799acfa72af4757aab8e7b3bb8e23</id>
<content type='text'>
The kAudioUnitParameterFlag_* parameters don't exist on iOS.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The kAudioUnitParameterFlag_* parameters don't exist on iOS.
</pre>
</div>
</content>
</entry>
<entry>
<title>CoreAudioSound: Only include AudioUnit</title>
<updated>2016-02-06T21:47:49+00:00</updated>
<author>
<name>OatmealDome</name>
<email>theoatmealdome@gmail.com</email>
</author>
<published>2016-01-03T21:30:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=2e24996a9cbe60372ea643253f9dec7114baa697'/>
<id>2e24996a9cbe60372ea643253f9dec7114baa697</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>CMakeLists cleanup and enable Android headless building.</title>
<updated>2016-02-05T17:24:11+00:00</updated>
<author>
<name>Ryan Houdek</name>
<email>Sonicadvance1@gmail.com</email>
</author>
<published>2016-02-05T16:54:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=2f7e3ae58e22b8cb307b4bcc5c3640efab5f922c'/>
<id>2f7e3ae58e22b8cb307b4bcc5c3640efab5f922c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Mixer: Convert defines into concrete variables</title>
<updated>2016-01-16T04:41:53+00:00</updated>
<author>
<name>Lioncash</name>
<email>mathew1800@gmail.com</email>
</author>
<published>2016-01-14T08:00:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=c70487163f3e67633170e10a513d936e4f033f71'/>
<id>c70487163f3e67633170e10a513d936e4f033f71</id>
<content type='text'>
Gets defines out of global scope.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Gets defines out of global scope.
</pre>
</div>
</content>
</entry>
<entry>
<title>Mixer: Directly initialize class members</title>
<updated>2016-01-14T06:32:31+00:00</updated>
<author>
<name>Lioncash</name>
<email>mathew1800@gmail.com</email>
</author>
<published>2016-01-14T06:19:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=fc6a2f490ffe9bfcf68d56549b4887e6ff5aa515'/>
<id>fc6a2f490ffe9bfcf68d56549b4887e6ff5aa515</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Mixer: Devirtualize</title>
<updated>2016-01-14T06:32:24+00:00</updated>
<author>
<name>Lioncash</name>
<email>mathew1800@gmail.com</email>
</author>
<published>2016-01-14T05:58:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=531a3ed09a85f646aff5dfb5754f0a2147842518'/>
<id>531a3ed09a85f646aff5dfb5754f0a2147842518</id>
<content type='text'>
Nothing in the codebase inherits from this class
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Nothing in the codebase inherits from this class
</pre>
</div>
</content>
</entry>
<entry>
<title>Throttler: Rename "framelimiter" to "emulation speed".</title>
<updated>2016-01-05T22:39:05+00:00</updated>
<author>
<name>degasus</name>
<email>wickmarkus@web.de</email>
</author>
<published>2015-12-15T23:10:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=3ff4ec275ae931dfc946cdb09825efa7b9e60d18'/>
<id>3ff4ec275ae931dfc946cdb09825efa7b9e60d18</id>
<content type='text'>
We don't throttle by frames, we throttle by coretiming speed.
So looking up VI for calculating the speed was just very wrong.
The new ini option is a float, 1.0f for fullspeed.
In the GUI, percentual values are used.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We don't throttle by frames, we throttle by coretiming speed.
So looking up VI for calculating the speed was just very wrong.
The new ini option is a float, 1.0f for fullspeed.
In the GUI, percentual values are used.
</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenSLES] Fix a delay in audio processing.</title>
<updated>2016-01-03T17:33:38+00:00</updated>
<author>
<name>Ryan Houdek</name>
<email>Sonicadvance1@gmail.com</email>
</author>
<published>2016-01-03T17:29:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=1db01a8c56b6758c81ff4c3fa9e39edab25fab89'/>
<id>1db01a8c56b6758c81ff4c3fa9e39edab25fab89</id>
<content type='text'>
A failure on my part. I was updating the two buffers in the wrong order, so we were always a buffer behind in sending audio out to OpenSLES.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A failure on my part. I was updating the two buffers in the wrong order, so we were always a buffer behind in sending audio out to OpenSLES.
</pre>
</div>
</content>
</entry>
</feed>
