<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dolphin/Source/Core/Common/Config, branch 2412</title>
<subtitle>GameCube and Wii emulator</subtitle>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/'/>
<entry>
<title>C++20: Synthesize `operator!=` From `operator==`</title>
<updated>2024-10-11T03:23:55+00:00</updated>
<author>
<name>mitaclaw</name>
<email>140017135+mitaclaw@users.noreply.github.com</email>
</author>
<published>2024-10-09T00:16:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=e8d5fb89e4465e8ef64920f12e7cb60e82057658'/>
<id>e8d5fb89e4465e8ef64920f12e7cb60e82057658</id>
<content type='text'>
The inequality operator is automatically generated by the compiler if `operator==` is defined.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The inequality operator is automatically generated by the compiler if `operator==` is defined.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove references to Debugger.ini</title>
<updated>2023-11-27T20:38:43+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2023-11-25T13:32:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=be1e103435090483831c9a9f32aa765071ded05a'/>
<id>be1e103435090483831c9a9f32aa765071ded05a</id>
<content type='text'>
This file was only used by DolphinWX. DolphinQt uses Qt.ini instead.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This file was only used by DolphinWX. DolphinQt uses Qt.ini instead.
</pre>
</div>
</content>
</entry>
<entry>
<title>Use structs for config callback IDs</title>
<updated>2023-08-17T17:19:26+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2023-08-16T19:37:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=7197e3abd0831e0d551fd3b2cd7e3346ce04bc68'/>
<id>7197e3abd0831e0d551fd3b2cd7e3346ce04bc68</id>
<content type='text'>
This way you can't mix up regular config callback IDs and CPU thread
config callback IDs. (It would be rather bad if you did!)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This way you can't mix up regular config callback IDs and CPU thread
config callback IDs. (It would be rather bad if you did!)
</pre>
</div>
</content>
</entry>
<entry>
<title>Config: Don't clear callbacks on shutdown</title>
<updated>2023-08-17T17:19:25+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2023-08-16T20:16:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=2b17e89336ed09db7298ca66a7c697a4db9d3cf9'/>
<id>2b17e89336ed09db7298ca66a7c697a4db9d3cf9</id>
<content type='text'>
This fixes a problem that started happening in CoreTimingTest after the
previous commit. CPUThreadConfigCallback registers a Config callback
only once per run of the process, but CoreTimingTest calls
Config::Shutdown after each test, and Config::Shutdown was clearing all
callbacks, preventing the callback from running after that.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes a problem that started happening in CoreTimingTest after the
previous commit. CPUThreadConfigCallback registers a Config callback
only once per run of the process, but CoreTimingTest calls
Config::Shutdown after each test, and Config::Shutdown was clearing all
callbacks, preventing the callback from running after that.
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't call RunAsCPUThread in config callbacks</title>
<updated>2023-08-17T17:19:25+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2023-08-16T19:16:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=71ce8bb6f00f4d1cbc1012270d6daefdbda4254d'/>
<id>71ce8bb6f00f4d1cbc1012270d6daefdbda4254d</id>
<content type='text'>
In theory, our config system supports calling Set from any thread. But
because we have config callbacks that call RunAsCPUThread, it's a lot
more restricted in practice. Calling Set from any thread other than the
host thread or the CPU thread is formally thread unsafe, and calling Set
on the host thread while the CPU thread is showing a panic alert causes
a deadlock. This is especially a problem because 04072f0 made the
"Ignore for this session" button in panic alerts call Set.

Because so many of our config callbacks want their code to run on the
CPU thread, I thought it would make sense to have a centralized way to
move execution to the CPU thread for config callbacks. To solve the
deadlock problem, this new way is non-blocking. This means that threads
other than the CPU thread might continue executing before the CPU thread
is informed of the new config, but I don't think there's any problem
with that.

Intends to fix https://bugs.dolphin-emu.org/issues/13108.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In theory, our config system supports calling Set from any thread. But
because we have config callbacks that call RunAsCPUThread, it's a lot
more restricted in practice. Calling Set from any thread other than the
host thread or the CPU thread is formally thread unsafe, and calling Set
on the host thread while the CPU thread is showing a panic alert causes
a deadlock. This is especially a problem because 04072f0 made the
"Ignore for this session" button in panic alerts call Set.

Because so many of our config callbacks want their code to run on the
CPU thread, I thought it would make sense to have a centralized way to
move execution to the CPU thread for config callbacks. To solve the
deadlock problem, this new way is non-blocking. This means that threads
other than the CPU thread might continue executing before the CPU thread
is informed of the new config, but I don't think there's any problem
with that.

Intends to fix https://bugs.dolphin-emu.org/issues/13108.
</pre>
</div>
</content>
</entry>
<entry>
<title>Added Initial Achievement Settings</title>
<updated>2023-04-04T01:17:44+00:00</updated>
<author>
<name>LillyJadeKatrin</name>
<email>lilly.kitty.1988@gmail.com</email>
</author>
<published>2023-03-16T13:06:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=07d2f3d305136180b753b5e13db692f68af2519b'/>
<id>07d2f3d305136180b753b5e13db692f68af2519b</id>
<content type='text'>
Added AchievementSettings in Config with RA_INTEGRATION_ENABLED, RA_USERNAME, and RA_API_TOKEN. Includes code to load and store from Achievements.ini file in config folder.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Added AchievementSettings in Config with RA_INTEGRATION_ENABLED, RA_USERNAME, and RA_API_TOKEN. Includes code to load and store from Achievements.ini file in config folder.
</pre>
</div>
</content>
</entry>
<entry>
<title>Migrate game INI profile setting to new config system</title>
<updated>2023-03-11T16:51:58+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2023-03-11T16:14:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=53e7090f5559106875ee5d1170a641439df66379'/>
<id>53e7090f5559106875ee5d1170a641439df66379</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Integrate "Ignore for this session" better with config system</title>
<updated>2022-09-24T11:03:45+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2022-09-24T11:03:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=04072f0ce63c64924695743cd83a028c06fe6be2'/>
<id>04072f0ce63c64924695743cd83a028c06fe6be2</id>
<content type='text'>
Because of the previous commit, this is needed to stop DolphinQt from
forgetting that the user pressed ignore whenever any part of the config
is changed.

This commit also changes the behavior a bit on DolphinQt: "Ignore for
this session" now applies to the current emulation session instead of
the current Dolphin launch. This matches how it already worked on
Android, and is in my opinion better because it means the user won't
lose out on important panic alerts in a game becase they played another
game first that had repeated panic alerts that they wanted to ignore.

For Android, this commit isn't necessary, but it makes the code cleaner.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Because of the previous commit, this is needed to stop DolphinQt from
forgetting that the user pressed ignore whenever any part of the config
is changed.

This commit also changes the behavior a bit on DolphinQt: "Ignore for
this session" now applies to the current emulation session instead of
the current Dolphin launch. This matches how it already worked on
Android, and is in my opinion better because it means the user won't
lose out on important panic alerts in a game becase they played another
game first that had repeated panic alerts that they wanted to ignore.

For Android, this commit isn't necessary, but it makes the code cleaner.
</pre>
</div>
</content>
</entry>
<entry>
<title>Config: Allow unregistering callbacks.</title>
<updated>2021-12-25T22:32:49+00:00</updated>
<author>
<name>Admiral H. Curtiss</name>
<email>pikachu025@gmail.com</email>
</author>
<published>2021-12-25T22:32:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=319b00f1fd6cc0385ffc4ac9d48411ed3fd1f42b'/>
<id>319b00f1fd6cc0385ffc4ac9d48411ed3fd1f42b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Treewide: Adjust order of includes</title>
<updated>2021-12-10T22:49:57+00:00</updated>
<author>
<name>Pokechu22</name>
<email>Pokechu022@gmail.com</email>
</author>
<published>2021-12-10T02:22:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=20257634209dba85d2cd51ad42e660090a5224e6'/>
<id>20257634209dba85d2cd51ad42e660090a5224e6</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
