<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dolphin/Source/Core/InputCommon/GCAdapter.cpp, branch 5.0</title>
<subtitle>GameCube and Wii emulator</subtitle>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/'/>
<entry>
<title>Merge pull request #3805 from mathieui/gcadapter-unplug-crash</title>
<updated>2016-05-19T20:58:06+00:00</updated>
<author>
<name>Markus Wick</name>
<email>degasus@users.noreply.github.com</email>
</author>
<published>2016-05-19T20:58:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=bb6604df767212affdbd1087d305709d9d83dc13'/>
<id>bb6604df767212affdbd1087d305709d9d83dc13</id>
<content type='text'>
GCAdapter: improve thread safety</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
GCAdapter: improve thread safety</pre>
</div>
</content>
</entry>
<entry>
<title>GCAdapter: protect some more functions</title>
<updated>2016-05-19T20:00:49+00:00</updated>
<author>
<name>mathieui</name>
<email>mathieui@mathieui.net</email>
</author>
<published>2016-05-19T19:52:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=1bbbe92cd203d39f0aa0da80d5bd41ae641c3e5c'/>
<id>1bbbe92cd203d39f0aa0da80d5bd41ae641c3e5c</id>
<content type='text'>
Reset() and Setup() are not used outside of this namespace
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reset() and Setup() are not used outside of this namespace
</pre>
</div>
</content>
</entry>
<entry>
<title>GCAdapter: improve thread safety</title>
<updated>2016-05-18T18:44:01+00:00</updated>
<author>
<name>mathieui</name>
<email>mathieui@mathieui.net</email>
</author>
<published>2016-04-30T11:29:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=54b4efff6b14a2dc0be6d6a284be8b27750ceecb'/>
<id>54b4efff6b14a2dc0be6d6a284be8b27750ceecb</id>
<content type='text'>
make sure Reset() can’t be run concurrently with AddGCAdapter() or
ResetRumble() (which is called on other threads) which can cause
crashes (issue #9462)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
make sure Reset() can’t be run concurrently with AddGCAdapter() or
ResetRumble() (which is called on other threads) which can cause
crashes (issue #9462)
</pre>
</div>
</content>
</entry>
<entry>
<title>Disable part of the adapter features for netplay</title>
<updated>2016-05-12T21:31:51+00:00</updated>
<author>
<name>mathieui</name>
<email>mathieui@mathieui.net</email>
</author>
<published>2016-05-12T00:07:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=8f0cbefbe57762de92284ef151e984f52ec8d7e6'/>
<id>8f0cbefbe57762de92284ef151e984f52ec8d7e6</id>
<content type='text'>
In order to avoid desyncs
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In order to avoid desyncs
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix a bug in GCAdapter</title>
<updated>2016-01-24T20:55:20+00:00</updated>
<author>
<name>mathieui</name>
<email>mathieui@mathieui.net</email>
</author>
<published>2016-01-23T17:30:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=07caff35ad9dfda2a0cec6ecc5fc442fc37da11f'/>
<id>07caff35ad9dfda2a0cec6ecc5fc442fc37da11f</id>
<content type='text'>
where the payload size would end up being crazy values on the other
thread. Mirroring the similar commit made for the android side:

https://github.com/Sonicadvance1/dolphin/commit/2833685fbfd782b78bbf1813f30cbb0a4ecd801d
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
where the payload size would end up being crazy values on the other
thread. Mirroring the similar commit made for the android side:

https://github.com/Sonicadvance1/dolphin/commit/2833685fbfd782b78bbf1813f30cbb0a4ecd801d
</pre>
</div>
</content>
</entry>
<entry>
<title>Allow multiple GC adapters on one PC to be used with multiple Dolphin instances.</title>
<updated>2016-01-20T21:20:17+00:00</updated>
<author>
<name>Ryan Houdek</name>
<email>Sonicadvance1@gmail.com</email>
</author>
<published>2016-01-20T21:20:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=70aa012fefc080d3eff39673cb29725dfd4e0e74'/>
<id>70aa012fefc080d3eff39673cb29725dfd4e0e74</id>
<content type='text'>
Previously we would iterate through every GC adapter plugged in to the PC and steal ownership of it.
This causes issues all over the place in the implementation if this happens.
Break on the first adapter we can get access to.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously we would iterate through every GC adapter plugged in to the PC and steal ownership of it.
This causes issues all over the place in the implementation if this happens.
Break on the first adapter we can get access to.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add a stubbed GCAdapter namespace.</title>
<updated>2016-01-06T06:57:08+00:00</updated>
<author>
<name>Ryan Houdek</name>
<email>Sonicadvance1@gmail.com</email>
</author>
<published>2016-01-06T06:57:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=6e503bebc43e17418d88261568a15cfc75757a17'/>
<id>6e503bebc43e17418d88261568a15cfc75757a17</id>
<content type='text'>
This cleans up a bunch of #ifdef checks in places.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This cleans up a bunch of #ifdef checks in places.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixup typo in GCAdapter</title>
<updated>2016-01-06T06:41:00+00:00</updated>
<author>
<name>Ryan Houdek</name>
<email>Sonicadvance1@gmail.com</email>
</author>
<published>2016-01-06T06:35:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=af6a5ddafe69a7ba36080cc164318f56a2ebc7f6'/>
<id>af6a5ddafe69a7ba36080cc164318f56a2ebc7f6</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Make the Wii U Gamecube adapter work with less magic.</title>
<updated>2016-01-05T19:44:37+00:00</updated>
<author>
<name>Ryan Houdek</name>
<email>Sonicadvance1@gmail.com</email>
</author>
<published>2015-12-31T17:09:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=49410576e945ba7bf762b83a474005f1babc5b54'/>
<id>49410576e945ba7bf762b83a474005f1babc5b54</id>
<content type='text'>
The Wii U Gamecube controller adapter setup has always been a bit weird. It tries to be as automatic as possible to make the user experience as easy
as possible.
The problem with this approach is that it brings a large disconnect in the user experience because you have the Gamecube controller setup with regular
gamepads and then for some reason below that you have a "direct connect" option which will cause the Gamecube Adapter to overwrite the regular inputs
if something was connected.
While this works and allows the user to only click one checkbox to get the device working, it breaks the user's experience because they don't really
know what "direct connect" means and won't look it up to figure out what it is. Just expecting the device to work (At least one occurence of this in
the IRC channel in the last week).

This way around also had the terrible nature of making the code more filthy than it needed to be. The GCAdapter namespace was parasitic and hooked in
to the regular GC Controller SI class to overwrite the data that it was getting from the default configuration.
Now instead we have a specific SIDevice class for the Wii U Gamecube adapter. This class is fairly simple and is a child of the regular SI Gamecube
Pad device and only reimplements what it needs to.
This also gives the ability to configure controllers individually, which allows the user to configure rumble individually per pad input.

Overall the code is cleaner, and it fits more in line with how the rest of Dolphin works.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The Wii U Gamecube controller adapter setup has always been a bit weird. It tries to be as automatic as possible to make the user experience as easy
as possible.
The problem with this approach is that it brings a large disconnect in the user experience because you have the Gamecube controller setup with regular
gamepads and then for some reason below that you have a "direct connect" option which will cause the Gamecube Adapter to overwrite the regular inputs
if something was connected.
While this works and allows the user to only click one checkbox to get the device working, it breaks the user's experience because they don't really
know what "direct connect" means and won't look it up to figure out what it is. Just expecting the device to work (At least one occurence of this in
the IRC channel in the last week).

This way around also had the terrible nature of making the code more filthy than it needed to be. The GCAdapter namespace was parasitic and hooked in
to the regular GC Controller SI class to overwrite the data that it was getting from the default configuration.
Now instead we have a specific SIDevice class for the Wii U Gamecube adapter. This class is fairly simple and is a child of the regular SI Gamecube
Pad device and only reimplements what it needs to.
This also gives the ability to configure controllers individually, which allows the user to configure rumble individually per pad input.

Overall the code is cleaner, and it fits more in line with how the rest of Dolphin works.
</pre>
</div>
</content>
</entry>
<entry>
<title>Move SI_GCAdapter over to InputCommon</title>
<updated>2016-01-05T19:44:37+00:00</updated>
<author>
<name>Ryan Houdek</name>
<email>Sonicadvance1@gmail.com</email>
</author>
<published>2015-12-31T16:27:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=371e9f4fae0cd60004d7cfd13cc832bc18808de2'/>
<id>371e9f4fae0cd60004d7cfd13cc832bc18808de2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
